@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#10191c;--panel:#172428;--panel2:#203035;--line:#405354;--text:#eef0e7;--muted:#aab7b4;--gold:#e6ba70;--red:#d68d78;--teal:#8dcfc0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -20%,#2b3d3b,var(--bg) 60%);color:var(--text);font:14px 'DM Sans',system-ui,sans-serif}button{font:inherit;cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}.shell{max-width:1500px;margin:auto;padding:24px}.top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:20px}.eyebrow{font-size:11px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;font-weight:700}.brand{font:600 clamp(25px,3vw,38px) Cinzel,serif;margin:6px 0 3px;letter-spacing:.02em}.sub{color:var(--muted);margin:0}.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.ghost,.primary,.small{border:1px solid #74827b;background:transparent;color:var(--text);border-radius:6px;padding:10px 14px}.primary{background:var(--gold);border-color:var(--gold);color:#172022;font-weight:700}.ghost:hover,.small:hover{border-color:var(--gold)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin-top:18px}.board{display:grid;gap:13px}.side,.location,.sidebar section,.turnbar{background:rgba(25,40,43,.92);border:1px solid var(--line);border-radius:10px}.side{padding:16px}.side.active{border-color:var(--gold);box-shadow:inset 3px 0 var(--gold)}.sidehead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.sidehead h2{font:600 19px Cinzel;margin:0}.side.ithrak h2{color:#d9aaa0}.side.valenor h2{color:#d2d3ae}.badge{border:1px solid var(--line);border-radius:99px;padding:5px 9px;color:var(--muted);font-size:11px}.badge.live{color:var(--gold);border-color:var(--gold)}.stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.stat{background:#0e1b1e;border-radius:5px;padding:8px 10px;color:var(--muted);font-size:12px}.stat b{color:var(--text);font-size:15px}.supply{display:flex;gap:5px;align-items:center;min-height:29px;flex-wrap:wrap}.token{width:23px;height:23px;border-radius:50%;border:1px solid #b7a271;background:#a8844d;box-shadow:inset 0 0 0 3px #493e2c}.token.spent{background:#394346;border-color:#59615d;box-shadow:inset 0 0 0 3px #263134}.supply-caption{color:var(--muted);font-size:11px;margin-left:5px}.zones{display:grid;grid-template-columns:1fr 1fr;gap:10px}.zone{background:#112023;border:1px dashed #536362;border-radius:7px;min-height:116px;padding:9px}.zone h3{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 8px}.cards{display:flex;flex-wrap:wrap;gap:7px}.card{width:142px;min-height:108px;background:linear-gradient(150deg,#334548,#1b2c30);border:1px solid #718079;border-radius:7px;padding:9px;display:flex;flex-direction:column;justify-content:space-between;position:relative}.card.exhausted{filter:saturate(.45);opacity:.67}.card.ithrak{background:linear-gradient(150deg,#503c3e,#29272c);border-color:#846a67}.card strong{font:600 12px Cinzel;line-height:1.25}.card .line{color:var(--muted);font-size:11px}.card .cost{position:absolute;right:8px;top:6px;color:var(--gold);font-weight:700}.card footer{display:flex;justify-content:space-between;font-size:11px;color:#dce9e3}.card button{border:1px solid var(--gold);border-radius:4px;background:rgba(230,186,112,.13);color:var(--gold);font-size:11px;padding:5px;margin-top:7px;text-align:left}.card button:hover{background:rgba(230,186,112,.28)}.empty{color:#748783;font-size:12px;padding:8px}.location{padding:14px;background:linear-gradient(90deg,#253c3a,#2c3c38,#3e3335)}.location .loc-title{text-align:center;font:600 15px Cinzel;letter-spacing:.09em;margin:0 0 10px}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.location-grid .zone{background:rgba(10,24,25,.48)}.turnbar{padding:16px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.turnbar h2{font:600 18px Cinzel;margin:0 0 3px}.turnbar p{color:var(--muted);margin:0}.phase-pills{display:flex;gap:5px;flex-wrap:wrap}.pill{font-size:10px;border:1px solid #52615e;border-radius:100px;padding:5px 7px;color:#9faeaa}.pill.current{background:var(--gold);color:#172022;border-color:var(--gold);font-weight:700}.actions{display:flex;gap:8px;flex-wrap:wrap}.sidebar{display:grid;gap:13px;align-content:start}.sidebar section{padding:15px}.sidebar h3{font:600 15px Cinzel;margin:0 0 11px}.sidebar p,.sidebar li{color:var(--muted);line-height:1.5;font-size:12px}.sidebar ul{padding-left:18px;margin:0}.log{max-height:410px;overflow:auto;display:grid;gap:8px}.entry{border-left:2px solid #647a75;padding-left:9px;font-size:12px;line-height:1.4}.entry small{display:block;color:var(--gold);font-size:10px;margin-bottom:3px}.entry.blocked{border-color:var(--red);color:#edbaaa}.pending{background:#392c28;border:1px solid var(--red);border-radius:7px;padding:12px;margin:0 0 13px}.pending h3{margin:0 0 5px;color:#f2c1b1}.pending p{margin:0 0 10px;font-size:12px}.pending .small{border-color:var(--red);color:#ffd2c1}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#263535;border:1px solid var(--gold);border-radius:7px;padding:11px 16px;z-index:10;max-width:90vw}.toast.bad{border-color:var(--red)}.help{margin:14px 0 0;color:var(--muted);font-size:12px}.help summary{cursor:pointer;color:var(--gold)}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr 1fr}.shell{padding:13px}}@media(max-width:600px){.top{display:block}.top-actions{justify-content:flex-start;margin-top:13px}.zones{grid-template-columns:1fr}.location-grid{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr}.card{width:calc(50% - 4px);min-width:130px}.turnbar{align-items:stretch}.actions button{flex:1}}
.card-portrait{padding:0!important;margin:0 0 7px!important;border:0!important;border-radius:4px!important;overflow:hidden;display:block;width:100%;height:112px;background:#0c1719!important}.card-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 24%;display:block}.card .cost{background:#1a2929;border:1px solid #816c4c;border-radius:50%;width:22px;height:22px;text-align:center;line-height:20px;top:5px;right:5px}.card .line{margin-top:4px;min-height:14px}.card footer{margin-top:6px}.card .card-portrait:hover{outline:2px solid var(--gold)}.arcana-stat b{color:#9fd5e4}.arcana-check{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.arcana-check label{color:var(--muted);font-size:12px}.arcana-check select,.library input{background:#0f1c1f;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px}.overlay{position:fixed;inset:0;z-index:30;background:rgba(4,11,13,.84);display:flex;justify-content:center;align-items:center;padding:20px}.modal{max-height:94vh;overflow:auto;background:#19282b;border:1px solid #8a886f;border-radius:12px;padding:18px;box-shadow:0 20px 80px #0009;width:min(100%,1000px)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.modal h2{font:600 22px Cinzel;margin:0}.modal p{line-height:1.55}.inspect{width:min(100%,780px)}.inspect-grid{display:grid;grid-template-columns:minmax(190px,330px) 1fr;gap:22px;align-items:start}.full-card{display:block;width:100%;border-radius:4px}.large-stats{font:600 18px Cinzel;color:var(--gold)}.effect-note{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.library input{width:100%;margin-bottom:14px}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.library-item{background:#111e21;border:1px solid #4a5d59;border-radius:7px;padding:6px;color:var(--text);text-align:left}.library-item:hover{border-color:var(--gold)}.library-item[hidden]{display:none}.library-item img{width:100%;display:block;border-radius:3px}.library-item span{display:block;font-size:11px;padding:7px 3px;line-height:1.3}@media(max-width:600px){.inspect-grid{grid-template-columns:1fr}.full-card{max-width:280px;margin:auto}.overlay{padding:8px}.modal{padding:12px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Contested board and explicit capacities */
.arena{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);gap:10px;min-height:230px}.battlefield-area,.shared-location{border:1px solid var(--line);border-radius:10px;padding:13px;background:rgba(23,36,40,.94)}.battlefield-area.valenor{border-color:#657366}.battlefield-area.ithrak{border-color:#785f60}.battlefield-area h2{font:600 16px Cinzel;margin:0 0 12px}.battlefield-area h2 span{display:block;font:500 11px 'DM Sans',sans-serif;color:var(--muted);margin-top:4px}.shared-location{text-align:center;background:radial-gradient(circle,#3f4540,#213335);display:flex;flex-direction:column;align-items:center;justify-content:center}.shared-location h2{font:600 18px Cinzel;color:var(--gold);margin:10px 0}.shared-location p{font-size:11px;color:var(--muted);margin:0}.location-mark{font-size:34px;color:var(--gold);margin-top:12px}.camps{display:grid;gap:13px}.camp-zones{grid-template-columns:1fr 1.25fr;align-items:start;margin-top:14px}.support-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.fixed-slots .cards{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.slot{display:flex;flex:0 0 136px;min-height:185px;border:1px solid #3b5251;background:#132326;border-radius:6px;align-items:flex-start;justify-content:center}.slot .card{width:100%;height:100%}.slot .empty{align-self:center;text-align:center}.zone-structures .slot{flex-basis:136px}.zone-rearGuard .slot{flex-basis:160px}.zone-hand .cards{max-height:600px;overflow-y:auto}.card{width:150px;min-height:148px}.card-actions{display:grid;gap:5px;margin-top:8px}.card-actions button{margin:0}.card .line{padding-top:3px}.card .test-tag{font-size:9px;letter-spacing:.1em;color:var(--gold);margin-top:6px}.mini-label{display:grid;gap:4px;font-size:10px;color:var(--muted);width:100%;margin-top:7px}.mini-label select{min-width:0;max-width:100%;width:100%;background:#0e1b1e;color:var(--text);border:1px solid #60736a;border-radius:4px;padding:5px;font:11px 'DM Sans',sans-serif}.token.structureReady{background:#739fa5;border-color:#c0e8e5;box-shadow:inset 0 0 0 3px #32585a}.choice-panel{background:#273638;border-color:var(--gold)}.choice-panel h3{color:var(--gold)}.choice-panel button{border:1px solid var(--gold);background:#263336;color:var(--gold);border-radius:5px;padding:8px 10px;margin:3px;font-size:12px}.choice-grid{display:flex;flex-wrap:wrap;gap:9px}.choice-option{display:grid;gap:5px;padding:9px;background:#15272a;border:1px solid var(--line);border-radius:6px}.deck-choice{padding-left:22px;margin:8px 0}.deck-choice li{padding:4px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.deck-choice small{color:var(--muted)}.sidebar .mini-label{margin:10px 0}.sidebar select{min-width:0}.sidebar section button.small{margin:3px 4px 3px 0}.pending{margin:0}.card .cost{z-index:1}@media(max-width:1100px){.layout{grid-template-columns:1fr}.sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.arena{grid-template-columns:1fr}.shared-location{min-height:125px;order:1}.battlefield-area.valenor{order:0}.battlefield-area.ithrak{order:2}.camp-zones,.support-row,.sidebar{grid-template-columns:1fr}.slot{flex-basis:145px}.card{width:calc(50% - 4px)}.slot .card{width:100%}.battlefield-area .cards .card{min-width:145px}.shared-location .location-mark{display:none}}
.ai-toggle{border-color:#9d7568}.ai-summary{background:linear-gradient(145deg,rgba(67,39,40,.72),rgba(25,40,43,.95))!important}.ai-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#777;margin-right:7px}.ai-dot.on{background:#e08b70;box-shadow:0 0 10px #e08b70}.turnbar.ai-active{border-color:#a06d61;box-shadow:inset 0 0 24px rgba(142,67,53,.18)}.ai-panel{border-color:#a06d61;background:#3b2d2d}.ai-panel h3{color:#efb19f}
/* Print the complete card face in every play zone; keep controls outside the art. */
.card{width:185px;min-height:0;padding:7px;justify-content:flex-start}.card.has-face{background:#132326}.card-portrait{display:block;width:100%;height:auto;aspect-ratio:300/421;padding:0!important;margin:0 0 7px!important;border:0!important;border-radius:3px!important;background:transparent!important;overflow:visible}.card-portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}.card.has-face .cost{display:none}.card.has-face .card-meta{padding:0 3px}.card.has-face footer{padding:0 3px}.card .line{min-height:0}.card.exhausted{filter:none;opacity:1}.card.exhausted .card-portrait img{filter:grayscale(.5) brightness(.7)}.card.exhausted .line{color:var(--red)}.slot{flex-basis:188px;min-height:300px}.zone-structures .slot,.zone-rearGuard .slot{flex-basis:188px}.slot .card{height:auto;align-self:flex-start}.battlefield-area .cards{align-items:flex-start}.warden-face{background:transparent;border:0;padding:0;display:block;width:min(180px,100%);margin:auto}.warden-face img{display:block;width:100%;height:auto;border-radius:4px}.warden-face:hover{outline:2px solid var(--gold)}.warden-summary p{font-size:12px;line-height:1.5;color:var(--muted)}.library-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.library-item img{aspect-ratio:300/421;object-fit:contain}
@media(max-width:700px){.card{width:165px}.slot,.zone-structures .slot,.zone-rearGuard .slot{flex-basis:170px}.battlefield-area .cards .card{min-width:165px}.zone-hand .card{width:165px}}
/* Location-first board and compact, collapsible tools. */
.shell{max-width:1760px;padding-bottom:390px}.board{margin-top:14px}.menus{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;align-items:start}.dropdown{background:rgba(25,40,43,.96);border:1px solid var(--line);border-radius:9px;min-width:0}.dropdown summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;color:var(--gold);font:600 14px Cinzel}.dropdown summary::-webkit-details-marker{display:none}.dropdown summary:before{content:'▸';font:700 18px system-ui;margin-right:4px}.dropdown[open] summary:before{content:'▾'}.dropdown summary span{margin-left:auto;color:var(--muted);font:500 11px 'DM Sans',sans-serif}.dropdown[open] summary{border-bottom:1px solid var(--line)}.dropdown-content{padding:14px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-grid section{min-width:0;background:#112023;border:1px solid var(--line);border-radius:7px;padding:12px}.admin-grid h3{font:600 14px Cinzel;margin:0 0 10px}.admin-grid p{color:var(--muted);font-size:12px;line-height:1.5}.admin-grid .mini-label{margin:9px 0}.admin-grid select{min-width:0}.admin-grid .small{margin:3px}.admin-grid .rules-title{margin-top:20px}.log-menu .log{max-height:390px;overflow:auto;padding:14px}.arena{grid-template-columns:minmax(0,1fr) minmax(230px,290px) minmax(0,1fr);align-items:stretch}.battlefield-area{display:flex;flex-direction:column;min-width:0}.battlefield-area .battlefield-cards{align-content:start;min-height:250px}.rear-guard-shelf{margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}.rear-guard-shelf .zone{min-height:0}.rear-guard-shelf .fixed-slots .cards{overflow:visible}.rear-guard-shelf .slot{min-height:90px;flex-basis:175px}.shared-location{border-color:var(--gold);background:radial-gradient(circle at center,#455146,#263839 72%);min-width:0;justify-content:flex-start;padding:20px 14px}.shared-location.valenor{box-shadow:inset 0 0 0 2px #a5b58c}.shared-location.ithrak{box-shadow:inset 0 0 0 2px #ad7870}.shared-location h2{font-size:22px;margin:14px 0 18px}.shared-location p{line-height:1.45;margin:12px 0 0}.control-score{width:100%;display:grid;gap:15px;text-align:left}.control-score>div{display:grid;grid-template-columns:1fr auto;gap:5px}.control-score strong{font-size:12px}.control-score b{font:600 17px Cinzel;color:var(--gold)}.score-track{grid-column:1/-1;height:8px;border-radius:10px;background:#142526;border:1px solid #667673;overflow:hidden}.score-track i{display:block;background:var(--gold);height:100%;border-radius:10px}.control-score>div:nth-child(2) .score-track i{background:var(--red)}.shared-location .location-leader{font-size:13px;font-weight:700;color:var(--text);margin-top:18px}.camps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.camp-zones{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.side{min-width:0}.zone-hand{display:none}
/* The player's hand and phase action stay available while the board scrolls. */
.hand-dock{position:fixed;z-index:25;bottom:0;left:0;right:0;background:#111f22;border-top:2px solid var(--gold);box-shadow:0 -14px 48px #000b;padding:10px max(14px,calc((100vw - 1680px)/2));display:flex;flex-direction:column;gap:9px;max-height:68vh}.dock-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.dock-head strong{font:600 16px Cinzel}.dock-head strong span{font:500 12px 'DM Sans',sans-serif;color:var(--muted)}.dock-head small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.dock-actions{display:flex;gap:6px}.dock-actions .primary{white-space:nowrap}.dock-cards{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:9px;overflow-x:auto;overflow-y:auto;max-height:272px;min-height:120px;padding:2px 4px 10px;scrollbar-color:#8b7657 #16282a}.dock-cards .card{flex:0 0 145px;width:145px}.dock-cards .card strong{font-size:11px}.dock-cards .card-portrait{margin-bottom:4px!important}.dock-cards .card .line{font-size:10px}.dock-cards .card-actions{margin-top:5px;gap:4px}.dock-cards .card-actions button{font-size:11px;padding:5px}.dock-cards .mini-label{margin-top:5px}.hand-dock .pending{max-height:32vh;overflow-y:auto;flex:none}.hand-dock .choice-panel{min-height:0}.toast{bottom:min(72vh,390px);z-index:45}
@media(max-width:1100px){.arena{grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr)}.admin-grid{grid-template-columns:1fr}.camps{grid-template-columns:1fr}.camp-zones{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
@media(max-width:750px){.shell{padding:12px 12px 370px}.menus{grid-template-columns:1fr}.arena{grid-template-columns:1fr}.shared-location{order:0;min-height:0}.battlefield-area.valenor{order:1}.battlefield-area.ithrak{order:2}.battlefield-area .battlefield-cards{min-height:110px}.rear-guard-shelf .slot{flex-basis:170px}.camp-zones{grid-template-columns:1fr}.hand-dock{padding:9px 10px;max-height:64vh}.dock-cards{max-height:240px}.dock-cards .card{flex-basis:125px;width:125px}.dock-head strong{font-size:14px}.dock-actions .primary{padding:8px 10px}.shared-location .location-mark{display:none}}
.card.selected-card{border-color:var(--gold);box-shadow:0 0 0 2px rgba(230,186,112,.25)}.selected-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;background:#213335;border:1px solid var(--gold);border-radius:7px;max-height:150px;overflow-y:auto;flex:none}.selected-actions>strong{font:600 13px Cinzel;white-space:nowrap}.selected-actions>strong small{font:500 11px 'DM Sans',sans-serif;color:var(--muted)}.selected-actions>div{display:flex;gap:6px;align-items:end;flex-wrap:wrap;flex:1}.selected-actions button{border:1px solid var(--gold);border-radius:4px;background:rgba(230,186,112,.13);color:var(--gold);font-size:11px;padding:7px 9px;white-space:nowrap}.selected-actions .mini-label{width:auto;min-width:140px;max-width:230px;margin:0}.selected-actions .mini-label select{width:100%}.selected-actions>.small{margin-left:auto;padding:6px 9px}
.hand-dock{overflow-y:auto;overscroll-behavior:contain}
/* Camp, Warden, and Structures share one board without nested horizontal scrolling. */
.camps{grid-template-columns:1fr}.side{padding:14px}.camp-summary{display:grid;grid-template-columns:120px minmax(0,1fr);gap:15px;align-items:start;margin-bottom:12px}.camp-summary:not(:has(.warden-in-play)){grid-template-columns:1fr}.warden-in-play{border:1px solid var(--gold);border-radius:5px;background:#102023;padding:3px;cursor:pointer;width:120px}.warden-in-play img{width:100%;height:auto;display:block;border-radius:3px}.warden-in-play:hover{box-shadow:0 0 0 2px var(--gold)}.warden-name{display:flex;align-items:baseline;gap:10px;margin:0 0 10px}.warden-name strong{font:600 15px Cinzel;color:var(--gold)}.warden-name span{font-size:11px;color:var(--muted)}.camp-resources .stats{margin-bottom:7px}.camp-board{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr);gap:10px;align-items:start}.camp-board .zone{min-width:0}.camp-board .fixed-slots .cards{display:grid;flex-wrap:initial;overflow:visible;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:0}.camp-board .zone-structures .cards{grid-template-columns:repeat(3,minmax(0,1fr))}.camp-board .slot,.camp-board .zone-structures .slot{min-width:0;min-height:150px;width:100%;flex:none}.camp-board .slot .card{min-width:0;width:100%;padding:4px}.camp-board .slot .card strong{font-size:10px}.camp-board .slot .card .line{font-size:10px;overflow-wrap:anywhere}.camp-board .slot .card-actions button{font-size:10px}.camp-board .slot .card-portrait{margin-bottom:4px!important}.camp-board .slot .empty{padding:4px}.arena .battlefield-area{padding-bottom:14px}
@media(max-width:900px){.camp-board{grid-template-columns:1fr}.camp-board .slot,.camp-board .zone-structures .slot{min-height:140px}}
@media(max-width:560px){.camp-summary{grid-template-columns:92px minmax(0,1fr);gap:8px}.warden-in-play{width:92px}.warden-name{display:block}.warden-name span{display:block;margin-top:3px}.camp-board .fixed-slots .cards{grid-template-columns:repeat(3,minmax(0,1fr))}.camp-board .zone-structures .cards{grid-template-columns:repeat(3,minmax(0,1fr))}.camp-board .slot .card{font-size:10px}}
/* Rotating Location and a collapsible, always-visible turn strip. */
.shared-location .location-effect{font-size:15px;font-weight:700;color:#f3dcab;margin:0 0 6px;line-height:1.4}.shared-location .location-cycle{font-size:12px;color:#c1d3c8;margin:0 0 17px}.dock-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dock-status small{margin:0;font-size:12px}.dock-phase{display:inline-block;border:1px solid var(--gold);border-radius:5px;padding:6px 9px;color:#f6d697;background:#293635;font-size:14px;font-weight:700;white-space:nowrap}.hand-dock.minimized{max-height:none;overflow:visible}.shell.hand-minimized{padding-bottom:90px}.hand-dock.minimized .dock-head{min-height:40px}.hand-toggle{white-space:nowrap}body:has(.hand-dock.minimized) .toast{bottom:80px}
@media(max-width:750px){.shell.hand-minimized{padding-bottom:128px}.dock-head{align-items:flex-start}.dock-status{gap:5px 9px}.dock-status strong{width:100%}.dock-actions{align-items:center}.dock-actions .primary,.hand-toggle{padding:7px 9px;font-size:12px}}
@media(max-width:450px){.dock-head{gap:5px}.dock-status{max-width:48%}.dock-actions{flex-wrap:wrap;justify-content:flex-end}.dock-actions button{min-height:34px}.dock-phase{font-size:12px;padding:4px 6px}}
/* Active card modifiers and short, color-coded change notices. */
:root{--buff:#8ce5a4;--nerf:#ff9d98}.combat-stats>span:first-child{display:flex;flex-wrap:wrap;gap:4px 9px}.card .stat-value{font-weight:700;color:var(--text)}.card .stat-value.buff,.modifier.buff,.effect-alert.buff{color:var(--buff)}.card .stat-value.nerf,.modifier.nerf,.effect-alert.nerf{color:var(--nerf)}.stat-value small{font-size:11px}.modifiers{display:flex;flex-wrap:wrap;gap:4px;margin:6px 2px 0}.modifier{font-size:11px;font-weight:700;border-radius:4px;padding:4px 6px;line-height:1.2}.modifier.buff{background:#163b2b;border:1px solid #3c9c64}.modifier.nerf{background:#462527;border:1px solid #b56360}.effect-alerts{position:fixed;top:14px;right:14px;z-index:29;width:min(340px,calc(100vw - 28px));display:grid;gap:6px;pointer-events:none}.effect-alert{border-radius:7px;padding:9px 12px;font-size:13px;font-weight:700;box-shadow:0 8px 28px #0009}.effect-alert.buff{background:#143529;border:1px solid #50ad73}.effect-alert.nerf{background:#422326;border:1px solid #d57973}
/* Initial menu, concise rules, and locally saved playtest notes. */
.start-menu{max-width:470px;text-align:center;padding:34px 28px}.start-menu h2{font:600 clamp(24px,5vw,34px) Cinzel;margin:12px 0}.start-menu p{color:var(--muted)}.start-actions{display:grid;gap:10px;margin-top:24px}.start-actions button{min-height:48px;font-size:16px}.rules-modal{max-width:650px}.rules-modal ol{padding-left:24px}.rules-modal li{margin:12px 0;line-height:1.5}.rules-modal .primary{margin-top:12px}.notes-panel{grid-column:1/-1}.notes-label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.notes-panel textarea{width:100%;min-height:145px;resize:vertical;background:#0e1b1e;color:var(--text);border:1px solid #60736a;border-radius:6px;padding:10px;font:14px 'DM Sans',sans-serif;line-height:1.5}.notes-panel textarea:focus-visible{outline:2px solid var(--gold)}.notes-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.notes-actions span{color:var(--muted);font-size:12px}
@media(max-width:600px){.start-menu{padding:24px 15px}.effect-alerts{top:8px;right:8px}}
/* Card actions sit on their card; hover, keyboard focus, or a first tap opens them. */
.card.interactive-card{cursor:pointer}.card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.card:hover,.card:focus-within,.card.selected-card{z-index:12}.slot:has(.card:hover),.slot:has(.card:focus-within),.slot:has(.card.selected-card){position:relative;z-index:12}
.card-interactions{position:absolute;top:0;left:0;z-index:13;width:max(100%,185px);max-width:min(240px,calc(100vw - 24px));max-height:min(94%,300px);overflow-y:auto;visibility:hidden;opacity:0;pointer-events:none;background:#16282bea;border:1px solid var(--gold);border-radius:6px;padding:9px;box-shadow:0 12px 32px #000c;transition:opacity .12s ease}
.card.interactive-card:hover .card-interactions,.card.interactive-card:focus-within .card-interactions,.card.interactive-card.selected-card .card-interactions{visibility:visible;opacity:1;pointer-events:auto}
.card-interactions>strong{display:block;color:var(--gold);font:600 13px Cinzel;margin-bottom:7px}.card-action-options{display:grid;gap:6px}.card-action-options button{width:100%;margin:0;text-align:center;padding:7px 6px;font-size:12px;min-height:32px}.card-action-options .mini-label{margin:0;font-size:12px}.card-action-options select{font-size:12px;padding:6px}.card-interactions>small{display:block;color:var(--muted);font-size:11px;margin-top:8px}
.library-item.selected-card,.warden-in-play:focus-visible,.warden-face:focus-visible{outline:2px solid var(--gold)}
@media(max-width:600px){.card-interactions{max-height:min(94%,230px)}}
/* Browse filters, reaction resolution, and focused full-screen play. */
.library-tools{display:grid;grid-template-columns:minmax(180px,2fr) minmax(150px,1fr) minmax(150px,1fr);gap:10px;margin-bottom:8px}.library-tools label{display:grid;gap:5px;color:var(--muted);font-size:12px}.library-tools input,.library-tools select{width:100%;background:#0f1c1f;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:9px}.library-result{margin:8px 0 14px!important;color:var(--gold);font-size:12px}.response-window{border-color:#e0a66b;background:linear-gradient(135deg,#422f28,#2b3433)}.response-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.response-head h3{margin-top:4px}.response-count{border:1px solid #a9765e;border-radius:99px;padding:5px 8px;color:#ffd0b8;font-size:11px;white-space:nowrap}.response-queue{display:grid;gap:6px;padding:0;margin:12px 0;list-style:none}.response-queue li{display:grid;grid-template-columns:25px 1fr;gap:8px;align-items:start;padding:8px;border:1px solid #5f5550;border-radius:6px;background:#202c2d}.response-queue li.current{border-color:var(--gold);background:#303733}.response-queue li>b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#43514e;color:var(--text)}.response-queue li.current>b{background:var(--gold);color:#172022}.response-queue strong,.response-queue small{display:block}.response-queue small{color:var(--muted);margin-top:2px}.danger{border:1px solid #d68d78!important;background:#5a2e2b!important;color:#ffe0d5!important;border-radius:5px;padding:9px 12px}.confirm-modal{max-width:470px}.confirm-modal h2{margin:8px 0 12px}.confirm-warning{color:#ffd0b8;border-left:3px solid var(--red);padding-left:10px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.shell.fullscreen-mode{position:fixed;inset:0;z-index:80;max-width:none;overflow:auto;background:radial-gradient(circle at 50% -20%,#2b3d3b,var(--bg) 60%)}
@media(max-width:700px){.library-tools{grid-template-columns:1fr}.response-head{display:block}.response-count{display:inline-block;margin-bottom:8px}.confirm-actions{flex-direction:column-reverse}.confirm-actions button{width:100%}}
/* Darker play surface and focused selection dialogs. */
:root{--bg:#080d12;--panel:#101920;--panel2:#16222a;--line:#36474b;--text:#f0f3ed;--muted:#bac7c4;--gold:#e9bd79}body{background:radial-gradient(circle at 50% -35%,#1b2a31,var(--bg) 63%)}.shell.fullscreen-mode{background:radial-gradient(circle at 50% -35%,#1b2a31,var(--bg) 63%)}.side,.turnbar,.dropdown,.battlefield-area{background:rgba(14,24,30,.98)}.shared-location{background:radial-gradient(circle,#263630,#111d23 75%)}.zone,.admin-grid section,.slot{background:#0c181e}.hand-dock{background:#0a151b}.modal{background:#122027}.card.has-face{background:#0d1a20}.response-window{background:linear-gradient(135deg,#30231f,#172328)}.library-item{background:#0c171c}
.target-modal{width:min(100%,700px)}.assignment-modal{width:min(100%,750px)}.target-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px;margin:16px 0}.target-option{background:#15262b;border:1px solid #71837d;border-radius:8px;color:var(--text);padding:12px;text-align:left;min-height:78px}.target-option:hover,.target-option:focus-visible{border-color:var(--gold);outline:none;background:#203235}.target-option strong,.target-option span{display:block}.target-option span{font-size:12px;color:var(--muted);margin-top:6px}.assignment-modal>p{color:var(--muted);line-height:1.5}.assignment-modal .danger{margin-top:6px}.target-modal .choice-panel{border:0;background:transparent;padding:0}
.warden-placeholder{display:grid;place-items:center;gap:10px;aspect-ratio:5/7;padding:9px;color:#e0afa4;background:linear-gradient(145deg,#3d262b,#181a24);font:600 13px Cinzel;text-align:center}.warden-placeholder small{font:500 11px 'DM Sans',sans-serif;color:var(--muted)}.library-placeholder{aspect-ratio:300/421;display:grid;place-items:center;background:linear-gradient(145deg,#403036,#161b22);border-radius:3px;color:#e0afa4;text-align:center;padding:10px}
.builder-modal{width:min(100%,920px)}.builder-modal>p{color:var(--muted);line-height:1.5}.builder-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:14px;align-items:end;margin:18px 0}.builder-factions{display:flex;gap:6px}.builder-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:12px}.builder-toolbar select{width:100%;padding:9px;background:#0b171c;color:var(--text);border:1px solid var(--line);border-radius:6px}.builder-count{color:var(--gold);font:600 21px Cinzel}.builder-count.complete{color:var(--buff)}.builder-count.over{color:var(--nerf)}.builder-count small{display:block;font:500 11px 'DM Sans',sans-serif;color:var(--muted)}.builder-list{max-height:min(49vh,570px);overflow:auto;border:1px solid var(--line);border-radius:8px}.builder-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 12px;border-bottom:1px solid #27383e}.builder-row:nth-child(even){background:#0c1a20}.builder-row small{display:block;color:var(--muted);margin-top:3px}.builder-stepper{display:flex;align-items:center;gap:8px;flex:none}.builder-stepper b{min-width:16px;text-align:center}.builder-stepper button{min-width:34px;padding:5px 8px}.builder-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:15px}.builder-footer p{color:var(--muted);margin-right:auto;flex:1 1 220px}
@media(max-width:700px){.builder-toolbar{grid-template-columns:1fr}.builder-factions button{flex:1}.builder-footer button{flex:1}.target-grid{grid-template-columns:1fr 1fr}}
/* One catalog dialog, with readable prototype cards and compact deck rows. */
.library-item{align-self:start;min-width:0}
.library-item .library-caption{font-size:14px;line-height:1.4;padding:9px 3px}
.library-tools label,.builder-toolbar label{font-size:14px}
.library-tools input{margin-bottom:0}
.library-item .library-placeholder{display:flex;flex-direction:column;justify-content:center;gap:14px;aspect-ratio:300/421;padding:12px}
.library-placeholder strong{font:600 17px Cinzel,serif;color:var(--text)}
.library-item .prototype-label{font-size:12px;color:var(--gold);text-transform:uppercase}
.library-item .prototype-effect{font-size:14px;line-height:1.5;color:var(--text);padding:0}
.quick-stats,.library-item .quick-stats{display:flex;flex-wrap:wrap;gap:5px;padding:0;margin-top:7px}
.quick-stat,.library-item .quick-stat{display:inline-block;font-size:13px;line-height:1.4;border:1px solid #43575c;border-radius:4px;background:#101a20;color:#e8e2d3;padding:3px 6px}
.library-empty{padding:24px;border:1px dashed var(--line);border-radius:8px;text-align:center;color:var(--muted)}
.inspect-grid.text-only{grid-template-columns:1fr}
.builder-row{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:12px;align-items:start;padding:13px 12px}
.builder-thumbnail{display:block;padding:0;border:1px solid #52675f;border-radius:5px;background:#0c171c;color:var(--muted);overflow:hidden;width:60px;aspect-ratio:5/7}
.builder-thumbnail img{display:block;width:100%;height:100%;object-fit:contain}
.thumbnail-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:100%;height:100%;font-size:12px}
.thumbnail-placeholder span:first-child{color:var(--gold);font-weight:700}
.thumbnail-placeholder span:last-child{font-size:12px;overflow-wrap:anywhere}
.builder-card-info{min-width:0}
.builder-card-info>strong{font-size:16px;line-height:1.4}
.builder-card-info>small{font-size:13px;line-height:1.4}
.builder-effect{margin:7px 0 0;font-size:14px;color:var(--muted);line-height:1.5}
.builder-stepper{align-self:center}
.builder-stepper button{min-height:38px;min-width:38px}
.builder-help{font-size:14px}
.builder-thumbnail:hover{border-color:var(--gold)}
.updates-button{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.updates-badge{display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;background:var(--gold);color:#101920;border-radius:50%;font-size:12px;font-weight:700}
.updates-modal{width:min(100%,850px)}
.updates-intro{font-size:16px;color:var(--muted)}
.release{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.release-heading time{color:var(--muted);font-size:14px}
.release-heading h3{font:600 20px Cinzel,serif;line-height:1.4;margin:8px 0 20px;color:var(--gold)}
.release-section{margin-bottom:22px}
.release-section h4{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:16px;margin:0 0 10px}
.change-kind{border:1px solid var(--line);background:#1b2c33;border-radius:5px;padding:4px 7px;font-size:12px;text-transform:uppercase;color:var(--gold)}
.release-section.change-new .change-kind{color:var(--buff);border-color:#4e866d}
.release-section.change-rule .change-kind{color:#b9d7f0;border-color:#51697d}
.release-section ul{padding-left:21px;margin:0}
.release-section li{font-size:16px;line-height:1.6;margin:10px 0;color:var(--text)}
.change-card-links{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 15px}
.change-card-links .small{font-size:13px;padding:6px 9px}
.playtest-note{border-left:3px solid var(--gold);padding:10px 12px;background:#1d2d32;color:#e4d6ba;font-size:14px}
.builder-thumbnail:focus-visible,.library-item:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:560px){.builder-row{grid-template-columns:50px minmax(0,1fr);gap:9px;padding:12px 9px}.builder-thumbnail{width:50px}.builder-stepper{grid-column:2;justify-self:end}.builder-stepper button{min-width:44px;min-height:44px}.library-item .library-placeholder{padding:9px;gap:7px}.library-placeholder strong{font-size:15px}.library-item .prototype-effect{font-size:13px}.builder-list{max-height:55vh}}
/* Compact navigation, cloud profiles, and explicit tablet layout. */
[hidden]{display:none!important}.top-actions{flex:0 0 auto}.menu-trigger{display:flex;gap:10px;align-items:center;position:relative;min-height:46px}.notification-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px #e6ba7066}.nav-shade{position:fixed;inset:0;z-index:70}.nav-backdrop{position:absolute;inset:0;background:#000b;border:0;width:100%;height:100%;cursor:default}.nav-drawer{position:absolute;right:0;top:0;bottom:0;width:min(360px,94vw);background:#10191d;border-left:1px solid #52605b;box-shadow:-20px 0 80px #0008;padding:24px;overflow:auto;overscroll-behavior:contain}.nav-drawer h2{font:600 20px Cinzel;margin:0}.nav-drawer nav{display:grid;gap:8px}.nav-drawer nav>button{text-align:left;min-height:44px}.nav-drawer h3{margin:20px 0 2px;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold)}.nav-hint{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 4px}.nav-profile{display:flex;gap:12px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.nav-profile small{display:block;color:var(--muted);margin-top:4px}.player-avatar{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;font-weight:700;border:1px solid currentColor;background:#203a33;color:#94ddbd}.avatar-gold{color:#f0cc80;background:#3d321d}.avatar-violet{color:#c4a6fb;background:#322743}.avatar-coral{color:#edac9c;background:#442f2a}.avatar-blue{color:#9cc8ed;background:#273b4c}.layout-switch{display:flex;padding:4px;border:1px solid var(--line);border-radius:8px;background:#090f12;gap:4px}.layout-switch button{flex:1;min-height:44px;border:0;border-radius:5px;background:transparent;color:var(--muted)}.layout-switch [aria-pressed=true]{color:#152222;background:var(--gold);font-weight:700}.account-modal,.multiplayer-modal{width:min(760px,94vw);max-height:90dvh;overflow:auto}.profile-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.profile-form label,.lobby-grid label,.room-summary label,.deck-name-label{display:grid;gap:7px;color:var(--muted);font-size:12px}.profile-form input,.profile-form select,.lobby-grid input,.lobby-grid select,.room-summary input,.deck-name-label input{width:100%;min-width:0;min-height:44px;background:#080f12;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px;font:inherit;font-size:16px}.profile-form button{align-self:end;min-height:44px}.profile-form small{font-size:11px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:18px}.section-heading h3{margin:0}.section-heading h3 span{color:var(--muted);font-size:14px}.muted,.empty-state{color:var(--muted);font-size:13px;line-height:1.6}.empty-state{padding:20px;border:1px dashed var(--line);border-radius:8px}.saved-decks,.recent-rooms{display:grid;gap:10px}.saved-deck{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#111d22;color:var(--text);text-align:left}.saved-deck small,.saved-deck span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.saved-deck .small{margin:2px}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.lobby-grid section{background:#0c1519;padding:20px;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:12px}.lobby-grid h3{margin:0}.lobby-grid p{color:var(--muted);font-size:13px;line-height:1.5}.lobby-grid button{margin-top:auto;min-height:44px}.room-summary{border:1px solid var(--gold);border-radius:10px;padding:20px;margin:20px 0}.room-summary .actions{margin:12px 0}.room-summary>button{margin:8px 8px 0 0}.room-summary input{font-family:monospace;font-size:22px;letter-spacing:.16em}.online-error{color:#ffb4a7;border:1px solid #8e4b43;background:#331c1c;padding:12px;border-radius:6px}.signin-link{display:inline-block;margin:8px}.online-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #527d6c;background:#10231e;padding:12px 16px;border-radius:8px;margin-top:15px}.online-banner span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.online-banner.disconnected{background:#30271a;border-color:var(--gold)}.builder-footer .deck-name-label{flex:1 1 230px}.toast{z-index:100}.modal{overscroll-behavior:contain}button,a,input,select,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.layout-ipad{max-width:1194px;padding:16px 16px 410px}.layout-ipad .top{align-items:center}.layout-ipad .brand{font-size:28px}.layout-ipad button,.layout-ipad select{min-height:44px}.layout-ipad input,.layout-ipad textarea,.layout-ipad select{font-size:16px}.layout-ipad .card-interactions button{padding:10px;min-height:44px;font-size:13px}.layout-ipad .arena{grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr)}.layout-ipad .camps{grid-template-columns:1fr}.layout-ipad .camp-board{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.layout-ipad .hand-dock{max-width:1194px;left:50%;right:auto;transform:translateX(-50%);width:100%;padding-bottom:env(safe-area-inset-bottom)}.layout-ipad .modal{max-height:88dvh}.layout-ipad .builder-stepper button{min-width:44px}.layout-ipad .target-option{min-height:65px}.layout-ipad .dock-cards{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.layout-ipad .nav-drawer{padding-top:max(24px,env(safe-area-inset-top))}.layout-ipad.hand-minimized{padding-bottom:130px}
@media(max-width:850px){.layout-ipad .arena{grid-template-columns:1fr}.layout-ipad .shared-location{order:1;min-height:0}.layout-ipad .battlefield-area.valenor{order:0}.layout-ipad .battlefield-area.ithrak{order:2}.layout-ipad .camp-board{grid-template-columns:1fr}.layout-ipad .battlefield-area .battlefield-cards{min-height:100px}.layout-ipad .control-score{grid-template-columns:1fr 1fr}.layout-ipad .shared-location h2{margin:8px}.layout-ipad .shared-location .location-mark{display:none}.layout-ipad .top .sub{max-width:440px}}
@media(max-width:600px){.top{display:flex}.menu-trigger span{display:none}.profile-form,.lobby-grid{grid-template-columns:1fr}.saved-deck{flex-wrap:wrap}.layout-ipad .brand{font-size:22px}.online-banner{align-items:flex-start}.nav-drawer{padding:18px}.layout-ipad .control-score{grid-template-columns:1fr}.account-modal,.multiplayer-modal{padding:18px}.room-summary input{font-size:18px}.profile-form{gap:12px}}
/* Faction scenery is personal; dark surfaces keep the cards and values readable. */
.shell.battlefield-valenor,.shell.battlefield-ithrak{position:relative;isolation:isolate;min-height:100vh}.shell.battlefield-valenor:before,.shell.battlefield-ithrak:before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(#08100fde,#08100f85 30%,#08100fd9),url('/assets/themes/valenor.jpg') center/cover no-repeat;pointer-events:none}.shell.battlefield-ithrak:before{background-image:linear-gradient(#100d16de,#100d1685 30%,#100d16d9),url('/assets/themes/ithrak.jpg')}.battlefield-ithrak .shared-location{background:linear-gradient(135deg,#2d2334ed,#15141fee);border-color:#bda1cd}.battlefield-valenor .shared-location{background:linear-gradient(135deg,#1e342bea,#142321ef)}.battlefield-ithrak .battlefield-area,.battlefield-valenor .battlefield-area{background:#0b1519bf;backdrop-filter:blur(3px)}.side{background:#101c20f2}.camp-player{display:flex;gap:10px;align-items:center;min-width:0}.camp-player small{display:block;color:var(--muted);margin-top:4px;font-size:12px}.camp-player .player-avatar{width:38px;height:38px}.camp-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.resource-tile{display:flex;align-items:center;gap:9px;padding:12px 9px;margin:0;border:1px solid #384a49;min-height:78px;min-width:0;text-align:left;color:var(--muted)}.resource-tile b{display:block;color:var(--text);font-size:18px;margin-top:4px;white-space:nowrap}.resource-tile span{font-size:12px}.resource-icon{width:25px;height:25px;flex:none;color:var(--gold)}.resource-tile small{font-size:11px;display:block;color:var(--teal);margin-top:3px}.discard-tile{background:#162829}.discard-tile:hover{border-color:var(--gold);background:#233633}.resource-tile:first-child .resource-icon{color:#eeaa9d}.resource-tile:nth-child(3) .resource-icon{color:#bda4e9}.discard-modal{width:min(950px,95vw);max-height:90dvh;overflow:auto}.discard-tabs{display:flex;gap:10px;margin:12px 0 20px}.discard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:16px}.discard-card{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#0c171b;color:var(--text);text-align:left}.discard-card img{width:100%;height:auto;aspect-ratio:5/7;object-fit:contain}.discard-card>span{display:flex;flex-wrap:wrap;gap:4px}.discard-card strong{font-size:14px}.discard-placeholder{min-height:170px;display:flex;flex-direction:column;justify-content:center;background:#262331;color:var(--gold);padding:15px}.new-game-modal{width:min(730px,94vw);max-height:90dvh;overflow:auto}.new-game-modal>p{color:var(--muted);line-height:1.6}.setup-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.setup-fields label{display:grid;gap:8px;font-size:14px}.setup-fields select{width:100%;min-width:0;padding:12px;min-height:46px;font-size:16px;color:var(--text);background:#0c161a;border:1px solid var(--line);border-radius:6px}.difficulty-options{border:0;padding:0;margin:22px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.difficulty-options legend,.theme-options legend{padding:0;margin-bottom:12px;font-weight:700}.difficulty-option{position:relative;border:1px solid var(--line);border-radius:8px;background:#101d20;padding:16px 12px;display:grid;gap:10px;cursor:pointer}.difficulty-option input,.theme-option input{accent-color:var(--gold);width:19px;height:19px;margin:0}.difficulty-option span{color:var(--muted);font-size:12px;line-height:1.5}.difficulty-option.chosen,.theme-option.chosen,.portrait-option.chosen{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.new-game-modal .actions{margin-top:22px}.new-game-modal .primary{min-height:46px}.account-modal{padding:0!important;overflow:auto}.profile-cover{padding:24px;background:linear-gradient(#0b151950,#0b1519ed),url('/assets/themes/valenor.jpg') center 35%/cover}.profile-cover.theme-ithrak{background-image:linear-gradient(#110e1750,#110e17ed),url('/assets/themes/ithrak.jpg')}.profile-cover .modal-head{margin-bottom:28px}.profile-identity{display:flex;align-items:center;gap:20px}.profile-identity .player-avatar{width:96px;height:96px;border:2px solid currentColor;font-size:28px;box-shadow:0 6px 25px #0008}.player-avatar{overflow:hidden}.player-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 27%}.profile-identity h2{margin:0 0 6px;font:600 26px Cinzel,serif;overflow-wrap:anywhere}.profile-identity p{font-size:14px;line-height:1.5;color:var(--muted);margin-bottom:0;overflow-wrap:anywhere}.profile-identity>div>span{color:var(--gold);font-size:14px}.profile-counts{display:flex;gap:25px;margin-top:22px;color:var(--muted);font-size:13px}.profile-counts b{color:var(--text);font-size:20px;margin-right:5px}.profile-content{padding:24px}.profile-bio{grid-column:1/-1}.profile-bio textarea{font:inherit;font-size:16px;resize:vertical;min-height:80px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#080f12;color:var(--text)}.portrait-options{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:16px}.portrait-option{padding:0;border:2px solid var(--line);border-radius:50%;width:60px;height:60px;overflow:hidden;background:#101b21}.portrait-option img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.photo-upload{display:inline-flex;flex-direction:column;gap:9px;font-size:14px;color:var(--text)}.photo-upload input{max-width:100%;font-size:14px}.photo-upload input::file-selector-button{padding:10px 14px;border:1px solid var(--line);border-radius:6px;background:#172c2d;color:var(--text);margin-right:10px}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:0;padding:0;margin:26px 0 0}.theme-option{display:grid;gap:10px;min-height:140px;padding:16px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:linear-gradient(#0c141955,#0c1419d9),url('/assets/themes/valenor.jpg') center/cover}.theme-option.theme-ithrak{background-image:linear-gradient(#110e1755,#110e17d9),url('/assets/themes/ithrak.jpg')}.theme-option strong{font:600 20px Cinzel}.theme-option span{font-size:13px;color:#d2d7d3}.account-connection{margin-top:24px;padding-top:15px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.6}.profile-content .section-heading{margin:26px 0 16px}.profile-content>.primary{min-height:46px}.image-unavailable{min-height:80px;background:#1d2a2e;color:var(--gold);font-size:12px}.layout-ipad .resource-tile{min-height:86px}.layout-ipad .resource-icon{width:29px;height:29px}.layout-ipad .camp-stat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.layout-ipad .resource-tile{flex-direction:column;align-items:flex-start}.discard-grid .empty-state{grid-column:1/-1}
@media(max-width:900px){.layout-ipad .camp-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.layout-ipad .resource-tile{flex-direction:row;align-items:center}}
@media(max-width:600px){.setup-fields{grid-template-columns:1fr}.difficulty-options{grid-template-columns:1fr}.difficulty-option{grid-template-columns:20px 65px 1fr;align-items:center}.theme-options{grid-template-columns:1fr 1fr}.theme-option{min-height:130px;padding:12px}.profile-content,.profile-cover{padding:18px}.profile-identity{gap:12px}.profile-identity .player-avatar{width:72px;height:72px}.profile-identity h2{font-size:21px}.resource-tile{padding:9px 7px;gap:6px}.resource-icon{width:21px;height:21px}.resource-tile b{font-size:16px}.profile-counts{gap:16px}.discard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* A physical card-hand silhouette: overlapping, arced, and lifted on focus. */
.dock-cards.card-hand{align-items:flex-start;justify-content:center;justify-content:safe center;gap:0;min-height:250px;max-height:330px;padding:42px max(64px,calc((100vw - 1120px)/2)) 14px;overflow-x:auto;overflow-y:auto;scroll-padding-inline:72px;scrollbar-width:thin}
.hand-card{position:relative;flex:0 0 145px;width:145px;margin-left:-38px;z-index:var(--hand-layer);transform-origin:50% 118%;transform:translateY(var(--hand-drop)) rotate(var(--hand-angle));transition:transform .18s ease,filter .18s ease;will-change:transform}
.hand-card:first-child{margin-left:0}.hand-card>.card{width:100%;min-width:0;flex:none}.hand-card:hover,.hand-card:focus-within,.hand-card:has(.selected-card){z-index:60;transform:translateY(-32px) rotate(0deg) scale(1.055)}
.card-hand:has(.hand-card:hover) .hand-card:not(:hover),.card-hand:has(.hand-card:focus-within) .hand-card:not(:focus-within){filter:brightness(.74)}
.card-hand .card-interactions{max-height:calc(100% - 8px)}
@media(max-width:750px){.dock-cards.card-hand{justify-content:flex-start;min-height:235px;padding:38px 58px 12px}.hand-card{flex-basis:125px;width:125px;margin-left:-42px}.hand-card:hover,.hand-card:focus-within,.hand-card:has(.selected-card){transform:translateY(-26px) rotate(0deg) scale(1.04)}}
.layout-ipad .dock-cards.card-hand{justify-content:flex-start;padding-inline:72px}.layout-ipad .hand-card{margin-left:-34px}.layout-ipad .hand-card:first-child{margin-left:0}
@media(prefers-reduced-motion:reduce){.hand-card{transition:none}}
body:has(.overlay),body:has(.nav-shade:not([hidden])){overflow:hidden}

/* Legal cards, opening mulligans, and the combat matchup window. */
.card.interactive-card{outline:3px solid #f0c76e;outline-offset:3px;box-shadow:0 0 0 1px #20190a,0 0 22px #e6ba7055}.card.interactive-card:hover,.card.interactive-card.selected-card{outline-color:#fff0a6;box-shadow:0 0 0 1px #2a200b,0 0 30px #e6ba7090}.mulligan-modal{width:min(1180px,96vw);max-height:92dvh;overflow:auto}.mulligan-modal>p{color:var(--muted);line-height:1.6}.mulligan-grid{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));gap:12px;margin:20px 0}.mulligan-card{display:flex;flex-direction:column;gap:7px;min-width:0;padding:8px;background:#0d171b;color:var(--text);border:1px solid var(--line);border-radius:8px;text-align:left}.mulligan-card img{display:block;width:100%;height:auto;aspect-ratio:5/7;object-fit:contain}.mulligan-card strong{font:600 12px Cinzel,serif;line-height:1.35}.mulligan-card span{font-size:11px;color:var(--muted)}.mulligan-card.selected{border-color:var(--gold);outline:3px solid var(--gold);outline-offset:2px;background:#2b2518;transform:translateY(-4px)}.mulligan-card.selected:after{content:'RETURN';align-self:flex-start;color:#171d1d;background:var(--gold);font-weight:800;font-size:10px;padding:4px 7px;border-radius:99px}.mulligan-summary{position:sticky;bottom:-1px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px;background:#10191df2;border:1px solid var(--line);border-radius:8px;backdrop-filter:blur(8px)}.mulligan-summary>div{display:flex;gap:9px}.combat-resolve-modal{width:min(920px,95vw);max-height:92dvh;overflow:auto}.combat-matchup{display:grid;grid-template-columns:minmax(150px,1fr) 90px minmax(150px,1fr);align-items:center;gap:20px;padding:18px;margin:16px 0;background:radial-gradient(circle,#2d3b39,#101a1e 70%);border:1px solid var(--line);border-radius:12px}.combatant-card{display:grid;justify-items:center;gap:9px;text-align:center}.combatant-card img{width:min(210px,100%);height:auto;aspect-ratio:5/7;object-fit:contain;border-radius:7px;box-shadow:0 8px 28px #0009}.combatant-card>strong{font:600 15px Cinzel,serif}.combatant-card>span{font-weight:700;color:var(--gold)}.camp-target{width:min(210px,100%);aspect-ratio:5/7;display:grid;place-items:center;border:2px solid var(--red);border-radius:8px;background:radial-gradient(circle,#52352e,#1c1819);font:600 24px Cinzel;color:#f0c2b6}.combat-versus{display:grid;justify-items:center;gap:7px;font:700 28px Cinzel;color:var(--gold)}.combat-versus span{font:500 11px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.combat-prompt{color:var(--muted);line-height:1.6}.combat-reactions{display:flex;gap:14px;overflow-x:auto;padding:7px 7px 15px}.combat-reactions>.card{flex:0 0 175px}.combat-window-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--line);padding-top:15px}.assignment-attacker{display:flex;justify-content:center;margin:14px 0}.assignment-attacker .combatant-card{width:170px}.assignment-attacker .combatant-card img{width:125px}.blocker-option{display:flex;align-items:center;gap:12px;text-align:left}.blocker-option img{width:62px;height:87px;object-fit:cover;border-radius:4px}.blocker-option span{display:grid;gap:5px}.blocker-option small{color:var(--muted)}.no-blockers{width:100%;margin-top:16px;min-height:52px;font-weight:700}
@media(max-width:900px){.mulligan-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}}
@media(max-width:600px){.mulligan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mulligan-summary{align-items:flex-start;flex-direction:column}.mulligan-summary>div{width:100%}.mulligan-summary button{flex:1}.combat-matchup{grid-template-columns:1fr 45px 1fr;gap:8px;padding:10px}.combat-versus{font-size:20px}.combatant-card>strong{font-size:12px}.combatant-card>span{font-size:12px}.combat-resolve-modal{padding:14px}.combat-resolve-modal .modal-head{align-items:flex-start}.combat-reactions>.card{flex-basis:160px}}

/* Tactical table refresh: stronger hierarchy, phase guidance, and visible attachments. */
.shell{max-width:1640px;padding:18px 22px 390px}.top{position:relative;align-items:center;padding:13px 16px;border:1px solid #455653;border-radius:12px;background:linear-gradient(110deg,#0b1419f5,#142326f2);box-shadow:0 15px 45px #0005}.brand-lockup{min-width:245px}.brand{font-size:clamp(23px,2.2vw,34px);margin:3px 0}.table-status{display:flex;justify-content:center;flex:1;min-width:0}.table-status>span{display:grid;gap:3px;min-width:105px;padding:2px 18px;border-left:1px solid var(--line)}.table-status>span:last-child{min-width:200px;border-right:1px solid var(--line)}.table-status small{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.table-status b{font:600 14px Cinzel,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board{gap:16px;margin-top:16px}.turnbar{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(600px,1.5fr);padding:15px 18px;border-color:#586864;background:linear-gradient(120deg,#111d22fa,#0c161bfa);box-shadow:0 12px 34px #0004}.phase-current{display:flex;align-items:center;gap:14px}.phase-number{display:grid;place-items:center;width:48px;height:48px;flex:none;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font:600 22px Cinzel,serif;background:#271f13}.phase-current h2{font-size:21px;margin:2px 0}.phase-current p{font-size:13px;line-height:1.45;max-width:520px}.phase-pills{display:grid;grid-template-columns:repeat(6,minmax(84px,1fr));gap:7px}.pill{display:flex;align-items:center;gap:8px;min-width:0;min-height:54px;border-radius:7px;padding:8px;background:#0a1317;border-color:#334348;text-transform:none}.pill>b{display:grid;place-items:center;width:23px;height:23px;flex:none;border:1px solid #596763;border-radius:50%;font-size:11px}.pill>span{display:grid;gap:2px;font-size:11px;font-weight:700;color:#d9e0dd}.pill small{font-size:9px;font-weight:500;line-height:1.2;color:#879793}.pill.complete{border-color:#45685b;background:#10231d}.pill.complete>b{color:#9ad5b5;border-color:#5c8c73}.pill.current{background:linear-gradient(145deg,#e9bd79,#c99855);box-shadow:0 6px 18px #0006}.pill.current>span,.pill.current small{color:#152022}.pill.current>b{border-color:#152022}.arena{gap:12px}.battlefield-area,.shared-location,.side{box-shadow:0 12px 36px #0005}.battlefield-area{border-radius:12px;border-color:#405155;padding:14px}.battlefield-area>h2{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:10px;border-bottom:1px solid #334347}.battlefield-area>h2 span{font:500 11px 'DM Sans',sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.shared-location{border-width:1px;border-radius:12px}.side{border-radius:12px;border-color:#405155}.side.active{border-color:var(--gold);box-shadow:inset 0 3px var(--gold),0 12px 36px #0006}.zone{border-style:solid;border-color:#314247;background:#091419d9}.zone h3{display:flex;justify-content:space-between;font-size:12px;color:#c0cbc7}.slot{background:linear-gradient(150deg,#0b161b,#0e1d22);border-color:#35484b}.card{border-radius:8px;box-shadow:0 6px 16px #0007;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover{transform:translateY(-3px)}.card-meta{margin-top:2px}.attached-equipment{display:grid;gap:4px;margin:6px 0;padding:6px;border:1px solid #7b6844;border-radius:5px;background:#17170fdb}.attached-equipment>span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:800}.attached-equipment button{display:flex;align-items:center;gap:6px;width:100%;min-width:0;margin:0;padding:4px;border:1px solid #8c7548;background:#241e11;color:#f3dcad;text-align:left}.attached-equipment img{width:24px;height:34px;object-fit:cover;border-radius:2px}.attached-equipment b{min-width:0;font:700 10px 'DM Sans',sans-serif;line-height:1.2;white-space:normal}.hand-dock{border-top:1px solid #61706b;background:linear-gradient(180deg,#0c181efd,#071116fd);box-shadow:0 -18px 55px #0009}.dock-head{border-bottom:1px solid #314146}.dock-status>strong{font:600 16px Cinzel,serif}.dock-phase{color:var(--gold);font-weight:700}.dock-actions .primary{min-width:180px;box-shadow:0 6px 18px #0005}.resource-tile{background:linear-gradient(145deg,#0c181c,#111f22)}
@media(max-width:1100px){.turnbar{grid-template-columns:1fr}.phase-pills{grid-template-columns:repeat(3,1fr)}.table-status>span{min-width:85px;padding:2px 10px}.table-status>span:last-child{min-width:150px}}
@media(max-width:760px){.shell{padding:10px 10px 380px}.top{align-items:center}.table-status{display:none}.phase-pills{grid-template-columns:repeat(2,1fr)}.pill{min-height:48px}.phase-current p{font-size:12px}.dock-actions .primary{min-width:0}.attached-equipment b{font-size:9px}}
@media(max-width:480px){.phase-current{align-items:flex-start}.phase-number{width:40px;height:40px;font-size:18px}.phase-pills{display:flex;overflow-x:auto;flex-wrap:nowrap}.pill{flex:0 0 130px}.top{padding:11px}.brand-lockup{min-width:0}.brand{font-size:20px}}
/* Rules-referee readouts: compact on cards, explicit in detail and combat views. */
.card-status-badges{display:flex;flex-wrap:wrap;gap:4px;margin:6px 2px}.card-status-badges span,.state-badge{display:inline-flex;align-items:center;border:1px solid #59686b;border-radius:99px;padding:3px 6px;background:#142126;color:#d6dfdc;font-size:10px;font-weight:800;line-height:1.15}.card-status-badges .restriction,.state-badge.restriction{border-color:#a8625f;background:#3a2022;color:#ffb6ae}.card-status-badges .used,.state-badge.used{border-color:#8a744e;background:#2c2619;color:#f1cf8d}.card-status-badges .state,.state-badge.state{border-color:#5c7890;background:#192a37;color:#b9d9f1}.state-badge.ready{border-color:#4f8969;background:#163226;color:#a5e5bd}
.inspection-state{display:grid;gap:14px;margin:18px 0}.inspection-state section{border:1px solid var(--line);border-radius:8px;padding:13px;background:#0b171c}.inspection-state h3{margin:0 0 10px;font:600 14px Cinzel;color:var(--gold)}.state-badges{display:flex;flex-wrap:wrap;gap:6px}.state-details{padding-left:20px;margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.value-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.value-breakdown{display:grid;gap:6px;border:1px solid #33474c;border-radius:6px;padding:10px}.value-breakdown>strong{color:var(--gold)}.value-breakdown span{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.value-breakdown b{color:var(--text)}.legality-list{display:grid;gap:7px}.legality-list>div{display:grid;gap:3px;border-left:3px solid #4e8a68;padding:8px 10px;background:#11251c}.legality-list>div.blocked{border-color:#a75b58;background:#2b191a}.legality-list span,.legality-list small{color:var(--muted);font-size:12px}.arcana-readout{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0}.arcana-readout>*{padding:6px 8px;border:1px solid var(--line);border-radius:5px}.arcana-readout .legal{color:var(--buff);border-color:#4f8969}.arcana-readout .blocked{color:var(--nerf);border-color:#a75b58}.attachment-list{display:grid;gap:7px;padding:0;margin:0;list-style:none}.attachment-list li{display:grid;gap:3px;padding:8px;border:1px solid #584b32;background:#201b12}.attachment-list span{color:var(--muted);font-size:12px}
.combat-outcome{display:grid;gap:4px;margin:0 0 16px;padding:14px;border:1px solid var(--gold);border-radius:8px;background:#2c2619}.combat-outcome>span{color:var(--gold);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.combat-outcome>strong{font-size:17px}.combat-outcome small{color:var(--muted)}.combat-breakdown{width:100%;font-size:11px}.combat-breakdown summary{cursor:pointer;color:var(--gold)}.combat-breakdown>div{display:grid;gap:3px;margin-top:6px;text-align:left}.combat-breakdown small{display:flex;justify-content:space-between;gap:8px;color:var(--muted)}.combat-final-result{font-size:17px;font-weight:700;color:var(--gold)}
.resource-ledger{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0}.resource-ledger>div{display:grid;gap:3px;padding:8px;border:1px solid #34474c;border-radius:6px;background:#091419}.resource-ledger small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.resource-ledger b{font-size:17px;color:var(--text)}.warden-ability{margin:0 0 9px;padding:9px 10px;border-left:3px solid var(--gold);background:#151e1d}.warden-ability>span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:800}.warden-ability p{margin:4px 0;font-size:12px;line-height:1.45}.warden-ability small{color:var(--muted);font-size:11px}
@media(max-width:650px){.value-grid{grid-template-columns:1fr}.resource-ledger{grid-template-columns:repeat(2,1fr)}.combat-outcome>strong{font-size:15px}.inspection-state section{padding:10px}}
.brood-resource{display:grid;gap:.65rem;padding:1rem;margin-top:.8rem;background:#142522;border:1px solid #77bb91;border-radius:.65rem}.brood-resource>strong{display:flex;justify-content:space-between;font-size:1.2rem;color:#bce4c9}.brood-resource strong b{font-size:1.8rem}.brood-resource .actions{display:flex;flex-wrap:wrap;gap:.5rem}.brood-resource button{min-height:44px}.brood-resource span,.brood-resource small{font-size:.875rem}.brood-report{margin:1rem 0;padding:1rem;background:#111c22;border:1px solid #405660;border-radius:.7rem}.brood-report summary{font-size:1rem;font-weight:700;cursor:pointer;min-height:44px}.brood-report .resource-ledger{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.brood-report p{font-size:.875rem;color:#b4c9d0}.mulligan-card .library-placeholder{min-height:180px;display:flex;flex-direction:column;gap:.6rem;padding:.8rem}.brood-resource button:disabled{opacity:.5;cursor:not-allowed}
/* Warden combat: clear objective, target and interception budget. */
.rules-version-notice{padding:10px 16px;background:#142b30;border:1px solid #527b7d;border-radius:10px;color:#c7e7df;margin:12px 0}
.interception-meter{display:flex;flex-wrap:wrap;gap:8px 18px;padding:12px;background:#101d22;border:1px solid #466365;border-radius:8px;margin:10px 0}.interception-meter small{flex-basis:100%;color:var(--muted)}
.revision-badge{display:block;font-size:10px;color:#e6ba70;background:#282318;padding:3px 6px}.warden-target{padding:18px;min-height:64px;border:2px solid var(--gold)}
.warden-combat .camp-board{grid-template-columns:1fr}.warden-combat .phase-pills{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:700px){.warden-combat .phase-pills{grid-template-columns:repeat(3,minmax(0,1fr))}}
.revision-queue{margin:14px 0;padding:16px;border:1px solid #a98c51;border-radius:10px;background:#182126}.revision-queue>summary{font-size:1rem;font-weight:700;cursor:pointer;color:#eed6a6}.revision-entry{padding:12px;margin:10px 0;background:#10191d;border:1px solid #435456;border-radius:8px}.revision-entry>summary{cursor:pointer;font-weight:600;line-height:1.6}.revision-entry small{color:#d6bb8a}.revision-entry p{font-size:1rem;line-height:1.5}.revision-entry .actions{flex-wrap:wrap}
/* Independent bottom turn controls and tucked card tops. */
.bottom-game-bar{position:fixed;z-index:25;inset:auto 0 0;display:grid;grid-template-columns:minmax(0,1fr) 248px;align-items:end;gap:14px;padding:10px max(14px,calc((100vw - 1640px)/2)) max(10px,env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(transparent,#060e14 75%)}.bottom-game-bar>*{pointer-events:auto}
.bottom-game-bar .hand-dock,.layout-ipad .bottom-game-bar .hand-dock{position:relative;inset:auto;transform:none;width:100%;max-width:none;padding:10px 12px 0;max-height:60dvh;border:1px solid #485e61;border-radius:14px;gap:6px;overflow:hidden;box-shadow:0 -8px 30px #0008}.bottom-game-bar .dock-head{min-height:44px;padding-bottom:7px;gap:8px}.bottom-game-bar .dock-status{gap:4px 12px}.bottom-game-bar .dock-status small,.bottom-game-bar .dock-status strong span{font-size:13px}.bottom-game-bar .hand-toggle{font-size:14px;min-height:44px;padding:8px 12px}.bottom-game-bar .dock-cards.card-hand{min-height:220px;max-height:36dvh;padding:38px 24px 16px}
.hand-peek-strip{height:62px;display:flex;overflow-x:auto;overflow-y:hidden;padding:6px 4px 0;scrollbar-width:thin;overscroll-behavior-x:contain}.hand-peek{position:relative;flex:0 0 126px;width:126px;height:200px;margin-left:-22px;padding:0;overflow:hidden;border:1px solid #9eac9f;border-radius:9px 9px 0 0;background:#23383c;box-shadow:-4px 0 10px #0007;text-align:left}.hand-peek:first-child{margin-left:0}.hand-peek:hover,.hand-peek:focus-visible{z-index:2;border-color:var(--gold);outline:2px solid var(--gold);outline-offset:-2px}.hand-peek img{width:100%;height:auto;display:block}.peek-name{position:absolute;inset:0 0 auto;padding:7px 8px;min-height:46px;background:#0b171de8;color:#f5e2bd;font-size:13px;line-height:1.2;white-space:normal}.peek-texture{display:block;height:100%;background:linear-gradient(140deg,#354e54,#122026)}
.phase-progress{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--gold);border-radius:14px;background:#112229;box-shadow:0 -6px 28px #0008;min-width:0}.phase-progress .dock-phase{border:0;padding:0;background:none;white-space:normal;font-size:14px}.phase-progress .progress-button{width:100%;min-height:52px;white-space:normal;font-size:16px;line-height:1.3}.phase-progress small{font-size:13px;color:var(--muted)}.phase-progress button:disabled{opacity:1;background:#26373c;color:#b7c3c6;border:1px solid #4c5e63;cursor:default}.shell.hand-minimized,.layout-ipad.hand-minimized{padding-bottom:175px}body:has(.hand-dock.minimized) .toast{bottom:170px}
@media(max-width:650px){.bottom-game-bar{grid-template-columns:minmax(0,1fr) 155px;gap:7px;padding:7px 7px max(7px,env(safe-area-inset-bottom))}.phase-progress{padding:10px;gap:6px}.phase-progress .progress-button{font-size:14px}.phase-progress .dock-phase,.phase-progress small{font-size:12px}.bottom-game-bar .dock-head{flex-wrap:wrap}.bottom-game-bar .dock-status small{display:none}.bottom-game-bar .dock-status>strong{font-size:14px}.bottom-game-bar .hand-toggle{font-size:13px;padding:5px 9px}.bottom-game-bar .hand-dock{padding:7px 7px 0}.hand-peek{flex-basis:110px;width:110px}.bottom-game-bar:has(.hand-dock:not(.minimized)){grid-template-columns:minmax(0,1fr)}.bottom-game-bar:has(.hand-dock:not(.minimized)) .phase-progress{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,1fr);align-items:center;gap:3px 10px}.bottom-game-bar:has(.hand-dock:not(.minimized)) .progress-button{grid-column:2;grid-row:1/3}.bottom-game-bar .dock-cards.card-hand{max-height:30dvh;min-height:180px}.shell.hand-minimized{padding-bottom:195px}}
.tabletop{--mat-line:#738b804a;position:relative;isolation:isolate;background:#182a28;border:1px solid #6c8274;border-radius:16px;padding:14px 22px;box-shadow:inset 0 0 70px #09151266,0 16px 40px #0005;margin-top:12px;color:#e2e9df}
.mat-half{display:grid;grid-template-columns:156px minmax(0,1fr) 104px;grid-template-areas:"player player piles" "command field piles" "camp camp piles";gap:12px 20px;min-width:0}
.mat-half.opponent-half{grid-template-columns:104px minmax(0,1fr) 156px;grid-template-areas:"piles player player" "piles camp camp" "piles field command"}
.mat-player{grid-area:player;display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:12px;color:#c6d2c7}.mat-player strong{font-size:16px}.mat-player small{font-size:13px;font-weight:400;margin-left:8px;color:#adbaae}.mat-half.opponent-half .mat-player{flex-direction:row-reverse}
.mat-camp{grid-area:camp;justify-self:center;width:min(660px,100%);border:1px solid var(--mat-line);border-radius:9px;padding:8px 12px;background:#0a15131f}.mat-camp .zone{padding:0!important;border:0!important;background:none!important;min-height:0}.mat-camp .zone h3{font:500 14px 'DM Sans',sans-serif;margin:0 0 7px;color:#bbc9bc;text-align:center}.mat-camp .fixed-slots .cards{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;overflow:visible}.mat-camp .zone-structures .slot{width:auto;min-width:0;min-height:86px;flex-basis:auto;border:1px dashed #91a48b70;border-radius:6px;background:#0c1c1933;display:flex;align-items:center;justify-content:center}.mat-camp .slot .empty{font-size:13px;color:#9aaa9b}.mat-camp .slot .card{width:100%;min-width:0;margin:0}
.mat-field{grid-area:field;min-width:0;min-height:140px;padding:5px 0}.mat-field h2{font:500 14px 'DM Sans',sans-serif;color:#bac8ba;margin:0 0 10px}.mat-field h2 span{font-size:13px;color:#97a998;margin-left:10px}.mat-field .battlefield-cards{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;min-height:115px}.mat-empty{align-self:center;width:100%;text-align:center;color:#899e8b;font-size:14px;padding:22px 0}
.mat-piles{grid-area:piles;display:flex;flex-direction:column;justify-content:center;gap:20px}.mat-piles .pile{width:100%;min-height:134px;border:1px solid #82917b;border-radius:7px;background:#14221d;color:#d9e2d3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px;box-shadow:3px 3px 0 #253a2c,5px 5px 0 #64765b55}.mat-piles .pile strong{font-size:14px}.mat-piles .pile b{font-size:24px}.mat-piles .pile small{font-size:13px}.mat-piles .pile .resource-icon{width:24px;height:24px}.mat-piles .discard-pile{background:#223128;cursor:pointer;border-style:dashed}.mat-piles .discard-pile:hover{border-color:var(--gold)}
.mat-command{grid-area:command;align-self:end;display:flex;flex-direction:column;gap:8px;min-width:0}.your-half .mat-command{align-self:start}.mat-warden{width:100%;border:1px solid #b8a274;border-radius:8px;background:#222c24;display:flex;flex-direction:column;gap:7px;align-items:center;padding:12px 8px;color:#eee5cb;min-height:148px}.mat-warden strong{font-size:16px;line-height:1.3}.mat-warden small{font-size:12px}.mat-warden>span{display:flex;align-items:center;gap:6px;font-size:14px}.mat-warden b{font-size:28px}.mat-warden .resource-icon{height:21px;width:21px}.mat-resources{font-size:14px}.mat-resource-line{display:flex;flex-wrap:wrap;gap:7px 14px}.mat-resource-line>span{display:flex;align-items:center;gap:4px}.mat-resource-line .resource-icon{width:17px;height:17px}.mat-resources .interception-meter{padding:7px 0;border:0;background:none;display:flex;flex-wrap:wrap;gap:4px;font-size:13px;margin:0}.mat-resources .interception-meter strong,.mat-resources .interception-meter b{font-size:13px}.mat-ability summary{cursor:pointer;font-size:13px;min-height:44px;display:flex;align-items:center;color:#d1be92}.mat-ability[open]{position:relative;z-index:8;background:#162923;border:1px solid #637363;border-radius:6px;padding:10px;width:280px;max-width:75vw}.opponent-half .mat-ability[open]{margin-left:min(0px,calc(156px - 280px))}.mat-ability p,.mat-ability small,.mat-ability span{font-size:14px;line-height:1.5}.mat-ability button{min-height:44px}
.mat-center{position:relative;display:flex;align-items:center;justify-content:center;margin:8px 0;min-height:88px;gap:18px}.mat-center:before,.mat-center:after{content:"";height:1px;background:#93a18680;flex:1}.mat-location{width:min(360px,65%);padding:10px 18px;background:#303d2b;border:1px solid #a6aa80;border-radius:7px;text-align:center;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 10px #0004}.mat-location small{font-size:12px;letter-spacing:.1em;color:#c3c8a8}.mat-location strong{font:600 18px Cinzel,serif}.mat-location>span{font-size:14px;line-height:1.4;color:#d2d8c7}.mat-reports{margin:12px 0;color:var(--muted);font-size:14px}.mat-reports>summary{min-height:44px;cursor:pointer;padding:12px}.mat-reports .brood-report{margin:8px 0}
.shell:has(.tabletop){max-width:1540px}.shell:has(.tabletop) .rules-version-notice{display:none}.shell:has(.tabletop) .turnbar{padding:10px 14px;gap:14px}.shell:has(.tabletop) .phase-number,.shell:has(.tabletop) .phase-current .eyebrow,.shell:has(.tabletop) .phase-pills small{display:none}.shell:has(.tabletop) .phase-current h2{font-size:18px;margin:0}.shell:has(.tabletop) .phase-current p{font-size:13px;margin:4px 0 0}.shell:has(.tabletop) .phase-pills .pill{padding:6px 9px;font-size:13px}.tabletop .card{width:154px;min-width:0;padding:10px;background:#243730;border-color:#778971;min-height:148px}.tabletop .card-meta strong{font-size:14px;line-height:1.3}.tabletop .card .line{font-size:12px}.tabletop .card .combat-stats{font-size:17px;margin-top:auto}.tabletop .card .test-tag{display:none}.tabletop .card.exhausted{opacity:.78;border-style:dashed}.tabletop .card.exhausted .card-meta:after{content:'EXHAUSTED';font-size:11px;color:#e2af98;letter-spacing:.06em}.tabletop .card-status-badges{gap:3px}.tabletop .card-status-badges span{font-size:11px}.tabletop .card.interactive-card{border-color:#dcc384}
@media(max-width:1100px){.tabletop{padding:12px}.mat-half{grid-template-columns:140px minmax(0,1fr) 86px;gap:10px 12px}.mat-half.opponent-half{grid-template-columns:86px minmax(0,1fr) 140px}.mat-piles .pile{min-height:118px}.mat-camp{width:min(540px,100%)}.tabletop .card{width:140px}.shell:has(.tabletop) .phase-pills{display:none}}
@media(max-width:650px){.tabletop{padding:10px 8px;border-radius:10px}.mat-half{grid-template-columns:minmax(0,1fr) 70px;grid-template-areas:"player player" "command piles" "field piles" "camp camp";gap:10px}.mat-half.opponent-half{grid-template-columns:70px minmax(0,1fr);grid-template-areas:"player player" "camp camp" "piles field" "piles command"}.mat-command{flex-direction:row;align-items:start;gap:9px}.mat-warden{width:112px;min-height:125px;flex-shrink:0}.mat-warden strong{font-size:14px}.mat-resources{flex:1}.mat-resource-line{font-size:13px;gap:6px}.mat-ability[open],.opponent-half .mat-ability[open]{width:auto;max-width:none;margin:0}.mat-piles{gap:14px;justify-content:center}.mat-piles .pile{min-height:100px;padding:6px}.mat-piles .pile b{font-size:20px}.mat-piles .pile small{font-size:12px}.mat-player{font-size:12px}.mat-player strong{font-size:14px}.mat-player small{display:none}.mat-field{min-height:130px}.mat-field h2 span{display:block;margin:3px 0 0}.mat-field .battlefield-cards{gap:8px}.tabletop .card{width:calc(50% - 4px);min-width:100px;min-height:130px;padding:7px}.mat-camp{padding:7px}.mat-camp .fixed-slots .cards{gap:7px}.mat-camp .zone-structures .slot{min-height:80px}.mat-camp .slot .card{min-width:0}.mat-camp .card-meta strong{font-size:12px}.mat-center{gap:7px;margin:12px 0}.mat-location{width:80%;padding:9px}.mat-location strong{font-size:16px}}
.mat-half{grid-template-areas:"player player piles" "command field piles" "camp camp piles" "resources resources piles"}.mat-half.opponent-half{grid-template-areas:"piles player player" "piles resources resources" "piles camp camp" "piles field command"}.mat-resources{grid-area:resources;display:flex;gap:12px 20px;flex-wrap:wrap;align-items:center}.mat-resources .mat-resource-line{align-items:center;flex:1}.mat-resources .interception-meter{display:flex;gap:8px}.mat-ability[open],.opponent-half .mat-ability[open]{width:100%;margin:0;max-width:none}.mat-command{align-self:center}.your-half .mat-command{align-self:center}
@media(max-width:650px){.mat-half{grid-template-areas:"player player" "command piles" "field piles" "camp camp" "resources resources"}.mat-half.opponent-half{grid-template-areas:"player player" "resources resources" "camp camp" "piles field" "piles command"}.mat-resources{gap:6px 12px}.mat-resources .mat-resource-line{flex-basis:100%}.mat-command{justify-content:center}.mat-warden{width:140px}}
[data-card-type]{--type-color:#8aafbf;--type-bg:#20343d}[data-card-type="character"]{--type-color:#82bbd4;--type-bg:#1d3440}[data-card-type="structure"]{--type-color:#c5a181;--type-bg:#3b3028}[data-card-type="trick"]{--type-color:#ee9a63;--type-bg:#452d22}[data-card-type="arcana"]{--type-color:#ba98e4;--type-bg:#332842}[data-card-type="warden"]{--type-color:#e4c270;--type-bg:#3e3522}[data-card-type="equipment"]{--type-color:#b6c1cb;--type-bg:#30383e}[data-card-type="relic"]{--type-color:#73c5bb;--type-bg:#203e3a}
.card[data-card-type],.tabletop .card[data-card-type],.library-item[data-card-type],.mulligan-card[data-card-type],.combatant-card[data-card-type],.mat-warden[data-card-type]{background:var(--type-bg);border-color:var(--type-color);border-top:4px solid var(--type-color)}.builder-row[data-card-type]{border-left:5px solid var(--type-color);background:var(--type-bg)}.hand-peek[data-card-type]{border-top:5px solid var(--type-color);background:var(--type-bg)}.card-type-label{display:block;padding:4px 6px;color:var(--type-color,#cfdae0);font-size:11px;font-weight:700;letter-spacing:.065em;text-transform:uppercase;line-height:1.3;background:#08131a80;text-align:left;border-radius:0 0 4px 4px}
img.sample-card-art{display:block;width:100%;height:80px;object-fit:cover;border-radius:4px 4px 0 0;margin:0;aspect-ratio:5/3}.tabletop .sample-card-art{height:68px}.card .sample-card-art+.card-type-label{margin-bottom:7px}.library-placeholder .sample-card-art{height:110px;flex:none}.library-placeholder{gap:7px}.library-item .sample-card-art{object-fit:cover;aspect-ratio:5/3}.builder-thumbnail .thumbnail-placeholder{padding:0;display:block}.builder-thumbnail .sample-card-art{width:70px;height:65px;object-fit:cover}.builder-thumbnail .card-type-label{font-size:9px;letter-spacing:0;padding:3px}.hand-peek .sample-card-art{height:100px;opacity:.75}.hand-peek .peek-name{top:0;background:#08131ac9}.hand-peek .card-type-label{display:none}.mat-warden .sample-card-art{height:64px;object-position:center 35%}.mat-warden .card-type-label{width:100%;text-align:center}.sample-inspect-art{align-self:start}.sample-inspect-art .sample-card-art{height:auto;aspect-ratio:5/3;max-height:300px}.sample-inspect-art small{display:block;margin-top:8px;color:var(--muted);font-size:13px}.combatant-card .sample-card-art{height:100px;width:100%;max-width:230px;object-fit:cover;aspect-ratio:5/3}.mulligan-card .sample-card-art{height:90px;aspect-ratio:5/3;object-fit:cover}.card.interactive-card[data-card-type]{box-shadow:0 0 0 2px #ead19b,0 0 12px #dfbd7140}.card.selected-card[data-card-type]{outline:3px solid #fff0c4;outline-offset:2px}.card-type-key{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.card-type-key span{border-left:4px solid var(--type-color);background:var(--type-bg);padding:5px 9px;color:#edf1ed;border-radius:4px;font-size:13px}
/* One screen play table; large collections scroll within their own zones. */
body:has(.tabletop){margin:0;overflow:hidden}.shell:has(.tabletop),.shell.layout-ipad:has(.tabletop),.shell.hand-minimized:has(.tabletop){height:100dvh;width:100%;max-width:none;min-width:0;padding:8px 12px;display:flex;flex-direction:column;gap:6px;overflow:hidden;box-sizing:border-box}.shell:has(.tabletop) .top{flex:0 0 auto;min-height:38px;padding:0;margin:0}.shell:has(.tabletop) .brand{font-size:20px}.shell:has(.tabletop) .brand-lockup>.eyebrow{display:none}.shell:has(.tabletop) .board{flex:1;min-height:0;margin:0;display:flex;flex-direction:column;gap:4px}.shell:has(.tabletop) .turnbar{flex:0 0 auto;margin:0;padding:5px 10px;min-height:35px}.shell:has(.tabletop) .phase-current p{display:none}.shell:has(.tabletop) .phase-pills{display:flex}.shell:has(.tabletop) .tabletop{flex:1;min-height:0;margin:0;padding:6px 12px;display:grid;grid-template-rows:minmax(0,1fr) 58px minmax(0,1fr);gap:4px;overflow:hidden}.tabletop .mat-half{min-height:0;grid-template-columns:116px minmax(0,1fr) 70px;grid-template-rows:18px minmax(0,1fr) 62px 36px;gap:4px 12px}.tabletop .mat-half.opponent-half{grid-template-columns:70px minmax(0,1fr) 116px;grid-template-rows:18px 36px 62px minmax(0,1fr)}.tabletop .mat-center{margin:0;min-height:0}.tabletop .mat-location{padding:4px 12px;width:min(460px,75%);gap:2px;max-height:58px;overflow:auto}.tabletop .mat-location small{display:none}.tabletop .mat-location strong{font-size:15px}.tabletop .mat-location>span{font-size:12px}.tabletop .mat-player{font-size:12px}.tabletop .mat-player strong{font-size:14px}.tabletop .mat-field{min-height:0;padding:0;display:flex;flex-direction:column;overflow:hidden}.tabletop .mat-field h2{margin:0 0 3px;font-size:12px}.tabletop .mat-field h2 span{font-size:12px}.tabletop .mat-field .battlefield-cards{min-height:0;flex:1;flex-wrap:nowrap;overflow:auto;gap:8px;padding:3px 3px 7px;align-items:start;overscroll-behavior:contain}.tabletop .mat-empty{padding:8px}.tabletop .mat-field .card{width:128px;min-width:128px;flex:0 0 128px;min-height:0;padding:5px}.tabletop .sample-card-art{height:34px}.tabletop .card-type-label{font-size:9px;padding:2px 4px;margin-bottom:3px}.tabletop .card-meta strong{font-size:12px;line-height:1.2}.tabletop .card .line,.tabletop .card .revision-badge,.tabletop .card-status-badges,.tabletop .card .modifiers{display:none}.tabletop .card .combat-stats{font-size:14px;margin:3px 0 0}.tabletop .card .cost{font-size:14px;min-width:24px;min-height:24px}.tabletop .mat-camp{width:min(570px,100%);height:62px;padding:3px 6px;min-height:0}.tabletop .mat-camp .zone h3{font-size:11px;margin:0 0 2px}.tabletop .mat-camp .fixed-slots .cards{gap:8px}.tabletop .mat-camp .zone-structures .slot{min-height:40px;height:40px}.tabletop .mat-camp .slot .card{min-height:0;height:40px;padding:4px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px;overflow:auto}.tabletop .mat-camp .card .sample-card-art{height:30px;grid-column:1;grid-row:1}.tabletop .mat-camp .card .card-meta{grid-column:2;grid-row:1;padding-right:15px}.tabletop .mat-camp .card .cost{font-size:12px;min-width:18px;min-height:18px;right:1px;top:1px}.tabletop .mat-camp .card .card-type-label,.tabletop .mat-camp .card footer{display:none}.tabletop .mat-camp .card-meta strong{font-size:11px}.tabletop .mat-piles{gap:12px}.tabletop .mat-piles .pile{min-height:80px;padding:5px;gap:2px}.tabletop .mat-piles .pile b{font-size:19px}.tabletop .mat-piles .pile .resource-icon{width:19px;height:19px}.tabletop .mat-command{min-height:0;align-self:center}.tabletop .mat-warden{padding:5px;min-height:0;gap:3px}.tabletop .mat-warden .sample-card-art{height:38px}.tabletop .mat-warden .card-type-label{display:none}.tabletop .mat-warden strong{font-size:12px}.tabletop .mat-warden b{font-size:23px}.tabletop .mat-warden small{font-size:10px}.tabletop .mat-resources{flex-wrap:nowrap;gap:10px;min-height:0}.tabletop .mat-resource-line{flex:1;flex-wrap:nowrap;gap:10px;font-size:12px}.tabletop .supply-ready{color:#ffe1a0;font-size:14px;background:#46391c;border:1px solid #d1ad59;padding:3px 8px;border-radius:6px;white-space:nowrap}.tabletop .supply-ready .resource-icon{width:27px;height:27px;stroke-width:2.4}.tabletop .supply-ready b{font-size:23px}.tabletop .supply-spent{color:#c5c7c6}.tabletop .supply-spent .resource-icon{width:21px;height:21px}.tabletop .mat-resources .interception-meter{font-size:11px;gap:4px;padding:0}.tabletop .mat-resources .interception-meter strong,.tabletop .mat-resources .interception-meter b{font-size:11px}.tabletop .mat-ability summary{min-height:30px;font-size:12px}.tabletop .mat-ability[open],.tabletop .opponent-half .mat-ability[open]{position:fixed;z-index:40;inset:15% auto auto 50%;transform:translateX(-50%);width:min(400px,90vw);max-height:65dvh;overflow:auto;padding:14px;box-shadow:0 8px 80px #000}.shell:has(.tabletop) .bottom-game-bar{position:relative;inset:auto;flex:0 0 auto;grid-template-columns:minmax(0,1fr) 220px;padding:0;gap:12px;background:none}.shell:has(.tabletop) .hand-dock{max-height:31dvh}.shell:has(.tabletop) .hand-peek-strip{height:32px}.shell:has(.tabletop) .dock-head{min-height:30px;padding:0}.shell:has(.tabletop) .dock-status small{display:none}.shell:has(.tabletop) .phase-progress{padding:6px 10px;gap:3px}.shell:has(.tabletop) .phase-progress small{display:none}.shell:has(.tabletop) .progress-button{min-height:40px;padding:6px}.shell:has(.tabletop) .dock-cards.card-hand{min-height:150px;max-height:22dvh;padding:14px 20px 8px}.shell:has(.tabletop) .mat-reports{position:fixed;left:16px;bottom:95px;z-index:20;margin:0;background:#142722;border-radius:5px}.shell:has(.tabletop) .mat-reports>summary{min-height:0;padding:4px 8px;font-size:11px}.shell:has(.tabletop) .mat-reports[open]{max-height:60dvh;width:min(550px,90vw);overflow:auto;padding:12px}.shell:has(.tabletop) .menus:not([hidden]){position:fixed;inset:8% 4% 15%;z-index:35;overflow:auto;background:#122321;padding:14px}
.overlay.menu-page,.overlay.setup-page{position:fixed;inset:0;background:#101d21;backdrop-filter:none;overflow:auto;padding:28px;display:flex;align-items:center;justify-content:center}.menu-page .start-menu,.setup-page .new-game-modal{border:0;box-shadow:none;background:none;max-height:none;margin:auto;width:min(880px,100%);padding:20px}.menu-page .start-menu h2{font-size:clamp(28px,4vw,48px)}.menu-page .start-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.menu-page .start-actions button{min-height:56px;font-size:16px}.menu-page .start-actions>.primary:first-child{grid-column:1/-1;background:#d5b678;color:#17231f}.setup-page .setup-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.setup-page input,.setup-page select{min-height:44px;width:100%;box-sizing:border-box}.shell:has(.menu-page)>:not(.menu-page):not(.nav-shade),.shell:has(.setup-page)>:not(.setup-page):not(.nav-shade){display:none!important}
.modal.combat-resolve-modal,.modal.assignment-modal,.modal.target-modal,.modal.response-confirm{width:min(600px,94vw);padding:16px;max-height:85dvh}.combat-resolve-modal h2,.assignment-modal h2{font-size:19px}.combat-resolve-modal .combat-matchup{gap:10px;margin:8px 0}.combat-resolve-modal .combatant-card{padding:8px;gap:4px}.combat-resolve-modal .combatant-card .sample-card-art{height:55px}.combat-resolve-modal .combatant-card strong{font-size:14px}.combat-resolve-modal .combatant-card .card-type-label,.combat-resolve-modal .combat-versus span,.combat-resolve-modal .combat-outcome small{display:none}.combat-resolve-modal .combat-outcome{padding:9px;margin:8px 0}.combat-resolve-modal .combat-prompt{font-size:14px;margin:6px 0}.combat-resolve-modal .combat-reactions{max-height:160px;overflow:auto}.combat-resolve-modal .combat-reactions .card{width:125px}.combat-resolve-modal .combat-reactions .sample-card-art{height:42px}.assignment-modal .assignment-attacker{display:none}.modal-head{margin-bottom:10px}
@media(max-width:800px){.shell:has(.tabletop),.shell.layout-ipad:has(.tabletop),.shell.hand-minimized:has(.tabletop){padding:5px;gap:4px}.shell:has(.tabletop) .brand{font-size:16px}.shell:has(.tabletop) .table-status{display:none}.shell:has(.tabletop) .phase-pills{display:none}.shell:has(.tabletop) .tabletop{padding:5px;grid-template-rows:minmax(0,1fr) 48px minmax(0,1fr)}.tabletop .mat-half{grid-template-columns:82px minmax(0,1fr) 52px;grid-template-areas:"player player piles" "command field piles" "camp camp piles" "resources resources resources";grid-template-rows:16px minmax(0,1fr) 55px 36px;gap:3px 6px}.tabletop .mat-half.opponent-half{grid-template-columns:52px minmax(0,1fr) 82px;grid-template-areas:"piles player player" "resources resources resources" "piles camp camp" "piles field command";grid-template-rows:16px 36px 55px minmax(0,1fr)}.tabletop .mat-camp{height:55px}.tabletop .mat-camp .zone-structures .slot{height:35px;min-height:35px}.tabletop .mat-camp .slot .card{height:35px;grid-template-columns:25px minmax(0,1fr)}.tabletop .mat-camp .card .sample-card-art{height:23px}.tabletop .mat-camp .card-meta strong{font-size:10px}.tabletop .mat-warden{width:100%;padding:3px}.tabletop .mat-warden strong{font-size:11px}.tabletop .mat-warden .sample-card-art{height:25px}.tabletop .mat-warden small{display:none}.tabletop .mat-field .card{width:105px;min-width:105px;flex-basis:105px}.tabletop .mat-field h2{font-size:11px}.tabletop .mat-field h2 span{display:none}.tabletop .mat-piles .pile{min-height:64px}.tabletop .mat-piles .pile strong{font-size:11px}.tabletop .mat-piles .pile small{display:none}.tabletop .mat-resource-line{gap:5px;font-size:10px}.tabletop .supply-ready{padding:2px 4px;font-size:11px}.tabletop .supply-ready b{font-size:20px}.tabletop .supply-ready .resource-icon{width:23px;height:23px}.tabletop .supply-spent{font-size:10px}.tabletop .mat-resources{gap:5px}.tabletop .mat-resources .interception-meter strong{display:none}.tabletop .mat-ability summary{font-size:10px;max-width:68px}.tabletop .mat-location{max-height:48px;padding:3px 7px}.tabletop .mat-location>span{font-size:11px}.shell:has(.tabletop) .bottom-game-bar{grid-template-columns:minmax(0,1fr) 145px;gap:5px}.shell:has(.tabletop) .dock-head{flex-wrap:nowrap}.shell:has(.tabletop) .dock-status>strong{font-size:12px}.shell:has(.tabletop) .hand-toggle{min-height:32px;font-size:11px;padding:4px}.shell:has(.tabletop) .phase-progress{padding:4px 6px;display:flex}.shell:has(.tabletop) .phase-progress .dock-phase{font-size:11px}.shell:has(.tabletop) .progress-button{font-size:12px}.setup-page .setup-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.overlay.menu-page,.overlay.setup-page{padding:10px}.menu-page .start-actions{grid-template-columns:1fr}.menu-page .start-actions button{min-height:44px}.shell:has(.tabletop) .mat-reports{bottom:86px;left:7px}}
.tabletop .card{transform:none!important}.tabletop .card.selected-card .card-interactions{position:fixed;inset:auto auto 105px 50%;transform:translateX(-50%);width:min(360px,90vw);max-height:40dvh;overflow:auto;z-index:60;padding:12px;box-shadow:0 10px 50px #000}.tabletop .card.selected-card .card-interactions button{min-height:44px;font-size:14px}.tabletop .mat-camp .slot .card{overflow:visible}.setup-page .difficulty-options{margin:16px 0}.setup-page .difficulty-option span{font-size:13px}
.bottom-game-bar .hand-dock,.layout-ipad .bottom-game-bar .hand-dock,.shell:has(.tabletop) .hand-dock{background:transparent!important;border:0!important;border-radius:0;box-shadow:none!important;backdrop-filter:none}.bottom-game-bar,.bottom-game-bar .dock-head,.bottom-game-bar .dock-cards,.bottom-game-bar .hand-peek-strip{background:transparent!important;border:0;box-shadow:none}.hand-quick-preview{position:fixed;z-index:85;pointer-events:none;box-sizing:border-box;background:#102125f5;border:1px solid var(--type-color,#d8bc81);border-top-width:3px;border-radius:8px;padding:12px;box-shadow:0 8px 25px #0008;max-height:195px;overflow:hidden;color:#eef1e8}.hand-quick-preview[hidden]{display:none}.hand-quick-preview>strong{font-size:15px;display:block;margin-bottom:7px}.hand-quick-preview .quick-stats{display:flex;flex-wrap:wrap;gap:5px}.hand-quick-preview .quick-stat{font-size:13px;padding:3px 5px}.hand-quick-preview p{font-size:13px;line-height:1.4;margin:7px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hand-quick-preview small{font-size:11px;color:#c0ccc7}.menu-tip{border-left:3px solid #b59c65;padding:10px 18px;margin:0 0 24px;background:#192c2b;max-width:680px;text-align:left}.menu-tip>small{font-size:12px;color:#d8bc81;letter-spacing:.12em}.menu-tip-text{font-size:17px;line-height:1.5;min-height:3em;margin:7px 0}.menu-tip button{min-height:32px;padding:4px 0;font-size:13px;border:0}
/* Group declaration and one continuous combat response window. */
.attack-selection{display:flex;align-items:center;gap:10px;flex:none;padding:8px 10px;border:1px solid #a68d57;border-radius:8px;background:#14252a;max-height:130px;overflow:auto}.attack-selection>div:first-child{min-width:160px}.attack-selection strong,.attack-selection small{display:block}.attack-selection small{font-size:12px;color:#b5c5c0;margin-top:3px}.attack-selection-list{display:flex;gap:8px;flex:1;min-width:0;overflow:auto}.attack-selection-list label{display:grid;gap:3px;flex:0 0 170px;font-size:12px}.attack-selection select{min-height:36px;max-width:100%;background:#0c191e;color:#eef2e9;border:1px solid #718780;border-radius:4px}.attack-selection>button{min-height:44px;flex-shrink:0}.card.attack-selected{outline:3px solid #8ce7ba!important;outline-offset:2px;box-shadow:0 0 20px #54c59a66!important}.card.attack-selected:after{content:'ATTACKING';display:block;background:#8ce7ba;color:#10261b;font-size:10px;font-weight:800;text-align:center}.combat-blockers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.combat-blockers button{display:grid;gap:4px;min-height:48px;text-align:left}.combat-blockers span{font-size:13px}.combat-queue{margin-top:10px;border-top:1px solid #456057;padding-top:8px}.combat-queue p{font-size:13px;margin:5px 0}.combat-resolve-modal>p{font-size:14px}.combat-resolve-modal .combat-reactions{max-height:240px}.combat-resolve-modal .card.selected-card .card-interactions{position:static!important;inset:auto!important;transform:none!important;width:100%!important;max-width:none;max-height:none!important;display:block!important;visibility:visible;opacity:1;pointer-events:auto;box-sizing:border-box}.combat-resolve-modal .combat-reactions>.card{overflow:visible}
.layout-mobile .attack-selection{flex-wrap:wrap;max-height:145px;font-size:13px}.layout-mobile .attack-selection>div:first-child{min-width:0;flex:1}.layout-mobile .attack-selection small{display:none}.layout-mobile .attack-selection-list{order:3;flex-basis:100%}.layout-mobile .attack-selection select{min-height:44px;font-size:16px}.layout-mobile .attack-selection-list:empty{display:none}
.setup-warden-text{display:block;font-size:14px;line-height:1.5;padding:10px;border:1px solid #53675b;border-radius:6px;background:#12231f}.setup-warden-text strong{display:block;margin-top:8px;color:#edc986;font-size:13px}
[data-card-type="equipment"]{--type-color:#59d2cd;--type-wash:#103e40}[data-card-type="relic"]{--type-color:#ee91cf;--type-wash:#44223e}.card[data-card-type="equipment"],.card[data-card-type="relic"],.library-item[data-card-type="equipment"],.library-item[data-card-type="relic"]{border-color:var(--type-color);border-top:4px solid var(--type-color);background:linear-gradient(160deg,var(--type-wash),#122026)}.card-type-key [data-card-type="equipment"],.card-type-key [data-card-type="relic"]{color:var(--type-color);border-color:var(--type-color)}
.login-form{display:grid;gap:12px;max-width:440px;margin:16px auto}.login-form label{display:grid;gap:6px}.login-form input{min-height:46px;font-size:16px;padding:10px;border:1px solid #57736c;border-radius:6px;color:#edf4ef;background:#0c191e}.login-form button{min-height:44px}.login-form p{font-size:14px}

/* Keep portrait faces visible in compact cards; inspection shows the complete artwork. */
img.individual-card-art{object-position:50% 25%}.sample-inspect-art .individual-card-art{height:auto;aspect-ratio:auto;max-height:420px;object-fit:contain}.mat-warden .individual-card-art{object-position:50% 22%}
.result-overlay{background:#050912eb;z-index:1000;padding:24px}.modal.result-screen{width:min(780px,94vw);max-height:90dvh;text-align:center;padding:clamp(24px,5vw,60px);border:2px solid #d4b568;background:linear-gradient(150deg,#172b2c,#101721);box-shadow:0 24px 100px #0009}.result-screen.defeat{border-color:#ba6969;background:linear-gradient(150deg,#321d29,#101721)}.result-screen h2{font-size:clamp(44px,8vw,86px);line-height:1.1;margin:20px 0;color:#eed399}.result-screen.defeat h2{color:#f1a5a5}.result-health,.record-totals{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:24px 0}.result-health>div{flex:1;min-width:180px;padding:16px;background:#ffffff08;border-radius:12px}.result-health strong,.record-totals strong{display:block;font-size:32px}.result-health span,.result-health small,.record-totals small{display:block;font-size:14px;font-weight:400}.result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.result-actions button{min-height:48px}.profile-record{padding:18px;border:1px solid #63767a;border-radius:12px;margin-bottom:22px}.profile-record .record-totals strong{flex:1;text-align:center}.ai-activity{flex:none;max-height:106px;overflow:auto;padding:8px 12px;background:#152b37;border-left:3px solid #e6bc70;border-radius:6px}.ai-activity summary{font-weight:700;color:#eed399;cursor:pointer}.ai-activity p{margin:4px 0;font-size:14px;line-height:1.35}.ai-activity small{color:#adbfc7;margin-right:8px}.layout-mobile .ai-activity{max-height:84px}.layout-mobile .result-overlay{padding:10px}.layout-mobile .result-screen{padding:24px 16px}.result-record-status{min-height:24px}
.tabletop .battlefield-cards{justify-content:flex-start}.tabletop .battlefield-cards>:first-child{margin-inline-start:auto}.tabletop .battlefield-cards>:last-child{margin-inline-end:auto}.board-change{position:relative;outline:2px solid #83ddb1;outline-offset:2px;border-radius:5px;animation:board-pulse .8s ease-out 3}.board-change.board-decrease{outline-color:#ef9a80;--pulse-color:#ee936988}.board-change[data-change]::after{content:attr(data-change);position:absolute;right:-3px;top:-14px;padding:1px 5px;border-radius:6px;color:#0a2119;background:#9ce8ba;font-size:12px;font-weight:800;z-index:4;pointer-events:none}.board-decrease[data-change]::after{background:#ffc0a9;color:#31110a}@keyframes board-pulse{50%{box-shadow:0 0 16px 5px var(--pulse-color,#80eab477)}}.reaction-reveals{max-height:230px;overflow:auto;margin:10px 0;padding:8px;border:1px solid #788e9c;border-radius:8px;background:#101e29}.reaction-reveals h3{font-size:14px;margin:0 0 7px}.reaction-reveal{display:flex;gap:12px;padding:8px;border-bottom:1px solid #3c4b54}.reaction-reveal.latest{background:#21394a;border-left:3px solid #e8c57a}.reaction-art{width:85px;flex:none}.reaction-art .sample-card-art{width:85px;height:88px;object-fit:cover}.reaction-art .card-type-label{display:none}.reaction-reveal strong{display:block;font-size:16px;color:#eed399}.reaction-reveal p{font-size:14px;line-height:1.4;margin:5px 0}.reaction-reveal small{font-size:12px;color:#bbcdd7}@media(prefers-reduced-motion:reduce){.board-change{animation:none}}.layout-mobile .reaction-reveals{max-height:180px}.layout-mobile .reaction-art,.layout-mobile .reaction-art .sample-card-art{width:60px}.layout-mobile .reaction-reveal{gap:8px}

.board-change.board-neutral{outline-color:#efcf87;--pulse-color:#efcf8755}
.menu-layout{margin-top:1.2rem;border-top:1px solid #394343;padding-top:.7rem}.menu-layout h3{margin:.3rem 0 .6rem}.menu-layout .layout-switch{max-width:420px;margin:auto}.menu-layout .nav-hint{font-size:.875rem;max-width:38rem;margin:.6rem auto}.account-directory{display:grid;gap:.6rem;margin:1rem 0}.account-directory .saved-deck{width:100%;text-align:left;gap:.8rem}.account-directory .saved-deck>span{min-width:0;overflow-wrap:anywhere}.account-directory .avatar{flex-shrink:0}
.tabletop .mat-command{display:flex;flex-direction:column;gap:4px;min-height:0;justify-content:center}
.tabletop .warden-play{flex-shrink:0;width:100%;min-height:40px;padding:5px 7px;font-size:14px;line-height:1.15;border:1px solid #687870;border-radius:7px;background:#1a2b29;color:#c7d0cc}
.warden-play small{display:block;font-size:12px;margin-top:3px}
.tabletop .warden-play.ability-ready,.brood-resource .ability-ready{background:#174d38;color:#effff6;border:2px solid #6be1a5;box-shadow:0 0 0 2px #6be1a529,0 0 15px #56d89548}
.tabletop .warden-play.ability-ready:hover,.tabletop .warden-play.ability-ready:focus-visible{background:#22694b;outline:2px solid #c2ffdf;outline-offset:2px}
.tabletop .warden-play:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}
