:root{font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;color:#18334b;background:#f6f7f2;font-synthesis:none;font-weight:600;--blue:#2465e8;--ink:#18334b;--orange:#f77935;--line:#dce3e7}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #2465e8;outline-offset:4px}button:disabled{cursor:wait;opacity:.5}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}[hidden]{display:none!important}h1,h2,p{margin:0}button svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.layout{min-height:100svh;display:grid;grid-template-columns:minmax(190px,280px) minmax(310px,448px) minmax(150px,210px);gap:clamp(28px,4vw,72px);justify-content:center;align-items:center;padding:32px}.intro{align-self:center}.small-brand{display:inline-flex;align-items:center;gap:9px;font-size:12px;margin-bottom:28px;color:#637482}.brand-mark{display:flex;gap:2px;align-items:flex-end}.brand-mark i{width:7px;background:var(--blue);border-radius:1px}.brand-mark i:nth-child(1){height:9px}.brand-mark i:nth-child(2){height:15px}.brand-mark i:nth-child(3){height:22px;background:var(--orange)}h1{font-size:clamp(33px,3.1vw,47px);font-weight:900;line-height:1.5;letter-spacing:-.06em;word-break:keep-all}.intro h1 span{color:var(--blue);position:relative}.intro h1 span:after{content:"";height:5px;background:var(--orange);position:absolute;bottom:-6px;left:1px;right:1px;transform:rotate(-3deg)}.intro .lead{font-size:14px;line-height:2.1;margin-top:28px;font-weight:500;color:#697e8c}.instructions{margin-top:38px;display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.9}.tap-icon{width:35px;height:35px;display:grid;place-items:center;border:1px solid #d5dee4;border-radius:50%;font-size:19px}.key-guide{margin-top:17px;font-size:10px;line-height:2.4;color:#788b97}kbd{display:inline-block;font:inherit;min-width:21px;text-align:center;border:1px solid #dce3e7;border-bottom-width:2px;border-radius:4px;padding:0 4px;color:#536d7c;background:#fff}.stage{width:100%;max-width:448px;align-self:center}.game-shell{position:relative;width:100%;aspect-ratio:420/720;background:#fff;border:1px solid #d8e0e6;border-radius:22px;overflow:hidden;box-shadow:0 14px 45px #18334b08;touch-action:none;user-select:none;-webkit-user-select:none}.game-shell canvas{display:block;width:100%;height:100%;touch-action:none}.hud{position:absolute;z-index:2;top:24px;left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.score-label{font-size:10px;color:#87949c;letter-spacing:.06em;margin-bottom:3px}.score-value{font-size:46px;font-weight:900;letter-spacing:-.07em;line-height:1;font-variant-numeric:tabular-nums;color:var(--blue)}.score-value small{font-size:14px;margin-left:5px;letter-spacing:0}.best-box{text-align:right;padding-top:4px}.best-value{font-size:19px;line-height:1.5;font-weight:800;font-variant-numeric:tabular-nums}.best-value small{font-size:10px;margin-left:4px}.hud-pause{pointer-events:auto;width:35px;height:35px;border-radius:50%;background:#f2f5f7;display:grid;place-items:center;margin:1px 0 0 18px}.right-hud{display:flex;align-items:flex-start}.status{position:absolute;z-index:2;top:20.5%;left:16px;right:16px;pointer-events:none;text-align:center;font-size:11px;font-weight:500;color:#8798a3;letter-spacing:.04em}.status.danger{color:#db6d33}.flash{position:absolute;z-index:3;top:38%;left:8px;right:8px;text-align:center;pointer-events:none;white-space:pre-line;color:var(--blue);font-size:24px;font-weight:900;text-shadow:0 2px 0 white;animation:pop .32s ease-out}.flash small{display:block;font-size:11px;letter-spacing:.04em;color:#657e93;margin-top:6px}.drop-area{margin-top:13px}.drop-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:53px;border-radius:13px;background:var(--orange);color:#fff;box-shadow:0 3px #db5c1e;font-size:14px;font-weight:800}.drop-button small{font-weight:500;opacity:.85;font-size:10px}.below-note{text-align:center;color:#7e919e;font-size:10px;margin-top:12px;font-weight:500;min-height:16px}.side{align-self:center}.side-title{font-size:12px;color:#677f8f;margin-bottom:18px}.milestone{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid var(--line);font-size:11px;font-weight:500;color:#7b8d99}.milestone b{width:41px;flex-shrink:0;color:#b9c7d0;font-size:21px;letter-spacing:-.05em;font-weight:800}.milestone small{font-size:9px;margin-left:2px}.milestone.achieved b,.milestone.achieved span{color:var(--blue)}.settings{display:flex;flex-direction:column;gap:5px;margin-top:40px}.setting{display:flex;align-items:center;gap:10px;background:transparent;padding:11px 0;font-size:11px;font-weight:500;color:#607785;text-align:left;min-height:44px}.setting svg{width:17px;height:17px}.setting .toggle{margin-left:auto;color:#8a9da7;font-size:10px}.side-foot{font-size:10px;line-height:2;color:#9ba9b0;font-weight:400;margin-top:40px}.overlay{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:25px;background:#fff8;backdrop-filter:blur(4px)}.overlay-card{background:#fff;border:1px solid #dce4eb;border-radius:18px;padding:30px 25px 26px;box-shadow:0 8px 40px #18334b09;width:100%;max-width:328px;text-align:center}.overlay-card h2{font-size:28px;line-height:1.7;letter-spacing:-.045em;font-weight:900}.overlay-card .overlay-note{font-size:11px;line-height:2;color:#778b98;margin:15px 0 24px;font-weight:500}.overlay-card .primary{height:49px;width:100%;border-radius:10px;background:var(--blue);color:#fff;font-size:13px;font-weight:700}.overlay-card .secondary{height:44px;width:100%;margin-top:9px;border-radius:10px;background:#f0f4f8;color:#627b8e;font-size:12px;display:flex;align-items:center;justify-content:center;text-decoration:none}.result-number{color:var(--blue);font-size:70px;font-weight:900;line-height:1;letter-spacing:-.06em;margin-top:22px;font-variant-numeric:tabular-nums}.result-number small{font-size:16px;margin-left:6px}.result-best{font-size:11px;color:#7e919d;margin:12px 0 22px}.result-best strong{color:var(--blue);margin-left:6px}.mobile-settings{display:none}.loading-message{font-size:10px;color:#718799;line-height:1.7;margin-top:12px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:20;background:#18334b;color:#fff;border-radius:10px;padding:12px 18px;font-size:12px;box-shadow:0 8px 25px #18334b22;max-width:90vw;text-align:center}.dev-panel{position:fixed;z-index:10;bottom:10px;left:10px;width:280px;max-height:75svh;overflow:auto;background:#fffef4f5;border:1px solid #b9c8d3;border-radius:10px;padding:12px;font-size:11px;box-shadow:0 4px 20px #0001}.dev-panel summary{cursor:pointer;font-weight:800;min-height:28px}.dev-row{display:grid;grid-template-columns:1fr 85px;align-items:center;gap:6px;margin:7px 0}.dev-row input{width:85px;padding:4px;border:1px solid #c5d3dc;border-radius:4px;background:#fff}.dev-row input[type=checkbox]{width:18px;justify-self:end}.dev-panel button{padding:8px;background:#e8eef7;border-radius:5px;margin-top:5px}.dev-panel pre{white-space:pre-wrap;font-size:10px;font-weight:400;line-height:1.7}.footer-link{color:inherit;text-decoration:underline;text-underline-offset:3px}.new-record{color:var(--orange)!important}@keyframes pop{0%{transform:scale(.86);opacity:0}to{transform:scale(1);opacity:1}}@media(min-width:900px)and (max-height:850px){.stage{max-width:365px}.layout{grid-template-columns:240px minmax(310px,365px) 185px;padding:18px;gap:42px}.hud{top:20px;left:20px;right:20px}.score-value{font-size:40px}.drop-button{height:47px}.drop-area{margin-top:10px}.below-note{margin-top:9px}}@media(max-width:1050px){.layout{grid-template-columns:minmax(175px,230px) minmax(310px,410px);gap:34px}.side{display:none}.mobile-settings{display:flex;gap:6px;justify-content:center;margin-top:12px}.mobile-settings button{background:transparent;width:38px;height:38px;display:grid;place-items:center;color:#6d8290}}@media(max-width:670px){body{background:#fff}.layout{display:block;min-height:100svh;padding:0 12px 10px;max-width:450px;margin:0 auto}.intro{padding:14px 6px 10px}.small-brand,.intro .lead,.instructions,.key-guide{display:none}.intro h1{font-size:17px;line-height:1.5;letter-spacing:-.04em;display:flex;justify-content:center;gap:1px}.intro h1 br{display:none}.intro h1 span:after{display:none}.stage{max-width:420px;margin:0 auto}.game-shell{border-radius:17px;box-shadow:none}.hud{top:20px;left:20px;right:20px}.score-value{font-size:40px}.status{top:20.5%}.drop-area{margin-top:10px}.drop-button{height:48px}.below-note{margin-top:10px;font-size:10px}.mobile-settings{position:absolute;top:8px;right:8px;margin:0;gap:0;z-index:5}.mobile-settings button{width:32px;height:32px}.mobile-settings button svg{width:16px;height:16px}.overlay-card{padding:25px 22px}.overlay-card h2{font-size:25px}.dev-panel{width:260px}.game-shell{max-height:calc(100svh - 148px);aspect-ratio:420/720;margin:0 auto;width:auto}.stage{width:100%}.drop-area,.below-note{max-width:420px;margin-left:auto;margin-right:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}@media(max-width:380px){.intro{padding-top:12px}.intro h1{font-size:15px}.mobile-settings{top:5px;right:2px}.game-shell{max-height:calc(100svh - 142px)}.overlay-card h2{font-size:23px}.hud{top:17px;left:17px;right:17px}.score-value{font-size:35px}}.overlay-card a.secondary{display:flex;align-items:center;justify-content:center;text-decoration:none;gap:8px;cursor:pointer}.overlay-card a.secondary:hover{background:#e7edf5}.share-x-mark{font-family:Arial,sans-serif;font-weight:600;font-size:15px}.music-credit{text-align:center;margin-top:9px;color:#8a9ba5;font-size:9px;font-weight:400;line-height:1.8}.music-credit a{color:inherit;text-underline-offset:2px}
