@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700&family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{color:#f3e8e6;font-synthesis:none;text-rendering:optimizelegibility;background:#050203;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:#050203;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.45}.hidden{display:none!important}.site-shell{width:100%;margin:0;padding-bottom:4rem}.site-header{z-index:5;border-bottom:1px solid #2a1214;justify-content:space-between;align-items:center;height:76px;padding-inline:clamp(1rem,2vw,2rem);display:flex;position:relative}.site-shell.game-active{width:100%;padding:0 .65rem}.game-header{align-items:center;gap:1rem;display:flex}.game-header>div{justify-items:end;gap:.15rem;display:grid}.game-header strong{font:600 .9rem Space Grotesk,sans-serif}.phase-label{color:#c9a0a0;font-size:.72rem;font-weight:600}.round-label{color:#e8cfcf;background:#100e0e;border:1px solid #3d2226;border-radius:6px;padding:.35rem .6rem;font-size:.72rem;font-weight:700}.brand{color:#f6eaea;letter-spacing:.08em;align-items:center;gap:.7rem;font:700 1rem Cinzel,serif;text-decoration:none;display:flex}.brand-mark{color:#f3e8e6;letter-spacing:.06em;background:#9b1218;border:1px solid #e01122;border-radius:4px;place-items:center;width:35px;height:35px;font-family:Cinzel,serif;font-size:.62rem;display:grid}.account-area{margin-left:auto;position:relative}.admin-nav{gap:.35rem;margin-left:1.4rem;display:flex}.admin-tab{color:#c4b0b0;background:0 0;border:1px solid #0000;border-radius:7px;padding:.45rem .8rem;font-size:.8rem;font-weight:700}.admin-tab.is-active{color:#e8cfcf;background:#141010;border-color:#4a2226}.cards-view,.decks-view{padding:1.5rem clamp(1rem,2vw,2rem) 3rem}.deck-studio{grid-template-columns:20rem minmax(0,1fr);align-items:start;gap:1.35rem;display:grid}.deck-library,.deck-builder{background:#0a0808f0;border:1px solid #3a1c20;border-radius:16px;padding:1.4rem}.deck-library{min-height:calc(100vh - 110px);position:sticky;top:1rem}.deck-library .lobby-heading{align-items:flex-start}.deck-library .login-button{padding:.65rem .8rem}.deck-list{gap:.55rem;margin-top:1rem;display:grid}.deck-list-item{color:#e6d6d4;text-align:left;background:#100c0d;border:1px solid #32181c;border-radius:9px;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.8rem;display:flex}.deck-list-item.is-selected{background:#1a1012;border-color:#9b2830}.deck-list-item span{gap:.25rem;display:grid}.deck-list-item em{color:#e6b65c;text-transform:uppercase;font-size:.67rem;font-style:normal}.deck-list-item small{color:#9a7878;white-space:nowrap}.deck-builder{min-height:calc(100vh - 110px)}.deck-builder-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.deck-builder-heading>div:first-child{flex:1}.deck-builder-heading input{max-width:32rem;font:700 1.5rem Cinzel,serif}.deck-count{color:#927b7b;align-items:baseline;gap:.35rem;display:flex}.deck-count strong{color:#e84545;font:700 1.8rem Space Grotesk,sans-serif}.deck-count strong.is-complete{color:#6ecb80}.deck-builder-actions{align-items:center;gap:.65rem;margin-top:.85rem;display:flex}.deck-builder-actions button:not(.text-button){color:#f4e8e8;background:#e01122;border-radius:8px;padding:.72rem 1rem;font-weight:700}.deck-builder-actions .secondary-button{color:#f0d49b;background:#30230f;border:1px solid #574522}.deck-builder-actions .text-button{margin:0 0 0 auto}.deck-workspace{grid-template-columns:minmax(0,1fr) 18rem;align-items:start;gap:1rem;margin-top:1rem;display:grid}.deck-collection{min-width:0}.deck-column{min-width:0;position:sticky;top:1rem}.deck-tray-heading{justify-content:space-between;align-items:center;gap:.6rem;margin:0 0 .55rem;display:flex}.deck-tray-heading span{color:#8f7777;font-size:.72rem}.deck-drop-zone{background:#080606;border:1px dashed #5c2b31;border-radius:12px;align-content:start;gap:.35rem;min-height:12rem;max-height:calc(100vh - 16rem);padding:.8rem;transition:border-color .12s,background .12s,box-shadow .12s;display:grid;overflow-y:auto}.deck-drop-zone.is-drag-over{background:#170b0d;border-color:#e84545;box-shadow:inset 0 0 0 1px #e84545}.deck-drop-empty{color:#7f6565;text-align:center;width:100%}.deck-tray-card{color:#eadcdc;cursor:pointer;background:#110c0d;border:1px solid #32181c;border-radius:7px;justify-content:space-between;align-items:center;gap:.75rem;padding:.62rem .75rem;font-size:.85rem;font-weight:700;display:flex}.deck-tray-card strong{color:#e6b65c;white-space:nowrap;font-size:.78rem}.deck-tray-card:hover,.deck-tray-card:focus-visible{background:#19100e;border-color:#754127}.deck-tray-card:active,.deck-card:active{cursor:grabbing}.deck-collection-label{margin:0 0 .55rem}.deck-card-filters{grid-template-columns:minmax(12rem,1fr) minmax(10rem,.4fr);gap:.65rem;margin:.25rem 0 1rem;display:grid}.deck-card-pool{border:1px solid #0000;border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.9rem;padding:.6rem;transition:border-color .12s,background .12s;display:grid}.deck-card-pool.is-drag-over{background:#130e0b;border-color:#754127}.deck-card-pool>.empty-state{grid-column:1/-1}.deck-card{cursor:pointer;min-width:0;transition:filter .12s,opacity .12s,transform .12s}.deck-card.is-in-deck{filter:none}.deck-card:hover:not(.is-unavailable){transform:translateY(-3px)}.deck-card.is-unavailable{cursor:default;opacity:.42;filter:grayscale(.35)}.deck-drag-preview{z-index:9999!important;pointer-events:none!important;opacity:1!important;margin:0!important;position:fixed!important;top:-200vh!important;left:-200vw!important;transform:none!important}.deck-card .card-face{aspect-ratio:294/420;width:100%;position:relative;inset:auto}.card-studio{grid-template-columns:36rem minmax(0,1fr);align-items:start;gap:1.35rem;display:grid}.card-library,.card-editor{background:#0a0808f0;border:1px solid #3a1c20;border-radius:16px;padding:1.4rem}.card-library{flex-direction:column;height:calc(100vh - 110px);display:flex;position:sticky;top:1rem;overflow:hidden}.card-library-list{scrollbar-width:thin;scrollbar-color:#3a1c20 transparent;flex:1;min-height:0;overflow:auto}.card-library .lobby-heading{flex-direction:column;align-items:stretch;gap:.75rem}.card-library-controls{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:.65rem;margin-top:1rem;display:grid}.card-library-controls label{color:#a89090;gap:.35rem;font-size:.7rem;font-weight:700;display:grid}.card-library-controls input,.card-library-controls select{padding:.62rem .7rem}.card-filter-count{color:#806b6b;margin:.6rem 0 0;font-size:.72rem}.card-library-list{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:.55rem;margin-top:.55rem;display:grid}.empire-heading{color:#e84545;letter-spacing:.16em;text-transform:uppercase;grid-column:1/-1;margin:.85rem 0 .15rem;font-family:Cinzel,serif;font-size:.68rem;font-weight:700}.empire-heading:first-child{margin-top:0}.card-library-list>.empty-state{grid-column:1/-1}.library-card{color:#e6d6d4;text-align:left;background:#0a0808;border:1px solid #32181c;border-radius:10px;grid-template-columns:3.6rem 1fr;place-items:center start;gap:.65rem;width:100%;padding:.45rem .55rem;font-size:.8rem;display:grid;overflow:visible}.library-card span{overflow-wrap:anywhere;gap:.15rem;min-width:0;display:grid}.library-card small{color:#9a7878;font-size:.7rem}.library-card .card-face,.card-editor-preview .card-face{height:auto;position:relative;inset:auto;overflow:hidden}.library-card .card-face{aspect-ratio:294/420;width:3.6rem}.library-card.is-selected{border-color:#8a242c}.card-editor{align-content:start;gap:.7rem;min-height:calc(100vh - 110px);display:grid}.card-editor h2{margin:0;font:700 1.7rem Cinzel,serif}.card-editor label,.card-stat-row label{color:#d0c0c0;font-size:.86rem;font-weight:700}.card-editor input,.card-editor select{padding:.9rem 1rem;font-size:1.05rem}.card-editor-preview{place-items:center;min-height:0;margin:.2rem 0 .4rem;display:grid}.card-editor-preview .card-face{aspect-ratio:294/420;width:13.5rem}.art-drop{background:#0a0808;border:1px dashed #4a2428;border-radius:12px;justify-items:start;gap:.5rem;padding:.95rem 1rem;transition:border-color .12s,background .12s;display:grid}.art-drop.is-drop-target{background:#e0112233;border-color:#e01122}.art-drop-thumb{aspect-ratio:294/420;object-fit:cover;pointer-events:none;border-radius:6px;width:4.6rem}.art-drop-hint{color:#9a7878;margin:0;font-size:.82rem}.art-drop .text-button{margin-top:.15rem}.cards-view .card-cost,.cards-view .card-attack,.cards-view .card-health{font-size:1.15rem}.cards-view .card-name{font-size:.72rem}.card-editor-preview .card-name{letter-spacing:.02em;height:11%;font-size:.92rem;bottom:16%}.card-editor-preview .card-race{font-size:.78rem;bottom:10%}.library-card .card-race{font-size:.4rem}.library-card .card-cost,.library-card .card-attack,.library-card .card-health{font-size:.55rem}.library-card .card-name{font-size:.32rem}.card-stat-row{grid-template-columns:1fr 1fr 1fr;gap:.75rem;display:grid}.card-stat-row.is-spell{grid-template-columns:1fr}.card-stat-row:has(#card-kind){grid-template-columns:1fr 1fr 1fr}.card-stat-row label{gap:.35rem;display:grid}.starter-toggle{color:#e6d6d4;align-items:center;gap:.55rem;font-size:1rem;display:flex}.starter-toggle input{width:1.1rem;height:1.1rem}.ability-list{gap:.7rem;display:grid}.ability-row{background:#0a0808;border:1px solid #32181c;border-radius:10px;grid-template-columns:1fr 1fr;gap:.55rem;padding:.75rem;display:grid}.ability-row .ability-amount{grid-column:1}.ability-row .ability-target{grid-column:2}.ability-row .ability-remove{grid-column:1/-1;justify-self:start}.card-editor-actions{align-items:center;gap:.7rem;margin-top:.5rem;display:flex}.card-editor-actions button[type=submit]{color:#f4e8e8;background:#e01122;border-radius:8px;padding:.9rem 1.35rem;font-size:1rem;font-weight:700}@media (width<=900px){.card-studio,.deck-studio{grid-template-columns:1fr}.deck-library{min-height:0;position:static}}@media (width<=760px){.deck-workspace{grid-template-columns:1fr}.deck-column{grid-row:1;position:static}.deck-drop-zone{max-height:18rem}}.login-button,.create-room-form button,.inline-form button,.stacked-form button{color:#f4e8e8;background:#e01122;border-radius:8px;padding:.78rem 1.15rem;font-weight:700}.login-button:hover,.create-room-form button:hover,.inline-form button:hover,.stacked-form button:hover{background:#ff2a32}.account-button{color:#f0e4e2;background:#111010;border-radius:24px;align-items:center;gap:.6rem;padding:.4rem .55rem .4rem .4rem;display:flex}.avatar{color:#f4e8e8;background:#e01122;border-radius:50%;place-items:center;width:31px;height:31px;font-size:.7rem;font-weight:700;display:grid}.chevron{color:#8a7474}.account-menu{background:#0b0909;border:1px solid #3a1c20;border-radius:12px;gap:.3rem;width:245px;padding:1rem;display:grid;position:absolute;top:calc(100% + .65rem);right:0;box-shadow:0 18px 60px #000a}.account-menu strong{font-family:Space Grotesk,sans-serif}.account-menu>span{color:#9a8080;font-size:.82rem}.menu-label,.section-label,.eyebrow{font-family:Cinzel,serif}.menu-label,.section-label{color:#e84545;letter-spacing:.16em;margin:0 0 .45rem;font-size:.67rem;font-weight:700}.text-button{color:#c8b4b4;background:0 0;justify-self:start;margin-top:.7rem;padding:0;font-size:.82rem}.danger{color:#e28383}.home-view{min-height:calc(100vh - 76px);padding:3.5rem clamp(1rem,2vw,2rem) 4rem;display:block}.hero h1{letter-spacing:.01em;margin:0;font:700 clamp(2.8rem,5.6vw,5rem)/.98 Cinzel,serif}.hero>p:last-child{color:#a89090;max-width:520px;margin:1.5rem 0 0;line-height:1.65}.eyebrow{color:#e84545;letter-spacing:.2em;margin:0 0 1rem;font-size:.72rem;font-weight:700}.lobby-card{background:#0a0808f0;border:1px solid #3a1c20;border-radius:16px;flex-direction:column;min-height:28.5rem;padding:1.6rem;display:flex;box-shadow:0 28px 100px #0006}.lobby-heading{justify-content:space-between;align-items:center;display:flex}.lobby-heading h2,.game-toolbar h2,.login-dialog h2{align-items:center;gap:.55rem;margin:.15rem 0 0;font:700 1.5rem Cinzel,serif;display:flex}.count-pill{color:#c9a0a0;letter-spacing:0;background:#100e0e;border:1px solid #3a1c20;border-radius:999px;place-items:center;min-width:1.6rem;height:1.35rem;padding:0 .4rem;font-family:DM Sans,sans-serif;font-size:.68rem;font-weight:700;display:inline-grid}.icon-button{color:#c4b0b0;background:#121010;border:1px solid #3d1e22;border-radius:8px;width:36px;height:36px;font-size:1.15rem}.create-room-form{justify-content:flex-end;gap:.65rem;margin-top:1.35rem;display:flex}.create-room-form .secondary-button{color:#f0d49b;background:linear-gradient(#30230f,#1d150a);border-color:#574522}.create-room-form .secondary-button:hover{background:linear-gradient(#453217,#251a0b);border-color:#9b7430}input,select{color:#f2e6e4;background:#080606;border:1px solid #3d1e22;border-radius:8px;outline:0;width:100%;min-width:0;padding:.78rem .9rem}input:focus,select:focus{border-color:#e01122;box-shadow:0 0 0 3px #e0112233}.message{color:#e28383;min-height:1.1rem;margin:.65rem 0;font-size:.8rem}.room-list{scrollbar-width:thin;scrollbar-color:#3a1c20 transparent;align-content:start;gap:.55rem;height:20rem;display:grid;overflow:auto}.room-row{background:#0a0808;border:1px solid #32181c;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;padding:.75rem;display:grid}.room-row:hover{border-color:#5a2a2e}.room-icon{color:#d48a8a;background:#141010;border-radius:9px;place-items:center;width:39px;height:39px;font-size:.7rem;font-weight:700;display:grid}.room-row strong,.room-row span{display:block}.room-row span{color:#8a7474;margin-top:.2rem;font-size:.76rem}.room-row button{color:#e8cfcf;background:#141010;border:1px solid #4a2226;border-radius:7px;padding:.55rem .8rem;font-size:.78rem;font-weight:700}.empty-state{color:#b09a9a;text-align:center;align-content:center;justify-items:center;height:100%;min-height:12rem;padding:1.5rem 1rem;display:grid}.empty-state>span{color:#a04848;font-size:1.8rem}.empty-state strong{color:#e6d6d4;margin-top:.5rem}.empty-state p{margin:.35rem 0 0;font-size:.82rem}.game-view{place-items:center;height:calc(100vh - 76px);padding:0;display:grid}.game-stage{place-items:center;width:100%;min-width:0;height:100%;display:grid}.game-view.watching{align-items:stretch;place-items:unset;display:flex}.game-view.watching .game-stage{width:70%}.game-view.watching .board{width:min(100%,177.778vh - 135.111px)}.stack-panel{background:#0a0808;border-left:1px solid #3a1c20;flex-direction:column;width:30%;min-width:16rem;height:100%;padding:1rem 1.1rem 1.2rem;display:flex;overflow:hidden}.stack-panel-header h2{margin:.15rem 0 .85rem;font:600 1.15rem Space Grotesk,sans-serif}.stack-current{gap:.55rem;max-height:42%;margin-bottom:1rem;display:grid;overflow:auto}.stack-idle{color:#7a6464;margin:0;font-size:.82rem}.stack-frame{background:#0b0909;border:1px solid #3a1c20;border-radius:8px;padding:.65rem .75rem}.stack-frame strong{font-size:.82rem;display:block}.stack-frame span{color:#b08988;font-size:.72rem}.stack-frame ol{color:#e0d0ce;margin:.4rem 0 0;padding-left:1.1rem;font-size:.75rem}.stack-frame-top{border-color:#8a242c}.stack-frame-waiting{border-color:#e01122}.stack-log{color:#9a8484;flex:1;margin:.4rem 0 0;padding:0;font-size:.72rem;list-style:none;overflow:auto}.stack-log li{border-bottom:1px solid #2a1416;padding:.28rem 0}.game-view.watching .player-hand,.game-view.watching .opponent-hand{pointer-events:none}.opponent-hand .hand-card{pointer-events:none;transform-origin:50% -30%;cursor:default}.connection-status{color:#908080;font-size:.7rem}.connection-status span{background:#777;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.connection-status.online span{background:#65c79a;box-shadow:0 0 10px #65c79a}.waiting-status span{background:#e01122}.ended-status span{background:#d06e6e}.exit-button{color:#e3a0a0;background:#161010;border:1px solid #4a3535;border-radius:8px;padding:.6rem .85rem;font-size:.8rem;font-weight:700}.waiting-view{background:#0a0808;border:1px solid #3a1c20;border-radius:12px;place-items:center;width:100%;height:100%;display:grid}.waiting-card{text-align:center;width:min(520px,100% - 2rem)}.waiting-symbol{color:#e01122;background:#100e0e;border:1px solid #6b2a2c;border-radius:50%;place-items:center;width:58px;height:58px;margin:0 auto 1.2rem;font-size:1.4rem;display:grid}.waiting-card h2{margin:0;font:700 clamp(1.8rem,5vw,2.7rem) Cinzel,serif}.waiting-card>p:not(.section-label){color:#9a8080;margin:.7rem auto 1.5rem}.waiting-players{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.player-slot{text-align:left;background:#0b0909;border:1px solid #3a1c20;border-radius:10px;align-items:center;gap:.7rem;padding:.75rem;display:flex}.player-slot>span{color:#f4e8e8;background:#e01122;border-radius:50%;place-items:center;width:36px;height:36px;font-size:.7rem;font-weight:700;display:grid}.player-slot strong{font-size:.85rem}.player-slot.empty{color:#746060;background:0 0;border-style:dashed}.player-slot.empty>span{color:#7a6464;background:#282925}.waiting-view.ended .waiting-symbol{color:#e28383;background:#140808;border-color:#673f3f}.board{aspect-ratio:16/9;cursor:default;background:#0a0808 url(/assets/board/board.png) 50%/contain no-repeat;border:0;border-radius:0;width:min(100vw,177.778vh - 135.111px);height:auto;position:relative;overflow:hidden;box-shadow:0 20px 80px #0009;container-type:inline-size}.board.combat-resolving,.board.ability-resolving{cursor:wait}.board.combat-resolving>:not(.health-counter),.board.ability-resolving>:not(.health-counter,.damage-number){pointer-events:none}.damage-number{z-index:50;color:#ff493d;text-shadow:0 .1cqw .15cqw #250000,0 0 .55cqw #ff1d00;pointer-events:none;font:900 clamp(13px,2.2cqw,38px)/1 Space Grotesk,sans-serif;position:absolute}.health-counter{z-index:6;color:#fff8eb;font-variant-numeric:tabular-nums;text-align:center;text-shadow:0 .12cqw .2cqw #3a0000,0 0 .5cqw #ff8a4e;pointer-events:none;place-items:center;width:7.4cqw;height:7.4cqw;font:700 clamp(9px,2.1cqw,36px)/1 Space Grotesk,sans-serif;display:grid;position:absolute;transform:translate(-50%,-50%)}.opponent-health{top:41%;left:15.85%}.own-health{top:58.5%;left:15.85%}.mana-counter{z-index:6;color:#fff;font-variant-numeric:tabular-nums;text-align:center;text-shadow:0 .1cqw .22cqw #001a4f,0 0 .45cqw #70d9ff;pointer-events:none;place-items:center;width:5cqw;height:4cqw;font:700 clamp(8px,1.55cqw,27px)/1 Space Grotesk,sans-serif;display:grid;position:absolute;transform:translate(-50%,-50%)}.opponent-mana{top:41.5%;left:91.6%}.opponent-reserve{top:41.5%;left:96%}.own-mana{top:58.2%;left:91.6%}.own-reserve{top:58.2%;left:96%}.turn-indicator{z-index:7;cursor:pointer;background:0 0;border-radius:50%;width:7.4cqw;height:7.4cqw;padding:0;position:absolute;top:49.7%;right:12.5%;transform:translateY(-50%)}.turn-indicator:disabled{opacity:1;cursor:default}.turn-indicator:not(:disabled):hover{filter:brightness(1.15)drop-shadow(0 0 .5cqw #fff5)}.turn-indicator img{filter:drop-shadow(0 .2cqw .3cqw #0008);pointer-events:none;border-radius:50%;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.turn-base{width:100%;height:100%}.turn-player{object-fit:contain;width:100%;height:100%}.turn-timer{z-index:2;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 .1cqw .2cqw #000,0 0 .4cqw #000;pointer-events:none;place-items:center;font:700 clamp(10px,1.55cqw,27px)/1 Space Grotesk,sans-serif;display:grid;position:absolute;inset:0}.turn-timer.urgent{color:#ffd0c4;text-shadow:0 .1cqw .2cqw #310000,0 0 .5cqw #ff3b1f}.turn-token{z-index:8;object-fit:contain;transform-origin:50%;backface-visibility:hidden;filter:drop-shadow(0 .2cqw .3cqw #0009);pointer-events:none;width:5.2cqw;height:auto;position:absolute;right:13.45%}.turn-token-above{top:32.7%}.turn-token-below{bottom:32.7%}.slot-row{z-index:4;pointer-events:auto;justify-content:center;align-items:center;gap:.25cqw;width:54%;display:flex;position:absolute;left:23.1%}.opponent-board{height:17.2%;top:15.8%}.own-board{height:17.2%;bottom:16.8%}.opponent-battle{height:13%;top:35%}.own-battle{height:13%;bottom:35.5%}.game-slot{pointer-events:auto;touch-action:none;background:0 0;border:0;border-radius:.3cqw;flex:0 0 6.35cqw;height:100%;padding:.1cqw;position:relative}.game-slot.card-flying{z-index:8}.board.choosing-target .game-slot.occupied:not(.choice-target){filter:saturate(.45)brightness(.65)}.choice-target{animation:.85s ease-in-out infinite alternate choice-target-pulse;z-index:10!important;cursor:crosshair!important;pointer-events:auto!important}.game-slot.choice-target{border-radius:.45cqw;box-shadow:0 0 0 .18cqw #f4c15d,0 0 1.1cqw #ff9d22}.health-counter.choice-target{border-radius:50%;box-shadow:0 0 0 .18cqw #f4c15d,0 0 1.1cqw #ff9d22}.choice-selected{z-index:10!important;filter:brightness(1.25)drop-shadow(0 0 .8cqw #fff0a0)!important}@keyframes choice-target-pulse{0%{filter:brightness()drop-shadow(0 0 .15cqw #f4c15d)}to{filter:brightness(1.25)drop-shadow(0 0 .65cqw #ff9d22)}}.game-slot .card-face{aspect-ratio:294/420;width:6.5cqw;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.battle-slot .card-face,.battle-slot .block-holder{aspect-ratio:294/420;width:6.5cqw;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.battle-slot .block-holder{width:6.5cqw}.game-slot .death-shred{z-index:12;pointer-events:none;will-change:transform, opacity, filter}.block-holder{opacity:.82;object-fit:fill;filter:drop-shadow(0 .25cqw .35cqw #0009);pointer-events:none;height:auto;display:block}.battle-slot.drag-over .block-holder{opacity:1;filter:brightness(1.2)drop-shadow(0 0 .45cqw #d9e1e8aa)}.game-slot .card-name,.draw-card-animation .card-name{font-size:.5cqw}.game-slot .card-cost,.draw-card-animation .card-cost{font-size:.8cqw}.game-slot .card-attack,.game-slot .card-health,.draw-card-animation .card-attack,.draw-card-animation .card-health{font-size:.72cqw}.game-slot .card-race,.draw-card-animation .card-race{font-size:.48cqw}.deck-pile{z-index:4;width:7.1cqw;height:10cqw;position:absolute}.deck-pile img{object-fit:fill;filter:drop-shadow(0 .35cqw .35cqw #0008);pointer-events:none;width:115%;height:115%}.deck-pile span{opacity:0;color:#ffe8e8;white-space:nowrap;pointer-events:none;background:#4a0c10ee;border:.1cqw solid #e01122;border-radius:1cqw;place-items:center;min-width:2.7cqw;padding:.18cqw .3cqw;font:700 clamp(5px,.72cqw,12px) Space Grotesk,sans-serif;transition:opacity .12s,transform .12s;display:grid;position:absolute;bottom:-.1cqw;right:-.35cqw;transform:translateY(.25cqw);box-shadow:0 .2cqw .4cqw #000a}.deck-pile:hover span{opacity:1;transform:translateY(0)}.opponent-deck{top:12%;left:12.8%}.own-deck{bottom:15%;left:12.8%}.opponent-hand,.player-hand{z-index:5;pointer-events:none;justify-content:center;width:42cqw;height:14.5cqw;display:flex;position:absolute;left:50%;transform:translate(-50%)}.opponent-hand{align-items:flex-start;top:-3.5%}.player-hand{align-items:flex-end;transition:width .2s cubic-bezier(.22,.8,.3,1);bottom:-3.5%}.player-hand.expanded{pointer-events:auto;width:90cqw;height:18cqw}.opponent-hand>img,.opponent-hand>.hand-card{--rotation:0deg;--rise:0%;aspect-ratio:294/420;object-fit:fill;filter:none;width:7.1cqw;transform:translateY(var(--rise)) rotate(var(--rotation));transform-origin:50% -30%;-webkit-user-select:none;user-select:none;margin:0 -.75cqw;transition:filter .16s,width .16s,margin .16s;position:relative}.opponent-hand>img.remote-hover,.opponent-hand>.hand-card.remote-hover{z-index:20;filter:none;transform:translateY(18%)rotate(0)scale(1.28)}.opponent-hand>img.remote-drag-origin,.opponent-hand>.hand-card.remote-drag-origin{opacity:0}.hand-card{--rotation:0deg;--drop:0%;aspect-ratio:294/420;width:7.1cqw;transform:translateY(var(--drop)) rotate(var(--rotation));transform-origin:50% 130%;filter:none;cursor:grab;touch-action:none;pointer-events:auto;margin:0 -.75cqw;transition:transform .2s cubic-bezier(.22,.8,.3,1),filter .16s,width .2s cubic-bezier(.22,.8,.3,1),margin .2s cubic-bezier(.22,.8,.3,1);position:relative}.hand-card:active{cursor:grabbing}.player-hand.expanded .hand-card{width:var(--spread-card-width,7.1cqw);transform-origin:50% 100%;margin:0 .1cqw;transform:translateY(-30%)rotate(0)}.player-hand.expanded .hand-card:not(.just-dropped):hover{z-index:20;filter:none;transform:translateY(-30%)rotate(0)scale(1.28)}.hand-card.drag-origin{opacity:0;flex-basis:0;width:0;margin:0}.card-face{border-radius:8%;position:absolute;inset:0;overflow:hidden}.card-art{object-fit:cover;border-radius:8%;width:86%;height:92%;position:absolute;inset:4% 7%}.card-frame{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.card-cost,.card-attack,.card-health,.card-name{z-index:2;color:#fff;text-shadow:0 1px 2px #000;place-items:center;font-family:Space Grotesk,sans-serif;font-weight:700;display:grid;position:absolute}.card-cost{width:15%;height:15%;font-size:1cqw;top:1.2%;left:4%}.card-name{text-align:center;font-size:.58cqw;line-height:1;bottom:17%;left:13%;right:13%}.card-attack,.card-health{width:24%;height:13%;font-size:1cqw;bottom:1.2%}.card-attack{left:3%}.card-health{right:3%}.card-race{z-index:3;color:#fff;font-variant:small-caps;letter-spacing:.08em;text-align:center;text-transform:lowercase;text-shadow:0 1px 2px #000,0 0 4px #000c;pointer-events:none;font-family:Cinzel,serif;font-size:.52cqw;font-weight:700;line-height:1;position:absolute;bottom:10%;left:22%;right:22%}.drag-preview{z-index:1000;pointer-events:none;filter:none;margin:0;position:fixed;transform:translate(-50%,-50%)scale(1.05)}.play-flight{z-index:4000;pointer-events:none;transform-origin:0 0;filter:none;margin:0;position:fixed;transform:none}.play-flight .card-face{width:100%;height:100%;position:absolute;inset:0;transform:none}.play-flight .card-name{font-size:clamp(5px,.58vw,10px)}.play-flight .card-cost{font-size:clamp(8px,1.15vw,18px)}.play-flight .card-attack,.play-flight .card-health{font-size:clamp(7px,1vw,16px)}.play-flight .card-race{font-size:clamp(6px,.72vw,11px)}.draw-card-animation{z-index:5;perspective:1000px;pointer-events:none;filter:none;will-change:transform;backface-visibility:hidden;position:absolute}.draw-card-inner{width:100%;height:100%;transform-style:preserve-3d;will-change:transform;position:relative}.draw-card-back,.draw-card-front{backface-visibility:hidden;border-radius:8%;width:100%;height:100%;position:absolute;inset:0}.draw-card-back{object-fit:fill}.draw-card-back-reverse,.draw-card-front{transform:rotateY(180deg)}.drag-preview .card-face{width:100%;height:100%;position:absolute;inset:0;transform:none}.drag-preview .card-name{font-size:clamp(5px,.58vw,10px)}.drag-preview .card-cost{font-size:clamp(8px,1.15vw,18px)}.drag-preview .card-attack,.drag-preview .card-health{font-size:clamp(7px,1vw,16px)}.drag-preview .card-race{font-size:clamp(6px,.72vw,11px)}.cursors{z-index:30;pointer-events:none;position:absolute;inset:0}.cursor{pointer-events:none;align-items:flex-start;gap:.3rem;transition:left 45ms linear,top 45ms linear;display:flex;position:absolute;transform:translate(-4px,-4px)}.remote-drag-card{aspect-ratio:294/420;object-fit:fill;filter:none;width:7.1cqw;position:absolute;top:0;left:0;transform:translate(-50%,-50%)rotate(3deg)}.remote-drag-card-face{height:auto}.remote-drag-card-face .card-face{width:100%;height:100%}.game-slot.remote-drag-origin{visibility:hidden}.cursor-pointer{color:#e08670;text-shadow:0 1px 3px #000;font-size:1.1rem;position:relative;transform:rotate(-25deg)}.cursor.mine .cursor-pointer{color:#e07070}.cursor-name{color:#fff;white-space:nowrap;background:#0a0808d9;border-radius:5px;margin-top:1rem;padding:.2rem .42rem;font-size:.68rem}.login-dialog{color:#f0e6e4;background:#0b0909;border:1px solid #4a2428;border-radius:15px;width:min(400px,100% - 2rem);max-height:none;padding:1.5rem 1.6rem 1.2rem;overflow:hidden;box-shadow:0 30px 100px #000c}.login-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000d9}.dialog-close{color:#999;background:0 0;padding:.2rem .45rem;font-size:1.35rem;position:absolute;top:.7rem;right:.8rem}.dialog-copy{color:#9a8080;margin:.6rem 0 1.4rem;font-size:.87rem;line-height:1.5}.login-dialog h2{margin-bottom:1rem}.login-dialog label{color:#c1c0b9;margin:0 0 .4rem;font-size:.78rem;font-weight:600;display:block}.login-switch{text-align:center;color:#ff3b42;width:100%;margin:.85rem 0 0;display:block}.inline-form{grid-template-columns:1fr auto;gap:.6rem;display:grid}.divider{color:#6f7069;align-items:center;gap:.7rem;margin:1.35rem 0;font-size:.72rem;display:flex}.divider:before,.divider:after{content:"";background:#3a1c20;flex:1;height:1px}.stacked-form{gap:.55rem;display:grid}.stacked-form label:not(:first-child){margin-top:.3rem}.stacked-form button{margin-top:.5rem}@media (width<=850px){.home-view{grid-template-columns:1fr;min-height:auto;padding:3rem 0}.hero h1{font-size:clamp(3rem,13vw,5rem)}}@media (width<=600px){.site-shell{width:100%}.site-header{padding-inline:.5rem}.site-shell.game-active{width:100%}.home-view{padding-top:2.2rem}.card-library-list,.card-library-controls{grid-template-columns:1fr}.deck-builder-heading,.deck-builder-actions{flex-direction:column;align-items:stretch}.deck-builder-actions .text-button{margin-left:0}.deck-card-filters,.create-room-form{grid-template-columns:1fr}.room-row{grid-template-columns:auto 1fr}.room-row button{grid-column:1/-1}.game-header .connection-status{display:none}.waiting-players{grid-template-columns:1fr}}
