:root {
  color-scheme: dark; --bg:#0b0b09; --panel:#17150f; --panel-dark:#100f0c; --line:#3b3020;
  --gold:#d4b474; --gold-bright:#efd298; --ink:#e0d8c7; --muted:#a39b86; --green:#91b877;
  font-family: 'Segoe UI', Arial, sans-serif; font-size:13px;
}
* {box-sizing:border-box}
html {scroll-padding-top:120px}
body {margin:0;color:var(--ink);background:radial-gradient(ellipse at 50% 0,#2a241633,transparent 65%),var(--bg)}
[hidden] {display:none!important}
button,input {font:inherit}
button,a {touch-action:manipulation}
button {cursor:pointer}
button:disabled {cursor:not-allowed;opacity:.4;filter:saturate(.4)}
a {color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible {outline:2px solid var(--gold-bright);outline-offset:3px}
h1,h2,h3,p {margin:0}
h1,h2,h3 {font-family:Georgia,'Times New Roman',serif;font-weight:400}
p {color:var(--muted);line-height:1.5}
.icon-library {position:absolute;width:0;height:0;overflow:hidden}
.icon {width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}
.label,.eyebrow,.rarity {font-size:9px;letter-spacing:1.5px;font-weight:600}
.label,.eyebrow {color:var(--muted)}
.rarity {color:var(--green);font-size:8px}
.primary,.secondary,.small-button {border:1px solid #8d6933;border-radius:3px;padding:10px 16px;color:var(--gold-bright);background:linear-gradient(#49371d,#302514);box-shadow:inset 0 1px #d7b46f22,0 2px 5px #0005;font-weight:600;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;transition:filter .15s,transform .15s,border-color .15s}
.primary:hover:not(:disabled),.secondary:hover:not(:disabled),.small-button:hover:not(:disabled) {filter:brightness(1.25);border-color:var(--gold-bright)}
.primary:active:not(:disabled),.secondary:active:not(:disabled),.small-button:active:not(:disabled) {transform:translateY(1px)}
.secondary {background:linear-gradient(#282218,#19160f);border-color:#584528;padding:8px 12px;font-size:11px}
.small-button {font-size:11px;padding:8px 12px;background:#241e12}
.text-button {background:none;border:0;color:var(--muted);padding:3px 0;font-size:10px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#615039}
.text-button:hover:not(:disabled) {color:var(--gold-bright)}
.game-shell {max-width:1740px;margin:0 auto;padding:18px 24px 0}
.masthead {position:fixed;top:0;z-index:15;left:50%;transform:translateX(-50%);width:calc(100% - 48px);max-width:1692px;display:flex;align-items:center;justify-content:space-between;min-height:100px;padding:16px 23px;border:1px solid #594224;border-radius:5px;background:radial-gradient(ellipse at 45% 0,#5e45222b,transparent 60%),linear-gradient(#201b12,#100f0c);box-shadow:inset 0 1px #d2a75818,0 8px 24px #000b;gap:22px;scroll-margin:20px}
.brand {display:flex;align-items:center;gap:12px}
.brand-seal {width:45px;height:54px;display:grid;place-items:center;color:var(--gold);border:1px solid #7f6235;background:linear-gradient(145deg,#473920,#14120e);clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%)}
.brand-seal .icon {width:30px;height:30px}
.wordmark {font:small-caps 27px Georgia,serif;letter-spacing:1.1px;color:var(--gold-bright);text-shadow:0 2px 2px #000}
.wordmark small {display:block;font:8px 'Segoe UI',sans-serif;letter-spacing:3.6px;color:var(--muted);margin-top:6px}
.resource {display:flex;align-items:center;gap:13px;min-width:115px}
.resource>.icon {width:28px;height:32px;color:var(--gold);filter:drop-shadow(0 0 7px #ba8b362b)}
.energy-resource>.icon {color:var(--green);width:31px;height:38px;filter:drop-shadow(0 0 8px #8fb66940)}
.resource strong {display:block;font:30px Georgia,serif;letter-spacing:1px;color:var(--gold-bright);margin:2px 0;font-variant-numeric:tabular-nums}
.energy-resource strong {font-size:37px;color:#d2e0af}
.resource strong em {font:16px Georgia,serif;color:#8a7e63}
.resource small {font-size:10px;color:var(--green)}
.command-resource small {color:var(--muted)}
.account {border-left:1px solid var(--line);padding-left:23px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:115px}
.account strong {font-size:12px;color:#d2bd91;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.account .label {font-size:8px;color:#a48d61}
.nav-row {display:flex;justify-content:space-between;align-items:center;margin:11px 0 18px;gap:15px}
nav {display:flex;gap:5px;flex-wrap:wrap}
nav a {font-size:11px;border:1px solid #332b1d;padding:7px 13px;border-radius:3px;color:#b2a38a;background:#14120d}
nav a:hover {color:var(--gold-bright);border-color:#836333}
nav a.active {color:#ead2a3;background:linear-gradient(#49301b,#26170f);border-color:#855332;box-shadow:inset 0 0 8px #97380d20}
nav a span {background:#78603a;color:#fff1ca;font-size:9px;padding:1px 4px;border-radius:2px;margin-left:5px}
.connection,.live-label {font-size:9px;color:#8e9a7b;display:flex;align-items:center;gap:6px;white-space:nowrap}
i,.green-dot {width:5px;height:5px;border-radius:50%;background:var(--green);display:inline-block;box-shadow:0 0 5px #8fb66940}
.dominion-banner {position:relative;isolation:isolate;min-height:225px;border:1px solid #50412b;border-radius:4px;overflow:hidden;background:#11110d;margin-bottom:12px}
.dominion-banner:before {content:'';position:absolute;inset:0;z-index:-2;background:url('/assets/necromancer.png') right 30%/auto 660px no-repeat;opacity:.92}
.dominion-banner:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#10110d 0%,#10110ded 25%,#10110d85 50%,#10110d05 75%),linear-gradient(0deg,#090b09bb,transparent 50%)}
.hero-copy {padding:24px 30px}
.hero-copy .eyebrow {color:#baa779;font-size:9px}
.hero-copy .eyebrow span {font-size:7px;margin:0 10px;color:#77623d}
.hero-copy h1 {font-size:35px;line-height:1.08;color:#e7dcc0;margin:10px 0 9px;text-shadow:0 2px 8px #000}
.hero-copy p {font-size:11px;color:#adac96}
.hero-actions {display:flex;align-items:center;gap:15px;margin-top:18px}
.hero-actions .primary {border-color:#72884e;background:linear-gradient(#364127,#222c1a);color:#dceac1;padding:10px 15px}
.hero-actions .icon {width:17px;height:19px}
.hero-actions strong {display:block;font-size:10px;color:#bdcd9d;font-weight:500}
.hero-actions strong b {padding:0 5px;color:#6a7950}
.hero-actions small {display:block;font-size:9px;color:#8f9780;margin-top:4px}
.hero-caption {position:absolute;right:25px;bottom:22px;text-align:right;text-shadow:0 2px 6px #000}
.hero-caption span {font:10px Georgia,serif;letter-spacing:2px;color:#d6c29c}
.hero-caption small {display:block;color:#acaa94;font-size:10px;margin-top:6px}
.next-step {display:flex;align-items:center;gap:13px;padding:11px 15px;background:linear-gradient(90deg,#2b2416,#17150f);border:1px solid #584625;border-radius:3px;margin-bottom:17px;min-height:56px}
.quest-diamond {font:bold 20px Georgia,serif;color:var(--gold);width:27px;height:31px;display:grid;place-items:center;border:1px solid #755b31;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#48381d}
.next-step .eyebrow {font-size:7px;letter-spacing:1.4px;display:block;color:#aa8b55;margin-bottom:4px}
.next-step strong {font-size:12px;color:var(--gold-bright)}
#step-copy {font-size:10px;color:#b4a58a;margin-left:12px}
.next-step button {margin-left:auto}
.dashboard {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.9fr);gap:16px;align-items:start}
.column {min-width:0;display:grid;gap:16px}
.panel {background:linear-gradient(135deg,#211c1359,transparent 70%),var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:inset 0 1px #d5bd8420,0 3px 12px #0003;overflow:hidden;scroll-margin-top:15px}
.panel-heading {display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid #3b302080;background:linear-gradient(#2a22164a,transparent)}
.panel-heading h2 {font-size:17px;color:var(--gold);display:flex;align-items:center;gap:9px;letter-spacing:.25px}
.panel-heading .icon {width:18px;height:20px;color:#ae8b51}
.panel-heading .eyebrow {font-size:7px;color:#9b8864;white-space:nowrap}
.warrior-card {position:relative;display:flex;gap:16px;min-height:156px;background:linear-gradient(90deg,#0c0b08,#211b12)}
.warrior-card>img {width:133px;height:166px;object-fit:cover;object-position:40% 10%;border-right:1px solid #4f3f25;mask-image:linear-gradient(90deg,#000 80%,#0005)}
.warrior-info {padding:18px 0 12px;min-width:0}
.warrior-info h3 {font-size:21px;color:#e3d1a6;margin:7px 0}
.warrior-info p {font-size:11px;color:#a69a81;font-style:italic;font-family:Georgia,serif;line-height:1.5}
.unit-stats {display:flex;gap:12px;margin-top:13px;font-size:8px;color:#8f8777}
.unit-stats b {font-size:11px;color:#d2c7ad;font-weight:500;margin-right:2px}
.weapon-label {display:inline-block;color:#aa9470;font-size:9px;margin-top:9px}
.owned {position:absolute;right:15px;bottom:14px;text-align:right}
.owned strong {font:28px Georgia,serif;color:var(--gold-bright);display:block}
.owned small {font-size:7px;letter-spacing:1px;color:#9b8864}
.purchase-block {padding:15px 16px 10px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #4a392355}
.price>span {display:block;font-size:7px;letter-spacing:1px;color:#9f8f73;margin-bottom:7px}
.price strong {font-size:12px;color:var(--gold-bright);font-weight:500;display:flex;align-items:center;gap:6px}
.price small {font-size:6px;letter-spacing:1px;color:#80745f;margin-left:1px}
.price .icon {width:14px;height:14px;color:var(--green)}
.price .icon:nth-of-type(2) {color:#c7b18d;margin-left:10px}
.purchase-actions {display:flex;gap:5px}
.summon-choice {min-width:52px;padding:7px 9px;border:1px solid #71552d;border-radius:3px;color:#bba780;background:linear-gradient(#302619,#1b1710);box-shadow:inset 0 1px #d7b46f18,0 2px 5px #0005;display:flex;align-items:baseline;justify-content:center;gap:6px;white-space:nowrap}
.summon-choice span {font-size:8px;text-transform:uppercase;letter-spacing:.7px}
.summon-choice strong {font:15px Georgia,serif;color:var(--gold-bright);font-variant-numeric:tabular-nums}
.summon-choice.max {border-color:#8d6933;background:linear-gradient(#49371d,#302514)}
.summon-choice:hover:not(:disabled) {filter:brightness(1.25);border-color:var(--gold-bright)}
.summon-choice:active:not(:disabled) {transform:translateY(1px)}
.hint {font-size:10px;color:#9f9783;padding:0 16px 13px;line-height:1.5}
.hint.ready {color:var(--green)}
.unit-row {position:relative;display:grid;grid-template-columns:42px minmax(120px,1fr) auto auto;align-items:center;gap:10px;padding:13px 16px;border-top:1px solid #493921;background:linear-gradient(90deg,#13120d,#201a11)}
.unit-row-icon {width:38px;height:42px;display:grid;place-items:center;color:#b6c49a;border:1px solid #53603b;background:#202719;border-radius:3px}
.unit-row-icon .icon {width:25px;height:25px}
.unit-row-icon.ranger {color:#c4ac80;border-color:#705936;background:#2b2216}
.unit-row-copy h3 {font-size:15px;color:#d4c29b;margin:3px 0}
.unit-row-copy h3 small {font:7px 'Segoe UI',sans-serif;color:#8f8268;margin-left:5px}
.unit-row-copy p,.unit-lock {font-size:8px;color:#958b76}
.guardian-price strong {font-size:10px}.unit-row .purchase-actions {justify-self:end}
.unit-lock {position:absolute;left:68px;bottom:3px;color:#a9956e}
.legion-block {border-top:1px solid #493921;background:#100f0bcc;padding:14px 16px}
.line {display:flex;align-items:center;justify-content:space-between;gap:10px}
.legion-block h3 {font-size:16px;color:#c6b18a}
.legion-block h3 span {font:7px 'Segoe UI',sans-serif;color:#91805f;letter-spacing:1px;padding-left:8px}
.badge {font-size:7px;color:#bdcba4;background:#24301a;border:1px solid #415532;padding:3px 5px;border-radius:2px;letter-spacing:.8px}
.badge.idle {color:#a89570;background:#282216;border-color:#514327}
.army-slots {display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin:12px 0}
.army-slot {height:23px;border:1px solid #302c20;background:#0b0c09;border-radius:2px;display:grid;place-items:center;color:#333727}
.army-slot .icon {width:15px;height:15px}
.army-slot.filled {color:#b5c18f;background:linear-gradient(#333a25,#1e2417);border-color:#5a6340;box-shadow:inset 0 0 5px #a4ba5912}
.army-slot.guardian {color:#d2c09a;background:linear-gradient(#49412b,#292418);border-color:#7a6841}
.army-slot.ranger {color:#d5aa72;background:linear-gradient(#49301e,#281b13);border-color:#805333}
.legion-stats {display:flex;gap:17px;font-size:8px;color:#8f856e;border-bottom:1px solid #342b1e;padding-bottom:10px;margin-bottom:10px;align-items:center}
.legion-stats b {font-size:11px;margin-left:4px;color:#d6c7a6;font-weight:500}
.legion-stats button {margin-left:auto;font-size:9px}
.small {font-size:10px;color:#a49a83}
.small strong {color:var(--green);font-weight:500}
progress {appearance:none;height:5px;border:0;width:100%;display:block;margin:8px 0 0;background:#080a07;border-radius:2px;overflow:hidden}
progress::-webkit-progress-bar {background:#080a07;box-shadow:inset 0 1px 2px #000}
progress::-webkit-progress-value {background:linear-gradient(90deg,#455b30,#9fbc74);border-radius:2px;box-shadow:0 0 6px #9fbc7440}
progress::-moz-progress-bar {background:#8ba665}
.territory-row {margin:0 15px;padding:14px 0;border-bottom:1px solid #382e20}
.territory-row:last-child {border-bottom:0}
.territory-name {display:flex;gap:11px;align-items:center}
.territory-name>.icon {width:28px;height:32px;color:#97865e;background:#231e14;border:1px solid #4b3c25;padding:4px;border-radius:2px}
.territory-name h3 {font-size:16px;color:#d1bd90}
.territory-name p {font-size:9px;margin-top:4px}
.territory-name .badge {margin-left:auto}
.territory-detail {display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
.territory-detail span {font-size:10px;color:var(--green)}
.territory-detail small {display:block;font-size:8px;color:#978c75;margin-top:5px}
.territory-detail button {font-size:10px;padding:7px 10px}
.territory-row.locked {opacity:.75}
.territory-row.active h3 {color:#d8c797}
.panel-foot {display:flex;gap:6px;align-items:center;padding:11px 15px;border-top:1px solid var(--line);font-size:8px;color:#9b927d;background:#100f0b}
.panel-foot strong {font-size:9px;color:#b7a67f;margin-left:auto;white-space:nowrap}
.altar-panel {border-color:#514025}
.altar-scene {height:142px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 85%,#41633930,transparent 65%),linear-gradient(#100f0a,#1c1b12)}
.ritual-circle {width:114px;height:114px;border:1px solid #737b404a;border-radius:50%;position:relative;display:grid;place-items:center;background:radial-gradient(#53633928,transparent 70%);box-shadow:0 0 25px #66813a12,inset 0 0 20px #536b3515}
.ritual-circle:before,.ritual-circle:after {content:'';position:absolute;inset:12px;border:1px solid #7a87484a;transform:rotate(45deg)}
.ritual-circle:after {transform:rotate(15deg);inset:20px;border-color:#83965536}
.ritual-circle>.icon {width:46px;height:46px;color:#becc90;filter:drop-shadow(0 0 10px #9cbf5d99);stroke-width:.8;z-index:1}
.ritual-circle>span {position:absolute;top:-9px;color:#b8ad77;background:#11120c;font-size:20px;padding:0 7px}
.altar-stone {position:absolute;width:148px;height:13px;bottom:6px;background:linear-gradient(#625b3a,#302d1d);border:1px solid #81755366;transform:perspective(30px) rotateX(12deg);box-shadow:0 8px 18px #000}
.offering {padding:17px 18px 12px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #302b1b}
.offering .rarity {font-size:7px;letter-spacing:1px}
.offering h3 {color:#d8c593;font-size:22px;margin:5px 0}
.offering p {font-size:10px;max-width:245px}
.offering>strong {font:25px Georgia,serif;color:var(--gold-bright);margin-left:10px}
.altar-value {display:flex;justify-content:space-between;align-items:center;padding:0 18px 14px}
.altar-value>span {font-size:8px;letter-spacing:1px;color:#998768}
.altar-value strong {font-size:17px;color:var(--gold-bright);font-weight:500}
.altar-value .icon {width:17px;height:17px;color:var(--green)}
.altar-value small {font-size:9px;color:#a29171}
.altar-actions {display:flex;gap:8px;margin:0 18px 17px}
.altar-actions button:first-child {flex:1}
.encounter {border-top:1px solid #40341f;padding:14px 18px;background:#11110b}
.encounter .small {font-size:9px}
.forge-content {display:flex;gap:14px;align-items:center;padding:19px 18px 14px}
.forge-icon {width:46px;height:54px;display:grid;place-items:center;background:linear-gradient(135deg,#473621,#19150f);border:1px solid #645133;border-radius:3px;color:#c6ad79}
.forge-icon .icon {width:30px;height:35px}
.forge-content .rarity {color:#a28bad;font-size:7px}
.forge-content h3 {font-size:20px;color:#d6c39a;margin:5px 0}
.forge-content p {font-size:10px}
.upgrade-benefits {display:flex;gap:15px;margin:0 18px 15px;font-size:9px;color:#a99c81}
.upgrade-benefits strong {color:var(--green);font-weight:500}
.forge-bottom {display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid #392e1e}
.forge-bottom>span {color:#c5ad79;font-size:11px}
.reinforcement {border-top:1px solid #493923;padding-top:16px}
.reinforcement>div:first-child {padding:0 18px 14px}
.reinforcement h3 {font-size:17px;color:#d6c39a;margin:5px 0}
.reinforcement p {font-size:9px}
.command-forge {border-top:1px solid #493923;padding-top:16px}
.command-forge>div:first-child {padding:0 18px 14px}
.command-forge h3 {font-size:17px;color:#d6c39a;margin:5px 0}
.command-forge p {font-size:9px}
.panel-description {font-size:10px;padding:12px 16px 3px;color:#998c72}
#goals {padding:0 13px 10px}
.goal {padding:12px 2px;border-bottom:1px solid #352c1d;display:grid;grid-template-columns:20px 1fr auto;gap:9px;align-items:center}
.goal:last-child {border-bottom:0}
.goal-symbol {width:19px;height:19px;border:1px solid #55442a;border-radius:50%;display:grid;place-items:center;color:#a08b5f;font-size:9px;background:#201b12}
.goal.ready .goal-symbol {color:#e3c184;border-color:#b99652;box-shadow:0 0 8px #c3a55e22}
.goal.claimed .goal-symbol {color:#8da770;border-color:#526039;background:#26301c}
.goal h3 {font-family:'Segoe UI',sans-serif;font-size:11px;color:#d6c7a9;font-weight:500}
.goal p {font-size:9px;margin-top:4px;color:#9d927b}
.goal small {display:block;font-size:9px;color:#b89b60;margin-top:5px}
.goal button {font-size:9px;padding:6px 8px;border-color:#856638;background:linear-gradient(#42341c,#2b2213);color:var(--gold-bright);border-radius:3px;border-style:solid;border-width:1px}
.goal-progress {font-size:9px;color:#918264;white-space:nowrap}
.goal.claimed h3,.goal.claimed small {color:#788465}
.goal.claimed p {color:#817963}
.activity {list-style:none;margin:0;padding:0 15px;max-height:250px;overflow:auto;scrollbar-width:thin;scrollbar-color:#56422a transparent}
.activity li {font:10px/1.6 Consolas,monospace;padding:10px 0;border-bottom:1px solid #30291c;color:#bbb095}
.activity time {color:#887856;font-size:9px;display:block;margin-bottom:2px}
.activity li:first-child {color:#c2d0a0}
.activity li:last-child {border:0}
footer {display:flex;justify-content:space-between;gap:12px;margin-top:24px;padding:18px 0 22px;border-top:1px solid #2c2418;font-size:8px;letter-spacing:1.3px;color:#7f735b}
footer b {font-size:6px;padding:0 8px;color:#b59152}
.notice {padding:12px 16px;border:1px solid #5b5831;background:#252819;color:#d3d9b2;border-radius:3px;margin-bottom:15px;font-size:11px;line-height:1.5}
.toast {position:fixed;left:50%;bottom:28px;transform:translateX(-50%);max-width:min(560px,90vw);border:1px solid #9b7d42;background:linear-gradient(#342b1b,#1a180f);box-shadow:0 8px 40px #0009;color:#f0d6a0;padding:15px 22px;border-radius:4px;font-size:12px;z-index:20;text-align:center}
.error {color:#dfa692;font-size:12px;min-height:18px;margin:10px 0}
.loading {min-height:100vh;display:flex;gap:16px;align-items:center;justify-content:center;font:24px Georgia,serif;color:var(--gold)}
.auth-shell {display:grid;grid-template-columns:1.2fr 1fr;min-height:100vh}
.auth-art {background:linear-gradient(0deg,#070807 2%,#07080720 80%),url('/assets/necromancer.png') 70% center/cover;position:relative;border-right:1px solid #493822;min-height:700px}
.auth-art>div {position:absolute;bottom:10%;left:10%;text-shadow:0 2px 15px #000}
.auth-art .eyebrow {color:var(--gold)}
.auth-art h1 {font-size:50px;color:#e5d3ac;margin:16px 0}
.auth-art p {color:#c5b899;font-size:15px}
.auth-panel {max-width:430px;width:100%;padding:50px 38px;margin:auto}
.auth-panel .wordmark {display:block;font-size:32px;margin-bottom:65px}
.auth-panel .eyebrow {display:block;font-size:9px;color:var(--gold)}
.auth-panel h2 {font-size:30px;margin:12px 0;color:#e3d4b4}
.auth-panel>p {font-size:12px}
.auth-panel form {margin-top:28px}
.auth-panel label {display:block;font-size:11px;color:#b7a584;margin:19px 0 8px}
.auth-panel input {width:100%;padding:13px;border:1px solid #514026;background:#18150f;color:#e5d6b7;border-radius:3px}
.auth-panel .primary {width:100%;padding:13px}
.auth-panel>.text-button {display:block;margin:23px auto 36px;color:var(--gold);font-size:11px}
.auth-promise {padding:20px 0;border-top:1px solid var(--line);display:flex;gap:16px;align-items:center}
.auth-promise .icon {color:var(--gold);width:28px;height:28px}
.auth-promise p {font-size:10px}
.auth-promise strong {font-weight:400;color:#b5bc99}
.sr-only {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1600px) {.dominion-banner:before {background-size:auto 750px;background-position:right 29%}.hero-copy {padding-left:35px}.warrior-card>img {width:153px;height:180px}.warrior-card {min-height:180px}.warrior-info {padding-top:25px}.warrior-info h3 {font-size:24px}.panel-heading {padding:15px 18px}}
@media(max-width:1250px) {.game-shell {padding:14px 16px 0}.masthead {padding:15px;gap:16px}.brand-seal {display:none}.wordmark {font-size:23px}.wordmark small {font-size:7px;letter-spacing:2.5px}.resource {min-width:95px;gap:8px}.resource>.icon {width:22px}.resource strong {font-size:26px}.energy-resource strong {font-size:31px}.account {padding-left:15px;min-width:95px}.account strong {font-size:10px}.dashboard {gap:12px;grid-template-columns:minmax(0,1.07fr) minmax(0,1fr) minmax(0,.9fr)}.column {gap:12px}.panel-heading {padding:12px}.panel-heading h2 {font-size:16px}.panel-heading .eyebrow {font-size:6px}.warrior-card {gap:10px}.warrior-card>img {width:104px;height:162px}.warrior-info h3 {font-size:18px}.unit-stats {gap:8px}.purchase-block {padding:13px 12px 10px;gap:5px}.purchase-actions .primary {padding:9px 10px;font-size:11px}.owned {right:12px;bottom:10px}.owned strong {font-size:23px}.owned small {font-size:6px}.goal {gap:7px;grid-template-columns:17px 1fr auto}.goal-symbol {width:17px;height:17px}.goal h3 {font-size:10px}.goal p {font-size:8px}.goal button {padding:5px 6px}.legion-block h3 {font-size:15px}.legion-block h3 span {display:none}.hero-caption {right:18px}.hero-actions small {font-size:8px}}
@media(max-width:1050px) {.dashboard {grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.journal-column {grid-column:1/-1;grid-template-columns:1fr 1fr;align-items:start}.connection {display:none}.account .label {display:none}.command-resource>.icon {display:none}.resource>.icon {display:none}.masthead {gap:20px}.brand .wordmark {font-size:22px}.resource {min-width:80px}.resource .label {font-size:8px}.resource strong {font-size:25px}.account {min-width:90px}.account strong {max-width:115px}.hero-caption {display:none}#step-copy {display:block;margin:4px 0 0}.dominion-banner:before {background-size:auto 610px}.hero-copy h1 {font-size:33px}.goal p {font-size:10px}.goal h3 {font-size:12px}.warrior-card>img {width:137px;height:171px}.warrior-info h3 {font-size:22px}.panel-heading h2 {font-size:18px}.panel-heading .eyebrow {font-size:8px}}
@media(max-width:720px) {html {scroll-padding-top:190px}.game-shell {padding:10px 10px 0}.masthead {display:grid;grid-template-columns:repeat(3,1fr);gap:17px 10px;padding:15px}.brand {grid-column:1/3}.brand .wordmark {font-size:25px}.account {grid-column:3;grid-row:1;padding-left:0;border:0;min-width:0}.account strong {max-width:110px}.resource {min-width:0;border-top:1px solid #44331b;padding-top:10px;grid-row:2}.resource .label {font-size:7px;letter-spacing:1px}.resource strong,.energy-resource strong {font-size:26px}.resource strong em {font-size:14px}.resource small {font-size:9px}.nav-row {margin:10px 0 12px}nav {gap:5px}nav a {font-size:10px;padding:7px 10px}.dominion-banner {min-height:236px}.dominion-banner:before {background-size:auto 510px;background-position:66% 23%;opacity:.75}.dominion-banner:after {background:linear-gradient(90deg,#10110dfa,#10110dd4 34%,#10110d30 90%)}.hero-copy {padding:22px 19px}.hero-copy h1 {font-size:31px}.hero-copy .eyebrow {font-size:8px}.hero-actions {align-items:flex-start;flex-direction:column;gap:9px;margin-top:14px}.hero-actions small {display:none}.hero-actions strong {font-size:9px}.hero-actions .primary {padding:9px 13px}.next-step {padding:11px 10px;gap:9px;flex-wrap:wrap}.next-step>div {flex:1}.next-step strong {font-size:11px}#step-copy {font-size:9px}.next-step .small-button {font-size:10px;padding:8px}.dashboard {display:flex;flex-direction:column;gap:14px}.column {width:100%;gap:14px}.journal-column {display:grid;grid-template-columns:1fr}.warrior-card>img {width:135px;height:172px}.warrior-info {padding-top:22px}.warrior-info h3 {font-size:23px}.owned {bottom:15px;right:17px}.owned strong {font-size:30px}.owned small {font-size:7px}.purchase-block {padding:16px}.purchase-actions .primary {padding:10px 16px;font-size:12px}.legion-block h3 span {display:inline}.army-slot {height:26px}.altar-scene {height:120px}.ritual-circle {width:95px;height:95px}.goal {padding:14px 3px}.goal button {font-size:11px;padding:8px 11px}.panel-heading {padding:14px 16px}.panel-heading h2 {font-size:18px}.panel-heading .eyebrow {font-size:8px}.auth-shell {display:block}.auth-art {display:none}.auth-panel {min-height:100vh;padding:40px 28px}.auth-panel:before {content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(#0b0b09d9,#0b0b09fa),url('/assets/necromancer.png') 70% top/auto 100vh no-repeat}.auth-panel .wordmark {margin-bottom:55px}footer {font-size:7px;flex-direction:column;gap:8px}.toast {font-size:11px;bottom:16px;padding:12px 16px}}
@media(max-width:720px) {.unit-row {grid-template-columns:42px minmax(0,1fr) auto;padding-bottom:30px}.unit-row .guardian-price {display:none}.unit-row .purchase-actions {grid-column:3;grid-row:1/3}.unit-lock {bottom:7px}}
@media(prefers-reduced-motion:no-preference) {html {scroll-behavior:smooth}.toast {animation:toast-in .2s ease-out}.army-slot.new {animation:raised .6s ease-out}@keyframes toast-in {from {opacity:0;translate:0 10px}to {opacity:1;translate:0 0}}@keyframes raised {50% {background:#647c39;box-shadow:0 0 10px #a0c47499}}}

/* Etched resource ledger, bound to the viewport at every screen size. */
html {scroll-padding-top:calc(var(--hud-height, 180px) + 16px)}
.game-shell {padding-top:calc(var(--hud-height, 180px) + 12px)}
.grave-hit-area {position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;z-index:2;cursor:pointer;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.grave-hit-area:focus-visible {outline:2px solid var(--gold-bright);outline-offset:-5px}
.dominion-banner:has(.grave-hit-area:active) {border-color:var(--green)}
.dominion-banner[data-land="forgotten-graveyard"]:before {background-image:url('/assets/graveyard.svg');background-size:cover;background-position:center}
.dominion-banner[data-land="abandoned-crypt"]:before {background-image:url('/assets/crypt.svg');background-size:cover;background-position:center}
.hero-copy h1 {max-width:480px}
.grave-reward {position:absolute;right:12%;top:35%;pointer-events:none;z-index:3;color:#e1f5b9;text-shadow:0 2px 8px #000;font:18px Georgia,serif}
.unit-equipment {margin:0 12px 20px;border:1px solid #493923;border-left:3px solid #718052;background:#11120e}
.unit-equipment h4 {margin:0;padding:12px 16px;font:12px Georgia,serif;letter-spacing:1px;color:var(--gold)}
.unit-equipment .reinforcement:first-child {border-top:0}
.goal-tabs {display:flex;gap:6px;padding:12px 13px 2px}
.goal-tabs button {flex:1;padding:10px 6px;border:1px solid var(--line);background:#100f0c;color:var(--muted);font-size:10px}
.goal-tabs button[aria-pressed="true"] {border-color:#8d7542;color:var(--gold-bright);background:#302717}
.goal-tabs span {margin-left:4px;color:var(--green)}
@media(max-width:1250px) {.masthead {width:calc(100% - 32px)}}
@media(max-width:720px) {.masthead {width:calc(100% - 20px)}.hero-copy h1 {max-width:240px}.grave-reward {right:15px;top:18px;font-size:13px}.hero-actions small {display:block;max-width:260px}.unit-equipment {margin-inline:10px}}
