/* ============================================================
   dubbKar — Midnight Aurora design system
   Pure CSS. No JavaScript required.
   Per-page palette: any wrapper may set --c1 / --c2 / --c3 and
   the whole page (aurora clouds, glows, gradients) retints itself.
   ============================================================ */

/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'Jost';src:url('/static/fonts/Jost/regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('/static/fonts/Jost/italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Jost';src:url('/static/fonts/Jost/500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('/static/fonts/Jost/600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('/static/fonts/Jost/700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('/static/fonts/Jost/800.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('/static/fonts/Jost/900.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/200.ttf') format('truetype');font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/300.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';src:url('/static/fonts/Karla/800.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}

/* ---------- tokens ---------- */
:root{
  --ink:#05070d;                 /* the midnight canvas */
  --ink-2:#0a0e18;
  --paper:#eef1ff;
  --muted:#9aa3c0;
  --faint:#6b7392;
  --c1:#7c5cff;                  /* palette slots — overridden per page */
  --c2:#00d4ff;
  --c3:#ff5ca8;
  --font-display:'Jost',system-ui,sans-serif;
  --font-body:'Karla',system-ui,sans-serif;
  --radius:22px;
  --radius-lg:30px;
  --nav-h:76px;
  --wrap:1240px;
  --glass-bg:linear-gradient(165deg,rgba(255,255,255,.075),rgba(255,255,255,.018) 55%);
  --glass-brd:1px solid rgba(255,255,255,.09);
  --shadow-soft:0 24px 60px -24px rgba(0,0,0,.75);
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:17px;line-height:1.65;
  min-height:100vh;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:0}
::selection{background:var(--c1);color:#fff}
:focus-visible{outline:2px solid var(--c2);outline-offset:3px;border-radius:6px}

::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--ink)}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--c1),var(--c2));border-radius:8px;border:3px solid var(--ink)}

/* ============================================================
   THE SKY — aurora clouds, starfield, grain
   ============================================================ */
