@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700&family=Marcellus&display=swap');
:root{--ink:#f3eadb;--muted:#a99f91;--coal:#12100f;--panel:#1d1916;--line:#3a302a;--gold:#d7a84b;--red:#d45b4c;--green:#6f9f68;--blue:#658bb5;--purple:#8c70af;--tan:#b79265}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -30%,#483429 0,#100d0e 48%,#0b0a09 100%);color:var(--ink);font-family:"DM Sans",sans-serif;min-height:100vh;overflow:hidden}button,input{font:inherit}button{color:inherit}.shell{height:100vh;padding:18px;display:flex;flex-direction:column;gap:14px;max-width:1600px;margin:auto}.brand{font-family:Marcellus,serif;letter-spacing:.06em}.topbar{height:54px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line)}.topbar .brand{font-size:25px}.topbar .spacer{flex:1}.badge{padding:6px 10px;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:12px}.btn{background:#2a231e;border:1px solid #4d4037;border-radius:8px;padding:9px 14px;cursor:pointer;box-shadow:0 2px 0 #090807}.btn:hover{border-color:var(--gold)}.btn.primary{background:var(--gold);color:#17110a;border-color:#f1ca73;font-weight:700}.btn.danger{color:#ff9e91}.landing{flex:1;display:grid;grid-template-columns:1.05fr .95fr;gap:18px;min-height:0}.hero,.panel{background:linear-gradient(145deg,#211b17,#100d0e);border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 50px #0008}.hero{padding:7vh 6vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.hero:after{content:"Ã¢Å“Â¦";position:absolute;right:4vw;top:3vh;font-size:38vh;color:#d7a84b0a}.kicker{text-transform:uppercase;color:var(--gold);letter-spacing:.2em;font-size:12px;font-weight:700}.hero h1{font:clamp(46px,6vw,86px)/.95 Marcellus;margin:14px 0;max-width:650px}.hero p{color:var(--muted);font-size:17px;max-width:600px}.setup{padding:28px;display:flex;flex-direction:column;min-height:0}.tabs{display:flex;gap:4px;margin-bottom:18px}.tabs button{flex:1}.form{display:grid;gap:12px}.field{display:grid;gap:6px}.field label{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.field input{width:100%;background:#0f0d0c;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:11px}.library{flex:1;min-height:0;display:grid;grid-template-rows:auto 1fr auto;gap:10px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filters button.active{border-color:var(--gold);color:var(--gold)}.cards{overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:9px;padding-right:5px}.card{aspect-ratio:2.5/3.5;border:2px solid var(--card-color,var(--line));border-radius:9px;background:#28221e;overflow:hidden;position:relative;cursor:pointer;box-shadow:0 5px 12px #0008;transition:.15s}.card:hover{transform:translateY(-3px);z-index:3}.card img{width:100%;height:52%;object-fit:cover}.card .copy{padding:6px}.card h4{font:12px/1.1 Marcellus;margin:0 0 4px}.card p{font-size:16px;line-height:1.25;margin:0;color:#d7cfc3}.card .stats{position:absolute;right:5px;bottom:5px;background:#0b0908dd;border-radius:5px;padding:3px 5px;font-size:9px}.deckbar{display:flex;align-items:center;gap:8px}.game{height:100vh;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:10px}.arena{display:grid;grid-template-rows:minmax(155px,.72fr) minmax(270px,1.28fr) 118px;gap:8px;min-width:0}.player-zone{border:1px solid var(--line);border-radius:12px;background:#100d0ecc;padding:8px;display:grid;grid-template-columns:156px 1fr;gap:8px;transition:.25s}.player-zone.active{border-color:var(--gold);box-shadow:inset 0 0 28px #d7a84b0c}.identity{display:flex;flex-direction:column;justify-content:center;padding:6px}.identity h2{font:22px Marcellus;margin:3px 0}.life{font:38px Marcellus;color:#f08c79}.board{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));grid-template-rows:repeat(2,1fr);gap:7px;min-width:0}.slot{border:1px dashed #5a4b40;border-radius:8px;display:flex;align-items:center;justify-content:center;min-height:0;color:#66584e;font-size:11px;position:relative}.slot.front:after,.slot.row-back:after{position:absolute;right:4px;bottom:2px;font-size:8px;color:#ffffff30}.slot.front:after{content:"FRONT"}.slot.row-back:after{content:"BACK"}.slot.dragover{border-color:var(--gold);background:#d7a84b14}.mini-card{width:100%;height:100%;min-height:0;border-radius:7px;overflow:hidden;background:#2c241f;border:2px solid var(--card-color);display:grid;grid-template-columns:38% 1fr;cursor:grab;position:relative}.mini-card img{width:100%;height:100%;object-fit:cover}.mini-card .copy{padding:5px;overflow:hidden}.mini-card h4{font:12px Marcellus;margin:0 0 2px}.mini-card p{font-size:16px;line-height:1.15;margin:0;color:#c8beb2}.mini-card.defense{transform:rotate(2deg);border-style:dashed}.mini-card.facedown>*{visibility:hidden}.mini-card.facedown{background:repeating-linear-gradient(45deg,#3c2721,#3c2721 8px,#17100f 8px,#17100f 16px)}.hand{display:flex;align-items:end;justify-content:center;gap:5px;min-width:0}.hand .card{width:82px;flex:0 1 82px}.sidebar{display:grid;grid-template-rows:auto auto 1fr auto;gap:8px}.phasebox,.piles,.logbox{background:#100d0e;border:1px solid var(--line);border-radius:10px;padding:12px}.phase-list{display:flex;gap:3px;margin-top:8px}.phase{flex:1;height:5px;background:#3b332d;border-radius:5px}.phase.done{background:var(--gold)}.piles{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.pile{background:#241e1a;border:1px solid var(--line);border-radius:7px;padding:8px;text-align:left}.pile strong{display:block;font-size:18px}.pile span{font-size:10px;color:var(--muted)}.logbox{min-height:0;display:flex;flex-direction:column}.log{overflow:auto;display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--muted)}.log .combat{color:#f2a092}.log .turn{color:#e6c97e}.actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.waiting{display:grid;place-items:center;height:100vh;text-align:center}.waiting .code{font:72px Marcellus;color:var(--gold);letter-spacing:.15em}.empty{color:var(--muted);text-align:center;padding:35px}.color-tan{--card-color:var(--tan)}.color-blue{--card-color:var(--blue)}.color-green{--card-color:var(--green)}.color-purple{--card-color:var(--purple)}.color-red{--card-color:var(--red)}#toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%,120px);background:#241d19;border:1px solid #a84b40;padding:10px 16px;border-radius:8px;transition:.2s;z-index:20}#toast.show{transform:translate(-50%,0)}
@media(max-width:900px){.landing{grid-template-columns:1fr}.hero{display:none}.game{grid-template-columns:1fr 220px}.player-zone{grid-template-columns:110px 1fr}.identity h2{font-size:16px}.life{font-size:28px}.mini-card p{display:none}}

.address-notice{font-size:10px;white-space:nowrap}
.live-player-count{display:flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #38543d;border-radius:999px;background:#18231acc;color:#b9c5b8;font-size:12px;white-space:nowrap}
.live-player-count i{width:8px;height:8px;border-radius:50%;background:#65d57a;box-shadow:0 0 10px #65d57a99}
.live-player-count strong{color:#e8f5e9;font:16px Marcellus}
@media(max-width:560px){.topbar{gap:8px}.topbar .badge{display:none}.live-player-count{padding:6px 9px;font-size:10px}}
@media(max-width:1100px){.topbar .address-notice{display:none}}
.hero:after{content:"\2726"}
.profile-chip{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8f5e9;font-weight:700}
.profile-logout{padding:7px 10px;font-size:11px}
.player-avatar.ai-avatar{border-color:#e9ba3d;box-shadow:0 0 16px #e9ba3d55}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,#273a2a 0,#111812 48%,#080b09 100%)}
.login-card{width:min(520px,100%);padding:34px;border:1px solid #38543d;border-radius:20px;background:#111a13f2;box-shadow:0 24px 80px #0009}
.login-card .brand{font-size:30px;margin-bottom:26px}.login-card h1{font:38px Marcellus;margin:7px 0 10px;color:#f0ead8}.login-card>p{color:#b9c5b8;line-height:1.55}
.login-card .form{margin-top:24px}.login-actions{display:flex;gap:10px;flex-wrap:wrap}.login-actions .btn{flex:1;min-width:145px}
.login-message{min-height:22px;margin:4px 0 0;color:#ef9d8e}.login-card small{color:#819084;line-height:1.45}
.age-gate-card{text-align:center}.age-gate-card .kicker{margin-top:4px}.age-gate-actions{display:flex;gap:10px;margin:24px 0 8px}.age-gate-actions .btn{flex:1;min-height:48px}.age-gate-card .login-message{margin:10px 0}
.text-link{padding:2px;border:0;background:transparent;color:#d9bd7b;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.text-link:hover,.text-link:focus-visible{color:#f3d994;outline:none}.age-privacy-link{display:block;margin:18px auto 0;font-size:12px}.privacy-policy-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 15%,#302719 0,#15120e 52%,#090806 100%)}.privacy-policy-card{width:min(720px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:clamp(26px,5vw,48px);border:1px solid #55442c;border-radius:18px;background:#17130ff2;box-shadow:0 24px 80px #0009}.privacy-policy-card .brand{margin-bottom:30px;font-size:25px}.privacy-policy-card h1{margin:8px 0 20px;font:clamp(34px,5vw,50px) Marcellus;color:#f0d18b}.privacy-policy-content{margin-bottom:24px;padding:20px;border:1px solid #6a5534;border-radius:11px;background:#d7a84b0a}.privacy-policy-content p{margin:0;color:#cbbfaf;line-height:1.65}.privacy-policy-content p+p{margin-top:14px}.privacy-policy-content strong{color:#ead196}.site-footer{flex:0 0 auto;display:flex;justify-content:center;align-items:center;gap:8px;min-height:30px}.site-footer .text-link,.site-footer .footer-link{min-height:24px;padding:5px 10px;border:1px solid #5a4932;border-radius:6px;background:#17130f;color:#d9bd7b;font-size:10px;line-height:1.1;text-decoration:none}.site-footer .text-link:hover,.site-footer .text-link:focus-visible,.site-footer .footer-link:hover,.site-footer .footer-link:focus-visible{border-color:var(--gold);color:#f3d994;outline:none}
.passcode-disclaimer{display:grid;gap:3px;padding:11px 13px;border-left:3px solid #d7a84b;border-radius:6px;background:#d7a84b0d;color:#aebbad;font-size:12px;line-height:1.45}
.passcode-disclaimer strong{color:#e8d397}
@media(max-width:700px){.profile-chip{display:none}.profile-logout{padding:6px 8px}.login-card{padding:24px}}
.standby-status{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:9px 12px;border:1px solid #3f6947;border-radius:9px;background:#17251a;color:#d9eadb}
.standby-status[hidden]{display:none}.standby-status i{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:#65d57a;box-shadow:0 0 12px #65d57aaa}.standby-status span{display:grid;gap:2px}.standby-status strong{font:15px Marcellus}.standby-status small{color:#9eb4a1;font-size:10px}.standby-status b{color:#d9eadb;letter-spacing:.12em}
.person-match-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);align-items:stretch;gap:14px}
.person-match-grid.computer-mode{grid-template-columns:1fr}.person-match-action{display:grid;grid-template-rows:1fr auto;gap:8px}.person-match-action #enter{min-height:72px;font:20px Marcellus}
.match-deck-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 8px}
.match-deck-option{display:grid;gap:4px;min-height:68px;padding:12px 14px;text-align:left;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.match-deck-option strong{font:17px Marcellus}.match-deck-option span{font-size:11px;line-height:1.35;color:var(--muted)}
.room-access-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.55fr);gap:12px}
.room-access-grid[hidden],.room-discovery[hidden]{display:none}
.room-access-grid #private-room{grid-column:1/-1}
#code,#room-passcode{text-transform:uppercase}#room-passcode{letter-spacing:.28em;font-weight:800}
#room-passcode-help{display:block;margin-top:5px;color:var(--muted);font-size:10px;letter-spacing:0}
.room-discovery{display:grid;grid-template-columns:1fr;align-items:start;gap:12px;margin-top:8px;min-height:0}
.ai-profile-tracker{width:100%;display:grid;gap:9px;padding:10px;border:1px solid #4a3b27;border-radius:11px;background:linear-gradient(110deg,#21190f,#14110d);box-shadow:inset 0 1px #ffffff08}
.ai-profile-tracker[hidden]{display:none}
.campaign-battle-picker{width:100%;display:grid;gap:9px;padding:10px;border:1px solid #4a3b27;border-radius:11px;background:linear-gradient(110deg,#21190f,#14110d);box-shadow:inset 0 1px #ffffff08}
.campaign-battle-picker[hidden]{display:none}
.campaign-battle-picker>header{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:2px 2px 8px;border-bottom:1px solid #3a3027}
.campaign-battle-picker>header span{display:grid;gap:2px}.campaign-battle-picker>header small{color:#958a79;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.campaign-battle-picker>header strong{color:#ead9b2;font:17px Marcellus}.campaign-battle-picker>header>b{color:var(--gold);font-size:10px}
.campaign-battle-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-right:3px}
.campaign-battle{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:1px solid #4c4031;border-radius:9px;background:#17130f;color:inherit;text-align:left;cursor:pointer}
.campaign-battle:hover:not(:disabled),.campaign-battle:focus-visible{border-color:#b78b38;background:#221a10;outline:none}
.campaign-battle[aria-pressed=true]{border-color:#efc45f;background:linear-gradient(120deg,#352713,#1d170f);box-shadow:0 0 15px #d7a84b30}
.campaign-battle.completed{border-color:#6f9b78;background:linear-gradient(120deg,#213528,#171f19);box-shadow:inset 0 0 18px #6f9b7817}.campaign-battle.completed>b{color:#a9d8b3}.campaign-battle.locked{opacity:.5;cursor:not-allowed}
.campaign-avatar{position:relative;display:block;width:42px;height:42px}
.campaign-avatar img{display:block;width:100%;height:100%;object-fit:cover;border:1px solid #755d31;border-radius:50%;background:#110e0b}
.campaign-avatar b{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:1px solid #9a7839;border-radius:9px;background:#17110b;color:#f2d38d;font:10px Marcellus;box-shadow:0 2px 6px #000b}
.campaign-battle>span:nth-child(2){min-width:0;display:grid;gap:3px}.campaign-battle strong{color:#f2d38d;font:14px Marcellus}.campaign-battle small{color:#aa9d87;font-size:9px;line-height:1.35}.campaign-battle>b{color:#8f8577;font-size:8px;text-transform:uppercase}
.ai-difficulty-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.ai-difficulty-option{min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:8px;padding:7px;border:1px solid #4c4031;border-radius:9px;background:#17130f;color:inherit;text-align:left;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.ai-difficulty-option:hover,.ai-difficulty-option:focus-visible{border-color:#b78b38;background:#221a10;outline:none;transform:translateY(-1px)}
.ai-difficulty-option.selected{border-color:#efc45f;background:linear-gradient(120deg,#352713,#1d170f);box-shadow:0 0 15px #d7a84b30}
.ai-difficulty-option img{width:48px;aspect-ratio:1;display:block;object-fit:cover;border:2px solid #836b3c;border-radius:8px}
.ai-difficulty-option.selected img{border-color:#f0c55f;box-shadow:0 0 10px #e9ba3d55}
.ai-difficulty-option span{min-width:0;display:grid;gap:3px}.ai-difficulty-option b{color:#f2d38d;font:15px Marcellus}.ai-difficulty-option small{color:#aa9d87;font-size:8px;line-height:1.35}
.ai-profile-record{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid #3a3027}.ai-profile-record>span{display:grid;gap:2px}.ai-profile-record>span small{color:#958a79;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ai-profile-record>span strong{color:#d9c398;font:14px Marcellus}
.ai-profile-record dl{display:flex;gap:5px;margin:0}.ai-profile-record dl div{min-width:48px;padding:4px 7px;border:1px solid #403528;border-radius:6px;background:#0f0d0aa8;text-align:center}.ai-profile-record dt{color:#8f8577;font-size:7px;text-transform:uppercase}.ai-profile-record dd{margin:1px 0 0;color:#ead9b2;font:16px Marcellus}.ai-tracker-unavailable{color:var(--muted);font-size:11px;text-align:center}
@media(max-width:650px){.ai-difficulty-list,.campaign-battle-list{grid-template-columns:1fr}.ai-difficulty-option{grid-template-columns:44px 1fr}.ai-difficulty-option img{width:44px}.ai-profile-record{align-items:flex-start;flex-direction:column}.ai-profile-record dl{width:100%}.ai-profile-record dl div{flex:1}}
.room-browser{min-width:0;min-height:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#120f0da8}
.room-browser header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.room-browser h3{margin:3px 0 0;font:21px Marcellus}.room-browser header>small{color:var(--muted);font-size:10px;text-align:right}
.open-room-list,.live-game-list{display:flex;flex-direction:column;gap:7px;max-height:210px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:3px}
.open-room{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid #493d31;border-radius:9px;background:#1a1512;color:var(--ink);text-align:left;cursor:pointer}
.open-room:hover,.open-room.selected{border-color:var(--gold);background:#241c13}.open-room strong{color:var(--gold);font:19px Marcellus;letter-spacing:.12em}.open-room span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.open-room small{color:var(--muted);font-size:10px}
.live-game{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid #3a463c;border-radius:9px;background:#141a15}.live-game div{min-width:0}.live-game .live-game-avatars{display:flex;align-items:center;flex-direction:row;gap:3px}.player-avatar.live-game-avatar{width:38px;border-radius:7px;box-shadow:0 3px 9px #0008}.live-game-versus{color:#6f7a71;font-size:7px;font-weight:800;letter-spacing:.04em}.live-game-copy{display:flex;flex-direction:column;gap:3px}.live-game strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-game small,.live-game>b{color:var(--muted);font-size:10px}.live-game>b{color:#7fe192}
.open-room-empty{padding:15px;border:1px dashed #3c342d;border-radius:9px;color:var(--muted);font-size:12px;text-align:center}
@media(max-width:780px){.person-match-grid,.room-access-grid,.room-discovery{grid-template-columns:1fr}.open-room-list,.live-game-list{max-height:180px}}

/* Deck builder and hand usability */
.setup{overflow:hidden}
#pane{flex:1;min-height:0;overflow:hidden}
.tabs[hidden],.menu-view-toolbar[hidden],#pane[hidden]{display:none}
.menu-view-toolbar{flex:0 0 auto;display:flex;align-items:center;gap:10px;min-height:30px;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid #ffffff18}
.menu-view-toolbar .menu-back{min-width:0;padding:4px 8px;border-radius:6px;font-size:10px;line-height:1}
.menu-view-toolbar strong{font:16px Marcellus;color:var(--floral-rose,#ead29a)}
.setup:not(.menu-tab-open) .tabs{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:12px;margin:0}
.setup:not(.menu-tab-open) .tabs .btn{min-height:0;font:clamp(22px,3vw,38px) Marcellus;border-color:#959d9080;background:linear-gradient(145deg,#444854,#223030 58%,#523d35);color:#e8d9cd;box-shadow:inset 0 1px #efefe91a,0 10px 26px #1b202166}
.setup:not(.menu-tab-open) .tabs .btn:hover,.setup:not(.menu-tab-open) .tabs .btn:focus-visible{border-color:#ffd9da;background:linear-gradient(145deg,#4d4250,#30343f 55%,#89023e);outline:2px solid #ffd9da55;outline-offset:-3px}
.builder-pane{display:grid;grid-template-rows:minmax(0,1fr);gap:0}
.builder-navigation{display:flex;justify-content:center;gap:6px;min-height:0;margin-left:auto}
.builder-navigation .btn{min-width:130px}
.library{height:100%;grid-template-rows:minmax(0,1fr);gap:0}
.builder-body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:10px}
.catalog-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}
.builder-controls{padding:10px;border:1px solid var(--line);border-radius:9px;background:#100d0e}
.catalog-filter-mode{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;padding-bottom:9px;border-bottom:1px solid #ffffff20}
.catalog-filter-mode>span{display:grid;gap:2px}.catalog-filter-mode strong{font:16px Marcellus;color:#fff4ee}.catalog-filter-mode small{color:var(--muted);font-size:10px;line-height:1.25}
.filter-mode-toggle{flex:0 0 auto;font-weight:800}.filter-mode-toggle.active{border-color:#bd7f02;background:#fee16b;color:#fff4ee;box-shadow:0 0 0 2px #bd7f0255,0 0 16px #fee16b77}
.catalog-tools{align-items:center}
.catalog-tools>div{display:flex;gap:6px;flex-wrap:wrap}
.catalog-tools input{margin-left:auto;flex:0 1 420px;max-width:420px}
.catalog{min-height:0;overflow:hidden}
.cards{height:100%;align-content:start;padding:2px 8px 18px 2px;overscroll-behavior:contain}
.deck-tray{min-height:0;background:#100e0c;border:1px solid var(--line);border-radius:9px;padding:10px;display:flex;flex-direction:column}
.tray-head{display:flex;justify-content:space-between;align-items:center}
.tray-head strong{font:20px Marcellus}
.tray-help{font-size:10px;color:var(--muted);margin:7px 0}
.deck-save-button{width:100%;margin-top:8px}
.deck-overview{flex:0 0 auto;margin:2px 0 6px;padding:6px;border:1px solid #3d332c;border-radius:8px;background:#100d0e}
.deck-overview-title,.deck-level-title{display:flex;align-items:center;justify-content:space-between;gap:7px}
.deck-overview-title .kicker{font-size:9px}
.deck-overview-title small,.deck-level-title small{color:#857c72;font-size:8px}
.deck-type-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.deck-type-counts>div{min-width:0;padding:6px 3px;border:1px solid #3a302a;border-radius:6px;background:#100d0b;text-align:center}
.deck-type-counts b,.deck-type-counts span{display:block}
.deck-type-counts b{font:18px Marcellus;color:#f0d18b}
.deck-type-counts span{margin-top:1px;color:#958b80;font-size:7px;text-transform:uppercase;letter-spacing:.04em}
.deck-type-counts .effects b{color:#8fc7ff}.deck-type-counts .traps b{color:#d3a6ff}
.deck-level-title{margin:9px 0 5px;color:#b8ac9e;font-size:8px;text-transform:uppercase;letter-spacing:.07em}
.deck-level-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}
.deck-level-counts>div{display:flex;align-items:center;justify-content:space-between;gap:2px;min-width:0;padding:4px;border-radius:4px;background:#241e1a;color:#9f9589;font-size:7px}
.deck-level-counts b{color:#e9d8bc;font-size:9px}
.deck-list{overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:4px}
.deck-item{border:0;border-left:3px solid var(--card-color);background:#25201c;color:var(--ink);border-radius:4px;padding:5px 7px;display:flex;justify-content:space-between;text-align:left;cursor:pointer;font-size:10px}
.deck-item small{color:var(--muted);font-size:10px}
.empty-deck{color:var(--muted);font-size:11px;text-align:center;padding-top:30px}
.hand{overflow:visible;position:relative}
.hand .card{transform-origin:bottom center}
.hand .card:hover{transform:none;z-index:50;box-shadow:0 10px 24px #000}
@media (hover:hover) and (pointer:fine){
  .game .hand{z-index:120}
  .game .hand-choice:hover,.game .hand-choice.play-selected{z-index:130}
}
@media(max-width:900px){.builder-body{grid-template-columns:minmax(0,1fr) 155px}}
@media(max-width:560px){.catalog-filter-mode{align-items:stretch;flex-direction:column}.filter-mode-toggle{width:100%}}

/* Non-overlapping card library and saved decks */
.filters+.filters{margin-top:6px;justify-content:space-between}
.filters input,#deck-name{background:#0f0d0c;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px}
.filters input{min-width:180px;flex:1}
.catalog{overflow-y:auto;overscroll-behavior:contain;padding-right:7px}
.catalog-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,160px));gap:9px;align-content:start;justify-content:start;padding-bottom:18px}
.catalog-card{position:relative;width:100%;height:188px;min-height:188px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:stretch;gap:0;padding:0;text-align:left;color:var(--ink);background:#211c18;border:1px solid var(--line);border-top:4px solid var(--card-color);border-radius:9px;overflow:hidden;cursor:pointer;contain:layout paint style;content-visibility:auto;contain-intrinsic-size:auto 188px}
.catalog-card:hover{border-color:var(--gold);background:#29221d}
.catalog-card img{grid-column:1;grid-row:1;width:100%;height:100%;min-height:0;object-fit:cover}
.catalog-card>.catalog-card-name{position:absolute;left:0;right:0;bottom:0;z-index:5;min-width:0;min-height:34px;max-height:42px;padding:7px 34px 6px 8px;display:flex;align-items:center;overflow:hidden;background:linear-gradient(180deg,#100d0ee8,#0b0908fa);color:#fff4ee}
.catalog-card strong{display:-webkit-box;overflow:hidden;margin:0;font:14px/1.08 Marcellus;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.catalog-card>.catalog-card-stats{position:absolute;left:0;right:0;bottom:34px;z-index:6;height:20px;padding:2px 7px;display:flex;align-items:center;justify-content:center;gap:12px;overflow:hidden;background:#0b0908ed;color:#fff4ee;font-size:9px;font-weight:800;white-space:nowrap}
.catalog-card>.card-kind-badge{z-index:8}.catalog-card>.unit-level-badge{z-index:8}
.catalog-card p,.catalog-card blockquote{display:none}
.catalog-card>b{position:absolute;z-index:8;right:6px;bottom:6px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#1b2021e8;color:#fff4ee;font-size:18px;line-height:1}
.deck-tray>.deck-list{flex:1 1 44%;border-bottom:1px solid var(--line);padding-bottom:5px}
.saved-section{flex:1 1 48%;min-height:0;padding-top:6px;display:flex;flex-direction:column}
.saved-list{overflow-y:auto;display:flex;flex-direction:column;gap:4px;margin-top:4px}
.saved-deck{background:#211c18;border:1px solid var(--line);border-radius:6px;padding:5px}
.saved-deck strong,.saved-deck span{display:block;font-size:11px}
.saved-deck span{color:var(--muted);font-size:9px;margin:1px 0 3px}
.saved-deck>div{display:flex;flex-wrap:wrap;gap:2px}
.saved-deck .tiny{min-height:18px;margin:0;padding:2px 4px;font-size:8px;line-height:1}
.tiny{background:#332a24;color:var(--ink);border:1px solid #514238;border-radius:4px;padding:3px 6px;font-size:9px;cursor:pointer;margin-right:3px}
.tiny:hover{border-color:var(--gold)}
.deckbar input{width:130px}
.hand-choice{width:82px;flex:0 1 82px;position:relative;transition:.15s;transform-origin:bottom center}
.hand-choice .card{width:100%;height:auto}
.hand-choice:hover{z-index:50}
.hand-choice:hover .card{transform:translateY(-8px) scale(1.08)}
.hand-choice.bottom-selected .card{outline:3px solid var(--gold);filter:saturate(.65)}
.hand-choice.play-selected{z-index:55}
.hand-choice.play-selected .card{outline:3px solid var(--gold);transform:translateY(-8px) scale(1.06);box-shadow:0 0 18px #d7a84baa}
.slot.tap-target{border-color:#d7a84b99;background:#d7a84b0b;cursor:pointer;touch-action:manipulation}
.hand-choice{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.card-kind-badge{position:absolute;right:4px;top:4px;z-index:6;padding:3px 5px;border:1px solid #fff9;border-radius:5px;background:#15110ee8;color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;line-height:1;box-shadow:0 2px 6px #000}
.card-kind-badge.kind-unit{border-color:#f0c76f;color:#ffe7a8}.card-kind-badge.kind-effect{border-color:#8fc7ff;color:#cde6ff}.card-kind-badge.kind-trap{border-color:#d3a6ff;color:#ead4ff}
.bottom-mark{position:absolute;inset:auto 3px 3px 3px;text-align:center;background:var(--gold);color:#17110a;border-radius:4px;padding:2px;font-size:8px;font-weight:700;opacity:.65}
.bottom-selected .bottom-mark{opacity:1}
.slot.attack-selected{border:2px solid var(--gold);box-shadow:0 0 18px #d7a84b66}
.modal-backdrop{position:fixed;inset:0;background:#080605dc;display:grid;place-items:center;z-index:100;padding:20px}
.sacrifice-dialog{width:min(560px,95vw);max-height:90vh;overflow:auto;background:#1c1714;border:1px solid var(--gold);border-radius:14px;padding:24px;box-shadow:0 25px 80px #000}
body:has(.game) .modal-backdrop{background:rgba(8,6,5,.2)}
body:has(.game) .sacrifice-dialog{background:rgba(28,23,20,.96)}
.sacrifice-dialog h2{font:28px Marcellus;margin:6px 0}
.sacrifice-dialog p{color:var(--muted)}
.sacrifice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:16px 0}
.sacrifice-option{display:flex;justify-content:space-between;background:#29221d;color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--card-color);border-radius:7px;padding:10px;cursor:pointer;text-align:left}
.sacrifice-option.selected{border-color:var(--gold);background:#3b3025}
.sacrifice-total{font-size:16px;margin:12px 0}
.modal-actions{display:flex;justify-content:flex-end;gap:8px}
.attachment-tabs{position:absolute;left:auto;right:-58px;top:50%;bottom:auto;width:60px;max-width:60px;height:auto;max-height:164px;display:flex;flex-direction:column;gap:4px;overflow-x:hidden;overflow-y:auto;z-index:40;padding:2px;transform:translateY(-50%);scrollbar-width:none;pointer-events:auto}
.attachment-tabs::-webkit-scrollbar{display:none}
.attachment-tab{appearance:none;flex:0 0 58px;display:grid;align-content:center;width:58px;max-width:58px;min-width:58px;height:34px;min-height:34px;border:1px solid var(--card-color);border-radius:6px;background:#22352df5;padding:3px 4px;text-align:center;color:#fff4ee;cursor:help;box-shadow:0 2px 5px #000b,0 0 0 1px #bd7f022b}
.attachment-tab-name,.attachment-tab-rule{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.05}
.attachment-tab-name{font-size:8px;font-weight:900}
.attachment-tab-rule{color:#ffd9da;font-size:6px;font-weight:600}
.attachment-tab:hover,.attachment-tab:focus-visible{border-color:#fff4ee;outline:2px solid color-mix(in srgb,var(--card-color) 70%,white);outline-offset:-2px}
.slot.attacked .mini-card{filter:grayscale(.7) brightness(.62);opacity:.78}
.slot.used-trap>.mini-card{filter:grayscale(1) saturate(0) brightness(.52);opacity:.62}
.slot.attacked:before{content:"ATTACKED";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);z-index:9;color:#fff;border:1px solid #ffffff99;border-radius:4px;padding:3px 6px;font-size:9px;font-weight:700;letter-spacing:.1em;background:#161311bb;pointer-events:none}
.game-result h1{font:64px Marcellus;margin:8px 0}
.final-life{display:flex;justify-content:center;gap:10px;margin:22px 0}
.final-life span{min-width:150px;background:#1d1815;border:1px solid var(--line);border-radius:8px;padding:12px}
.final-life strong{display:block;font:24px Marcellus;color:var(--gold)}

/* Unit positions and stable game controls */
.btn:disabled{opacity:.38;cursor:not-allowed;border-color:#4d4037}
.btn:disabled:hover{border-color:#4d4037}
.actions{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:38px 42px 42px;grid-template-areas:"note direct" "recycle next" "leave end";gap:6px}
.actions .btn{min-width:0;padding:7px 8px}
.action-note{grid-area:note;display:flex;align-items:center;color:var(--muted);font-size:11px;padding:0 4px}
.action-direct{grid-area:direct}.action-recycle{grid-area:recycle}.action-next{grid-area:next}.action-leave{grid-area:leave}.action-end{grid-area:end}
.position-badge{position:absolute;right:5px;top:5px;z-index:12;min-width:45px;height:31px;padding:2px 5px;border:2px solid #fff;border-radius:7px;display:grid;grid-template-columns:18px 1fr;align-items:center;gap:2px;color:#fff;background:#211a16ee;box-shadow:0 2px 8px #000;pointer-events:none}
.position-badge>span{font-size:17px;line-height:1}.position-badge b{font-size:9px;letter-spacing:.05em}
.position-badge.attack{background:#8c3028ee;border-color:#ffb0a4}.position-badge.defense{background:#295172ee;border-color:#a7d9ff}
.slot.position-attack{box-shadow:inset 0 0 0 1px #b94a3d55}.slot.position-defense{box-shadow:inset 0 0 0 2px #5aa1d477}
.position-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 20px}
.position-option{min-height:96px;position:relative;display:grid;grid-template-columns:45px 1fr;grid-template-rows:auto auto;align-items:center;gap:1px 8px;padding:12px;background:#29221d;color:var(--ink);border:2px solid var(--line);border-radius:10px;cursor:pointer;text-align:left}
.position-option.attack.selected{border-color:#ff8171;background:#44231f}.position-option.defense.selected{border-color:#7fc5f5;background:#1e3545}
.position-choice-icon{grid-row:1/3;font-size:34px;text-align:center}.position-option strong{font:18px Marcellus}.position-option small{color:var(--muted);line-height:1.2}
.sacrifice-heading{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.sacrifice-heading strong{color:var(--ink)}
@media(max-width:700px){.position-options{grid-template-columns:1fr}.actions{grid-template-rows:38px 40px 40px}}
.opening-redraw{width:100%;margin-top:10px;display:flex;align-items:center;justify-content:space-between;border-color:var(--gold);color:#f1ca73}
.opening-redraw small{color:var(--muted);font-size:9px}

/* Mirrored table perspective, readable card text, and short-window stability */
.game{height:100dvh;min-height:0;grid-template-rows:minmax(0,1fr);overflow:hidden}
.arena,.sidebar{height:100%;max-height:100%;min-height:0}
.arena{grid-template-rows:repeat(2,minmax(0,1fr)) minmax(92px,118px);gap:12px}
.player-zone{min-height:0;position:relative}
.player-zone.active{z-index:70;border-color:transparent;box-shadow:inset 0 0 0 2px var(--gold),inset 0 0 28px #d7a84b0c}
.player-zone:hover,.player-zone:has(.board-card-help.show){z-index:90}
.board{min-width:0;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
.slot{min-width:0;min-height:0}
.slot-modifier-indicator{position:absolute;left:50%;top:6px;z-index:14;transform:translateX(-50%);display:inline-flex;align-items:center;gap:4px;max-width:calc(100% - 12px);padding:3px 7px;border:1px solid currentColor;border-radius:99px;background:#101310e8;font-size:9px;line-height:1;letter-spacing:.04em;box-shadow:0 3px 10px #0009;pointer-events:none;white-space:nowrap}
.slot-modifier-indicator>span{font-size:10px}.slot-modifier-indicator b{font-size:10px}
.slot-modifier-indicator.positive{color:#83f0a2;background:#102719ed;text-shadow:0 0 7px #2bc45d88}.slot-modifier-indicator.negative{color:#ff857b;background:#321412ed;text-shadow:0 0 7px #d63d3288}.slot-modifier-indicator.mixed{color:#f2d286;background:#332917ed}
.slot:has(>.slot-modifier-indicator.positive){border-color:#67e38c;box-shadow:inset 0 0 18px #2bc45d2b,0 0 10px #2bc45d35}.slot:has(>.slot-modifier-indicator.negative){border-color:#ff7064;box-shadow:inset 0 0 18px #d63d322b,0 0 10px #d63d3235}.slot:has(>.slot-modifier-indicator.mixed){border-color:#f2d286;box-shadow:inset 0 0 18px #d7a84b2b}
.position-badge{left:auto;right:5px;top:5px;bottom:auto;min-width:42px;height:29px}
.board-card-help{display:none;position:fixed;left:180px;top:50%;transform:translate(-50%,-50%);z-index:110;width:min(340px,88vw);padding:16px;background:#100d0ef5;border:2px solid var(--card-color);border-radius:12px;box-shadow:0 22px 70px #000;pointer-events:none;text-align:left;color:var(--ink)}
.hand-card-help{left:var(--match-help-left,180px);transform:translate(-50%,-50%) scale(var(--match-scale,1));transform-origin:center}
.slot:hover .board-card-help{display:block}
.slot:has(.attachment-tab:hover)>.board-card-help,.slot:has(.attachment-tab:focus-visible)>.board-card-help{display:none}
.hand-card-help.show{display:block}
.slot.combat-pending{border-color:#f4c967;box-shadow:0 0 22px #f4c96788,inset 0 0 18px #f4c96722}
.slot.combat-pending:before{content:"\2694";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:90;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#17100fe8;border:2px solid #f4c967;color:#fff3cf;font-size:27px;box-shadow:0 7px 20px #000;pointer-events:none}
.combat-damage{position:absolute;left:calc(50% + 31px);top:50%;z-index:95;pointer-events:none;color:#ff4f45;font:900 24px/1 Marcellus;text-shadow:0 2px 2px #260000,-1px -1px 0 #fff3;transform:translate(-50%,-50%);animation:damageFloat .45s ease-out both}
.combat-damage.damage-small{font-size:24px}.combat-damage.damage-medium{font-size:28px}.combat-damage.damage-large{font-size:34px}.combat-damage.damage-xl{font-size:40px}.combat-damage.damage-xxl{font-size:48px}
.ability-button{position:absolute;right:5px;top:5px;z-index:35;border:1px solid #f1ca73;background:#d7a84be8;color:#17110a;border-radius:6px;padding:4px 7px;font-size:9px;font-weight:800;text-transform:uppercase;cursor:pointer;box-shadow:0 3px 10px #000}
.ability-button:hover{background:#f1ca73}
.sidebar{grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden}
.zone-abilities{display:grid;gap:6px;padding:8px;background:#100d0e;border:1px solid var(--gold);border-radius:10px}
.zone-abilities:empty{padding:0;border:0}
.zone-abilities .ability-button{position:static;width:100%;padding:8px 10px;font-size:10px;text-align:left}
.set-effect-button{position:absolute;right:5px;top:5px;z-index:36;border:1px solid #9ed5ff;background:#1d527ee8;color:#eef8ff;border-radius:6px;padding:4px 7px;font-size:9px;font-weight:800;text-transform:uppercase;cursor:pointer;box-shadow:0 3px 10px #000}
.set-effect-button:hover:not(:disabled){background:#2874ad}
.set-effect-button:disabled{opacity:.68;cursor:default}
.effect-play-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}
.effect-play-options .position-option:only-child{grid-column:1/-1}
.ability-options{grid-template-columns:1fr}
.ability-dialog .sacrifice-option{align-items:center;gap:12px}
.ability-dialog .sacrifice-option>span{min-width:0;display:flex;flex-direction:column;gap:4px}
.ability-dialog .sacrifice-option strong{font:16px Marcellus}
.ability-dialog .sacrifice-option small{color:var(--muted);font-size:10px;line-height:1.3;white-space:normal}
.ability-dialog .sacrifice-option>b{flex:0 0 auto;color:var(--gold);font-size:10px}
.card .stats b,.mini-card .stats b{font:inherit}.card .stats .stat-positive,.mini-card .stats .stat-positive{color:#67e38c;text-shadow:0 0 7px #2bc45d88}.card .stats .stat-negative,.mini-card .stats .stat-negative{color:#ff7064;text-shadow:0 0 7px #d63d3288}
.card .stats:not(.card-type-stats){font-size:12px}.mini-card .stats:not(.card-type-stats){font-size:10px}
.card .stats:not(.card-type-stats) .unit-stat>b,.card .stats:not(.card-type-stats) .counter-stat,.card .stats:not(.card-type-stats) .modifier-pair-stat{font-size:14px}.mini-card .stats:not(.card-type-stats) .unit-stat>b,.mini-card .stats:not(.card-type-stats) .counter-stat,.mini-card .stats:not(.card-type-stats) .modifier-pair-stat{font-size:12px}
.card .stats,.mini-card .stats{gap:5px}.unit-stat{display:inline-flex;align-items:center;gap:2px;min-width:0}.unit-stat-icon{display:inline-block;color:#f2d286;font-size:1.08em;line-height:1;text-shadow:0 1px 2px #000}.unit-stat-shield .unit-stat-icon{color:#a9c8df}
.ability-target-group{display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#120f0dcc}
.ability-target-group h3{margin:0 0 2px;color:var(--gold);font:14px Marcellus;letter-spacing:.04em}
.hibernate-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.hibernate-return-dialog{width:min(680px,95vw)}
.hibernate-return-dialog .hibernate-unit-options{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.hibernate-unit-option{min-width:0;align-items:center;justify-content:flex-start;gap:10px;min-height:72px}
.hibernate-unit-option>span{min-width:0;display:flex;flex:1;flex-direction:column;gap:4px}
.hibernate-unit-option strong,.hibernate-unit-option small{display:block;overflow-wrap:anywhere;white-space:normal}
.hibernate-unit-option strong{font:16px/1.15 Marcellus}.hibernate-unit-option small{font-size:10px;line-height:1.3}
.hibernate-unit-option>b{flex:0 0 auto;margin-left:auto}
@media(max-width:700px){
  .hibernate-return-dialog{width:min(560px,96vw);padding:18px}
  .hibernate-return-dialog .hibernate-unit-options{grid-template-columns:minmax(0,1fr)}
}
.flavor-text{margin:.45rem 0 0;padding:.4rem .55rem;border-left:2px solid currentColor;opacity:.72;font-size:.88em;font-style:italic;line-height:1.3}
.reminder-text{opacity:.76;font-style:italic}
.board-card-help strong{display:block;font:24px Marcellus;margin-bottom:3px}
.board-card-help>span{display:block;color:var(--card-color);font-size:11px;text-transform:capitalize}
.board-card-help p{margin:12px 0 0;color:#efe5d7;font-size:15px;line-height:1.45}
.actions{grid-template-rows:48px 48px 48px}
.actions .btn{height:48px;max-width:100%;overflow:hidden;white-space:normal;overflow-wrap:anywhere;line-height:1.08;font-size:11px;padding:5px 7px}
.action-note{justify-content:center;text-align:center;overflow:hidden;line-height:1.1}
.action-end,.action-recycle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.action-end small,.action-recycle small{display:block;font-size:9px;line-height:1;color:inherit}
.my-zone .row-front{grid-row:1}.my-zone .row-back{grid-row:2}
.my-zone .column-0{grid-column:1}.my-zone .column-1{grid-column:2}.my-zone .column-2{grid-column:3}
.opponent-zone .row-back{grid-row:1}.opponent-zone .row-front{grid-row:2}
.opponent-zone .column-0{grid-column:3}.opponent-zone .column-1{grid-column:2}.opponent-zone .column-2{grid-column:1}
@media(max-height:680px){
  .game{padding:6px;gap:6px}
  .arena{gap:8px;grid-template-rows:repeat(2,minmax(120px,1fr)) minmax(82px,100px)}
  .player-zone{padding:5px}
  .phasebox,.piles,.logbox{padding:8px}
  .actions{grid-template-rows:44px 44px 44px}
  .actions .btn{height:44px}
}
@media(max-width:900px){
  .arena{grid-template-rows:repeat(2,minmax(0,1fr)) minmax(88px,108px)}
  .identity{padding:3px}
  .identity .badge{padding:4px 6px}
}
@media(max-width:1200px),(max-height:800px){
  .game{grid-template-columns:minmax(0,1fr) clamp(180px,22vw,240px);gap:6px;padding:6px}
  .arena{gap:8px}
  .player-zone{grid-template-columns:clamp(82px,10vw,118px) minmax(0,1fr);gap:5px;padding:5px}
  .board{gap:5px}
  .identity{min-width:0;overflow:hidden;padding:3px}
  .identity h2{margin:2px 0;font-size:clamp(12px,1.3vw,16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .identity .kicker{font-size:8px}
  .identity .badge{max-width:100%;padding:3px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
  .identity .match-avatar{width:clamp(34px,5vw,50px);margin-bottom:4px}
  .life{font-size:clamp(20px,2.6vw,28px)}
  .mini-card h4{font-size:clamp(9px,1vw,12px)}
  .mini-card p{font-size:clamp(10px,1.25vw,16px);-webkit-line-clamp:4}
  .mini-card.defense{transform:none}
}
.trap-choice-dialog .sacrifice-option>span{min-width:0;display:flex;flex-direction:column;gap:4px}
.trap-choice-dialog .sacrifice-option strong{font:16px Marcellus}
.trap-choice-dialog .sacrifice-option small{color:var(--muted);font-size:10px;line-height:1.3;white-space:normal}
.trap-choice-dialog .sacrifice-option>b{align-self:center;color:var(--gold);font-size:11px}

/* Wide, information-first landing and deck builder */
.shell{max-width:none;width:100%;padding:14px 18px}
.shell .btn,.login-shell .btn{padding:7px 12px;line-height:1.1}
.landing{grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:14px}
.landing.privacy-landing{grid-template-columns:minmax(0,1fr)}
.privacy-badge{padding:6px 10px;border:1px solid #426947;border-radius:999px;background:#142218;color:#a8d4ac;font-size:10px;font-weight:800;letter-spacing:.04em;white-space:nowrap}
.hero{padding:28px 24px;justify-content:flex-start}
.hero:after{right:-22px;top:auto;bottom:-70px;font-size:230px}
.hero h1{font-size:clamp(32px,3vw,48px);line-height:1;margin:12px 0}
.hero p{font-size:14px;line-height:1.45}
.setup{padding:20px}
.play-form{max-width:920px;height:100%;min-height:0;margin:0 auto;width:100%;align-content:start;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:6px}
.play-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:8px}
.play-mode{min-height:96px;padding:15px;text-align:left;color:var(--ink);background:#100d0e;border:1px solid var(--line);border-radius:10px;position:relative;cursor:pointer}
.play-mode.active{border-color:var(--gold);box-shadow:inset 0 0 24px #d7a84b0a}
.play-mode strong,.play-mode span{display:block}
.play-mode strong{font:19px Marcellus;margin-bottom:5px}
.play-mode span{font-size:12px;color:var(--muted);line-height:1.35}
.play-mode small{position:absolute;right:10px;top:10px;color:var(--gold);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.play-mode:disabled{cursor:not-allowed;opacity:.62}
.current-deck{margin:2px 0 0;color:var(--muted);font-size:12px;text-align:center}
.current-deck strong{color:var(--ink)}
.builder-body{grid-template-columns:minmax(0,1fr) minmax(310px,390px);gap:16px}
.deck-tray{padding:14px}
.builder-pane .btn{padding:5px 9px;border-radius:6px;line-height:1.1}
.builder-pane .builder-controls{padding:7px}
.tray-help{margin:9px 0 11px;line-height:1.4}
.deckbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.deckbar .btn{min-width:0;padding-inline:5px}
@media(max-width:900px){
  .landing{grid-template-columns:1fr}
  .hero{display:none}
  .builder-body{grid-template-columns:minmax(0,1fr) minmax(230px,260px);gap:10px}
  .deck-tray{padding:11px}
  .catalog-tools input{flex-basis:100%;max-width:none;margin-left:0}
  .catalog-list{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}
}
@media(max-width:620px){
  .shell{padding:9px}
  .setup{padding:13px}
  .play-mode-grid,.match-deck-picker{grid-template-columns:1fr}
  .builder-body{grid-template-columns:minmax(0,1fr) minmax(190px,220px)}
  .catalog-list{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}
}

/* Player introduction and touch-first rules reference */
.board-card-help.show{display:block}
.rules-loading{display:grid;place-items:center;height:100%;color:var(--muted)}
.rules-pane{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;padding:2px 12px 40px 2px;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.rules-header{position:relative;overflow:hidden;padding:clamp(24px,3vw,40px);border:1px solid #594834;border-radius:16px;background:radial-gradient(circle at 92% 4%,#d7a84b22,transparent 34%),linear-gradient(135deg,#2a211a,#100d0e 68%);box-shadow:inset 0 1px #ffffff08,0 18px 38px #0005}
.rules-header:after{content:"";position:absolute;right:-80px;bottom:-125px;width:290px;height:290px;border:1px solid #d7a84b1f;border-radius:50%;box-shadow:0 0 0 34px #d7a84b0b,0 0 0 68px #d7a84b08;pointer-events:none}
.rules-heading{position:relative;z-index:1;max-width:900px}
.rules-eyebrow{text-transform:uppercase;color:var(--gold);letter-spacing:.22em;font-size:11px;font-weight:700}
.rules-header h2{font:clamp(34px,4vw,58px)/1.04 Marcellus;margin:10px 0 13px;letter-spacing:-.02em}
.rules-header p{max-width:880px;margin:0;color:#cfc3b4;font-size:clamp(13px,1.25vw,16px);line-height:1.65}
.rules-highlights{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:26px;max-width:820px}
.rule-highlight{padding:12px 14px;border:1px solid #5b4935;border-radius:9px;background:#100d0b80}
.rule-highlight strong,.rule-highlight span{display:block}
.rule-highlight strong{font:25px Marcellus;color:#f2d38d}
.rule-highlight span{margin-top:2px;color:#a99f91;font-size:9px;text-transform:uppercase;letter-spacing:.09em}
.rules-index{display:flex;flex-wrap:wrap;gap:7px;padding:13px 2px;position:sticky;top:0;z-index:40;background:#191512f7;border-bottom:1px solid var(--line);box-shadow:0 8px 14px #100d0ca6}
.rules-index a{padding:7px 11px;border:1px solid #4c3f35;border-radius:99px;color:#dec383;text-decoration:none;font-size:10px;font-weight:600;transition:.15s}
.rules-index a:hover,.rules-index a:focus-visible{border-color:var(--gold);background:#d7a84b12;color:#f5dda5;outline:none}
.rules-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.rule-section{position:relative;scroll-margin-top:70px;padding:22px;background:linear-gradient(145deg,#191512,#14110f);border:1px solid var(--line);border-radius:12px;box-shadow:inset 0 1px #ffffff05}
.rule-section.wide{grid-column:1/-1}
.rule-section-number{position:absolute;right:17px;top:15px;color:#d7a84b33;font:28px Marcellus}
.rules-sections h2{font:clamp(22px,2vw,28px) Marcellus;color:#f0d18b;margin:0 42px 7px 0}
.rules-sections h3{font:17px Marcellus;margin:18px 0 6px;color:#eee0cf}
.rules-sections p,.rules-sections li{font-size:12px;line-height:1.62;color:#cfc5b8}
.rules-sections p{margin:8px 0}
.rules-sections ul,.rules-sections ol{margin:10px 0;padding-left:22px}
.rules-sections li+li{margin-top:7px}
.rule-section-summary{max-width:900px;margin:0 0 17px!important;color:#a99f91!important;font-size:13px!important}
.rule-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.rule-features article{padding:15px;border:1px solid #3f352e;border-radius:9px;background:#100d0b99}
.rule-features strong{display:block;margin-bottom:6px;color:#ead29b;font:16px Marcellus}
.rule-features p{margin:0;color:#bfb4a7}
.rule-card-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rule-card-type{--type-color:var(--gold);display:grid;grid-template-columns:38px 1fr;gap:11px;padding:17px 15px;border:1px solid #493d34;border-top:3px solid var(--type-color);border-radius:10px;background:#100e0ca8}
.rule-card-type.unit{--type-color:#d7a84b}.rule-card-type.effect{--type-color:#78acd2}.rule-card-type.trap{--type-color:#a77bc0}
.rule-type-mark{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--type-color);border-radius:50%;color:var(--type-color);font:17px Marcellus;background:#0c0a09}
.rule-card-type span{display:block;color:var(--type-color);font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.rule-card-type h3{margin:3px 0 7px;font-size:20px}
.rule-card-type p{margin:0;color:#c9bfb2}
.rule-card-type small{display:block;margin-top:11px;padding-top:9px;border-top:1px solid #3a302a;color:#9f9589;font-size:10px;line-height:1.4}
.turn-timeline{counter-reset:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:20px 0 2px!important;padding:0!important;list-style:none}
.turn-timeline li{position:relative;display:grid;grid-template-rows:34px auto;gap:9px;margin:0!important;padding:0 13px 0 0}
.turn-timeline li:not(:last-child):after{content:"";position:absolute;left:27px;right:0;top:16px;height:1px;background:linear-gradient(90deg,var(--gold),#544431)}
.turn-number{position:relative;z-index:1;width:34px;height:34px;display:grid;place-items:center;border:1px solid #8d6d37;border-radius:50%;background:#1b1612;color:#f0cf86;font:12px Marcellus;box-shadow:0 0 0 5px #100d0e}
.turn-timeline span{color:#a58a5a;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.turn-timeline h3{margin:4px 0 6px;font-size:16px}
.turn-timeline p{margin:0;font-size:11px;line-height:1.55}
.rule-note{margin-top:15px;padding:12px 14px;border-left:3px solid var(--gold);border-radius:0 7px 7px 0;background:#d7a84b0c;color:#e4d5c1;font-size:11px;line-height:1.55}
@media(max-width:1000px){.turn-timeline{grid-template-columns:1fr}.turn-timeline li{grid-template-columns:42px 1fr;grid-template-rows:auto;padding:0 0 15px}.turn-timeline li:not(:last-child):after{left:16px;right:auto;top:28px;bottom:-2px;width:1px;height:auto;background:linear-gradient(var(--gold),#544431)}}
@media(max-width:800px){.rules-sections{grid-template-columns:1fr}.rule-section.wide{grid-column:auto}.rules-index{position:static}.rule-features,.rule-card-types{grid-template-columns:1fr}.rules-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.rules-header{padding:22px 18px}.rule-section{padding:18px 15px}.rules-highlights{gap:6px}.rule-highlight{padding:10px}.rules-index a{padding:6px 8px;font-size:9px}}
@media(hover:none),(pointer:coarse){
  html,body{height:auto;min-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}
  body{touch-action:pan-y pinch-zoom}
  .shell{height:auto;min-height:100dvh}
  .landing{min-height:calc(100dvh - 76px)}
  .setup,#pane{overflow:visible}
  .game{height:auto;min-height:100dvh}
  .rules-pane{height:auto;max-height:none;overflow:visible}
  .catalog,.deck-list,.saved-list,.log,.sacrifice-dialog{touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
  .hand-choice,.slot{touch-action:pan-y pinch-zoom}
}
@media(any-pointer:coarse){
  .card,.mini-card,.hand-choice,.slot,.attachment-tab,.catalog-card,[data-preview-card],.board-card-help,.selection-card-preview{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
}
@media (hover:none),(pointer:coarse),(max-width:1024px){
  .setup.builder-active{height:calc(100dvh - 96px);min-height:0;overflow:hidden}
  .setup.builder-active #pane{height:auto;min-height:0;overflow:hidden}
  .builder-pane .library,.builder-pane .builder-body,.builder-pane .catalog-panel,.builder-pane .deck-tray{min-height:0;overflow:hidden}
  .builder-pane .catalog,.builder-pane .deck-list,.builder-pane .saved-list{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
}

/* Readable field cards and lightweight match animations */
.mini-card .copy{min-width:0;padding:6px;overflow:hidden}
.mini-card h4{font-size:clamp(12px,1vw,15px);line-height:1.08;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis}
.mini-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;overflow-wrap:break-word;word-break:normal;font-size:clamp(18px,1.56vw,24px);line-height:1.22;max-height:7em}
.card{min-width:0;min-height:0}
.card .copy{min-height:0;overflow:hidden}
.card .ability-text,.board-card-help .ability-text,.selection-preview-card .ability-text,.reminder-text{overflow-wrap:break-word;word-break:normal}
.modifier-token{display:inline;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.card .ability-text-short{font-size:15px}
.card .ability-text-medium{font-size:13px}
.card .ability-text-long{font-size:10px}
.card .ability-text-very-long{font-size:8px}
.card .ability-text+.ability-text{margin-top:7px;padding-top:7px;border-top:1px solid #ffffff24}
.mini-card .ability-text-short{font-size:clamp(14px,1.3vw,18px)}
.mini-card .ability-text-medium{font-size:clamp(12px,1.1vw,16px)}
.mini-card .ability-text-long{font-size:clamp(10px,.9vw,14px)}
.mini-card .ability-text-very-long{font-size:clamp(8px,.72vw,11px)}
.mini-card .ability-text+.ability-text{margin-top:clamp(3px,.4vw,6px);padding-top:clamp(3px,.4vw,6px);border-top:1px solid #ffffff24}
@media(max-width:1200px),(max-height:800px){
  .mini-card .ability-text-short{font-size:clamp(9px,1.1vw,14px)}
  .mini-card .ability-text-medium{font-size:clamp(8px,.95vw,13px)}
  .mini-card .ability-text-long{font-size:clamp(7px,.8vw,11px)}
  .mini-card .ability-text-very-long{font-size:clamp(6px,.68vw,9px)}
}
.placement-splash{position:absolute;inset:20%;z-index:65;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fff8cf 0 8%,#e6b84f99 22%,transparent 68%);animation:placementSplash .48s ease-out forwards}
.card-placed.placement-unit>.mini-card{animation:unitArrive .34s cubic-bezier(.2,.9,.3,1.12)}
.card-placed.placement-effect>.mini-card{animation:effectCardArrive .4s cubic-bezier(.16,.82,.22,1.05)}
.card-placed.placement-trap>.mini-card{animation:trapCardArrive .4s cubic-bezier(.16,.82,.22,1.05)}
.card-placed.placement-effect>.placement-splash{background:radial-gradient(circle,#f4e8ff 0 8%,#9d79e8bb 18%,#79c7ff77 38%,transparent 70%)}
.card-placed.placement-trap>.placement-splash{background:radial-gradient(circle,#fff0cf 0 8%,#ef9c49cc 18%,#e7595966 38%,transparent 70%)}
.hand-choice.hand-added{z-index:52;animation:handCardDraw .28s cubic-bezier(.18,.8,.24,1.08) both}
.removal-ghost{position:absolute;z-index:190;pointer-events:none;animation:cardFadeAway 1.15s ease-out forwards}
.slot.combat-pending:before{animation:swordSwing .35s ease-out both;transform-origin:50% 72%}
.turn-flash{position:fixed;inset:0;z-index:180;display:grid;place-items:center;overflow:hidden;pointer-events:none;background:transparent}
.turn-flash span{width:100%;padding:14px;text-align:center;background:linear-gradient(90deg,transparent,#d7a84be8 24%,#f3d994 50%,#d7a84be8 76%,transparent);color:#17110a;font:clamp(28px,5vw,62px) Marcellus;text-shadow:0 1px #fff8;transform:translateX(-120%);animation:turnSweep .8s ease-out forwards}
#auto-deck{white-space:nowrap;border-color:#8b724e;color:#f0d18b}
@keyframes placementSplash{0%{opacity:0;transform:scale(.2)}35%{opacity:1}100%{opacity:0;transform:scale(1.7)}}
@keyframes unitArrive{0%{opacity:.25;transform:scale(.72)}100%{opacity:1;transform:scale(1)}}
@keyframes effectCardArrive{0%{opacity:0;transform:translateY(26px) scale(.82) rotate(-3deg)}65%{opacity:1;transform:translateY(-3px) scale(1.02) rotate(0)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes trapCardArrive{0%{opacity:0;transform:translateY(26px) scale(.82) rotate(3deg)}65%{opacity:1;transform:translateY(-3px) scale(1.02) rotate(0)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes handCardDraw{0%{opacity:0;transform:translateY(-14px) scale(.9)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes cardFadeAway{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}18%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-56%) scale(.92)}}
@keyframes swordSwing{from{transform:translate(-50%,-50%) rotate(-18deg)}to{transform:translate(-50%,-50%) rotate(18deg)}}
@keyframes damageFloat{0%{opacity:0;transform:translate(-50%,-35%) scale(.85)}45%,100%{opacity:1;transform:translate(-50%,-58%) scale(1)}}
@keyframes turnSweep{0%{transform:translateX(-105%);opacity:0}20%,65%{opacity:1}100%{transform:translateX(105%);opacity:0}}
@media(prefers-reduced-motion:reduce){
  .placement-splash,.card-placed>.mini-card,.hand-choice.hand-added,.removal-ghost,.slot.combat-pending:before,.combat-damage,.turn-flash,.turn-flash span{animation-duration:.01ms!important;animation-iteration-count:1!important}
}

.tutorial-launch{position:relative;z-index:1;display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:24px;padding:14px 16px;border:1px solid #d7a84b66;border-radius:13px;background:#0f0d0cb8;max-width:940px}
.tutorial-launch img{width:70px;aspect-ratio:1;border-radius:12px;border:1px solid #d7a84b77;background:#100d0e}
.tutorial-launch span{display:block;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.tutorial-launch h3{margin:3px 0 4px;font:22px Marcellus}
.tutorial-launch p{font-size:12px;line-height:1.45;max-width:650px}
.tutorial-launch .btn{white-space:nowrap}
.tutorial-guide{gap:10px;overflow:hidden}
.tutorial-guide>header{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:9px}
.tutorial-guide>header img{width:44px;aspect-ratio:1;border-radius:8px;border:1px solid #d7a84b66;background:#0f0d0c}
.tutorial-guide>header strong{display:block;margin-top:3px;font:17px/1.15 Marcellus}
.tutorial-guide>header>span{align-self:start;color:var(--muted);font-size:10px;white-space:nowrap}
.tutorial-guide>p{margin:0;min-height:0;overflow-y:auto;color:#d9cec0;font-size:12px;line-height:1.55;padding-right:3px}
.tutorial-progress{display:flex;gap:2px}
.tutorial-progress i{height:4px;min-width:2px;flex:1;border-radius:4px;background:#3b332d}
.tutorial-progress i.done{background:var(--gold)}
.tutorial-guide-actions{display:grid;grid-template-columns:auto 1fr auto;gap:5px}
.tutorial-guide-actions .btn{padding:7px 8px;font-size:10px}
.tutorial-guide-collapsed{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:64px}
.tutorial-guide-collapsed img{width:38px;aspect-ratio:1;border-radius:7px}
.tutorial-guide-collapsed strong,.tutorial-guide-collapsed small{display:block}
.tutorial-guide-collapsed small{color:var(--muted);font-size:10px;margin-top:2px}
.tutorial-game .sidebar{grid-template-rows:auto auto auto minmax(150px,1fr) auto}
@media(max-height:800px){
  .tutorial-game{padding:6px;gap:6px}
  .tutorial-game .sidebar{gap:5px;grid-template-rows:auto auto auto minmax(130px,1fr) auto}
  .tutorial-game .phasebox,.tutorial-game .piles,.tutorial-game .tutorial-guide{padding:7px}
  .tutorial-game .turn-clock{margin-top:5px;padding:5px 7px}
  .tutorial-game .piles{gap:4px;grid-auto-rows:42px}
  .tutorial-game .pile{height:42px;padding:4px 6px}
  .tutorial-game .pile strong{font-size:15px}
  .tutorial-game .tutorial-guide{gap:6px}
  .tutorial-game .tutorial-guide>header{grid-template-columns:36px minmax(0,1fr) auto}
  .tutorial-game .tutorial-guide>header img{width:36px}
  .tutorial-game .tutorial-guide>header strong{font-size:15px}
  .tutorial-game .tutorial-guide>p{font-size:11px;line-height:1.4}
  .tutorial-game .actions{grid-template-rows:40px 40px 40px}
  .tutorial-game .actions .btn{height:40px}
}
@media(max-width:760px){
  .tutorial-launch{grid-template-columns:54px 1fr;padding:12px}
  .tutorial-launch img{width:54px}
  .tutorial-launch .btn{grid-column:1/-1;width:100%}
}

/* Current menu guidance, card footers, counters, and touch details */
.hero-notes{display:grid;gap:10px;margin-top:18px;max-width:560px}
.hero-notes p{display:flex;flex-direction:column;gap:5px;margin:0;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#120f0daa;font-size:14px}
.hero-notes strong{color:var(--gold);font:16px Marcellus}
.hero-notes span{color:var(--muted);line-height:1.35}
.card .copy{padding-bottom:29px}
.mini-card .copy{padding-bottom:35px}
.mini-card .stats{position:absolute;left:5px;right:auto;bottom:5px;z-index:11;max-width:calc(100% - 60px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#0b0908e8;border-radius:5px;padding:3px 5px;font-size:9px;color:#efe5d7}
.position-badge{left:auto;right:5px;top:5px;bottom:auto}
.card-type-stats{text-transform:uppercase;letter-spacing:.055em;color:#f0d18b}
.card .stats .counter-stat,.mini-card .stats .counter-stat{color:#ff9d3f;text-shadow:0 0 7px #d86c2288;font-weight:800}
.card .stats .modifier-pair-stat,.mini-card .stats .modifier-pair-stat{font-weight:900}.modifier-pair-stat.buff{color:#67e38c;text-shadow:0 0 7px #2bc45d88}.modifier-pair-stat.debuff{color:#ff7064;text-shadow:0 0 7px #d63d3288}.match-canvas .mini-card .stats.has-extra-status{gap:3px;padding-inline:1px}.match-canvas .mini-card .stats.has-extra-status .modifier-pair-stat{font-size:10px}
.hand-card-help.touch-pinned{display:block;pointer-events:auto}
.card-help-close{position:absolute;right:8px;top:8px;width:36px;height:36px;border:1px solid #8d7868;border-radius:50%;background:#2a231e;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.hand-card-help.touch-pinned>strong{padding-right:42px}
@media (hover:none),(pointer:coarse){
  .game .hand{z-index:120}
  .game .hand-choice.play-selected{z-index:130}
  .hand-card-help.touch-pinned{z-index:280;isolation:isolate;backface-visibility:hidden}
}
.phase-flash{position:fixed;inset:0;z-index:175;display:grid;place-items:center;overflow:hidden;pointer-events:none}
.phase-flash span{min-width:min(520px,88vw);padding:10px 20px;text-align:center;border-block:1px solid #f1ca73;background:linear-gradient(90deg,transparent,#241d19ed 24%,#3c2e22f2 50%,#241d19ed 76%,transparent);color:#f3d994;font:clamp(24px,4vw,44px) Marcellus;letter-spacing:.08em;text-transform:uppercase;transform:translateX(105%);animation:phaseSweep .6s ease-out forwards}
@keyframes phaseSweep{0%{transform:translateX(105%);opacity:0}25%,65%{opacity:1}100%{transform:translateX(-105%);opacity:0}}
@media(prefers-reduced-motion:reduce){
  .phase-flash,.phase-flash span{animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media(max-width:1100px),(prefers-reduced-motion:reduce){
  .turn-flash,.phase-flash{display:none!important}
  .cookie-consent,.trap-pass-box,.sacrifice-level-box{backdrop-filter:none}
  .match-canvas .mini-card{box-shadow:0 2px 5px #0008}
}

/* Deck-limit feedback, zone arrivals, and the shared face-down card back */
.catalog-card.limit-reached,.catalog-card:disabled{opacity:.43;filter:saturate(.45);cursor:not-allowed;border-color:#493d35}
.catalog-card.limit-reached:hover,.catalog-card:disabled:hover{transform:none;border-color:#493d35}
.catalog-card.limit-reached>b{color:#ff8074}
.pile.pile-glow,.field-zone-count.pile-glow{position:relative;z-index:2;animation:zoneReceive .55s ease-out}
.mini-card.facedown{background:#0b0908 url("/card-back.webp") center/cover no-repeat;border-style:solid;border-color:#a47b35;box-shadow:inset 0 0 0 2px #0b0908,inset 0 0 18px #d7a84b44}
.mini-card.facedown.unit-token>*{visibility:visible}.mini-card.facedown.unit-token .unit-token-mark{position:absolute;top:7px;left:7px;z-index:12;padding:4px 7px;border:1px solid #ffc36b;border-radius:6px;background:#21170ddd;color:#ffc36b;font:800 10px/1 "DM Sans",sans-serif;letter-spacing:.12em;box-shadow:0 0 12px #ff982f66}.mini-card.facedown.unit-token .stats{display:block;position:absolute;left:7px;right:auto;bottom:7px;width:auto;height:auto;max-width:none;padding:4px 7px;background:#0b0908e8;border-radius:6px;color:#fff}
@keyframes zoneReceive{
  0%{border-color:#fff3bf;box-shadow:inset 0 0 12px #f2c55a66;transform:scale(.96)}
  55%{border-color:#f2c55a;box-shadow:inset 0 0 8px #f2c55a3d;transform:scale(1.02)}
  100%{border-color:var(--line);box-shadow:none;transform:scale(1)}
}
@media(prefers-reduced-motion:reduce){
  .pile.pile-glow,.field-zone-count.pile-glow{animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* Square card artwork with the stat/type strip directly beneath it */
.card-art-block{min-width:0;overflow:hidden;background:#120f0d}
.card-art-frame{position:relative;width:100%;height:0;padding-top:100%;overflow:hidden;flex:0 0 auto}
.card-art-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.unit-level-badge{position:absolute;left:0;top:0;z-index:7;width:22px;min-width:0;height:22px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid #ffe4a5;border-top:0;border-left:0;border-radius:0 0 5px 0;background:#15110eeb;color:#fff2c9;font:900 20px/.9 "DM Sans",sans-serif;box-shadow:0 2px 7px #000;text-shadow:0 1px 2px #000}
.mini-card .unit-level-badge{left:0;top:0;width:20px;min-width:0;height:20px;padding:0;font-size:18px}
.hand .card .unit-level-badge{width:18px;height:18px;font-size:10px}
.card .card-art-block{width:100%;display:flex;flex-direction:column}
.card .card-art-block .stats{position:static;display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:18px;border-radius:0;padding:4px 5px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card>.copy{padding:6px 6px 3px}
.mini-card{grid-template-columns:auto minmax(0,1fr);align-items:stretch}
.mini-card .card-art-block{width:auto;height:100%;aspect-ratio:4/5;align-self:stretch;display:flex;flex-direction:column;align-items:stretch;overflow:hidden;background:transparent}
.mini-card .card-art-frame{width:100%;height:80%;padding-top:0;aspect-ratio:1/1;flex:0 0 80%}
.mini-card .card-art-block .stats{position:static;display:flex;align-items:center;justify-content:center;width:100%;height:20%;min-height:0;max-width:none;border-radius:0;padding:2px 3px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-card>.copy{min-height:0;align-self:stretch;padding:6px 6px 3px;overflow:hidden}
.hand .card>.copy{position:absolute;left:0;right:0;bottom:0;z-index:6;min-height:30px;max-height:40px;padding:5px 6px;background:linear-gradient(180deg,#100d0ee8,#0c0a09f8);display:flex;align-items:center;overflow:hidden}
.hand .card>.copy h4{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0;font-size:11px;line-height:1.08}
.hand .card>.copy p,.hand .card>.copy blockquote{display:none}
.hand .card .card-art-block .stats{position:absolute;left:0;right:0;bottom:30px;z-index:7;width:100%;height:18px;min-height:18px}
.catalog-card img{aspect-ratio:auto;align-self:stretch;object-fit:cover}

/* Both players lock their opening hands before the first turn */
.opening-screen{height:100dvh;min-height:100dvh;padding:24px;display:grid;place-items:center;overflow-y:auto;background:radial-gradient(circle at 50% 0,#49362a 0,#100d0e 52%,#0b0a09 100%)}
.opening-panel{width:min(1180px,100%);padding:24px;background:#100d0ef2;border:1px solid var(--line);border-radius:15px;box-shadow:0 20px 70px #0009;text-align:center}
.opening-panel h1{margin:8px 0 5px;font:clamp(32px,5vw,56px) Marcellus}
.opening-panel>p{margin:0 auto 18px;max-width:720px;color:var(--muted)}
.opening-panel>.opening-deck-name{display:flex;justify-content:center;gap:8px;margin:-8px auto 14px;color:var(--ink)}
.opening-deck-name span{color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.opening-deck-name strong{color:var(--gold)}
.opening-hand{display:flex;flex-wrap:nowrap;justify-content:center;gap:12px;align-items:flex-start}
.opening-card{flex:1 1 0;min-width:0;max-width:180px;border-radius:9px;outline:none}
.opening-card:focus-visible{box-shadow:0 0 0 3px #f1ca73}
.opening-hand .card{width:100%;height:auto;cursor:default}
.opening-card:hover .card,.opening-card:focus-visible .card{transform:translateY(-3px)}
.opening-status{display:flex;justify-content:center;gap:10px;margin:18px 0 10px}
.opening-status span{min-width:150px;padding:8px 12px;border:1px solid var(--line);border-radius:99px;color:var(--muted)}
.opening-status span.ready{border-color:#6f9f68;color:#9bdd91;background:#6f9f6814}

/* Card-art player profiles */
.player-avatar{width:44px;aspect-ratio:1;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border:2px solid #b79265;border-radius:8px;background:linear-gradient(145deg,#35291f,#100d0e);box-shadow:0 4px 12px #0008;color:var(--gold);font:20px Marcellus}
.player-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.player-avatar.generic-avatar img{object-position:center}
.profile-chip{appearance:none;display:flex;align-items:center;gap:8px;max-width:230px;padding:3px 9px 3px 3px;border:1px solid var(--line);border-radius:10px;background:#100d0e;color:#e8f5e9;font-weight:700;cursor:pointer}
.profile-chip:hover{border-color:var(--gold)}
.profile-chip>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-avatar{width:34px;border-radius:7px}
.player-avatar.role-owner{border:3px solid #d94a4a;box-shadow:0 0 0 1px #2b0707,0 0 12px #d94a4a88}
.player-avatar.role-admin{border:3px solid #54b96c;box-shadow:0 0 0 1px #071d0c,0 0 12px #54b96c77}
.player-avatar.role-moderator{border:3px solid #4d8fd7;box-shadow:0 0 0 1px #071525,0 0 12px #4d8fd777}
.identity .match-avatar{width:54px;margin-bottom:7px}
.opponent-pile-counts{margin-top:6px;color:#b9ac9d;font-size:10px;line-height:1.35}
.opponent-pile-counts b{color:#f0d38c;font-size:12px}
.opening-status span{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:1px 9px;text-align:left;border-radius:10px}
.opening-status .opening-avatar{grid-row:1/3;width:42px}
.opening-status b{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opening-status small{font-size:11px}
.avatar-picker-dialog{width:min(820px,96vw);max-height:min(860px,92vh);display:flex;flex-direction:column;gap:10px;overflow:hidden;background:#1c1714;border:1px solid var(--gold);border-radius:14px;padding:24px;box-shadow:0 25px 80px #000}
.avatar-picker-dialog h2{font:32px Marcellus;margin:0}
.avatar-picker-dialog>p{margin:0 0 4px;color:var(--muted)}
.avatar-choice-grid{min-height:180px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));align-content:start;gap:10px;padding:4px}
.avatar-choice{min-width:0;padding:6px;border:1px solid var(--line);border-radius:10px;background:#28211c;color:var(--ink);cursor:pointer}
.avatar-choice:hover,.avatar-choice.selected{border-color:var(--gold);background:#392d22}
.avatar-choice img{width:100%;aspect-ratio:1;display:block;object-fit:cover;border-radius:6px}
.avatar-choice span{display:block;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px Marcellus}
.avatar-empty{grid-column:1/-1;padding:35px;text-align:center;color:var(--muted)}
@media(max-width:700px){.profile-chip>span:last-child{display:none}.profile-chip{display:flex;padding:3px}.identity .match-avatar{width:42px}.avatar-picker-dialog{padding:16px}.avatar-choice-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}}

/* Player profile summary */
.profile-pane{height:100%;overflow:auto;display:flex;flex-direction:column;gap:18px;padding:4px}
.profile-overview{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:20px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#2a211a,#100d0e)}
.profile-page-avatar{width:92px;border-radius:14px;border-color:var(--gold)}
.profile-overview h2{font:clamp(30px,4vw,48px) Marcellus;margin:4px 0}
.profile-overview p{margin:0;color:var(--muted)}
.profile-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.profile-stat-grid article{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:14px;background:#100d0e}
.profile-stat-grid strong{font:clamp(44px,7vw,72px) Marcellus;color:var(--gold);line-height:1}
.profile-stat-grid span{margin-top:8px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:12px}
@media(max-width:620px){.profile-overview{grid-template-columns:auto 1fr}.profile-overview .btn{grid-column:1/-1}.profile-page-avatar{width:70px}.profile-stat-grid article{min-height:120px}}

/* Private issue and suggestion reports */
.feedback-pane{height:100%;overflow:auto;display:grid;grid-template-columns:minmax(220px,.72fr) minmax(320px,1.28fr);gap:22px;align-items:start;padding:8px}
.feedback-pane>header{padding:24px 8px}
.feedback-pane h2{font:clamp(34px,4vw,54px)/1 Marcellus;margin:10px 0}
.feedback-pane>header p{color:var(--muted);font-size:15px;line-height:1.55}
.feedback-form{display:grid;gap:14px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#100d0e}
.field select,.field textarea{width:100%;background:#0f0d0c;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:11px}
.field textarea{resize:vertical;min-height:170px;line-height:1.45}
.field select:focus,.field textarea:focus{outline:1px solid var(--gold);border-color:var(--gold)}
.feedback-form .field small{color:var(--muted);text-align:right}
.feedback-message{min-height:20px;margin:0;color:#f0ad91}
.feedback-success{min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.feedback-success>span{width:72px;aspect-ratio:1;display:grid;place-items:center;border:2px solid #6f9f68;border-radius:50%;color:#9bdd91;font-size:36px;background:#6f9f6814}
.feedback-success h3{font:36px Marcellus;margin:14px 0 4px}
.feedback-success p{color:var(--muted)}
.feedback-success small{color:var(--gold);letter-spacing:.12em;text-transform:uppercase}
.feedback-success .btn{margin-top:22px}
.deck-data-builder-pane .deck-data-pane{min-height:0}.deck-data-pane{height:100%;overflow:auto;padding:8px}.deck-data-pane>header{padding:12px 8px 18px;border-bottom:1px solid var(--line)}.deck-data-pane h2{margin:5px 0;font:34px Marcellus}.deck-data-pane header p,.deck-data-pane>small{color:var(--muted);line-height:1.5}.deck-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.deck-data-grid article{min-width:0;display:grid;align-content:start;gap:10px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#100d0e}.deck-data-grid h3{margin:0;font:22px Marcellus;color:#ead29a}.deck-data-grid textarea{width:100%;min-height:260px;resize:vertical;padding:12px;border:1px solid #4b4036;border-radius:8px;background:#0e0c0a;color:#ddd0bd;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.deck-data-grid textarea:focus{outline:1px solid var(--gold);border-color:var(--gold)}.deck-data-grid p{min-height:18px;margin:0;color:#ef9d8e;font-size:10px}
.cookie-consent{position:fixed;left:18px;right:18px;bottom:18px;z-index:260;display:flex;align-items:center;justify-content:space-between;gap:18px;width:min(860px,calc(100vw - 36px));margin:auto;padding:16px 18px;border:1px solid #806538;border-radius:12px;background:#17130ff2;box-shadow:0 18px 55px #000b;backdrop-filter:blur(8px)}
.cookie-consent strong{display:block;color:#f0d18b;font:20px Marcellus}.cookie-consent p{max-width:580px;margin:5px 0 0;color:#c8bcad;font-size:12px;line-height:1.45}.cookie-consent-actions{display:flex;flex:0 0 auto;gap:8px}
@media(max-width:720px){.age-gate-actions,.deck-data-grid{grid-template-columns:1fr;flex-direction:column}.privacy-badge{display:none}.privacy-policy-screen{padding:14px}.privacy-policy-card{padding:24px 20px}.menu-view-toolbar{flex-wrap:wrap}.menu-view-toolbar .builder-navigation{order:2;width:100%;margin-left:0}.builder-navigation .btn{min-width:0;flex:1}.cookie-consent{align-items:stretch;flex-direction:column}.cookie-consent-actions{display:grid;grid-template-columns:1fr}.cookie-consent-actions .btn{width:100%}}
@media(max-width:760px){.feedback-pane{grid-template-columns:1fr;gap:4px}.feedback-pane>header{padding:10px 4px}.feedback-form{padding:16px}.tabs{overflow-x:auto}.tabs .btn{min-width:92px}}

/* Project story */
.about-pane{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 8px 34px 2px;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.about-header{position:relative;overflow:hidden;padding:clamp(26px,3.5vw,44px);border:1px solid #594834;border-radius:16px 16px 0 0;background:radial-gradient(circle at 90% 10%,#d7a84b26,transparent 38%),linear-gradient(135deg,#2b211a,#100d0e 70%)}
.about-header:after{content:"";position:absolute;width:250px;height:250px;right:-90px;bottom:-150px;border:1px solid #d7a84b24;border-radius:50%;box-shadow:0 0 0 30px #d7a84b0b,0 0 0 60px #d7a84b08;pointer-events:none}
.about-header h2{position:relative;z-index:1;max-width:760px;margin:10px 0 0;font:clamp(34px,4vw,56px)/1.03 Marcellus;letter-spacing:-.02em}
.about-copy{padding:clamp(22px,3vw,38px);border:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px;background:linear-gradient(145deg,#1d1814,#13100e)}
.about-copy-text{max-width:900px;color:#d2c5b6;font-size:clamp(13px,1.2vw,16px);line-height:1.72;white-space:pre-wrap}
.about-card-examples{display:flex;flex-wrap:wrap;gap:14px;margin:32px 0 0}
.about-card-example{width:min(100%,280px);height:140px;min-width:0}
.about-card-example .mini-card{width:100%;height:100%;cursor:default}
.about-card-example.about-rex .card-art-frame img{object-position:42% center;transform:scaleX(-1)}
.about-card-example.about-rex .mini-card .copy{padding:6px 8px 35px}
@media(max-width:600px){.about-card-examples{margin-top:24px}}
@media(hover:none),(pointer:coarse){.about-pane{height:auto;max-height:none;overflow:visible}}
.opening-actions{display:flex;justify-content:center;gap:10px}
.opening-actions .btn{min-width:180px}
.opening-leave{margin-top:12px}
@media(max-width:800px){
  .opening-screen{padding:12px;align-items:start}
  .opening-panel{padding:16px}
  .opening-hand{justify-content:flex-start;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-gutter:stable;padding:2px 2px 10px;touch-action:pan-x pinch-zoom;-webkit-overflow-scrolling:touch}
  .opening-card{flex:0 0 112px}
  .opening-hand .card>.copy{position:absolute;left:0;right:0;bottom:0;z-index:8;min-height:32px;max-height:42px;padding:5px 6px;background:linear-gradient(180deg,#100d0ee8,#0c0a09fa);display:flex;align-items:center}
  .opening-hand .card>.copy h4{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0;font-size:11px;line-height:1.08;text-align:left}
  .opening-hand .card .card-art-block .stats{position:absolute;left:0;right:0;bottom:32px;z-index:7;width:100%;height:18px;min-height:18px}
}

/* Opt-in community deck shelf */
.shared-decks-builder-pane{min-height:0}
.shared-decks-pane{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}
.share-deck-form{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(380px,1.28fr);align-items:end;gap:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#211b17,#100d0e)}
.share-deck-form header h2{margin:4px 0;font:28px Marcellus}.share-deck-form header p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}
.share-deck-fields{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,.72fr) auto;align-items:end;gap:8px}.share-deck-fields .field>span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.share-deck-fields .btn{min-height:39px;white-space:nowrap}
.share-deck-message{grid-column:1/-1;min-height:16px;margin:0;color:#ef9d8e;font-size:10px;text-align:right}
.shared-library{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}
.shared-header{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.shared-header h2{font:32px Marcellus;margin:4px 0}
.shared-header p{margin:0;color:var(--muted);font-size:12px}
.shared-grid{min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-content:start;gap:10px;padding-right:5px;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.shared-deck{min-width:0;padding:14px;background:#100d0e;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 22px #0004}
.shared-deck-title{display:flex;align-items:start;justify-content:space-between;gap:10px}
.shared-deck-copy{min-width:0}
.shared-by{display:flex;align-items:center;gap:5px}
.shared-owner-avatar{width:18px;min-width:18px;height:18px;border-width:1px!important;border-radius:4px;box-shadow:none!important}
.shared-deck-title h3{font:20px Marcellus;margin:0 0 2px}
.shared-deck-title span{color:var(--muted);font-size:10px}
.shared-deck-title>b{display:grid;place-items:center;min-width:38px;height:38px;border:1px solid var(--gold);border-radius:50%;color:var(--gold)}
.shared-deck>p{margin:10px 0;color:#d8cbbb;font-size:11px;text-transform:capitalize}
.shared-deck details{border-top:1px solid var(--line);padding-top:9px}
.shared-deck summary{cursor:pointer;color:#e8c77e;font-size:11px}
.shared-deck ul{max-height:240px;overflow-y:auto;list-style:none;margin:9px 0 0;padding:0;display:grid;gap:4px}
.shared-deck li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 7px;border-left:3px solid var(--card-color);background:#211b17;border-radius:4px}
.shared-deck li b{color:var(--gold);font-size:10px}.shared-deck li span{min-width:0;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-deck li small{color:var(--muted);font-size:9px}
.shared-deck.core{position:relative;border-color:#e5bd63;box-shadow:inset 0 0 28px #d7a84b12,0 10px 26px #0005}
.core-deck-label{display:inline-flex;margin:-3px 0 9px;padding:4px 8px;border:1px solid #e5bd6377;border-radius:99px;background:#d7a84b1a;color:#f0cf82;font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.shared-tier-divider{grid-column:1/-1;height:1px;margin:8px 2px;background:linear-gradient(90deg,transparent,#d7a84b99 8%,#d7a84b 50%,#d7a84b99 92%,transparent);box-shadow:0 0 10px #d7a84b33}
.saved-deck.core{border-color:#c99a42;background:#271e13}
.tiny.core-share{border-color:#c99a42;color:#f0cf82}
.tiny.core-share:hover{background:#3a2b16}
.shared-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:11px}
.shared-empty{grid-column:1/-1}
@media(max-width:620px){
  .tabs{flex-wrap:wrap}.tabs .btn{flex:1 1 44%}
  .shared-decks-pane{overflow-y:auto;grid-template-rows:auto auto}.share-deck-form{grid-template-columns:1fr}.share-deck-fields{grid-template-columns:1fr}.share-deck-message{text-align:left}.shared-library{height:auto;min-height:480px}
  .shared-header{align-items:start}.shared-grid{grid-template-columns:1fr}
}

/* Hibernation inspection and card previews for selection menus */
.hibernate-view-button{margin-top:7px;padding:5px 7px;border:1px solid #665344;border-radius:6px;background:#211a16;color:#d8cbbd;font-size:9px;cursor:pointer;text-align:left}
.hibernate-view-button:hover{border-color:var(--gold);color:#f2d58f}
.hibernate-view-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
.hibernate-view-card{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px;min-height:72px;padding:7px;border:1px solid var(--card-color);border-radius:8px;background:#241e1a}
.hibernate-view-card img{width:58px;height:58px;object-fit:cover;border-radius:5px}
.hibernate-view-card span{display:flex;min-width:0;flex-direction:column;gap:5px}
.hibernate-view-card strong{font:15px Marcellus}
.hibernate-view-card small{color:var(--muted);line-height:1.35}
.selection-card-preview{display:none;position:fixed;right:24px;top:50%;z-index:240;width:min(430px,calc(100vw - 32px));transform:translateY(-50%);pointer-events:none;filter:drop-shadow(0 20px 35px #000)}
.selection-card-preview.preview-left{right:auto;left:24px}
.selection-card-preview.show{display:block}
.selection-preview-card{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;padding:12px;background:#100d0ef7;border:2px solid var(--card-color);border-radius:12px;color:var(--ink)}
.selection-preview-card img{width:130px;height:130px;object-fit:cover;border-radius:7px}
.selection-preview-card>div{min-width:0}
.selection-preview-card strong{display:block;font:23px Marcellus;margin-bottom:3px}
.selection-preview-card>div>span{display:block;color:var(--card-color);font-size:11px;text-transform:capitalize}
.selection-preview-card p{margin:10px 0 0;color:#efe5d7;font-size:14px;line-height:1.4;white-space:pre-line}
.selection-preview-card .flavor-text{margin:9px 0 0;font-size:12px}
@media(max-width:980px){
  .selection-card-preview{right:8px;width:min(360px,calc(100vw - 16px))}
  .selection-card-preview.preview-left{left:8px}
  .selection-preview-card{grid-template-columns:96px minmax(0,1fr)}
  .selection-preview-card img{width:96px;height:96px}
  .hibernate-view-list{grid-template-columns:1fr}
}

/* Field-first ability targeting and menu-safe card details */
.modal-backdrop{z-index:300}
body:has(.modal-backdrop) .board-card-help,body.ability-selecting .board-card-help{display:none!important}
.selection-card-preview{z-index:340}
.choice-card-icon{width:46px;height:46px;flex:0 0 46px;object-fit:cover;border:1px solid var(--card-color,var(--line));border-radius:7px;background:#100d0b}
.sacrifice-option>.choice-card-icon-set{display:flex;align-items:center;flex:0 0 auto;min-width:auto}
.choice-card-icon-set>span{display:block}
.choice-card-icon-set>span+span{margin-left:-10px}
.choice-card-icon-set .choice-card-icon{width:42px;height:42px;flex-basis:42px;box-shadow:0 2px 7px #000a}
.sacrifice-option>span{flex:1;min-width:0}
.choice-source-summary{display:flex;align-items:center;gap:11px;margin:7px 0 13px;padding:8px;border:1px solid var(--card-color,var(--line));border-radius:10px;background:#251f1a}
.choice-source-summary .choice-card-icon{width:56px;height:56px;flex-basis:56px}
.choice-source-summary span{min-width:0}
.choice-source-summary h2{margin:0}
.choice-source-summary small{color:var(--muted);text-transform:capitalize}
.field-selection-pass{position:absolute;left:50%;top:50%;z-index:250;transform:translate(-50%,-50%);box-shadow:0 8px 24px #000c}
.opponent-zone .board{position:relative}
.trap-pass-box{position:absolute;left:50%;top:50%;z-index:250;display:grid;place-items:center;width:clamp(220px,32vw,360px);max-width:calc(100% - 24px);min-height:96px;box-sizing:border-box;transform:translate(-50%,-50%);padding:22px 24px;border:1px solid #d7a84bcc;border-radius:14px;background:#100d0ee8;box-shadow:0 12px 32px #000d,inset 0 0 18px #d7a84b12;backdrop-filter:blur(3px)}
.trap-pass-box .field-selection-pass{position:static;transform:none;z-index:auto}
.field-selection-pass.trap-pass{background:#2a231eee;border-color:var(--gold);white-space:nowrap}
.trap-selecting .my-zone .mini-card:not([data-card-kind="trap"]),
.trap-selecting .hand .card:not([data-card-kind="trap"]){filter:grayscale(1) brightness(.42);opacity:.52;transition:filter .16s,opacity .16s}
.field-placement-selecting .player-zone .slot:not(.ability-target-eligible){filter:grayscale(1) brightness(.46);opacity:.5;transition:filter .16s,opacity .16s}
.field-placement-selecting .player-zone .slot.ability-target-eligible{background:#2f291c;box-shadow:inset 0 0 30px #d7a84b33,0 0 18px #d7a84b77!important}
.sacrifice-level-box{position:absolute;left:50%;top:50%;z-index:250;display:grid;place-items:center;gap:4px;min-width:190px;transform:translate(-50%,-50%);padding:12px 16px;border:1px solid #d7a84bcc;border-radius:12px;background:#100d0ee8;color:var(--ink);box-shadow:0 12px 32px #000d,inset 0 0 18px #d7a84b12;backdrop-filter:blur(3px);pointer-events:auto}
.sacrifice-level-box span{color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.sacrifice-level-box strong{font:22px Marcellus;color:var(--ink);white-space:nowrap}
.sacrifice-level-box small{max-width:180px;color:var(--muted);font-size:9px;line-height:1.3}.sacrifice-level-box:disabled{cursor:not-allowed;opacity:.78}.sacrifice-level-box.ready{cursor:pointer;border-color:#ffd36b;background:#2b2115f2;box-shadow:0 12px 32px #000d,0 0 22px #e5af3b55,inset 0 0 18px #d7a84b20}.sacrifice-level-box.ready:hover{background:#382b1b}
.sacrifice-cancel-button{position:absolute;left:50%;top:calc(50% + 68px);z-index:251;transform:translateX(-50%);padding:6px 11px;border:1px solid #77675a;border-radius:7px;background:#100d0eed;color:var(--muted);font-size:10px;cursor:pointer;box-shadow:0 7px 18px #000b}.sacrifice-cancel-button:hover{border-color:#d7a84b;color:var(--ink)}
body.ability-selecting .match-bottom-controls,body.ability-selecting:not(.hand-selecting) .hand{pointer-events:none}
body.hand-selecting .hand{pointer-events:auto}
.hand-selection-hud{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:260;display:flex;align-items:center;gap:12px;width:max-content;max-width:min(560px,86vw);transform:translateX(-50%);padding:9px 12px;border:1px solid #bd7f02;border-radius:10px;background:#22352df2;color:var(--ink);box-shadow:0 10px 28px #000c,0 0 18px #bd7f0244;pointer-events:auto}
.hand-selection-hud>span{min-width:0;display:flex;flex-direction:column;gap:2px}.hand-selection-hud strong{color:#eaf8d2;font:15px Marcellus}.hand-selection-hud small{color:#c9d5c6;font-size:10px;line-height:1.25}.hand-selection-hud .btn{flex:0 0 auto;padding:6px 10px;font-size:10px}
body.hand-selecting .hand-choice{pointer-events:auto}
.ability-target-ineligible{filter:grayscale(1) brightness(.4)!important;opacity:.42!important;pointer-events:none!important;transition:filter .16s,opacity .16s}
.ability-target-eligible{cursor:pointer!important;outline:3px solid #bd7f02;outline-offset:-3px;box-shadow:inset 0 0 30px #bd7f023d,0 0 20px #bd7f02b8!important;filter:brightness(1.18);transition:filter .16s,outline-color .16s,box-shadow .16s}
.ability-target-eligible:hover,.ability-target-eligible:focus-visible{outline-color:#fffce3;box-shadow:inset 0 0 34px #ffe29255,0 0 28px #fff0a8e0!important;filter:brightness(1.28)}
.ability-target-selected{outline:4px solid #72e69a!important;outline-offset:-4px;box-shadow:inset 0 0 28px #38dc7a44,0 0 24px #38dc7aaa!important;filter:brightness(1.12)}
.sacrifice-queued-badge{position:absolute;left:50%;top:50%;z-index:90;transform:translate(-50%,-50%);padding:5px 9px;border:1px solid #a5f2bb;border-radius:99px;background:#153d24e8;color:#bff7ce;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 4px 14px #000c,0 0 16px #38dc7a88;pointer-events:none}
.ability-source-active{outline:3px solid #8dd9ff;outline-offset:-3px;box-shadow:0 0 12px #62c8ff!important}
.identity.ability-target-eligible,.identity.ability-target-selected{border-radius:9px}
.attachment-tab.ability-target-eligible,.attachment-tab.ability-target-selected{z-index:45}
@media(max-width:700px){
  .choice-card-icon{width:40px;height:40px;flex-basis:40px}
}

/* Latest updates, pile inspection, and favorite decks */
.tabs{flex-wrap:wrap}
.tabs button{flex:1 1 82px}
.updates-pane{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 8px 34px 2px;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.updates-header{padding:22px;border:1px solid #54452f;border-radius:13px;background:linear-gradient(135deg,#2d2214,#100d0e)}
.updates-header h2{margin:7px 0 8px;font:34px Marcellus;color:#f0d18b}
.updates-header p{max-width:650px;margin:0 0 12px;color:#d8ccba;line-height:1.5}
.updates-header time{color:#a89a86;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.updates-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.updates-list section{padding:16px;border:1px solid var(--line);border-radius:10px;background:#100d0e}
.updates-list h3{margin:0 0 7px;font:19px Marcellus;color:#e7c77f}
.updates-list p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.pile[data-pile="deck"],.pile[data-pile="discard"],.pile[data-pile="sacrifice"]{cursor:pointer}
.pile[data-pile="deck"]:hover,.pile[data-pile="discard"]:hover,.pile[data-pile="sacrifice"]:hover{border-color:var(--gold);background:#30271f}
.pile-count-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:16px 0}
.pile-count-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:64px;padding:6px;border:1px solid var(--card-color);border-radius:8px;background:#241e1a}
.pile-count-card img{width:52px;height:52px;object-fit:cover;border-radius:5px}
.pile-count-card span{display:flex;min-width:0;flex-direction:column;gap:3px}
.pile-count-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:14px Marcellus}
.pile-count-card small{color:var(--muted);font-size:9px;text-transform:capitalize}
.pile-count-card b{min-width:34px;color:var(--gold);font:22px Marcellus;text-align:center}
.saved-deck.favorite{border-color:#a98338;box-shadow:inset 0 0 16px #d7a84b10}
.tiny.favorite{color:#f3ca69;border-color:#896c34}
.tiny.favorite[aria-pressed="true"]{background:#5d461d;color:#ffe39e;border-color:#e3b94f}
.favorite-match-choice{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#15110e}
.favorite-match-choice .btn{min-width:155px}
.favorite-match-choice .btn.active{border-color:#e5bc55;background:#4b391b;color:#ffe098}
.favorite-match-choice span{display:flex;min-width:0;flex-direction:column;gap:2px}
.favorite-match-choice strong{font:14px Marcellus}
.favorite-match-choice small{color:var(--muted);font-size:9px;line-height:1.35}
@media(max-width:700px){
  .updates-list,.pile-count-list{grid-template-columns:1fr}
  .favorite-match-choice{grid-template-columns:1fr}
}

/* Read-only live match spectating */
.live-spectate{margin:0;white-space:nowrap;color:#b9efc6;border-color:#456a4d}
.live-spectate:hover{border-color:#79ca8a}
.spectator-game{grid-template-columns:minmax(0,1fr) 300px}
.spectator-arena{grid-template-rows:repeat(2,minmax(0,1fr))}
.spectator-zone-counts{margin-top:6px;color:#a99c8d;font-size:9px;line-height:1.4}
.spectator-sidebar{grid-template-rows:auto minmax(0,1fr) auto}
.spectator-note{margin:9px 0 0;color:#8fc99c;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.spectator-leave{width:100%;min-height:42px}
.spectator-opening .spectator-leave{margin-top:18px}
.spectator-result h1{font-size:clamp(38px,6vw,64px)}
@media(max-width:760px){
  .spectator-game{height:auto;min-height:100dvh;grid-template-columns:1fr}
  .spectator-arena{grid-template-rows:repeat(2,minmax(300px,1fr))}
  .spectator-sidebar{min-height:360px}
}

/* Authoritative turn clock */
.turn-clock{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:2px 10px;margin:9px 0;padding:8px 9px;border:1px solid #493d31;border-radius:8px;background:#100d0b;transition:border-color .2s,background .2s}
.turn-clock>span{color:#a99c8d;font-size:8px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.turn-clock>strong{grid-column:2;grid-row:1/3;color:#ead39c;font:24px/1 Marcellus;white-space:nowrap}
.turn-clock>small{color:#82786d;font-size:8px;line-height:1.25}
.turn-clock.warning{border-color:#b08337;background:#241b0f}
.turn-clock.warning>strong{color:#ffd36c}
.turn-clock.overdue{border-color:#a7473b;background:#2c1411;box-shadow:inset 0 0 16px #a7473b22}
.turn-clock.overdue>strong{color:#ff8e7e}
.turn-clock.overdue>small{color:#e6a69c}
.turn-clock.paused>strong{font-size:16px;color:#a9cbb2}

/* Collapsible community comments */
.comments-panel{align-self:start;min-height:58px;max-height:100%;background:linear-gradient(145deg,#211b17,#100d0e);border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 50px #0008;overflow:hidden}
.comments-toggle{width:100%;min-height:58px;padding:18px 16px;border:0;border-bottom:1px solid transparent;background:#1d1814;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;color:var(--gold);font:18px Marcellus;text-align:left}
.comments-toggle:before{content:"â–¾";font:12px "DM Sans",sans-serif;transform:rotate(-90deg);transition:transform .32s ease}
.comments-toggle[aria-expanded="true"]:before{transform:rotate(0)}
.comments-toggle>span{margin-right:auto}
.comments-toggle small{color:var(--muted);font:9px "DM Sans",sans-serif;text-transform:uppercase;letter-spacing:.07em}
.comments-toggle:hover,.comments-toggle:focus-visible{background:#261f1a}
.comments-toggle:focus-visible{outline:2px solid #c99d45;outline-offset:-3px}
.comments-panel.open .comments-toggle{border-bottom-color:var(--line)}
.comments-slide{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s ease}
.comments-panel.open .comments-slide{grid-template-rows:1fr}
.comments-slide-inner{min-height:0;overflow:hidden}
.comments-content{height:calc(100dvh - 162px);min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;opacity:0;transform:translateY(-8px);transition:opacity .28s ease,transform .42s ease}
.comments-panel.open .comments-content{opacity:1;transform:none}
.community-comment-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:10px;display:flex;flex-direction:column;gap:8px;scrollbar-gutter:stable}
.community-comment{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;padding:9px;border:1px solid #3d332c;border-radius:9px;background:#120f0d}
.player-avatar.comment-avatar{width:34px;border-radius:7px}
.community-comment>div{min-width:0}
.community-comment header{display:flex;align-items:baseline;justify-content:space-between;gap:5px}
.community-comment header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ead39c;font-size:11px}
.community-comment header>span{display:flex;align-items:center;gap:5px}
.comment-role{padding:2px 5px;border-radius:99px;font-size:6px;letter-spacing:.06em;text-transform:uppercase}
.comment-role.role-owner{background:#5c1717;color:#ffaaaa}
.comment-role.role-admin{background:#173f22;color:#9ee7ae}
.comment-role.role-moderator{background:#163455;color:#a9d2ff}
.comment-delete{width:21px;height:21px;padding:0;border:1px solid #643832;border-radius:5px;background:#2b1512;color:#e9998e;cursor:pointer}
.comment-delete:hover{background:#54201b;color:#fff}
.community-comment time{flex:0 0 auto;color:#766d64;font-size:7px}
.community-comment p{margin:6px 0 0;color:#d6cbbc;font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.comments-empty{padding:25px 10px;text-align:center;color:var(--muted);font-size:10px}
.community-comment-form{padding:11px;border-top:1px solid var(--line);background:#100d0e;display:grid;gap:7px}
.community-comment-form>label{color:#a99c8d;font-size:8px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.community-comment-form textarea{width:100%;min-height:66px;max-height:140px;resize:vertical;padding:9px;background:#0f0d0c;color:var(--ink);border:1px solid #493d34;border-radius:7px;font:11px/1.4 "DM Sans",sans-serif}
.community-comment-form textarea:focus{outline:1px solid var(--gold);border-color:var(--gold)}
.comment-form-row{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.community-comment-form .btn{padding:7px 9px;font-size:10px}
.community-comment-form>small{color:#766d64;font-size:7px;line-height:1.3}
@media(max-width:900px){
  .comments-panel{max-height:34vh}
  .comments-content{height:min(290px,calc(34vh - 58px))}
}
@media(prefers-reduced-motion:reduce){
  .comments-toggle:before,.comments-slide,.comments-content{transition:none}
}

/* Administrator dashboard */
.tabs .admin-tab{border-color:#6f5a2f;color:#f1ce7d}
.admin-pane{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 10px 40px 2px;display:flex;flex-direction:column;gap:14px;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.admin-header,.admin-section{border:1px solid var(--line);border-radius:13px;background:#100d0e}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;background:linear-gradient(135deg,#302517,#100d0e)}
.admin-header h2{margin:5px 0 4px;font:32px Marcellus;color:#f0d18b}
.admin-header p{margin:0;color:var(--muted);font-size:10px}
.admin-section{padding:16px}
.admin-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}
.admin-section-heading h3{margin:4px 0 0;font:23px Marcellus}
.admin-section-heading>small{color:var(--muted);font-size:8px;text-align:right}
.admin-system-grid,.admin-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.admin-system-grid article,.admin-stat-grid article{min-width:0;padding:13px;border:1px solid #463a30;border-radius:9px;background:#100d0b}
.admin-system-grid span,.admin-stat-grid span{display:block;color:#9d9184;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.admin-system-grid strong,.admin-stat-grid strong{display:block;margin:5px 0 3px;overflow:hidden;text-overflow:ellipsis;color:#efd18c;font:clamp(20px,2vw,29px)/1 Marcellus;white-space:nowrap}
.admin-system-grid small,.admin-stat-grid small{display:block;color:#766d64;font-size:7px;line-height:1.3}
.admin-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}
.admin-table-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.admin-table-grid>article{min-width:0;padding:11px;border:1px solid #3d332b;border-radius:9px;background:#120f0d}
.admin-table-grid h4,.admin-report-lists h4{margin:0 0 9px;font:16px Marcellus;color:#d9c28d}
.admin-table-wrap{max-height:280px;overflow:auto}
.admin-table-wrap table{width:100%;border-collapse:collapse;font-size:8px}
.admin-table-wrap th{position:sticky;top:0;padding:7px 6px;background:#211a15;color:#b9aa97;text-align:left;text-transform:uppercase;letter-spacing:.05em}
.admin-table-wrap td{padding:7px 6px;border-top:1px solid #312923;color:#d4c9bb;white-space:nowrap}
.admin-feedback-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);gap:10px;min-height:360px}
.admin-report-lists{display:grid;grid-template-rows:1fr 1fr;gap:10px;min-height:0}
.admin-report-lists>article{min-height:0;padding:11px;border:1px solid #3d332b;border-radius:9px;background:#120f0d;overflow:hidden}
.admin-report-lists>article>div{max-height:175px;overflow-y:auto;display:flex;flex-direction:column;gap:5px}
.admin-new-count{display:inline-grid;min-width:22px;height:22px;place-items:center;margin-left:5px;border-radius:99px;background:#5e211c;color:#ffb2a6;font:10px "DM Sans",sans-serif}
.admin-report-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border:1px solid #352d27;border-radius:7px;background:#1a1512;color:var(--ink);cursor:pointer;text-align:left}
.admin-report-row:hover{border-color:#8c7040}
.admin-report-row.unread{border-color:#7b5429;background:#2a1f13}
.admin-report-row>span{display:flex;min-width:0;flex-direction:column;gap:2px}
.admin-report-row strong{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}
.admin-report-row small{overflow:hidden;text-overflow:ellipsis;color:#897e72;font-size:7px;white-space:nowrap}
.admin-report-row>b{flex:0 0 auto;color:#f2c671;font-size:8px;text-transform:uppercase}
.admin-empty{padding:18px 6px;color:#776d63;font-size:9px;text-align:center}
.admin-report-viewer{min-width:0;overflow:hidden;border:1px solid #463a30;border-radius:9px;background:#100d0b}
.admin-report-placeholder{height:100%;min-height:330px;display:grid;place-content:center;text-align:center;color:#786e63}
.admin-report-placeholder strong{font:22px Marcellus}
.admin-report-placeholder p{margin:5px 0}
.admin-report-viewer>header{padding:16px;border-bottom:1px solid #3b312a;background:#1e1814}
.admin-report-viewer h3{margin:5px 0;font:23px Marcellus}
.admin-report-viewer header p{margin:0;color:#8f8376;font-size:8px}
.admin-report-body{max-height:430px;overflow:auto;padding:16px;color:#d6cbbc;font:10px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.admin-ai-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.admin-ai-record{display:grid;grid-template-columns:48px minmax(0,1fr);gap:9px;padding:9px;border:1px solid #3d332b;border-radius:9px;background:#100d0b}
.admin-ai-record img{width:48px;height:48px;object-fit:cover;border-radius:7px}
.admin-ai-record>span{display:flex;min-width:0;flex-direction:column;justify-content:center}
.admin-ai-record>span strong{font:16px Marcellus;color:#e5cc92}
.admin-ai-record>span small{color:#82776c;font-size:7px}
.admin-ai-record dl{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0}
.admin-ai-record dl div{padding:6px;border-radius:6px;background:#1c1713;text-align:center}
.admin-ai-record dt{color:#81766b;font-size:7px;text-transform:uppercase}
.admin-ai-record dd{margin:2px 0 0;font:16px Marcellus}
.moderation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.moderation-grid>article{min-width:0;padding:11px;border:1px solid #3d332b;border-radius:9px;background:#100d0b}
.moderation-grid h4{margin:0 0 9px;font:16px Marcellus;color:#d9c28d}
.staff-search{display:grid;gap:3px;margin:-2px 0 7px}
.staff-search span{font-size:8px;color:#8f8579;text-transform:uppercase;letter-spacing:.06em}
.staff-search input{width:100%;padding:6px 8px;border:1px solid #44382f;border-radius:6px;background:#0b0908;color:var(--ink);font-size:10px}
.staff-search input:focus{outline:1px solid var(--gold);border-color:var(--gold)}
.moderation-no-results{padding:10px}
.staff-scroll{max-height:310px;overflow:auto;display:flex;flex-direction:column;gap:6px}
.staff-player-row{display:grid;grid-template-columns:42px minmax(130px,1fr) minmax(190px,auto);align-items:center;gap:8px;padding:8px;border:1px solid #352d27;border-radius:8px;background:#18130f}
.player-avatar.staff-avatar{width:42px;border-radius:8px}
.staff-player-row>span,.staff-content-row>span{min-width:0;display:flex;flex-direction:column;gap:2px}
.staff-player-row strong,.staff-content-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.staff-player-row small,.staff-content-row small{overflow:hidden;text-overflow:ellipsis;color:#897e72;font-size:7px}
.staff-player-row>div{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:4px}
.staff-content-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border:1px solid #352d27;border-radius:7px;background:#18130f}
.moderation-audit{margin-top:12px;padding:10px;border:1px solid #3d332b;border-radius:8px;background:#100d0b}
.moderation-audit summary{cursor:pointer;color:#d9c28d;font:14px Marcellus}
.moderation-audit ol{max-height:220px;overflow:auto;margin:10px 0 0;padding-left:24px;color:#a99c8d;font-size:8px}
.moderation-audit li{padding:4px 0}
.moderation-audit time{color:#71685e}
.server-stop-box{margin-top:12px;padding:13px;border:1px solid #7b2b25;border-radius:9px;background:#28110f;display:flex;align-items:center;justify-content:space-between;gap:14px}
.server-stop-box strong{color:#ffaaa2;font:18px Marcellus}
.server-stop-box p{margin:4px 0 0;color:#b47c76;font-size:8px}
@media(max-width:900px){
  .admin-system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-stat-grid,.admin-table-grid,.admin-feedback-layout{grid-template-columns:1fr}
  .admin-ai-grid{grid-template-columns:1fr}
  .moderation-grid{grid-template-columns:1fr}
  .staff-player-row{grid-template-columns:42px minmax(0,1fr)}
  .staff-player-row>div{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:600px){
  .admin-header,.admin-section-heading{align-items:flex-start;flex-direction:column}
  .admin-system-grid,.admin-stat-grid{grid-template-columns:1fr 1fr}
}

/* Short browser windows keep both fields distinct and scroll instead of crushing them together. */
@media(max-height:680px){
  .game{align-items:start;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}
  .arena{height:auto;max-height:none;min-height:548px;grid-template-rows:repeat(2,minmax(218px,1fr)) minmax(88px,100px);gap:12px}
  .player-zone{min-height:218px}
  .sidebar{position:sticky;top:6px;height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}
}

/* Tablet-sized battlefields stay inside the viewport regardless of pointer or hover reporting. */
@media (min-width:700px) and (max-width:1400px){
  .game{height:100dvh;min-height:0;overflow:hidden;grid-template-columns:minmax(0,1fr) clamp(176px,21vw,220px)}
  .arena{height:100%;max-height:100%;min-width:0;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr)) minmax(82px,100px)}
  .player-zone{min-height:0;grid-template-columns:clamp(72px,9vw,100px) minmax(0,1fr)}
  .sidebar{position:static;top:auto;height:100%;max-height:100%}
  .board{display:grid;width:100%;max-width:calc(150dvh - 204px);height:auto;max-height:100%;aspect-ratio:2/1;justify-self:center;align-self:center;contain:layout paint;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:row}
  .slot{overflow:hidden}
  .mini-card{grid-template-columns:minmax(0,40%) minmax(0,60%);grid-template-rows:minmax(0,1fr)}
  .slot>.mini-card{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;max-height:none;aspect-ratio:auto;transform:none;contain:layout paint}
  .mini-card>.card-art-block{grid-column:1;grid-row:1;width:100%;height:100%;aspect-ratio:auto}
  .mini-card>.copy{grid-column:2;grid-row:1;min-width:0;min-height:0}
  .card-placed.placement-unit>.mini-card,.card-placed.placement-effect>.mini-card,.card-placed.placement-trap>.mini-card{animation:none}
}

/* Touch tablets keep generous field heights and scroll the table instead of compressing it. */
@media (min-width:700px) and (max-width:1400px) and (pointer:coarse){
  .game{align-items:start;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}
  .arena{height:auto;max-height:none;min-height:700px;grid-template-rows:repeat(2,minmax(276px,1fr)) minmax(100px,112px);gap:12px}
  .player-zone{min-height:276px;grid-template-columns:clamp(86px,11vw,120px) minmax(0,1fr)}
  .board{max-width:none}
  .sidebar{position:sticky;top:6px;height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}
}

/* Footer actions are deliberately prominent and never use a text separator. */
.site-footer{gap:10px;min-height:38px}
.site-footer>span[aria-hidden]{display:none}
.site-footer .footer-link{min-height:30px;padding:7px 14px;border:1px solid var(--gold);border-radius:7px;background:#2a2013;color:#f0d18b;font-size:11px;font-weight:700;line-height:1.1;text-decoration:none;box-shadow:inset 0 1px #ffffff10,0 3px 10px #0005}
.site-footer .footer-link:hover,.site-footer .footer-link:focus-visible{background:#3a2b17;border-color:#f0ce7d;color:#fff1c8;outline:none}
.site-footer{position:relative;z-index:80;padding:2px 0}.site-footer #footer-privacy-policy{display:inline-flex;align-items:center;justify-content:center;min-width:130px;background:var(--gold);border-color:#f1ca73;color:#17110a;box-shadow:0 2px 0 #090807,0 0 14px #d7a84b24}.site-footer #footer-privacy-policy:hover,.site-footer #footer-privacy-policy:focus-visible{background:#e8bd63;border-color:#ffe09a;color:#17110a}
.age-gate-actions .age-privacy-link{display:inline-flex;align-items:center;justify-content:center;margin:0;text-decoration:none}.privacy-back{display:inline-flex;text-decoration:none}
#toast{bottom:72px;z-index:300;max-width:min(520px,calc(100vw - 32px));text-align:center;line-height:1.35;box-shadow:0 12px 32px #000b}

/* Curated decks stored with the server build */
.server-decks-builder-pane{min-height:0}
.server-decks-pane{min-height:0;height:100%;overflow-y:auto;overscroll-behavior:contain;padding:8px 5px 24px;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.server-deck-group+.server-deck-group{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.server-deck-group>header{margin-bottom:12px}.server-deck-group h2{margin:5px 0 3px;font:30px Marcellus}.server-deck-group>header p{margin:0;color:var(--muted);font-size:11px}
.server-deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.server-deck{min-width:0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#100d0e;box-shadow:0 8px 22px #0004}
.server-deck-title{display:flex;align-items:start;justify-content:space-between;gap:10px}.server-deck-title h3{margin:0 0 4px;font:20px Marcellus}.server-deck-title span{color:var(--muted);font-size:9px;text-transform:capitalize}.server-deck-title>b{display:grid;place-items:center;min-width:38px;height:38px;border:1px solid var(--gold);border-radius:50%;color:var(--gold)}
.server-deck-plan{max-width:42ch;margin:8px 0 0;color:#efe2d6;font-size:10px;line-height:1.45}
.server-deck details{margin-top:11px;padding-top:9px;border-top:1px solid var(--line)}.server-deck summary{cursor:pointer;color:#e8c77e;font-size:11px}.server-deck ul{max-height:250px;overflow-y:auto;list-style:none;margin:9px 0 0;padding:0;display:grid;gap:4px}.server-deck li{display:grid;grid-template-columns:34px 24px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:38px;padding:4px 7px 4px 4px;border-left:3px solid var(--card-color);border-radius:5px;background:#211b17}.server-deck li img{width:34px;height:34px;object-fit:cover;border-radius:4px}.server-deck li b{color:var(--gold);font-size:10px}.server-deck li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.server-deck li small{color:var(--muted);font-size:8px}
.server-deck-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:11px}
.player-decks-builder-pane{min-height:0}
.player-decks-pane{height:100%;min-height:0;overflow-y:auto;display:grid;grid-template-rows:minmax(0,1fr);gap:14px;padding:8px 5px 24px;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.player-deck-cookie-callout{max-width:680px;margin:auto;padding:28px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#30403d,#223030);box-shadow:0 16px 38px #11191977;text-align:center}.player-deck-cookie-callout h2{margin:7px 0;font:30px Marcellus}.player-deck-cookie-callout p{color:var(--muted)}
.player-share-name>span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.player-deck-library{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}.player-deck-library .shared-header{align-items:end}.player-share-name{width:min(290px,42%)}
.player-deck-grid{min-height:0;overflow-y:auto;align-content:start;padding-right:5px}.player-deck-actions{flex-wrap:wrap}.player-deck-actions .danger{margin-left:auto}
@media(max-width:720px){.builder-navigation .btn{padding-inline:5px}.server-deck-grid{grid-template-columns:1fr}.server-deck li{grid-template-columns:34px 22px minmax(0,1fr)}.server-deck li small{grid-column:3}}
@media(max-width:720px){.player-deck-library .shared-header{align-items:start;flex-direction:column}.player-share-name{width:100%}}
.builder-save-dialog{width:min(430px,95vw)}
.builder-save-dialog .field{margin:14px 0 8px}.builder-save-dialog .field>span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.builder-save-message{min-height:16px;margin:0 0 8px;color:#ffd9da;font-size:10px}

/* Cozy olive palette sampled from the supplied reference. */
:root{
  --olive:#65744d;
  --sage:#8f9b6d;
  --sand:#d5c7ac;
  --cream:#f6eddc;
  --olive-deep:#313a27;
  --olive-shadow:#20271a;
  --ink:var(--cream);
  --muted:var(--sand);
  --coal:var(--olive-deep);
  --panel:#4b5839;
  --line:var(--sage);
  --gold:var(--sand);
}
body{background:radial-gradient(circle at 18% -12%,#8f9b6d8c 0,transparent 35%),radial-gradient(circle at 88% 110%,#d5c7ac2e 0,transparent 38%),linear-gradient(145deg,#65744d 0,#465337 48%,#313a27 100%)}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.2;background-image:linear-gradient(115deg,transparent 0 48%,#f6eddc10 49% 50%,transparent 51% 100%);background-size:34px 34px}
.topbar{border-color:#d5c7ac66}.badge{border-color:#8f9b6d;background:#313a2799;color:var(--cream)}
.hero,.panel{border-color:var(--sage);background:linear-gradient(145deg,#65744d 0,#536141 45%,#3d482f 100%);box-shadow:0 20px 55px #20271a99,inset 0 1px #f6eddc1a}
.hero:before{content:"";position:absolute;width:340px;aspect-ratio:1;left:-150px;bottom:-210px;border:1px solid #d5c7ac38;border-radius:50%;box-shadow:0 0 0 32px #f6eddc0b,0 0 0 68px #f6eddc08;pointer-events:none}
.hero:after{color:#f6eddc18}.hero p,.hero-notes span{color:var(--sand)}.hero-notes p,.room-browser{border-color:var(--sage);background:#3b462fc7}
.field input,.field select,.field textarea,.deck-data-grid textarea{border-color:var(--sage);background:var(--olive-deep);color:var(--cream);box-shadow:inset 0 1px 4px #20271a88}
.field input:focus,.field select:focus,.field textarea:focus,.deck-data-grid textarea:focus{outline:2px solid var(--sand);outline-offset:1px;border-color:var(--cream)}
.login-shell,.privacy-policy-screen,.opening-screen{background:radial-gradient(circle at 50% 12%,#8f9b6d 0,#65744d 42%,#465337 72%,#313a27 100%)}
.login-card,.privacy-policy-card,.opening-panel{border-color:var(--sage);background:linear-gradient(155deg,#5c6a48f5,#3d482ff5);box-shadow:0 26px 80px #20271aaa,inset 0 1px #f6eddc1a}
.privacy-policy-content,.passcode-disclaimer{border-color:var(--sage);background:#313a276e}.privacy-policy-content p{color:var(--cream)}.privacy-policy-content strong,.passcode-disclaimer strong{color:var(--sand)}
.cookie-consent{border-color:var(--sand);background:#3d482ff2;box-shadow:0 18px 55px #20271acc}.cookie-consent p{color:var(--cream)}
.game{background:linear-gradient(145deg,#566442,#414d34 62%,#313a27 100%)}
.player-zone{border-color:var(--sage);background:linear-gradient(110deg,#536141e8,#3d482fe8);box-shadow:inset 0 1px #f6eddc12}
.player-zone.active{box-shadow:inset 0 0 0 2px var(--sand),inset 0 0 34px #f6eddc14,0 8px 24px #20271a66}
.slot{border-color:var(--sage);color:var(--sand);background:#313a274f}.slot.dragover{background:#d5c7ac1c}
.phasebox,.piles,.logbox{border-color:var(--sage);background:#465337}.pile{border-color:var(--sage);background:var(--olive-deep)}.phase{background:var(--olive)}
.mini-card,.card{background:#465337;box-shadow:0 6px 16px #20271a99}.mini-card .copy,.card .copy{color:var(--cream)}.mini-card p,.card p{color:var(--sand)}
.rules-index{border-color:var(--sage);background:#3d482ff5;box-shadow:0 8px 18px #20271a99}.rules-index a{border-color:var(--sage);color:var(--cream)}
.rule-section,.about-copy,.feedback-form,.deck-data-grid article,.shared-deck,.server-deck{border-color:var(--sage);background:linear-gradient(145deg,#536141,#3b462f);box-shadow:inset 0 1px #f6eddc10,0 8px 24px #20271a55}
.rule-features article,.rule-card-type,.tutorial-launch{border-color:var(--sage);background:#313a279e}
.room-browser,.open-room,.live-game,.campaign-battle,.ai-difficulty-option,.ai-profile-tracker,.campaign-battle-picker{border-color:var(--sage);background:#3b462f}
.avatar-picker-dialog,.selection-preview-card,.choice-source-summary,.trap-pass-box,.sacrifice-level-box{border-color:var(--sage);background:#465337f5;box-shadow:0 20px 60px #20271acc}

/* One shared treatment covers every control, including footer, age-gate, cookie, game, and modal buttons. */
.btn,.text-link,.site-footer .text-link,.site-footer .footer-link,.pile,.tiny,.play-mode,.campaign-battle,.ai-difficulty-option,.open-room,.catalog-card,.deck-item,.sacrifice-option,.position-option,.ability-button,.set-effect-button,.hibernate-view-button,.sacrifice-level-box,.sacrifice-cancel-button,.comments-toggle,.comment-delete,.admin-report-row,.avatar-choice,.profile-chip,.card-help-close{
  border-color:var(--sand);background:linear-gradient(180deg,#596747,#465337);color:var(--cream);box-shadow:0 2px 0 var(--olive-shadow),0 5px 14px #20271a55;transition:background .16s,border-color .16s,color .16s,transform .16s,box-shadow .16s
}
.btn:hover:not(:disabled),.btn:focus-visible,.text-link:hover,.text-link:focus-visible,.site-footer .text-link:hover,.site-footer .text-link:focus-visible,.site-footer .footer-link:hover,.site-footer .footer-link:focus-visible,.pile:hover,.pile:focus-visible,.tiny:hover,.tiny:focus-visible,.play-mode:hover:not(:disabled),.play-mode:focus-visible,.campaign-battle:hover:not(:disabled),.campaign-battle:focus-visible,.ai-difficulty-option:hover,.ai-difficulty-option:focus-visible,.open-room:hover,.open-room:focus-visible,.catalog-card:hover,.catalog-card:focus-visible,.deck-item:hover,.deck-item:focus-visible,.sacrifice-option:hover,.sacrifice-option:focus-visible,.position-option:hover,.position-option:focus-visible,.ability-button:hover,.ability-button:focus-visible,.set-effect-button:hover:not(:disabled),.set-effect-button:focus-visible,.hibernate-view-button:hover,.hibernate-view-button:focus-visible,.sacrifice-level-box.ready:hover,.sacrifice-level-box:focus-visible,.sacrifice-cancel-button:hover,.sacrifice-cancel-button:focus-visible,.comments-toggle:hover,.comments-toggle:focus-visible,.comment-delete:hover,.comment-delete:focus-visible,.admin-report-row:hover,.admin-report-row:focus-visible,.avatar-choice:hover,.avatar-choice:focus-visible,.profile-chip:hover,.profile-chip:focus-visible,.card-help-close:hover,.card-help-close:focus-visible{
  border-color:var(--cream);background:linear-gradient(180deg,#8f9b6d,#7b895b);color:var(--olive-shadow);outline:2px solid var(--cream);outline-offset:2px
}
.btn.primary,.site-footer #footer-privacy-policy,.campaign-battle[aria-pressed=true],.ai-difficulty-option.selected,.open-room.selected,.play-mode.active,.avatar-choice.selected,.sacrifice-option.selected,.position-option.selected,.position-option.attack.selected,.position-option.defense.selected,.favorite-match-choice .btn.active,.sacrifice-level-box.ready,.field-selection-pass.trap-pass{
  border-color:var(--cream);background:linear-gradient(180deg,var(--cream),var(--sand));color:var(--olive-shadow);box-shadow:0 2px 0 var(--olive),0 7px 18px #20271a66
}
.btn.primary:hover:not(:disabled),.btn.primary:focus-visible,.site-footer #footer-privacy-policy:hover,.site-footer #footer-privacy-policy:focus-visible{background:var(--cream);color:var(--olive-shadow)}
.btn.danger,.comment-delete{border-color:var(--sage);background:var(--olive-deep);color:var(--cream)}
.btn:disabled,.set-effect-button:disabled,.play-mode:disabled{border-color:var(--olive);background:#465337;color:var(--sand);opacity:.5;box-shadow:none}
.text-link{padding:2px;border-color:transparent;background:transparent;color:var(--cream);box-shadow:none}.site-footer .text-link,.site-footer .footer-link{background:#465337;text-decoration:none}
.campaign-battle strong,.ai-difficulty-option b,.open-room strong,.campaign-battle-picker>header strong,.ai-profile-record>span strong{color:var(--cream)}
.campaign-battle small,.ai-difficulty-option small,.open-room small{color:var(--sand)}
#toast{border-color:var(--sand);background:#465337f5;color:var(--cream);box-shadow:0 12px 32px #20271acc}
*{scrollbar-color:var(--sage) var(--olive-deep)}
::selection{background:#d5c7acaa;color:var(--olive-shadow)}
@media(max-width:700px){body:before{background-size:26px 26px}.hero,.panel{box-shadow:0 12px 34px #20271a88}}

/* Cozy blue-green palette supplied for the current live theme. */
:root{
  --cozy-deep:#223030;
  --cozy-brown:#523d35;
  --cozy-sage:#959d90;
  --cozy-taupe:#bba58f;
  --cozy-blush:#e8d9cd;
  --cozy-ivory:#efefe9;
  --olive:var(--cozy-sage);
  --sage:var(--cozy-taupe);
  --sand:var(--cozy-blush);
  --cream:var(--cozy-ivory);
  --olive-deep:var(--cozy-deep);
  --olive-shadow:#172121;
  --ink:var(--cozy-ivory);
  --muted:var(--cozy-blush);
  --coal:var(--cozy-deep);
  --panel:var(--cozy-brown);
  --line:var(--cozy-sage);
  --gold:var(--cozy-taupe);
}
body{background:radial-gradient(circle at 18% -12%,#959d9070 0,transparent 35%),radial-gradient(circle at 88% 110%,#bba58f42 0,transparent 38%),linear-gradient(145deg,#223030 0,#2e3b39 53%,#523d35 135%)}
body:before{background-image:linear-gradient(115deg,transparent 0 48%,#efefe910 49% 50%,transparent 51% 100%)}
.topbar{border-color:#bba58f73}.badge{border-color:var(--cozy-sage);background:#223030b8;color:var(--cozy-ivory)}
.hero,.panel{border-color:var(--cozy-sage);background:linear-gradient(145deg,#354441 0,#293836 48%,#523d35 130%);box-shadow:0 20px 55px #172121aa,inset 0 1px #efefe91c}
.hero:before{border-color:#bba58f42;box-shadow:0 0 0 32px #e8d9cd0d,0 0 0 68px #efefe909}.hero:after{color:#e8d9cd1a}.hero p,.hero-notes span{color:var(--cozy-blush)}.hero-notes p,.room-browser{border-color:var(--cozy-sage);background:#223030c7}
.field input,.field select,.field textarea,.deck-data-grid textarea{border-color:var(--cozy-sage);background:var(--cozy-deep);color:var(--cozy-ivory);box-shadow:inset 0 1px 4px #172121aa}
.field input:focus,.field select:focus,.field textarea:focus,.deck-data-grid textarea:focus{outline:2px solid var(--cozy-taupe);outline-offset:1px;border-color:var(--cozy-ivory)}
.login-shell,.privacy-policy-screen,.opening-screen{background:radial-gradient(circle at 50% 12%,#959d90 0,#364542 40%,#223030 72%,#523d35 135%)}
.login-card,.privacy-policy-card,.opening-panel{border-color:var(--cozy-sage);background:linear-gradient(155deg,#354441f5,#223030f5);box-shadow:0 26px 80px #172121bb,inset 0 1px #efefe91c}
.privacy-policy-content,.passcode-disclaimer{border-color:var(--cozy-taupe);background:#523d356e}.privacy-policy-content p,.cookie-consent p{color:var(--cozy-ivory)}.privacy-policy-content strong,.passcode-disclaimer strong{color:var(--cozy-blush)}
.cookie-consent{border-color:var(--cozy-taupe);background:#223030f2;box-shadow:0 18px 55px #172121d4}
.game{background:linear-gradient(145deg,#2f3f3c,#223030 65%,#523d35 145%)}
.player-zone{border-color:var(--cozy-sage);background:linear-gradient(110deg,#30403de8,#223030e8);box-shadow:inset 0 1px #efefe912}.player-zone.active{box-shadow:inset 0 0 0 2px var(--cozy-taupe),inset 0 0 34px #e8d9cd16,0 8px 24px #17212177}
.slot{border-color:var(--cozy-sage);color:var(--cozy-blush);background:#2230305c}.slot.dragover{background:#bba58f20}
.phasebox,.piles,.logbox{border-color:var(--cozy-sage);background:#293836}.pile{border-color:var(--cozy-sage);background:var(--cozy-deep)}.phase{background:var(--cozy-sage)}
.mini-card,.card{background:var(--cozy-brown);box-shadow:0 6px 16px #17212199}.mini-card .copy,.card .copy{color:var(--cozy-ivory)}.mini-card p,.card p{color:var(--cozy-blush)}
.rules-index{border-color:var(--cozy-sage);background:#223030f5;box-shadow:0 8px 18px #17212199}.rules-index a{border-color:var(--cozy-taupe);color:var(--cozy-blush)}
.rule-section,.about-copy,.feedback-form,.deck-data-grid article,.shared-deck,.server-deck{border-color:var(--cozy-sage);background:linear-gradient(145deg,#30403d,#223030);box-shadow:inset 0 1px #efefe910,0 8px 24px #17212166}
.rule-features article,.rule-card-type,.tutorial-launch{border-color:var(--cozy-sage);background:#523d355c}
.room-browser,.open-room,.live-game,.campaign-battle,.ai-difficulty-option,.ai-profile-tracker,.campaign-battle-picker{border-color:var(--cozy-sage);background:#223030}
.avatar-picker-dialog,.selection-preview-card,.choice-source-summary,.trap-pass-box,.sacrifice-level-box{border-color:var(--cozy-taupe);background:#293836f5;box-shadow:0 20px 60px #172121d4}

.btn,.text-link,.site-footer .text-link,.site-footer .footer-link,.pile,.tiny,.play-mode,.match-deck-option,.campaign-battle,.ai-difficulty-option,.open-room,.catalog-card,.deck-item,.sacrifice-option,.position-option,.ability-button,.set-effect-button,.hibernate-view-button,.sacrifice-level-box,.sacrifice-cancel-button,.comments-toggle,.comment-delete,.admin-report-row,.avatar-choice,.profile-chip,.card-help-close{border-color:var(--cozy-taupe);background:linear-gradient(180deg,#523d35,#3f3430);color:var(--cozy-ivory);box-shadow:0 2px 0 #172121,0 5px 14px #17212166}
.btn:hover:not(:disabled),.btn:focus-visible,.text-link:hover,.text-link:focus-visible,.site-footer .text-link:hover,.site-footer .text-link:focus-visible,.site-footer .footer-link:hover,.site-footer .footer-link:focus-visible,.pile:hover,.pile:focus-visible,.tiny:hover,.tiny:focus-visible,.play-mode:hover:not(:disabled),.play-mode:focus-visible,.campaign-battle:hover:not(:disabled),.campaign-battle:focus-visible,.ai-difficulty-option:hover,.ai-difficulty-option:focus-visible,.open-room:hover,.open-room:focus-visible,.catalog-card:hover,.catalog-card:focus-visible,.deck-item:hover,.deck-item:focus-visible,.sacrifice-option:hover,.sacrifice-option:focus-visible,.position-option:hover,.position-option:focus-visible,.ability-button:hover,.ability-button:focus-visible,.set-effect-button:hover:not(:disabled),.set-effect-button:focus-visible,.hibernate-view-button:hover,.hibernate-view-button:focus-visible,.sacrifice-level-box.ready:hover,.sacrifice-level-box:focus-visible,.sacrifice-cancel-button:hover,.sacrifice-cancel-button:focus-visible,.comments-toggle:hover,.comments-toggle:focus-visible,.comment-delete:hover,.comment-delete:focus-visible,.admin-report-row:hover,.admin-report-row:focus-visible,.avatar-choice:hover,.avatar-choice:focus-visible,.profile-chip:hover,.profile-chip:focus-visible,.card-help-close:hover,.card-help-close:focus-visible{border-color:var(--cozy-ivory);background:linear-gradient(180deg,#bba58f,#959d90);color:var(--cozy-deep);outline:2px solid var(--cozy-ivory);outline-offset:2px}
.btn.primary,.site-footer #footer-privacy-policy,.campaign-battle[aria-pressed=true],.ai-difficulty-option.selected,.open-room.selected,.play-mode.active,.match-deck-option.selected,.avatar-choice.selected,.sacrifice-option.selected,.position-option.selected,.position-option.attack.selected,.position-option.defense.selected,.favorite-match-choice .btn.active,.sacrifice-level-box.ready,.field-selection-pass.trap-pass{border-color:var(--cozy-ivory);background:linear-gradient(180deg,var(--cozy-ivory),var(--cozy-blush));color:var(--cozy-deep);box-shadow:0 2px 0 var(--cozy-brown),0 7px 18px #17212177}
.match-deck-option.selected span{color:var(--cozy-brown)}
.btn.primary:hover:not(:disabled),.btn.primary:focus-visible,.site-footer #footer-privacy-policy:hover,.site-footer #footer-privacy-policy:focus-visible{background:var(--cozy-ivory);color:var(--cozy-deep)}
.btn.danger,.comment-delete{border-color:var(--cozy-sage);background:var(--cozy-deep);color:var(--cozy-blush)}
.btn:disabled,.set-effect-button:disabled,.play-mode:disabled{border-color:var(--cozy-brown);background:#223030;color:var(--cozy-sage);opacity:.5;box-shadow:none}
.text-link{border-color:transparent;background:transparent;color:var(--cozy-blush);box-shadow:none}.site-footer .text-link,.site-footer .footer-link{background:var(--cozy-brown);text-decoration:none}
.campaign-battle strong,.ai-difficulty-option b,.open-room strong,.campaign-battle-picker>header strong,.ai-profile-record>span strong{color:var(--cozy-ivory)}.campaign-battle small,.ai-difficulty-option small,.open-room small{color:var(--cozy-blush)}
#toast{border-color:var(--cozy-taupe);background:#523d35f5;color:var(--cozy-ivory);box-shadow:0 12px 32px #172121d4}
*{scrollbar-color:var(--cozy-sage) var(--cozy-deep)}::selection{background:#bba58faa;color:var(--cozy-deep)}

/* Server deck cards use the warm half of the palette so they stand apart from the builder surface. */
.server-decks-pane .server-deck{border-color:var(--cozy-taupe);background:linear-gradient(145deg,#654d43 0,var(--cozy-brown) 48%,#3f3430 100%);box-shadow:inset 0 1px #e8d9cd18,0 10px 24px #17212177}
.server-decks-pane .server-deck-title>b{border-color:var(--cozy-blush);background:var(--cozy-deep);color:var(--cozy-ivory)}
.server-decks-pane .server-deck details{border-color:#bba58f80}.server-decks-pane .server-deck summary{color:var(--cozy-blush)}
.server-decks-pane .server-deck li{background:#223030cc}

/* Darker supporting tones and page-by-page color variation. */
:root{--cozy-abyss:#111919;--cozy-charcoal:#182322;--cozy-espresso:#2e2421}
body{background:radial-gradient(circle at 15% -10%,#959d9061 0,transparent 32%),radial-gradient(circle at 92% 108%,#523d356b 0,transparent 40%),linear-gradient(145deg,var(--cozy-abyss) 0,#223030 48%,#2e2421 125%)}
.hero,.panel{background:linear-gradient(145deg,#30403d 0,#223030 42%,#182322 72%,#523d35 145%)}

/* Play: deep blue-green with a restrained warm edge. */
.play-form{padding:14px;border:1px solid #959d9066;border-radius:13px;background:radial-gradient(circle at 100% 0,#523d3559 0,transparent 36%),linear-gradient(145deg,#182322e8,#223030d9);box-shadow:inset 0 1px #efefe90d,0 10px 28px #11191966}
.play-form .room-browser,.play-form .ai-profile-tracker,.play-form .campaign-battle-picker{background:linear-gradient(145deg,#223030,#2e2421)}

/* Deck builder: cool catalog, warm selected-deck tray. */
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .catalog-panel{padding:10px;border:1px solid #959d9066;border-radius:12px;background:linear-gradient(145deg,#182322,#223030)}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .builder-controls{background:#111919b8}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .deck-tray{border-color:#bba58f80;background:linear-gradient(160deg,#523d35,#2e2421 76%);box-shadow:inset 0 1px #e8d9cd14,0 10px 26px #11191977}

/* Server decks: creator and AI shelves vary while remaining visibly warm. */
.server-deck-group:nth-of-type(even){padding-inline:8px;border-radius:12px;background:#1119195c}
.server-deck-group:nth-of-type(even) .server-deck{background:linear-gradient(145deg,#3c4a47 0,#223030 52%,#523d35 145%)}

/* Shared decks: a warm publishing panel over the cool community shelf. */
.shared-decks-pane{padding:8px;border:1px solid #959d9066;border-radius:12px;background:linear-gradient(145deg,#111919,#223030)}
.share-deck-form{border-color:#bba58f80;background:linear-gradient(145deg,#2e2421,#523d35)}

/* Rules: alternating dark tones make long sections easier to scan. */
.rules-pane{background:linear-gradient(180deg,#11191975,#22303052);border-radius:12px}
.rules-sections .rule-section:nth-child(3n+1){background:linear-gradient(145deg,#182322,#223030)}
.rules-sections .rule-section:nth-child(3n+2){background:linear-gradient(145deg,#2e2421,#523d35)}
.rules-sections .rule-section:nth-child(3n){background:linear-gradient(145deg,#263431,#3f4842)}

/* About: warm story panel against a cool page field. */
.about-pane{border-radius:12px;background:linear-gradient(160deg,#11191966,#2230304d)}
.about-pane .about-copy{border-color:#bba58f8c;background:linear-gradient(145deg,#523d35,#2e2421 58%,#223030 145%)}

/* Entry, privacy, and match screens each retain a distinct dark treatment. */
.login-shell{background:radial-gradient(circle at 50% 10%,#3a4946 0,#223030 42%,#111919 100%)}
.login-card{background:linear-gradient(155deg,#30403df5,#182322f5);box-shadow:0 28px 86px #090e0edd,inset 0 1px #efefe91c}
.privacy-policy-screen{background:radial-gradient(circle at 50% 12%,#523d35 0,#2e2421 40%,#111919 100%)}
.privacy-policy-card{background:linear-gradient(155deg,#523d35f5,#2e2421f5);box-shadow:0 28px 86px #090e0edd,inset 0 1px #efefe91c}
.game{background:radial-gradient(circle at 50% 45%,#223030 0,#182322 58%,#111919 100%)}
.phasebox,.piles,.logbox{background:linear-gradient(145deg,#223030,#182322)}

/* Enchanted forest palette: distinct decks, layered fields, and a varied match sidebar. */
:root{
  --forest-espresso:#2b160c;
  --forest-ivy:#0f2a22;
  --forest-teal:#153638;
  --forest-moss:#3f5a46;
  --forest-smoke:#6f7f6c;
  --forest-rust:#a13e1e;
  --forest-burgundy:#831b1a;
  --forest-ochre:#ae8452;
  --forest-gold:#c2a46b;
}

/* Each server deck receives its own recognizable shelf color. */
.server-decks-pane{background:radial-gradient(circle at 10% 0,#3f5a4645,transparent 32%),linear-gradient(155deg,#0f2a22b8,#2b160cb8);border-radius:13px}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+1){border-color:var(--forest-rust);background:linear-gradient(145deg,#4b2415,var(--forest-espresso))}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+2){border-color:var(--forest-moss);background:linear-gradient(145deg,#1d4034,var(--forest-ivy))}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+3){border-color:var(--forest-smoke);background:linear-gradient(145deg,#255258,var(--forest-teal))}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+4){border-color:var(--forest-smoke);background:linear-gradient(145deg,#55745c,var(--forest-moss))}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+5){border-color:var(--forest-gold);background:linear-gradient(145deg,#526151,#354238)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+6){border-color:var(--forest-ochre);background:linear-gradient(145deg,#743522,#452218)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+7){border-color:var(--forest-rust);background:linear-gradient(145deg,#831b1a,#451315)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n+8){border-color:var(--forest-gold);background:linear-gradient(145deg,#795c37,#49351f)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(9n){border-color:var(--forest-gold);background:linear-gradient(145deg,#75623e,#3d3425)}
.server-decks-pane .server-deck-title>b{border-color:var(--forest-gold);background:#0f2a22d9;color:#efefe9}
.server-decks-pane .server-deck li:nth-child(3n+1){background:#0f2a22d9}.server-decks-pane .server-deck li:nth-child(3n+2){background:#153638d9}.server-decks-pane .server-deck li:nth-child(3n){background:#2b160cd9}

/* The selected deck tray also uses varied rows so decks do not read as one flat block. */
.deck-tray .deck-list .deck-item:nth-child(3n+1){background:linear-gradient(90deg,#0f2a22,#153638)}
.deck-tray .deck-list .deck-item:nth-child(3n+2){background:linear-gradient(90deg,#2b160c,#5b2c1b)}
.deck-tray .deck-list .deck-item:nth-child(3n){background:linear-gradient(90deg,#3f5a46,#273b30)}

/* The battlefield combines several palette colors while preserving clear player ownership. */
.game{background:radial-gradient(circle at 17% 15%,#3f5a465c 0,transparent 34%),radial-gradient(circle at 83% 84%,#a13e1e38 0,transparent 35%),linear-gradient(145deg,#071713 0,var(--forest-ivy) 42%,var(--forest-espresso) 105%)}
.opponent-zone{border-color:var(--forest-smoke);background:linear-gradient(110deg,#0f2a22f2 0,#153638ed 52%,#3f5a46df 118%)}
.my-zone{border-color:var(--forest-ochre);background:linear-gradient(110deg,#3f5a46ed 0,#2b160cef 58%,#831b1ad1 145%)}
.opponent-zone .identity{border-radius:8px;background:linear-gradient(150deg,#0f2a22c7,#15363870)}
.my-zone .identity{border-radius:8px;background:linear-gradient(150deg,#3f5a46b8,#2b160c9e)}
.opponent-zone .board{padding:3px;border-radius:9px;background:linear-gradient(145deg,#1536385c,#3f5a4638)}
.my-zone .board{padding:3px;border-radius:9px;background:linear-gradient(145deg,#2b160c66,#831b1a2e)}
.opponent-zone .slot:nth-child(3n+1){background:#153638a8}.opponent-zone .slot:nth-child(3n+2){background:#0f2a22b8}.opponent-zone .slot:nth-child(3n){background:#3f5a467d}
.my-zone .slot:nth-child(3n+1){background:#3f5a468f}.my-zone .slot:nth-child(3n+2){background:#2b160ca8}.my-zone .slot:nth-child(3n){background:#831b1a52}
.player-zone.active{border-color:var(--forest-gold);box-shadow:inset 0 0 0 2px var(--forest-gold),inset 0 0 36px #c2a46b1f,0 8px 28px #071713aa}

/* Sidebar sections use separate color families instead of a single repeated panel fill. */
.sidebar{padding:2px;border-radius:12px;background:linear-gradient(180deg,#15363880,#2b160c80)}
.sidebar .phasebox{border-color:var(--forest-smoke);background:linear-gradient(145deg,var(--forest-teal),var(--forest-ivy))}
.sidebar .phase.done{background:linear-gradient(90deg,var(--forest-ochre),var(--forest-gold))}
.sidebar .piles{border-color:var(--forest-smoke);background:linear-gradient(145deg,var(--forest-moss),#283d30)}
.sidebar .piles .pile:nth-child(4n+1){border-color:var(--forest-smoke);background:var(--forest-ivy)}
.sidebar .piles .pile:nth-child(4n+2){border-color:var(--forest-gold);background:var(--forest-teal)}
.sidebar .piles .pile:nth-child(4n+3){border-color:var(--forest-rust);background:var(--forest-espresso)}
.sidebar .piles .pile:nth-child(4n){border-color:var(--forest-gold);background:#594326}
.sidebar .zone-abilities:not(:empty){padding:7px;border:1px solid var(--forest-rust);border-radius:9px;background:linear-gradient(145deg,#831b1aa8,#2b160c)}
.sidebar .logbox,.spectator-sidebar .logbox{border-color:var(--forest-ochre);background:linear-gradient(145deg,#2b160c,#831b1a8c)}
.sidebar .actions{padding:7px;border:1px solid var(--forest-gold);border-radius:10px;background:linear-gradient(145deg,#594326,#2b160c)}
.sidebar .actions .action-direct{border-color:var(--forest-smoke);background:linear-gradient(180deg,var(--forest-teal),var(--forest-ivy));color:#efefe9}
.sidebar .actions .action-recycle{border-color:var(--forest-rust);background:linear-gradient(180deg,var(--forest-burgundy),#4a1412);color:#efefe9}
.sidebar .actions .action-next{border-color:var(--forest-gold);background:linear-gradient(180deg,var(--forest-ochre),#72522f);color:#fff7e8}
.sidebar .actions .action-leave{border-color:var(--forest-ochre);background:linear-gradient(180deg,#472719,var(--forest-espresso));color:#efefe9}
.sidebar .actions .action-end{border-color:var(--forest-gold);background:linear-gradient(180deg,var(--forest-moss),var(--forest-ivy));color:#efefe9}
.sidebar .actions .btn:disabled{filter:saturate(.45);opacity:.48;box-shadow:none}

/* Five-color architectural palette sampled from the supplied reference image. */
:root{
  --palette-aqua:#d1ebe7;
  --palette-yellow:#fee16b;
  --palette-mustard:#bd7f02;
  --palette-burnt-orange:#a23c01;
  --palette-deep-green:#22352d;
  --ui-text:#f4f6f3;
  --ui-muted:#d1ebe7;
  --ui-dark-text:#17231f;
  --palette-earth:var(--palette-burnt-orange);
  --palette-slate-blue:var(--palette-aqua);
  --palette-taupe:var(--palette-mustard);
  --palette-muted-violet:var(--palette-yellow);
  --palette-plum:var(--palette-deep-green);
  --palette-forest-green:var(--palette-deep-green);
  --palette-deep-ink:var(--palette-deep-green);
  --palette-dark-teal:var(--palette-deep-green);
  --palette-ocean-teal:var(--palette-burnt-orange);
  --palette-bright-teal:var(--palette-yellow);
  --palette-sky-blue:var(--palette-mustard);
  --palette-blue-slate:var(--palette-aqua);
  --palette-navy:var(--palette-deep-green);
  --palette-mauve:var(--palette-yellow);
  --palette-soft-pink:var(--palette-burnt-orange);
  --palette-powder-blue:var(--palette-mustard);
  --palette-steel-blue:var(--palette-aqua);
  --palette-midnight:var(--palette-deep-green);
  --palette-sage:var(--palette-powder-blue);
  --palette-orange:var(--palette-mauve);
  --palette-forest:var(--palette-navy);
  --palette-deep-slate:var(--palette-steel-blue);
  --palette-charcoal:var(--palette-midnight);
  --palette-blush:var(--palette-soft-pink);
  --palette-champagne:var(--palette-steel-blue);
  --palette-cognac:var(--palette-powder-blue);
  --palette-amber:var(--palette-mauve);
  --palette-emerald:var(--palette-navy);
  --palette-espresso:var(--palette-midnight);
  --campaign-gray:var(--palette-burnt-orange);
  --palette-dusty-rose:var(--palette-amber);
  --palette-warm-cream:var(--palette-blush);
  --palette-pale-blue:var(--palette-champagne);
  --palette-slate:var(--palette-emerald);
  --palette-black:var(--palette-espresso);
  --floral-rose:var(--palette-blush);
  --floral-thistle:var(--palette-cognac);
  --floral-lavender:var(--palette-champagne);
  --floral-hawthorne:var(--palette-emerald);
  --floral-royal:var(--palette-amber);
  --floral-crimson:var(--palette-cognac);
  --floral-noir:var(--palette-espresso);
  --floral-slot:var(--floral-noir);
  --cozy-deep:var(--floral-noir);
  --cozy-brown:var(--palette-slate);
  --cozy-sage:var(--floral-thistle);
  --cozy-taupe:var(--palette-dusty-rose);
  --cozy-blush:var(--palette-dusty-rose);
  --cozy-ivory:var(--palette-warm-cream);
  --cozy-abyss:var(--palette-black);
  --cozy-charcoal:var(--floral-hawthorne);
  --cozy-espresso:var(--palette-slate);
  --olive:var(--palette-pale-blue);
  --sage:var(--palette-pale-blue);
  --sand:var(--palette-cognac);
  --cream:var(--palette-warm-cream);
  --olive-deep:var(--floral-noir);
  --olive-shadow:var(--palette-slate);
  --ink:var(--palette-warm-cream);
  --muted:var(--floral-lavender);
  --coal:var(--palette-black);
  --panel:var(--floral-hawthorne);
  --line:var(--palette-cognac);
  --gold:var(--palette-cognac);
  --blue:#3f7778;
  --red:#9b3a34;
  --tan:#d29a75;
  --green:#6f9a4f;
  --purple:#a64a94;
  --forest-espresso:var(--palette-black);
  --forest-ivy:var(--palette-black);
  --forest-teal:var(--palette-pale-blue);
  --forest-moss:var(--palette-pale-blue);
  --forest-smoke:var(--palette-pale-blue);
  --forest-rust:var(--palette-dusty-rose);
  --forest-burgundy:var(--palette-slate);
  --forest-ochre:var(--palette-warm-cream);
  --forest-gold:var(--palette-warm-cream);
}
body{background:radial-gradient(circle at 14% -8%,#d1ebe74f 0,transparent 34%),radial-gradient(circle at 90% 108%,#fee16b70 0,transparent 40%),linear-gradient(145deg,#22352d,var(--floral-noir) 54%,#22352d 145%)}
body:before{background-image:linear-gradient(115deg,transparent 0 48%,#bd7f020b 49% 50%,transparent 51% 100%)}
.hero,.panel{border-color:var(--floral-thistle);background:linear-gradient(145deg,#22352d 0,var(--floral-hawthorne) 48%,var(--floral-noir) 88%,#fee16b 155%);box-shadow:0 20px 55px #22352dcc,inset 0 1px #bd7f021a}
.topbar{border-color:#d1ebe780}.badge{border-color:var(--floral-thistle);background:#22352dc7;color:var(--floral-rose)}
.field input,.field select,.field textarea,.deck-data-grid textarea{border-color:var(--floral-thistle);background:var(--floral-noir);color:var(--floral-rose);box-shadow:inset 0 1px 5px #22352d}
.login-shell,.opening-screen{background:radial-gradient(circle at 50% 8%,#d1ebe7 0,#22352d 42%,#22352d 100%)}
.privacy-policy-screen{background:radial-gradient(circle at 50% 8%,#22352d 0,#22352d 46%,#22352d 100%)}
.login-card,.opening-panel{border-color:var(--floral-thistle);background:linear-gradient(155deg,#22352df5,#22352df5)}
.privacy-policy-card{border-color:var(--floral-rose);background:linear-gradient(155deg,#22352df5,#22352df5 58%,#22352df5)}
.cookie-consent{border-color:var(--floral-rose);background:#22352df5}.privacy-policy-content,.passcode-disclaimer{border-color:var(--floral-thistle);background:#22352d85}

/* Ten deck backgrounds remain visibly distinct within the five-color palette. */
.server-decks-pane{background:radial-gradient(circle at 8% 0,#bd7f0224,transparent 30%),linear-gradient(155deg,#22352d,#22352d 68%,#22352d 155%)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+1){border-color:#bd7f02;background:linear-gradient(145deg,#fee16b,#22352d)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+2){border-color:#d1ebe7;background:linear-gradient(160deg,#22352d,#22352d)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+3){border-color:#bd7f02;background:linear-gradient(125deg,#22352d,#fee16b)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+4){border-color:#22352d;background:linear-gradient(170deg,#d1ebe7,#22352d 72%,#22352d)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+5){border-color:#d1ebe7;background:linear-gradient(120deg,#22352d,#22352d 52%,#fee16b)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+6){border-color:#bd7f02;background:linear-gradient(155deg,#bd7f02,#fee16b 24%,#22352d 82%)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+7){border-color:#d1ebe7;background:linear-gradient(135deg,#fee16b,#22352d 58%,#22352d)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+8){border-color:#22352d;background:linear-gradient(145deg,#22352d,#d1ebe7 155%)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n+9){border-color:#bd7f02;background:linear-gradient(115deg,#22352d,#22352d 54%,#fee16b 150%)}
.server-decks-pane .server-deck-grid .server-deck:nth-child(10n){border-color:#d1ebe7;background:linear-gradient(175deg,#22352d,#22352d 62%,#fee16b 150%)}
.server-decks-pane .server-deck-title>b{border-color:var(--floral-rose);background:var(--floral-noir);color:var(--floral-rose)}
.server-decks-pane .server-deck li:nth-child(3n+1){background:#22352dd9}.server-decks-pane .server-deck li:nth-child(3n+2){background:#22352dd9}.server-decks-pane .server-deck li:nth-child(3n){background:#fee16bd9}
.deck-tray{border-color:#bd7f0280;background:linear-gradient(160deg,#22352d,#22352d 62%,#fee16b)}
.deck-tray .deck-list .deck-item:nth-child(3n+1){background:linear-gradient(90deg,#22352d,#22352d)}
.deck-tray .deck-list .deck-item:nth-child(3n+2){background:linear-gradient(90deg,#22352d,#22352d)}
.deck-tray .deck-list .deck-item:nth-child(3n){background:linear-gradient(90deg,#22352d,#d1ebe7)}

/* Battlefield layering: every playable slot is identical; only its surrounding layers vary. */
.game{background:radial-gradient(circle at 18% 14%,#d1ebe740 0,transparent 34%),radial-gradient(circle at 82% 88%,#fee16b5c 0,transparent 36%),linear-gradient(145deg,#22352d,var(--floral-noir) 58%,#22352d 100%)}
.opponent-zone{border-color:var(--floral-thistle);background:linear-gradient(110deg,#22352d,var(--floral-hawthorne) 58%,#d1ebe7)}
.my-zone{border-color:var(--floral-rose);background:linear-gradient(110deg,#22352d 0,#22352d 58%,#fee16b 155%)}
.opponent-zone .board{padding:4px;border:1px solid #bd7f024f;border-radius:9px;background:linear-gradient(145deg,#d1ebe759,#22352d99)}
.my-zone .board{padding:4px;border:1px solid #bd7f0266;border-radius:9px;background:linear-gradient(145deg,#fee16b82,#22352d99)}
.opponent-zone .identity,.my-zone .identity{border:1px solid #d1ebe761;border-radius:8px;background:linear-gradient(150deg,#22352db8,#22352d9e)}
.game .player-zone .slot,.game .opponent-zone .slot:nth-child(n),.game .my-zone .slot:nth-child(n){border-color:var(--floral-thistle);background:var(--floral-slot);color:var(--floral-rose)}
.game .player-zone .slot.dragover{border-color:var(--floral-rose);background:#22352d;box-shadow:inset 0 0 24px #bd7f0229}
.player-zone.active{border-color:var(--floral-rose);box-shadow:inset 0 0 0 2px var(--floral-rose),inset 0 0 34px #bd7f021c,0 8px 28px #22352db8}

/* Sidebar variation uses the same palette without competing with the uniform field slots. */
.sidebar{background:linear-gradient(180deg,#22352d8c,#22352db8)}
.sidebar .phasebox{border-color:var(--floral-thistle);background:linear-gradient(145deg,#22352d,#22352d)}
.sidebar .phase.done{background:linear-gradient(90deg,var(--floral-crimson),var(--floral-royal))}
.sidebar .phasebox,.spectator-sidebar .phasebox{position:relative;overflow:hidden;border:2px solid var(--floral-rose);background:linear-gradient(135deg,#22352d 0,#22352d 58%,#fee16b 155%);box-shadow:inset 0 1px #fff4,0 7px 20px #22352db8}
.sidebar .phasebox:before,.spectator-sidebar .phasebox:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--floral-crimson),var(--floral-royal));box-shadow:0 0 14px #fee16b88}
.sidebar .phasebox .kicker,.spectator-sidebar .phasebox .kicker{color:#fff4ee;font-size:13px;font-weight:900;text-shadow:0 2px 4px #22352d;letter-spacing:.18em}
.sidebar .phasebox h3,.spectator-sidebar .phasebox h3{margin:6px 0 0;color:#fffaf7;font:700 19px/1.18 Marcellus,serif;text-shadow:0 2px 5px #22352d}
.sidebar .phasebox .phase-list,.spectator-sidebar .phasebox .phase-list{gap:5px;margin-top:11px}
.sidebar .phasebox .phase,.spectator-sidebar .phasebox .phase{height:8px;border:1px solid #bd7f0275;background:#d1ebe770;box-shadow:inset 0 1px 3px #22352d;border-radius:6px}
.sidebar .phasebox .phase.done,.spectator-sidebar .phasebox .phase.done{border-color:#fff0e9;background:linear-gradient(90deg,var(--floral-crimson),var(--floral-royal));box-shadow:0 0 9px #fee16b7d}
.sidebar .piles{border-color:var(--floral-thistle);background:linear-gradient(145deg,#22352d,#22352d)}
.sidebar .piles .pile:nth-child(4n+1){border-color:#d1ebe7;background:#22352d}.sidebar .piles .pile:nth-child(4n+2){border-color:#bd7f02;background:#22352d}.sidebar .piles .pile:nth-child(4n+3){border-color:#fee16b;background:#22352d}.sidebar .piles .pile:nth-child(4n){border-color:#bd7f02;background:#22352d}
.sidebar .zone-abilities:not(:empty){border-color:var(--floral-rose);background:linear-gradient(145deg,#fee16b,#22352d)}
.sidebar .logbox,.spectator-sidebar .logbox{border-color:var(--floral-royal);background:linear-gradient(145deg,#22352d,#22352d)}
.sidebar .actions{border-color:var(--floral-rose);background:linear-gradient(145deg,#22352d,#22352d)}
.sidebar .actions .action-direct,.sidebar .actions .action-end{border-color:#d1ebe7;background:linear-gradient(180deg,#22352d,#22352d);color:#bd7f02}
.sidebar .actions .action-recycle{border-color:#bd7f02;background:linear-gradient(180deg,#fee16b,#22352d);color:#fff4ee}
.sidebar .actions .action-next{border-color:#bd7f02;background:linear-gradient(180deg,#bd7f02,#d1ebe7);color:#22352d}
.sidebar .actions .action-leave{border-color:#22352d;background:linear-gradient(180deg,#22352d,#22352d);color:#bd7f02}

.btn,.site-footer .footer-link,.pile,.tiny,.play-mode,.campaign-battle,.ai-difficulty-option,.open-room,.catalog-card,.deck-item,.sacrifice-option,.position-option,.ability-button,.set-effect-button,.hibernate-view-button,.sacrifice-level-box,.sacrifice-cancel-button,.avatar-choice,.profile-chip,.card-help-close{border-color:var(--floral-thistle);background:linear-gradient(180deg,#22352d,#22352d);color:var(--floral-rose);box-shadow:0 2px 0 #22352d,0 5px 14px #22352d73}
.btn:hover:not(:disabled),.btn:focus-visible,.pile:hover,.pile:focus-visible,.play-mode:hover:not(:disabled),.play-mode:focus-visible,.catalog-card:hover,.catalog-card:focus-visible,.deck-item:hover,.deck-item:focus-visible{border-color:var(--floral-rose);background:linear-gradient(180deg,#d1ebe7,#bd7f02);color:var(--floral-noir);outline-color:var(--floral-rose)}
.btn.primary,.site-footer #footer-privacy-policy,.play-mode.active,.campaign-battle[aria-pressed=true],.ai-difficulty-option.selected,.sacrifice-level-box.ready,.field-selection-pass.trap-pass{border-color:var(--floral-rose);background:linear-gradient(180deg,var(--floral-crimson),var(--floral-royal));color:#fff5f5}
.campaign-battle[aria-pressed=true]{border-color:var(--floral-rose);background:linear-gradient(145deg,#fee16b,#22352d);color:#fff4ee;box-shadow:none}
.campaign-battle[aria-pressed=true] strong,.campaign-battle[aria-pressed=true]>b{color:#fff4ee}.campaign-battle[aria-pressed=true] small{color:#bd7f02}
.rule-section,.about-copy,.feedback-form,.deck-data-grid article{border-color:var(--floral-thistle);background:linear-gradient(145deg,#22352d,#22352d 78%,#22352d 155%)}
.rules-sections .rule-section:nth-child(3n+1){background:linear-gradient(145deg,#22352d,#22352d)}.rules-sections .rule-section:nth-child(3n+2){background:linear-gradient(145deg,#22352d,#22352d)}.rules-sections .rule-section:nth-child(3n){background:linear-gradient(145deg,#fee16b,#22352d)}
.about-pane .about-copy{border-color:#bd7f0280;background:linear-gradient(145deg,#22352d,#22352d 62%,#22352d)}
#toast{border-color:var(--floral-rose);background:#22352df5;color:var(--floral-rose)}
*{scrollbar-color:var(--floral-thistle) var(--floral-noir)}::selection{background:#bd7f02cc;color:#22352d}

/* Every deckbuilder card row uses the supplied physical-card color swatches. */
.builder-pane .catalog-card,.builder-pane .deck-item{background:var(--deck-card-background);border-color:var(--deck-card-border);color:var(--deck-card-ink);box-shadow:0 2px 0 #22352d,0 5px 14px #22352d66}
.builder-pane .catalog-card{border:2px solid var(--deck-card-border);border-top-width:6px}
.builder-pane .deck-item{border:1px solid var(--deck-card-border);border-left-width:5px}
.builder-pane .deck-tray .deck-list .deck-item{background:var(--deck-card-background)}
.builder-pane .catalog-card.color-red,.builder-pane .deck-item.color-red{--deck-card-background:#540804;--deck-card-border:#9b3a34;--deck-card-ink:#fff5ee}
.builder-pane .catalog-card.color-blue,.builder-pane .deck-item.color-blue{--deck-card-background:#042a2b;--deck-card-border:#3f7778;--deck-card-ink:#f2ffff}
.builder-pane .catalog-card.color-green,.builder-pane .deck-item.color-green{--deck-card-background:#2a4d14;--deck-card-border:#6f9a4f;--deck-card-ink:#f1f6e8}
.builder-pane .catalog-card.color-purple,.builder-pane .deck-item.color-purple{--deck-card-background:#5a0b4d;--deck-card-border:#a64a94;--deck-card-ink:#fff5ee}
.builder-pane .catalog-card.color-tan,.builder-pane .deck-item.color-tan{--deck-card-background:#9e6240;--deck-card-border:#d29a75;--deck-card-ink:#20140d}
.builder-pane .catalog-card small,.builder-pane .deck-item small{color:inherit;opacity:.78}
.builder-pane .catalog-card p{color:inherit;opacity:.9}
.builder-pane .catalog-card:hover,.builder-pane .catalog-card:focus-visible,.builder-pane .deck-item:hover,.builder-pane .deck-item:focus-visible{background:var(--deck-card-background);border-color:var(--deck-card-ink);color:var(--deck-card-ink);filter:brightness(1.08);outline-color:var(--deck-card-border)}
.builder-pane .catalog-card:disabled,.builder-pane .catalog-card.limit-reached{background:var(--deck-card-background);border-color:var(--deck-card-border);color:var(--deck-card-ink)}
.builder-pane .filters .filter-option{--filter-glow:var(--floral-rose);transition:border-color .15s,background .15s,color .15s,box-shadow .15s}
.builder-pane .filters .filter-color-red{--filter-glow:#9b3a34}.builder-pane .filters .filter-color-blue{--filter-glow:#3f7778}.builder-pane .filters .filter-color-green{--filter-glow:#6f9a4f}.builder-pane .filters .filter-color-purple{--filter-glow:#a64a94}.builder-pane .filters .filter-color-tan{--filter-glow:#d29a75}
.builder-pane .filters .filter-option.active{border-color:#fff4ee;background:linear-gradient(180deg,#22352d,#22352d);color:#fffaf7;box-shadow:0 0 0 2px #fff4ee,0 0 15px 4px var(--filter-glow),inset 0 0 11px color-mix(in srgb,var(--filter-glow) 35%,transparent);text-shadow:0 1px 3px #22352d}

/* Full-screen combat HUD: field-owned zones replace the permanent sidebar. */
.field-zone-strip{padding:4px;border:1px solid #d1ebe761;border-radius:8px;background:linear-gradient(90deg,#22352dd9,#22352dd9 52%,#22352db8)}
.field-zone-count{border:1px solid var(--floral-thistle);border-radius:7px;background:#22352dc7;color:var(--floral-rose);font:inherit;text-align:center}
button.field-zone-count{cursor:pointer;box-shadow:0 2px 0 #22352d}
button.field-zone-count:hover,button.field-zone-count:focus-visible{border-color:var(--floral-rose);background:#22352d;outline:2px solid #bd7f0266;outline-offset:1px}
.field-zone-count strong{color:#fff4ee;font-family:Marcellus,serif}
.field-zone-count span{overflow:hidden;color:#bd7f02;font-weight:800;letter-spacing:.07em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.opponent-zone .field-zone-strip{background:linear-gradient(180deg,#22352de6,#22352dd9)}
.my-zone .field-zone-strip{background:linear-gradient(180deg,#22352de6,#fee16bc7)}
.match-status-hud{position:relative;overflow:hidden;border:2px solid var(--floral-rose);border-radius:11px;background:linear-gradient(135deg,#22352ded 0,#22352ded 58%,#fee16bed 155%);box-shadow:inset 0 1px #fff4,0 7px 20px #22352db8;color:#fffaf7}
.match-status-hud:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--floral-crimson),var(--floral-royal));box-shadow:0 0 14px #fee16b88}
.match-status-hud .kicker{color:#fff4ee;font-weight:900;text-shadow:0 2px 4px #22352d}
.match-status-hud h3{color:#fffaf7;font-family:Marcellus,serif;text-shadow:0 2px 5px #22352d}
.match-status-hud .phase{border:1px solid #bd7f0275;background:#d1ebe770;box-shadow:inset 0 1px 3px #22352d}
.match-status-hud .phase.done{border-color:#fff0e9;background:linear-gradient(90deg,var(--floral-crimson),var(--floral-royal));box-shadow:0 0 9px #fee16b7d}
.match-status-hud .turn-clock{margin:0;padding:5px 7px;border-color:#bd7f0280;background:#22352dd9}
.match-bottom-controls .actions{border:1px solid var(--floral-rose);border-radius:10px;background:linear-gradient(145deg,#22352deb,#22352ded);box-shadow:0 8px 22px #22352db8}
.match-bottom-controls .action-direct,.match-bottom-controls .action-end{border-color:#d1ebe7;background:linear-gradient(180deg,#22352d,#22352d);color:#bd7f02}
.match-bottom-controls .action-direct.attack-ready:not(:disabled){border-color:#bd7f02;background:linear-gradient(180deg,#fee16b,#22352d);color:#fffce3;box-shadow:inset 0 0 14px #bd7f022e,0 0 22px #bd7f02cc,0 0 38px #bd7f0270;text-shadow:0 1px 5px #22352d}
.match-bottom-controls .action-recycle{border-color:#bd7f02;background:linear-gradient(180deg,#fee16b,#22352d);color:#fff4ee}
.match-bottom-controls .action-next{border-color:#bd7f02;background:linear-gradient(180deg,#bd7f02,#d1ebe7);color:#22352d}
.match-bottom-controls .action-leave{border-color:#22352d;background:linear-gradient(180deg,#22352d,#22352d);color:#bd7f02}
.match-log-toggle{border-color:var(--floral-rose);background:linear-gradient(180deg,#22352d,#22352d);color:#fff4ee;font-weight:900}
.match-log-toggle.active{background:linear-gradient(180deg,var(--floral-crimson),var(--floral-royal));color:#fffaf7}
.match-log-panel{border:2px solid var(--floral-royal);border-radius:12px;background:linear-gradient(145deg,#22352df5,#22352df5);box-shadow:0 18px 48px #22352de6}
.match-log-panel .log{color:var(--muted)}
.match-log-panel .log .combat{color:#bd7f02}.match-log-panel .log .turn{color:#d1ebe7}
.match-tutorial-panel .tutorial-guide{border-color:var(--floral-royal);background:linear-gradient(145deg,#22352df5,#22352df5);box-shadow:0 14px 34px #22352dd9}
.spectator-controls{padding:5px 7px;border:1px solid var(--floral-thistle);border-radius:10px;background:#22352dd9;box-shadow:0 7px 20px #22352db8}

/* In-match card names keep their color identity without competing with the artwork. */
.color-red{--match-card-name-bg:#540804}
.color-blue{--match-card-name-bg:#042a2b}
.color-green{--match-card-name-bg:#2a4d14}
.color-purple{--match-card-name-bg:#5a0b4d}
.color-tan{--match-card-name-bg:#9e6240}
.match-canvas .mini-card,
.match-canvas .card,
.opening-screen .card{
  background:var(--match-card-name-bg,#100d0e);
}
.match-canvas .mini-card>.copy,
.match-canvas .hand .card>.copy,
.opening-screen .card>.copy{
  background:linear-gradient(180deg,var(--match-card-name-bg,#100d0e) 0%,color-mix(in srgb,var(--match-card-name-bg,#100d0e) 82%,#080708) 100%);
  color:#f7f1e8;
  box-shadow:inset 0 1px #ffffff14;
}

/* Solid surfaces with one restrained gradient reserved for the page background. */
*,*::before,*::after{background-image:none!important}
body,.game,.login-shell,.opening-screen,.privacy-policy-screen,.waiting{background-color:var(--palette-espresso)!important}
.hero,.panel,.login-card,.opening-panel,.privacy-policy-card{background-color:var(--palette-champagne)!important;color:var(--ui-dark-text)!important}
.play-form,.catalog-panel,.shared-decks-pane,.about-copy,.feedback-form,.deck-data-grid article{background-color:var(--palette-emerald)!important;color:var(--ui-text)!important}
.deck-tray{background-color:var(--palette-espresso)!important;color:var(--ui-text)!important}
.server-decks-pane{background-color:var(--palette-champagne)!important;color:var(--ui-dark-text)!important}
.rule-section,.open-room,.live-game,.campaign-battle,.ai-difficulty-option,.ai-profile-tracker,.campaign-battle-picker,.sacrifice-dialog,.selection-preview-card,.choice-source-summary,.trap-pass-box,.sacrifice-level-box,.match-log-panel,.match-tutorial-panel .tutorial-guide{background-color:var(--palette-espresso)!important}
.opponent-zone,.my-zone,.sidebar .phasebox,.spectator-sidebar .phasebox,.sidebar .piles,.sidebar .logbox,.spectator-sidebar .logbox,.sidebar .actions,.match-status-hud,.match-bottom-controls .actions,.field-zone-strip,.spectator-controls{background-color:var(--palette-espresso)!important}
.opponent-zone .board,.my-zone .board,.opponent-zone .identity,.my-zone .identity,.game .player-zone .slot,.field-zone-count,.match-status-hud .turn-clock,.match-log-toggle,.zone-abilities,.mini-card.facedown{background-color:var(--palette-emerald)!important}
.server-decks-pane .server-deck-grid .server-deck,.server-decks-pane .server-deck{background-color:var(--palette-cognac)!important;color:var(--palette-espresso)!important}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .builder-controls{background-color:var(--palette-champagne)!important;color:var(--ui-dark-text)!important}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .builder-controls strong{color:var(--ui-dark-text)!important}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .builder-controls small{color:var(--ui-dark-text)!important}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .catalog{padding:9px!important;border:1px solid var(--palette-cognac);border-radius:9px;background-color:var(--palette-espresso)!important}
button{background-color:var(--palette-cognac)!important;color:var(--ui-dark-text)!important}
.btn,.site-footer .footer-link,.pile,.tiny,.play-mode,.open-room,.catalog-card,.deck-item,.sacrifice-option,.position-option,.ability-button,.set-effect-button,.hibernate-view-button,.sacrifice-level-box,.sacrifice-cancel-button,.avatar-choice,.profile-chip,.card-help-close{background-color:var(--palette-cognac)!important;color:var(--ui-dark-text)!important}
.campaign-battle,.ai-difficulty-option{background-color:var(--palette-cognac)!important;color:var(--ui-dark-text)!important}
.play-mode-grid .play-mode:nth-child(1){background-color:var(--palette-amber)!important;color:var(--ui-dark-text)!important}
.play-mode-grid .play-mode:nth-child(2){background-color:var(--palette-cognac)!important}
.play-mode-grid .play-mode:nth-child(3),.play-mode-grid .play-mode[data-play-mode="campaign"]{background-color:var(--campaign-gray)!important;color:#fff!important}
.play-mode-grid .play-mode.active{box-shadow:inset 0 0 0 3px var(--palette-espresso)!important}
.play-form label,.play-form p,.play-form small,.play-form .current-deck{color:var(--ui-muted)!important}
.play-form .kicker{color:var(--palette-orange)!important}
.server-decks-pane h2{color:var(--ui-dark-text)!important}
.server-decks-pane p{color:var(--ui-dark-text)!important}
.server-decks-pane .kicker{color:var(--palette-blush)!important}
.room-browser{background-color:var(--palette-espresso)!important;color:var(--ui-text)!important}
.room-browser h3{color:var(--ui-text)!important}
.room-browser .kicker{color:var(--palette-orange)!important}
.room-browser .open-room-empty{color:var(--ui-muted)!important}
.rules-sections .rule-section:nth-child(3n+1){background-color:var(--palette-champagne)!important;color:var(--ui-dark-text)!important}
.rules-sections .rule-section:nth-child(3n+2){background-color:var(--palette-cognac)!important;color:var(--ui-dark-text)!important}
.rules-sections .rule-section:nth-child(3n){background-color:var(--palette-emerald)!important;color:var(--ui-text)!important}
.rules-sections .rule-section:nth-child(3n+1) :is(h2,h3,p,li,strong){color:var(--ui-dark-text)!important}
.rules-sections .rule-section:nth-child(3n+2) :is(h2,h3,p,li,strong){color:var(--ui-dark-text)!important}
.rules-sections .rule-section:nth-child(3n) :is(h2,h3,p,li,strong){color:var(--ui-text)!important}
.btn:hover:not(:disabled),.btn:focus-visible,.pile:hover,.pile:focus-visible,.tiny:hover,.tiny:focus-visible,.play-mode:hover:not(:disabled),.play-mode:focus-visible,.open-room:hover,.open-room:focus-visible,.sacrifice-option:hover,.sacrifice-option:focus-visible,.position-option:hover,.position-option:focus-visible,.ability-button:hover,.ability-button:focus-visible,.set-effect-button:hover:not(:disabled),.set-effect-button:focus-visible{background-color:var(--palette-champagne)!important;color:var(--ui-dark-text)!important}
.btn.primary,.site-footer #footer-privacy-policy,.play-mode.active,.campaign-battle[aria-pressed=true],.ai-difficulty-option.selected,.sacrifice-level-box.ready,.field-selection-pass.trap-pass,.match-log-toggle.active,.sidebar .phasebox .phase.done,.spectator-sidebar .phasebox .phase.done,.match-status-hud .phase.done,.sidebar .zone-abilities:not(:empty){background-color:var(--palette-amber)!important;color:var(--ui-dark-text)!important}
.sidebar .actions .action-next,.match-bottom-controls .action-next{background-color:var(--palette-blush)!important;color:var(--ui-text)!important}
.sidebar .actions .action-direct,.sidebar .actions .action-end,.sidebar .actions .action-leave,.match-bottom-controls .action-direct,.match-bottom-controls .action-end,.match-bottom-controls .action-leave,.match-bottom-controls .action-recycle{background-color:var(--palette-cognac)!important;color:var(--ui-dark-text)!important}
.sidebar .actions .action-recycle,.match-bottom-controls .action-direct.attack-ready:not(:disabled){background-color:var(--palette-amber)!important}
.turn-flash span,.phase-flash span,.placement-splash{background-color:var(--palette-amber)!important}
.match-canvas .mini-card>.copy,.match-canvas .hand .card>.copy,.opening-screen .card>.copy{background-color:var(--match-card-name-bg,#100d0e)!important}

/* Professional polish: crisp hierarchy, quieter depth, and one subtle ambient wash. */
body{background-image:linear-gradient(135deg,var(--palette-charcoal) 0%,#2b463b 52%,var(--palette-charcoal) 100%)!important;background-attachment:fixed;color:var(--ui-text)}
.topbar{border-color:color-mix(in srgb,var(--palette-sage) 42%,transparent);background-color:color-mix(in srgb,var(--palette-charcoal) 90%,transparent);box-shadow:0 8px 24px #0004}
.hero,.panel,.login-card,.opening-panel,.privacy-policy-card{border-color:color-mix(in srgb,var(--palette-sage) 58%,transparent);box-shadow:0 18px 44px #0005,inset 0 1px #ffffff0c}
.play-form,.catalog-panel,.shared-decks-pane,.about-copy,.feedback-form,.deck-data-grid article,.deck-tray,.server-decks-pane,.room-browser{border-color:color-mix(in srgb,var(--palette-sage) 46%,transparent);box-shadow:0 10px 28px #0004,inset 0 1px #ffffff0a}
.field input,.field select,.field textarea,.deck-data-grid textarea,.filters input,#deck-name{border-color:color-mix(in srgb,var(--palette-sage) 54%,transparent)!important;background-color:var(--palette-charcoal)!important;color:var(--ui-text)!important;box-shadow:inset 0 1px 4px #0008}
.field input::placeholder,.field textarea::placeholder,.filters input::placeholder{color:var(--ui-muted)}
button,.btn,.site-footer .footer-link,.pile,.tiny,.play-mode,.open-room,.campaign-battle,.ai-difficulty-option,.ability-button,.set-effect-button,.hibernate-view-button{border-color:color-mix(in srgb,var(--palette-charcoal) 48%,transparent);box-shadow:0 3px 10px #0004;transition:transform .14s ease,border-color .14s ease,background-color .14s ease,box-shadow .14s ease}
button:hover:not(:disabled),button:focus-visible,.btn:hover:not(:disabled),.btn:focus-visible{transform:translateY(-1px)}
button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--palette-orange)!important;outline-offset:2px}
.kicker,.rules-eyebrow{letter-spacing:.14em}

/* Clean visual system: dark structure, selective light surfaces, warm actions. */
:root{
  --clean-page:#14231d;
  --clean-panel:#24382f;
  --clean-raised:#30483e;
  --clean-raised-2:#3a5548;
  --clean-soft:#dcebe7;
  --clean-line:#789287;
  --clean-gold:#f2cf5b;
  --clean-mustard:#c58b1b;
  --clean-rust:#b84b12;
  --clean-ink:#17231f;
  --clean-text:#f7faf8;
  --clean-muted:#bdcec8;
}
body{
  background-color:var(--clean-page)!important;
  background-image:radial-gradient(circle at 82% -18%,#66877845 0%,transparent 42%),linear-gradient(135deg,#111e18 0%,#20372d 55%,#172820 100%)!important;
  color:var(--clean-text)
}
.topbar{border-color:#ffffff1c;background-color:#172a22e8;box-shadow:0 8px 24px #07110c73}
.topbar .brand{color:var(--clean-text)}
.badge,.live-player-count{border-color:#78928766;background-color:#20372f;color:#d4e2dd}
.address-notice{color:#aebfb9}
.hero,.panel,.login-card,.opening-panel,.privacy-policy-card{
  border-color:#78928766;
  background-color:var(--clean-panel)!important;
  color:var(--clean-text)!important;
  box-shadow:0 18px 44px #07110c7d,inset 0 1px #ffffff0d
}
.setup{border-radius:14px}
.menu-view-toolbar{border-color:#ffffff1c}
.menu-view-toolbar strong{color:var(--clean-text)}

/* Main menu cards are distinct without turning the page into a color grid. */
.setup:not(.menu-tab-open) .tabs{gap:10px}
.setup:not(.menu-tab-open) .tabs .btn{
  border:1px solid #78928770;
  background-color:var(--clean-raised)!important;
  color:var(--clean-text)!important;
  box-shadow:0 10px 24px #07110c5e,inset 0 1px #ffffff12
}
.setup:not(.menu-tab-open) .tabs .btn:nth-child(1){background-color:var(--clean-gold)!important;color:var(--clean-ink)!important}
.setup:not(.menu-tab-open) .tabs .btn:nth-child(2){background-color:var(--clean-soft)!important;color:var(--clean-ink)!important}
.setup:not(.menu-tab-open) .tabs .btn:nth-child(3){background-color:var(--clean-raised-2)!important;color:var(--clean-text)!important}
.setup:not(.menu-tab-open) .tabs .btn:nth-child(4){background-color:var(--clean-rust)!important;color:#fff8f3!important}
.setup:not(.menu-tab-open) .tabs .btn:nth-child(5),.setup:not(.menu-tab-open) .tabs .btn:nth-child(6){background-color:#2a4037!important;color:var(--clean-text)!important}

/* Clear form and play hierarchy. */
.play-form,.catalog-panel,.shared-decks-pane,.about-copy,.feedback-form,.deck-data-grid article{
  border-color:#78928757;
  background-color:#1c3028!important;
  color:var(--clean-text)!important;
  box-shadow:0 10px 28px #07110c52,inset 0 1px #ffffff0a
}
.field label,.play-form label,.play-form p,.play-form small,.play-form .current-deck{color:var(--clean-muted)!important}
.field input,.field select,.field textarea,.deck-data-grid textarea,.filters input,#deck-name{
  border-color:#7892878a!important;
  background-color:#14251e!important;
  color:var(--clean-text)!important;
  box-shadow:inset 0 1px 4px #07110ca8
}
.field input::placeholder,.field textarea::placeholder,.filters input::placeholder{color:#8fa39c}
.play-mode-grid .play-mode:nth-child(1){background-color:var(--clean-gold)!important;color:var(--clean-ink)!important}
.play-mode-grid .play-mode:nth-child(2){background-color:var(--clean-soft)!important;color:var(--clean-ink)!important}
.play-mode-grid .play-mode:nth-child(3),.play-mode-grid .play-mode[data-play-mode="campaign"]{background-color:var(--clean-rust)!important;color:#fff8f3!important}
.play-mode-grid .play-mode:nth-child(1) :is(span,small),.play-mode-grid .play-mode:nth-child(2) :is(span,small){color:#34473f!important}
.play-mode-grid .play-mode:nth-child(3) :is(span,small),.play-mode-grid .play-mode[data-play-mode="campaign"] :is(span,small){color:#f5ded3!important}
.play-mode-grid .play-mode.active{border-color:#ffffffb8;box-shadow:inset 0 0 0 3px #17231f,0 7px 18px #07110c52!important}
.current-deck strong{color:var(--clean-gold)!important}
.room-browser{border-color:#78928757;background-color:var(--clean-raised)!important;color:var(--clean-text)!important}
.room-browser h3{color:var(--clean-text)!important}
.room-browser .kicker{color:var(--clean-gold)!important}

/* Buttons use three dependable roles: neutral, primary, and destructive/emphasis. */
button,.btn,.site-footer .footer-link,.pile,.tiny,.open-room,.campaign-battle,.ai-difficulty-option,.ability-button,.set-effect-button,.hibernate-view-button{
  border-color:#6f7f63;
  background-color:var(--clean-mustard)!important;
  color:var(--clean-ink)!important;
  box-shadow:0 3px 10px #07110c59
}
.btn.primary,.site-footer #footer-privacy-policy,.play-mode.active,.campaign-battle[aria-pressed=true],.ai-difficulty-option.selected,.sacrifice-level-box.ready,.field-selection-pass.trap-pass,.match-log-toggle.active{
  background-color:var(--clean-gold)!important;
  color:var(--clean-ink)!important
}
.btn:hover:not(:disabled),.btn:focus-visible,.pile:hover,.pile:focus-visible,.tiny:hover,.tiny:focus-visible,.open-room:hover,.open-room:focus-visible,.ability-button:hover,.ability-button:focus-visible,.set-effect-button:hover:not(:disabled),.set-effect-button:focus-visible{
  border-color:#ffffffb0;
  background-color:#e2b945!important;
  color:var(--clean-ink)!important
}
button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--clean-gold)!important}

/* Deck builder separates tools, catalog, and current deck at a glance. */
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .builder-controls{
  border-color:#9bb1a8;
  background-color:var(--clean-soft)!important;
  color:var(--clean-ink)!important;
  box-shadow:0 7px 18px #07110c3d
}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .builder-controls :is(strong,small){color:var(--clean-ink)!important}
.builder-pane:not(.server-decks-builder-pane):not(.shared-decks-builder-pane) .catalog{border-color:#78928757;background-color:#172a22!important}
.deck-tray{border-color:#78928766;background-color:var(--clean-raised)!important;color:var(--clean-text)!important}
.deck-tray .kicker{color:var(--clean-gold)!important}
.builder-pane .catalog-card,.builder-pane .deck-item{background-color:var(--deck-card-background)!important;color:var(--deck-card-ink)!important}
.builder-pane .deck-tray .deck-list .deck-item{border-color:#587166!important;background-color:#395247!important;color:var(--clean-text)!important}
.builder-pane .deck-tray .deck-list .deck-item small{color:#c7d6d1!important}
.server-decks-pane{border-color:#78928757;background-color:#1b3027!important;color:var(--clean-text)!important}
.server-decks-pane :is(h2,p){color:var(--clean-text)!important}
.server-decks-pane .server-deck-grid .server-deck,.server-decks-pane .server-deck{border-color:#78928766;background-color:var(--clean-raised)!important;color:var(--clean-text)!important}

/* Long-form pages favor calm dark cards with color used as navigation. */
.rules-sections .rule-section:nth-child(3n+1),.rules-sections .rule-section:nth-child(3n+2),.rules-sections .rule-section:nth-child(3n){background-color:var(--clean-raised)!important;color:var(--clean-text)!important}
.rules-sections .rule-section:nth-child(3n+1){border-color:#a9cbc2}
.rules-sections .rule-section:nth-child(3n+2){border-color:var(--clean-gold)}
.rules-sections .rule-section:nth-child(3n){border-color:var(--clean-rust)}
.rules-sections .rule-section:nth-child(n) :is(h2,h3,p,li,strong,span){color:var(--clean-text)!important}
.rules-sections .rule-section:nth-child(n) .rule-section-number{color:#a9cbc2!important}
.site-footer .footer-link{min-width:128px}

