@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/archivo-black-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hind;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/hind-latin-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hind;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/hind-latin-600.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hind;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/hind-latin-700.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sky-canvas:#f1f6ff;--sky-card:#fff;--sky-sunk:#e9f0fe;--sky-muted:#eaf0fd;--sky-border:#d7e0f1;--sky-stop-a:#ceebff;--sky-stop-b:#ede1ff;--ink-primary:#111e3b;--ink-secondary:#5c6a85;--ink-on-cobalt:#f9fcff;--ink-on-sunshine:#3e2100;--cobalt:#355cf8;--cobalt-deep:#1d36bd;--cobalt-soft:#d9e8ff;--sunshine:#fcc741;--sunshine-deep:#e8911e;--coral:#f75c61;--coral-deep:#c92f36;--coral-soft:#ffe1df;--mint:#23d091;--slate-obstacle:#c3cbd9;--slate-block:#d3cdd9;--rarity-common:#9298a5;--rarity-rare:#15bb77;--rarity-epic:#0082eb;--rarity-legendary:#913fd5;--rarity-glow-rare:0 0 20px #15bb7773;--rarity-glow-epic:0 0 24px #0082eb73;--rarity-glow-legendary:0 0 24px #913fd580;--surface-base:var(--sky-canvas);--surface-raised:var(--sky-card);--surface-overlay:var(--sky-card);--surface-sunk:var(--sky-sunk);--surface-muted:var(--sky-muted);--surface-scrim:#111e3b6b;--text-primary:var(--ink-primary);--text-secondary:var(--ink-secondary);--text-inverse:var(--ink-on-cobalt);--border-soft:#111e3b1a;--border-strong:#111e3b2e;--color-accent:var(--sunshine);--color-accent-ink:var(--ink-on-sunshine);--color-accent-deep:var(--sunshine-deep);--color-structure:var(--cobalt);--color-structure-ink:var(--ink-on-cobalt);--color-structure-deep:var(--cobalt-deep);--color-pop:var(--coral);--color-celebrate:var(--rarity-legendary);--color-hp-self:var(--cobalt);--color-hp-enemy:var(--coral);--color-energy:var(--sunshine-deep);--color-field-positive:var(--mint);--color-field-negative:var(--rarity-legendary);--color-cell-obstacle:var(--slate-obstacle);--color-cell-block:var(--slate-block);--color-warning:var(--sunshine-deep);--color-success:var(--mint);--color-danger:var(--coral-deep);--accent-wash:#fcc7412e;--accent-ring:#fcc7418c;--accent-glow:#e8911e52;--structure-wash:#355cf81a;--structure-ring:#355cf861;--energy-wash:#e8911e29;--energy-ring:#e8911e6b;--hex-ring:#913fd58c;--danger-wash:#f75c6124;--warn-ring:#e8911e99;--success-ring:#23d09199;--track-bg:#111e3b1a;--text-heading:var(--ink-primary);--shadow-card:0 1px 0 0 #ffffffe6 inset, 0 14px 30px -20px #111e3b66;--shadow-panel:0 1px 0 0 #ffffffd9 inset, 0 10px 24px -16px #111e3b59;--shadow-press-accent:0 5px 0 0 var(--sunshine-deep), 0 1px 0 0 #ffffff80 inset, 0 10px 20px -12px var(--sunshine-deep);--shadow-press-structure:0 5px 0 0 var(--cobalt-deep), 0 1px 0 0 #ffffff59 inset, 0 10px 20px -12px var(--cobalt-deep);--shadow-press-danger:0 5px 0 0 var(--coral-deep), 0 1px 0 0 #ffffff4d inset;--shadow-press-ghost:0 3px 0 0 var(--sky-border), 0 1px 0 0 #ffffffb3 inset;--player-a-tint:#355cf8;--player-a-ink:#1d36bd;--player-a-wash:#d9e8ff;--player-b-tint:#f75c61;--player-b-ink:#c92f36;--player-b-wash:#ffe1df;--board-bg:#e9f0fe;--board-cell:#fff;--board-seam:#d7e0f1;--font-display:"Archivo Black", "Arial Black", "Segoe UI", system-ui, sans-serif;--font-sans:"Hind", "Segoe UI", system-ui, sans-serif;--type-display-xl:400 38px/1.06 var(--font-display);--type-display-lg:400 26px/1.12 var(--font-display);--type-title:400 19px/1.24 var(--font-display);--type-body:400 16px/1.55 var(--font-sans);--type-body-sm:400 14px/1.45 var(--font-sans);--type-label:600 12px/1.2 var(--font-sans);--type-caption:500 11px/1.2 var(--font-sans);--type-num-hud:400 15px/1.2 var(--font-display);--type-num-timer:400 22px/1.1 var(--font-display);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-card:20px;--radius-control:14px;--radius-pill:999px;--target-min:44px;--target-action:56px;--layout-column-max:480px;--motion-tick:.12s;--motion-fast:.2s;--motion-beat:.3s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.2, .9, .3, 1.4);--safe-top:max(env(safe-area-inset-top,0px), var(--safe-top-floor,0px));--safe-bottom:max(env(safe-area-inset-bottom,0px), var(--safe-bottom-floor,0px));--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--tabbar-height:60px;--z-header:100;--z-overlay:200;--z-dialog:300;--z-gate:400;--z-blocking:500}:root[data-theme=dark]{--sky-canvas:#0e1934;--sky-card:#1b2844;--sky-sunk:#121e39;--sky-muted:#263454;--sky-border:#2b3a5c;--sky-stop-a:#1b2c55;--sky-stop-b:#2a2350;--ink-primary:#f1f5fe;--ink-secondary:#a4aec2;--cobalt:#507cff;--cobalt-soft:#263864;--coral-soft:#642627;--sunshine:#efbc3a;--border-soft:#ffffff1f;--border-strong:#fff3;--surface-scrim:#04081499;--track-bg:#ffffff1f;--board-bg:#121e39;--board-cell:#1b2844;--board-seam:#2b3a5c;--shadow-card:0 1px 0 0 #ffffff0f inset, 0 14px 30px -20px #000000b3;--shadow-panel:0 1px 0 0 #ffffff0d inset, 0 10px 24px -16px #0009}@media (prefers-reduced-motion:reduce){:root{--motion-tick:0s;--motion-fast:0s;--motion-beat:0s}}:root[data-reduced-motion=true]{--motion-tick:0s;--motion-fast:0s;--motion-beat:0s}.num{font-variant-numeric:tabular-nums}button{font:var(--type-body-sm);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-control);min-height:var(--target-min);padding:0 var(--space-4);cursor:pointer;box-shadow:var(--shadow-press-ghost);transition:transform var(--motion-tick) var(--ease-out), filter var(--motion-tick) var(--ease-out), box-shadow var(--motion-tick) var(--ease-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-weight:600}button:active:not(:disabled){box-shadow:0 0 0 0 var(--sky-border), 0 1px 0 0 #ffffffb3 inset;transform:translateY(3px)}button:disabled{opacity:.45;cursor:default;box-shadow:none}button.primary{background:var(--color-accent);color:var(--color-accent-ink);box-shadow:var(--shadow-press-accent);font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;border:none}button.primary:active:not(:disabled){box-shadow:0 2px 0 0 var(--sunshine-deep)}button.primary:not(:disabled):hover{filter:brightness(1.04)}button.structure{background:var(--color-structure);color:var(--color-structure-ink);box-shadow:var(--shadow-press-structure);font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;border:none}button.structure:active:not(:disabled){box-shadow:0 2px 0 0 var(--cobalt-deep)}button.danger{background:var(--coral);color:#fff;box-shadow:var(--shadow-press-danger);font-family:var(--font-display);text-transform:uppercase;border:none}button.danger:active:not(:disabled){box-shadow:0 2px 0 0 var(--coral-deep)}select,input,textarea{font:var(--type-body-sm);color:var(--text-primary);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-control);min-height:var(--target-min);padding:0 var(--space-3);accent-color:var(--color-structure)}textarea{padding:var(--space-2) var(--space-3);min-height:unset}h1,h2,h3{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em}.panel{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-4)}.panel-sunk{background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-card)}.section-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);margin:var(--space-5) 0 var(--space-3);font-size:13px}.divider{background:var(--border-soft);height:1px;margin:var(--space-3) 0;border:0}.pill{min-height:32px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--surface-sunk);border:1px solid var(--border-soft);font:var(--type-body-sm);color:var(--text-primary);align-items:center;gap:6px;font-weight:700;display:inline-flex}.pill.accent{background:var(--accent-wash);border-color:var(--accent-ring)}.track{border-radius:var(--radius-pill);background:var(--track-bg);width:100%;height:8px;overflow:hidden}.track>.fill{border-radius:var(--radius-pill);background:var(--color-structure);height:100%;transition:width var(--motion-beat) var(--ease-out)}.track>.fill.accent{background:var(--color-accent)}.track>.fill.success{background:var(--color-success)}.track>.fill.danger{background:var(--color-hp-enemy)}.rarity-common{--rarity:var(--rarity-common)}.rarity-rare{--rarity:var(--rarity-rare)}.rarity-epic{--rarity:var(--rarity-epic)}.rarity-legendary{--rarity:var(--rarity-legendary)}.rarity-chip{border-radius:var(--radius-pill);font:var(--type-caption);text-transform:uppercase;letter-spacing:.04em;color:var(--rarity,var(--rarity-common));background:color-mix(in srgb, var(--rarity,var(--rarity-common)) 15%, transparent);padding:2px 8px;font-weight:700;display:inline-block}.rarity-ring{box-shadow:0 0 0 2px color-mix(in srgb, var(--rarity,var(--rarity-common)) 55%, transparent)}.safe-top{padding-top:max(var(--safe-top), var(--space-2))}.safe-bottom{padding-bottom:max(var(--safe-bottom), var(--space-2))}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.edge-fade-x{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 16px calc(100% - 26px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 16px calc(100% - 26px),#0000 100%)}@keyframes rune-land{0%{opacity:0;transform:scale(.35)rotate(-14deg)}60%{opacity:1;transform:scale(1.16)rotate(4deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes rune-pop{0%{opacity:0;transform:scale(.3)rotate(-16deg)}70%{opacity:1;transform:scale(1.12)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes detonate-flash{0%{filter:brightness();transform:scale(1)}45%{filter:brightness(1.7);transform:scale(1.22)}to{filter:brightness();transform:scale(1)}}@keyframes shockwave{0%{opacity:.75;transform:scale(.4)}to{opacity:0;transform:scale(2.4)}}@keyframes connection-sweep{0%{opacity:0;transform:translate(-120%)}25%{opacity:1}to{opacity:0;transform:translate(220%)}}@keyframes board-shake{0%,to{transform:translate(0,0)}15%{transform:translate(-5px,2px)rotate(-.35deg)}35%{transform:translate(5px,-2px)rotate(.35deg)}55%{transform:translate(-3px,1px)}80%{transform:translate(2px,-1px)}}@keyframes number-float{0%{opacity:0;transform:translate(-50%)scale(.6)}20%{opacity:1;transform:translate(-50%,-10px)scale(1.15)}to{opacity:0;transform:translate(-50%,-74px)scale(.9)}}@keyframes callout-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}25%{opacity:1;transform:translate(-50%,-50%)scale(1.12)}70%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-76%)scale(.96)}}@keyframes edge-pulse{0%{opacity:0}25%{opacity:1}to{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}@keyframes float-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes sheen{0%{transform:translate(-140%)skew(-18deg)}55%,to{transform:translate(240%)skew(-18deg)}}@keyframes holo-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.rise-in{animation:rise-in var(--motion-beat) var(--ease-out) both}.float-soft{animation:4.5s ease-in-out infinite float-soft}.sheen{position:relative;overflow:hidden}.sheen:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff73,#0000);width:45%;animation:4.2s ease-in-out infinite sheen;position:absolute;inset:0}.holo-foil{position:relative;overflow:hidden}.holo-foil:after{content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,#0000 20%,#ffffff8c 45%,#913fd559 50%,#355cf84d 55%,#0000 80%) 0 0/250% 100%;animation:4s ease-in-out infinite holo-shimmer;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.holo-foil:after,.sheen:after,.float-soft{animation:none}.rise-in{animation-duration:.001ms}}:root[data-reduced-motion=true] .holo-foil:after,:root[data-reduced-motion=true] .sheen:after,:root[data-reduced-motion=true] .float-soft{animation:none}:root[data-reduced-motion=true] .rise-in{animation-duration:.001ms}:root{font:var(--type-body);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text-primary);background-color:var(--surface-base);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(var(--structure-wash) 1px, transparent 1px), radial-gradient(120% 70% at 12% -8%, var(--sky-stop-a) 0%, transparent 60%), radial-gradient(110% 60% at 92% 0%, var(--sky-stop-b) 0%, transparent 55%);background-repeat:repeat,no-repeat,no-repeat;background-size:22px 22px,auto,auto;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 0% 45%,#0000 85%);mask-image:linear-gradient(#000 0% 45%,#0000 85%)}#root{flex-direction:column;min-height:100svh;display:flex}body{overscroll-behavior-y:none;-webkit-user-select:none;user-select:none;margin:0}input,textarea{-webkit-user-select:text;user-select:text}p{margin:0}.glyph-icon{--glyph-size:28px;inline-size:var(--glyph-size);block-size:var(--glyph-size);background:linear-gradient(180deg, color-mix(in srgb, var(--glyph-tint) 5%, var(--surface-raised)) 0%, color-mix(in srgb, var(--glyph-tint) 13%, var(--surface-raised)) 100%);border:1px solid color-mix(in srgb, var(--glyph-tint) 28%, var(--border-soft));box-shadow:0 1px 2px -1px var(--border-strong);color:var(--glyph-tint);vertical-align:middle;border-radius:32%;flex:none;place-items:center;display:inline-grid}.glyph-icon svg{block-size:66%;inline-size:66%;display:block}.glyph-icon.hero{border-radius:26%}.match{width:100%;max-width:var(--layout-column-max);flex-direction:column;margin:0 auto;display:flex}.match.menu-mode,.match.ended-mode{gap:var(--space-3);padding:calc(var(--space-3) + var(--safe-top)) var(--space-3) var(--space-3)}.match.live-mode{--match-shell-chrome:calc(56px + var(--tabbar-height) + var(--safe-bottom) + var(--safe-top));height:calc(100dvh - var(--match-shell-chrome));background:var(--surface-base);padding:0;overflow:hidden}.match-topzone,.match-bottomzone{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.match.live-mode .match-topzone{padding:var(--space-2) var(--space-2) 0;flex:none}.match.live-mode .match-bottomzone{overscroll-behavior:contain;scrollbar-width:none;min-height:0;max-height:62dvh;padding:0 var(--space-2) var(--space-2);flex:none;overflow-y:auto}.match.live-mode .match-bottomzone::-webkit-scrollbar{display:none}.match .error{color:var(--color-danger);font:var(--type-body-sm);padding:var(--space-3)}.boot-note{color:var(--text-secondary);font:var(--type-body-sm);text-align:center;padding:var(--space-4)}.match.menu-mode .board-region,.match.menu-mode .match-topzone{display:none}.board-region{min-width:0;min-height:0;display:flex;position:relative}.match.live-mode .board-region{padding:var(--space-2);flex:1 1 0}.match.ended-mode .board-region{height:30dvh}.board-wrap{flex:auto;place-items:center;min-width:0;min-height:0;line-height:0;display:grid;position:relative}.match.ended-mode .board-wrap:after{content:"";background:var(--surface-scrim);border-radius:var(--radius-card);pointer-events:none;position:absolute;inset:0}.board-mount{justify-content:center;align-items:center;line-height:0;display:flex;position:absolute;inset:0}.board-mount canvas{border-radius:var(--radius-card);display:block;width:auto!important;max-width:100%!important;height:auto!important;max-height:100%!important}.rail{gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;display:grid}.rail-side{display:contents}.rail-side.self{--rail-tint:var(--player-a-tint);--rail-ink:var(--player-a-ink);--rail-wash:var(--player-a-wash)}.rail-side.opponent{--rail-tint:var(--player-b-tint);--rail-ink:var(--player-b-ink);--rail-wash:var(--player-b-wash)}.rail-card{min-width:0;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-control);transition:background var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);align-items:center;gap:6px;display:flex}.rail-side.self .rail-card{grid-area:1/1}.rail-side.opponent .rail-card{text-align:right;flex-direction:row-reverse;grid-area:1/3}.rail-side.active .rail-card{background:var(--rail-wash);box-shadow:inset 0 0 0 2px var(--rail-tint), var(--shadow-panel)}.rail-side.active .ability-cd,.rail-side.active .hp-max,.rail-side.active .bar-num,.rail-side.active .bar-label{color:var(--text-primary)}.rail-side.muted{padding:var(--space-2);background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:var(--radius-control);font:var(--type-body-sm);color:var(--text-secondary);display:block}.rail-avatar{border-radius:var(--radius-control);background:var(--rail-wash);width:32px;height:32px;box-shadow:inset 0 0 0 2px var(--rail-tint);flex:none;position:relative}.rail-rune-badge{border-radius:var(--radius-pill);background:var(--rail-ink);border:2px solid var(--surface-raised);width:15px;height:15px;position:absolute;bottom:-4px;right:-4px}.rail-body{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.rail-head{align-items:center;gap:var(--space-1);min-width:0;display:flex}.rail-side.opponent .rail-head,.rail-side.opponent .rail-foot{flex-direction:row-reverse}.hero-name{font-family:var(--font-display);color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;line-height:1.2;overflow:hidden}.rail-foot{align-items:center;gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.dc-badge{font:var(--type-caption);color:var(--text-primary);background:var(--accent-wash);border:1px solid var(--warn-ring);border-radius:var(--radius-pill);white-space:nowrap;padding:0 6px}.ability-cd{font:var(--type-caption);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hp-row{align-items:center;gap:var(--space-1);display:flex}.rail-side.opponent .hp-row{flex-direction:row-reverse}.hp-track{border-radius:var(--radius-pill);background:var(--track-bg);flex:auto;min-width:0;height:10px;position:relative;overflow:hidden}.hp-ghost,.hp-fill{border-radius:var(--radius-pill);position:absolute;top:0;bottom:0;left:0}.hp-fill{background:var(--rail-tint);transition:width var(--motion-fast) var(--ease-out)}.hp-ghost{background:color-mix(in srgb, var(--rail-tint) 45%, transparent);transition:width var(--motion-beat) var(--ease-out) var(--motion-beat)}.rail-side.opponent .hp-ghost,.rail-side.opponent .hp-fill{left:auto;right:0}.hp-num{font:var(--type-num-hud);color:var(--text-primary);flex:none;font-size:13px}.hp-max{font:var(--type-caption);color:var(--text-secondary)}.energy-row,.bar-row{align-items:center;gap:var(--space-1);display:flex}.rail-side.opponent .energy-row,.rail-side.opponent .bar-row{flex-direction:row-reverse}.bar-label{font:var(--type-label);letter-spacing:.1em;color:var(--text-secondary);flex:none}.bar-track{border-radius:var(--radius-pill);background:var(--track-bg);flex:auto;min-width:0;height:6px;overflow:hidden}.bar-fill{border-radius:var(--radius-pill);height:100%;transition:width var(--motion-fast) var(--ease-out)}.bar-fill.energy{background:var(--color-energy)}.bar-num{font:var(--type-caption);color:var(--text-secondary);flex:none}.pips{flex:auto;align-items:center;gap:3px;min-width:0;display:flex}.pip{background:var(--energy-wash);width:8px;height:8px;box-shadow:inset 0 0 0 1px var(--energy-ring);transition:background var(--motion-tick) var(--ease-out);border-radius:2px;transform:rotate(45deg)}.pip.full{background:var(--color-energy)}.strikes{font:var(--type-caption);color:var(--text-primary);white-space:nowrap;flex:none;align-items:center;gap:2px;margin-left:auto;display:inline-flex}.rail-side.opponent .strikes{margin-left:0;margin-right:auto}.strike-pip{border-radius:var(--radius-pill);width:6px;height:6px;box-shadow:inset 0 0 0 1px var(--warn-ring)}.strike-pip.filled{background:var(--color-warning)}.strikes-x{margin-left:2px}.rail-safety{justify-content:flex-end;align-items:center;gap:var(--space-2);grid-area:2/1/auto/-1;display:flex;overflow-x:auto}.report-flag{min-height:var(--target-min);min-width:var(--target-min);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-pill);color:var(--text-secondary);box-shadow:var(--shadow-press-ghost);flex:none;padding:0;font-size:15px}.turn-ring{flex:none;grid-area:1/2;align-self:center;place-items:center;display:grid;position:relative}.turn-ring svg{display:block}.turn-ring-track{stroke:var(--track-bg)}.turn-ring-fill{stroke:var(--color-structure);transition:stroke-dashoffset var(--motion-beat) linear, stroke var(--motion-fast) var(--ease-out)}.turn-ring-num{font:var(--type-num-timer);color:var(--text-primary);font-size:17px;position:absolute}.turn-ring.idle .turn-ring-num{color:var(--text-secondary)}.turn-ring.warn .turn-ring-fill{stroke:var(--color-hp-enemy)}.turn-ring.warn .turn-ring-num{color:var(--color-danger);animation:.8s ease-in-out infinite ring-warn-pulse}@keyframes ring-warn-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.turn-ring.warn .turn-ring-num{animation:none}}:root[data-reduced-motion=true] .turn-ring.warn .turn-ring-num{animation:none}.dock{gap:var(--space-2);padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.dock-turn{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.dock-turn-no{font:var(--type-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);flex:none}.dock-turn-who{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);flex:none;font-size:12px}.dock-turn-who.mine{color:var(--color-structure-deep)}.dock-turn-hint{font:var(--type-caption);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.hand{gap:var(--space-2);min-height:var(--target-action);flex-direction:column;justify-content:center;display:flex}.hand.muted{color:var(--text-secondary);font:var(--type-body-sm);text-align:center}.hand-steps{gap:var(--space-1);display:flex}.step{font:var(--type-caption);color:var(--text-secondary);border-radius:var(--radius-pill);border:1px solid #0000;padding:1px 8px}.step.active{color:var(--color-structure-deep);border-color:var(--structure-ring);background:var(--structure-wash)}.step.done{color:var(--text-primary);border-color:var(--success-ring);background:color-mix(in srgb, var(--color-success) 16%, transparent)}.step.na{opacity:.5}.cards{gap:var(--space-2);padding-bottom:2px;display:flex;overflow-x:auto}.spell-card,.ability-card{align-content:center;align-items:center;gap:2px var(--space-2);min-width:112px;min-height:58px;padding:var(--space-2) var(--space-3);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-control);box-shadow:var(--shadow-press-ghost);text-align:left;flex-wrap:wrap;flex:none;display:flex}.spell-card.selecting,.ability-card.selecting{border-color:var(--color-structure);box-shadow:inset 0 0 0 2px var(--structure-ring)}.spell-card.trap{border-style:dashed;border-color:var(--hex-ring)}.spell-card.disabled,.ability-card.disabled{opacity:.55;box-shadow:none}.card-head{align-items:center;gap:var(--space-2);flex:1 0 100%;min-width:0;display:flex}.card-name{font-family:var(--font-display);color:var(--text-heading);white-space:nowrap;font-size:12px}.card-cost{font:var(--type-caption);color:var(--text-primary);background:var(--accent-wash);box-shadow:inset 0 0 0 1px var(--accent-ring);border-radius:var(--radius-pill);padding:1px 8px;font-weight:700}.card-tag{font:var(--type-caption);color:var(--text-primary)}.card-tag.trap{color:var(--color-field-negative)}.targeting{align-items:center;gap:var(--space-2);background:var(--structure-wash);border:1px solid var(--structure-ring);border-radius:var(--radius-control);padding:var(--space-2);display:flex}.targeting-label{min-width:0;font:var(--type-body-sm);flex:auto}.dock-actions{align-items:stretch;gap:var(--space-2);display:flex}.dock-icon{width:var(--target-action);min-height:var(--target-action);color:var(--text-primary);background:var(--surface-sunk);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.dock-end{min-width:0;min-height:var(--target-action);border-radius:var(--radius-control);flex:auto;font-size:17px}.sheet-scrim{z-index:25;background:var(--surface-scrim);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:var(--layout-column-max);background:var(--surface-overlay);border:1px solid var(--border-soft);border-radius:var(--radius-card) var(--radius-card) 0 0;box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-4) calc(var(--space-4) + var(--safe-bottom));gap:var(--space-3);animation:sheet-up var(--motion-beat) var(--ease-out);flex-direction:column;display:flex}@keyframes sheet-up{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}:root[data-reduced-motion=true] .sheet{animation:none}.sheet-title{font:var(--type-title);color:var(--text-heading)}.sheet-note{font:var(--type-body-sm);color:var(--text-secondary);text-align:center}.sheet-field{gap:var(--space-1);font:var(--type-body-sm);color:var(--text-secondary);flex-direction:column;display:flex}.sheet-actions{gap:var(--space-2);display:flex}.sheet-actions button{min-height:var(--target-action);flex:1 1 0}.sheet-stack{gap:var(--space-2);flex-direction:column;display:flex}.sheet-stack button{min-height:var(--target-action)}.searching{align-items:center;gap:var(--space-3);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);padding:var(--space-3);display:flex}.searching-label{min-width:0;font:var(--type-body-sm);flex:auto}.searching-label:after{content:"…";animation:1.2s steps(4,end) infinite search-dots}@keyframes search-dots{0%{content:""}50%{content:"…"}}@media (prefers-reduced-motion:reduce){.searching-label:after{animation:none}}:root[data-reduced-motion=true] .searching-label:after{animation:none}.message{font:var(--type-body-sm);color:var(--text-secondary);text-align:center}.message.subtle{font:var(--type-caption);color:var(--text-secondary)}.resume-banner{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);background:var(--accent-wash);border:1px solid var(--accent-ring);border-radius:var(--radius-card);padding:var(--space-3);flex-wrap:wrap;display:flex}.resume-banner-text{font:var(--type-body-sm);color:var(--text-heading)}.resume-banner-actions{gap:var(--space-2);display:flex}.resume-banner-actions .ghost{background:var(--surface-raised);color:var(--text-secondary)}.results{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-4);align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.results-banner{font:var(--type-display-lg);text-transform:uppercase;letter-spacing:.04em}.results.win .results-banner{color:var(--color-structure-deep)}.results.loss .results-banner{color:var(--color-danger)}.results.draw .results-banner{color:var(--text-secondary)}.results-hp{gap:var(--space-4);font:var(--type-body-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums;display:flex}.results-hp strong{color:var(--text-primary)}.results-reason{font:var(--type-caption);color:var(--text-secondary)}.results-rewards,.results-rank{align-self:stretch;align-items:center;gap:var(--space-1);padding:var(--space-3);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.results-section-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary)}.results-rewards .tag,.results-rank .tag{font:var(--type-body-sm);color:var(--text-secondary)}.results-rewards .tag.skeleton,.results-rank .tag.skeleton{animation:summary-skeleton 1.1s var(--ease-out) infinite}@keyframes summary-skeleton{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.results-rewards .tag.skeleton,.results-rank .tag.skeleton{animation:none}}:root[data-reduced-motion=true] .results-rewards .tag.skeleton,:root[data-reduced-motion=true] .results-rank .tag.skeleton{animation:none}.reward-legs{align-items:center;gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.reward-leg{align-items:center;gap:var(--space-2);font:var(--type-body-sm);color:var(--text-primary);display:flex}.reward-glyph{border-radius:var(--radius-pill);background:var(--accent-wash);width:20px;height:20px;box-shadow:inset 0 0 0 1px var(--accent-ring);color:var(--text-primary);place-items:center;display:inline-grid}.reward-leg-text{font-variant-numeric:tabular-nums}.results-rank{justify-content:center;gap:var(--space-2);flex-direction:row}.results-rank .rank-league-badge{font-family:var(--font-display);color:var(--color-structure-deep);background:var(--structure-wash);box-shadow:inset 0 0 0 1px var(--structure-ring);border-radius:var(--radius-pill);padding:3px var(--space-3);font-size:14px;display:inline-block}.rank-chip{font:var(--type-caption);border-radius:var(--radius-pill);padding:3px var(--space-3);border:1px solid #0000;align-items:center;gap:4px;font-weight:700;display:inline-flex}.rank-chip.up{color:var(--color-celebrate);border-color:color-mix(in srgb, var(--color-celebrate) 55%, transparent);background:color-mix(in srgb, var(--color-celebrate) 12%, transparent)}.rank-chip.down{color:var(--text-secondary);border-color:color-mix(in srgb, var(--color-pop) 40%, transparent);background:var(--danger-wash)}.rank-chip.stable{color:var(--text-secondary);border-color:var(--border-soft)}.toast{left:50%;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-3));z-index:20;background:var(--surface-overlay);border:1px solid var(--border-soft);border-radius:var(--radius-pill);box-shadow:var(--shadow-card);padding:var(--space-2) var(--space-4);font:var(--type-body-sm);color:var(--text-primary);animation:toast-in var(--motion-fast) var(--ease-out);max-width:90vw;position:fixed;transform:translate(-50%)}.toast.warn{border-color:var(--warn-ring)}.toast.good{border-color:var(--success-ring)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}:root[data-reduced-motion=true] .toast{animation:none}.log-details{font:var(--type-caption);color:var(--text-secondary);opacity:.7}.log-details summary{cursor:pointer}.log{margin:var(--space-1) 0 0;padding-left:var(--space-4);font-variant-numeric:tabular-nums;flex-direction:column;gap:2px;display:flex}.home{gap:var(--space-4);padding-top:var(--space-4);flex-direction:column;display:flex}.home-brand{text-align:center;gap:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5) var(--space-4);flex-direction:column;display:flex}.home-title{font:var(--type-display-xl);letter-spacing:.01em;color:var(--text-heading);text-transform:uppercase;margin:0}.home-title em{color:var(--color-structure);font-style:normal}.home-sub{color:var(--text-secondary);font:var(--type-body-sm)}.home-play{border-radius:var(--radius-card);min-height:64px;font-size:22px}.home-loadout{font:var(--type-caption);color:var(--text-primary);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-pill);padding:6px var(--space-4);align-self:center}.home-card{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.home-card-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary)}.seg{gap:var(--space-2);display:flex}.seg-item{background:var(--surface-sunk);border:1px solid var(--border-soft);text-transform:capitalize;flex:1 1 0;min-width:0}.seg-item.active{color:var(--color-structure-ink);background:var(--color-structure);box-shadow:var(--shadow-press-structure);border-color:#0000}.coach-mark{top:var(--space-2);left:var(--space-2);right:var(--space-2);z-index:5;pointer-events:none;justify-content:center;display:flex;position:absolute}.coach-mark-text{max-width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--surface-overlay);border:1px solid var(--structure-ring);color:var(--text-primary);font:var(--type-caption);text-align:center;box-shadow:var(--shadow-card);margin:0;line-height:1.3}.inventory-boot{max-width:var(--layout-column-max);padding:calc(var(--space-6) + var(--safe-top)) var(--space-3) var(--space-3);text-align:center;color:var(--text-secondary);font:var(--type-body-sm);margin:0 auto}.inventory.inventory{width:100%;max-width:var(--layout-column-max);padding:calc(var(--space-3) + var(--safe-top)) max(var(--space-3), var(--safe-right)) var(--space-6) max(var(--space-3), var(--safe-left));gap:var(--space-3);color:var(--text-primary);flex-direction:column;margin:0 auto;display:flex}.inventory.inventory .inventory-head{gap:var(--space-1);flex-direction:column;display:flex}.inventory.inventory .inventory-head h2{font:var(--type-display-lg);color:var(--text-heading);margin:0}.inventory.inventory .inventory-head .tag{font:var(--type-caption);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.inventory.inventory .error{padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);border:1px solid var(--color-danger);background:var(--danger-wash);font:var(--type-body-sm);color:var(--color-danger);margin:0}.inventory.inventory .section-title{margin:var(--space-2) 0 0}.inventory.inventory button:disabled{opacity:1;background:var(--surface-sunk);color:color-mix(in srgb, var(--text-secondary) 60%, var(--text-primary));border:1px solid var(--border-soft);box-shadow:none}.inventory.inventory .hero-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.inventory.inventory .hero-card{gap:var(--space-2);padding:var(--space-3);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:relative}.inventory.inventory .hero-card.rarity-ring{box-shadow:0 0 0 2px color-mix(in srgb, var(--rarity,var(--rarity-common)) 55%, transparent), var(--shadow-card)}.inventory.inventory .hero-card.locked{border-color:var(--border-strong)}.inventory.inventory .hero-card.locked .shard-ring-body{filter:grayscale(.6);opacity:.9}.inventory.inventory .hero-card .holo-foil{border-radius:inherit;pointer-events:none;position:absolute;inset:0}.inventory.inventory .hero-card-open{align-items:center;gap:var(--space-1);width:100%;min-height:var(--target-min);padding:var(--space-1) 0 0;border-radius:var(--radius-control);box-shadow:none;text-align:center;color:inherit;background:0 0;border:0;flex-direction:column;display:flex}.inventory.inventory .hero-card-open:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.inventory.inventory .hero-card-name{max-width:100%;font-family:var(--font-display);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:1.2;overflow:hidden}.inventory.inventory .rarity-chip{color:color-mix(in srgb, var(--rarity,var(--rarity-common)) 55%, var(--text-primary));background:color-mix(in srgb, var(--rarity,var(--rarity-common)) 18%, transparent);border:1px solid color-mix(in srgb, var(--rarity,var(--rarity-common)) 45%, transparent)}.inventory.inventory .hero-card-sub{max-width:100%;font:var(--type-caption);color:var(--text-secondary);overflow-wrap:anywhere}.inventory.inventory .hero-card-shards{font:var(--type-body-sm);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}.inventory.inventory .hero-card-badge{padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--structure-wash);border:1px solid var(--structure-ring);font:var(--type-caption);color:var(--text-primary);align-self:center;font-weight:700}.inventory.inventory .hero-card-action{width:100%;padding:0 var(--space-2);font-variant-numeric:tabular-nums;margin-top:auto}.inventory.inventory .hero-card .maxed{min-height:var(--target-min);justify-content:center;align-items:center;margin-top:auto;display:inline-flex}.inventory.inventory .shard-ring{flex:none;display:inline-block;position:relative}.inventory.inventory .shard-ring svg{display:block;transform:rotate(-90deg)}.inventory.inventory .shard-ring-track{stroke:var(--track-bg)}.inventory.inventory .shard-ring-fill{stroke:var(--color-structure);transition:stroke-dashoffset var(--motion-beat) var(--ease-out)}.inventory.inventory .shard-ring.tone-celebrate .shard-ring-fill{stroke:var(--color-celebrate)}.inventory.inventory .shard-ring-body{place-items:center;display:grid;position:absolute;inset:0}.inventory.inventory .hero-portrait{object-fit:contain;display:block}.inventory.inventory .hero-detail{gap:var(--space-3);flex-direction:column;display:flex}.inventory.inventory .hero-detail .back{min-height:var(--target-min);padding:0 var(--space-2);box-shadow:none;color:var(--text-secondary);font:var(--type-body-sm);background:0 0;border:0;align-self:flex-start;font-weight:600}.inventory.inventory .hero-detail .back:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.inventory.inventory .detail-head{align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:row;display:flex}.inventory.inventory .detail-head-text{align-items:flex-start;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.inventory.inventory .detail-head h3{font:var(--type-display-lg);color:var(--text-heading);overflow-wrap:anywhere;margin:0}.inventory.inventory .detail-stats{font:var(--type-body-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.inventory.inventory .detail-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);font:var(--type-body-sm);flex-wrap:wrap;display:flex}.inventory.inventory .detail-row-info{gap:var(--space-1);flex-direction:column;flex:55%;min-width:0;display:flex}.inventory.inventory .detail-row-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);font-variant-numeric:tabular-nums}.inventory.inventory .detail-row-value{font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:18px}.inventory.inventory .detail-meta{font:var(--type-body-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.inventory.inventory .detail-row button{font-variant-numeric:tabular-nums;flex:none}.inventory.inventory .ability-line{align-items:center;gap:var(--space-2);min-width:0;display:flex}.inventory.inventory .ability-name{font-family:var(--font-display);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:16px;line-height:1.2;overflow:hidden}.inventory.inventory .ability-description{font:var(--type-body-sm);color:var(--text-primary);text-wrap:pretty;line-height:1.45}.inventory.inventory .maxed{font:var(--type-label);text-transform:uppercase;letter-spacing:.08em;color:var(--color-celebrate);white-space:nowrap;align-self:center}.inventory.inventory .shard-bar{border-radius:var(--radius-pill);background:var(--track-bg);width:100%;height:8px;display:block;overflow:hidden}.inventory.inventory .shard-bar-fill{border-radius:var(--radius-pill);background:var(--color-accent);height:100%;transition:width var(--motion-beat) var(--ease-out);display:block}.inventory.inventory .loadout-editor{gap:var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.inventory.inventory .loadout-slots-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.inventory.inventory .loadout-slots-head strong{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.inventory.inventory .loadout-slots-head .tag{padding:2px var(--space-2);border:1px solid var(--border-soft);border-radius:var(--radius-pill);font:var(--type-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums}.inventory.inventory .loadout-slots{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.inventory.inventory .loadout-socket{background:var(--surface-sunk);border:2px dashed var(--border-strong);width:56px;height:56px;transition:transform var(--motion-tick) var(--ease-out), box-shadow var(--motion-tick) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex}.inventory.inventory .loadout-socket.filled{background:var(--accent-wash);border:2px solid var(--accent-ring);box-shadow:var(--shadow-panel);cursor:pointer}.inventory.inventory .socket-placeholder{color:var(--text-secondary);opacity:.6;font-size:18px}.inventory.inventory .socket-filled-content{flex-direction:column;align-items:center;gap:2px;display:flex}.inventory.inventory .socket-icon{font-size:18px}.inventory.inventory .socket-label{max-width:48px;font:var(--type-caption);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.inventory.inventory .spell-picker{gap:var(--space-2);flex-wrap:wrap;display:flex}.inventory.inventory .spell-picker .pick{align-items:center;gap:var(--space-1);min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-pill);font:var(--type-body-sm);font-weight:600;display:inline-flex}.inventory.inventory .spell-picker .pick.trap{border-style:dashed;border-color:var(--hex-ring)}.inventory.inventory .spell-picker .pick.picked{background:var(--structure-wash);border-color:var(--color-structure);color:var(--text-primary)}.inventory.inventory .pick-cost{color:color-mix(in srgb, var(--color-energy) 55%, var(--text-primary));font-variant-numeric:tabular-nums}.inventory.inventory .loadout-actions{align-items:center;gap:var(--space-3);display:flex}.inventory.inventory .loadout-actions button{flex:1}.inventory.inventory .active-tag{min-height:var(--target-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--structure-wash);border:1px solid var(--structure-ring);font:var(--type-body-sm);color:var(--text-primary);text-align:center;flex:1;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.inventory.inventory .spell-collection,.inventory.inventory .spell-list{gap:var(--space-2);flex-direction:column;display:flex}.inventory.inventory .spell-row{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);font:var(--type-body-sm);flex-wrap:wrap;display:flex}.inventory.inventory .spell-row.trap{border-style:dashed;border-color:var(--hex-ring)}.inventory.inventory .spell-row.unowned{border-color:var(--border-strong);box-shadow:none}.inventory.inventory .spell-row .spell-name{min-width:45%;color:var(--text-primary);flex:45%;font-weight:600}.inventory.inventory .spell-row .trap-tag{font:var(--type-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--color-field-negative);font-weight:700}.inventory.inventory .spell-row button{font-variant-numeric:tabular-nums;margin-left:auto}.inventory.inventory .spell-meta{font:var(--type-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums}.inventory.inventory .spell-meta.muted{font-style:italic}.inventory.inventory .spell-row .spell-cost{color:color-mix(in srgb, var(--color-energy) 55%, var(--text-primary))}div.invite{width:calc(100% - 2 * var(--space-3));max-width:calc(var(--layout-column-max) - 2 * var(--space-3));margin:var(--space-2) auto var(--space-5);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);gap:var(--space-3);flex-direction:column;display:flex}.invite button:focus-visible,.invite input:focus-visible{outline:2px solid var(--color-structure);outline-offset:2px}.invite .error{padding:var(--space-2) var(--space-3);font:var(--type-body-sm);color:var(--color-danger);background:var(--danger-wash);border-radius:var(--radius-control);margin:0}.invite .tag{align-items:center;gap:var(--space-2);font:var(--type-body-sm);color:var(--text-secondary);display:flex}.invite .tag.good{padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-success) 18%, transparent);color:var(--text-primary);align-self:flex-start;font-weight:600}.invite .tag.good:before,.invite .tag.waiting:before{content:"";border-radius:var(--radius-pill);flex:none;width:8px;height:8px}.invite .tag.good:before{background:var(--color-success)}.invite .tag.waiting:before{background:var(--color-structure);animation:invite-wait-pulse 1.6s var(--ease-out) infinite}@keyframes invite-wait-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.invite .tag.waiting:before{opacity:1;animation:none;transform:none}}:root[data-reduced-motion=true] .invite .tag.waiting:before{opacity:1;animation:none;transform:none}.invite .invite-head{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.invite .invite-head h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);margin:0;font-size:13px;line-height:1.2}.invite .invite-back{font:var(--type-body-sm);color:var(--text-secondary);border-radius:var(--radius-pill);padding:0 var(--space-4);font-weight:600}.invite .invite-menu{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.invite .invite-menu button{text-align:center;min-height:var(--target-action);padding:var(--space-2) var(--space-3);border-radius:var(--radius-card);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--color-structure-deep);background:var(--structure-wash);border:1px solid var(--border-strong);justify-content:center;align-items:center;font-size:13px;line-height:1.2;display:inline-flex}.invite .invite-panel{gap:var(--space-3);flex-direction:column;display:flex}.invite .invite-panel button.structure{width:100%;min-height:var(--target-action);border-radius:var(--radius-card);letter-spacing:.04em;font-size:17px}.invite .invite-code-row{gap:var(--space-2);flex-direction:column;display:flex}.invite .invite-code-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.invite .invite-code-well{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-card);flex-wrap:wrap;display:flex}.invite .invite-code{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:.14em;color:var(--text-primary);-webkit-user-select:text;user-select:text;margin-right:-.14em;font-size:clamp(26px,8.5vw,34px);line-height:1.1}.invite .invite-copy{min-width:104px;min-height:var(--target-min);padding:0 var(--space-4);font:var(--type-label);text-transform:uppercase;letter-spacing:.08em;color:var(--color-structure-deep);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-pill);justify-content:center;align-items:center;display:inline-flex}.invite .invite-field{gap:var(--space-1);flex-direction:column;display:flex}.invite .invite-field span{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.invite .invite-field input{width:100%;font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:.14em;text-align:center;text-transform:uppercase;color:var(--text-primary);background:var(--surface-sunk);border:1px solid var(--border-strong);border-radius:var(--radius-control);min-height:var(--target-action);padding:0 var(--space-3);font-size:22px;line-height:1.2}.invite .invite-field input::placeholder{font:var(--type-body-sm);letter-spacing:normal;text-transform:none;color:var(--text-secondary)}section.rune-editor{gap:var(--space-4);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.rune-editor .rune-editor-head{gap:var(--space-1);flex-direction:column;display:flex}.rune-editor .rune-editor-head h3{font:var(--type-title);color:var(--text-heading);margin:0}.rune-editor .tag{font:var(--type-caption);color:var(--text-secondary)}.rune-editor .error{padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);background:var(--danger-wash);border:1px solid var(--color-danger);font:var(--type-body-sm);color:var(--color-danger);margin:0}.rune-editor .rune-editor-body{align-items:stretch;gap:var(--space-4);flex-flow:column;display:flex}.rune-editor .rune-canvas-wrap{padding:var(--space-3);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-card);place-items:center;display:grid}.rune-editor .rune-canvas{aspect-ratio:1;border:2px solid var(--border-strong);border-radius:var(--radius-control);background:repeating-conic-gradient(var(--border-soft) 0% 25%, transparent 0% 50%) 0 0 / 20px 20px, var(--surface-raised);width:min(320px,100%);height:auto;box-shadow:var(--shadow-panel);touch-action:none;cursor:crosshair}.rune-editor .rune-tools{gap:var(--space-3);flex-direction:column;flex:none;min-width:0;display:flex}.rune-editor .rune-tool-row{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.rune-editor .rune-tool-seg{gap:var(--space-2);padding:var(--space-1);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-control);grid-template-columns:1fr 1fr;display:grid}.rune-editor .rune-tools button{min-height:var(--target-min);padding:0 var(--space-2);font:var(--type-body-sm);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:calc(var(--radius-control) - var(--space-1));box-shadow:var(--shadow-press-ghost);cursor:pointer;font-weight:600}.rune-editor .rune-tools button.active{color:var(--color-structure-ink);background:var(--color-structure);box-shadow:0 2px 0 0 var(--color-structure-deep);border-color:#0000}.rune-editor .rune-tools button.active:active:not(:disabled){box-shadow:0 0 0 0 var(--color-structure-deep)}.rune-editor .rune-tools button:disabled{opacity:.45;cursor:default;box-shadow:none}.rune-editor .rune-brush{align-items:center;gap:var(--space-3);font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);display:flex}.rune-editor .rune-brush input[type=range]{min-width:0;min-height:var(--target-min);appearance:none;accent-color:var(--color-structure);cursor:pointer;background:0 0;border:none;flex:1;margin:0;padding:0}.rune-editor .rune-brush input[type=range]::-webkit-slider-runnable-track{border-radius:var(--radius-pill);background:var(--track-bg);height:8px}.rune-editor .rune-brush input[type=range]::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-pill);background:var(--color-structure);border:2px solid var(--surface-raised);width:24px;height:24px;box-shadow:var(--shadow-panel);margin-top:-8px}.rune-editor .rune-brush input[type=range]::-moz-range-track{border-radius:var(--radius-pill);background:var(--track-bg);height:8px}.rune-editor .rune-brush input[type=range]::-moz-range-thumb{border-radius:var(--radius-pill);background:var(--color-structure);border:2px solid var(--surface-raised);width:24px;height:24px}.rune-editor .rune-brush-val{font:var(--type-body-sm);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:normal;color:var(--text-primary);text-align:right;min-width:44px}.rune-editor .rune-ink{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-card);display:flex}.rune-editor .rune-ink.low{background:var(--accent-wash);border-color:var(--warn-ring)}.rune-editor .rune-ink-dial{flex:none;place-items:center;width:68px;height:68px;display:grid;position:relative}.rune-editor .rune-ink-dial svg{position:absolute;inset:0;transform:rotate(-90deg)}.rune-editor .rune-ink-track{fill:none;stroke:var(--track-bg)}.rune-editor .rune-ink-arc{fill:none;stroke:var(--color-structure);stroke-linecap:round;transition:stroke-dashoffset var(--motion-beat) var(--ease-out)}.rune-editor .rune-ink:not(.low) .rune-ink-arc{stroke:var(--color-success)}.rune-editor .rune-ink-val{font:var(--type-num-hud);font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:13px;position:relative}.rune-editor .rune-ink-meta{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.rune-editor .rune-ink-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.rune-editor .rune-preview{gap:var(--space-2);flex-direction:column;display:flex}.rune-editor .rune-preview-title{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.rune-editor .rune-preview-row{justify-content:flex-start;gap:var(--space-4);display:flex}.rune-editor .rune-preview-side{align-items:center;gap:var(--space-1);flex-direction:column;margin:0;display:flex}.rune-editor .rune-preview-side figcaption{font:var(--type-caption);color:var(--text-secondary)}.rune-editor .rune-preview-cell{flex:none;place-items:center;width:56px;height:56px;display:grid;position:relative}.rune-editor .rune-preview-cell:before,.rune-editor .rune-preview-cell:after{content:"";position:absolute}.rune-editor .rune-preview-cell:before{background:var(--side-ring);inset:0}.rune-editor .rune-preview-cell:after{background:var(--side-face);inset:2px}.rune-editor .rune-preview-cell canvas{z-index:1;width:40px;height:40px;display:block;position:relative}.rune-editor .rune-preview-side.side-self{--side-ring:var(--player-a-tint);--side-face:var(--player-a-wash)}.rune-editor .side-self .rune-preview-cell:before{border-radius:var(--radius-control)}.rune-editor .side-self .rune-preview-cell:after{border-radius:calc(var(--radius-control) - 2px)}.rune-editor .rune-preview-side.side-opponent{--side-ring:var(--player-b-tint);--side-face:var(--player-b-wash);--notch:12px}.rune-editor .side-opponent .rune-preview-cell:before,.rune-editor .side-opponent .rune-preview-cell:after{clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)))}.rune-editor .rune-editor-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.rune-editor .rune-editor-actions button{min-height:var(--target-min);flex:0 auto}.rune-editor .rune-editor-actions button.primary{min-height:var(--target-action);border-radius:var(--radius-card);flex:60%;font-size:17px}.rune-editor .rune-hint{padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);background:var(--accent-wash);border:1px solid var(--warn-ring);font:var(--type-body-sm);color:var(--text-primary);flex-basis:100%}.rune-editor .rune-status-line{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);background:var(--surface-sunk);border:1px solid var(--border-soft);font:var(--type-body-sm);color:var(--text-primary);margin:0;display:flex}.rune-editor .rune-status-line:before{content:"";border-radius:var(--radius-pill);background:var(--color-structure);flex:none;width:10px;height:10px}@media (prefers-reduced-motion:reduce){.rune-editor .rune-ink-arc{transition:none}}:root[data-reduced-motion=true] .rune-editor .rune-ink-arc{transition:none}section.profile{width:100%;max-width:var(--layout-column-max);padding:calc(var(--space-3) + var(--safe-top)) var(--space-3) var(--space-5);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.profile .section-title{margin:0 0 var(--space-3)}.profile-boot{font:var(--type-body-sm);color:var(--text-secondary);text-align:center;padding:calc(var(--space-6) + var(--safe-top)) var(--space-3) var(--space-3);display:block}.profile .tag{font:var(--type-body-sm);color:var(--text-secondary)}.profile .error{font:var(--type-body-sm);color:var(--color-danger);margin:0}.profile .profile-head{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.profile .profile-head-row{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;display:flex}.profile .profile-head h2{font:var(--type-display-lg);color:var(--text-heading);margin:0}.profile .profile-settings-gear{min-width:var(--target-min);min-height:var(--target-min);color:var(--text-secondary);flex:none;place-items:center;padding:0;font-size:20px;line-height:1;display:grid}.profile .profile-identity{gap:var(--space-3);flex-direction:column;display:flex}.profile .profile-identity .divider{margin:0}.profile .identity-hero{align-items:center;gap:var(--space-4);display:flex}.profile .identity-hero-body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.profile .level-ring{flex:none;place-items:center;width:84px;height:84px;display:grid;position:relative}.profile .level-ring svg{transform:rotate(-90deg)}.profile .level-ring-track{stroke:var(--track-bg)}.profile .level-ring-arc{stroke:var(--color-structure);stroke-linecap:round;transition:stroke-dashoffset var(--motion-beat) var(--ease-out)}.profile .level-ring-value{border-radius:var(--radius-control);background:var(--color-structure);width:56px;height:56px;color:var(--color-structure-ink);font:var(--type-title);box-shadow:var(--shadow-press-structure);place-items:center;display:grid;position:absolute}.profile .identity-xp{font:var(--type-caption);color:var(--text-secondary);margin:0}.profile .identity-hero-body .track{margin-top:var(--space-1)}.profile .profile-name{align-items:flex-start;gap:var(--space-1);flex-direction:column;width:100%;min-width:0;display:flex}.profile .profile-id-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.profile .profile-name-view{align-items:center;gap:var(--space-2);width:100%;min-width:0;display:flex}.profile .profile-name-value{min-width:0;font:var(--type-title);color:var(--text-heading);overflow-wrap:anywhere;flex:1}.profile .profile-name-edit{min-height:var(--target-min);width:var(--target-min);height:var(--target-min);color:var(--text-secondary);flex:none;place-items:center;padding:0;font-size:15px;line-height:1;display:grid}.profile .profile-name-status{font:var(--type-body-sm);color:var(--text-secondary);margin:0}.profile .profile-name-form{align-items:stretch;gap:var(--space-2);flex-direction:column;width:100%;display:flex}.profile .profile-name-input{width:100%;font:var(--type-body);background:var(--surface-sunk);border:1px solid var(--border-strong)}.profile .profile-name-input:focus{border-color:var(--color-structure);box-shadow:0 0 0 3px var(--structure-ring);outline:none}.profile .profile-name-actions{gap:var(--space-2);display:flex}.profile .profile-name-actions button{min-height:var(--target-min);padding:0 var(--space-4);flex:1}.profile .profile-id{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.profile .profile-id-value{color:var(--text-primary);word-break:break-all;font-family:ui-monospace,Cascadia Mono,Menlo,monospace;font-size:13px;line-height:1.4}.profile .status-pill{vertical-align:middle;border-radius:var(--radius-pill);font:var(--type-label);text-transform:uppercase;letter-spacing:.08em;color:var(--text-primary);border:1px solid var(--border-strong);background:var(--surface-sunk);padding:3px 10px;display:inline-block}.profile .status-pill.pending_review,.profile .status-pill.hidden{color:color-mix(in srgb, var(--color-warning) 45%, var(--text-primary));border-color:color-mix(in srgb, var(--color-warning) 55%, transparent);background:color-mix(in srgb, var(--color-warning) 14%, transparent)}.profile .status-pill.approved{color:color-mix(in srgb, var(--color-success) 45%, var(--text-primary));border-color:color-mix(in srgb, var(--color-success) 55%, transparent);background:color-mix(in srgb, var(--color-success) 14%, transparent)}.profile .status-pill.rejected,.profile .status-pill.revoked{color:color-mix(in srgb, var(--color-danger) 45%, var(--text-primary));border-color:color-mix(in srgb, var(--color-danger) 55%, transparent);background:color-mix(in srgb, var(--color-danger) 14%, transparent)}.profile .profile-stats{gap:var(--space-3);flex-direction:column;display:flex}.profile .stat-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.profile .stat-cell{justify-content:flex-start;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);text-align:center;background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.profile .stat-cell.wide{justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;padding:var(--space-3) var(--space-4);flex-direction:row;grid-column:1/-1}.profile .stat-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);overflow-wrap:anywhere;order:2}.profile .stat-cell.wide .stat-label{order:0}.profile .stat-value{font:var(--type-title);color:var(--text-heading);overflow-wrap:anywhere;order:1}.profile .stat-cell.wide .stat-value{text-align:right;order:0}.profile .winrate-block{gap:var(--space-1);flex-direction:column;display:flex}.profile .winrate-legend{justify-content:space-between;gap:var(--space-3);font:var(--type-caption);display:flex}.profile .winrate-legend-win{color:color-mix(in srgb, var(--color-success) 45%, var(--text-primary));font-weight:700}.profile .winrate-legend-loss{color:color-mix(in srgb, var(--color-hp-enemy) 45%, var(--text-primary));font-weight:700}.profile .winrate-track{border-radius:var(--radius-pill);background:var(--color-hp-enemy);width:100%;height:8px;overflow:hidden}.profile .winrate-fill{border-radius:var(--radius-pill);background:var(--color-success);height:100%;transition:width var(--motion-beat) var(--ease-out)}.profile .profile-match-feed{gap:var(--space-3);flex-direction:column;display:flex}.profile .match-feed-list{gap:var(--space-2);flex-direction:column;display:flex}.profile .match-feed-card{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);overflow:hidden}.profile .match-feed-card-header{align-items:center;gap:var(--space-3);width:100%;min-height:var(--target-min);padding:var(--space-3);text-align:left;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.profile .match-feed-card-header:active:not(:disabled){box-shadow:none;background:var(--surface-sunk);transform:none}.profile .match-result-chip{border-radius:var(--radius-control);width:40px;height:40px;font-family:var(--font-display);color:var(--text-primary);background:var(--surface-sunk);place-items:center;font-size:15px;line-height:1;display:grid}.profile .match-feed-card.outcome-victory .match-result-chip{color:color-mix(in srgb, var(--color-success) 45%, var(--text-primary));background:color-mix(in srgb, var(--color-success) 18%, transparent)}.profile .match-feed-card.outcome-defeat .match-result-chip{color:color-mix(in srgb, var(--color-hp-enemy) 45%, var(--text-primary));background:color-mix(in srgb, var(--color-hp-enemy) 18%, transparent)}.profile .match-details-summary{flex-direction:column;gap:2px;min-width:0;display:flex}.profile .opponent-name{font:var(--type-body-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.profile .match-meta{font:var(--type-caption);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile .match-outcome-badge{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.profile .outcome-text{font:var(--type-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.profile .match-feed-card.outcome-victory .outcome-text{color:color-mix(in srgb, var(--color-success) 45%, var(--text-primary))}.profile .match-feed-card.outcome-defeat .outcome-text{color:color-mix(in srgb, var(--color-hp-enemy) 45%, var(--text-primary))}.profile .mode-text{font:var(--type-caption);color:var(--text-secondary)}.profile .expand-chevron{color:var(--text-secondary);transition:transform var(--motion-fast) var(--ease-out);font-size:12px;line-height:1}.profile .match-feed-card-header[aria-expanded=true] .expand-chevron{transform:rotate(180deg)}.profile .match-feed-card-body{padding:0 var(--space-3) var(--space-3)}.profile .match-stat-row{gap:var(--space-2) var(--space-4);padding:var(--space-3);border-radius:var(--radius-control);background:var(--surface-sunk);font:var(--type-body-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.profile .match-stat-row strong{color:var(--text-primary);font-variant-numeric:tabular-nums}.profile .profile-rune{gap:var(--space-3);flex-direction:column;display:flex}.profile .rune-summary{align-items:center;gap:var(--space-4);display:flex}.profile .rune-summary-meta{align-items:flex-start;gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.profile .rune-none,.profile .rune-status{font:var(--type-body-sm);color:var(--text-secondary);margin:0}.profile .rune-locked{font:var(--type-caption);color:color-mix(in srgb, var(--color-warning) 45%, var(--text-primary));margin:0}.profile .rune-summary button.primary{min-height:var(--target-min);padding:0 var(--space-5);margin-top:var(--space-1);align-self:flex-start}.profile .rune-glyph{border:1px solid var(--border-soft);border-radius:var(--radius-card);width:64px;height:64px;box-shadow:var(--shadow-panel);background:repeating-conic-gradient(color-mix(in srgb, var(--text-primary) 5%, transparent) 0% 25%, transparent 0% 50%) 0 0 / 16px 16px, var(--board-cell);flex:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.profile .rune-glyph.placeholder{border:1px dashed var(--border-strong);box-shadow:none}.profile .rune-glyph canvas{width:48px;height:48px;display:block}.profile .profile-settings{flex-direction:column;display:flex}.profile .profile-settings-group{padding:0;overflow:hidden}.profile .profile-settings-toggle{align-items:center;gap:var(--space-3);width:100%;min-height:var(--target-action);padding:0 var(--space-4);text-align:left;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;display:grid}.profile .profile-settings-toggle:active:not(:disabled){box-shadow:none;background:var(--surface-sunk);transform:none}.profile .profile-settings-toggle-label{font:var(--type-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.profile .profile-settings-chevron{color:var(--text-secondary);transition:transform var(--motion-fast) var(--ease-out);font-size:14px;line-height:1}.profile .profile-settings-toggle[aria-expanded=true] .profile-settings-chevron{transform:rotate(180deg)}.profile .profile-settings-body{border-top:1px solid var(--border-soft);flex-direction:column;display:flex}.profile .profile-settings-body[hidden]{display:none}.profile .profile-settings-body>.profile-notifications,.profile .profile-settings-body>.profile-privacy,.profile .profile-settings-body>.profile-blocks{gap:var(--space-3);padding:var(--space-4);border:0;border-bottom:1px solid var(--border-soft);background:0 0;border-radius:0;flex-direction:column;display:flex}.profile .profile-settings-body>div>h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);margin:0;font-size:13px}.profile .profile-settings-row{align-items:center;gap:var(--space-3);width:100%;min-height:var(--target-min);padding:0 var(--space-4);text-align:left;font:var(--type-body);color:var(--text-primary);box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;display:grid}.profile .profile-settings-row:active:not(:disabled){box-shadow:none;background:var(--surface-sunk);transform:none}.profile .profile-settings-row-chevron{color:var(--text-secondary)}.profile .notif-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--target-min);cursor:pointer;display:flex}.profile .notif-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.profile .notif-label{font:var(--type-body);color:var(--text-primary)}.profile .notif-hint{font:var(--type-caption);color:var(--text-secondary);overflow-wrap:anywhere}.profile .notif-row input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--color-structure);flex:none}.profile .block-list{gap:var(--space-2);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.profile .block-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-control);display:flex}.profile .block-label{font:var(--type-body-sm);color:var(--text-primary);word-break:break-word;min-width:0}.profile .block-unblock{min-height:var(--target-min);padding:0 var(--space-3);font:var(--type-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-strong);flex:none}.profile .profile-links,.profile .profile-signin{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.profile .link-list{gap:var(--space-2);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.profile .link-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-control);display:flex}.profile .link-label{font:var(--type-body-sm);color:var(--text-primary);word-break:break-word;min-width:0}.profile .link-unlink{min-height:var(--target-min);padding:0 var(--space-3);font:var(--type-label);text-transform:uppercase;letter-spacing:.06em;color:var(--color-danger);background:var(--surface-raised);border:1px solid color-mix(in srgb, var(--color-danger) 45%, transparent);box-shadow:none;flex:none}.profile .link-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.profile .link-add{min-height:var(--target-min);padding:0 var(--space-4);font:var(--type-body-sm);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-strong);font-weight:600}.profile .link-form{align-items:stretch;gap:var(--space-2);flex-direction:column;width:100%;display:flex}.profile .link-input{width:100%;font:var(--type-body);background:var(--surface-sunk);border:1px solid var(--border-strong)}.profile .link-input:focus{border-color:var(--color-structure);box-shadow:0 0 0 3px var(--structure-ring);outline:none}.profile .link-form-actions{gap:var(--space-2);display:flex}.profile .link-form-actions button{min-height:var(--target-min);padding:0 var(--space-4);flex:1}.profile .google-btn{min-height:var(--target-min);justify-content:center;display:flex}@media (prefers-reduced-motion:reduce){.profile .level-ring-arc,.profile .winrate-fill,.profile .expand-chevron,.profile .profile-settings-chevron{transition:none}}:root[data-reduced-motion=true] .profile .level-ring-arc,:root[data-reduced-motion=true] .profile .winrate-fill,:root[data-reduced-motion=true] .profile .expand-chevron,:root[data-reduced-motion=true] .profile .profile-settings-chevron{transition:none}section.ranked{width:100%;max-width:var(--layout-column-max);padding:calc(var(--space-3) + var(--safe-top)) var(--space-3) var(--space-5);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.ranked-boot{padding:calc(var(--space-6) + var(--safe-top)) var(--space-3);text-align:center;font:var(--type-body-sm);color:var(--text-secondary);display:block}.ranked .error{font:var(--type-body-sm);color:var(--color-danger)}.ranked .tag{font:var(--type-body-sm);color:var(--text-secondary)}.ranked .ranked-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.ranked .ranked-head-titles{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.ranked .ranked-leaderboard-open{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--structure-ring);color:var(--color-structure);font:var(--type-body-sm);box-shadow:var(--shadow-press-ghost);flex:none;font-weight:700;display:inline-flex}.ranked .ranked-leaderboard-open:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.ranked .ranked-head h2{font:var(--type-display-lg);color:var(--text-heading);margin:0}.ranked .ranked-head .tag{font:var(--type-caption);color:var(--text-secondary)}.ranked .rank-card{align-items:center;gap:var(--space-4);grid-template-columns:auto minmax(0,1fr);display:grid}.ranked .rank-card.placements{background-color:var(--surface-raised);background-image:linear-gradient(var(--structure-wash), var(--structure-wash))}.ranked .rank-crest-ring{box-sizing:border-box;border-radius:var(--radius-pill);border:4px solid var(--structure-ring);background:var(--surface-sunk);width:96px;height:96px;color:var(--color-structure);place-items:center;display:grid}.ranked .rank-crest-ring.placements{border-style:dashed;border-color:var(--border-strong);color:var(--text-secondary)}.ranked .rank-card-body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.ranked .rank-card-main{align-items:baseline;gap:var(--space-2);font:var(--type-title);color:var(--text-heading);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.ranked .rank-league-name{font:var(--type-display-lg);text-transform:uppercase;letter-spacing:.01em;color:var(--text-heading);overflow-wrap:anywhere}.ranked .rank-within{font:var(--type-body);color:var(--text-secondary);font-variant-numeric:tabular-nums;font-weight:600}.ranked .rank-card-sub{font:var(--type-body-sm);color:var(--text-secondary)}.ranked .rank-season{font:var(--type-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.ranked .crest-ladder-block{flex-direction:column;display:flex}.ranked .crest-ladder-block .section-title{margin:0 0 var(--space-2)}.ranked .crest-ladder{margin:0 calc(var(--space-3) * -1);padding:var(--space-1) var(--space-3) var(--space-2);gap:var(--space-2);overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-left:var(--space-3);list-style:none;display:flex;overflow-x:auto}.ranked .crest-ladder-item{scroll-snap-align:start;align-items:center;gap:var(--space-1);width:88px;padding:var(--space-2) var(--space-1);text-align:center;background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);color:var(--text-secondary);flex-direction:column;flex:none;display:flex}.ranked .crest-ladder-item.current{box-shadow:var(--shadow-panel), inset 0 0 0 2px var(--color-structure)}.ranked .crest-ladder-item .crest-art{opacity:.38;transition:opacity var(--motion-fast) var(--ease-out)}.ranked .crest-ladder-item.reached .crest-art{opacity:1}.ranked .crest-ladder-name{max-width:100%;font:var(--type-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ranked .crest-ladder-item.reached .crest-ladder-name{color:var(--text-primary);font-weight:700}.crest-art{object-fit:contain;display:block}.ranked .ranked-play{gap:var(--space-3);flex-direction:column;display:flex}.ranked .loadout-hint{font:var(--type-caption);color:var(--text-secondary)}.ranked .ranked-play .primary{min-height:var(--target-action);padding:0 var(--space-5);font:var(--type-title);border-radius:var(--radius-card);align-self:stretch}.ranked .ranked-note{font:var(--type-caption);color:var(--text-secondary);text-align:center;margin:0}.ranked .leaderboard-overlay{z-index:var(--z-overlay);background:radial-gradient(90% 55% at 50% 0%, var(--structure-wash) 0%, transparent 62%), radial-gradient(70% 45% at 95% 8%, var(--accent-wash) 0%, transparent 60%), var(--surface-base);padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;display:flex;position:fixed;inset:0}.ranked .leaderboard-overlay-head{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;max-width:var(--layout-column-max);padding:max(var(--safe-top), var(--space-2)) var(--space-4) var(--space-3);background:var(--surface-raised);border-bottom:1px solid var(--border-soft);flex:none;margin:0 auto;display:flex}.ranked .leaderboard-overlay-titles{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.ranked .leaderboard-overlay-head h2{font:var(--type-display-lg);color:var(--text-heading);margin:0}.ranked .leaderboard-overlay-head .tag{font:var(--type-caption);color:var(--text-secondary)}.ranked .leaderboard-close{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--surface-sunk);border:1px solid var(--structure-ring);color:var(--color-structure);font:var(--type-body-sm);flex:none;font-weight:700;line-height:1;display:inline-flex}.ranked .leaderboard-close:active:not(:disabled){transform:translateY(2px)}.ranked .leaderboard-overlay-head h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ranked .leaderboard-overlay-body{-webkit-overflow-scrolling:touch;width:100%;min-height:0;max-width:var(--layout-column-max);padding:var(--space-4) var(--space-4) max(var(--safe-bottom), var(--space-5));flex:1;margin:0 auto;overflow-y:auto}.ranked .leaderboard{gap:var(--space-3);flex-direction:column;display:flex}.ranked .leaderboard-head{align-items:center;gap:var(--space-3);display:flex}.ranked .leaderboard-league-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.ranked .leaderboard-head select{flex:1;min-width:0}.ranked .leaderboard-list{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.ranked .leaderboard-row{align-items:center;gap:var(--space-3);min-height:var(--target-min);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-soft);font:var(--type-body-sm);color:var(--text-primary);display:flex}.ranked .leaderboard-row:last-child{border-bottom:none}.ranked .leaderboard-row.me{background-color:var(--surface-raised);background-image:linear-gradient(var(--structure-wash), var(--structure-wash));box-shadow:inset 3px 0 0 var(--color-structure)}.ranked .lb-rank{min-width:44px;font:var(--type-num-hud);font-variant-numeric:tabular-nums;color:var(--text-secondary)}.ranked .leaderboard-row.me .lb-rank{color:var(--color-structure)}.ranked .lb-name{font:var(--type-body-sm);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ranked .lb-you{font:var(--type-caption);color:var(--color-structure);font-weight:700}.ranked .leaderboard-pager{align-items:center;gap:var(--space-2);display:flex}.ranked .leaderboard-pager button{flex:1}.ranked .lb-page{font:var(--type-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.battle-pass-track{gap:var(--space-3);flex-direction:column;display:flex}.bp-header{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.bp-header .section-title{color:var(--text-heading);margin:0}.bp-progress-summary{font:var(--type-label);letter-spacing:.04em;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.bp-grace{gap:var(--space-2);padding-top:var(--space-3);border-top:1px dashed var(--border-soft);flex-direction:column;display:flex}.bp-scroll-container{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-left:var(--space-4);margin:0 calc(var(--space-4) * -1);padding:var(--space-2) var(--space-4);overflow:auto hidden}.bp-levels-wrapper{gap:var(--space-3);width:max-content;padding-right:var(--space-6);display:flex;position:relative}.bp-progress-spine{top:50%;left:0;right:var(--space-6);background:var(--track-bg);border-radius:var(--radius-pill);z-index:0;height:6px;position:absolute;transform:translateY(-50%)}.bp-progress-fill{background:var(--color-structure);border-radius:var(--radius-pill);height:100%;transition:width var(--motion-beat) var(--ease-out)}.bp-level-column{z-index:1;scroll-snap-align:start;justify-items:center;gap:var(--space-2);flex:none;grid-template-rows:1fr auto 1fr;width:124px;display:grid;position:relative}.bp-lane{justify-content:center;align-items:center;gap:var(--space-1);width:100%;height:100%;padding:var(--space-2);border-radius:var(--radius-control);flex-direction:column;display:flex}.bp-lane.free{background:var(--surface-sunk)}.bp-lane.premium{background:var(--accent-wash);box-shadow:inset 0 0 0 1px var(--accent-ring)}.bp-lane-label{font:var(--type-caption);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);font-weight:700}.bp-lane-label.premium{color:var(--text-primary)}.bp-reward-node{justify-content:center;align-items:center;gap:var(--space-1);width:100%;min-height:104px;padding:var(--space-2) var(--space-1);text-align:center;background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-control);flex-direction:column;flex:auto;display:flex}.bp-reward-node.locked{background:var(--surface-muted)}.bp-reward-node.claimable{border-color:var(--structure-ring);box-shadow:var(--shadow-panel)}.bp-reward-node.claimed{border-color:var(--success-ring)}.bp-reward-node.is-premium{border-color:var(--accent-ring)}.bp-node-icon{color:var(--text-secondary);font-size:18px;line-height:1}.bp-node-label{font:var(--type-caption);color:var(--text-primary);overflow-wrap:anywhere;line-height:1.25}.bp-status-badge{font:var(--type-caption);color:var(--color-success);line-height:1}.bp-status-badge.locked{color:var(--text-secondary)}.bp-claim-cta{width:100%;min-height:var(--target-min);padding:0 var(--space-2);font:var(--type-label);font-family:var(--font-display);letter-spacing:.08em;color:var(--color-structure-ink);background:var(--color-structure);border-radius:var(--radius-control);box-shadow:var(--shadow-press-structure);border:none}.bp-claim-cta:active:not(:disabled){box-shadow:0 2px 0 0 var(--color-structure-deep)}.bp-level-node{z-index:2;min-width:56px;min-height:26px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--border-soft);justify-content:center;align-items:center;display:flex;position:relative}.bp-level-node.unlocked{border-color:var(--structure-ring);background-color:var(--surface-raised);background-image:linear-gradient(var(--structure-wash), var(--structure-wash))}.bp-lvl-num{font:var(--type-caption);color:var(--text-secondary);white-space:nowrap;font-weight:700}.bp-level-node.unlocked .bp-lvl-num{color:var(--text-primary)}.audio-settings{gap:var(--space-2);flex-direction:column;display:flex}.audio-settings h3{margin:0 0 var(--space-1);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);font-size:13px;line-height:1.2}.audio-row{gap:var(--space-2);flex-direction:column;display:flex}.audio-toggle,.audio-volume{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--target-min);padding:var(--space-2) var(--space-3);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-control);cursor:pointer;display:flex}.audio-toggle-label,.audio-volume-label{font:var(--type-body);color:var(--text-primary)}.audio-volume-label{font:var(--type-body-sm);min-width:56px;font-weight:600}.audio-volume.disabled{opacity:.45;cursor:default}.audio-toggle input[type=checkbox]{appearance:none;width:52px;height:30px;min-height:unset;background:var(--surface-raised);border:2px solid var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);flex:none;padding:0;position:relative}.audio-toggle input[type=checkbox]:after{content:"";border-radius:var(--radius-pill);background:var(--text-secondary);width:20px;height:20px;transition:transform var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);position:absolute;top:3px;left:3px}.audio-toggle input[type=checkbox]:checked{background:var(--color-structure);border-color:var(--color-structure-deep)}.audio-toggle input[type=checkbox]:checked:after{background:var(--text-inverse);transform:translate(22px)}.audio-volume input[type=range]{min-width:0;min-height:var(--target-min);accent-color:var(--color-structure);cursor:pointer;background:0 0;border:none;flex:1;padding:0}.audio-volume input[type=range]:disabled{cursor:default}.audio-settings input:focus-visible{outline:2px solid var(--color-structure);outline-offset:3px}.audio-note{font:var(--type-caption);color:var(--text-secondary);margin:0}.settings-overlay{z-index:var(--z-overlay);background:radial-gradient(90% 55% at 50% 0%, var(--structure-wash) 0%, transparent 62%), radial-gradient(70% 45% at 95% 8%, var(--accent-wash) 0%, transparent 60%), var(--surface-base);padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;display:flex;position:fixed;inset:0}.settings-head{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;max-width:var(--layout-column-max);padding:max(var(--safe-top), var(--space-2)) var(--space-4) var(--space-3);background:var(--surface-raised);border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow-panel);flex:none;margin:0 auto;display:flex}.settings-head h2{font:var(--type-display-lg);color:var(--text-heading);text-transform:uppercase;letter-spacing:.02em;margin:0}.settings-close{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--surface-sunk);border:1px solid var(--structure-ring);color:var(--color-structure);font:var(--type-body-sm);flex:none;font-weight:700;line-height:1;display:inline-flex}.settings-close:active:not(:disabled){transform:translateY(2px)}.settings-head h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-body{width:100%;max-width:var(--layout-column-max);padding:var(--space-4) var(--space-4) calc(var(--space-6) + var(--safe-bottom));gap:var(--space-4);flex-direction:column;flex:1;margin:0 auto;display:flex;overflow-y:auto}.settings-group{gap:var(--space-3);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);padding:var(--space-4);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.settings-group>h3{font-family:var(--font-display);color:var(--text-secondary);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:13px;font-weight:400;line-height:1.2}.settings-toggle,.settings-select{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--target-min);cursor:pointer;display:flex}.settings-toggle+.settings-toggle,.settings-toggle+.settings-select,.settings-select+.settings-toggle{border-top:1px solid var(--border-soft)}.settings-toggle>span,.settings-select>span{font:var(--type-body-sm);color:var(--text-primary)}.settings-toggle input[type=checkbox]{width:22px;height:22px;min-height:unset;accent-color:var(--color-structure);cursor:pointer;flex:none;padding:0}.settings-toggle input[type=checkbox]:disabled{cursor:default;opacity:.55}.settings-select select{min-width:140px}.settings-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.settings-note,.delete-note{font:var(--type-caption);color:var(--text-secondary);margin:0}.settings-error,.settings-body .error{font:var(--type-body-sm);color:var(--color-danger);background:var(--danger-wash);border-radius:var(--radius-control);padding:var(--space-2) var(--space-3);margin:0}.settings-link-btn{min-height:var(--target-min);padding:0 var(--space-4);font:600 14px/1.1 var(--font-sans);color:var(--color-structure);background:var(--surface-raised);border:1px solid var(--structure-ring);border-radius:var(--radius-control);align-self:flex-start}.settings-signout-confirm{gap:var(--space-2);background:var(--surface-sunk);border-radius:var(--radius-control);padding:var(--space-3);flex-direction:column;display:flex}.settings-signout-confirm .settings-note{color:var(--text-primary)}.settings-signout-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.settings-signout-actions button.danger,.settings-body button.danger{border:1px solid var(--color-danger);background:var(--danger-wash);color:var(--color-danger);box-shadow:var(--shadow-press-ghost)}.settings-links{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.settings-link{font:var(--type-body-sm);color:var(--color-structure);text-underline-offset:2px;min-height:var(--target-min);align-items:center;font-weight:600;text-decoration:underline;display:inline-flex}.settings-support-id{gap:var(--space-1);flex-direction:column;display:flex}.settings-support-id-row{align-items:center;gap:var(--space-2);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);display:flex}.settings-support-id-value{min-width:0;color:var(--text-primary);word-break:break-all;-webkit-user-select:all;user-select:all;flex:1;font-family:ui-monospace,Cascadia Mono,Menlo,monospace;font-size:13px;line-height:1.4}.settings-copy{min-height:var(--target-min);padding:0 var(--space-4);flex:none}.settings-build{font:var(--type-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text;margin:0}.delete-flow{gap:var(--space-3);border-top:1px solid var(--border-soft);padding-top:var(--space-3);flex-direction:column;display:flex}.delete-lead{font:var(--type-body-sm);color:var(--text-primary);margin:0}.delete-columns{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.delete-list{background:var(--surface-sunk);border-radius:var(--radius-control);padding:var(--space-3)}.delete-list h4{margin:0 0 var(--space-1);font:var(--type-label);text-transform:uppercase;letter-spacing:.08em}.delete-list.erased h4{color:var(--color-danger)}.delete-list.retained h4{color:var(--text-primary)}.delete-list ul{padding-left:var(--space-4);gap:var(--space-1);flex-direction:column;margin:0;display:flex}.delete-list li{font:var(--type-caption);color:var(--text-primary)}.delete-confirm{align-items:flex-start;gap:var(--space-2);font:var(--type-body-sm);color:var(--text-primary);cursor:pointer;display:flex}.delete-confirm input[type=checkbox]{min-height:unset;width:20px;height:20px;accent-color:var(--color-danger);cursor:pointer;margin-top:2px;padding:0}.delete-button{min-height:var(--target-action);padding:0 var(--space-5);font:400 15px/1.1 var(--font-display);letter-spacing:.02em;align-self:flex-start}.delete-scheduled-line{font:var(--type-body);color:var(--text-primary);margin:0}.delete-scheduled-line strong{color:var(--color-danger)}.tag{font:var(--type-body-sm);color:var(--text-secondary)}.shop.shop{width:100%;max-width:var(--layout-column-max);padding:calc(var(--space-3) + var(--safe-top)) max(var(--space-3), var(--safe-right)) var(--space-6) max(var(--space-3), var(--safe-left));gap:var(--space-4);color:var(--text-primary);flex-direction:column;margin:0 auto;display:flex}.shop.shop .shop-head{align-items:baseline;gap:var(--space-3);display:flex}.shop.shop .shop-head h2{font:var(--type-display-lg);color:var(--text-heading);margin:0}.shop.shop .shop-head .tag{font:var(--type-caption);color:var(--text-secondary)}.shop.shop .error{padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);border:1px solid var(--color-danger);background:var(--danger-wash);font:var(--type-body-sm);color:var(--color-danger);margin:0}.shop.shop .shop-wallet{gap:var(--space-2);display:flex}.shop.shop .wallet-balance{justify-content:center;align-items:center;gap:var(--space-2);min-height:40px;padding:var(--space-1) var(--space-3);background:var(--accent-wash);border:1px solid var(--accent-ring);border-radius:var(--radius-pill);font:var(--type-body-sm);color:var(--text-secondary);flex:1;display:inline-flex}.shop.shop .wallet-glyph{color:color-mix(in srgb, var(--color-accent-deep) 65%, var(--text-primary));font-size:15px}.shop.shop .wallet-balance strong{font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:16px;font-weight:400}.shop.shop .shop-section{gap:var(--space-3);flex-direction:column;display:flex}.shop.shop .shop-section h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);margin:0;font-size:13px;font-weight:400}.shop.shop .primary,.shop.shop .structure{font-variant-numeric:tabular-nums}.shop.shop .banner-tabs{gap:var(--space-2);padding-bottom:var(--space-1);display:flex;overflow-x:auto}.shop.shop .banner-tab{min-height:var(--target-min);padding:0 var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border-soft);background:var(--surface-raised);color:var(--text-secondary);font:var(--type-body-sm);box-shadow:var(--shadow-press-ghost);flex:none;font-weight:600}.shop.shop .banner-tab.is-selected{background:var(--structure-wash);border-color:var(--structure-ring);color:var(--color-structure-deep)}.shop.shop .banner-card{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-card);border:1px solid var(--border-soft);background:var(--surface-raised);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.shop.shop .banner-art{border-radius:var(--radius-control);border:1px solid var(--border-soft);background:radial-gradient(90% 150% at 85% 0%, color-mix(in srgb, var(--color-celebrate) 24%, transparent), transparent 62%), linear-gradient(135deg, color-mix(in srgb, var(--color-structure) 26%, transparent), color-mix(in srgb, var(--color-accent) 34%, transparent));height:132px;position:relative;overflow:hidden}.shop.shop .banner-art img{object-fit:cover;width:100%;height:100%;display:block}.shop.shop .banner-body{gap:var(--space-3);flex-direction:column;display:flex}.shop.shop .banner-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.shop.shop .banner-name{font:var(--type-title);color:var(--text-heading)}.shop.shop .banner-featured{border-radius:var(--radius-pill);background:var(--structure-wash);border:1px solid var(--structure-ring);font:var(--type-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--color-structure-deep);padding:2px 8px;font-weight:700;display:inline-block}.shop.shop .banner-actions{gap:var(--space-2);display:flex}.shop.shop .banner-actions button{min-height:var(--target-action);padding:0 var(--space-3);border-radius:var(--radius-control);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:16px;display:flex}.shop.shop .banner-cost{font:var(--type-caption);letter-spacing:.02em;text-transform:none;opacity:.85;font-weight:600}.shop.shop .pity{gap:var(--space-1);flex-direction:column;display:flex}.shop.shop .pity-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);font:var(--type-caption);color:var(--text-secondary);font-weight:700;display:flex}.shop.shop .pity-head .pity-count{color:var(--text-primary)}.shop.shop .pity-note{font:var(--type-caption);color:var(--text-secondary)}.shop.shop .pity-guarantee{font:var(--type-caption);color:color-mix(in srgb, var(--color-success) 45%, var(--text-primary));font-weight:600}.shop.shop .drop-rates{font:var(--type-body-sm);color:var(--text-secondary);border-top:1px solid var(--border-soft);padding-top:var(--space-1)}.shop.shop .drop-rates summary{align-items:center;gap:var(--space-1);min-height:var(--target-min);cursor:pointer;font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--color-structure-deep);-webkit-tap-highlight-color:transparent;list-style:none;display:flex}.shop.shop .drop-rates summary::-webkit-details-marker{display:none}.shop.shop .drop-rates summary:after{content:"▾";transition:transform var(--motion-fast) var(--ease-out)}.shop.shop .drop-rates[open] summary:after{transform:rotate(180deg)}.shop.shop .drop-rates-body{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3);border-radius:var(--radius-control);background:var(--surface-sunk);flex-direction:column;display:flex}.shop.shop .odds-table{border-collapse:collapse;width:100%;font:var(--type-caption)}.shop.shop .odds-table th{padding:var(--space-1) var(--space-2);text-align:left;border-bottom:1px solid var(--border-strong);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.shop.shop .odds-table td{padding:var(--space-2);text-align:left;border-bottom:1px solid var(--border-soft);vertical-align:top;color:var(--text-primary);overflow-wrap:anywhere}.shop.shop .odds-table tr:last-child td{border-bottom:0}.shop.shop .odds-rate{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.shop.shop .drop-rates-note{font:var(--type-caption);color:var(--text-secondary);margin:0}.shop.shop .drop-rates-note p+p{margin-top:var(--space-1)}.shop.shop .rarity-chip,.gacha-ceremony .rarity-chip{color:color-mix(in srgb, var(--rarity,var(--rarity-common)) 55%, var(--text-primary));background:color-mix(in srgb, var(--rarity,var(--rarity-common)) 18%, transparent);border:1px solid color-mix(in srgb, var(--rarity,var(--rarity-common)) 45%, transparent);white-space:nowrap}.shop.shop .offer-list{gap:var(--space-3);display:grid}.shop.shop .pack-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.shop.shop .offer-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-card);border:1px solid var(--border-soft);background:var(--surface-raised);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.shop.shop .offer-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.shop.shop .offer-name{font:var(--type-title);color:var(--text-heading);overflow-wrap:anywhere;margin:0}.shop.shop .offer-contents-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.shop.shop .offer-grants{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.shop.shop .offer-grant{align-items:center;gap:var(--space-2);min-height:32px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-control);background:var(--surface-sunk);font:var(--type-body-sm);color:var(--text-primary);display:flex}.shop.shop .offer-grant-dot{border-radius:var(--radius-pill);background:var(--color-structure);flex:none;width:6px;height:6px}.shop.shop .offer-grant-name{overflow-wrap:anywhere;flex:auto}.shop.shop .offer-grant-amount{font-variant-numeric:tabular-nums;flex:none;font-weight:700}.shop.shop .offer-foot{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:auto;display:flex}.shop.shop .offer-price{flex-direction:column;min-width:0;display:flex}.shop.shop .offer-price-now{font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:18px}.shop.shop .offer-price-was{font:var(--type-caption);color:var(--text-secondary);text-decoration:line-through}.shop.shop .offer-card.is-inert{background:var(--surface-muted);box-shadow:none}.shop.shop .offer-soon{border-radius:var(--radius-pill);background:var(--surface-sunk);border:1px solid var(--border-strong);font:var(--type-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);align-self:flex-start;padding:2px 10px;font-weight:700}.shop.shop .reward-slot{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-card);border:1px dashed var(--border-strong);background:var(--surface-muted);display:flex}.shop.shop .reward-slot-body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.shop.shop .reward-slot-name{font:var(--type-body-sm);color:var(--text-primary);font-weight:700}.shop.shop .reward-slot-note{font:var(--type-caption);color:var(--text-secondary)}.shop.shop .restore-link{min-height:var(--target-min);box-shadow:none;color:var(--color-structure-deep);font:var(--type-body-sm);cursor:pointer;background:0 0;border:none;border-radius:0;align-self:flex-start;padding:0;font-weight:600;text-decoration:underline}.shop.shop .restore-link:active:not(:disabled){box-shadow:none;transform:none}.gacha-ceremony.gacha-ceremony{z-index:30;justify-content:center;align-items:center;gap:var(--space-4);padding:calc(var(--space-5) + var(--safe-top)) max(var(--space-5), var(--safe-right)) calc(var(--space-5) + var(--safe-bottom)) max(var(--space-5), var(--safe-left));color:var(--text-primary);background-color:var(--surface-base);background-image:radial-gradient(110% 70% at 50% 12%, color-mix(in srgb, var(--color-celebrate) 16%, transparent), transparent 64%), radial-gradient(120% 80% at 50% 100%, color-mix(in srgb, var(--color-structure) 12%, transparent), transparent 62%);flex-direction:column;display:flex;position:fixed;inset:0}.gacha-ceremony .gacha-skip{top:calc(var(--space-3) + var(--safe-top));right:max(var(--space-3), var(--safe-right));z-index:1;min-height:var(--target-min);padding:0 var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-primary);font:var(--type-body-sm);box-shadow:var(--shadow-press-ghost);font-weight:700;position:absolute}.gacha-ceremony .gacha-anticipation{align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.gacha-ceremony .gacha-seal{justify-content:center;align-items:center;width:140px;height:140px;display:flex;position:relative}.gacha-ceremony .gacha-seal-outer{border:2px dashed color-mix(in srgb, var(--color-structure) 45%, transparent);border-radius:50%;animation:10s linear infinite gacha-seal-spin;position:absolute;inset:0}.gacha-ceremony .gacha-seal-inner{border:2px solid color-mix(in srgb, var(--rarity,var(--color-celebrate)) 55%, transparent);border-radius:50%;animation:6s linear infinite gacha-seal-spin-reverse;position:absolute;inset:16px}.gacha-ceremony .gacha-seal-core{background:linear-gradient(180deg, var(--color-accent), var(--color-accent-deep));width:64px;height:64px;color:var(--color-accent-ink);box-shadow:var(--shadow-card);border-radius:50%;justify-content:center;align-items:center;animation:1.2s ease-in-out infinite gacha-core-pulse;display:flex;position:absolute}.gacha-ceremony .gacha-seal-sigil{font-size:28px;line-height:1}@keyframes gacha-seal-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gacha-seal-spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes gacha-core-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.gacha-ceremony .gacha-anticipation-label{font:var(--type-label);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary)}.gacha-ceremony .gacha-reveal{align-items:center;gap:var(--space-4);padding:var(--space-4);min-height:var(--target-action);border-radius:var(--radius-card);box-shadow:none;color:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;display:flex}.gacha-ceremony .gacha-reveal:active:not(:disabled){box-shadow:none;transform:none}.gacha-ceremony .gacha-card-wrapper{perspective:1000px;width:220px;height:310px}.gacha-ceremony .gacha-card-3d{width:100%;height:100%;transform-style:preserve-3d;transition:transform calc(var(--motion-beat) * 2) var(--ease-out);position:relative}.gacha-ceremony .gacha-card-3d.flipped{transform:rotateY(180deg)}.gacha-ceremony .gacha-card-back,.gacha-ceremony .gacha-card-front{backface-visibility:hidden;border-radius:var(--radius-card);padding:var(--space-4);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gacha-ceremony .gacha-card-back{background:linear-gradient(160deg, var(--color-structure), var(--color-structure-deep));border:1px solid var(--color-structure-deep);color:var(--color-structure-ink);box-shadow:var(--shadow-card);transform:rotateY(0)}.gacha-ceremony .gacha-card-back-seal{font-size:54px;line-height:1}.gacha-ceremony .gacha-card-front{background:var(--surface-raised);border:2px solid var(--border-strong);box-shadow:var(--shadow-card);gap:var(--space-2);overflow:hidden;transform:rotateY(180deg)}.gacha-ceremony .gacha-card-front.rarity-common,.gacha-ceremony .gacha-card-front.rarity-rare,.gacha-ceremony .gacha-card-front.rarity-epic,.gacha-ceremony .gacha-card-front.rarity-legendary{border-color:color-mix(in srgb, var(--rarity) 78%, var(--text-primary))}.gacha-ceremony .gacha-card-front.rarity-rare,.gacha-ceremony .gacha-card-front.rarity-epic,.gacha-ceremony .gacha-card-front.rarity-legendary{box-shadow:var(--shadow-card), 0 0 0 4px color-mix(in srgb, var(--rarity) 22%, transparent)}.gacha-ceremony .gacha-card-front.rarity-legendary{box-shadow:var(--shadow-card), 0 0 0 4px color-mix(in srgb, var(--rarity) 26%, transparent), 0 0 0 8px color-mix(in srgb, var(--rarity) 12%, transparent)}.gacha-ceremony .gacha-card-foil{border-radius:inherit;pointer-events:none;position:absolute;inset:0}.gacha-ceremony .gacha-card-tier{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.gacha-ceremony .tier-pips{gap:4px;display:flex}.gacha-ceremony .tier-pip{background:color-mix(in srgb, var(--rarity,var(--text-secondary)) 78%, var(--text-primary));border-radius:2px;width:7px;height:7px;transform:rotate(45deg)}.gacha-ceremony .gacha-card-kind{font:var(--type-caption);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-weight:700}.gacha-ceremony .gacha-card-icon{background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;display:flex}.gacha-ceremony .gacha-card-item-glyph{font-size:36px;line-height:1}.gacha-ceremony .gacha-card-name{font-family:var(--font-display);color:var(--text-heading);text-align:center;overflow-wrap:anywhere;font-size:18px}.gacha-ceremony .gacha-card-badge{border-radius:var(--radius-pill);background:var(--surface-sunk);border:1px solid var(--border-soft);font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;padding:2px 10px;font-size:14px}.gacha-ceremony .gacha-progress{font:var(--type-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums;letter-spacing:.06em}.gacha-ceremony .gacha-summary{align-items:center;gap:var(--space-4);width:100%;max-width:var(--layout-column-max);flex-direction:column;display:flex}.gacha-ceremony .gacha-summary-title{font:var(--type-display-lg);color:var(--text-heading);text-align:center;margin:0}.gacha-ceremony .gacha-summary-empty{font:var(--type-body-sm);color:var(--text-secondary)}.gacha-ceremony .gacha-summary-grid{gap:var(--space-3);width:100%;max-height:50dvh;padding:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid;overflow-y:auto}.gacha-ceremony .gacha-summary-cell{justify-content:flex-start;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-radius:var(--radius-card);border:2px solid var(--border-soft);background:var(--surface-raised);box-shadow:var(--shadow-panel);text-align:center;animation:gacha-summary-pop var(--motion-beat) var(--ease-out) both;flex-direction:column;display:flex}.gacha-ceremony .gacha-summary-cell.rarity-common,.gacha-ceremony .gacha-summary-cell.rarity-rare,.gacha-ceremony .gacha-summary-cell.rarity-epic,.gacha-ceremony .gacha-summary-cell.rarity-legendary{border-color:color-mix(in srgb, var(--rarity) 78%, var(--text-primary))}@keyframes gacha-summary-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.gacha-ceremony .summary-cell-glyph{font-size:24px;line-height:1}.gacha-ceremony .gacha-summary-name{font:var(--type-caption);color:var(--text-primary);overflow-wrap:anywhere;font-weight:600}.gacha-ceremony .gacha-summary-amount{font:var(--type-body-sm);font-variant-numeric:tabular-nums;color:var(--text-primary);font-weight:700}.shop.shop .gacha-summary-done,.gacha-ceremony .gacha-summary-done{min-height:var(--target-action);padding:0 var(--space-7);border-radius:var(--radius-card);font-size:18px}@media (prefers-reduced-motion:reduce){.gacha-ceremony .gacha-seal-outer,.gacha-ceremony .gacha-seal-inner,.gacha-ceremony .gacha-seal-core,.gacha-ceremony .gacha-summary-cell{animation:none}.shop.shop .drop-rates summary:after{transition:none}}:root[data-reduced-motion=true] .gacha-ceremony .gacha-seal-outer,:root[data-reduced-motion=true] .gacha-ceremony .gacha-seal-inner,:root[data-reduced-motion=true] .gacha-ceremony .gacha-seal-core,:root[data-reduced-motion=true] .gacha-ceremony .gacha-summary-cell{animation:none}:root[data-reduced-motion=true] .shop.shop .drop-rates summary:after{transition:none}div.special{width:calc(100% - 2 * var(--space-3));max-width:calc(var(--layout-column-max) - 2 * var(--space-3));margin:var(--space-2) auto var(--space-5);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);gap:var(--space-3);flex-direction:column;display:flex}.special .special-head{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.special .special-head h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);margin:0;font-size:13px;line-height:1.2}.special .special-mode{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-sunk);border:1px solid var(--border-soft);border-radius:var(--radius-card);grid-template-columns:minmax(0,1fr) auto;display:grid}.special .special-mode-name{min-width:0;font-family:var(--font-display);color:var(--text-primary);overflow-wrap:anywhere;font-size:17px;line-height:1.2}.special .tag{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-success) 18%, transparent);font:var(--type-body-sm);color:var(--text-primary);white-space:nowrap;font-weight:600;display:inline-flex}.special .tag:before{content:"";border-radius:var(--radius-pill);background:var(--color-success);width:8px;height:8px;animation:special-live-pulse 2s var(--ease-out) infinite;flex:none}@keyframes special-live-pulse{0%,to{opacity:.45}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.special .tag:before{opacity:1;animation:none}}:root[data-reduced-motion=true] .special .tag:before{opacity:1;animation:none}.legal-gate{z-index:var(--z-gate);background:radial-gradient(95% 55% at 50% 4%, var(--structure-wash) 0%, transparent 62%), radial-gradient(70% 45% at 88% 16%, var(--accent-wash) 0%, transparent 58%), var(--surface-base);padding:calc(var(--space-5) + var(--safe-top)) calc(var(--space-4) + var(--safe-right)) 0 calc(var(--space-4) + var(--safe-left));flex-direction:column;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.legal-gate-hero{width:100%;max-width:var(--layout-column-max);justify-content:center;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-5) 0;flex-direction:column;flex:1;display:flex}.legal-gate-mark{margin-bottom:var(--space-2);justify-content:center;align-items:center;display:flex;position:relative}.legal-gate-mark:before{content:"";border-radius:var(--radius-pill);background:radial-gradient(circle at 50% 50%, var(--accent-wash) 0%, transparent 68%);pointer-events:none;position:absolute;inset:-14%}.legal-gate-logo{width:min(46vw,176px);height:auto;filter:drop-shadow(0 16px 24px var(--accent-glow));position:relative}.legal-gate-wordmark{font:var(--type-display-xl);color:var(--color-structure);text-transform:uppercase;letter-spacing:.02em;max-width:8ch;margin:0;line-height:1.02;position:relative}.legal-gate-title{font:var(--type-display-lg);color:var(--text-heading);text-wrap:balance;margin:0}.legal-gate-tagline{max-width:30ch;font:var(--type-body);color:var(--text-primary);margin:0;animation-delay:.12s}.legal-gate-foot{width:100%;max-width:var(--layout-column-max);gap:var(--space-3);padding-bottom:max(var(--safe-bottom), var(--space-5));flex-direction:column;flex:none;display:flex}.legal-gate-agree{width:100%;min-height:var(--target-action);font-size:17px}.legal-gate-consent{text-align:center;font:var(--type-body-sm);color:var(--text-primary);margin:0;line-height:2}.legal-gate-consent a{padding:var(--space-1) 2px;color:var(--color-structure);text-underline-offset:2px;font-weight:600;text-decoration:underline;display:inline-block}@media (prefers-reduced-motion:reduce){.legal-gate-tagline{animation-delay:0s}}:root[data-reduced-motion=true] .legal-gate-tagline{animation-delay:0s}.force-update{z-index:var(--z-blocking);background:radial-gradient(95% 55% at 50% 4%, var(--structure-wash) 0%, transparent 62%), radial-gradient(70% 45% at 88% 16%, var(--accent-wash) 0%, transparent 58%), var(--surface-base);padding:calc(var(--space-5) + var(--safe-top)) calc(var(--space-4) + var(--safe-right)) calc(var(--space-5) + var(--safe-bottom)) calc(var(--space-4) + var(--safe-left));justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.force-update-card{width:100%;max-width:var(--layout-column-max);gap:var(--space-4);background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5);text-align:center;flex-direction:column;display:flex}.force-update-title{font:var(--type-display-lg);color:var(--text-heading);text-transform:uppercase;letter-spacing:.02em;text-wrap:balance;margin:0}.force-update-body{font:var(--type-body);color:var(--text-secondary);text-wrap:pretty;margin:0}.force-update-cta{width:100%;min-height:var(--target-action);margin-top:var(--space-1);font-size:17px}.force-update-hint{padding:var(--space-3);background:var(--surface-sunk);border-radius:var(--radius-control);font:var(--type-body);color:var(--text-primary);margin:0;font-weight:600}.global-header-bar{z-index:var(--z-header);align-items:center;gap:var(--space-3);width:100%;max-width:var(--layout-column-max);padding:max(var(--safe-top), var(--space-2)) var(--space-4) var(--space-2);background:color-mix(in srgb, var(--surface-raised) 86%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.08);border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow-panel);grid-template-columns:minmax(0,1fr) auto;margin:0 auto;display:grid;position:sticky;top:0}@supports not ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){.global-header-bar{background:var(--surface-raised)}}.header-player-profile,.currency-pill,.header-settings-gear{font:var(--type-body-sm);color:var(--text-primary);cursor:pointer}.header-player-profile:focus-visible,.currency-pill:focus-visible,.header-settings-gear:focus-visible{outline:2px solid var(--color-structure);outline-offset:2px}.header-player-profile{align-items:center;gap:var(--space-2);min-width:0;min-height:var(--target-min);border-radius:var(--radius-pill);box-shadow:none;text-align:left;background:0 0;border:0;padding:0;display:flex}.header-player-profile:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.header-avatar-frame{width:var(--target-min);height:var(--target-min);background:var(--structure-wash);border:1px solid var(--border-soft);border-radius:50%;flex:none;place-items:center;font-size:20px;line-height:1;display:grid;position:relative}.header-avatar-frame img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-icon{line-height:1}.player-level-badge{border-radius:var(--radius-pill);background:var(--color-structure);min-width:20px;height:20px;color:var(--color-structure-ink);border:2px solid var(--surface-raised);font-family:var(--font-display);justify-content:center;align-items:center;padding:0 4px;font-size:11px;line-height:1;display:flex;position:absolute;bottom:-2px;right:-2px}.header-player-info{flex-direction:column;justify-content:center;gap:1px;min-width:0;display:flex}.player-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.15;overflow:hidden}.player-title{font:var(--type-caption);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-currencies{align-items:center;gap:var(--space-2);flex:none;display:flex}.currency-pill{min-height:var(--target-min);padding:0 var(--space-2) 0 5px;border-radius:var(--radius-pill);background:var(--surface-sunk);border:1px solid var(--border-soft);box-shadow:none;flex:none;align-items:center;gap:5px;font-weight:700;display:inline-flex}.currency-pill:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.currency-glyph{border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:13px;line-height:1;display:grid}.currency-glyph img,.currency-glyph svg{object-fit:contain;width:100%;height:100%;display:block}.currency-pill.soft .currency-glyph{background:var(--color-accent);color:var(--color-accent-ink)}.currency-pill.hard .currency-glyph{background:var(--color-structure);color:var(--color-structure-ink)}:is(.currency-pill .currency-glyph:has(img),.currency-pill .currency-glyph:has(svg)){background:0 0}.currency-amount{font-family:var(--font-sans);color:var(--text-primary);font-size:14px;font-weight:700}.currency-add-chip{background:var(--surface-raised);border:1px solid var(--border-soft);width:18px;height:18px;color:var(--color-structure);font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-size:12px;line-height:1;display:grid}.header-settings-gear{width:var(--target-min);height:var(--target-min);min-height:var(--target-min);background:var(--surface-raised);border:1px solid var(--border-soft);box-shadow:var(--shadow-press-ghost);border-radius:50%;flex:none;place-items:center;padding:0;font-size:18px;line-height:1;display:grid}@media (hover:hover){.header-player-profile:hover .header-avatar-frame{border-color:var(--structure-ring)}.currency-pill:hover{background:var(--surface-raised);border-color:var(--border-strong)}.header-settings-gear:hover{transform:rotate(30deg)}}.header-settings-gear:active:not(:disabled){box-shadow:none;transform:translateY(2px)}@media (width<=430px){.currency-add-chip{display:none}}@media (prefers-reduced-motion:reduce){.header-settings-gear:hover{transform:none}}:root[data-reduced-motion=true] .header-settings-gear:hover{transform:none}.app-shell{min-height:100dvh;color:var(--text-primary);font:var(--type-body);padding-left:var(--safe-left);padding-right:var(--safe-right);padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom))}.app-shell.match-fullscreen{padding-bottom:var(--safe-bottom)}.tab-bar{z-index:10;align-items:stretch;gap:var(--space-2);height:calc(var(--tabbar-height) + var(--safe-bottom));padding:0 max(var(--safe-right), var(--space-2)) var(--safe-bottom) max(var(--safe-left), var(--space-2));background:var(--surface-raised);border-top:1px solid var(--border-soft);box-shadow:0 -10px 26px -20px var(--surface-scrim);max-width:var(--layout-column-max);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar.hidden{display:none}.tab-item{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--target-action);border-radius:var(--radius-control);min-width:0;box-shadow:none;color:var(--text-secondary);transition:color var(--motion-fast) var(--ease-out);background:0 0;border:none;flex-direction:column;flex:1;padding:0;display:flex;position:relative}.tab-item:focus-visible{outline:2px solid var(--color-structure);outline-offset:-2px}.tab-item:active:not(:disabled){box-shadow:none;transform:none}.tab-item:active:not(:disabled) .tab-item-chip{filter:brightness(.96)}.tab-item-chip{border-radius:var(--radius-control);width:48px;max-width:100%;height:30px;transition:background var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);background:0 0;place-items:center;display:grid;position:relative}.tab-icon{transition:transform var(--motion-fast) var(--ease-out)}.tab-item-label{font:var(--type-caption);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.tab-item.active{color:var(--color-structure)}.tab-item.active .tab-item-chip{background:var(--structure-wash);box-shadow:0 6px 12px -8px var(--color-structure);transform:translateY(-2px)}.tab-item.active .tab-icon{transform:scale(1.08)}.tab-item-underline{border-radius:var(--radius-pill);background:var(--color-structure);opacity:0;width:0;height:3px;transition:width var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out);position:absolute;bottom:0}.tab-item.active .tab-item-underline{opacity:1;width:22px}.tab-pane.hidden,.hidden-while-in-match{display:none}.tab-item.locked:not(.active) .tab-item-chip{background:var(--surface-muted)}.tab-item.locked:not(.active) .tab-icon{opacity:.8}.tab-lock{border-radius:var(--radius-pill);background:var(--surface-raised);width:15px;height:15px;color:var(--text-secondary);box-shadow:0 0 0 1px var(--border-strong);place-items:center;display:grid;position:absolute;top:-4px;right:1px}@media (prefers-reduced-motion:reduce){.tab-item,.tab-item-chip,.tab-icon,.tab-item-underline{transition:none}}:root[data-reduced-motion=true] .tab-item,:root[data-reduced-motion=true] .tab-item-chip,:root[data-reduced-motion=true] .tab-icon,:root[data-reduced-motion=true] .tab-item-underline{transition:none}.return-to-match{left:0;right:0;bottom:calc(var(--tabbar-height) + var(--safe-bottom));z-index:11;justify-content:space-between;align-items:center;gap:var(--space-3);max-width:var(--layout-column-max);padding:var(--space-2) max(var(--safe-right), var(--space-3)) var(--space-2) max(var(--safe-left), var(--space-3));background:var(--surface-raised);border-top:1px solid var(--border-soft);box-shadow:0 -10px 26px -20px var(--surface-scrim);color:var(--text-primary);font:var(--type-body-sm);margin:0 auto;display:flex;position:fixed}.return-to-match-text{text-overflow:ellipsis;min-width:0;font-weight:700;overflow:hidden}.return-to-match button{flex:none}.deletion-banner{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-3);padding:calc(var(--space-2) + var(--safe-top)) var(--space-4) var(--space-2);background:linear-gradient(var(--danger-wash), var(--danger-wash)), var(--surface-raised);border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow-panel);color:var(--text-primary);font:var(--type-body-sm);display:flex;position:sticky;top:0}.deletion-banner-undo{flex:none}.push-prompt{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-3);padding:calc(var(--space-2) + var(--safe-top)) var(--space-4) var(--space-2);background:var(--surface-raised);border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow-panel);color:var(--text-primary);font:var(--type-body-sm);display:flex;position:sticky;top:0}.push-prompt-actions{gap:var(--space-2);flex:none;display:flex}.back-confirm-overlay{z-index:var(--z-dialog);background:var(--surface-scrim);padding:var(--space-5);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.back-confirm{background:var(--surface-overlay);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-4);gap:var(--space-3);flex-direction:column;max-width:340px;display:flex}.back-confirm p{margin:0}.back-confirm>p:first-of-type{font:var(--type-title);color:var(--text-heading)}.back-confirm-note{font:var(--type-body-sm);color:var(--text-secondary)}.back-confirm-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.locked-tease .locked-tease-head{padding:var(--space-4)}.locked-tease-body{align-items:center;gap:var(--space-3);margin:var(--space-4);padding:var(--space-6) var(--space-4);border-radius:var(--radius-card);background:var(--surface-raised);border:1px solid var(--border-soft);box-shadow:var(--shadow-card);text-align:center;color:var(--text-secondary);flex-direction:column;display:flex}.locked-tease-icon{font-size:40px;line-height:1}.locked-tease-msg{max-width:32ch;font:var(--type-body-sm);margin:0}