.sky{position:fixed;inset:0;z-index:-3;overflow:hidden;background:
  radial-gradient(1200px 700px at 85% -10%,color-mix(in srgb,var(--c1) 12%,transparent),transparent 60%),
  radial-gradient(1000px 620px at -10% 110%,color-mix(in srgb,var(--c2) 10%,transparent),transparent 60%),
  var(--ink);
}
.sky i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;mix-blend-mode:screen;will-change:transform}
.sky i:nth-child(1){
  width:58vmax;height:58vmax;left:-14vmax;top:-18vmax;
  background:radial-gradient(circle at 40% 40%,color-mix(in srgb,var(--c1) 55%,transparent),transparent 62%);
  animation:drift-a 46s ease-in-out infinite alternate;
}
.sky i:nth-child(2){
  width:46vmax;height:46vmax;right:-12vmax;top:22vh;
  background:radial-gradient(circle at 60% 45%,color-mix(in srgb,var(--c2) 48%,transparent),transparent 60%);
  animation:drift-b 38s ease-in-out infinite alternate;
}
.sky i:nth-child(3){
  width:40vmax;height:40vmax;left:22vw;bottom:-20vmax;
  background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--c3) 40%,transparent),transparent 58%);
  animation:drift-c 54s ease-in-out infinite alternate;
}
.sky i:nth-child(4){                     /* faint nebula ring */
  width:70vmax;height:70vmax;left:50%;top:-35vmax;transform:translateX(-50%);
  background:conic-gradient(from 0deg,transparent,color-mix(in srgb,var(--c1) 16%,transparent),transparent 30%,color-mix(in srgb,var(--c2) 13%,transparent),transparent 62%,color-mix(in srgb,var(--c3) 12%,transparent),transparent);
  filter:blur(60px);opacity:.6;border-radius:50%;
  animation:spin-slow 90s linear infinite;
}
.stars{position:fixed;inset:0;z-index:-2;pointer-events:none;
  background-image:
    radial-gradient(1.4px 1.4px at 22px 34px,rgba(255,255,255,.75),transparent 55%),
    radial-gradient(1px 1px at 78px 96px,rgba(255,255,255,.5),transparent 55%),
    radial-gradient(1.2px 1.2px at 140px 52px,rgba(255,255,255,.65),transparent 55%),
    radial-gradient(.9px .9px at 190px 140px,rgba(255,255,255,.45),transparent 55%);
  background-size:230px 230px;
  animation:star-slide 240s linear infinite;opacity:.5;
}
.stars.s2{
  background-size:340px 340px;opacity:.28;animation-duration:380s;animation-direction:reverse;
  background-image:
    radial-gradient(1.8px 1.8px at 40px 60px,color-mix(in srgb,var(--c2) 80%,#fff),transparent 55%),
    radial-gradient(1.3px 1.3px at 150px 190px,rgba(255,255,255,.7),transparent 55%),
    radial-gradient(1.5px 1.5px at 260px 90px,color-mix(in srgb,var(--c1) 75%,#fff),transparent 55%);
}
.grain{position:fixed;inset:-50%;z-index:60;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
  animation:grain-jump 1.1s steps(3) infinite;
}

@keyframes drift-a{0%{transform:translate(0,0) scale(1)}50%{transform:translate(9vmax,7vmax) scale(1.15)}100%{transform:translate(-4vmax,12vmax) scale(.95)}}
@keyframes drift-b{0%{transform:translate(0,0) scale(1.05)}100%{transform:translate(-11vmax,-8vmax) scale(1.2)}}
@keyframes drift-c{0%{transform:translate(0,0) scale(.95)}100%{transform:translate(8vmax,-9vmax) scale(1.18) rotate(20deg)}}
@keyframes spin-slow{to{transform:translateX(-50%) rotate(360deg)}}
@keyframes star-slide{to{background-position:230px 460px}}
@keyframes grain-jump{0%{transform:translate(0,0)}33%{transform:translate(-2%,1%)}66%{transform:translate(1%,-2%)}100%{transform:translate(0,0)}}

/* ============================================================
   UTILITIES
   ============================================================ */
.wrap{width:min(var(--wrap),92%);margin-inline:auto}
.glass{
  background:var(--glass-bg);
  border:var(--glass-brd);
  border-radius:var(--radius);
  backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  box-shadow:var(--shadow-soft),inset 0 1px 0 rgba(255,255,255,.08);
}
.eyebrow{
  font-family:var(--font-display);font-weight:600;font-size:.78rem;
  letter-spacing:.42em;text-transform:uppercase;color:var(--muted);
  display:inline-flex;align-items:center;gap:.7em;
}
.eyebrow::before{content:'';width:34px;height:1px;background:linear-gradient(90deg,var(--c1),var(--c2))}
.grad-text{
  background:linear-gradient(92deg,var(--c1),var(--c2) 48%,var(--c3));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.grad-text-anim{background-size:220% 100%;animation:grad-pan 7s ease-in-out infinite alternate}
@keyframes grad-pan{from{background-position:0% 0}to{background-position:100% 0}}

.chip{
  display:inline-flex;align-items:center;gap:.45em;
  font-family:var(--font-display);font-weight:500;font-size:.8rem;letter-spacing:.06em;
  padding:.42em 1em;border-radius:99px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  color:var(--paper);backdrop-filter:blur(8px);
}
.chip.hot{border-color:color-mix(in srgb,var(--c1) 60%,transparent);color:#fff;
  background:color-mix(in srgb,var(--c1) 22%,transparent)}
.chip .dot{width:7px;height:7px;border-radius:50%;background:var(--c2);box-shadow:0 0 10px var(--c2);animation:pulse-dot 2.2s ease-in-out infinite}
@keyframes pulse-dot{50%{opacity:.35;transform:scale(.7)}}

/* ---------- buttons ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--font-display);font-weight:600;font-size:1rem;letter-spacing:.04em;
  padding:.95em 1.9em;border-radius:99px;color:#fff;cursor:pointer;
  transition:transform .35s cubic-bezier(.2,.9,.3,1.4),box-shadow .35s ease;
  isolation:isolate;white-space:nowrap;
}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-primary{
  background:linear-gradient(94deg,var(--c1),var(--c2));
  box-shadow:0 12px 34px -10px color-mix(in srgb,var(--c1) 70%,transparent),
             0 4px 14px -6px color-mix(in srgb,var(--c2) 60%,transparent);
}
.btn-primary:hover{transform:translateY(-3px) scale(1.02);
  box-shadow:0 20px 46px -12px color-mix(in srgb,var(--c1) 85%,transparent),
             0 8px 22px -6px color-mix(in srgb,var(--c2) 75%,transparent)}
.btn-ghost{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(10px);
}
.btn-ghost:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c2) 65%,transparent);
  box-shadow:0 14px 34px -14px color-mix(in srgb,var(--c2) 55%,transparent)}
.btn:active{transform:translateY(-1px) scale(.98)}

/* animated gradient border button (download) */
.btn-border{position:relative;background:var(--ink-2);overflow:hidden}
.btn-border::before{
  content:'';position:absolute;inset:-2px;border-radius:inherit;z-index:-2;
  background:conic-gradient(from var(--ang,0deg),var(--c1),var(--c2),var(--c3),var(--c1));
  animation:ring-spin 3.6s linear infinite;
}
.btn-border::after{content:'';position:absolute;inset:2px;border-radius:inherit;z-index:-1;background:linear-gradient(180deg,#11152a,#0a0e1c)}
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes ring-spin{to{--ang:360deg}}
.btn-border:hover{transform:translateY(-3px);box-shadow:0 16px 40px -14px color-mix(in srgb,var(--c3) 60%,transparent)}

/* ---------- entrance choreography ---------- */
.rise{opacity:0;animation:rise-in .9s cubic-bezier(.16,.8,.26,1) forwards;animation-delay:calc(var(--i,0)*90ms)}
@keyframes rise-in{from{opacity:0;transform:translateY(34px) scale(.985)}to{opacity:1;transform:none}}

/* ============================================================
   NAV
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s ease}
.nav-inner{
  width:min(var(--wrap),94%);margin:14px auto 0;height:var(--nav-h);
  display:flex;align-items:center;gap:2rem;padding:0 1.4rem;
  border-radius:20px;
  background:linear-gradient(165deg,rgba(16,20,36,.72),rgba(10,13,24,.55));
  border:1px solid rgba(255,255,255,.09);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  box-shadow:0 18px 44px -20px rgba(0,0,0,.8);
}
.brand{display:flex;align-items:center;gap:.8rem;font-family:var(--font-display);font-weight:800;font-size:1.45rem;letter-spacing:.02em}
.brand .mark{position:relative;width:44px;height:44px;display:grid;place-items:center;flex:none}
.brand .mark::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 0deg,var(--c1),var(--c2),var(--c3),var(--c1));
  animation:spin-flat 7s linear infinite;
}
.brand .mark::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--ink)}
.brand .mark img{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;object-fit:cover}
@keyframes spin-flat{to{transform:rotate(360deg)}}
.brand b{font-weight:800}
.brand .kar{background:linear-gradient(92deg,var(--c1),var(--c2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.nav-links{display:flex;gap:.4rem;margin-left:auto;align-items:center}
.nav-links a{
  font-family:var(--font-display);font-weight:500;font-size:.98rem;letter-spacing:.03em;
  padding:.55em 1.1em;border-radius:12px;color:var(--muted);
  transition:color .25s,background .25s,box-shadow .25s;
}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav-links a.active{color:#fff;background:color-mix(in srgb,var(--c1) 20%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c1) 45%,transparent)}
.nav-cta{margin-left:.6rem}
#nav-toggle{display:none}
.nav-burger{display:none;width:46px;height:46px;border-radius:12px;cursor:pointer;
  place-items:center;gap:5px;flex-direction:column;border:1px solid rgba(255,255,255,.12)}
.nav-burger span{display:block;width:20px;height:2px;background:#fff;border-radius:2px;transition:.35s}
@media (max-width:860px){
  .nav-burger{display:grid;margin-left:auto}
  .nav-links{
    position:absolute;top:calc(100% + 10px);left:0;right:0;margin:0;
    flex-direction:column;align-items:stretch;padding:1rem;gap:.3rem;
    background:linear-gradient(165deg,rgba(14,18,34,.96),rgba(8,11,20,.94));
    border:1px solid rgba(255,255,255,.1);border-radius:18px;
    backdrop-filter:blur(24px);
    opacity:0;transform:translateY(-14px) scale(.98);pointer-events:none;
    transition:.35s cubic-bezier(.2,.8,.3,1);
  }
  .nav-links a{padding:.9em 1.2em}
  #nav-toggle:checked ~ .nav-links{opacity:1;transform:none;pointer-events:auto}
  #nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  #nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
  #nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-cta{display:none}
}

/* ============================================================
   HERO (home)
   ============================================================ */
.hero{position:relative;min-height:100svh;display:grid;align-items:center;padding:calc(var(--nav-h) + 60px) 0 70px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.hero h1{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(3rem,7.2vw,6.4rem);line-height:.98;letter-spacing:-.02em;
  margin:.35em 0 .3em;
}
.hero .sub{font-size:clamp(1.05rem,1.5vw,1.3rem);color:var(--muted);max-width:34em;font-weight:300}
.hero .sub b{color:var(--paper);font-weight:600}
.hero-ctas{display:flex;gap:1rem;margin-top:2.4rem;flex-wrap:wrap}
.hero-stats{display:flex;gap:.7rem;margin-top:2.6rem;flex-wrap:wrap}

/* floating poster fan */
.fan{position:relative;height:560px;perspective:1200px}
.fan .card-f{
  position:absolute;width:240px;aspect-ratio:2/2.95;border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.9);
  transition:transform .6s cubic-bezier(.2,.9,.25,1.2),box-shadow .6s,z-index 0s;
  animation:float-y 7s ease-in-out infinite alternate;
}
.fan .card-f img{width:100%;height:100%;object-fit:cover}
.fan .card-f::after{content:'';position:absolute;inset:0;background:linear-gradient(200deg,rgba(255,255,255,.14),transparent 40%)}
.fan .card-f:nth-child(1){left:4%;top:12%;transform:rotate(-11deg);z-index:1;animation-delay:-1s}
.fan .card-f:nth-child(2){left:30%;top:2%;transform:rotate(-2deg) scale(1.06);z-index:3;animation-delay:-3s}
.fan .card-f:nth-child(3){left:56%;top:14%;transform:rotate(9deg);z-index:2;animation-delay:-5s}
.fan .card-f:nth-child(4){left:24%;top:42%;transform:rotate(-5deg);z-index:4;animation-delay:-2s}
.fan .card-f:nth-child(5){left:52%;top:48%;transform:rotate(6deg);z-index:5;animation-delay:-4s}
.fan:hover .card-f{animation-play-state:paused}
.fan .card-f:hover{transform:rotate(0) scale(1.12) translateY(-14px);z-index:9;
  box-shadow:0 50px 100px -30px color-mix(in srgb,var(--c1) 45%,#000)}
@keyframes float-y{from{margin-top:0}to{margin-top:-22px}}
.fan .halo{position:absolute;inset:8% 4%;border-radius:50%;z-index:0;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--c1) 30%,transparent),transparent);
  filter:blur(50px);animation:pulse-halo 6s ease-in-out infinite alternate}
@keyframes pulse-halo{to{opacity:.5;transform:scale(1.12)}}

/* ---------- marquee ---------- */
.marquee{
  overflow:hidden;white-space:nowrap;position:relative;
  border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);
  padding:1.05rem 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee .track{display:inline-flex;gap:3rem;animation:marquee 42s linear infinite;will-change:transform}
.marquee span{
  font-family:var(--font-display);font-weight:600;font-size:1.05rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);display:inline-flex;align-items:center;gap:3rem;
}
.marquee span::after{content:'✦';color:var(--c2);font-size:.8em}
.marquee:hover .track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ============================================================
   SECTIONS & HEADERS
   ============================================================ */
.section{padding:5.2rem 0 2.6rem}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem;flex-wrap:wrap}
.sec-head h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.9rem,3.6vw,2.9rem);letter-spacing:-.01em;line-height:1.05;margin-top:.4em}
.sec-head .more{font-family:var(--font-display);font-weight:600;color:var(--muted);display:inline-flex;gap:.5em;align-items:center;transition:.3s}
.sec-head .more:hover{color:#fff;gap:.9em}
.sec-head .more::after{content:'→';color:var(--c2)}

/* ============================================================
   CARDS
   ============================================================ */
.grid-posters{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.6rem}
.pcard{position:relative;display:block;border-radius:var(--radius);isolation:isolate}
.pcard .frame{
  display:block;
  position:relative;aspect-ratio:2/2.9;border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  background:var(--ink-2);
  transition:transform .5s cubic-bezier(.2,.9,.3,1.2),box-shadow .5s,border-color .5s;
}
.pcard img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s}
.pcard .frame::before{           /* shine sweep */
  content:'';position:absolute;inset:-40%;z-index:2;pointer-events:none;
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.16) 50%,transparent 58%);
  transform:translateX(-70%);transition:transform 0s;
}
.pcard:hover .frame{transform:translateY(-10px) rotate(-.6deg);
  border-color:color-mix(in srgb,var(--pc,var(--c1)) 55%,transparent);
  box-shadow:0 30px 60px -18px color-mix(in srgb,var(--pc,var(--c1)) 45%,transparent),
             0 12px 28px -12px rgba(0,0,0,.8)}
