/* The page reads as a captured broadcast: editorial type, restrained red tally lights,
   and frames that become more controlled as the story moves backstage. */
html{scroll-padding-top:76px;scroll-behavior:auto}
/* One fixed image anchors the whole case; translucent chapter grades preserve legibility. */
body{background-color:#07111c;background-image:linear-gradient(rgba(5,12,21,.34),rgba(5,12,21,.34)),url("../assets/season-25/surveillance-town.png");background-position:center,center 57%;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}
.section{overflow:clip}
.index{letter-spacing:.16em}
.title{text-wrap:balance}
.copy,.lead,.beat p,.role p{overflow-wrap:anywhere;text-wrap:pretty}
.bar{z-index:40}
.chapter-nav a{position:relative;padding:8px 0;transition:color .25s ease}
.chapter-nav a[aria-current="location"]{color:var(--red)}
.chapter-nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.chapter-nav a:hover::after,.chapter-nav a:focus-visible::after{transform:scaleX(1)}

.hero{height:185svh;min-height:1040px;padding:0;position:relative;background:rgba(5,11,20,.2);overflow:visible}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(79,102,119,.16),transparent 50%);pointer-events:none}
.hero .inner{position:sticky;top:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(12px,2vh,24px);height:calc(100svh - 66px);max-width:none;overflow:hidden;margin:0;background:linear-gradient(90deg,rgba(5,11,20,.64),rgba(6,13,24,.08) 50%,rgba(5,11,20,.32))}
.hero .inner::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(5,10,18,.57),rgba(6,10,18,.04) 65%),linear-gradient(0deg,rgba(6,11,19,.58),transparent 38%)}
.hero .inner::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.32;background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(0,0,0,.16) 5px 6px);mix-blend-mode:soft-light}
.hero-copy{position:relative;z-index:2;width:min(90vw,1060px);text-align:center}
.hero-signal{display:inline-flex;align-items:center;gap:11px;color:#f2c3bb;font:11px Georgia,serif;letter-spacing:.24em}
.hero-signal i{display:block;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 16px rgba(219,101,86,.85);animation:season-tally 2.1s ease-in-out infinite}
.hero h1{margin:6px 0 0;font-size:clamp(60px,7.5vw,108px);line-height:.98;letter-spacing:-.09em;white-space:nowrap}
.hero-en{margin:5px 0 6px;font-size:clamp(18px,2.1vw,26px)}
.hero-meta{font-size:11px}
.hero .question{max-width:none;margin:9px 0 0;font-size:clamp(22px,2.3vw,29px);line-height:1.35;text-wrap:balance}
.hero .question br{display:none}
.hero-scroll-note{display:block;margin-top:8px;color:var(--blue);font:11px Georgia,serif;letter-spacing:.12em}
.hero-poster{position:relative;z-index:1;width:min(90vw,calc((100svh - 365px) * 1.83),1260px);aspect-ratio:1271/695;overflow:hidden;border:1px solid rgba(238,232,221,.35);box-shadow:0 42px 120px rgba(0,0,0,.7);transform-origin:center;will-change:transform}
.hero-poster img{width:100%;height:100%;object-fit:cover}
.hero-frame{position:absolute;z-index:3;width:17px;height:17px;border-color:rgba(238,232,221,.45);border-style:solid;pointer-events:none}
.hero-frame--tl{top:20px;left:20px;border-width:1px 0 0 1px}.hero-frame--tr{top:20px;right:20px;border-width:1px 1px 0 0}.hero-frame--bl{bottom:20px;left:20px;border-width:0 0 1px 1px}.hero-frame--br{bottom:20px;right:20px;border-width:0 1px 1px 0}

.question-section{position:relative;background:linear-gradient(180deg,rgba(14,25,34,.78),rgba(20,32,42,.82))}
.question-section::after{content:"CAMERA 01";position:absolute;right:5vw;top:9vw;color:rgba(238,232,221,.045);font:clamp(54px,9vw,144px) Georgia,serif;pointer-events:none}
.question-layout{position:relative;z-index:1}
.question-layout .media{box-shadow:0 24px 65px rgba(0,0,0,.22)}
.question-layout .media{aspect-ratio:1}
.question-layout .media img{width:100%;height:100%;object-fit:contain}
.film-stills{gap:clamp(12px,2vw,26px)}
.film-stills .media{position:relative;overflow:hidden;border:1px solid var(--line);background:#11191e}
.film-stills .media::after{content:"● REC";position:absolute;top:14px;left:16px;color:#f3b6aa;font:11px Georgia,serif;letter-spacing:.14em;text-shadow:0 1px 7px #000}
.film-stills img{width:100%;height:clamp(320px,46vw,680px);object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.film-stills .media:hover img{transform:scale(1.045)}

.arc{background:rgba(21,34,44,.8)}
.arc-story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(42px,7vw,110px);align-items:start}
.arc-heading{position:sticky;top:clamp(110px,17vh,180px);padding-bottom:30px}
.arc-heading .title{max-width:530px;font-size:clamp(42px,5.6vw,78px);line-height:1.3}
.arc-meter{max-width:400px;height:2px;margin-top:42px;background:rgba(238,232,221,.18);overflow:hidden}
.arc-meter-fill{display:block;width:100%;height:100%;background:var(--red);transform:scaleX(0);transform-origin:left}
.arc-count{margin-top:16px;color:var(--red);font:15px Georgia,serif;letter-spacing:.14em}
.arc-count span{font-size:28px}
.arc .beats{display:block;margin:0 0 72px;background:none}
.arc .beat{display:flex;flex-direction:column;justify-content:center;min-height:46vh;padding:32px 26px 36px 33px;border-left:1px solid rgba(238,232,221,.17);border-bottom:1px solid rgba(238,232,221,.14);background:transparent;transition:border-color .4s ease,background .4s ease}
.arc .beat:first-child{border-top:1px solid rgba(238,232,221,.14)}
.arc .beat h3{margin:18px 0 16px;font-size:clamp(45px,5vw,72px)}
.arc .beat p{max-width:420px;font-size:clamp(16px,1.5vw,20px)}
.season-motion-ready .arc .beat{opacity:.45;transform:translateX(16px)}
.season-motion-ready .arc .beat.is-active{opacity:1;transform:translateX(0);border-left-color:var(--red);background:linear-gradient(90deg,rgba(219,101,86,.075),transparent 78%)}
.arc-board{position:relative;border:1px solid var(--line);box-shadow:0 30px 90px rgba(0,0,0,.16)}
.arc-board{aspect-ratio:1164/655}
.arc-board img{width:100%;height:100%;object-fit:contain}

.characters{background:rgba(12,24,35,.83)}
.role{position:relative;overflow:hidden}
.role::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s ease}
.role:hover::before{transform:scaleX(1)}
.character-images .media{overflow:hidden;border:1px solid var(--line)}
.character-images .media{aspect-ratio:3/2}
.character-images img{width:100%;height:100%;object-fit:contain;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.character-images .media:hover img{transform:scale(1.035)}

.worlds{background:linear-gradient(180deg,rgba(35,47,56,.81) 0%,rgba(27,44,58,.78) 46%,rgba(14,29,43,.82) 100%)}
.world{position:relative;grid-template-columns:minmax(210px,.42fr) minmax(0,1fr);margin-top:100px}
.world>div:first-child{position:sticky;top:110px}
.world .media{overflow:hidden;border:1px solid rgba(238,232,221,.14);box-shadow:0 22px 80px rgba(0,0,0,.18)}
.world .media{aspect-ratio:16/9}
.world .media img{width:100%;height:100%;object-fit:contain;will-change:transform}
.world:first-of-type .world-no{color:#efb48a}

.screens{height:100svh;min-height:760px;padding:0;background:rgba(7,17,27,.86);overflow:hidden}
.screens .inner{height:100%;max-width:none;padding:clamp(86px,12vh,130px) clamp(18px,5vw,82px) clamp(35px,5vh,60px);display:flex;flex-direction:column}
.screens .index{margin-bottom:14px}
.screens .title{margin-bottom:8px;font-size:clamp(34px,4.2vw,60px)}
.screens-hint{color:var(--muted);font:12px Georgia,serif;letter-spacing:.08em}
.screens-hint span{margin-left:12px;color:var(--red)}
.screen-viewport{flex:1;min-height:0;overflow:hidden;margin-top:clamp(19px,3vh,30px)}
.screen-grid{display:flex;align-items:stretch;width:max-content;height:100%;gap:clamp(16px,2vw,28px);margin:0;will-change:transform}
.screen-card{display:grid;grid-template-columns:minmax(100px,.48fr) minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:clamp(10px,1.5vw,25px);width:clamp(400px,49vw,700px);min-height:0;height:100%;padding:clamp(18px,2vw,28px);border:1px solid rgba(238,232,221,.2);background:#18242b}
.screen-card .screen-no{grid-column:1/-1}
.screen-card h3{align-self:center;grid-column:1;grid-row:2;min-height:0;margin:0;font-size:clamp(25px,3vw,42px);line-height:1.32;text-wrap:balance}
.screen-card .media{grid-column:2;grid-row:2/4;min-height:0;overflow:hidden;align-self:stretch;display:grid;place-items:center;background:#0d151a}
.screen-card img{width:100%;height:100%;max-height:none;object-fit:contain}
.screen-card .screen-note{grid-column:1;grid-row:3;align-self:end;margin:0;font-size:10px}
.screen-progress{height:2px;margin-top:20px;background:rgba(238,232,221,.2);overflow:hidden}
.screen-progress span{display:block;width:100%;height:100%;background:var(--red);transform:scaleX(.06);transform-origin:left}

.production{background:rgba(20,38,51,.82)}
.production-list div{position:relative}
.production-list div::after{content:"";position:absolute;inset:auto 0 0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.production-list div:hover::after{transform:scaleX(1)}
.production .media{aspect-ratio:743/418}
.production .media img{width:100%;height:100%;object-fit:contain}
.final{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(8,20,32,.82),rgba(5,12,21,.74))}
.final::before{content:"25";position:absolute;left:50%;top:2%;transform:translateX(-50%);color:rgba(238,232,221,.025);font:clamp(400px,60vw,900px)/1 Georgia,serif;pointer-events:none}
.final .inner{position:relative}
.film-showcase{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);align-items:center;gap:clamp(48px,8vw,130px);min-height:800px;text-align:left}
.film-intro{position:relative;z-index:2}
.film-intro .title{margin:0 0 17px;font-size:clamp(48px,6vw,84px)}
.film-intro .lead{margin:0 0 12px;font-size:clamp(23px,2.3vw,31px)}
.film-intro .film-meta{line-height:1.8}
.film-hint{margin-top:45px;color:var(--muted);font-size:15px;line-height:1.9;letter-spacing:.04em}
.clip-controls{display:flex;align-items:center;gap:17px;margin-top:24px}
.clip-arrow{display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(238,232,221,.44);border-radius:50%;background:rgba(238,232,221,.04);color:var(--paper);font:27px Georgia,serif;cursor:pointer;transition:background .3s,border-color .3s,transform .3s}
.clip-arrow:hover,.clip-arrow:focus-visible{background:var(--red);border-color:var(--red);transform:scale(1.06)}
.clip-arrow:focus-visible,.clip-slide:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
.clip-counter{min-width:86px;color:var(--blue);font:17px Georgia,serif;letter-spacing:.14em;text-align:center}
.clip-progress{height:2px;width:min(100%,360px);margin-top:30px;background:rgba(238,232,221,.17)}
.clip-progress span{display:block;width:100%;height:100%;background:var(--red);transform:scaleX(0);transform-origin:left}
.clip-rail{position:relative;isolation:isolate;width:100%;height:min(84svh,780px);min-height:660px;overflow:hidden;mask-image:linear-gradient(transparent,#000 7% 93%,transparent)}
.clip-slide{position:absolute;left:50%;display:block;padding:0;overflow:hidden;border:1px solid rgba(238,232,221,.3);border-radius:22px;background:#0b1219;color:var(--paper);cursor:pointer;transform:translateX(-50%);transition:top .8s cubic-bezier(.2,.8,.2,1),height .8s cubic-bezier(.2,.8,.2,1),width .8s cubic-bezier(.2,.8,.2,1),opacity .6s,border-radius .8s}
.clip-slide video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#10171b}
.clip-slide::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.52));pointer-events:none}
.clip-id{position:absolute;z-index:1;right:18px;bottom:12px;font:15px Georgia,serif;letter-spacing:.13em;text-shadow:0 1px 8px #000}
.clip-slide[data-position="-2"]{z-index:1;top:-3%;height:7%;width:66%;opacity:.35;border-radius:14px}
.clip-slide[data-position="-1"]{z-index:2;top:5%;height:8%;width:83%;opacity:.75;border-radius:15px}
.clip-slide[data-position="0"]{z-index:5;top:14%;height:72%;width:87%;opacity:1;border-radius:26px;box-shadow:0 25px 85px rgba(0,0,0,.55);border-color:rgba(238,232,221,.55)}
.clip-slide[data-position="1"]{z-index:2;top:87%;height:8%;width:83%;opacity:.75;border-radius:15px}
.clip-slide[data-position="2"]{z-index:1;top:96%;height:7%;width:66%;opacity:.35;border-radius:14px}
.clip-slide:not([data-position]){z-index:0;top:50%;height:5%;width:60%;opacity:0;pointer-events:none}
.clip-slide[data-position="0"] .clip-id{font-size:18px}
.clip-slide[data-position="-2"] .clip-id,.clip-slide[data-position="2"] .clip-id{display:none}
.final-quote{margin-top:75px}
.end-card{letter-spacing:.13em}
@keyframes season-tally{50%{opacity:.35;box-shadow:0 0 3px rgba(219,101,86,.25)}}

@media(max-width:900px){
  .hero{height:160svh;min-height:840px}
  .hero-copy{width:88vw}
  .hero-poster{width:min(88vw,calc((100svh - 365px) * 1.83))}
  .arc-story{grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:35px}
  .screen-card{width:65vw}
  .film-showcase{grid-template-columns:minmax(0,.8fr) minmax(300px,1fr);gap:25px}
  .clip-rail{height:700px}
}
@media(max-width:700px){
  html{scroll-padding-top:58px}
  .hero{height:auto;min-height:0;padding:0;overflow:hidden}
  .hero .inner{position:relative;top:auto;height:auto;min-height:0;padding:80px 18px 64px;background-position:center}
  .hero-copy,.hero-poster{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:100%}
  .hero-copy{z-index:2}
  .hero h1{font-size:clamp(66px,17vw,120px)}
  .hero-en{font-size:21px}
  .hero .question{margin:20px 0 0;font-size:clamp(22px,6.3vw,33px)}
  .hero .question br{display:block}
  .hero-scroll-note{margin-top:19px}
  .hero-poster{margin:35px auto 0;aspect-ratio:1271/695;transform:none!important}
  .hero-frame{display:none}
  .film-stills img{height:49vw}
  .arc-story{display:block}
  .arc-heading{position:relative;top:auto}
  .arc-heading .title{font-size:clamp(35px,8vw,56px)}
  .arc-meter{margin-top:24px}
  .arc .beats{margin:18px 0 46px}
  .arc .beat{min-height:0;padding:27px 20px 31px;border-left-color:var(--red)}
  .arc .beat h3{font-size:39px}
  .season-motion-ready .arc .beat{opacity:1;transform:none}
  .world>div:first-child{position:relative;top:auto}
  .world{margin-top:62px}
  .world .media img{transform:none!important}
  .screens{height:auto;min-height:0;padding:0;overflow:hidden}
  .screens .inner{height:auto;padding:72px 18px}
  .screens .title{font-size:clamp(34px,8vw,52px)}
  .screens-hint,.screen-progress{display:none}
  .screen-viewport{overflow:visible;margin-top:27px}
  .screen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;height:auto;gap:12px;transform:none!important}
  .screen-card{display:flex;flex-direction:column;width:auto;height:auto;min-width:0;padding:13px}
  .screen-card h3{align-self:stretch;min-height:0;margin:12px 0;font-size:clamp(19px,4.8vw,27px)}
  .screen-card .media{width:100%;height:48vw;max-height:360px}
  .screen-card .screen-note{margin-top:9px;font-size:9px}
  .film-showcase{display:flex;flex-direction:column;align-items:stretch;gap:20px;min-height:0}
  .film-intro{text-align:center}
  .film-intro .title{font-size:clamp(37px,8vw,58px)}
  .film-hint{margin-top:25px}
  .clip-controls{justify-content:center}
  .clip-progress{margin-left:auto;margin-right:auto}
  .clip-rail{height:690px;min-height:0;max-width:510px;margin:0 auto}
  .clip-slide[data-position="0"]{width:72%}
}
@media(max-width:430px){
  .screen-grid{grid-template-columns:1fr}
  .screen-card{display:grid;grid-template-columns:1fr 1.1fr;grid-template-rows:auto 1fr auto;min-height:240px}
  .screen-card .screen-no{grid-column:1/-1}
  .screen-card h3{grid-column:1;grid-row:2;align-self:center}
  .screen-card .media{grid-column:2;grid-row:2/4;height:230px}
  .screen-card .screen-note{grid-column:1;grid-row:3;align-self:end}
}
@media(prefers-reduced-motion:reduce){
  .hero-signal i{animation:none}
  .hero-poster,.world .media img{will-change:auto}
  .season-motion-ready .arc .beat{opacity:1;transform:none}
  .clip-slide{transition:none}
}
