:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,sans-serif;background:#080d16;color:#e6eefb;--accent:#6be2ef;--gold:#efc579;--line:#293b50;--muted:#98abc0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 20%,#19324c77,transparent 65%),#080d16;min-height:100vh}button,input,select{font:inherit}button,select,input{background:#152538;border:1px solid #38516b;border-radius:7px;color:inherit;padding:10px 14px}button{cursor:pointer;transition:background .14s,transform .14s,border-color .14s}button:hover:not(:disabled){background:#243f58;border-color:var(--accent);transform:translateY(-1px)}button:disabled{opacity:.38;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.primary{background:#76dce9;color:#081b28;border-color:#a4f4ff;font-weight:750}.danger{color:#ffaca9}.quiet{color:var(--muted)}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 28px;border-bottom:1px solid var(--line);background:#0b1521d9}.brand{text-decoration:none;color:#ecf7ff;font-weight:800;letter-spacing:3px;display:flex;align-items:center;gap:10px}.brand>span{color:var(--accent);font-size:30px}.brand small{font-size:10px;color:var(--muted);letter-spacing:2px;margin-left:8px}.header-right{display:flex;align-items:center;gap:10px}#wallet{color:var(--gold);font-size:14px;font-variant-numeric:tabular-nums;margin-right:14px}main{max-width:1640px;margin:auto;padding:24px}.eyebrow{color:var(--accent);font-size:12px;letter-spacing:3px;text-transform:uppercase}.intro h1{font-size:clamp(30px,4vw,54px);margin:10px 0}.intro p{color:var(--muted);max-width:700px;line-height:1.7}.lobby-layout{display:grid;grid-template-columns:1fr 330px;gap:24px}.factions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.faction{position:relative;min-height:145px;text-align:left;overflow:hidden;background:#142334;padding:18px}.faction img{height:38px;width:38px;margin-bottom:12px;display:block}.faction strong{display:block;text-transform:capitalize}.faction small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:5px}.faction.selected{border-color:var(--gold);background:linear-gradient(130deg,#30404d,#162434);box-shadow:inset 0 0 0 1px #efc57955}.panel{padding:22px;background:#101d2b;border:1px solid var(--line);border-radius:12px}.panel h2{margin:0 0 18px;font-size:20px}.panel label{display:block;color:var(--muted);font-size:13px;margin:15px 0 7px}.panel select{width:100%}.panel .primary{width:100%;margin-top:22px;padding:16px}.stats-row{display:flex;gap:20px;margin:14px 0;color:var(--muted);font-size:13px}.deck-tools{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.deck-tools input{flex:1;min-width:180px}.deck-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;max-height:440px;overflow:auto;padding:3px}.deck-row{display:flex;align-items:center;gap:10px;background:#0c1724;border:1px solid #213448;border-radius:8px;padding:7px}.deck-row img{width:34px;height:46px;object-fit:cover;border-radius:3px}.deck-row .row-title{flex:1;font-size:12px;cursor:pointer}.row-title small{display:block;color:var(--muted);margin-top:4px}.deck-row button{padding:4px 8px}.deck-row .copies{font-size:13px;min-width:12px}.cost{color:#8eeafa;font-weight:750}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:16px}.arena{border:1px solid #36516e;border-radius:20px;background:linear-gradient(135deg,#152333dd,#101c2b),repeating-linear-gradient(45deg,transparent 0 40px,#6894ac11 40px 41px);box-shadow:inset 0 0 50px #0009,0 20px 70px #0008;padding:15px;position:relative;overflow:hidden}.commander{display:flex;align-items:center;gap:14px;padding:10px 15px;background:linear-gradient(90deg,#203449,#132336);border:1px solid #3a536b;border-radius:12px;min-height:65px}.commander img{height:38px;width:38px}.commander .name{font-weight:700;text-transform:capitalize}.commander .name small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:4px}.health{margin-left:auto;color:#ffa7a9;font-size:24px;font-weight:800;white-space:nowrap}.flux{color:#7ae4ff;font-size:17px;white-space:nowrap}.resource{font-size:12px;color:#e8c798;white-space:nowrap}.enemy-hand{display:flex;justify-content:center;gap:4px;height:39px;margin:6px 0}.card-back{width:27px;height:37px;border-radius:4px;border:1px solid #58718b;background:linear-gradient(45deg,#172b41,#34495e);color:#8298ac;font-size:21px;text-align:center}.enemy-hand .revealed{font-size:9px;width:95px;padding:4px;overflow:hidden;color:#e1c994}.board-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-height:176px;align-items:center;padding:13px 0}.slot{height:142px;border:1px dashed #3c566d55;border-radius:10px;background:#0001}.unit{position:relative;padding:0;overflow:hidden;border:2px solid #476079;border-radius:12px;background:#0a1520;aspect-ratio:0.78;max-height:192px;width:100%;box-shadow:0 6px 12px #0005}.unit img{width:100%;height:100%;object-fit:cover;display:block}.unit .unit-name{position:absolute;bottom:29px;left:0;right:0;padding:10px 4px 5px;background:linear-gradient(transparent,#07121def);font-size:10px;line-height:1.2;text-shadow:0 1px #000}.unit .unit-stats{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;background:#081523e8;padding:4px 8px;font-weight:800;font-size:17px}.attack-value{color:#ffd583}.hp-value{color:#ff9fa9}.unit.ready{border-color:#71dbb8;box-shadow:0 0 12px #3bce9728}.unit.selected{outline:3px solid #fff0ae}.unit.target,.commander.target{outline:3px solid #f6ca70;cursor:pointer;box-shadow:0 0 24px #f4be6844}.unit .tags{position:absolute;top:5px;left:4px;right:4px;display:flex;gap:3px;flex-wrap:wrap}.tags span{padding:2px 4px;background:#061521dd;border-radius:3px;font-size:9px;color:#b2f5ff}.midline{height:40px;display:flex;align-items:center;justify-content:center;gap:20px;color:#6995b0;letter-spacing:2px;font-size:10px;border-top:1px solid #3b546e55;border-bottom:1px solid #3b546e55;background:linear-gradient(90deg,transparent,#28628822,transparent)}.hand{display:flex;justify-content:center;gap:7px;overflow-x:auto;padding:15px 3px 8px;min-height:218px}.hand-card{position:relative;flex:0 0 clamp(105px,11vw,152px);padding:0;overflow:hidden;background:#112538;border:1px solid #46617a;border-radius:10px;height:206px;text-align:left;box-shadow:0 6px 10px #0006}.hand-card img{width:100%;height:110px;object-fit:cover;display:block}.hand-card .hand-name{font-weight:700;font-size:11px;padding:6px 8px 3px;display:block}.hand-card .hand-text{font-size:9px;line-height:1.35;color:#b6c7d8;display:block;padding:0 8px;max-height:46px;overflow:hidden}.hand-card .mana{position:absolute;top:5px;left:5px;border-radius:50%;background:#153649;border:1px solid #8adcfb;color:#b4f5ff;font-size:18px;width:29px;height:29px;text-align:center;font-weight:800}.hand-card .hand-stats{position:absolute;bottom:4px;right:7px;font-size:12px;font-weight:700;color:#f0d2a0}.hand-card.playable{border-color:#68dcb6}.hand-card.selected{outline:2px solid var(--gold);transform:translateY(-5px)}.side-panel{display:flex;flex-direction:column;gap:12px}.side-panel .panel{padding:15px}.side-panel h3{font-size:15px;margin:0 0 9px}.side-panel p{font-size:12px;line-height:1.5;color:#adc2d8;margin:6px 0}.turn-button{width:100%;padding:16px}.selection-art{width:100%;max-height:170px;object-fit:cover;border-radius:6px}.action-options{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow:auto;margin:10px 0}.action-options button{font-size:11px;text-align:left;padding:9px}.selection-buttons{display:flex;gap:7px;margin-top:10px}.selection-buttons button{flex:1;font-size:12px}.battle-log{max-height:160px;overflow:auto;font-size:11px;color:#97aec5;line-height:1.65}.battle-log p{margin:0;padding:3px 0;border-bottom:1px solid #24384c}.turn-banner{color:var(--gold);font-weight:800;letter-spacing:1px;font-size:12px}.faults{font-size:11px;color:#d4baff;line-height:1.5}.mulligan{max-width:1080px;margin:30px auto;text-align:center}.mulligan .hand{min-height:290px}.mulligan .hand-card{height:255px;flex-basis:175px}.mulligan .hand-card img{height:160px}.mulligan h1{font-size:35px}.result{max-width:720px;margin:50px auto;text-align:center}.result h1{font-size:52px}.reward{font-size:24px;color:var(--gold);margin:24px}.result button{margin:6px}.history{font-size:12px;color:var(--muted);line-height:1.7}dialog{max-width:800px;width:92vw;max-height:90vh;background:#101d2b;color:#edf5ff;border:1px solid #4a6681;border-radius:14px;padding:25px}dialog::backdrop{background:#020712cc;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.dialog-head h2{margin:0}#manual-content{line-height:1.65;font-size:14px}#manual-content dt{color:var(--accent);font-weight:750;margin-top:14px}#manual-content dd{margin:3px 0 8px;color:#b8c9db}#inspect-content{display:grid;grid-template-columns:1fr 1fr;gap:22px;line-height:1.65}#inspect-content img{width:100%;border-radius:8px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;padding:12px 20px;background:#253e54;color:white;border-radius:8px;box-shadow:0 8px 25px #0008;z-index:10;pointer-events:none}#toast:empty{display:none}.help{font-size:12px;color:var(--muted);line-height:1.6}.error{color:#ffa6a6}.board-row.flash{animation:flash .4s}@keyframes flash{50%{filter:brightness(1.5)}}@media(max-width:1100px){.game-layout{grid-template-columns:1fr 220px}.board-row{min-height:140px}.unit{max-height:155px}.slot{height:115px}.resource{max-width:120px;white-space:normal}.factions{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){header{padding:12px;flex-wrap:wrap}.brand small{display:none}main{padding:12px}.lobby-layout,.game-layout{grid-template-columns:1fr}.factions{grid-template-columns:repeat(2,1fr)}.side-panel{display:grid;grid-template-columns:1fr 1fr}.board-row{gap:4px;min-height:120px}.unit{min-height:100px}.slot{height:100px}.unit .unit-name{font-size:8px}.commander{padding:8px;gap:7px;flex-wrap:wrap}.commander .health{font-size:20px}.hand-card{flex-basis:115px}.header-right{flex-wrap:wrap}.lobby-layout>.panel{grid-row:1}#inspect-content{grid-template-columns:1fr}.selection-art{max-height:130px}}
@media(min-width:900px) and (max-height:900px){header{padding:10px 24px}main:has(.game-layout){padding:12px}.arena{padding:12px}.commander{min-height:50px;padding:6px 12px}.commander img{width:30px;height:30px}.board-row{min-height:0;padding:7px 0}.unit,.slot{height:clamp(85px,calc((100vh - 480px)/2),170px);max-height:none;aspect-ratio:auto}.enemy-hand{height:27px;margin:4px 0}.card-back{height:27px;font-size:17px}.midline{height:27px}.hand{min-height:0;padding-top:9px}.hand-card{height:170px;flex-basis:130px}.hand-card img{height:82px}.hand-card .hand-text{max-height:35px}.hand-card .hand-name{font-size:10px}.side-panel{max-height:calc(100vh - 94px);overflow:auto}.side-panel .selection-art{max-height:100px}}

