:root{color-scheme:dark;--bg:#080f19;--panel:#111e2b;--line:#304450;--muted:#96acb9;--text:#edf7f9;--mint:#78edcb;--gold:#ffbd68;--orange:#ff825a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden}body{display:grid;grid-template-rows:36px minmax(0,1fr) 44px;background:radial-gradient(ellipse at 50% 40%,#1a3040 0,#0d1925 43%,#080f19 78%);color:var(--text);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
button,a,input{font:inherit}button{cursor:pointer;color:inherit;border:0}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button{touch-action:manipulation}button:active{filter:brightness(1.22)}[hidden]{display:none!important}.topbar{grid-row:1;display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 22px;font-size:12px;letter-spacing:1.5px;gap:12px}.topbar a{color:var(--muted);text-decoration:none;min-height:32px;display:flex;align-items:center}.wave-cell .wordmark{font-size:11px;line-height:14px;font-weight:850;letter-spacing:1.6px;color:var(--text);white-space:nowrap;margin-top:3px}.wave-cell .wordmark b{font-size:inherit;color:var(--orange);margin-left:2px}.tools{display:flex;gap:8px}.tools button{background:#15232e;border:1px solid #30414d;border-radius:7px;height:36px;min-width:40px;font-size:11px;letter-spacing:1px;padding:0 10px}#pause{font-size:18px}main{grid-row:2;min-height:0;display:flex;justify-content:center;align-items:flex-start;padding:3px 8px}.machine{width:min(100%,610px);height:100%;display:flex;flex-direction:column;border:1px solid #456071;border-radius:18px 18px 13px 13px;padding:7px;background:linear-gradient(135deg,#354956,#101d29 28%,#223541 75%,#4e636d);box-shadow:0 24px 80px #0007,0 1px 0 #8499a255 inset;overflow:hidden}.scoreboard{display:grid;grid-template-columns:1.1fr 1fr .7fr;gap:8px;flex:0 0 65px;align-items:center;border:1px solid #07111a;border-radius:10px 10px 0 0;padding:8px 15px;background:linear-gradient(#07121d,#0b1b28);box-shadow:0 2px 9px #0008 inset}.scoreboard span{display:block;color:#a0b8c6;font-size:10px;letter-spacing:2px}.score-cell strong{font-family:"Courier New",monospace;font-size:30px;letter-spacing:2px;color:var(--mint);font-variant-numeric:tabular-nums;text-shadow:0 0 15px #78edcb35}.wave-cell{text-align:center}.wave-cell>span:first-child{line-height:16px}.wave-cell b{color:var(--text);font-size:14px}#fleet{color:var(--orange);font-size:13px;white-space:nowrap;margin-top:2px;line-height:12px}.ball-cell{text-align:right}.ball-cell strong{display:block;font-size:14px;color:var(--gold);margin-top:9px;white-space:nowrap}#stage{position:relative;flex:1;min-height:0;overflow:hidden;background:#091522}canvas{display:block;width:100%;height:100%;object-fit:contain;touch-action:none}.table-status{position:absolute;bottom:13px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none;font-size:10px;letter-spacing:1px;font-weight:700;color:#90aaa9}#multiplier{color:var(--gold);white-space:nowrap}#message{text-align:right;color:var(--mint)}.controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;flex:0 0 52px;padding-top:7px}.controls button{position:relative;border:1px solid #3b5360;border-bottom:3px solid #08121a;border-radius:5px 5px 9px 9px;background:linear-gradient(#2c4250,#162936);font-weight:800;font-size:21px;display:flex;align-items:center;justify-content:center;gap:10px;touch-action:none}.controls button span{font-size:10px;letter-spacing:2px}.controls button.held{background:#3f776c;border-color:var(--mint);box-shadow:0 0 18px #78edcb25}.controls #launch{background:linear-gradient(#795c36,#443926);border-color:#b68d54;color:#ffe0ad;overflow:hidden}.controls #launch:disabled{opacity:.6}.controls #charge{position:absolute;bottom:0;left:0;height:3px;width:0;background:var(--gold);transition:width .04s linear}.controls #launch-label{position:relative;z-index:1;font-size:10px}footer{grid-row:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;color:#879cab;font-size:9px;letter-spacing:.6px}.footer-info{display:flex;flex-direction:column;gap:4px;min-width:0}.footer-info span{white-space:nowrap}footer .tools{flex-shrink:0}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;background:linear-gradient(#0713202b,#07131bcc 85%);overflow:auto}.menu-panel{width:min(100%,370px);margin:auto;padding:29px 25px 22px;border:1px solid #56727c;border-radius:14px;background:linear-gradient(145deg,#162c38f5,#0a1b29f8);box-shadow:0 20px 60px #0008,0 1px #aac6cb33 inset;text-align:center}.eyebrow{font-size:10px;color:var(--mint);letter-spacing:2.4px;font-weight:700}h1{font-size:clamp(34px,6vw,48px);line-height:1.1;letter-spacing:-2px;font-weight:950;margin:22px 0 15px;font-style:italic}h1 span{display:inline-flex;align-items:center;justify-content:center;width:43px;height:48px;border:1px solid var(--orange);border-radius:6px;margin-left:10px;color:var(--orange);font-style:normal;font-size:36px;transform:rotate(7deg)}.intro{color:#b7cdd5;font-size:17px;line-height:1.55;margin:0 0 25px}.primary,.secondary{width:100%;display:flex;align-items:center;justify-content:center;gap:15px;min-height:46px;border-radius:6px;font-size:13px;letter-spacing:1.5px;font-weight:800}.primary{color:#20180e;background:var(--gold);border-bottom:3px solid #ba783d}.primary span{font-size:23px;line-height:1}.secondary{margin-top:9px;background:#1b3341;border:1px solid #3a5663;color:#c3dae1}.secondary kbd{font-size:10px;border:1px solid #66808c;border-radius:3px;padding:2px 4px;color:#b5cfd9}.instructions{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid #314b57;padding-top:18px;margin-top:23px}.instructions b{display:block;color:#def1f2;font-size:12px;letter-spacing:1px;margin-bottom:7px}.instructions span{font-size:12px;line-height:1.5;color:#97b1bc}.touch-hint{display:none;font-size:13px;line-height:1.6;color:#b4cad1;margin:18px 0 0}.compact h2{font-size:34px;letter-spacing:-1px;line-height:1.1;margin:18px 0}.compact p{font-size:14px;color:#b9cfd6;line-height:1.5;margin:12px 0 22px}.text-button{margin-top:18px;background:none;color:#a3bac6;min-height:32px;font-size:13px}.final-score{font-family:"Courier New",monospace;font-size:40px;color:var(--mint)}#score-form{margin:20px 0}#score-form label{display:block;font-size:10px;letter-spacing:2px;margin-bottom:8px;color:#aec4cc}.name-row{display:flex;gap:8px}.name-row input{width:100px;min-width:0;border:1px solid #577581;border-radius:5px;background:#071522;color:var(--mint);font-family:"Courier New",monospace;font-size:25px;letter-spacing:4px;text-align:center;padding:9px;-webkit-user-select:text;user-select:text}.name-row button{flex:1;border:1px solid #537581;border-radius:5px;background:#254551;font-size:11px;letter-spacing:1px}#save-feedback{font-size:12px}.list-panel{padding:22px}.list-panel h2{font-size:29px}#scores{padding:0;margin:0 0 18px;list-style:none;text-align:left;max-height:270px;overflow:auto}#scores li{display:flex;justify-content:space-between;gap:10px;padding:9px 3px;border-bottom:1px solid #28404b;font-family:"Courier New",monospace;font-size:15px}#scores li:first-child{color:var(--gold)}#scores li b{color:var(--mint)}#list-status{font-size:12px;margin:10px 0}body.playing{grid-template-rows:0 minmax(0,1fr) 44px}body.playing .topbar{display:none}@media(pointer:coarse){.instructions{display:none}.touch-hint{display:block}#help{font-size:9px}.secondary kbd{display:none}.controls{flex-basis:57px}}
@media(max-width:600px){body{grid-template-rows:34px minmax(0,1fr) 44px}.topbar{padding:0 12px;font-size:10px;letter-spacing:1px}.wave-cell .wordmark{font-size:10px;letter-spacing:1px;line-height:12px;margin-top:2px}.tools{gap:5px}.tools button{height:36px;min-width:40px;padding:0 9px;font-size:10px}main{padding:2px 4px}.machine{border-radius:12px;padding:5px}.scoreboard{flex-basis:60px;padding:7px 10px}.score-cell strong{font-size:25px}.scoreboard span{font-size:9px;letter-spacing:1px}#fleet{font-size:11px}.ball-cell strong{font-size:12px}.menu-panel{padding:24px 19px 20px}.overlay{padding:15px}.table-status{font-size:9px;left:10px;right:10px;bottom:8px}footer{padding:0 8px;font-size:8px;letter-spacing:.3px;gap:8px}.controls{flex-basis:49px}.controls button span{font-size:9px}.compact h2{font-size:29px}}
@media(max-height:650px){body{grid-template-rows:30px minmax(0,1fr) 44px}.scoreboard{flex-basis:56px;padding-top:5px;padding-bottom:5px}.score-cell strong{font-size:23px}.controls{flex-basis:47px}.menu-panel{padding:15px}.eyebrow{font-size:9px}h1{margin:10px 0;font-size:32px}h1 span{font-size:26px;width:32px;height:34px}.intro{font-size:14px;margin-bottom:13px}.instructions{margin-top:10px;padding-top:7px}.instructions b{margin-bottom:4px}.instructions span{font-size:10.5px;line-height:1.35}.primary,.secondary{min-height:40px}.compact h2{font-size:25px;margin:10px}.compact p{margin:8px 0 12px}.touch-hint{margin-top:10px;font-size:12px}.table-status{bottom:5px}.final-score{font-size:29px}#score-form{margin:9px 0}#scores{max-height:145px}}
@media(max-width:360px){.eyebrow{font-size:8px;letter-spacing:1.3px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(pointer:coarse){body{grid-template-rows:34px minmax(0,1fr) 48px}body.playing{grid-template-rows:0 minmax(0,1fr) 48px}.tools button{height:44px;min-width:44px}.controls{flex-basis:51px}}