.pcard:hover .frame::before{transform:translateX(70%);transition:transform 1.1s ease}
.pcard:hover img{transform:scale(1.09)}
.pcard .badge{
  position:absolute;top:12px;left:12px;z-index:3;
  font-family:var(--font-display);font-weight:600;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.45em .95em;border-radius:99px;color:#fff;
  background:color-mix(in srgb,var(--pc,var(--c1)) 72%,#000);
  border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(6px);
  box-shadow:0 6px 18px -6px color-mix(in srgb,var(--pc,var(--c1)) 80%,transparent);
}
.pcard .eps{
  position:absolute;right:12px;bottom:12px;z-index:3;
  display:inline-flex;align-items:baseline;gap:.45em;
  font-family:var(--font-display);font-weight:800;font-size:.92rem;letter-spacing:.02em;
  padding:.42em .9em;border-radius:99px;color:#fff;
  background:rgba(4,6,12,.6);
  backdrop-filter:blur(10px) saturate(150%);-webkit-backdrop-filter:blur(10px) saturate(150%);
  border:1px solid color-mix(in srgb,var(--pc,var(--c1)) 55%,rgba(255,255,255,.2));
  box-shadow:0 6px 18px -6px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.14);
}
.pcard .eps::after{
  content:'EP';font-size:.58rem;font-weight:600;letter-spacing:.22em;
  background:linear-gradient(92deg,var(--pc,var(--c1)),var(--c2));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.pcard .play{
  position:absolute;inset:0;z-index:3;display:grid;place-items:center;
  opacity:0;transition:opacity .4s;
}
.pcard .m-play{display:none}
.pcard h3,.lcard h3{display:block}
.pcard .play i{
  width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
  background:color-mix(in srgb,var(--pc,var(--c1)) 85%,#000);
  box-shadow:0 0 0 10px color-mix(in srgb,var(--pc,var(--c1)) 25%,transparent),0 14px 30px -8px #000;
  transform:scale(.6);transition:transform .45s cubic-bezier(.2,.9,.3,1.4);
}
.pcard .play i svg{width:22px;height:22px;fill:#fff;margin-left:3px}
.pcard:hover .play{opacity:1}
.pcard:hover .play i{transform:scale(1)}
/* small play chip for touch devices (no hover) */
.pcard .m-play{display:none}
.pcard h3{
  font-family:var(--font-display);font-weight:600;font-size:1.08rem;line-height:1.3;
  padding:.9rem .2rem 0;transition:.3s;
}
.pcard:hover h3{background:linear-gradient(92deg,var(--pc,var(--c1)),var(--c2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.pcard .meta{font-size:.85rem;color:var(--faint);padding:.15rem .2rem 0}

/* landscape cards (movies / featured) */
.grid-land{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.6rem}
.lcard{position:relative;border-radius:var(--radius);overflow:hidden;display:block;aspect-ratio:16/10;
  border:1px solid rgba(255,255,255,.1);background:var(--ink-2);isolation:isolate;
  transition:transform .5s cubic-bezier(.2,.9,.3,1.2),box-shadow .5s,border-color .5s}
.lcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.lcard .scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(4,6,12,.92) 88%)}
.lcard .txt{display:block;position:absolute;left:0;right:0;bottom:0;padding:1.3rem 1.4rem;z-index:2}
.lcard h3{font-family:var(--font-display);font-weight:700;font-size:1.28rem;line-height:1.2}
.lcard .meta{color:var(--muted);font-size:.86rem;margin-top:.3em}
.lcard .badge{position:absolute;top:14px;left:14px;z-index:2;
  font-family:var(--font-display);font-weight:600;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.45em .95em;border-radius:99px;color:#fff;
  background:color-mix(in srgb,var(--pc,var(--c3)) 72%,#000);border:1px solid rgba(255,255,255,.25)}
.lcard:hover{transform:translateY(-8px);
  border-color:color-mix(in srgb,var(--pc,var(--c3)) 55%,transparent);
  box-shadow:0 30px 60px -18px color-mix(in srgb,var(--pc,var(--c3)) 40%,transparent)}
.lcard:hover img{transform:scale(1.07)}

/* ============================================================
   ANIME DETAIL — banner hero
   ============================================================ */
.ahero{position:relative;padding:calc(var(--nav-h) + 40px) 0 0;overflow:hidden}
.ahero .banner{
  position:absolute;inset:0;z-index:-1;
}
.ahero .banner img{width:100%;height:100%;object-fit:cover;opacity:.55;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.65) 55%,transparent 98%);
  mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.65) 55%,transparent 98%);
}
.ahero .banner::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,7,13,.35),rgba(5,7,13,.88) 78%,var(--ink))}
.ahero-panel{
  position:relative;display:grid;grid-template-columns:250px 1fr;gap:2.6rem;
  padding:2.6rem;margin-top:3rem;align-items:center;
}
.ahero .poster{
  border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.16);
  box-shadow:0 30px 70px -20px color-mix(in srgb,var(--c1) 40%,#000);
  transform:rotate(-2.5deg);animation:float-y 8s ease-in-out infinite alternate;
  aspect-ratio:2/2.9;
}
.ahero .poster img{width:100%;height:100%;object-fit:cover}
.ahero h1{
  font-family:var(--font-display);font-weight:900;letter-spacing:-.015em;
  font-size:clamp(2.3rem,5vw,4.3rem);line-height:1.02;margin:.3em 0 .35em;
}
.ahero .other{color:var(--faint);font-style:italic;font-size:.95rem;margin-top:1em}
.meta-row{display:flex;gap:.6rem;flex-wrap:wrap;margin:.9rem 0 1.4rem}
.ahero .ctas{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem}

