:root{--blue: #2ea3ff;--blue-bright: #66d0ff;--blue-deep: #0a2a4d;--pink: #ff2d8e;--pink-bright: #ff6cb5;--bg: #04060f;--panel-bg: #070b1c;--ink: #bfe6ff;--ink-dim: #5b7fa6;--glow-blue: 0 0 8px rgba(46, 163, 255, .8), 0 0 22px rgba(46, 163, 255, .45);--glow-pink: 0 0 8px rgba(255, 45, 142, .8), 0 0 22px rgba(255, 45, 142, .45);--font: "Segoe UI", "Eurostile", "Rajdhani", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0;display:flex;background:radial-gradient(1200px 800px at 30% 10%,#0b1838 0%,transparent 60%),radial-gradient(900px 700px at 90% 90%,#1a0726 0%,transparent 55%),#04060f}#stage{position:relative;flex:1 1 auto;min-width:0;height:100%;overflow:hidden}#gl{display:block;width:100%;height:100%}.panel{position:relative;flex:0 0 clamp(290px,25vw,360px);width:clamp(290px,25vw,360px);height:100%;padding:18px 18px 14px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(180deg,#0a142df2,#060918fa);border-left:2px solid rgba(46,163,255,.35);box-shadow:inset 0 0 60px #2ea3ff14,-10px 0 40px #0009;overflow:hidden}.panel-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px 300px at 50% -10%,rgba(46,163,255,.18),transparent 70%)}.logo{position:relative;text-align:center;padding-top:4px}.logo-moon{width:64px;height:64px;margin:0 auto 6px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8fd2ff,#2076c8 55%,#0b3b6b);box-shadow:var(--glow-blue),inset -6px -6px 12px #00000080;position:relative}.logo-moon-face{position:absolute;inset:0}.moon-eye{position:absolute;top:26px;width:7px;height:7px;border-radius:50%;background:#06223f}.moon-eye.left{left:18px}.moon-eye.right{right:18px}.moon-shades{position:absolute;top:22px;left:12px;right:12px;height:12px;border-radius:6px;background:linear-gradient(180deg,#0000008c,#0003);box-shadow:0 0 6px #00000080}.moon-smile{position:absolute;bottom:14px;left:50%;transform:translate(-50%);width:26px;height:13px;border-bottom:3px solid #06223f;border-radius:0 0 26px 26px}.logo-title{font-size:40px;font-weight:900;letter-spacing:2px;line-height:.9;font-style:italic}.logo-title .blue{color:var(--blue-bright);text-shadow:var(--glow-blue)}.logo-title .pink{color:var(--pink-bright);text-shadow:var(--glow-pink)}.logo-sub{margin-top:4px;font-size:11px;letter-spacing:6px;color:var(--ink-dim);font-weight:600}.readout{display:flex;flex-direction:column;gap:8px}.readout-row{display:flex;gap:8px}.readout-block{position:relative;flex:1;border:1px solid rgba(46,163,255,.35);border-radius:8px;padding:6px 10px;background:#08142a99}.readout-score{flex:3}.readout-ball,.readout-credits{flex:1;text-align:right}.readout-label{display:block;font-size:10px;letter-spacing:3px;color:var(--ink-dim)}.readout-value{display:block;font-size:22px;font-weight:800;color:var(--blue-bright);text-shadow:var(--glow-blue);font-variant-numeric:tabular-nums;white-space:nowrap}.readout-score .readout-value{font-size:26px;letter-spacing:1px}.readout-player .readout-value{font-size:16px}.status{display:flex;flex-direction:column;gap:6px}.status-line{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(46,163,255,.15);padding-bottom:3px}.status-tag{font-size:10px;letter-spacing:3px;color:var(--ink-dim)}.status-val{font-size:16px;font-weight:700;color:var(--pink-bright);text-shadow:var(--glow-pink)}.status-mission{display:flex;flex-direction:column;gap:3px;margin-top:4px;border:1px solid rgba(255,45,142,.3);border-radius:8px;padding:8px 10px;background:#28081c66}.status-mission-name{font-size:15px;font-weight:800;color:var(--pink-bright);letter-spacing:1px}.status-objective{font-size:11px;color:var(--ink);opacity:.85;min-height:14px}.status-progress{height:5px;background:#ffffff14;border-radius:3px;overflow:hidden;margin-top:2px}.status-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--blue),var(--pink));transition:width .25s ease}.menu{display:flex;flex-direction:column;gap:8px;margin-top:auto}.menu-btn{display:flex;align-items:center;gap:10px;font-family:var(--font);font-size:17px;font-weight:800;letter-spacing:2px;color:var(--ink);background:#08162eb3;border:1px solid rgba(46,163,255,.4);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all .15s ease}.menu-btn .menu-ico{width:16px;color:var(--blue-bright)}.menu-btn .menu-text{flex:1;text-align:left}.menu-btn .menu-end{opacity:.7}.menu-btn:hover{border-color:var(--blue-bright);box-shadow:var(--glow-blue);color:#fff;transform:translate(2px)}.menu-btn.primary{border-color:var(--blue-bright);background:linear-gradient(90deg,#2ea3ff40,#08162eb3);box-shadow:var(--glow-blue)}.menu-btn.primary .menu-ico{text-shadow:var(--glow-blue)}.menu-btn:active{transform:scale(.98)}.brand{display:flex;align-items:center;gap:10px;justify-content:center;padding-top:8px;border-top:1px solid rgba(46,163,255,.2);color:var(--ink-dim)}.brand-mark{color:var(--pink);font-size:18px;text-shadow:var(--glow-pink)}.brand-text{font-size:10px;letter-spacing:2px;line-height:1.2}.brand-text strong{color:var(--blue-bright);font-size:13px;letter-spacing:3px}#toast-layer{position:absolute;top:14%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:20}.toast{font-size:22px;font-weight:900;letter-spacing:2px;padding:8px 22px;border-radius:30px;color:#fff;background:#081228b3;border:1px solid var(--blue);box-shadow:var(--glow-blue);text-shadow:var(--glow-blue);animation:toast-pop .3s ease,toast-fade .4s ease 1.4s forwards}.toast.pink{border-color:var(--pink);box-shadow:var(--glow-pink);text-shadow:var(--glow-pink)}.toast.big{font-size:34px}@keyframes toast-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@keyframes toast-fade{to{opacity:0;transform:translateY(-20px) scale(.9)}}.tilt-banner{position:absolute;top:40%;left:0;right:0;text-align:center;z-index:30;pointer-events:none}.tilt-banner span{display:none;font-size:40px;font-weight:900;letter-spacing:4px}.tilt-banner.warn .tilt-warning{display:inline-block;color:#ffd23f;text-shadow:0 0 16px #ffae00;animation:blink .4s steps(2) infinite}.tilt-banner.locked .tilt-locked{display:inline-block;color:var(--pink-bright);text-shadow:var(--glow-pink);animation:blink .3s steps(2) infinite}@keyframes blink{50%{opacity:.2}}.hidden{display:none!important}.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#02040ccc;backdrop-filter:blur(4px)}.modal-card{width:min(420px,86vw);background:linear-gradient(180deg,#0b1838,#060a1c);border:2px solid var(--blue);border-radius:16px;box-shadow:var(--glow-blue);padding:24px;display:flex;flex-direction:column;gap:14px}.modal-card h2{font-size:26px;font-weight:900;letter-spacing:3px;text-align:center;color:var(--blue-bright);text-shadow:var(--glow-blue)}.hs-list{list-style:none;display:flex;flex-direction:column;gap:6px}.hs-list li{display:flex;justify-content:space-between;font-size:16px;padding:6px 12px;border-radius:8px;background:#2ea3ff12;font-variant-numeric:tabular-nums}.hs-list li .rank{color:var(--pink-bright);font-weight:800}.hs-list li .who{flex:1;margin-left:12px;color:var(--ink)}.hs-list li .pts{color:var(--blue-bright);font-weight:700}.hs-empty{text-align:center;color:var(--ink-dim);font-style:italic}.opt{display:flex;align-items:center;justify-content:space-between;font-size:15px;padding:8px 12px;border-radius:8px;background:#2ea3ff0f;cursor:pointer}.opt input{width:20px;height:20px;accent-color:var(--pink);cursor:pointer}.modal-close,.name-score{align-self:center}.modal-close{font-family:var(--font);font-size:16px;font-weight:800;letter-spacing:2px;color:var(--ink);cursor:pointer;padding:10px 28px;border-radius:10px;background:#08162ecc;border:1px solid var(--blue)}.modal-close:hover{box-shadow:var(--glow-blue);color:#fff}.modal-close.primary{border-color:var(--pink)}.modal-close.primary:hover{box-shadow:var(--glow-pink)}.name-score{font-size:30px;font-weight:900;color:var(--pink-bright);text-shadow:var(--glow-pink)}#name-input{font-family:var(--font);font-size:22px;text-align:center;letter-spacing:4px;text-transform:uppercase;color:var(--blue-bright);background:#0006;border:1px solid var(--blue);border-radius:10px;padding:10px;outline:none}.touch-controls{position:absolute;inset:0;z-index:15;pointer-events:none}.touch-controls button{pointer-events:auto}.touch-flip{position:absolute;bottom:0;top:45%;width:40%;background:transparent;border:none;opacity:0}.touch-flip-left{left:0}.touch-flip-right{right:0}.touch-btn{position:absolute;font-family:var(--font);font-size:13px;font-weight:800;letter-spacing:1px;color:var(--ink);background:#08162eb3;border:1px solid var(--blue);border-radius:10px;padding:10px 14px}.touch-plunger{bottom:16px;left:50%;transform:translate(-50%)}.touch-nudge-left{bottom:70px;left:12px}.touch-nudge-up{bottom:120px;left:50%;transform:translate(-50%)}.touch-nudge-right{bottom:70px;right:12px}.debug-overlay{position:fixed;top:8px;left:8px;z-index:200;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.4;color:#7cfc9b;background:#000000b3;padding:8px 12px;border-radius:8px;border:1px solid rgba(124,252,155,.3);pointer-events:none;white-space:pre}@media (max-width: 820px){#app{flex-direction:column-reverse}.panel{flex:0 0 auto;width:100%;height:auto;border-left:none;border-top:2px solid rgba(46,163,255,.35);flex-direction:row;flex-wrap:wrap;gap:8px;padding:8px}.logo{flex:1 1 100%;padding-top:0}.logo-moon{display:none}.logo-title{font-size:26px}.readout{flex:1 1 100%}.status{flex:1 1 60%}.menu{flex:1 1 35%;margin-top:0}.brand{display:none}#touch-controls.enabled{display:block}}
