@font-face{font-family:ArcadeHeadline;src:local('Impact');font-weight:400 900;font-display:swap}
:root{color-scheme:dark;--bg:#101414;--text:#e8e7de;--muted:#8d9691;--line:#2b3430;--orange:#efab68;--green:#9cae8a;--mono:ui-monospace,'SFMono-Regular',Consolas,'Liberation Mono',monospace;--head:ArcadeHeadline,Impact,'Arial Narrow',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--orange);outline-offset:5px}button{border:0}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.shell{width:min(1440px,100%);padding:0 52px;margin:auto}.site-header{height:104px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:70px}.brand{display:flex;align-items:center;gap:13px;font-family:var(--mono);font-weight:800;font-size:16px;letter-spacing:1.5px}.brand svg{width:27px;height:33px;stroke:var(--orange);fill:none;stroke-width:1.7;stroke-linecap:square}.brand-sub{display:block;font-size:8px;letter-spacing:1.8px;color:var(--muted);margin-top:7px;font-weight:400}.site-header nav{display:flex;gap:32px;font:12px var(--mono)}.site-header nav button{background:none;padding:0;color:var(--muted)}.site-header nav a span,.site-header nav button span{color:#6a756d;font-size:9px;margin-left:7px}.nav-active{position:relative}.nav-active:after{content:'';width:4px;height:4px;position:absolute;bottom:-17px;left:0;background:var(--orange)}.sound-button{margin-left:auto;border:1px solid #354038;border-radius:3px;background:transparent;display:flex;align-items:center;gap:9px;padding:11px 14px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.7px;color:#b6bdb4}.sound-button svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.4;fill:none}.sound-button[aria-pressed=true]{color:var(--orange);border-color:#76583a}.intro{display:flex;align-items:flex-end;justify-content:space-between;padding:36px 0 26px;gap:20px}.eyebrow{font:9px var(--mono);letter-spacing:1.7px;margin:0 0 14px;color:#a3ada0}.tiny-cross{color:var(--orange);font-size:13px;margin-right:7px}.slash{color:#626f64;margin:0 10px}h1{font-family:var(--head);font-size:clamp(40px,5.2vw,77px);font-weight:400;letter-spacing:.4px;line-height:1;margin:0}h1>span:not(.title-dot){color:var(--orange)}.title-dot{color:var(--orange);margin-left:2px}.intro-copy{font:11px/1.8 var(--mono);color:#97a194;margin:0 0 5px;text-align:right}.arcade{border:1px solid #3b4338;border-radius:5px;overflow:hidden;box-shadow:0 16px 80px #0003;background:#131a18}.scene{position:relative;aspect-ratio:1120/520;background:#17272d;overflow:hidden;isolation:isolate}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;outline:none!important}.scanlines{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.15;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,#000 2px,#000 3px)}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px 15px #030a0e73;z-index:1}.hud{position:absolute;z-index:2;top:27px;left:27px;right:27px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;font-family:var(--mono);text-shadow:1px 2px #0b1718}.player-hud{display:flex;gap:11px;align-items:center}.portrait{border:1px solid #afba9e85;background:#192a2b;width:43px;height:48px;box-shadow:3px 3px #0a131840}.portrait svg{display:block;width:100%;height:100%;image-rendering:pixelated}.player-info{width:154px}.player-name{font-size:9px;letter-spacing:1px;display:flex;justify-content:space-between;margin-bottom:7px;color:#e0e4cd}.player-name>span{font-size:8px;color:#c8d2b8}.health-track{padding:2px;height:10px;border:1px solid #a1ac8b90;background:#132125}.health-fill{height:100%;width:100%;background:#c8dba0;transition:width .15s}.health-fill.low{background:#e18464}.special-track{width:85px;height:3px;background:#182a2b;margin-top:6px}.special-track>div{height:100%;background:var(--orange);transition:width .15s}.location-hud{text-align:center;letter-spacing:2px;font-size:10px;line-height:1.5;padding-top:1px;color:#d7ddcc}.location-mark{color:var(--orange);margin-right:3px}.location-hud small{display:block;font-size:7px;letter-spacing:1.1px;color:#adb7a4;margin-top:5px}.location-hud small span{margin:0 5px;color:var(--orange)}.score-hud{text-align:right;min-width:130px;display:flex;flex-direction:column}.hud-label{font-size:7px;letter-spacing:2px;color:#aeb9a9}.score-hud strong{font-size:25px;letter-spacing:3px;line-height:1.5;font-weight:500}.wave-label{font-size:7px;letter-spacing:1.4px;color:var(--orange)}.start-screen,.result-screen,.pause-screen{position:absolute;z-index:3;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:#07101730;padding:110px 12px 44px}.start-kicker{color:#e2c9a5;font:8px var(--mono);letter-spacing:2px;margin:0 0 12px;text-shadow:0 2px 6px #000}.start-screen h2,.result-screen h2,.pause-screen h2{font-family:var(--head);font-size:clamp(25px,4.9vw,64px);font-weight:400;letter-spacing:2px;line-height:1.1;margin:0;color:#f7efdc;text-shadow:3px 4px #101b1d90}.start-copy{font:10px/1.7 var(--mono);color:#d4d5c3;text-shadow:1px 2px #132021;margin:12px 0 21px}.play-button{background:var(--orange);color:#202722;display:flex;align-items:center;justify-content:space-between;gap:35px;padding:17px 21px;min-width:228px;font:700 10px var(--mono);letter-spacing:1.2px;border:1px solid #ffca84;box-shadow:4px 4px 0 #0b191bb0;transition:background .15s,transform .15s}.play-button:hover{background:#ffc98a;transform:translateY(-2px)}.play-arrow{font-size:20px;font-weight:400;line-height:12px}.enter-hint{font:7px var(--mono);letter-spacing:1.4px;color:#b1b9a9;margin:17px 0 0}.enter-hint kbd{font:8px var(--mono);background:none;border:1px solid #82907d60;padding:3px 5px;margin-left:4px;border-radius:2px;color:#e4e9d9}.result-screen,.pause-screen{background:#081117bd;backdrop-filter:blur(3px)}.scene-bottom{position:absolute;bottom:15px;left:22px;right:19px;z-index:4;font:7px var(--mono);letter-spacing:1px;display:flex;align-items:center;justify-content:space-between;color:#b5bead;pointer-events:none}.scene-bottom>span{display:flex;align-items:center;gap:7px}.scene-bottom i{width:4px;height:4px;background:var(--orange)}.scene-bottom b{font-weight:400;color:#6d8177;margin:0 3px}.scene-bottom>div{display:flex;align-items:center;gap:15px}.scene-bottom button{pointer-events:auto;background:none;color:#ced7c0;font-size:18px;padding:0 5px}.live-status{font-size:6px;letter-spacing:1.5px;color:#a0b092}.controls-strip{display:flex;min-height:86px;align-items:center;justify-content:space-between;padding:13px 25px;gap:18px;background:#171e1a;border-top:1px solid #40483a}.controls-heading{display:flex;align-items:center;gap:9px;font:8px var(--mono);letter-spacing:1px;color:#7c8b79;padding-right:17px;border-right:1px solid #354031;min-height:34px}.keyboard-icon{font-size:22px;color:#a0ac95}.control{display:flex;gap:10px;align-items:center;font:9px var(--mono);color:#bcc5af;white-space:nowrap}.control>span:not(.key-group){line-height:1.4}.control small{display:block;font-size:7px;color:#6f806a;margin-top:4px}.control kbd,.help-panel kbd{display:inline-flex;align-items:center;justify-content:center;font:10px var(--mono);min-width:27px;height:28px;padding:0 7px;border:1px solid #536047;border-bottom:3px solid #536047;border-radius:4px;background:#242e23;color:#dae2ca}.control .wide-key{font-size:8px;min-width:61px}.key-group{display:flex;align-items:center;flex-direction:column;gap:3px}.key-group>kbd{height:19px;font-size:8px;min-width:21px;padding:0 4px}.key-group>span{display:flex;gap:3px}.key-group>span kbd{height:19px;min-width:21px;font-size:8px;padding:0 4px}.pause-control kbd{font-size:8px}.under-game{display:flex;justify-content:space-between;font:7px var(--mono);letter-spacing:1px;margin-top:17px;color:#81917d;gap:10px}.under-game>span:first-child{display:flex;align-items:center;gap:9px}.under-game i{width:4px;height:4px;background:#9cad80;box-shadow:0 0 6px #a4c28b50}.under-game b{font-weight:400;color:#4d5d48}.under-game strong{font-weight:400;color:#b8c4a7;font-size:10px;letter-spacing:2px;margin-left:12px}footer{border-top:1px solid var(--line);margin-top:39px;padding:21px 0 23px;display:flex;justify-content:space-between;color:#64715f;font:7px var(--mono);letter-spacing:1px}.footer-cross{font-size:11px;color:#bc905f;margin:0 12px}.help-panel{margin-top:24px;padding:27px;background:#19201b;border:1px solid #3c4837;display:flex;gap:24px}.help-panel h2{font:30px var(--head);margin:0 0 12px}.help-panel p:not(.eyebrow){font:12px/1.9 var(--mono);max-width:850px;color:#b1bea4}.help-panel kbd{height:23px;font-size:10px}.help-panel>button{align-self:flex-start;margin-left:auto;background:none;font-size:24px;color:var(--orange)}.combo{position:absolute;left:30px;top:113px;z-index:2;opacity:0;transform:rotate(-8deg);color:var(--orange);font-family:var(--head);text-shadow:2px 3px #081821;transition:opacity .15s}.combo.active{opacity:1}.combo strong{font-weight:400;font-size:52px;line-height:1;display:inline-block}.combo span{font-size:18px;margin-left:6px;letter-spacing:1px}.wave-message{position:absolute;top:29%;left:0;right:0;text-align:center;z-index:2;pointer-events:none;font:36px var(--head);letter-spacing:4px;color:#f0bf7c;text-shadow:3px 4px #0a2024;opacity:0;transition:opacity .2s}.wave-message.active{opacity:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.touch-controls{display:none;position:absolute;inset:auto 15px 42px;z-index:5;justify-content:space-between;pointer-events:none}.touch-controls button{pointer-events:auto;touch-action:none;user-select:none;background:#142b27cf;color:#e7d7b2;border:1px solid #cfb98b77;width:43px;height:43px;border-radius:7px;font:20px var(--mono)}.touch-controls button:active{background:#a87541}.dpad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:3px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-row:2;grid-column:1}.dpad button:nth-child(3){grid-row:2;grid-column:2}.dpad button:nth-child(4){grid-row:2;grid-column:3}.touch-actions{display:flex;align-items:flex-end;gap:6px}.touch-actions button{width:47px;height:47px;font-size:17px}.touch-actions small{display:block;font:7px var(--mono);margin-top:2px}.scene:fullscreen{aspect-ratio:auto;width:100vw;height:100vh;background:#0d1a1f;display:flex;align-items:center;justify-content:center}.scene:fullscreen canvas{object-fit:contain;max-height:100vh;max-width:100vw}.scene:fullscreen .hud{top:4vh}.scene:fullscreen .scene-bottom{bottom:4vh}
@media(min-width:1600px){.shell{padding:0 44px}.intro{padding-top:44px;padding-bottom:31px}.site-header{height:110px}footer{margin-top:44px}}
@media(max-width:1100px){.shell{padding:0 30px}.site-header{height:88px;gap:45px}.intro{padding-top:30px}.intro-copy{font-size:9px}.controls-strip{padding:13px 17px;gap:12px}.controls-heading{display:none}.control{font-size:8px;gap:8px}.hud{top:20px;left:20px;right:20px}.player-info{width:128px}footer{margin-top:29px}}
@media(max-width:760px){.shell{padding:0 17px}.site-header{height:80px;gap:20px}.brand{font-size:12px;gap:8px;letter-spacing:1px}.brand-sub{font-size:6px;letter-spacing:1px}.brand svg{width:22px}.site-header nav{margin-left:auto;gap:15px;font-size:10px}.site-header nav a{display:none}.sound-button{padding:9px;margin-left:0}.sound-button span{display:none}.intro{padding:25px 0 21px;align-items:flex-start;flex-direction:column;gap:12px}.eyebrow{font-size:7px;letter-spacing:1.3px;margin-bottom:12px}h1{font-size:clamp(37px,8.3vw,63px)}.intro-copy{text-align:left;font-size:9px;line-height:1.6}.scene{aspect-ratio:4/3}.scene canvas{object-fit:cover;object-position:center}.hud{top:16px;left:14px;right:14px}.portrait{width:31px;height:36px}.player-hud{gap:7px}.player-info{width:90px}.player-name{font-size:6px;letter-spacing:.5px}.player-name>span{font-size:6px}.health-track{height:8px}.special-track{width:60px}.location-hud{display:none}.score-hud{min-width:80px}.score-hud strong{font-size:19px;letter-spacing:2px}.hud-label,.wave-label{font-size:6px}.start-screen,.result-screen,.pause-screen{padding:70px 8px 43px}.start-screen h2,.result-screen h2,.pause-screen h2{font-size:40px}.start-kicker{font-size:6px;letter-spacing:1.2px}.start-copy{font-size:8px;margin:10px 0 18px}.play-button{padding:14px 17px;font-size:9px;min-width:203px}.enter-hint{font-size:6px}.scene-bottom{left:13px;right:9px;bottom:12px;font-size:5px;letter-spacing:.4px}.live-status{display:none}.controls-strip{flex-wrap:wrap;justify-content:center;gap:17px 23px;padding:18px 14px}.pause-control{display:none}.control{font-size:8px}.control kbd{min-width:24px;height:25px;font-size:9px}.key-group{flex-direction:row}.key-group>kbd{display:none}.key-group>span kbd{height:25px}.under-game{font-size:5px;letter-spacing:.4px;gap:5px}.under-game>span:first-child{gap:5px}.under-game strong{margin-left:3px;font-size:8px;letter-spacing:1px}footer{font-size:5px;letter-spacing:.4px;gap:12px;padding-top:17px;margin-top:27px}.footer-cross{margin:0 4px}.combo{top:78px;left:20px}.combo strong{font-size:36px}.combo span{font-size:13px}.wave-message{font-size:26px;top:30%}.help-panel{padding:20px}.help-panel p:not(.eyebrow){font-size:10px}}
@media(max-width:760px){.scene{aspect-ratio:1/1}.start-screen,.result-screen,.pause-screen{padding:72px 10px 30px}.start-screen h2,.result-screen h2,.pause-screen h2{font-size:clamp(24px,7.2vw,40px);white-space:nowrap;letter-spacing:1px}.start-copy{font-size:7px}.start-kicker{font-size:5px;letter-spacing:1px}.start-screen .enter-hint{margin-top:13px}.portrait{width:28px;height:32px}.player-info{width:80px}.score-hud strong{font-size:17px}}
@media(pointer:coarse){.scene.playing .touch-controls{display:flex}.scene.playing .scene-bottom>span{display:none}.scene.playing .scene-bottom>div{margin-left:auto}.scene.playing .combo{top:65px}.scene.playing .wave-message{top:24%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.scanlines{opacity:.08}}

/* Campaigns, supporting cast and television commentary. */
.portrait canvas{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.player-name>span:first-child{font-size:8px;color:#e0e4cd}.start-screen{padding-top:95px;background:#07101766}.start-screen h2{font-size:43px}.campaign-select{display:flex;gap:12px;margin-top:22px}.campaign-choice{display:flex;text-align:left;align-items:center;gap:12px;width:238px;padding:10px;background:#142629df;border:1px solid #6872617a;box-shadow:3px 3px #07171b55}.campaign-choice.selected{border-color:var(--orange);background:#2a3328ed}.campaign-choice canvas{width:49px;height:49px;flex-shrink:0}.campaign-choice span{display:flex;flex-direction:column;gap:6px}.campaign-choice small{font:6px var(--mono);letter-spacing:1px;color:#9eab91}.campaign-choice strong{font:12px var(--head);letter-spacing:.8px;color:#ede8d2}.campaign-choice em{font:7px var(--mono);font-style:normal;color:#b4bda4}.start-screen .start-copy{font-size:8px;margin:13px 0 18px}.start-screen .enter-hint span{margin:0 8px;color:#8e9d83}.cast-strip{display:grid;grid-template-columns:1fr 1.3fr;gap:25px;padding:19px 3px 0}.cast-strip>div:last-child{text-align:right}.cast-strip span{font:7px var(--mono);letter-spacing:1.3px;color:#7c8e76}.cast-strip p{font:9px/1.7 var(--mono);color:#b6c2a7;margin:5px 0 0}.cast-strip>div:last-child p{color:#c9b296}.boss-panel{position:absolute;z-index:2;top:81px;left:50%;transform:translateX(-50%);width:285px;font-family:var(--mono);background:#0a1d24c9;padding:9px 11px;border:1px solid #9e784d5c}.boss-panel>div:first-child{display:flex;gap:9px;align-items:center;justify-content:space-between;margin-bottom:7px}.boss-panel span{font-size:6px;color:#d29865;letter-spacing:1px}.boss-panel strong{font-size:8px;letter-spacing:.8px;color:#edc8a1}.boss-track{height:5px;background:#273937}.boss-track>div{height:100%;background:#d99562;transition:width .1s}.chain-panel{position:absolute;top:25%;left:50%;transform:translateX(-50%);padding:17px 22px;background:#10262cee;z-index:2;border:1px solid #9b845955;width:340px;text-align:center}.chain-panel .start-kicker{display:block;font-size:6px}.chain-panel>strong{display:block;font:15px var(--head);letter-spacing:1px;margin:10px 0;color:#f3d4a0}.chain-track{height:7px;background:#31443a}.chain-track>div{height:100%;background:#efbc76;transition:width .08s}.chain-panel>small{display:block;font:6px var(--mono);letter-spacing:1px;margin-top:10px;color:#b1bfa5}.chain-panel kbd{font:8px var(--mono);border:1px solid #939a7777;padding:1px 4px}.transition-screen{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#0b1b22dc;backdrop-filter:blur(3px)}.transition-screen h2{font:57px var(--head);letter-spacing:2px;color:var(--orange);margin:10px 0}.transition-screen>p:last-child{font:8px var(--mono);letter-spacing:1px;color:#b5c3a2}.transition-screen>p:last-child span{margin:0 17px;color:var(--orange)}.media-card{position:absolute;top:126px;right:21px;z-index:2;width:238px;background:#10232aeb;border:1px solid #d3c39a44;box-shadow:4px 4px #09171b40;--channel:#a51c35}.media-top{display:flex;align-items:center;gap:8px;background:var(--channel);padding:7px 9px}.media-top>strong{font:700 10px Arial,sans-serif;letter-spacing:.4px;color:white}.media-top>span{font:5px var(--mono);color:#ffffffe0;letter-spacing:.4px}.media-top button{margin-left:auto;background:#ffffff20;color:white;font:7px var(--mono);padding:3px 5px}.media-card>p{font:15px/1.15 var(--head);letter-spacing:.4px;margin:0;padding:12px 10px;min-height:48px;color:#f4eedf}.media-bottom{display:flex;justify-content:space-between;gap:4px;font:4px var(--mono);letter-spacing:.3px;padding:5px 7px;background:#dcdcc4;color:#25332f}.crowd-caption{position:absolute;z-index:2;bottom:42px;left:50%;transform:translateX(-50%);padding:7px 12px;background:#0d242ce8;text-align:center;border-bottom:2px solid #ad9b67;pointer-events:none}.crowd-caption>span{font:5px var(--mono);letter-spacing:1.2px;color:#a3b090;display:block;margin-bottom:4px}.crowd-caption strong{font:12px var(--head);letter-spacing:1px;color:#e8d5af;white-space:nowrap}.result-back{background:transparent;color:#cad3bc;font:7px var(--mono);letter-spacing:1px;padding:9px;margin-bottom:12px;border-bottom:1px solid #667259}.enter-hint{white-space:nowrap}
@media(max-width:1100px){.media-card{width:195px;right:15px;top:112px}.media-card>p{font-size:12px}.media-top>strong{font-size:9px}.boss-panel{top:76px;width:250px}.campaign-choice{width:215px}.start-screen h2{font-size:37px}.cast-strip p{font-size:8px}}
@media(max-width:760px){.scene:not(.playing){aspect-ratio:3/4}.scene.playing{aspect-ratio:1/1}.start-screen{padding:71px 10px 35px}.start-screen h2{font-size:clamp(18px,5.4vw,29px);white-space:nowrap;letter-spacing:.6px}.campaign-select{flex-direction:column;gap:7px;margin-top:14px;width:min(245px,100%)}.campaign-choice{width:100%;padding:7px 10px;gap:10px}.campaign-choice canvas{width:36px;height:36px}.campaign-choice strong{font-size:11px}.campaign-choice span{gap:4px}.campaign-choice em{font-size:6px}.start-screen .start-copy{font-size:6px;max-width:230px;line-height:1.7;margin:11px 0}.start-kicker{font-size:5px}.campaign-choice small{font-size:5px}.cast-strip{grid-template-columns:1fr;gap:8px;padding-top:14px}.cast-strip>div:last-child{text-align:left}.cast-strip p{font-size:7px;margin-top:3px}.cast-strip span{font-size:6px}.media-card{width:128px;top:63px;right:10px}.media-top{padding:4px 5px;gap:4px}.media-top>strong{font-size:7px}.media-top>span{font-size:4px}.media-top button{padding:1px 3px;font-size:5px}.media-card>p{font-size:9px;min-height:30px;padding:7px}.media-bottom{display:none}.boss-panel{top:63px;left:11px;transform:none;width:118px;padding:6px}.boss-panel>div:first-child{display:block;margin-bottom:5px}.boss-panel span{font-size:4px}.boss-panel strong{display:block;font-size:5px;letter-spacing:.1px;margin-top:3px}.chain-panel{top:31%;padding:10px;width:220px}.chain-panel>strong{font-size:12px}.chain-panel small{font-size:5px;letter-spacing:.4px}.transition-screen h2{font-size:30px}.transition-screen>p:last-child{font-size:5px}.transition-screen>p:last-child span{margin:0 6px}.crowd-caption{bottom:33px;padding:5px 9px}.crowd-caption strong{font-size:10px}.player-name>span:first-child{font-size:5px}.enter-hint{font-size:5px}.result-screen h2{font-size:27px}}
@media(pointer:coarse){.scene.playing .touch-controls{bottom:31px;left:9px;right:9px}.dpad{grid-template-columns:repeat(3,30px);grid-template-rows:repeat(2,30px);gap:2px}.dpad button{width:30px;height:30px;font-size:15px}.touch-actions{gap:4px}.touch-actions button{width:35px;height:39px;font-size:14px}.touch-actions small{font-size:5px}.scene.playing .crowd-caption{bottom:99px}}

#transition-copy{font:11px var(--mono);letter-spacing:1px;color:#e2d1ad;margin:0 0 20px}@media(max-width:760px){#transition-copy{font-size:7px}}

.start-screen .campaign-select{margin-bottom:20px}

.combat-tip{display:flex;align-items:center;gap:8px;margin:13px 0 0;font:9px/1.8 var(--mono);color:#aab8a0;flex-wrap:wrap}.combat-tip>span{color:#e4b57d;font-size:7px;letter-spacing:1px;margin-right:8px}.combat-tip kbd{border:1px solid #687657;padding:0 4px;color:#e5d3ac}.combat-tip+.cast-strip{padding-top:12px}@media(max-width:760px){.combat-tip{font-size:7px;gap:4px}.combat-tip>span{font-size:6px}.wave-message{font-size:21px;letter-spacing:1px;padding:0 12px}}

/* Character abilities, recovery and the Tribunal dialogue. */
.recovery-hud{font:6px var(--mono);letter-spacing:.5px;color:#b8cfab;margin-top:5px}.campaign-choice canvas,.portrait canvas{image-rendering:pixelated}.talk-prompt{position:absolute;z-index:2;top:25%;left:50%;transform:translateX(-50%);padding:15px 20px;background:#10262ce8;border:1px solid #b8a67d66;text-align:center;min-width:320px}.talk-prompt span{display:block;font:7px var(--mono);letter-spacing:1px;color:#c6b5a0}.talk-prompt strong{display:block;font:18px var(--head);letter-spacing:1px;color:#f0d2a2;margin-top:9px}.dialogue-screen{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#091a23bb;backdrop-filter:blur(2px)}.dialogue-box{width:min(560px,85%);display:grid;grid-template-columns:110px 1fr;gap:20px;padding:26px;background:#152a30f5;border:1px solid #ac987869;box-shadow:5px 5px #07171ccc}.dialogue-box canvas{width:110px;height:110px;image-rendering:pixelated;align-self:center}.dialogue-box strong{font:9px var(--mono);letter-spacing:.7px;color:#e2b7b4}.dialogue-box blockquote{font:24px/1.25 var(--head);letter-spacing:.4px;color:#f0e7cf;margin:13px 0 0}.dialogue-box .play-button{grid-column:1/-1;justify-self:center}.dialogue-box>small{grid-column:1/-1;text-align:center;font:6px var(--mono);letter-spacing:1px;color:#aabb9f}.controls-strip{gap:12px}.control{gap:7px}@media(max-width:1100px){.controls-strip{flex-wrap:wrap;justify-content:center;gap:14px 22px}}@media(max-width:760px){.recovery-hud{font-size:4px;letter-spacing:0;margin-top:4px}.talk-prompt{min-width:0;width:260px;top:28%;padding:12px}.talk-prompt strong{font-size:13px}.talk-prompt span{font-size:5px}.dialogue-box{padding:16px;gap:12px;grid-template-columns:65px 1fr;width:92%}.dialogue-box canvas{width:65px;height:75px}.dialogue-box strong{font-size:6px}.dialogue-box blockquote{font-size:18px;margin-top:9px}.dialogue-box .start-kicker{font-size:4px}.dialogue-box .play-button{min-width:0;font-size:7px;gap:15px}.touch-actions button{width:31px}.touch-actions{gap:3px}.touch-controls .touch-actions small{font-size:4px}}

/* Preserve the texture and rim lighting of the detailed pixel-art scenes. */
.scanlines{opacity:.055}.vignette{box-shadow:inset 0 0 70px 5px #030a0e45}

/* Keep the chain scene's hands, tool and working area unobstructed. */
.chain-stage .chain-panel{top:auto;bottom:51px;left:22px;transform:none;width:256px;padding:12px 14px;text-align:left;pointer-events:none}
.chain-stage .chain-panel>strong{font-size:15px;margin:8px 0;letter-spacing:.6px}
.chain-stage .chain-panel>small{line-height:1.8;letter-spacing:.4px;margin-top:7px}
.chain-stage .chain-track{height:5px}
.chain-stage .crowd-caption{left:auto;right:22px;bottom:48px;transform:none;max-width:235px}
.chain-stage .crowd-caption strong{white-space:normal;font-size:10px}
@media(max-width:760px){
 .chain-stage .chain-panel{top:64px;bottom:auto;left:10px;width:153px;padding:9px}
 .chain-stage .chain-panel .start-kicker{font-size:5px;letter-spacing:.5px;margin:0}
 .chain-stage .chain-panel>strong{font-size:11px;letter-spacing:.3px;margin:6px 0}
 .chain-stage .chain-panel>small{font-size:5px;letter-spacing:0;margin-top:6px}
 .chain-stage .media-card{width:137px}
 .chain-stage .crowd-caption{right:10px;bottom:31px;max-width:150px;padding:5px 7px}
 .chain-stage .crowd-caption strong{font-size:8px}
}
@media(max-width:760px) and (pointer:coarse){.chain-stage .crowd-caption{bottom:104px}}
.transition-screen h2{max-width:92%;text-align:center;text-wrap:balance}

/* Timed scenes keep actors on the street; only the opening card covers it. */
.story-disclaimer{position:absolute;inset:0;z-index:5;background:#091016;display:flex;align-items:center;justify-content:center;padding:12%;text-align:center}
.story-disclaimer p{font:clamp(14px,2.2vw,25px)/1.7 var(--mono);max-width:700px;color:#e7d7b9;text-wrap:balance}
.story-scene-status{display:none}
.cutscene-stage .media-card{top:auto;bottom:43px;right:18px;width:235px;opacity:.94}
.cutscene-stage .hud{opacity:.6}
.cutscene-stage .scene-bottom{z-index:7}
.scene:has(.story-disclaimer:not([hidden])) .hud{visibility:hidden}
@media(max-width:760px){.cutscene-stage .media-card{width:145px;right:10px;bottom:33px}.story-disclaimer{padding:12% 9%}.story-disclaimer p{font-size:14px}}

/* Broadcast layout: the street, crowd subtitles and TV strap have separate rows. */
.scene{aspect-ratio:auto;display:flex;flex-direction:column}
.playfield{position:relative;aspect-ratio:1120/520;overflow:hidden;isolation:isolate}
.broadcast-footer{flex:none;width:100%;background:#0c1518}
.crowd-subtitles{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;border-top:1px solid #34403a}
.scene .crowd-caption{position:static;transform:none;max-width:100%;padding:0;background:none;border:0;text-align:center}
.scene .crowd-caption>span{display:inline;margin:0 10px 0 0;font:9px var(--mono);letter-spacing:1px;color:#a3b090}
.scene .crowd-caption strong{font:600 15px/1.45 Arial,sans-serif;letter-spacing:.2px;white-space:normal;color:#f3ead5}
.scene .media-card{position:static;inset:auto;width:100%;display:grid;grid-template-columns:minmax(105px,14%) minmax(0,1fr);border:0;box-shadow:none;opacity:1;background:var(--channel)}
.scene .media-top{grid-row:1/3;flex-direction:column;justify-content:center;gap:5px;padding:9px;border-right:1px solid #ffffff3d}
.scene .media-top>strong{font:bold 13px Arial,sans-serif;letter-spacing:.3px}
.scene .media-top>span{font:7px var(--mono)}
.scene .media-top button{margin:0;min-height:24px;padding:4px 10px;font:9px var(--mono)}
.scene .media-card>p{display:flex;align-items:center;min-height:49px;padding:9px 16px;font:clamp(18px,2.4vw,31px)/1.12 var(--head);letter-spacing:.5px;color:#fff8ed;overflow-wrap:anywhere}
.scene .media-bottom{display:flex;gap:10px;padding:5px 16px;font:7px var(--mono);letter-spacing:.4px}
.scene .scene-bottom{position:static;inset:auto;min-height:29px;padding:6px 14px;font-size:7px;gap:12px;background:#0c1518;pointer-events:auto}
.scene .scene-bottom>span{min-width:0}
.scene .scene-bottom>div{flex-shrink:0}
.scene:fullscreen{flex-direction:column;align-items:stretch;justify-content:flex-start}
.scene:fullscreen .playfield{flex:1;min-height:0;aspect-ratio:auto}
.scene:fullscreen .playfield canvas{width:100%;height:100%;object-fit:contain}
@media(max-width:760px){
 .scene:not(.playing),.scene.playing{aspect-ratio:auto}
 .scene:not(.playing) .playfield{aspect-ratio:3/4}
 .scene.playing .playfield{aspect-ratio:1/1}
 .crowd-subtitles{min-height:54px;padding:8px 12px}
 .scene .crowd-caption strong{font-size:13px}
 .scene .media-card{grid-template-columns:84px minmax(0,1fr)}
 .scene .media-top{padding:6px;gap:4px}
 .scene .media-top>strong{font-size:10px}
 .scene .media-top>span{font-size:6px}
 .scene .media-card>p{font-size:19px;padding:9px 11px;min-height:48px}
 .scene .media-bottom{padding:5px 10px;font-size:6px}
 .scene .media-bottom>span:last-child{display:none}
 .scene .scene-bottom{font-size:6px;min-height:28px;padding:5px 10px}
}
.scene:fullscreen .playfield{aspect-ratio:auto}
