:root{color-scheme:dark;--bg:#101c22;--mint:#a9e7cd;--ink:#ecf3ee;--muted:#a3b6b4;--line:rgba(178,219,207,.15)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#0a1217;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}button,a{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:3px}.game-shell{height:100vh;height:100dvh;max-width:520px;margin:auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) 14px env(safe-area-inset-bottom,0px);background:radial-gradient(ellipse at 50% 0%,#20342f 0%,#101c22 64%);position:relative}.game-header{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px}.back-link{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--muted);font-size:25px}.back-link span{font-size:10px;letter-spacing:1.8px;font-weight:750}.game-title{font-size:13px;font-weight:650;letter-spacing:.3px;color:#d4dfd7}.icon-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--line);border-radius:12px;background:rgba(169,231,205,.045);color:#d7e5de;text-decoration:none;font-size:22px;line-height:1;transition:background .15s}.icon-button:hover{background:rgba(169,231,205,.13)}.game-header .icon-button{border:0;background:transparent;font-size:21px}.scoreboard{display:grid;grid-template-columns:1fr 1.6fr 1fr;align-items:center;min-height:65px;flex-shrink:0;padding:0 5px 9px}.eyebrow{display:block;font-size:10px;line-height:1.6;color:var(--muted);letter-spacing:.5px}.scoreboard strong{display:block;font-size:26px;font-variant-numeric:tabular-nums;font-weight:750;line-height:1.2}.scoreboard .stage-info{text-align:center}.stage-info strong{font-size:15px;color:#cde3d6;margin-top:4px}.stage-info .eyebrow{font-size:9px;letter-spacing:1.7px}.best-info{text-align:right}.best-info strong{font-size:20px;color:#b5c9c0}.stage-progress{height:2px;background:var(--line);margin:0 4px 10px;flex-shrink:0;border-radius:2px;overflow:hidden}.stage-progress>div{height:100%;width:0;background:var(--mint);transition:width .2s linear}.arena-space{flex:1;min-height:0;display:flex;justify-content:center;align-items:center}.arena{position:relative;overflow:hidden;border-radius:16px;background:#122526;isolation:isolate;box-shadow:0 0 0 1px var(--line),0 14px 40px #0005}.arena canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}.stage-banner{position:absolute;top:18%;left:8%;right:8%;text-align:center;font-size:19px;letter-spacing:1px;font-weight:750;color:#e2f3e6;text-shadow:0 2px 9px #000;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .3s,transform .3s;padding:14px 5px;background:linear-gradient(90deg,transparent,#091b20bb,transparent)}.stage-banner.show{opacity:1;transform:translateY(0)}.screen-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:linear-gradient(180deg,#07131630,#071316b0);backdrop-filter:blur(2px)}[hidden]{display:none!important}.screen-card{width:100%;max-width:320px;text-align:center;background:linear-gradient(155deg,#182d2bf2,#101f26f5);border:1px solid #a9e7cd30;border-radius:22px;padding:25px 21px 20px;box-shadow:0 20px 60px #0005}.card-kicker{font-size:10px;color:var(--mint);letter-spacing:2.5px;font-weight:750}.screen-card h1{font-size:clamp(19px,5vw,25px);line-height:1.4;letter-spacing:-.6px;margin:13px 0 10px}.screen-card p{font-size:12px;line-height:1.8;color:#b8cac1;margin:0 0 20px;white-space:pre-line}.primary-button,.secondary-button{border-radius:12px;min-height:44px;padding:10px 14px;font-weight:750;font-size:13px}.primary-button{border:0;background:var(--mint);color:#14382d;width:100%;box-shadow:0 3px 15px #a9e7cd16}.primary-button:hover{background:#c4f4de}.secondary-button{border:1px solid var(--line);background:#a9e7cd12;color:#d7eee1}.text-link{display:inline-block;font-size:11px;color:#9eb7aa;text-underline-offset:4px;margin-top:16px}.record-form{display:flex;gap:6px;margin-top:12px}.record-form input{min-width:0;width:50%;flex:1;border:1px solid var(--line);border-radius:10px;background:#06141055;color:var(--ink);padding:9px;font-size:12px}.record-form button{font-size:11px;white-space:nowrap}.screen-card .save-message{font-size:11px;color:var(--mint);margin:8px 0 0;line-height:1.5;min-height:0}.save-message:empty{display:none}.settings-panel{position:absolute;z-index:5;top:10px;right:10px;width:min(270px,calc(100% - 20px));border:1px solid #a9e7cd44;background:#122824f5;border-radius:18px;padding:18px;box-shadow:0 10px 40px #0007}.settings-panel label{display:flex;justify-content:space-between;font-size:13px}.settings-panel input{width:100%;accent-color:var(--mint);margin:18px 0 8px}.settings-panel p{font-size:11px;color:var(--muted);line-height:1.6}.settings-panel button{width:100%}.control-deck{height:108px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 5px}.control-actions{display:flex;gap:8px}.control-hint{font-size:10px;color:var(--muted);margin:11px 0 0;line-height:1.4}.joystick{position:relative;flex-shrink:0;width:88px;height:88px;border-radius:50%;border:1px solid #a9e7cd30;background:radial-gradient(circle,#a9e7cd10,#a9e7cd03);touch-action:none;user-select:none}.joystick-cross:before,.joystick-cross:after{content:"";position:absolute;background:#a9e7cd16;left:50%;top:50%;transform:translate(-50%,-50%)}.joystick-cross:before{width:1px;height:58px}.joystick-cross:after{height:1px;width:58px}.joystick-knob{position:absolute;left:50%;top:50%;margin:-17px 0 0 -17px;width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#bdd7ca,#779d8b);box-shadow:0 3px 10px #0005;pointer-events:none}.toast{position:absolute;z-index:10;bottom:120px;left:50%;transform:translate(-50%,5px);opacity:0;pointer-events:none;max-width:90%;width:max-content;background:#d5eee3;color:#15372b;border-radius:12px;padding:11px 16px;font-size:12px;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-height:650px){.game-header{height:38px}.scoreboard{min-height:51px}.scoreboard strong{font-size:22px}.stage-info strong{font-size:13px}.control-deck{height:89px}.joystick{width:72px;height:72px}.screen-card{padding:17px 16px}.screen-card h1{font-size:18px;margin:9px 0}.screen-card p{margin-bottom:12px;font-size:11px}.stage-progress{margin-bottom:6px}}@media(max-width:350px){.game-shell{padding-left:8px;padding-right:8px}.control-actions{gap:5px}.control-hint{font-size:9px}.icon-button{width:34px;height:34px}.joystick{width:76px;height:76px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

.cancel-restart{width:100%;margin-top:8px}
@media(max-height:450px) and (min-width:600px){.game-shell{max-width:1000px;display:grid;grid-template-columns:180px minmax(0,1fr) 88px;grid-template-rows:42px 100px 1fr;gap:10px;padding:10px 16px}.game-header{grid-column:1;grid-row:1;height:auto}.game-header .game-title{display:none}.scoreboard{grid-column:1;grid-row:2;grid-template-columns:1fr 1fr;gap:12px;align-self:start}.scoreboard .stage-info{grid-column:1/3;grid-row:1;text-align:left}.stage-progress{grid-column:1;grid-row:3;align-self:start;margin:0 5px}.arena-space{grid-column:2;grid-row:1/4;height:100%}.control-deck{grid-column:3;grid-row:1/4;align-self:center;height:100%;padding:0;flex-direction:column;justify-content:center;gap:16px}.control-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.control-hint{display:none}.joystick{width:76px;height:76px}.screen-card{padding:12px}.screen-card h1{font-size:17px}.screen-card p{font-size:10px}.screen-overlay{padding:8px}.screen-card .text-link{margin-top:8px}.record-form{margin-top:7px}}
/* Restore the original large playfield: HUD floats over the game, controls at the bottom. */
.game-shell{display:flex;flex-direction:column;max-width:480px;height:100vh;height:100dvh;gap:8px;padding:calc(8px + env(safe-area-inset-top,0px)) 8px calc(8px + env(safe-area-inset-bottom,0px));position:relative}
.game-header{position:absolute;z-index:3;left:17px;top:calc(17px + env(safe-area-inset-top,0px));right:auto;height:31px;gap:0}.game-header .game-title{display:none}.back-link{padding:4px 7px;border-radius:16px;background:#06151b99;backdrop-filter:blur(4px);font-size:19px;gap:4px}.back-link span{font-size:9px;letter-spacing:1px}
.scoreboard{position:absolute;z-index:3;left:108px;right:17px;top:calc(17px + env(safe-area-inset-top,0px));min-height:0;height:31px;padding:0;display:flex;justify-content:flex-end;gap:6px;align-items:center;pointer-events:none}.scoreboard>div:not(.stage-info){display:flex;gap:5px;align-items:center;background:#06151b99;border:1px solid #a9e7cd18;border-radius:15px;padding:5px 8px;backdrop-filter:blur(4px);white-space:nowrap}.scoreboard .eyebrow{font-size:9px;line-height:1;letter-spacing:0}.scoreboard strong,.scoreboard .best-info strong{font-size:14px;line-height:1.2;color:#e2eee5}.scoreboard .stage-info{position:absolute;left:-90px;top:38px;display:flex;align-items:center;gap:7px;padding:4px 7px;background:#06151b8c;border-radius:9px}.scoreboard .stage-info .eyebrow{font-size:8px;letter-spacing:.6px}.scoreboard .stage-info strong{font-size:10px;margin:0;color:#d3e6d7}
.stage-progress{position:absolute;z-index:2;top:calc(78px + env(safe-area-inset-top,0px));left:19px;right:19px;height:2px;margin:0;background:#a9e7cd14;pointer-events:none}
.arena-space{display:flex;flex:1;min-height:0;width:100%;height:auto;align-self:stretch;justify-content:center;align-items:stretch}.arena{border-radius:16px;flex-shrink:0}.arena canvas{width:100%;height:100%;touch-action:none}
.control-deck{display:flex;position:static;width:100%;height:50px;flex:0 0 50px;align-self:stretch;align-items:center;justify-content:stretch;padding:0;gap:0}.control-left{width:100%}.control-actions{display:flex;width:100%;gap:8px}.control-actions .icon-button{flex:1;width:auto;height:46px;border-radius:12px;font-size:24px;background:#18312b}.control-actions #pauseButton{background:#a9e7cd;color:#173e30}.control-hint{display:none}
.joystick{position:absolute;z-index:3;right:16px;bottom:16px;width:100px;height:100px;border-color:#d5e9de45;background:#071b2460;backdrop-filter:blur(4px)}.joystick-knob{width:40px;height:40px;margin:-20px 0 0 -20px;background:#d6e9dfdd}.joystick-cross:before{height:66px}.joystick-cross:after{width:66px}
.sensitivity-control{position:absolute;z-index:3;left:10px;top:50%;transform:translateY(-50%);width:24px;height:158px;border:1px solid #c2e5d02b;border-radius:10px;background:#071b2466;backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:5px 0;touch-action:none}.sensitivity-control output{font-size:9px;color:#e4f1e9;font-variant-numeric:tabular-nums;white-space:nowrap}.sensitivity-control input{writing-mode:vertical-lr;direction:rtl;width:16px;height:120px;margin:0;accent-color:#c8e7d5;cursor:pointer;touch-action:none}.sensitivity-label{position:absolute;left:28px;top:40px;writing-mode:vertical-rl;font-size:9px;color:#d6e6dcbd;white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px #000}
.ready-hint{position:absolute;z-index:2;top:45%;left:16%;right:16%;padding:12px 7px;color:#e5f3e9;text-align:center;font-size:17px;font-weight:750;text-shadow:0 2px 7px #000;background:linear-gradient(90deg,transparent,#071c2499,transparent);pointer-events:none}
.screen-overlay{z-index:5}.screen-card{max-width:320px}.stage-banner{top:19%;z-index:2}.toast{bottom:80px}.settings-panel{display:none}
@media(max-width:350px){.game-shell{padding-left:6px;padding-right:6px}.scoreboard{left:100px;right:14px;gap:4px}.scoreboard>div:not(.stage-info){padding:5px 6px;gap:4px}.scoreboard .eyebrow{font-size:8px}.scoreboard strong,.scoreboard .best-info strong{font-size:12px}.game-header{left:14px}.scoreboard .stage-info{left:-85px}.control-actions{gap:6px}.joystick{width:100px;height:100px}}
@media(max-height:450px) and (min-width:600px){.game-shell{display:flex;max-width:700px;padding:6px;gap:5px}.game-header{left:15px;top:15px}.scoreboard{left:108px;right:15px;top:15px;display:flex}.scoreboard .stage-info{left:-88px;top:36px}.arena-space{height:auto;width:100%}.control-deck{display:flex;flex-direction:row;height:42px;flex-basis:42px;padding:0}.control-actions{display:flex;gap:7px}.control-actions .icon-button{height:40px}.joystick{width:92px;height:92px;right:12px;bottom:12px}.sensitivity-control{height:140px}.sensitivity-control input{height:104px}.stage-progress{top:74px}.screen-card{padding:12px 16px}.screen-card h1{font-size:17px}.screen-card p{font-size:11px}.screen-card .text-link{margin-top:7px}}
