@font-face{font-family:Arcade;src:url('./fonts/vt323.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:dark;--ink:#e6effb;--muted:#9baac3;--cyan:#5ae2f3;--orange:#ff954d;--panel:rgba(10,19,36,.93);--line:#2d405e;--font:Arcade,'Courier New',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#080e19;color:var(--ink);font:21px/1.25 var(--font)}button,input{font:inherit;color:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}a{color:var(--cyan)}button:disabled{cursor:default;opacity:.5}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}.skip-link{position:fixed;top:-60px;left:10px;z-index:90;background:#081629;padding:10px}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.game-stage{position:relative;height:100svh;min-height:600px;overflow:hidden;isolation:isolate;background:#74644f}.world{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;z-index:-3}.scene-shade{position:absolute;inset:0;z-index:-2;background:rgba(9,16,29,.2);pointer-events:none}.scanlines{position:absolute;inset:0;z-index:30;pointer-events:none;background:repeating-linear-gradient(0deg,#0002 0 1px,transparent 1px 3px)}.floor-fade{position:absolute;bottom:0;inset-inline:0;height:25%;z-index:-1;background:linear-gradient(transparent,#080e19 85%);opacity:0;transition:opacity .5s}.game-stage[data-view=play] .floor-fade,.game-stage[data-view=results] .floor-fade{opacity:1}.game-stage[data-view=results] .scene-shade{background:rgba(6,13,24,.82)}
.pixel-panel{clip-path:polygon(0 8px,4px 8px,4px 4px,8px 4px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 4px,calc(100% - 4px) 4px,calc(100% - 4px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 4px) calc(100% - 8px),calc(100% - 4px) calc(100% - 4px),calc(100% - 8px) calc(100% - 4px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 4px),4px calc(100% - 4px),4px calc(100% - 8px),0 calc(100% - 8px))}
.utility{position:absolute;top:82px;left:50%;transform:translateX(-50%);width:min(904px,calc(100% - 20px));display:flex;justify-content:space-between;z-index:15;pointer-events:none}.square-button{pointer-events:auto;width:38px;height:31px;display:grid;place-items:center;padding:5px;border:2px solid #253750;background:#344760;color:#d5e2f6}.square-button:hover{background:#4b6081}.square-button svg{width:21px;height:18px;fill:currentColor}.square-button[aria-pressed=true] .sound-waves{display:none}.square-button[aria-pressed=true]::after{content:'×';position:absolute;margin-left:26px;font-size:19px;color:var(--orange)}
.scoreboard{position:absolute;top:8px;left:50%;transform:translate(-50%,-110px);width:min(700px,calc(100% - 20px));display:grid;grid-template-columns:120px 1fr 120px;opacity:0;z-index:10;transition:transform .65s cubic-bezier(.2,1.2,.3,1),opacity .4s}.game-stage[data-view=play] .scoreboard{transform:translate(-50%,0);opacity:1}.score-cell{height:64px;background:rgba(10,19,36,.88);padding:9px 14px}.score-cell span{display:block;font-size:12px;letter-spacing:2px;color:var(--muted)}.score-cell strong{display:block;font-size:31px;font-weight:400;line-height:1;margin-top:4px;color:var(--cyan)}.score-cell:last-child{text-align:right}.score-cell:last-child strong{color:var(--orange)}.progress{text-align:center;padding-top:13px}.round-track{display:flex;justify-content:center;gap:4px}.round-pip{width:14px;height:14px;background:#10203a;border:2px solid #263f5f}.round-pip.active{background:var(--orange);border-color:var(--orange);animation:pulse 1.4s infinite}.round-pip.done{background:var(--cyan);border-color:var(--cyan)}.progress small{display:block;margin-top:5px;font-size:12px;letter-spacing:2px;color:#b3c0d2}
.start-view{position:absolute;inset:0;left:50%;width:min(620px,calc(100% - 32px));transform:translateX(-50%);padding:calc(120px + 4vh) 0 4vh;display:flex;flex-direction:column;text-align:center}.title{margin:0;font:400 clamp(60px,10vw,108px)/.9 var(--font);white-space:nowrap;letter-spacing:.025em;text-shadow:-3px 0 #55e8f5,3px 0 #f5823b;animation:title-flicker 9s infinite}.edition{display:table;margin:24px auto 13px;padding:6px 13px 7px;background:#06101ded;color:var(--cyan);font-size:20px;letter-spacing:8px;line-height:1.15}.deck{margin:0 -2px;padding:6px 9px;background:#08101ede;font-size:17px;letter-spacing:.9px;color:#dbe6f8}.launch{margin-top:auto;text-align:left}.how-toggle{padding:5px 10px;border:0;background:#0b1629e6;font-size:14px;letter-spacing:2px}.inline-rules{margin:6px 0;padding:12px 16px;background:var(--panel);font-size:18px;color:#bacbe2}.inline-rules p{margin:4px 0}.primary-button{width:100%;min-height:76px;margin-top:10px;border:3px solid var(--cyan);background:#0b1931f5;box-shadow:0 0 15px #5ae2f33b,inset 0 0 0 3px #203551;letter-spacing:6px;font-size:30px;font-weight:400;transition:background .15s,box-shadow .15s}.primary-button:hover{background:#1a3250;box-shadow:0 0 24px #5ae2f359}.primary-button i{font-size:25px;font-style:normal;display:inline-block;animation:bob 1.4s infinite;margin-inline:12px}.game-stamp{margin:10px 0 0;background:#07101cd4;padding:4px 8px;color:#b2c2d7;font-size:13px;letter-spacing:2px}.more-link{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:2px;color:#aebacf;text-decoration:none;z-index:35}.game-stage[data-view=play] .more-link{display:none}
.play-view{position:absolute;inset:0;pointer-events:none}.play-view>*{pointer-events:auto}.prompt-card{position:absolute;top:26%;left:50%;transform:translateX(-50%);width:min(474px,calc(100% - 32px));padding:24px;background:var(--panel);animation:card-in .5s both}.eyebrow{margin:0 0 14px;color:var(--orange);letter-spacing:4px;font-size:14px}.prompt-card h2{font-size:36px;line-height:1.06;font-weight:400;margin:0 0 14px}.prompt-note{font-size:15px;color:#a6b8d3;letter-spacing:1px;line-height:1.3;margin:0}.prompt-note::before{content:'▼ ';color:var(--cyan)}.countdown{position:absolute;bottom:14%;left:50%;transform:translateX(-50%);background:var(--panel);padding:13px 20px;letter-spacing:2px;font-size:18px;white-space:nowrap}.countdown b{color:var(--cyan);font-weight:400}.answer-form{position:absolute;bottom:max(32px,5vh);left:50%;width:min(700px,calc(100% - 24px));transform:translateX(-50%);display:grid;grid-template-columns:62px 1fr 100px;gap:8px;align-items:stretch;animation:dock-in .3s both}.timer{display:grid;place-items:center;background:#0b1730;border:2px solid #304564;color:var(--cyan);font-size:32px;font-variant-numeric:tabular-nums}.entry{position:relative;background:#0b1730;border:2px solid #304564;overflow:hidden}.entry input{width:100%;height:59px;outline:0;border:0;padding:0 13px;background:transparent;font-size:24px}.entry input::placeholder{color:#8396b4}.entry:focus-within{border-color:var(--cyan)}.fuse{position:absolute;bottom:0;left:0;height:3px;width:100%;background:var(--cyan);transform-origin:left}.shoot-button{border:2px solid var(--cyan);background:#18304e;color:var(--cyan);font-size:24px}.shoot-button:hover{background:#2b4b6c}.answer-message{position:absolute;bottom:100%;left:70px;margin:0 0 10px;padding:5px 10px;font-size:18px;background:#0c172be8;max-width:calc(100% - 70px)}.answer-message:empty{display:none}.answer-message.error{color:#ffb18b}.answer-form.danger .timer{color:#ff9d57;border-color:#f17642}.answer-form.danger .fuse{background:#ff8a4f}.game-stage.urgent::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #ff634d60;animation:pulse .5s infinite alternate}
.shot-result{position:absolute;inset:0;text-align:center;pointer-events:none}.shot-result>*{pointer-events:auto}.reveal-copy{position:absolute;top:32%;width:100%;animation:reveal-in .55s both}.shot-kicker{font-size:52px;color:var(--cyan);margin:0 0 10px;text-shadow:3px 3px #10263d;letter-spacing:4px}.shot-player{display:table;margin:0 auto 15px;padding:5px 12px;background:#081628d9;font-size:26px}.shot-points{font-size:28px;color:var(--orange);margin:0}.shot-note{display:table;margin:10px auto;padding:4px 8px;background:#081628d9;font-size:17px;color:#b6c7e1}.shot-result .primary-button{position:absolute;bottom:max(56px,10vh);left:50%;transform:translateX(-50%);width:auto;min-width:194px;min-height:56px;font-size:21px;letter-spacing:4px;padding:0 20px}.flight-tag{position:absolute;left:50%;top:61%;transform:translate(-50%,-50%) rotate(-9deg);border:2px solid var(--cyan);background:#0b1931;padding:10px 14px;box-shadow:0 0 20px #5ae2f366;font-size:24px;white-space:nowrap;pointer-events:none;animation:tag-in .35s both}.flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:20}.flash.go{animation:flash .3s both}.shake{animation:shake .3s both}
.results-view{position:absolute;inset:88px 12px 26px;overflow-y:auto;overscroll-behavior:contain}.results-inner{max-width:520px;margin:auto;padding:20px;background:#081426e8}.results-view h2{font-size:57px;font-weight:400;margin:0;color:var(--orange)}.result-rank{color:var(--cyan);letter-spacing:4px;margin:8px 0 24px}.result-stats{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line);padding:12px 0}.result-stats span{display:block;color:var(--muted);font-size:14px;letter-spacing:1px}.result-stats strong{font-weight:400;font-size:21px}.range-chart{width:100%;height:130px;margin-top:20px}.haul-list{padding:0;list-style:none;margin:10px 0 25px}.haul-list li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 0;font-size:20px}.haul-list b{font-weight:400;color:var(--orange)}.results-view .primary-button{min-height:52px;font-size:20px;letter-spacing:2px}.text-button{display:block;margin:15px auto 0;padding:5px;border:0;border-bottom:1px solid #8291aa;background:none;color:#a7b9d2}.share-message{font-size:16px;overflow-wrap:anywhere}.result-title{color:var(--cyan);font-size:18px;letter-spacing:3px;margin-top:25px}
.scrim{position:fixed;inset:0;z-index:49;background:#0009}.rules-panel{position:fixed;z-index:50;inset:0 auto 0 0;width:min(380px,90vw);overflow-y:auto;padding:28px;background:#0a1527;border-right:2px solid #2e4565;box-shadow:20px 0 80px #0007}.rules-panel h2{font-size:38px;font-weight:400;margin:15px 0 30px;line-height:1}.rules-panel ol{padding-left:23px;color:#b6c7df}.rules-panel li{margin-bottom:17px;font-size:20px}.rules-panel a{display:block;padding:14px 0;border-block:1px solid #263b57}.close-button{float:right;width:32px;border:0;background:#30435e;font-size:23px}.tier-list{margin-top:22px}.tier-list p{margin:6px 0;font-size:19px}.tier-list span{color:var(--orange);float:right}
.content-section,.faq-section{max-width:760px;margin:0 auto;padding:65px 26px}.content-section{border-bottom:1px solid #243550}.section-label{font-size:14px;letter-spacing:3px;color:var(--orange);margin-bottom:22px}.content-section h2,.faq-section h2{font-size:38px;font-weight:400;line-height:1.05;margin:0 0 22px;color:#dce9fa}.body-copy{color:#9eafc8;font-size:21px;line-height:1.45}.body-copy p{margin:0 0 20px}.feature-band{display:grid;grid-template-columns:repeat(3,1fr);max-width:760px;margin:auto;padding:30px 26px;border-bottom:1px solid #243550;gap:25px}.feature-number{font-size:48px;color:var(--cyan)}.feature-band h3{font-weight:400;font-size:23px;margin:3px 0}.feature-band p{font-size:18px;color:var(--muted);margin:10px 0}.accordion details{border-top:1px solid #243550}.accordion summary{padding:18px 25px 18px 0;position:relative;list-style:none;cursor:pointer;font-size:23px}.accordion summary::-webkit-details-marker{display:none}.accordion summary::after{content:'+';position:absolute;right:0;color:var(--cyan)}.accordion details[open] summary::after{content:'−'}.accordion p{font-size:20px;color:var(--muted);margin:0 20px 22px 0;line-height:1.4}.site-footer{max-width:760px;padding:28px 26px 45px;margin:auto;border-top:1px solid #243550;font-size:17px;color:#8193af}.footer-mark{font-size:27px;color:var(--cyan)}.site-footer p{max-width:580px}
@keyframes title-flicker{0%,94%,96%,100%{text-shadow:-3px 0 #55e8f5,3px 0 #f5823b}95%{text-shadow:-6px 0 #55e8f5,5px 1px #f5823b;transform:translateX(1px)}}@keyframes pulse{50%{opacity:.5}}@keyframes bob{50%{transform:translateY(4px)}}@keyframes card-in{from{opacity:0;translate:0 -35px}to{opacity:1;translate:0 0}}@keyframes dock-in{from{opacity:0;translate:0 25px}}@keyframes reveal-in{from{opacity:0;translate:0 15px}}@keyframes tag-in{from{opacity:0;scale:.7}}@keyframes flash{from{opacity:.35}to{opacity:0}}@keyframes shake{20%{translate:-5px 2px}50%{translate:5px -2px}80%{translate:-2px 0}}
@media(max-width:600px){.game-stage{min-height:560px}.start-view{padding-top:calc(130px + 3vh)}.title{font-size:clamp(47px,12.1vw,74px);letter-spacing:0}.edition{font-size:17px;letter-spacing:5px;margin-top:18px}.deck{font-size:15px;letter-spacing:0;padding:7px}.primary-button{font-size:25px;min-height:67px;letter-spacing:4px}.scoreboard{grid-template-columns:84px 1fr 84px}.score-cell{padding:10px}.round-pip{width:12px;height:12px}.progress small{font-size:10px;letter-spacing:1px}.prompt-card{top:24%;padding:22px}.prompt-card h2{font-size:31px}.answer-form{grid-template-columns:48px 1fr 74px;gap:5px;bottom:30px}.entry input{font-size:21px;height:54px;padding:0 10px}.shoot-button{font-size:20px}.timer{font-size:28px}.answer-message{left:53px;font-size:17px}.countdown{font-size:15px;letter-spacing:1px;bottom:16%}.shot-kicker{font-size:44px}.shot-player{font-size:24px}.shot-points{font-size:25px}.flight-tag{font-size:20px;max-width:95%;white-space:normal}.feature-band{gap:16px}.feature-band p{font-size:17px}.results-inner{padding:15px}.results-view h2{font-size:48px}}
@media(max-height:610px){.game-stage{min-height:520px}.start-view{padding-top:112px}.title{font-size:70px}.edition{margin-top:14px}.utility{top:78px}.prompt-card{top:23%;padding:18px}.prompt-card h2{font-size:29px}.shot-kicker{font-size:38px}.shot-note{margin-top:4px}}
body.playing{overflow:hidden}body.playing .game-stage{position:fixed;inset:0;z-index:40;height:var(--game-height,100dvh);min-height:0}.game-stage[data-view=results] .more-link{display:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
