: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}html,body{height:100dvh;background:var(--bg, #0a0e27);color:var(--text, #e4e7f1);font-family:system-ui,-apple-system,Hiragino Sans,sans-serif;font-variant-numeric:tabular-nums;overflow:hidden;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#app{width:100%;max-width:480px;height:100dvh;margin:0 auto;position:relative}#stage{position:absolute;inset:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}#bg,#fx{position:absolute;inset:0;display:block;width:100%;height:100%}#fx{z-index:2}#hud{position:absolute;top:calc(env(safe-area-inset-top) + 8px);left:0;right:0;z-index:3;pointer-events:none;display:flex;flex-direction:column;gap:8px;align-items:center}#hud-top{display:flex;gap:8px;padding:0 12px;width:100%;max-width:440px}.hud-cell{flex:1;background:#0a102280;backdrop-filter:blur(6px);border:1px solid rgba(127,230,212,.14);border-radius:12px;padding:7px 4px;text-align:center}.hud-cell .lbl{display:block;font-size:9px;color:var(--text-dim, #8a93ad);letter-spacing:.08em}.hud-cell b{font-size:20px;font-weight:800;color:#fff;line-height:1.1}#hud-skip b{color:var(--accent, #7fe6d4)}#charge-row{display:flex;align-items:center;gap:8px;background:#0a102266;padding:4px 12px;border-radius:999px;border:1px solid rgba(127,230,212,.1)}.charge-lbl{font-size:9px;color:var(--text-dim, #8a93ad);letter-spacing:.1em}#charge-pips{display:flex;gap:5px}.pip{width:9px;height:9px;border-radius:50%;background:#ffffff29;transition:background .2s,box-shadow .2s}.pip.on{background:var(--accent, #7fe6d4)}.pip.full{box-shadow:0 0 8px var(--accent, #7fe6d4)}#settle-banner{position:absolute;left:50%;top:34%;transform:translate(-50%);z-index:3;pointer-events:none;background:#0a1022b3;backdrop-filter:blur(8px);border:1px solid rgba(127,230,212,.25);border-radius:14px;padding:10px 16px;font-size:14px;font-weight:700;color:#fff;white-space:nowrap;max-width:94vw;box-shadow:0 8px 30px #0006;animation:pop .3s cubic-bezier(.2,1.3,.4,1);text-align:center}#settle-banner.big{font-size:16px;color:var(--accent, #7fe6d4);border-color:#7fe6d480;box-shadow:0 8px 40px #7fe6d44d}#settle-banner.nearmiss{color:#ffc878;border-color:#ffb45a8c;box-shadow:0 8px 40px #ffb45a47}@keyframes pop{0%{transform:translate(-50%) scale(.7);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}#aim-hint{position:absolute;left:50%;bottom:26%;transform:translate(-50%);z-index:3;pointer-events:none;color:#e4e7f1a6;font-size:14px;letter-spacing:.04em;text-align:center;animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.5}50%{opacity:.9}}.hidden{display:none!important}#modal-root{position:absolute;inset:0;z-index:10;display:none}#modal-root.show{display:block}.scrim{position:absolute;inset:0;background:#0609169e;backdrop-filter:blur(3px)}.sheet{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:100%;max-width:480px;background:linear-gradient(180deg,#111936,#0a0e27);border-top:1px solid rgba(127,230,212,.18);border-radius:22px 22px 0 0;padding:22px 20px calc(env(safe-area-inset-bottom) + 22px);box-shadow:0 -12px 40px #00000080;animation:slideUp .26s cubic-bezier(.2,.9,.3,1);max-height:92dvh;overflow-y:auto}@keyframes slideUp{0%{transform:translate(-50%,24px);opacity:0}to{transform:translate(-50%);opacity:1}}.title-wrap{text-align:center;margin-bottom:6px}.title-jp{font-size:40px;font-weight:900;letter-spacing:.14em;color:#fff;text-shadow:0 0 24px rgba(127,230,212,.35)}.title-sub{font-size:13px;color:var(--accent, #7fe6d4);letter-spacing:.5em;margin-top:-2px}.lead{text-align:center;color:var(--text-dim, #aeb6cc);font-size:14px;line-height:1.6;margin:12px 0}.lead b{color:var(--accent, #7fe6d4)}.rank-line{text-align:center;font-size:13px;color:var(--text-dim, #aeb6cc);margin:6px 0 14px}.rank-line b{color:#fff}.ms-line{text-align:center;font-size:11px;color:var(--text-dim, #8a93ad);margin-top:12px}.streak-line{text-align:center;font-size:12px;color:#ffae5e;margin-top:8px;min-height:16px}.btn{display:block;width:100%;border:none;border-radius:14px;font-family:inherit;font-weight:700;cursor:pointer;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.1);padding:13px;font-size:15px;margin:8px 0;transition:transform .08s,background .15s}.btn:active{transform:scale(.96)}.btn.primary{background:linear-gradient(135deg,#1fb89a,#00c9a7);color:#04201a;border:none}.btn.primary.big{padding:17px;font-size:18px;font-weight:800}.btn.ghost{background:transparent;border:1px solid rgba(127,230,212,.3);color:var(--accent, #7fe6d4)}.btn.revive{background:linear-gradient(135deg,#ff9a3c,#ff7a3c);color:#2a1200;border:none}.btn.small{display:inline-block;width:auto;padding:9px 14px;font-size:13px;margin:0}.row-btns{display:flex;gap:8px;justify-content:center;margin-top:12px}.row-btns .btn{flex:1}.over-score{text-align:center;font-size:52px;font-weight:900;color:#fff;text-shadow:0 0 30px rgba(127,230,212,.3);line-height:1;margin:4px 0}.over-sub{text-align:center;font-size:13px;color:var(--text-dim, #aeb6cc);margin-bottom:6px}.unlock-banner{text-align:center;background:#7fe6d41f;border:1px solid rgba(127,230,212,.35);border-radius:12px;padding:9px;margin:6px 0;font-weight:700;font-size:14px;color:var(--accent, #7fe6d4);animation:pop .35s cubic-bezier(.2,1.3,.4,1)}.unlock-banner.rank{color:#ffd24a;background:#ffd24a1a;border-color:#ffd24a59}.revive-box{background:#ff9a3c14;border:1px solid rgba(255,154,60,.3);border-radius:14px;padding:12px;margin:10px 0}.revive-msg{text-align:center;font-size:14px;color:#ffc089;margin-bottom:8px;font-weight:700}.revive-box .btn{margin:0}.sheet-title{font-size:14px;font-weight:800;color:#fff;margin:12px 0 8px;letter-spacing:.04em}.pick-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.pick{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:9px 5px;text-align:center;cursor:pointer;color:#fff;font-family:inherit;transition:transform .08s,border-color .15s}.pick:active{transform:scale(.95)}.pick.sel{border-color:var(--accent, #7fe6d4);background:#7fe6d41f;box-shadow:0 0 14px #7fe6d433}.pick.locked{opacity:.5}.pick.shake{animation:shakeX .32s}@keyframes shakeX{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.pick-name{display:block;font-size:13px;font-weight:700}.pick-feel{display:block;font-size:9px;color:var(--text-dim, #8a93ad);margin-top:3px;line-height:1.3}.gacha-row{text-align:center;margin:14px 0 4px}.gacha-reveal{text-align:center;padding:18px 0}.gacha-rarity{font-size:12px;font-weight:800;letter-spacing:.2em;color:var(--rc, #fff)}.gacha-name{font-size:26px;font-weight:900;color:#fff;margin:6px 0;text-shadow:0 0 24px var(--rc, rgba(255,255,255,.4))}.gacha-note{font-size:12px;color:var(--text-dim, #aeb6cc)}.seg{display:flex;gap:6px;margin:6px 0 10px}.seg button{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px;color:var(--text-dim, #aeb6cc);font-family:inherit;font-weight:700;font-size:12px;cursor:pointer}.seg button.on{background:#7fe6d424;border-color:var(--accent, #7fe6d4);color:var(--accent, #7fe6d4)}.board-list{min-height:180px;max-height:40dvh;overflow-y:auto;margin-bottom:10px}.board-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.05);font-size:14px}.board-row.me{background:#7fe6d41a;border-radius:8px}.board-row .rk{width:24px;font-weight:800;color:var(--text-dim, #8a93ad)}.board-row .nm{flex:1;font-weight:600}.board-row .sc{font-weight:800;color:var(--accent, #7fe6d4)}.board-empty{text-align:center;color:var(--text-dim, #8a93ad);padding:40px 0;font-size:13px}.name-row{display:flex;gap:8px;margin-bottom:10px}.name-row input{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px;color:#fff;font-family:inherit;font-size:14px}.name-row input:focus{outline:none;border-color:var(--accent, #7fe6d4)}.toggle{display:flex;justify-content:space-between;align-items:center;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.06);font-size:15px}.toggle input{width:44px;height:26px;appearance:none;background:#ffffff29;border-radius:999px;position:relative;cursor:pointer;transition:background .2s}.toggle input:checked{background:var(--accent, #00c9a7)}.toggle input:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}.toggle input:checked:after{transform:translate(18px)}.starter-wrap{margin:14px 0}.starter-card{background:linear-gradient(135deg,#ffd24a1a,#7fe6d414);border:1px solid rgba(255,210,74,.3);border-radius:16px;padding:14px;text-align:center}.starter-title{font-size:14px;font-weight:800;color:#ffd24a}.starter-contents{font-size:12px;color:var(--text-dim, #aeb6cc);margin:6px 0}.starter-price{font-size:16px;margin:8px 0}.starter-price s{color:var(--text-dim, #8a93ad)}.starter-price b{color:#fff;font-size:22px}.starter-price .off{background:#ff5a5a;color:#fff;font-size:11px;padding:2px 7px;border-radius:8px;font-weight:800}
