:root{--bg-0: #0a0a1a;--bg-1: #131334;--panel: rgba(28, 28, 60, .55);--panel-border: rgba(140, 150, 220, .22);--text: #e8ecff;--text-dim: #9aa0c8;--accent: #8a5cf0;--accent-2: #3fd6e8;--radius: 16px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:calc(16px * var(--font-scale, 1))}html,body{margin:0;height:100%;background:radial-gradient(60% 40% at 18% 12%,rgba(123,59,255,.18),transparent 70%),radial-gradient(50% 38% at 85% 78%,rgba(63,214,232,.14),transparent 70%),radial-gradient(45% 35% at 75% 8%,rgba(255,95,208,.12),transparent 70%),radial-gradient(circle at 50% -10%,var(--bg-1),var(--bg-0) 60%);color:var(--text);font-family:Jua,Pretendard,system-ui,-apple-system,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,sans-serif;overflow:hidden;touch-action:manipulation}.hero h1,.big-score,.combo-pop{font-family:Black Han Sans,Jua,sans-serif}.no-starfield #starfield{display:none}.no-glow .panel{backdrop-filter:none;-webkit-backdrop-filter:none;background:#181834eb}.no-glow .tile-circle,.no-glow .gauge-fill,.no-glow .swatch circle{filter:none!important;box-shadow:none!important}.high-contrast{--text: #ffffff;--text-dim: #c9cdf0;--panel: rgba(18, 18, 42, .96);--panel-border: rgba(200, 210, 255, .55)}.high-contrast .tile-label{stroke:#000;stroke-width:3px}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reduce-motion #starfield{animation:none}#app{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;align-items:center;padding:calc(12px + var(--safe-top)) 12px calc(12px + var(--safe-bottom))}#starfield{position:fixed;inset:0;z-index:0;background-image:radial-gradient(1px 1px at 20% 30%,#fff8,transparent),radial-gradient(1px 1px at 70% 60%,#fff6,transparent),radial-gradient(1.5px 1.5px at 40% 80%,#cfe4ff8c,transparent),radial-gradient(1px 1px at 85% 20%,#fff5,transparent),radial-gradient(1px 1px at 55% 15%,#fff4,transparent),radial-gradient(1.5px 1.5px at 10% 70%,#b9c8ff7a,transparent);background-repeat:repeat;background-size:400px 400px;animation:drift 90s linear infinite;opacity:.7}@keyframes drift{0%{background-position:0 0}to{background-position:400px 800px}}.screen{width:100%;max-width:480px;flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;align-self:stretch}.topbar-left,.topbar-right{display:flex;align-items:center;gap:8px}.stardust{font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;color:#ffe69a;white-space:nowrap}.sd-icon{color:#ffd54a}.brand{display:flex;flex-direction:column}.brand h1{margin:0;font-size:1.1rem;letter-spacing:.5px;background:linear-gradient(90deg,var(--accent-2),var(--accent),#ff5fd0);-webkit-background-clip:text;background-clip:text;color:transparent}.brand p{margin:0;font-size:.68rem;color:var(--text-dim)}.char-chip{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;border:1px solid var(--panel-border);border-radius:999px;background:#ffffff0a;cursor:pointer;transition:background .15s ease,border-color .15s ease}.char-chip:hover{background:#ffffff17;border-color:var(--accent)}.char-avatar{display:flex;width:40px;height:40px;flex:0 0 40px;align-items:center;justify-content:center}.char-avatar .swatch{width:40px;height:40px}.char-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}.char-name{font-size:.92rem;font-weight:700;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-lv{font-size:.66rem;font-weight:700;letter-spacing:.4px;color:var(--accent-2)}.profile-modal{width:min(420px,92vw)}.profile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.profile-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid var(--panel-border);border-radius:12px;background:#ffffff08;cursor:pointer;transition:border-color .15s ease,background .15s ease}.profile-cell:hover:not(.locked){border-color:var(--accent);background:#ffffff14}.profile-cell.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.profile-cell.locked{opacity:.4;cursor:not-allowed}.profile-cell .pc-art{display:flex;width:46px;height:46px;align-items:center;justify-content:center;font-size:1.5rem}.profile-cell .pc-name{font-size:.6rem;color:var(--text-dim);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.profile-btn{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid var(--panel-border);border-radius:999px;background:#ffffff0a;cursor:pointer;font-size:.85rem}.profile-btn:hover{border-color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.hud{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px}.stat{display:flex;flex-direction:column;gap:2px}.stat .k{font-size:.6rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim)}.stat .v{font-size:1.15rem;font-variant-numeric:tabular-nums;font-weight:700}.next-queue{display:flex;align-items:center;gap:6px}.next-queue .q{display:flex;gap:4px;align-items:center}.next-queue .q .swatch:first-child{outline:2px solid var(--accent-2);border-radius:50%}.home{align-items:center}.home-bg{position:fixed;inset:0;z-index:0;background:url(/bg-home.jpg) center top / cover no-repeat;animation:bgFloat 40s ease-in-out infinite alternate}.home-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0a0a1a8c,#0a0a1a33 26%,#0a0a1a59 58%,#0a0a1ac7)}@keyframes bgFloat{0%{background-position:center top}to{background-position:center 12%}}body.home-active #starfield{display:none}.hero{text-align:center;margin-top:8vh}.hero h1{margin:10px 0 4px;font-size:2.1rem;background:linear-gradient(90deg,var(--accent-2),var(--accent),#ff5fd0);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 10px rgba(10,10,26,.9))}.hero p{margin:0;color:#d8def8;font-size:.85rem;text-shadow:0 1px 6px rgba(10,10,26,.9)}.home-menu{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;margin-top:6vh}.menu-btn{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;font-size:1.1rem;font-weight:700;border-radius:16px;border:none;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}.menu-btn:hover{filter:brightness(1.08)}.menu-btn.m-campaign{background:linear-gradient(100deg,#7a4df0,#a772ff);box-shadow:0 6px 18px -8px #8a5cf0d9}.menu-btn.m-daily{background:linear-gradient(100deg,#e57a26,#f2ad34);box-shadow:0 6px 18px -8px #f2ad34bf}.menu-btn.m-endless{background:linear-gradient(100deg,#1f93b3,#36c2dc);box-shadow:0 6px 18px -8px #36c2dcbf}.col-pick{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 6px}.col-pick-label{font-size:.85rem;font-weight:600;color:var(--text-dim)}.menu-btn small{font-size:.7rem;font-weight:600;opacity:.85}.home-icons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:320px;margin-top:14px}.icon-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;border-radius:14px;position:relative}.icon-tile .it-icon{font-size:1.4rem;display:inline-flex;color:var(--accent-2)}.icon-tile .it-icon svg{width:27px;height:27px}.icon-tile .it-label{font-size:.62rem;color:var(--text-dim)}.icon-tile small{position:absolute;top:4px;right:6px;font-size:.6rem;background:var(--accent);border-radius:8px;padding:0 5px;font-weight:700}.leaderboard{overflow-y:auto}.lb-tabs{display:flex;gap:8px}.lb-tab{flex:1}.lb-tab.active{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-color:transparent;font-weight:700}.lb-periods{display:flex;gap:6px;margin-top:8px}.lb-periods.hidden{display:none}.lb-period{flex:1;padding:6px 4px;font-size:.85em}.lb-period.active{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-color:transparent;font-weight:700}.lb-body{margin-top:12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.lb-local{display:flex;justify-content:space-between;padding:10px 14px;background:var(--panel);border:1px solid var(--accent);border-radius:12px;font-weight:700}.lb-list{display:flex;flex-direction:column;gap:4px}.lb-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:10px 14px;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px}.lb-row .lb-rank{font-weight:800;color:var(--text-dim);text-align:center}.lb-row.top1 .lb-rank{color:#ffd54a}.lb-row.top2 .lb-rank{color:#cfd3da}.lb-row.top3 .lb-rank{color:#e8a06b}.lb-row.me{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel))}.lb-row .lb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-row .lb-score{font-variant-numeric:tabular-nums;font-weight:700}.lb-loading,.lb-offline,.lb-empty{text-align:center;color:var(--text-dim);padding:24px}.achievements,.ach-body{overflow-y:auto}.mission-section{margin-bottom:18px}.mission-head{font-size:.95rem;font-weight:800;margin:4px 0 8px;color:var(--accent-2)}.login-card{display:flex;align-items:center;gap:12px;width:100%;padding:12px;margin-bottom:10px;border-radius:14px;background:radial-gradient(circle at 12% 30%,rgba(255,213,74,.18),var(--panel));border:1px solid rgba(255,213,74,.4);text-align:left;cursor:pointer}.login-card.claimed{opacity:.6;cursor:default}.login-icon{font-size:1.6rem}.login-info{display:flex;flex-direction:column;flex:1}.login-title{font-weight:800}.login-streak{font-size:.72rem;color:var(--text-dim)}.login-action .m-reward{font-size:.9rem;font-weight:800;color:#ffe69a}.mission-list{display:flex;flex-direction:column;gap:8px}.mission-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px}.mission-row.done{border-color:#3fd6e866}.mission-row.claimed{opacity:.55}.mission-row .m-icon{font-size:1.4rem;width:36px;text-align:center}.mission-row .m-info{display:flex;flex-direction:column;flex:1;gap:5px;min-width:0}.mission-row .m-name{font-size:.85rem;font-weight:700}.mission-row .m-bar{height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.mission-row .m-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent-2),var(--accent))}.mission-row .m-action{flex:0 0 auto}.mission-row .m-count{font-size:.78rem;font-weight:700;color:var(--text-dim);font-variant-numeric:tabular-nums}.mission-row .m-done{font-size:.78rem;font-weight:700;color:var(--text-dim)}.mission-row .m-claim{padding:6px 10px;font-size:.74rem;font-weight:800;white-space:nowrap}.ach-summary{text-align:center;color:var(--text-dim);font-size:.82rem;margin-bottom:10px}.ach-list{display:flex;flex-direction:column;gap:8px;padding-bottom:16px}.ach-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px}.ach-row.locked{opacity:.55}.ach-row.got{border-color:#ffd54a66}.ach-icon{font-size:1.5rem;width:40px;text-align:center}.ach-info{flex:1;min-width:0}.ach-name{display:block;font-weight:700;font-size:.9rem}.ach-desc{display:block;font-size:.7rem;color:var(--text-dim)}.ach-reward{font-size:.78rem;font-weight:700;color:#ffe69a}.toast-host{position:fixed;top:calc(12px + var(--safe-top));left:50%;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;gap:8px;width:min(360px,92vw);pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:#1c1c3cf2;border:1px solid rgba(255,213,74,.5);box-shadow:0 8px 24px #0006;transform:translateY(-80px);opacity:0;transition:transform .3s cubic-bezier(.2,1.4,.4,1),opacity .3s ease}.toast.show{transform:translateY(0);opacity:1}.toast-icon{font-size:1.6rem}.toast-text{flex:1;display:flex;flex-direction:column}.toast-title{font-size:.62rem;color:#ffd54a;text-transform:uppercase;letter-spacing:1px}.toast-name{font-weight:700;font-size:.9rem}.toast-reward{font-weight:700;color:#ffe69a;font-size:.85rem}.campaign{overflow-y:auto}.stage-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-bottom:12px}.chapter-header{font-size:.8rem;font-weight:700;color:var(--text-dim);letter-spacing:.5px;margin-top:6px}.stage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stage-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:16px;background:var(--panel);border:1px solid var(--panel-border)}.stage-cell .stage-id{font-size:1.3rem;font-weight:800}.stage-cell.locked{opacity:.5}.stage-stars .star{color:#fff3;font-size:.85rem}.stage-stars .star.on{color:#ffd54a;text-shadow:0 0 6px rgba(255,213,74,.6)}.settings{overflow-y:auto}.settings-body{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding-bottom:24px}.settings-section{display:flex;flex-direction:column;gap:8px}.settings-h{margin:4px 2px 0;font-size:.78rem;text-transform:uppercase;letter-spacing:1px;color:var(--accent-2)}.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px}.set-label{font-size:.86rem;flex-shrink:0}.switch{width:46px;height:26px;border-radius:999px;padding:0;background:#ffffff1f;border:1px solid var(--panel-border);position:relative;flex-shrink:0}.switch .knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .18s ease}.switch.on{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-color:transparent}.switch.on .knob{transform:translate(20px)}.segmented{display:flex;gap:2px;background:#ffffff0f;border-radius:10px;padding:2px;flex-wrap:wrap;justify-content:flex-end}.segmented .seg{padding:5px 10px;border:none;background:transparent;border-radius:8px;font-size:.78rem}.segmented .seg.active{background:linear-gradient(90deg,var(--accent),var(--accent-2));font-weight:700}.segmented .seg.locked{opacity:.4;cursor:not-allowed;font-size:.7rem}.slider{flex:1;max-width:160px;accent-color:var(--accent)}.sync-status{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text-dim);padding:4px 2px}.sync-status .dot{width:8px;height:8px;border-radius:50%;background:#888}.sync-status .dot.on{background:#5ce8a0;box-shadow:0 0 6px #5ce8a0}.set-btn-row{display:flex;gap:8px}.set-btn-row button{flex:1}button.danger{border-color:#ff5f7880;color:#ff8a9a}.backup-code{font-family:ui-monospace,monospace;font-size:1.1rem;letter-spacing:1px;word-break:break-all;background:#0000004d;border-radius:10px;padding:12px}.code-input{width:100%;padding:12px;border-radius:10px;background:#0000004d;border:1px solid var(--panel-border);color:var(--text);font-family:ui-monospace,monospace;font-size:1rem;text-align:center}.name-input{flex:1;min-width:0;max-width:60%;padding:8px 10px;border-radius:8px;background:#0000004d;border:1px solid var(--panel-border);color:var(--text);font-size:.95rem}.name-input:focus{outline:none;border-color:var(--accent)}.name-input:disabled{opacity:.6}.set-row.name-row{align-items:flex-start}.name-field{display:flex;flex:1;flex-direction:column;align-items:flex-end;gap:4px;min-width:0}.name-field .name-input{max-width:100%;width:100%}.name-status{font-size:.72rem;min-height:.9rem;text-align:right;color:var(--text-dim)}.name-status.checking{color:var(--text-dim)}.name-status.ok{color:#6ee7a8}.name-status.err{color:#ff7a8a}.info-block{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px}.info-row{display:flex;justify-content:space-between;font-size:.82rem;color:var(--text-dim)}.tile-label-name{font-size:18px}.skills{overflow-y:auto}.skills-body{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding-bottom:16px}.skill-graph{position:relative;display:flex;flex-direction:column;align-items:center}.skill-root{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 50% 30%,rgba(123,97,255,.35),var(--panel));border:1px solid var(--accent);z-index:2}.skill-root .root-core{font-size:1.7rem;color:var(--accent-2);filter:drop-shadow(0 0 8px var(--accent))}.skill-root:after{content:"";position:absolute;top:100%;left:50%;width:2px;height:18px;background:var(--panel-border);transform:translate(-50%)}.skill-branches{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;padding-top:18px}.skill-branches:before{content:"";position:absolute;top:0;left:16.66%;right:16.66%;height:2px;background:var(--panel-border)}.branch{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding-top:10px;align-self:start}.branch:before{content:"";position:absolute;top:-18px;left:50%;width:2px;bottom:24px;background:var(--panel-border);transform:translate(-50%);z-index:0}.branch-head{position:relative;z-index:1;align-self:center;font-size:.85rem;font-weight:800;letter-spacing:.5px;padding:4px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--panel-border)}.tree-growth .branch-head{color:#5ce8a0;border-color:#5ce8a066}.tree-power .branch-head{color:#f5c542;border-color:#f5c54266}.tree-economy .branch-head{color:#ffb35c;border-color:#ffb35c66}.branch-nodes{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px}.skill-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:8px;border-radius:12px;background:linear-gradient(var(--panel),var(--panel)),var(--bg-1);border:1px solid var(--panel-border)}.skill-node.maxed{border-color:#5ce8a066}.skill-head{display:flex;align-items:center;gap:6px;min-width:0}.skill-icon{font-size:1.1rem;width:26px;height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#ffffff0f}.skill-name{font-weight:700;font-size:.8rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis}.skill-level{font-size:.82rem;font-weight:800;color:var(--text);letter-spacing:.3px}.skill-level .lv-max{font-size:.66rem;font-weight:700;color:var(--text-dim)}.skill-desc{font-size:.62rem;line-height:1.25;color:var(--text-dim);word-break:keep-all}.skill-effect{font-size:.7rem;color:var(--accent-2);font-weight:700}.skill-buy{width:100%;padding:6px 4px;font-size:.8rem;font-weight:700}.skill-buy .maxed-tag{font-size:.72rem}.skill-buy:disabled{opacity:.4}.prestige{display:flex;flex-direction:column;gap:10px;padding:16px;text-align:center;border:1px solid rgba(255,95,208,.3)}.prestige-title{font-size:1.1rem;font-weight:800;background:linear-gradient(90deg,#ff5fd0,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.prestige-desc,.prestige-note{font-size:.72rem;color:var(--text-dim)}.prestige-stats{display:flex;justify-content:space-around}.prestige-stats .k{display:block;font-size:.6rem;color:var(--text-dim);text-transform:uppercase}.prestige-stats .v{font-size:1.2rem;font-weight:800}.objectives{display:flex;flex-direction:column;gap:6px;padding:10px 12px}.obj-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:.78rem}.obj-check{color:var(--text-dim)}.obj-row.done .obj-check,.obj-row.done .obj-label{color:#5ce8a0}.obj-count{font-variant-numeric:tabular-nums;color:var(--text-dim)}.obj-bar{grid-column:1 / -1;height:4px;border-radius:999px;background:#ffffff14;overflow:hidden}.obj-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .3s ease}.result-stars{display:flex;justify-content:center;gap:10px}.result-stars .rstar{font-size:2.6rem;color:#ffffff2e;transform:scale(.6)}.result-stars .rstar.on{color:#ffd54a;text-shadow:0 0 16px rgba(255,213,74,.7);animation:starPop .4s ease-out forwards;animation-delay:var(--d)}@keyframes starPop{0%{transform:scale(.2) rotate(-30deg);opacity:0}70%{transform:scale(1.25) rotate(8deg)}to{transform:scale(1) rotate(0);opacity:1}}.rewards{display:flex;justify-content:center;gap:16px;font-size:1.05rem;font-weight:700}.rewards .rw{color:#ffe69a}.modal-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.modal-btns button{flex:1;min-width:90px}.evo-ladder{display:flex;flex-direction:column;align-items:center;gap:2px}.evo-track{display:flex;align-items:center;justify-content:center;gap:3px;width:100%}.evo-cell{flex:1 1 0;max-width:30px;aspect-ratio:1;opacity:.28;filter:grayscale(.7);transition:opacity .25s ease,filter .25s ease,transform .2s ease;border-radius:50%}.evo-cell svg{width:100%;height:100%;display:block}.evo-cell.reached{opacity:1;filter:none}.evo-cell.current{transform:scale(1.18);box-shadow:0 0 0 2px var(--accent-2),0 0 10px #3fd6e8b3}.evo-name{font-size:.72rem;font-weight:700;letter-spacing:.5px;color:var(--accent-2);min-height:1em}.evo-ladder [class^=cm-]{animation:none!important}.gauge-row{display:flex;align-items:center;gap:8px;padding:0 4px}.gauge-row .k{font-size:.6rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);white-space:nowrap}.gauge{flex:1;height:10px;border-radius:999px;background:#ffffff14;border:1px solid var(--panel-border);overflow:hidden}.gauge-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--accent-2),var(--accent),#ff5fd0);box-shadow:0 0 10px #8a5cf099;transition:width .3s ease}.ability-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ability-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px}.ability-btn .ab-name{font-size:.8rem;font-weight:600}.ability-btn .ab-cost{font-size:.62rem;color:var(--text-dim)}.ability-btn:disabled{opacity:.4;cursor:not-allowed}.ability-btn.active{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-color:transparent}.ability-btn.active .ab-cost{color:#ffffffd9}.target-marker{fill:#3fd6e82e;stroke:var(--accent-2);stroke-width:3;pointer-events:none;animation:pulse 1s ease-in-out infinite}.board-wrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:0}.board-svg{width:100%;height:100%;max-height:100%;display:block;touch-action:none}.board-bg{fill:#12142c8c;stroke:#8c96dc38;stroke-width:2}.cell-back{fill:#ffffff0f;stroke:#ffffff17;stroke-width:1}.cell-blocked{fill:url(#blocked-hatch);stroke:#aab4eb73;stroke-width:1.5}.col-marker{fill:#8a5cf024;stroke:#8a5cf080;stroke-width:2;pointer-events:none}.tile{transition:opacity .18s ease}.tile-label{fill:#ffffffd9;font-size:26px;font-weight:700;pointer-events:none;paint-order:stroke;stroke:#00000040;stroke-width:2px}@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:scale(1)}}.tile-pop .tile-circle{animation:pop .22s ease-out}.tile-pop-strong .tile-circle{animation:pop .26s cubic-bezier(.2,1.5,.4,1)}.tile-art [class^=cm-]{transform-box:fill-box;transform-origin:center}@keyframes cmSpin{to{transform:rotate(360deg)}}@keyframes cmPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.9}}@keyframes cmPulseStrong{0%,to{transform:scale(.96);opacity:.92}50%{transform:scale(1.1);opacity:1}}@keyframes cmTwinkle{0%,to{opacity:.15;transform:scale(.7)}50%{opacity:1;transform:scale(1.1)}}.cm-spin-slow{animation:cmSpin 16s linear infinite}.cm-spin{animation:cmSpin 11s linear infinite}.cm-spin-med{animation:cmSpin 7s linear infinite}.cm-spin-fast{animation:cmSpin 2.4s linear infinite}.cm-pulse{animation:cmPulse 2.4s ease-in-out infinite}.cm-pulse-strong{animation:cmPulseStrong 1.8s ease-in-out infinite}.cm-twinkle{animation:cmTwinkle 1.8s ease-in-out infinite}:root[data-particles=off] .tile-art [class^=cm-]{animation:none!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.06);opacity:.92}}@keyframes fade{0%,to{opacity:1}50%{opacity:.8}}.anim-spin{animation:spin 8s linear infinite;transform-box:fill-box;transform-origin:center}.anim-spinFast{animation:spin 2.5s linear infinite;transform-box:fill-box;transform-origin:center}.anim-spiral{animation:spin 5s linear infinite;transform-box:fill-box;transform-origin:center}.anim-pulse{animation:pulse 2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.anim-fade{animation:fade 3s ease-in-out infinite}.anim-warp{animation:pulse 1.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.anim-beam,.anim-cosmos{animation:pulse 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.combo-pop{position:absolute;top:18%;left:50%;transform:translate(-50%);font-size:2rem;font-weight:800;pointer-events:none;background:linear-gradient(90deg,var(--accent-2),#ff5fd0);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 18px rgba(138,92,240,.5);animation:comboPop .9s ease-out forwards}@keyframes comboPop{0%{opacity:0;transform:translate(-50%) scale(.6)}25%{opacity:1;transform:translate(-50%) scale(1.15)}70%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-24px) scale(.95)}}.combo-pop.combo-big{font-size:2.6rem}.combo-pop.combo-epic{font-size:3.2rem;background:linear-gradient(90deg,#ffd83b,#ff5fd0,#3fd6e8);-webkit-background-clip:text;background-clip:text}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}@keyframes shakeHard{10%,90%{transform:translate(-2px,1px)}20%,80%{transform:translate(4px,-2px)}30%,50%,70%{transform:translate(-7px,2px)}40%,60%{transform:translate(7px,-1px)}}.shake{animation:shake .34s cubic-bezier(.36,.07,.19,.97)}.shake-hard{animation:shakeHard .36s cubic-bezier(.36,.07,.19,.97)}button{font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--panel-border);background:#ffffff0f;border-radius:12px;padding:8px 14px;transition:background .15s ease,transform .05s ease}button:hover{background:#ffffff1f}button:active{transform:scale(.97)}.btn-primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));border:none;font-weight:700}.icon-btn{min-width:44px;text-align:center}.icon-btn.icon-svg{display:inline-flex;align-items:center;justify-content:center;color:var(--text)}.icon-btn.icon-svg svg{width:22px;height:22px;display:block}.hint{text-align:center;font-size:.72rem;color:var(--text-dim);padding:2px}.modal-backdrop{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#050512a8;backdrop-filter:blur(4px);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{width:min(360px,88vw);padding:24px;text-align:center;display:flex;flex-direction:column;gap:14px;animation:pop .25s ease-out}.modal h2{margin:0;font-size:1.6rem}.modal .big-score{font-size:2.4rem;font-weight:800;font-variant-numeric:tabular-nums}.modal .sub{color:var(--text-dim);font-size:.85rem}.swatch{display:block}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}#starfield{animation:none}}
