*{box-sizing:border-box}body{margin:0;background:#0a1425;color:#ecf5ff;font-family:ui-rounded,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 75% 20%,#18425b70,transparent 55%),radial-gradient(ellipse at 15% 90%,#65254540,transparent 60%)}main{min-height:100svh;display:flex;gap:80px;align-items:center;justify-content:center;padding:24px;position:relative}aside{width:360px}.brand{font-size:50px;letter-spacing:-3px;font-weight:950;color:#ffaad6;text-shadow:0 3px #8a376b}.brand span{display:block;font-size:12px;color:#92bdd5;letter-spacing:4px;margin-top:8px;text-shadow:none}h1{font-size:40px;line-height:1.55;letter-spacing:2px;margin:35px 0 20px}.intro{color:#b7c7da;line-height:2;font-size:16px}.guide{display:flex;gap:18px;align-items:center;margin:20px 0}.number{color:#7ee5eb;border:1px solid #7ee5eb44;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:13px}.guide p{font-size:14px;line-height:1.9;margin:0;color:#d1ddeb}.keys{display:flex;align-items:center;gap:12px;font-size:13px;margin-top:32px;color:#adc1d6}kbd{padding:8px 15px;border:1px solid #51718d;border-bottom-width:3px;border-radius:7px}.small{font-size:12px;color:#83a1b9;margin-top:22px}.game{height:min(900px,calc(100svh - 48px));aspect-ratio:480/820;position:relative;overflow:hidden;border:1px solid #7098b880;border-radius:28px;background:#12253a;box-shadow:0 30px 100px #0009;touch-action:none;user-select:none}canvas{width:100%;height:100%;display:block}.hud{position:absolute;inset:16px 14px auto;display:flex;gap:8px;align-items:center}.score{background:#092439d9;border:1px solid #9ed8f480;border-radius:13px;padding:8px 14px;flex:1}.score span{font-size:11px;letter-spacing:2px;display:block;color:#a9d6eb}.score strong{font-size:25px;letter-spacing:2px;font-variant-numeric:tabular-nums}.hearts{color:#ff91c7;letter-spacing:2px;font-size:22px;text-shadow:0 2px 8px #002239}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid #fff;outline-offset:3px}.hud button{width:37px;height:42px;border:1px solid #8ebacf88;background:#102d43de;color:#e5f9ff;border-radius:12px;font-size:19px}.hud i{font-style:normal;font-size:9px;display:block}.combo{position:absolute;right:20px;top:105px;color:#ffadd9;text-align:right;font-size:17px;font-weight:900;text-shadow:0 2px 8px #051e30}.combo b{display:block;font-size:46px;color:#fff5ac}.notice{position:absolute;top:35%;width:100%;text-align:center;font-size:32px;font-weight:950;pointer-events:none;color:#fff2a4;text-shadow:0 3px #a7567c,0 0 20px #fd81dc;transition:opacity .15s}.gamefoot{position:absolute;bottom:18px;left:24px;right:24px}.gamefoot>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:12px;text-shadow:0 1px 5px #000}.gamefoot strong{font-size:15px}.track{height:5px;background:#a9d2e345;border-radius:10px;margin:8px 0 14px;overflow:hidden}#bar{height:100%;background:#6ef0e0;width:0;transition:width .2s}#jump{width:100%;height:51px;border:1px solid #ffd6e9;border-bottom:4px solid #a24781;background:linear-gradient(#ffa6d3,#e66eae);border-radius:15px;color:#34172f;font-size:18px;font-weight:900;box-shadow:0 4px 24px #ef8fbe44}#jump span{font-size:10px;letter-spacing:1px;margin-left:14px}#jump:active{transform:translateY(2px)}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(#06192c35,#06192c80);backdrop-filter:blur(3px);padding:20px}.overlay.hidden{display:none}.panel{text-align:center;background:#10253bea;border:1px solid #a9d9ef70;border-radius:24px;padding:30px 22px;width:100%;box-shadow:0 20px 50px #0005}.eyebrow{font-size:11px;letter-spacing:3px;color:#8bebed}h2{font-size:36px;line-height:1.4;margin:20px 0;color:#fff}h2 em{font-style:normal;color:#ffacd8;font-size:44px}.panel p{font-size:14px;line-height:1.9;color:#c4deea}.primary{margin-top:12px;border:0;border-bottom:4px solid #a64e85;border-radius:14px;background:#ffacda;color:#32182f;font-size:18px;font-weight:bold;padding:15px 22px;width:100%}.primary:disabled{opacity:.6;cursor:wait}.panel .hint{font-size:11px;margin-bottom:0;color:#9bb9cb}.result{font-size:19px;color:#8fe9eb;line-height:1.8}.mobilebrand{display:none}@media(max-width:800px){main{padding:0;min-height:100svh;gap:0}aside{display:none}.game{height:100svh;max-width:100vw;border-radius:0;border:0;box-shadow:none}.hud{top:max(14px,env(safe-area-inset-top))}.gamefoot{bottom:max(14px,env(safe-area-inset-bottom))}}@media(max-height:690px) and (min-width:801px){h1{font-size:28px;margin:15px 0}.guide{margin:12px 0}.brand{font-size:38px}.keys{margin-top:16px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.modebadge{position:absolute;top:105px;left:20px;font-size:12px;letter-spacing:1px;padding:7px 10px;border-radius:8px;background:#102d43de;color:#99eee8;border:1px solid #99eee855}.modebadge.hard{color:#ffd0e4;border-color:#ff82bdaa;background:#542640dd}.difficulty{border:0;padding:0;margin:18px 0 10px;display:flex;gap:10px;text-align:left}.difficulty[hidden]{display:none}.difficulty legend{font-size:14px;margin-bottom:8px;color:#d1e6ef}.difficulty label{flex:1;position:relative;cursor:pointer}.difficulty input{position:absolute;opacity:0;width:1px;height:1px}.difficulty span{display:block;border:1px solid #7190ac;border-radius:12px;padding:12px 6px;text-align:center;font-size:16px;font-weight:bold;background:#0c2037}.difficulty small{display:block;font-size:12px;font-weight:normal;margin-top:5px;color:#afc7db}.difficulty input:checked+span{background:#62334e;border:2px solid #ffafd9;padding:11px 5px;color:#ffd7eb}.difficulty input:focus-visible+span{outline:3px solid #fff;outline-offset:3px}.audio-options{display:flex;justify-content:center;gap:28px;margin:13px 0;font-size:14px}.audio-options label{cursor:pointer;display:flex;align-items:center;gap:6px}.audio-options input{width:18px;height:18px;accent-color:#ff98cf}.overlay{overflow-y:auto}.panel{max-height:100%;overflow-y:auto}.panel h2{font-size:30px;margin:12px 0}.panel h2 em{font-size:36px}.panel .result{font-size:16px}.panel p{margin:10px 0}.panel{padding:24px 20px}@media(max-height:650px){.panel{padding:16px}.panel h2{font-size:24px;margin:8px 0}.panel h2 em{font-size:28px}.difficulty{margin-top:10px}.panel .hint{display:none}}
