:root{--bg:#0b0b10;--panel:#14141cd1;--text:#f4f4f5;--muted:#a1a1aa;--accent:#fb923c;--accent-strong:#ea580c;--good:#4ade80;--bad:#f87171;color:var(--text);background:var(--bg);-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}.app{position:fixed;inset:0}.video,.overlay{width:100%;height:100%;position:absolute;inset:0}.video{object-fit:cover;background:#000}.video.mirrored{transform:scaleX(-1)}.overlay{pointer-events:none}.hud-top{top:calc(env(safe-area-inset-top) + 12px);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:absolute;left:16px;right:16px}.reps{align-items:baseline;gap:8px;display:flex}.reps-value{color:var(--good);font-variant-numeric:tabular-nums;font-size:44px;font-weight:800}.reps-label{color:var(--muted);font-size:12px}.phase{background:#27272a;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700}.phase-up{color:var(--good)}.phase-down{color:var(--bad)}.phase-lost,.phase-idle{color:var(--muted)}.stats{top:calc(env(safe-area-inset-top) + 100px);background:var(--panel);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:12px;flex-direction:column;gap:2px;padding:8px 10px;font-size:11px;display:flex;position:absolute;right:16px}.stats b{color:var(--text)}.stats .sep{background:#3f3f46;height:1px;margin:4px 0}.bottom{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 12px);flex-direction:column;gap:8px;display:flex;position:absolute}.chart{background:var(--panel);border-radius:12px;width:100%;height:80px}.controls{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.load-info{background:var(--panel);color:var(--muted);border-radius:8px;align-self:flex-start;padding:4px 10px;font-size:11px}.gpu{color:var(--muted);margin:0;font-size:12px}button{font:inherit;color:var(--text);background:var(--accent-strong);cursor:pointer;border:0;border-radius:12px;padding:12px 6px;font-size:13px;font-weight:600}button:disabled{opacity:.6}button.ghost{background:#3f3f46}button.rec{background:#27272a}button.rec.on{background:#dc2626}.setup{padding:calc(env(safe-area-inset-top) + 40px) 16px 32px;background:var(--bg);flex-direction:column;gap:14px;max-width:480px;margin:0 auto;display:flex;position:absolute;inset:0;overflow-y:auto}.setup h1{letter-spacing:.04em;margin:0;font-size:40px}.setup h1 span{color:var(--accent)}.sub{color:var(--muted);margin:-8px 0 8px}.setup label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}select{font:inherit;color:var(--text);background:#18181b;border:1px solid #3f3f46;border-radius:12px;padding:12px;font-size:16px}.start{margin-top:8px;padding:16px;font-size:17px}.error{color:var(--bad);margin:0}.tips{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:14px;line-height:1.5}.bench{color:var(--text);white-space:pre-wrap;background:#18181b;border-radius:12px;margin:0;padding:12px;font-size:12px;line-height:1.6}.setup .back{align-self:flex-start;padding:8px 14px}.rep-flash{z-index:50;pointer-events:none;animation:.45s ease-out forwards rep-flash;position:fixed;inset:0;box-shadow:inset 0 0 0 6px #4ade80e6,inset 0 0 60px #4ade8073}.rep-flash.strong{animation-duration:.8s;box-shadow:inset 0 0 0 10px #facc15f2,inset 0 0 120px #facc1580}@keyframes rep-flash{0%{opacity:1}to{opacity:0}}.new-trophies{text-align:left;background:linear-gradient(135deg,#facc1538,#15151ce6);border:1px solid #facc1573;border-radius:16px;align-items:center;gap:12px;width:100%;padding:12px 14px;animation:.5s cubic-bezier(.2,1.4,.4,1) nt-in;display:flex}.nt-icon{background:radial-gradient(circle at 30% 30%,#fde68a,#a16207);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:24px;display:grid}.new-trophies small{letter-spacing:.1em;text-transform:uppercase;color:#fde68a;font-size:11px;font-weight:700;display:block}.new-trophies b{font-size:16px}.nt-more{color:var(--muted);font-size:13px;font-weight:600}@keyframes nt-in{0%{opacity:0;transform:translateY(8px)scale(.95)}}.share{background:#ffffff0d;border:1px solid #ffffff14;border-radius:16px;align-items:center;gap:12px;width:100%;padding:10px;display:flex}.share-preview{object-fit:cover;border-radius:8px;flex:none;width:56px;height:70px;box-shadow:0 4px 14px #0006}.share-btn{color:#0b0b10;background:#fafafa;flex:1;padding:14px;font-size:15px}.share-btn span{margin-right:4px}.share small{flex:none}@keyframes pop{0%{opacity:0;transform:scale(1.4)}30%{opacity:1}to{transform:scale(1)}}@keyframes bump{0%{color:var(--accent);transform:scale(1.25)}to{transform:scale(1)}}.arena-page{z-index:2;max-width:520px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);background:var(--bg);flex-direction:column;gap:16px;margin:0 auto;display:flex;position:fixed;inset:0;overflow-y:auto}.arena-page h1{margin:0}.arena-room{background:radial-gradient(120% 80% at 50% 0%, #0c4a6e 0%, var(--bg) 70%);position:fixed;inset:0;overflow:hidden}.chips{gap:8px;display:flex}.chip{background:#27272a;border:1px solid #3f3f46;flex:1}.chip.on{background:#0369a1;border-color:#38bdf8}.code-input{font:inherit;letter-spacing:.3em;text-align:center;text-transform:uppercase;color:var(--text);background:#0b0b10;border:1px solid #3f3f46;border-radius:12px;padding:12px;font-size:28px;font-weight:800}.room-code{background:linear-gradient(135deg,#0c4a6e,#15151c);border:1px solid #0e7490;border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:18px;display:flex}.room-code small{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:12px}.room-code b{letter-spacing:.2em;font-variant-numeric:tabular-nums;font-size:44px}.roster{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.roster li{background:#15151c;border:1px solid #26262f;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;display:flex}.roster li.me{border-color:#0e7490}.roster li.empty{border-style:dashed}.roster-name{flex:1;font-weight:700}.roster-name small{color:var(--muted);font-weight:500}.dot{background:#52525b;border-radius:50%;width:10px;height:10px}.dot.on{background:var(--good);box-shadow:0 0 8px var(--good)}.ready-tag{color:var(--muted);background:#27272a;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.ready-tag.yes{color:var(--good);background:#4ade8026}.arena-top{top:calc(env(safe-area-inset-top) + 12px);z-index:3;max-width:560px;margin:0 auto;position:absolute;left:16px;right:16px}.mini-roster{flex-wrap:wrap;gap:6px;display:flex}.mini{background:var(--panel);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:700;display:inline-flex}.mini.ready{color:var(--good)}.mini.me{outline:1px solid #38bdf8}.ready-card{text-align:center;flex-direction:column;gap:10px;display:flex}.duel{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:22px;padding:12px 16px}.duel-head{color:var(--muted);justify-content:space-between;font-size:14px;font-weight:700;display:flex}.duel-scores{align-items:center;gap:12px;display:flex}.duel-scores b{font-variant-numeric:tabular-nums;text-align:center;min-width:1.4em;font-size:40px;font-weight:900}.duel-scores .good{color:var(--good)}.duel-scores .bad{color:var(--bad)}.duel-bar{background:var(--bad);border-radius:999px;flex:1;height:14px;overflow:hidden}.duel-bar span{background:var(--good);transform-origin:0;height:100%;transition:transform .3s ease-out;display:block}.board{background:var(--panel);border-radius:20px;flex-direction:column;gap:6px;margin:0;padding:10px 14px;list-style:none;display:flex}.board li{grid-template-columns:7em 1fr 2.5em;align-items:center;gap:10px;font-weight:700;display:grid}.board li.me{color:#7dd3fc}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-bar{background:#ffffff1a;border-radius:999px;height:10px;overflow:hidden}.board-bar span{transform-origin:0;background:#38bdf8;height:100%;transition:transform .3s ease-out;display:block}.board b{text-align:right;font-variant-numeric:tabular-nums}.arena-timer{top:calc(env(safe-area-inset-top) + 130px);z-index:3;background:var(--panel);font-variant-numeric:tabular-nums;border-radius:999px;padding:6px 18px;font-size:30px;font-weight:900;position:absolute;left:50%;transform:translate(-50%)}.arena-room .arena-count{top:calc(env(safe-area-inset-top) + 190px);z-index:3}.arena-banner{top:auto;bottom:calc(env(safe-area-inset-bottom) + 24px);z-index:3}.arena-error{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 8px);z-index:7;text-align:center;position:absolute}.arena-room .p-card,.arena-room .countdown{z-index:3}.podium{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.podium li{background:#1c1c24;border-radius:14px;align-items:baseline;gap:10px;padding:12px 14px;display:flex}.podium li.me{outline:1px solid #38bdf8}.podium .place{color:#fde047;width:2.2em;font-weight:900}.podium-name{text-align:left;flex:1;font-weight:700}.podium b{font-variant-numeric:tabular-nums;font-size:24px}.podium small{color:var(--muted)}.rematch-ready{animation:1.2s ease-in-out infinite rematch-pulse}@keyframes rematch-pulse{50%{box-shadow:0 0 0 6px #ea580c59}}.arena{position:absolute;inset:0;overflow:hidden}.arena-scenery{width:100%;height:100%;position:absolute;inset:0}.arena-glade{background:linear-gradient(#1e3a5f 0%,#7c4a6b 45%,#f59e0b 100%)}.arena-thicket{background:linear-gradient(#0f0a2e 0%,#581c87 50%,#db2777 100%)}.arena-forge{background:linear-gradient(#0c0a09 0%,#451a03 50%,#c2410c 100%)}.embers{opacity:.7;background-image:radial-gradient(2px 2px at 20% 80%,#ffdc96cc,#0000),radial-gradient(2px 2px at 70% 60%,#ffc878b3,#0000),radial-gradient(1.5px 1.5px at 40% 40%,#ffffc899,#0000),radial-gradient(2px 2px at 85% 30%,#ffd28c99,#0000);animation:9s linear infinite drift;position:absolute;inset:0}@keyframes drift{0%{transform:translateY(0)}to{transform:translateY(-30%)}}.monster{place-items:end center;width:100%;height:100%;display:grid;position:relative}.monster-body{transform-origin:50% 90%;width:100%;height:100%;animation:2.4s ease-in-out infinite breathe}.monster-body svg{filter:drop-shadow(0 10px 18px #00000073);width:100%;height:100%;overflow:visible}.monster-shadow{filter:blur(6px);background:#00000073;border-radius:50%;width:60%;height:8%;position:absolute;bottom:2%}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03,.97)}}.is-charging .monster-body{animation:.25s linear infinite rumble}.is-charging .monster-body svg{filter:drop-shadow(0 0 18px #ef4444f2)drop-shadow(0 10px 18px #00000073)}@keyframes rumble{0%,to{transform:translate(0)}25%{transform:translate(-2px,1px)}75%{transform:translate(2px,-1px)}}.is-hit .monster-body{animation:.35s ease-out struck}.is-hit .monster-body svg{filter:brightness(2.2)drop-shadow(0 10px 18px #00000073)}@keyframes struck{0%{transform:translate(0)scale(1)}20%{transform:translate(-10px)scale(.94,1.04)}45%{transform:translate(8px)}70%{transform:translate(-4px)}to{transform:translate(0)scale(1)}}.is-attack .monster-body{animation:.5s ease-out lunge}@keyframes lunge{0%{transform:scale(1)}35%{transform:scale(1.25)translateY(6%)}to{transform:scale(1)}}.is-dead .monster-body{animation:1.1s ease-in forwards perish}@keyframes perish{0%{opacity:1;filter:brightness();transform:scale(1)}30%{filter:brightness(3)}to{opacity:0;transform:scale(.2,.05)translateY(40%)}}.monster-slime .monster-body{animation-duration:1.6s}.monster-golem .core{animation:1.8s ease-in-out infinite glow}@keyframes glow{50%{opacity:.55}}.slayer-map{max-width:520px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;gap:18px;margin:0 auto;display:flex;position:fixed;inset:0;overflow-y:auto}.player-card{background:linear-gradient(135deg,#2e1065,#15151c);border:1px solid #3b2a6b;border-radius:18px;align-items:center;gap:14px;padding:14px;display:flex}.player-level{text-align:center;background:#7c3aed;border-radius:16px;flex:none;place-content:center;width:64px;height:64px;display:grid}.player-level small{text-transform:uppercase;letter-spacing:.1em;font-size:10px}.player-level b{font-size:28px;line-height:1}.player-xp{text-align:left;flex-direction:column;flex:1;gap:6px;display:flex}.player-xp .muted{text-align:left;font-size:12px}.xp-bar{background:#ffffff1f;border-radius:999px;height:10px;overflow:hidden}.xp-bar span{transform-origin:0;background:linear-gradient(90deg,#a78bfa,#f0abfc);height:100%;transition:transform 1s ease-out;display:block}.stage-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.stage-card{text-align:left;border:1px solid #ffffff1a;border-radius:22px;align-items:center;gap:12px;width:100%;padding:10px 16px 10px 10px;display:flex;position:relative;overflow:hidden}.stage-card.locked{filter:grayscale()brightness(.5)}.stage-art{flex:none;width:96px;height:96px}.stage-info{flex-direction:column;gap:4px;display:flex}.stage-tag{letter-spacing:.06em;text-transform:uppercase;background:#00000059;border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:11px;font-weight:700}.stage-name{font-size:22px;font-weight:900}.stage-meta{color:#fffc;font-size:13px;font-weight:500}.fight{background:#000;position:fixed;inset:0;overflow:hidden}.fight-stage{aspect-ratio:1;width:min(72vw,52vh,420px);position:absolute;top:22%;left:50%;transform:translate(-50%)}.floaters{pointer-events:none;position:absolute;inset:0}.floater{white-space:nowrap;color:#fff;text-shadow:0 3px #000,0 0 18px #0009;font-size:44px;font-weight:900;animation:1.1s ease-out forwards rise;position:absolute;top:30%;left:50%;transform:translate(-50%)}.floater.crit{color:#fde047;font-size:54px}.floater.riposte{color:#67e8f9;font-size:50px}.floater.block{color:#93c5fd;top:70%}.floater.hurt{color:#f87171;top:75%}@keyframes rise{0%{opacity:0;transform:translate(-50%,20px)scale(.6)}15%{opacity:1;transform:translate(-50%)scale(1.15)}to{opacity:0;transform:translate(-50%,-80px)scale(1)}}.hurt-flash{z-index:5;pointer-events:none;animation:.7s ease-out forwards fade;position:absolute;inset:0;box-shadow:inset 0 0 120px 40px #dc2626d9}@keyframes fade{to{opacity:0}}.fight-top{top:calc(env(safe-area-inset-top) + 12px);align-items:center;gap:12px;display:flex;position:absolute;left:16px;right:16px}.hp{flex:1}.hp-label{text-shadow:0 2px 6px #000000b3;justify-content:space-between;margin-bottom:4px;font-weight:800;display:flex}.hp-bar{background:#00000080;border:2px solid #ffffff40;border-radius:999px;height:18px;overflow:hidden}.hp-bar span{transform-origin:0;background:linear-gradient(90deg,#dc2626,#f97316);height:100%;transition:transform .35s ease-out;display:block}.charge{text-align:center;width:min(72vw,360px);position:absolute;top:calc(22% + min(72vw,52vh,420px) + 8px);left:50%;transform:translate(-50%)}.charge-label{letter-spacing:.08em;text-transform:uppercase;color:#fffc;text-shadow:0 2px 6px #000000b3;margin-bottom:4px;font-size:13px;font-weight:700;display:block}.charge-bar{background:#00000080;border-radius:999px;height:10px;overflow:hidden}.charge-bar span{transform-origin:0;background:#fbbf24;height:100%;transition:transform .1s linear;display:block}.charge.warn .charge-label{color:#fca5a5;font-size:26px;animation:.5s steps(2,end) infinite blink}.charge.warn .charge-bar span{background:#ef4444}@keyframes blink{50%{opacity:.4}}.fight-bottom{left:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute}.hearts{gap:4px;font-size:38px;line-height:1;display:flex}.heart{color:#ef4444;text-shadow:0 2px 8px #0009}.heart.lost{color:#fff3}.combo,.riposte-ready{background:#0000008c;border-radius:999px;padding:6px 12px;font-weight:900}.combo{color:#fde047;animation:.3s ease-out bump}.riposte-ready{color:#67e8f9}.cam{z-index:3;position:absolute;overflow:hidden}.cam-full{inset:0}.cam-pip{right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);aspect-ratio:3/4;border:2px solid #ffffff59;border-radius:16px;width:min(30vw,170px);box-shadow:0 8px 24px #00000080}.cam-off{visibility:hidden;inset:0}.cam .video,.cam .overlay{width:100%;height:100%;position:absolute;inset:0}.cam-lost{text-align:center;background:#dc2626e6;padding:4px;font-size:11px;font-weight:700;position:absolute;bottom:0;left:0;right:0}.fight .p-top,.fight .p-card,.fight .countdown{z-index:4}.intro-card{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c0a14d9;border:1px solid #ffffff1a;border-radius:22px;flex-direction:column;gap:10px;max-width:520px;margin:0 auto;padding:18px;display:flex;position:absolute}.intro-card h1{margin:0;font-size:30px;font-weight:900}.intro-card .muted{text-align:left}.howto{color:#d4d4d8;flex-direction:column;gap:6px;margin:4px 0;padding-left:18px;font-size:14px;line-height:1.4;display:flex}.results-backdrop{z-index:6;background:#00000073;place-items:end center;padding:16px;animation:.4s ease-out fade-in;display:grid;position:absolute;inset:0}@keyframes fade-in{0%{opacity:0}}.results{width:100%;max-width:480px;max-height:100%;padding:22px 18px calc(env(safe-area-inset-bottom) + 18px);text-align:center;background:#121218;border:1px solid #2a2a35;border-radius:24px;flex-direction:column;gap:12px;animation:.45s cubic-bezier(.2,.9,.3,1.2) slide-up;display:flex;overflow-y:auto}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}}.results h1{margin:0;font-size:44px;font-weight:900}.results.won h1{color:#fde047}.results.lost h1{color:#f87171}.xp-box{background:linear-gradient(135deg,#2e1065,#15151c);border-radius:16px;flex-direction:column;gap:8px;padding:14px;display:flex}.xp-head{justify-content:space-between;font-weight:800;display:flex}.xp-gain{color:#c4b5fd}.icon-btn{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;width:44px;height:44px;padding:0;font-size:20px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px;font-weight:700}.muted{color:var(--muted);text-align:center;margin:0}.small{font-size:12px}.p-top{top:calc(env(safe-area-inset-top) + 12px);align-items:center;gap:12px;display:flex;position:absolute;left:16px;right:16px}.p-title{background:var(--panel);border-radius:999px;padding:8px 14px;font-weight:700}.p-card{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;max-width:520px;margin:0 auto;padding:16px;position:absolute}.p-loading{text-align:center;color:var(--muted);margin:0}.checks{flex-direction:column;gap:10px;margin:0;padding:0;font-size:17px;font-weight:600;list-style:none;display:flex}.checks li{color:var(--muted);align-items:center;gap:10px;transition:color .2s;display:flex}.checks li.ok{color:var(--text)}.tick{border:2px solid #52525b;border-radius:50%;place-items:center;width:26px;height:26px;font-size:15px;transition:all .2s;display:grid}.checks li.ok .tick{border-color:var(--good);background:var(--good);color:#052e16}.hold-bar{background:#27272a;border-radius:999px;height:8px;overflow:hidden}.hold-bar span{background:var(--good);transform-origin:0;height:100%;transition:transform .15s linear;display:block}.countdown{color:#fff;text-shadow:0 6px 40px #0009;place-items:center;font-size:clamp(160px,50vw,320px);font-weight:900;animation:.9s ease-out pop;display:grid;position:absolute;inset:0}.timer{background:var(--panel);font-variant-numeric:tabular-nums;border-radius:999px;padding:8px 14px;font-size:20px;font-weight:700}.rep-count{pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;top:14%;left:0;right:0}.rep-value{font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 6px 40px #0000008c;font-size:clamp(120px,38vw,280px);font-weight:900;line-height:1;animation:.35s ease-out bump}.rep-label{letter-spacing:.16em;text-transform:uppercase;color:#ffffffd9;text-shadow:0 2px 12px #0009;font-size:18px;font-weight:700}.banner{left:16px;right:16px;top:calc(env(safe-area-inset-top) + 68px);background:var(--panel);text-align:center;border-radius:14px;max-width:520px;margin:0 auto;padding:12px 16px;font-weight:600;position:absolute}.banner.warn{background:#dc2626e6;font-size:20px}.p-bottom{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);max-width:520px;margin:0 auto;position:absolute}.finish{border-radius:16px;width:100%;padding:18px;font-size:18px}.guide-head{align-items:center;gap:14px;display:flex}.guide-head h1{letter-spacing:-.01em;margin:2px 0 0;font-size:34px;font-weight:900}.badge{color:var(--good);background:#4ade8026;border-radius:999px;align-self:center;padding:8px 16px;font-weight:700}.stat-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.stat{background:#15151c;border:1px solid #26262f;border-radius:16px;flex-direction:column;gap:2px;padding:14px;display:flex}.stat span{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.stat small{color:var(--muted);font-size:12px}.summary-actions{gap:8px;margin-top:8px;display:grid}.sync{text-align:center;margin:0}.sync.saved{color:var(--good);font-weight:700}.account{max-width:520px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;gap:16px;margin:0 auto;display:flex;position:fixed;inset:0;overflow-y:auto}.profile-card{background:linear-gradient(135deg,#2e1065,#15151c);border:1px solid #3b2a6b;border-radius:18px;align-items:center;gap:14px;padding:14px;display:flex}.profile-card .player-level,.profile-chip .chip-level{text-align:center;background:#7c3aed;border-radius:16px;flex:none;place-content:center;display:grid}.profile-card .player-level{width:64px;height:64px}.profile-card .player-level small{text-transform:uppercase;letter-spacing:.1em;font-size:10px}.profile-card .player-level b{font-size:28px;line-height:1}.profile-text{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-text b{font-size:20px}.profile-text .muted{text-align:left;overflow-wrap:anywhere;font-size:12px}.panel{background:#15151c;border:1px solid #26262f;border-radius:18px;flex-direction:column;gap:10px;padding:16px;display:flex}.panel h2{margin:0;font-size:18px}.panel label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.panel input{font:inherit;color:var(--text);background:#0b0b10;border:1px solid #3f3f46;border-radius:12px;padding:12px;font-size:16px}.muted.left{text-align:left}.profile-chip{background:#15151c;border:1px solid #26262f;border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 6px;font-size:14px;font-weight:700;display:flex}.profile-chip .chip-level{border-radius:50%;width:34px;height:34px;font-size:15px}.home{max-width:520px;padding:calc(env(safe-area-inset-top) + 24px) 16px calc(env(safe-area-inset-bottom) + 24px);background:radial-gradient(90% 40% at 100% 0%, #ea580c2e, transparent 70%), radial-gradient(70% 35% at 0% 30%, #7c3aed1f, transparent 70%), var(--bg);flex-direction:column;gap:14px;margin:0 auto;display:flex;position:fixed;inset:0;overflow-y:auto}.home .eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:11px;font-weight:700}.home-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.logo{letter-spacing:.04em;margin:0;font-size:34px;font-weight:900}.logo span{color:var(--accent)}.install-hint{background:linear-gradient(135deg,#ea580c33,#15151ce6);border:1px solid #fb923c59;border-radius:16px;align-items:center;gap:12px;padding:12px 12px 12px 14px;display:flex}.install-icon{font-size:24px}.install-text{flex-direction:column;flex:1;gap:2px;font-size:14px;display:flex}.install-text small{color:var(--muted);font-size:12px}.install-text small b{color:var(--text)}.install-btn{padding:8px 14px}.install-x{color:var(--muted);background:0 0;padding:4px 8px;font-size:20px;line-height:1}.hero{background:#15151c;border:1px solid #26262f;border-radius:22px;align-items:center;gap:16px;padding:16px;display:flex}.level-ring{flex:none;width:84px;height:84px}.ring-track,.ring-fill{fill:none;stroke-width:8px}.ring-track{stroke:#27272a}.ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .8s ease-out}.ring-text{fill:var(--text);font-size:26px;font-weight:900}.hero-body{flex-direction:column;gap:6px;min-width:0;display:flex}.hero-xp{color:var(--muted);font-size:14px}.hero-xp b{color:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.hero-chips{flex-wrap:wrap;gap:6px;display:flex}.streak,.hero-total{color:var(--muted);background:#27272a;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.streak.on{color:#fdba74;background:#fb923c2e}.streak.risk{outline:1px dashed #fb923c}.risk-note{color:#fdba74;font-size:12px}.daily{background:#15151c;border:1px solid #26262f;border-radius:22px;flex-direction:column;gap:10px;padding:16px;display:flex}.daily-head{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.daily-count{color:var(--muted);font-size:14px}.daily-count b{color:var(--text);font-variant-numeric:tabular-nums;font-size:26px;font-weight:900}.daily-count .done{color:var(--good);margin-left:4px;font-weight:700}.goal-btn{background:#27272a;border:1px solid #3f3f46;border-radius:999px;padding:6px 12px;font-size:12px}.daily-bar{background:#27272a;border-radius:999px;height:10px;overflow:hidden}.daily-bar span{transform-origin:0;background:linear-gradient(90deg,#f97316,#fb923c);height:100%;transition:transform .6s ease-out;display:block}.daily-bar span.done{background:linear-gradient(90deg,#22c55e,#4ade80)}.week{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:4px;display:grid}.week-day{flex-direction:column;align-items:center;gap:4px;display:flex}.week-col{background:#1c1c24;border-radius:8px;align-items:flex-end;width:100%;height:48px;display:flex;overflow:hidden}.week-col span{background:#7c2d12;border-radius:8px 8px 0 0;width:100%}.week-col span.hit{background:#ea580c}.week-day small{color:var(--muted);font-size:11px}.week-day.today small{color:var(--text);font-weight:800}.week-day.today .week-col{outline:1px solid #3f3f46}.modes{flex-direction:column;gap:12px;display:flex}.mode{text-align:left;border:1px solid #ffffff14;border-radius:22px;flex-direction:column;align-items:flex-start;gap:6px;min-height:124px;padding:18px 20px;transition:transform .12s ease-out;display:flex;position:relative;overflow:hidden}.mode:active{transform:scale(.98)}.mode-art{opacity:.28;pointer-events:none;font-size:92px;position:absolute;bottom:-14px;right:-6px;transform:rotate(-12deg)}.mode-practice{background:radial-gradient(120% 140% at 100% 0,#f97316 0%,#c2410c 45%,#431407 100%)}.mode-slayer{background:radial-gradient(120% 140% at 100% 0,#7c3aed 0%,#3b0764 55%,#1e1b2e 100%)}.mode-arena{background:radial-gradient(120% 140% at 100% 0,#0ea5e9 0%,#075985 50%,#0c1a2b 100%)}.mode-tag{letter-spacing:.08em;text-transform:uppercase;background:#0000004d;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700}.mode-name{font-size:26px;font-weight:900}.mode-desc{color:#ffffffd9;max-width:80%;font-size:14px;font-weight:500}.trophy-row{text-align:left;background:#15151c;border:1px solid #26262f;border-radius:18px;align-items:center;gap:10px;padding:14px 16px;font-size:15px;display:flex}.trophy-title{align-items:center;gap:8px;font-weight:800;display:flex}.new-dot{background:var(--accent-strong);border-radius:999px;padding:2px 8px;font-size:11px}.trophy-icons{flex:1;justify-content:flex-end;gap:2px;font-size:18px;display:flex;overflow:hidden}.trophy-count{color:var(--muted);font-variant-numeric:tabular-nums}.lab-link{color:#52525b;background:0 0;align-self:center;margin-top:auto;padding:8px 14px;font-size:12px;text-decoration:underline}.board-page{max-width:560px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);background:radial-gradient(90% 40% at 50% 0%, #0ea5e929, transparent 70%), var(--bg);flex-direction:column;gap:14px;margin:0 auto;display:flex;position:fixed;inset:0;overflow-y:auto}.board-head{align-items:center;gap:12px;display:flex}.board-head h1{margin:0;font-size:32px;font-weight:900}.name-nudge{color:var(--text);text-align:left;background:#0ea5e91f;border:1px solid #38bdf859;border-radius:14px;padding:12px 14px;font-weight:500}.name-nudge b{color:#7dd3fc}.lb{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lb-row{background:#15151c;border:1px solid #26262f;border-radius:14px;align-items:center;gap:12px;padding:12px 16px;display:flex}.lb-row.me{background:#0ea5e91f;border-color:#38bdf8}.lb-row.top-1{background:linear-gradient(90deg,#facc152e,#15151c 70%);border-color:#facc1566}.lb-rank{text-align:center;width:2em;color:var(--muted);font-variant-numeric:tabular-nums;font-size:18px;font-weight:900}.lb-row.top .lb-rank{font-size:22px}.lb-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.lb-name small{color:var(--muted);font-weight:500}.lb-reps{font-variant-numeric:tabular-nums;font-size:20px;font-weight:900}.lb-gap{text-align:center;color:var(--muted)}.board-page .panel p{text-align:left}.practice{background:var(--bg);position:fixed;inset:0;overflow:hidden}.hidden{visibility:hidden}.guide{max-width:520px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;gap:20px;margin:0 auto;display:flex;position:absolute;inset:0;overflow-y:auto}.steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.steps li{background:#15151c;border:1px solid #26262f;border-radius:18px;align-items:center;gap:14px;padding:14px;display:flex}.step-icon{background:#fb923c1f;border-radius:14px;flex:none;place-items:center;width:56px;height:56px;display:grid}.step-icon svg{fill:none;width:36px;height:36px;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.steps h2{align-items:center;gap:8px;margin:0 0 4px;font-size:16px;display:flex}.step-n{background:var(--accent-strong);border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;display:inline-grid}.steps p{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.settings{background:#15151c;border:1px solid #26262f;border-radius:16px;padding:4px 14px}.settings summary{cursor:pointer;color:var(--muted);padding:10px 0;font-weight:600}.settings label{color:var(--muted);flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.summary{max-width:520px;padding:calc(env(safe-area-inset-top) + 32px) 16px calc(env(safe-area-inset-bottom) + 24px);text-align:center;flex-direction:column;align-items:stretch;gap:16px;margin:0 auto;display:flex;position:absolute;inset:0;overflow-y:auto}.big-reps{flex-direction:column;align-items:center;display:flex}.big-reps span{font-variant-numeric:tabular-nums;font-size:120px;font-weight:900;line-height:1}.big-reps small{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:16px;font-weight:700}.rep-chart{background:#15151c;border:1px solid #26262f;border-radius:16px;padding:14px}.chart-label{color:var(--muted);text-align:left;margin:0 0 10px;font-size:12px}.bars{align-items:flex-end;gap:3px;height:80px;display:flex}.bars span{background:var(--accent);border-radius:4px 4px 0 0;flex:1;max-width:24px}.trophies{max-width:560px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);background:radial-gradient(90% 40% at 50% 0%, #facc151f, transparent 70%), var(--bg);flex-direction:column;gap:16px;margin:0 auto;display:flex;position:fixed;inset:0;overflow-y:auto}.trophies-head{align-items:center;gap:12px;display:flex}.trophies-head>div:nth-child(2){flex:1}.trophies-head h1{margin:0;font-size:32px;font-weight:900}.trophies-head h1 span{color:var(--muted);font-size:20px}.best-streak{flex-direction:column;align-items:flex-end;display:flex}.best-streak b{font-size:20px}.best-streak small{color:var(--muted);font-size:11px}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.trophy{text-align:center;background:#15151c;border:1px solid #26262f;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:16px 10px 14px;display:flex;position:relative}.trophy b{font-size:14px}.trophy small{color:var(--muted);font-size:12px;line-height:1.3}.trophy-icon{border-radius:50%;place-items:center;width:58px;height:58px;margin-bottom:4px;font-size:30px;display:grid}.trophy.got.bronze .trophy-icon{background:radial-gradient(circle at 30% 30%,#fdba74,#9a3412);box-shadow:0 0 18px #ea580c66}.trophy.got.silver .trophy-icon{background:radial-gradient(circle at 30% 30%,#f4f4f5,#52525b);box-shadow:0 0 18px #e4e4e74d}.trophy.got.gold .trophy-icon{background:radial-gradient(circle at 30% 30%,#fde68a,#a16207);box-shadow:0 0 22px #facc1573}.trophy.got.gold{border-color:#facc1566}.trophy.locked .trophy-icon{filter:grayscale();opacity:.45;background:#1f1f27}.trophy.locked b{color:var(--muted)}.trophy-new{background:var(--accent-strong);text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800;animation:.6s ease-out trophy-pop;position:absolute;top:8px;right:8px}@keyframes trophy-pop{0%{transform:scale(.4)}70%{transform:scale(1.15)}}.trophy-progress{background:#27272a;border-radius:999px;width:100%;height:16px;margin-top:6px;position:relative;overflow:hidden}.trophy-progress span{transform-origin:0;background:#7c2d12;position:absolute;inset:0}.trophy-progress em{font-size:11px;font-style:normal;font-weight:700;line-height:16px;position:relative}