/* ---------- story tabs (CSS only) ---------- */
.story{margin-top:3.2rem}
.tabs{display:flex;gap:.6rem;margin-bottom:-1px;position:relative;z-index:2}
.tabs label{
  font-family:var(--font-display);font-weight:600;font-size:.92rem;letter-spacing:.08em;
  padding:.75em 1.5em;border-radius:14px 14px 0 0;cursor:pointer;color:var(--muted);
  border:1px solid transparent;border-bottom:0;transition:.3s;
}
.tabs label:hover{color:#fff}
.story input{position:absolute;opacity:0;pointer-events:none}
#tab-hi:checked ~ .tabs label[for=tab-hi],
#tab-en:checked ~ .tabs label[for=tab-en]{
  color:#fff;background:var(--glass-bg);border-color:rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
#tab-hi:checked ~ .tabs label[for=tab-hi]{text-shadow:0 0 22px var(--c1)}
#tab-en:checked ~ .tabs label[for=tab-en]{text-shadow:0 0 22px var(--c2)}
.tab-panels{position:relative}
.tab-panels .panel{display:none;padding:2.2rem 2.4rem;border-radius:0 var(--radius) var(--radius) var(--radius)}
.tab-panels .panel p{color:#c6cbe2;font-size:1.06rem;font-weight:300;max-width:70ch}
.tab-panels .panel p + p{margin-top:1em}
#tab-hi:checked ~ .tab-panels .p-hi{display:block;animation:fade-up .5s ease}
#tab-en:checked ~ .tab-panels .p-en{display:block;animation:fade-up .5s ease}
@keyframes fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.story-single{padding:2.2rem 2.4rem}
.story-single p{color:#c6cbe2;font-size:1.06rem;font-weight:300;max-width:70ch}
.story-single p + p{margin-top:1em}

/* ---------- episode grid ---------- */
.ep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:1.5rem}
.ep-card{position:relative;display:block;border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(255,255,255,.09);background:var(--ink-2);isolation:isolate;
  transition:transform .45s cubic-bezier(.2,.9,.3,1.2),box-shadow .45s,border-color .45s}
.ep-card .thumb{display:block;position:relative;aspect-ratio:16/9;overflow:hidden}
.ep-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s;opacity:.92}
.ep-card .thumb::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(4,6,12,.34),transparent 32%,transparent 55%,rgba(4,6,12,.82))}

