:root{--bg: #14100c;--bg-soft: #1b1610;--panel: #241c14;--panel-2: #2e2419;--panel-inset: #100d09;--line: #3a2e20;--line-strong: #6b5636;--brass-lit: #a3814b;--wash-1: rgba(224, 123, 57, .07);--wash-2: rgba(0, 0, 0, .5);--header-bg: rgba(18, 14, 10, .92);--text: #f0e6cf;--text-2: #d6c9a8;--text-3: #9c8e70;--text-muted: #8a7c60;--accent: #c9973f;--accent-strong: #e8b95c;--accent-soft: rgba(224, 123, 57, .14);--accent-contrast: #241a08;--ember: #e07b39;--glow-ember: rgba(224, 123, 57, .18);--arcane: #67c4b8;--warn: #d9a13b;--warn-soft: rgba(217, 161, 59, .18);--danger: #d0604a;--danger-soft: rgba(192, 80, 60, .2);--good: #9db863;--ice: #67c4b8;--state-mark: #f28c50;--state-check: #ff6b5e;--state-last: #e6c37a;--state-target: #5fbfae;--focus-ring: #dcb56a;--focus-under: rgba(14, 12, 10, .9);--sq-light: #b9a179;--sq-dark: #6e4f33;--board-outline: rgba(16, 11, 7, .85);--board-frame: #2a1f14;--pill-h: 24px;--pill-pad: 0 10px;--pill-radius: 3px;--pill-font: .76rem;--pill-weight: 700;--r-sm: 2px;--r-md: 3px;--r-lg: 5px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 10px 30px -12px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 48px rgba(0, 0, 0, .55);--bevel: inset 0 1px 0 rgba(255, 255, 255, .05), inset 0 -1px 0 rgba(0, 0, 0, .4);--topbar-h: 0px;--board-max: 1040px;--board-min: 320px;--board-vertical-reserve: 190px;--font-display: "Cinzel", "Times New Roman", Georgia, serif;--font-sans: "Alegreya", "Iowan Old Style", Palatino, Georgia, serif;--font-flavor: "IM Fell English", "Iowan Old Style", Georgia, serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;color-scheme:dark;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:0}*::-webkit-scrollbar-track{background:transparent}[data-theme=light]{--bg: #d9c9a3;--bg-soft: #e8dbb8;--panel: #f2e7c9;--panel-2: #f8efd8;--panel-inset: #e0d2ab;--line: #c4b088;--line-strong: #8a6f3e;--brass-lit: #6e5426;--wash-1: rgba(176, 90, 30, .06);--wash-2: rgba(74, 56, 32, .22);--header-bg: rgba(236, 224, 191, .92);--text: #241b0e;--text-2: #3a2e1c;--text-3: #6e5d42;--text-muted: #8a7854;--accent: #8a621c;--accent-strong: #6e4d12;--accent-soft: rgba(176, 90, 30, .14);--accent-contrast: #fdf6e0;--ember: #b05a1e;--glow-ember: rgba(176, 90, 30, .2);--arcane: #1d6e64;--warn: #96690f;--warn-soft: rgba(150, 105, 15, .16);--danger: #922e1d;--danger-soft: rgba(146, 46, 29, .15);--good: #4e6e28;--ice: #1d6e64;--sq-light: #e3d3a8;--sq-dark: #8a6a42;--board-outline: rgba(46, 32, 16, .75);--board-frame: #4a3820;--state-mark: #b05a1e;--state-check: #a32014;--state-last: #8a6a1a;--state-target: #17685c;--focus-ring: #6e4d12;--focus-under: rgba(253, 246, 224, .9);--shadow-sm: 0 1px 0 rgba(46, 32, 16, .15);--shadow-md: 0 10px 26px -10px rgba(46, 32, 16, .3);--shadow-lg: 0 22px 50px rgba(46, 32, 16, .3);--bevel: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 0 rgba(74, 56, 32, .18);color-scheme:light}html,body{height:100%}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);font-size:16.5px;transition:background-color .24s ease,color .24s ease}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(90rem 60rem at 50% -10%,var(--wash-1),transparent 60%),radial-gradient(140% 100% at 50% 40%,transparent 55%,var(--wash-2) 100%)}body:after{content:"";position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}button{font:inherit}button:focus-visible,input:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;box-shadow:0 0 0 5px var(--focus-under)}h1,h2,h3{margin:0;color:var(--text);letter-spacing:.035em;font-family:var(--font-display)}h1{font-size:clamp(1.4rem,1.5vw + .9rem,1.85rem);font-weight:700}h2{font-size:clamp(1.15rem,1.2vw + .75rem,1.5rem);font-weight:700}h3{font-size:1.05rem;font-weight:700}p{margin:0;color:var(--text-2)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-header{position:sticky;top:0;z-index:40;width:100%;height:var(--topbar-h);display:flex;align-items:center;padding:0 clamp(10px,2vw,22px);background:var(--header-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:background .24s ease,border-color .24s ease}.app-header-inner{width:min(100%,1240px);margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.app-header-side{display:flex;align-items:center;gap:8px}.app-header-side.end{justify-content:flex-end}.app-brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);font-weight:800;letter-spacing:-.01em}.app-brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;font-size:1rem;line-height:1}.app-brand-mark img{width:20px;height:20px;display:block}.app-brand-text{font-size:1.02rem;font-weight:inherit;line-height:1;margin:0}.header-btn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--r-md);padding:6px 12px;font-size:.86rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .14s ease,border-color .14s ease}.header-btn-icon{width:36px;padding:6px 0;font-size:1rem;text-align:center;line-height:1}.settings-modal{max-width:520px;width:min(520px,92vw)}.settings-body{padding:18px 24px 24px;display:flex;flex-direction:column;gap:14px}.settings-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md)}.settings-row-text{display:flex;flex-direction:column;gap:4px}.settings-row-text strong{font-size:.96rem}.settings-row-text small{color:var(--text-2);font-size:.82rem;line-height:1.4}.settings-row input[type=checkbox]{flex-shrink:0;width:20px;height:20px;margin-top:2px;cursor:pointer;accent-color:var(--accent)}.app-shell{min-height:calc(100vh - var(--topbar-h));display:grid;place-items:start center;padding:clamp(14px,2vw,30px)}.app-shell.app-shell-centered{place-items:center;padding-top:clamp(40px,6vw,80px)}.workspace-layout{display:grid;width:min(100%,1380px);align-items:start;justify-content:center;gap:clamp(14px,1.6vw,22px)}.workspace-layout.chess2-layout{grid-template-columns:minmax(var(--board-min),min(var(--board-max),calc(100dvh - var(--board-vertical-reserve)))) minmax(280px,360px)}.workspace-layout.player-layout{grid-template-columns:minmax(var(--board-min),var(--board-max));justify-content:center}.app-shell:has(.chess2-layout){padding-block:clamp(6px,1vw,14px)}@media(max-width:1020px){.workspace-layout.chess2-layout{grid-template-columns:minmax(0,min(var(--board-max),max(var(--board-min),calc(100dvh - 180px))));justify-content:center}}.hero{width:min(100%,540px);display:grid;gap:18px;padding:clamp(20px,3vw,36px);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);text-align:center}.hero-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-strong)}.hero-title{font-size:clamp(1.6rem,2.4vw + .8rem,2.4rem);line-height:1.1;font-weight:800;margin:0;letter-spacing:-.02em}.hero-accent{color:var(--accent)}.hero-sub{color:var(--text-3);font-size:.96rem}.hero-actions{display:grid;gap:10px;margin-top:4px}.btn,.lobby-primary,.preset-button,.top-bar button,.action-row,.rematch-panel button,.lobby-join-row button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:var(--r-md);border:1px solid transparent;background:var(--accent);color:#fff;font-weight:700;font-size:.92rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .14s ease,border-color .14s ease,transform .14s ease}.btn:hover,.lobby-primary:hover,.preset-button:hover,.top-bar button:hover,.action-row:hover,.rematch-panel button:hover,.lobby-join-row button:hover{background:var(--accent-strong)}.btn-primary{background:var(--accent)}.btn-primary:hover{background:var(--accent-strong)}.btn-ghost,.lobby-secondary{background:var(--panel);color:var(--text);border-color:var(--line);box-shadow:none}.btn-ghost:hover,.lobby-secondary:hover{background:var(--panel-2);border-color:var(--line-strong)}button:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.game-panel,.army-panel,.lobby-card,.dev-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(14px,1.6vw,20px);box-shadow:var(--shadow-md);color:var(--text)}.game-panel{width:100%;min-width:0}.army-panel{grid-template-columns:minmax(0,1fr);width:100%;display:grid;gap:12px;max-height:calc(100vh - var(--topbar-h) - 48px);overflow:hidden auto}@media(max-width:1020px){.army-panel{max-height:none;overflow:visible}}.top-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px}.top-bar>div:first-child{min-width:0}.top-bar h1{margin-bottom:4px}.top-bar p{color:var(--text-3);font-size:.9rem}.top-bar-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}.game-status-pill{justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.02em;border:1px solid var(--line-strong);background:var(--panel-2);color:var(--text)}.game-status-pill.warn{border-color:var(--danger);color:var(--danger);background:var(--danger-soft, rgba(217, 89, 71, .12))}.game-status-pill.end{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.to-move-chip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--accent-strong);background:var(--accent-soft);border:1px solid var(--accent)}.board-wrap{display:grid;gap:6px}.board-row-wrap{display:grid;grid-template-columns:1fr;align-items:stretch;min-width:0}.board{display:grid;grid-template-columns:repeat(8,1fr);width:100%;max-width:min(var(--board-max),calc(100dvh - var(--board-vertical-reserve)));min-width:var(--board-min);aspect-ratio:1;border:1px solid var(--board-outline);border-radius:var(--r-md);overflow:hidden;background:var(--sq-dark);box-shadow:var(--shadow-md);transform:rotate(0);transition:transform .48s cubic-bezier(.45,.05,.35,1);position:relative}.board-annotations{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}.anno-highlight{opacity:.5}.anno-arrow{opacity:.45;stroke:none}.anno-blue{fill:#5aa8de}.anno-yellow{fill:#d9a92f}.board.flipped{transform:rotate(180deg)}.board.has-promotion,.board.has-form-shift{overflow:visible}.piece-image,.piece{transition:transform .48s cubic-bezier(.45,.05,.35,1)}.board.flipped .piece-image,.board.flipped .piece{transform:rotate(180deg)}.square-cell{position:relative;display:grid;aspect-ratio:1;min-width:0}.square{position:relative;display:grid;place-items:center;border:0;padding:0;min-width:0;aspect-ratio:1;width:100%;height:100%;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.square.light{background:var(--sq-light)}.square.dark{background:var(--sq-dark)}.coord{position:absolute;z-index:1;font-size:clamp(8px,1.15vmin + 3px,14px);font-weight:700;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none}.coord-file{right:5%;bottom:4%}.coord-rank{left:5%;top:4%}.square.light .coord{color:var(--sq-dark)}.square.dark .coord{color:var(--sq-light)}.board.flipped .coord{transform:rotate(180deg)}.board.flipped .coord-file{inset:4% auto auto 5%}.board.flipped .coord-rank{inset:auto 5% 4% auto}@media(hover:hover){.square:hover{filter:brightness(1.06)}}.square:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.square.selected{background:#f0c95c}.square.dark.selected{background:#c69a3f}.move-dot{width:30%;aspect-ratio:1;border-radius:50%;background:#281e144d;pointer-events:none}.square.dark .move-dot{background:#fff5e68c}.square.capture{box-shadow:inset 0 0 0 5px #281e1459}.square.dark.capture{box-shadow:inset 0 0 0 5px #fff5e673}.square.secondary-target{box-shadow:inset 0 0 0 4px #c47c1eb3}.square.last-move{background-image:linear-gradient(#f6d23c8c,#f6d23c8c)}.square.dark.last-move{background-image:linear-gradient(#f6d23c80,#f6d23c80)}.square.premove{background-image:linear-gradient(#d959479e,#d959479e)}.square.dark.premove{background-image:linear-gradient(#d95947b3,#d95947b3)}.square.mythobeast-charge-path{background-image:linear-gradient(#f59e0b59,#f59e0b59)}.square.dark.mythobeast-charge-path{background-image:linear-gradient(#f59e0b73,#f59e0b73)}.square.mythobeast-charge-destination{background-image:linear-gradient(#f59e0b8c,#f59e0b8c);box-shadow:inset 0 0 0 3px #d97706d9}.square.dark.mythobeast-charge-destination{background-image:linear-gradient(#f59e0ba6,#f59e0ba6);box-shadow:inset 0 0 0 3px #d97706f2}.square.special-mode-dimmed{filter:brightness(.55) saturate(.7)}.square.special-mode-dimmed .piece-image,.square.special-mode-dimmed .piece{opacity:.6}.premove-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;background:#d959471f;border:1px solid rgba(217,89,71,.45);color:#8a2a1b}.premove-banner>span{overflow-wrap:anywhere;flex:1;min-width:0}.premove-cancel-btn{border:1px solid rgba(217,89,71,.5);background:transparent;color:#8a2a1b;font-size:.78rem;font-weight:600;padding:3px 9px;border-radius:var(--r-sm, 4px);cursor:pointer}.premove-cancel-btn:hover{background:#d959472e}.square.placement-zone{background-image:linear-gradient(#489e6452,#489e6452);box-shadow:inset 0 0 0 2px #2e8a5073}.square.placement-zone:hover{background-image:linear-gradient(#489e6473,#489e6473);box-shadow:inset 0 0 0 2px #2e8a50bf}.board-with-toast{position:relative}.setup-warning-toast{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 14px;border:1px solid #f3bdbd;background:var(--danger-soft);color:var(--danger);border-radius:var(--r-md);font-size:.9rem;font-weight:600;box-shadow:var(--shadow-sm);pointer-events:none;z-index:10;animation:setup-warning-fade .24s ease-out;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}.setup-warning-icon{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--danger);color:#fff;font-weight:800;flex-shrink:0}@keyframes setup-warning-fade{0%{transform:translate(-50%,-6px);opacity:0}to{transform:translate(-50%);opacity:1}}.server-error-toast{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:10px;border:1px solid #f3bdbd;background:var(--danger-soft);color:var(--danger);border-radius:var(--r-md);font-size:.92rem;font-weight:600;animation:server-error-pop .24s ease-out;box-shadow:var(--shadow-sm)}.disconnect-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:10px;border:1px solid var(--warn);background:var(--warn-soft);color:var(--text);border-radius:var(--r-md);font-size:.92rem;font-weight:600}.disconnect-banner strong{color:var(--warn);font-variant-numeric:tabular-nums}.disconnect-spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--warn);border-radius:50%;animation:lobby-spin .7s linear infinite;flex-shrink:0}.waiting-overlay-code{display:grid;gap:4px;justify-items:center;padding:18px;background:var(--accent-soft);border:1px dashed var(--accent);border-radius:var(--r-md)}.waiting-overlay-code code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:2.2rem;font-weight:800;letter-spacing:.24em;color:var(--text)}.waiting-overlay-code span{font-size:.72rem;font-weight:700;color:var(--accent-strong);text-transform:uppercase;letter-spacing:.1em}.server-error-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--danger);color:#fff;font-weight:800;flex-shrink:0}.server-error-toast>span:not(.server-error-icon){flex:1;min-width:0}.server-error-close{display:grid;place-items:center;width:24px;height:24px;padding:0;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--danger);font-size:1.1rem;font-weight:800;line-height:1;cursor:pointer;flex-shrink:0;transition:background .12s ease,border-color .12s ease}.server-error-close:hover{background:#0000000f;border-color:#f3bdbd}@keyframes server-error-pop{0%{transform:translateY(-6px);opacity:0}to{transform:translateY(0);opacity:1}}.square.checked-square{background:#f3b4b4;animation:check-pulse 1.4s ease-in-out infinite}.square.dark.checked-square{background:#c2735f}@keyframes check-pulse{0%,to{box-shadow:inset 0 0 0 4px #c43d3d80}50%{box-shadow:inset 0 0 0 6px #c43d3dd9}}.square.protected-square:before,.square.empowered-square:before,.square.frozen-square:after{position:absolute;z-index:1;right:4px;display:grid;place-items:center;width:16px;aspect-ratio:1;border-radius:50%;font-size:.62rem;font-weight:800;box-shadow:var(--shadow-sm)}.square.ferryman-portal-tile{box-shadow:inset 0 0 0 4px #2abed2b8}.square.ferryman-portal-tile:before{content:"◌";position:absolute;z-index:0;inset:12%;display:grid;place-items:center;border:2px dashed rgba(225,255,255,.78);border-radius:50%;color:#e1ffffe6;font-size:clamp(1rem,3vw,2rem);text-shadow:0 1px 3px rgba(0,0,0,.65);pointer-events:none}.square.protected-square:before{top:4px;content:"P";background:var(--good);color:#fff}.square.frozen-square:after{bottom:4px;content:"F";background:var(--ice);color:#fff}.square.empowered-square:before{top:4px;left:4px;right:auto;content:"E";background:var(--accent);color:var(--accent-contrast)}.prey-mark-x{position:absolute;inset:6%;width:auto;height:auto;pointer-events:none;z-index:2;overflow:visible;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}.prey-mark-x-slash{stroke:#dc1e1eeb;stroke-width:14;stroke-linecap:round;fill:none;stroke-dasharray:100;stroke-dashoffset:100;animation:prey-mark-slash-draw .18s cubic-bezier(.4,0,.2,1) forwards}.prey-mark-x-slash-2{animation-delay:.15s}@keyframes prey-mark-slash-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.prey-mark-x-slash{animation-duration:1ms;animation-delay:0ms}}.promotion-picker{position:absolute;left:50%;transform:translate(calc(-50% + var(--promo-clamp, 0px)));z-index:50;display:flex;flex-direction:column;gap:6px;padding:10px;max-width:min(92vw,388px);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:0 14px 32px #281e122e,0 2px 6px #281e1214;cursor:default;pointer-events:auto}.board.flipped .promotion-picker{transform:translate(calc(-50% + var(--promo-clamp, 0px))) rotate(180deg)}.promotion-picker.expand-down{top:calc(100% + 6px)}.promotion-picker.expand-up{bottom:calc(100% + 6px)}.promotion-picker-header{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);text-align:center}.promotion-picker-options{display:grid;grid-template-columns:repeat(6,58px);gap:4px}.form-shift-options{grid-template-columns:repeat(2,80px);gap:8px}.form-shift-options .promotion-option{padding:8px 4px;font-size:12px}.form-shift-options .promotion-option img{width:56px;height:56px}.promotion-option{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 3px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text-2);font-size:10px;line-height:1.15;text-align:center;cursor:pointer;overflow:hidden;min-width:0}.promotion-option>span{display:block;max-width:100%;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.promotion-option:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.promotion-option img{width:32px;height:32px;object-fit:contain;pointer-events:none}.promotion-cancel{align-self:center;padding:4px 12px;background:transparent;color:var(--text-3);border:1px solid var(--line);border-radius:4px;font-size:11px;cursor:pointer}.promotion-cancel:hover{color:var(--text);border-color:var(--line-strong);background:var(--panel-2)}.promotion-option,.promotion-cancel{touch-action:manipulation}@media(max-width:520px){.promotion-picker{gap:4px;padding:8px}.promotion-picker-options{grid-template-columns:repeat(3,minmax(52px,1fr))}.promotion-option img{width:28px;height:28px}.promotion-option,.promotion-cancel{min-height:44px}}.piece-image{width:88%;height:88%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.placement-ghost{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.4;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18));transition:opacity 80ms ease}.board.flipped .placement-ghost{transform:rotate(180deg)}@media(hover:hover){.square.draggable-piece{cursor:grab}}.piece-drag-ghost{position:fixed;width:64px;height:64px;transform:translate(-50%,-50%);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:9999;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}.square.draggable-piece,.square.placement-zone{touch-action:none}.piece-shift{display:grid;place-items:center;width:100%;height:100%;z-index:1}.piece-shift-animating{animation:piece-slide .22s cubic-bezier(.25,.46,.45,.94)}@keyframes piece-slide{0%{transform:translate(var(--move-dx, 0),var(--move-dy, 0))}to{transform:translate(0)}}.piece{font-size:clamp(1.1rem,4vw,2.4rem);font-weight:900;line-height:1;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.piece.white{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.piece.black{color:#14181a}.dev-panel-header{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:6px}.pill,.dev-panel-header span,.exp-pill,.codex-tag,.codex-stats span,.codex-badge{display:inline-flex;align-items:center;justify-content:center;height:var(--pill-h);padding:var(--pill-pad);border-radius:var(--pill-radius);font-size:var(--pill-font);font-weight:var(--pill-weight);letter-spacing:.04em;white-space:nowrap;line-height:1;border:1px solid transparent;background:var(--accent-soft);color:var(--accent-strong);text-transform:uppercase}.dev-panel-header strong{color:var(--text);font-size:1.02rem}.budget-line,.setup-rules,.validation-list,.move-history-panel,.chat-panel,.player-strip,.quick-status,.rematch-panel,.notes div{display:grid;gap:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--text-2);border-radius:var(--r-md);padding:10px 12px;font-size:.88rem}.budget-line strong{color:var(--text);font-size:1.02rem;font-variant-numeric:tabular-nums}.budget-line span{color:var(--text-3)}.army-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md)}.army-tabs button{border:0;background:transparent;color:var(--text-2);font-weight:700;padding:7px 12px;border-radius:var(--r-sm);cursor:pointer;transition:background .12s ease,color .12s ease}.army-tabs button:hover{color:var(--text)}.army-tabs button.active{background:var(--accent);color:#fff}.preset-button{display:grid;gap:2px;width:100%;text-align:left;padding:10px 14px}.preset-button small{color:#ffffffdb;font-weight:500}.setup-action-row{display:flex;align-items:stretch;gap:8px}.setup-action-row .preset-button{flex:1;min-width:0}.clear-board-button{flex-shrink:0;padding:8px 14px;background:var(--panel-2);color:var(--text-2);border:1px solid var(--line-strong);border-radius:var(--r-md);font-weight:700;font-size:.86rem;cursor:pointer;box-shadow:none;transition:background .14s ease,color .14s ease,border-color .14s ease}.clear-board-button:hover:not(:disabled){background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.clear-board-button:disabled{opacity:.5;cursor:not-allowed}.armies-picker{display:grid;gap:10px;padding:12px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md)}.armies-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.armies-header strong{font-size:.92rem;color:var(--text)}.armies-save-btn{padding:4px 10px;background:transparent;border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--accent);font-weight:700;font-size:.78rem;cursor:pointer;box-shadow:none}.army-panel>*{min-width:0;max-width:100%}.armies-save-btn:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.armies-save-btn:disabled{opacity:.45;cursor:not-allowed}.armies-save-row{display:flex;gap:6px;align-items:stretch}.armies-save-row input{flex:1;padding:6px 10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);font-size:.86rem;min-width:0}.armies-save-row button{padding:6px 12px;font-size:.82rem;box-shadow:none}.armies-save-row .armies-cancel{background:transparent;color:var(--text-2);border:1px solid var(--line)}.armies-group{display:grid;gap:6px}.armies-group-label{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.armies-chip-row{display:flex;flex-wrap:wrap;gap:6px}.armies-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:0;padding:6px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);font-weight:700;font-size:.82rem;cursor:pointer;box-shadow:none;transition:background .12s ease,border-color .12s ease}.armies-chip small{font-size:.68rem;font-weight:500;color:var(--text-3)}.armies-chip:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.armies-chip:disabled{opacity:.5;cursor:not-allowed}.armies-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.armies-row{display:flex;align-items:stretch;gap:4px}.armies-load{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);font-weight:600;font-size:.84rem;text-align:left;cursor:pointer;box-shadow:none;transition:background .12s ease,border-color .12s ease}.armies-load:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.armies-load:disabled{opacity:.5;cursor:not-allowed}.armies-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.armies-load small{color:var(--text-3);font-weight:500;font-size:.72rem;flex-shrink:0}.armies-delete{width:28px;background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text-3);font-size:1rem;line-height:1;cursor:pointer;box-shadow:none;transition:background .12s ease,color .12s ease,border-color .12s ease}.armies-delete:hover{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.armies-empty{margin:0;font-size:.78rem;color:var(--text-3)}.piece-list{display:grid;gap:6px;padding-right:4px}.piece-list button{display:grid;grid-template-columns:30px 1fr auto auto;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--r-md);text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.piece-info-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--line);background:var(--panel-2);color:var(--text-2);font-family:inherit;font-style:normal;font-weight:700;font-size:11px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:background .12s ease,color .12s ease,border-color .12s ease}.piece-info-icon:hover,.piece-info-icon:focus-visible{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent);outline:none}.piece-list button.active{background:var(--accent-soft);border-color:var(--accent)}.piece-list button.experimental{border-style:dashed;opacity:.9}.piece-list img{width:28px;height:28px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}.piece-list span{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--text)}.piece-list small{color:var(--text-3);font-size:.78rem;font-variant-numeric:tabular-nums}.piece-section{margin-bottom:10px}.piece-section-head{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:8px;padding:0 2px 4px;font-size:.78rem}.piece-section-head strong{letter-spacing:.05em;text-transform:uppercase;color:var(--text);font-size:.74rem}.piece-section-head span{color:var(--text-3);font-size:.72rem}.piece-section-count{font-variant-numeric:tabular-nums;font-weight:700;color:var(--text-2);padding:1px 6px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);font-size:.7rem}.piece-list-mythic{padding:4px;border:1px solid var(--accent);background:var(--accent-soft);border-radius:var(--r-md)}.piece-section-mythic .piece-section-head strong{color:var(--accent-strong)}.piece-list-objective{padding:4px;border:1px dashed var(--line-strong);background:var(--panel-2);border-radius:var(--r-md)}.piece-section-objective .piece-section-head strong{color:var(--text)}.piece-sort-toggle{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-3);margin-bottom:6px}.piece-sort-toggle button{padding:3px 8px;background:var(--panel);color:var(--text-2);border:1px solid var(--line);border-radius:var(--r-sm, 4px);cursor:pointer;font-size:.74rem;font-variant-numeric:tabular-nums}.piece-sort-toggle button:hover{background:var(--panel-2);border-color:var(--line-strong)}.piece-sort-toggle button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.piece-sort-label{margin-right:2px;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.piece-info-overlay{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:clamp(12px,3vw,28px);background:#14182473;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.piece-info-popup{position:relative;width:min(100%,360px);max-height:min(86vh,520px);overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.piece-info-close{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--panel-2);color:var(--text-2);font-size:1.1rem;line-height:1;cursor:pointer;display:grid;place-items:center}.piece-info-close:hover{background:var(--danger-soft);color:var(--danger);border-color:#f3bdbd}.piece-info-head{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:10px}.piece-info-head img{width:32px;height:32px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}.piece-info-head-text{display:flex;flex-direction:column}.piece-info-head-text strong{font-size:.96rem;color:var(--text)}.piece-info-head-text span{font-size:.74rem;color:var(--text-3)}.piece-info-tagline{font-style:italic;color:var(--text-2);font-size:.82rem}.piece-info-desc{margin:0;padding-left:18px;font-size:.82rem;line-height:1.4;color:var(--text);display:flex;flex-direction:column;gap:3px}.piece-info-notes{margin:0;padding-left:18px;font-size:.76rem;color:var(--text-2);display:flex;flex-direction:column;gap:2px}.piece-info-setup{font-size:.76rem;color:var(--text-3)}.piece-info-setup strong{color:var(--text-2)}.exp-pill{background:var(--warn-soft);color:var(--warn)}.setup-rules strong,.validation-list strong{color:var(--text)}.setup-rules,.validation-list{font-size:.84rem}.notes{display:flex;gap:6px;flex-wrap:wrap}.notes.vertical{display:grid}.action-row{display:block;width:100%;padding:8px 12px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-strong);border:1px solid #c8d3f3;text-align:left;font-weight:700;font-size:.88rem;box-shadow:none}.action-row:hover{background:var(--accent);color:#fff;border-color:var(--accent-strong)}.pending-banner{padding:10px 14px;border-radius:var(--r-md);background:var(--warn-soft);border:1px solid #f0d59f;color:#7c5410;font-weight:700}.player-strip,.quick-status{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;color:var(--text-2);font-size:.86rem}.player-strip strong{color:var(--text)}.panel-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.panel-section-title span{color:var(--text-3);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.panel-section-title strong{color:var(--text);font-size:.95rem}.panel-link{margin-left:auto;border:0;background:transparent;color:var(--accent-strong);padding:2px 6px;font-size:.82rem;font-weight:700;cursor:pointer;border-radius:var(--r-sm)}.panel-link:hover{background:var(--accent-soft)}.move-history-panel,.chat-panel,.rematch-panel{padding:12px;gap:8px}.move-table{display:grid;max-height:220px;overflow:auto;border-radius:var(--r-sm);background:var(--panel);border:1px solid var(--line)}.move-row{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(0,1fr);align-items:center;min-height:32px;border-bottom:1px solid var(--line);font-size:.88rem}.move-row:last-child{border-bottom:0}.move-row:nth-child(2n){background:var(--panel-2)}.move-number{color:var(--text-3);text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.move-row span:not(.move-number){overflow:hidden;padding:6px 10px;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.move-row .mine{color:var(--accent-strong)}.move-row .theirs{color:var(--text-2)}.move-cell{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 10px;background:transparent;border:0;text-align:left;font:inherit;cursor:pointer;color:inherit;border-radius:0}.move-cell.mine{color:var(--accent-strong)}.move-cell.theirs{color:var(--text-2)}.move-cell:hover:not(:disabled){background:var(--accent-soft)}.move-cell:disabled{cursor:default;opacity:.55}.move-cell.active{background:var(--accent);color:#fff;font-weight:700}.review-controls{display:flex;align-items:center;gap:6px;padding:6px 4px;font-size:.9rem}.review-btn{padding:4px 10px;font-size:.92rem;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.review-btn:hover:not(:disabled){background:var(--accent-soft)}.review-btn:disabled{opacity:.45;cursor:default}.review-position{flex:1;text-align:center;font-variant-numeric:tabular-nums;color:var(--text-2);font-size:.85rem}.review-banner{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.empty-history{color:var(--text-3);padding:10px;font-size:.85rem}.chat-panel input{flex:1;padding:8px 12px!important;background:var(--panel)!important;color:var(--text)!important;border:1px solid var(--line)!important;border-radius:var(--r-md)!important;font:inherit!important}.chat-panel button{padding:8px 14px!important;font-size:.85rem!important}.rematch-panel{border-color:var(--accent);background:var(--accent-soft)}.rematch-panel span{color:var(--text-2);font-size:.85rem}.lobby-screen{display:grid;place-items:center;width:100%;max-width:460px}.lobby-screen-wide{max-width:560px}.lobby-card{display:grid;gap:14px;width:100%}.lobby-card-wide{gap:18px;padding:clamp(20px,2.4vw,32px)}.lobby-card-wide .lobby-card-header h2{font-size:1.55rem}.lobby-card-wide .lobby-card-header p{font-size:.96rem}.lobby-card-header{display:grid;gap:2px}.lobby-card-header h2{margin:0}.lobby-card-header p{color:var(--text-3);font-size:.92rem}.lobby-center{display:grid;gap:14px;justify-items:center;padding:36px 22px;text-align:center}.lobby-field{display:grid;gap:6px}.lobby-field>span{font-size:.72rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.lobby-field input[type=text]{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;font:inherit;background:var(--panel);color:var(--text);width:100%;transition:border-color .14s ease}.lobby-field input[type=text]::placeholder{color:var(--text-muted)}.lobby-field input[type=text]:focus{border-color:var(--accent)}.lobby-actions{display:grid;gap:8px}.lobby-divider{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.lobby-divider:before,.lobby-divider:after{content:"";flex:1;height:1px;background:var(--line)}.lobby-join-row{display:grid;grid-template-columns:1fr auto;gap:8px}.lobby-join-row input{text-align:center;font-size:1.15rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.lobby-section{display:grid;gap:6px}.lobby-section-header{display:flex;align-items:center;justify-content:space-between}.lobby-label{font-size:.72rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.lobby-room-list{display:grid;gap:6px}.lobby-room-row{display:grid;grid-template-columns:60px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px;background:var(--panel);color:var(--text);cursor:pointer;text-align:left;transition:border-color .12s ease,background .12s ease}.lobby-room-row:hover{border-color:var(--accent);background:var(--accent-soft)}.lobby-room-row:disabled{cursor:not-allowed;opacity:.55}.lobby-room-code{font-weight:800;font-size:1.02rem;letter-spacing:.14em;color:var(--text);font-variant-numeric:tabular-nums}.lobby-room-host{color:var(--text-3);font-size:.88rem}.lobby-room-join{color:var(--accent-strong);font-size:.85rem;font-weight:700}.lobby-info-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;font-size:.92rem}.lobby-info-row span{color:var(--text-3)}.lobby-info-row strong{color:var(--text);text-transform:capitalize}.lobby-tag-color{color:var(--accent-strong)}.lobby-room-info{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--r-md);padding:0 12px}.lobby-room-info .lobby-info-row+.lobby-info-row{border-top:1px solid var(--line)}.lobby-code-hero{display:grid;gap:6px;justify-items:center;padding:18px;background:var(--accent-soft);border:1px dashed var(--accent);border-radius:var(--r-md);cursor:pointer;transition:background .14s ease,transform .1s ease}.lobby-code-hero:hover{background:color-mix(in srgb,var(--accent-soft) 70%,var(--accent) 30%)}.lobby-code-hero:active{transform:scale(.99)}.lobby-code-hero code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:2.4rem;font-weight:800;letter-spacing:.24em;color:var(--text)}.lobby-code-hint{font-size:.74rem;font-weight:700;color:var(--accent-strong);letter-spacing:.1em;text-transform:uppercase}.lobby-muted{color:var(--text-3);font-size:.88rem}.lobby-error{border-radius:var(--r-md);padding:9px 12px;background:var(--danger-soft);border:1px solid #f3bdbd;color:var(--danger);font-size:.85rem;font-weight:600}.lobby-pending{display:flex;align-items:center;gap:10px;color:var(--text-3);font-weight:600}.lobby-refresh{border:1px solid var(--line);border-radius:var(--r-md);padding:4px 10px;background:var(--panel);color:var(--text);cursor:pointer;font-size:.9rem}.lobby-refresh:hover{background:var(--panel-2);border-color:var(--line-strong)}.lobby-create-cta{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:16px 18px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--r-md);cursor:pointer;text-align:left;transition:transform .1s ease,background .14s ease,box-shadow .14s ease;box-shadow:var(--shadow-sm)}.lobby-create-cta:hover:not(:disabled){background:var(--accent-strong);box-shadow:var(--shadow-md)}.lobby-create-cta:active:not(:disabled){transform:scale(.99)}.lobby-create-cta:disabled{opacity:.55;cursor:not-allowed}.lobby-create-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#ffffff2e;font-size:1.4rem;font-weight:800;line-height:1}.lobby-create-text{display:grid;gap:2px}.lobby-create-text strong{font-size:1.06rem;font-weight:700}.lobby-create-text small{font-size:.82rem;opacity:.86}.lobby-rooms-section .lobby-label{display:inline-flex;align-items:center;gap:6px}.lobby-live-dot{width:7px;height:7px;border-radius:50%;background:#2bb673;box-shadow:0 0 #2bb6738c;animation:lobby-live-pulse 1.8s ease-out infinite;margin-left:4px}.lobby-live-text{font-size:.66rem;color:#2bb673;letter-spacing:.1em}@keyframes lobby-live-pulse{0%{box-shadow:0 0 #2bb6738c}70%{box-shadow:0 0 0 6px #2bb67300}to{box-shadow:0 0 #2bb67300}}.lobby-empty-rooms{display:grid;justify-items:center;gap:4px;padding:24px 16px;border:1px dashed var(--line);border-radius:var(--r-md);background:var(--panel-2);text-align:center}.lobby-empty-rooms p{margin:0;color:var(--text-2);font-weight:600}.lobby-empty-rooms small{color:var(--text-3)}.lobby-empty-mark{font-size:1.5rem;color:var(--text-muted);line-height:1}.lobby-code-disclosure{border:1px solid var(--line);border-radius:var(--r-md);padding:4px 10px;background:var(--panel-2)}.lobby-code-disclosure summary{cursor:pointer;padding:8px 2px;font-size:.88rem;color:var(--text-2);font-weight:600;list-style:none}.lobby-code-disclosure summary::-webkit-details-marker{display:none}.lobby-code-disclosure summary:before{content:"+ ";font-weight:800;color:var(--text-3)}.lobby-code-disclosure[open] summary:before{content:"− "}.lobby-code-disclosure[open] summary{margin-bottom:8px}.lobby-code-disclosure .lobby-join-row{padding-bottom:8px}.lobby-cancel-btn{justify-self:center}.lobby-time-control{display:grid;gap:6px}.lobby-time-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.lobby-time-option{display:grid;gap:2px;padding:8px 6px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);color:var(--text-2);cursor:pointer;text-align:center;transition:border-color .12s ease,background .12s ease,color .12s ease}.lobby-time-option:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.lobby-time-option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.lobby-time-option strong{font-size:.95rem}.lobby-time-option small{font-size:.72rem;color:var(--text-3)}.lobby-time-option.active small{color:var(--accent-strong)}.lobby-time-option:disabled{cursor:not-allowed;opacity:.55}.lobby-color-picker{display:grid;gap:6px}.lobby-color-picker .lobby-time-options{grid-template-columns:repeat(3,1fr)}.game-over-overlay{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:#0f0e0c99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:game-over-fade .22s ease-out;padding:20px}@keyframes game-over-fade{0%{opacity:0}to{opacity:1}}.game-over-card{position:relative;width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-md);display:grid;gap:18px;animation:game-over-pop .32s cubic-bezier(.18,1.05,.4,1)}.game-over-dismiss{position:absolute;top:8px;right:12px;width:32px;height:32px;display:grid;place-items:center;background:transparent;border:none;color:var(--text-3);font-size:1.6rem;line-height:1;border-radius:50%;cursor:pointer}.game-over-dismiss:hover{background:var(--panel-2);color:var(--text)}.game-over-hint{text-align:center;color:var(--text-3);font-size:.75rem}@keyframes game-over-pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.game-over-headline{display:grid;gap:4px;text-align:center}.game-over-headline h2{margin:0;font-size:1.95rem;letter-spacing:-.01em}.game-over-headline p{margin:0;color:var(--text-3);font-size:.95rem}.game-over-headline.win h2{color:#1f8a4c}.game-over-headline.draw h2{color:var(--text)}.game-over-rematch-banner{display:grid;gap:2px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-md);padding:10px 14px;color:var(--text)}.game-over-rematch-banner strong{color:var(--accent-strong);font-size:.96rem}.game-over-rematch-banner span{font-size:.82rem;color:var(--text-3)}.game-over-actions{display:grid;gap:8px}.game-over-primary,.game-over-secondary{font-size:1rem;font-weight:700;padding:10px 18px;border-radius:var(--r-md);cursor:pointer;transition:background .14s ease,transform .1s ease}.game-over-primary{background:var(--accent);color:#fff;border:1px solid var(--accent)}.game-over-primary:hover:not(:disabled){background:var(--accent-strong)}.game-over-primary:active:not(:disabled){transform:scale(.99)}.game-over-primary:disabled{opacity:.6;cursor:not-allowed}.game-over-secondary{background:var(--panel-2);color:var(--text-2);border:1px solid var(--line)}.game-over-secondary:hover{background:var(--panel);color:var(--text)}.player-strip-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);margin:8px 0;min-height:44px;transition:background .14s ease,border-color .14s ease}.player-strip-bar.ticking{background:var(--accent-soft);border-color:var(--accent)}.player-strip-main{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.player-strip-name{font-weight:700;color:var(--text);font-size:.96rem;white-space:nowrap}.player-strip-clock{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:800;color:var(--text);padding:2px 10px;border-radius:var(--r-sm);background:var(--panel);border:1px solid var(--line)}.player-strip-bar.ticking .player-strip-clock{color:var(--accent-strong);border-color:var(--accent)}.player-strip-clock.low{color:var(--danger)}.player-strip-bar.ticking .player-strip-clock.low{border-color:var(--danger);background:var(--danger-soft);animation:clock-flash .8s ease-in-out infinite}@keyframes clock-flash{0%,to{opacity:1}50%{opacity:.55}}.captured-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;overflow:hidden}.captured-stack{display:inline-flex;align-items:center}.captured-piece{width:20px;height:20px;margin-left:-6px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.captured-stack:first-child .captured-piece:first-child,.captured-stack>.captured-piece:first-child{margin-left:0}.captured-advantage{font-size:.78rem;font-weight:800;color:var(--accent-strong);margin-left:4px;background:var(--accent-soft);padding:1px 6px;border-radius:10px;border:1px solid var(--accent);font-variant-numeric:tabular-nums}@media(max-width:520px){.player-strip-bar{padding:6px 10px;min-height:38px}.captured-piece{width:16px;height:16px;margin-left:-5px}.player-strip-clock{font-size:1.05rem;padding:2px 8px}}.lobby-invite-link-btn{justify-self:center;border:1px solid var(--accent);background:var(--panel);color:var(--accent-strong);border-radius:var(--r-md);padding:8px 16px;font-weight:700;cursor:pointer;font-size:.92rem;transition:background .14s ease,color .14s ease}.lobby-invite-link-btn:hover{background:var(--accent);color:#fff}.waiting-card .lobby-code-hero{padding:28px 18px}.waiting-card .lobby-code-hero code{font-size:2.8rem}.lobby-spinner{width:18px;height:18px;border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:lobby-spin .7s linear infinite;display:inline-block}@keyframes lobby-spin{to{transform:rotate(360deg)}}.codex-overlay{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:clamp(12px,2vw,28px)}.codex-backdrop{position:absolute;inset:0;background:#14182480;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.codex-modal{position:relative;width:min(100%,900px);max-height:min(92vh,700px);display:flex;flex-direction:column;border-radius:var(--r-lg);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-lg);overflow:hidden}.codex-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}.codex-header small{display:block;color:var(--accent-strong);font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;margin-bottom:2px}.codex-header h2{margin:0}.codex-close{border:1px solid var(--line);background:var(--panel-2);color:var(--text-2);width:32px;height:32px;border-radius:50%;font-size:1.4rem;font-weight:300;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .14s ease}.codex-close:hover{background:var(--danger-soft);color:var(--danger);border-color:#f3bdbd}.codex-body{display:grid;grid-template-columns:220px 1fr;min-height:0;flex:1}.codex-list{list-style:none;margin:0;padding:8px;border-right:1px solid var(--line);overflow-y:auto;display:grid;gap:2px;align-content:start;background:var(--panel-2)}.codex-item{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;width:100%;border:1px solid transparent;background:transparent;color:var(--text-2);padding:7px 10px;border-radius:var(--r-sm);font-size:.88rem;cursor:pointer;text-align:left;position:relative}.codex-item:hover{background:var(--panel);color:var(--text)}.codex-item.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.codex-item img{width:22px;height:22px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}.codex-item-name{font-weight:700;color:inherit}.codex-item-cost{font-size:.78rem;font-weight:700;color:var(--text-3);font-variant-numeric:tabular-nums}.codex-tag.exp{position:absolute;top:50%;right:28px;transform:translateY(-50%);background:var(--warn-soft);color:var(--warn)}.codex-detail{display:grid;grid-template-rows:auto 1fr;overflow-y:auto;padding:20px}.codex-portrait{display:flex;align-items:center;justify-content:center;gap:14px;padding:18px;border-radius:var(--r-md);background:var(--bg-soft);border:1px solid var(--line);margin-bottom:14px}.codex-portrait img{width:72px;height:72px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}.codex-detail-body{display:grid;gap:10px}.codex-detail-body h3{font-size:1.25rem;margin:0}.codex-tagline{color:var(--accent-strong);font-style:italic;font-weight:600;font-size:.94rem}.codex-stats{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}.codex-stats span{background:var(--panel-2);border:1px solid var(--line);color:var(--text-2);text-transform:none;letter-spacing:0;font-weight:600}.codex-stats strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:800;margin-right:3px}.codex-badge{background:var(--accent-soft);border:1px solid #c8d3f3;color:var(--accent-strong)}.codex-badge.exp{background:var(--warn-soft);border:1px solid #f0d59f;color:var(--warn)}.codex-description{margin:4px 0 0;padding-left:18px;color:var(--text-2);line-height:1.55;display:flex;flex-direction:column;gap:4px}.codex-description li+li{margin-top:2px}.codex-notes{margin:2px 0 0;padding-left:18px;color:var(--text-3);font-size:.86rem;line-height:1.5}.codex-notes li+li{margin-top:2px}.codex-setup{margin-top:4px;padding:9px 12px;border-radius:var(--r-md);background:var(--accent-soft);border:1px solid #c8d3f3;color:var(--text-2);font-size:.86rem}.codex-setup strong{color:var(--text)}.codex-rules-section{display:grid;gap:7px;padding-top:8px;border-top:1px solid var(--line)}.codex-rules-section h4{margin:0;color:var(--accent-strong);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}.codex-rules-section p{margin:0;color:var(--text-2);line-height:1.5}.codex-clock-warning{margin:4px 0 0;padding:9px 11px;color:var(--text-3);background:var(--panel-2);border-left:3px solid var(--ember);font-size:.76rem}.codex-scenario{display:grid;gap:10px;margin-top:6px;padding:14px;background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--r-md)}.codex-scenario-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.codex-scenario-head small{color:var(--accent-strong);font:700 .66rem var(--font-mono);text-transform:uppercase}.codex-scenario-head h4{margin:2px 0 0}.codex-scenario>p{margin:0;color:var(--text-2);font-size:.82rem;line-height:1.45}.codex-scenario-actions{display:flex;gap:6px}.codex-scenario-actions button,.codex-demo-step button{min-height:34px;padding:6px 9px;color:var(--text);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;font-weight:700}.scenario-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));width:min(100%,360px);max-width:360px;aspect-ratio:1 / 1;margin:0 auto;border:2px solid var(--line-strong);box-sizing:border-box;overflow:hidden;line-height:0}.scenario-board button{position:relative;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;border-radius:0;box-sizing:border-box;overflow:hidden;appearance:none;cursor:pointer}.scenario-board button.light{background:var(--sq-light)}.scenario-board button.dark{background:var(--sq-dark)}.scenario-board button:focus-visible{z-index:3;outline:3px solid var(--state-focus);outline-offset:-3px}.scenario-board img{position:relative;z-index:2;display:block;width:82%;height:82%;max-width:none;object-fit:contain;pointer-events:none}.scenario-board button i{position:absolute;width:32%;aspect-ratio:1;border-radius:50%;background:color-mix(in srgb,var(--state-target) 75%,transparent)}.scenario-board button.selected:after{content:"";position:absolute;inset:5%;border:3px solid var(--state-mark)}.codex-demo-step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.codex-demo-step>span{font:700 .68rem var(--font-mono);color:var(--text-3)}.codex-demo-step strong{font-size:.82rem}.codex-demo-step p{margin:2px 0 0;color:var(--text-3);font-size:.76rem}.codex-demo-controls{display:flex;gap:6px}.codex-practice-feedback{min-height:38px;padding:9px 10px;color:var(--text-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm)}@media(max-width:640px){.codex-scenario{padding:10px}.codex-scenario-head{align-items:flex-start}.codex-scenario-actions{flex-direction:column}.codex-demo-step{grid-template-columns:auto 1fr}.codex-demo-controls{grid-column:1 / -1}.codex-demo-controls button{flex:1}}@media(max-width:760px){.app-header{padding:0 10px}.app-brand-text{display:none}.top-bar{flex-direction:column;align-items:stretch;gap:10px}.top-bar>div:last-child{display:grid;grid-auto-flow:column;gap:8px}.army-panel{padding:12px}.workspace-layout.chess2-layout.setup-layout .piece-list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(108px,130px);grid-template-columns:none;max-height:none;overflow-x:auto;overflow-y:hidden;padding:4px 4px 8px;scroll-snap-type:x proximity}.workspace-layout.chess2-layout.setup-layout .piece-list button{grid-template-columns:26px 1fr;grid-template-rows:auto auto;min-height:72px;align-content:start;scroll-snap-align:start}.workspace-layout.chess2-layout.setup-layout .piece-list small{grid-column:1 / -1}.codex-body{grid-template-columns:1fr}.codex-list{border-right:0;border-bottom:1px solid var(--line);max-height:200px}}@media(max-width:520px){.app-shell{padding:8px}.app-shell.app-shell-centered{padding-top:20px}.board{grid-column:1 / -1;border-radius:var(--r-sm)}.game-panel,.army-panel{padding:10px;border-radius:var(--r-md)}.top-bar{margin-bottom:8px}.top-bar h1{font-size:1.05rem}.top-bar p{font-size:.85rem}.square.checked-square{box-shadow:inset 0 0 0 3px var(--danger)}.piece-image{width:90%;height:90%}.move-row{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr);font-size:.78rem}.codex-modal{max-height:100vh;border-radius:0}.codex-portrait img{width:56px;height:56px}.lobby-code-hero code{font-size:1.9rem;letter-spacing:.2em}}@media(pointer:coarse){.square{min-height:36px}.lobby-room-row,.piece-list button,.mobilenav-item,.sidenav-item,.miniplayer-return,.miniplayer-icon-btn,.codex-demo-controls .header-btn,.auth-submit,.landing-cta,.bottom-sheet-handle{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.boundary{min-height:100vh;display:grid;place-items:center;padding:24px}.boundary-card{width:min(100%,460px);display:grid;gap:12px;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);text-align:left}.boundary-card pre{margin:0;padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-sm);font-size:.78rem;color:var(--danger);white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto}.dashboard{width:min(100%,880px);margin:0 auto;padding:clamp(24px,4vw,56px) clamp(14px,2vw,24px) 64px}.lobby-dashboard{display:grid;gap:clamp(20px,2.5vw,32px)}.lobby-play-panel{display:grid;gap:14px;padding:clamp(18px,2.4vw,28px);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.lobby-name-input{width:100%;padding:12px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);font-size:1rem;font-weight:500;transition:border-color .14s ease,background-color .14s ease}.lobby-name-input:focus{outline:none;border-color:var(--accent);background:var(--panel)}.lobby-name-input::placeholder{color:var(--text-3);font-weight:400}.lobby-actions-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(max-width:480px){.lobby-actions-row{grid-template-columns:1fr}.lobby-actions-row .lobby-play-online{grid-column:auto}}.lobby-play-cta{display:flex;align-items:center;gap:12px;padding:14px 16px;width:100%;border:0;border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--accent-contrast);font-weight:700;box-shadow:var(--shadow-sm);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease,background .14s ease}.lobby-play-online{background:linear-gradient(135deg,var(--accent),var(--accent-strong))}.lobby-play-local,.lobby-play-bot,.lobby-play-spectate{background:var(--panel-2);color:var(--text);border:1px solid var(--line-strong)}.lobby-play-cta:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md);filter:brightness(1.04)}.lobby-play-cta:active:not(:disabled){transform:translateY(0)}.lobby-play-cta:disabled{opacity:.55;cursor:not-allowed;filter:none}.lobby-play-cta-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#ffffff2e;font-size:1.15rem;flex-shrink:0}.lobby-play-local .lobby-play-cta-icon{background:var(--accent-soft);color:var(--accent)}.lobby-play-cta-text{display:grid;gap:1px;min-width:0}.lobby-play-cta-text strong{font-size:.98rem;font-weight:700}.lobby-play-cta-text small{font-size:.76rem;opacity:.82;font-weight:500}.lobby-quick-row{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding-top:2px}.lobby-quick-row>*{margin:0}.lobby-advanced summary,.lobby-quick-row .lobby-code-disclosure summary{font-size:.84rem;color:var(--text-3);padding:4px 0}.lobby-advanced[open] .lobby-advanced-body{margin-top:8px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md)}.lobby-budget-field{display:grid;gap:4px}.lobby-field-hint{color:var(--text-3);font-size:.78rem}.lobby-custom-time{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.lobby-custom-time label{display:flex;flex-direction:column;gap:4px}.lobby-custom-time input{padding:8px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text)}.lobby-rooms-block{display:grid;gap:10px}.lobby-rooms-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.lobby-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.lobby-room-card{display:grid;grid-template-rows:auto auto auto auto;gap:4px;padding:14px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--text);transition:border-color .14s ease,background-color .14s ease,transform .14s ease}.lobby-room-card:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.lobby-room-card:disabled{opacity:.55;cursor:not-allowed}.lobby-room-card-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.4rem;font-weight:800;letter-spacing:.08em;color:var(--text)}.lobby-room-card-host{color:var(--text-2);font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lobby-room-card-meta{color:var(--text-3);font-size:.76rem}.lobby-room-card-cta{margin-top:6px;align-self:end;justify-self:start;font-size:.82rem;font-weight:700;color:var(--accent)}.lobby-room-card.in-progress .lobby-room-card-cta{color:var(--text-3)}.lobby-room-card.in-progress:hover:not(:disabled){border-color:var(--line-strong);background:var(--panel-2)}.lobby-rooms-empty{padding:18px 14px;text-align:center;background:var(--panel-2);border:1px dashed var(--line);border-radius:var(--r-md);color:var(--text-3);font-size:.88rem}.settings-row-column{flex-direction:column;align-items:stretch;gap:12px}.settings-theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.settings-theme-option{display:grid;gap:2px;padding:10px 8px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;color:var(--text);text-align:center;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.settings-theme-option strong{font-size:.92rem;font-weight:700}.settings-theme-option small{font-size:.74rem;color:var(--text-3)}.settings-theme-option:hover{border-color:var(--line-strong);background:var(--panel-2)}.settings-theme-option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.settings-theme-option.active small{color:var(--accent-strong)}.bot-config-panel{display:grid;gap:12px;padding:14px;margin-bottom:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.bot-config-row{display:grid;gap:6px}.bot-config-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--text-3)}.bot-config-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px}.bot-config-option{display:grid;gap:2px;padding:8px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--text);font-size:.85rem;transition:border-color .14s ease,background .14s ease}.bot-config-option strong{font-size:.9rem}.bot-config-option small{color:var(--text-3);font-size:.74rem}.bot-config-option:hover{border-color:var(--line-strong)}.bot-config-option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.bot-config-option.active small{color:var(--accent-strong)}.bot-config-toggle{justify-self:start;padding:6px 12px;background:transparent;border:1px solid var(--line);border-radius:var(--r-md);color:var(--text-2);font-size:.82rem;cursor:pointer}.bot-config-sliders{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.bot-config-slider{display:grid;gap:4px}.bot-config-slider-head{display:flex;justify-content:space-between;font-size:.82rem;color:var(--text-2)}.bot-config-slider-value{color:var(--accent-strong);font-weight:700;font-variant-numeric:tabular-nums}.bot-config-slider input[type=range]{width:100%}.bot-thinking-banner{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;margin-left:8px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-md);color:var(--accent-strong);font-size:.82rem;font-weight:700}.bot-thinking-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:bot-thinking-pulse 1.1s ease-in-out infinite}@keyframes bot-thinking-pulse{0%,to{opacity:.35}50%{opacity:1}}.bot-config-title{margin:0 0 4px;font-size:.95rem;font-weight:700;color:var(--text)}.botvsbot-speed{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}.botvsbot-speed input[type=range]{width:110px}.home{width:min(100%,1160px);margin:0 auto;padding:clamp(18px,3vw,40px) clamp(14px,2vw,24px) 72px;display:grid;gap:clamp(22px,3vw,40px)}.home-hero{position:relative;overflow:hidden;border:1px solid var(--line-strong);outline:1px solid color-mix(in srgb,var(--line-strong) 45%,transparent);outline-offset:-6px;border-radius:var(--r-md);min-height:clamp(340px,44vh,460px);display:grid;align-items:center;box-shadow:var(--shadow-lg),inset 0 0 0 1px #0009}.home-hero-art,.home-hero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 40%}.home-hero-scrim{position:absolute;inset:0;background:linear-gradient(76deg,#100b07eb,#100b07b8 38%,#100b072e 70%,#100b070d),linear-gradient(0deg,rgba(16,11,7,.55) 0%,transparent 40%)}.home-hero-content{position:relative;z-index:1;display:grid;gap:14px;padding:clamp(22px,4vw,48px);max-width:600px}.home-hero-content,.home-hero-content .home-deck{color:#d6c9a8}.home-hero-content h2{color:#f0e6cf;font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.05;text-shadow:0 2px 18px rgba(0,0,0,.7)}.home-kicker{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-display);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong);border-top:2px solid color-mix(in srgb,var(--accent) 60%,transparent);padding-top:10px}.home-deck{font-size:1.05rem;line-height:1.55;max-width:46ch;text-shadow:0 1px 8px rgba(0,0,0,.8)}.home-play-block{display:grid;gap:10px;margin-top:6px;justify-items:start}.home-play-now{display:grid;gap:3px;justify-items:center;padding:16px 42px;cursor:pointer;font-family:var(--font-display);color:var(--accent-contrast);text-transform:uppercase;border:1px solid color-mix(in srgb,var(--accent) 70%,#000);border-radius:var(--r-md);background:linear-gradient(180deg,#e8b95c,#c9973f 55%,#8a621c);box-shadow:inset 0 1px #ffffff59,inset 0 -2px 3px #00000040,0 4px 18px #0000008c,0 0 34px var(--glow-ember);transition:transform 80ms ease,box-shadow .15s ease,filter .15s ease}.home-play-now strong{font-size:1.18rem;letter-spacing:.1em;font-weight:800}.home-play-now small{font-family:var(--font-sans);text-transform:none;letter-spacing:.01em;font-size:.8rem;color:color-mix(in srgb,var(--accent-contrast) 82%,transparent)}.home-play-now:hover:not(:disabled){filter:brightness(1.07)}.home-play-now:active:not(:disabled){transform:translateY(1px)}.home-play-now:disabled{cursor:wait;filter:saturate(.6) brightness(.85)}.home-name-prompt{display:flex;gap:8px;width:min(100%,380px)}.home-name-prompt .lobby-name-input{flex:1}.home-live-line{display:flex;align-items:center;gap:8px;font-size:.82rem;color:#9c8e70}.lobby-live-dot.offline{background:var(--text-muted);animation:none}.home-main{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:clamp(16px,2vw,26px);align-items:stretch}.home-modes-col{display:grid;gap:12px;align-content:start}.home-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.home-mode-card{display:grid;gap:6px;justify-items:start;text-align:left;padding:18px;min-height:118px;cursor:pointer;color:var(--text);background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 16%);border:1px solid var(--line);outline:1px solid color-mix(in srgb,var(--line-strong) 45%,transparent);outline-offset:-5px;border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.home-mode-card:hover{border-color:var(--brass-lit);transform:translateY(-2px);box-shadow:var(--bevel),var(--shadow-md)}.home-mode-card strong{font-family:var(--font-display);font-size:.98rem;letter-spacing:.05em}.home-mode-card small{color:var(--text-3);font-size:.82rem;line-height:1.4}.home-mode-glyph{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--accent);font-size:.95rem}.home-mode-glyph img{width:24px;height:24px;object-fit:contain}.home-mode-draft{border-color:color-mix(in srgb,var(--ember) 45%,var(--line))}.home-mode-draft .home-mode-glyph{color:var(--ember);border-color:color-mix(in srgb,var(--ember) 55%,var(--line-strong));box-shadow:0 0 12px var(--glow-ember)}.home-side-col{display:grid;gap:clamp(12px,1.4vw,18px);align-content:start;min-width:0}.recent-games-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.recent-game-row{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;width:100%;padding:8px 10px;text-align:left;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.recent-game-row:hover,.recent-game-row.expanded{border-color:var(--brass-lit, var(--line-strong));background:var(--panel-2)}.recent-game-result{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:.78rem;font-weight:800;border:1px solid var(--line-strong);color:var(--text-2)}.recent-game-result.win{color:var(--accent-contrast, #fff);background:var(--accent);border-color:var(--accent)}.recent-game-result.loss{color:var(--danger);border-color:var(--danger)}.recent-game-result.draw{color:var(--text-2)}.recent-game-main{display:grid;gap:2px;min-width:0}.recent-game-main strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-game-main small{color:var(--text-3);font-size:.76rem}.recent-game-detail{margin-top:6px;padding:8px;border:1px dashed var(--line);border-radius:var(--r-sm)}.recent-game-detail .move-table{max-height:220px;overflow-y:auto}.rooms-rail{display:grid;gap:12px;padding:16px;background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 16%);border:1px solid var(--line);outline:1px solid color-mix(in srgb,var(--line-strong) 45%,transparent);outline-offset:-5px;border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-sm)}.rooms-rail-head{display:flex;justify-content:space-between;align-items:center}.rooms-rail-empty{display:grid;gap:6px;padding:10px 2px 6px}.rooms-rail-flavor{font-family:var(--font-flavor);font-style:italic;font-size:1rem;color:var(--text-3)}.rooms-rail-empty small{color:var(--text-muted);font-size:.8rem;line-height:1.45}.rooms-rail-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.rooms-rail-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;width:100%;padding:10px 12px;cursor:pointer;text-align:left;color:var(--text);background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color .15s ease,background .15s ease}.rooms-rail-row:hover:not(:disabled){border-color:var(--brass-lit);background:var(--panel-2)}.rooms-rail-host{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rooms-rail-mode{font-style:normal;color:var(--ember);font-size:.78rem}.rooms-rail-meta{color:var(--text-3);font-size:.76rem;white-space:nowrap}.rooms-rail-cta{font-family:var(--font-display);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.rooms-rail-create{padding:11px 14px;cursor:pointer;font-family:var(--font-display);font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-2);background:transparent;border:1px solid var(--line-strong);border-radius:var(--r-md);transition:border-color .15s ease,background .15s ease,color .15s ease}.rooms-rail-create:hover{border-color:var(--brass-lit);background:var(--accent-soft);color:var(--text)}.home-section-title{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);text-align:center}.home-how{display:grid;gap:18px}.home-how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.home-how-steps li{position:relative;display:grid;gap:8px;justify-items:center;text-align:center;padding:22px 18px 20px;background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 16%);border:1px solid var(--line);outline:1px solid color-mix(in srgb,var(--line-strong) 45%,transparent);outline-offset:-5px;border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-sm)}.home-how-step{position:absolute;top:-12px;left:50%;transform:translate(-50%);padding:2px 12px;font-family:var(--font-display);font-size:.8rem;color:var(--accent);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-sm)}.home-how-steps strong{font-family:var(--font-display);letter-spacing:.04em}.home-how-steps p{font-size:.86rem;line-height:1.5;color:var(--text-3);max-width:30ch}.home-how-art{min-height:96px;display:grid;place-items:center}.home-how-art .move-diagram-grid{width:132px}.home-how-army{display:flex;align-items:center;gap:2px}.home-how-army img{width:52px;height:52px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.home-how-draft{display:flex;gap:10px}.home-how-card{display:grid;place-items:center;width:58px;height:78px;font-family:var(--font-display);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--brass-lit);border-radius:var(--r-sm);box-shadow:var(--shadow-sm)}.home-how-card-pass{transform:rotate(7deg) translateY(4px);color:var(--text-3);border-color:var(--line-strong);opacity:.85}.dashboard-piece-figure{display:grid;gap:6px;justify-items:center;padding:10px 6px 12px;cursor:pointer;background:transparent;border:1px solid transparent;border-radius:var(--r-md);transition:border-color .15s ease,background .15s ease}.dashboard-piece-figure:hover{border-color:var(--brass-lit);background:var(--accent-soft)}.dashboard-piece-figure img{width:clamp(58px,7vw,84px);aspect-ratio:1;object-fit:contain}.dashboard-piece-name{font-family:var(--font-display);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.home-waiting{display:grid;place-items:center;min-height:50vh}.home-waiting .lobby-card{width:min(100%,520px);display:grid;gap:16px}.home-seeking{display:flex;align-items:center;gap:12px;justify-content:center;padding:22px 0;font-family:var(--font-flavor);font-style:italic;font-size:1.05rem;color:var(--text-2)}.home-waiting-actions{display:flex;flex-wrap:wrap;gap:8px}.home-waiting-actions .btn-ghost{padding:10px 16px;cursor:pointer}.create-room-modal{width:min(520px,100%)}.create-room-body{display:grid;gap:16px;padding:18px 20px 22px;overflow-y:auto}.create-room-field{display:grid;gap:8px}.create-room-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.create-room-mode{display:grid;gap:4px;justify-items:start;text-align:left;padding:12px 14px;cursor:pointer;color:var(--text-2);background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color .15s ease,background .15s ease}.create-room-mode strong{font-family:var(--font-display);font-size:.9rem;letter-spacing:.04em}.create-room-mode small{font-size:.76rem;line-height:1.35}.create-room-mode.active{color:var(--text);border-color:var(--brass-lit);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--brass-lit)}.create-room-mode-draft.active{border-color:color-mix(in srgb,var(--ember) 60%,var(--line-strong))}.create-room-local-link{justify-self:start;padding:2px 0;background:none;border:0;cursor:pointer;font-size:.8rem;font-style:italic;font-family:var(--font-flavor);color:var(--text-3);text-decoration:underline dotted}.create-room-local-link:hover{color:var(--text)}.create-room-note{font-size:.8rem;color:var(--text-3)}.create-room-submit{width:100%;padding:13px 16px;font-size:.9rem}@media(max-width:900px){.home-main{grid-template-columns:1fr}.home-how-steps{grid-template-columns:1fr;gap:20px}}@media(max-width:680px){.home{padding-top:10px}.home-hero{min-height:380px;align-items:end}.home-hero-scrim{background:linear-gradient(0deg,#100b07f0,#100b079e 45%,#100b0726 80%)}.home-play-now{width:100%;justify-items:center;padding:16px 20px}.home-play-block{justify-items:stretch}.home-modes{grid-template-columns:1fr 1fr}.home-mode-card{min-height:104px;padding:14px}.create-room-modes{grid-template-columns:1fr}}.armies-screen{display:grid;gap:18px;width:min(100%,1380px)}.armies-screen-head{display:grid;gap:6px}.armies-screen-head p{color:var(--text-2);max-width:62ch}.deck-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.deck-slot{display:flex;align-items:stretch;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-sm)}.deck-slot.active{border-color:var(--brass-lit);background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--brass-lit),var(--shadow-sm)}.deck-slot-main{flex:1 1 auto;min-width:0;display:grid;gap:2px;padding:10px 12px;text-align:left;background:none;border:none;color:var(--text);cursor:pointer}.deck-slot-name{font-family:var(--font-display);letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-slot.empty .deck-slot-name{color:var(--text-3);font-weight:400}.deck-slot-main small{color:var(--text-3);font-size:.78rem}.deck-slot-main input{font:inherit;width:100%;min-width:0;padding:2px 6px;color:var(--text);background:var(--panel-inset);border:1px solid var(--line-strong);border-radius:var(--r-sm)}.deck-slot-actions{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 6px 4px 0}.deck-slot-actions button{width:24px;height:24px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:var(--r-sm);color:var(--text-3);cursor:pointer}.deck-slot-actions button:hover{color:var(--text);border-color:var(--line-strong);background:var(--panel-2)}.deck-save-row{display:flex;align-items:center;gap:12px}.deck-dirty-hint{color:var(--warn);font-size:.85rem}@media(max-width:760px){.deck-slots{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.app-header{padding:0 clamp(14px,3vw,36px);background:var(--header-bg);border-bottom:1px solid var(--line-strong);backdrop-filter:none;-webkit-backdrop-filter:none}.app-header-inner{width:min(100%,1440px);grid-template-columns:auto minmax(0,1fr) auto;gap:18px}.app-brand{justify-self:start;gap:11px;letter-spacing:0}.app-brand-mark{width:38px;height:38px;border-radius:50%;background:var(--text);border:1px solid var(--line-strong)}.app-brand-mark img{width:24px;height:24px}.app-brand-copy{display:grid;gap:2px}.app-brand-text{font-family:var(--font-display);font-size:1.08rem;line-height:1;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.app-brand-subtitle{color:var(--text-3);font-family:var(--font-sans);font-size:.62rem;line-height:1;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.header-btn{min-height:40px;border-color:var(--line);border-radius:var(--r-sm);background:transparent;box-shadow:none;font-size:.76rem;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.header-btn:hover{background:var(--panel-2);border-color:var(--line-strong)}.header-btn-icon{width:40px;min-width:40px;padding:0}.app-shell{padding:clamp(18px,2.4vw,34px)}.dashboard{width:min(100%,1220px);margin:0 auto;padding:clamp(42px,7vw,90px) clamp(18px,3vw,34px) 80px;display:grid;grid-template-columns:minmax(0,.86fr) minmax(540px,1.14fr);gap:clamp(38px,6vw,86px);align-items:start}.dashboard-intro{min-width:0;padding-top:17px;border-top:3px solid var(--text)}.dashboard-kicker{display:flex;justify-content:space-between;gap:20px;margin-bottom:clamp(28px,4vw,52px);color:var(--accent-strong);font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.dashboard-intro h2{max-width:8.4ch;font-size:clamp(3.25rem,5.5vw,5.8rem);line-height:.91;font-weight:600;letter-spacing:-.055em;text-wrap:balance}.dashboard-deck{max-width:42rem;margin-top:28px;color:var(--text-2);font-size:clamp(1rem,1.15vw,1.15rem);line-height:1.65}.dashboard-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:32px 0 0;padding:14px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.dashboard-facts div{min-width:0;padding-right:10px}.dashboard-facts div+div{padding-left:13px;border-left:1px solid var(--line)}.dashboard-facts dt{color:var(--text-3);font-size:.61rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.dashboard-facts dd{margin:5px 0 0;color:var(--text);font-family:var(--font-display);font-size:.88rem;line-height:1.2}.dashboard-gallery{margin-top:34px;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.dashboard-gallery-head{min-height:48px;padding:8px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.dashboard-gallery-head p{display:grid;gap:2px;margin:0}.dashboard-gallery-head p span{color:var(--text-3);font-size:.58rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.dashboard-gallery-head p strong{color:var(--text);font-family:var(--font-display);font-size:.86rem}.dashboard-gallery-controls{display:flex;align-items:center;gap:4px}.dashboard-gallery-controls button{min-height:32px;padding:5px 8px;background:transparent;border:0;border-radius:var(--r-sm);color:var(--text-2);font-size:.66rem;font-weight:750}.dashboard-gallery-controls button:hover{background:var(--panel-2);color:var(--text)}.dashboard-piece-line{display:grid;grid-template-columns:repeat(4,1fr)}.dashboard-piece-line figure{position:relative;min-width:0;margin:0;padding:12px 6px 10px;display:grid;justify-items:center;gap:6px}.dashboard-piece-line figure+figure{border-left:1px solid var(--line)}.dashboard-piece-line img{width:min(100%,76px);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 7px 5px rgba(0,0,0,.24));animation:gallery-piece-arrive .32s ease both}.dashboard-piece-line figure:nth-child(2) img{animation-delay:45ms}.dashboard-piece-line figure:nth-child(3) img{animation-delay:90ms}.dashboard-piece-line figure:nth-child(4) img{animation-delay:135ms}@keyframes gallery-piece-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dashboard-piece-line figcaption{color:var(--text-3);font-size:.6rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.lobby-dashboard{display:contents}.lobby-play-panel{gap:18px;padding:clamp(22px,3vw,34px);background:var(--panel);border:1px solid var(--line-strong);border-top:4px solid var(--accent);border-radius:var(--r-sm);box-shadow:var(--shadow-md)}.lobby-play-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:15px;border-bottom:1px solid var(--line)}.lobby-play-panel-head>div{display:grid;gap:3px}.lobby-play-panel-head h2{font-size:1.65rem}.lobby-overline,.lobby-name-control>span{color:var(--text-3);font-size:.63rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.lobby-network-state{display:inline-flex;align-items:center;gap:7px;min-height:28px;color:var(--text-3);font-family:var(--font-mono);font-size:.67rem;text-transform:uppercase}.lobby-network-state i{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.lobby-network-state.online{color:var(--good)}.lobby-network-state.online i{background:var(--good)}.lobby-name-control{display:grid;gap:7px}.lobby-name-input{min-height:48px;padding:10px 0;background:transparent;border:0;border-bottom:2px solid var(--line-strong);border-radius:0;font-family:var(--font-display);font-size:1.35rem;font-weight:600}.lobby-name-input:focus{background:transparent;border-color:var(--accent)}.lobby-config-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(180px,.8fr);gap:20px}.lobby-config-group,.lobby-color-picker{display:grid;align-content:start;gap:8px}.dashboard .lobby-time-options{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line)}.dashboard .lobby-color-picker .lobby-time-options{grid-template-columns:repeat(3,1fr)}.dashboard .lobby-time-option{min-height:48px;padding:7px 5px;border:0;border-radius:0;background:transparent}.dashboard .lobby-time-option+.lobby-time-option{border-left:1px solid var(--line)}.dashboard .lobby-time-option strong{font-size:.76rem}.dashboard .lobby-time-option small{font-size:.58rem}.dashboard .lobby-time-option.active{background:var(--text);color:var(--panel)}.dashboard .lobby-time-option.active small{color:var(--panel-2)}.lobby-actions-row{grid-template-columns:repeat(2,1fr);gap:8px}.lobby-actions-row .lobby-play-online{grid-column:span 2}.dashboard .lobby-play-cta{min-height:64px;gap:0;padding:13px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:transparent;color:var(--text);box-shadow:none;transition:background .12s ease,color .12s ease,border-color .12s ease}.dashboard .lobby-play-online{min-height:76px;background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.dashboard .lobby-play-cta:hover:not(:disabled){transform:none;filter:none;background:var(--text);border-color:var(--text);color:var(--panel);box-shadow:none}.dashboard .lobby-play-online:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.dashboard .lobby-play-cta-text strong{font-size:.9rem}.dashboard .lobby-play-cta-text small{font-size:.67rem;line-height:1.35}.lobby-quick-row{justify-content:space-between;padding-top:13px;border-top:1px solid var(--line)}.lobby-advanced summary,.lobby-quick-row .lobby-code-disclosure summary{min-height:32px;display:flex;align-items:center;color:var(--text-2);font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.lobby-code-disclosure{padding:0;border:0;background:transparent}.lobby-rooms-block{grid-column:1 / -1;gap:0;margin-top:4px;border-top:3px solid var(--text)}.lobby-rooms-block-head{min-height:58px;padding:0 2px;border-bottom:1px solid var(--line-strong)}.lobby-rooms-block .lobby-label{color:var(--text);font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.01em;text-transform:none}.lobby-live-dot{animation:none;box-shadow:none;background:var(--good)}.lobby-refresh{min-width:40px;min-height:40px;border-radius:50%;background:transparent}.lobby-room-grid{grid-template-columns:repeat(2,1fr);gap:0}.lobby-room-card{min-height:104px;padding:16px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.lobby-room-card:nth-child(odd){border-right:1px solid var(--line)}.lobby-room-card:hover:not(:disabled){transform:none;background:var(--panel-2);border-color:var(--line-strong)}.lobby-room-card-code{font-family:var(--font-mono)}.lobby-rooms-empty{padding:24px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;text-align:left}.workspace-layout{width:100%;max-width:1460px;min-width:0}.workspace-layout>*,.setup-side-panel{min-width:0}.workspace-layout.chess2-layout{grid-template-columns:minmax(var(--board-min),min(var(--board-max),calc(100dvh - var(--board-vertical-reserve)))) minmax(300px,370px);gap:clamp(18px,2.4vw,34px)}.game-panel{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.top-bar{align-items:end;margin-bottom:12px;padding:0 0 13px;border-bottom:2px solid var(--text)}.game-status-lockup{display:grid;gap:2px}.game-view-label{color:var(--accent-strong);font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.top-bar h2{font-family:var(--font-display);font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.1;letter-spacing:-.015em}.game-status-lockup .game-status-pill{margin-top:2px}.top-bar p{margin-top:3px;color:var(--text-2);font-size:.82rem}.top-bar-actions{justify-content:flex-end}.top-bar-actions .header-btn,.top-bar-actions button{min-height:38px;background:transparent;border-color:var(--line-strong);color:var(--text);box-shadow:none}.top-bar-actions .game-primary-action{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.top-bar-actions .game-reset-action{color:var(--text-2)}.play-layout .army-panel{position:sticky;top:calc(var(--topbar-h) + 20px)}.board{min-width:0;max-width:100%;border:2px solid var(--board-outline);border-radius:0;box-shadow:8px 10px #19161133,var(--shadow-lg)}.player-strip-bar{min-height:48px;margin:0;padding:8px 2px;background:transparent;border:0;border-bottom:1px solid var(--line-strong);border-radius:0}.player-strip-bar+.board-wrap{margin-top:8px}.player-strip-bar.ticking{background:transparent;border-color:var(--accent)}.player-strip-bar.ticking .player-strip-name:before{content:"●";margin-right:7px;color:var(--accent);font-size:.65rem}.player-strip-clock{min-width:86px;border-radius:var(--r-sm);background:var(--text);border-color:var(--text);color:var(--panel);text-align:center}.army-panel{gap:14px;padding:18px;background:var(--panel);border:1px solid var(--line-strong);border-top:4px solid var(--text);border-radius:var(--r-sm);box-shadow:none}.dev-panel-header{padding-bottom:12px;border-bottom:1px solid var(--line-strong)}.dev-panel-header span{background:transparent;border:0;padding:0;color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.12em}.dev-panel-header strong{font-family:var(--font-display);font-size:1.22rem}.panel-link{min-height:32px}.budget-line,.setup-rules,.validation-list,.notes,.player-strip{border-radius:var(--r-sm);box-shadow:none}.army-tabs{border-radius:var(--r-sm)}.army-tabs button{min-height:38px;border-radius:0}.setup-action-row button{min-height:38px;border-radius:var(--r-sm)}.piece-section{margin-bottom:14px}.piece-section-head{padding-bottom:7px;border-bottom:1px solid var(--line)}.piece-section-count{padding:0;border:0;border-radius:0;background:transparent;font-family:var(--font-mono)}.piece-list{gap:0;padding-right:0}.piece-list button{min-height:46px;padding:7px 5px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.piece-list button:hover{background:var(--panel-2);border-color:var(--line-strong)}.piece-list button.active{padding-left:8px;background:var(--accent-soft);border-left:3px solid var(--accent);border-bottom-color:var(--accent)}.piece-list-mythic,.piece-list-objective{padding:0;border:0;border-radius:0;background:transparent}.piece-info-icon{width:24px;height:24px;border-radius:50%}.piece-sort-toggle button{min-height:30px;border-radius:var(--r-sm)}.current-piece-selection{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.current-piece-selection img{width:40px;height:40px;object-fit:contain}.current-piece-selection>span{display:grid;gap:1px;min-width:0}.current-piece-selection small{color:var(--accent-strong);font-size:.58rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.current-piece-selection strong{font-family:var(--font-display);font-size:1rem}.current-piece-selection em{color:var(--text-3);font-size:.7rem;font-style:normal}.piece-browser{width:100%;min-width:0;max-width:100%;display:grid;gap:10px;overflow:hidden}.piece-browser>*{min-width:0;max-width:100%}.piece-search{display:grid;gap:5px}.piece-search>span{color:var(--text-3);font-size:.6rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.piece-search input{min-height:40px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--panel-2);color:var(--text)}.piece-category-tabs{width:100%;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line-strong)}.piece-category-tabs button{min-height:38px;padding:7px 5px;border:0;border-radius:0;background:transparent;color:var(--text-2);font-size:.7rem;font-weight:750}.piece-category-tabs button+button{border-left:1px solid var(--line)}.piece-category-tabs button.active{background:var(--text);color:var(--panel)}.piece-browser .piece-sort-toggle{margin:0}.piece-search-empty{margin:0;padding:18px 0;color:var(--text-3)}.piece-list>.piece-choice{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:stretch;min-height:48px;border-bottom:1px solid var(--line);background:transparent}.piece-list>.piece-choice.active{background:var(--accent-soft);border-left:3px solid var(--accent);border-bottom-color:var(--accent)}.piece-list .piece-choice-select{min-height:47px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 4px 7px 6px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left}.piece-list .piece-choice-select:hover{background:var(--panel-2)}.piece-list .piece-choice-select img{width:28px;height:28px}.piece-list .piece-choice-select span{min-width:0}.piece-list .piece-choice-select small{white-space:nowrap}.piece-list .piece-choice .piece-info-icon{align-self:center;justify-self:center;min-width:26px;width:26px;min-height:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text-2);font-size:.7rem;font-weight:850}.draft-screen{min-height:calc(100dvh - var(--topbar-h) - 68px);display:grid;place-items:center;padding:clamp(24px,5vw,64px)}.draft-screen>section{width:min(100%,920px);border-top:4px solid var(--text);padding-top:clamp(22px,3vw,36px)}.draft-overline{color:var(--accent-strong);font-size:.66rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.draft-screen h2{margin-top:8px;font-size:clamp(2.6rem,6vw,5.5rem);line-height:.95;letter-spacing:-.05em}.draft-intro>p,.draft-complete>p{max-width:620px;margin:22px 0 0;color:var(--text-2);font-size:1.02rem;line-height:1.65}.draft-rules{max-width:620px;margin:26px 0 0;padding:0;list-style:none;border-top:1px solid var(--line-strong)}.draft-rules li{padding:11px 0;border-bottom:1px solid var(--line)}.draft-intro-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.draft-intro-actions button,.draft-handoff button{min-height:46px;padding:10px 18px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:transparent;color:var(--text);font-weight:750}.draft-intro-actions .draft-primary,.draft-handoff .draft-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.draft-handoff{text-align:center}.draft-handoff>section{width:min(100%,680px)}.draft-handoff p{margin:18px auto 24px;color:var(--text-2)}.draft-handoff h2{font-size:clamp(2.5rem,7vw,5rem)}.draft-pick header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.draft-pick h2{font-size:clamp(2.3rem,5vw,4.4rem)}.draft-progress{flex:0 0 auto;padding-top:5px;color:var(--text-3);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase}.draft-pass-note{margin:16px 0 24px;color:var(--text-2)}.draft-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.draft-options>button{min-height:360px;padding:clamp(18px,3vw,30px);display:grid;grid-template-rows:auto 1fr auto auto minmax(42px,auto) auto;justify-items:center;align-items:center;gap:8px;border:1px solid var(--line-strong);border-top:4px solid var(--text);border-radius:var(--r-sm);background:var(--panel);color:var(--text);box-shadow:var(--shadow-md);text-align:center;transition:transform .14s ease,border-color .14s ease}.draft-options>button:hover{transform:translateY(-4px);border-color:var(--accent)}.draft-card-type{justify-self:start;color:var(--accent-strong);font-size:.62rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.draft-options img{width:min(150px,42%);aspect-ratio:1;object-fit:contain}.draft-options strong{font-family:var(--font-display);font-size:1.7rem}.draft-options>button>span:not(.draft-card-type){color:var(--text-3);font-size:.78rem}.draft-options small{max-width:32ch;color:var(--text-2);line-height:1.45}.draft-options em{width:100%;padding-top:12px;border-top:1px solid var(--line);color:var(--accent-strong);font-style:normal;font-weight:800}.draft-army-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px}.draft-army-summary>div{padding:18px;border:1px solid var(--line-strong);background:var(--panel)}.draft-army-summary>div>strong{font-family:var(--font-display);font-size:1.35rem}.draft-army-summary>div>span{float:right;color:var(--text-3);font-family:var(--font-mono);font-size:.7rem}.draft-army-summary>div>div{display:grid;grid-template-columns:repeat(4,1fr);margin-top:16px}.draft-army-summary img{width:100%;max-width:68px;aspect-ratio:1;object-fit:contain}.notes.vertical,.quick-status{display:grid;gap:0;padding:0;background:transparent;border:0;border-top:1px solid var(--line-strong);border-radius:0}.notes.vertical>div,.quick-status>span{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:38px;padding:8px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--text-2)}.notes.vertical>div strong{color:var(--text);font-weight:650}.notes.vertical>div span,.quick-status>span{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.quick-status>span{justify-content:flex-start}.validation-list{display:grid;gap:0;padding:0;overflow:hidden;background:transparent;border:1px solid var(--line-strong);border-radius:var(--r-sm)}.action-row{min-height:42px;padding:9px 12px;background:transparent;color:var(--text);border:0;border-bottom:1px solid var(--line);border-radius:0;font-weight:650}.action-row:last-child{border-bottom:0}.action-row:hover:not(:disabled){padding-left:15px;background:var(--accent-soft);color:var(--accent-strong);border-color:var(--line)}.turn-empty-state{margin:0;padding:12px 0;color:var(--text-3);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.84rem;line-height:1.55}.pending-banner{border-radius:var(--r-sm);box-shadow:none}.move-history-panel,.chat-panel,.rematch-panel{padding:14px 0 0;background:transparent;border:0;border-top:1px solid var(--line-strong);border-radius:0}.move-table{border-radius:0}.chat-panel input{min-height:36px;border-radius:var(--r-sm)!important;background:var(--panel-2)!important;color:var(--text)!important;border-color:var(--line-strong)!important}.chat-panel button{min-height:36px;border-radius:var(--r-sm)}.codex-backdrop{background:#0e0d0ab8;-webkit-backdrop-filter:none;backdrop-filter:none}.codex-modal,.piece-info-popup,.game-over-card{border:1px solid var(--line-strong);border-top:4px solid var(--accent);border-radius:var(--r-sm)}.codex-header{border-bottom-color:var(--line-strong)}.codex-header small{color:var(--accent-strong);font-family:var(--font-mono)}.codex-close{min-width:40px;min-height:40px;border-radius:50%}.codex-item{min-height:48px;border-radius:0}.codex-item.active{background:var(--text);color:var(--panel)}.settings-row{border-radius:var(--r-sm);background:transparent;border-color:var(--line)}.settings-theme-option{min-height:48px;border-radius:var(--r-sm)}@media(max-width:1040px){.dashboard{grid-template-columns:1fr;width:min(100%,760px);gap:34px}.dashboard-intro h2{max-width:11ch}.lobby-rooms-block{margin-top:8px}.workspace-layout.chess2-layout{grid-template-columns:minmax(0,min(var(--board-max),max(var(--board-min),calc(100dvh - 180px))));justify-content:center}.board{box-shadow:5px 7px #19161133,var(--shadow-md)}}@media(max-width:680px){.app-header{padding:0 10px}.app-header-inner{gap:9px}.app-brand{gap:8px}.app-brand-mark{width:34px;height:34px}.app-brand-text{display:block;font-size:.92rem}.app-brand-subtitle{display:none}.app-header-side:not(.end):not(:empty)+.app-brand .app-brand-copy{display:none}.app-header-side{gap:5px}.header-btn{padding-inline:9px;font-size:.68rem}.header-btn-icon{padding:0}.dashboard{padding:30px 14px 52px}.dashboard-kicker{margin-bottom:30px}.dashboard-intro h2{font-size:clamp(3.1rem,15vw,4.6rem)}.dashboard-deck{margin-top:22px}.dashboard-gallery{margin-top:28px}.dashboard-piece-line img{width:min(100%,66px)}.dashboard-piece-line figcaption{font-size:.52rem}.lobby-play-panel{padding:20px 16px}.lobby-play-panel-head{align-items:center}.lobby-config-grid{grid-template-columns:1fr;gap:16px}.dashboard .lobby-time-option small{display:none}.lobby-actions-row{grid-template-columns:1fr}.lobby-actions-row .lobby-play-online{grid-column:auto}.dashboard .lobby-play-cta{min-height:58px}.dashboard .lobby-play-online{min-height:68px}.lobby-quick-row{display:grid;grid-template-columns:1fr 1fr}.lobby-room-grid{grid-template-columns:1fr}.lobby-room-card:nth-child(odd){border-right:0}.app-shell{padding:10px}.game-panel{padding:0}.top-bar{align-items:stretch}.top-bar-actions{justify-content:stretch}.top-bar-actions>button{flex:1}.board{border-width:1px;box-shadow:3px 4px #19161133}.army-panel{padding:14px;overflow-x:clip}.play-layout .army-panel{position:static}.draft-screen{min-height:auto;padding:28px 6px 50px;place-items:start center}.draft-screen h2{font-size:clamp(2.5rem,14vw,4rem)}.draft-pick header{display:grid;gap:10px}.draft-progress{grid-row:1}.draft-options{grid-template-columns:1fr}.draft-options>button{min-height:300px}.draft-army-summary{grid-template-columns:1fr}.workspace-layout.chess2-layout.setup-layout .piece-browser .piece-list{width:100%;max-width:100%}.workspace-layout.chess2-layout.setup-layout .piece-choice{min-width:108px;scroll-snap-align:start}.workspace-layout.chess2-layout.setup-layout .piece-choice-select{grid-template-columns:26px minmax(0,1fr);grid-template-rows:auto auto;min-height:72px;align-content:start}.workspace-layout.chess2-layout.setup-layout .piece-choice-select small{grid-column:1 / -1}.workspace-layout.chess2-layout.setup-layout .piece-choice .piece-info-icon{display:inline-flex;min-height:26px;padding:0}}@media(max-width:420px){.app-brand-text{font-size:.82rem}.dashboard-facts{grid-template-columns:1fr;gap:0}.dashboard-facts div{padding:9px 0}.dashboard-facts div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}.dashboard-piece-line figure{padding-inline:2px}.dashboard-piece-line img{width:58px}.dashboard-gallery-head{align-items:flex-start}.dashboard-gallery-controls button{padding-inline:6px}.lobby-network-state{font-size:.6rem}}.game-panel,.army-panel,.lobby-card,.dev-panel,.lobby-play-panel,.dashboard-gallery,.codex-modal,.game-over-card,.boundary-card{background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 14%);border:1px solid var(--line);outline:1px solid color-mix(in srgb,var(--line-strong) 55%,transparent);outline-offset:-5px;border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-md)}.lobby-name-input,.piece-search input,.lobby-join-row input,.lobby-field input,.armies-save-row input,.lobby-custom-time input{background:var(--panel-inset);border:1px solid var(--line);box-shadow:inset 0 2px 4px #00000059;color:var(--text)}[data-theme=light] .lobby-name-input,[data-theme=light] .piece-search input,[data-theme=light] .lobby-join-row input,[data-theme=light] .lobby-field input,[data-theme=light] .armies-save-row input,[data-theme=light] .lobby-custom-time input{box-shadow:inset 0 2px 4px #4a382026}.lobby-name-input:focus,.piece-search input:focus,.lobby-join-row input:focus{border-color:var(--accent);background:var(--panel-inset)}.btn,.lobby-primary,.preset-button,.top-bar button,.action-row,.rematch-panel button,.lobby-join-row button,.draft-primary,.game-over-primary{font-family:var(--font-display);font-weight:700;letter-spacing:.07em;text-transform:uppercase;font-size:.82rem;color:var(--accent-contrast);border:1px solid color-mix(in srgb,var(--accent) 70%,#000);border-radius:var(--r-md);background:linear-gradient(180deg,var(--accent-strong) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 82%,#000) 100%);box-shadow:inset 0 1px #ffffff59,inset 0 -2px 3px #00000040,0 2px 6px #00000073;transition:transform 80ms ease,box-shadow 80ms ease,filter .15s ease}.btn:hover,.lobby-primary:hover,.preset-button:hover,.top-bar button:hover,.action-row:hover,.rematch-panel button:hover,.lobby-join-row button:hover,.draft-primary:hover,.game-over-primary:hover{background:linear-gradient(180deg,var(--accent-strong) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 82%,#000) 100%);filter:brightness(1.08);box-shadow:inset 0 1px #ffffff59,inset 0 -2px 3px #00000040,0 2px 12px var(--glow-ember),0 2px 6px #00000073}.btn:active,.lobby-primary:active,.preset-button:active,.top-bar button:active,.action-row:active,.rematch-panel button:active,.lobby-join-row button:active,.draft-primary:active,.game-over-primary:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0006}.btn-primary,.btn-primary:hover{background:linear-gradient(180deg,var(--accent-strong) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 82%,#000) 100%)}.btn-ghost,.lobby-secondary,.header-btn,.clear-board-button{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;background:transparent;color:var(--text-2);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:none}.btn-ghost:hover,.lobby-secondary:hover,.header-btn:hover,.clear-board-button:hover{background:var(--accent-soft);border-color:var(--brass-lit);color:var(--text)}.app-header{background:var(--header-bg);border-bottom:1px solid var(--line-strong);box-shadow:0 1px #0006,0 8px 24px -18px #000c}[data-theme=light] .app-header{box-shadow:0 1px #4a38201f}.app-brand-text{font-family:var(--font-display);font-weight:800;letter-spacing:.12em;background:linear-gradient(180deg,#f4dc9a,#e8b95c 45%,#8a621c 58%,#c9973f);-webkit-background-clip:text;background-clip:text;color:transparent}[data-theme=light] .app-brand-text{background:linear-gradient(180deg,#8a621c,#6e4d12 55%,#4a3410);-webkit-background-clip:text;background-clip:text}.app-brand-subtitle{font-family:var(--font-flavor);font-style:italic;text-transform:none;letter-spacing:.02em}.draft-overline,.lobby-overline,.lobby-label,.dashboard-kicker span,.armies-group-label,.piece-section-head,.dev-panel-header,.game-view-label{font-family:var(--font-display);letter-spacing:.14em;color:var(--accent)}.board{border:10px solid var(--board-frame);outline:1px solid var(--line-strong);outline-offset:-7px;border-radius:var(--r-sm);box-shadow:inset 0 0 0 1px #00000080,0 1px #ffffff0a,0 18px 40px -18px #000000b3}.board:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:5;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.011 0.09' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E")}.square.placement-zone{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--good) 75%,transparent)}.player-strip-bar{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--bevel)}.player-strip-bar.ticking{border-color:color-mix(in srgb,var(--ember) 55%,var(--line));box-shadow:var(--bevel),0 0 14px var(--glow-ember)}.player-strip-name{font-family:var(--font-display);letter-spacing:.05em}.player-strip-clock{font-family:var(--font-mono);font-weight:600}.lobby-divider{border:0;height:1px;position:relative;background:linear-gradient(90deg,transparent,var(--line-strong) 18%,var(--line-strong) 82%,transparent)}.lobby-divider:after{content:"◆";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--accent);background:var(--panel);padding:0 .6em;font-size:.6rem;line-height:1}.dashboard-kicker{border-top:2px solid var(--line-strong)}.dashboard-facts dt{font-family:var(--font-display);letter-spacing:.12em;color:var(--text-3)}.dashboard-deck{font-size:1.06rem;line-height:1.6}.dashboard-piece-line figcaption{font-family:var(--font-display);letter-spacing:.12em}.lobby-play-online{background:linear-gradient(180deg,var(--accent-strong) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 82%,#000) 100%);border:1px solid color-mix(in srgb,var(--accent) 70%,#000);box-shadow:inset 0 1px #ffffff59,inset 0 -2px 3px #00000040,0 2px 6px #00000073}.lobby-play-online .lobby-play-cta-text strong{font-family:var(--font-display);letter-spacing:.07em;text-transform:uppercase}.lobby-play-cta-icon{border-radius:var(--r-sm);background:#00000038;color:var(--accent-contrast);font-family:var(--font-display);font-size:.6rem;letter-spacing:.08em}.lobby-play-local,.lobby-play-bot,.lobby-play-spectate,.lobby-play-draft{background:var(--panel-2);color:var(--text);border:1px solid var(--line-strong)}.lobby-play-local:hover:not(:disabled),.lobby-play-bot:hover:not(:disabled),.lobby-play-spectate:hover:not(:disabled),.lobby-play-draft:hover:not(:disabled){border-color:var(--brass-lit);background:var(--panel-2)}.lobby-play-cta-text strong{font-family:var(--font-display);letter-spacing:.04em}.lobby-room-card,.lobby-room-row{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-md)}.lobby-room-card:hover:not(:disabled),.lobby-room-row:hover:not(:disabled){background:var(--panel-2);border-color:var(--brass-lit)}.lobby-room-card-code,.lobby-room-code{font-family:var(--font-mono);font-weight:600;letter-spacing:.18em;color:var(--accent)}.lobby-room-mode-tag{color:var(--accent);font-weight:700}.lobby-code-hero code{font-family:var(--font-mono);letter-spacing:.3em;color:var(--accent-strong)}[data-theme=light] .lobby-code-hero code{color:var(--accent)}.lobby-empty-rooms,.lobby-rooms-empty{font-family:var(--font-flavor);font-style:italic;color:var(--text-3)}.draft-options>button{background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 16%);border:1px solid var(--line-strong);outline:1px solid color-mix(in srgb,var(--line-strong) 45%,transparent);outline-offset:-5px;border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-md);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.draft-options>button:hover:not(:disabled){transform:translateY(-4px);border-color:var(--brass-lit);box-shadow:var(--bevel),0 12px 28px -10px #000000a6,0 0 18px var(--glow-ember)}.draft-options>button:disabled{cursor:default;opacity:.75}.draft-card-type{font-family:var(--font-display);letter-spacing:.14em;color:var(--accent)}.draft-options img{filter:drop-shadow(0 6px 8px rgba(0,0,0,.45))}.draft-options em{font-family:var(--font-display);font-style:normal;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-strong)}[data-theme=light] .draft-options em{color:var(--accent)}.draft-progress{font-family:var(--font-mono);color:var(--text-3)}.draft-pass-note{font-family:var(--font-flavor);font-style:italic;font-size:1.02rem}.draft-rules li{font-size:1.02rem}.draft-online{padding-top:clamp(16px,3vh,40px)}.draft-options-waiting>button{filter:saturate(.75)}.draft-waiting-note{display:flex;align-items:center;gap:10px;margin-top:18px;color:var(--text-3);font-family:var(--font-flavor);font-style:italic}.draft-army-summary-online{margin-top:32px}.draft-army-summary-online>div{border-radius:var(--r-md);box-shadow:var(--bevel)}.draft-army-summary-online>div.draft-army-mine{border-color:var(--brass-lit)}.draft-special-choice{max-width:980px}.draft-special-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.draft-special-options button{min-height:150px;display:grid;place-items:center;align-content:center;gap:8px;padding:18px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel);color:var(--text-1);text-align:center}.draft-special-options button:hover{border-color:var(--accent)}.draft-special-options img{width:72px;height:72px;object-fit:contain}.draft-special-options span{color:var(--text-2);line-height:1.4}.draft-mythic-picker{margin-top:18px}.draft-mythic-picker-header{color:var(--text-2);font-size:.92rem}.draft-mythic-options{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin-top:10px}.draft-mythic-options button{min-height:0;padding:10px 6px;gap:4px;font-size:.85rem}.draft-mythic-options img{width:44px;height:44px}.draft-mythic-options button.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.draft-mythic-options button:disabled{opacity:.45;cursor:not-allowed}.draft-placement-screen{align-items:start}.draft-placement{width:min(100%,1040px)}.draft-placement header{display:flex;justify-content:space-between;gap:24px;align-items:end}.draft-placement header p{color:var(--text-2)}.draft-placement-board{width:min(100%,650px);margin:24px auto}.draft-placement-status{min-height:24px;color:var(--text-2);text-align:center}.draft-placement-notice{margin:10px 12px;padding:10px 12px;border:1px solid var(--brass-muted);border-radius:var(--r-sm);color:var(--text-2);line-height:1.4}.draft-army-color{color:var(--text-3);font-family:var(--font-sans);font-size:.85em;letter-spacing:0}.draft-army-slot{display:block;width:100%;max-width:68px;aspect-ratio:1;border:1px dashed var(--line-strong);border-radius:var(--r-sm);opacity:.5;justify-self:center;align-self:center}.codex-overlay .codex-backdrop,.game-over-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}.game-over-headline h2{letter-spacing:.05em}.game-over-headline.win h2{color:var(--good)}.game-over-headline.lose h2{color:var(--danger)}.waiting-overlay-code code{font-family:var(--font-mono);letter-spacing:.3em;color:var(--accent-strong)}[data-theme=light] .waiting-overlay-code code{color:var(--accent)}.disconnect-banner{border:1px solid color-mix(in srgb,var(--warn) 45%,var(--line));background:var(--warn-soft)}.server-error-toast{border:1px solid color-mix(in srgb,var(--danger) 50%,var(--line))}.lobby-network-state{font-family:var(--font-display);letter-spacing:.1em}.ember-canvas{position:fixed;inset:0;z-index:-1;pointer-events:none}[data-theme=light] .ember-canvas{opacity:.35}.preset-button,.top-bar button,.action-row,.lobby-join-row button{font-size:.72rem;letter-spacing:.05em;padding-inline:12px}.armies-save-btn,.armies-load,.armies-cancel{font-size:.72rem}.lobby-play-cta-icon{width:auto;min-width:34px;padding:0 8px;height:26px}.dashboard-gallery{padding:14px 16px 16px}.dev-panel-header{gap:8px}.draft-online .draft-pick h2{font-size:clamp(1.9rem,3.4vw,3rem)}.draft-online .draft-pick header{align-items:baseline}.draft-army-summary-online>div>strong{white-space:nowrap;font-size:1.1rem}.draft-online .draft-options img{width:min(120px,38%)}.draft-options strong{font-size:clamp(1.15rem,1.1vw + .8rem,1.5rem);letter-spacing:.03em}.keyword-anchor{position:relative;display:inline-block}.keyword-term{appearance:none;border:0;padding:0;margin:0;background:none;font:inherit;color:var(--accent-strong);cursor:help;border-bottom:1px dotted color-mix(in srgb,var(--accent) 65%,transparent)}[data-theme=light] .keyword-term{color:var(--accent)}.keyword-term.pinned{border-bottom-style:solid}.keyword-card{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);z-index:80;display:grid;gap:4px;width:max-content;max-width:min(280px,74vw);padding:10px 12px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-md);font-size:.82rem;line-height:1.45;color:var(--text-2);text-align:left}.keyword-card strong{font-family:var(--font-display);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.move-diagram{margin:0;display:grid;gap:6px;justify-items:center}.move-diagram-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:min(216px,100%);aspect-ratio:1;border:3px solid var(--board-frame);outline:1px solid var(--line-strong);outline-offset:-2px;border-radius:var(--r-sm);overflow:hidden}.move-diagram-sq{position:relative;display:grid;place-items:center}.move-diagram-sq.light{background:var(--sq-light)}.move-diagram-sq.dark{background:var(--sq-dark)}.move-diagram-sq img{width:88%;height:88%;object-fit:contain}.move-diagram-dot{width:34%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(20,14,8,.55) 55%,transparent 60%)}.move-diagram-ring{width:78%;aspect-ratio:1;border-radius:50%;border:2.5px solid rgba(20,14,8,.55)}.move-diagram figcaption{font-size:.74rem;color:var(--text-3);font-family:var(--font-display);letter-spacing:.08em}.sheet-scrim{position:fixed;inset:0;z-index:90;background:#0a07048c}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:95;display:grid;grid-template-rows:auto 1fr;background:linear-gradient(180deg,var(--panel-2),var(--panel) 30%);border-top:1px solid var(--line-strong);border-radius:10px 10px 0 0;box-shadow:0 -14px 40px #00000080;transition:height var(--mc-dur-glide, .3s) var(--mc-ease-standard, ease);touch-action:none}.bottom-sheet.sheet-peek{height:64px}.bottom-sheet.sheet-half{height:50dvh}.bottom-sheet.sheet-full{height:calc(100dvh - var(--topbar-h) - 8px)}.sheet-handle-row{display:grid;grid-template-columns:1fr auto;align-items:center;min-height:64px;padding:0 14px;cursor:grab}.sheet-handle{position:absolute;left:50%;top:6px;transform:translate(-50%);width:56px;height:18px;display:grid;place-items:center;background:none;border:0;cursor:grab}.sheet-handle i{width:34px;height:4px;border-radius:999px;background:var(--line-strong)}.sheet-peek-content{display:flex;align-items:center;gap:10px;min-width:0;padding-top:10px;font-size:.9rem;color:var(--text-2)}.sheet-close{width:34px;height:34px;margin-top:10px;display:grid;place-items:center;background:none;border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--text-2);font-size:1.1rem;cursor:pointer}.sheet-body{overflow-y:auto;padding:4px 14px calc(14px + env(safe-area-inset-bottom,0px));min-height:0}.flip-ghost{object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}.zen-mode .army-panel{display:none}.zen-mode{grid-template-columns:minmax(var(--board-min),min(var(--board-max),calc(100dvh - var(--board-vertical-reserve))))!important;justify-content:center}.zen-mode .game-status-lockup .game-view-label,.zen-mode .game-status-lockup p{visibility:hidden}.zen-mode .captured-row{opacity:.35}.board-prompt-strip{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:9px 14px;font-family:var(--font-display);font-size:.82rem;letter-spacing:.06em;color:var(--text);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--ember) 50%,var(--line));border-radius:var(--r-md);box-shadow:0 0 16px var(--glow-ember)}.board-prompt-strip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember)}.rail-meta-code{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;color:var(--accent)}.rail-meta-line{align-items:center}.rail-meta-budget{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;color:var(--text-3)}.rail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;padding:6px 0;border-top:1px solid var(--line)}.rail-action-btn{padding:8px 12px;cursor:pointer;font-family:var(--font-display);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);background:transparent;border:1px solid var(--line-strong);border-radius:var(--r-md);transition:border-color .15s ease,color .15s ease,background .15s ease}.rail-action-btn:hover:not(:disabled){border-color:var(--brass-lit);color:var(--text)}.rail-action-btn.danger:hover:not(:disabled){border-color:color-mix(in srgb,var(--danger) 60%,var(--line-strong));color:var(--danger)}.rail-confirm{display:inline-flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel-inset)}.rail-confirm em{font-style:normal;font-size:.8rem;color:var(--text-2)}.rail-confirm.danger em{color:var(--danger)}.rail-confirm-yes,.rail-confirm-no{width:30px;height:30px;display:grid;place-items:center;cursor:pointer;font-size:.9rem;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:transparent;color:var(--text-2)}.rail-confirm-yes:hover{border-color:var(--good);color:var(--good)}.rail-confirm-no:hover{border-color:var(--danger);color:var(--danger)}.rail-offer{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 12px;font-size:.86rem;color:var(--text);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 50%,var(--line));border-radius:var(--r-md)}.rail-offer-buttons{display:inline-flex;gap:6px}.chat-log{max-height:120px;overflow-y:auto;display:grid;gap:3px;padding:8px 10px;margin-bottom:6px;font-size:.82rem;background:var(--panel-inset);border:1px solid var(--line);border-radius:var(--r-md)}.chat-empty{font-family:var(--font-flavor);font-style:italic;color:var(--text-muted);font-size:.85rem}.chat-line{line-height:1.4;color:var(--text-2);overflow-wrap:anywhere}.chat-line strong{font-weight:700}.chat-line.mine strong{color:var(--accent-strong)}[data-theme=light] .chat-line.mine strong{color:var(--accent)}.chat-line.theirs strong{color:var(--arcane)}.chat-line.spectator{font-style:italic}.chat-line.spectator strong{color:var(--text-3)}.chat-form{display:flex;gap:6px}.chat-input{flex:1;min-width:0;padding:8px 10px;font-size:.84rem;color:var(--text);background:var(--panel-inset);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:inset 0 2px 4px #00000059}.chat-send{padding:8px 12px;cursor:pointer;font-family:var(--font-display);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);background:transparent;border:1px solid var(--line-strong);border-radius:var(--r-md)}.chat-send:hover{border-color:var(--brass-lit);color:var(--text)}.player-strip-clock.low{color:var(--warn)}.player-strip-clock.emerg{color:var(--danger);animation:clock-emerg 1s steps(2,jump-none) infinite}@keyframes clock-emerg{0%{opacity:1}to{opacity:.45}}@media(max-width:760px){.player-strip-bar .player-strip-clock{order:-1}.move-table{display:flex;overflow-x:auto;gap:2px;padding-bottom:4px;scrollbar-width:thin}.move-row{display:inline-flex;flex:0 0 auto;align-items:center;gap:2px}.chat-log{max-height:90px}}.draft-card{position:relative;perspective:900px}.draft-card-face{display:grid;gap:10px;justify-items:center;text-align:center;padding:18px 16px 16px;min-height:100%;background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 16%);border:1px solid var(--line-strong);outline:1px solid color-mix(in srgb,var(--line-strong) 45%,transparent);outline-offset:-5px;border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-md);backface-visibility:hidden;animation:draft-card-flip-in var(--mc-dur-reveal, .45s) var(--mc-ease-enter, ease-out) both}@keyframes draft-card-flip-in{0%{transform:rotateY(-92deg)}to{transform:rotateY(0)}}.draft-card-sprite{width:min(110px,40%);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.45))}.draft-card-name{font-family:var(--font-display);font-size:clamp(1.05rem,1vw + .75rem,1.35rem);letter-spacing:.03em}.draft-card-cost{color:var(--text-3);font-size:.78rem}.draft-card .move-diagram-grid{width:128px}.draft-card-snippet{max-width:30ch;color:var(--text-2);line-height:1.45;font-size:.84rem}.draft-card-keep{margin-top:4px;padding:10px 18px;cursor:pointer;font-family:var(--font-display);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-contrast);border:1px solid color-mix(in srgb,var(--accent) 70%,#000);border-radius:var(--r-md);background:linear-gradient(180deg,var(--accent-strong) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 82%,#000) 100%);box-shadow:inset 0 1px #ffffff59,inset 0 -2px 3px #00000040,0 2px 6px #00000073;transition:transform 80ms ease,filter .15s ease}.draft-card-keep:hover:not(:disabled){filter:brightness(1.08)}.draft-card-keep:active:not(:disabled){transform:translateY(1px)}.draft-card-back{position:absolute;inset:0;display:none;place-items:center;font-size:2.4rem;color:var(--line-strong);background:repeating-linear-gradient(45deg,transparent 0 14px,rgba(0,0,0,.22) 14px 28px),linear-gradient(180deg,var(--panel-2),var(--bg-soft));border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--bevel),var(--shadow-md)}.draft-card-facedown .draft-card-face{visibility:hidden;animation:none}.draft-card-facedown .draft-card-back{display:grid}.draft-card-facedown{min-height:320px}.draft-pips{display:inline-flex;align-items:center;gap:6px}.draft-pips-label{margin-right:4px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--text-3);text-transform:uppercase}.draft-pips i{width:9px;height:9px;border-radius:50%;border:1px solid var(--line-strong);background:transparent}.draft-pips i.done{background:var(--accent);border-color:var(--accent)}.draft-pips i.now{background:var(--ember);border-color:var(--ember);box-shadow:0 0 8px var(--glow-ember)}.draft-reveal-piece{animation:draft-reveal var(--mc-dur-glide, .3s) var(--mc-ease-enter, ease-out) both}@keyframes draft-reveal{0%{opacity:0;transform:translateY(10px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.budget-bar{position:sticky;top:-1px;z-index:5;display:grid;gap:6px;padding:10px 12px;margin:0 -2px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--bevel),0 6px 14px -8px #0009}.budget-bar-track{height:7px;border-radius:999px;background:var(--panel-inset);box-shadow:inset 0 1px 3px #00000080;overflow:hidden}.budget-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-strong));box-shadow:0 0 8px var(--glow-ember);transition:width var(--mc-dur-glide, .3s) var(--mc-ease-standard, ease)}.budget-bar-line{display:flex;align-items:baseline;gap:10px;font-size:.8rem;color:var(--text-2)}.budget-bar-line strong{font-family:var(--font-mono);font-size:.92rem;color:var(--text)}.budget-bar-opponent{margin-left:auto;font-style:normal;font-size:.74rem;color:var(--text-3)}.piece-choice.unaffordable{opacity:.45}.piece-choice.unaffordable .piece-choice-select{filter:saturate(.5)}.ready-footer{position:sticky;bottom:-1px;z-index:5;display:grid;gap:6px;padding:10px 0 2px;background:var(--panel);border-top:1px solid var(--line)}.ready-footer-cta{width:100%;padding:13px 16px;cursor:pointer;font-family:var(--font-display);font-size:.88rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-contrast);border:1px solid color-mix(in srgb,var(--accent) 70%,#000);border-radius:var(--r-md);background:linear-gradient(180deg,var(--accent-strong) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 82%,#000) 100%);box-shadow:inset 0 1px #ffffff59,inset 0 -2px 3px #00000040,0 2px 10px #00000080}.ready-footer-cta:hover:not(:disabled){filter:brightness(1.07)}.ready-footer-cta:active:not(:disabled){transform:translateY(1px)}.ready-footer-note{font-size:.82rem;color:var(--text-2)}.ready-footer-reason{font-size:.78rem;color:var(--text-3)}.ready-footer-unready{justify-self:start;padding:8px 14px;cursor:pointer;font-family:var(--font-display);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);background:transparent;border:1px solid var(--line-strong);border-radius:var(--r-md)}.square.ghost-slot:after,.square.ghost-mythic:after,.square.ghost-objective:after{content:"";position:absolute;inset:14%;border:2px dashed rgba(20,14,8,.32);border-radius:4px;pointer-events:none}.square.ghost-mythic:after{content:"✦";display:grid;place-items:center;font-size:clamp(.9rem,2.4vw,1.5rem);color:#140e0866;border-color:#140e0873}.square.ghost-objective:after{content:"♔";display:grid;place-items:center;font-size:clamp(.9rem,2.4vw,1.5rem);color:#140e0866;border-color:#140e0873}.board.flipped .square.ghost-mythic:after,.board.flipped .square.ghost-objective:after{transform:rotate(180deg)}.codex-tools{display:grid;gap:8px;justify-items:end;margin-left:auto;padding-right:14px;min-width:0}.codex-search{width:min(220px,100%);padding:8px 10px;font-size:.85rem;color:var(--text);background:var(--panel-inset);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:inset 0 2px 4px #00000059}.codex-filters{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.codex-filters button{padding:4px 9px;cursor:pointer;font-family:var(--font-display);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);background:transparent;border:1px solid var(--line);border-radius:var(--r-sm)}.codex-filters button.active{color:var(--accent-contrast);background:var(--accent);border-color:var(--accent)}.codex-item-glyph{color:var(--ember);font-style:normal;font-size:.7rem}.codex-visual-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:6px 0}.codex-visual-row .move-diagram-grid{width:176px}.codex-flavor{font-family:var(--font-flavor);font-style:italic;font-size:.98rem;color:var(--text-3);border-top:1px solid var(--line);padding-top:10px}@media(max-width:680px){.draft-special-options{grid-template-columns:1fr}.draft-placement header{display:grid;align-items:start}.codex-tools{display:none}}.codex-item{grid-template-columns:24px minmax(0,1fr) auto auto auto}.codex-item .codex-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capture-fading{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain;z-index:4;pointer-events:none;animation:capture-fade .42s var(--mc-ease-exit, ease-in) forwards;filter:sepia(.6) saturate(2) hue-rotate(-18deg)}.board.flipped .capture-fading{transform:rotate(180deg)}@keyframes capture-fade{0%{opacity:.9}30%{opacity:.7}to{opacity:0;translate:0 -14%}}.board.board-shake{animation:board-shake var(--mc-dur-shake, .25s) linear 1}.board.flipped.board-shake{animation:board-shake-flipped var(--mc-dur-shake, .25s) linear 1}@keyframes board-shake{0%{transform:translate(0)}20%{transform:translate(5px,-3px)}40%{transform:translate(-4px,3px)}60%{transform:translate(3px,-2px)}80%{transform:translate(-2px,1px)}to{transform:translate(0)}}@keyframes board-shake-flipped{0%{transform:rotate(180deg) translate(0)}20%{transform:rotate(180deg) translate(5px,-3px)}40%{transform:rotate(180deg) translate(-4px,3px)}60%{transform:rotate(180deg) translate(3px,-2px)}80%{transform:rotate(180deg) translate(-2px,1px)}to{transform:rotate(180deg) translate(0)}}.game-over-card{animation:gameover-enter .35s var(--mc-ease-settle, ease-out) both}@keyframes gameover-enter{0%{opacity:0;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.game-over-headline.win h2{text-shadow:0 0 26px var(--glow-ember)}.game-over-stats{display:grid;gap:6px;margin:0;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.game-over-stat{display:flex;justify-content:space-between;gap:14px;animation:gameover-stat .3s var(--mc-ease-enter, ease-out) both}@keyframes gameover-stat{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.game-over-stat dt{font-family:var(--font-display);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.game-over-stat dd{margin:0;font-size:.88rem;color:var(--text);text-align:right}.game-over-banner-slot{min-height:64px;display:grid;align-items:center}.bot-thinking-banner{padding:0;margin-left:0;border:0;background:transparent;font-size:inherit;font-weight:600;color:var(--ember)}[data-theme=light] .bot-thinking-banner{color:var(--accent)}.piece-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;padding-right:4px}.piece-list>.piece-choice{position:relative;display:block;min-height:0;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 30%);box-shadow:var(--bevel);overflow:hidden;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.piece-list>.piece-choice:hover{border-color:var(--brass-lit);transform:translateY(-2px);box-shadow:var(--bevel),var(--shadow-sm)}.piece-list>.piece-choice.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--bevel),inset 0 0 0 1px var(--accent),0 0 12px var(--glow-ember)}.piece-list>.piece-choice.experimental{border-style:dashed}.piece-list .piece-choice-select{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;justify-items:center;align-content:center;gap:6px;width:100%;min-height:96px;padding:22px 6px 10px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:center;cursor:pointer}.piece-list .piece-choice-select:hover{background:transparent}.piece-list .piece-choice-select img{width:44px;height:44px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.4))}.piece-list .piece-choice-select span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-weight:700;font-size:.62rem;letter-spacing:.03em;text-transform:uppercase;color:var(--text-2)}.piece-list>.piece-choice.active .piece-choice-select span{color:var(--text)}.piece-list .piece-choice-select small{position:absolute;top:4px;left:4px;padding:1px 6px;font-family:var(--font-mono);font-size:.66rem;color:var(--accent-strong);background:#00000059;border:1px solid color-mix(in srgb,var(--line-strong) 70%,transparent);border-radius:var(--r-sm)}[data-theme=light] .piece-list .piece-choice-select small{color:var(--accent);background:#fffaeb99}.piece-list .piece-choice-select span .exp-pill{margin-left:4px}.piece-list .piece-choice .piece-info-icon{position:absolute;top:4px;right:4px;min-width:22px;width:22px;min-height:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;grid-template-columns:none;gap:0;padding:0}@media(max-width:680px){.piece-list{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(104px,118px);grid-template-columns:none;overflow-x:auto;overflow-y:hidden;padding:4px 2px 10px;scroll-snap-type:x proximity}.piece-list>.piece-choice{scroll-snap-align:start}}.army-panel{max-height:none;overflow:visible}.budget-bar{position:static;z-index:auto;padding:8px 10px;background:var(--panel-2);box-shadow:var(--bevel)}.game-panel{padding:clamp(14px,1.5vw,22px);background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--bevel),var(--shadow-md)}.dev-panel-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.dev-panel-header strong{min-width:0;white-space:nowrap}.dev-panel-header .panel-link{justify-self:end}.setup-action-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.setup-action-row .preset-button,.setup-action-row .clear-board-button{width:100%;min-width:0;padding-inline:7px;justify-content:center;text-align:center}@media(max-width:680px){.game-panel{padding:14px}.top-bar{gap:12px;margin-bottom:16px;padding-bottom:16px}.game-status-lockup{gap:5px}.top-bar h2{line-height:1.12}.top-bar p{line-height:1.4}.board-row-wrap{gap:0}}@media(max-width:520px){.home-hero{min-height:340px}.home-hero-content{padding:20px 22px;gap:11px}.home-deck{font-size:.98rem;line-height:1.48}.home-modes{grid-template-columns:1fr}.home-mode-card{min-height:0;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px}.home-mode-card strong,.home-mode-card small{grid-column:2}.home-mode-glyph{grid-row:1 / span 2}.setup-action-row{grid-template-columns:1fr 1fr}.setup-action-row .clear-board-button{grid-column:1 / -1}}:root{--sidenav-w: 224px;--sidenav-w-collapsed: 68px;--z-header: 40;--z-miniplayer: 45;--z-sheet: 50;--z-modal: 60}.app-frame{display:grid;grid-template-columns:auto 1fr;min-height:100dvh}.app-main{min-width:0;display:flex;flex-direction:column}.app-shell{min-height:calc(100dvh - var(--topbar-h))}.sidenav{position:sticky;top:0;height:100dvh;width:var(--sidenav-w);display:flex;flex-direction:column;gap:8px;padding:14px 10px;background:color-mix(in srgb,var(--panel) 92%,transparent);border-right:1px solid var(--line);z-index:var(--z-header);overflow-y:auto;transition:width .2s var(--mc-ease-standard, ease)}.sidenav-collapsed{width:var(--sidenav-w-collapsed)}.sidenav-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;background:none;border:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--line);margin-bottom:6px;border-radius:var(--r-md, 10px)}.sidenav-brand-mark img{width:34px;height:34px;display:block}.sidenav-brand-copy{display:flex;flex-direction:column;line-height:1.15;min-width:0}.sidenav-brand-text{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--text);letter-spacing:.04em;white-space:nowrap}.sidenav-brand-subtitle{font-size:.68rem;color:var(--text-2);white-space:nowrap}.sidenav-collapsed .sidenav-brand-copy{display:none}.sidenav-items{display:flex;flex-direction:column;gap:4px;flex:1 1 auto}.sidenav-item{position:relative;display:flex;align-items:center;gap:12px;padding:11px 12px;min-height:44px;background:none;border:1px solid transparent;border-radius:var(--r-md, 10px);color:var(--text-2);font:inherit;font-size:.98rem;cursor:pointer;text-align:left;white-space:nowrap}.sidenav-item:hover{background:var(--accent-soft);color:var(--text)}.sidenav-item.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent-strong);font-weight:700}.sidenav-item-icon{font-size:1.15rem;width:24px;text-align:center;flex-shrink:0}.sidenav-collapsed .sidenav-item-label{display:none}.sidenav-collapsed .sidenav-item{justify-content:center;padding:11px 0}.sidenav-collapsed .sidenav-item-icon{width:auto}.sidenav-tooltip{display:none;position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:.85rem;padding:6px 10px;white-space:nowrap;pointer-events:none;z-index:var(--z-modal);box-shadow:0 6px 18px #00000059}.sidenav-collapsed .sidenav-item:hover .sidenav-tooltip,.sidenav-collapsed .sidenav-item:focus-visible .sidenav-tooltip{display:block}.sidenav-item-game{margin-top:10px;border-top:1px dashed var(--line);border-radius:0 0 var(--r-md, 10px) var(--r-md, 10px)}.sidenav-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:10px;border-top:1px solid var(--line)}.sidenav-collapsed .sidenav-footer{flex-direction:column}.sidenav-collapse{background:none;border:1px solid var(--line);border-radius:8px;color:var(--text-2);min-width:34px;min-height:34px;cursor:pointer;font-size:1rem}.sidenav-collapse:hover{color:var(--text);background:var(--accent-soft)}@media(max-width:1199px)and (min-width:761px){.sidenav{width:var(--sidenav-w-collapsed)}.sidenav .sidenav-brand-copy,.sidenav .sidenav-item-label{display:none}.sidenav .sidenav-item{justify-content:center;padding:11px 0}.sidenav .sidenav-item-icon{width:auto}.sidenav .sidenav-item:hover .sidenav-tooltip,.sidenav .sidenav-item:focus-visible .sidenav-tooltip{display:block}.sidenav .sidenav-collapse{display:none}.sidenav-footer{flex-direction:column}}.mobile-topbar,.mobilenav{display:none}@media(max-width:760px){:root{--topbar-h: 52px}.app-frame{grid-template-columns:1fr}.sidenav{display:none}.mobile-topbar{position:sticky;top:0;z-index:var(--z-header);display:flex;align-items:center;gap:8px;height:var(--topbar-h);padding:0 14px;background:color-mix(in srgb,var(--panel) 94%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-topbar .app-brand-mark img{width:26px;height:26px;display:block}.mobile-topbar .app-brand-text{font-family:var(--font-display);font-weight:700;letter-spacing:.04em}.mobilenav{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-header);display:grid;grid-template-columns:repeat(4,1fr);background:color-mix(in srgb,var(--panel) 96%,transparent);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobilenav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;background:none;border:none;color:var(--text-2);font:inherit;font-size:.7rem;cursor:pointer}.mobilenav-item.active{color:var(--accent-strong);font-weight:700}.mobilenav-icon{font-size:1.25rem}.app-shell{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.game-host[hidden]~*{padding-bottom:0}}.screen-page{width:min(100%,1180px);margin:0 auto;display:flex;flex-direction:column;gap:18px}.screen-page-header small{color:var(--text-2);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem}.screen-page-header h1{outline:none}.settings-page .settings-body{padding:0}.settings-section-title{font-size:1.02rem;margin:8px 0 2px;color:var(--accent-strong)}.learn-page .codex-view{min-height:60vh}.codex-view{display:flex;flex-direction:column;gap:12px;min-height:0}.codex-view .codex-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.codex-view .codex-body{min-height:0}.game-context-bar{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;margin:0 0 6px}.game-host{width:100%}.game-host[hidden]{display:none}.guest-badge{display:inline-block;margin-left:6px;padding:1px 7px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;vertical-align:middle}.auth-modal{max-width:440px;width:min(440px,94vw)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:12px 24px 0}.auth-tabs button{padding:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md, 10px);color:var(--text-2);font:inherit;cursor:pointer}.auth-tabs button.active{color:var(--accent-strong);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);font-weight:700}.auth-form{display:flex;flex-direction:column;gap:14px;padding:18px 24px 24px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field span{font-size:.88rem;color:var(--text-2)}.auth-field input{padding:10px 12px;border-radius:var(--r-md, 10px);border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit}.auth-field input[aria-invalid=true]{border-color:var(--danger)}.auth-field-error{color:var(--danger);font-size:.8rem}.auth-submit{min-height:44px}.auth-error{margin:12px 24px 0;padding:10px 12px;border-radius:var(--r-md, 10px);border:1px solid color-mix(in srgb,var(--danger) 55%,transparent);background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--text);font-size:.9rem}.auth-form .auth-error{margin:0}.auth-note{color:var(--text-2);font-size:.9rem;line-height:1.45}.auth-dev-note a{color:var(--accent-strong)}.auth-link{background:none;border:none;color:var(--accent-strong);font:inherit;font-size:.88rem;cursor:pointer;padding:2px 0;text-decoration:underline;text-underline-offset:3px;align-self:flex-start}.auth-switch{font-size:.88rem;color:var(--text-2)}.reset-card{margin:0 auto}.account-cta-card{display:flex;flex-direction:column;gap:14px;max-width:560px;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg, 14px)}.account-headline{font-size:1.05rem;color:var(--text)}.account-note{color:var(--text-2);line-height:1.5}.account-cta-row{display:flex;gap:10px;flex-wrap:wrap}.account-details{display:flex;flex-direction:column;gap:20px;max-width:720px}.account-value{color:var(--text);font-weight:600;align-self:center}.account-motto-controls{display:flex;gap:8px;align-items:center}.account-motto-controls input{padding:8px 10px;border-radius:var(--r-md, 10px);border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit}.account-password-form{padding:0;max-width:380px}.hotkey-settings{display:flex;flex-direction:column;gap:10px}.hotkey-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.hotkey-chip{min-width:44px;text-align:center;padding:5px 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--font-mono, monospace);font-size:.85rem}.hotkey-chip.capturing{border-color:var(--accent);color:var(--accent-strong);animation:hotkey-pulse 1s infinite}@keyframes hotkey-pulse{50%{opacity:.55}}.hotkey-notice{color:var(--warn);font-size:.88rem}.landing-page{min-height:100dvh;display:flex;flex-direction:column}.landing-hero{position:relative;display:grid;place-items:center;padding:clamp(48px,12vh,130px) 20px 40px;background:linear-gradient(180deg,rgba(10,8,6,.55) 0%,rgba(10,8,6,.82) 70%,var(--bg) 100%),var(--hero-image, none) center / cover no-repeat}.landing-hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;max-width:560px}.landing-brand img{width:84px;height:84px}.landing-page h1{font-size:clamp(2rem,5vw,3.2rem);outline:none}.landing-pitch{font-size:1.05rem;line-height:1.55;color:var(--text-2)}.landing-guest-form{display:flex;flex-direction:column;gap:8px;width:100%;max-width:420px}.landing-guest-label{font-size:.8rem;color:var(--text-2);text-align:left}.landing-guest-row{display:flex;gap:8px}.landing-guest-row input{flex:1 1 auto;min-width:0;padding:12px 14px;border-radius:var(--r-md, 10px);border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit}.landing-cta{min-height:48px;white-space:nowrap}.landing-account-row{display:flex;gap:10px}.landing-secondary{min-height:44px;min-width:130px}.landing-how{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;width:min(100%,960px);margin:0 auto;padding:34px 20px 60px}.landing-how-item{padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg, 14px);display:flex;flex-direction:column;gap:8px}.landing-how-item h2{font-size:1.05rem}.landing-how-item p{color:var(--text-2);line-height:1.5}.miniplayer{position:fixed;bottom:18px;z-index:var(--z-miniplayer);width:240px;display:flex;flex-direction:column;gap:10px;padding:12px;background:color-mix(in srgb,var(--panel) 97%,transparent);border:1px solid var(--line);border-radius:var(--r-lg, 14px);box-shadow:0 14px 40px #00000073}.miniplayer.corner-right{right:18px}.miniplayer.corner-left{left:calc(var(--sidenav-w-collapsed) + 18px)}.miniplayer-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.miniplayer-status{font-size:.85rem;color:var(--text-2);min-width:0}.miniplayer-status.your-turn{color:var(--accent-strong);font-weight:700}.miniplayer-status.check{color:var(--danger);font-weight:700}.miniplayer-controls{display:flex;gap:4px}.miniplayer-icon-btn{min-width:28px;min-height:28px;background:none;border:1px solid var(--line);border-radius:7px;color:var(--text-2);cursor:pointer;font-size:.85rem}.miniplayer-icon-btn:hover{color:var(--text);background:var(--accent-soft)}.miniplayer-board-btn{padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:none;cursor:pointer;display:block}.miniboard{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;width:100%}.miniboard-sq{position:relative}.miniboard-sq.light{background:var(--sq-light)}.miniboard-sq.dark{background:var(--sq-dark)}.miniboard-sq img{position:absolute;inset:4%;width:92%;height:92%;object-fit:contain}.miniplayer-clocks{display:flex;justify-content:space-between;font-family:var(--font-mono, monospace);font-size:.9rem;color:var(--text-2)}.miniplayer-clocks .ticking{color:var(--accent-strong);font-weight:700}.miniplayer-actions{display:flex;flex-direction:column;gap:6px}.miniplayer-return{min-height:40px}.miniplayer-leave{background:none;border:none;color:var(--text-2);font:inherit;font-size:.82rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.miniplayer-leave:hover{color:var(--danger)}.miniplayer-over .miniplayer-status{color:var(--text);font-weight:700}.miniplayer-pill{position:fixed;bottom:18px;z-index:var(--z-miniplayer);display:flex;align-items:center;gap:8px;padding:10px 14px;min-height:44px;background:color-mix(in srgb,var(--panel) 97%,transparent);border:1px solid var(--line);border-radius:999px;color:var(--text);font:inherit;font-size:.88rem;cursor:pointer;box-shadow:0 10px 28px #0006}.miniplayer-pill.corner-right{right:18px}.miniplayer-pill.corner-left{left:calc(var(--sidenav-w-collapsed) + 18px)}.miniplayer-pill-clock{font-family:var(--font-mono, monospace);color:var(--accent-strong)}@media(max-width:760px){.miniplayer,.miniplayer-pill{left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));width:auto;border-radius:0;border-left:none;border-right:none;flex-direction:row;align-items:center}.miniplayer{padding:8px 12px;gap:10px}.miniplayer-board-btn{width:56px;flex-shrink:0}.miniplayer-head{flex:1 1 auto;order:1}.miniplayer-actions{flex-direction:row;order:2}.miniplayer-clocks,.miniplayer-leave{display:none}.miniplayer~*{scroll-padding-bottom:140px}}@media(prefers-reduced-motion:reduce){.sidenav{transition:none}.hotkey-chip.capturing{animation:none}}html.fx-reduced .sidenav{transition:none}html.fx-reduced .hotkey-chip.capturing{animation:none}.army-panel.army-panel-zoned{display:flex;flex-direction:column;gap:12px;max-height:calc(100dvh - var(--topbar-h) - 48px);overflow:hidden}.army-panel-pinned-top,.army-panel-pinned-bottom{flex:0 0 auto;display:grid;gap:12px;min-height:0}.army-panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;padding-right:2px}.army-panel-scroll .piece-list{max-height:clamp(220px,36vh,420px);overflow-y:auto;overscroll-behavior:contain}.army-panel-scroll>*{flex:0 0 auto;min-height:max-content}@media(max-width:1020px){.army-panel.army-panel-zoned{max-height:none;overflow:visible;display:grid}.army-panel-scroll{overflow:visible;padding-right:0}.army-panel-scroll .piece-list{max-height:none;overflow:visible}}.sheet-peek-summary{display:flex;align-items:baseline;gap:10px;font-size:.88rem}.sheet-peek-summary strong{color:var(--text)}.sheet-peek-summary span{color:var(--text-2)}@media(max-width:760px){.setup-side-panel-sheet .army-panel.army-panel-zoned{max-height:none;overflow:visible;display:grid}.setup-side-panel-sheet .army-panel-scroll{overflow:visible}}.codex-summary{font-size:1rem;line-height:1.55;color:var(--text);border-left:3px solid var(--accent);padding-left:12px}.codex-rules{display:grid;gap:14px}.codex-rule-section h4{color:var(--accent-strong);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}.codex-rule-section ul{margin:0;padding-left:18px;display:grid;gap:4px}.codex-rule-section li{color:var(--text-2);line-height:1.5;font-size:.92rem}.codex-lesson-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:10px}.codex-demo-player,.codex-practice{display:grid;gap:10px;padding:14px;background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--r-md, 10px);align-content:start}.codex-demo-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.codex-demo-head small{color:var(--accent-strong);font:700 .66rem var(--font-mono, monospace);text-transform:uppercase;letter-spacing:.1em}.codex-demo-progress{font-family:var(--font-mono, monospace);font-size:.78rem;color:var(--text-2)}.codex-demo-caption{min-height:3em;color:var(--text-2);font-size:.88rem;line-height:1.5}.codex-demo-controls{display:flex;gap:6px;justify-content:center}.codex-demo-controls .header-btn{min-width:40px}.codex-demo-controls .header-btn.active{color:var(--accent-strong);border-color:var(--accent)}.codex-practice-controls{display:flex;gap:6px}.codex-practice-start{color:var(--accent-strong)}.codex-practice-feedback{color:var(--text-2);font-size:.85rem;min-height:2.6em}.scenario-board button.last-move{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--warn) 70%,transparent)}.piece-info-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,92vw);z-index:var(--z-sheet);display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--line-strong);box-shadow:-18px 0 50px #00000073}.piece-info-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.piece-info-panel-head small{color:var(--accent-strong);font:700 .7rem var(--font-mono, monospace);text-transform:uppercase;letter-spacing:.1em}.piece-info-panel-controls{display:flex;gap:8px;align-items:center}.piece-info-clock-note{margin:10px 16px 0;padding:8px 10px;border-radius:var(--r-md, 10px);border:1px solid color-mix(in srgb,var(--warn) 55%,transparent);background:color-mix(in srgb,var(--warn) 10%,transparent);color:var(--text);font-size:.82rem}.piece-info-panel-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px}@media(max-width:760px){.piece-info-panel{inset:auto 0 0;width:auto;max-height:75dvh;border-left:none;border-top:1px solid var(--line-strong);border-radius:16px 16px 0 0}}.shortcuts-modal{max-width:560px;width:min(560px,94vw)}.shortcuts-body{padding:16px 24px 24px;display:grid;gap:18px;max-height:70dvh;overflow-y:auto}.shortcuts-body h3{color:var(--accent-strong);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}.shortcuts-body dl{display:grid;gap:6px;margin:0}.shortcut-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md, 10px)}.shortcut-row dt{color:var(--text);font-size:.9rem}.shortcut-row dd{margin:0;display:flex;gap:4px}.shortcuts-note{color:var(--text-2);font-size:.82rem;line-height:1.5}:root{--mc-dur-flicker: 70ms;--mc-dur-flick: .11s;--mc-dur-step: .2s;--mc-dur-glide: .3s;--mc-dur-reveal: .45s;--mc-dur-ceremony: .7s;--mc-dur-epic: 1s;--mc-dur-hitstop: 90ms;--mc-dur-shake: .25s;--mc-ease-standard: cubic-bezier(.2, 0, 0, 1);--mc-ease-enter: cubic-bezier(0, 0, .3, 1);--mc-ease-exit: cubic-bezier(.4, .14, 1, 1);--mc-ease-strike: cubic-bezier(.3, 0, .8, .15);--mc-ease-arrive: cubic-bezier(.05, .7, .1, 1);--mc-ease-settle: cubic-bezier(.34, 1.56, .64, 1)}button:not(:disabled):active,.lobby-room-card:not(:disabled):active,.piece-choice:not(:disabled):active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){html:not(.fx-full){--mc-dur-flicker: 0ms;--mc-dur-flick: 0ms;--mc-dur-step: .15s;--mc-dur-glide: .15s;--mc-dur-reveal: .15s;--mc-dur-ceremony: .15s;--mc-dur-epic: .15s;--mc-dur-hitstop: 0ms;--mc-dur-shake: 0ms}html:not(.fx-full) *,html:not(.fx-full) *:before,html:not(.fx-full) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.12s!important;transition-property:opacity,color,background-color,border-color,box-shadow!important}html:not(.fx-full) .board{transition:none}}html.fx-reduced{--mc-dur-flicker: 0ms;--mc-dur-flick: 0ms;--mc-dur-step: .15s;--mc-dur-glide: .15s;--mc-dur-reveal: .15s;--mc-dur-ceremony: .15s;--mc-dur-epic: .15s;--mc-dur-hitstop: 0ms;--mc-dur-shake: 0ms}html.fx-reduced *,html.fx-reduced *:before,html.fx-reduced *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.12s!important;transition-property:opacity,color,background-color,border-color,box-shadow!important}html.fx-reduced .board{transition:none}html.fx-reduced .ember-canvas{display:none}
