@font-face{font-family:D2Coding;src:url(/assets/D2Coding-ligature-NF-Twemoji-noKR-zWgskl5e.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg0: #060e18;--bg1: #0a1624;--bg2: #10243a;--panel: rgba(6, 14, 24, .95);--surface: rgba(10, 22, 36, .97);--line: rgba(126, 168, 210, .22);--text: #eaf0f7;--muted: #8da3b8;--gold: #f0c75e;--blue: #6da8ff;--move: #6da8ff;--red: #ff8b73;--green: #78c58b;--purple: #c490ff;--orange: #ffb347;--cyan: #47d4d4;--pink: #ff85b3;--yellow: #f0e050;--stat-atk: #ff6b6b;--stat-def: #6bc5ff;--stat-spd: #ffd43b;--stat-rng: #a9e34b;--stat-mov: #cc5de8;--stat-cd: #ff922b;--stat-hp: #78c58b;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-body: "Segoe UI", system-ui, sans-serif;--font-display: Georgia, serif;--panel-left-w: clamp(140px, 14vw, 200px);--panel-right-w: clamp(160px, 16vw, 220px);--panel-gap: 10px;--themebar-h: 46px;--herobar-h: 44px;--top-overhead: calc(var(--themebar-h) + var(--herobar-h) + 48px);--side-overhead: calc(var(--panel-left-w) + var(--panel-right-w) + var(--panel-gap) * 2 + 40px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{overflow:auto;min-height:100%}.tao-app{width:100%;min-height:100vh;color:var(--text);background:linear-gradient(170deg,#091824 0%,var(--bg0) 55%);font-family:var(--font-body);font-size:14px;display:flex;flex-direction:column}.tao-themebar{flex-shrink:0;height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);background:#00000059;gap:12px}.tao-logo{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text);opacity:.7}.tao-theme-ctrl{display:flex;align-items:center;gap:8px}.tao-mute-btn{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:6px 8px;opacity:.75;border-radius:3px;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.tao-mute-btn:hover{opacity:1;background:#ffffff14}.tao-theme-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tao-build-hash{font-size:11px;font-family:monospace;color:var(--muted);opacity:0;cursor:default;transition:opacity .2s}.tao-theme-ctrl:hover .tao-build-hash{opacity:.6}.tao-build-hash.is-mismatch{color:var(--red);opacity:1;font-weight:600}.tao-theme-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#ffffff0d;color:var(--text);font:inherit;font-size:12px;padding:4px 8px;cursor:pointer}.tao-shell{flex:1;display:flex;flex-direction:column;min-height:0;position:relative}.tao-hero{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 140px 0 20px;min-height:44px;border-bottom:1px solid var(--line);background:#00000038;overflow:visible;flex-wrap:wrap}.tao-kicker{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap;flex-shrink:0}.tao-kicker:after{content:"›";margin-left:10px;opacity:.4}.tao-kicker.is-turn-p1{color:var(--blue);animation:tao-kicker-pulse 1.5s ease-out 1}.tao-kicker.is-turn-p2{color:var(--red);animation:tao-kicker-pulse 1.5s ease-out 1}.tao-kicker.is-turn-you{color:var(--green, #5adb6f);animation:tao-kicker-pulse 1.5s ease-out 1}.tao-kicker.is-turn-opp{color:var(--muted)}.tao-kicker.is-turn-local{animation:tao-kicker-pulse 1.5s ease-out 1}@keyframes tao-kicker-pulse{0%{opacity:.4;transform:scale(.96)}30%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.tao-matchup{font-size:14px;letter-spacing:.06em;white-space:nowrap;margin-bottom:4px;padding:4px 12px;background:#ffffff08;border-radius:6px;border:1px solid var(--line);display:inline-flex;align-items:center}.tao-matchup-vs{opacity:.5;margin:0 8px;font-size:11px;text-transform:uppercase}.tao-matchup-elo{opacity:.7;font-size:11px;margin-left:4px}.tao-matchup-player{font-weight:700}.tao-title{font-family:var(--font-display);font-size:14px;font-weight:700;line-height:1;color:var(--text);white-space:nowrap;margin:0}.tao-title br{display:none}.tao-shell-menu .tao-title br{display:block}.tao-subtitle{display:none}.tao-badges{display:flex;gap:6px;flex-wrap:wrap;overflow:visible;flex-shrink:1}.tao-badge{border:1px solid var(--line);border-radius:3px;padding:2px 7px;font-size:11px;color:var(--muted);background:#ffffff08;white-space:nowrap}.tao-badge.is-warning{border-color:var(--gold);color:var(--gold)}.tao-panel{flex:1;min-height:0;overflow:hidden;padding:clamp(12px,2vh,20px) clamp(16px,2vw,24px);display:flex;flex-direction:column}.tao-panel-scroll{overflow-y:auto;scrollbar-gutter:stable;scrollbar-width:thin}.tao-shell-menu{flex-direction:row}.tao-shell-menu .tao-hero{position:relative;flex:1;flex-direction:column;align-items:center;justify-content:center;height:auto;padding:0 clamp(24px,5vw,72px);border-bottom:none;border-right:1px solid var(--line);background:radial-gradient(ellipse at center,rgba(109,168,255,.06) 0%,transparent 70%);gap:0;overflow:visible;text-align:center}.tao-shell-menu .tao-kicker{font-size:13px;margin-bottom:18px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold)}.tao-shell-menu .tao-kicker:after{display:none}.tao-shell-menu .tao-title{font-size:clamp(64px,10vw,120px);line-height:.88;white-space:normal;letter-spacing:-.02em;color:var(--text);text-shadow:0 0 60px rgba(109,168,255,.2),0 2px 8px rgba(0,0,0,.5)}.tao-title-brand{font-family:"D2Coding",var(--font-display)}.tao-shell-menu .tao-subtitle{display:block;margin-top:24px;max-width:420px;color:var(--muted);font-size:clamp(13px,1.4vw,16px);line-height:1.6}.tao-shell-menu .tao-badges{display:flex;margin-top:28px;gap:8px;flex-wrap:wrap;overflow:visible;justify-content:center}.tao-shell-menu .tao-badge{border-radius:999px;padding:6px 14px;font-size:12px}.tao-hero-info-btns{display:flex;margin-top:28px;gap:10px;flex-wrap:wrap;justify-content:center}.tao-hero-info-btn{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:clamp(6px,1vh,10px) clamp(14px,2vw,24px);font-size:clamp(12px,1.2vw,14px);font-weight:500;cursor:pointer;letter-spacing:.3px;transition:background .15s,color .15s;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.tao-hero-info-btn:hover{background:#8080801a;color:var(--text)}.tao-hero-divider{border:none;border-top:1px solid rgba(255,255,255,.15);margin:18px auto 0;width:60%}.tao-menu-panels{display:flex;flex-direction:row;flex:0 0 clamp(260px,28vw,420px)}.tao-panel-menu{flex:0 0 clamp(260px,28vw,420px);overflow-y:auto;padding:0;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.tao-panel-menu h2{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);padding:10px 18px 4px;margin:0}.tao-menu-grid{display:grid;gap:0}.tao-mobile-info-row,.tao-hdr-auth-btn{display:none}.tao-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-bottom:1px solid var(--line);border-left:2px solid transparent;background:transparent;color:var(--text);padding:clamp(14px,2.2vh,28px) clamp(18px,2.5vw,36px);text-align:left;font:inherit;cursor:pointer;transition:background 90ms ease,border-color 90ms ease;width:100%;display:block}.tao-btn:hover{background:#ffffff0f;border-left-color:var(--blue)}.tao-btn:disabled{opacity:.48;cursor:default}.tao-btn[data-tone=green]{background:#78c58b2e;border-left:3px solid var(--green);color:var(--green)}.tao-btn[data-tone=green]:hover{background:#78c58b4d;border-left-color:var(--green)}.tao-btn[data-tone=green] .tao-btn-copy{color:#78c58bb3}.tao-btn[data-tone=red]{background:#ff8b7324;border-left:3px solid var(--red);color:var(--red)}.tao-btn[data-tone=red]:hover{background:#ff8b7342;border-left-color:var(--red)}.tao-btn[data-tone=red] .tao-btn-copy{color:#ff8b73b3}.tao-btn[data-tone=blue]{background:#6da8ff2e;border-left:3px solid var(--blue);color:var(--blue)}.tao-btn[data-tone=blue]:hover{background:#6da8ff4d;border-left-color:var(--blue)}.tao-btn[data-tone=blue] .tao-btn-copy{color:#6da8ffb3}.tao-btn[data-tone=gold]{background:#f0c75e24;border-left:3px solid rgba(240,199,94,.5);color:var(--gold)}.tao-btn[data-tone=gold]:hover{background:#f0c75e3d;border-left-color:var(--gold)}.tao-btn.is-ability-active{background:#f0c75e24;border-left-color:var(--gold);outline:1px solid rgba(240,199,94,.4)}.tao-btn.is-on-cooldown{opacity:.45;font-style:italic;position:relative}.tao-btn.is-on-cooldown[data-cooldown]:after{content:attr(data-cooldown);position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;font-size:10px;font-weight:800;font-style:normal;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000080;z-index:2}.tao-game-menu-btn{position:absolute;top:6px;right:14px;left:auto;z-index:20;font-size:12px;min-width:120px;width:auto;display:inline-block;text-align:center}.tao-btn-compact.tao-game-menu-btn{padding:6px 20px}.tao-confirm-team-btn{padding:12px 32px;font-size:16px;font-weight:700;width:auto;justify-self:start;letter-spacing:.5px;margin-bottom:8px;border-radius:4px}.tao-btn-title{display:block;font-size:clamp(11px,min(1.6vw,2vh),18px);font-weight:600}.tao-btn-copy{display:block;margin-top:clamp(1px,.3vh,3px);color:var(--muted);font-size:clamp(11px,min(1.2vw,1.5vh),14px)}.tao-form{display:grid;grid-template-columns:1fr 1fr;gap:clamp(4px,1vh,12px) clamp(8px,1.5vw,20px);max-width:100%;box-sizing:border-box;overflow:hidden;flex:1;min-height:0;align-content:start}.tao-form>.tao-actions,.tao-form>.tao-label-toggle,.tao-form>.tao-draft-options{grid-column:1 / -1}.tao-label{display:grid;gap:clamp(3px,.5vh,6px);color:var(--muted);font-size:clamp(10px,1.1vw,12px);letter-spacing:.04em;text-transform:uppercase;max-width:100%;min-width:0}.tao-label-hint{font-size:clamp(8px,min(.9vw,1.2vh),10px);letter-spacing:.02em;text-transform:none;opacity:.7}.tao-input,.tao-select{width:100%;max-width:100%;box-sizing:border-box;padding:clamp(3px,.7vh,10px) clamp(6px,.8vw,12px);background:#ffffff0a;border:1px solid var(--line);color:var(--text);font:inherit;font-size:clamp(11px,min(1.3vw,1.6vh),14px)}.tao-input:focus,.tao-select:focus{outline:1px solid rgba(109,168,255,.5)}.tao-select option{background:#1a2a3c;color:#e8eef5}.tao-select option:checked{background:#2a4060}.tao-app[data-theme=lichess] .tao-select option{background:#f4f1ea;color:#2b2622}.tao-preset-chips{display:flex;gap:4px;flex-wrap:wrap}.tao-chip{padding:clamp(1px,.4vh,3px) clamp(5px,.8vw,10px);border:1px solid var(--line);border-radius:3px;background:#ffffff0a;color:var(--muted);font:inherit;font-size:clamp(9px,min(1vw,1.3vh),11px);cursor:pointer}.tao-chip:hover{border-color:#6da8ff66;color:var(--blue)}.tao-chip.is-active{border-color:var(--blue);color:var(--blue);background:#6da8ff1f}.tao-actions{display:flex;gap:0;flex-shrink:0;margin-top:auto}.tao-actions .tao-btn{border:1px solid var(--line);border-left:2px solid transparent;padding:clamp(4px,.8vh,10px) clamp(8px,1vw,16px);flex:1}.tao-actions-toolbar{flex-wrap:wrap}.tao-actions-toolbar .tao-btn{flex:1 1 160px}.tao-note{color:var(--muted);font-size:12px;line-height:1.5}.tao-code-row{display:flex;align-items:center;gap:10px;margin-top:16px}.tao-lobby{display:flex;flex-direction:column;gap:clamp(8px,1vh,14px);flex:1;min-height:0}.tao-lobby-toolbar{display:grid;gap:clamp(4px,.8vh,10px);flex-shrink:0}.tao-sort-bar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:clamp(2px,.4vh,6px);flex-shrink:0}.tao-sort-label{font-size:clamp(8px,1vw,11px);color:var(--muted);margin-right:2px}.tao-lobby-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px;flex:1;min-height:0;align-content:start;overflow-y:auto}.tao-clear-team{background:none;border:none;color:var(--muted);font:inherit;font-size:11px;cursor:pointer;padding:0 4px}.tao-clear-team:hover{color:var(--red)}.tao-unit{position:relative;border:1px solid var(--line);background:#ffffff05;border-radius:6px;padding:10px 12px;cursor:pointer;text-align:left;font:inherit;color:var(--text);display:flex;flex-direction:row;align-items:flex-start;gap:12px;transition:background 90ms ease,border-color 90ms ease;overflow:hidden}.tao-unit .tao-unit-sprite{width:56px;height:56px;object-fit:contain;flex-shrink:0}.tao-unit-body{flex:1;min-width:0}.tao-unit-title-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:2px}.tao-unit:hover{background:#6da8ff14;border-color:#6da8ff59}.tao-unit.is-picked{border-color:#6da8ff8c;background:#6da8ff1a}.tao-unit.is-over-budget{opacity:.35;cursor:not-allowed}.tao-unit-pick-badge{position:absolute;top:6px;left:6px;background:var(--blue);color:#000;font-size:11px;font-weight:700;border-radius:4px;padding:2px 5px;line-height:1.3;z-index:1}.tao-unit h3{margin:0;font-size:.95rem;font-weight:600}.tao-unit p,.tao-unit-desc{margin:2px 0 0;font-size:.7rem;color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tao-unit-cost-badge{background:#f0c75e2e;color:var(--gold);font-size:.75rem;font-weight:800;padding:2px 7px;border-radius:4px;border:1px solid rgba(240,199,94,.35);line-height:1.3;flex-shrink:0}.tao-unit.is-over-budget .tao-unit-cost-badge{background:#ff505033;color:var(--red);border-color:#ff505066}.tao-unit-stat-grid{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:4px;font-size:.7rem;color:var(--muted)}.tao-unit-abilities{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.tao-unit-abilities span{font-size:.65rem;background:#d4a8431a;color:var(--gold);padding:1px 6px;border-radius:3px;border:1px solid rgba(212,168,67,.2)}.tao-unit-aura-tag{font-size:.65rem;color:#6f8;margin-top:3px}.tao-unit-role{display:inline-block;font-size:.6rem;font-weight:700;padding:1px 6px;border-radius:3px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:2px}.tao-unit-desc{color:var(--muted);font-size:clamp(7px,min(.8vw,1vh),9px);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin:0}.tao-unit-abilities{color:#f0c75eb3;font-size:clamp(7px,min(.8vw,1vh),9px);font-style:italic}.tao-unit-sprite{display:block;width:clamp(28px,min(5vw,8vh),72px);height:clamp(28px,min(5vw,8vh),72px);object-fit:contain}.tao-summary{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line);background:#ffffff05;font-size:13px}.tao-summary strong{color:var(--text)}.tao-inline{display:flex;gap:6px;flex-wrap:wrap}.tao-message-panel{min-height:16px;color:var(--gold);font-size:12px}.tao-panel-board{padding:clamp(8px,1vh,12px) clamp(10px,1vw,14px);overflow:hidden;background:#0000002e}.tao-board-layout{display:grid;grid-template-columns:clamp(160px,15vw,200px) minmax(0,1fr);gap:clamp(8px,1vw,12px);min-height:min(400px,calc(100dvh - var(--top-overhead)));max-height:calc(100dvh - var(--top-overhead))}.tao-roster{display:grid;gap:6px;align-content:start}.tao-roster-unit{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;border:1px solid var(--line);background:#ffffff05;color:var(--text);padding:6px 10px;font:inherit;font-size:12px;cursor:pointer;text-align:left;transition:background 90ms}.tao-roster-unit:hover{background:#ffffff0f}.tao-roster-unit.is-selected{border-color:#6da8ff8c;background:#6da8ff1a}.tao-roster-unit.is-empty{opacity:.38}.tao-roster-abbr{font-weight:700;font-size:11px;color:var(--blue);width:22px;text-align:center;flex-shrink:0;overflow:hidden}.tao-roster-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tao-roster-count{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.tao-setup-unit-info{border:1px solid rgba(240,199,94,.25);background:#f0c75e0a;padding:6px 8px;font-size:11px;margin:4px 0}.tao-setup-unit-name{font-weight:600;color:var(--gold);margin-bottom:2px}.tao-setup-unit-stats{color:var(--text);font-size:10px;font-variant-numeric:tabular-nums}.tao-setup-unit-desc{color:var(--muted);font-size:10px;font-style:italic;margin-top:3px}.tao-setup-unit-abilities{color:var(--gold);font-size:10px;margin-top:3px;opacity:.7}.tao-hex-sprite{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:.9;pointer-events:none;content-visibility:auto}.tao-hex.is-spent .tao-hex-sprite{opacity:.3;filter:grayscale(.65) brightness(.7)}.tao-hex.is-spent .tao-hex-label{opacity:.4}.tao-hex.is-spent{box-shadow:inset 0 0 0 100px #00000026}.tao-hex-coord{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:calc(var(--hex-size) * .13);color:#ffffff2e;pointer-events:none;-webkit-user-select:none;user-select:none}.tao-hex span{position:relative;z-index:1}.tao-game-layout{display:grid;grid-template-columns:var(--panel-left-w) minmax(0,1fr) var(--panel-right-w);gap:var(--panel-gap);min-height:0}.tao-multi-sidebar{display:flex;flex-direction:column;gap:4px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.tao-multi-sidebar-right{border-left:1px solid var(--line);padding-left:8px;display:flex;flex-direction:column;overflow-y:auto;min-height:0}.tao-multi-sidebar-right .tao-flank-panel{flex-shrink:1;min-height:0;overflow-y:auto}.tao-multi-sidebar-right .tao-btn-end-turn{flex-shrink:0;position:sticky;bottom:0;z-index:2}.tao-selected-card{display:flex;flex-direction:column;gap:clamp(2px,.5vh,6px);padding:clamp(3px,.6vh,8px);border:1px solid rgba(240,199,94,.35);border-radius:4px;background:#f0c75e0a}.tao-sel-name{font-size:clamp(9px,min(1.1vw,1.5vh),12px);font-weight:700;display:flex;align-items:center;gap:3px;flex-wrap:wrap;line-height:1.3}.tao-no-selection{padding:20px 8px;text-align:center;font-size:10px;color:var(--muted);font-style:italic}.tao-btn-end-turn{margin-top:auto;flex-shrink:0;font-size:clamp(10px,min(1.3vw,1.8vh),14px);font-weight:700;padding:clamp(4px,1vh,12px) clamp(6px,.8vw,10px);letter-spacing:.02em;border-radius:6px;text-align:center}.tao-btn-end-turn:not(:disabled){animation:tao-end-turn-glow 2s ease-in-out infinite}@keyframes tao-end-turn-glow{0%,to{box-shadow:0 0 6px #ff645040}50%{box-shadow:0 0 14px #ff645080}}.tao-btn-end-turn.is-faded{opacity:.35;pointer-events:none;animation:none}.tao-log-title{font-size:clamp(8px,min(.9vw,1.2vh),10px);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 clamp(1px,.3vh,4px)}.tao-log-entries{display:flex;flex-direction:column;gap:2px;padding:clamp(2px,.4vh,5px) clamp(3px,.4vw,6px);border:1px solid var(--line);background:#0003;font-size:clamp(9px,min(.8vw,1vh),11px);line-height:1.4;color:var(--muted);word-break:break-word;min-height:0;flex:1;overflow-y:auto;scrollbar-width:thin}.tao-log-entry{padding:1px 0}.tao-log-dmg{color:var(--red);font-weight:600}.tao-log-heal-amt,.tao-log-ability-name{color:var(--green);font-weight:600}.tao-log-attack{color:var(--red)}.tao-log-death{color:var(--red);font-weight:600}.tao-log-heal{color:var(--green)}.tao-log-ability{color:var(--gold, #c9a227)}.tao-log-guard{color:var(--blue, #5b8dd9)}.tao-log-move{color:var(--muted)}.tao-log-verb{color:#b8a0d8;font-weight:600}.tao-log-coord{color:#8ab4c8;font-style:italic}.tao-log-turn,.tao-log-start{color:var(--muted);font-style:italic}.tao-stat-atk{color:var(--stat-atk);font-weight:600}.tao-stat-def{color:var(--stat-def);font-weight:600}.tao-stat-rng{color:var(--stat-rng);font-weight:600}.tao-stat-mov{color:var(--stat-mov);font-weight:600}.tao-stat-cd{color:var(--stat-cd);font-weight:600}.tao-stat-hp{color:var(--stat-hp);font-weight:600}.tao-multi-sidebar .tao-flank-panel{border-left:2px solid transparent;padding-left:4px}.tao-multi-sidebar .tao-flank-panel.is-active{border-left-color:currentColor}.tao-multi-sidebar .tao-flank-panel.is-eliminated{opacity:.45}.tao-team-hp-bar[style*=--bar-color]{color:var(--bar-color, var(--blue))}.tao-board-col{display:flex;flex-direction:column;min-width:0}.tao-flank-panel{display:flex;flex-direction:column;gap:clamp(2px,.4vh,6px);overflow:hidden;background:#0000001f;border-radius:3px;padding:clamp(3px,.5vh,6px)}.tao-flank-header{font-size:clamp(11px,min(.9vw,1.2vh),13px);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:clamp(1px,.3vh,4px) 2px;border-bottom:1px solid var(--line)}.tao-flank-p1 .tao-flank-header{color:var(--blue);border-color:#6da8ff40}.tao-flank-p2 .tao-flank-header{color:var(--red);border-color:#ff8b7340}.tao-flank-p3 .tao-flank-header{color:var(--green);border-color:#78c58b40}.tao-flank-p4 .tao-flank-header{color:var(--purple);border-color:#c490ff40}.tao-flank-p5 .tao-flank-header{color:var(--orange);border-color:#ffb34740}.tao-flank-p6 .tao-flank-header{color:var(--cyan);border-color:#47d4d440}.tao-flank-p7 .tao-flank-header{color:var(--pink);border-color:#ff85b340}.tao-flank-p8 .tao-flank-header{color:var(--yellow);border-color:#f0e05040}.tao-flank-p1{background:#6da8ff14}.tao-flank-p2{background:#ff8b7314}.tao-flank-p3{background:#78c58b14}.tao-flank-p4{background:#c490ff14}.tao-flank-p5{background:#ffb34714}.tao-flank-p6{background:#47d4d414}.tao-flank-p7{background:#ff85b314}.tao-flank-p8{background:#f0e05014}.tao-player-name-link{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px;opacity:.9;transition:opacity .15s}.tao-player-name-link:hover{opacity:1;text-decoration:underline solid}.tao-player-name-link.is-sent{cursor:default;text-decoration:none;opacity:.6;font-style:italic}.tao-team-hp-bar{height:12px;background:#ffffff14;border-radius:3px;margin:2px 0 5px;position:relative;overflow:hidden}.tao-team-hp-text{position:relative;z-index:1;font-size:11px;font-weight:700;line-height:12px;display:block;text-align:center;color:#ffffffd9;text-shadow:0 1px 2px rgba(0,0,0,.8)}.tao-team-hp-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:100%;background:currentColor;opacity:.6;border-radius:2px;transform-origin:left;transform:scaleX(var(--team-hp, 1));transition:transform .4s ease}.tao-flank-p1 .tao-team-hp-bar{color:var(--blue)}.tao-flank-p2 .tao-team-hp-bar{color:var(--red)}.tao-flank-p3 .tao-team-hp-bar{color:var(--green)}.tao-flank-p4 .tao-team-hp-bar{color:var(--purple)}.tao-flank-p5 .tao-team-hp-bar{color:var(--orange)}.tao-flank-p6 .tao-team-hp-bar{color:var(--cyan)}.tao-flank-p7 .tao-team-hp-bar{color:var(--pink)}.tao-flank-p8 .tao-team-hp-bar{color:var(--yellow)}.tao-flank-units{display:flex;flex-direction:column;gap:clamp(1px,.3vh,4px);overflow-y:auto;max-height:clamp(120px,28vh,320px);scrollbar-width:thin}.tao-flank-unit{padding:clamp(2px,.4vh,5px) clamp(3px,.4vw,6px);border:1px solid var(--line);background:#ffffff05;border-radius:2px;cursor:pointer;transition:border-color .1s,background .1s}.tao-flank-unit:hover:not(.is-dead){border-color:#7ea8d252;background:#ffffff0d}.tao-flank-unit.is-dead{opacity:.28;padding:2px 6px}.tao-flank-unit.is-dead .tao-flank-name{text-decoration:line-through;font-size:11px}.tao-flank-unit.is-dead .tao-flank-hp-row{display:none}.tao-flank-unit.is-spent:not(.is-selected){opacity:.5}.tao-flank-unit.is-partial:not(.is-selected){opacity:.72}.tao-status-icons{display:inline-block;font-size:.85em;line-height:1;vertical-align:middle}.tao-spent-badge{font-size:clamp(6px,min(.7vw,.9vh),8px);font-weight:400;opacity:.65;letter-spacing:.04em;color:var(--muted)}.tao-spent-badge.is-partial{color:var(--gold);opacity:.6}.tao-you-badge{font-size:8px;font-weight:400;opacity:.7;letter-spacing:0}.tao-flank-count{float:right;font-size:clamp(7px,min(.8vw,1vh),9px);font-weight:400;opacity:.65}.tao-flank-unit.is-selected{border-color:#f0c75e73;background:#f0c75e0f}.tao-flank-unit.is-next-up{border-left:3px solid var(--gold);background:#f0c75e0a}.tao-flank-stats{display:flex;flex-wrap:wrap;gap:2px clamp(3px,.4vw,6px);margin-top:clamp(2px,.3vh,5px);font-size:clamp(11px,min(.9vw,1.2vh),13px);color:var(--muted)}.tao-flank-stats-hover{display:none}.tao-flank-unit:hover:not(.is-dead) .tao-flank-stats-hover{display:flex;flex-wrap:wrap;gap:2px clamp(3px,.4vw,6px);margin-top:clamp(2px,.3vh,5px);font-size:clamp(11px,min(.9vw,1.2vh),13px);color:var(--muted)}.tao-stat-badge{font-size:11px;font-weight:700;letter-spacing:.08em;background:#f0c75e2e;color:var(--gold);padding:1px 4px;border-radius:2px}.tao-flank-name{font-size:clamp(12px,min(1vw,1.3vh),14px);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tao-flank-hp-row{display:flex;align-items:center;gap:clamp(2px,.3vw,4px);margin-top:clamp(1px,.2vh,3px)}.tao-flank-bar{flex:1;height:clamp(7px,.8vh,10px);background:#ffffff1a;border-radius:2px;overflow:hidden;position:relative}.tao-flank-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:100%;background:var(--green);transform-origin:left;transform:scaleX(var(--hp-ratio));transition:transform .15s ease}.tao-flank-p1 .tao-flank-bar:after{background:var(--blue)}.tao-flank-p2 .tao-flank-bar:after{background:var(--red)}.tao-flank-p3 .tao-flank-bar:after{background:var(--green)}.tao-flank-p4 .tao-flank-bar:after{background:var(--purple)}.tao-flank-p5 .tao-flank-bar:after{background:var(--orange)}.tao-flank-p6 .tao-flank-bar:after{background:var(--cyan)}.tao-flank-p7 .tao-flank-bar:after{background:var(--pink)}.tao-flank-p8 .tao-flank-bar:after{background:var(--yellow)}.tao-flank-bar.is-hp-mid:after{background:var(--gold)}.tao-flank-bar.is-hp-low:after{background:#f44;opacity:1;animation:tao-hp-pulse 1.2s ease-in-out infinite}.tao-flank-hp-text{font-size:clamp(11px,min(.8vw,1vh),12px);color:var(--muted);white-space:nowrap;flex-shrink:0}.tao-flank-controls{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);padding-top:clamp(2px,.3vh,4px);margin-top:4px}.tao-ability-bar{display:flex;flex-direction:column;gap:clamp(2px,.4vh,4px);padding:clamp(2px,.5vh,6px) 0 clamp(3px,.6vh,8px);border-bottom:1px solid var(--line);margin-bottom:clamp(2px,.3vh,4px)}.tao-ability-bar-label{font-size:clamp(7px,min(.9vw,1.2vh),10px);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:1px}.tao-ability-btn{display:flex;flex-direction:column;gap:clamp(1px,.2vh,2px);padding:clamp(3px,.5vh,8px) clamp(4px,.5vw,10px);border:1px solid rgba(240,199,94,.35);border-radius:4px;background:#f0c75e14;color:var(--text);cursor:pointer;font:inherit;font-size:clamp(9px,min(1.1vw,1.4vh),12px);text-align:left;transition:background .12s,border-color .12s;position:relative}.tao-ability-btn:hover:not(:disabled){background:#f0c75e2e;border-color:#f0c75e8c}.tao-ability-btn:disabled{opacity:.4;cursor:default}.tao-ability-btn.is-ability-active{border-color:var(--gold);background:#f0c75e38;box-shadow:0 0 8px #f0c75e4d}.tao-ability-btn.is-on-cooldown{border-color:#ffffff1a;background:#ffffff05}.tao-ability-btn[data-cooldown]:after{content:attr(data-cooldown);position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000a6;color:#f84;font-size:1.4em;font-weight:800;border-radius:inherit;pointer-events:none}.tao-ability-name{font-weight:700;color:var(--gold);font-size:clamp(11px,min(1.2vw,1.5vh),13px)}.tao-ability-meta{font-size:clamp(11px,min(.9vw,1.1vh),12px);color:var(--muted)}.tao-ability-desc{font-size:clamp(11px,min(1vw,1.3vh),12px);color:var(--text);opacity:.75;line-height:1.3}.tao-ability-btn .tao-kbd{position:absolute;top:6px;right:6px}.tao-btn-compact{padding:7px 8px;font-size:12px;width:auto;display:inline-block}.tao-kbd{display:inline-block;padding:0 3px;border:1px solid rgba(255,255,255,.25);border-radius:3px;font-size:10px;font-family:monospace;opacity:.6;vertical-align:middle;line-height:1.4;margin-left:2px}.tao-btn-compact .tao-btn-copy{display:none}.tao-btn-medium{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px 20px;font-size:14px;font-family:inherit;border-radius:6px;width:auto;text-align:center;border:1px solid var(--line);background:#ffffff0a;color:var(--text);cursor:pointer;transition:background 90ms ease,border-color 90ms ease}.tao-btn-medium:hover{background:#ffffff14}.tao-btn-medium:disabled{opacity:.48;cursor:default}.tao-btn-medium[data-tone=red]{border-color:#ff8b7366;color:var(--red);background:#ff8b731a}.tao-btn-medium[data-tone=red]:hover{background:#ff8b7333}.tao-btn-medium[data-tone=green]{border-color:#78c58b66;color:var(--green);background:#78c58b1a}.tao-btn-medium[data-tone=green]:hover{background:#78c58b33}.tao-btn-medium[data-tone=blue]{border-color:#6da8ff66;color:var(--blue);background:#6da8ff1a}.tao-btn-medium[data-tone=blue]:hover{background:#6da8ff33}.tao-btn-medium[data-tone=gold]{border-color:#f0c75e66;color:var(--gold);background:#f0c75e1a}.tao-btn-medium[data-tone=gold]:hover{background:#f0c75e33}.tao-kbd-hint{font-size:9px;color:var(--muted);text-align:center;margin-top:4px;opacity:.6}.tao-speed-ctrl{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:4px}.tao-speed-label{font-size:10px;color:var(--muted);flex-shrink:0}.tao-move-tween{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:var(--hex-width);height:var(--hex-height);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);pointer-events:none;z-index:15;overflow:hidden}@keyframes tao-death-fade{0%{opacity:.85;transform:translate(-50%,-50%) scale(1)}40%{opacity:.6;transform:translate(-50%,-60%) scale(1.1)}to{opacity:0;transform:translate(-50%,-75%) scale(.7)}}.tao-death-fade{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:var(--hex-width);height:var(--hex-height);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);pointer-events:none;z-index:10;animation:tao-death-fade .7s ease-out forwards}.tao-death-fade.is-p1{background:#6da8ff8c}.tao-death-fade.is-p2{background:#ff8b738c}.tao-death-fade.is-p3{background:#44bb448c}.tao-death-fade.is-p4{background:#aa44ff8c}.tao-death-fade.is-p5{background:#ff88448c}.tao-death-fade.is-p6{background:#44dddd8c}.tao-death-fade.is-p7{background:#ff44aa8c}.tao-death-fade.is-p8{background:#dddd448c}.tao-death-particle{position:absolute;top:50%;left:50%;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.9;pointer-events:none;z-index:10;animation:deathParticle .6s ease-out forwards}@keyframes deathParticle{0%{transform:translate(-50%,-50%) translate(0);opacity:1}to{transform:translate(-50%,-50%) translate(var(--dx),var(--dy));opacity:0}}@keyframes tao-projectile{0%{transform:translate(-50%,-50%);opacity:1}80%{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size)));opacity:1}to{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size)));opacity:0}}.tao-projectile{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));pointer-events:none;z-index:18;font-size:18px;color:var(--red);text-shadow:0 0 6px rgba(255,80,50,.9);animation:tao-projectile .28s ease-in forwards;line-height:1}.tao-projectile.is-miss{color:var(--muted);text-shadow:none;font-size:12px}@keyframes tao-sniper-beam{0%{opacity:1}50%{opacity:.85}to{opacity:0}}@keyframes tao-bolt-fly{0%{transform:translate(-50%,-50%) rotate(var(--proj-angle));opacity:1}85%{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) rotate(var(--proj-angle));opacity:1}to{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) rotate(var(--proj-angle));opacity:0}}@keyframes tao-catapult-arc{0%{transform:translate(-50%,-50%) scale(1);opacity:1}45%{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size) * .5),calc(-50% + var(--proj-dy) * var(--hex-size) * .5 - 65px)) scale(1.35);opacity:1}90%{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) scale(1.6);opacity:0}}.tao-proj-catapult{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#a97,#543);box-shadow:0 2px 6px #000000b3;pointer-events:none;z-index:18;animation:tao-catapult-arc .56s ease-in-out forwards}.tao-proj-catapult.is-miss{opacity:.4}@keyframes tao-orb-fly{0%{transform:translate(-50%,-50%) scale(.7);opacity:.7}15%{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size) * .1),calc(-50% + var(--proj-dy) * var(--hex-size) * .1)) scale(1.1);opacity:1}85%{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) scale(1.9);opacity:0}}.tao-proj-orb{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:12px;height:12px;border-radius:50%;pointer-events:none;z-index:18;animation:tao-orb-fly .27s ease-out forwards}.tao-proj-orb.is-p1{background:radial-gradient(circle at 35% 35%,#abf,#35e);box-shadow:0 0 10px 4px #5082ffb3}.tao-proj-orb.is-p2{background:radial-gradient(circle at 35% 35%,#fac,#d38);box-shadow:0 0 10px 4px #f050a0b3}.tao-proj-orb.is-p3{background:radial-gradient(circle at 35% 35%,#8e8,#282);box-shadow:0 0 10px 4px #44bb44b3}.tao-proj-orb.is-p4{background:radial-gradient(circle at 35% 35%,#caf,#72c);box-shadow:0 0 10px 4px #aa44ffb3}.tao-proj-orb.is-p5{background:radial-gradient(circle at 35% 35%,#fc8,#c62);box-shadow:0 0 10px 4px #ff8844b3}.tao-proj-orb.is-p6{background:radial-gradient(circle at 35% 35%,#8ee,#288);box-shadow:0 0 10px 4px #44ddddb3}.tao-proj-orb.is-p7{background:radial-gradient(circle at 35% 35%,#fad,#c27);box-shadow:0 0 10px 4px #ff44aab3}.tao-proj-orb.is-p8{background:radial-gradient(circle at 35% 35%,#ee8,#992);box-shadow:0 0 10px 4px #dddd44b3}.tao-proj-orb.is-miss{opacity:.35}@keyframes tao-arrow-fly{0%{transform:translate(-50%,-50%) rotate(var(--proj-angle));opacity:1}85%{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) rotate(var(--proj-angle));opacity:1}to{transform:translate(calc(-50% + var(--proj-dx) * var(--hex-size)),calc(-50% + var(--proj-dy) * var(--hex-size))) rotate(var(--proj-angle));opacity:0}}.tao-proj-arrow{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:16px;height:8px;clip-path:polygon(0% 35%,62% 35%,62% 0%,100% 50%,62% 100%,62% 65%,0% 65%);background:#ca0;pointer-events:none;z-index:18;animation:tao-arrow-fly .21s ease-in forwards}.tao-proj-arrow.is-heal{background:#3b5}.tao-proj-arrow.is-miss{opacity:.35}@keyframes tao-melee-lunge{0%{transform:translate(-50%,-50%);opacity:.7}30%{transform:translate(calc(-50% + var(--wb-dx) * var(--hex-size)),calc(-50% + var(--wb-dy) * var(--hex-size)));opacity:.8}65%{transform:translate(calc(-50% + var(--lunge-dx) * var(--hex-size)),calc(-50% + var(--lunge-dy) * var(--hex-size)));opacity:.85}to{transform:translate(-50%,-50%);opacity:0}}.tao-proj-lunge{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:var(--hex-width);height:var(--hex-height);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);pointer-events:none;z-index:15;animation:tao-melee-lunge .215s ease-out forwards}.tao-proj-lunge.is-p1{background:#4682ff8c}.tao-proj-lunge.is-p2{background:#ff5a468c}.tao-proj-lunge.is-p3{background:#44bb448c}.tao-proj-lunge.is-p4{background:#aa44ff8c}.tao-proj-lunge.is-p5{background:#ff88448c}.tao-proj-lunge.is-p6{background:#44dddd8c}.tao-proj-lunge.is-p7{background:#ff44aa8c}.tao-proj-lunge.is-p8{background:#dddd448c}@keyframes tao-dmg-float{0%{opacity:1;transform:translate(-50%,calc(-50% - 40px))}to{opacity:0;transform:translate(-50%,calc(-50% - 90px))}}.tao-dmg-float{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));pointer-events:none;z-index:20;font-size:16px;font-weight:700;color:var(--red);text-shadow:0 1px 3px rgba(0,0,0,.8);animation:tao-dmg-float .6s ease-out forwards;white-space:nowrap}.tao-dmg-float.is-miss{color:var(--muted);font-size:12px}@keyframes tao-crit-float{0%{opacity:1;transform:translate(-50%,calc(-50% - 40px)) scale(1.3)}30%{transform:translate(-50%,calc(-50% - 55px)) scale(1.4)}to{opacity:0;transform:translate(-50%,calc(-50% - 100px)) scale(.9)}}.tao-dmg-float.is-crit{color:gold;font-size:20px;text-shadow:0 0 10px rgba(255,215,0,.8),0 2px 4px rgba(0,0,0,.9);animation:tao-crit-float .8s ease-out forwards}.tao-dmg-float.is-splash{color:#f94;text-shadow:0 0 6px rgba(255,153,68,.6),0 1px 3px rgba(0,0,0,.8)}.tao-dmg-float.is-guarded{color:#8ac;text-shadow:0 0 6px rgba(136,170,204,.5),0 1px 3px rgba(0,0,0,.8)}.tao-dmg-float.is-heal-float{color:var(--green);text-shadow:0 0 8px rgba(80,220,80,.8),0 0 16px rgba(80,220,80,.4)}@keyframes tao-heal-sparkle{0%{opacity:1;transform:translate(-50%,-50%) translate(var(--sx),var(--sy)) scale(1)}to{opacity:0;transform:translate(-50%,-50%) translate(var(--ex),var(--ey)) scale(0)}}.tao-heal-sparkle{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:4px;height:4px;border-radius:50%;background:#7cff7c;pointer-events:none;z-index:25;box-shadow:0 0 6px #7cff7c;animation:tao-heal-sparkle var(--dur, .5s) ease-out forwards}@keyframes tao-heal-pulse{0%{transform:translate(-50%,-50%) scale(.3);opacity:.6}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.tao-heal-pulse{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:calc(var(--hex-size) * .5);height:calc(var(--hex-size) * .5);border-radius:50%;border:2px solid rgba(120,255,120,.6);pointer-events:none;z-index:24;animation:tao-heal-pulse .5s ease-out forwards}.tao-dmg-float.is-guard-float{font-size:18px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}.tao-dmg-float.is-ability-float{color:var(--gold);font-size:12px;font-style:italic;text-shadow:0 0 8px rgba(240,199,94,.7),0 1px 3px rgba(0,0,0,.8)}@keyframes tao-ability-ring{0%{transform:translate(-50%,-50%) scale(.3);opacity:.7;border-width:3px}to{transform:translate(-50%,-50%) scale(3);opacity:0;border-width:1px}}.tao-ability-ring{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:calc(var(--hex-size) * .5);height:calc(var(--hex-size) * .5);border-radius:50%;border:3px solid var(--ability-color, rgba(240, 199, 94, .7));pointer-events:none;z-index:28;animation:tao-ability-ring .45s ease-out forwards}@keyframes tao-impact-ring{0%{transform:translate(-50%,-50%) scale(.2);opacity:.8}to{transform:translate(-50%,-50%) scale(3.4);opacity:0}}.tao-impact-ring{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:calc(var(--hex-size) * .55);height:calc(var(--hex-size) * .55);border-radius:50%;background:var(--impact-color, rgba(255, 255, 255, .75));pointer-events:none;z-index:30;animation:tao-impact-ring .22s ease-out forwards}@keyframes tao-impact-particle{0%{transform:translate(-50%,-50%) translate(0) scale(1);opacity:1}to{transform:translate(-50%,-50%) translate(var(--px),var(--py)) scale(0);opacity:0}}.tao-impact-particle{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:5px;height:5px;border-radius:50%;background:var(--impact-color, #fff);pointer-events:none;z-index:31;animation:tao-impact-particle var(--dur, .32s) ease-out forwards}@keyframes tao-explosion-ring{0%{transform:translate(-50%,-50%) scale(.3);opacity:.9;border-width:4px}60%{opacity:.6}to{transform:translate(-50%,-50%) scale(4);opacity:0;border-width:1px}}.tao-explosion-ring{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:calc(var(--hex-size) * .7);height:calc(var(--hex-size) * .7);border-radius:50%;border:3px solid #ff8800;box-shadow:0 0 8px 2px #ff880080;pointer-events:none;z-index:32;animation:tao-explosion-ring .34s ease-out forwards}@keyframes tao-explosion-spark{0%{transform:translate(-50%,-50%) translate(0) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) translate(var(--px),var(--py)) scale(0);opacity:0}}.tao-explosion-spark{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:6px;height:6px;border-radius:50%;background:#fc4;box-shadow:0 0 4px 2px #ffa01eb3;pointer-events:none;z-index:33;animation:tao-explosion-spark var(--dur, .42s) ease-out forwards}@keyframes tao-slash-arc{0%{transform:translate(-50%,-50%) scale(1);opacity:.85}to{transform:translate(-50%,-50%) scale(1.6);opacity:0}}.tao-slash-arc{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:22px;height:22px;pointer-events:none;z-index:28;animation:tao-slash-arc .175s ease-out forwards}.tao-slash-arc:before,.tao-slash-arc:after{content:"";position:absolute;top:50%;left:0;width:100%;height:3px;background:#ffffffd9;border-radius:1px;transform-origin:center}.tao-slash-arc:before{transform:translateY(-50%) rotate(45deg)}.tao-slash-arc:after{transform:translateY(-50%) rotate(-45deg)}@keyframes tao-aura-ring{0%{transform:translate(-50%,-50%) scale(1);opacity:.55}to{transform:translate(-50%,-50%) scale(3);opacity:0}}.tao-aura-ring{position:absolute;width:44px;height:44px;border-radius:50%;border:2.5px solid #ffdd44;background:transparent;top:50%;left:50%;pointer-events:none;z-index:20;animation:tao-aura-ring .7s ease-out forwards}@keyframes tao-hex-invalid{0%{box-shadow:inset 0 0 0 3px #f220}20%{box-shadow:inset 0 0 0 3px #ff2222d9}to{box-shadow:inset 0 0 0 3px #f220}}.tao-hex.is-invalid-flash{animation:tao-hex-invalid .3s ease-out forwards}@keyframes tao-shake{0%{transform:translate(0)}15%{transform:translate(calc(-1 * var(--shake-offset)),calc(.6 * var(--shake-offset)))}30%{transform:translate(var(--shake-offset),calc(-.4 * var(--shake-offset)))}45%{transform:translate(calc(-.8 * var(--shake-offset)),calc(.8 * var(--shake-offset)))}60%{transform:translate(calc(.8 * var(--shake-offset)),calc(-.6 * var(--shake-offset)))}75%{transform:translate(calc(-.5 * var(--shake-offset)),calc(.3 * var(--shake-offset)))}90%{transform:translate(calc(.3 * var(--shake-offset)),calc(-.2 * var(--shake-offset)))}to{transform:translate(0)}}.tao-hex-board.is-shaking{--shake-offset: 3px;--shake-duration: 85ms;animation:tao-shake var(--shake-duration) ease-out}.tao-ap-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;letter-spacing:.06em;padding:3px 8px;background:none;border:none;color:var(--muted)}.tao-ap-pips{display:inline-flex;gap:2px;align-items:center}.tao-ap-pip{width:8px;height:8px;border-radius:50%;background:#7ea8d21f;border:1px solid rgba(126,168,210,.25);transition:background .15s,border-color .15s}.tao-ap-pip.is-full{background:var(--gold);border-color:var(--gold)}.tao-ap-pips[data-ap="2"] .tao-ap-pip.is-full{background:#e8a838;border-color:#e8a838}.tao-ap-pips[data-ap="1"] .tao-ap-pip.is-full{background:var(--red);border-color:var(--red)}.tao-ap-pips[data-ap="0"]{opacity:.5}.tao-ap-label{font-variant-numeric:tabular-nums;color:var(--gold);font-size:1.15em;font-weight:800;letter-spacing:.03em}.tao-btn-forfeit{font-size:clamp(8px,min(.9vw,1.2vh),11px);margin-top:4px;opacity:.7}.tao-btn-forfeit:hover{opacity:1}@keyframes tao-spin{to{transform:rotate(360deg)}}.tao-spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:tao-spin .65s linear infinite;vertical-align:middle;margin-left:6px;flex-shrink:0}.tao-spinner-row{display:flex;align-items:center;gap:8px}@keyframes tao-pulse{0%,to{opacity:1}50%{opacity:.4}}.tao-flank-p1{border-left:2px solid transparent}.tao-flank-p2{border-right:2px solid transparent}.tao-flank-p1.is-active{border-left-color:var(--blue)}.tao-flank-p2.is-active{border-right-color:var(--red)}.tao-flank-panel.is-thinking{animation:none}.tao-thinking-dots:after{content:"…";animation:tao-pulse 1.1s ease-in-out infinite}button.tao-spd-unit{cursor:pointer}button.tao-spd-unit:hover{outline:1px solid rgba(255,255,255,.3)}.tao-game-sidebar{display:flex;flex-direction:column;gap:clamp(3px,.6vh,8px);overflow:hidden}.tao-game-sidebar .tao-actions{flex-direction:column;gap:0}.tao-game-sidebar .tao-actions .tao-btn{flex:none;padding:clamp(3px,.6vh,9px) clamp(6px,.8vw,12px)}.tao-message{min-height:18px;color:var(--gold);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tao-code{display:inline-block;margin-top:18px;padding:10px 14px;border:1px solid rgba(240,199,94,.28);background:#f0c75e14;color:var(--gold);font-size:34px;font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em}.tao-board{display:grid;grid-template-rows:repeat(9,1fr);gap:4px;padding:12px;border:1px solid var(--line);background:#ffffff08;height:100%;overflow:auto}.tao-hex-board{--top-overhead: 144px;--hex-size: min( calc((100vw - var(--side-overhead)) / var(--board-width, 19.918)), calc((100vh - var(--top-overhead)) / var(--board-height, 14)) );--hex-width: calc(var(--hex-size) * 1.732);--hex-height: calc(var(--hex-size) * 2);display:block;overflow:hidden}.tao-hex-board-inner{position:relative;width:calc(var(--hex-size) * var(--board-width));height:calc(var(--hex-size) * var(--board-height));margin:0 auto}.tao-hex{--hex-stroke: var(--line);--hex-stroke-opacity: .5;position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));width:var(--hex-width);height:var(--hex-height);border:none;color:var(--text);background:#ffffff08;font:inherit;cursor:pointer;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:8px;transform:translate(-50%,-50%);transition:background .12s,border-color .12s,transform .1s}.tao-hex-outline{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.tao-hex-outline polygon{fill:none;stroke:var(--hex-stroke, var(--line));stroke-opacity:var(--hex-stroke-opacity, 1);stroke-width:1.6;vector-effect:non-scaling-stroke}.tao-hex:is(.is-hover-move,.is-hover-attack,.is-hover-heal,.is-hover-enemy,.is-aoe-preview,.is-pierce-preview,.is-ability-hover,.is-valid-placement,.is-occupied,.is-selected,.is-move,.is-rotate,.is-heal,.is-attack,.is-ability-target,.is-p1,.is-p2,.is-neutral){--hex-stroke-opacity: 1}.tao-hex:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.07);z-index:2}.tao-hex.is-attack:hover{transform:translate(-50%,-50%)}.tao-hex.is-hover-move{--hex-stroke: var(--hover-border, rgba(109, 168, 255, .22));background:var(--hover-bg, rgba(109, 168, 255, .1));border-color:var(--hover-border, rgba(109, 168, 255, .22))}.tao-hex.is-hover-attack{--hex-stroke: var(--hover-border, rgba(255, 100, 80, .25));background:var(--hover-bg, rgba(255, 100, 80, .1));border-color:var(--hover-border, rgba(255, 100, 80, .25))}.tao-hex.is-hover-heal{--hex-stroke: var(--hover-border, rgba(120, 197, 139, .25));background:var(--hover-bg, rgba(120, 197, 139, .1));border-color:var(--hover-border, rgba(120, 197, 139, .25))}.tao-hex.is-hover-enemy{--hex-stroke: var(--hover-border, rgba(255, 120, 80, .35));background:var(--hover-bg, rgba(255, 120, 80, .18));border-color:var(--hover-border, rgba(255, 120, 80, .35))}.tao-hex.is-aoe-preview{--hex-stroke: rgba(255, 160, 60, .35);background:#ffa03c26;border-color:#ffa03c59}.tao-hex.is-pierce-preview{--hex-stroke: rgba(68, 204, 255, .35);background:#44ccff26;border-color:#44ccff59}.tao-hex.is-ability-hover{--hex-stroke: rgba(240, 199, 94, .28);background:#f0c75e1a;border-color:#f0c75e47}.tao-hex.is-valid-placement{--hex-stroke: rgba(120, 200, 140, .45);border-color:#78c88c73}.tao-hex.is-valid-placement:hover{--hex-stroke: rgba(120, 200, 140, .7);background:#78c88c33;border-color:#78c88cb3;cursor:crosshair}.tao-hex.is-flank-hover{outline:2px solid rgba(255,255,255,.55);outline-offset:-2px;z-index:1}.tao-hex.is-blocked{opacity:.28;cursor:not-allowed}.tao-hex.is-blocked:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,rgba(255,80,60,.25) 0px,rgba(255,80,60,.25) 3px,transparent 3px,transparent 8px);border:2px dashed rgba(255,80,60,.45);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);pointer-events:none;z-index:1}.tao-hex.is-occupied{--hex-stroke: rgba(240, 199, 94, .4);border-color:#f0c75e66}.tao-hex.is-occupied:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--unit-border-img) center / 100% 100% no-repeat;pointer-events:none}.tao-hex.is-selected{--hex-stroke: rgba(109, 168, 255, .8);border-color:#6da8ffcc;box-shadow:inset 0 0 0 1px #6da8ff73;animation:tao-hex-selected 1.6s ease-in-out infinite}.tao-hex.is-selected:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:3px solid var(--gold, #d4a843);animation:selectPulse 1.2s ease-in-out infinite;pointer-events:none;z-index:1}@keyframes tao-hex-selected{0%,to{box-shadow:inset 0 0 0 1px #6da8ff73}50%{box-shadow:inset 0 0 0 2px #6da8ffbf,0 0 8px #6da8ff4d}}@keyframes selectPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.tao-hex.is-player1{color:var(--blue)}.tao-hex.is-player2{color:var(--red)}.tao-hex.is-player3{color:var(--green)}.tao-hex.is-player4{color:var(--purple)}.tao-hex.is-player5{color:var(--orange)}.tao-hex.is-player6{color:var(--cyan)}.tao-hex.is-player7{color:var(--pink)}.tao-hex.is-player8{color:var(--yellow)}.tao-hex.is-move{--hex-stroke: rgba(109, 168, 255, .7);background:#6da8ff1a!important;box-shadow:inset 0 0 0 3px #6da8ffa6;border-color:#6da8ffb3}.tao-hex.is-rotate{--hex-stroke: rgba(80, 220, 220, .45);background:#50dcdc2e!important;border-color:#50dcdc73}.tao-hex.is-heal{--hex-stroke: rgba(120, 197, 139, .5);background:#78c58b3d!important;box-shadow:inset 0 0 0 2px #78c58b80}.tao-hex.is-attack{--hex-stroke: rgba(255, 139, 115, .5);background:#ff8b7342!important;box-shadow:inset 0 0 0 2px #ff8b7380}.tao-hex.is-ability-target{--hex-stroke: rgba(240, 199, 94, .5);background:#f0c75e3d!important;box-shadow:inset 0 0 0 2px #f0c75e80}.tao-hex.is-move:before,.tao-hex.is-attack:before,.tao-hex.is-heal:before,.tao-hex.is-ability-target:before,.tao-hex.is-rotate:before{opacity:.35}.tao-hex.is-forest{background:#4e8c5a47}.tao-hex.is-forest:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon points='12,3 20,17 4,17' fill='%2356a056' opacity='0.55'/%3E%3Crect x='10.5' y='17' width='3' height='4' fill='%23734d26' opacity='0.55'/%3E%3C/svg%3E") center / 55% 55% no-repeat;pointer-events:none;z-index:0}.tao-hex.is-mountain{background:#826e5a59}.tao-hex.is-mountain:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon points='12,4 22,20 2,20' fill='%238a7a6a' opacity='0.6'/%3E%3Cpolygon points='12,4 17,14 7,14' fill='%23b8a898' opacity='0.5'/%3E%3C/svg%3E") center / 65% 65% no-repeat;pointer-events:none;z-index:0}.tao-hex.is-hill{background:#b4a06438}.tao-hex.is-hill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='15' rx='9' ry='5' fill='%23b8a870' opacity='0.45'/%3E%3Cellipse cx='12' cy='13' rx='6' ry='3.5' fill='%23c8b880' opacity='0.4'/%3E%3C/svg%3E") center / 55% 55% no-repeat;pointer-events:none;z-index:0}.tao-hex.is-water{background:#3c82be4d}.tao-hex.is-water:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4,14 Q8,10 12,14 Q16,18 20,14' fill='none' stroke='%234a9fd4' stroke-width='1.5' opacity='0.5'/%3E%3Cpath d='M4,17 Q8,13 12,17 Q16,21 20,17' fill='none' stroke='%234a9fd4' stroke-width='1.2' opacity='0.35'/%3E%3C/svg%3E") center / 65% 65% no-repeat;pointer-events:none;z-index:0}.tao-hex.is-atk-p1{background-color:#6da8ff1f}.tao-hex.is-atk-p2{background-color:#ff8b731f}.tao-hex.is-atk-p1.is-atk-p2{background-color:#be82c824}.tao-hex.is-threatened{background-color:#ff3c3c24;box-shadow:inset 0 0 0 2px #ff3c3c59;animation:threatPulse 2s ease-in-out infinite}@keyframes threatPulse{0%,to{opacity:.7}50%{opacity:1}}.tao-threat-toggle.is-active{background:#ff3c3c33!important;border-color:#ff3c3c80!important}.tao-hex.is-p1{--hex-stroke: rgba(109, 168, 255, .5);border-color:#6da8ff80;background-color:#6da8ff26}.tao-hex.is-p2{--hex-stroke: rgba(255, 139, 115, .5);border-color:#ff8b7380;background-color:#ff8b7326}.tao-hex.is-neutral{--hex-stroke: rgba(200, 200, 200, .18);border-color:#c8c8c82e;background-color:#00000014}[data-setup-player="1"] .tao-badge-zone-self{border-color:#6da8ff99;color:var(--blue)}[data-setup-player="1"] .tao-badge-zone-opp{border-color:#ff8b7366;color:var(--red);opacity:.7}[data-setup-player="2"] .tao-badge-zone-self{border-color:#ff8b7399;color:var(--red)}[data-setup-player="2"] .tao-badge-zone-opp{border-color:#6da8ff66;color:var(--blue);opacity:.7}.tao-badge-zone-neutral{opacity:.6}.tao-hex-label{position:absolute;top:16%;left:0;right:0;text-align:center;font-size:max(6px,calc(var(--hex-size) * .18));font-weight:700;line-height:1;z-index:3;pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.95),0 0 10px rgba(0,0,0,.8);color:inherit;letter-spacing:.5px}.tao-buff-badge{position:absolute;top:14%;right:14%;font-size:calc(var(--hex-size) * .22);font-weight:900;line-height:1;color:var(--gold);z-index:4;pointer-events:none;text-shadow:0 0 4px rgba(0,0,0,.9)}.tao-guard-badge{position:absolute;top:14%;left:14%;font-size:calc(var(--hex-size) * .18);line-height:1;z-index:4;pointer-events:none;filter:drop-shadow(0 0 3px rgba(0,0,0,.9))}.tao-hex.is-stunned .tao-hex-sprite{filter:grayscale(.4) sepia(.3);opacity:.75}.tao-hex.is-stunned:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#f0c75e14;pointer-events:none;z-index:1}.tao-stun-badge{position:absolute;bottom:32%;left:14%;font-size:calc(var(--hex-size) * .18);line-height:1;z-index:4;pointer-events:none;filter:drop-shadow(0 0 3px rgba(0,0,0,.9))}.tao-taunt-badge{position:absolute;bottom:32%;right:14%;font-size:calc(var(--hex-size) * .18);line-height:1;z-index:4;pointer-events:none;filter:drop-shadow(0 0 3px rgba(0,0,0,.9))}.tao-slow-badge{position:absolute;bottom:14%;right:14%;font-size:calc(var(--hex-size) * .17);line-height:1;z-index:4;pointer-events:none;filter:drop-shadow(0 0 3px rgba(0,0,0,.9))}.tao-hp-bar{position:absolute;bottom:23%;left:14%;right:14%;height:3px;background:#0000008c;z-index:2;pointer-events:none}.tao-hp-bar:after{content:"";position:absolute;top:0;left:0;bottom:0;width:100%;background:var(--green);transform-origin:left;transform:scaleX(var(--hp-ratio));transition:transform .15s ease,background-color .3s ease}.tao-hp-bar.is-hp-mid:after{background:var(--gold)}.tao-hp-bar.is-hp-low:after{background:var(--red);animation:tao-hp-pulse 1.2s ease-in-out infinite}@keyframes tao-hp-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes tao-log-new{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.tao-log-section{border-top:1px solid var(--line);padding-top:clamp(2px,.4vh,6px);display:flex;flex-direction:column;gap:0;min-height:0;flex:1;overflow:hidden}.tao-log-nav{display:flex;align-items:center;gap:clamp(2px,.4vw,6px);margin-bottom:clamp(1px,.3vh,4px);flex-shrink:0;flex-wrap:nowrap}.tao-log-page{white-space:nowrap}.tao-log{padding:5px 6px;border:1px solid var(--line);background:#0003;font-size:9px;line-height:1.45;color:var(--muted);display:flex;flex-direction:column;gap:2px;max-height:140px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;word-break:break-word}.tao-log-empty{font-style:italic;opacity:.5}.tao-log>div:first-child{animation:tao-log-new .35s ease-out}.tao-log .is-death{color:var(--red);font-weight:600}.tao-log .is-attack{color:var(--red)}.tao-log .is-miss{color:#b47864bf}.tao-log .is-heal{color:var(--green)}.tao-log .is-guard{color:#b4b4dccc}.tao-log .is-ability{color:var(--gold)}.tao-log .is-move-log{color:#b4c8f08c}.tao-log .is-turn{color:#ffffff59;font-style:italic}@media (max-width: 960px){.tao-game-layout{grid-template-columns:120px minmax(0,1fr) 150px;gap:6px}}.tao-shell-winner{align-items:center;justify-content:center}.tao-winner-overlay{text-align:center;padding:32px 40px;border:1px solid var(--line);background:#00000080;max-width:680px;width:100%}.tao-winner-kicker{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.tao-winner-title{font-family:var(--font-display);font-size:48px;font-weight:700;color:var(--gold);margin:0 0 12px;line-height:1.1}.tao-winner-title.is-loser{color:var(--muted);font-size:40px}.tao-winner-title.is-p1-winner{color:var(--blue)}.tao-winner-title.is-p2-winner{color:var(--red)}.tao-postgame-stats-row{display:flex;justify-content:center;gap:24px;margin-bottom:16px;font-size:13px;color:var(--muted);letter-spacing:.04em}.tao-winner-log{max-width:400px;margin:12px auto 16px;text-align:left;padding:8px 14px;background:#0000004d;border-radius:6px;border:1px solid rgba(255,255,255,.06);font-size:11px;display:flex;flex-direction:column;gap:2px}.tao-winner-log .is-death{color:var(--red);font-weight:600}.tao-winner-log .is-attack{color:var(--red)}.tao-winner-log .is-miss{color:#b47864bf}.tao-winner-log .is-heal{color:var(--green)}.tao-winner-log .is-guard{color:#b4b4dccc}.tao-winner-log .is-ability{color:var(--gold)}.tao-winner-log .is-move-log{color:#b4c8f08c}.tao-winner-log .is-turn{color:#ffffff4d;font-style:italic}.tao-winner-log div{color:var(--muted)}.tao-winner-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px;width:100%}.tao-winner-actions .tao-btn{padding:10px 16px;font-size:.85rem}.tao-pass-privacy{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f7;display:flex;align-items:center;justify-content:center;z-index:1000;animation:passPrivacyFadeIn .3s ease}@keyframes passPrivacyFadeIn{0%{opacity:0}to{opacity:1}}.tao-pass-privacy-inner{text-align:center;max-width:420px;padding:40px}.tao-pass-privacy-icon{font-size:64px;margin-bottom:16px;animation:passIconPulse 2s ease-in-out infinite}@keyframes passIconPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}.tao-pass-privacy-title{font-family:var(--font-display);font-size:32px;margin:0 0 12px}.tao-pass-privacy-msg{font-size:18px;color:#e0e0e0;margin:0 0 6px}.tao-pass-privacy-hint{font-size:13px;color:var(--muted);margin:0 0 28px;font-style:italic}.tao-pass-details{animation:passDetailsReveal .25s ease}@keyframes passDetailsReveal{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.tao-pass-summary{margin:16px 0 0;font-size:12px;color:var(--muted)}.tao-pass-label{margin-bottom:6px;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.tao-pass-units{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.tao-pass-unit{font-size:13px;font-weight:500}.tao-pass-unit small{font-weight:400;opacity:.7}.tao-winner-actions .tao-btn{min-width:0}.tao-app[data-theme=lichess]{--bg0: #f4f1ea;--bg1: #ece7dd;--bg2: #ddd5c8;--surface: rgba(244, 241, 234, .98);--panel: rgba(255, 255, 255, .9);--line: rgba(66, 58, 48, .18);--text: #1a1614;--muted: #524a42;--gold: #9a7530;--blue: #3a5f95;--red: #974a3d;--green: #5a7e4d;--stat-atk: #b85550;--stat-def: #4a6fa5;--stat-spd: #9a8f00;--stat-rng: #5a7a4a;--stat-mov: #7a4a90;--stat-cd: #c06020;--stat-hp: #5a7a4a;--font-body: "Noto Sans", "Segoe UI", sans-serif;--font-display: Georgia, serif;background:linear-gradient(170deg,#ddd5c8,#f4f1ea 55%)}.tao-app[data-theme=lichess] .tao-themebar{background:#ffffffb3}.tao-app[data-theme=lichess] .tao-hero{background:var(--bg0)}.tao-app[data-theme=lichess] .tao-btn,.tao-app[data-theme=lichess] .tao-unit,.tao-app[data-theme=lichess] .tao-roster-unit,.tao-app[data-theme=lichess] .tao-summary,.tao-app[data-theme=lichess] .tao-log,.tao-app[data-theme=lichess] .tao-board,.tao-app[data-theme=lichess] .tao-hex{border-radius:4px}.tao-app[data-theme=lichess] .tao-btn:hover{background:#0000000f}.tao-app[data-theme=lichess] .tao-btn[data-tone]{color:var(--text)}.tao-app[data-theme=lichess] .tao-btn[data-tone] .tao-btn-copy{color:var(--muted)}.tao-app[data-theme=lichess] .tao-btn-medium[data-tone]{color:var(--text)}.tao-app[data-theme=lichess] .tao-log .is-miss{color:#8b4513}.tao-app[data-theme=lichess] .tao-log .is-guard{color:#1e3a8a}.tao-app[data-theme=lichess] .tao-log .is-move-log{color:#28469699}.tao-app[data-theme=lichess] .tao-log .is-turn,.tao-app[data-theme=lichess] .tao-winner-log .is-turn{color:#0000004d;font-style:italic}.tao-app[data-theme=lichess] .tao-log{background:#ffffff80}.tao-app[data-theme=lichess] .tao-winner-overlay{background:#ffffffeb}.tao-app[data-theme=lichess] .tao-team-card{background:#0000000a;border-color:#0000001a}.tao-app[data-theme=lichess] .tao-team-card.is-winner{border-color:var(--gold)}.tao-app[data-theme=lichess] .tao-postgame-unit{background:#00000008}.tao-app[data-theme=lichess] .tao-postgame-unit-hp{background:#00000014}.tao-app[data-theme=lichess] .tao-postgame-unit-hp span{color:#000000b3}.tao-app[data-theme=lichess] .tao-unit{background:#00000008;border-color:#0000001a}.tao-app[data-theme=lichess] .tao-unit.is-picked{background:#4a6fa51a;border-color:var(--blue)}.tao-app[data-theme=lichess] .tao-ap-badge{color:#0000008c}.tao-app[data-theme=lichess] .tao-panel-board{background:transparent}.tao-app[data-theme=lichess] .tao-flank-panel,.tao-app[data-theme=lichess] .tao-log-entries{background:#0000000a}@media (max-width: 900px){:root{--panel-left-w: clamp(90px, 12vw, 130px);--panel-right-w: clamp(110px, 14vw, 160px);--panel-gap: 6px}}@media (max-width: 680px){:root{--panel-left-w: clamp(70px, 11vw, 100px);--panel-right-w: clamp(80px, 12vw, 110px);--panel-gap: 4px;--themebar-h: 36px;--herobar-h: 36px}.tao-shell-menu{flex-direction:column}.tao-shell-menu .tao-hero-menu{display:none}.tao-menu-panels{flex-direction:column}.tao-panel-menu{justify-content:flex-start;flex:0 0 auto;max-height:none;overflow-y:visible;padding:0 8px;overflow-x:hidden;max-width:100vw}.tao-hdr-auth-btn{display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;padding:2px 10px;border:1px solid var(--blue, #5ba3cf);border-radius:4px;background:transparent;color:var(--blue, #5ba3cf);cursor:pointer;font-weight:600;min-height:44px!important;min-width:44px!important}.tao-mobile-info-row{display:flex;justify-content:center;gap:8px;padding:10px 0 4px}.tao-mobile-info-row .tao-hero-info-btn{font-size:11px;padding:4px 0;background:transparent;color:var(--muted);border:none;font-weight:500;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px;min-height:44px!important;min-width:44px!important;display:inline-flex;align-items:center;justify-content:center}.tao-panel-menu h2{display:none}.tao-menu-grid{grid-template-columns:1fr;gap:0;padding:0}.tao-panel-menu .tao-menu-grid .tao-btn,.tao-panel-menu .tao-menu-grid .tao-btn[data-tone],.tao-panel-menu .tao-btn-watch{padding:14px 16px;min-height:44px;border:none;border-left:none;border-bottom:1px solid var(--line);border-radius:0;text-align:left;background:transparent}.tao-panel-menu .tao-menu-grid .tao-btn:last-child{border-bottom:none}.tao-panel-menu .tao-btn-watch{border-bottom:none}.tao-panel-menu .tao-btn-title{font-size:14px;font-weight:600}.tao-panel-menu .tao-btn-copy{display:block;font-size:11px;color:var(--muted);margin-top:2px}.tao-units-reference{grid-template-columns:1fr}.tao-friends-sidebar{position:fixed;top:0;right:0;bottom:0;width:280px;min-width:280px;max-width:80vw;z-index:150;box-shadow:-4px 0 20px #00000080}.tao-hero{padding:6px 100px 6px 10px;min-height:36px;gap:6px}.tao-game-menu-btn{min-width:80px;font-size:10px;right:6px;padding:4px 10px}.tao-hero .tao-title{font-size:clamp(12px,2.5vw,18px)}.tao-shell-menu .tao-hero .tao-title{font-size:1.5rem}.tao-kicker{font-size:12px}.tao-badge{font-size:10px;padding:2px 6px}.tao-ap-badge{font-size:12px;padding:3px 8px}.tao-themebar{padding:4px 6px;gap:6px;height:36px;overflow:hidden}.tao-themebar .tao-logo{font-size:12px;letter-spacing:.08em}.tao-theme-label{display:none}.tao-setup-card{padding:clamp(6px,1.5vh,16px) clamp(8px,1.5vw,20px)}.tao-setup-card-title{font-size:clamp(14px,4vw,22px)}.tao-form{grid-template-columns:1fr}.tao-lobby-grid{grid-template-columns:1fr;gap:4px}.tao-unit{min-height:52px}.tao-unit .tao-unit-sprite{width:40px;height:40px}.tao-unit h3{font-size:.85rem}.tao-unit-desc{display:none}.tao-unit-stat-grid{font-size:.65rem}.tao-game-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;min-height:unset;max-height:none;gap:4px;flex:1;overflow-y:auto}.tao-multi-sidebar{max-height:clamp(60px,12vh,100px);flex-direction:column;gap:2px;overflow-y:auto;overflow-x:hidden}.tao-multi-sidebar-left{order:1}.tao-board-col{order:2;flex:1;min-height:0}.tao-multi-sidebar-right{order:3;border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:4px;flex-direction:row;flex-wrap:wrap;gap:4px;align-items:center;max-height:none}.tao-multi-sidebar-right .tao-log-section,.tao-multi-sidebar-right .tao-flank-panel,.tao-multi-sidebar-right .tao-speed-ctrl{display:none}.tao-multi-sidebar-right .tao-btn-end-turn{flex:1 1 auto;min-width:0}.tao-multi-sidebar-right .tao-btn-forfeit{flex:0 0 auto;min-height:28px;padding:4px 8px}.tao-multi-sidebar-right .tao-threat-toggle,.tao-multi-sidebar-right .tao-btn-compact{flex:0 0 auto;font-size:10px;padding:4px 8px;min-height:28px}.tao-hex-board{--side-overhead: 24px;--top-overhead: calc(var(--themebar-h) + var(--herobar-h) + 16px);overflow-x:hidden}.tao-board-layout{grid-template-columns:1fr;min-height:unset;max-height:none;flex:1}.tao-game-sidebar .tao-actions{flex-direction:row;flex-wrap:wrap;gap:4px}.tao-game-sidebar .tao-actions .tao-btn{flex:1 1 auto;width:auto;padding:6px 8px;min-width:0}.tao-game-sidebar .tao-actions .tao-btn-copy,.tao-game-sidebar .tao-kbd-hint{display:none}.tao-board-layout{grid-template-rows:auto 1fr}.tao-btn-end-turn{font-size:12px;padding:8px 6px}.tao-selected-card{padding:4px 6px;gap:3px}.tao-sel-name{font-size:10px}.tao-flank-stats{font-size:11px}.tao-ability-btn{padding:4px 6px}.tao-ability-name,.tao-ability-meta,.tao-ability-desc{font-size:11px}.tao-log-entries{font-size:8px;min-height:30px;padding:3px 4px}.tao-log-title{font-size:8px}.tao-log-nav{gap:2px}.tao-log-nav .tao-btn-compact{font-size:9px;padding:2px 4px}.tao-unit-tooltip{width:220px;padding:8px 10px;font-size:11px}.tao-tooltip-sprite{width:32px;height:32px}.tao-tooltip-desc{display:none}.tao-tooltip-section{font-size:10px}.tao-flank-panel{max-height:120px;overflow-y:auto}.tao-flank-unit{padding:2px 4px;gap:4px}.tao-shell-menu .tao-hero-info-btns .tao-btn,.tao-shell-menu .tao-hero-info-btn{min-height:44px}.tao-mute-btn{min-height:44px;min-width:44px}.tao-shell-menu .tao-auth-bar .tao-auth-btn,.tao-shell-menu .tao-auth-bar .tao-auth-user-btn{min-height:44px}.tao-chip{min-height:36px;min-width:36px;display:inline-flex;align-items:center;justify-content:center;padding:6px 10px}.tao-sort-bar .tao-chip{min-height:32px;padding:4px 10px}.tao-multi-sidebar-right .tao-btn-compact,.tao-multi-sidebar-right .tao-threat-toggle,.tao-multi-sidebar-right .tao-btn-forfeit{min-height:36px}.tao-multi-sidebar-right .tao-btn-end-turn{min-height:40px}.tao-btn-compact.tao-game-menu-btn{min-height:32px}.tao-chat-toggle{top:auto;min-height:44px}.tao-game-sidebar .tao-actions .tao-btn{min-height:44px;padding:8px 10px}.tao-roster-unit{min-height:40px;padding:8px 10px}.tao-setup-card .tao-actions{position:sticky;bottom:0;z-index:2;background:var(--panel, #0d1b2a);padding-top:8px}}.tao-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e0;display:flex;align-items:center;justify-content:center;z-index:1000}.tao-modal[hidden]{display:none}.tao-modal-box{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:28px 32px;max-width:560px;width:calc(100vw - 40px);max-height:calc(100vh - 60px);overflow-y:auto;position:relative}.tao-modal-box h2{margin:0 0 18px;font-size:22px;color:var(--text)}.tao-modal-box h3{margin:16px 0 6px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}.tao-modal-box p,.tao-modal-box li{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 4px}.tao-modal-box ul{padding-left:18px;margin:0}.tao-modal-box strong{color:var(--text)}.tao-modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;line-height:1;padding:4px 6px}.tao-modal-close:hover{color:var(--text)}.tao-setup-card{width:100%;box-sizing:border-box;padding:clamp(8px,2vh,32px) clamp(12px,2vw,36px);border:1px solid var(--line);background:#ffffff06;border-radius:4px;overflow:hidden auto;flex:1;min-height:0;display:flex;flex-direction:column}.tao-setup-card-title{font-family:var(--font-display);font-size:clamp(16px,2.5vw,28px);font-weight:700;color:var(--text);margin:0 0 clamp(2px,.4vh,4px)}.tao-setup-card-subtitle{font-size:clamp(10px,1.2vw,13px);color:var(--muted);margin:0 0 clamp(8px,2vh,24px);line-height:1.5}.tao-setup-mode-pill{display:inline-block;padding:clamp(1px,.3vh,3px) clamp(5px,.8vw,10px);border:1px solid rgba(109,168,255,.4);background:#6da8ff1a;color:var(--blue);font-size:clamp(9px,min(1vw,1.2vh),11px);border-radius:999px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:clamp(4px,1.5vh,20px)}.tao-setup-divider{border:none;border-top:1px solid var(--line);margin:clamp(6px,1.5vh,20px) 0}.tao-budget-warn-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:200;display:flex;align-items:center;justify-content:center}.tao-budget-warn-box{background:var(--bg1);border:1px solid var(--gold);padding:28px 32px;max-width:400px;width:90%}.tao-budget-warn-box h3{font-size:16px;color:var(--gold);margin:0 0 10px}.tao-budget-warn-box p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 20px}.tao-budget-warn-actions{display:flex;gap:8px}.tao-budget-warn-actions .tao-btn{flex:1;border:1px solid var(--line);border-left:2px solid transparent}.tao-wasm-status{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;padding:6px 18px 10px;opacity:.7}.tao-wasm-status.is-ready{color:var(--green);opacity:1}.tao-wasm-status.is-error{color:var(--red);opacity:1}.tao-wasm-dot{width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0}.tao-wasm-status.is-ready .tao-wasm-dot{background:var(--green)}.tao-wasm-status.is-error .tao-wasm-dot{background:var(--red)}.tao-wasm-status.is-loading .tao-wasm-dot{background:var(--gold);animation:tao-pulse 1s ease-in-out infinite}.tao-team-preview{border:1px solid rgba(109,168,255,.25);background:#6da8ff0a;padding:10px 14px;margin-bottom:8px;animation:tao-slide-in .3s ease-out}.tao-team-preview-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.tao-team-preview-units{display:flex;gap:8px;flex-wrap:wrap}.tao-team-preview-unit{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--blue);border:1px solid rgba(109,168,255,.2);padding:2px 8px;border-radius:3px;background:#6da8ff0f}@keyframes tao-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.tao-draft-rosters{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.tao-draft-roster-row{padding:6px 10px;border-left:3px solid var(--blue);background:#ffffff08;border-radius:2px;font-size:12px;line-height:1.4;transition:background .15s}.tao-draft-roster-row.is-current{background:#ffffff14;outline:1px solid rgba(255,255,255,.15)}.tao-draft-roster-row.is-passed{opacity:.5}.tao-draft-pass-badge{font-size:9px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.5px}.tao-draft-budget{float:right;font-size:11px;opacity:.6}.tao-draft-roster-units{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.tao-draft-unit-chip{display:inline-flex;align-items:center;padding:1px 6px;background:#ffffff0f;border-radius:3px;font-size:10px}.tao-draft-actions{margin-bottom:8px}.tao-label-toggle{display:flex;align-items:center;gap:clamp(4px,.8vw,10px);cursor:pointer}.tao-label-toggle input[type=checkbox]{width:clamp(14px,2vh,18px);height:clamp(14px,2vh,18px);accent-color:var(--gold);cursor:pointer}.tao-label-toggle .tao-label-hint{display:block;font-size:clamp(9px,min(1vw,1.2vh),11px);color:var(--muted);margin-left:auto}.tao-shell-info{flex-direction:column}.tao-shell-info .tao-hero{flex-direction:row;align-items:center}.tao-shell-info .tao-panel{flex:1;overflow-y:auto}.tao-units-reference{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;padding:8px 0}.tao-unit-ref-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px}.tao-unit-ref-header{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}.tao-unit-ref-header .tao-unit-sprite{width:48px;height:48px;object-fit:contain;flex-shrink:0}.tao-unit-ref-header h3{margin:0;font-size:15px}.tao-unit-ref-cost{font-size:12px;color:var(--gold);font-weight:400}.tao-unit-ref-desc{font-size:12px;color:var(--muted);margin:4px 0 0;line-height:1.4}.tao-unit-ref-stats{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;font-variant-numeric:tabular-nums;padding:6px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:6px 0}.tao-unit-ref-stats>span{color:var(--muted)}.tao-unit-ref-specials{margin-bottom:6px}.tao-unit-ref-special{font-size:11px;color:var(--gold);padding:2px 0}.tao-unit-ref-ability{font-size:12px;padding:4px 0;border-top:1px solid var(--line);line-height:1.4}.tao-unit-ref-ability strong{color:var(--blue)}.tao-unit-ref-ability-meta{font-size:10px;color:var(--muted)}.tao-turn-timer{display:flex;align-items:center;gap:6px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text);padding:4px 10px;border:1px solid var(--line);background:#ffffff08;border-radius:3px;min-width:64px;justify-content:center}.tao-turn-timer.is-warning{color:var(--gold);border-color:#f0c75e66}.tao-turn-timer.is-critical{color:#f44;border-color:#ff444480;animation:timerPulse .8s ease-in-out infinite;font-weight:800;font-size:1.3em}@keyframes timerPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.8}}.tao-compare-tooltip{position:absolute;z-index:100;background:var(--bg1);border:1px solid var(--line);padding:10px 14px;font-size:11px;pointer-events:none;min-width:200px;max-width:260px;box-shadow:0 4px 16px #0006}.tao-compare-row{display:flex;justify-content:space-between;gap:8px;padding:2px 0;border-bottom:1px solid var(--line)}.tao-compare-row:last-child{border-bottom:none}.tao-compare-stat{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.tao-compare-val{font-variant-numeric:tabular-nums}.tao-compare-val.is-higher{color:var(--green)}.tao-compare-val.is-lower{color:var(--red)}.tao-compare-title{font-size:11px;font-weight:700;color:var(--text);margin-bottom:6px;display:flex;justify-content:space-between}.tao-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--bg2);border:1px solid var(--line);color:var(--text);font-size:13px;padding:10px 20px;z-index:300;pointer-events:none;animation:tao-toast-in .2s ease-out,tao-toast-out .3s ease-in 1.8s forwards}@keyframes tao-toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes tao-toast-out{to{opacity:0;transform:translate(-50%) translateY(8px)}}.tao-unit:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.tao-unit.is-kb-focused{outline:2px solid var(--gold);outline-offset:2px;background:#f0c75e0f}.tao-badge-timer{color:#fa4;border-color:#ffaa444d}.tao-mode-explain{font-size:11px;color:var(--muted);margin-top:6px;padding:6px 10px;border-left:2px solid rgba(240,199,94,.3);background:#f0c75e0a;line-height:1.5}.tao-game-row.is-mine{border-left:3px solid #6da8ff;background:#6da8ff0f}.tao-friends-sidebar{display:none;flex-direction:column;width:320px;min-width:320px;max-width:320px;border-left:1px solid var(--line);background:#0a1624f2;overflow:hidden}.tao-shell-menu.friends-open .tao-friends-sidebar{display:flex}.tao-shell-menu.friends-open .tao-hero-menu{flex:1;min-width:0}.tao-friends-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.tao-friends-sidebar-header h2{margin:0;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.tao-friends-sidebar-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.tao-friends-sidebar-close:hover{color:var(--text);background:#8080801f}.tao-friends-sidebar-search{padding:10px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.tao-friends-sidebar-search .tao-input{width:100%;font-size:.82rem}.tao-friends-sidebar .tao-friends-list{flex:1;overflow-y:auto;padding:8px 16px}.tao-friends-sidebar .tao-friend-search-results{max-height:140px;overflow-y:auto;margin-top:6px}.tao-friends-chat-area:empty{display:none}.tao-inline-chat{border-top:1px solid var(--line);display:flex;flex-direction:column;max-height:280px}.tao-inline-chat-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-weight:600;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.tao-inline-chat-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:2px 6px;line-height:1}.tao-inline-chat-close:hover{color:var(--text)}.tao-inline-chat-messages{flex:1;overflow-y:auto;padding:8px 16px;min-height:80px;max-height:160px;display:flex;flex-direction:column;gap:4px}.tao-inline-chat-input-row{display:flex;gap:6px;padding:8px 16px;flex-shrink:0}.tao-inline-chat-input{flex:1;font-size:.82rem}.tao-dm-msg{font-size:.82rem;padding:4px 8px;border-radius:6px;max-width:85%;word-wrap:break-word}.tao-dm-mine{align-self:flex-end;background:#6da8ff33;color:var(--text)}.tao-dm-theirs{align-self:flex-start;background:#ffffff14;color:var(--text)}.tao-auth-btn.active[data-action=toggle-friends]{background:#6da8ff4d;box-shadow:0 0 0 1px #6da8ff80}.tao-browser-sidebar .tao-friends-sidebar{display:flex;width:auto;min-width:0;max-width:none;border-left:none;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.tao-browser-sidebar .tao-friends-sidebar-header{background:#ffffff08}.tao-browser-sidebar .tao-friends-sidebar-close{display:none}.tao-friend-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06)}.tao-friend-row:last-child{border-bottom:none}.tao-friend-main{display:flex;flex:1 1 140px;min-width:0;flex-direction:column;gap:2px}.tao-friend-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}.tao-friend-row.is-pending .tao-friend-actions{margin-left:0}.tao-friend-search-results{max-height:120px;overflow-y:auto}.tao-friend-search-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.04)}.tao-friend-search-row:last-child{border-bottom:none}.tao-friend-dot{width:8px;height:8px;border-radius:50%;background:#555;flex-shrink:0}.tao-friend-dot.is-online{background:#4caf50;box-shadow:0 0 4px #4caf50}.tao-friend-name{font-weight:600;font-size:.85rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tao-friend-meta{color:var(--muted);font-size:.72rem;line-height:1.2}.tao-friend-chat-panel{position:fixed;bottom:16px;right:16px;width:320px;max-height:400px;background:var(--surface, rgba(10, 22, 36, .97));border:1px solid var(--line, rgba(255,255,255,.1));border-radius:10px;display:flex;flex-direction:column;z-index:200;animation:tooltipFadeIn .15s ease-out;box-shadow:0 4px 24px #0006}.tao-friend-chat-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08);font-weight:700;font-size:.9rem}.tao-friend-chat-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:2px 6px}.tao-friend-chat-close:hover{color:var(--text)}.tao-friend-chat-messages{flex:1;overflow-y:auto;padding:8px 12px;min-height:150px;max-height:260px;display:flex;flex-direction:column;gap:4px}.tao-dm-msg{padding:4px 8px;border-radius:8px;font-size:.82rem;max-width:85%;word-wrap:break-word}.tao-dm-mine{background:#6da8ff26;align-self:flex-end;color:#9cc5ff}.tao-dm-theirs{background:#8080801a;align-self:flex-start;color:var(--muted)}.tao-friend-chat-input-row{display:flex;gap:4px;padding:8px;border-top:1px solid rgba(255,255,255,.08)}.tao-friend-chat-input{flex:1;font-size:.82rem}.tao-damage-preview{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#0a1624f2;border:1px solid rgba(255,100,80,.4);border-radius:6px;padding:2px 8px;font-size:.75rem;font-weight:700;white-space:nowrap;pointer-events:none;z-index:90;animation:tooltipFadeIn .12s ease-out;line-height:1.4}.tao-damage-preview .tao-dmg-value{color:#ff6b5a}.tao-damage-preview .tao-dmg-result{color:#aab;font-weight:400}.tao-damage-preview .tao-dmg-fatal{color:#f33;text-transform:uppercase;letter-spacing:.05em}.tao-damage-preview.is-fatal{border-color:#ff323299;background:#280a0af2}.tao-unit-tooltip{background:var(--surface, rgba(10, 22, 36, .97));border:1px solid var(--line);border-radius:8px;padding:16px 18px;width:300px;color:var(--text);font-family:var(--font-body, "Segoe UI", system-ui, sans-serif);font-size:13px;box-shadow:0 8px 32px #00000080;animation:tooltipFadeIn .15s ease-out;pointer-events:none}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tao-unit-tooltip.is-targeting-mode{opacity:.7;width:240px;padding:10px 12px;font-size:11px}.tao-tooltip-header{display:flex;align-items:center;gap:10px;padding-bottom:8px;margin-bottom:8px;border-bottom:2px solid}.tao-tooltip-sprite{width:48px;height:48px;image-rendering:pixelated;border-radius:4px;background:#ffffff0d}.tao-tooltip-name{font-weight:700;font-size:16px}.tao-tooltip-owner{font-size:11px;text-transform:uppercase;letter-spacing:.08em}.tao-tooltip-cost{font-size:11px;color:var(--gold)}.tao-tooltip-shape{font-size:10px;color:var(--muted);background:#ffffff0f;border:1px solid var(--line);border-radius:3px;padding:1px 4px;margin-left:4px;font-weight:400;vertical-align:middle}.tao-tooltip-desc{font-size:11px;line-height:1.4;color:var(--text);opacity:.75;margin-bottom:8px;border-bottom:1px solid var(--line);padding-bottom:6px}.tao-tooltip-location{display:flex;gap:8px;font-size:10px;color:var(--muted);margin-bottom:8px}.tao-tooltip-aura{font-size:12px;line-height:1.4;margin-bottom:4px}.tao-tooltip-aura strong{color:var(--green)}.tao-tooltip-hp{margin-bottom:8px;font-size:12px;color:var(--muted)}.tao-tooltip-hp-bar{height:5px;background:#ffffff14;border-radius:3px;overflow:hidden;margin-top:3px}.tao-tooltip-hp-fill{height:100%;width:100%;background:var(--green);border-radius:3px;transform-origin:left;transform:scaleX(var(--hp-ratio, 1));transition:transform .2s}.tao-tooltip-hp-fill.is-mid{background:var(--gold)}.tao-tooltip-hp-fill.is-low{background:var(--red)}.tao-tooltip-stats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.tao-tooltip-stats span{padding:2px 6px;border:1px solid var(--line);border-radius:3px;font-size:11px;color:var(--muted);background:#ffffff05;white-space:nowrap}.tao-tooltip-threat{font-size:11px;color:var(--red);background:#ff505014;border:1px solid rgba(255,80,80,.2);border-radius:3px;padding:3px 6px;margin-bottom:8px}.tao-stat-threat{font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:10px}.tao-tooltip-statuses{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.tao-tooltip-status{padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gold);background:#f0c75e1f;border:1px solid rgba(240,199,94,.25)}.tao-tooltip-section{border-top:1px solid var(--line);padding-top:6px}.tao-tooltip-section-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:4px}.tao-tooltip-ability{margin-bottom:6px;font-size:12px;line-height:1.4}.tao-tooltip-ability strong{color:var(--gold)}.tao-tooltip-ability-desc{color:var(--text);opacity:.75;font-size:11px}.tao-tooltip-ability-meta{color:var(--muted);font-size:10px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.tao-btn:focus-visible,.tao-hex:focus-visible,button:focus-visible{outline:2px solid #4488ff;outline-offset:2px}.tao-btn:active{transform:scale(.97)}.tao-auth-bar{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 18px;flex-wrap:wrap;width:100%}.tao-shell-menu .tao-auth-bar{margin-bottom:12px;padding:0;gap:10px}.tao-auth-btn{padding:6px 14px;font-size:.8rem;font-weight:600;border-radius:5px;cursor:pointer;border:1px solid transparent;letter-spacing:.04em;transition:background .15s,transform .1s,box-shadow .15s;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.tao-auth-btn[data-tone=blue]{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 2px 10px #6da8ff4d}.tao-auth-btn[data-tone=red]{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 2px 10px #ff8b734d}.tao-auth-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #6da8ff66}.tao-auth-btn:active{transform:scale(.97)}.tao-auth-user-btn{padding:6px 14px;font-size:.8rem;font-weight:600;border-radius:5px;cursor:pointer;border:1px solid var(--blue);background:#6da8ff1a;color:var(--blue);letter-spacing:.04em;transition:background .15s,transform .1s;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.tao-auth-user-btn:hover{background:var(--blue);color:#fff}.tao-guest-label{font-size:.8rem;color:var(--muted);margin-right:4px;font-style:italic}.tao-auth-btn[data-action=toggle-friends].active{background:var(--blue);color:#fff}.tao-shell-login{display:flex;align-items:center;justify-content:center;min-height:100dvh}.tao-login-panel{background:var(--bg1);border:1px solid var(--border);border-radius:8px;padding:24px 32px;width:clamp(300px,90vw,400px)}.tao-login-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid var(--border)}.tao-login-tab{flex:1;padding:8px 0;text-align:center;cursor:pointer;font-size:.95rem;font-weight:500;background:transparent;border:none;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px}.tao-login-tab.is-active{color:var(--text);border-bottom-color:var(--blue)}.tao-login-form{display:flex;flex-direction:column;gap:10px}.tao-login-form[hidden]{display:none}.tao-login-form .tao-input{padding:8px 10px;font-size:.9rem;border-radius:4px;border:1px solid var(--border);background:var(--bg0);color:var(--text)}.tao-login-error{color:var(--red);font-size:.8rem;min-height:1em}.tao-login-success{color:var(--green);font-size:.85rem}.tao-form-hint{font-size:.8rem;color:var(--muted);margin:0}.tao-forgot-btn{font-size:.8rem!important}.tao-shell-profile{display:flex;align-items:center;justify-content:flex-start;padding:48px 12px;min-height:100dvh}.tao-profile-panel{background:var(--bg1);border:1px solid var(--border);border-radius:8px;padding:28px 32px;width:clamp(340px,90vw,700px);max-height:90dvh;overflow-y:auto;text-align:center}.tao-profile-panel h2{font-size:1.6rem;font-weight:700;margin-bottom:4px}.tao-profile-panel h3{text-align:center;margin-top:20px}.tao-profile-back{margin-bottom:16px}.tao-profile-rank{font-size:.85rem;color:var(--gold);font-weight:600;margin-bottom:12px}.tao-profile-stats{display:flex;flex-wrap:wrap;gap:12px;margin:16px auto;justify-content:center;max-width:520px}.tao-stat-card{flex:1 0 90px;max-width:130px;background:var(--bg0);border:1px solid var(--border);border-radius:8px;padding:14px 10px;text-align:center}.tao-stat-value{font-size:1.5rem;font-weight:700;color:var(--text)}.tao-stat-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;margin-top:4px;letter-spacing:.04em}.tao-history-list{margin-top:12px}.tao-history-table{width:100%;border-collapse:collapse;font-size:.85rem}.tao-history-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);color:var(--muted);font-size:.75rem;text-transform:uppercase}.tao-history-table td{padding:6px 8px;border-bottom:1px solid var(--bg0)}.tao-result-win{color:var(--green);font-weight:600}.tao-result-loss{color:var(--red);font-weight:600}.tao-history-pager{margin-top:10px;display:flex;gap:8px}.tao-empty,.tao-loading,.tao-error{color:var(--muted);font-size:.85rem;text-align:center;padding:16px 0}.tao-shell-leaderboard{display:flex;align-items:center;justify-content:flex-start;padding:48px 12px;min-height:100dvh}.tao-lb-panel{background:var(--bg1);border:1px solid var(--border);border-radius:8px;padding:28px 32px;width:clamp(340px,90vw,650px);max-height:90dvh;overflow-y:auto;text-align:center}.tao-lb-panel h2{font-size:1.6rem;font-weight:700;margin-bottom:16px}.tao-lb-panel .tao-lb-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid var(--line);justify-content:center}.tao-lb-tab{padding:8px 20px;cursor:pointer;font-size:.9rem;font-weight:500;background:transparent;border:none;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px}.tao-lb-tab.is-active{color:var(--text);border-bottom-color:var(--blue)}.tao-lb-back{margin-bottom:16px}.tao-lb-table{width:100%;border-collapse:collapse;font-size:.85rem}.tao-lb-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);color:var(--muted);font-size:.75rem;text-transform:uppercase}.tao-lb-table td{padding:6px 8px;border-bottom:1px solid var(--bg0)}.tao-lb-highlight{background:#4466aa26}.tao-lb-highlight td{font-weight:600}.tao-elo-split{display:flex;gap:12px;margin:16px auto;justify-content:center;max-width:400px}.tao-elo-card{flex:1;background:var(--bg0);border:1px solid var(--line);border-radius:8px;padding:12px 10px;text-align:center}.tao-elo-card-title{font-size:.7rem;text-transform:uppercase;color:var(--muted);letter-spacing:.05em;margin-bottom:4px}.tao-elo-card-value{font-size:1.3rem;font-weight:700}.tao-elo-card-sub{font-size:.75rem;color:var(--muted);margin-top:2px}.tao-streak-bar{display:flex;gap:20px;justify-content:center;margin:12px 0;font-size:.85rem;color:var(--muted)}.tao-streak-item strong{color:var(--gold);font-size:1rem}.tao-elo-graph{margin:8px 0 16px}.tao-elo-svg{width:100%;max-width:580px;height:auto}.tao-badge-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:8px 0 16px}.tao-badge-item{display:flex;flex-direction:column;align-items:center;gap:2px;width:72px;padding:8px 4px;border-radius:6px;background:var(--bg0);border:1px solid var(--line);opacity:.35;filter:grayscale(1);transition:opacity .2s,filter .2s}.tao-badge-item.is-earned{opacity:1;filter:none;border-color:var(--gold)}.tao-badge-icon{font-size:1.4rem}.tao-badge-name{font-size:.6rem;text-align:center;color:var(--muted);line-height:1.1}.tao-badge-item.is-earned .tao-badge-name{color:var(--text)}.tao-heatmap-grid{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;max-width:520px;margin:8px auto 16px}.tao-heatmap-cell{width:10px;height:10px;border-radius:2px}.tao-unit-bars{margin:8px auto 16px;max-width:480px;text-align:left}.tao-unit-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tao-unit-bar-name{width:80px;font-size:.8rem;color:var(--text);text-align:right;flex-shrink:0}.tao-unit-bar-track{flex:1;height:12px;background:var(--bg0);border-radius:6px;overflow:hidden}.tao-unit-bar-fill{height:100%;background:var(--blue);border-radius:6px;min-width:4px}.tao-unit-bar-stat{width:90px;font-size:.7rem;color:var(--muted);flex-shrink:0}.tao-roster-count{font-variant-numeric:tabular-nums;opacity:.6}.tao-roster-unit{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:4px;position:relative}.tao-roster-unit.is-dead{opacity:.35}.tao-roster-name{font-size:.7rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tao-postgame-badges{display:flex;gap:8px;justify-content:center;margin:12px 0;flex-wrap:wrap}.tao-postgame-badge{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;background:#f0c75e26;border:1px solid var(--gold);font-size:.8rem;color:var(--gold)}.tao-postgame-players{display:flex;gap:12px;width:100%;max-width:680px;margin:8px 0}.tao-team-card{flex:1 1 0;min-width:0;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px 14px;text-align:left}.tao-team-card.is-winner{border-color:#d4a84338}.tao-team-card.is-mvp .tao-team-card-header{color:var(--gold)}.tao-team-card-header{display:flex;justify-content:space-between;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.06)}.tao-team-card-count{opacity:.6;font-variant-numeric:tabular-nums}.tao-team-card-units{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}.tao-team-card-unit{display:flex;align-items:center;gap:5px;font-size:.7rem;position:relative;padding-bottom:3px}.tao-team-card-unit.is-dead{opacity:.3}.tao-team-card-unit.is-dead .tao-team-card-hp{color:var(--red);font-weight:600}.tao-postgame-unit{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:6px;background:#ffffff05}.tao-postgame-unit.is-dead{opacity:.35}.tao-postgame-unit-sprite{width:48px;height:48px;object-fit:contain;flex-shrink:0}.tao-postgame-unit-info{flex:1;min-width:0;text-align:left}.tao-postgame-unit-name{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tao-postgame-unit-status.is-dead{font-size:.7rem;color:var(--red);font-weight:600;letter-spacing:.08em}.tao-postgame-unit-hp{position:relative;height:14px;background:#ffffff0f;border-radius:3px;margin-top:3px;overflow:hidden}.tao-postgame-unit-hp span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600;font-variant-numeric:tabular-nums;color:#ffffffd9;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.5)}.tao-postgame-unit-hp-fill{height:100%;background:#5adb6f;border-radius:3px;transition:width .3s}.tao-postgame-unit-stats{font-size:.7rem;color:var(--muted);margin-top:2px}.tao-postgame-unit.is-mvp{background:#d4a84314;border:1px solid rgba(212,168,67,.2);border-radius:4px}.tao-mvp-badge{font-size:.55rem;font-weight:700;color:var(--gold);background:#d4a84326;padding:1px 5px;border-radius:3px;letter-spacing:.08em;vertical-align:middle;margin-left:4px}.tao-turn-banner{position:absolute;top:4px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;background:#0c1018e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ffffffeb;padding:6px 20px;border-radius:4px;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;z-index:40;pointer-events:none;animation:turnBannerSlide 2s ease-out forwards;border:1px solid rgba(255,255,255,.08)}.tao-turn-banner-pip{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}@keyframes turnBannerSlide{0%{opacity:0;transform:translate(-50%) translateY(-12px)}12%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1}to{opacity:0}}.tao-combat-forecast{position:absolute;left:calc(var(--hex-cx) * var(--hex-size));top:calc(var(--hex-cy) * var(--hex-size));transform:translate(-50%,calc(-100% - 12px));background:#14141ef2;border:1px solid rgba(255,139,115,.5);border-radius:6px;padding:6px 10px;pointer-events:none;z-index:35;font-size:10px;white-space:nowrap;color:var(--fg);box-shadow:0 4px 16px #0009;animation:tao-forecast-in .12s ease-out}@keyframes tao-forecast-in{0%{opacity:0;transform:translate(-50%,calc(-100% - 6px))}to{opacity:1;transform:translate(-50%,calc(-100% - 12px))}}.tao-combat-forecast .tao-cf-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.tao-combat-forecast .tao-cf-dmg{font-size:16px;font-weight:800;color:var(--red)}.tao-combat-forecast .tao-cf-kill{color:#f44;font-weight:800;font-size:11px}.tao-combat-forecast .tao-cf-mods{color:var(--muted);font-size:9px;margin-top:2px}.tao-hex.is-attack.is-kill:after{content:"💀";position:absolute;top:2px;right:2px;font-size:.7em;filter:drop-shadow(0 1px 2px rgba(0,0,0,.8));pointer-events:none}.tao-log-turn-sep{text-align:center;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#c8c8dc66;padding:4px 0 2px;margin:2px 0;border-top:1px solid rgba(200,200,220,.1)}.tao-log-elimination{color:var(--red);font-weight:600;text-align:center;padding:4px 0}.tao-winner-log{max-height:300px;overflow-y:auto;background:#0003;border-radius:8px;padding:12px 16px;margin-top:16px;font-size:11px}.tao-winner-log .tao-log-entry{padding:2px 0}.tao-replay-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#050c14;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.tao-replay-overlay-inner{width:100%;height:calc(100vh - 40px);max-height:calc(100vh - 40px);display:flex;flex-direction:column;align-items:center;gap:8px;overflow:hidden}.tao-replay-header{display:flex;align-items:center;justify-content:space-between;width:100%}.tao-replay-header h2{color:var(--gold);font-size:18px;text-transform:uppercase;letter-spacing:2px}.tao-replay-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.tao-replay-turn{font-size:12px;font-variant-numeric:tabular-nums;min-width:100px;text-align:center}.tao-replay-body{flex:1 1 0;min-height:0;display:flex;gap:12px;overflow:hidden;width:100%}.tao-replay-hex-board{pointer-events:none;flex:1 1 0;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.tao-replay-hex-board .tao-hex-board-inner{margin:0}.tao-replay-log{flex:0 0 240px;min-height:0;overflow-y:auto;background:#00000059;border-radius:8px;padding:10px;font-size:.75rem;line-height:1.4}.tao-replay-log-title{margin:0 0 8px;font-size:.7rem;text-transform:uppercase;letter-spacing:1.5px;opacity:.6}.tao-replay-log .tao-log-turn-sep{margin:8px 0 4px;font-size:.7rem;opacity:.5}.tao-replay-log .tao-log-turn-sep.is-current-turn{opacity:1;color:var(--gold, #c9a227);font-weight:700}.tao-replay-log .tao-log-entry{padding:1px 0}.tao-replay-log-empty{opacity:.4;text-align:center;padding:20px 0}@media (max-width: 700px){.tao-replay-body{flex-direction:column}.tao-replay-log{flex:0 0 150px}}.tao-replay-hex{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;border:1px solid rgba(200,200,220,.15);background:#ffffff08}.tao-btn[data-action=confirm]:not([disabled]),.tao-btn[data-action=confirm-footer]:not([disabled]){animation:confirmPulse 1.5s ease-in-out infinite}@keyframes confirmPulse{0%,to{box-shadow:0 0 #4caf5066}50%{box-shadow:0 0 12px 4px #4caf5040}}.tao-tutorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;pointer-events:none}.tao-tutorial-popup{position:fixed;pointer-events:all;background:linear-gradient(145deg,#1e2026f7,#14161cf7);border:2px solid var(--gold);border-radius:14px;padding:24px 28px 20px;max-width:380px;min-width:280px;box-shadow:0 8px 40px #0009,0 0 20px #f0c75e26;z-index:1000;color:#eee;font-family:inherit}.tao-tutorial-popup-step{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--gold);opacity:.8;margin-bottom:6px}.tao-tutorial-popup-title{font-size:20px;font-weight:700;color:#fff;margin-bottom:10px}.tao-tutorial-popup-msg{font-size:14px;line-height:1.55;color:#ffffffd9;margin-bottom:18px}.tao-tutorial-popup-actions{display:flex;align-items:center;gap:12px}.tao-tutorial-next-btn{background:var(--gold);color:#1a1a2e;border:none;border-radius:8px;padding:10px 22px;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}.tao-tutorial-next-btn:hover{background:#f5d870}.tao-tutorial-skip-btn{background:none;border:none;color:#ffffff80;font-size:12px;cursor:pointer;text-decoration:underline;padding:4px 8px;transition:color .15s}.tao-tutorial-skip-btn:hover{color:#fffc}.tao-tutorial-progress{display:flex;gap:4px;margin-top:14px}.tao-tutorial-progress-dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;transition:background .2s}.tao-tutorial-progress-dot.is-done{background:var(--gold)}.tao-tutorial-progress-dot.is-current{background:#fff;box-shadow:0 0 6px #ffffff80}.tao-tutorial-highlight{outline:3px solid var(--gold)!important;outline-offset:3px;animation:tao-tutorial-pulse 1.5s ease-in-out infinite;position:relative;z-index:50}@keyframes tao-tutorial-pulse{0%,to{outline-color:var(--gold);box-shadow:0 0 8px #f0c75e4d}50%{outline-color:#fff;box-shadow:0 0 24px #f0c75eb3}}.tao-tutorial-arrow{position:fixed;font-size:32px;color:var(--gold);z-index:999;animation:tao-arrow-bounce 1s ease-in-out infinite;pointer-events:none;text-shadow:0 0 12px rgba(240,199,94,.6);line-height:1}@keyframes tao-arrow-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.tao-shell-history{max-width:900px;margin:0 auto;padding:24px 16px}.tao-history-panel{background:var(--bg-panel, rgba(0,0,0,.45));border-radius:12px;padding:24px;margin-top:12px}.tao-history-panel h2{margin:0 0 16px;font-size:1.4rem}.tao-history-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.tao-history-search{flex:1 1 200px;padding:6px 12px;border-radius:6px;border:1px solid var(--border, #555);background:var(--bg-input, rgba(0,0,0,.3));color:inherit;font-size:.9rem}.tao-history-sort-btns{display:flex;gap:4px}.tao-history-import-label{cursor:pointer}.tao-history-header{display:grid;grid-template-columns:90px 80px 1fr 60px 70px 1fr;gap:8px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.6;padding:4px 8px;border-bottom:1px solid var(--border, #444);margin-bottom:4px}.tao-history-row{display:grid;grid-template-columns:90px 80px 1fr 60px 70px 1fr;gap:8px;align-items:center;padding:8px;border-bottom:1px solid rgba(255,255,255,.06);font-size:.85rem}.tao-history-row:hover{background:#ffffff0a}.tao-history-result.is-win{color:var(--green, #4caf50);font-weight:700}.tao-history-result.is-loss{color:var(--red, #ef5350);font-weight:700}.tao-history-actions{display:flex;gap:4px;flex-wrap:wrap}.tao-history-empty{text-align:center;padding:24px;opacity:.5}.tao-history-pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 0 0;font-size:.85rem}@media (max-width: 640px){.tao-history-header{display:none}.tao-history-row{grid-template-columns:1fr 1fr;gap:4px}.tao-shell-winner{align-items:stretch;justify-content:stretch}.tao-winner-overlay{padding:14px 12px;overflow-y:auto;max-height:100dvh;display:flex;flex-direction:column}.tao-winner-title{font-size:32px}.tao-postgame-players{flex-direction:column;flex-shrink:1;min-height:0;overflow-y:auto}.tao-postgame-unit{padding:4px 6px;gap:8px}.tao-postgame-unit-sprite{width:28px;height:28px}.tao-postgame-unit-name{white-space:normal;font-size:.75rem}.tao-postgame-unit-hp{height:10px}.tao-postgame-unit-stats{font-size:.55rem;gap:6px}.tao-team-card{padding:8px 10px}.tao-team-card-header{font-size:.7rem;margin-bottom:4px;padding-bottom:4px}.tao-winner-actions{grid-template-columns:1fr 1fr;position:sticky;bottom:0;background:#000000d9;padding:8px 0 4px;margin-top:auto;z-index:1;flex-shrink:0}}@media (min-width: 1600px){.tao-winner-overlay,.tao-postgame-players{max-width:800px}}.tao-chat-panel{position:fixed;bottom:16px;right:16px;width:320px;height:400px;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;z-index:900;box-shadow:0 4px 20px #0000004d}.tao-chat-panel[hidden]{display:none}.tao-chat-panel.users-open{width:440px}.tao-chat-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line);flex-shrink:0}.tao-chat-tabs{display:flex;gap:4px}.tao-chat-tab{background:none;border:1px solid var(--line);border-radius:4px;color:var(--muted);padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit}.tao-chat-tab.active{background:var(--gold);color:var(--panel);border-color:var(--gold)}.tao-chat-tab:disabled{opacity:.4;cursor:default}.tao-chat-header-actions{display:flex;align-items:center;gap:4px}.tao-chat-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:2px 6px}.tao-chat-users-toggle{background:none;border:1px solid var(--line);border-radius:4px;color:var(--muted);padding:3px 8px;font-size:11px;cursor:pointer;font-family:inherit}.tao-chat-users-toggle.active{background:var(--blue, #3b82f6);color:#fff;border-color:var(--blue, #3b82f6)}.tao-chat-body{display:flex;flex:1;overflow:hidden}.tao-chat-main{display:flex;flex-direction:column;flex:1;min-width:0}.tao-chat-users{width:120px;border-left:1px solid var(--line);overflow-y:auto;scrollbar-width:thin;flex-shrink:0}.tao-chat-users-header{padding:8px 10px 4px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.tao-chat-users-list{padding:0 6px 8px}.tao-chat-user-item{display:flex;align-items:center;gap:6px;padding:3px 4px;font-size:12px;color:var(--text);border-radius:3px}.tao-chat-user-item.is-self{color:var(--gold)}.tao-chat-user-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;flex-shrink:0}.tao-chat-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tao-chat-user-you{font-size:10px;color:var(--muted)}.tao-chat-messages{flex:1;overflow-y:auto;padding:8px 12px;font-size:13px;scrollbar-width:thin}.tao-chat-msg{margin-bottom:6px;line-height:1.4;color:var(--text);word-break:break-word}.tao-chat-msg-name{font-weight:600;color:var(--gold);margin-right:6px}.tao-chat-input-row{display:flex;gap:4px;padding:8px;border-top:1px solid var(--line);flex-shrink:0}.tao-chat-input{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:4px;color:var(--text);padding:6px 8px;font-size:13px;font-family:inherit}.tao-chat-input::placeholder{color:var(--muted)}.tao-chat-toggle{background:var(--blue, #3b82f6);border:1px solid var(--blue, #3b82f6);border-radius:4px;color:#fff;padding:4px 10px;font-size:12px;cursor:pointer;position:relative;font-family:inherit;font-weight:600;transition:filter .15s;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.tao-chat-toggle:hover{filter:brightness(1.2)}.tao-chat-toggle.has-unread{background:var(--gold, #eab308);border-color:var(--gold, #eab308);color:var(--panel, #0a1624);animation:tao-chat-pulse 1.2s ease-in-out infinite}@keyframes tao-chat-pulse{0%,to{transform:scale(1);box-shadow:0 0 #eab30880}50%{transform:scale(1.08);box-shadow:0 0 8px 2px #eab30866}}.tao-chat-badge{position:absolute;top:-6px;right:-6px;background:var(--gold);color:var(--panel);font-size:10px;font-weight:700;border-radius:50%;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;pointer-events:none}.tao-chat-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);margin-left:4px;vertical-align:middle;opacity:.5}.tao-chat-status-dot.is-online{background:#22c55e;opacity:1;box-shadow:0 0 4px #22c55e}.tao-chat-msg-time{color:var(--muted);font-size:10px;margin-right:4px;opacity:.7;font-variant-numeric:tabular-nums}.tao-chat-mute-btn{background:none;border:none;color:var(--muted);font-size:9px;cursor:pointer;padding:0 3px;opacity:0;transition:opacity .15s;vertical-align:middle}.tao-chat-msg:hover .tao-chat-mute-btn{opacity:.6}.tao-chat-mute-btn:hover{opacity:1!important;color:var(--red, #ef4444)}.tao-chat-presets{display:flex;flex-wrap:wrap;gap:3px;padding:4px 8px;border-top:1px solid var(--line);flex-shrink:0}.tao-chat-preset{background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:10px;padding:2px 7px;cursor:pointer;font-family:inherit;transition:color .1s,border-color .1s}.tao-chat-preset:hover{color:var(--text);border-color:var(--text)}.tao-chat-offline{padding:6px 12px;background:#ef444426;color:var(--red, #ef4444);font-size:11px;text-align:center;flex-shrink:0}.tao-shell-browser{overflow-y:auto}.tao-browser-layout{display:grid;grid-template-columns:300px 1fr;gap:20px;padding:20px 24px;flex:1;min-height:0;align-items:stretch}.tao-browser-sidebar{display:flex;flex-direction:column;gap:16px}.tao-browser-main{min-height:0;display:flex;flex-direction:column}.tao-browser-card{border:1px solid var(--line);border-radius:8px;background:#ffffff05;overflow:hidden}.tao-browser-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);background:#ffffff08}.tao-browser-card-header h2{margin:0;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.tao-browser-card-body{padding:16px;display:flex;flex-direction:column;gap:12px}.tao-browser-action-btn{width:100%;padding:10px 16px;border-radius:6px;text-align:center}.tao-browser-card-games{display:flex;flex-direction:column;flex:1;min-height:300px}.tao-game-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.tao-game-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--muted);text-align:center;gap:6px;flex:1}.tao-game-list-empty-icon{font-size:32px;opacity:.25;margin-bottom:4px}.tao-game-list-empty-hint{font-size:12px;opacity:.5}.tao-game-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);transition:background .12s ease;cursor:default}.tao-game-row:last-child{border-bottom:none}.tao-game-row:hover{background:#6da8ff0d}.tao-game-row-clickable{cursor:pointer}.tao-game-row-clickable:hover,.tao-game-row-clickable:focus-visible{background:#6da8ff14;outline:none}.tao-game-row-featured .tao-game-row-avatar{background:linear-gradient(135deg,#f0c75e38,#6da8ff1f);border-color:#f0c75e4d;color:var(--gold)}.tao-game-list-section-label{padding:10px 16px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tao-game-row-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#6da8ff40,#6da8ff14);border:1px solid rgba(109,168,255,.3);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--blue);flex-shrink:0}.tao-game-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.tao-game-host{color:var(--text);font-weight:600;font-size:14px}.tao-game-meta{display:flex;gap:6px;flex-wrap:wrap}.tao-game-tag{font-size:11px;color:var(--muted);background:#ffffff0d;padding:1px 8px;border-radius:3px;border:1px solid rgba(255,255,255,.06)}.tao-game-tag-lock{color:var(--gold);border-color:#f0c75e33;background:#f0c75e14}.tao-game-tag-status{font-weight:600;letter-spacing:.03em}.tao-game-tag-waiting{color:var(--green);border-color:#78c58b4d;background:#78c58b1a}.tao-game-tag-setting-up{color:var(--orange);border-color:#ffb3474d;background:#ffb3471a}.tao-game-tag-active{color:var(--blue);border-color:#6da8ff4d;background:#6da8ff1a}.tao-game-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}@media (max-width: 700px){.tao-browser-layout{grid-template-columns:1fr;padding:12px;gap:12px}}@media (max-width: 480px){.tao-chat-panel{width:calc(100vw - 16px);max-width:90vw;right:8px;bottom:8px;height:50vh}}.tao-spectate-center{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:var(--space-2xl) var(--space-md);text-align:center}.tao-spectate-vs-layout{display:flex;align-items:stretch;justify-content:center;gap:var(--space-xl);margin:var(--space-lg) auto;max-width:520px;width:100%}.tao-spectate-card{border-radius:8px;background:#ffffff0a;border:1px solid var(--line);padding:var(--space-lg);text-align:center;min-width:140px;flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.tao-spectate-card.is-empty{border-style:dashed;opacity:.5}.tao-spectate-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;margin-bottom:var(--space-xs);border:2px solid currentColor}.tao-spectate-name{font-weight:700;font-size:16px}.tao-spectate-elo{font-size:13px;color:var(--muted)}.tao-spectate-vs{display:flex;align-items:center;font-size:20px;font-weight:700;color:var(--muted);opacity:.5;text-transform:uppercase;letter-spacing:.1em;flex-shrink:0}.tao-spectate-config{display:flex;gap:var(--space-sm);justify-content:center;flex-wrap:wrap;margin-top:var(--space-md)}.tao-spectate-status{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-top:var(--space-lg);color:var(--muted);font-size:14px}.tao-spectate-back{margin-top:var(--space-xl)}@media (max-width: 480px){.tao-spectate-vs-layout{flex-direction:column;gap:var(--space-md);align-items:center}.tao-spectate-vs{transform:rotate(90deg)}}