/* frosted "EP 05" ticket — top left */
.ep-card .ep-tag{
  position:absolute;top:10px;left:10px;z-index:3;
  display:inline-flex;align-items:baseline;gap:.42em;
  font-family:var(--font-display);font-weight:800;font-size:.92rem;letter-spacing:.06em;
  padding:.42em .85em;border-radius:12px;color:#fff;
  background:rgba(4,6,12,.55);
  backdrop-filter:blur(10px) saturate(150%);-webkit-backdrop-filter:blur(10px) saturate(150%);
  border:1px solid color-mix(in srgb,var(--c1) 55%,rgba(255,255,255,.22));
  box-shadow:0 6px 18px -6px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.14);
  transition:border-color .4s,box-shadow .4s;
}
.ep-card .ep-tag b{
  font-weight:600;font-size:.62rem;letter-spacing:.24em;
  background:linear-gradient(92deg,var(--c1),var(--c2));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
/* big gradient numeral — bottom right over the art */
.ep-card .num{
  position:absolute;right:12px;bottom:2px;z-index:3;
  font-family:var(--font-display);font-weight:900;font-size:3.4rem;line-height:1;
  background:linear-gradient(180deg,#fff 15%,color-mix(in srgb,var(--c1) 85%,#fff) 90%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 3px 12px rgba(0,0,0,.9));
  transition:transform .45s cubic-bezier(.2,.9,.3,1.3),filter .45s;
}
/* mini play chip — center, always visible */
.ep-card .mini-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);z-index:3;
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:rgba(4,6,12,.5);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.28);
  opacity:0;transition:opacity .4s,transform .4s cubic-bezier(.2,.9,.3,1.4),background .4s;
}
.ep-card .mini-play svg{width:17px;height:17px;fill:#fff;margin-left:2px}
.ep-card:hover .mini-play{opacity:1;transform:translate(-50%,-50%) scale(1)}
.ep-card:hover .mini-play{background:color-mix(in srgb,var(--c1) 80%,#000)}

.ep-card .body{display:block;padding:1rem 1.2rem 1.2rem;position:relative}
.ep-card h3{font-family:var(--font-display);font-weight:600;font-size:1.04rem}
.ep-card p{font-size:.87rem;color:var(--faint);margin-top:.35em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* accent line that draws itself under the card */
.ep-card::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;z-index:4;
  background:linear-gradient(90deg,var(--c1),var(--c2));
  transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.ep-card:hover{transform:translateY(-7px);border-color:color-mix(in srgb,var(--c2) 50%,transparent);
  box-shadow:0 24px 50px -18px color-mix(in srgb,var(--c2) 40%,transparent)}
.ep-card:hover::after{transform:scaleX(1)}
.ep-card:hover .thumb img{transform:scale(1.08)}
.ep-card:hover .num{transform:scale(1.14) rotate(-4deg);
  filter:drop-shadow(0 4px 18px color-mix(in srgb,var(--c1) 65%,transparent))}
.ep-card:hover .ep-tag{border-color:color-mix(in srgb,var(--c2) 75%,transparent);
  box-shadow:0 6px 22px -6px color-mix(in srgb,var(--c1) 60%,transparent)}

/* ============================================================
   EPISODE PAGE — player
   ============================================================ */
.watch{position:relative;padding:calc(var(--nav-h) + 46px) 0 3rem}
.watch-head{text-align:center;margin-bottom:2.2rem}
.watch-head .crumb{
  font-family:var(--font-display);font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--faint);
}
.watch-head .crumb a{color:var(--muted);transition:.3s}
.watch-head .crumb a:hover{color:var(--c2)}
.watch-head h1{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,3.6vw,2.8rem);margin-top:.5em}
.player-shell{
  position:relative;max-width:1020px;margin:0 auto;padding:14px;border-radius:var(--radius-lg);
}
.player-shell .glow{position:absolute;inset:6% -3% -8%;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--c1) 34%,transparent),transparent 72%);
  filter:blur(46px);animation:pulse-halo 5.5s ease-in-out infinite alternate}
