:root{--bg: #0a0e27;--surface: #131736;--surface-2: #1b2147;--accent: #00c9a7;--accent-dim: #0a8a76;--text: #e4e7f1;--text-dim: #8a91b8;--danger: #ff5757;--warning: #ffb830;--border: #2a3166;--radius: 14px;--radius-sm: 8px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-num: "SF Mono", ui-monospace, "Roboto Mono", monospace;--ease: cubic-bezier(.22, 1, .36, 1);--press-scale: .96;--t-fast: .12s;--t-base: .2s}.fk-num{font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:.02em}.fk-btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-family:var(--font-ui);font-weight:600;cursor:pointer;transition:transform var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.fk-btn:active{transform:scale(var(--press-scale))}.fk-btn--primary{background:var(--accent);border-color:var(--accent);color:#03150f}.fk-btn--primary:active{background:var(--accent-dim)}@media (prefers-reduced-motion: reduce){.fk-btn{transition:none}}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;user-select:none}html,body{height:100dvh;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;overflow:hidden;touch-action:none}#app{width:100%;max-width:480px;height:100dvh;margin:0 auto;position:relative;display:flex;flex-direction:column;align-items:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}#hud{width:100%;max-width:440px;display:flex;justify-content:space-between;padding:12px 18px 4px}.hgroup{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:56px}.hlabel{font-size:10px;letter-spacing:1.5px;color:var(--text-dim);font-weight:600}.hgroup span:last-child{font-size:22px;font-weight:700;color:var(--text)}#game{display:block;touch-action:none}#combo{position:absolute;top:64px;left:0;right:0;text-align:center;font-size:18px;font-weight:800;letter-spacing:1px;color:var(--accent);pointer-events:none;opacity:0;text-shadow:0 0 18px rgba(0,201,167,.55)}.overlay{position:fixed;inset:0;background:#060916c7;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:20;padding:20px}.modal{width:100%;max-width:340px;background:var(--surface, #121a33);border:1px solid var(--border, #233052);border-radius:18px;padding:24px 22px;text-align:center;box-shadow:0 18px 60px #0000008c;animation:pop .22s ease}@keyframes pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.modal h1{font-size:30px;letter-spacing:3px;margin-bottom:8px;font-weight:800;background:linear-gradient(90deg,#5fe6c0,#3fa7ff);-webkit-background-clip:text;background-clip:text;color:transparent}.modal h2{font-size:22px;margin-bottom:10px;font-weight:800}.modal .tag{font-size:13px;color:var(--text-dim);line-height:1.6;margin-bottom:12px}.modal .tag b{color:var(--text)}.modal .hint{font-size:11px;color:var(--text-dim);margin:8px 0 14px;line-height:1.5}.modal canvas{border-radius:10px;background:#0e1530;margin:4px auto;display:block}.bigscore{font-size:44px;font-weight:800;color:var(--accent);text-shadow:0 0 24px rgba(0,201,167,.4);margin:4px 0}button{width:100%;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:700;cursor:pointer;margin-top:9px;transition:transform .08s ease,filter .15s ease;font-family:inherit}button:active{transform:scale(.96)}.primary{background:linear-gradient(180deg,#1ad6b0,#00b894);color:#04201a}.ghost{background:transparent;border:1px solid var(--border, #233052);color:var(--text-dim)}#streakline{margin-top:12px;font-size:12px;color:var(--warning, #ffce4d);font-weight:700}.lb{margin:14px 0 6px;text-align:left;font-size:13px}.lbtitle{font-size:11px;letter-spacing:1px;color:var(--text-dim);margin-bottom:6px;text-align:center}.lbrow{display:flex;justify-content:space-between;padding:3px 8px;border-radius:6px}.lbrow:nth-child(2n){background:#ffffff08}.lbrow span:first-child{color:var(--text-dim);width:22px}.lbrow span:nth-child(2){flex:1}.lbme{margin-top:8px;padding:6px 8px;border-radius:8px;text-align:center;background:#00c9a71f;color:var(--accent);font-weight:700}
