:root{--bg:#07111d;--panel:#0b1928;--line:#284055;--ink:#e8f1f7;--muted:#91a5b5;--aqua:#5fe2d4;--sun:#f0c96a;--danger:#f27b82;--mono:"DM Mono",monospace;--display:"Oxanium",sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:13px var(--mono);min-height:100vh;margin:0}.sky{z-index:-1;background:radial-gradient(circle at 75% 15%,#15385b 0,#0000 24%),radial-gradient(circle at 11% 80%,#102c40 0,#0000 34%),#07111d;position:fixed;inset:0}.sky:after{content:"";opacity:.42;background-image:radial-gradient(#b7e3ed 1px,#0000 1.2px);background-size:103px 103px;position:absolute;inset:0}.shell{max-width:1180px;margin:auto;padding:28px 24px}.top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:62px;display:flex}.brand{font:600 20px var(--display);letter-spacing:.16em}.brand i{color:var(--aqua);font-style:normal}.top-links{align-items:center;gap:14px;display:flex}.top-site-link{color:var(--muted);letter-spacing:.06em;font-size:11px;text-decoration:none;transition:color .15s}.top-site-link:hover{color:var(--aqua)}.kofi-link{color:#ffb8b5;font:600 10px var(--display);letter-spacing:.08em;background:linear-gradient(135deg,#2a1215,#180c10);border:1px solid #ff5e5b66;align-items:center;gap:6px;padding:6px 10px;text-decoration:none;transition:filter .15s,border-color .15s;display:inline-flex}.kofi-link:hover{filter:brightness(1.12);border-color:#ff5e5baa}.kofi-link img{display:block}.eyebrow{color:var(--aqua);letter-spacing:.17em;font-size:10px}.lobby{grid-template-columns:1.15fr .85fr;align-content:center;gap:80px;min-height:calc(100vh - 120px);padding:64px 6vw;display:grid}.lobby h1{font:600 clamp(30px,5vw,58px)/.96 var(--display);letter-spacing:-.04em;max-width:560px;margin:14px 0 18px}.lobby h1.lobby-splash{opacity:0;min-height:calc(1.92*clamp(30px,5vw,58px));transition:opacity .22s}.lobby h1.lobby-splash.is-ready{opacity:1;min-height:0}.lobby h1 span{color:var(--aqua)}.lede{color:#b6c6d1;max-width:550px;font-size:15px;line-height:1.8}.join-card,.status-card{border:1px solid var(--line);background:linear-gradient(135deg,#0e2134dd,#091521dd);padding:25px;box-shadow:20px 24px #07101a77}.join-card h2,.status-card h2{font:600 19px var(--display);margin:0 0 8px}.join-card p,.status-card p{color:var(--muted);margin:0 0 22px;line-height:1.7}.primary,.secondary{border:1px solid var(--aqua);cursor:pointer;width:100%;min-height:52px;font:600 14px var(--display);letter-spacing:.08em}.primary{background:var(--aqua);color:#082128}.primary:hover{filter:brightness(1.1)}.secondary{color:var(--ink);border-color:var(--line);background:0 0;margin-top:10px}.status-card{display:none}.status-card.show{display:block}.spinner{border:2px solid #315266;border-top-color:var(--aqua);border-radius:50%;width:25px;height:25px;margin:18px 0;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fine{color:#738b9d;margin-top:26px;font-size:10px;line-height:1.65}.game-shell{max-width:1450px;margin:auto;padding:18px}.game-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 0 15px;display:flex}.match-meta{color:var(--muted);letter-spacing:.08em;font-size:10px}.online{color:var(--aqua)}.leave{color:#f7b0b5;font:11px var(--mono);cursor:pointer;background:0 0;border:1px solid #70424b;padding:9px 12px}.game-grid{grid-template-columns:230px minmax(0,1fr);gap:16px;padding-top:16px;display:grid}.panel{border:1px solid var(--line);background:#0a1725de}.side{padding:18px}.label{color:var(--muted);letter-spacing:.11em;font-size:10px}.turn{font:600 18px var(--display);margin:8px 0 25px}.player{border-bottom:1px solid #1b3143;padding:13px 0}.player.active{border-left:2px solid var(--aqua);margin-left:-11px;padding-left:10px}.player strong{font:600 13px var(--display);letter-spacing:.05em}.player small{color:var(--muted);margin-top:4px;display:block}.dots{color:var(--aqua);letter-spacing:3px;margin-top:7px}.enemy .dots{color:var(--danger)}.ship-select{grid-template-columns:repeat(3,1fr);gap:5px;margin-top:9px;display:grid}.ship-choice{color:#91a5b5;font:9px var(--mono);cursor:pointer;background:#0a1725;border:1px solid #365062;padding:6px 2px}.ship-choice i{color:#688091;margin-top:4px;font-size:7px;font-style:normal;display:block}.ship-choice.selected{color:#082128;border-color:var(--aqua);background:var(--aqua)}.ship-choice.selected i{color:#1d4f54}.ship-choice:disabled{opacity:.28;cursor:not-allowed}.rules{color:var(--muted);margin-top:28px;font-size:11px;line-height:1.7}.arena-wrap{min-height:520px;position:relative}.arena-top{height:47px;color:var(--muted);justify-content:space-between;padding:14px 16px;font-size:10px;display:flex}.arena-top b{color:var(--ink)}canvas{background:#07131f;width:100%;height:auto;max-height:calc(100vh - 220px);display:block}.event{border-left:2px solid var(--aqua);color:#d6ebee;opacity:0;background:#081522c9;padding:6px 9px;font-size:10px;transition:opacity .2s;position:absolute;top:62px;left:16px}.event.show{opacity:1}.command{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 140px;display:grid}.formula{padding:15px}.formula label{color:var(--muted);letter-spacing:.1em;margin-bottom:8px;font-size:10px;display:block}.formula-row{border-bottom:1px solid #365a68;align-items:center;display:flex}.formula-row span{font:600 18px var(--display);color:var(--aqua);padding-right:9px}.formula input{width:100%;color:var(--ink);font:13px var(--mono);background:0 0;border:0;outline:0;padding:7px 0}.hint{color:var(--muted);margin-top:8px;font-size:10px}.fire{background:var(--sun);color:#302303;font:700 16px var(--display);letter-spacing:.1em;cursor:pointer;border:0}.fire:disabled{color:#6c8290;cursor:not-allowed;background:#263b48}.disconnected{text-align:center;background:#07111ded;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.disconnected h2{font:600 26px var(--display);margin:0 0 10px}.disconnected p{color:var(--muted);max-width:330px;line-height:1.6}.disconnected button{width:auto;padding:12px 20px}@media (max-width:760px){.shell{padding:15px}.lobby{grid-template-columns:1fr;gap:35px;padding:60px 0}.top-links{gap:10px}.kofi-link{padding:5px 8px;font-size:9px}.game-grid{grid-template-columns:1fr}.side{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.rules{grid-column:1/-1;margin-top:14px}.arena-wrap{min-height:0}.game-shell{padding:12px}.command{grid-template-columns:1fr}.fire{min-height:50px}.arena-top{font-size:9px}}
.mode-grid{gap:9px;display:grid}.mode-card{text-align:left;color:var(--ink);cursor:pointer;background:#091827;border:1px solid #365062;padding:15px;transition:transform .18s,border-color .18s,background .18s}.mode-card:hover{border-color:var(--aqua);background:#0c2432;transform:translate(5px)}.mode-card.bot-mode:hover{border-color:var(--sun)}.mode-card.onslaught-mode:hover{border-color:var(--danger)}.mode-card strong,.mode-card small,.mode-index{display:block}.mode-card strong{font:600 16px var(--display);letter-spacing:.03em;margin:5px 0}.mode-card small{color:var(--muted);line-height:1.5}.mode-index{color:var(--aqua);letter-spacing:.14em;font-size:9px}.bot-mode .mode-index{color:var(--sun)}.onslaught-mode .mode-index{color:var(--danger)}.canvas-stage{aspect-ratio:5/3;background:#07131f;width:min(100%,166.667dvh - 366.667px);margin-inline:auto;overflow:hidden}.canvas-stage canvas{cursor:crosshair;width:100%;height:100%;max-height:none;display:block}.event.show{animation:.85s ease-out both shot-notice}@keyframes shot-notice{0%{opacity:0;filter:brightness(1.8);transform:translateY(-5px)}18%{opacity:1}to{opacity:1;filter:brightness();transform:translateY(0)}}.event-queue{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(340px,100% - 32px);display:flex;position:absolute;top:15px;left:16px}.event-queue .event{opacity:1;max-width:100%;line-height:1.35;position:static;box-shadow:0 5px 14px #00000048}:root{--bg:#02050a;--panel:#050b13;--line:#1a3143;--ink:#dbe8f0;--muted:#71899b;--aqua:#55d5cc;--sun:#e7bd61;--danger:#e46f78}body{background:#02050a}.sky:after{opacity:.25}.panel{background:#040a12e8;border-color:#173044;box-shadow:inset 0 1px #17304455}.join-card,.status-card{background:linear-gradient(135deg,#071521ee,#030912ee);box-shadow:18px 22px #0006}.mode-card{background:#040d17;border-color:#1c3b50}.mode-card:hover{background:#071a27}.match-conclusion{z-index:3;text-align:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(circle at 50% 45%,#071a2be8 0,#02060ce0 57%,#010409f5);place-content:center;justify-items:center;padding:30px;animation:.55s cubic-bezier(.16,.92,.26,1) both result-enter;display:grid;position:absolute;inset:47px 0 0}.match-conclusion:before{content:"";pointer-events:none;border:1px solid #4cd8ce33;position:absolute;inset:25px}.match-conclusion.defeat:before{border-color:#e46f7833}.result-signal{color:var(--aqua);letter-spacing:.22em;margin-bottom:14px;font-size:10px;position:relative}.defeat .result-signal{color:var(--danger)}.match-conclusion h2{font:600 clamp(28px,5vw,58px)/.9 var(--display);letter-spacing:.06em;color:#eaffff;text-shadow:0 0 32px #55d5cc77;margin:0;position:relative}.defeat h2{text-shadow:0 0 32px #e46f7877}.match-conclusion p{color:#a9bfcb;max-width:360px;margin:16px 0 20px;line-height:1.65;position:relative}.result-score{color:#9ab5c2;letter-spacing:.09em;border-block:1px solid #376579;align-items:center;gap:18px;margin-bottom:20px;padding:11px 17px;font-size:9px;display:flex;position:relative}.result-score b{font:600 24px var(--display);color:#eafaff;letter-spacing:0;display:block}.result-score i{font-style:normal;font:400 22px var(--display);color:#477180}.result-primary,.result-secondary{cursor:pointer;width:min(100%,300px);min-height:45px;font:600 12px var(--display);letter-spacing:.08em;position:relative}.result-primary{border:1px solid var(--aqua);background:var(--aqua);color:#062027}.defeat .result-primary{color:#2d090d;background:#e98289;border-color:#e98289}.result-secondary{color:#afc3cc;background:0 0;border:1px solid #2b4b5b;margin-top:8px}.result-primary:hover,.result-secondary:hover{filter:brightness(1.16);transform:translateY(-1px)}@keyframes result-enter{0%{opacity:0;filter:brightness(1.6);transform:scale(.97)}to{opacity:1;filter:brightness();transform:scale(1)}}@media (max-width:760px){.match-conclusion{padding:22px;inset:47px 0 0}.match-conclusion:before{inset:14px}.match-conclusion h2{font-size:33px}.result-score{gap:12px}}.formula-row{border-color:#24495b}.leave{color:#df9098;border-color:#613842}.formula-row{background:linear-gradient(90deg,#071722,#030910);border:1px solid #24495b;border-radius:2px;flex-flow:row;align-items:center;gap:10px;padding:0 12px;display:flex}.formula-row span{white-space:nowrap;color:#77eee4;text-shadow:0 0 14px #55d5cc77;flex:none;line-height:1;display:block}.formula-row input,.formula-row textarea{flex:1;min-width:0;padding:11px 0}.formula-row textarea{resize:none;width:100%;min-height:60px;max-height:168px;color:var(--ink);font:13px/1.45 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;caret-color:#77eee4;background:0 0;border:0;outline:0;overflow:auto}.formula-row textarea:disabled{opacity:.55;cursor:not-allowed}.formula-row textarea::-webkit-scrollbar{width:6px}.formula-row textarea::-webkit-scrollbar-thumb{background:#214b5a;border-radius:99px}.formula-row textarea::-webkit-scrollbar-track{background:#061019}.formula-row:focus-within{border-color:#55d5cc;box-shadow:0 0 0 1px #55d5cc33,0 0 20px #55d5cc1f}.fire{isolation:isolate;color:#eaffff;letter-spacing:.14em;text-shadow:0 1px #001a20;background:linear-gradient(135deg,#0d5f68 0%,#08343f 55%,#061922 100%);border:1px solid #70f1e5;margin:9px;font-size:14px;transition:transform .16s,box-shadow .16s,border-color .16s,filter .16s;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #c8fffb22,0 0 0 1px #061016,0 8px 22px #00000070}.fire:before{content:"";z-index:-1;background:linear-gradient(105deg,#0000 39%,#ceffff44 50%,#0000 61%);transition:transform .45s;position:absolute;inset:-80% -35%;transform:translate(-45%)}.fire:not(:disabled):hover{filter:brightness(1.18);border-color:#cafffa;transform:translateY(-1px);box-shadow:inset 0 0 20px #a4fff638,0 0 18px #55d5cc4d,0 8px 22px #00000070}.fire:not(:disabled):hover:before{transform:translate(45%)}.fire:not(:disabled):active{transform:translateY(1px);box-shadow:inset 0 0 24px #001d25,0 0 8px #55d5cc44}.fire:disabled{color:#5f7784;box-shadow:none;text-shadow:none;background:#0b1720;border:1px solid #294350;margin:9px}.energy-bar{background:repeating-linear-gradient(90deg,#06121c 0 9%,#0d2631 9.3% 10%);border:1px solid #376b79;height:28px;margin:8px 0 22px;position:relative;overflow:hidden;box-shadow:inset 0 0 16px #000b11}.energy-bar:before{content:"";z-index:1;pointer-events:none;border:1px solid #b6fff21f;position:absolute;inset:3px}.energy-bar span{z-index:2;font:600 11px var(--display);letter-spacing:.08em;color:#edfffd;text-shadow:0 1px 4px #001012;justify-content:center;align-items:center;gap:7px;display:flex;position:absolute;inset:0}.energy-bar span b{color:#a0d6d2;letter-spacing:.16em;font-size:8px}.energy-bar span i{color:#a6c0c7;font-size:9px;font-style:normal}.energy-fill{background:linear-gradient(90deg,#0a5965 0%,#27b8b4 68%,#91fff0 100%);height:100%;transition:width .12s linear;box-shadow:inset 0 0 12px #d0fff766,0 0 14px #55d5cc55}.power-control{background:#04101a;border:1px solid #1d4050;margin-top:12px;padding:9px 10px 8px}.power-control label{color:#9bc8c9;letter-spacing:.12em;margin-bottom:8px;font-size:8px;display:block}.power-control input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}.power-control input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,#55d5cc 0 var(--power-fill),#0a1d29 var(--power-fill) 100%);border:1px solid #255263;border-radius:999px;height:6px;box-shadow:inset 0 1px 4px #000}.power-control input[type=range]::-webkit-slider-thumb{appearance:none;background:#168a90;border:2px solid #d3fff9;border-radius:50%;width:16px;height:16px;margin-top:-6px;box-shadow:0 0 0 3px #55d5cc2e,0 0 12px #55d5ccaa}.power-control input[type=range]::-moz-range-track{background:#0a1d29;border:1px solid #255263;border-radius:999px;height:6px}.power-control input[type=range]::-moz-range-progress{background:#55d5cc;border-radius:999px;height:6px}.power-control input[type=range]::-moz-range-thumb{background:#168a90;border:2px solid #d3fff9;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 3px #55d5cc2e,0 0 12px #55d5ccaa}.power-control input[type=range]:focus-visible{outline-offset:5px;outline:2px solid #b8fff7}.power-control input[type=range]:disabled{opacity:.4;cursor:not-allowed}.ship-choice.moving{color:#d9ffff;background:#0b2633;border-color:#55d5cc;box-shadow:inset 0 0 12px #55d5cc22}.ship-choice.moving i{color:#8ff4ea;letter-spacing:.04em;font-weight:700}.ship-choice.moving.selected{color:#efffff;background:#155365;border-color:#d7fffb;box-shadow:inset 0 0 14px #9afff255}.ship-choice.moving.selected i{color:#fff}.arc-history{border-top:1px solid #173443;margin-top:12px;padding-top:9px}.arc-history>span{color:#618494;letter-spacing:.16em;margin-bottom:6px;font-size:8px;display:block}.arc-history>div{flex-wrap:wrap;gap:5px;display:flex}.arc-history button{color:#9eb8c5;cursor:pointer;max-width:100%;font:9px var(--mono);text-overflow:ellipsis;white-space:nowrap;background:#06121c;border:1px solid #254758;align-items:center;gap:6px;padding:5px 7px;transition:border-color .15s,background .15s,color .15s;display:flex;overflow:hidden}.arc-history button b{color:#55d5cc;font:600 8px var(--display);letter-spacing:.06em}.arc-history button:hover,.arc-history button.selected{color:#e2fbfa;background:#0b2530;border-color:#55d5cc}.arc-history button:disabled{cursor:not-allowed;opacity:.48}.tutorial{border-top:1px solid #1a3445;margin:0 auto;padding:92px 6vw 62px}.tutorial-intro{grid-template-columns:minmax(190px,.42fr) minmax(0,.58fr);align-items:end;gap:40px;margin-bottom:28px;display:grid}.tutorial h2{font:600 clamp(31px,4vw,52px)/.9 var(--display);letter-spacing:.04em;margin:9px 0 0}.tutorial-intro p{color:#9db5c1;max-width:520px;margin:0;font-size:14px;line-height:1.8}.tutorial-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.tutorial-card{background:linear-gradient(145deg,#061521e8,#030a11e8);border:1px solid #23465a;min-height:325px;padding:16px;overflow:hidden;box-shadow:12px 15px #0000003d}.tutorial-card>div:last-child{position:relative}.tutorial-card span{color:#67e1d8;letter-spacing:.14em;font-size:9px}.tutorial-card h3{font:600 17px/1.15 var(--display);letter-spacing:.02em;margin:8px 0 9px}.tutorial-card p{color:#91aab7;margin:0;font-size:11px;line-height:1.7}.tutorial-card code{color:#cafff8;font:inherit}.lesson-visual{background:radial-gradient(circle at 68% 28%,#0e3751 0,#0000 24%),#020a12;border-bottom:1px solid #1c3d4f;height:135px;margin:-16px -16px 18px;position:relative;overflow:hidden}.lesson-visual:before{content:"";opacity:.45;background-image:radial-gradient(#a9dfe9 1px,#0000 1.1px);background-size:31px 31px;position:absolute;inset:0}.demo-ship{z-index:1;clip-path:polygon(100% 50%,0 0,25% 50%,0 100%);filter:drop-shadow(0 0 7px #55d5cc88);background:#61ded5;width:20px;height:12px;position:absolute}.fire-lesson .demo-ship{top:58px;left:25px}.demo-beam{z-index:1;background:linear-gradient(90deg,#fff,#60dcd6aa,#0000);width:0;height:2px;animation:3.5s ease-in-out infinite tutorial-beam;position:absolute;top:63px;left:42px;box-shadow:0 0 9px #54d8cf}.demo-head{z-index:2;background:#fff;border-radius:50%;width:9px;height:9px;animation:3.5s ease-in-out infinite tutorial-head;position:absolute;top:59px;left:42px;box-shadow:0 0 10px #62e7df}.hitbox-lesson .demo-ship{top:59px;left:calc(50% - 10px)}.hit-ring{z-index:1;border:1px solid #f27b82;border-radius:50%;width:60px;height:60px;animation:2.6s ease-in-out infinite tutorial-ring;position:absolute;top:40px;left:calc(50% - 30px);box-shadow:0 0 18px #f27b824d}.hit-probe{background:#f27b82;width:calc(50% - 20px);height:1px;animation:2.6s ease-in-out infinite tutorial-probe;position:absolute;top:65px;left:20px}.move-lesson .demo-ship{animation:4s ease-in-out infinite tutorial-ship-move;top:58px;left:24px}.move-route{z-index:1;border-top:1px dashed #5fe2d499;width:calc(100% - 88px);position:absolute;top:64px;left:45px}.move-waypoint{z-index:2;color:#5fe2d4;width:31px;height:31px;font:600 20px/1 var(--display);border:1px solid #5fe2d4;border-radius:50%;place-items:center;animation:4s ease-in-out infinite tutorial-waypoint;display:grid;position:absolute;top:48px;right:26px}@keyframes tutorial-beam{0%,18%{opacity:0;width:0}35%,70%{opacity:1;width:calc(100% - 66px)}to{opacity:0;width:calc(100% - 66px)}}@keyframes tutorial-head{0%,18%{opacity:0;transform:translate(0)}35%,70%{opacity:1;transform:translate(25vw)}to{opacity:0;transform:translate(25vw)}}@keyframes tutorial-ring{50%{opacity:.55;transform:scale(1.12)}}@keyframes tutorial-probe{0%,55%{transform-origin:100%;opacity:0;transform:scaleX(0)}70%,to{transform-origin:100%;opacity:1;transform:scaleX(1)}}@keyframes tutorial-ship-move{0%,22%{transform:translate(0)}58%,78%{transform:translate(16.6667vw)}to{opacity:.3;transform:translate(16.6667vw)}}@keyframes tutorial-waypoint{0%,20%{color:#5fe2d4;border-color:#5fe2d4}58%,to{color:#ff858b;border-color:#ff858b;box-shadow:0 0 14px #ff858b66}}@media (max-width:760px){.tutorial{padding:65px 0 40px}.tutorial-intro{grid-template-columns:1fr;gap:13px}.tutorial-grid{grid-template-columns:1fr}.tutorial-card{min-height:0}.tutorial-head{display:none}}.lesson-stage{z-index:1;width:260px;height:110px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.lesson-stage .demo-ship,.fire-lesson .demo-ship{top:52px;left:16px}.demo-beam{animation:3.6s ease-in-out infinite tutorial-beam-local;top:57px;left:35px}.demo-head{animation:3.6s ease-in-out infinite tutorial-head-local;top:53px;left:35px}.demo-range{border-left:1px dashed #5fe2d455;height:64px;position:absolute;top:26px;right:17px}.hitbox-stage .demo-ship{top:52px;left:124px}.hit-ring{animation:2.6s ease-in-out infinite tutorial-ring;top:28px;left:104px}.hit-probe{transform-origin:100%;width:108px;animation:2.6s ease-in-out infinite tutorial-probe-local;top:58px;left:25px}.move-stage .demo-ship{animation:4s ease-in-out infinite tutorial-ship-local;top:52px;left:20px}.move-route{width:174px;top:58px;left:40px}.move-waypoint{animation:4s ease-in-out infinite tutorial-waypoint;top:43px;right:15px}@keyframes tutorial-beam-local{0%,15%{opacity:0;width:0}32%,70%{opacity:1;width:190px}to{opacity:0;width:190px}}@keyframes tutorial-head-local{0%,15%{opacity:0;transform:translate(0)}32%,70%{opacity:1;transform:translate(190px)}to{opacity:0;transform:translate(190px)}}@keyframes tutorial-probe-local{0%,50%{opacity:0;transform:scaleX(0)}68%,to{opacity:1;transform:scaleX(1)}}@keyframes tutorial-ship-local{0%,22%{transform:translate(0)}58%,78%{transform:translate(166px)}to{opacity:.35;transform:translate(166px)}}@media (max-width:760px){.lesson-stage{transform-origin:top;transform:translate(-50%)scale(.92)}.tutorial-card{min-height:300px}}.tutorial-notes{background:#1d4051;border:1px solid #1d4051;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:30px;display:grid}.tutorial-notes article{background:#040d16;min-height:176px;padding:18px}.tutorial-notes span{color:#70e2d9;letter-spacing:.15em;margin-bottom:11px;font-size:9px;display:block}.tutorial-notes p,.tutorial-notes ol{color:#91aab7;margin:0;font-size:11px;line-height:1.72}.tutorial-notes ol{padding-left:17px}.tutorial-notes li+li{margin-top:5px}.tutorial-notes code{color:#d6fffa;font:inherit}@media (max-width:900px){.tutorial-notes{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.tutorial-notes{grid-template-columns:1fr}.tutorial-notes article{min-height:0}}.tutorial-intro{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:34px;display:flex}.tutorial-intro .eyebrow,.tutorial h2{margin:0}.tutorial-intro p{max-width:620px}.mode-card.private-mode .mode-index{color:#b58be8}.mode-card.private-mode:hover{background:#120f24;border-color:#b58be8}.private-card{position:relative}.back-link{color:#7f9cac;cursor:pointer;font:10px var(--mono);letter-spacing:.11em;background:0 0;border:0;margin:-4px 0 20px;padding:0}.back-link:hover{color:#c2fbf6}.private-card .eyebrow{color:#b58be8;margin-bottom:7px}.private-card h2{margin-bottom:9px}.private-create{color:#f0eaff;cursor:pointer;width:100%;font:600 14px var(--display);letter-spacing:.07em;background:linear-gradient(110deg,#251a42,#110d23);border:1px solid #7b5db0;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 15px;transition:transform .16s,border-color .16s,filter .16s;display:flex}.private-create:hover{filter:brightness(1.15);border-color:#bf9cf5;transform:translateY(-1px)}.private-create small{color:#c6b6dd;font:10px var(--mono);letter-spacing:0}.code-divider{color:#597383;letter-spacing:.13em;place-items:center;margin:20px 0;font-size:9px;display:grid;position:relative}.code-divider:before{content:"";border-top:1px solid #1a3546;position:absolute;inset:50% 0 auto}.code-divider span{background:#06111c;padding:0 10px;position:relative}.code-entry{margin-bottom:14px;display:block}.code-entry>span{color:#8ba7b4;letter-spacing:.13em;margin-bottom:7px;font-size:9px;display:block}.code-entry input{color:#eaffff;text-align:center;text-transform:uppercase;width:100%;font:600 21px/1 var(--display);letter-spacing:.23em;caret-color:#b58be8;background:#020a12;border:1px solid #355169;outline:0;padding:13px 15px;transition:border-color .16s,box-shadow .16s}.code-entry input::placeholder{color:#456173}.code-entry input:focus{border-color:#b58be8;box-shadow:0 0 0 2px #b58be826,0 0 18px #9b70dd22}.private-status{border-color:#60468a}.private-status .eyebrow{color:#c3a3f0}.lobby-code{color:#f2ebff;text-align:center;font:600 clamp(28px,6vw,43px)/1 var(--display);letter-spacing:.24em;text-shadow:0 0 22px #a77aea99;background:linear-gradient(90deg,#0000,#26184080,#0000);border-block:1px solid #60468a;margin:22px 0 9px;padding:15px;display:block}.code-note{color:#9e83bf;text-align:center;letter-spacing:.14em;font-size:8px;display:block}@media (max-width:760px){.lobby-code{letter-spacing:.18em;font-size:31px}.code-entry input{font-size:19px}}.arena-stage{position:relative}.launch-countdown{z-index:4;text-align:center;pointer-events:none;background:radial-gradient(circle,#09243c72 0,#02080f9e 38%,#02050ae0);place-content:center;justify-items:center;animation:.45s ease-out both launch-fade-in;display:grid;position:absolute;inset:0}.launch-countdown:before,.launch-countdown:after{content:"";aspect-ratio:1;border:1px solid #5cded534;border-radius:50%;width:min(54vw,300px);animation:2s ease-out infinite launch-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.launch-countdown:after{border-color:#d1fff937;width:min(39vw,220px);animation-delay:.55s}.launch-countdown>*{position:relative}.launch-kicker{color:#8adbd6;letter-spacing:.28em;font-size:10px}.launch-countdown output{color:#f2ffff;font:600 clamp(74px,13vw,126px)/.82 var(--display);letter-spacing:-.05em;text-shadow:0 0 18px #6be8df9c,0 0 55px #51c9bf52;margin:8px 0 5px;animation:1s ease-in-out infinite launch-number}.launch-countdown p{color:#9ab7c4;letter-spacing:.09em;margin:0;font-size:10px}@keyframes launch-fade-in{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@keyframes launch-pulse{0%{opacity:.7;transform:translate(-50%,-50%)scale(.82)}to{opacity:0;transform:translate(-50%,-50%)scale(1.14)}}@keyframes launch-number{50%{color:#a5fffa;text-shadow:0 0 28px #a5fffa,0 0 68px #51c9bf77}}@media (max-width:760px){.launch-countdown p,.launch-kicker{font-size:8px}}.fleet-command{padding-bottom:15px}.fleet-command small{margin-bottom:10px}.ship-select{grid-template-columns:1fr;gap:6px;margin-top:10px;display:grid}.ship-command{grid-template-columns:76px minmax(0,1fr);align-items:stretch;gap:7px;display:grid}.ship-choice{text-align:center;min-height:42px;padding:5px 3px}.ship-energy{color:#e9fffd;font:600 12px var(--display);letter-spacing:.06em;background:repeating-linear-gradient(90deg,#06121c 0 9%,#0d2631 9.3% 10%);border:1px solid #254f60;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 11px #000b11}.ship-energy:before{content:"";pointer-events:none;border:1px solid #b6fff21c;position:absolute;inset:2px}.ship-energy-fill{z-index:1;background:linear-gradient(90deg,#0a5965,#2fc3bc 70%,#9dfff1);height:100%;transition:width .12s linear;position:absolute;inset:0 auto 0 0;box-shadow:inset 0 0 10px #d0fff744}.ship-energy i{color:#c2e0df;font-size:8px;font-style:normal}.ship-command:has(.ship-choice:disabled) .ship-energy{opacity:.42;filter:saturate(.3)}@media (max-width:760px){.fleet-command{grid-column:1/-1}.ship-select{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ship-command{grid-template-columns:70px minmax(0,1fr)}}.enemy{position:relative}.enemy:before{content:"";background:#e46f78;width:2px;position:absolute;top:14px;bottom:14px;left:-11px;box-shadow:0 0 10px #e46f7866}.enemy-ship-list{gap:5px;margin-top:10px;display:grid}.enemy-ship{color:#f2cbd0;width:100%;min-height:26px;font:inherit;text-align:left;cursor:pointer;background:linear-gradient(90deg,#170c11,#0b0b12);border:1px solid #4e2931;grid-template-columns:55px minmax(0,1fr) 27px;align-items:center;gap:6px;padding:4px 6px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.enemy-ship:not(.lost):hover{border-color:color-mix(in srgb,var(--enemy-ship,#f27b82) 58%,#fff);box-shadow:0 0 12px color-mix(in srgb,var(--enemy-ship,#f27b82) 18%,transparent);transform:translateY(-1px)}.enemy-ship.pinging{border-color:color-mix(in srgb,var(--enemy-ship,#f27b82) 72%,#fff);box-shadow:0 0 14px color-mix(in srgb,var(--enemy-ship,#f27b82) 28%,transparent)}.enemy-ship:disabled{cursor:default;transform:none}.enemy-ship>b{font:600 8px var(--display);letter-spacing:.07em}.enemy-energy{background:#180d12;border:1px solid #65333d;height:7px;position:relative;overflow:hidden;box-shadow:inset 0 0 5px #000}.enemy-energy i{background:linear-gradient(90deg,#702e3a,#d75c69 72%,#ffb1ae);transition:width .12s linear;position:absolute;inset:0 auto 0 0;box-shadow:0 0 8px #e46f785c}.enemy-ship>span{text-align:right;color:#ffd4d5;font:600 9px var(--display);letter-spacing:.04em}.enemy-ship.lost{opacity:.38;filter:saturate(.2)}.enemy-ship.lost .enemy-energy i{width:0!important}.enemy-ship.lost>span{color:#82909a;font-size:8px}@media (max-width:760px){.enemy{grid-column:1/-1}.enemy-ship-list{grid-template-columns:repeat(2,minmax(0,1fr))}.enemy-ship{grid-template-columns:50px minmax(0,1fr) 24px}}.constant-tuners{background:linear-gradient(135deg,#061722,#030c13);border:1px solid #204654;margin-top:10px;padding:9px 10px}.constant-tuners-head{color:#9bc8c9;letter-spacing:.14em;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:8px;display:flex}.constant-tuners-head small{color:#55d5cc;letter-spacing:.12em;font-size:8px}.constant-slider-list{gap:7px;display:grid}.constant-slider{grid-template-columns:25px minmax(0,1fr) 50px;align-items:center;gap:8px;display:grid}.constant-slider b{color:#65e3da;font:600 9px var(--display);letter-spacing:.06em}.constant-slider output{color:#edfffd;text-align:right;font:600 10px var(--mono);letter-spacing:.02em}.constant-slider input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:14px;margin:0}.constant-slider input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,#157e82,#55d5cc);border:1px solid #255263;border-radius:99px;height:4px}.constant-slider input[type=range]::-webkit-slider-thumb{appearance:none;background:#168a90;border:2px solid #d3fff9;border-radius:50%;width:12px;height:12px;margin-top:-5px;box-shadow:0 0 0 2px #55d5cc2e,0 0 9px #55d5ccaa}.constant-slider input[type=range]::-moz-range-track{background:#117276;border:1px solid #255263;border-radius:99px;height:4px}.constant-slider input[type=range]::-moz-range-thumb{background:#168a90;border:2px solid #d3fff9;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 2px #55d5cc2e,0 0 9px #55d5ccaa}.constant-slider input[type=range]:disabled{opacity:.42;cursor:not-allowed}.constant-tuners.empty{color:#728d9b;letter-spacing:.1em;padding:8px 10px;font-size:9px}.constant-tuners.empty span{color:#7897a6;letter-spacing:.14em;font-size:8px;display:block}.constant-tuners.empty p{letter-spacing:0;margin:5px 0 0;font-size:9px;line-height:1.45}@media (max-width:760px){.constant-slider{grid-template-columns:25px minmax(0,1fr) 46px}}.game-shell{flex-direction:column;max-width:1600px;height:100dvh;display:flex;overflow:hidden}.game-top{flex:none}.game-grid{flex:1;grid-template-columns:218px minmax(540px,1fr) 310px;gap:14px;min-height:0;padding-top:14px;display:grid}.side,.arena-wrap,.command-panel{min-height:0;max-height:100%;overflow:hidden}.side{overscroll-behavior:contain;overflow:auto}.arena-wrap{flex-direction:column;display:flex}.arena-top{flex:none}.arena-stage{flex:1;place-items:center;min-height:0;padding:10px 12px 14px;display:grid}.arena-stage .canvas-stage{width:min(100%,166.667dvh - 186.667px);max-height:100%}.command-panel{overscroll-behavior:contain;background:linear-gradient(#05111bee,#02070dee);border-color:#204654;flex-direction:column;display:flex;overflow:auto}.command-panel .formula{padding:13px 13px 0}.command-head{border-bottom:1px solid #173443;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:9px;display:flex}.command-head span{color:#e6fffc;font:600 13px var(--display);letter-spacing:.13em}.command-head b{color:#55d5cc;font:600 8px var(--display);letter-spacing:.15em}.command-panel .fire{flex:none;min-height:58px;margin:12px 13px 13px}.command-panel .hint{min-height:28px;line-height:1.45}.field-brief{border-top:1px solid #173443;gap:5px;margin-top:12px;padding-top:12px;display:grid}.field-brief span{color:#8bb0bd;font:600 8px var(--display);letter-spacing:.1em;background:#06141e;border:1px solid #214252;padding:6px 7px;display:block}.arc-history>div{overscroll-behavior:contain;max-height:142px;padding-right:2px;overflow:auto}.constant-slider-list{overscroll-behavior:contain;max-height:clamp(100px,100dvh - 560px,320px);padding-right:2px;overflow:auto}.constant-slider-list::-webkit-scrollbar{width:6px}.arc-history>div::-webkit-scrollbar{width:6px}.command-panel::-webkit-scrollbar{width:6px}.side::-webkit-scrollbar{width:6px}.constant-slider-list::-webkit-scrollbar-thumb{background:#214b5a;border-radius:99px}.arc-history>div::-webkit-scrollbar-thumb{background:#214b5a;border-radius:99px}.command-panel::-webkit-scrollbar-thumb{background:#214b5a;border-radius:99px}.side::-webkit-scrollbar-thumb{background:#214b5a;border-radius:99px}.constant-slider-list::-webkit-scrollbar-track{background:#061019}.arc-history>div::-webkit-scrollbar-track{background:#061019}.command-panel::-webkit-scrollbar-track{background:#061019}.side::-webkit-scrollbar-track{background:#061019}@media (max-width:1120px){.game-shell{height:auto;overflow:visible}.game-grid{grid-template-columns:1fr;min-height:0}.side{grid-template-columns:1fr 1fr;gap:0 18px;display:grid;overflow:visible}.command-panel{overflow:visible}.arena-stage{padding:0}.arena-stage .canvas-stage{width:100%}.field-brief{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.constant-slider-list,.arc-history>div{max-height:none}}@media (max-width:760px){.game-shell{height:auto;overflow:visible}.game-grid,.field-brief{grid-template-columns:1fr}.command-panel .fire{min-height:52px}.arena-stage .canvas-stage{width:100%}}.command-panel{scrollbar-gutter:stable;overflow:hidden}.command-panel .formula{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1 1 0;min-height:0;padding-right:9px;overflow:auto}.command-panel .formula::-webkit-scrollbar{width:6px}.command-panel .formula::-webkit-scrollbar-thumb{background:#214b5a;border-radius:99px}.command-panel .formula::-webkit-scrollbar-track{background:#061019}.command-panel .fire{z-index:1;position:relative;box-shadow:inset 0 0 0 1px #c8fffb22,0 -10px 18px #02070dcc,0 8px 22px #00000070}.power-control label,.constant-tuners-head small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.command-panel{scrollbar-gutter:auto;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.command-panel .command-editor{scrollbar-gutter:auto;flex:none;min-height:auto;padding:13px 13px 10px;overflow:visible}.command-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:0 13px 10px;overflow:auto}.command-scroll::-webkit-scrollbar{width:6px}.command-scroll::-webkit-scrollbar-thumb{background:#214b5a;border-radius:99px}.command-scroll::-webkit-scrollbar-track{background:#061019}.command-scroll .constant-tuners{margin-top:0}.command-scroll .constant-slider-list,.command-scroll .arc-history>div{max-height:none;padding-right:0;overflow:visible}.command-footer{background:linear-gradient(#02070dcc,#02070d);border-top:1px solid #173443;padding:0 13px 13px}.command-footer .power-control{margin-top:12px}.command-footer .fire{width:100%;min-height:58px;margin:10px 0 0}.command-footer .hint{min-height:24px}.command-panel{grid-template-columns:minmax(0,1fr);align-content:stretch}.command-panel>*{min-width:0}.command-scroll{scrollbar-gutter:auto}.command-scroll .constant-tuners{width:100%}.symbol-slider b{text-transform:uppercase;color:#e7bd61}.reverse-fire{color:#9eb8c5;cursor:pointer;width:100%;font:600 9px var(--display);letter-spacing:.12em;background:#06121c;border:1px solid #254758;justify-content:space-between;align-items:center;gap:10px;margin-top:9px;padding:8px 10px;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;display:flex}.reverse-fire span{color:#6f8f9e}.reverse-fire b{color:#d8f8f5;letter-spacing:.14em;font-size:9px}.reverse-fire.active{background:linear-gradient(90deg,#1d180d,#07131c);border-color:#e7bd61;box-shadow:0 0 14px #e7bd6128}.reverse-fire.active b{color:#ffe2a0}.reverse-fire:disabled{opacity:.45;cursor:not-allowed}.game-shell{--player-ui:#55d5cc;--player-laser:#55d5cc;--player-ship:#55d5cc}.player.active{border-left-color:var(--player-ui)}.ship-choice.selected{border-color:var(--player-ui);background:var(--player-ui)}.ship-choice.moving,.ship-choice.moving.selected{border-color:var(--fleet-ship,var(--player-ship));box-shadow:inset 0 0 12px color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 28%,transparent)}.ship-energy{border-color:color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 42%,#173044)}.ship-energy-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 45%,#08141c),var(--fleet-ship,var(--player-ship)) 72%,#eaffff);box-shadow:inset 0 0 10px color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 44%,transparent)}.enemy:before{background:var(--enemy-ship,#f27b82);box-shadow:0 0 10px color-mix(in srgb,var(--enemy-ship,#f27b82) 45%,transparent)}.enemy-ship{border-color:color-mix(in srgb,var(--enemy-ship,#f27b82) 45%,#20141a);color:color-mix(in srgb,var(--enemy-ship,#f27b82) 65%,#fff);background:linear-gradient(90deg,color-mix(in srgb,var(--enemy-ship,#f27b82) 14%,#080b11),#080b11)}.enemy-energy{border-color:color-mix(in srgb,var(--enemy-ship,#f27b82) 50%,#180d12)}.enemy-energy i{background:linear-gradient(90deg,color-mix(in srgb,var(--enemy-ship,#f27b82) 42%,#160d12),var(--enemy-ship,#f27b82) 72%,#fff);box-shadow:0 0 8px color-mix(in srgb,var(--enemy-ship,#f27b82) 42%,transparent)}.enemy-ship>span{color:color-mix(in srgb,var(--enemy-ship,#f27b82) 45%,#fff)}.cosmetic-controls{border-top:1px solid #173443;gap:9px;margin-top:12px;padding-top:12px;display:grid}.cosmetic-title{color:#7f9dac;font:600 8px var(--display);letter-spacing:.16em;justify-content:space-between;align-items:center;gap:8px;display:flex}.cosmetic-title i{color:color-mix(in srgb,var(--swatch) 68%,#fff);text-shadow:0 0 10px color-mix(in srgb,var(--swatch) 54%,transparent);letter-spacing:.09em;font-size:8px;font-style:normal}.color-row{gap:6px;display:grid}.color-row>span{color:#8aa7b4;font:600 8px var(--display);letter-spacing:.13em}.color-row>div{background:linear-gradient(#061923,#030b12);border:1px solid #244858;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff08,0 8px 18px #0000003d}.color-row button{background:linear-gradient(180deg,color-mix(in srgb,var(--swatch) 16%,#09141d),#030a11);cursor:pointer;color:#d7f8f5;border:0;border-right:1px solid #1d3a49;min-width:0;height:34px;transition:background .14s,box-shadow .14s,filter .14s;position:relative}.color-row button:last-child{border-right:0}.color-row button i{background:linear-gradient(90deg,color-mix(in srgb,var(--swatch) 36%,#fff),var(--swatch));height:8px;box-shadow:0 0 12px color-mix(in srgb,var(--swatch) 58%,transparent);border-radius:999px;position:absolute;top:7px;left:8px;right:8px}.color-row button b{color:#7f9dac;font:600 8px var(--display);letter-spacing:.08em;position:absolute;bottom:5px;left:8px}.color-row button:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--swatch) 26%,#0d1b25),#06111b);filter:saturate(1.14)}.color-row button.selected{background:linear-gradient(180deg,color-mix(in srgb,var(--swatch) 30%,#0a1822),color-mix(in srgb,var(--swatch) 12%,#02070d));box-shadow:inset 0 -2px 0 var(--swatch),inset 0 0 0 1px color-mix(in srgb,var(--swatch) 62%,#fff),0 0 18px color-mix(in srgb,var(--swatch) 35%,transparent)}.color-row button.selected b{color:#efffff}.game-shell .brand i,.game-shell .online{color:var(--player-ui);text-shadow:0 0 14px color-mix(in srgb,var(--player-ui) 48%,transparent)}.game-shell .command-panel{border-color:color-mix(in srgb,var(--player-ui) 38%,#173044)}.game-shell .command-head{border-bottom-color:color-mix(in srgb,var(--player-ui) 28%,#173443)}.game-shell .command-head b,.game-shell .formula-row span,.game-shell .constant-tuners-head small,.game-shell .constant-slider b,.game-shell .arc-history button b{color:var(--player-ui);text-shadow:0 0 11px color-mix(in srgb,var(--player-ui) 42%,transparent)}.game-shell .formula-row{border-color:color-mix(in srgb,var(--player-ui) 36%,#24495b)}.game-shell .formula-row textarea{caret-color:var(--player-ui)}.game-shell .formula-row:focus-within{border-color:var(--player-ui);box-shadow:0 0 0 1px color-mix(in srgb,var(--player-ui) 30%,transparent),0 0 20px color-mix(in srgb,var(--player-ui) 20%,transparent)}.game-shell .fire:not(:disabled){border-color:color-mix(in srgb,var(--player-ui) 78%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--player-ui) 52%,#07131f) 0%,color-mix(in srgb,var(--player-ui) 28%,#06131d) 58%,#061018 100%);box-shadow:inset 0 0 0 1px #fff2,0 0 0 1px #061016,0 8px 22px #00000070}.game-shell .fire:not(:disabled):hover{border-color:color-mix(in srgb,var(--player-ui) 48%,#fff);box-shadow:inset 0 0 20px color-mix(in srgb,var(--player-ui) 28%,transparent),0 0 18px color-mix(in srgb,var(--player-ui) 34%,transparent),0 8px 22px #00000070}.game-shell .fire:not(:disabled):active{box-shadow:inset 0 0 24px #001d25,0 0 8px color-mix(in srgb,var(--player-ui) 35%,transparent)}.game-shell .power-control{border-color:color-mix(in srgb,var(--player-ui) 30%,#1d4050)}.game-shell .power-control input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--player-ui) 0 var(--power-fill),#0a1d29 var(--power-fill) 100%)}.game-shell .power-control input[type=range]::-webkit-slider-thumb{background:color-mix(in srgb,var(--player-ui) 62%,#06121c);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-ui) 18%,transparent),0 0 12px color-mix(in srgb,var(--player-ui) 66%,transparent)}.game-shell .power-control input[type=range]::-moz-range-progress{background:var(--player-ui)}.game-shell .power-control input[type=range]::-moz-range-thumb{background:color-mix(in srgb,var(--player-ui) 62%,#06121c);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-ui) 18%,transparent),0 0 12px color-mix(in srgb,var(--player-ui) 66%,transparent)}.game-shell .constant-tuners{border-color:color-mix(in srgb,var(--player-ui) 32%,#204654)}.game-shell .constant-slider input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,color-mix(in srgb,var(--player-ui) 54%,#06151d),var(--player-ui))}.game-shell .constant-slider input[type=range]::-webkit-slider-thumb{background:color-mix(in srgb,var(--player-ui) 60%,#07131f);box-shadow:0 0 0 2px color-mix(in srgb,var(--player-ui) 18%,transparent),0 0 9px color-mix(in srgb,var(--player-ui) 64%,transparent)}.game-shell .constant-slider input[type=range]::-moz-range-track{background:color-mix(in srgb,var(--player-ui) 60%,#07131f)}.game-shell .constant-slider input[type=range]::-moz-range-thumb{background:color-mix(in srgb,var(--player-ui) 60%,#07131f);box-shadow:0 0 0 2px color-mix(in srgb,var(--player-ui) 18%,transparent),0 0 9px color-mix(in srgb,var(--player-ui) 64%,transparent)}.game-shell .arc-history button:hover,.game-shell .arc-history button.selected{border-color:var(--player-ui);background:color-mix(in srgb,var(--player-ui) 14%,#06121c)}.game-shell .reverse-fire.active{border-color:var(--player-ui);background:linear-gradient(90deg,color-mix(in srgb,var(--player-ui) 18%,#07131c),#07131c);box-shadow:0 0 14px color-mix(in srgb,var(--player-ui) 28%,transparent)}.game-shell .reverse-fire.active b{color:color-mix(in srgb,var(--player-ui) 45%,#fff)}.game-shell .cosmetic-title i{background:var(--swatch);width:32px;height:6px;box-shadow:0 0 12px color-mix(in srgb,var(--swatch) 58%,transparent);border-radius:999px;display:block}.game-shell .fleet-command .ship-select{grid-template-columns:1fr;gap:7px}.game-shell .fleet-command .ship-choice{border:1px solid color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 28%,#243f50);background:linear-gradient(90deg,color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 10%,#07131d),#060b12);width:100%;min-height:58px;color:color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 36%,#fff);text-align:left;grid-template-rows:auto 13px;gap:7px;padding:8px 9px;transition:border-color .14s,background .14s,box-shadow .14s,transform .14s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff08}.game-shell .fleet-command .ship-choice:before{content:"";background:color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 60%,#fff);opacity:.42;width:2px;box-shadow:0 0 12px color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 40%,transparent);position:absolute;inset:0 auto 0 0}.game-shell .ship-choice-head{z-index:1;justify-content:space-between;align-items:center;gap:10px;display:flex;position:relative}.game-shell .ship-choice-head b{font:600 9px var(--display);letter-spacing:.08em}.game-shell .ship-choice-head i{color:color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 42%,#fff);font:600 8px var(--display);letter-spacing:.1em;margin:0}.game-shell .fleet-command .ship-energy{z-index:1;border:1px solid color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 35%,#1b3444);background:repeating-linear-gradient(90deg,#050d15 0 12%,#0b1c27 12.6% 14%);width:100%;height:13px;display:block;position:relative;box-shadow:inset 0 0 8px #000b11}.game-shell .fleet-command .ship-energy:before{border-color:#ffffff14;inset:1px}.game-shell .fleet-command .ship-energy-fill{z-index:1;background:linear-gradient(90deg,color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 38%,#07131f),var(--fleet-ship,var(--player-ship)) 72%,#f1ffff);height:100%;box-shadow:inset 0 0 9px color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 34%,transparent),0 0 10px color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 22%,transparent);transition:width .12s linear;position:absolute;inset:0 auto 0 0}.game-shell .fleet-command .ship-energy em{z-index:2;font:600 8px var(--display);letter-spacing:.06em;color:#efffff;text-shadow:0 1px 4px #001012;align-items:center;font-style:normal;display:flex;position:absolute;inset:0 5px 0 auto}.game-shell .fleet-command .ship-energy em i{color:#b7d3d2;margin-left:2px;font-size:7px;font-style:normal}.game-shell .fleet-command .ship-choice:hover:not(:disabled){border-color:color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 62%,#fff);background:linear-gradient(90deg,color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 18%,#07131d),#070d14);transform:translateY(-1px)}.game-shell .fleet-command .ship-choice.selected{border-color:color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 72%,#fff);background:linear-gradient(90deg,color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 24%,#07131d),#071019);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 32%,transparent),0 0 16px color-mix(in srgb,var(--fleet-ship,var(--player-ship)) 22%,transparent);color:#f1ffff}.game-shell .fleet-command .ship-choice.selected:before{opacity:1;width:3px}.game-shell .fleet-command .ship-choice.moving,.game-shell .fleet-command .ship-choice.moving.selected{border-style:dashed}.game-shell .fleet-command .ship-choice:disabled{opacity:.38;filter:saturate(.35);cursor:not-allowed}.game-shell .fleet-command .ship-choice:disabled .ship-energy-fill{width:0!important}@media (max-width:760px){.game-shell .fleet-command .ship-select{grid-template-columns:1fr}.game-shell .fleet-command .ship-choice{min-height:55px}}.game-shell .constant-slider{border:1px solid #0000;margin-inline:-5px;padding:3px 5px;transition:border-color .18s,background .18s,box-shadow .18s;position:relative}.game-shell .constant-slider.active-tuner{border-color:color-mix(in srgb,var(--player-ui) 22%,transparent);background:color-mix(in srgb,var(--player-ui) 6%,transparent)}.game-shell .constant-slider.keyboard-highlight{border-color:color-mix(in srgb,var(--player-ui) 72%,#fff);background:linear-gradient(90deg,color-mix(in srgb,var(--player-ui) 18%,transparent),transparent);box-shadow:inset 3px 0 0 var(--player-ui),0 0 18px color-mix(in srgb,var(--player-ui) 24%,transparent)}.game-shell .constant-slider.keyboard-highlight output{color:#fff;text-shadow:0 0 12px color-mix(in srgb,var(--player-ui) 48%,transparent)}.top-actions{align-items:center;gap:10px;display:flex}.hotkey-help{z-index:8;color:#8aa7b4;font:600 10px var(--display);letter-spacing:.12em;cursor:default;outline:0;position:relative}.hotkey-help>span{color:color-mix(in srgb,var(--player-ui) 45%,#a8bdc7);padding:9px 2px;transition:color .14s,text-shadow .14s;display:block}.hotkey-help:hover>span,.hotkey-help:focus-visible>span{color:#efffff;text-shadow:0 0 12px color-mix(in srgb,var(--player-ui) 48%,transparent)}.hotkey-popover{border:1px solid color-mix(in srgb,var(--player-ui) 34%,#223f50);min-width:235px;box-shadow:0 16px 30px #0000008c,0 0 18px color-mix(in srgb,var(--player-ui) 16%,transparent);opacity:0;visibility:hidden;background:linear-gradient(145deg,#06131dec,#02070dec);padding:10px;transition:opacity .14s,visibility .14s,transform .14s;position:absolute;top:calc(100% + 7px);right:0;transform:translateY(-4px)}.hotkey-help:hover .hotkey-popover,.hotkey-help:focus-within .hotkey-popover{opacity:1;visibility:visible;transform:translateY(0)}.hotkey-popover:before{content:"";border-left:1px solid color-mix(in srgb,var(--player-ui) 34%,#223f50);border-top:1px solid color-mix(in srgb,var(--player-ui) 34%,#223f50);background:#06131d;width:9px;height:9px;position:absolute;top:-5px;right:19px;transform:rotate(45deg)}.hotkey-popover dl{gap:6px;margin:0;display:grid}.hotkey-popover div{grid-template-columns:58px minmax(0,1fr);align-items:center;gap:9px;display:grid}.hotkey-popover dt{border:1px solid color-mix(in srgb,var(--player-ui) 36%,#244858);background:color-mix(in srgb,var(--player-ui) 8%,#06121c);color:#efffff;text-align:center;font:600 9px var(--display);letter-spacing:.08em;margin:0;padding:4px 6px}.hotkey-popover dd{color:#9fb6c1;font:10px var(--mono);letter-spacing:.02em;margin:0}@media (max-width:760px){.top-actions{gap:7px}.hotkey-popover{right:-72px}.hotkey-help{font-size:9px}}:root{--bg:#0b0c09;--panel:#12140f;--panel-2:#171912;--line:#37392b;--line-strong:#68634c;--ink:#eee3c9;--muted:#9b9278;--aqua:#66c7ae;--sun:#c99d43;--danger:#c26455;--paper:#d9cba8;--field:#080a08}body{background:var(--bg);color:var(--ink)}.sky{background:repeating-linear-gradient(0deg,#d9cba809 0 1px,#0000 1px 44px),repeating-linear-gradient(90deg,#d9cba809 0 1px,#0000 1px 44px),linear-gradient(#0b0c09,#060706)}.sky:after{opacity:.08;background-image:radial-gradient(#e2d2a9 1px,#0000 1.2px);background-size:97px 83px}.top{max-width:1280px}.home-top{z-index:5;position:absolute;top:0;left:0;right:0}.brand{color:var(--paper);text-shadow:none}.brand i{color:var(--aqua);text-shadow:none}.top-links a,.kofi-link{border:1px solid var(--line);color:var(--paper);background:#11130e;text-decoration:none;box-shadow:4px 4px #0000005c}.top-links a:hover,.kofi-link:hover{border-color:var(--aqua);color:#f6edd8;transform:translate(-1px,-1px);box-shadow:5px 5px #00000073}.shell{max-width:none}.home-hero{place-items:center;min-height:100dvh;padding:76px 6vw 56px;display:grid}.home-brief{text-align:center;justify-items:center;width:min(940px,100%);display:grid}.lobby{grid-template-columns:1fr}.lobby-splash{color:#f2e5c7;letter-spacing:-.075em;text-transform:uppercase;text-shadow:none;margin:0;font-size:clamp(42px,8.8vw,118px);line-height:.8}.lobby-splash span{color:var(--aqua);text-shadow:none}.home-title{color:#bcb08f;font:600 clamp(13px,1.8vw,21px)/1 var(--display);letter-spacing:.38em;text-indent:.38em;margin:18px 0 26px}.join-card{width:min(560px,100%);box-shadow:none;background:0 0;border:0;padding:0}.home-hero .mode-grid{grid-template-columns:repeat(4,1fr);gap:10px}.home-hero .mode-card{border:1px solid var(--line-strong);min-height:64px;color:var(--paper);text-align:center;background:#13150f;place-items:center;padding:0;display:grid;box-shadow:7px 7px #00000070}.home-hero .mode-card strong{letter-spacing:.22em;margin:0;font-size:14px}.home-hero .mode-card small,.home-hero .mode-index{display:none}.home-hero .mode-card:hover:not(:disabled){border-color:var(--aqua);background:#1b1d15;transform:translate(-2px,-2px);box-shadow:9px 9px #00000080}.home-hero .mode-card.bot-mode:hover:not(:disabled){border-color:var(--sun)}.home-hero .mode-card.private-mode:hover:not(:disabled){border-color:#b58be8}.home-hero .mode-card.onslaught-mode:hover:not(:disabled){border-color:var(--danger)}.home-hero .mode-card:disabled{opacity:.42;cursor:not-allowed;filter:saturate(.25)}.callsign-strip{border:1px solid var(--line);width:min(560px,100%);color:var(--muted);background:#0e100c;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:16px;padding:8px 10px;display:grid;box-shadow:5px 5px #0000004d}.callsign-strip span{font:700 9px var(--display);letter-spacing:.18em;color:#897f62}.callsign-strip input{min-width:0;color:var(--paper);font:600 13px var(--mono);caret-color:var(--aqua);background:0 0;border:0;outline:0}.callsign-strip input::placeholder{color:#665f4b}.callsign-strip small{font:700 8px var(--display);letter-spacing:.12em;text-transform:uppercase;color:#766f59}.callsign-strip.valid{border-color:#4d7f6f}.callsign-strip.valid small{color:var(--aqua)}.callsign-strip.invalid{border-color:var(--danger)}.callsign-strip.invalid small{color:#e08a7f}.private-card{border:1px solid var(--line-strong);text-align:left;background:#12140f;width:min(520px,100%);padding:22px;box-shadow:8px 8px #00000070}.private-card p,.status-card p{color:var(--muted)}.private-create,.primary,.secondary,.result-primary,.result-secondary{border-radius:0;box-shadow:5px 5px #00000060}.private-create{border-color:var(--line-strong);color:var(--paper);background:#171912}.code-entry input{border-color:var(--line);color:var(--paper);background:#0b0c09;box-shadow:inset 0 0 0 1px #000}.status-card{border:1px solid var(--line-strong);background:#12140f;box-shadow:8px 8px #00000070}.spinner{border-color:#37392b;border-top-color:var(--aqua)}.panel,.command-panel,.arena-wrap,.side{border-color:var(--line);background:#10120d;box-shadow:inset 0 0 0 1px #000,7px 7px #0000004f}.game-top{border-bottom-color:var(--line);background:#0b0c09cc}.match-meta,.arena-top,.hint{color:var(--muted)}.arena-wrap{background:#090b09}.arena-top{border-bottom-color:var(--line);background:#11130e}.canvas-stage{background:#030504;box-shadow:inset 0 0 0 1px #1b1d14}.command-panel{background:#10120d}.command-footer{border-top-color:var(--line);background:#10120d}.formula-row,.power-control,.constant-tuners,.arc-history button,.reverse-fire,.enemy-ship,.ship-choice{border-color:var(--line)!important;box-shadow:none!important;background:#0b0d0a!important}.formula-row:focus-within{box-shadow:0 0 0 1px var(--aqua)!important}.fire:not(:disabled){text-shadow:none;background:var(--aqua)!important;color:#06100d!important;border-color:#b6e8dc!important;box-shadow:5px 5px #00000070!important}.fire:disabled{color:#716a56!important;border-color:var(--line)!important;background:#171912!important}.event{border-color:var(--line);background:#10120de8;box-shadow:5px 5px #0005!important}.match-conclusion{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0b08eb}.match-conclusion h2{text-shadow:none;color:var(--paper)}.leaderboard-card{border:1px solid var(--line-strong);background:#11130e;width:min(980px,100% - 12vw);margin:0 auto 78px;padding:24px;box-shadow:8px 8px #0006}.leaderboard-head{justify-content:space-between;align-items:end;gap:18px;margin-bottom:12px;display:flex}.leaderboard-head h2{color:var(--paper);font:600 clamp(22px,3vw,38px)/.95 var(--display);letter-spacing:.02em;margin:0}.leaderboard-card ol{background:var(--line);gap:1px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-card li{background:#0c0e0a;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;display:grid}.leaderboard-card li span{color:var(--aqua);font:700 10px var(--display);letter-spacing:.16em}.leaderboard-card li b{text-overflow:ellipsis;min-width:0;color:var(--paper);font:600 13px var(--display);letter-spacing:.04em;overflow:hidden}.leaderboard-card time{color:var(--sun);font:700 13px var(--mono)}.leaderboard-empty{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.tutorial{border-top:1px solid var(--line);padding-top:86px}.tutorial-intro p{color:var(--muted)}.tutorial-card{border-color:var(--line-strong);background:#11130e;box-shadow:8px 8px #0000005c}.tutorial-card span,.tutorial-notes span{color:var(--aqua)}.tutorial-card p,.tutorial-notes p,.tutorial-notes ol{color:var(--muted)}.lesson-visual{border-bottom-color:var(--line);background:repeating-linear-gradient(0deg,#d9cba814 0 1px,#0000 1px 22px),repeating-linear-gradient(90deg,#d9cba814 0 1px,#0000 1px 22px),#090b08}.lesson-visual:before{opacity:1;background:0 0}.demo-ship{background:var(--aqua);filter:none;clip-path:polygon(100% 50%,0 0,26% 50%,0 100%)}.demo-beam{background:linear-gradient(90deg,#fff,var(--aqua),transparent);height:1px;box-shadow:none}.demo-head{background:#fff;box-shadow:0 0 0 3px #66c7ae3d}.demo-range{border-left-color:#d9cba852}.hit-ring{border:1px dashed var(--danger);box-shadow:none}.hit-probe{background:var(--danger);height:2px}.move-route{border-top-color:#66c7aeb8}.move-waypoint{border-color:var(--aqua);color:var(--aqua);box-shadow:none;background:#0b0d0a}.tutorial-notes{border-color:var(--line);background:var(--line)}.tutorial-notes article{background:#10120d}@media (max-width:760px){.home-hero{padding-inline:22px}.home-hero .mode-grid,.callsign-strip{grid-template-columns:1fr}.leaderboard-card{width:calc(100% - 44px)}.leaderboard-head{display:block}.leaderboard-card li{grid-template-columns:42px minmax(0,1fr) auto}.lobby-splash{font-size:clamp(42px,16vw,76px)}}.home-top{width:min(100% - 48px,1280px);max-width:none;left:50%;right:auto;transform:translate(-50%)}@media (max-width:760px){.home-top{width:calc(100% - 30px)}}.fire-arc-stage{height:112px;top:11px}.fire-arc-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fire-grid path{stroke:#d9cba81c;stroke-width:.7px;vector-effect:non-scaling-stroke}.fire-shot-state{opacity:1}.fire-ghost-path{fill:none;stroke:#d9cba838;stroke-width:1.15px;stroke-dasharray:4 5;opacity:0;transition:opacity .16s}.fire-shot-state.has-preview .fire-ghost-path{opacity:1}.fire-laser-path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0}.fire-shot-state.is-firing .fire-laser-path{animation:.98s cubic-bezier(.18,.76,.18,1) forwards fire-state-laser}.fire-shot-state.is-impact .fire-laser-path{stroke-dashoffset:0;opacity:.28;transition:opacity .45s}.fire-laser-glow{stroke:var(--aqua);stroke-width:6px;filter:url(#tutorialLaserGlow)}.fire-laser-core{stroke:#fffdf2;stroke-width:1.4px;filter:url(#tutorialLaserGlow)}.fire-impact{fill:#fff6cf;stroke:var(--danger);stroke-width:1.2px;opacity:0;transform-box:fill-box;transform-origin:50%}.fire-shot-state.is-impact .fire-impact{animation:.52s ease-out forwards fire-state-impact}.fire-demo-ship path{stroke:#f2e5c7;stroke-width:.9px;stroke-linejoin:round}.player-ship path{fill:var(--aqua)}.enemy-ship-demo path{fill:var(--danger)}.fire-demo-ship{filter:drop-shadow(0 0 7px #66c7ae59)}.enemy-ship-demo{filter:drop-shadow(0 0 7px #c2645559)}.function-terminal{z-index:3;width:204px;height:27px;color:var(--paper);background:#050705f5;border:1px solid #68634cd1;align-items:center;gap:6px;padding:5px 9px;font:800 11px/1 ui-monospace,SF Mono,Menlo,Consolas,monospace;display:flex;position:absolute;top:76px;left:31px;box-shadow:4px 4px #00000075}.function-terminal b{color:var(--aqua);font:800 13px/1 var(--display);letter-spacing:0;flex:none}.typed-functions{flex:1;min-width:0;height:14px;display:block;position:relative;overflow:hidden}.typed-functions i{white-space:nowrap;color:#f4e9ce;font-style:normal;display:block}.function-terminal em{background:var(--paper);flex:none;width:2px;height:14px;animation:1s step-end infinite terminal-caret;box-shadow:0 0 8px #f1dfb866}@keyframes fire-state-laser{0%{stroke-dashoffset:1px;opacity:0}12%{opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes fire-state-impact{0%{opacity:0;transform:scale(.4)}42%{opacity:1;transform:scale(1.45)}to{opacity:0;transform:scale(2.6)}}@keyframes terminal-caret{50%{opacity:.15}}@media (max-width:760px){.function-terminal{width:198px;left:31px}.fire-arc-stage{transform-origin:top;transform:translate(-50%)scale(.92)}}.formula-label-row{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.formula-label-row label{margin:0}.formula-functions{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:194px;display:flex}.formula-functions code{border:1px solid color-mix(in srgb,var(--player-ui,var(--aqua)) 32%,var(--line));background:color-mix(in srgb,var(--player-ui,var(--aqua)) 8%,transparent);min-height:18px;color:color-mix(in srgb,var(--player-ui,var(--aqua)) 62%,var(--paper));font:700 8px/1 var(--mono);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 5px;display:inline-flex}html[data-ui-identity=orbit] .formula-functions code{color:#fff6e7;background:#211c3b;border:2px solid #ffffff20;border-radius:999px;box-shadow:0 3px #0005}html[data-ui-identity=blackbox] .formula-functions code{color:#f2eee2;text-transform:uppercase;background:#050505;border:1px solid #f2eee2;border-radius:0}@media (max-width:760px){.formula-label-row{display:grid}.formula-functions{justify-content:flex-start;max-width:none}}