.player{position:relative;aspect-ratio:16/9;border-radius:calc(var(--radius-lg) - 10px);overflow:hidden;background:#000}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.player .no-src{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);
  font-family:var(--font-display);letter-spacing:.1em;text-align:center;padding:2rem}

.servers{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:1.8rem}
.servers .lbl{width:100%;text-align:center;font-family:var(--font-display);font-size:.8rem;
  letter-spacing:.3em;text-transform:uppercase;color:var(--faint);margin-bottom:.2rem}
.srv{
  font-family:var(--font-display);font-weight:600;font-size:.92rem;letter-spacing:.05em;
  padding:.68em 1.5em;border-radius:99px;color:var(--muted);
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.11);
  transition:.3s;
}
.srv:hover{color:#fff;transform:translateY(-2px);border-color:color-mix(in srgb,var(--c2) 55%,transparent)}
.srv.on{
  color:#fff;background:linear-gradient(94deg,var(--c1),var(--c2));border-color:transparent;
  box-shadow:0 10px 26px -10px color-mix(in srgb,var(--c1) 70%,transparent);
}
.watch-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.8rem;flex-wrap:wrap}

/* prev / next */
.pn-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:3rem}
.pn-card{position:relative;display:flex;align-items:center;gap:1.2rem;padding:1.1rem 1.3rem;border-radius:var(--radius);overflow:hidden;
  transition:transform .4s cubic-bezier(.2,.9,.3,1.2),box-shadow .4s,border-color .4s}
