.story-screen{background:var(--night-950);color:var(--paper);overflow:clip;color-scheme:dark}
html:has(#screen-shift.is-active){scroll-behavior:auto}
.story-screen [hidden]{display:none!important}
.story-screen .sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.story-screen button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(211,129,37,.22)}
.story-screen h1,.story-screen h2,.story-screen h3{text-wrap:balance}
.story-hero{position:relative;min-height:clamp(560px,70svh,660px);padding:0;display:grid;align-items:start;overflow:hidden;isolation:isolate;background:var(--night-1000)}
.story-hero>.story-hero-media{position:absolute;inset:0;z-index:-3;width:100%;height:100%;display:block;object-fit:cover;object-position:center 48%;filter:saturate(.9) contrast(1.03)}
.story-hero:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(4,7,8,.48) 0,rgba(4,7,8,.1) 70%),linear-gradient(180deg,rgba(4,7,8,.08) 24%,rgba(4,7,8,.18) 58%,rgba(6,9,10,.96) 100%);pointer-events:none}
.story-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:-1;height:150px;background:linear-gradient(180deg,transparent,var(--night-950));pointer-events:none}
.story-hero-copy{padding:clamp(68px,10svh,100px) 20px 120px}
.story-hero-copy h1{font-size:clamp(4rem,18vw,6.15rem);line-height:.82;margin-bottom:24px;text-transform:uppercase;text-shadow:0 4px 30px rgba(0,0,0,.3)}
.story-hero-copy>p:last-child{max-width:min(56vw,230px);margin:0;color:#dce2e2;font-size:17px;line-height:1.5;text-shadow:0 2px 16px rgba(0,0,0,.5)}
.story-atlas{display:block;background-image:url('media/shift/summer-story-atlas.webp');background-repeat:no-repeat;background-size:200% auto;background-color:#0a0e10}
.story-atlas-storm{background-position:left top}
.story-atlas-heat{background-position:right top}
.story-atlas-event{background-position:left bottom}
.story-atlas-ending{background-position:right bottom}
.story-atlas-field-storm{background-image:url('media/shift/summer-story-atlas-2.webp');background-position:left top}
.story-atlas-field-heat{background-image:url('media/shift/summer-story-atlas-2.webp');background-position:right top}
.story-atlas-field-event{background-image:url('media/shift/summer-story-atlas-2.webp');background-position:left bottom}
.story-atlas-dispatch{background-image:url('media/shift/summer-story-atlas-2.webp');background-position:right bottom}
.story-atlas-ending-safe{background-image:url('media/shift/summer-ending-atlas.webp');background-position:left top}
.story-atlas-ending-caution{background-image:url('media/shift/summer-ending-atlas.webp');background-position:right top}
.story-atlas-ending-critical{background-image:url('media/shift/summer-ending-atlas.webp');background-position:left bottom}
.story-atlas-ending-event{background-image:url('media/shift/summer-ending-atlas.webp');background-position:right bottom}
.story-library{position:relative;z-index:3;margin-top:-54px;padding:0 0 118px;overflow:hidden;border-top:1px solid rgba(211,129,37,.55);border-radius:28px 28px 0 0;background:linear-gradient(180deg,#101719 0,var(--night-950) 190px);box-shadow:0 -24px 60px rgba(0,0,0,.5)}
.story-library:before{content:"";position:absolute;left:50%;top:13px;width:52px;height:3px;border-radius:999px;background:var(--color-action);box-shadow:0 0 18px rgba(211,129,37,.72);transform:translateX(-50%)}
.story-library-meta{min-height:52px;padding:27px 20px 8px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;color:#bfc8ca;font:700 11px/1 var(--font-data);letter-spacing:.06em;text-transform:uppercase}
.story-library-meta i{height:1px;background:linear-gradient(90deg,rgba(211,129,37,.72),rgba(95,111,116,.35))}
.story-library .section-head{padding:14px 20px 12px}
.story-library .section-head h2{max-width:420px;font-size:clamp(2rem,9vw,2.8rem);line-height:.98}
.story-library>.prototype-note{margin:18px 18px 22px;padding:13px 14px;border:1px solid rgba(121,139,144,.25);border-left:3px solid var(--color-action);border-radius:0 var(--radius-1) var(--radius-1) 0;background:rgba(18,27,30,.72);color:#cbd4d5!important;font-size:12px!important;line-height:1.5}
.story-cards{display:grid;gap:12px;padding:0 14px}
.story-card{position:relative;min-height:250px;padding:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-2);background:var(--color-surface);color:var(--paper);text-align:left;cursor:pointer;isolation:isolate}
.story-card-image{position:absolute;inset:0;z-index:-2;transition:transform 700ms var(--ease-out),filter 240ms ease}
.story-card:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,9,10,.05),rgba(6,9,10,.95) 88%)}
.story-card-copy{min-height:250px;padding:118px 18px 18px;display:flex;flex-direction:column;align-items:flex-start}
.story-card-copy small{font:700 12px/1.2 var(--font-data);color:var(--light-warm);text-transform:uppercase;letter-spacing:.06em}
.story-card-copy b{margin-top:8px;font:700 34px/.94 var(--font-display);letter-spacing:-.035em}
.story-card-copy em{margin-top:8px;color:#d7dddd;font-size:15px;font-style:normal}
.story-card-status{margin-top:9px;padding:5px 8px;border:1px solid currentColor;border-radius:999px;font:700 11px/1.15 var(--font-data);letter-spacing:.035em}
.story-card-status.is-active{color:#ffd193;background:rgba(85,54,22,.72)}
.story-card-status.is-complete{color:#aee3c2;background:rgba(18,62,40,.72)}
.story-card-copy>.story-card-role{width:100%;min-height:44px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700}
.story-card svg,.novel-choice svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.story-card:hover,.story-card:focus-visible{border-color:var(--color-action);box-shadow:0 16px 34px rgba(0,0,0,.3)}
.story-card:hover .story-card-image,.story-card:focus-visible .story-card-image{transform:scale(1.035);filter:brightness(1.06)}
.story-card:active{transform:scale(.99)}
.story-resume{position:relative;z-index:2;display:block;width:calc(100% - 28px);min-height:50px;margin:0 14px 14px;padding:12px 16px;border:1px solid var(--color-action);border-radius:var(--radius-1);background:#2d2118;color:var(--paper);font-weight:700;cursor:pointer;scroll-margin-block:100px}

.incident-dialog{width:min(calc(100% - 24px),456px);max-height:min(86vh,720px);margin:auto;padding:0;border:1px solid #b75b42;border-radius:var(--radius-2);overflow:auto;overscroll-behavior:contain;background:#13191b;color:var(--paper);box-shadow:0 24px 80px rgba(0,0,0,.7)}
.incident-dialog::backdrop{background:rgba(2,5,6,.78);backdrop-filter:blur(5px)}
.incident-dialog[open]{animation:incident-in 240ms var(--ease-out)}
@keyframes incident-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.incident-pulse{height:78px;display:flex;align-items:center;gap:5px;padding:0 20px;background:#251513;overflow:hidden}
.incident-pulse i{width:12%;height:2px;background:#ef7979;box-shadow:0 0 14px rgba(239,121,121,.5)}
.incident-pulse i:nth-child(2){width:24%;transform:skewY(-35deg) scaleY(11)}
.incident-pulse i:nth-child(3){width:52%}
.incident-label{margin:20px 20px 12px;display:flex;align-items:center;gap:9px;color:#ffb3a1;font:700 12px/1 var(--font-data);text-transform:uppercase;letter-spacing:.08em}
.incident-label span{width:9px;height:9px;border-radius:50%;background:#ef7979;box-shadow:0 0 0 7px rgba(239,121,121,.12)}
.incident-meta{margin:0 20px 18px;display:flex;align-items:center;gap:10px;font-family:var(--font-data);font-size:13px;color:var(--color-text-muted)}
.incident-meta b{color:var(--light-warm)}
.incident-dialog h2{margin:0 20px 12px;font-size:36px}
.incident-dialog>p:not(.incident-label){margin-left:20px;margin-right:20px;font-size:16px;line-height:1.55}
.incident-detail{padding:13px 14px;border-left:3px solid #ef7979;background:#221b1a;color:#e6dcda}
.incident-actions{position:sticky;z-index:3;bottom:0;padding:12px 20px max(18px,env(safe-area-inset-bottom));display:grid;gap:8px;border-top:1px solid rgba(239,121,121,.22);background:linear-gradient(180deg,rgba(19,25,27,.9),#13191b 22%);box-shadow:0 -12px 28px rgba(8,12,13,.34)}
.incident-actions .text-action{min-height:44px;color:#ccd3d4}

.novel{min-height:calc(100vh - 74px);padding-bottom:max(24px,env(safe-area-inset-bottom));background:var(--night-1000);overscroll-behavior:contain}
.novel-topbar{position:sticky;top:0;z-index:12;min-height:70px;padding:10px 14px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"exit meta" "progress progress";align-items:center;gap:8px 14px;border-bottom:1px solid var(--color-border);background:rgba(6,9,10,.94);backdrop-filter:blur(10px)}
.novel-exit{grid-area:exit;min-width:78px;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-1);background:transparent;color:var(--paper);font-size:13px;font-weight:700;cursor:pointer}
.novel-topbar>.novel-meta{grid-area:meta;display:flex;justify-content:space-between;gap:10px;font:700 12px/1.2 var(--font-data);text-transform:uppercase}
.novel-topbar>.novel-meta span{color:var(--color-text-muted)}
.novel-topbar>.novel-progress-rail{grid-area:progress;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;width:100%;height:8px;align-items:center}
.novel-progress-rail i{height:3px;border-radius:999px;background:#344044;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);transition:background-color 220ms ease,box-shadow 220ms ease,transform 220ms var(--ease-out)}
.novel-progress-rail i.is-done{background:#9b6228}
.novel-progress-rail i.is-current{background:var(--color-action);box-shadow:0 0 12px rgba(211,129,37,.55);transform:scaleY(1.65)}
.novel-stage{position:relative;aspect-ratio:4/3;margin:0;overflow:hidden;background:#090d0f;isolation:isolate}
.novel-stage>.story-atlas{position:absolute;z-index:0;inset:-2%;transform:scale(1.02);will-change:auto;contain:paint}
.novel-frame-2{filter:saturate(.94) brightness(.94)}
.novel-frame-3{filter:saturate(.88) contrast(1.04)}
.novel-vignette{position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,rgba(4,7,8,.06),rgba(4,7,8,.1) 56%,rgba(4,7,8,.84));pointer-events:none}
.signal-line{position:absolute;z-index:3;left:14px;right:14px;bottom:39px;height:10px;background:linear-gradient(var(--color-action),var(--color-action)) left center/var(--scene-progress,25%) 2px no-repeat,linear-gradient(#526064,#526064) left center/100% 1px no-repeat;filter:drop-shadow(0 0 7px rgba(211,129,37,.55));opacity:.94}
.signal-line:after{content:"";position:absolute;left:clamp(0px,calc(var(--scene-progress,25%) - 5px),calc(100% - 10px));top:0;width:10px;height:10px;border:2px solid #19120a;border-radius:50%;background:var(--color-action);box-shadow:0 0 0 3px rgba(211,129,37,.2),0 0 12px rgba(211,129,37,.55)}
.signal-line i{display:none}
.novel-stage figcaption{position:absolute;z-index:4;left:14px;right:14px;bottom:12px;display:flex;justify-content:space-between;gap:10px;color:#fff;font:700 12px/1.2 var(--font-data);text-transform:uppercase;letter-spacing:.06em}
.novel-stage figcaption span{color:var(--light-warm)}

.novel-dialogue,.novel-consequence{padding:24px 18px max(42px,env(safe-area-inset-bottom));background:var(--night-950)}
.novel-speaker{margin-bottom:10px;color:var(--light-warm);font:700 12px/1.2 var(--font-data);text-transform:uppercase;letter-spacing:.07em}
.novel-dialogue h1,.novel-consequence h2{font-size:32px;line-height:1.08;margin-bottom:12px}
.story-screen [tabindex="-1"]:focus{outline:none}
.story-screen [tabindex="-1"]:focus-visible{outline:none;box-shadow:-4px 0 0 var(--color-focus)}
.novel-dialogue>p:not(.novel-speaker),.novel-consequence>p:not(.verdict-chip){color:#d6dcdd;font-size:16px;line-height:1.58}
.novel-choices{display:grid;gap:10px;margin-top:24px}
.novel-choice{position:relative;min-height:72px;padding:14px 46px 14px 56px;border:1px solid var(--color-border-strong);border-left:3px solid #6e7b7e;border-radius:var(--radius-1);background:var(--color-surface);color:var(--paper);text-align:left;cursor:pointer;transition:background-color 180ms ease,border-color 180ms ease,box-shadow 180ms ease,transform 180ms var(--ease-out),opacity 180ms ease;animation:choice-in 240ms var(--ease-out) both}
.novel-choice:nth-child(2){animation-delay:35ms}.novel-choice:nth-child(3){animation-delay:70ms}
@keyframes choice-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.novel-choice>span{position:absolute;left:14px;top:14px;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--color-action);color:var(--light-warm);font:700 12px/1 var(--font-data)}
.novel-choice b{font-size:15px;line-height:1.4;font-weight:650}
.novel-choice svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--color-action)}
.novel-choice:hover,.novel-choice:focus-visible{border-color:var(--color-action);border-left-color:var(--color-action);background:var(--color-surface-raised);box-shadow:0 10px 24px rgba(0,0,0,.2)}
.novel-choice:active{transform:scale(.99)}

.novel-consequence{min-height:340px;animation:consequence-in 240ms var(--ease-out)}
@keyframes consequence-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.verdict-chip{width:max-content;max-width:100%;min-height:38px;margin-bottom:20px;padding:8px 11px;display:flex;align-items:center;gap:8px;border:1px solid;border-radius:999px;font:700 12px/1.2 var(--font-data);text-transform:uppercase;letter-spacing:.04em}
.verdict-chip svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2}
.verdict-allowed{color:#aee3c2;background:#12251b;border-color:#366b4b}
.verdict-conditional{color:#f2d098;background:#2b2215;border-color:#75582d}
.verdict-forbidden{color:#ffb3a1;background:#2c1714;border-color:#8f493d}
.novel-consequence .primary-action{margin-top:24px}

.novel-ending{min-height:100vh;background:var(--night-1000);padding-bottom:calc(98px + env(safe-area-inset-bottom))}
.ending-stage{position:relative;aspect-ratio:4/3;margin:0;overflow:hidden;background:#06090a;isolation:isolate}
.ending-stage>.story-atlas{position:absolute;z-index:0;inset:-2%;transform:scale(1.02);will-change:auto;contain:paint}
.ending-stage:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,rgba(6,9,10,.04),rgba(6,9,10,.65));pointer-events:none}
.ending-critical .ending-stage:after{background:linear-gradient(180deg,rgba(23,11,12,.12),rgba(10,7,9,.7))}
.ending-caution .ending-stage>.story-atlas{filter:saturate(.85) brightness(.92)}
.ending-critical .ending-stage>.story-atlas{filter:saturate(.68) brightness(.82)}
.ending-lights{position:absolute;z-index:3;left:18px;right:18px;bottom:24px;height:18px;display:grid;grid-template-columns:repeat(6,1fr);align-items:center;gap:10px}
.ending-lights:before{content:"";position:absolute;left:0;right:0;top:8px;height:1px;background:rgba(255,255,255,.22)}
.ending-lights i{position:relative;justify-self:center;width:10px;height:10px;border:1px solid #ffe0b5;border-radius:50%;background:#ffc16c;box-shadow:0 0 0 3px rgba(6,9,10,.58),0 0 12px rgba(226,138,46,.45)}
.ending-caution .ending-lights i:nth-child(n+5){border-color:#b88d50;background:#795c35;box-shadow:0 0 0 3px rgba(6,9,10,.58)}
.ending-critical .ending-lights i{border-color:#bd786c;background:#744a42;box-shadow:0 0 0 3px rgba(6,9,10,.58)}
.ending-copy{padding:28px 18px 0}
.ending-verdict{margin-bottom:12px;color:var(--light-warm);font:700 13px/1.2 var(--font-data);text-transform:uppercase;letter-spacing:.06em}
.ending-critical .ending-verdict{color:#ffb3a1}
.ending-copy>h2{font-size:40px;margin-bottom:14px}
.ending-copy>p:not(.eyebrow,.ending-verdict,.result-note){color:#d6dcdd;font-size:17px;line-height:1.55}
.ending-explanation{margin:24px 0;padding:18px;border-left:3px solid var(--color-action);background:var(--color-surface)}
.ending-critical .ending-explanation{border-left-color:#ef7979}
.ending-explanation b{font-family:var(--font-display);font-size:21px}
.ending-explanation p{margin:8px 0 0;color:#d7ddde;font-size:15px;line-height:1.5}
.decision-review{margin-top:30px}
.decision-review h3{font:700 24px/1.1 var(--font-display)}
.review-item{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--color-border)}
.review-item>span{width:30px;height:30px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%}
.review-item svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2}
.review-item small{display:block;margin-bottom:5px;font:700 11px/1.2 var(--font-data);text-transform:uppercase;letter-spacing:.05em}
.review-item b{display:block;font-size:14px;line-height:1.4}
.review-item p{margin:7px 0 0;color:var(--color-text-muted);font-size:13px;line-height:1.45}
.review-allowed>span,.review-allowed small{color:#8fd5aa}.review-conditional>span,.review-conditional small{color:#f0c47e}.review-forbidden>span,.review-forbidden small{color:#ef9987}
.pedestrian-note{margin:26px 0;padding:18px;border:1px solid var(--color-border);background:#121a1d}
.pedestrian-note b{font-size:17px}.pedestrian-note p{margin:8px 0 0;color:#d5dcdd;font-size:14px;line-height:1.5}
.novel-ending .result-note{margin:20px 0;background:var(--color-surface)}
.novel-ending .result-actions{display:grid;grid-template-columns:1fr;gap:9px}
.novel-ending .result-actions button{width:100%;min-height:50px;justify-content:center}
body.story-is-playing .bottom-nav{display:none!important;transform:translateY(110%);pointer-events:none}
body.story-is-playing .story-hero,body.story-is-playing .story-library{display:none!important}

/* Atmosphere belongs to the frame, below captions and outside all controls. */
.story-atmosphere{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none;contain:paint}
.story-atmosphere>i{position:absolute;display:block;inset:-12%;opacity:0;animation-duration:18s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
.story-visual-stage[data-motion="none"]>.story-atmosphere,.story-visual-stage[data-has-video="true"]>.story-atmosphere{display:none}
.story-visual-stage.is-entering[data-camera="push-in"]>.story-atlas:not(.story-frame-ghost){animation:story-push-in 18s ease-out both}
.story-visual-stage.is-entering[data-camera="pull-back"]>.story-atlas:not(.story-frame-ghost){animation:story-pull-back 18s ease-out both}
.story-visual-stage.is-entering[data-camera="drift-left"]>.story-atlas:not(.story-frame-ghost){animation:story-drift-left 20s ease-in-out both}
.story-visual-stage.is-entering[data-camera="drift-right"]>.story-atlas:not(.story-frame-ghost){animation:story-drift-right 20s ease-in-out both}
@keyframes story-push-in{from{transform:scale(1.01)}to{transform:scale(1.06)}}
@keyframes story-pull-back{from{transform:scale(1.06)}to{transform:scale(1.01)}}
@keyframes story-drift-left{from{transform:scale(1.045) translate3d(1.1%,0,0)}to{transform:scale(1.045) translate3d(-1.1%,0,0)}}
@keyframes story-drift-right{from{transform:scale(1.045) translate3d(-1.1%,0,0)}to{transform:scale(1.045) translate3d(1.1%,0,0)}}
.story-visual-stage[data-motion="rain"] .story-atmosphere>i:first-child{opacity:.2;background:repeating-linear-gradient(106deg,transparent 0 44px,rgba(209,230,241,.44) 45px,transparent 46px 94px);animation:story-rain-near 4s linear infinite}
.story-visual-stage[data-motion="rain"] .story-atmosphere>i:nth-child(2){opacity:.13;background:repeating-linear-gradient(105deg,transparent 0 69px,rgba(225,240,251,.4) 70px,transparent 71px 136px);animation:story-rain-far 6s linear infinite}
.story-visual-stage[data-motion="rain"] .story-atmosphere>i:last-child{opacity:.15;background:linear-gradient(180deg,rgba(128,166,191,.28),transparent 60%,rgba(95,153,180,.2))}
@keyframes story-rain-near{from{transform:translate3d(-47px,-12%,0)}to{transform:translate3d(47px,12%,0)}}
@keyframes story-rain-far{from{transform:translate3d(-68px,-8%,0)}to{transform:translate3d(68px,8%,0)}}
.story-visual-stage[data-motion="snow"] .story-atmosphere>i:first-child{opacity:.48;background:radial-gradient(ellipse at 20% 30%,rgba(231,240,247,.8) 0 1px,transparent 2px),radial-gradient(ellipse at 73% 72%,rgba(223,233,245,.65) 0 1.4px,transparent 2.4px);background-size:93px 107px,127px 141px;animation:story-snow 16s linear infinite}
.story-visual-stage[data-motion="snow"] .story-atmosphere>i:nth-child(2){opacity:.25;background:radial-gradient(circle at 42% 28%,rgba(230,240,251,.8) 0 1px,transparent 2px);background-size:67px 83px;animation:story-snow-far 24s linear infinite}
.story-visual-stage[data-motion="snow"] .story-atmosphere>i:last-child{opacity:.12;background:linear-gradient(180deg,rgba(158,187,216,.25),transparent 65%)}
@keyframes story-snow{from{transform:translate3d(-8px,-107px,0)}to{transform:translate3d(12px,0,0)}}
@keyframes story-snow-far{from{transform:translate3d(10px,-83px,0)}to{transform:translate3d(-6px,0,0)}}
.story-visual-stage[data-motion="fog"] .story-atmosphere>i:first-child{opacity:.3;background:radial-gradient(ellipse at 20% 75%,rgba(187,210,216,.56),transparent 58%);animation-name:story-mist}
.story-visual-stage[data-motion="fog"] .story-atmosphere>i:nth-child(2){opacity:.24;background:radial-gradient(ellipse at 82% 55%,rgba(198,211,212,.5),transparent 52%);animation:story-mist 26s ease-in-out infinite alternate-reverse}
.story-visual-stage[data-motion="fog"] .story-atmosphere>i:last-child{opacity:.15;background:linear-gradient(0deg,rgba(147,173,182,.5),transparent 70%)}
@keyframes story-mist{from{transform:translate3d(-5%,0,0)}to{transform:translate3d(5%,1%,0)}}
.story-visual-stage[data-motion="water"] .story-atmosphere>i:first-child{inset:52% -12% -12%;opacity:.2;background:repeating-linear-gradient(177deg,transparent 0 28px,rgba(179,224,238,.45) 29px,transparent 32px 52px);mask-image:linear-gradient(transparent,#000 50%);animation-name:story-water}
.story-visual-stage[data-motion="water"] .story-atmosphere>i:nth-child(2){inset:60% -12% -12%;opacity:.2;background:radial-gradient(ellipse at 65% 60%,rgba(115,192,212,.44),transparent 65%);animation:story-mist 22s ease-in-out infinite alternate-reverse}
@keyframes story-water{from{transform:translate3d(-2%,0,0) scaleY(.97)}to{transform:translate3d(2%,1%,0) scaleY(1.03)}}
.story-visual-stage[data-motion="wind"] .story-atmosphere>i:first-child{opacity:.18;background:linear-gradient(164deg,transparent 34%,rgba(174,199,201,.3) 35%,transparent 36% 63%,rgba(174,199,201,.18) 64%,transparent 65%);animation:story-wind 14s ease-in-out infinite alternate}
.story-visual-stage[data-motion="wind"] .story-atmosphere>i:nth-child(2){opacity:.14;background:radial-gradient(ellipse at 80% 35%,rgba(151,177,184,.28),transparent 60%);animation-name:story-mist}
.story-visual-stage[data-motion="leaves"] .story-atmosphere>i:first-child{opacity:.35;background:radial-gradient(ellipse 3px 1px at 17% 29%,#b29c63 80%,transparent),radial-gradient(ellipse 2px 4px at 71% 63%,#a47d4b 80%,transparent),radial-gradient(ellipse 4px 2px at 38% 79%,#aaa66d 80%,transparent);background-size:197px 229px;animation:story-leaves 18s ease-in-out infinite alternate}
.story-visual-stage[data-motion="leaves"] .story-atmosphere>i:nth-child(2){opacity:.14;background:linear-gradient(165deg,transparent 40%,rgba(169,193,160,.2) 48%,transparent 55%);animation-name:story-wind}
@keyframes story-wind{from{transform:translate3d(-7%,-1%,0)}to{transform:translate3d(7%,1%,0)}}
@keyframes story-leaves{from{transform:translate3d(-6%,-4%,0) rotate(-2deg)}to{transform:translate3d(6%,4%,0) rotate(2deg)}}
.story-visual-stage[data-motion="quiet"] .story-atmosphere>i:first-child{opacity:.15;background:radial-gradient(ellipse at 65% 15%,rgba(122,153,197,.25),transparent 65%),linear-gradient(0deg,rgba(22,39,67,.25),transparent 65%)}
.story-visual-stage[data-motion="heat"] .story-atmosphere>i:first-child{opacity:.18;background:radial-gradient(ellipse at 72% 35%,rgba(241,171,90,.5),transparent 55%);animation:story-warm-air 16s ease-in-out infinite alternate}
.story-visual-stage[data-motion="heat"] .story-atmosphere>i:nth-child(2){inset:40% -12% -12%;opacity:.16;background:linear-gradient(0deg,rgba(213,145,69,.4),transparent 90%);animation:story-mist 21s ease-in-out infinite alternate-reverse}
@keyframes story-warm-air{from{transform:translate3d(-2%,1%,0) scale(.98);opacity:.14}to{transform:translate3d(2%,-1%,0) scale(1.03);opacity:.22}}
.story-visual-stage[data-motion="headlights"] .story-atmosphere>i:first-child{opacity:.25;background:linear-gradient(108deg,transparent 39%,rgba(235,227,184,.24) 47%,rgba(247,239,208,.35) 49%,transparent 56%);animation:story-headlights 18s ease-in-out infinite alternate}
.story-visual-stage[data-motion="headlights"] .story-atmosphere>i:nth-child(2){inset:50% -12% -12%;opacity:.15;background:radial-gradient(ellipse at 65% 70%,rgba(241,223,164,.4),transparent 50%);animation-name:story-mist}
@keyframes story-headlights{from{transform:translate3d(-14%,0,0)}to{transform:translate3d(14%,0,0)}}
.story-visual-stage[data-motion="stage"] .story-atmosphere>i:first-child{opacity:.2;background:radial-gradient(ellipse at 23% 0,rgba(255,203,137,.46),transparent 54%),radial-gradient(ellipse at 82% 18%,rgba(196,216,252,.34),transparent 52%);animation:story-stage-light 20s ease-in-out infinite alternate}
.story-visual-stage[data-motion="stage"] .story-atmosphere>i:nth-child(2){opacity:.12;background:linear-gradient(180deg,rgba(246,196,126,.22),transparent 75%)}
@keyframes story-stage-light{from{transform:scale(1);opacity:.16}to{transform:scale(1.025);opacity:.23}}
.story-visual-stage[data-motion="monitor"] .story-atmosphere>i:first-child{opacity:.22;background:linear-gradient(180deg,transparent 35%,rgba(91,183,197,.18) 49%,transparent 62%);animation:story-monitor 20s ease-in-out infinite alternate}
.story-visual-stage[data-motion="monitor"] .story-atmosphere>i:nth-child(2){opacity:.1;background:radial-gradient(ellipse at 45% 55%,rgba(63,169,198,.5),transparent 68%)}
@keyframes story-monitor{from{transform:translate3d(0,-17%,0)}to{transform:translate3d(0,17%,0)}}
.story-visual-stage[data-motion="dawn"] .story-atmosphere>i:first-child{opacity:.22;background:radial-gradient(ellipse at 82% 35%,rgba(252,195,122,.4),transparent 64%),linear-gradient(0deg,transparent 45%,rgba(166,191,220,.22));animation:story-dawn 24s ease-in-out infinite alternate}
@keyframes story-dawn{from{transform:translate3d(-1%,0,0);opacity:.18}to{transform:translate3d(1%,0,0);opacity:.24}}
.story-visual-stage[data-motion-paused="true"]>.story-atlas,.story-visual-stage[data-motion-paused="true"] .story-atmosphere>i{animation-play-state:paused!important;will-change:auto}

@media(min-width:600px){
  .story-cards{grid-template-columns:1fr 1fr}.story-card:first-child{grid-column:1/-1}
  .novel-stage,.ending-stage{aspect-ratio:16/9}
  .novel-dialogue,.novel-consequence,.ending-copy{padding-left:28px;padding-right:28px}
}
@media(min-width:760px) and (orientation:landscape){
  body.story-is-playing .app-shell{overflow:visible}
  body.story-is-playing .app-shell:has(.novel:not([hidden])){width:min(calc(100% - 48px),1080px)}
  body.story-is-playing .story-screen{overflow:visible}
  .novel{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);grid-template-rows:auto auto;min-height:calc(100vh - 48px);align-items:start;align-content:start}
  .novel-topbar{grid-column:1/-1;top:24px}
  .novel-stage{position:sticky;top:106px;height:auto;aspect-ratio:1;align-self:start}
  .novel-dialogue,.novel-consequence{max-height:none;overflow:visible;padding:32px 24px 64px}
}
@media(max-width:340px){
  .story-hero{min-height:540px}.story-hero-copy{padding-left:16px;padding-right:16px}.story-hero-copy h1{font-size:3.7rem}.story-card-copy b{font-size:29px}
  .novel-dialogue,.novel-consequence,.ending-copy{padding-left:14px;padding-right:14px}
  .novel-choice{padding-left:52px;padding-right:39px}.incident-dialog h2{font-size:30px}
}
@media(prefers-reduced-motion:reduce){
  .story-screen *{scroll-behavior:auto!important}
  .story-card-image,.novel-stage>.story-atlas,.signal-line:after,.incident-label span,.incident-dialog[open],.novel-choice,.novel-consequence,.ending-lights i,.ending-stage>.story-atlas,.ending-stage:after,.story-atmosphere>i{animation:none!important;transition:none!important;transform:none!important}
}
.story-atlas.story-custom-image{background-position:var(--story-image-position,center)!important;background-size:cover!important;background-repeat:no-repeat!important}
.novel-managed-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:#05090b}.novel-managed-audio{display:block;width:100%;margin:14px 0 18px;accent-color:var(--orange)}.ending-copy>.novel-managed-audio{margin:18px 0}.ending-stage .novel-managed-video{z-index:2}
