*{color:#fff;font-size:1.1em}html,body{overscroll-behavior:none;width:100%;height:100dvh;margin:0;padding:0;overflow:hidden}body{background-color:var(--palette-bg,#001);-webkit-tap-highlight-color:transparent;min-height:100dvh;position:relative}#safe-area-probe{pointer-events:none;visibility:hidden;padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);position:fixed}#title-starfield{z-index:0;pointer-events:none;background-color:var(--palette-bg,#001);width:100vw;height:100vh;position:fixed;inset:0}body.in-play #title-starfield,body.in-play #attribution,body.in-play .controls-hint{display:none}body.in-play{touch-action:none}#gameWrapper{z-index:1;background:0 0;width:100dvw;height:100dvh;margin:0;padding:0;display:block;position:absolute;top:0;left:0;overflow:hidden}#gameArea{background:0 0;width:100dvw;height:100dvh;display:none;position:absolute;top:0;left:0;overflow:hidden}#gameCanvas{touch-action:none;background:#001;width:100dvw;height:100dvh;display:block}#attribution{z-index:1000;opacity:.3;font-size:.35em;transition:opacity .3s;position:fixed;bottom:8px;left:8px}#attribution:hover{opacity:.6}a{text-decoration:none}.screen,.screen *{box-sizing:border-box}.screen{touch-action:manipulation;text-align:center;backdrop-filter:blur(10px);background-color:#14141ef2;border:2px solid #ffffff40;border-radius:20px;width:90%;max-width:650px;max-height:90vh;padding:40px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 8px 32px #000c,0 0 0 1px #ffffff1a}.screen::-webkit-scrollbar{width:8px}.screen::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.screen::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px;transition:background .3s}.screen::-webkit-scrollbar-thumb:hover{background:#ffffff80}.screen h1{text-shadow:0 0 16px color-mix(in srgb, var(--palette-accent,#a78bfa) 55%, transparent), 0 0 36px color-mix(in srgb, var(--palette-accent,#a78bfa) 25%, transparent);letter-spacing:2px;color:var(--palette-accent,#a78bfa);margin-bottom:1em;font-size:3.2em;font-weight:700;position:relative}.screen h1:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--palette-accent,#a78bfa) 70%, transparent), transparent);border-radius:2px;width:60px;height:3px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.game-description{color:#e2e8f0;max-width:34rem;margin:0 auto 1rem;font-size:.9rem;line-height:1.5}.controls-hint{letter-spacing:.16em;text-transform:uppercase;color:var(--palette-accent,#a78bfa);text-shadow:0 0 8px color-mix(in srgb, var(--palette-accent,#a78bfa) 45%, transparent);opacity:.82;margin:.35em 0 1.15em;font-family:Courier New,ui-monospace,monospace;font-size:.72rem;font-weight:500}.ship-kit-select{border:0;margin:0 0 1.1em;padding:0}.ship-kit-select legend{letter-spacing:.18em;text-transform:uppercase;color:var(--palette-hud-muted,#64748b);margin-bottom:.55em;font-family:Courier New,ui-monospace,monospace;font-size:.62rem}.ship-kit-grid{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:.45em;display:grid}.ship-kit-card{border:1px solid color-mix(in srgb, var(--palette-hud-muted,#64748b) 55%, transparent);color:var(--palette-hud,#e2e8f0);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;align-items:center;gap:.2em;min-height:88px;padding:.55em .4em;display:flex}.ship-kit-silhouette{width:48px;height:36px;display:block}.ship-kit-card.is-selected,.ship-kit-card:focus-visible{border-color:var(--palette-accent,#a78bfa);box-shadow:0 0 10px color-mix(in srgb, var(--palette-accent,#a78bfa) 35%, transparent)}.ship-kit-name{letter-spacing:.04em;font-size:.72rem;font-weight:700}.ship-kit-ability{letter-spacing:.03em;color:var(--palette-hud-muted,#64748b);font-size:.55rem}.ship-kit-placeholder-note{letter-spacing:.08em;text-transform:uppercase;color:var(--palette-hud-muted,#64748b);margin:.45em 0 0;font-size:.5rem}.game-modes{margin-bottom:1.5em}.game-modes .nav{flex-direction:column;align-items:center;gap:.8em;display:flex}.game-modes .nav-item{width:100%;max-width:280px}.game-modes .btn{border:2px solid #0000;border-radius:12px;width:100%;padding:.8em 1.2em;font-size:1.1em;font-weight:600;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 4px 15px #0000004d}.game-modes .btn.btn-phosphor{color:var(--palette-accent,#a78bfa);border:1.5px solid var(--palette-accent,#a78bfa);box-shadow:0 0 10px color-mix(in srgb, var(--palette-accent,#a78bfa) 35%, transparent);text-shadow:0 0 8px color-mix(in srgb, var(--palette-accent,#a78bfa) 55%, transparent);background:0 0}.game-modes .btn.btn-phosphor:hover,.game-modes .btn.btn-phosphor:focus-visible{background:color-mix(in srgb, var(--palette-accent,#a78bfa) 12%, transparent);color:var(--palette-accent,#a78bfa);border-color:var(--palette-accent,#a78bfa);box-shadow:0 0 16px color-mix(in srgb, var(--palette-accent,#a78bfa) 50%, transparent);transform:translateY(-1px)}.game-modes .btn:before{content:"";background:linear-gradient(90deg,#0000,#ffffff1a,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.game-modes .btn:hover:before{left:100%}.game-modes .btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0006}.settings{text-align:left;margin-bottom:1.5em}.settings h3{color:#f0f0f0;text-align:center;letter-spacing:1px;text-shadow:0 0 10px #ffffff4d;margin-bottom:1em;font-size:1.1em;font-weight:600}.settings .nav{flex-direction:column;align-items:center;gap:.8em;display:flex}.settings .nav-item{background-color:#ffffff14;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;gap:.8em;min-width:200px;padding:.4em .8em;transition:all .3s;display:flex;position:relative}.settings .nav-item:hover{background-color:#ffffff1f;border-color:#ffffff40;transform:translateY(-1px);box-shadow:0 2px 8px #0003}.game-modes .btn{color:#fff;text-shadow:0 1px 2px #00000080;font-weight:700}.settings .form-check-label{cursor:pointer;user-select:none;color:#f0f0f0;text-shadow:0 1px 2px #0000004d;margin:0;font-weight:500}.settings .form-check-input{cursor:pointer;width:1.3em;height:1.3em;accent-color:var(--palette-accent,#a78bfa);filter:drop-shadow(0 1px 2px #0000004d);margin:0}.btn.active-mode{border-width:3px;transform:scale(1.02);box-shadow:0 0 20px #fff6}#start-game.active-mode{background-color:color-mix(in srgb, var(--palette-accent,#a78bfa) 16%, transparent);border-color:var(--palette-accent,#a78bfa);color:var(--palette-accent,#a78bfa);box-shadow:0 0 18px color-mix(in srgb, var(--palette-accent,#a78bfa) 45%, transparent)}@media (height<=700px){.screen{max-height:95vh;padding:30px}.screen h1{margin-bottom:1em;font-size:2.8em}.controls-hint{margin-bottom:.9em;font-size:.64rem}.game-modes,.settings{margin-bottom:1.5em}.game-modes .btn{padding:.6em 1em}}@media (width<=700px){.screen{width:95%;max-width:95%;padding:25px}.screen h1{font-size:2.2em}.game-modes .btn{padding:.7em 1em;font-size:1em}.settings .nav-item{min-width:180px;padding:.3em .6em}}@media (width>=800px){.screen{max-width:700px;padding:50px}.game-modes .btn{max-width:320px}}.game-modes .form-label{color:#f0f0f0;letter-spacing:.5px;text-shadow:0 0 10px #ffffff4d;text-align:center;margin-bottom:.5em;font-size:1em;font-weight:600;display:block}.game-modes .form-control{box-sizing:border-box;color:#fff;text-align:center;backdrop-filter:blur(5px);background-color:#ffffff1a;border:2px solid #fff3;border-radius:8px;margin-bottom:1em;padding:.6em .8em;font-size:16px;transition:all .3s}.game-modes .form-control:focus{border-color:var(--palette-accent,#a78bfa);box-shadow:0 0 15px color-mix(in srgb, var(--palette-accent,#a78bfa) 35%, transparent);background-color:#ffffff26;outline:none}.game-modes .form-control::placeholder{color:#fff9}.game-modes .form-control:hover{background-color:#ffffff1f;border-color:#ffffff4d}.modal{text-align:center;background-color:#000000e6;border:2px solid #fff3;border-radius:15px}#playerNameModal{z-index:1000;width:min(400px,90vw);min-width:280px;padding:2em;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#playerNameModal .modal-content{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #fff3;border-radius:15px;padding:2em;box-shadow:0 10px 30px #00000080}#playerNameModal h3{color:#4fc3f7;margin-bottom:1em;font-size:1.5em}#playerNameModal p{color:#fff;margin-bottom:1.5em;font-size:1.1em}#playerNameInput{color:#fff;background-color:#ffffff1a;border:2px solid #ffffff4d;border-radius:8px;width:100%;margin-bottom:1.5em;padding:.8em;font-size:1.1em;transition:border-color .3s}#playerNameInput:focus{border-color:#4fc3f7;outline:none;box-shadow:0 0 10px #4fc3f74d}#playerNameInput::placeholder{color:#fff9}.modal-buttons{justify-content:center;gap:1em;display:flex}.modal-buttons .btn{cursor:pointer;border:none;border-radius:8px;padding:.8em 1.5em;font-weight:600;transition:all .3s}.modal-buttons .btn-primary{color:#fff;background:linear-gradient(135deg,#4fc3f7,#29b6f6)}.modal-buttons .btn-primary:hover{background:linear-gradient(135deg,#29b6f6,#0288d1);transform:translateY(-2px);box-shadow:0 5px 15px #4fc3f766}.modal-buttons .btn-secondary{color:#fff;background:linear-gradient(135deg,#6c757d,#5a6268)}.modal-buttons .btn-secondary:hover{background:linear-gradient(135deg,#5a6268,#495057);transform:translateY(-2px);box-shadow:0 5px 15px #6c757d66}.screen:before{content:"";z-index:-1;opacity:.6;pointer-events:none;background:linear-gradient(45deg,#ffffff1a,#ffffff0d);border-radius:22px;position:absolute;inset:0}.build-info{color:#fff6;opacity:.6;margin-left:1em;font-family:Courier New,monospace;font-size:.75em;transition:opacity .3s;display:inline-block}.build-info:hover{opacity:1}.touch-controls{z-index:20;pointer-events:none;display:none;position:absolute;inset:0}.touch-controls[hidden]{display:none!important}body.touch-play .touch-controls:not([hidden]){display:block}.touch-stick,.touch-fire,.touch-ability,.touch-shield{pointer-events:auto;touch-action:none;user-select:none}.touch-stick{left:max(16px, env(safe-area-inset-left,0px));bottom:max(20px, env(safe-area-inset-bottom,0px));border:1.5px solid color-mix(in srgb, var(--palette-hud-muted,#64748b) 70%, transparent);background:color-mix(in srgb, var(--palette-bg,#001) 55%, transparent);width:112px;height:112px;box-shadow:0 0 12px color-mix(in srgb, var(--palette-accent,#a78bfa) 22%, transparent);border-radius:50%;position:absolute}.touch-stick-knob{border:1.5px solid var(--palette-local,#5eead4);background:color-mix(in srgb, var(--palette-local,#5eead4) 22%, transparent);width:44px;height:44px;box-shadow:0 0 10px color-mix(in srgb, var(--palette-local,#5eead4) 40%, transparent);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-fire{right:max(16px, env(safe-area-inset-right,0px));bottom:max(20px, env(safe-area-inset-bottom,0px));letter-spacing:.14em;width:72px;height:72px;color:var(--palette-laser,#fde68a);background:color-mix(in srgb, var(--palette-bg,#001) 55%, transparent);border:1.5px solid var(--palette-laser,#fde68a);box-shadow:0 0 12px color-mix(in srgb, var(--palette-laser,#fde68a) 35%, transparent);text-shadow:0 0 8px color-mix(in srgb, var(--palette-laser,#fde68a) 45%, transparent);border-radius:50%;padding:0;font-family:Courier New,ui-monospace,monospace;font-size:.72rem;font-weight:700;position:absolute}.touch-fire.is-pressed{background:color-mix(in srgb, var(--palette-laser,#fde68a) 18%, transparent);box-shadow:0 0 16px color-mix(in srgb, var(--palette-laser,#fde68a) 55%, transparent)}.touch-ability,.touch-shield{--action-cool:0;bottom:calc(max(20px, env(safe-area-inset-bottom,0px)) + 8px);letter-spacing:.08em;width:56px;height:56px;color:var(--palette-hud,#e2e8f0);background:color-mix(in srgb, var(--palette-bg,#001) 55%, transparent);border:1.5px solid var(--palette-hud,#e2e8f0);box-shadow:0 0 10px color-mix(in srgb, var(--palette-hud,#e2e8f0) 28%, transparent);text-shadow:0 0 8px color-mix(in srgb, var(--palette-hud,#e2e8f0) 35%, transparent);border-radius:50%;padding:0;font-family:Courier New,ui-monospace,monospace;font-size:.56rem;font-weight:700;position:absolute}.touch-shield{right:calc(max(16px, env(safe-area-inset-right,0px)) + 148px);color:var(--palette-shield,#7dd3c8);border-color:var(--palette-shield,#7dd3c8);box-shadow:0 0 10px color-mix(in srgb, var(--palette-shield,#7dd3c8) 28%, transparent);text-shadow:0 0 8px color-mix(in srgb, var(--palette-shield,#7dd3c8) 35%, transparent)}.touch-ability{right:calc(max(16px, env(safe-area-inset-right,0px)) + 82px)}.touch-ability.is-pressed,.touch-ability.is-active,.touch-shield.is-pressed,.touch-shield.is-active{background:color-mix(in srgb, currentColor 16%, transparent);box-shadow:0 0 14px color-mix(in srgb, currentColor 45%, transparent)}.touch-ability.is-cooling,.touch-shield.is-cooling{opacity:.58;background:conic-gradient(color-mix(in srgb, currentColor 45%, transparent) calc(var(--action-cool) * 360deg), color-mix(in srgb, var(--palette-bg,#001) 55%, transparent) 0)}.touch-ability.is-unavailable,.touch-shield.is-unavailable{opacity:.42}@media (orientation:landscape) and (height<=500px){.touch-stick{width:96px;height:96px;left:max(20px, env(safe-area-inset-left,0px));bottom:max(12px, env(safe-area-inset-bottom,0px))}.touch-stick-knob{width:36px;height:36px}.touch-fire{width:64px;height:64px;right:max(20px, env(safe-area-inset-right,0px));bottom:max(12px, env(safe-area-inset-bottom,0px));font-size:.64rem}.touch-ability,.touch-shield{width:48px;height:48px;bottom:calc(max(12px, env(safe-area-inset-bottom,0px)) + 8px);font-size:.48rem}.touch-shield{right:calc(max(20px, env(safe-area-inset-right,0px)) + 130px)}.touch-ability{right:calc(max(20px, env(safe-area-inset-right,0px)) + 72px)}.screen{max-height:92vh;padding:16px 20px}.screen h1{margin-bottom:.4em;font-size:1.6em}.controls-hint{margin-bottom:.55em;font-size:.58rem}}@media (width<=430px){.screen{border-radius:16px;width:min(96%,420px);max-width:96%;padding:18px 14px}.screen h1{margin-bottom:.55em;font-size:1.7em}.controls-hint{letter-spacing:.1em;font-size:.58rem}.game-modes .nav-item,.game-modes .btn{max-width:100%}}.game-modes .form-control.default-nickname{color:#ffffffe6;background-color:#4fc3f726;border-color:#4fc3f799;transition:all .3s;position:relative;box-shadow:0 0 8px #4fc3f74d}.game-modes .form-control.default-nickname:after{content:"✨ Generated";color:#4fc3f7cc;pointer-events:none;opacity:.7;font-size:.8em;position:absolute;top:50%;right:10px;transform:translateY(-50%)}