/* Direct hand deployment */
.hand-card.playable{cursor:grab}.hand-card.playable:active{cursor:grabbing}.hand-card.dragging{opacity:.35}.drop-ready{outline:2px dashed #70e5e7;outline-offset:-3px}.drop-hover{outline:3px solid #f4cc72!important;box-shadow:inset 0 0 28px #70e5e744}.hand-card img{user-select:none;-webkit-user-drag:none}

/* Full-art cards: artwork has its own unobstructed frame. */
.game-layout,.arena,.side-panel,.board-row,.hand{min-width:0}
.unit{display:flex;flex-direction:column;aspect-ratio:auto;height:auto;min-height:0;max-height:none;border-radius:10px;align-self:stretch;overflow:hidden}
.unit img{position:static;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;background:#060d16;flex:none;order:0}
.unit .unit-name{position:static;order:1;background:#0d1d2d;padding:7px 5px;min-height:36px;display:flex;align-items:center;justify-content:center;font-size:clamp(10px,.8vw,13px);line-height:1.3;overflow-wrap:anywhere;text-shadow:none}
.unit .tags{position:static;order:2;padding:0 4px 4px;min-height:0;justify-content:center;background:#0d1d2d}
.unit .tags:empty{display:none}
.unit .unit-stats{position:static;order:3;margin-top:auto;width:100%;font-size:16px;padding:4px 8px;background:#081523}
.board-row{grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch;min-height:0;padding:10px 3px;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.slot{height:auto;min-height:150px;aspect-ratio:2/3;align-self:center}
.hand{justify-content:flex-start;min-height:0;padding:12px 4px;gap:10px;scrollbar-width:thin;overscroll-behavior-x:contain}
.hand-card{height:auto;min-height:0;flex:0 0 clamp(125px,12vw,165px);display:flex;flex-direction:column;padding-top:31px;scroll-snap-align:start}
.hand-card img{height:auto;width:100%;aspect-ratio:2/3;object-fit:contain;background:#060d16}
.hand-card .mana{top:2px;left:5px;width:26px;height:26px;font-size:17px}
.hand-card .hand-name{font-size:11px;line-height:1.3;padding:7px 8px 4px;min-height:36px}
.hand-card .hand-text{font-size:10px;max-height:42px;line-height:1.4;padding:0 8px}
.hand-card .hand-stats{position:static;display:block;text-align:right;margin-top:auto;padding:7px 8px 5px;font-size:12px}
.selection-art,.side-panel .selection-art{height:auto;max-height:340px;object-fit:contain;background:#060d16}
.mulligan .hand{justify-content:safe center;min-height:0}
.mulligan .hand-card{height:auto;flex-basis:clamp(125px,16vw,175px)}
.mulligan .hand-card img{height:auto}
.side-panel{max-height:none;overflow:visible}
@media(min-width:1400px){.game-layout{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:1100px){.game-layout{grid-template-columns:minmax(0,1fr)}.side-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.board-row{grid-template-columns:repeat(7,minmax(100px,1fr))}.unit{max-height:none;min-height:0}.slot{height:auto;min-height:150px}}
@media(max-width:600px){main{padding:8px}.arena{padding:8px;border-radius:12px}.board-row{grid-template-columns:repeat(7,112px);gap:7px}.unit .unit-name{font-size:11px}.hand-card{flex-basis:135px}.side-panel{grid-template-columns:minmax(0,1fr)}.commander{gap:8px;padding:8px}.commander .name{font-size:12px}.commander img{width:26px;height:26px}.resource{font-size:11px}.flux{font-size:14px}.health{font-size:20px}.midline{gap:9px;font-size:9px;letter-spacing:1px}.header-right{width:100%;justify-content:space-between;gap:5px}.header-right button{padding:8px;font-size:12px}#wallet{margin-right:0;font-size:12px}.brand{font-size:14px}.stats-row{flex-wrap:wrap;gap:8px}.deck-list{grid-template-columns:minmax(0,1fr)}.deck-row{min-width:0}.deck-row .row-title{min-width:0;overflow-wrap:anywhere}.deck-tools input{min-width:0;width:100%}}

/* Playtest pass: fit the battle and retain uncropped art. */
:root{--battle-art:clamp(72px,calc((100dvh - 500px)/3),205px)}
main:has(.game-layout){max-width:1760px;padding:12px}
.game-layout{grid-template-columns:minmax(0,1fr) 270px;gap:12px}
.arena{padding:10px}
.board-row{padding:6px 3px;gap:7px;grid-template-columns:repeat(7,minmax(0,1fr))}
.unit{max-width:165px;justify-self:center;width:100%}
.unit img{height:var(--battle-art);aspect-ratio:auto}
.unit .unit-name{font-size:10px;min-height:27px;padding:4px;line-height:1.2}
.unit .unit-stats{font-size:14px;padding:3px 7px}
.unit .tags{padding-bottom:2px}.tags span{font-size:8px;padding:1px 3px}
.slot{height:calc(var(--battle-art) + 51px);min-height:0;aspect-ratio:auto;width:100%}
.arena .hand{padding:7px 3px;gap:7px}
.arena .hand-card{flex:0 0 clamp(105px,9vw,150px);padding-top:26px}
.arena .hand-card img{height:var(--battle-art);aspect-ratio:auto}
.arena .hand-card .hand-name{font-size:10px;min-height:25px;padding:4px 6px}
.arena .hand-card .hand-text{font-size:9px;max-height:25px;padding:0 6px}
.arena .hand-card .hand-stats{padding:4px 6px;font-size:11px}
.arena .hand-card .mana{height:23px;width:23px;font-size:15px;top:1px}
.commander{min-height:48px;padding:6px 10px}.commander img{width:28px;height:28px}.enemy-hand{height:25px;margin:3px 0}.card-back{height:25px;font-size:16px}.midline{height:25px}
.side-panel{display:flex;max-height:calc(100dvh - 95px);overflow:auto;scrollbar-width:thin}.side-panel .panel{padding:12px}.side-panel .primary{margin-top:10px;padding:11px}.side-panel .selection-art{max-height:130px}.combat-preview{padding:10px;border:1px solid #77d5dd;border-radius:7px;background:#142e3e}.combat-preview small{font-size:10px;color:#a8bfd2}
#art-hover{position:fixed;right:20px;bottom:20px;width:clamp(180px,21vw,320px);max-height:75dvh;padding:8px;background:#06121ff5;border:1px solid #81d8df;border-radius:10px;z-index:20;box-shadow:0 12px 50px #000b;pointer-events:none}
#art-hover img{display:block;width:100%;max-height:65dvh;object-fit:contain}#art-hover span{display:block;text-align:center;font-size:12px;padding:6px}#art-hover[hidden]{display:none}
.mana-curve{display:flex;gap:7px;max-width:500px;padding:8px 0}.curve-column{flex:1;text-align:center;font-size:11px;color:#afd5e6}.curve-column b{display:block}.curve-track{height:52px;display:flex;align-items:end;background:#0c1927;border-radius:3px;margin:4px 0;overflow:hidden}.curve-track span{display:block;width:100%;background:linear-gradient(#85e9e8,#307f9d);min-height:1px}.strategy-note{font-size:13px;color:#c4dbe9;line-height:1.6;border-left:2px solid var(--gold);padding-left:12px}.match-history{font-size:12px;margin:15px 0;color:#b8cbdf}.match-history summary{cursor:pointer}
#issue-dialog label{display:block;margin:12px 0}#issue-note{width:100%;resize:vertical;background:#091725;color:#eef7ff;border:1px solid #5d7994;padding:12px;font:inherit;border-radius:6px}#issue-save{margin-top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.combat-float{position:fixed;z-index:40;pointer-events:none;transform:translate(-50%,-50%);font-weight:850;font-size:22px;color:#ffb1b5;text-shadow:0 2px 3px #000,0 0 8px #000;background:#08121dd9;padding:4px 8px;border-radius:6px;animation:float-up 1.35s ease-out forwards;max-width:240px;text-align:center}.combat-float.healing{color:#96f1b9}.combat-float.resource-change{color:#f5da96;font-size:13px}.combat-float.removed{font-size:13px;color:#e7c3ef}.just-attacked{animation:attack-nudge .35s ease-in-out}.just-hit{animation:impact .45s ease-out}.just-deployed{animation:arrival .4s ease-out}
@keyframes float-up{0%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -65px}}@keyframes attack-nudge{45%{transform:translateY(-14px) scale(1.04)}}@keyframes impact{35%{filter:brightness(1.7);transform:translateX(3px)}}@keyframes arrival{from{opacity:.2;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr)}.side-panel{max-height:none;overflow:visible;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.board-row{grid-template-columns:repeat(7,minmax(92px,1fr))}:root{--battle-art:clamp(72px,calc((100dvh - 530px)/3),145px)}}
@media(max-width:600px){.side-panel{grid-template-columns:minmax(0,1fr)}.board-row{grid-template-columns:repeat(7,102px)}.arena .hand-card{flex-basis:120px}.commander .name small{font-size:10px}.commander .resource{font-size:10px}.unit .unit-name{font-size:10px}#art-hover{display:none}main:has(.game-layout){padding:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.combat-float{opacity:1}}

@media(max-width:600px){body:has(.game-layout){padding-bottom:66px}.side-panel>.panel:first-child{position:fixed;bottom:0;left:0;right:0;z-index:15;display:flex;align-items:center;gap:12px;padding:8px 12px;background:#102539f5;border-radius:10px 10px 0 0;box-shadow:0 -4px 20px #0007}.side-panel>.panel:first-child .help{display:none}.side-panel>.panel:first-child .turn-button{width:auto;flex:1;margin:0;padding:10px}.side-panel>.panel:first-child .turn-banner{font-size:10px}}

@media(max-width:600px){:root{--battle-art:clamp(64px,calc((100dvh - 630px)/3),130px)}}

.match-entry{display:block;width:100%;text-align:left;font-size:12px;margin:6px 0}.review-log{max-height:360px;overflow:auto;font-size:12px;line-height:1.6}.review-log p{padding:7px;border-bottom:1px solid #304257}#match-review details{margin:12px 0}#match-review details p{font-size:12px;margin:5px 0}#retry-sync,#export-playtests{margin:4px 3px 4px 0;font-size:12px}

/* Commander command systems */
.commander{border-left:3px solid var(--power-color,#6be2ef);gap:10px;overflow:visible}.commander-power{margin-left:8px;display:flex;align-items:center;gap:9px;text-align:left;min-width:148px;padding:5px 10px;background:linear-gradient(140deg,#253d50,#091722);border:1px solid var(--power-color);border-radius:10px;box-shadow:inset 0 1px 0 #ffffff20;flex-shrink:0}.commander-power b{font-size:11px;display:block;color:var(--power-color)}.commander-power small,.enemy-power small{display:block;font-size:9px;color:#b9cbd9;margin-top:3px}.power-orb{display:grid;place-items:center;width:32px;height:32px;font-size:23px;color:var(--power-color);border:1px solid var(--power-color);border-radius:50%;background:radial-gradient(circle,#ffffff25,#081724);box-shadow:0 0 12px color-mix(in srgb,var(--power-color) 20%,transparent)}.power-ready{box-shadow:0 0 16px color-mix(in srgb,var(--power-color) 25%,transparent),inset 0 0 18px #ffffff08}.power-ready .power-orb{animation:power-breathe 2.5s ease-in-out infinite}.enemy-power{max-width:150px;margin-left:10px;color:var(--power-color);font-size:10px;line-height:1.2}.power-detail{position:relative;padding:16px 10px 12px;text-align:center;border:1px solid var(--power-color);border-radius:9px;background:radial-gradient(ellipse at top,color-mix(in srgb,var(--power-color) 16%,transparent),#0a1726 70%)}.power-emblem{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 12px;border:1px solid var(--power-color);border-radius:50%;color:var(--power-color);font-size:40px;box-shadow:0 0 25px color-mix(in srgb,var(--power-color) 20%,transparent)}.power-detail .eyebrow{font-size:9px;letter-spacing:1px;color:var(--power-color)}.power-detail h3{font-size:20px;color:#f2f7ff}.power-price{display:inline-block;padding:5px 10px;background:#04101ba8;border-radius:20px;font-size:11px;color:var(--power-color);margin-top:9px}.power-firing{animation:commander-flash .8s ease-out}.combat-float.power-burst{color:#faf2bb;font-size:17px;border:1px solid #f2da8c}
@keyframes power-breathe{50%{filter:brightness(1.35);box-shadow:0 0 18px color-mix(in srgb,var(--power-color) 55%,transparent)}}@keyframes commander-flash{35%{box-shadow:0 0 30px var(--power-color),inset 0 0 25px color-mix(in srgb,var(--power-color) 40%,transparent);filter:brightness(1.3)}}
@media(max-width:1200px){.commander{flex-wrap:wrap}.commander-power{min-width:130px}.enemy-power{max-width:125px}}
@media(max-width:600px){.commander-power{width:100%;margin:3px 0 0;justify-content:center}.enemy-power{width:100%;max-width:none;margin:0}.enemy-power small{display:inline;margin-left:8px}.power-detail .power-emblem{width:50px;height:50px;font-size:30px}}

/* Reserve room for commander controls and visible card metadata. */
:root{--battle-art:clamp(64px,calc((100dvh - 550px)/3),190px)}
@media(max-width:1050px){:root{--battle-art:clamp(64px,calc((100dvh - 580px)/3),145px)}}
@media(max-width:600px){:root{--battle-art:clamp(44px,calc((100dvh - 720px)/3),110px)}.commander{padding-top:4px;padding-bottom:4px}.commander-power{padding:3px 8px;gap:7px}.commander-power .power-orb{width:26px;height:26px;font-size:20px}}

@media(max-width:600px){.board-row{padding-top:4px;padding-bottom:4px}.unit .unit-name{min-height:22px;padding:3px}.arena .hand-card .hand-name{min-height:20px}.arena .hand-card .hand-text{max-height:18px}}
.replay-board{display:flex;gap:8px;overflow:auto;margin:10px 0}.replay-board img{height:120px;object-fit:contain}dialog textarea[aria-label="Paste save JSON"]{display:block;width:100%;min-height:90px;margin:12px 0;background:#071523;color:#d8ebfa;border:1px solid #4e758e;padding:10px}#recovery-open,#guide-open{margin:5px 4px 5px 0}dialog>button{margin:5px}dialog p{line-height:1.6}

/* v0.2.1: readable rules-first hover and faction guidance */
#art-hover{width:min(460px,calc(100vw - 24px));max-height:80dvh;overflow:auto;display:flex;gap:12px;align-items:flex-start}#art-hover img{width:30%;max-height:220px}#art-hover .hover-rules{flex:1;min-width:0}#art-hover h3{margin:0 0 8px}#art-hover p{font-size:13px;line-height:1.45;margin:6px 0}.spore-panel{border:1px solid #88b759;border-radius:8px;padding:12px;margin:12px 0;background:#152316}.spore-panel p{font-size:13px;line-height:1.5}.spore-panel button{width:100%}@media(max-width:600px){#art-hover{display:none}}

/* Universal visual language: mechanic identity never changes with card faction. */
.effect-rack{display:flex;flex-wrap:wrap;gap:3px;padding:4px;position:relative;z-index:2}.effect-badge{--effect:#c9dce7;display:inline-flex;align-items:center;gap:3px;border:1px solid var(--effect);border-radius:5px;background:#08111eef;color:var(--effect);padding:3px 5px;font-size:11px;line-height:1.2;text-align:left}.effect-badge svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}.effect-badge span{font-size:inherit!important;padding:0!important;text-align:left!important}.effect-solari{--effect:#f5b400}.effect-hegemony{--effect:#eadbb8}.effect-nereid{--effect:#3fb4ff}.effect-fungus{--effect:#8c9a24}.effect-synthari{--effect:#ea6b65}.effect-spacers{--effect:#5d8fff}.effect-veilborn{--effect:#b274f5}.effect-neutral{--effect:#8c949e}.effect-gobbos{--effect:#d37e56}.effect-inactive{border-style:dashed;filter:saturate(.35)}.effect-active{border-width:2px}.unit{position:relative}.unit.has-taunt::before{content:'';position:absolute;inset:1px;border:5px ridge #afbbc5;border-radius:8px;pointer-events:none;z-index:3;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 0,5% 5%,5% 95%,95% 95%,95% 5%,5% 5%)}.unit.has-shroud{background:linear-gradient(130deg,#243844,#08101f 50%,#31404e);border-style:dashed}.unit.has-phase{outline:2px dashed #c9dce7;outline-offset:2px}.readiness-label{display:block;width:100%;font-size:10px;color:#b9f5cb}.unit .effect-rack{min-height:22px}.unit .effect-badge{font-size:9px;padding:2px 3px}.unit .effect-badge svg{width:13px;height:13px}.unit.target{outline:3px solid #ffe990;outline-offset:3px}#art-hover .effect-badge svg{width:16px}#art-hover .effect-rack{padding:0}.hand-text{line-height:1.35}

.unit .effect-rack{order:2;justify-content:center}.unit.has-taunt::before{clip-path:none;border-width:4px;box-shadow:inset 0 0 0 1px #26313a}.effect-universal{--effect:#c9dce7}

.combat-float.armor-loss{color:#d2eaff;background:#23394d;border:1px solid #c9dce7;font-size:15px;transform:translateY(-28px)}.unit.armor-broken{animation:armor-break .65s ease-out}@keyframes armor-break{35%{box-shadow:0 0 0 5px #d2eaff88;filter:brightness(1.4)}100%{box-shadow:0 0 0 14px transparent}}@media(prefers-reduced-motion:reduce){.unit.armor-broken{animation:none}}

/* Expanded command table: full artwork, illuminated rails and quiet tactical detail. */
main:has(.game-layout){max-width:none;width:100%;padding:14px clamp(10px,1.5vw,44px)}
.game-layout{--battle-art:clamp(105px,calc((100dvh - 620px)/3),290px);grid-template-columns:minmax(0,1fr) clamp(240px,12vw,320px);gap:18px}
.arena{padding:16px;border:1px solid #58879d;border-radius:22px;background:radial-gradient(ellipse at 50% 48%,#163c51a8,transparent 65%),linear-gradient(135deg,#101f30,#07121f);box-shadow:inset 0 0 0 4px #09131f,inset 0 0 0 5px #355468,inset 0 0 75px #02070caf,0 14px 50px #0008,0 0 24px #5bd9ee13;isolation:isolate}
.arena::before{content:'';position:absolute;inset:8px;z-index:-1;pointer-events:none;border-radius:16px;background:linear-gradient(#66cde009 1px,transparent 1px),linear-gradient(90deg,#66cde009 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse,#000,transparent 85%)}
.arena::after{content:'';position:absolute;inset:7px;pointer-events:none;border-radius:16px;background:linear-gradient(90deg,transparent 15%,#69dbef80 35%,transparent 60%) top/100% 2px no-repeat,linear-gradient(90deg,transparent 35%,#69dbef70 65%,transparent 85%) bottom/100% 2px no-repeat;z-index:0}
.board-row{gap:12px;padding:10px 4px;align-items:stretch}
.unit{max-width:clamp(130px,calc(var(--battle-art)*.75 + 22px),240px);border-radius:10px;box-shadow:0 8px 16px #0008,inset 0 0 0 1px #7195b51f}
.unit img{height:var(--battle-art);object-fit:contain}
.unit .unit-name{font-size:clamp(11px,.6vw,14px);min-height:30px;padding:6px}
.unit .unit-stats{font-size:18px;padding:5px 10px;background:linear-gradient(90deg,#233049,#101f30 50%,#342638)}
.unit .effect-badge{font-size:10px}.unit.ready{box-shadow:0 0 0 1px #65dcb5,0 0 18px #4ee2b52e,0 8px 16px #0008}
.slot{height:calc(var(--battle-art) + 70px);border:1px solid #5c8fa323;background:radial-gradient(circle at center,#6fcfe307 0 25%,transparent 26%),linear-gradient(135deg,#19344822,#07142144);box-shadow:inset 0 0 20px #05101d55;position:relative}
.slot::after{content:'';position:absolute;inset:10px;border:1px solid #79bed626;clip-path:polygon(0 0,18% 0,18% 1%,1% 1%,1% 18%,0 18%,0 0,100% 0,100% 18%,99% 18%,99% 1%,82% 1%,82% 0,100% 0,100% 100%,82% 100%,82% 99%,99% 99%,99% 82%,100% 82%,100% 100%,0 100%,0 82%,1% 82%,1% 99%,18% 99%,18% 100%,0 100%);pointer-events:none}
.midline{height:34px;gap:22px;border-color:#70b7cc45;color:#b1dbe8;letter-spacing:2.5px;background:linear-gradient(90deg,transparent,#2b667c40 35%,#143249 50%,#2b667c40 65%,transparent);position:relative;text-shadow:0 0 12px #64d9f788}
.midline::before,.midline::after{content:'';height:3px;width:clamp(16px,8vw,200px);background:repeating-linear-gradient(90deg,#67cbdf99 0 12px,transparent 12px 18px);opacity:.6}
.commander{padding:8px 14px;min-height:56px;box-shadow:inset 0 1px #b8e8ff19,0 5px 15px #0003;background:linear-gradient(105deg,#263c52,#12283d 70%,#142237)}
.commander .name{font-size:15px}.commander img{width:34px;height:34px}.commander .health{font-size:26px}
.arena .hand{gap:12px;padding:12px 4px 4px;justify-content:safe center}
.arena .hand-card{flex:0 0 clamp(132px,10vw,210px);max-width:clamp(130px,calc(var(--battle-art)*.75 + 22px),240px);border-radius:10px;background:linear-gradient(160deg,#1a3349,#0b1b2b)}
.arena .hand-card img{height:var(--battle-art);object-fit:contain}.arena .hand-card .hand-name{font-size:12px;min-height:30px;padding:6px 8px}.arena .hand-card .hand-text{font-size:11px;max-height:44px;padding:0 8px}.arena .hand-card .hand-stats{font-size:13px;padding:5px 8px}
.arena .hand-card.playable{box-shadow:0 0 0 1px #61d9b46b,0 0 16px #57d5b21f,0 8px 15px #0006}
.side-panel{gap:14px;max-height:calc(100dvh - 110px)}.side-panel .panel{border-radius:10px;border-color:#3a586b;background:linear-gradient(145deg,#152c3e,#0a1928);box-shadow:inset 0 2px #78cadd15}.side-panel h3{letter-spacing:.5px}.side-panel .turn-button{border-radius:6px;box-shadow:0 0 18px #64dbea28;font-weight:800;letter-spacing:.6px}
@media(max-width:1400px){.game-layout{--battle-art:clamp(96px,calc((100dvh - 580px)/3),220px);gap:12px}.arena{padding:12px}.board-row{gap:7px}.unit .unit-name{font-size:11px}.arena .hand-card .hand-text{font-size:10px;max-height:30px}.commander{padding:6px 10px;min-height:48px}.midline{height:28px}}
@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr);--battle-art:clamp(120px,18vw,175px)}.side-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}.board-row{grid-template-columns:repeat(7,minmax(120px,1fr))}.unit{max-width:none}.arena .hand-card{flex-basis:145px;max-width:none}}
@media(max-width:600px){main:has(.game-layout){padding:7px}.arena{padding:9px;border-radius:14px}.game-layout{--battle-art:150px}.board-row{grid-template-columns:repeat(7,120px);gap:8px}.side-panel{grid-template-columns:1fr}.arena .hand{justify-content:flex-start}.arena .hand-card{flex-basis:132px}.midline{gap:7px;letter-spacing:.8px;font-size:9px}.midline::before,.midline::after{display:none}.commander .name{font-size:12px}.commander img{width:26px;height:26px}.commander .health{font-size:21px}}

/* Combat forecasts sit above artwork without intercepting clicks or hiding rules. */
.unit.forecast-death,.commander.forecast-death{box-shadow:inset 0 0 0 3px #ff536c,0 0 24px #f2385655!important}
.unit.forecast-risk,.commander.forecast-risk{box-shadow:inset 0 0 0 3px #ffb34f,0 0 24px #ff9c3055!important}
.forecast-hit{outline:2px solid #f4ca76;outline-offset:-2px}
[data-hero]{position:relative}
.forecast-badge{position:absolute;z-index:8;top:8px;left:5px;right:5px;pointer-events:none;border:1px solid #ffbf74;border-radius:6px;background:#191321ee;color:#fff1dc;padding:7px 4px;font-size:12px;font-weight:800;line-height:1.25;text-align:center;box-shadow:0 3px 14px #000b;white-space:normal}
.forecast-death .forecast-badge{background:#4b1024ed;border-color:#ff6981;color:#fff}
.forecast-risk .forecast-badge{background:#44290ced;border-color:#ffbf59;color:#fff1d8}
[data-hero]>.forecast-badge{left:auto;width:160px;top:3px}

/* Short-lived combat overlays: no hit targets or layout movement. */
.battle-ghost{pointer-events:none!important;transition:none!important;animation:none!important;overflow:hidden!important}
.battle-fx{position:fixed;z-index:10001;pointer-events:none;display:grid;place-items:center;color:var(--fx-color);border-radius:12px;background:radial-gradient(ellipse,transparent 30%,color-mix(in srgb,var(--fx-color) 25%,transparent) 68%,transparent 72%);text-shadow:0 0 15px currentColor}
.fx-glyph{font-size:48px;line-height:1;filter:drop-shadow(0 0 8px currentColor)}
.fx-caption{position:absolute;bottom:10%;left:0;right:0;text-align:center;font-size:12px;font-weight:800;background:#08101ded;border:1px solid currentColor;border-radius:4px;padding:4px;text-shadow:none}
.fx-caption:empty{display:none}
.fx-damage,.fx-impact{color:#ff735e;background:radial-gradient(ellipse,#ffcf7d55,transparent 64%)}
.fx-heal{color:#7effbc;background:repeating-linear-gradient(0deg,transparent 0 14px,#68ffbd22 15px 17px)}
.fx-armor,.fx-break,.fx-taunt{color:#d9e9ff;border:3px double currentColor;border-radius:8px;background:linear-gradient(120deg,transparent,#d9edff44,transparent)}
.fx-shield,.fx-shatter{color:#b8eaff;border:3px solid currentColor;border-radius:45%;background:radial-gradient(ellipse,transparent 45%,#b8eaff55)}
.fx-shatter,.fx-break{border-style:dashed}
.fx-summon,.fx-return,.fx-phase{border:3px solid var(--fx-color);border-radius:50%;background:repeating-radial-gradient(ellipse,transparent 0 16px,color-mix(in srgb,var(--fx-color) 35%,transparent) 17px 19px)}
.fx-grow{background:linear-gradient(0deg,color-mix(in srgb,var(--fx-color) 45%,transparent),transparent);border-bottom:3px solid currentColor}
.fx-possess{border:3px dashed var(--fx-color);background:conic-gradient(from 45deg,transparent,color-mix(in srgb,var(--fx-color) 40%,transparent),transparent)}
.fx-promote{border-top:4px double currentColor;background:linear-gradient(0deg,transparent,#e7f2ff44)}
.fx-heat{background:repeating-linear-gradient(135deg,transparent 0 12px,#ff506733 13px 16px)}
.fx-stun{color:#ffcf69;border:2px dashed currentColor}
.fx-shroud{background:linear-gradient(110deg,#0e162ab0,transparent,#0e162ab0)}
.fx-draw .fx-glyph{transform:rotate(-15deg)}.fx-discard .fx-glyph{opacity:.7;transform:rotate(20deg)}
@media(prefers-reduced-motion:reduce){.battle-fx .fx-glyph{font-size:30px}.battle-ghost{transform:none!important}}

.battle-beam{position:fixed;height:3px;z-index:10002;pointer-events:none;transform-origin:left center;box-shadow:0 0 12px currentColor}
.fx-ready{border-bottom:3px solid currentColor;background:linear-gradient(0deg,#78eeaa33,transparent)}

/* Large, dismissible intelligence briefing. */
#hand-intel{width:min(1380px,94vw);max-width:94vw;max-height:90dvh;overflow:auto;border:1px solid #6fe4ff;background:linear-gradient(145deg,#101e32,#070d18);box-shadow:0 0 65px #35bbdf44;padding:clamp(16px,3vw,36px)}
#hand-intel::backdrop{background:#020711d9;backdrop-filter:blur(7px)}
.intel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:20px}.intel-card{background:#152337;border:1px solid #467487;border-radius:12px;padding:12px;max-width:380px}.intel-card img{width:100%;height:240px;object-fit:contain;border-radius:8px}.intel-card p{line-height:1.5}.intel-tax{color:#ffc879}.intel-empty{padding:40px;text-align:center;font-size:1.4rem}

.intel-grid{justify-items:center}.intel-card{width:100%;box-sizing:border-box}


.unit-types{display:block;font-size:11px;line-height:1.3;color:#c4d5e5;letter-spacing:.025em;font-weight:500}.hand-card .unit-types,.unit .unit-types{position:relative;z-index:2;background:#071322df;padding:2px 4px;text-align:center}.row-title .unit-types{margin:3px 0}.hover-rules .unit-types,#inspect-content .unit-types{font-size:14px;margin:6px 0}

/* Approved dimensional faction emblems */
.faction img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 3px 7px #0008)}.commander>img{width:46px;height:46px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 4px #0009)}.faction-identity{display:flex;align-items:center;gap:10px}#inspect .inspect-emblem{width:42px;height:42px;object-fit:contain;flex-shrink:0}@media(max-width:600px){.faction img{width:52px;height:52px}.commander>img{width:32px;height:32px}}

.result .result-emblem{width:clamp(96px,15vw,170px);height:clamp(96px,15vw,170px);object-fit:contain;filter:drop-shadow(0 6px 20px #6be2ef25)}.affinity-panel{padding:16px;border:1px solid #3c5870;border-radius:10px;background:linear-gradient(120deg,#193248,#101d2b);margin:12px 0 20px}.affinity-panel>div{display:flex;justify-content:space-between;gap:16px}.affinity-panel progress{display:block;width:100%;height:12px;margin:12px 0 8px;accent-color:#6be2ef}.affinity-panel small{color:var(--muted)}.affinity-panel .help{margin-bottom:0}.affinity-gain{color:#8fefd7;font-weight:700}.result .affinity-panel{max-width:440px;margin:18px auto}

/* Commander selection: effect labels stay attached to eligible targets. */
.power-eligible{outline:3px solid #79e8e0!important;box-shadow:0 0 24px #49cbd66b!important;position:relative}.power-ineligible{filter:saturate(.45);opacity:.62}.power-target-label{position:absolute;z-index:6;top:0;left:2px;right:2px;padding:6px 3px;border-radius:5px;background:#072d36;color:#b7fff4;font:700 11px/1.3 system-ui;text-align:center;pointer-events:none}.commander{position:relative}.power-instruction{padding:12px;border:1px solid #59d5d3;border-radius:8px;color:#b7fff4;background:#082c34}.power-detail~.action-options{max-height:180px;overflow:auto}
.card-reveal{border:0;background:transparent;color:#eef3fa;max-width:none;max-height:100dvh;width:min(560px,96vw);padding:18px;overflow:auto;isolation:isolate}.card-reveal::backdrop{background:#030912cf;backdrop-filter:blur(7px)}.reveal-content{position:relative;text-align:center}.reveal-content header span{font:700 11px/1.4 system-ui;letter-spacing:.16em;text-transform:uppercase;color:var(--reveal-color)}.reveal-content h2{font:500 25px/1.15 Georgia,serif;margin:7px 0 14px;letter-spacing:.025em}.reveal-card{width:min(360px,100%);margin:auto;text-align:left;border:1px solid var(--reveal-color);border-radius:15px;background:#0b1423;overflow:hidden;box-shadow:0 0 40px color-mix(in srgb,var(--reveal-color) 35%,transparent),0 22px 70px #000b;transform-origin:center}.reveal-art{position:relative;background:#050b13}.reveal-art img{display:block;width:100%;height:min(39dvh,345px);object-fit:contain}.reveal-cost{position:absolute;top:12px;left:12px;background:#071725eb;border:1px solid var(--reveal-color);color:#fff;border-radius:10px;width:44px;text-align:center;font:700 25px system-ui;padding:4px}.reveal-cost small{display:block;font:700 8px system-ui;letter-spacing:.14em}.reveal-caption{padding:15px 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--reveal-color) 12%,#0a111e),#0a111e)}.reveal-caption h3{font:600 23px/1.15 Georgia,serif;margin:0 0 7px}.reveal-caption p{font:13px/1.5 system-ui;margin:6px 0}.reveal-caption .reveal-type{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--reveal-color)}.reveal-destination{font:13px/1.4 system-ui;margin:14px 0}.reveal-content footer{display:flex;gap:10px;justify-content:center}.reveal-next{border-color:var(--reveal-color)!important}.reveal-timing{display:block;margin-top:9px;color:#a8b6c8;font:11px system-ui}.reveal-halo{position:absolute;inset:10%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--reveal-color) 20%,transparent),transparent 70%);filter:blur(24px)}@media(max-height:650px){.reveal-art img{height:27dvh}.reveal-content h2{font-size:20px}.reveal-caption{padding:8px 14px}.reveal-caption h3{font-size:19px}.reveal-destination{margin:7px}}@media(prefers-reduced-motion:reduce){.card-reveal::backdrop{backdrop-filter:none}}

.reveal-content header{position:static;display:block;height:auto;min-height:0;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none}.power-summon{border:2px dashed #79e8e0!important;background:#0b373b8c!important;color:#b7fff4;display:flex;align-items:center;justify-content:center;text-align:center;font:600 13px/1.5 system-ui}.power-target-label{max-width:220px}.commander>.power-target-label{top:-9px;left:auto;right:12px}
.trap-trigger-banner{position:fixed;z-index:11000;top:10vh;left:50%;transform:translateX(-50%);width:min(600px,92vw);display:flex;gap:14px;align-items:center;border:1px solid #ffb765;border-radius:12px;padding:13px;background:#20120bf5;color:#fff2da;box-shadow:0 0 45px #ef701b88;pointer-events:none}.trap-trigger-banner img{width:64px;height:80px;object-fit:cover;border-radius:5px}.trap-trigger-banner strong{font:700 20px/1.2 Georgia,serif}.trap-trigger-banner p{font:13px/1.5 system-ui;margin:7px 0 0}.trap-detonation{position:fixed;z-index:10500;pointer-events:none;width:190px;height:190px;transform:translate(-50%,-50%);border-radius:50%;border:5px solid #ffbd60;box-shadow:0 0 26px #ff9b3a,inset 0 0 45px #ff9b3a;background:radial-gradient(circle,#fffbdabf,transparent 65%)}.trap-electric{border-radius:18%;border-style:dashed;border-color:#ffe89b;box-shadow:0 0 20px #fff19c,inset 0 0 55px #f0711b}.trap-blast{border-width:8px;border-color:#ff763f;background:repeating-conic-gradient(#ffce7188 0deg 12deg,transparent 12deg 36deg)}

/* Player identity and commander portraits — gameplay v0.3.3 */
.command-profile{display:flex;align-items:center;gap:18px;width:100%;padding:16px 20px;margin:22px 0;text-align:left;background:linear-gradient(110deg,#263949,#102430 70%);border-color:#a78c55;border-radius:14px;box-shadow:inset 0 1px #efd49a22}.command-profile>img{width:72px;height:72px;object-fit:cover;object-position:center 25%;border:2px solid #e9c983;border-radius:50%}.command-profile strong{display:block;font-size:25px;margin:4px 0;overflow-wrap:anywhere}.command-profile small{color:#eed09a;font-size:10px;letter-spacing:1.5px}.command-profile span span{color:#a9c2d3;font-size:12px}
.commander .commander-portrait{display:block;flex:0 0 60px;width:60px;height:60px;border:2px solid var(--power-color);border-radius:50%;padding:0;overflow:hidden;background:#08121d;box-shadow:0 0 16px color-mix(in srgb,var(--power-color) 25%,transparent)}.commander .commander-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:0}.commander .commander-faction{width:25px;height:25px;flex-shrink:0}.commander-name{max-width:240px;overflow-wrap:anywhere}.commander .commander-name small{font-size:10px}
#player-profile{width:min(960px,calc(100vw - 28px));max-width:960px;max-height:calc(100dvh - 32px);padding:0;border:1px solid #a78c55;border-radius:18px;background:radial-gradient(ellipse at 0 0,#36536766,transparent 65%),#0d1926;color:#edf3f8;box-shadow:0 24px 100px #000c;overflow:auto}#player-profile::backdrop{background:#020812c9;backdrop-filter:blur(6px)}.profile-form{padding:28px}.profile-heading{display:flex;align-items:flex-start;gap:24px;justify-content:space-between}.profile-heading h1{margin:8px 0;font-size:clamp(24px,3vw,36px)}.profile-heading .quiet{font-size:13px;line-height:1.6}.profile-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:30px;margin-top:20px}.profile-columns section,.profile-columns aside{min-width:0}.profile-columns aside{border-left:1px solid #2b4053;padding-left:25px}.profile-preview{display:flex;gap:18px;align-items:center;padding:18px 0 24px}.profile-preview>img{width:112px;height:112px;object-fit:cover;object-position:center 25%;border:2px solid #eac888;border-radius:50%;box-shadow:0 0 25px #eac88820}.profile-preview h2{margin:6px 0;overflow-wrap:anywhere;font-size:25px}.profile-preview .eyebrow{font-size:10px;letter-spacing:2px}.profile-form label{display:block;font-size:12px;color:#b0c5d5;margin:12px 0}.profile-form input:not([type=file]),.profile-form select,.profile-form textarea{display:block;width:100%;margin-top:7px;padding:10px;background:#081724;color:#edf4f8;border:1px solid #395369;border-radius:6px;font:inherit;font-size:14px}.profile-form textarea{resize:vertical}.profile-form textarea:focus-visible{outline:2px solid var(--accent)}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portrait-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.portrait-gallery button{min-width:0;padding:4px;background:#081725;border:2px solid #2a4255;border-radius:10px}.portrait-gallery button[aria-pressed=true]{border-color:#efd099;box-shadow:0 0 12px #efca6944}.portrait-gallery img{display:block;width:100%;aspect-ratio:1;object-fit:cover;object-position:center 25%;border-radius:6px}.portrait-gallery span{display:block;font-size:10px;line-height:1.2;min-height:26px;margin-top:5px}.portrait-upload input{display:block;max-width:100%;margin-top:8px;font-size:12px}.profile-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.profile-totals>div{padding:12px 4px;text-align:center;background:#19304766;border:1px solid #2b4154;border-radius:8px}.profile-totals strong{display:block;color:#eed099;font-size:23px}.profile-totals small{color:#a9bdce;font-size:10px}.profile-affinities>div{display:flex;gap:10px;align-items:center;margin:10px 0}.profile-affinities img{width:30px;height:30px}.profile-affinities span{flex:1;text-transform:capitalize;font-size:12px}.profile-affinities small{display:block;color:#a8bfce;font-size:10px;margin:3px 0}.profile-affinities progress{display:block;width:100%;height:5px;accent-color:#dabe85}.profile-recent{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.profile-recent b{text-transform:capitalize;color:#e0c696}.profile-footer{display:flex;gap:10px;align-items:center;position:sticky;bottom:-28px;padding:16px 0 4px;margin-top:16px;background:#0d1926;border-top:1px solid #314657}.profile-footer p{flex:1;font-size:12px;line-height:1.5;color:#b5cbd9}.profile-footer button{flex-shrink:0}#player-profile .help{font-size:11px;line-height:1.6;color:#a9bdcc}
@media(max-width:700px){.profile-form{padding:18px}.profile-columns{grid-template-columns:1fr;gap:20px}.profile-columns aside{border-left:0;border-top:1px solid #2b4053;padding:20px 0 0}.profile-footer{bottom:-18px;flex-wrap:wrap}.profile-footer p{flex-basis:100%;margin:0}.profile-footer button{flex:1}.profile-preview>img{width:88px;height:88px}.profile-preview h2{font-size:22px}.profile-heading{gap:8px}.profile-heading .eyebrow{font-size:9px}.commander .commander-portrait{flex-basis:44px;width:44px;height:44px}.commander-name{max-width:150px}.commander .commander-faction{width:20px;height:20px}.command-profile strong{font-size:21px}header{flex-wrap:wrap}.header-right{flex-wrap:wrap}#profile-open{font-size:12px}}

/* Independent orbital slot, outside unit adjacency and formation. */
.orbital-panel{position:relative;display:flex;align-items:center;gap:14px;margin:8px 0;padding:8px 16px;background:linear-gradient(110deg,#111b32,#142633 55%,#111322);border:1px solid #718ca8;border-radius:12px;cursor:pointer;min-height:90px;box-shadow:inset 0 0 35px #5c93c514}
.orbital-panel img{width:62px;height:84px;object-fit:cover;border-radius:7px}.orbital-panel div{display:grid;gap:4px;flex:1}.orbital-panel b{font-size:17px;color:#e1edff}.orbital-panel small{color:#a6bbd0;font-size:11px}.orbital-panel span{color:#79ddff;font-weight:700}.orbital-panel.target{border:2px solid #ffdb72;box-shadow:0 0 20px #e7b95755}.orbital-wreck{padding:8px;color:#96a1b2;font-size:12px;border-bottom:1px solid #454858}@media(max-width:700px){.orbital-panel{flex-wrap:wrap}.orbital-panel button{width:100%}}

.orbital-wreck{background:#111b2be8;color:#dae5f1;border-radius:6px}
.header-link{color:var(--gold);text-decoration:none;border:1px solid #6b5a2e;border-radius:7px;padding:9px 13px;letter-spacing:.04em}.header-link:hover{border-color:var(--gold);background:#2a2412}
/* Synthari Reactor (reactor-v1) */
.reactor-panel{border:1px solid #ff797d88;border-radius:8px;padding:10px 12px;margin:10px 0;background:linear-gradient(160deg,#2a1519,#101c2b)}.reactor-panel h4{margin:0 0 6px;font-size:13px;color:#ffb3b5;letter-spacing:.5px}.reactor-gauges{display:flex;justify-content:space-between;gap:8px}.reactor-gauges b{color:#f2f7ff}.heat-bar{height:8px;border-radius:5px;background:#0a1320;border:1px solid #5a3a40;overflow:hidden;margin:4px 0 6px}.heat-bar span{display:block;height:100%;background:linear-gradient(90deg,#f0b35a,#ff5d62);transition:width .3s}.reactor-panel.overload{border-color:#ff5d62;box-shadow:0 0 16px #ff5d6244}.reactor-warning{color:#ffb0a8!important;font-weight:700}.reactor-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.reactor-actions button{padding:7px 6px;font-size:11px;text-align:center;border-color:#ff797d88}.reactor-actions button small{display:block;font-size:9px;color:#d5c0c2;margin-top:2px}.reactor-heat{color:#ffb3b5}.reactor-heat.overload{color:#ff6d70;font-weight:800}
.result .result-flavor{max-width:560px;margin:14px auto 6px;padding:4px 0 4px 16px;border-left:2px solid #efc57999;text-align:left}.result .result-flavor p{margin:0;font-style:italic;font-size:17px;line-height:1.55;color:#dbe6f2}.result .result-flavor cite{display:block;margin-top:6px;font-style:normal;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.result .result-flavor cite::before{content:"\2014\00a0"}
/* The Flagship name in Player profile (opening.mjs): the field and its Random button on one row. */
.pp-ship-row{display:flex;gap:8px;align-items:stretch}.pp-ship-row input{flex:1;min-width:0}.pp-ship-row button{margin-top:7px;padding:0 12px;border:1px solid #395369;border-radius:6px;background:#12263a;color:#edf4f8;font:inherit;font-size:13px;cursor:pointer}.pp-ship-row button:hover{border-color:#eac888}
/* Radiance live status (threshold-help.mjs): a gold glow and tag while a card's Radiance is on, met / not met lines in the hover pane and inspector, and the one-time Solar Charge line by the meter. */
.unit .radiant-glow{position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 2px #f5b400,inset 0 0 22px #ffcf5a88,0 0 16px #f5b40088}
.unit .radiant-tag{position:absolute;left:50%;top:22px;transform:translateX(-50%);z-index:5;padding:1px 6px;border-radius:9px;background:#3a2a00f0;border:1px solid #f5b400;color:#ffe08a;font:700 10px/1.3 Rajdhani,'Segoe UI',sans-serif;white-space:nowrap;pointer-events:none;box-shadow:0 0 8px #f5b40088}
.threshold-live{margin:4px 0;padding:3px 7px;border-left:3px solid #8c949e;border-radius:3px;background:#ffffff0d;font-weight:600;color:#c9d3dd}
.threshold-live.met{border-color:#f5b400;color:#ffe08a;background:#f5b4001a}
.commander{position:relative}
.commander .resource[title]{cursor:help}
.meter-intro{position:absolute;left:12px;bottom:calc(100% + 8px);z-index:30;display:flex;gap:10px;align-items:center;max-width:min(520px,calc(100vw - 32px));padding:8px 10px;border:1px solid #f5b400;border-radius:8px;background:#1d1600f5;color:#ffeccb;font-size:13px;line-height:1.35;box-shadow:0 6px 18px #000a}
.meter-intro::after{content:'';position:absolute;left:150px;top:100%;border:7px solid transparent;border-top-color:#f5b400}
.meter-intro button{flex-shrink:0;padding:4px 10px;border:1px solid #f5b400;border-radius:6px;background:#3a2a00;color:#ffe08a;font-weight:700;cursor:pointer}


/* Docked columns (ui-layout.mjs --uw-dock-right), such as Galactic Comms docked in a card battle (chat-layout.mjs; "Chat during card battles" on): the page gives up the column */
html.uw-dock-right body{margin-right:var(--uw-dock-right)}
html.uw-dock-right #art-hover{right:calc(var(--uw-dock-right) + 20px)}
.result .result-brand{display:flex;justify-content:center;margin:0 0 4px}.result .result-mark{display:block;width:clamp(48px,8vh,72px);height:auto;filter:drop-shadow(0 0 14px rgba(255,138,0,.35))}@media (forced-colors:active){.result .result-mark{filter:none}}
