:root{color-scheme:dark;--bg:#101b21;--panel:#18272d;--ink:#ecf3ee;--muted:#91a5a6;--lime:#d8ff74;--line:#304047}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,select{font:inherit;color:inherit;cursor:pointer}button{border:0}button:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:4px}[hidden]{display:none!important}.app{max-width:1300px;margin:0 auto;padding:0 48px}header{height:94px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-size:34px;font-weight:950;font-style:italic;letter-spacing:-2px;color:var(--ink);text-decoration:none}.brand>span{font-size:16px;color:var(--lime);margin-left:5px}.brand small{display:block;font-size:8px;font-style:normal;letter-spacing:3px;color:var(--muted);margin-top:5px}.top-actions{display:flex;gap:12px;align-items:center}.top-actions button,.top-actions select{background:transparent;border:1px solid var(--line);border-radius:8px;padding:12px;font-size:11px;font-weight:bold;letter-spacing:1px}.top-actions select{background:var(--bg)}.scoreboard{display:flex;gap:32px;align-items:center;padding:26px 0}.level-stat{border-right:1px solid var(--line);padding-right:32px}.level-stat>span,.goal-stat>span{font-size:9px;letter-spacing:2px;color:var(--muted);font-weight:bold}.level-stat strong{display:block;font-size:45px;font-weight:800;letter-spacing:-2px;margin-top:5px}.level-stat strong span{font-size:15px;color:#6f858b;letter-spacing:0}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--lime);font-weight:bold}h1{font-size:32px;letter-spacing:-1px;margin:6px 0}p{line-height:1.5}.stage-description p{margin:0;color:var(--muted);font-size:12px}.goal-stat{margin-left:auto;text-align:right}.goal-stat strong{display:block;font-size:30px;margin:5px 0}.goal-stat i{font-style:normal;font-size:18px;color:#81969b}#goalDots{display:flex;justify-content:flex-end;gap:5px}#goalDots i{width:6px;height:6px;border-radius:50%;background:#3e555a}#goalDots i.done{background:var(--lime)}.arena{position:relative;overflow:hidden;border-radius:16px;background:#173d36;border:1px solid #3c5654;aspect-ratio:1000/660;isolation:isolate}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.arena-top{position:absolute;left:26px;right:26px;top:22px;display:flex;justify-content:space-between;pointer-events:none;color:#b8cdc1;font-size:10px;letter-spacing:1.5px}.arena-top>span{background:#0b221f90;backdrop-filter:blur(8px);padding:9px 12px;border:1px solid #74938233;border-radius:6px}.arena-top i{display:inline-block;background:var(--lime);width:5px;height:5px;border-radius:50%;margin-right:8px}.arena-top b{font-weight:normal}.instruction{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:#112a26d9;border:1px solid #75948355;padding:12px 18px;border-radius:12px;pointer-events:none;white-space:nowrap}.gesture-icon{font-size:27px;color:var(--lime)}.instruction b{display:block;font-size:13px}.instruction div span{display:block;font-size:10px;color:#a1b9ae;margin-top:4px}.shot-meter{position:absolute;left:26px;bottom:25px;display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:1px;background:#0c2823db;padding:14px;border-radius:10px;pointer-events:none}.shot-meter>div{width:100px;height:5px;background:#5c7b69;border-radius:5px;overflow:hidden}.shot-meter i{display:block;height:100%;background:var(--lime)}.shot-meter b{color:var(--lime)}.result{position:absolute;inset:0;background:#081a1970;display:grid;place-items:center;backdrop-filter:blur(4px)}.result-card{width:360px;max-width:88%;text-align:center;background:#142925f2;border:1px solid #7c9d7066;border-radius:22px;padding:32px;box-shadow:0 25px 80px #08161380}.result-card>span{font-size:9px;letter-spacing:3px;color:var(--lime)}.result-card h2{font-size:57px;font-style:italic;letter-spacing:-3px;margin:16px 0}.result-card p{font-size:13px;color:#b3c5ba;margin-bottom:24px}.result-card button,#playButton{display:block;width:100%;background:var(--lime);color:#203127;font-weight:bold;padding:15px;border-radius:9px;font-size:13px}.result-card .subtle{background:transparent;color:#a7b9b0;font-size:11px;margin-top:8px}.bottom-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 0}.bottom-bar>div{display:flex;align-items:center;gap:10px}.key-dot{border:1px solid #576847;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;font-size:9px;color:var(--lime)}.bottom-bar p{font-size:11px;color:var(--muted);margin:0}.bottom-bar button{font-size:11px;background:none;color:var(--lime);white-space:nowrap;padding:10px}.level-track{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));gap:5px;margin:3px 0 32px}.level-track button{height:6px;background:#34454a;border-radius:6px;padding:0}.level-track button.active{background:var(--lime);box-shadow:0 0 10px #c4ff6533}.level-track button.complete{background:#769e59}.level-track button:disabled{cursor:default;background:#233238}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;font-size:8px;color:#60767b;letter-spacing:1.7px}dialog{background:#17292b;color:var(--ink);border:1px solid #445c57;border-radius:22px;width:500px;max-width:92vw;padding:32px}dialog::backdrop{background:#061713bd;backdrop-filter:blur(5px)}dialog h2{font-size:30px;letter-spacing:-1px;margin-bottom:10px}dialog p{font-size:13px;color:#a0b4ae}.close{position:absolute;right:15px;top:13px;font-size:26px;color:#adbbb4;background:transparent;width:35px;height:35px}#levelGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:25px}#levelGrid button{border-radius:9px;background:#2a4640;color:#c9dfd1;min-height:52px;font-size:17px}#levelGrid button.active{background:var(--lime);color:#263523}#levelGrid button:disabled{opacity:.35;cursor:default}#helpContent article{display:flex;gap:15px;align-items:center;padding:15px 0;border-bottom:1px solid #354c46}#helpContent article>span{font-size:28px;color:var(--lime);min-width:35px}#helpContent b{font-size:14px}#helpContent p{margin:5px 0;font-size:12px}#playButton{margin-top:25px}@media(max-width:700px){.app{padding:0 16px}header{height:76px}.brand{font-size:28px}.top-actions{gap:6px}.top-actions button,.top-actions select{padding:10px 8px;font-size:9px}.scoreboard{gap:14px;padding:20px 0}.level-stat{padding-right:14px}.level-stat strong{font-size:32px}.level-stat strong span{font-size:11px}h1{font-size:24px}.stage-description p{font-size:10px;max-width:190px}.eyebrow{font-size:8px;letter-spacing:1px}.goal-stat strong{font-size:24px}.arena{aspect-ratio:3/4}.arena-top{left:12px;right:12px;top:12px;font-size:8px}.instruction{bottom:15px;padding:10px 12px}.instruction b{font-size:11px}.instruction div span{font-size:9px}.bottom-bar p{font-size:10px}.key-dot{display:none}.shot-meter{left:12px;bottom:15px}.level-track{gap:3px}footer{letter-spacing:.7px;font-size:7px}.result-card h2{font-size:45px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.app{max-width:min(1300px,calc((100dvh - 270px)*1.515 + 96px))}header{height:76px}.scoreboard{padding:18px 0}.level-stat strong{font-size:38px}.bottom-bar{padding:10px 0}.level-track{margin-bottom:18px}footer{padding:14px 0}@media(max-width:700px){.app{max-width:100%;padding:0 12px}.scoreboard{padding:14px 0}.arena{aspect-ratio:1000/850;max-height:calc(100dvh - 225px);min-height:320px}.stage-description h1{font-size:20px}.level-stat strong{font-size:28px}.stage-description p{max-width:175px}.goal-stat strong{font-size:21px}}
body.loading .app{visibility:hidden}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#101b21;color:#d8ff74;font-size:22px;z-index:100}#saveNotice{font-size:12px;color:#ffd991;padding:10px 14px;border:1px solid #655338;border-radius:8px}