.pn-card .th{display:block;width:118px;aspect-ratio:16/9;border-radius:12px;overflow:hidden;flex:none;border:1px solid rgba(255,255,255,.12)}
.pn-card .th img{width:100%;height:100%;object-fit:cover}
.pn-card .dir{font-family:var(--font-display);font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--faint)}
.pn-card h3{font-family:var(--font-display);font-weight:600;font-size:1.12rem;margin-top:.25em}
.pn-card .arrow{position:absolute;font-family:var(--font-display);font-size:1.7rem;color:var(--faint);transition:.35s}
.pn-card.prev .arrow{right:1.3rem}
.pn-card.next .arrow{right:1.3rem}
.pn-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--c1) 55%,transparent);
  box-shadow:0 20px 44px -18px color-mix(in srgb,var(--c1) 40%,transparent)}
.pn-card:hover .arrow{color:var(--c2);transform:translateX(4px)}
.pn-card.prev:hover .arrow{transform:translateX(-4px)}
.pn-card.off{opacity:.38;pointer-events:none}
.pn-card.next{ text-align:left}

/* about this episode */
.ep-about{max-width:850px;margin:3rem auto 0;padding:2.2rem 2.4rem}
.ep-about h2{font-family:var(--font-display);font-weight:700;font-size:1.4rem;margin-bottom:.7em}
.ep-about p{color:#c6cbe2;font-weight:300;font-size:1.05rem}

/* ---------- episode rail ---------- */
.rail-wrap{margin-top:3.4rem}
.rail{display:flex;gap:1.1rem;overflow-x:auto;padding:1.2rem .4rem 1.6rem;scroll-snap-type:x mandatory}
.rail::-webkit-scrollbar{height:8px}
.rail .item{
  position:relative;flex:0 0 168px;scroll-snap-align:start;border-radius:16px;overflow:hidden;
  border:1px solid rgba(255,255,255,.09);background:var(--ink-2);
  transition:transform .35s,border-color .35s,box-shadow .35s;
}
.rail .item img{display:block;aspect-ratio:16/9;width:100%;object-fit:cover;opacity:.85;transition:.4s}
.rail .item .n{display:block;padding:.5rem .7rem;font-family:var(--font-display);font-weight:600;font-size:.86rem;color:var(--muted)}
.rail .item:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--c2) 55%,transparent)}
.rail .item:hover img{opacity:1}
.rail .item.cur{border-color:var(--c2);box-shadow:0 0 0 1px var(--c2),0 14px 30px -14px color-mix(in srgb,var(--c2) 60%,transparent)}
.rail .item.cur .n{color:#fff}

/* ============================================================
   LIST PAGES (A–Z)
   ============================================================ */
.page-head{padding:calc(var(--nav-h) + 66px) 0 2.6rem;text-align:center}
.page-head h1{font-family:var(--font-display);font-weight:900;font-size:clamp(2.4rem,5.4vw,4.4rem);letter-spacing:-.02em;margin:.3em 0 .25em}
.page-head p{color:var(--muted);max-width:44em;margin:0 auto;font-weight:300;font-size:1.08rem}
.az-index{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;margin:2rem 0 0}
.az-index a{
  font-family:var(--font-display);font-weight:600;font-size:.9rem;
  width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:var(--muted);
  border:1px solid rgba(255,255,255,.08);transition:.3s;
}
.az-index a:hover{color:#fff;border-color:var(--c2);box-shadow:0 8px 20px -8px color-mix(in srgb,var(--c2) 60%,transparent);transform:translateY(-3px)}
.az-letter{
  font-family:var(--font-display);font-weight:900;font-size:2rem;margin:3rem 0 1.4rem;
  display:flex;align-items:center;gap:1.2rem;
}
.az-letter::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--c1) 55%,transparent),transparent)}
.az-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:.9rem}
.az-row{
  display:flex;align-items:center;gap:1.1rem;padding:.8rem 1rem;border-radius:16px;
  transition:transform .3s,background .3s,box-shadow .3s;
}
.az-row img{width:64px;height:64px;border-radius:12px;object-fit:cover;flex:none;border:1px solid rgba(255,255,255,.12)}
.az-row h3{font-family:var(--font-display);font-weight:600;font-size:1.06rem}
.az-row .meta{font-size:.82rem;color:var(--faint)}
.az-row:hover{transform:translateX(6px);background:rgba(255,255,255,.045);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c1) 35%,transparent)}

/* ============================================================
   ABOUT / PROSE
   ============================================================ */
.prose{max-width:820px;margin:0 auto;padding:2.6rem 3rem}
.prose p{color:#c6cbe2;font-weight:300;font-size:1.09rem;margin-bottom:1.2em}
.prose p.lead{font-size:1.24rem;color:var(--paper)}
.prose strong{color:#fff}
.prose hr{border:0;height:1px;margin:2.2rem 0;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--c1) 60%,transparent),transparent)}

/* ============================================================
   404
   ============================================================ */
.void{min-height:100svh;display:grid;place-items:center;text-align:center;padding:2rem}
.void .num{
  font-family:var(--font-display);font-weight:900;font-size:clamp(7rem,22vw,15rem);line-height:1;
  background:linear-gradient(180deg,var(--c1),var(--c2) 55%,var(--c3));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:grad-pan 6s ease-in-out infinite alternate;background-size:200% 200%;
  filter:drop-shadow(0 0 44px color-mix(in srgb,var(--c1) 40%,transparent));
}
.void p{color:var(--muted);font-size:1.15rem;margin:.8em 0 1.6em}

/* ============================================================
   FOOTER
   ============================================================ */
