*{box-sizing:border-box}body{color:#f3f6ff;background:#101523;margin:0;font-family:system-ui,-apple-system,sans-serif}body:before{content:"";pointer-events:none;background:radial-gradient(at 70% 10%,#20365380,#0000 55%);position:fixed;inset:0}#app{width:min(100%,440px);margin:auto;padding:26px 22px 18px;position:relative}header{border-bottom:1px solid #ffffff19;padding-bottom:18px}.tag{letter-spacing:2.5px;color:#92a6be;font-size:10px}h1{letter-spacing:-1px;margin:9px 0 0;font-size:30px}h1 b{color:#a3f17c}#intro{padding:70px 0 85px}#intro>p:first-child{font-size:24px;font-weight:700}.help{color:#9baac0;font-size:12px;line-height:1.9}button{color:#15251a;cursor:pointer;touch-action:manipulation;background:#b2f586;border:0;border-radius:12px;width:100%;padding:17px 22px;font-size:16px;font-weight:800}button span{float:right}button:hover{background:#c6ffa3}button:focus-visible{outline-offset:4px;outline:3px solid #fff}small{color:#91a3b8;letter-spacing:1px;margin-top:18px;font-size:11px;display:block}.stats{letter-spacing:1.8px;color:#9babc1;align-items:center;gap:36px;padding:19px 4px 13px;font-size:10px;display:flex}.stats strong{color:#fff;letter-spacing:-1px;font-size:32px;line-height:1.2;display:block}.stage{margin-left:auto;font-size:11px}#game{aspect-ratio:360/516;background:#171f30;border:1px solid #ffffff14;border-radius:16px;width:100%;overflow:hidden}canvas{touch-action:none;display:block}#status{text-align:center;min-height:22px;margin:14px 0 10px;font-size:14px}#verdict{text-align:center;color:#b2f586;margin:10px 0;font-size:18px;font-weight:800}#retry{padding:13px 20px}#play>.help{text-align:center;margin:10px 0;font-size:10px}footer{letter-spacing:1px;color:#697b94;border-top:1px solid #ffffff19;justify-content:space-between;padding-top:15px;font-size:9px;display:flex}[hidden]{display:none!important}@media (height<=780px){#app{max-width:375px;padding-top:14px}.stats{padding-top:12px}h1{font-size:26px}header{padding-bottom:10px}footer{padding-top:10px}}.stage{letter-spacing:1px;flex-direction:column;gap:5px;display:flex}#stage-select{color:#f3f6ff;font:inherit;cursor:pointer;background:#202a3e;border:1px solid #ffffff26;border-radius:7px;min-height:36px;padding:6px 4px;font-size:12px}#stage-select:disabled{opacity:.5;cursor:wait}#stage-select:focus-visible{outline:2px solid #b2f586}#next{margin-top:8px;padding:13px 20px}#result{left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:20;background:#101523f5;border:1px solid #ffffff26;border-radius:16px;width:min(100% - 32px,396px);padding:12px;position:fixed;transform:translate(-50%);box-shadow:0 8px 32px #0009}#result #verdict{margin:0 0 10px;font-size:15px;line-height:1.5}.result-actions{gap:8px;display:flex}.result-actions>button{flex:1;width:auto;min-height:48px;padding:13px 10px;font-size:14px}.result-actions>button span{float:none;margin-left:4px}#result #next{margin:0}#result #retry{color:#f3f6ff;background:#29364c;padding:13px 10px}#result #retry:hover{background:#354660}:root{--ui-bg:#101523;--ui-panel:#172031;--ui-ink:#f3f6ff;--ui-muted:#9baac0;--ui-accent:#b2f586;--ui-line:#ffffff26}.title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.title-row h1{white-space:nowrap;font-size:clamp(22px,7vw,30px)}.quiet-button{border:1px solid var(--ui-line);width:auto;min-height:44px;color:var(--ui-muted);background:0 0;border-radius:9px;padding:8px 10px;font-size:12px;font-weight:600}.quiet-button:hover{color:var(--ui-ink);background:#ffffff0d}.quiet-button:disabled{opacity:.4;cursor:wait}#score-memory{color:var(--ui-muted);font-variant-numeric:tabular-nums;margin:-4px 4px 10px;font-size:11px}.result-score-row{border-bottom:1px solid var(--ui-line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;display:flex}.score-label{color:var(--ui-muted);letter-spacing:1px;font-size:10px;display:block}#result-score{letter-spacing:-1px;font-variant-numeric:tabular-nums;font-size:32px;line-height:1.2;display:block}.result-detail{text-align:right;color:var(--ui-muted);font-size:11px}.result-detail p{margin:3px 0}#result-best{color:var(--ui-ink);font-variant-numeric:tabular-nums}#new-best{color:var(--ui-accent);font-size:10px;font-weight:700;display:block}#records-dialog{background:var(--ui-panel);width:min(100% - 32px,420px);max-height:min(80dvh,560px);color:var(--ui-ink);border:1px solid var(--ui-line);border-radius:16px;padding:18px;overflow:auto;box-shadow:0 16px 60px #0008}#records-dialog::backdrop{background:#080d19bb}.records-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.records-heading h2{margin:0;font-size:20px}#records-note{color:var(--ui-muted);margin:8px 0 18px;font-size:11px;line-height:1.7}.records-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.records-table th{color:var(--ui-muted);text-align:right;padding:0 2px 10px;font-size:10px;font-weight:500}.records-table td{text-align:right;border-top:1px solid var(--ui-line);padding:14px 2px}.records-table th:first-child,.records-table td:first-child{text-align:left}.records-table td:nth-child(3){color:var(--ui-accent);font-weight:700}@media (prefers-reduced-motion:reduce){#chain{animation:none!important}}#game{position:relative}#chain-callout{z-index:3;pointer-events:none;opacity:0;white-space:nowrap;color:#d1fff4;filter:drop-shadow(0 3px 2px #101523)drop-shadow(0 0 8px #101523);align-items:baseline;gap:6px;display:flex;position:absolute;top:6%;left:50%;transform:translate(-50%)}#chain-callout strong{font-size:var(--chain-size,36px);letter-spacing:-2px;-webkit-text-stroke:1px #101523;font-weight:900;line-height:1}#chain-callout span{letter-spacing:2px;font-size:12px;font-weight:800}#chain-callout[data-tier="1"]{color:#d8bdff}#chain-callout[data-tier="2"]{color:#ffe996;text-shadow:0 0 14px #ffb94088}#chain-aura{z-index:2;opacity:0;pointer-events:none;border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 0 26px 5px #b897ff99,inset 0 0 2px 1px #e2d1ff}#chain-aura[data-tier="2"]{box-shadow:inset 0 0 34px 7px #ffd85a99,inset 0 0 3px 2px #fff0b2}.records-heading{z-index:1;background:var(--ui-panel);padding:4px 0;position:sticky;top:-18px}
