
:root{--gold:#f8c46b;--ice:#9ce4ed;--red:#ff563f;--ink:#e9eef2;--edge:#9bb6c236;--mono:Consolas,"Courier New",monospace}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#050a14;color:var(--ink);font-family:system-ui,"Yu Gothic",sans-serif}button,select,a{-webkit-tap-highlight-color:transparent;font:inherit}button,select{cursor:pointer;color:inherit;background:#0b1620cc;border:1px solid var(--edge);border-radius:4px;padding:10px 14px;touch-action:manipulation}button:hover{border-color:var(--gold);background:#203040}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.48;cursor:default}#game{position:relative;width:100%;height:100%;isolation:isolate}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}header{position:absolute;inset:22px 28px auto;display:flex;justify-content:space-between;align-items:center;z-index:12;gap:10px}.brand{font:700 11px var(--mono);letter-spacing:2px;white-space:nowrap;color:#c8d7df}.brand i,.liveDot{display:inline-block;width:6px;height:6px;background:var(--ice);box-shadow:0 0 12px var(--ice);border-radius:50%;margin-right:10px}.brand span{color:#72858f;font-size:10px;letter-spacing:1px}.tools{display:flex;gap:7px}.tools button,.tools select{font-size:11px;padding:8px 11px}.primary{background:linear-gradient(115deg,#ffe2a5,#eeb559);color:#1c2026;box-shadow:0 3px 0 #9e6c30,0 8px 32px #f1af431f;border:1px solid #ffdfaa;border-radius:6px;min-height:54px;padding:14px 25px;font-weight:850;transition:transform .09s,filter .09s}.primary:hover{background:linear-gradient(115deg,#ffe8b8,#ffc969);filter:brightness(1.06)}.primary:active{transform:translateY(3px);box-shadow:0 0 0 #9e6c30}#emergency{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:16vh 3vw 0;pointer-events:none;background:linear-gradient(#210b12b0,transparent 74%)}#emergency>*{pointer-events:auto}#emergency h1{font-family:Impact,"Arial Black",sans-serif;font-size:clamp(46px,14.8vw,202px);letter-spacing:-.035em;line-height:.9;margin:18px 0 14px;color:#ff6146;text-shadow:0 0 48px #ff382244,0 3px 0 #440b16;transform:scaleY(1.03)}#emergency h2{font-size:clamp(22px,3vw,42px);letter-spacing:.06em;margin:10px 0;color:#ffe8d7}.alertCode{font:700 11px var(--mono);letter-spacing:4px;color:#f6a08c}.alertCode b{letter-spacing:1px;color:#ff5a3e;margin-left:20px}.emergencySub{font-size:14px;letter-spacing:.08em;color:#abb9c3;margin:10px 0 25px}#start{margin-top:0}.solo{font-size:10px;color:#8197a4;letter-spacing:1px}.hazard{position:absolute;left:0;right:0;top:9vh;height:9px;opacity:.85;background:repeating-linear-gradient(125deg,#ef6546 0 18px,transparent 18px 36px);border-top:1px solid #ff5c4340;border-bottom:1px solid #ff5c4340;pointer-events:none!important}.hazard.bottom{top:auto;bottom:8vh;height:5px;opacity:.5}#hud{position:absolute;left:5%;right:5%;top:90px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.hudBlock{border-left:2px solid var(--gold);padding-left:12px}small{font:600 10px var(--mono);letter-spacing:2px;color:#8dabb9}strong{font-size:34px;line-height:1.5;font-weight:650;font-variant-numeric:tabular-nums}strong em{font:12px var(--mono);color:#657e8d;font-style:normal}.right{text-align:right;border-left:0;border-right:2px solid var(--ice);padding:0 12px 0 0}.planetStatus{font:600 9px var(--mono);letter-spacing:2px;color:#99b7bf;text-align:center}#shields{font:27px var(--mono);color:#a0e6da;margin-top:8px;letter-spacing:7px}.liveDot{width:4px;height:4px;margin-right:7px}#threat{position:absolute;left:50%;top:150px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;color:#ffc9a3;font:700 10px var(--mono);letter-spacing:2px;border-top:1px solid #ee97663a;border-bottom:1px solid #ee97663a;padding:4px 14px;background:#36171766;white-space:nowrap}.threatIcon{font-size:20px;color:#ff8153}#eta{font-size:16px;color:#ffe7cf;min-width:42px}#callout{position:absolute;top:27%;left:5%;width:90%;text-align:center;font-weight:850;font-size:clamp(20px,2.8vw,36px);letter-spacing:.02em;text-shadow:0 3px 25px #03080d;color:#ffdc9d;pointer-events:none}#controls{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(92%,470px);text-align:center}#moveCue{font-size:12px;letter-spacing:1px;color:#cee7e9;margin-bottom:14px;min-height:18px}.commandRow{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:12px;align-items:center}.rally{display:flex;align-items:center;justify-content:center;gap:9px;min-height:60px;color:#9fe6e4;border-color:#a3e5e34d;clip-path:polygon(0 9px,9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%);font-size:12px}.rally b{font-size:24px;font-weight:400}.rally.active{background:#123a40;border-color:#a0f3e0;color:#d3fff3;box-shadow:inset 0 0 24px #80ffdd16}#jump{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:19px;min-height:73px;line-height:1.2;gap:6px}#jump small{font-size:9px;color:#6b4b25;letter-spacing:3px}.cohesion{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:17px;font-size:10px;color:#93aab4}.meter{width:130px;height:3px;background:#76879636;position:relative}.meter i{position:absolute;inset:0 auto 0 0;width:0;background:var(--ice);box-shadow:0 0 8px #8df5e033}#unityValue{font:12px var(--mono);color:#bef6e7;min-width:40px;text-align:left}#instruction{font-size:10px;color:#647f8d;margin:10px 0 0;letter-spacing:.03em}.panel{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:min(92%,550px);padding:35px 30px;background:linear-gradient(135deg,#101e29f5,#07121ef5);border:1px solid #bacfdb38;box-shadow:0 30px 100px #0009;text-align:center;z-index:15;clip-path:polygon(0 18px,18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}.panel:before{content:'';position:absolute;left:22%;right:22%;height:2px;top:0;background:var(--gold)}.eyebrow{font:10px var(--mono);letter-spacing:3px;color:var(--gold)}.panel h2{font-size:clamp(25px,3vw,40px);margin:20px 0}.panel p{font-size:14px;color:#b2c7d0}#best{font:12px var(--mono);color:var(--gold);margin-bottom:25px}.resultLinks{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:22px 0 0}.resultLinks button{font-size:11px}.resultLinks a{width:100%;color:#a2d8e5;font-size:12px;text-decoration:none;margin-top:10px}details{margin-top:22px;font-size:9px;color:#607a87}summary{cursor:pointer}.credits{font-size:9px!important;line-height:1.6}.credits a{color:#a2d8e5}dialog{width:min(94%,520px);max-height:95vh;background:#0b1925;color:white;border:1px solid var(--edge);padding:20px;text-align:center}dialog::backdrop{background:#000c}dialog img{display:block;width:100%}dialog p{font-size:12px}dialog button{font-size:11px;margin:6px}#capture{position:absolute;left:8px;bottom:7px;z-index:30;font-size:9px;max-width:95vw}#capture button{font-size:9px;padding:4px 6px}#metrics{max-height:260px;overflow:auto;background:#06101df5;border:1px solid var(--edge);font-size:10px;text-align:left;padding:10px}[hidden]{display:none!important}@media(max-width:700px){header{inset:15px 14px auto}.brand{font-size:9px;letter-spacing:1px}.brand span{display:none}.tools{gap:4px}.tools button,.tools select{font-size:10px;padding:7px 8px}#emergency{padding-top:20vh}#emergency h1{font-size:14.5vw;margin:18px 0}#emergency h2{font-size:23px;letter-spacing:0}#emergency .emergencySub{font-size:11px;width:92%;text-align:center;margin-bottom:20px}.alertCode{font-size:8px;letter-spacing:2px}.alertCode b{margin-left:8px}.hazard{top:12vh}#hud{top:80px;left:6%;right:6%}strong{font-size:26px}.hudBlock{padding-left:8px}small{font-size:8px}.planetStatus{font-size:7px;letter-spacing:1px}#shields{font-size:22px}#threat{top:144px;font-size:8px;padding:3px 10px;gap:7px}#callout{top:26%;font-size:22px}#controls{bottom:26px;width:90%}.commandRow{gap:10px}.rally{min-height:57px;padding:8px 9px;font-size:11px;gap:5px}#jump{font-size:18px;min-height:69px;padding:12px 10px}#moveCue{font-size:11px;margin-bottom:12px}.cohesion{margin-top:13px}#instruction{font-size:9px}#result{padding:30px 20px}#resultStats{font-size:12px}.panel{top:45%}}@media(max-height:600px) and (min-width:700px){header{top:10px}#hud{top:60px}#threat{top:112px}#emergency{padding-top:15vh}#emergency h1{font-size:100px}#emergency h2{font-size:24px}#controls{left:auto;right:3%;transform:none;width:290px;bottom:25px}#callout{top:25%;font-size:24px}.commandRow{gap:6px}#jump{min-height:55px;font-size:15px}#moveCue{font-size:10px}.rally{min-height:45px;padding:6px;font-size:10px}#instruction{font-size:8px}.panel{top:52%;padding:18px}.panel h2{margin:12px 0;font-size:26px}details{margin-top:10px}}

.hudBlock small{display:block}.suggested{animation:rallyPulse 1.4s ease-in-out infinite}#emergency h1{animation:warningSlam .65s cubic-bezier(.12,.7,.2,1) both}.hazard{background-size:51px 100%;animation:stripeMarch 1.4s linear infinite}@keyframes warningSlam{0%{transform:scale(1.7,1.3);opacity:0;filter:blur(12px)}45%{opacity:1}100%{transform:scaleY(1.03);filter:blur(0)}}@keyframes rallyPulse{50%{border-color:#ffdc9d;box-shadow:0 0 22px #efb95835}}@keyframes stripeMarch{to{background-position:51px 0}}@media(prefers-reduced-motion:reduce){.suggested,#emergency h1,.hazard{animation:none}}
