:root{--bg: #0c1e2c;--bg-grad-1: #10283a;--bg-grad-2: #0a1f30;--bg-grad-3: #163245;--glass: rgba(255, 255, 255, .05);--glass-strong: rgba(255, 255, 255, .1);--glass-soft: rgba(255, 255, 255, .03);--border: rgba(168, 216, 185, .2);--border-strong: rgba(168, 216, 185, .38);--text: #e6f0ea;--muted: #88a8b3;--accent: #a8d8b9;--accent-strong: #7ec39a;--accent-soft: rgba(168, 216, 185, .15);--good: #7ec39a;--bad: #d68b8b;--warn: #e0c08a;--shadow: 0 8px 32px rgba(0, 0, 0, .45);--shadow-soft: 0 4px 16px rgba(0, 0, 0, .3);--cursor-default: url(/cursors/default.svg) 3 3, default;--cursor-disabled: url(/cursors/pointer.svg) 12 12, not-allowed;--cursor-pointer: var(--cursor-default);--cursor-grab: url(/cursors/grab.svg) 12 12, grab;--cursor-grabbing: url(/cursors/grabbing.svg) 12 12, grabbing;--cursor-text: url(/cursors/text.svg) 12 12, text}html,body{cursor:var(--cursor-default)}*,*:before,*:after{cursor:inherit}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=search],input[type=tel],input[type=url],input[type=number],textarea,[contenteditable=true]{cursor:var(--cursor-text)}[data-sq]:active,[data-sq]:active *,.sandbox-palette-btn:active{cursor:var(--cursor-grabbing)!important}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:clamp(11.5px,calc(1px + 1.45vh),17px);line-height:1.5}#root{height:100dvh}body{background:radial-gradient(circle at 15% 10%,var(--bg-grad-1) 0%,transparent 45%),radial-gradient(circle at 85% 85%,var(--bg-grad-3) 0%,transparent 50%),radial-gradient(circle at 50% 50%,var(--bg-grad-2) 0%,transparent 70%),var(--bg);background-attachment:fixed}a{color:inherit;text-decoration:none}.app-shell{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.85rem 1.7rem;background:var(--glass-strong);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.2rem;letter-spacing:-.01em}.brand-mark{font-size:1.55rem;color:var(--accent)}.brand-text{background:linear-gradient(135deg,var(--accent),#5fa8c4);background-clip:text;-webkit-background-clip:text;color:transparent}.topnav{display:flex;gap:1.2rem;margin-left:.85rem}.topnav a{padding:.5rem .85rem;border-radius:7px;color:var(--muted)}.topnav a:hover{color:var(--text)}.topnav a.active{color:var(--accent-strong);background:var(--accent-soft)}.user-chip{margin-left:auto;display:flex;align-items:center;gap:.7rem;padding:.5rem .85rem;border-radius:999px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border)}.user-chip-avatar{width:1.9rem;height:1.9rem;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--border-strong);background:var(--glass-strong);display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:var(--accent)}.user-chip .handle{font-weight:600}.user-chip .handle.muted{font-weight:400;color:var(--muted)}.user-chip .rating{font-variant-numeric:tabular-nums;color:var(--accent)}.main{flex:1;padding:1.9rem;max-width:1320px;margin:0 auto;width:100%;min-width:0}.footer{padding:.7rem 1.7rem;color:var(--muted);border-top:1px solid var(--border);text-align:center;font-size:.78rem}.version-tag{position:fixed;left:10px;bottom:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted);opacity:.6;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:50}.page-narrow{max-width:520px;margin:3.8rem auto}.page{display:flex;flex-direction:column;gap:1.65rem}.page-title{font-size:1.9rem;font-weight:700;letter-spacing:-.01em;margin:0}.muted{color:var(--muted)}.small{font-size:.78rem}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.break{word-break:break-all}.pos{color:var(--good)}.neg{color:var(--bad)}.hero{display:flex;flex-direction:column;gap:.5rem;min-width:0}.text-input{background:var(--glass-strong);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);color:var(--text);padding:.7rem .95rem;border-radius:9px;font-size:.95rem;width:100%;outline:none;transition:border-color .12s,box-shadow .12s}.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.signup-form{display:flex;gap:.6rem;margin-top:.95rem}.primary-btn,.secondary-btn{font:inherit;border-radius:9px;padding:.7rem 1.3rem;cursor:var(--cursor-pointer);border:1px solid transparent;white-space:nowrap;transition:filter .12s,background .12s,border-color .12s,transform 80ms}.primary-btn{background:linear-gradient(180deg,var(--accent),var(--accent-strong));color:#0c1e2c;font-weight:600;box-shadow:0 4px 14px #a8d8b940}.primary-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.primary-btn:disabled{opacity:.5;cursor:var(--cursor-disabled);transform:none}.secondary-btn{background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--text);border-color:var(--border)}.secondary-btn:hover{background:var(--glass-strong);border-color:var(--border-strong)}.primary-btn.big,.secondary-btn.big{padding:.95rem 1.9rem;font-size:1.12rem}.link-btn{background:none;border:none;color:var(--accent);cursor:var(--cursor-pointer);padding:0 .35rem;font:inherit}.link-btn:hover{text-decoration:underline}.home-play-area{display:grid;grid-template-columns:minmax(260px,580px) minmax(280px,1fr);gap:1.4rem;align-items:start;--max-board: max(15rem, min(34rem, calc(100dvh - 22rem) ))}.home-play-area:has(>.hero){grid-template-rows:auto auto}.home-play-area:has(>.hero)>.hero{grid-column:1;grid-row:1;min-width:0}.home-play-area:has(>.hero)>.free-play-board{grid-column:1;grid-row:2}.home-play-area:has(>.hero)>.home-controls{grid-column:2;grid-row:2}@media (max-width: 1100px){.home-play-area{grid-template-columns:1fr}.home-play-area:has(>.hero){grid-template-rows:auto auto auto}.home-play-area:has(>.hero)>.home-controls{grid-column:1;grid-row:3}}.free-play-board{display:flex;flex-direction:column;gap:.7rem;min-width:0}.free-play-board-wrap{align-self:flex-end;position:relative;width:100%;max-width:var(--max-board);aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;box-shadow:0 8px 24px #0003}.free-play-header{align-self:flex-end;width:100%;max-width:var(--max-board);min-width:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.85rem;padding:.6rem .95rem;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-soft)}@media (max-width: 1100px){.free-play-board-wrap,.free-play-header{align-self:center}.free-play-shop-col{right:calc((100% + var(--max-board)) / 2 + .7rem)}}.free-play-turn-group{display:flex;align-items:center;gap:.6rem}.free-play-turn{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:var(--muted);font-weight:600}.free-play-select{font:inherit;font-size:.79rem;font-weight:600;min-width:8.5rem;text-align:left;padding:.4rem 1.65rem .4rem .7rem;border-radius:7px;background-color:var(--glass-strong);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2388a8b3' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:9px 6px;border:1px solid var(--border);color:var(--text);cursor:var(--cursor-pointer);appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:border-color .12s,background-color .12s,color .12s,box-shadow .12s}.free-play-select:hover{border-color:var(--accent);background-color:var(--glass);color:var(--accent-strong)}.free-play-select:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.free-play-select option{background-color:#10283a;color:var(--text)}.custom-select-wrap{position:relative;display:inline-flex}.custom-select-popover{max-height:18rem;overflow-y:auto;background:#10283a;border:1px solid var(--border);border-radius:7px;box-shadow:var(--shadow);padding:.25rem;display:flex;flex-direction:column;gap:1px;z-index:9999;scrollbar-width:thin;scrollbar-color:var(--accent-soft) transparent}.custom-select-popover::-webkit-scrollbar{width:6px}.custom-select-popover::-webkit-scrollbar-track{background:transparent}.custom-select-popover::-webkit-scrollbar-thumb{background:var(--accent-soft);border-radius:4px}.custom-select-popover::-webkit-scrollbar-thumb:hover{background:var(--accent)}.custom-select-option{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;color:var(--text);text-align:left;font:inherit;font-size:.79rem;font-weight:500;padding:.35rem .7rem;border-radius:5px;cursor:var(--cursor-default);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:background .1s,color .1s}.custom-select-option:hover{background:var(--glass-strong);color:var(--accent-strong)}.custom-select-option.selected{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.free-play-placeholder{aspect-ratio:1 / 1;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;border-radius:8px;background:var(--glass);border:1px dashed var(--border-strong);color:var(--muted);font-size:14px}.turn-swatch{display:inline-block;width:.7rem;height:1.8rem;border-radius:3px;border:1px solid var(--border-strong)}.turn-swatch.white{background:#fff}.turn-swatch.black{background:#102025}.free-play-header-actions{display:flex;flex-wrap:wrap;gap:.6rem}.free-play-btn{font:inherit;font-size:.79rem;font-weight:600;padding:.4rem .85rem;border-radius:7px;background:var(--glass-strong);border:1px solid var(--border);color:var(--text);cursor:var(--cursor-pointer);transition:border-color .1s,background .1s,color .1s}.free-play-btn:hover:not(:disabled){border-color:var(--accent);background:var(--glass);color:var(--accent-strong)}.free-play-btn:disabled{opacity:.45;cursor:var(--cursor-disabled)}.history-nav-row{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.home-controls{display:flex;flex-direction:column;gap:1.05rem;min-width:0}.time-mode-box{display:flex;flex-direction:column;gap:.6rem;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:14px;padding:.6rem;box-shadow:var(--shadow-soft);width:100%;max-width:var(--max-board)}.time-mode-section{border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--glass-soft)}.time-mode-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.7rem .95rem;background:transparent;border:none;cursor:var(--cursor-pointer);font:inherit;color:var(--text);text-align:left}.time-mode-section-header:hover{background:var(--glass-strong)}.time-mode-section-title{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.time-mode-section-chevron{color:var(--muted);font-size:.82rem;margin-left:.5rem;display:inline-block;transition:transform .15s}.time-mode-section-chevron.open{transform:rotate(90deg)}.time-mode-section-body{padding:.6rem 1.9rem 1.1rem}.time-mode-blurb{margin-bottom:.95rem}.time-mode-grid{display:flex;gap:.95rem;flex-wrap:wrap}.time-mode-grid .time-mode-cell{flex:1 1 0;min-width:0}.time-mode-btn{background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);color:var(--text);padding:.8rem .3rem;border-radius:10px;font-size:.95rem;font-weight:600;cursor:var(--cursor-pointer);transition:border-color .1s,transform .1s,background .1s}.time-mode-btn:hover{border-color:var(--accent);transform:translateY(-1px);background:var(--glass-strong)}.time-mode-btn.selected{border-color:var(--accent);background:linear-gradient(180deg,#a8d8b929,#a8d8b90a);box-shadow:0 4px 16px #a8d8b926}.time-mode-btn:disabled{cursor:var(--cursor-disabled);opacity:.5}.time-mode-btn:disabled:hover{border-color:var(--border);transform:none;background:var(--glass)}.time-mode-cell{display:flex;flex-direction:column;gap:.35rem}.time-mode-cell .time-mode-btn{width:100%}.time-mode-count{text-align:center;font-size:.82rem}.play-row{display:flex;gap:1.05rem;align-items:center;margin-top:.85rem;flex-wrap:wrap}.status-msg{color:var(--muted);font-size:.88rem}.status-msg.error{color:var(--bad)}.lobby-panel{margin-top:1.2rem;display:flex;flex-direction:column;gap:.7rem;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:14px;padding:1.05rem 1.2rem;box-shadow:var(--shadow-soft)}.lobby-label{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.share-row{display:flex;gap:.6rem;align-items:center}.share-row .text-input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.game-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(380px,440px);gap:1.4rem;align-items:start;position:relative}@media (max-width: 1300px){.game-layout{grid-template-columns:1fr}}.disconnect-banner{grid-column:1 / -1;padding:10px 16px;border-radius:8px;background:linear-gradient(180deg,#d68b8b2e,#d68b8b14);border:1px solid rgba(214,139,139,.32);color:var(--bad);font-weight:600;text-align:center;font-variant-numeric:tabular-nums}.board-column{display:flex;flex-direction:column;gap:.85rem;min-width:0;--max-board: max(17rem, min(56rem, calc(100dvh - 12rem) ))}.board-wrap{align-self:flex-end;position:relative;width:100%;max-width:var(--max-board);aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;box-shadow:0 8px 24px #00000059;transition:box-shadow .22s}@keyframes board-finish-fade{0%{opacity:0}15%{opacity:1}65%{opacity:1}to{opacity:0}}@keyframes board-start-fade{0%{opacity:0;transform:scale(.94)}18%{opacity:1;transform:scale(1)}72%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}.board-start-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#080c18c7;color:#f5f7ff;border-radius:8px;text-align:center;pointer-events:none;opacity:0;animation:board-start-fade 3.5s ease-in-out forwards;text-shadow:0 2px 16px rgba(0,0,0,.55);z-index:6}.start-vs{display:flex;align-items:center;justify-content:center;gap:clamp(.8rem,4vw,2.4rem);padding:0 1rem}.start-player{display:flex;flex-direction:column;align-items:center;gap:.45rem;min-width:0}.start-divider{font-size:clamp(1.1rem,2.6vw,1.9rem);font-weight:800;opacity:.55;letter-spacing:.18em;text-transform:uppercase}.start-handle{font-size:clamp(.95rem,2vw,1.35rem);font-weight:700;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.start-rating{font-size:clamp(.7rem,1.4vw,.95rem);opacity:.75;font-variant-numeric:tabular-nums}.start-color-banner{margin-top:.35rem;font-size:clamp(.65rem,1.3vw,.85rem);letter-spacing:.18em;text-transform:uppercase;font-weight:700;padding:.3rem .85rem;border-radius:999px;border:1px solid rgba(255,255,255,.22)}.start-color-banner.white-banner{background:#ffffffe0;color:#102025;border-color:#ffffffb3}.start-color-banner.black-banner{background:#102025eb;color:#f5f7ff}.board-finish-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#080c189e;color:#f5f7ff;border-radius:8px;text-align:center;pointer-events:none;opacity:0;animation:board-finish-fade 4s ease-in-out forwards;text-shadow:0 2px 16px rgba(0,0,0,.55);z-index:5}.board-finish-overlay .victor{font-size:clamp(28px,5.5vw,56px);font-weight:800;letter-spacing:.5px;line-height:1.1;padding:0 16px;display:inline-flex;align-items:center;gap:.5rem}.board-finish-overlay .reason{font-size:clamp(14px,1.8vw,18px);opacity:.85}.board-finish-overlay .finish-avatars{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:6px}.finish-avatar{width:clamp(56px,9vw,96px);height:clamp(56px,9vw,96px);border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.35);background:#ffffff14;display:inline-flex;align-items:center;justify-content:center;font-size:clamp(22px,3.5vw,36px);font-weight:700;color:#f5f7ff;box-shadow:0 4px 14px #00000073}.result-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--border-strong);background:var(--glass-strong);display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--accent);flex-shrink:0}.game-result-strip .result-line .title-group{display:flex;align-items:center;gap:12px}.game-result-strip{display:flex;flex-direction:row;align-items:center;gap:.95rem;padding:.95rem 1.05rem;background:var(--glass);border:1px solid var(--border);border-radius:14px}.game-result-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.6rem}.game-result-buttons{display:flex;flex-direction:column;gap:.5rem;flex-shrink:0;align-items:stretch}.game-result-buttons .primary-btn,.game-result-buttons .secondary-btn{white-space:nowrap}.game-result-strip .result-line{display:flex;justify-content:space-between;align-items:baseline;gap:.85rem}.game-result-strip .result-line .title{font-size:18px;font-weight:700}.game-result-strip .result-line .reason{font-size:14px;opacity:.75}.game-result-strip .rating-delta{margin:0;font-size:22px;gap:12px}.game-result-strip .rating-delta .delta{font-size:15px}.board-wrap.viewing-history{box-shadow:0 0 0 3px #e0c08ab3,0 0 32px 6px #e0c08a80}.player-card{display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:14px;transition:background .2s,border-color .2s,box-shadow .2s}.player-card.active{border-color:var(--accent);background:linear-gradient(180deg,#a8d8b924,#a8d8b90a);box-shadow:0 4px 16px #a8d8b926}.player-card.low.active{border-color:var(--bad);background:linear-gradient(180deg,#d68b8b38,#d68b8b0d);animation:player-card-low-pulse 1s ease-in-out infinite}.player-card.low .player-clock-time{color:var(--bad)}@keyframes player-card-low-pulse{0%,to{box-shadow:0 4px 16px #d68b8b33,0 0 #d68b8b59}50%{box-shadow:0 4px 20px #d68b8b73,0 0 0 6px #d68b8b00}}.player-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--accent-soft);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}.player-avatar img{width:100%;height:100%;object-fit:cover}.player-avatar.large{width:108px;height:108px}.player-avatar-initial{font-size:25px;font-weight:600;color:var(--accent-strong)}.player-avatar.large .player-avatar-initial{font-size:44px}.player-meta{display:flex;flex-direction:column;flex-grow:1;min-width:0}.player-handle{font-weight:600;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-rating{color:var(--muted);font-size:13.5px}.player-clock-time{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:32px;font-weight:600;font-variant-numeric:tabular-nums}.voice-indicator{display:flex;align-items:center;gap:.6rem;padding:.3rem .7rem .3rem .4rem;border-radius:24px;background:var(--accent-soft);flex-shrink:0;transition:background .15s,color .15s,opacity .15s}.voice-indicator.state-off{color:var(--bad);background:#d68b8b12;opacity:.65}.voice-indicator.state-muted{color:var(--bad);background:#d68b8b1a}.voice-indicator.state-active{color:var(--accent-strong)}.voice-indicator.vibrating{animation:voice-vibrate 70ms infinite}@keyframes voice-vibrate{0%{transform:translate(0)}25%{transform:translate(-1px,1px)}50%{transform:translate(1px,-1px)}75%{transform:translate(-1px,-1px)}to{transform:translate(1px,1px)}}.voice-icon{position:relative;width:2.12rem;height:2.12rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.voice-slash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.voice-slash:after{content:"";position:absolute;left:4px;right:4px;top:50%;height:2.5px;background:var(--bad);transform:translateY(-50%) rotate(-45deg);border-radius:2px}.volume-track{position:relative;width:4.95rem;height:.55rem;border-radius:4px;background:#00000014;overflow:hidden;flex-shrink:0}.voice-indicator.state-muted .volume-track{opacity:.5}.volume-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background:var(--vol-color, #16a34a);clip-path:inset(0 calc((1 - var(--vol, 0)) * 100%) 0 0);transition:clip-path 60ms linear,background 80ms linear}.avatar-edit{display:flex;gap:.95rem;align-items:center;margin-top:.35rem}.avatar-actions{display:flex;gap:.5rem;align-items:center}.side-panel{display:flex;flex-direction:column;gap:.85rem}.game-meta{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;padding:.82rem 1.05rem;box-shadow:var(--shadow-soft)}.game-meta-title{font-weight:600;font-size:.95rem}.voice-controls{display:flex;flex-wrap:wrap;gap:.6rem;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;padding:.7rem}.voice-controls.inline{background:transparent;border:none;padding:0;margin-top:.6rem;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.voice-controls.inline .voice-btn{padding:.4rem .6rem;font-size:.78rem;flex:1}.voice-btn{font:inherit;background:var(--glass-strong);border:1px solid var(--border);color:var(--text);padding:.6rem .82rem;border-radius:8px;cursor:var(--cursor-pointer);font-size:.82rem}.voice-btn:hover{border-color:var(--accent)}.voice-btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-strong));border-color:var(--accent-strong);color:#0c1e2c;flex:1;box-shadow:0 2px 10px #a8d8b938}.voice-btn.on{border-color:var(--good)}.voice-btn.off{border-color:var(--bad);color:var(--muted)}.moves-panel{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;padding:.82rem 1.05rem;max-height:min(11rem,max(6rem,calc(100dvh - 50rem)));overflow-y:auto;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem}.moves-line{padding:2px 0}.chat-panel{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;padding:.82rem;display:flex;flex-direction:column;gap:.6rem}.chat-log{max-height:min(10rem,max(3.5rem,calc(100dvh - 60rem)));overflow-y:auto;font-size:.85rem;display:flex;flex-direction:column;gap:.3rem}.chat-msg.opp{color:var(--accent)}.chat-msg.me{color:var(--text)}.chat-from{font-weight:600;margin-right:.25rem}.chat-msg a{color:var(--accent);text-decoration:underline;word-break:break-all}.chat-msg a:hover{color:var(--accent-strong)}.chat-input-row{display:flex;gap:.6rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c1e2c8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--glass-strong);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--border-strong);border-radius:16px;padding:1.9rem 2.12rem;min-width:21rem;text-align:center;box-shadow:var(--shadow)}.modal h2{margin-top:0;font-size:1.41rem}.rating-delta{margin:1.2rem 0;font-size:1.88rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:.95rem}.rating-delta .delta{font-size:1.18rem}.settings-card{background:var(--glass);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid var(--border);border-radius:14px;padding:.6rem 1.55rem;display:flex;flex-direction:column;box-shadow:var(--shadow-soft);max-width:720px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:1.65rem;padding:1.05rem 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-label{display:flex;flex-direction:column;gap:.18rem;min-width:0}.settings-title{font-weight:600;font-size:.97rem}.settings-control{display:flex;align-items:center;gap:.82rem;flex-shrink:0}.volume-control input[type=range]{width:11.8rem;accent-color:var(--accent)}.volume-readout{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.82rem;min-width:2.5rem;text-align:right}.settings-toggle{position:relative;width:2.95rem;height:1.65rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--glass-strong);cursor:var(--cursor-pointer);padding:0;transition:background .15s,border-color .15s}.settings-toggle.on{background:linear-gradient(180deg,var(--accent),var(--accent-strong));border-color:var(--accent-strong)}.settings-toggle-knob{position:absolute;top:2px;left:2px;width:1.3rem;height:1.3rem;border-radius:50%;background:#f3faf5;box-shadow:0 1px 4px #00000073;transition:transform .15s}.settings-toggle.on .settings-toggle-knob{transform:translate(1.3rem)}.profile-card{background:var(--glass);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid var(--border);border-radius:14px;padding:1.55rem;display:flex;flex-direction:column;gap:1.3rem;box-shadow:var(--shadow-soft)}.profile-row{display:flex;gap:2.12rem;flex-wrap:wrap}.profile-field{display:flex;flex-direction:column;gap:.3rem}.profile-field.grow{flex:1;min-width:0}.profile-value{font-size:1.03rem;font-weight:600;display:flex;align-items:center;gap:.6rem}.profile-value.big{font-size:1.76rem;color:var(--accent)}.identity-actions{gap:.82rem;align-items:flex-end}.import-block{background:var(--glass-soft);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.82rem 1.05rem;border-radius:10px;border:1px solid var(--border)}.import-block summary{cursor:var(--cursor-pointer);-webkit-user-select:none;user-select:none}.import-block textarea{margin:.5rem 0}.history-section h2{margin:1.65rem 0 .82rem;font-size:1.3rem;font-weight:600}.history-table{width:100%;border-collapse:collapse;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:14px;overflow:hidden}.history-table th,.history-table td{padding:.7rem .95rem;text-align:left;border-bottom:1px solid var(--border)}.history-table th{background:var(--accent-soft);font-weight:600;font-size:.79rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.history-table tr:last-child td{border-bottom:none}.history-row-actions{display:inline-flex;align-items:center;gap:.7rem;white-space:nowrap}.history-date-nav{display:flex;align-items:center;gap:.8rem;margin:.6rem 0 1rem;flex-wrap:wrap}.history-date-center{flex:1;min-width:180px;text-align:center}.history-date-label{font-weight:600;font-size:1.05rem}.history-date-tools{display:inline-flex;align-items:center;gap:.6rem;margin-left:auto}.history-date-tools input[type=date]{width:9rem;padding:.3rem .55rem;font-size:.85rem}.result-win{color:var(--good);font-weight:700}.result-loss{color:var(--bad);font-weight:700}.result-draw{color:var(--muted);font-weight:700}.board-column.with-cash-shop{position:relative}.cash-side-shop{position:absolute;top:0;right:calc(var(--max-board) + 12px);width:200px}@media (max-width: 600px){.cash-side-shop{position:static;width:100%;max-width:var(--max-board);align-self:flex-end;margin-bottom:12px}}.free-play-board.with-shop{position:relative}.free-play-shop-col{position:absolute;top:0;right:calc(var(--max-board) + .7rem);width:14rem;display:flex;flex-direction:column;gap:.7rem}@media (max-width: 600px){.free-play-shop-col{position:static;width:100%;max-width:var(--max-board);align-self:flex-end}}.cash-shop{display:flex;flex-direction:column;gap:.7rem;padding:.7rem;background:var(--glass);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-soft);min-width:0}.cash-shop.compact{padding:.6rem;gap:.6rem}.cash-shop-header{display:flex;flex-direction:column;gap:.5rem}.cash-shop-title{font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.cash-gold-row{display:flex;gap:.5rem;flex-wrap:wrap}.cash-gold{display:flex;flex-direction:column;gap:.12rem;padding:.35rem .6rem;background:var(--glass-soft);border:1px solid var(--border);border-radius:8px;flex:1 1 0}.cash-shop.compact .cash-gold{flex-direction:row;align-items:center;gap:.45rem}.cash-shop.compact .cash-gold-label{font-size:inherit;text-transform:none;letter-spacing:normal;color:inherit;min-width:3.5rem}.cash-gold.highlight{background:var(--accent-soft);border-color:var(--border-strong)}.cash-gold-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:inline-flex;align-items:center;min-height:.9rem}.cash-gold-amount{display:inline-flex;align-items:center;gap:.35rem;font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.cash-gold-coin{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe7a0,#b88836 70%);box-shadow:0 0 0 1px #0006 inset,0 1px 2px #00000073}.cash-shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.cash-shop-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.5rem .25rem .35rem;background:var(--glass-soft);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:var(--cursor-pointer);transition:background .1s,border-color .1s,transform 80ms}.cash-shop-item:hover:not(:disabled){background:var(--glass-strong);border-color:var(--border-strong)}.cash-shop-item:active:not(:disabled){transform:translateY(1px)}.cash-shop-item:disabled{opacity:.4;cursor:var(--cursor-disabled)}.cash-shop-item.selected{background:var(--accent-soft);border-color:var(--accent-strong);box-shadow:0 0 0 1px var(--accent-strong) inset}.cash-shop-piece{display:inline-flex;align-items:center;justify-content:center;height:2.24rem}.cash-shop-price{font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.cash-shop-hint{min-height:1.65rem;line-height:1.3}.game-layout.hero-game-layout{grid-template-columns:minmax(200px,240px) minmax(320px,640px) minmax(260px,340px)}@media (max-width: 1180px){.game-layout.hero-game-layout{grid-template-columns:minmax(320px,640px) minmax(260px,340px)}.game-layout.hero-game-layout .hero-side-column{grid-column:1 / -1;order:-1}}@media (max-width: 980px){.game-layout.hero-game-layout{grid-template-columns:1fr}}.hero-side-column{display:flex;flex-direction:column;gap:12px;min-width:0}.hero-side-placeholder{padding:12px;background:var(--glass);border:1px solid var(--border);border-radius:12px;text-align:center}.hero-picker-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#080c18db;border-radius:8px;display:flex;align-items:center;justify-content:center;z-index:6;padding:16px}.hero-picker{width:100%;max-width:560px;display:flex;flex-direction:column;gap:12px}.hero-picker.inline{background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:10px}.hero-picker-title{font-weight:700;font-size:16px;color:var(--accent);text-align:center}.hero-picker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.hero-card{--hero-color: var(--accent);display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 10px;background:var(--glass-soft);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:var(--cursor-pointer);transition:background .1s,border-color .1s,transform 80ms}.hero-card:hover{background:var(--glass-strong);border-color:var(--hero-color)}.hero-card.selected{background:color-mix(in srgb,var(--hero-color) 20%,transparent);border-color:var(--hero-color);box-shadow:0 0 0 1px var(--hero-color) inset,0 0 18px color-mix(in srgb,var(--hero-color) 50%,transparent)}.hero-card-king{filter:drop-shadow(0 0 10px var(--hero-color))}.hero-card-name{font-weight:700;font-size:15px}.hero-card-blurb{font-size:12.5px;color:var(--muted);text-align:center;line-height:1.3}.hero-card-cd{font-size:11.5px;color:var(--hero-color);font-weight:600}.hero-picker-status{text-align:center}.hero-panel{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--glass);border:1px solid var(--border);border-radius:12px}.hero-panel.compact{padding:10px;gap:8px}.hero-panel-title{font-weight:700;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.hero-card-row{--hero-color: var(--accent);display:flex;align-items:center;gap:10px;padding:8px;background:var(--glass-soft);border:1px solid var(--border);border-radius:8px}.hero-card-row.highlight{background:color-mix(in srgb,var(--hero-color) 15%,transparent);border-color:var(--hero-color)}.hero-card-row .hero-card-king.small{filter:drop-shadow(0 0 8px var(--hero-color));flex-shrink:0}.hero-card-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.hero-card-row .hero-card-name{font-size:14px}.hero-card-name-row{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;width:100%}.hero-card-name-row .hero-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-card-cd-line{color:var(--hero-color);font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:0}.hero-action-row{display:flex;justify-content:center}.hero-action-row .primary-btn,.hero-action-row .secondary-btn{width:100%;padding:8px 14px}.hero-panel-hint{min-height:1.65rem;line-height:1.3}.hero-side-pickers{display:flex;flex-direction:column;gap:.5rem;padding:.7rem .95rem .7rem .85rem;background:var(--glass);border:1px solid var(--border);border-radius:10px}.hero-side-picker{display:flex;align-items:center;gap:1.1rem}.hero-side-picker .sandbox-king-label{padding-left:.5rem;padding-right:.25rem}.hero-side-picker .free-play-select{width:8.5rem;max-width:8.5rem;min-width:0;flex:0 1 auto}.masked-self-overlay{opacity:.4;filter:drop-shadow(0 0 3px var(--mask-glow, #bda0ff)) drop-shadow(0 0 8px color-mix(in srgb,var(--mask-glow, #bda0ff) 60%,transparent))}.frozen-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:linear-gradient(135deg,#b4e6ffb3,#50a0dc8c);box-shadow:inset 0 0 0 2px #dcf0ffd9,inset 0 0 12px #8cd2ffcc;display:flex;align-items:center;justify-content:center;animation:frozen-pulse 2.4s ease-in-out infinite}.frozen-cracks{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}.frozen-cracks .crack-main{fill:none;stroke:#0f2850bf;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}.frozen-cracks .crack-sub{fill:none;stroke:#0f285099;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round}.frozen-cracks .crack-twig{fill:none;stroke:#0f285073;stroke-width:.45;stroke-linecap:round;stroke-linejoin:round}.frozen-cracks .crack-chip{fill:#0f28508c}.frozen-cracks .crack-highlight{fill:none;stroke:#f0fcff73;stroke-width:.35;stroke-linecap:round}.frozen-flake{color:#f0fafff2;text-shadow:0 0 6px rgba(140,210,255,.9),0 0 12px rgba(80,160,220,.7);font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none;position:relative;z-index:1}@keyframes frozen-pulse{0%,to{opacity:.92}50%{opacity:1}}.ability-frost-shatter{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.ability-frost-shatter .frost-flash{position:absolute;left:var(--cx);top:var(--cy);width:calc(var(--size) * 1.3);height:calc(var(--size) * 1.3);margin-left:calc(var(--size) * -.65);margin-top:calc(var(--size) * -.65);border-radius:50%;background:radial-gradient(circle,rgba(230,250,255,.95) 0%,rgba(160,220,255,.6) 35%,transparent 70%);opacity:0;animation:frost-flash .36s ease-out forwards}@keyframes frost-flash{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1.05)}60%{opacity:.3;transform:scale(1.2)}to{opacity:0;transform:scale(1.35)}}.ability-frost-shatter .frost-shard{position:absolute;left:var(--cx);top:var(--cy);width:calc(var(--size) * .18);height:calc(var(--size) * .28);margin-left:calc(var(--size) * -.09);margin-top:calc(var(--size) * -.14);background:linear-gradient(150deg,#f0fcfff2,#a0dcffd9 60%,#5aa0dcbf);clip-path:polygon(50% 0%,100% 30%,85% 100%,25% 90%,0% 45%);filter:drop-shadow(0 0 2px rgba(140,210,255,.9)) drop-shadow(0 0 4px rgba(80,160,220,.5));opacity:0;animation:frost-shard-fly .62s cubic-bezier(.2,.7,.3,1) forwards;--shard-dx: 0px;--shard-dy: 0px;--shard-rot: 0deg}@keyframes frost-shard-fly{0%{transform:translate(0) rotate(0) scale(.6);opacity:0}10%{transform:translate(calc(var(--shard-dx) * .18),calc(var(--shard-dy) * .18)) rotate(calc(var(--shard-rot) * .15)) scale(1);opacity:1}to{transform:translate(var(--shard-dx),var(--shard-dy)) rotate(var(--shard-rot)) scale(.85);opacity:0}}@keyframes piece-slide{0%{transform:translate(var(--slide-dx, 0),var(--slide-dy, 0))}to{transform:translate(0)}}@keyframes piece-pop{0%{transform:scale(.15);opacity:.45}55%{transform:scale(1.22);opacity:1}80%{transform:scale(.96)}to{transform:scale(1);opacity:1}}.merge-anim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:11}.merge-phantom{position:absolute;width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);display:flex;align-items:center;justify-content:center}.merge-phantom{animation:merge-flow .48s cubic-bezier(.45,0,.55,1) both}@keyframes merge-flow{0%{left:var(--from-x);top:var(--from-y);transform:scale(var(--start-scale, 1));opacity:1}88%{left:var(--end-x);top:var(--end-y);transform:scale(var(--end-scale, 1));opacity:1}to{left:var(--end-x);top:var(--end-y);transform:scale(var(--end-scale, 1));opacity:0}}@keyframes piece-merge-slot-fade-in{0%,88%{opacity:0}to{opacity:1}}@keyframes piece-flight-arrival{0%,80%{transform:scale(0);opacity:0}92%{transform:scale(1.18);opacity:1}to{transform:scale(1);opacity:1}}.ability-flight,.ability-necromancer,.ability-warlord,.ability-frost{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:12}.ability-flight-body{position:absolute;width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 .4rem rgba(135,206,235,.95)) drop-shadow(0 0 1rem rgba(135,206,235,.7));animation:ability-flight-fly .95s cubic-bezier(.45,0,.55,1) forwards}@keyframes ability-flight-fly{0%{left:var(--from-x);top:var(--from-y);transform:scale(.92);opacity:.4}18%{transform:scale(1.05);opacity:1}82%{left:var(--to-x);top:var(--to-y);transform:scale(1.05);opacity:1}to{left:var(--to-x);top:var(--to-y);transform:scale(.95);opacity:0}}.ability-flight-king{position:relative;display:inline-flex;z-index:1}.ability-flight-wing{position:absolute;top:12%;width:48%;height:76%;background:linear-gradient(135deg,#fffffff2,#b4dcff8c 60%,#87ceeb00);filter:drop-shadow(0 0 6px rgba(255,255,255,.9));z-index:0}.ability-flight-wing.left{left:-16%;clip-path:polygon(100% 10%,100% 90%,30% 100%,0 60%,25% 25%);transform-origin:100% 50%;animation:ability-flight-wing-l .22s ease-in-out infinite}.ability-flight-wing.right{right:-16%;clip-path:polygon(0 10%,0 90%,70% 100%,100% 60%,75% 25%);transform-origin:0% 50%;animation:ability-flight-wing-r .22s ease-in-out infinite}@keyframes ability-flight-wing-l{0%,to{transform:rotate(-8deg) scaleY(1)}50%{transform:rotate(-32deg) scaleY(.85)}}@keyframes ability-flight-wing-r{0%,to{transform:rotate(8deg) scaleY(1)}50%{transform:rotate(32deg) scaleY(.85)}}.ability-necro-mound,.ability-necro-glow,.ability-necro-pawn,.ability-necro-dust{position:absolute;left:var(--cx);top:var(--cy);pointer-events:none}.ability-necro-mound{width:calc(var(--size) * .7);height:calc(var(--size) * .18);margin-left:calc(var(--size) * -.35);margin-top:calc(var(--size) * .27);border-radius:50%;background:radial-gradient(ellipse at center,#361e10,#4e3018f2,#3a2212b3 70%,#3a221200);box-shadow:0 -2px 4px #0006 inset,0 2px 3px #ffffff14 inset;filter:blur(.6px);animation:ability-necro-mound 1.15s ease-out forwards}@keyframes ability-necro-mound{0%{transform:scaleX(.4) scaleY(.4);opacity:0}10%{transform:scaleX(1.05) scaleY(1.05);opacity:1}40%{transform:scaleX(1.1) scaleY(1);opacity:1}55%{transform:scaleX(1.08) scaleY(.95);opacity:.85}75%{transform:scaleX(1) scaleY(.75);opacity:.45}to{transform:scaleX(.85) scaleY(.4);opacity:0}}.ability-necro-glow{width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);border-radius:50%;background:radial-gradient(circle,rgba(155,77,202,.4) 0%,rgba(120,50,170,.2) 45%,transparent 75%);filter:blur(2px);animation:ability-necro-glow 1.15s ease-out forwards}@keyframes ability-necro-glow{0%{transform:scale(.5);opacity:0}13%{transform:scale(1);opacity:1}40%{transform:scale(1.08);opacity:.9}60%{transform:scale(1.14);opacity:.65}80%{transform:scale(1.2);opacity:.3}to{transform:scale(1.3);opacity:0}}.ability-necro-pawn{display:flex;align-items:center;justify-content:center;width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);animation:ability-necro-pawn .75s cubic-bezier(.34,1.2,.64,1) both}@keyframes ability-necro-pawn{0%{transform:translateY(86%);clip-path:inset(0 0 100% 0);opacity:1}20%{transform:translate(-4px,65%);clip-path:inset(0 0 79% 0)}40%{transform:translate(5px,42%);clip-path:inset(0 0 56% 0)}60%{transform:translate(-4px,20%);clip-path:inset(0 0 34% 0);animation-timing-function:cubic-bezier(.22,1,.36,1)}80%{transform:translate(0);clip-path:inset(0 0 14% 0);opacity:1}95%{transform:translate(0);clip-path:inset(0 0 14% 0);opacity:1}to{transform:translate(0);clip-path:inset(0 0 14% 0);opacity:0}}.ability-necro-dust{width:calc(var(--size) * .22);height:calc(var(--size) * .22);margin-left:calc(var(--size) * -.11);margin-top:calc(var(--size) * .12);border-radius:50%;background:radial-gradient(circle,rgba(170,120,80,.85) 0%,rgba(120,80,50,.4) 50%,transparent 80%);filter:blur(1px);opacity:0}.ability-necro-dust-l{animation:ability-necro-dust-l 1.1s ease-out forwards}.ability-necro-dust-r{animation:ability-necro-dust-r 1.1s ease-out forwards;animation-delay:80ms}@keyframes ability-necro-dust-l{0%{transform:translate(0) scale(.4);opacity:.95}35%{transform:translate(calc(var(--size) * -.18),calc(var(--size) * -.09)) scale(.9);opacity:.85}65%{transform:translate(calc(var(--size) * -.3),calc(var(--size) * -.15)) scale(1.2);opacity:.45}to{transform:translate(calc(var(--size) * -.42),calc(var(--size) * -.22)) scale(1.6);opacity:0}}@keyframes ability-necro-dust-r{0%{transform:translate(0) scale(.4);opacity:.95}35%{transform:translate(calc(var(--size) * .18),calc(var(--size) * -.09)) scale(.9);opacity:.85}65%{transform:translate(calc(var(--size) * .3),calc(var(--size) * -.15)) scale(1.2);opacity:.45}to{transform:translate(calc(var(--size) * .42),calc(var(--size) * -.22)) scale(1.6);opacity:0}}@keyframes piece-necromancer-arrival{0%,80%{opacity:0}95%,to{opacity:1}}.ability-warlord{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:12}.ability-warlord-impact{position:absolute;left:var(--cx);top:var(--cy);width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);border-radius:50%;background:radial-gradient(circle,rgba(255,80,80,.7) 0%,rgba(196,30,30,.4) 40%,transparent 75%);box-shadow:0 0 1rem #ff3c3cd9,0 0 2.4rem #c41e1e8c;opacity:0;animation:ability-warlord-impact .52s ease-out .45s forwards}@keyframes ability-warlord-impact{0%{transform:scale(.3);opacity:0}20%{transform:scale(1.05);opacity:1}70%{transform:scale(1.25);opacity:.4}to{transform:scale(1.4);opacity:0}}.ability-warlord-sword{position:absolute;left:var(--from-x);top:var(--from-y);width:0;height:0;filter:drop-shadow(2px 0 0 #1a0e04) drop-shadow(-2px 0 0 #1a0e04) drop-shadow(0 2px 0 #1a0e04) drop-shadow(0 -2px 0 #1a0e04) drop-shadow(0 3px 2px rgba(0,0,0,.45));opacity:0;animation:ability-warlord-swing .9s cubic-bezier(.85,0,.15,1) forwards}@keyframes ability-warlord-swing{0%{transform:rotate(calc(var(--bearing) - 55deg));opacity:0}40%{opacity:1}60%{opacity:1}to{transform:rotate(calc(var(--bearing) + 55deg));opacity:0}}.ak-blade{position:absolute;width:calc(var(--size) * .2);height:var(--blade-length);left:calc(var(--size) * -.1);top:calc(var(--blade-length) * -1 - var(--size) * .055);background:linear-gradient(180deg,#f0f4f8,#f0f4f8 75%,#b9c2cc 75%,#b9c2cc);clip-path:polygon(50% 0%,100% 10%,100% 100%,0% 100%,0% 10%)}.ak-crossguard{position:absolute;width:calc(var(--size) * .36);height:calc(var(--size) * .06);left:calc(var(--size) * -.18);top:calc(var(--size) * -.065);background:#d8a02a;border-radius:3px}.ak-grip{position:absolute;width:calc(var(--size) * .08);height:calc(var(--size) * .1);left:calc(var(--size) * -.04);top:calc(var(--size) * -.05);background:#3a200a;border-radius:2px}.ak-pommel{position:absolute;width:calc(var(--size) * .11);height:calc(var(--size) * .095);left:calc(var(--size) * -.055);top:calc(var(--size) * .05);background:#d8a02a;border-radius:50%}.ability-frost-burst{position:absolute;left:var(--cx);top:var(--cy);width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);border-radius:50%;background:radial-gradient(circle,rgba(220,240,255,.95) 0%,rgba(140,210,255,.7) 35%,rgba(80,160,220,.25) 65%,transparent 85%);box-shadow:0 0 1rem #8cd2ffd9,0 0 2.4rem #50a0dc99;animation:ability-frost-burst .7s ease-out forwards}@keyframes ability-frost-burst{0%{transform:scale(.3);opacity:0}25%{transform:scale(.95);opacity:1}to{transform:scale(1.4);opacity:0}}.ability-mutation{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:12}.ability-mutation-glow{position:absolute;left:var(--cx);top:var(--cy);width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);border-radius:50%;background:radial-gradient(circle,rgba(150,255,170,.95) 0%,rgba(80,220,110,.7) 30%,rgba(40,170,70,.3) 60%,transparent 82%);box-shadow:0 0 1rem #78e68cd9,0 0 2.4rem #3cb45a8c;filter:blur(1px);animation:ability-mutation-glow .82s cubic-bezier(.3,.7,.4,1) forwards}@keyframes ability-mutation-glow{0%{transform:scale(.35);opacity:0}22%{transform:scale(1.1);opacity:1}55%{transform:scale(1);opacity:.85}to{transform:scale(1.25);opacity:0}}.ability-mutation-ring{position:absolute;left:var(--cx);top:var(--cy);width:calc(var(--size) * .4);height:calc(var(--size) * .4);margin-left:calc(var(--size) * -.2);margin-top:calc(var(--size) * -.2);border-radius:50%;border:2px solid rgba(130,255,150,.95);box-shadow:0 0 .5rem #78f08cd9,inset 0 0 .4rem #a0ffaa80;animation:ability-mutation-ring .92s cubic-bezier(.25,.7,.4,1) forwards}.ability-mutation-ring.r2{animation-delay:.14s}.ability-mutation-ring.r3{animation-delay:.28s}@keyframes ability-mutation-ring{0%{transform:scale(.15);opacity:0;border-width:3px}18%{opacity:.95}to{transform:scale(2.8);opacity:0;border-width:1px}}.ability-icbm{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:12}.ability-icbm-flash{position:absolute;left:var(--cx);top:var(--cy);width:calc(var(--size) * 1.4);height:calc(var(--size) * 1.4);margin-left:calc(var(--size) * -.7);margin-top:calc(var(--size) * -.7);border-radius:50%;background:radial-gradient(circle,rgba(255,255,240,1) 0%,rgba(255,230,140,.85) 25%,rgba(255,150,60,.45) 55%,transparent 78%);filter:blur(1px);animation:ability-icbm-flash .52s cubic-bezier(.2,.7,.3,1) forwards}@keyframes ability-icbm-flash{0%{transform:scale(.1);opacity:0}10%{transform:scale(1);opacity:1}to{transform:scale(1.4);opacity:0}}.ability-icbm-fireball{position:absolute;left:var(--cx);top:var(--cy);width:var(--size);height:var(--size);margin-left:calc(var(--size) * -.5);margin-top:calc(var(--size) * -.5);border-radius:50%;background:radial-gradient(circle,rgba(255,245,200,.95) 0%,rgba(255,170,60,.9) 32%,rgba(220,70,30,.7) 58%,rgba(120,20,10,.4) 78%,transparent 92%);box-shadow:0 0 1.2rem #ff8c3cd9,0 0 2.6rem #dc501e8c;animation:ability-icbm-fireball .82s cubic-bezier(.25,.7,.4,1) forwards}@keyframes ability-icbm-fireball{0%{transform:scale(.2);opacity:0}18%{transform:scale(1.05);opacity:1}60%{transform:scale(1.1);opacity:.75}to{transform:scale(1.35);opacity:0}}.ability-icbm-shock{position:absolute;left:var(--cx);top:var(--cy);width:calc(var(--size) * .5);height:calc(var(--size) * .5);margin-left:calc(var(--size) * -.25);margin-top:calc(var(--size) * -.25);border-radius:50%;border:3px solid rgba(255,200,120,.95);box-shadow:0 0 .6rem #ffa03cd9,inset 0 0 .4rem #ffdca080;animation:ability-icbm-shock .9s cubic-bezier(.2,.7,.4,1) forwards}.ability-icbm-shock.r2{animation-delay:.16s}@keyframes ability-icbm-shock{0%{transform:scale(.2);opacity:0;border-width:4px}15%{opacity:1}to{transform:scale(3.2);opacity:0;border-width:1px}}.sandbox-tools{display:flex;flex-direction:column;gap:.85rem;min-width:0}.sandbox-controls{align-self:flex-start;max-width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .7rem;background:var(--glass);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-soft)}.sandbox-variant-select{flex:0 0 auto;width:auto;min-width:6.5rem}.sandbox-controls .free-play-btn{flex:0 0 auto}.sandbox-palette{align-self:flex-start;max-width:100%;background:var(--glass);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-soft);padding:.7rem .8rem .8rem}.sandbox-palette-row-buttons{flex:0 1 auto}.sandbox-palette-hint{margin-top:.45rem}.sandbox-extras{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.7rem}.sandbox-tips-card{align-self:flex-start;flex:0 1 auto;max-width:100%;padding:.7rem .8rem .8rem;background:var(--glass);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-soft)}.sandbox-tip-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;color:var(--muted);line-height:1.35;max-width:18rem}.sandbox-tip-list b{color:var(--text);font-weight:600}.sandbox-palette-title{font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:.55rem}.sandbox-palette-grid{display:flex;flex-direction:column;gap:.5rem}.sandbox-palette-row{display:flex;align-items:center;gap:.55rem}.sandbox-palette-row-buttons{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:.35rem}.sandbox-palette-btn{display:flex;align-items:center;justify-content:center;flex:0 0 2.4rem;height:2.4rem;background:var(--glass-strong);border:1px solid var(--border);border-radius:8px;cursor:var(--cursor-grab);-webkit-user-select:none;user-select:none;transition:border-color .1s,background .1s,transform .1s}.sandbox-palette-btn:hover{border-color:var(--accent);background:var(--glass)}.sandbox-palette-btn:active{cursor:var(--cursor-grabbing);transform:scale(.97)}.sandbox-palette-btn.armed{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.sandbox-palette-merged{position:relative;width:2.2rem;height:2.2rem}.sandbox-shop,.sandbox-hero{align-self:flex-start;max-width:100%}.sandbox-hero .hero-side-picker .free-play-select{width:10.5rem;max-width:10.5rem}.sandbox-shop .sandbox-shop-row{display:flex;align-items:center;gap:.5rem}.sandbox-shop-row-buttons{display:flex;gap:.35rem;flex:1 1 auto}.sandbox-shop-row-buttons .cash-shop-item{padding:.25rem .3rem;min-width:0}.sandbox-hero-actions{display:flex;flex-direction:column;gap:.4rem}.sandbox-hero-actions .primary-btn,.sandbox-hero-actions .secondary-btn{font-size:.8rem;padding:.4rem .6rem}.sandbox-hero-btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center}.sandbox-hero-btn-king{display:inline-flex;align-items:center;filter:drop-shadow(0 0 1px rgba(0,0,0,.55))}.sandbox-king-label{display:inline-flex;align-items:center;justify-content:center}.free-play-board-wrap:fullscreen{width:100vw;height:100vh;max-width:none;aspect-ratio:auto;border-radius:0;box-shadow:none;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:1.2rem}.free-play-board-wrap:fullscreen .merge-board{width:min(calc(100vw - 2.4rem),calc(100vh - 2.4rem))!important;height:min(calc(100vw - 2.4rem),calc(100vh - 2.4rem))!important;max-width:none;aspect-ratio:1 / 1;border-radius:8px}.fullscreen-exit-btn{position:absolute;top:1rem;right:1rem;z-index:100;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--glass-strong);border:1px solid var(--border-strong);color:var(--text);font-size:1.3rem;line-height:1;font-weight:600;cursor:var(--cursor-pointer);display:flex;align-items:center;justify-content:center;padding:0}.fullscreen-exit-btn:hover{background:var(--glass);border-color:var(--accent);color:var(--accent-strong)}.promotion-picker-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:25;cursor:var(--cursor-pointer)}.promotion-picker-tile{width:100%;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;background:var(--glass-strong, rgba(255, 255, 255, .92));border:1px solid var(--border);border-radius:0;cursor:var(--cursor-pointer);padding:0;transition:background .12s,transform .1s}.promotion-picker-tile:hover{background:var(--accent-soft, rgba(126, 200, 130, .35))}.promotion-picker-tile:active{transform:scale(.96)}.promotion-picker-merged{position:relative;width:44px;height:44px}.review-import-card{margin:1.4rem 0;padding:1rem 1.2rem;background:var(--accent-soft, rgba(126, 200, 130, .1));border:1px solid var(--accent-soft, rgba(126, 200, 130, .18));border-radius:10px}.review-import-card h2{margin:0 0 .6rem;font-size:1.1rem}.review-import-row{display:flex;align-items:center;gap:.8rem;margin-top:.6rem;flex-wrap:wrap}.review-paste{width:100%;min-height:100px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.review-error{margin:.8rem 0;padding:.7rem 1rem;border-radius:8px;background:#dc3c3c1f;border:1px solid rgba(220,60,60,.32)}.review-dropzone{flex:1;min-width:200px;padding:.9rem 1rem;border:1.5px dashed rgba(150,150,150,.55);border-radius:8px;color:var(--muted, #888);text-align:center;font-size:.9rem;transition:background .12s ease,border-color .12s ease}.review-dropzone.hover{background:#7ec88229;border-color:#7ec88299;color:inherit}.review-move{display:inline-block;padding:0 .25rem;border-radius:3px;cursor:pointer;-webkit-user-select:none;user-select:none}.review-move:hover{background:#7ec8822e}.review-move.active{background:#7ec8826b;font-weight:600}
