@import url('./zeta.tokens.css');
@import url('./fonts/fonts.css');
/* ZETA interface. Game world, team colors and ammunition retain their own semantics. */
:root{--bg:var(--zeta-color-coal-0);--panel:var(--zeta-color-coal-2);--cream:var(--zeta-color-white);--text:var(--zeta-color-white);--muted:var(--zeta-color-muted);--line:var(--zeta-color-coal-5);--gold:var(--zeta-color-white);--gold-dark:var(--zeta-color-coal-4);--teal:var(--zeta-color-emerald-ui);--red:var(--zeta-color-orange);--font:var(--zeta-type-family-primary)}
body{background:var(--bg);font-family:var(--zeta-type-family-primary);line-height:1.5}button,input,select{font-family:inherit}h1,h2,h3{font-family:var(--zeta-type-family-primary);font-weight:760;letter-spacing:.02em}header,.topbar{background:var(--zeta-color-coal-1);border-bottom:1px solid var(--line);gap:24px}.brand{gap:20px;font-weight:650;letter-spacing:.04em}.brand b{color:var(--text);font-weight:650}.brand small{font:11px/1.4 var(--zeta-type-family-mono);letter-spacing:.04em;color:var(--muted);margin-top:5px}.zeta-lockup{width:92px;height:48px;object-fit:contain;flex:none}.eyebrow,.section-caption,.hero-tags,.picture-caption,.match-type,.match-clock,.card-type,.library-type,.supply-title,.card .type,.arena-order,.stat small{font-family:var(--zeta-type-family-mono);font-size:11px;letter-spacing:.05em}.eyebrow{color:var(--muted)}a:hover{color:var(--text)}button,select,input{border-radius:0;min-height:44px}button{transition:background 120ms,border-color 120ms,box-shadow 120ms}button:hover:not(:disabled){background:var(--zeta-color-coal-4);color:var(--text)}button:active:not(:disabled){box-shadow:var(--zeta-depth-shadow-pressed)}:is(button,a,input,select,canvas):focus-visible{outline:2px solid var(--zeta-color-white);outline-offset:4px;box-shadow:4px 4px 0 var(--zeta-color-blood-ui)}
.primary,.primary-button{background:var(--zeta-color-coal-3);border:1px solid var(--zeta-color-blood-ui);border-left-width:4px;color:var(--text);box-shadow:var(--zeta-depth-shadow-pressed);text-shadow:none;font-weight:650}.primary:hover:not(:disabled),.primary-button:hover:not(:disabled){background:var(--zeta-color-coal-4);color:var(--text);filter:none;border-color:var(--zeta-color-white)}.secondary{background:var(--zeta-color-coal-3);border-color:var(--line)}input,select{background:var(--zeta-color-coal-1);border-color:var(--zeta-color-quiet);color:var(--text)}.auth-tabs .active,.deck-filters>button.active{background:var(--zeta-color-coal-1);border-color:var(--zeta-color-blood-ui);box-shadow:inset 3px 0 var(--zeta-color-blood-ui);color:var(--text)}.nav-button.active:after{background:var(--zeta-color-blood-ui)}.pulse{animation:none;background:var(--zeta-color-white)}
/* Command lobby */
section.hero{background:var(--zeta-color-coal-2);border:0;box-shadow:var(--zeta-depth-shadow-rest)}h1{font-weight:760;text-transform:uppercase;font-size:clamp(32px,3.8vw,54px);letter-spacing:.01em}h1 em{color:var(--zeta-color-blood-ui)}.hero-copy>p:not(.eyebrow){color:var(--muted)}.hero-picture img{filter:grayscale(1) contrast(1.1)}.hero-picture:after{background:linear-gradient(90deg,#151210,transparent 40%),linear-gradient(0deg,#080706b0,transparent 70%)}.auth-panel,.launch-card,.faction-picker{background:var(--panel);border:0;box-shadow:var(--zeta-depth-shadow-rest)}.agreement-block{background:var(--zeta-color-coal-1);border-color:var(--line)}.agreement-label input[type=checkbox]{accent-color:var(--zeta-color-blood-ui);min-height:19px}.agreement-label a,.agreement-block a{color:var(--text);text-decoration:underline;text-underline-offset:3px}.card,.arena-card{background:var(--zeta-color-coal-2);border-color:var(--zeta-color-quiet);border-radius:0}.card.selected{opacity:.65;border-color:var(--zeta-color-blood-ui);box-shadow:inset 3px 0 var(--zeta-color-blood-ui)}.card .cost{background:var(--zeta-color-white);color:var(--zeta-color-coal-0);border-radius:0;font-family:var(--zeta-type-family-mono)}.card .type{font-size:11px;letter-spacing:0;overflow-wrap:anywhere}.arena-card.selected{border:2px solid var(--zeta-color-blood-ui)}.arena-card:not(:disabled):hover{border-color:var(--text)}.arena-order{color:var(--muted)}.arena-card>em,.history-flags{color:var(--text)}.stats{background:var(--panel);border:0}.match .won{color:var(--text);border-left:3px solid var(--zeta-color-emerald-ui);padding-left:8px}.match .lost{color:var(--zeta-color-orange)}.history-list{border-color:var(--line)}footer{font-size:11px}.form-note{font-size:12px}.card .name{font-size:12px}
/* Tactical interface: typography and physical controls, without changing the battlefield. */
.topbar .brand{font-size:14px}.topbar nav{gap:22px}.icon-button{min-width:44px;min-height:44px;border:1px solid var(--zeta-color-quiet);border-radius:0}.nav-button{font-size:12px}.operation-heading h1{font-weight:760;font-family:var(--zeta-type-family-primary);text-transform:uppercase}.match-clock>b,.supply-number>b,.score-board>div>b,.result-stats b{font-family:var(--zeta-type-family-mono)}.commander-card,.score-board,.intel-focus{background:var(--panel);border:0;border-radius:0}.commander-label h2,.briefing h3,.intel-focus h3{font-family:var(--zeta-type-family-primary);font-weight:650}.commander-image>img{filter:grayscale(1)}.commander-card>p,.briefing>p,.intel-focus p,.counter-guide p,.battle-journal li,.objective-line b,.objective-line small,.controls-note{font-size:12px;color:var(--muted)}.section-caption{font-size:11px;letter-spacing:0}.section-caption>span:last-child:not(.live-dot){font-size:11px}.commander-label small{font-size:11px;letter-spacing:0}.commander-label{margin-top:0;padding-top:12px}.arena-stage{border-color:var(--zeta-color-coal-5);border-radius:0;box-shadow:var(--zeta-depth-shadow-rest)}.arena-corners>i{border-color:var(--zeta-color-white)}.arena-start,.modal{background:var(--zeta-color-coal-2);border:1px solid var(--line);border-radius:0;box-shadow:var(--zeta-depth-shadow-rest)}.modal::backdrop{background:#020202dd}.pause-screen{background:#0e0c0bee}.hand-card,.hand-card.hero,.library-card,.library-card.hero{background:var(--zeta-color-coal-3);border-radius:0;border-color:var(--zeta-color-quiet)}.hand-card .card-name,.library-card .card-name{font:500 11px/1.25 var(--zeta-type-family-primary);background:var(--panel);color:var(--text);border-color:var(--line)}.hand-card.hero .card-name{color:var(--text)}.card-type,.library-card p{background:var(--zeta-color-coal-1);color:var(--muted);border-radius:0}.card-type{font-size:10px;letter-spacing:0;flex-wrap:wrap;gap:3px}.card-cost,.next-card>b{background:var(--zeta-color-white);color:var(--zeta-color-coal-0);font-family:var(--zeta-type-family-mono);clip-path:none}.hand-card.selected,.library-card.selected{box-shadow:0 0 0 2px var(--zeta-color-blood-ui),3px 5px 0 #020202}.library-card .selected-check{background:var(--zeta-color-white);color:var(--zeta-color-coal-0);border-radius:0}.hand-card.affordable{box-shadow:0 0 0 1px var(--zeta-color-muted),3px 5px 0 #020202}.hand-card.selected{border-color:var(--zeta-color-blood-ui)}.team-bar>div>small,.team-bar>div>b,.supply-title,.supply-title small,.action-line,.action-line button,.next-card>span{font-size:11px;letter-spacing:0}.team-bar{height:48px}.supply-number>span{color:var(--muted)}.volume-control input{accent-color:var(--zeta-color-blood-ui);min-height:28px}.volume-control{font-family:var(--zeta-type-family-mono)}.deck-modal-footer{background:var(--panel)}.toast{background:var(--zeta-color-coal-3);color:var(--text);border-color:var(--line);border-radius:0}.modal p,.modal-lead,.sources-modal>p,.source-links{font-size:13px}.deck-slot>span{font-size:11px}.deck-slot{height:92px}.deck-slot img{height:58px}.modal h2{font-family:var(--zeta-type-family-primary);font-weight:650}.arena-start>span,.arena-start>small{font-size:11px;letter-spacing:0}.arena-start>p{font-size:13px}.battle-journal ol{max-height:190px}
@media(max-width:1000px){.topbar .brand>span{font-size:12px}.topbar .zeta-lockup{width:64px}.topbar .brand small{max-width:180px;font-size:10px}.topbar nav{gap:12px}.topbar{gap:12px}.offline-mark{display:none}}
@media(max-width:760px){.topbar{height:78px;padding:0 20px}.topbar .brand{gap:10px}.topbar .brand>span{max-width:122px;white-space:normal;font-size:11px;line-height:1.3}.topbar .brand small{display:none}.topbar .zeta-lockup{width:54px;height:42px}.topbar nav{top:82px;left:20px;height:36px;gap:20px}.operation-heading{padding-top:55px}.header-tools{gap:4px}.icon-button{min-width:36px;width:36px;min-height:44px}.volume-control input{width:44px}.volume-control output{font-size:10px}.operation-heading .eyebrow{font-size:11px;letter-spacing:0}.match-clock>span{font-size:10px;letter-spacing:0}.operation-heading h1{font-size:19px}.hand-card .card-name{font-size:11px;min-height:42px;overflow-wrap:anywhere}.card-type{font-size:10px;min-height:30px}.next-card>span{font-size:10px}.team-bar>div>small{font-size:10px}.supply-title{font-size:11px}.supply-title small{font-size:10px}.action-line{font-size:11px;flex-wrap:wrap}.battle-column{padding-bottom:20px}.card-library{grid-template-columns:repeat(2,minmax(0,1fr))}.library-card p{font-size:12px}.library-card .card-name{font-size:12px}.library-card .library-type{font-size:10px}.card-shortcut{display:none}.modal .eyebrow{font-size:11px}.deck-summary,.deck-summary button,.deck-modal-footer>span{font-size:11px;letter-spacing:0}.deck-filters>button{font-size:12px}.deck-slot>span{white-space:normal;font-size:10px}}
@media(max-width:600px){header{height:80px;padding:0 20px;gap:12px}.brand{gap:12px;font-size:11px}.brand small{font-size:9px;letter-spacing:0}.zeta-lockup{width:64px;height:44px}main{padding-left:20px;padding-right:20px}.hero-copy{padding:28px 20px}.hero-copy h1{font-size:34px}.hero-tags{font-size:11px;letter-spacing:0}.hero-picture:after{background:linear-gradient(90deg,#151210,transparent)}.hero-picture{opacity:.35}.auth-panel{padding:22px 18px}.deck-slots,.library{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card img,.library .card img{height:110px}.card .name{font-size:12px}.card .type{font-size:11px}.arena-card>b{font-size:14px}.arena-card>small,.arena-card>em{font-size:11px}.arena-list{gap:12px}.section-heading{align-items:flex-start}.section-heading h2{font-size:21px}.section-heading button{max-width:120px}.topbar+main{padding-left:20px;padding-right:20px}footer{font-size:11px}.brand>span{white-space:normal}#identity{gap:4px}#identity #username{max-width:48px}#logout{font-size:11px}}
@media(max-width:390px){.topbar{padding:0 12px}.topbar .brand{gap:6px}.topbar .zeta-lockup{width:44px}.topbar .brand>span{max-width:104px;font-size:10px}.volume-control input{width:36px}.header-tools{gap:2px}.topbar .icon-button{min-width:32px;width:32px}.volume-control output{width:23px}.operation-heading{gap:6px}.match-clock{gap:6px}.match-clock>b{font-size:22px}.match-clock>span{display:none}.hand{gap:6px}.hand-wrap{gap:7px}.hand-card .card-name{font-size:10px}.team-strength{font-size:14px}.arena-start{width:84%}}
@media(prefers-reduced-motion:reduce){button{transition:none}.pulse{animation:none}}
/* Keep the magazine beside the battlefield, so supply stays visible while choosing cards. */
.battle-column{display:grid;grid-template-columns:minmax(0,1fr) 64px;column-gap:12px;align-items:start}
.battle-column>.enemy-bar{grid-column:1/-1;grid-row:1}
.battle-column>.arena-stage{grid-column:1;grid-row:2;width:min(100%,calc((100svh - 485px)*.833333));min-width:0;margin-top:7px}
.battle-column>.supply-panel{grid-column:2;grid-row:2;align-self:center;display:flex;flex-direction:column;gap:10px;width:64px;min-height:0;margin:0;max-width:64px}
.battle-column>.supply-panel .supply-title{font-size:10px;white-space:normal;text-align:center;display:block;letter-spacing:0}
.battle-column>.supply-panel .supply-icon{display:none}
.battle-column>.supply-panel .supply-title small{font-size:10px;line-height:1.4}
.battle-column>.supply-panel .supply-track.ammo-magazine{flex:0 0 130px}
.battle-column>.supply-panel .supply-number>b{font-size:24px}
.battle-column>.player-bar{grid-column:1/-1;grid-row:3}
.battle-column>.hand-wrap{grid-column:1/-1;grid-row:4}
.battle-column>.action-line{grid-column:1/-1;grid-row:5}
@media(max-width:760px){.battle-column{grid-template-columns:minmax(0,1fr) 54px;column-gap:9px}.battle-column>.arena-stage{width:100%;max-width:320px;border-width:4px}.battle-column>.supply-panel{width:54px;max-width:54px;gap:8px}.battle-column>.supply-panel .supply-title{font-size:9px}.battle-column>.supply-panel .supply-title small{font-size:9px}.battle-column>.supply-panel .supply-track.ammo-magazine{width:52px}.battle-column>.supply-panel .ammo-round{left:7px}.battle-column>.hand-wrap{margin-top:8px}.battle-column>.action-line{margin-top:8px;margin-bottom:8px}.battle-column>.player-bar,.battle-column>.enemy-bar{height:42px}}
