:root{--bg: #0d0b14;--bg-raise: #16121f;--surface: #1d1729;--surface-2: #251d33;--line: rgba(255, 255, 255, .09);--scrim: rgba(5, 3, 10, .72);--text: #efe9dd;--text-dim: #b9b0a3;--text-faint: #857d72;--ember: #f59e42;--ember-strong: #ff8a2a;--gold: #f4d03f;--teal: #48c9b0;--danger: #e5533d;--ok: #58d68d;--font-display: "Cinzel", "Times New Roman", serif;--font-body: "Nunito Sans", system-ui, -apple-system, sans-serif;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--shadow-1: 0 2px 8px rgba(0, 0, 0, .45);--shadow-2: 0 8px 28px rgba(0, 0, 0, .55);--scroll-track: rgba(5, 14, 9, .84);--scroll-thumb: #75613b;--scroll-thumb-hover: #b48a49;--z-table: 1;--z-drawer: 40;--z-banner: 60;--z-modal: 100;--z-toast: 1000}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;max-width:100%}html{overflow-x:hidden;overflow-x:clip;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}body{margin:0;background:radial-gradient(1200px 700px at 70% -10%,rgba(245,158,66,.07),transparent 60%),radial-gradient(900px 600px at 10% 110%,rgba(72,201,176,.05),transparent 60%),var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:999px;box-shadow:inset 0 0 0 1px #e7ca8c14}*::-webkit-scrollbar-thumb{min-height:36px;border:2px solid #07110b;border-radius:999px;background:linear-gradient(180deg,#a2834b,#594b31);box-shadow:inset 0 1px #ffefbe47,0 0 8px #00000057}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#c29a54,#735d36)}*::-webkit-scrollbar-corner{background:transparent}button{font:inherit;color:inherit}input{font:inherit}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:.02em}p{margin:.4em 0}.app{min-height:100dvh;position:relative;z-index:var(--z-table)}.embers{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.ember{position:absolute;bottom:-12px;left:calc((var(--i) * 7.3%) + 2%);width:5px;height:5px;border-radius:50%;background:radial-gradient(circle,#ffd9a0 0%,var(--ember) 55%,transparent 75%);opacity:0;animation:rise calc(9s + var(--i) * 1.7s) linear infinite;animation-delay:calc(var(--i) * -1.9s);filter:blur(.4px)}@keyframes rise{0%{transform:translateY(0) translate(0) scale(1);opacity:0}8%{opacity:.75}60%{opacity:.45}to{transform:translateY(-105dvh) translate(4vw) scale(.4);opacity:0}}.btn{min-height:44px;padding:10px 18px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;touch-action:manipulation;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease;font-weight:700}.btn:hover:not(:disabled){background:var(--surface-2);border-color:#ffffff2e}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.btn-primary{background:linear-gradient(160deg,var(--ember-strong),#c25e12);border-color:#ffb46480;color:#1c0e02;text-shadow:none}.btn-primary:hover:not(:disabled){background:linear-gradient(160deg,#ffa14a,#d26a18)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn-ghost:hover:not(:disabled){color:var(--text);background:#ffffff0f}.btn-sm{min-height:40px;padding:8px 14px;font-size:.9rem}.btn-lg{min-height:52px;font-size:1.05rem}.field{display:flex;flex-direction:column;gap:6px;text-align:left}.field>span{font-size:.85rem;font-weight:700;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase}.field input{min-height:48px;padding:10px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-raise);color:var(--text)}.field input:focus-visible{outline:3px solid var(--ember);outline-offset:1px;border-color:transparent}.code-input{letter-spacing:.35em;text-transform:uppercase;font-weight:800;font-size:1.1rem}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 9px;font-size:.72rem;font-weight:800;letter-spacing:.03em;background:#ffffff14;color:var(--text-dim);white-space:nowrap}.badge-host{background:#f4d03f26;color:var(--gold)}.badge-dragons{background:#f59e422e;color:var(--ember);font-variant-numeric:tabular-nums}.badge-bot{background:#5dade229;color:#85c1e9}.badge-mod{background:#48c9b024;color:var(--teal)}.badge-mod.mod-toads,.badge-mod.mod-noInstants,.badge-mod.mod-barbedWire,.badge-mod.mod-suppress,.badge-mod.mod-noUpgrades,.badge-mod.mod-maxFive,.badge-mod.mod-handVisible{background:#e5533d29;color:#f0907f}.dot{width:9px;height:9px;border-radius:50%;flex:none}.dot-on{background:var(--ok);box-shadow:0 0 6px #58d68dcc}.dot-off{background:var(--text-faint)}.muted-text{color:var(--text-dim)}.home{min-height:100dvh;display:grid;place-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom))}.home-card{width:min(420px,100%);background:linear-gradient(180deg,var(--surface),var(--bg-raise));border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:36px 28px;display:flex;flex-direction:column;gap:20px;text-align:center}.title{display:flex;flex-direction:column;line-height:1.05}.title-un{font-size:1.4rem;color:var(--text-dim);font-weight:500;letter-spacing:.45em;text-transform:uppercase}.title-dragons{font-size:3rem;font-weight:900;background:linear-gradient(180deg,#ffd9a0,var(--ember-strong) 55%,#a34708);-webkit-background-clip:text;background-clip:text;color:transparent;text-transform:uppercase}.tagline{color:var(--text-dim);margin:0}.home-actions{display:flex;flex-direction:column;gap:12px}.home-hint{color:var(--text-faint);font-size:.85rem;margin:0}.lobby{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.lobby-card{width:min(460px,100%);background:linear-gradient(180deg,var(--surface),var(--bg-raise));border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:32px 26px;display:flex;flex-direction:column;gap:18px;text-align:center}.lobby-title{font-size:2rem;color:var(--gold)}.lobby-sub{color:var(--text-dim);margin:0}.room-code{display:flex;flex-direction:column;gap:2px;padding:14px;background:var(--bg-raise);border:1px dashed rgba(245,158,66,.5);border-radius:var(--r-md);cursor:pointer}.room-code:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.room-code-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-faint)}.room-code-value{font-family:var(--font-display);font-size:2.2rem;font-weight:900;letter-spacing:.3em;color:var(--ember)}.room-code-copy{font-size:.8rem;color:var(--text-dim)}.lobby-players{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lobby-players li{display:flex;align-items:center;gap:10px;background:var(--bg-raise);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;min-height:46px}.lobby-player-name{font-weight:700}.lobby-players .player-away{opacity:.55}.player-empty{color:var(--text-faint);font-style:italic;justify-content:center;border-style:dashed}.lobby-wait{color:var(--text-dim)}.bot-row{display:flex;gap:10px;align-items:flex-end}.bot-field{flex:1}.bot-field select{min-height:44px;padding:8px 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-raise);color:var(--text)}.bot-field select:focus-visible{outline:3px solid var(--ember);outline-offset:1px}.bot-remove{margin-left:auto;min-height:32px;padding:4px 10px}.game{min-height:100dvh;display:flex;flex-direction:column;gap:10px;padding:8px 10px calc(10px + env(safe-area-inset-bottom));max-width:1500px;margin:0 auto}.topbar{display:flex;align-items:center;gap:10px;padding:4px 2px;position:sticky;top:0;z-index:var(--z-banner);background:linear-gradient(180deg,var(--bg) 70%,transparent)}.topbar-mid{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0;text-align:center}.topbar-code{font-family:var(--font-display);letter-spacing:.25em;color:var(--text-faint);font-size:.72rem}.topbar-status{font-weight:800;color:var(--text-dim);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-status.is-you{color:var(--ember)}.topbar-actions{display:flex;gap:4px}.opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.player-panel{background:linear-gradient(180deg,var(--surface),var(--bg-raise));border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 12px;box-shadow:var(--shadow-1);transition:border-color .2s ease,box-shadow .2s ease}.player-panel.is-turn{border-color:#f59e428c;box-shadow:0 0 0 1px #f59e4259,var(--shadow-1)}.player-panel.is-away{opacity:.65}.player-panel.is-me{background:linear-gradient(180deg,#211a30,var(--bg-raise))}.player-panel.is-pickable{cursor:pointer;border-color:var(--teal);animation:pulse-pick 1.4s ease-in-out infinite}.player-panel.is-pickable:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.player-head{display:flex;align-items:center;gap:8px;min-height:28px}.player-name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-meta{margin-left:auto;display:flex;gap:6px}.player-mods{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.stable{display:flex;flex-direction:column;gap:6px;margin-top:8px}.stable-row{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;min-height:30px}.stable-empty{color:var(--text-faint);font-size:.85rem;font-style:italic;padding:4px 2px}.revealed-hand{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.table-center{display:flex;align-items:flex-start;gap:16px;padding:10px 12px;background:radial-gradient(600px 200px at 50% 0%,rgba(245,158,66,.05),transparent 70%),var(--bg-raise);border:1px solid var(--line);border-radius:var(--r-lg);flex-wrap:wrap}.pile{display:flex;flex-direction:column;align-items:center;gap:4px}.pile-label{font-size:.72rem;color:var(--text-faint);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.pile-empty{display:grid;place-items:center;color:var(--text-faint);cursor:pointer}.nest{display:grid;place-items:center;color:var(--ember);position:relative}.nest .glyph{width:42px;height:42px}.goal{margin-left:auto;align-self:center;color:var(--text-dim);font-size:.9rem}.goal strong{color:var(--ember);font-size:1.2rem}.chain{display:flex;gap:10px;padding:8px 12px;border:1px dashed rgba(229,83,61,.55);border-radius:var(--r-md);background:#e5533d0f}.chain-item{display:flex;flex-direction:column;align-items:center;gap:4px}.chain-owner{font-size:.7rem;color:var(--text-dim);font-weight:700}.card{--w: 168px;width:var(--w);aspect-ratio:5 / 7;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);box-shadow:var(--shadow-1);display:flex;flex-direction:column;overflow:hidden;position:relative;flex:none;transition:box-shadow .18s ease,border-color .18s ease,opacity .18s ease,transform .18s ease}.card-sm{--w: 118px}.card-mini{--w: 74px}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-3px)}.card-clickable:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.card-dimmed{opacity:.4}.card-selected{border-color:var(--gold);box-shadow:0 0 0 3px #f4d03f8c,var(--shadow-1)}.card-head{padding:5px 8px;background:linear-gradient(90deg,color-mix(in srgb,var(--card-color, #666) 55%,#14101d),#14101d);border-bottom:1px solid rgba(0,0,0,.4);min-height:26px;display:flex;align-items:center}.card-name{font-family:var(--font-display);font-weight:700;font-size:.78rem;line-height:1.15;color:#fdf6ea;text-shadow:0 1px 2px rgba(0,0,0,.6)}.card-mini .card-name{font-size:.58rem}.card-art{flex:1.2;position:relative;min-height:0;background:#0a0810}.card-art img{width:100%;height:100%;object-fit:cover;display:block}.card-art-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(120% 90% at 30% 20%,color-mix(in srgb,var(--card-color, #666) 42%,transparent),transparent 70%),radial-gradient(100% 100% at 80% 90%,color-mix(in srgb,var(--card-color, #666) 24%,transparent),#0a0810 75%);color:color-mix(in srgb,var(--card-color, #999) 75%,white)}.card-art-placeholder .glyph{width:46%;height:46%;opacity:.9;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6))}.card-body{padding:6px 8px 8px;display:flex;flex-direction:column;gap:3px;flex:1;min-height:0}.card-type{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.card-text{margin:0;font-size:.68rem;line-height:1.35;color:var(--text-dim);overflow:hidden}.card-baby .card-type{color:#e8905a}.card-upgrade .card-type{color:var(--ok)}.card-downgrade .card-type{color:#f0907f}.card-magic .card-type{color:#b18cd9}.card-instant .card-type{color:var(--danger)}.card-back{background:repeating-linear-gradient(135deg,#1b1526 0,#1b1526 10px,#150f1f 10px,#150f1f 20px);display:grid;place-items:center}.card-back-pattern{color:#f59e4280;width:50%}.card-back-pattern .glyph{width:100%;height:auto}.card-count{position:absolute;right:6px;bottom:6px;background:#000000a6;border:1px solid var(--line);color:var(--text);font-weight:800;font-size:.85rem;border-radius:999px;padding:1px 9px;font-variant-numeric:tabular-nums}.card-flag{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-12deg);font-weight:900;font-size:.7rem;letter-spacing:.12em;padding:3px 8px;border-radius:4px;background:#000000bf;border:1px solid currentColor}.flag-toad{color:var(--ok)}.flag-fog{color:var(--text-dim)}.flag-stopped{color:var(--danger)}.glow-play{border-color:#f59e42e6;animation:pulse-play 1.6s ease-in-out infinite}.glow-pick{border-color:var(--teal);animation:pulse-pick 1.4s ease-in-out infinite}.glow-roar{border-color:var(--danger);animation:pulse-roar 1.1s ease-in-out infinite}@keyframes pulse-play{0%,to{box-shadow:0 0 4px #f59e4259,var(--shadow-1)}50%{box-shadow:0 0 16px 3px #f59e4299,var(--shadow-1)}}@keyframes pulse-pick{0%,to{box-shadow:0 0 4px #48c9b059,var(--shadow-1)}50%{box-shadow:0 0 16px 3px #48c9b099,var(--shadow-1)}}@keyframes pulse-roar{0%,to{box-shadow:0 0 4px #e5533d66,var(--shadow-1)}50%{box-shadow:0 0 18px 4px #e5533db3,var(--shadow-1)}}.hand-area{position:sticky;bottom:0;z-index:var(--z-drawer);background:linear-gradient(180deg,transparent,var(--bg) 22%);padding-top:6px;margin-top:auto}.action-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;min-height:44px;padding:2px 0 6px}.roar-callout{color:var(--danger);font-weight:800;animation:pulse-text 1.1s ease-in-out infinite}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.55}}.hand{display:flex;gap:8px;overflow-x:auto;padding:6px 4px 10px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.hand .card{scroll-snap-align:center}.hand-empty{color:var(--text-faint);font-style:italic;margin:auto}.host-tools{position:relative}.host-tools summary{list-style:none;display:inline-flex;align-items:center}.host-tools summary::-webkit-details-marker{display:none}.host-tools-menu{position:absolute;bottom:110%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:8px;box-shadow:var(--shadow-2);width:max-content;z-index:var(--z-modal)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:18px;z-index:var(--z-modal);animation:fade-in .18s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{width:min(440px,100%);max-height:min(80dvh,640px);overflow-y:auto;background:linear-gradient(180deg,var(--surface),var(--bg-raise));border:1px solid rgba(245,158,66,.35);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:18px;display:flex;flex-direction:column;gap:14px;animation:modal-in .22s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.modal-wide{width:min(760px,100%)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.modal-head h2{font-size:1.15rem;color:var(--gold)}.modal-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.card-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.player-choices{display:flex;flex-direction:column;gap:8px}.player-choice{text-align:center}.win-text{text-align:center;font-size:1.05rem;color:var(--text)}.log-drawer{position:fixed;top:0;right:0;bottom:0;width:min(340px,88vw);background:var(--bg-raise);border-left:1px solid var(--line);box-shadow:var(--shadow-2);transform:translate(102%);transition:transform .25s ease;z-index:var(--z-modal);display:flex;flex-direction:column;padding:14px}.log-drawer.open{transform:none}.log-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.log-head h2{font-size:1.05rem;color:var(--gold)}.log-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:7px;font-size:.86rem;color:var(--text-dim)}.log-list li{padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.05)}.reconnect-banner{position:fixed;top:10px;left:50%;transform:translate(-50%);background:#e5533deb;color:#fff;font-weight:800;padding:10px 18px;border-radius:999px;z-index:var(--z-toast);box-shadow:var(--shadow-2)}.toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--surface-2);border:1px solid var(--line);color:var(--text);padding:12px 20px;border-radius:var(--r-md);box-shadow:var(--shadow-2);z-index:var(--z-toast);max-width:min(480px,92vw);text-align:center;animation:fade-in .18s ease}.toast-error{border-color:#e5533d99}@media (max-width: 760px){.opponents{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;-webkit-overflow-scrolling:touch}.opponents .player-panel{min-width:230px}.table-center{gap:10px;padding:8px}.goal{width:100%;margin-left:0;text-align:center;order:10}.card-sm{--w: 100px}.card{--w: 132px}.topbar-actions .btn{padding:8px 10px}}@media (min-width: 1100px){.game{padding:12px 20px}}@media (prefers-reduced-motion: reduce){.ember{animation:none;opacity:0}.glow-play,.glow-pick,.glow-roar,.player-panel.is-pickable,.roar-callout{animation:none}.glow-play{box-shadow:0 0 12px 2px #f59e428c,var(--shadow-1)}.glow-pick{box-shadow:0 0 12px 2px #48c9b08c,var(--shadow-1)}.glow-roar{box-shadow:0 0 12px 2px #e5533d99,var(--shadow-1)}.modal,.modal-scrim,.toast{animation:none}.log-drawer{transition:none}.card-clickable:hover{transform:none}}:root{--bg: #07100d;--bg-raise: #101a15;--surface: #17231c;--surface-2: #202e24;--surface-glass: rgba(15, 25, 19, .88);--line: rgba(224, 198, 137, .2);--line-strong: rgba(239, 204, 123, .45);--scrim: rgba(2, 8, 5, .82);--text: #f6edd8;--text-dim: #cabfa8;--text-faint: #928b7b;--ember: #ffb85c;--ember-strong: #ee842c;--gold: #f4d18b;--teal: #73d5b1;--danger: #ee735c;--ok: #73d58c;--font-display: "Cinzel", Georgia, serif;--font-body: "Nunito Sans", system-ui, sans-serif;--r-sm: 7px;--r-md: 11px;--r-lg: 18px;--shadow-1: 0 5px 16px rgba(0, 0, 0, .42);--shadow-2: 0 22px 70px rgba(0, 0, 0, .62)}body{background:radial-gradient(circle at 16% 0%,rgba(88,137,94,.18),transparent 36rem),linear-gradient(150deg,#07100d,#100d0a 72%)}button,input,select{font-family:inherit}button{-webkit-tap-highlight-color:transparent}.glyph{width:1.25em;height:1.25em;display:block;flex:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{border-color:var(--line);background:linear-gradient(180deg,#2f3f31f5,#18231bf5);box-shadow:inset 0 1px #ffffff0f,0 4px 12px #00000047;border-radius:999px}.btn:hover:not(:disabled){background:linear-gradient(180deg,#405342,#24372b);border-color:var(--line-strong)}.btn-primary{color:#211408;border-color:#f8cf82;background:linear-gradient(180deg,#ffe1a0,#e9953d 56%,#a94c1e);box-shadow:inset 0 1px #ffffffbf,0 0 0 1px #351908b3,0 7px 22px #d96d2447}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#ffebbd,#f5aa51 58%,#bd5a24)}.icon-button{width:44px;height:44px;min-width:44px;display:inline-grid;place-items:center;padding:0;border-radius:50%;cursor:pointer;border:1px solid var(--line);color:var(--text-dim);background:#101c15c7;box-shadow:inset 0 1px #ffffff0d,0 4px 14px #00000052;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease}.icon-button:hover{color:var(--gold);border-color:var(--line-strong);background:#233126f5}.icon-button:active{transform:scale(.96)}.icon-button:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.icon-button .glyph{width:21px;height:21px}.home,.lobby{position:relative;isolation:isolate;overflow:hidden}.home:before,.lobby:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:linear-gradient(90deg,#03080ced,#050a0d99 46%,#0a0508a8),linear-gradient(0deg,rgba(4,12,8,.9),transparent 52%),url(/hero-image-menu.png);background-size:cover;background-position:center;transform:scale(1.02)}.home:after,.lobby:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 72% 45%,transparent 0 12%,rgba(1,5,4,.12) 40%,rgba(1,4,3,.66) 100%)}.home{place-items:center start;padding:clamp(24px,6vw,88px)}.home-card,.lobby-card{border:1px solid var(--line-strong);background:linear-gradient(145deg,#1a261ef0,#08100ceb),radial-gradient(circle at 80% 0%,rgba(233,166,84,.15),transparent 45%);box-shadow:inset 0 1px #ffffff14,0 28px 90px #0000009e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.home-card{width:min(470px,100%);padding:clamp(28px,4vw,48px);text-align:left}.home-card .title{text-align:left}.title-un{color:var(--gold);font-size:1rem;letter-spacing:.56em}.title-dragons{font-size:clamp(2.7rem,6vw,4.4rem);letter-spacing:-.045em}.tagline{font-family:var(--font-display);font-size:1.06rem;line-height:1.65;color:#e2d7c3}.lobby-card{width:min(520px,100%)}.field input,.bot-field select{background:#050d09c2;border-color:#e5ce9742}.room-code{background:#050d09b8;border-color:var(--line-strong)}.room-code-value{color:var(--gold)}.lobby-players li{background:#07100bb8}.codex-fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:70;min-height:46px;padding:0 17px 0 13px;display:flex;align-items:center;gap:9px;color:#241608;font-weight:900;cursor:pointer;border:1px solid #f4d28e;border-radius:999px;background:linear-gradient(180deg,#ffe2a5,#d99643);box-shadow:inset 0 1px #ffffffd9,0 10px 30px #0000007a}.codex-fab .glyph{width:21px;height:21px}.codex-fab:hover{filter:brightness(1.08)}.codex-fab:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.game~.codex-fab{bottom:14px;right:14px}.card{--w: 166px;width:var(--w);aspect-ratio:5 / 7;border-radius:10px;border:1px solid color-mix(in srgb,var(--card-color, #b4935e) 52%,#d7ba78);background:#0b100d;box-shadow:inset 0 0 0 2px #0c0805d1,inset 0 0 0 3px #e8cc8f33,0 6px 16px #0000008c;isolation:isolate;overflow:hidden}.card-sm{--w: 106px}.card-mini{--w: 58px;border-radius:6px}.card-ornament{position:absolute;top:3px;right:3px;bottom:3px;left:3px;z-index:3;pointer-events:none;border:1px solid rgba(255,231,174,.36);border-radius:7px;clip-path:polygon(0 0,35% 0,39% 2px,61% 2px,65% 0,100% 0,100% 100%,65% 100%,61% calc(100% - 2px),39% calc(100% - 2px),35% 100%,0 100%)}.card-head{position:absolute;left:5px;right:5px;bottom:5px;z-index:3;min-height:35px;padding:7px 7px 7px 31px;border:1px solid rgba(244,215,157,.32);border-radius:5px;background:linear-gradient(90deg,#070c09f5,color-mix(in srgb,var(--card-color, #777) 35%,rgba(7,12,9,.96)));box-shadow:0 -5px 15px #0000007a}.card-type-gem{position:absolute;left:5px;top:50%;transform:translateY(-50%);width:21px;height:21px;display:grid;place-items:center;color:#fff1d3;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:color-mix(in srgb,var(--card-color, #777) 72%,#101510)}.card-type-gem .glyph{width:13px;height:13px}.card-name{font-size:.7rem;letter-spacing:.02em;line-height:1.1}.card-art{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0}.card-art img{width:100%;height:100%;object-fit:cover}.card-art-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,8,6,.12),transparent 48%,rgba(3,7,5,.8) 90%),radial-gradient(circle at 50% 45%,transparent 50%,rgba(1,4,3,.3))}.card-body{position:absolute;left:7px;right:7px;bottom:46px;z-index:3;padding:7px 8px;max-height:42%;border:1px solid rgba(238,215,167,.28);border-radius:5px;background:#090f0be8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.card-type{color:#e8d3a7;font-size:.59rem}.card-text{color:#e7dfcf;font-size:.67rem}.card-sm .card-body,.card-mini .card-body{display:none}.card-sm .card-head{min-height:29px;padding:5px 5px 5px 26px}.card-sm .card-name{font-size:.56rem}.card-sm .card-type-gem{width:18px;height:18px;left:4px}.card-mini .card-head{min-height:22px;left:3px;right:3px;bottom:3px;padding:3px 3px 3px 4px}.card-mini .card-name{font-size:.43rem;text-align:center;width:100%}.card-mini .card-type-gem{display:none}.card-clickable:hover{transform:translateY(-6px) scale(1.02);box-shadow:inset 0 0 0 2px #100b06,0 13px 25px #0000009e}.card-action-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;padding:0;border:0;border-radius:inherit;cursor:pointer;color:transparent;background:transparent}.card-action-hit:focus-visible{outline:3px solid var(--teal);outline-offset:-4px}.card-info-button{position:absolute;z-index:5;right:8px;top:8px;width:26px;height:26px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.5);border-radius:50%;color:#171008;background:#ffe2a5f0;cursor:pointer;font-family:Georgia,serif;font-size:.85rem;font-weight:900;box-shadow:0 3px 9px #0000008c}.card-info-button:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.card-back{background:radial-gradient(circle,transparent 0 22%,rgba(224,168,72,.18) 23% 24%,transparent 25%),conic-gradient(from 45deg,#1d3327,#0a1711,#263829,#0a1711,#1d3327)}.card-back:before{content:"";position:absolute;top:8%;right:8%;bottom:8%;left:8%;border:1px solid rgba(240,201,123,.42);border-radius:50% 50% 42% 42%}.card-back-pattern{width:48%;color:#dca957;filter:drop-shadow(0 3px 7px #000)}.card-back-rune{position:absolute;font-family:var(--font-display);font-weight:900;font-size:.76rem;color:#efce89}.pile-empty{color:var(--text-faint);border-style:dashed;align-items:center;justify-content:center;gap:5px}.pile-empty .glyph{width:28px;height:28px}.card-flag{z-index:6}.game{position:relative;isolation:isolate;width:100%;max-width:none;height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;margin:0;padding:max(7px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow:hidden}.game:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:linear-gradient(180deg,#02090661,#030a079e),radial-gradient(ellipse at center,#1f331f05 0,#1f331f05 42%,#0207054d 90%),url(/battlefield-arena.webp);background-size:cover;background-position:center center}.game:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,rgba(76,104,66,.16),transparent 52%),repeating-radial-gradient(ellipse at center,transparent 0 42px,rgba(228,190,111,.025) 43px 44px)}.topbar{position:relative;top:auto;z-index:20;min-height:50px;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:#060f0adb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 30px #00000059}.topbar-mid{align-items:flex-start;text-align:left;padding-left:2px}.topbar-code{color:var(--gold);font-size:.66rem}.topbar-status{color:#efe7d6;font-size:.88rem}.topbar-status.is-you{color:#ffd38c}.topbar-actions{gap:6px}.turn-tracker{display:flex;align-items:center;gap:2px}.turn-tracker span{position:relative;display:flex;align-items:center;gap:4px;color:#716d62}.turn-tracker span:not(:last-child):after{content:"";width:13px;height:1px;margin:0 2px;background:#4d5148}.turn-tracker i{width:24px;height:24px;display:grid;place-items:center;border:1px solid #4b5147;border-radius:50%;font-style:normal;font-size:.67rem;font-weight:900}.turn-tracker b{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em}.turn-tracker .is-done{color:#83ad8e}.turn-tracker .is-current{color:var(--gold)}.turn-tracker .is-current i{border-color:var(--gold);box-shadow:0 0 12px #f1c27059}.game-board{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);grid-template-rows:minmax(122px,.62fr) minmax(190px,1fr) minmax(130px,.7fr);grid-template-areas:"opponents opponents" "table inspector" "mine inspector";gap:8px}.opponents{grid-area:opponents;min-width:0;min-height:0;display:grid;grid-template-columns:repeat(var(--opponent-count),minmax(0,1fr));gap:7px;overflow:hidden}.table-center{grid-area:table;min-width:0;min-height:0;display:grid;grid-template-columns:minmax(225px,.8fr) minmax(160px,1fr) minmax(178px,.65fr);align-items:center;gap:11px;padding:10px 12px;overflow:hidden;border:1px solid rgba(231,202,140,.2);border-radius:28px 12px;background:radial-gradient(ellipse at center,rgba(73,104,68,.28),transparent 72%),linear-gradient(115deg,#142319b8,#07110ba8);-webkit-backdrop-filter:blur(1.5px) saturate(.82);backdrop-filter:blur(1.5px) saturate(.82);box-shadow:inset 0 0 80px #00000075,0 10px 28px #00000040}.arena-piles{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0}.pile{position:relative;gap:4px}.pile-label{max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ada793;font-size:.62rem}.nest-count{position:absolute;right:-3px;top:-3px;z-index:7;min-width:25px;height:25px;display:grid;place-items:center;border:1px solid #efca81;border-radius:50%;background:#142219;color:#ffe0a4;font-weight:900;font-size:.74rem}.arena-focus{min-width:0;display:grid;place-items:center}.turn-sigil{width:min(250px,100%);aspect-ratio:2.4 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid rgba(227,197,130,.25);border-radius:50%;background:radial-gradient(circle,rgba(231,172,78,.12),rgba(8,17,12,.22) 60%,transparent 61%),repeating-radial-gradient(circle,transparent 0 17px,rgba(229,194,117,.08) 18px 19px)}.turn-sigil.is-you{border-color:#f4cc7985;box-shadow:0 0 35px #dc8b351f}.turn-sigil-kicker{color:var(--gold);font-size:.63rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.turn-sigil strong{font-family:var(--font-display);font-size:clamp(1rem,2vw,1.45rem);color:#fff1d1}.turn-sigil>span:last-child{max-width:210px;color:var(--text-dim);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chain{max-width:100%;padding:7px;overflow-x:auto;flex-wrap:nowrap;background:#3d140e6b}.chain .card-sm{--w: 92px}.action-pedestal{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.goal{margin:0;display:flex;align-items:baseline;gap:5px;color:var(--text-faint);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.goal strong{color:var(--gold);font-family:var(--font-display);font-size:1.75rem;line-height:1}.action-bar{min-height:0;padding:0;flex-direction:column;flex-wrap:nowrap;gap:6px}.draw-action{min-width:168px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:50%;padding:13px 18px}.draw-action .glyph{width:22px;height:22px}.draw-action span{display:flex;flex-direction:column;line-height:1.1}.draw-action small{font-size:.66rem;font-weight:700;opacity:.76}.action-or{color:var(--text-faint);font-size:.65rem;text-align:center}.player-panel{position:relative;min-width:0;min-height:0;height:100%;padding:7px 9px;overflow:hidden;border-color:#e3ca962e;border-radius:13px;background:linear-gradient(180deg,#18271dd1,#08130cb8);-webkit-backdrop-filter:blur(1.5px) saturate(.82);backdrop-filter:blur(1.5px) saturate(.82);box-shadow:inset 0 1px #ffffff0a,0 7px 18px #00000047}.player-panel.is-turn{border-color:#e4b966;box-shadow:inset 0 0 26px #e3aa4b14,0 0 18px #d9973a2e}.player-panel.is-me{background:linear-gradient(180deg,#1d3125db,#09160ec7)}.player-head{min-width:0;min-height:24px;gap:5px}.player-name{font-family:var(--font-display);color:#f5e8cc;font-size:.76rem}.player-meta{gap:3px}.player-head .badge{padding:2px 6px;font-size:.58rem}.player-mods{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.player-mods .badge{font-size:.53rem}.stable{min-height:0;margin-top:5px;gap:3px}.stable-row{flex-wrap:nowrap;min-width:0;min-height:0;gap:4px;overflow:visible}.opponents .stable-row .card-mini+.card-mini{margin-left:clamp(-34px,calc((var(--opponent-count) - 2) * -5px),-12px)}.opponents .stable-attach .card-mini{transform:translateY(-9px)}.opponents .stable-attach .card-mini:hover{transform:translateY(-15px) scale(1.02)}.player-target{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;width:100%;border:2px solid var(--teal);border-radius:inherit;cursor:pointer;background:#071e18d1;color:#dffff3;font-weight:900}.player-target:focus-visible{outline:3px solid #fff;outline-offset:-5px}.my-area{grid-area:mine;min-width:0;min-height:0}.my-area .player-panel{display:grid;grid-template-rows:auto minmax(0,1fr)}.my-area .stable{flex-direction:row;align-items:center;overflow-x:auto}.my-area .stable-row{align-items:center}.my-area .stable-attach{padding-left:8px;border-left:1px solid var(--line)}.my-area .card-sm{--w: clamp(74px, 7vw, 102px)}.quick-inspector{grid-area:inspector;min-width:0;min-height:0;padding:12px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(155deg,#19281ef5,#08110cf0);box-shadow:inset 0 1px #ffffff0d,0 9px 24px #00000047}.inspect-hint{display:block;margin-top:9px;color:var(--text-faint);font-size:.67rem;text-align:center}.hand-area{position:relative;bottom:auto;z-index:10;min-height:0;margin:0;padding:4px 8px 5px;border:1px solid rgba(226,200,143,.18);border-radius:15px;background:linear-gradient(180deg,#09140de0,#050c08f7);box-shadow:0 -10px 30px #0000004d}.hand-head{height:22px;display:flex;align-items:center;gap:7px;color:var(--gold);font-size:.64rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.hand-head strong{min-width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;color:#fff0d1}.hand-guidance{margin-left:auto;color:var(--text-faint);font-size:.57rem;letter-spacing:.04em;text-transform:none}.hand-guidance b{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--gold);color:#211408;font-family:Georgia,serif}.hand{justify-content:center;gap:7px;padding:1px 44px 4px;overflow-x:auto}.hand .card-sm{--w: clamp(82px, 8.2vw, 118px)}:is(.hand,.chain,.type-filters,.player-mods,.my-area .stable,.opponents){scrollbar-width:none}:is(.hand,.chain,.type-filters,.player-mods,.my-area .stable,.opponents)::-webkit-scrollbar{display:none}.card-details{min-height:0;display:grid;grid-template-columns:minmax(132px,182px) minmax(0,1fr);gap:18px;align-items:start}.card-details-preview{display:grid;place-items:center}.card-details-preview .card{--w: min(176px, 100%)}.card-details-copy{min-width:0}.card-details-copy h2{margin:9px 0 8px;color:#ffe8b7;font-size:clamp(1.25rem,2.2vw,2rem);line-height:1.12}.type-pill{width:fit-content;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:var(--gold);font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.type-pill .glyph{width:15px;height:15px}.card-rules-text{color:#eee4d2;font-size:1rem;line-height:1.55}.card-flavor{margin-top:12px;color:var(--text-faint);font-family:Georgia,serif;font-style:italic}.card-facts{display:flex;gap:8px;margin:18px 0 0}.card-facts div{min-width:86px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#040b0773}.card-facts dt{color:var(--text-faint);font-size:.58rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.card-facts dd{margin:2px 0 0;color:var(--gold);font-size:.78rem;font-weight:800}.card-details.is-compact{grid-template-columns:96px minmax(0,1fr);gap:11px}.card-details.is-compact .card-details-preview .card{--w: 92px}.card-details.is-compact .card-details-copy h2{margin:7px 0 6px;font-size:1.02rem}.card-details.is-compact .card-rules-text{font-size:.78rem;line-height:1.42}.card-details.is-compact .card-flavor{font-size:.7rem}.card-details.is-compact .card-facts{display:none}.card-details.is-compact .type-pill{padding:3px 7px;font-size:.55rem}.codex-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:18px;background:#020704d6;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.codex{width:min(1440px,96vw);height:min(900px,94dvh);min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border:1px solid var(--line-strong);border-radius:20px;background:radial-gradient(circle at 86% 0%,rgba(164,112,54,.14),transparent 32%),linear-gradient(145deg,#17251b,#08110c);box-shadow:inset 0 1px #ffffff12,0 30px 100px #000000b8;animation:modal-in .22s ease}.codex-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 13px;border-bottom:1px solid var(--line)}.codex-head h1{color:#ffe8b3;font-size:clamp(1.55rem,3vw,2.45rem)}.codex-head p{margin:4px 0 0;color:var(--text-dim);font-size:.82rem}.eyebrow{color:var(--gold);font-size:.62rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.codex-tools{display:flex;align-items:center;gap:12px;padding:10px 22px;border-bottom:1px solid var(--line);background:#050d087a}.search-field{position:relative;flex:0 1 330px}.search-field .glyph{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--text-faint)}.search-field input{width:100%;min-height:44px;padding:9px 13px 9px 42px;color:var(--text);border:1px solid var(--line);border-radius:999px;background:#040c07bd}.search-field input:focus-visible{outline:3px solid var(--teal);outline-offset:1px}.type-filters{min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin}.type-filters button{min-height:38px;padding:7px 11px;white-space:nowrap;cursor:pointer;border:1px solid var(--line);border-radius:999px;color:var(--text-dim);background:#1d2b21b8;font-size:.72rem;font-weight:800}.type-filters button.is-active{color:#241507;border-color:#f1c77d;background:linear-gradient(#ffe3a7,#d79543)}.type-filters button:focus-visible{outline:3px solid var(--teal);outline-offset:1px}.codex-body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,460px)}.codex-results{min-height:0;padding:16px 18px 26px;overflow-y:auto;display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:center;gap:12px;scrollbar-color:#5f765f #0b160e}.codex-results .card-sm{--w: clamp(96px, 8vw, 116px)}.codex-detail{min-height:0;padding:22px;overflow-y:auto;border-left:1px solid var(--line);background:#050c0875}.empty-state{width:100%;min-height:240px;display:grid;place-items:center;align-content:center;gap:7px;color:var(--text-faint);text-align:center}.empty-state .glyph{width:42px;height:42px}.modal-scrim{background:var(--scrim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{border-color:var(--line-strong);background:linear-gradient(155deg,#1d2d22,#0b160f)}.log-drawer{background:linear-gradient(160deg,#1c2b21,#08110c);border-color:var(--line)}.host-tools-menu{background:#142219}@media (max-width: 1180px){.game-board{grid-template-columns:minmax(0,1fr) 245px}.opponents .card-mini{--w: 51px}.table-center{grid-template-columns:minmax(190px,.8fr) minmax(145px,1fr) 165px;padding:8px;gap:7px}.arena-piles .card-sm{--w: 88px}.turn-tracker b{display:none}.turn-tracker span:not(:last-child):after{width:7px}.hand .card-sm{--w: clamp(78px, 8.5vw, 102px)}}@media (orientation: portrait) and (max-width: 800px){.game{height:auto;min-height:100dvh;overflow-y:auto;grid-template-rows:auto auto auto}.topbar{border-radius:14px}.turn-tracker{display:none}.game-board{display:flex;flex-direction:column}.opponents{display:flex;overflow-x:auto;min-height:130px}.opponents .player-panel{min-width:210px}.table-center{min-height:230px;grid-template-columns:1fr;overflow:visible}.arena-piles{order:1}.arena-focus{order:0}.action-pedestal{order:2}.quick-inspector{min-height:175px}.hand-area{position:sticky;bottom:0}.codex-body{grid-template-columns:1fr}.codex-detail{display:none}.codex-tools{align-items:stretch;flex-direction:column}.search-field{flex-basis:auto}}@media (orientation: landscape) and (max-height: 650px){.game{grid-template-rows:46px minmax(0,1fr) 104px;gap:4px;padding:max(3px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(3px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))}.topbar{min-height:46px;height:46px;padding:1px 4px;border-radius:10px}.topbar .icon-button{width:44px;height:44px;min-width:44px}.topbar-mid{padding-left:0}.topbar-code{font-size:.51rem}.topbar-status{font-size:.69rem}.turn-tracker{gap:0}.turn-tracker i{width:20px;height:20px;font-size:.56rem}.turn-tracker span:not(:last-child):after{width:5px;margin:0 1px}.game-board{grid-template-columns:minmax(0,1fr) 155px 186px;grid-template-rows:67px minmax(0,1fr);grid-template-areas:"opponents opponents opponents" "table mine inspector";gap:4px}.opponents{gap:3px}.opponents .player-panel{padding:3px 5px;border-radius:7px}.opponents .player-head{min-height:17px}.opponents .player-name{font-size:.56rem}.opponents .player-head .badge{font-size:.46rem;padding:1px 4px}.opponents .player-head .dot{width:6px;height:6px}.opponents .player-mods{display:none}.opponents .stable{margin-top:2px}.opponents .card-mini{--w: 32px;border-radius:4px}.opponents .stable-row .card-mini+.card-mini{margin-left:-20px}.opponents .card-mini .card-head{display:none}.table-center{grid-template-columns:minmax(145px,.85fr) minmax(110px,1fr) minmax(115px,.6fr);gap:4px;padding:4px 6px;border-radius:10px}.arena-piles{gap:4px}.arena-piles .card-sm,.chain .card-sm{--w: clamp(47px, 7.4vh, 60px)}.pile-label{font-size:.45rem;max-width:60px}.nest-count{width:19px;min-width:19px;height:19px;font-size:.55rem}.turn-sigil{width:135px}.turn-sigil-kicker{font-size:.45rem}.turn-sigil strong{font-size:.83rem}.turn-sigil>span:last-child{font-size:.5rem;max-width:120px}.goal{font-size:.46rem}.goal strong{font-size:1.1rem}.action-bar{gap:3px}.draw-action{min-width:112px;min-height:34px;padding:5px 9px}.draw-action .glyph{width:16px;height:16px}.draw-action strong{font-size:.7rem}.draw-action small,.action-or,.roar-callout{font-size:.48rem}.my-area .player-panel{padding:4px 5px;border-radius:8px}.my-area .player-head{min-height:20px}.my-area .player-name{font-size:.58rem}.my-area .player-head .badge{font-size:.47rem;padding:1px 4px}.my-area .player-mods{display:none}.my-area .stable{margin-top:1px;align-items:flex-start}.my-area .card-sm{--w: clamp(43px, 9.5vh, 60px)}.my-area .stable-row .card-sm+.card-sm{margin-left:-28px}.quick-inspector{padding:6px;border-radius:8px}.quick-inspector .card-details.is-compact{display:block}.quick-inspector .card-details-preview{display:none}.quick-inspector .card-details-copy h2{margin:3px 0 4px;font-size:.78rem}.quick-inspector .card-rules-text{font-size:.58rem;line-height:1.25}.quick-inspector .card-flavor,.quick-inspector .inspect-hint{display:none}.quick-inspector .type-pill{font-size:.43rem;padding:2px 5px}.hand-area{padding:2px 4px;border-radius:9px}.hand-head{height:15px;font-size:.48rem}.hand-head strong{width:15px;min-width:15px;height:15px;font-size:.5rem}.hand-guidance{font-size:.42rem}.hand{height:84px;align-items:flex-start;gap:4px;padding:0 38px 2px}.hand .card-sm{--w: clamp(55px, 16vh, 72px)}.hand .card-sm .card-head{min-height:21px}.hand .card-sm .card-name{font-size:.43rem}.hand .card-info-button{width:21px;height:21px;right:4px;top:4px}.codex-fab{right:6px;bottom:6px;width:44px;min-height:44px;padding:0;justify-content:center}.codex-fab span{display:none}.codex{width:98vw;height:96dvh}.codex-head{padding:8px 12px 6px}.codex-head h1{font-size:1.1rem}.codex-head p,.eyebrow{font-size:.5rem}.codex-tools{padding:5px 10px}.search-field input{min-height:38px}.type-filters button{min-height:34px;padding:5px 8px;font-size:.58rem}.codex-body{grid-template-columns:minmax(0,1fr) 310px}.codex-results{padding:8px;gap:7px}.codex-results .card-sm{--w: 75px}.codex-detail{padding:10px}.codex-detail .card-details{grid-template-columns:100px 1fr;gap:10px}.codex-detail .card-details-preview .card{--w: 96px}.codex-detail .card-details-copy h2{font-size:1rem}.codex-detail .card-rules-text{font-size:.68rem}.codex-detail .card-flavor{font-size:.6rem}.codex-detail .card-facts{display:none}}@media (orientation: landscape) and (max-height: 950px){.lobby{padding:12px 16px}.lobby-card{padding:18px 26px;gap:10px}.lobby-title{font-size:1.8rem}.lobby-sub{line-height:1.25}.room-code{padding:9px 14px}.room-code-value{font-size:1.9rem}.lobby-players{gap:5px}.lobby-players li{min-height:44px;padding:7px 12px}.bot-remove{min-width:44px;min-height:44px;padding:4px}}@media (prefers-reduced-motion: reduce){.codex{animation:none}.card,.icon-button{transition:none}.card-clickable:hover{transform:none}}.game-board{grid-template-columns:minmax(0,1fr) clamp(112px,9vw,148px);grid-template-rows:minmax(118px,.62fr) minmax(190px,1fr) minmax(132px,.72fr);grid-template-areas:"opponents rail" "table rail" "mine rail"}.opponents{align-content:stretch}.player-panel{border-radius:11px}.opponents .player-panel,.my-area .player-panel{border-left:none;border-right:none;border-radius:6px;border-color:#e7ca8c42;background:linear-gradient(90deg,#09120cc7,#0e1a1280 18%,#0e1a1280 82%,#09120cc7),linear-gradient(180deg,#1320178c,#060e098c)}.opponents.few-foes .player-panel{display:grid;grid-template-columns:minmax(132px,172px) minmax(0,1fr);align-items:center;column-gap:12px}.opponents.few-foes .player-head{flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.opponents.few-foes .player-meta{margin-left:0}.opponents.few-foes .stable{margin-top:0}.opponents.few-foes .card-mini{--w: clamp(56px, 5.4vw, 74px)}.opponents.few-foes .stable-row .card-mini+.card-mini{margin-left:-10px}.avatar{position:relative;flex:none;width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(244,215,157,.55);border-radius:50%;color:#fff3d8;font-family:var(--font-display);font-weight:900;font-size:.82rem;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.25),transparent 44%),linear-gradient(160deg,#7a5b2c,#3c2c14 70%);filter:hue-rotate(calc(var(--seat, 0) * 44deg));box-shadow:inset 0 1px #ffffff40,0 3px 8px #00000080}.avatar-dot{position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;border:2px solid #0a130d;filter:hue-rotate(calc(var(--seat, 0) * -44deg))}.opponents.few-foes .avatar,.my-area .avatar{width:38px;height:38px;font-size:.95rem}.player-panel.is-turn .avatar{border-color:#ffd98f;box-shadow:0 0 12px #f0b95c8c,inset 0 1px #ffffff40}.card-head{padding-left:8px}.card-sm .card-head{padding-left:6px}.card-value{position:absolute;z-index:5;left:5px;top:5px;min-width:27px;height:27px;padding:0 5px;display:grid;place-items:center;border:1px solid rgba(56,36,12,.85);border-radius:50%;color:#201405;font-family:var(--font-display);font-weight:900;font-size:.95rem;line-height:1;background:radial-gradient(circle at 32% 28%,#fdf2d2,#e7cb90 55%,#a8834a);box-shadow:inset 0 1px #ffffffbf,0 0 0 2px #100b0599,0 3px 8px #0000008c}.card-value.value-2{color:#2a1502;background:radial-gradient(circle at 32% 28%,#ffe9a8,#ffb84d 56%,#c96a1a);box-shadow:inset 0 1px #fffc,0 0 0 2px #100b0599,0 0 12px #ffad4080}.card-value.value-0{color:#eafcdf;background:radial-gradient(circle at 32% 28%,#b9e79b,#5da45b 62%,#2e5e33)}.card-value.value-spell{color:#fdf3da;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.4),transparent 45%),linear-gradient(160deg,color-mix(in srgb,var(--card-color, #777) 82%,#fff),color-mix(in srgb,var(--card-color, #777) 72%,#000))}.card-value .glyph{width:15px;height:15px}.card-sm .card-value{min-width:23px;height:23px;font-size:.82rem;left:4px;top:4px}.card-sm .card-value .glyph{width:12px;height:12px}.card-mini .card-value{min-width:17px;height:17px;font-size:.64rem;left:3px;top:3px;padding:0 3px}.card-mini .card-value .glyph{width:9px;height:9px}.card-back .card-value{display:none}.side-rail{grid-area:rail;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;padding:10px 6px;border:1px solid rgba(231,202,140,.22);border-radius:14px;background:linear-gradient(180deg,#0b160fd1,#050c08db);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:inset 0 1px #ffffff0d,0 9px 24px #0000004d}.rail-score{width:100%;display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border:1px solid rgba(231,202,140,.18);border-radius:10px;background:linear-gradient(180deg,#16241a99,#08100b99);text-align:center}.rail-score.is-turn{border-color:#f0c56c99;box-shadow:0 0 16px #e4a84a38}.rail-score-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim);font-size:.6rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.rail-score strong{font-family:var(--font-display);font-weight:900;font-size:clamp(1.7rem,2.6vw,2.5rem);line-height:1.05;color:#e8f0f6;text-shadow:0 0 18px rgba(140,190,235,.35);font-variant-numeric:tabular-nums}.rail-score-you strong{color:#ffd98f;text-shadow:0 0 18px rgba(255,180,80,.4)}.rail-score-goal{color:var(--text-faint);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase}.rail-middle{display:flex;flex-direction:column;align-items:center;gap:7px}.rail-turn{max-width:100%;color:var(--text-dim);font-size:.6rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;text-align:center}.medallion{width:clamp(84px,7.4vw,112px);aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;cursor:pointer;border:3px solid #c9a051;border-radius:50%;color:#ffedc4;background:radial-gradient(circle at 34% 28%,rgba(255,236,190,.22),transparent 46%),repeating-conic-gradient(from 20deg,rgba(228,190,111,.1) 0 9deg,transparent 9deg 18deg),radial-gradient(circle,#574222,#2c2113 62%,#17100a);box-shadow:inset 0 0 0 2px #140d05d9,inset 0 0 22px #0009,0 0 0 1px #ffe09e40,0 8px 22px #0000008c;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.medallion strong{font-family:var(--font-display);font-weight:900;font-size:1.06rem;letter-spacing:.1em}.medallion em{font-style:normal;color:var(--text-dim);font-size:.53rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.medallion:not(.medallion-idle):hover{transform:scale(1.05)}.medallion:not(.medallion-idle):active{transform:scale(.97)}.medallion:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.medallion-draw{border-color:#ffcf7c;box-shadow:inset 0 0 0 2px #140d05d9,inset 0 0 22px #0009,0 0 0 1px #ffe09e66,0 0 26px #ffb24666,0 8px 22px #0000008c;animation:medallion-breathe 2.2s ease-in-out infinite}.medallion-pass{border-color:#f0937b;color:#ffe0d5;background:radial-gradient(circle at 34% 28%,rgba(255,205,190,.22),transparent 46%),radial-gradient(circle,#5c2a1c,#331711 62%,#190b08);box-shadow:inset 0 0 0 2px #180804d9,inset 0 0 22px #0009,0 0 26px #ee735c6b,0 8px 22px #0000008c;animation:medallion-breathe 1.3s ease-in-out infinite}.medallion-idle{cursor:default;color:var(--gold)}.medallion-idle.is-you{border-color:#ffd98f}.medallion-idle strong{font-size:1.65rem}@keyframes medallion-breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.16)}}.hand-area{transition:border-color .25s ease,box-shadow .25s ease}.hand-area.is-ready{border-color:#7ee08180;box-shadow:0 -8px 38px #54d06e38,inset 0 1px #9affaa1a}.hand-area.is-roar{border-color:#ee735c99;box-shadow:0 -8px 38px #ee735c4d,inset 0 1px #ffaa961f}.hand{overflow:visible;align-items:flex-end;padding-top:12px;padding-bottom:6px}.fan-slot{position:relative;flex:none;transform:rotate(calc(var(--k, 0) * 2.1deg)) translateY(calc(var(--k, 0) * var(--k, 0) * 1.4px));transform-origin:50% 120%;transition:transform .18s ease}.fan-slot+.fan-slot{margin-left:clamp(-58px,calc(-6px - var(--n, 5) * 4px),-12px)}.fan-slot:hover,.fan-slot:focus-within{transform:translateY(-16px) scale(1.07);z-index:99!important}.hand .card-clickable:hover{transform:none}.hand .card-sm{--w: clamp(88px, 8.6vw, 122px)}.quick-inspector{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:72;width:min(330px,calc(100vw - 24px));padding:0;overflow:hidden;border:1px solid var(--line-strong);border-radius:13px;background:linear-gradient(155deg,#16241bf7,#060e09f7);box-shadow:inset 0 1px #ffffff0f,0 14px 40px #0000008c}.inspector-toggle{width:100%;min-height:40px;display:flex;align-items:center;gap:8px;padding:8px 12px;border:0;cursor:pointer;color:var(--gold);background:transparent;font-size:.66rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.inspector-toggle .glyph{width:16px;height:16px}.inspector-toggle:focus-visible{outline:3px solid var(--teal);outline-offset:-3px}.inspector-chevron{margin-left:auto;transition:transform .18s ease}.quick-inspector.is-collapsed .inspector-chevron{transform:rotate(180deg)}.inspector-body{padding:4px 12px 12px}.quick-inspector.is-collapsed{width:auto}.action-pedestal{justify-content:center}.table-center{grid-template-columns:auto minmax(0,1fr) auto}@media (max-width: 1180px){.game-board{grid-template-columns:minmax(0,1fr) 108px;grid-template-areas:"opponents rail" "table rail" "mine rail"}.rail-score strong{font-size:1.5rem}.medallion{width:80px}}@media (orientation: portrait) and (max-width: 800px){.game-board{display:flex;flex-direction:column}.side-rail{order:4;flex-direction:row;justify-content:space-between;padding:6px 10px;border-radius:12px}.rail-score{width:auto;flex:1;padding:4px 8px}.rail-score strong{font-size:1.35rem}.rail-middle{flex-direction:row;gap:8px}.rail-turn{display:none}.medallion{width:72px}.medallion strong{font-size:.85rem}.medallion-idle strong{font-size:1.2rem}.fan-slot+.fan-slot{margin-left:clamp(-48px,calc(-4px - var(--n, 5) * 4px),-10px)}.quick-inspector{bottom:max(8px,env(safe-area-inset-bottom));width:min(300px,calc(100vw - 70px))}}@media (orientation: landscape) and (max-height: 650px){.game-board{grid-template-columns:minmax(0,1fr) 155px 92px;grid-template-rows:67px minmax(0,1fr);grid-template-areas:"opponents opponents opponents" "table mine rail"}.side-rail{padding:5px 3px;gap:4px;border-radius:9px}.rail-score{padding:3px 2px;border-radius:7px}.rail-score strong{font-size:1.05rem}.rail-score-name,.rail-score-goal,.rail-turn{font-size:.44rem}.medallion{width:54px;border-width:2px}.medallion strong{font-size:.62rem}.medallion em{display:none}.medallion-idle strong{font-size:.95rem}.opponents.few-foes .player-panel{grid-template-columns:108px minmax(0,1fr)}.opponents.few-foes .card-mini{--w: 46px}.avatar{width:22px;height:22px;font-size:.6rem}.opponents.few-foes .avatar,.my-area .avatar{width:24px;height:24px;font-size:.62rem}.fan-slot+.fan-slot{margin-left:clamp(-40px,calc(-4px - var(--n, 5) * 3px),-8px)}.quick-inspector{display:none}.card-mini .card-value{min-width:14px;height:14px;font-size:.52rem}}@media (prefers-reduced-motion: reduce){.medallion-draw,.medallion-pass{animation:none}.fan-slot{transition:none}.fan-slot:hover,.fan-slot:focus-within{transform:none}}.game:before{background-image:linear-gradient(180deg,#02090624,#030a0752),url(/battlefield-arena.webp)}.game:after{background:radial-gradient(ellipse at center,transparent 56%,rgba(2,7,5,.4) 100%)}.topbar{border-color:#e7ca8c24;background:#050d098c;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:none}.opponents .player-panel,.my-area .player-panel{border:0;border-top:1px solid rgba(231,202,140,.2);border-bottom:1px solid rgba(231,202,140,.2);border-radius:0;background:linear-gradient(180deg,#040a064d,#040a061f);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.player-panel.is-turn{border-color:#f0c56c99;box-shadow:inset 0 0 40px #e3aa4b1a;background:linear-gradient(180deg,#18120552,#0a080324)}.player-name,.stable-empty{text-shadow:0 1px 3px rgba(0,0,0,.85)}.table-center{border:0;border-radius:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.pile-label{color:#d6cdb4;text-shadow:0 1px 3px rgba(0,0,0,.9)}.turn-sigil{background:radial-gradient(circle,rgba(231,172,78,.1),rgba(8,17,12,.3) 60%,transparent 61%),repeating-radial-gradient(circle,transparent 0 17px,rgba(229,194,117,.07) 18px 19px)}.side-rail{border:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;padding:6px 2px}.rail-score{border:0;background:none;padding:4px 2px}.rail-score.is-turn{box-shadow:none}.rail-score strong{text-shadow:0 2px 6px rgba(0,0,0,.95),0 0 22px rgba(140,190,235,.55)}.rail-score-you strong{text-shadow:0 2px 6px rgba(0,0,0,.95),0 0 24px rgba(255,180,80,.6)}.rail-score.is-turn strong{text-shadow:0 2px 6px rgba(0,0,0,.95),0 0 26px rgba(255,214,130,.8)}.rail-score-name,.rail-score-goal,.rail-turn{color:#e3d9c2;text-shadow:0 1px 3px rgba(0,0,0,.9)}.hand-area,.hand-area.is-ready,.hand-area.is-roar{border:0;border-radius:0;background:none;box-shadow:none;padding:0;overflow:visible;margin-bottom:calc(-30px - env(safe-area-inset-bottom,0px))}.hand{position:relative;padding:12px 44px 0}.hand:before{content:"";position:absolute;left:50%;bottom:-44px;transform:translate(-50%);width:min(700px,92%);height:110px;border-radius:50%;pointer-events:none;opacity:0;filter:blur(4px);transition:opacity .25s ease}.hand-area.is-ready .hand:before{opacity:1;background:radial-gradient(ellipse,rgba(84,208,110,.45),transparent 68%)}.hand-area.is-roar .hand:before{opacity:1;background:radial-gradient(ellipse,rgba(238,115,92,.5),transparent 68%)}.fan-slot:hover,.fan-slot:focus-within{transform:translateY(-44px) scale(1.08);z-index:99!important}.hand-empty{text-shadow:0 1px 3px rgba(0,0,0,.9);padding-bottom:34px}@media (orientation: portrait) and (max-width: 800px){.hand-area,.hand-area.is-ready,.hand-area.is-roar{position:sticky;bottom:0;margin-bottom:calc(-24px - env(safe-area-inset-bottom,0px))}.fan-slot:hover,.fan-slot:focus-within{transform:translateY(-34px) scale(1.06)}}@media (orientation: landscape) and (max-height: 650px){.hand-area,.hand-area.is-ready,.hand-area.is-roar{margin-bottom:-16px}.hand{height:84px;padding-top:4px}.fan-slot:hover,.fan-slot:focus-within{transform:translateY(-26px) scale(1.05)}}@media (prefers-reduced-motion: reduce){.fan-slot:hover,.fan-slot:focus-within{transform:translateY(-44px)}}