footer{margin-top:6rem;position:relative}
.footer-glow{position:absolute;top:-140px;left:50%;transform:translateX(-50%);width:min(900px,90%);height:200px;pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--c1) 20%,transparent),transparent);filter:blur(40px)}
.footer-inner{
  border-top:1px solid rgba(255,255,255,.08);
  padding:3.6rem 0 2.2rem;position:relative;
}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.4rem}
.footer-grid h4{font-family:var(--font-display);font-weight:700;font-size:.86rem;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);margin-bottom:1.1rem}
.footer-grid li{margin-bottom:.55rem}
.footer-grid a{color:var(--muted);transition:.25s;font-size:.98rem}
.footer-grid a:hover{color:#fff;text-shadow:0 0 18px var(--c2)}
.footer-brand .wordmark{font-family:var(--font-display);font-weight:900;font-size:2.1rem;letter-spacing:-.01em}
.footer-brand p{color:var(--faint);font-size:.94rem;margin-top:.8em;max-width:30em;font-weight:300}
.socials{display:flex;gap:.7rem;margin-top:1.3rem}
.socials a{
  width:44px;height:44px;border-radius:14px;display:grid;place-items:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:.3s;
}
.socials a svg{width:19px;height:19px;fill:var(--muted);transition:.3s}
.socials a:hover{transform:translateY(-4px);border-color:var(--c2);box-shadow:0 12px 26px -10px color-mix(in srgb,var(--c2) 55%,transparent)}
.socials a:hover svg{fill:#fff}
.copyright{
  margin-top:3rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.06);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  color:var(--faint);font-size:.88rem;
}
.copyright b{color:var(--muted)}

/* ============================================================
   TOUCH — devices without hover deserve the same richness:
   permanent accent tinting, always-visible affordances,
   and tactile :active feedback instead of hover states.
   ============================================================ */
@media (hover:none){
  /* poster cards: permanent soft glow + play chip */
  .pcard .frame{
    border-color:color-mix(in srgb,var(--pc,var(--c1)) 34%,transparent);
    box-shadow:0 16px 34px -16px color-mix(in srgb,var(--pc,var(--c1)) 38%,transparent),
               0 8px 20px -10px rgba(0,0,0,.8);
  }
  .pcard .m-play{
    display:grid;place-items:center;position:absolute;left:10px;bottom:10px;z-index:3;
    width:40px;height:40px;border-radius:50%;
    background:color-mix(in srgb,var(--pc,var(--c1)) 82%,#000);
    border:1px solid rgba(255,255,255,.35);
    box-shadow:0 8px 20px -6px color-mix(in srgb,var(--pc,var(--c1)) 70%,transparent);
  }
  .pcard .m-play svg{width:15px;height:15px;fill:#fff;margin-left:2px}
  .pcard .frame::before{display:none}          /* no shine sweep without hover */
  .pcard:active .frame{transform:scale(.965)}
  .pcard:active .m-play{transform:scale(1.12)}

  /* landscape cards */
  .lcard{border-color:color-mix(in srgb,var(--pc,var(--c3)) 30%,transparent);
    box-shadow:0 16px 34px -16px color-mix(in srgb,var(--pc,var(--c3)) 30%,transparent)}
  .lcard:active{transform:scale(.975)}

  /* episode tiles: mini-play always on, gentle accent border */
  .ep-card{border-color:color-mix(in srgb,var(--c1) 26%,transparent)}
  .ep-card .mini-play{opacity:.92;transform:translate(-50%,-50%) scale(1)}
  .ep-card::after{transform:scaleX(.35)}
  .ep-card:active{transform:scale(.975)}
  .ep-card:active .mini-play{background:color-mix(in srgb,var(--c1) 80%,#000)}

  /* A–Z rows show a chevron so they read as tappable */
  .az-row::after{content:'›';margin-left:auto;font-family:var(--font-display);
    font-size:1.3rem;color:color-mix(in srgb,var(--c1) 70%,#fff)}
  .az-row:active{background:rgba(255,255,255,.06)}

  /* buttons & nav pills: tactile press */
  .btn:active{transform:scale(.96)}
  .srv:active{transform:scale(.95)}

  /* rail items */
  .rail .item:active{transform:scale(.96)}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr;gap:4rem}
  .fan{height:480px;max-width:560px;margin:0 auto}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  body{font-size:16px}
  .ahero-panel{grid-template-columns:1fr;padding:1.8rem;gap:1.8rem}
  .ahero .poster{max-width:210px;margin:0 auto}
  .pn-grid{grid-template-columns:1fr}
  .grid-posters{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
  .fan{height:390px;max-width:340px}
  .fan .card-f{width:150px;border-radius:16px}
  .fan .card-f:nth-child(1){left:0;top:10%}
  .fan .card-f:nth-child(2){left:26%;top:0}
  .fan .card-f:nth-child(3){left:52%;top:12%}
  .fan .card-f:nth-child(4){left:12%;top:44%}
  .fan .card-f:nth-child(5){left:44%;top:48%}
  .prose{padding:1.8rem 1.5rem}
  .footer-grid{grid-template-columns:1fr;gap:1.8rem}
  .tab-panels .panel,.story-single{padding:1.6rem 1.4rem}
  .ep-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
  .ep-card .num{font-size:2.6rem}
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
  .rise{opacity:1}
}
