@font-face{font-family:Fredoka;src:url(/fonts/Fredoka-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Manrope;src:url(/fonts/Manrope-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Manrope;src:url(/fonts/Manrope-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Fredoka;src:url(/fonts/Fredoka-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Fredoka;src:url(/fonts/Fredoka-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Fredoka;src:url(/fonts/Fredoka-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-800.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/Atkinson-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/Atkinson-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--color-cta-primary:#f7a920;--color-cta-primary-top:#ffc24d;--color-cta-primary-deep:#d98708;--color-cta-confirm:#6bae4a;--color-cta-confirm-top:#82c75f;--color-cta-confirm-deep:#4e8c33;--color-cta-destructive:#c73c28;--color-cta-destructive-top:#ee5d43;--color-cta-destructive-deep:#9b2310;--color-currency-gem:#b14a93;--color-currency-gem-deep:#8e2f72;--color-currency-coin:#f7a920;--color-text-primary:#3b2a1c;--color-text-secondary:#6e5a47;--color-text-tertiary:#a88e73;--color-text-stroke:#3b2a1c;--color-cube-stroke:#6e5a47;--color-inkwell:#3b2a1c;--color-shadow:#78461447;--color-shadow-warm:0 12px 24px #78461447;--color-scrim:color-mix(in srgb, var(--color-inkwell) 42%, transparent);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-2xl:12px;--radius-3xl:14px;--radius-pill:999px;--font-size-9:calc(9px * var(--font-scale));--font-size-10:calc(10px * var(--font-scale));--font-size-11:calc(11px * var(--font-scale));--font-size-12:calc(12px * var(--font-scale));--font-size-13:calc(13px * var(--font-scale));--font-size-14:calc(14px * var(--font-scale));--font-size-16:calc(16px * var(--font-scale));--font-size-18:calc(18px * var(--font-scale));--font-size-20:calc(20px * var(--font-scale));--font-size-22:calc(22px * var(--font-scale));--font-size-36:calc(36px * var(--font-scale));--font-size-52:calc(52px * var(--font-scale));--font-size-100:calc(100px * var(--font-scale));--shadow-sm:0 4px 8px var(--color-shadow);--shadow-md:0 8px 20px var(--color-shadow);--shadow-lg:0 12px 24px #78461447;--shadow-display-drop:0 6px 0 var(--color-inkwell);--proto-piece-a-top:#f8f0d8;--proto-piece-a-deep:#d8c8a0;--proto-piece-b-top:#4a3a2a;--proto-piece-b-deep:#2a1e14;--proto-disabled-top:#cdbba0;--proto-disabled-mid:#b09a7e;--proto-disabled-deep:#8a745a;--proto-frozen-bg:#b8e6ff;--proto-frozen-stroke:#5a8eb0;--proto-frozen-side:#2a4a66;--proto-rune-highlight:#ffe4a3;--color-on-action:#fff;--color-text-halo:#fff8ec;--color-paper:#fff8ec;--color-paper-2:#fcefd6;--color-paper-3:#f7e4be;--color-card:#fffdf7;--color-sky-1:#ffe6bf;--color-sky-2:#fff4dd;--color-ink:#3b2a1c;--color-ink-soft:#6e5a47;--color-ink-faint:#a88e73;--color-ink-ghost:#d8c4a8;--color-player-a-soft:#ffd8cc;--color-player-a-tint:#fceae2;--color-player-a-deep:#c73c28;--color-player-b-soft:#c7ece8;--color-player-b-tint:#e2f3f1;--color-player-b-deep:#197b75;--color-accent-gold:#f7a920;--color-accent-gold-deep:#d98708;--color-medal-silver:#9db0bc;--color-medal-bronze:#c8956a;--color-accent-leaf:#6bae4a;--color-accent-leaf-deep:#4e8c33;--color-accent-plum:#b14a93;--color-accent-plum-deep:#8e2f72;--color-accent-grape:#7b6bdd;--color-accent-sky:#3f9be0;--color-rarity-common-bg:#fbefd3;--color-rarity-common-ink:#6e5a47;--color-rarity-common-gem:#c9b48c;--color-rarity-uncommon-bg:#e2f0cf;--color-rarity-uncommon-ink:#4e8c33;--color-rarity-uncommon-gem:#6bae4a;--color-rarity-rare-bg:#d4ecf6;--color-rarity-rare-ink:#2c7bb0;--color-rarity-rare-gem:#3f9be0;--color-rarity-royal-bg:#f4ddf0;--color-rarity-royal-ink:#8e2f72;--color-rarity-royal-gem:#b14a93;--radius-tile:15px;--radius-btn:19px;--radius-card:28px;--shadow-card:0 2px 1px #78501e0a, 0 10px 24px -10px #78461447;--shadow-pop:0 6px 14px -4px #7846144d, 0 18px 40px -16px #78461457;--shadow-tile:0 2px 0 #966e3238, 0 3px 5px #7846141a;--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.22, .9, .32, 1);--duration-fast:.14s;--duration-med:.26s;--font-scale:1;--font-family-body:"Nunito", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-family-display:"Fredoka", system-ui, -apple-system, sans-serif;font-family:var(--font-family-body);font-feature-settings:"tnum" 1;-webkit-text-size-adjust:100%;text-rendering:optimizelegibility}[data-font-scale="1.15"]{--font-scale:1.15}[data-font-scale="1.30"]{--font-scale:1.3}:root{--color-skip-link-bg:var(--color-cta-primary,#ffc53d);--color-skip-link-text:#3b2a1c}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:inherit}:focus:not(:focus-visible){outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{box-sizing:border-box}html,body,#app{min-height:100svh;margin:0;padding:0}body{background:var(--color-bg-deep,#fff8ec);color:var(--color-text-primary)}[data-motion=reduced] *,[data-motion=reduced] :before,[data-motion=reduced] :after{scroll-behavior:auto!important;transition-duration:.2s!important;animation-duration:.2s!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.2s!important;animation-duration:.2s!important;animation-iteration-count:1!important}}.skip-link{top:-40px;left:var(--space-2);z-index:10000;padding:var(--space-2) var(--space-4);background:var(--color-skip-link-bg);color:var(--color-skip-link-text);border-radius:var(--radius-pill);font-family:var(--font-family-body,"Manrope", system-ui, sans-serif);font-size:var(--font-size-14);font-weight:600;text-decoration:none;transition:top .15s ease-out;position:absolute}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}[data-motion=reduced] .skip-link{transition:none}.skip-link:focus,.skip-link:focus-visible{top:var(--space-2);outline:2px solid var(--color-focus-ring,var(--color-cta-primary));outline-offset:2px}@font-face{font-family:OpenDyslexic;src:url(/fonts/OpenDyslexic-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/fonts/OpenDyslexic-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}[data-typography=opendyslexic]{--font-family-body:"Atkinson Hyperlegible", Nunito, system-ui, sans-serif;--font-family-display:"Atkinson Hyperlegible", Fredoka, system-ui, sans-serif}[data-typography=opendyslexic] .score,[data-typography=opendyslexic] .timer,[data-typography=opendyslexic] .rating{font-feature-settings:normal}:root{--color-bg-deep:#f7e4be;--color-bg-mid:#fcefd6;--color-bg-highlight:#ffe6bf;--color-surface-deep:#f7e4be;--color-surface-mid:#fcefd6;--color-surface-light:#fffdf7;--color-surface-stroke:#c9b48c;--color-magic:#7b6bdd;--color-magic-deep:#5847c4;--color-player-a:#ee5d43;--color-player-a-glow:#ff7152;--color-player-b:#2ba39c;--color-player-b-glow:#34bdb4;--color-cube-face:#fbefd3;--color-cube-side:#6e5a47;--color-focus-ring:#c73c28}[data-contrast=high]{--color-text-primary:#1a1206;--color-text-secondary:#3a2c1a;--color-text-tertiary:#5e4a33;--color-bg-deep:#fff;--color-surface-stroke:#3b2a1c;--color-cta-primary:#c97a00}@keyframes affinity-reveal-own{0%{opacity:.85;filter:brightness(.85)}to{opacity:1;filter:brightness()}}@keyframes affinity-reveal-opp{0%{opacity:0}to{opacity:1}}.lcube{width:var(--cube-size,44px);height:var(--cube-size,44px);border-radius:var(--radius-tile);background:var(--color-cube-face);box-shadow:var(--shadow-tile);color:var(--color-inkwell);font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:calc(var(--cube-size,44px) * .55);letter-spacing:-.02em;-webkit-user-select:none;user-select:none;transition:transform var(--duration-fast) var(--ease-bounce), box-shadow var(--duration-fast) ease, filter var(--duration-fast) ease;justify-content:center;align-items:center;display:inline-flex;position:relative}.lcube:before{content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--color-paper) 55%, transparent), transparent);pointer-events:none;border-radius:4px 4px 50% 50%/4px 4px 100% 100%;height:30%;position:absolute;top:2px;left:4px;right:4px}.lcube.small{--cube-size:32px;border-radius:var(--radius-tile);box-shadow:var(--shadow-tile)}.lcube.tiny{--cube-size:24px;border-radius:var(--radius-md);box-shadow:var(--shadow-tile)}.lcube.back{background:var(--color-cube-side);color:#0000}.lcube.back:before{background:linear-gradient(180deg, color-mix(in srgb, var(--color-paper) 18%, transparent), transparent)}.lcube.back:after{content:"";background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--color-paper) 8%, transparent) 0 4px, transparent 4px var(--space-2)), var(--color-cube-side);opacity:.6;border-radius:3px;position:absolute;inset:5px}.lcube.traced{background:var(--color-player-a);color:var(--color-inkwell);box-shadow:0 0 0 3px var(--color-player-a), var(--shadow-tile), 0 4px 10px color-mix(in srgb, var(--color-player-a) 45%, transparent);transform:translateY(-3px)scale(1.04)}.lcube.frozen{background:var(--proto-frozen-bg);box-shadow:0 0 0 3px var(--proto-frozen-stroke), var(--shadow-tile)}.lcube.frozen:after{content:"❄";color:color-mix(in srgb, var(--proto-frozen-side) 70%, transparent);font-size:var(--font-size-22);place-items:center;display:grid;position:absolute;inset:0}@keyframes cubeDrop{0%{opacity:0;transform:translateY(-200px)rotate(-12deg)scale(.6)}60%{opacity:1;transform:translateY(8px)rotate(2deg)scale(1.05)}80%{transform:translateY(-2px)rotate(-1deg)scale(.98)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}.lcube.drop{animation:cubeDrop .7s var(--ease-bounce) backwards}@keyframes cubePulse{0%,to{box-shadow:var(--shadow-tile), 0 0 0 0 transparent}50%{box-shadow:var(--shadow-tile), 0 0 0 4px color-mix(in srgb, var(--color-cta-primary) 65%, transparent)}}.lcube.pulse{animation:1.4s ease-in-out infinite cubePulse}.piece{width:var(--piece-size,48px);height:var(--piece-size,48px);place-items:center;display:grid;position:relative}.piece .base{background:var(--player-color,var(--color-player-a));width:78%;height:22%;box-shadow:0 2px 0 color-mix(in srgb, var(--color-ink) 30%, transparent), 0 2px 6px var(--color-shadow);position:absolute;bottom:2px}.piece.a .base{clip-path:polygon(15% 0,85% 0,100% 50%,85% 100%,15% 100%,0 50%)}.piece.b .base{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.piece .body{background:radial-gradient(circle at 38% 28%, color-mix(in srgb, var(--player-color,var(--color-player-a)) 55%, var(--color-paper)) 0%, var(--player-color,var(--color-player-a)) 100%);border:2.5px solid var(--color-on-action);width:78%;height:78%;filter:drop-shadow(0 3px 4px var(--color-shadow));color:var(--color-on-action);place-items:center;display:grid;position:relative}.piece.b .body{color:var(--color-on-action)}.piece.king .body{clip-path:polygon(20% 100%,80% 100%,90% 60%,88% 35%,70% 30%,70% 18%,80% 18%,80% 8%,60% 8%,60% 0,40% 0,40% 8%,20% 8%,20% 18%,30% 18%,30% 30%,12% 35%,10% 60%)}.piece.queen .body{clip-path:polygon(15% 100%,85% 100%,92% 55%,85% 25%,75% 30%,80% 6%,65% 22%,60% 0,50% 18%,40% 0,35% 22%,20% 6%,25% 30%,15% 25%,8% 55%)}.piece.knight .body{clip-path:polygon(20% 100%,80% 100%,92% 70%,88% 40%,70% 20%,60% 5%,45% 0,30% 15%,35% 35%,18% 38%,8% 60%)}.piece.bishop .body{clip-path:polygon(28% 100%,72% 100%,80% 70%,75% 45%,65% 30%,70% 14%,60% 4%,50% 0,40% 4%,30% 14%,35% 30%,25% 45%,20% 70%)}.piece.rook .body{clip-path:polygon(15% 100%,85% 100%,85% 55%,75% 50%,75% 28%,80% 24%,80% 4%,68% 4%,68% 14%,56% 14%,56% 4%,44% 4%,44% 14%,32% 14%,32% 4%,20% 4%,20% 24%,25% 28%,25% 50%,15% 55%)}.piece.blank .body{clip-path:polygon(25% 100%,75% 100%,80% 50%,75% 22%,65% 12%,50% 6%,35% 12%,25% 22%,20% 50%)}.piece.a{--player-color:var(--color-player-a);--player-glow:var(--color-player-a-glow)}.piece.b{--player-color:var(--color-player-b);--player-glow:var(--color-player-b-glow)}.piece.empowered .body{filter:drop-shadow(0 3px 4px var(--color-shadow)) drop-shadow(0 0 6px var(--color-magic))}.piece.empowered:before{content:"";background:radial-gradient(ellipse at center, var(--color-magic) 0%, transparent 70%);opacity:.85;filter:blur(2px);width:90%;height:14%;position:absolute;bottom:-1px}.piece.selected{transform:translateY(-4px)}.piece.selected:after{content:"";background:radial-gradient(ellipse at center, var(--player-color) 0%, transparent 70%);filter:blur(2px);width:90%;height:10%;position:absolute;bottom:-3px}@keyframes pieceBreath{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.piece.breathe .body{animation:3s ease-in-out infinite pieceBreath}.board{--board-size:343px;width:var(--board-size);height:var(--board-size);background:var(--color-paper-3);border:3px solid var(--color-surface-stroke);border-radius:var(--radius-lg);padding:var(--space-2);box-shadow:inset 0 2px 6px var(--color-shadow), var(--shadow-card);grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(6,1fr);gap:3px;display:grid;position:relative}.board:after{content:"";border-radius:var(--radius-md);pointer-events:none;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-accent-gold) 28%, transparent);position:absolute;inset:4px}.cell{background:var(--color-cube-face);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--color-paper) 60%, transparent), inset 0 -2px 4px var(--color-shadow);border-radius:3px;place-items:center;display:grid;position:relative}.cell.private-a{background:linear-gradient(180deg, color-mix(in srgb, var(--color-player-a) 30%, var(--color-bg-deep)), var(--color-bg-deep))}.cell.private-b{background:linear-gradient(180deg, color-mix(in srgb, var(--color-player-b) 30%, var(--color-bg-deep)), var(--color-bg-deep))}.cell.last-move{box-shadow:inset 0 0 0 2px var(--color-cta-primary), inset 0 0 8px color-mix(in srgb, var(--color-cta-primary) 40%, transparent)}.cell.valid{background:radial-gradient(ellipse at center, color-mix(in srgb, var(--color-player-a) 50%, transparent) 0%, transparent 70%), var(--color-bg-deep)}.cell.selected{box-shadow:inset 0 0 0 3px var(--color-player-a), inset 0 0 8px color-mix(in srgb, var(--color-player-a) 35%, transparent)}.cell.empower-target{box-shadow:inset 0 0 0 3px var(--color-cta-primary), inset 0 0 8px color-mix(in srgb, var(--color-cta-primary) 35%, transparent)}.match-grid-cell{transition:transform var(--duration-fast) var(--ease-bounce), background .16s ease, box-shadow .16s ease;will-change:transform, background}.match-grid-cell:focus{outline:none}.match-grid-cell:focus-visible{outline:2px solid var(--color-cta-primary);outline-offset:2px}.match-grid-cell[data-cell-in-trace=true]{box-shadow:0 0 0 2px var(--color-player-a-glow), 0 0 16px color-mix(in srgb, var(--color-player-a-glow) 80%, transparent);animation:cellTraceEnter var(--duration-med) var(--ease-bounce);background:color-mix(in srgb, var(--color-player-a-glow) 46%, transparent)!important}@keyframes cellTraceEnter{0%{background:color-mix(in srgb, var(--color-player-a-glow) 0%, transparent);transform:scale(.88)}55%{background:color-mix(in srgb, var(--color-player-a-glow) 64%, transparent);transform:scale(1.14)}to{background:color-mix(in srgb, var(--color-player-a-glow) 46%, transparent);transform:scale(1.06)}}.match-grid-cell[data-cell-flash=invalid]{animation:.22s ease-out cellFlashInvalid}@keyframes cellFlashInvalid{0%{background:0 0;transform:scale(1)}40%{background:color-mix(in srgb, var(--color-cta-destructive) 55%, transparent);transform:scale(1.06)translate(-2px)}70%{transform:scale(1.04)translate(2px)}to{background:0 0;transform:scale(1)}}.match-grid-cell[data-cell-frozen=true]{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--proto-frozen-stroke) 90%, transparent), 0 0 10px color-mix(in srgb, var(--proto-frozen-stroke) 45%, transparent);border-radius:4px;background:color-mix(in srgb, var(--proto-frozen-bg) 32%, transparent)!important}@media (prefers-reduced-motion:reduce){.match-grid-cell,.match-grid-cell[data-cell-in-trace=true],.match-grid-cell[data-cell-flash=invalid]{transition:none;animation:none;transform:none}}@keyframes dashFlow{to{stroke-dashoffset:-36px}}.rg-trace-flow{animation:.5s linear infinite dashFlow}@media (prefers-reduced-motion:reduce){.rg-trace-flow{animation:none}}[data-motion=reduced] .rg-trace-flow{animation:none}@keyframes combatTextRise{0%{opacity:0;transform:translateY(.25px)}to{opacity:1;transform:translateY(0)}}.rg-combat-text{animation:.25s ease-out combatTextRise}@media (prefers-reduced-motion:reduce){.rg-combat-text{animation:none;transform:none}}[data-motion=reduced] .rg-combat-text{animation:none;transform:none}@keyframes scorePillConfirm{0%{background:linear-gradient(180deg, var(--color-cta-primary-top), var(--color-cta-primary), var(--color-cta-primary-deep))}to{background:color-mix(in srgb, var(--color-magic) 70%, var(--color-cta-primary))}}@keyframes scorePillShake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.score-pill-verdict-flash{animation:none!important;transform:none!important}}[data-motion=reduced] .score-pill-verdict-flash{animation:none;transform:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-family-display);color:var(--btn-label,var(--color-on-action));border-radius:var(--radius-btn);padding:0 var(--space-5);height:48px;font-weight:600;font-size:var(--font-size-16);cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(180deg, var(--btn-top,var(--color-cta-primary-top)) 0%, var(--btn-mid,var(--color-cta-primary)) 100%);box-shadow:0 5px 0 var(--btn-edge,var(--btn-deep,var(--color-cta-primary-deep))), 0 8px 12px -4px var(--color-shadow);transition:transform var(--duration-fast) var(--ease-out), box-shadow .12s ease, background .2s ease, filter .12s ease;letter-spacing:.01em;white-space:nowrap;border:none;display:inline-flex;position:relative}.btn:active{background:var(--btn-mid,var(--color-cta-primary));box-shadow:0 1px 0 var(--btn-edge,var(--btn-deep,var(--color-cta-primary-deep))), 0 3px 8px -3px var(--color-shadow);filter:saturate(1.05);transition:transform 80ms cubic-bezier(.4,0,.2,1),box-shadow 80ms,background 80ms;transform:translateY(4px)}.btn-sm{border-radius:var(--radius-3xl);height:36px;padding:0 var(--space-4);font-size:var(--font-size-14)}.btn-lg{border-radius:var(--radius-btn);height:56px;padding:0 var(--space-6);font-size:var(--font-size-18)}.btn-block{width:100%}.btn-primary{--btn-top:var(--color-player-a-glow);--btn-mid:var(--color-player-a);--btn-edge:var(--color-player-a-deep)}.btn-gold{--btn-top:var(--color-cta-primary-top);--btn-mid:var(--color-cta-primary);--btn-edge:var(--color-cta-primary-deep);--btn-label:#5a3a06}.btn-them{--btn-top:var(--color-player-b-glow);--btn-mid:var(--color-player-b);--btn-edge:var(--color-player-b-deep)}.btn-leaf{--btn-top:var(--color-cta-confirm-top);--btn-mid:var(--color-cta-confirm);--btn-edge:var(--color-cta-confirm-deep)}.btn-ghost{--btn-label:var(--color-ink);background:var(--color-card);color:var(--color-ink);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--color-surface-stroke) 18%, transparent), var(--shadow-card)}.btn-ghost:active{background:var(--color-card);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--color-surface-stroke) 18%, transparent), var(--shadow-card);transform:translateY(2px)}.btn[disabled]{opacity:.45;filter:grayscale(.4);cursor:not-allowed;pointer-events:none}@media (prefers-reduced-motion:reduce){.btn{transition:transform .12s cubic-bezier(0,0,.2,1),box-shadow .12s,background .2s,filter .12s}}[data-motion=reduced] .btn{transition:transform .12s cubic-bezier(0,0,.2,1),box-shadow .12s,background .2s,filter .12s}.card{background:var(--color-card);border-radius:var(--radius-card);padding:var(--space-4);box-shadow:var(--shadow-card);border:none;position:relative}.sub-card{background:var(--color-paper-2);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface-stroke) 24%, transparent);border:none}.card.selected{box-shadow:var(--shadow-card), 0 0 0 3px var(--color-cta-primary)}.card.magic{background:linear-gradient(180deg, color-mix(in srgb, var(--color-magic) 22%, transparent), color-mix(in srgb, var(--color-magic-deep) 22%, transparent)), var(--color-card);box-shadow:var(--shadow-card), 0 0 0 2px var(--color-magic)}.row{background:var(--color-card);box-shadow:var(--shadow-card);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out);border-radius:20px;align-items:center;gap:13px;padding:13px 15px;display:flex;position:relative}.row:active{transform:scale(.985)}.row-your-turn{box-shadow:var(--shadow-card), 0 0 0 2.5px var(--color-player-a)}.avatar{background:linear-gradient(160deg, var(--color-player-a-soft), var(--color-player-a));width:48px;height:48px;font-family:var(--font-family-display);color:var(--color-on-action);box-shadow:inset 0 2px 0 color-mix(in srgb, var(--color-paper) 40%, transparent), inset 0 -3px 0 color-mix(in srgb, var(--color-ink) 12%, transparent);border-radius:15px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.chip{align-items:center;gap:var(--space-2);height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-paper-2);color:var(--color-text-secondary);font-family:var(--font-family-display);font-weight:500;font-size:var(--font-size-13);border:none;display:inline-flex}.chip-you{background:var(--color-player-a-tint);color:var(--color-player-a-deep)}.chip-them{background:var(--color-player-b-tint);color:var(--color-player-b-deep)}.chip-gold{color:var(--color-accent-gold-deep);background:#fcefc9}.chip-leaf{color:var(--color-accent-leaf-deep);background:#e6f2d9}.seg{gap:var(--space-1);background:var(--color-paper-2);border-radius:var(--radius-3xl);padding:var(--space-1);border:none;display:flex}.seg button{appearance:none;color:var(--color-ink-faint);font-family:var(--font-family-display);font-weight:600;font-size:var(--font-size-14);height:40px;padding:0 var(--space-4);border-radius:var(--radius-2xl);cursor:pointer;letter-spacing:.02em;transition:background var(--duration-fast) ease, color var(--duration-fast) ease;background:0 0;border:none;flex:1}.phase-controls .seg button{text-transform:uppercase}.seg button[aria-selected=true],.seg button[aria-checked=true]{background:var(--color-card);color:var(--color-player-a);box-shadow:var(--shadow-card);border:none;height:40px}.ribbon{background:linear-gradient(180deg, var(--color-magic) 0%, var(--color-magic-deep) 100%);height:36px;color:var(--color-on-action);font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--font-size-14);letter-spacing:.04em;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,8px 100%,0 50%);border:none;justify-content:center;align-items:center;padding:0 28px;display:inline-flex;position:relative}.ribbon.yellow{background:linear-gradient(180deg, var(--color-cta-primary-top) 0%, var(--color-cta-primary) 100%);color:var(--color-inkwell);text-shadow:none}.dot{border-radius:var(--radius-pill);background:var(--color-cta-destructive);border:1.5px solid var(--color-inkwell);width:10px;height:10px}.hairline{background:color-mix(in srgb, var(--color-ink) 12%, transparent);height:1px;margin:var(--space-2) 0}.icon-tile{border-radius:var(--radius-tile);background:var(--color-magic);width:48px;height:48px;color:var(--color-on-action);box-shadow:var(--shadow-tile);border:none;place-items:center;font-family:Fredoka,system-ui,sans-serif;font-weight:700;display:grid;position:relative}.icon-tile .badge{min-width:18px;height:18px;padding:0 var(--space-1);background:var(--color-cta-destructive);border:2px solid var(--color-inkwell);border-radius:var(--radius-pill);font-size:var(--font-size-11);place-items:center;display:grid;position:absolute;bottom:-4px;right:-4px}.icon-tile.cyan{background:var(--color-player-b);color:var(--color-on-action)}.icon-tile.yellow{background:var(--color-cta-primary);color:var(--color-ink)}.icon-tile.pink{background:var(--color-currency-gem)}.icon-tile.crimson{background:var(--color-cta-destructive)}.rune-orb{border-radius:var(--radius-pill);background:radial-gradient(circle at 35% 30%, var(--proto-rune-highlight) 0%, var(--color-cta-primary) 22%, var(--color-magic) 60%, var(--color-magic-deep) 100%);width:32px;height:32px;box-shadow:0 0 0 2px color-mix(in srgb, var(--color-magic) 45%, transparent), inset 0 -3px 6px color-mix(in srgb, var(--color-ink) 30%, transparent);position:relative}.rune-orb:after{content:"ᚱ";font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--font-size-16);color:var(--color-cta-primary);text-shadow:0 1px 0 var(--color-inkwell);place-items:center;display:grid;position:absolute;inset:0}@keyframes splashRise{0%{transform:translateY(16px)scale(.96)}to{transform:translateY(0)scale(1)}}@keyframes runeOrbSpark{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-magic) 45%, transparent), inset 0 -3px 6px color-mix(in srgb, var(--color-ink) 30%, transparent)}45%{box-shadow:0 0 0 5px color-mix(in srgb, var(--color-cta-primary) 65%, transparent), 0 0 0 2px color-mix(in srgb, var(--color-magic) 45%, transparent), inset 0 -3px 6px color-mix(in srgb, var(--color-ink) 30%, transparent)}}.splash .splash-hero{animation:.36s cubic-bezier(.34,1.56,.64,1) backwards splashRise}.splash .rune-orb{animation:.36s cubic-bezier(.34,1.56,.64,1) .12s backwards splashRise,1.2s ease-out .48s runeOrbSpark}.splash .splash-cta{animation:.36s cubic-bezier(.34,1.56,.64,1) .2s backwards splashRise}.splash .splash-login{animation:.36s cubic-bezier(.34,1.56,.64,1) .26s backwards splashRise}@media (prefers-reduced-motion:reduce){.splash .splash-hero,.splash .rune-orb,.splash .splash-cta,.splash .splash-login{animation:none}}[data-motion=reduced] .splash .splash-hero,[data-motion=reduced] .splash .rune-orb,[data-motion=reduced] .splash .splash-cta,[data-motion=reduced] .splash .splash-login{animation:none}@keyframes splashFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.splash .splash-float{animation:3.4s ease-in-out infinite splashFloat}@media (prefers-reduced-motion:reduce){.splash .splash-float{animation:none}}[data-motion=reduced] .splash .splash-float{animation:none}@keyframes bounceInUp{0%{opacity:0;transform:translateY(24px)scale(.9)}60%{transform:translateY(-4px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}.splash .splash-signin-reveal{animation:bounceInUp .4s var(--ease-bounce)}@media (prefers-reduced-motion:reduce){.splash .splash-signin-reveal{animation:none}}[data-motion=reduced] .splash .splash-signin-reveal{animation:none}.splash .wordmark-crown{width:.5em;height:.34em;position:absolute;top:-.3em;left:50%;overflow:visible;transform:translate(-50%)}.end-overlay[data-outcome=lose]:before,.end-overlay[data-outcome=draw]:before,.end-overlay[data-outcome=complete]:before{content:"";z-index:-1;pointer-events:none;animation:.9s cubic-bezier(.45,0,.05,1) backwards endEdgeSweep;position:absolute;inset:0}.end-overlay[data-outcome=lose]:before{box-shadow:inset 0 0 140px 24px color-mix(in srgb, var(--color-cta-destructive) 55%, transparent)}.end-overlay[data-outcome=draw]:before,.end-overlay[data-outcome=complete]:before{box-shadow:inset 0 0 140px 24px color-mix(in srgb, var(--color-magic) 50%, transparent)}@keyframes endEdgeSweep{0%{opacity:0;transform:scale(1.08)}55%{opacity:1}to{opacity:.7;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.end-overlay[data-outcome=lose]:before,.end-overlay[data-outcome=draw]:before,.end-overlay[data-outcome=complete]:before{opacity:.7;animation:none}}[data-motion=reduced] .end-overlay[data-outcome=lose]:before,[data-motion=reduced] .end-overlay[data-outcome=draw]:before,[data-motion=reduced] .end-overlay[data-outcome=complete]:before{opacity:.7;animation:none}@keyframes queenSpark{0%{opacity:0;transform:translate(var(--dx,0), var(--dy,0)) scale(.3)}50%{opacity:.85}to{opacity:0;transform:translate(calc(var(--dx,0) * 1.6), calc(var(--dy,0) * 1.6)) scale(.6)}}@keyframes runeSpin{to{transform:rotate(360deg)}}.rune-spinner{border-radius:var(--radius-pill);border:3px solid color-mix(in srgb, var(--color-cta-primary) 22%, transparent);border-top-color:var(--color-cta-primary);width:40px;height:40px;animation:1.4s linear infinite runeSpin;position:relative}.rune-spinner:after{content:"";border-radius:var(--radius-pill);background:var(--color-magic);width:6px;height:6px;box-shadow:0 0 0 2px color-mix(in srgb, var(--color-magic) 30%, transparent);margin-left:-3px;position:absolute;top:-3px;left:50%}.token-fly-coin{border-radius:var(--radius-pill);background:radial-gradient(circle at 35% 30%, var(--color-cta-primary-top), var(--color-cta-primary) 58%, var(--color-cta-primary-deep));border:2px solid var(--color-cta-primary-deep);width:18px;height:18px;box-shadow:0 2px 6px var(--color-shadow);position:absolute;top:0;left:0}.display-word{color:var(--color-text-primary);letter-spacing:-.02em;text-shadow:var(--shadow-display-drop), 0 10px 18px var(--color-shadow);-webkit-text-stroke:0;font-family:Fredoka,system-ui,sans-serif;font-weight:700;line-height:1}.display-word.gradient{background:linear-gradient(180deg, var(--color-cta-primary-top) 0%, var(--color-cta-primary) 50%, var(--color-cta-primary-deep) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.display-word.solid-white{color:var(--color-text-primary)}.match-topbar{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);z-index:5;display:flex;position:relative}.match-topbar>.btn{padding-inline:var(--space-2);flex:none}.match-topbar .opponent-strip{align-items:center;gap:var(--space-2);background:var(--color-paper-2);min-width:0;height:40px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface-stroke) 26%, transparent);border-radius:var(--radius-pill);border:none;flex:1;padding:4px 10px 4px 12px;display:flex;position:relative;overflow:hidden}.match-topbar .opponent-strip .initial{border-radius:var(--radius-pill);background:linear-gradient(135deg, var(--color-player-a-tint), var(--color-player-a-soft));width:32px;height:32px;box-shadow:inset 0 2px 0 color-mix(in srgb, var(--color-paper) 40%, transparent), inset 0 -3px 0 color-mix(in srgb, var(--color-ink) 12%, transparent);color:var(--color-inkwell);font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--font-size-14);border:none;flex:0 0 32px;place-items:center;display:grid}.match-topbar .opponent-strip .name{min-width:0;font-size:var(--font-size-14);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.match-topbar .opponent-strip .turn-indicator{white-space:nowrap;font-family:Fredoka,system-ui,sans-serif;font-weight:600;font-size:var(--font-size-13);letter-spacing:.01em;flex:none;margin-left:auto}.match-topbar .opponent-strip .turn-indicator.turn-yours{color:var(--color-accent-leaf-deep)}.match-topbar .opponent-strip .turn-indicator.turn-opponent{color:var(--color-player-b-deep)}.match-topbar .your-score{background:var(--color-paper-2);height:28px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface-stroke) 26%, transparent);border-radius:var(--radius-pill);flex:none;align-items:baseline;gap:4px;padding:0 10px;display:inline-flex}.match-topbar .your-score .your-score-tag{font-size:var(--font-size-10);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.match-topbar .your-score .your-score-value{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--font-size-13);color:var(--color-text-primary)}@media (max-width:400px){.match-topbar .opponent-strip .name{display:none}}@media (max-width:380px){.match-topbar{padding-inline:var(--space-3)}.match-topbar .opponent-strip{padding-left:var(--space-2);padding-right:var(--space-2);gap:6px}.match-topbar .opponent-strip .initial{flex-basis:28px;width:28px;height:28px}}.rg-screen{background:radial-gradient(120% 80% at 50% -10%, var(--color-sky-1) 0%, var(--color-sky-2) 46%, var(--color-paper) 100%)}.rg-screen.match{--match-chrome:260px}.screen{flex-direction:column;min-height:100svh;display:flex}.screen-scroll{padding:var(--space-1) var(--screen-gutter,16px) var(--space-6);flex-direction:column;flex:auto;display:flex}.topbar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) 6px;display:flex}.topbar-left,.topbar-right{align-items:center;gap:var(--space-2);display:flex}.topbar-center{flex:1;justify-content:center;min-width:0;display:flex}.screen-head{flex:none;padding-top:50px}.screen-title{font-family:var(--font-family-display);font-weight:600;font-size:var(--font-size-18);letter-spacing:-.01em;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.screen-head-spacer{flex:0 0 46px;width:46px;display:block}.btn-icon{border-radius:var(--radius-3xl);background:var(--color-card);width:46px;height:46px;color:var(--color-ink-soft);box-shadow:inset 0 0 0 2px #966e3229, var(--shadow-card);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out);border:none;flex:0 0 46px;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:active{transform:scale(.92)}.phase-panel{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);flex-direction:column;display:flex}.phase-panel__tray{width:100%}.token-bank{align-items:center;gap:var(--space-2);flex:none;display:inline-flex}.token-bank__count{flex:none}.token-bank__caption{flex-direction:column;min-width:0;line-height:1.15;display:flex}.token-bank__name{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--font-size-13);color:var(--color-text-primary)}.token-bank__hint{font-size:var(--font-size-11);color:var(--color-text-secondary)}.token-bank[data-token-variant=secondary] .token-bank__name{font-weight:600;font-size:var(--font-size-11);color:var(--color-text-secondary)}.powerup-row{align-items:center;gap:var(--space-1);flex:none;display:flex}.powerup-row__item{position:relative}.powerup-popover{width:max-content;max-width:min(260px,70vw);padding:var(--space-2) var(--space-3);background:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop), inset 0 0 0 1px color-mix(in srgb, var(--color-surface-stroke) 28%, transparent);color:var(--color-text-primary);font-family:var(--font-family-body);font-size:var(--font-size-13);z-index:50;text-align:left;white-space:normal;border:none;line-height:1.4;position:absolute;bottom:calc(100% + 8px);right:0}.powerup-popover__title{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--font-size-14);color:var(--color-text-primary);margin-bottom:2px}.powerup-popover__desc{color:var(--color-text-primary);opacity:.85}.phase-controls{gap:var(--space-2);padding:0 var(--space-4);flex-direction:column;display:flex}.phase-controls.bouncing .seg{transform-origin:50%;animation:.6s cubic-bezier(.34,1.56,.64,1) phase-controls-bounce}@keyframes phase-controls-bounce{0%{transform:scale(1)}35%{transform:scale(1.18)}70%{transform:scale(.96)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.phase-controls.bouncing .seg{animation:none}}@property --grow-rows{syntax:"<number>";inherits:false;initial-value:6}[data-screen-region=board-stack]{transition:--grow-rows .5s cubic-bezier(0,0,.2,1)}@media (prefers-reduced-motion:reduce){[data-screen-region=board-stack]{transition:none}}[data-motion=reduced] [data-screen-region=board-stack]{transition:none}.scrim{z-index:1100;background:var(--color-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:scrimFadeIn var(--duration-med) var(--ease-out);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.scrim.center{padding:var(--space-5);align-items:center}.sheet{background:var(--color-paper);width:100%;max-width:480px;padding:10px 18px calc(22px + env(safe-area-inset-bottom));animation:sheetUp var(--duration-med) var(--ease-bounce);border-radius:30px 30px 0 0;max-height:88%;position:relative;overflow-y:auto;box-shadow:0 -14px 40px -10px #78461459}.sheet::-webkit-scrollbar{width:0}.sheet-grab{width:44px;height:5px;margin:var(--space-1) auto var(--space-3);border-radius:var(--radius-pill);background:var(--color-ink-ghost)}.dialog{background:var(--color-paper);border-radius:var(--radius-card);width:100%;max-width:340px;padding:var(--space-5);box-shadow:var(--shadow-pop);animation:popIn var(--duration-med) var(--ease-bounce)}@keyframes scrimFadeIn{0%{opacity:0}to{opacity:1}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.scrim,.sheet,.dialog{animation:none}}[data-motion=reduced] .scrim,[data-motion=reduced] .sheet,[data-motion=reduced] .dialog{animation:none}
