/* Full-viewport chapters: one scene at a time, with controls outside the scene. */
body:has(.slide-deck), .roles-page { height: 100svh; overflow: hidden; }
body:has(.slide-deck) > footer, .roles-page > footer { display: none; }
.slide-deck { position: relative; width: 100%; height: 100svh; overflow: hidden; }
.deck-slide { position: relative; width: 100%; height: 100svh; min-height: 0; max-height: none; overflow: hidden; }
.deck-slide[hidden] { display: none !important; }
.slide-nav { position: absolute; z-index: 12; inset: 0; pointer-events: none; }
.slide-nav button { position: absolute; top: 50%; width: clamp(52px, 4vw, 68px); height: 82px; padding: 0 0 9px; transform: translateY(-50%); border: 1px solid var(--slide-arrow-border, rgba(127,200,255,.65)); background: var(--slide-arrow-bg, rgba(9,37,64,.88)); color: var(--slide-arrow-color, var(--blue)); box-shadow: 0 13px 36px rgba(0,0,0,.3); backdrop-filter: blur(12px); font: 300 76px/.9 var(--display); cursor: pointer; pointer-events: auto; transition: background .2s, color .2s, transform .2s; }
.slide-nav [data-slide-prev] { left: clamp(15px, 2.1vw, 38px); }
.slide-nav [data-slide-next] { right: clamp(15px, 2.1vw, 38px); }
.slide-nav button:hover:not(:disabled), .slide-nav button:focus-visible { background: var(--slide-arrow-color, var(--blue)); color: var(--night); transform: translateY(-50%) scale(1.05); }
.slide-nav button:disabled { opacity: .36; cursor: default; }
.slide-nav [data-slide-count] { position: absolute; left: 50%; bottom: 22px; min-width: 90px; padding: 9px 12px; transform: translateX(-50%); border: 1px solid rgba(190,220,250,.32); background: rgba(4,15,29,.85); color: #dce9f5; text-align: center; font: 600 11px var(--mono); letter-spacing: .12em; }
.slide-nav-hint { position: absolute; left: clamp(24px, 4vw, 72px); bottom: 31px; color: #a8c6dc; font: 600 9px var(--mono); letter-spacing: .1em; }
.story-page { --slide-arrow-bg: rgba(32,22,26,.9); --slide-arrow-border: rgba(255,160,106,.72); --slide-arrow-color: var(--copper); }
.proof-page { --slide-arrow-bg: rgba(8,39,68,.9); --slide-arrow-border: rgba(127,200,255,.72); --slide-arrow-color: var(--blue); }
.legend-page { --slide-arrow-bg: rgba(40,28,21,.92); --slide-arrow-border: rgba(255,187,114,.72); --slide-arrow-color: #ffbd72; }
.slide-link { position: absolute; z-index: 3; right: clamp(24px, 4vw, 72px); bottom: 28px; }
.story-page .incident { height: 100svh; }
.story-page .turn { height: 100svh; min-height: 0; padding-top: max(95px,12vh); padding-bottom: 95px; }
.story-page .turn-content { margin: auto 0; }
.story-page .turn-footer { margin-bottom: 8px; }
.story-page .scene-caption { bottom: 79px; }
.proof-intro, .proof-shot, .proof-close { display: flex; align-items: center; padding: max(105px, 13vh) clamp(24px, 8vw, 150px) 110px; background: radial-gradient(ellipse at 83% 8%, rgba(20,96,178,.2), transparent 43%), #050d1a; }
.proof-intro .section-heading { margin: 0; }
.proof-intro .section-heading h1 { font-size: clamp(70px, 10vw, 168px); }
.proof-shot .proof-feature { width: 100%; padding: 0; border-top: 0; }
.proof-shot .proof-number { font-size: clamp(130px, 17vw, 280px); }
.proof-shot .proof-word { font-size: clamp(125px, 14vw, 225px); }
.proof-shot .proof-description h3 { font-size: clamp(48px, 5vw, 82px); }
.proof-close .proof-footer { border: 0; padding: 0; }
.proof-close .proof-footer p { font-size: clamp(26px, 3vw, 43px); }
.legend-page .deck-slide { padding-top: max(100px, 12vh); padding-bottom: 105px; }
.legend-page .legend-stage { padding: 0; }
.legend-page .legend-stage-copy { padding-top: clamp(150px, 19vh, 225px); }
.legend-page .legend-manifesto { align-content: center; }
.legend-page .legend-voices { display: flex; flex-direction: column; justify-content: center; }
.legend-page .lore-section-heading h2 { font-size: clamp(60px, 7vw, 115px); }
.legend-page .legend-voice-grid { margin-top: clamp(20px, 3vh, 38px); }
.legend-page .legend-voice-grid blockquote { min-height: 0; }
.legend-page .legend-voice-grid p { min-height: 0; }
.legend-page .legend-finale { align-content: center; }
.legend-page .legend-finale h2 { font-size: clamp(65px, 8vw, 130px); }
.legend-page .legend-finale > p:not(.lore-kicker) { font-size: clamp(17px, 1.6vw, 22px); }
@media (min-width: 701px) {
  .legend-page .legend-finale { padding-left: max(90px, 8vw); padding-right: max(90px, 8vw); }
}
.roles-page #main, .roles-page .roles { height: 100svh; overflow: hidden; }
.roles-page .roles { display: flex; flex-direction: column; justify-content: center; padding-top: 105px; padding-bottom: 80px; }
.roles-page .roles-intro h1 { font-size: clamp(60px, 7.2vw, 112px); margin: 15px 0 10px; }
.roles-page .roles-intro > p:last-child { margin: 0; font-size: clamp(15px, 1.3vw, 19px); }
.roles-page .role-switch { margin-top: clamp(15px, 3vh, 32px); }
.roles-page .role-switch button { padding: clamp(12px, 1.8vh, 20px); }
.roles-page .role-panel { min-height: 0; flex: 0 1 auto; padding: clamp(22px, 3vh, 44px); gap: clamp(25px, 4vw, 60px); }
.roles-page .role-emblem { font-size: clamp(110px, 12vw, 200px); }
.roles-page .role-panel h3 { font-size: clamp(43px, 4vw, 67px); margin: 10px 0; }
.roles-page .role-panel p:not(.role-kicker) { font-size: clamp(14px, 1.1vw, 17px); margin: 0; }
.roles-page .role-tags { margin-top: 16px; }
.roles-page .slide-link { bottom: 22px; }
@media (max-width: 700px) {
  body:has(.slide-deck) .review-float { bottom: 120px; }
  .slide-nav button { top: auto; bottom: 58px; width: 46px; height: 46px; padding-bottom: 4px; transform: none; font-size: 45px; }
  .slide-nav [data-slide-prev] { left: 24px; }
  .slide-nav [data-slide-next] { right: 24px; }
  .slide-nav button:hover:not(:disabled), .slide-nav button:focus-visible { transform: scale(1.05); }
  .slide-nav [data-slide-count] { min-width: 64px; bottom: 13px; padding: 7px; font-size: 9px; }
  .slide-nav-hint { display: none; }
  .story-page .incident { min-height: 0; }
  .story-page .incident-content { top: 48%; transform: translateY(-48%); }
  .story-page .incident h1 { font-size: clamp(53px, 14vw, 80px); margin: 17px 0; }
  .story-page .incident-content > p:not(.eyebrow) { font-size: 16px; }
  .story-page .dialogue { margin-top: 25px; }
  .story-page .dialogue strong { font-size: 27px; }
  .story-page .hard-cut { margin-top: 14px; }
  .story-page .hard-cut strong { font-size: 22px; }
  .story-page .scene-caption { bottom: 62px; font-size: 7px; }
  .story-page .turn { padding: 95px 24px 130px; }
  .story-page .turn-content { margin: auto 0; }
  .story-page .turn h2 { font-size: clamp(54px, 12vw, 78px); }
  .story-page .turn-content > p:last-child { font-size: 19px; }
  .proof-intro, .proof-shot, .proof-close { padding: 110px 24px 95px; }
  .proof-intro .section-heading h1 { font-size: clamp(59px, 12vw, 83px); }
  .proof-shot .proof-feature { display: flex; flex-direction: column; align-items: start; gap: 25px; }
  .proof-shot .proof-number { font-size: clamp(100px, 25vw, 145px); }
  .proof-shot .proof-word { font-size: clamp(92px, 21vw, 125px); }
  .proof-shot .proof-index { margin-top: 15px; }
  .proof-shot .proof-description h3 { font-size: clamp(37px, 9vw, 52px); }
  .proof-shot .proof-description p { font-size: 15px; line-height: 1.4; }
  .proof-shot .proof-description small { font-size: 10px; margin-top: 10px; padding-top: 10px; }
  .proof-close .proof-footer p { font-size: clamp(22px, 6vw, 30px); }
  .legend-page .deck-slide { padding: 100px 24px 95px; }
  .legend-page .legend-stage { padding: 0; min-height: 0; }
  .legend-page .legend-stage-copy { padding: 145px 24px 95px; }
  .legend-page .legend-stage h1 { font-size: clamp(51px, 12vw, 78px); }
  .legend-page .legend-manifesto h2 { font-size: clamp(51px, 12vw, 74px); }
  .legend-page .legend-manifesto > p:last-child { font-size: 18px; }
  .legend-page .lore-section-heading h2 { font-size: clamp(52px, 11vw, 75px); }
  .legend-page .legend-voice-grid { gap: 14px; }
  .legend-page .legend-voice-grid blockquote { min-height: 0; padding: 12px; }
  .legend-page .legend-voice-grid p { font-size: clamp(10px, 2.8vw, 13px); line-height: 1.24; }
  .legend-page .legend-voice-grid cite { font-size: 7px; }
  .legend-page .legend-finale h2 { font-size: clamp(55px, 11vw, 75px); }
  .legend-page .legend-finale > p:not(.lore-kicker) { font-size: 16px; }
  .legend-page .legend-finale .lore-actions { gap: 8px; margin-top: 14px; }
  .legend-page .legend-finale .lore-actions a:not(.next-link) { padding: 10px; font-size: 9px; }
  .legend-page .legend-finale .lore-hashtags { margin-top: 11px; font-size: 8px !important; }
  .roles-page .roles { padding: 96px 24px 78px; }
  .roles-page .roles-intro h1 { font-size: clamp(53px, 11vw, 75px); }
  .roles-page .roles-intro > p:last-child { font-size: 14px; line-height: 1.35; }
  .roles-page .role-switch { grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 18px; }
  .roles-page .role-switch button { font-size: 8px; letter-spacing: 0; padding: 10px; }
  .roles-page .role-switch b { display: none; }
  .roles-page .role-panel { display: block; padding: 20px; }
  .roles-page .role-emblem { display: none; }
  .roles-page .role-panel h3 { font-size: 40px; }
  .roles-page .role-panel p:not(.role-kicker) { font-size: 13px; line-height: 1.4; }
  .roles-page .role-tags span { padding: 6px; font-size: 8px; }
}
@media (max-width: 700px) and (max-height: 700px) {
  body:has(.slide-deck) .review-float { display: none; }
}
@media (max-height: 700px) {
  .legend-page .deck-slide { padding-top: 88px; padding-bottom: 76px; }
  .legend-page .legend-stage { padding: 0; }
  .legend-page .lore-section-heading h2 { font-size: clamp(48px, 6vw, 90px); }
  .legend-page .legend-voice-grid blockquote { min-height: 0; }
  .legend-page .legend-voice-grid { margin-top: 14px; }
  .legend-page .legend-finale h2 { margin: 12px 0 15px; font-size: clamp(53px, 7vw, 95px); }
  .legend-page .legend-finale .legend-terms { margin-top: 7px; }
  .legend-page .legend-finale .lore-actions { margin-top: 12px; }
  .roles-page .roles { padding-top: 90px; padding-bottom: 70px; }
  .roles-page .role-switch { margin-top: 12px; }
  .roles-page .role-panel { padding: 18px; }
}
/* Compact windows retain the entire scene inside the viewport. */
.story-page .scene-caption { display: none; }
.story-page .incident-content { transform: translateY(-52%); }
.story-page .incident h1 { font-size: clamp(72px, 7.8vw, 125px); }
.story-page .dialogue { margin-top: clamp(18px, 3vh, 35px); }
.story-page .hard-cut { margin-top: 12px; }
.legend-page .legend-stage-copy { padding-top: clamp(120px, 15vh, 175px); }
.legend-page .legend-stage h1 { font-size: clamp(59px, 7vw, 112px); margin-bottom: 16px; }
.legend-page .legend-flame { font-size: .46em; vertical-align: middle; }
.roles-page .role-panel[hidden] { display: none !important; }
.roles-page .review-float { top: 105px; bottom: auto; width: 245px; padding: 17px; }
.roles-page .review-float blockquote { font-size: 12px; }
.roles-page .review-float cite { margin-bottom: 8px; }
@media (max-width: 700px) {
  .story-page .incident-content { transform: translateY(-50%); }
  .story-page .incident h1 { font-size: clamp(53px, 14vw, 80px); }
  .roles-page .review-float { top: auto; bottom: 10px; width: min(245px, calc(100vw - 26px)); padding: 8px 12px 7px; }
  .roles-page .review-float blockquote { font-size: 11px; }
  .legend-page .legend-stage-copy { padding-top: 145px; }
  .legend-page .legend-stage h1 { font-size: clamp(51px, 12vw, 78px); }
}
body:has(.slide-deck):not(.is-first-slide) .review-float { display: none; }
@media (max-width: 700px) {
  .roles-page .review-float { display: none; }
}
.roles-page .roles { position: relative; padding-top: 86px; padding-bottom: 100px; }
.roles-page .roles-shell { width: 100%; flex: 0 0 auto; transform-origin: center center; }
@media (max-width: 700px) {
  .roles-page .roles { padding-top: 80px; padding-bottom: 80px; }
}
@media (max-width: 700px) and (max-height: 700px) {
  .proof-shot { padding-top: 95px; padding-bottom: 80px; }
  .legend-page .legend-voices { padding-top: 75px; padding-bottom: 65px; }
  .legend-page .legend-voices .lore-section-heading h2 { font-size: 47px; }
  .legend-page .legend-voice-grid { gap: 7px; margin-top: 13px; }
  .legend-page .legend-voice-grid blockquote { padding: 10px; }
  .legend-page .legend-voice-grid p { margin-bottom: 5px; font-size: 10px; }
  .legend-page .legend-finale .lore-hashtags { display: none; }
}
