:root{--red:#FD0001;--red-rgb:253 0 1}
@font-face{font-family:Rockstar;src:url('assets/rockstar.05d1f7d2a2fb.otf') format('opentype');font-weight:800;font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#030303;color:#f3f0ec;font-family:Rockstar,Impact,sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible{outline:2px solid #fff;outline-offset:6px}button:disabled{cursor:wait}button:hover{color:var(--red)}#app{height:100dvh;position:relative}.screen{display:none;position:absolute;inset:0}.screen.active{display:flex}#start{align-items:center;justify-content:center}.start-art{position:relative;width:min(100vw,179.18dvh);aspect-ratio:2048/1143}.start-art>img:first-child{width:100%;height:100%;display:block}.start-logo{position:absolute;left:2.4%;top:1.4%;width:29.7%;height:44.5%;object-fit:contain;background:transparent}.start-art #enter{position:absolute;left:34%;width:32%;bottom:5%;height:9%;background:transparent;border:1px solid transparent;transition:border-color .2s,box-shadow .2s}.start-art #enter:hover,.start-art #enter:focus-visible{border-color:var(--red);box-shadow:0 0 30px rgb(var(--red-rgb) / 0.1882);color:#fff}.start-art #enter:disabled{opacity:.4}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#loading{position:absolute;bottom:12px;font-size:14px;letter-spacing:2px;color:#969696}#loading span{color:#fff;margin-left:12px}.audio-toggle{position:absolute;right:20px;bottom:16px;font-size:12px;letter-spacing:1px;background:#05050588;border:1px solid #555;padding:8px 10px;z-index:20}body:has(#play.active) .audio-toggle{bottom:52px;right:18px;opacity:.65}#select{flex-direction:column;align-items:center;justify-content:center;padding:2vh 3vw 3vh;background:#000}.select-logo{height:21vh;min-height:85px;width:min(750px,58vw);overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:2vh}.select-logo img{width:100%;flex-shrink:0}#characters{width:100%;max-width:1680px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.2vw}.character{position:relative;padding:0;background:#080808;border:1px solid #949494;text-align:center;min-width:0;transition:border-color .16s,transform .16s}.character .name{display:block;padding:9px 1px 7px;border-top:1px solid #777;font-size:clamp(14px,1.7vw,29px);white-space:nowrap;letter-spacing:.2px}.character.selected{border:2px solid var(--red);box-shadow:0 0 8px rgb(var(--red-rgb) / 0.8),0 0 30px rgb(var(--red-rgb) / 0.3333);transform:translateY(-3px)}.character.selected:before,.character.selected:after{content:'';position:absolute;inset:-9px;pointer-events:none;background:linear-gradient(var(--red),var(--red)) top left/25px 3px no-repeat,linear-gradient(var(--red),var(--red)) top left/3px 25px no-repeat,linear-gradient(var(--red),var(--red)) bottom right/25px 3px no-repeat,linear-gradient(var(--red),var(--red)) bottom right/3px 25px no-repeat}.character .badge{position:absolute;top:9px;left:9px;padding:5px 8px;font-size:12px;letter-spacing:1px;background:#030303dd;border:1px solid #555}.character .badge.done{background:var(--red);color:white;border:0}.character .soon{position:absolute;bottom:48px;right:8px;font-size:12px;color:#ddd;background:#000a;padding:5px 7px;letter-spacing:1px}.select-footer{text-align:center;margin-top:3.6vh}.select-footer h1{color:var(--red);margin:0 0 10px;font-size:clamp(26px,3.3vw,48px);letter-spacing:2px}.select-footer h1:before,.select-footer h1:after{content:'┼';margin:0 25px;font-size:.8em}.select-footer p{margin:0 0 13px;font-size:clamp(14px,1.7vw,24px);letter-spacing:2px}.completion-row{display:flex;align-items:center;justify-content:center;gap:18px}#completion{display:flex;width:min(540px,45vw);height:24px;border:1px solid #ccc}#completion i{width:16.666%;border-right:1px solid #aaa}#completion i:last-child{border:0}#completion i.filled{background:var(--red);box-shadow:0 0 12px rgb(var(--red-rgb) / 0.2667)}#completion-label{font-size:24px;min-width:48px}.select-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:18px;font-size:14px;letter-spacing:1px;color:#999}.select-controls button{background:var(--red);padding:11px 24px;color:#fff;font-size:16px}.select-controls button:hover{background:var(--red)}.select-controls #selection-note{width:110px;font-size:12px}#play{background:#181818}#game{width:100%;height:100%;display:block;outline:none;cursor:crosshair;touch-action:none}#hud{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:2.3vw;background:linear-gradient(#030303f0,#080808d9);border-bottom:1px solid #ffffff24;padding:15px 24px 16px;pointer-events:none;height:90px;box-shadow:0 6px 25px #0008}#hud button{pointer-events:auto;background:transparent;font-size:26px;padding:8px}.hud-brand{width:95px;text-align:center;flex-shrink:0}.hud-brand img{width:78px;height:28px;object-fit:contain;display:block;margin:0 auto 5px}.hud-brand span{font-size:12px;letter-spacing:1px}.health-block{flex:1;max-width:245px}.dumb-block{flex:1.2;max-width:340px}.meter-label{display:flex;justify-content:space-between;margin-bottom:9px;font-size:16px;letter-spacing:1px}.meter-label span:last-child{color:#b5b5b5}.track{height:9px;background:#4445;border:1px solid #ffffff30}.track>div{height:100%;transition:width .12s;width:0;background:#edecdf}#health-fill{width:100%;background:var(--red)}#dumb-fill{background:var(--red);box-shadow:0 0 15px rgb(var(--red-rgb) / 0.2)}.wave-block{display:flex;flex-direction:column;gap:7px;white-space:nowrap;margin-left:auto}.wave-block b{font-size:23px;letter-spacing:1px}.wave-block>span{font-size:12px;letter-spacing:1px;color:#aaa}.wanted-block{display:flex;flex-direction:column;align-items:flex-end;gap:5px}#stars{color:var(--red);font-size:25px;letter-spacing:2px;font-family:Arial,sans-serif}.wanted-block small{font-size:12px;letter-spacing:2px;color:#bbb}#announcement{position:absolute;top:26%;left:0;right:0;display:flex;flex-direction:column;align-items:center;text-align:center;pointer-events:none;opacity:0;transform:scale(.94);transition:opacity .25s,transform .25s;text-shadow:0 3px 15px #000,0 0 35px #000}#announcement.show{opacity:1;transform:scale(1)}#announcement strong{font-size:clamp(36px,6vw,88px);letter-spacing:3px}#announcement span{font-size:18px;letter-spacing:3px;margin-top:8px}.game-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(transparent,#030303d9);padding:25px 25px 16px;pointer-events:none}#control-hint{display:flex;gap:20px;font-size:13px;letter-spacing:.7px}#control-hint i{font-style:normal;color:#999;margin-left:6px}#district{font-size:14px;color:#adada8;letter-spacing:2px}.overlay{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;background:#000a;backdrop-filter:blur(5px)}.overlay[hidden]{display:none}.overlay-card{text-align:center;padding:40px;max-width:620px}#overlay-eyebrow{color:var(--red);letter-spacing:4px;font-size:17px}.overlay h2{margin:15px 0;font-size:clamp(50px,7vw,100px);letter-spacing:2px}.overlay p{font:16px/1.6 Arial,sans-serif;color:#ccc;white-space:pre-line}.overlay button{padding:13px 28px;background:var(--red);min-width:150px;font-size:19px;letter-spacing:1px;margin:12px 6px;color:#fff}.overlay button.secondary{border:1px solid #666;background:#111}.overlay button:hover{background:var(--red)}#touch-controls{display:none}.dumb #hud{border-bottom-color:var(--red)}.dumb #dumb-title{color:var(--red)}.dumb #district{color:white}.dumb #announcement strong{color:white}.low-health #health-fill{background:var(--red)}
@media(max-height:700px) and (min-width:701px){.select-logo{height:17vh}.portrait{--portrait-height:40vh}.select-footer{margin-top:2vh}.select-footer h1{font-size:29px;margin-bottom:6px}.select-footer p{font-size:16px;margin-bottom:8px}.select-controls{margin-top:8px}#completion{height:18px}}
@media(max-width:900px){#hud{gap:14px;padding:13px;height:82px}.hud-brand{width:70px}.hud-brand img{width:65px}.meter-label{font-size:13px}.wave-block b{font-size:18px}#stars{font-size:18px;letter-spacing:0}.wanted-block small{font-size:10px}#control-hint{gap:12px;font-size:11px}#district{display:none}}
@media(max-width:700px){#select{padding:12px 20px 28px;justify-content:flex-start;overflow-y:auto}.select-logo{width:75vw;height:15vh;min-height:70px;margin-bottom:10px}#characters{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.portrait{--portrait-height:23vh}.character .name{font-size:13px;padding:7px 0}.character .soon{display:none}.character .badge{font-size:10px;padding:3px;top:4px;left:4px}.select-footer{margin-top:22px}.select-footer h1{font-size:23px;letter-spacing:1px}.select-footer h1:before,.select-footer h1:after{margin:0 9px}.select-footer p{font-size:12px;letter-spacing:1px}#completion{width:65vw;height:18px}#completion-label{font-size:19px}.select-controls{gap:10px;margin-top:12px}.select-controls>span{display:none}.select-controls button{font-size:14px}.audio-toggle{right:8px;bottom:8px;font-size:10px}.hud-brand{display:none}#hud{height:73px;gap:9px}.meter-label{font-size:12px;letter-spacing:0}.wave-block b{font-size:14px}.wave-block>span{font-size:10px}.wanted-block{display:none}#hud #pause{font-size:20px;padding:3px}.game-bottom{display:none}.start-art{width:100vw}.start-logo{background:transparent}#loading{bottom:15%;font-size:12px}body:has(#play.active) .audio-toggle{bottom:auto;top:84px;right:10px}}
@media(pointer:coarse){#touch-controls{display:flex;position:absolute;bottom:22px;left:22px;right:22px;justify-content:space-between;align-items:end;pointer-events:none}.touch-drive{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,48px);gap:5px;pointer-events:auto}.touch-drive button{background:#0008;border:1px solid #ffffff50;font-size:23px;touch-action:none;user-select:none}.touch-drive button:first-child{grid-column:2}.touch-drive button:nth-child(2){grid-row:2;grid-column:1}.touch-drive button:nth-child(3){grid-row:2;grid-column:2}.touch-drive button:nth-child(4){grid-row:2;grid-column:3}#touch-fire{pointer-events:auto;background:rgb(var(--red-rgb) / 0.6588);border:2px solid var(--red);width:76px;height:76px;border-radius:50%;font-size:20px;touch-action:none;user-select:none}#control-hint{display:none}.game-bottom{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.select-logo{height:22vh;overflow:visible;margin-bottom:1vh}.select-logo img{height:100%;width:auto;max-width:100%;object-fit:contain}.character.selected:before{background:linear-gradient(var(--red),var(--red)) top left/25px 3px no-repeat,linear-gradient(var(--red),var(--red)) top left/3px 25px no-repeat,linear-gradient(var(--red),var(--red)) top right/25px 3px no-repeat,linear-gradient(var(--red),var(--red)) top right/3px 25px no-repeat,linear-gradient(var(--red),var(--red)) bottom left/25px 3px no-repeat,linear-gradient(var(--red),var(--red)) bottom left/3px 25px no-repeat,linear-gradient(var(--red),var(--red)) bottom right/25px 3px no-repeat,linear-gradient(var(--red),var(--red)) bottom right/3px 25px no-repeat}.character.selected:after{display:none}@media(max-width:700px){.select-logo{height:14vh}}

/* UI-only revision: intact source artwork, live framing, controlled analog motion. */
.ui-filters{position:absolute;pointer-events:none;overflow:hidden}
#start{background:#000;overflow:hidden}
.start-scene{display:block;width:100%;height:100%;overflow:visible}
.start-art{transform-origin:50% 50%}
.art-link{position:absolute;display:block;background:transparent;cursor:pointer;z-index:2}
.art-link:focus-visible{outline:1px solid var(--red);outline-offset:4px}
.art-link:hover{box-shadow:inset 0 -1px var(--red)}
.awge-link{left:.35%;bottom:.4%;width:10.8%;height:6.4%}
.credit-link{right:.35%;top:.1%;width:28.3%;height:3.6%}
.start-art #enter{left:35.1%;width:29.8%;bottom:6.3%;height:5.6%;border:0}
.start-art #enter:hover,.start-art #enter:focus-visible{border:0;box-shadow:none;outline:1px solid var(--red);outline-offset:5px}
.start-art #enter:disabled{opacity:1}
#start.entering .start-art{animation:start-collapse 760ms cubic-bezier(.42,0,.34,1) both;pointer-events:none}
#start.entering .enter-prompt{transform-box:fill-box;transform-origin:center;animation:prompt-confirm 300ms ease-out both}
#start.entering .lock-mark{animation:target-lock 520ms cubic-bezier(.3,0,.25,1) both}
.lock-left{--lock-x:22px;--lock-y:0px}.lock-right{--lock-x:-22px;--lock-y:0px}.lock-top{--lock-x:0px;--lock-y:28px}.lock-bottom{--lock-x:0px;--lock-y:-28px}
.transition-hit,.crt-line{position:absolute;pointer-events:none;opacity:0;background:var(--red)}
.transition-hit{inset:0;z-index:5}
.crt-line{left:10%;right:10%;top:50%;height:2px;z-index:6;transform-origin:center}
#start.entering .transition-hit{animation:graphic-hit 760ms linear both}
#start.entering .crt-line{animation:crt-close 760ms ease-out both}
#select.resolving{animation:menu-resolve 280ms ease-out both;pointer-events:none}
#select{background:#000}
.select-logo{height:auto;min-height:0;width:clamp(180px,23vw,330px);aspect-ratio:380/97;flex-shrink:0;overflow:visible;margin:0 0 4.4vh}
.select-logo svg{display:block;width:100%;height:100%;overflow:visible}
.portrait{--portrait-height:min(43vh,520px);height:var(--portrait-height);display:flex;align-items:center;justify-content:center;overflow:hidden;background:#080808}
.card-crop{position:relative;display:block;width:min(94%,calc(var(--portrait-height) * .94 * var(--crop-w) / 415));aspect-ratio:var(--crop-w) / 415;overflow:hidden;flex-shrink:0}
.character .card-crop img{position:absolute;width:calc(1448 / var(--crop-w) * 100%);height:calc(1086 / 415 * 100%);left:calc(var(--crop-x) / var(--crop-w) * -100%);top:-66.506024%;max-width:none;max-height:none;display:block;filter:none;pointer-events:none;user-select:none}
.character.selected{box-shadow:0 0 6px rgb(var(--red-rgb) / .55),0 0 18px rgb(var(--red-rgb) / .18)}
.select-footer{background:transparent}
@keyframes target-lock{0%{transform:translate(0,0)}100%{transform:translate(var(--lock-x),var(--lock-y))}}
@keyframes prompt-confirm{0%{opacity:1;transform:scale(1)}35%{opacity:.35;transform:scale(1.012)}70%{opacity:1;transform:scale(1)}100%{opacity:.75;transform:scale(1)}}
@keyframes start-collapse{0%{transform:scale(1);opacity:1}56%{transform:scale(1.018);opacity:1}68%{transform:scale(1.022);opacity:1}88%{transform:scale(1.025,.003);opacity:.9}94%,100%{transform:scale(.1,.001);opacity:0}}
@keyframes graphic-hit{0%,60%{opacity:0}63%{opacity:.2}69%,100%{opacity:0}}
@keyframes crt-close{0%,81%{opacity:0;transform:scaleX(1)}86%{opacity:.9;transform:scaleX(1)}96%,100%{opacity:0;transform:scaleX(.03)}}
@keyframes menu-resolve{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:700px) and (min-width:701px){.portrait{--portrait-height:40vh}.select-logo{width:clamp(160px,20vw,280px);margin-bottom:3vh}}
@media(max-width:700px){.portrait{--portrait-height:23vh}.select-logo{width:190px;height:auto;min-height:0;margin:5px 0 20px}.credit-link{min-height:24px}.awge-link{min-height:28px}}
@media(prefers-reduced-motion:reduce){#start.entering .start-art{animation:reduced-exit 180ms linear both}#start.entering .lock-mark,#start.entering .enter-prompt,#start.entering .transition-hit,#start.entering .crt-line{animation:none}#select.resolving{animation:reduced-entry 200ms linear both}}
@keyframes reduced-exit{to{opacity:0}}
@keyframes reduced-entry{from{opacity:0}to{opacity:1}}

/* Master revision: transparent title layers, full-width briefing and 2DUMB Radio. */
.start-branding{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.awge-link{left:1.3%;bottom:2.2%;width:7.2%;height:4.5%}
.credit-link{right:.5%;top:.5%;width:21.5%;height:3.5%}
#start.entering #enter:after{content:'';position:absolute;left:7%;right:7%;bottom:-5px;height:2px;background:var(--red);animation:prompt-confirm 300ms ease-out both}
.select-content{display:flex;flex-direction:column;align-items:center;width:100%}
.select-logo{width:clamp(153px,20vw,280px)}
.card-crop{width:min(100%,calc(var(--portrait-height) * var(--crop-w) / 415))}
#brief{align-items:center;justify-content:center;background:#000}
.brief-art{position:relative;width:min(100vw,179.18dvh);aspect-ratio:2048/1143}
.brief-plate{position:absolute;inset:0}
.brief-plate img{width:100%;height:100%;object-fit:contain;display:block}
.brief-panel{position:absolute;top:5.8%;right:2.5%;width:26.3%;padding:1.1vw 1.2vw 1.4vw;background:linear-gradient(90deg,#0000,#000b 35%);text-shadow:0 2px 6px #000}
.brief-eyebrow{margin:0 0 10px;color:var(--red);font-size:clamp(14px,1.05vw,20px);letter-spacing:2px}
.brief-panel h1{margin:0;white-space:nowrap;font-size:clamp(32px,3vw,59px);line-height:1.05;letter-spacing:.4px}
.brief-panel h2{font-size:clamp(20px,1.6vw,31px);color:#bababa;letter-spacing:4px;margin:8px 0 22px}
.brief-copy{font-size:clamp(14px,1.13vw,21px);line-height:1.35;letter-spacing:.1px}
.brief-copy p{margin:0 0 10px}
.brief-controls{display:grid;grid-template-columns:60px 1fr;align-items:center;gap:11px 14px;border-top:1px solid #ffffff38;padding-top:18px;margin-top:20px;font-size:clamp(14px,1vw,18px)}
.brief-controls>span{color:#aaa;letter-spacing:1px}.keys{display:flex;gap:6px}kbd{font:inherit;display:inline-flex;align-items:center;justify-content:center;width:29px;height:30px;border:1px solid #999;border-radius:3px;box-shadow:0 2px 0 #555;background:#15151590}
.mouse-control{display:flex;gap:13px;align-items:center}.mouse-control svg{height:27px;width:20px;fill:none;stroke:#eee;stroke-width:1.5}.mouse-control .mouse-click{fill:var(--red);stroke:none}
#brief-ready{display:block;margin:25px 0 0;padding:8px 0;background:transparent;color:#fff;font-size:clamp(20px,1.65vw,30px);letter-spacing:2px;text-shadow:0 2px 8px #000}
#brief-ready:hover,#brief-ready:focus-visible{color:var(--red)}
.brief-back{position:absolute;left:2.2%;top:3.3%;padding:5px;background:transparent;color:#aaa;font-size:14px;letter-spacing:1px;text-shadow:0 2px 5px #000}
#sequence-fx{position:absolute;inset:0;pointer-events:none;z-index:25}
#sequence-fx.running .transition-hit{animation:graphic-hit 760ms linear both}
#sequence-fx.running .crt-line{animation:crt-close 760ms ease-out both}
.sequence-exit .sequence-content{animation:start-collapse 760ms cubic-bezier(.42,0,.34,1) both;pointer-events:none}
.card-emphasis .character.selected{animation:card-lock 520ms ease-out both;z-index:2}
#brief.resolving,#play.resolving{animation:menu-resolve 280ms ease-out both}
@keyframes card-lock{0%{transform:translateY(-3px)}55%,100%{transform:translateY(-3px) scale(1.045);box-shadow:0 0 16px rgb(var(--red-rgb) / .45)}}
#countdown{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:240px;height:240px;display:grid;place-items:center;z-index:11;pointer-events:none;text-shadow:0 4px 30px #000,0 0 45px #000}
#countdown[hidden]{display:none}#countdown span{font-size:clamp(100px,17vw,210px);line-height:1;color:#fff;animation:count-hit 260ms ease-out both}
#countdown:before,#countdown:after{content:'';position:absolute;inset:0;border:0 solid var(--red);width:24px;height:24px}
#countdown:before{border-top-width:3px;border-left-width:3px}#countdown:after{inset:auto 0 0 auto;border-bottom-width:3px;border-right-width:3px}
#countdown.go{width:320px}#countdown.go span{font-size:clamp(95px,13vw,170px);letter-spacing:3px}
@keyframes count-hit{from{transform:scale(1.16);opacity:.35}to{transform:scale(1);opacity:1}}
#radio-panel{position:absolute;right:20px;bottom:60px;z-index:40;width:350px;max-width:calc(100vw - 32px);max-height:min(78dvh,720px);overflow:auto;padding:16px;background:#080808f5;border:1px solid #777;box-shadow:0 12px 45px #000b;color:#eee}
#radio-panel[hidden]{display:none}#radio-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--red);padding-bottom:9px;font-size:14px;letter-spacing:1px}
#radio-panel button{background:transparent;padding:7px;color:inherit}#radio-panel button:hover,#radio-panel button:focus-visible{color:var(--red)}#radio-close{font-size:25px;line-height:1;padding:0 3px!important}
.now-playing{padding:17px 0 12px}.now-playing small{color:#999;letter-spacing:2px;font-size:12px}.now-playing p{font-size:19px;line-height:1.2;margin:8px 0 6px}.now-playing>span{font-size:12px;letter-spacing:.5px;color:#999}
.radio-transport{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #333;border-bottom:1px solid #333;padding:4px 0;margin-bottom:14px;font-size:14px}#radio-play{color:#fff;border-left:1px solid #444;border-right:1px solid #444;min-width:100px}
.audio-channel{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;margin:10px 0 15px;font-size:14px}.audio-channel button{text-align:left;padding:0!important;letter-spacing:1px}.audio-channel button[aria-pressed=false]{color:#777!important}.audio-channel output{color:#bcbcbc}.audio-channel input{grid-column:1/-1;width:100%;margin:0;accent-color:var(--red);height:20px;cursor:pointer}
.radio-library{border-top:1px solid #555;padding-top:12px}.radio-library summary{cursor:pointer;font-size:14px;letter-spacing:1px}.radio-library summary::marker{color:var(--red)}.radio-library summary>span{float:right;color:#888}#radio-track-list{max-height:230px;overflow-y:auto;margin-top:10px;scrollbar-color:#666 #111}
#radio-track-list button{width:100%;display:grid;grid-template-columns:22px 1fr 32px;gap:8px;text-align:left;align-items:center;padding:9px 2px;font-size:13px;line-height:1.2;border-bottom:1px solid #252525}#radio-track-list button>span:first-child,#radio-track-list small{color:#888;font-size:12px}#radio-track-list button.current{color:var(--red);border-left:2px solid var(--red);padding-left:6px}
body:has(#play.active) #radio-panel{bottom:95px}
@media(max-height:700px) and (min-width:1101px){.select-logo{width:clamp(140px,17vw,235px)}.brief-panel{top:3%;padding-top:0}.brief-panel h2{margin-bottom:12px}.brief-copy p{margin-bottom:6px}.brief-controls{margin-top:12px;padding-top:12px;gap:8px 12px}#brief-ready{margin-top:12px}}
@media(max-width:1100px){#brief{overflow-y:auto;align-items:flex-start}.brief-art{width:100%;aspect-ratio:auto}.brief-plate{position:relative;aspect-ratio:2048/1143}.brief-panel{position:relative;inset:auto;width:100%;padding:24px max(24px,6vw);background:#090909;display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.brief-eyebrow,.brief-panel h1,.brief-panel h2{grid-column:1/-1}.brief-panel h1{font-size:38px}.brief-copy{font-size:16px}.brief-controls{margin:0;padding:0;border:0;align-self:start}#brief-ready{grid-column:1/-1;font-size:25px;margin-top:18px}.brief-back{top:12px;left:16px}.brief-panel h2{margin-bottom:18px}}
@media(max-width:700px){.select-logo{width:164px}.brief-panel{display:block}.brief-panel h1{font-size:35px}.brief-copy{font-size:15px}.brief-controls{margin-top:20px;max-width:280px}.audio-toggle{z-index:41}#radio-panel{right:8px;bottom:48px;max-height:calc(100dvh - 80px)}body:has(#play.active) #radio-panel{top:118px;bottom:auto;max-height:calc(100dvh - 140px)}#countdown{width:180px;height:180px}#countdown.go{width:240px}}
@media(prefers-reduced-motion:reduce){.sequence-exit .sequence-content{animation:reduced-exit 180ms linear both}#sequence-fx.running .transition-hit,#sequence-fx.running .crt-line,.card-emphasis .character.selected{animation:none}#brief.resolving,#play.resolving{animation:reduced-entry 200ms linear both}#countdown span{animation:none}}

/* The archive is a separate, image-led layer; the game retains its existing screens. */
.moodboard-open{position:absolute;right:104px;bottom:16px;z-index:20;background:#05050588;border:1px solid #555;padding:8px 10px;font-size:12px;letter-spacing:1px}
.moodboard-open[hidden]{display:none}
#overlay.victory-state{background:linear-gradient(#0005,#000b);backdrop-filter:none}
.victory-state #overlay-copy{font-family:Rockstar,Impact,sans-serif;font-size:17px;letter-spacing:1px}
.victory-state #overlay-buttons button{background:transparent;padding:12px 8px;margin-top:28px;letter-spacing:3px;font-size:25px}
.victory-state #overlay-buttons button:hover{color:var(--red);background:transparent}
#moodboard{background:#030303;overflow:auto;overscroll-behavior:contain;scrollbar-color:#555 #030303}
#moodboard.active{display:block}
#moodboard:before,#archive-viewer:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:3;background:repeating-linear-gradient(0deg,#0000002b 0 1px,#ffffff05 1px 2px,transparent 2px 4px);opacity:.9}
#moodboard:after{content:'';position:fixed;inset:0;pointer-events:none;z-index:3;box-shadow:inset 0 0 85px #0008;background:repeating-linear-gradient(90deg,#ffffff03 0 1px,transparent 1px 3px)}
.archive-grain{position:fixed;inset:0;pointer-events:none;z-index:4;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");animation:archive-grain .34s steps(3) infinite}
@keyframes archive-grain{0%{background-position:0 0}33%{background-position:57px 31px}66%{background-position:-23px 79px}100%{background-position:81px -47px}}
.archive-shell{max-width:1520px;margin:0 auto;padding:0 10px 66px}
.archive-top{display:flex;align-items:center;justify-content:space-between;gap:15px;height:66px}
.archive-top h1{font-size:18px;letter-spacing:1.5px;margin:0;font-weight:800;text-shadow:0 0 5px #fff3}
.archive-top button{background:transparent;min-width:44px;min-height:44px;padding:8px;font-size:18px}
.archive-content{display:flex;flex-direction:column;gap:6px}
.archive-row{display:flex;gap:6px;align-items:flex-start}
.archive-piece{flex:var(--ratio) 1 0;min-width:0;margin:0}
.archive-image{display:block;width:100%;padding:0;background:transparent;position:relative;line-height:0;cursor:zoom-in;text-align:left;aspect-ratio:var(--ratio)}
.archive-image :is(img,video){width:100%;height:auto;display:block;opacity:0}
.archive-image.loaded :is(img,video){opacity:1}
.archive-image:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
.archive-image.failed:after{content:'×';position:absolute;inset:0;display:grid;place-items:center;line-height:1;font-size:24px;color:#777}
#archive-viewer{position:fixed;inset:0;border:0;margin:0;padding:10px 22px;background:#030303;color:#eee;width:100vw;height:100dvh;max-width:none;max-height:none;overflow:hidden;font-family:Rockstar,Impact,sans-serif}
#archive-viewer[open]{display:flex;flex-direction:column}#archive-viewer:not([open]){display:none}#archive-viewer::backdrop{background:#000}
#archive-viewer button{background:transparent;min-width:44px;min-height:44px;padding:8px;font-size:23px}
.viewer-top{display:flex;justify-content:flex-end;align-items:center;min-height:44px}
.viewer-stage{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-height:0;overflow:hidden}
.viewer-art,.viewer-video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.viewer-status{display:none;width:16px;height:16px;border:1px solid #666;border-top-color:var(--red);border-radius:50%;animation:archive-loading .8s linear infinite}
.loading :is(.viewer-art,.viewer-video),.failed :is(.viewer-art,.viewer-video),.viewer-art[hidden],.viewer-video[hidden]{display:none}.loading .viewer-status{display:block}
.failed .viewer-stage:after{content:'×';color:#888;font-size:28px}
.viewer-bottom{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:12px;align-items:center;min-height:64px;padding-top:10px}
.viewer-title{text-align:center;overflow-wrap:anywhere;font-size:14px;letter-spacing:.4px;margin:0;line-height:1.35}
@keyframes archive-loading{to{transform:rotate(360deg)}}
@media(max-width:600px){.moodboard-open{right:76px;bottom:8px;font-size:10px}.archive-shell{padding:0 5px 60px}.archive-top{height:54px;padding-left:5px}.archive-top h1{font-size:16px}.archive-content,.archive-row{gap:5px}#archive-viewer{padding:5px 8px}.viewer-bottom{gap:4px}.viewer-title{font-size:13px}}
/* Fixed shutters mask the visible viewport; the long archive never scales. */
#archive-transition{display:none;position:fixed;inset:0;z-index:100;pointer-events:auto;touch-action:none;overscroll-behavior:contain}
#archive-transition.running{display:block}
.archive-shutter{position:absolute;left:0;right:0;height:50.1%;background:#000;transform:scaleY(0)}
.archive-shutter.top{top:0;transform-origin:top}.archive-shutter.bottom{bottom:0;transform-origin:bottom}
.running .archive-shutter{animation:archive-gate 720ms cubic-bezier(.55,0,.22,1) both}
.to-select .archive-shutter{animation:archive-return 620ms cubic-bezier(.55,0,.22,1) both}
.archive-target{position:absolute;left:50%;top:50%;width:68px;height:68px;transform:translate(-50%,-50%);border:1px solid var(--red);opacity:0;box-shadow:2px 0 #fff6,-3px 0 rgb(var(--red-rgb)/.35)}
.archive-target:before,.archive-target:after{content:'';position:absolute;background:var(--red)}
.archive-target:before{left:-16px;right:-16px;height:1px;top:50%}.archive-target:after{top:-16px;bottom:-16px;width:1px;left:50%}
.to-archive .archive-target{animation:archive-target 280ms ease-out both}
.archive-scanline{position:absolute;top:50%;left:5%;right:5%;height:2px;background:#fff;box-shadow:0 0 10px #fff8,0 2px 3px var(--red);opacity:0;transform:scaleX(.1)}
.running .archive-scanline{animation:archive-beam 720ms ease-out both}.to-select .archive-scanline{animation-duration:620ms}
.archive-ghost h1{animation:archive-ghost 160ms steps(2) both}
@keyframes archive-gate{0%,18%{transform:scaleY(0)}35%,60%{transform:scaleY(1)}100%{transform:scaleY(0)}}
@keyframes archive-return{0%,23%{transform:scaleY(0)}40%,62%{transform:scaleY(1)}100%{transform:scaleY(0)}}
@keyframes archive-target{0%{opacity:0}18%,65%{opacity:.85}100%{opacity:0}}
@keyframes archive-beam{0%,38%{opacity:0;transform:scaleX(.1)}44%,50%{opacity:.8;transform:scaleX(1)}65%,100%{opacity:0;transform:scaleX(.04)}}
@keyframes archive-ghost{0%{text-shadow:-2px 0 var(--red),2px 0 #fff8}100%{text-shadow:0 0 5px #fff3}}
#completion-tools{display:none;border-top:1px solid #444;margin-top:14px;padding-top:10px;font-size:12px}
body:has(#select.active) #completion-tools:not([hidden]){display:block}
#reset-confirm p{font:13px/1.5 Arial,sans-serif;color:#bbb}#reset-yes{color:var(--red)!important}
@media(prefers-reduced-motion:reduce){.viewer-status,.archive-grain,.archive-ghost h1{animation:none}.archive-target,.archive-scanline{display:none}.running .archive-shutter{animation:archive-reduced 260ms linear both}}
@keyframes archive-reduced{0%{transform:scaleY(1);opacity:0}35%,65%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}

/* A stationary CRT surface on the three menus only; it never covers combat. */
:is(#start,#select,#brief)>.menu-crt{position:fixed;inset:0;pointer-events:none;z-index:4;background:repeating-linear-gradient(0deg,#00000020 0 1px,#ffffff03 1px 2px,transparent 2px 4px);box-shadow:inset 0 0 min(10vw,100px) #00000038}
:is(#start,#select,#brief)>.menu-crt:after{content:'';position:absolute;inset:0;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}

/* Character Select: local scanlines sit below labels; the original grain and vignette stay above everything. */
#select{--select-scanlines:repeating-linear-gradient(0deg,#00000020 0 1px,#ffffff03 1px 2px,transparent 2px 4px);background-image:var(--select-scanlines);background-attachment:fixed}
#select>.menu-crt{background:none}
#select .character{isolation:isolate}
#select .character:after{content:'';display:block;position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--select-scanlines)}
#select .character .name{position:relative}
#select .character :is(.name,.badge,.soon){z-index:2}
#select .select-logo{position:relative;isolation:isolate;background:#000}
#select .select-logo:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--select-scanlines)}
