: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,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible {outline:2px solid var(--gold-bright);outline-offset:3px}
.skip-link {position:absolute;left:12px;top:-60px;z-index:100;background:#1c1911;color:var(--gold-bright);border:1px solid #6d5129;padding:10px 14px;border-radius:3px}
.skip-link:focus {top:12px}
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 {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}
/* Balances tick ten times a second; equal fixed slots keep a growing number from re-spacing the bar. */
.masthead>.resource {flex:1 1 0}
.masthead>.brand,.masthead>.account {flex:none}
.resource>div {min-width:0}
.resource strong,.resource small {white-space:nowrap}
.resource small {display:block;overflow:hidden;text-overflow:ellipsis}
.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)}
.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}
.entitlement {font-size:8px;letter-spacing:1px;color:#a48d61;white-space:nowrap}
.entitlement.premium {color:#cbb9ea}
.hall-rank {font-size:10px;font-weight:700;letter-spacing:1px;color:#e2bf6c;white-space:nowrap;text-decoration:none;border-bottom:1px dotted #6d5a33}
.hall-rank:hover,.hall-rank:focus-visible {color:var(--gold-bright)}
.board-tabs {flex-wrap:wrap}
.board-tabs button {flex:1 1 30%}
.board-tabs button:first-child {flex-basis:100%}
button.entitlement {padding:0;border:0;background:none;cursor:pointer;font-family:inherit;text-align:right}
button.entitlement:hover,button.entitlement:focus-visible {color:var(--gold-bright);text-decoration:underline}
/* Premium: the Eternal Vigil purchase dialog, in the premium note's violet. */
.premium-shop {width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px)}
.premium-shop #premium-status {margin:0;color:#cbb9ea}
.premium-perks {margin:0;padding-left:18px;display:grid;gap:6px;font-size:13px}
.premium-perks b {color:var(--gold-bright)}
.premium-plans {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.premium-plan {display:grid;gap:4px;justify-items:center;padding:14px 8px;border:1px solid #6b5a8a;border-radius:4px;background:linear-gradient(#241b33,#15111d);color:var(--ink);font:inherit;cursor:pointer}
.premium-plan:hover:not(:disabled),.premium-plan:focus-visible {border-color:#cbb9ea;box-shadow:0 0 14px #8f6fd044}
.premium-plan:disabled {cursor:default;opacity:.6}
.premium-plan strong {font-size:13px;color:#e2d4ff}
.premium-plan .price {font-size:22px;color:var(--gold-bright);font-variant-numeric:tabular-nums}
.premium-plan small {font-size:10px;color:var(--muted)}
.premium-shop .hint {margin:0;font-size:11px;color:var(--muted)}
.admin-premium {display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:520px) {.premium-plans {grid-template-columns:1fr}.premium-plan {grid-template-columns:1fr auto;justify-items:start;text-align:left}.premium-plan .price {grid-row:1/3;grid-column:2;align-self:center}}
.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.jpg') 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}
.unit-trait {display:block;color:#9fbc74;font-size:9px;margin-top:8px;line-height:1.4}
.unit-trait b {color:#c9d9a8;font-weight:500;letter-spacing:.5px}
.legion-traits {font-size:9px;color:#8f856e;margin:8px 0 0;line-height:1.5}
.legion-traits b {color:#c9d9a8;font-weight:500}
.legion-wounds {display:flex;align-items:center;gap:10px;margin-top:8px;padding:8px 10px;border:1px solid #6b2f24;background:#2a110dcc;font-size:9px;color:#d9b0a0;line-height:1.5}
.legion-wounds[hidden] {display:none}
.legion-wounds b {color:#f0c9b8;font-weight:500}
.legion-wounds button {margin-left:auto;font-size:9px;white-space:nowrap}
.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}
.line {display:flex;align-items:center;justify-content:space-between;gap:10px}
.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}
.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-row.locked .badge.idle {color:#cdb88c}
.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}
/* Land cards (Lemp, 2026-09-26): the land's own picture, darkened, behind readable text; the numbers wait behind the ?. */
#territory-list {display:grid;gap:10px;padding:12px 15px}
.land-card {position:relative;margin:0;padding:0;border:1px solid #3b3020;border-radius:4px;overflow:hidden;isolation:isolate;background:#12100b}
.land-card:last-child {border-bottom:1px solid #3b3020}
.land-card:before {content:'';position:absolute;inset:0;z-index:-2;background:#1a160f center/cover no-repeat}
.land-card:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0d0c09ec 0%,#0d0c09c4 50%,#0d0c0959 100%)}
.land-card.active {border-color:#6e5530;box-shadow:inset 3px 0 0 #9fbc74}
.land-card.locked {opacity:1}
.land-card.locked:before {filter:grayscale(.85) brightness(.7)}
.land-card-inner {display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head head" "copy copy" "yield actions" "meter actions" "lore lore";gap:6px 14px;padding:14px 16px;align-items:center}
.land-card-head {grid-area:head;display:flex;align-items:center;gap:10px}
.land-title {display:flex;align-items:center;min-width:0}
.land-title h3 {font:22px Georgia,serif;color:#ead9b0;text-shadow:0 1px 3px #000}
.land-card.locked .land-title h3 {color:#bda985}
.land-card-head .badge {margin-left:auto;font-size:10px;padding:3px 7px}
.land-copy {grid-area:copy;margin:0;font-size:13px;color:#bdb096}
.land-yield {grid-area:yield;margin:4px 0 0;font-size:14px;color:#c9bea5}
.land-yield strong {font-size:17px;font-weight:600;color:var(--green)}
.land-yield.sealed-need strong {font-size:15px;color:#e0cc9d}
.land-cost {grid-area:meter;margin:0;font-size:13px;color:#a89c82}
.land-actions {grid-area:actions;display:flex;justify-content:flex-end}
.land-actions button {font-size:13px;padding:9px 14px}
.land-actions .legion-buttons {display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:260px}
.land-actions .legion-buttons .secondary {padding:7px 9px;font-size:13px}
.land-actions .legion-buttons small {font-size:11px;color:#b7a67f}
.land-actions .conquest-status {font-size:13px}
.efficiency-meter {grid-area:meter;display:grid;gap:4px;max-width:420px}
.efficiency-label {display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0;border:0;background:none;color:#a89c82;font-size:10px;letter-spacing:1.2px;text-align:left;cursor:help}
.efficiency-label b {font:18px Georgia,serif;letter-spacing:0;color:#efd298;font-variant-numeric:tabular-nums}
.efficiency-label:hover b,.efficiency-label[aria-expanded="true"] b {text-decoration:underline dotted #8d6933;text-underline-offset:4px}
/* 500% fills the bar: past it no peril touches the legion. Faint ticks mark each 100%. */
.efficiency-meter progress {height:9px;margin:0;border-radius:5px;background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),#ffffff1a calc(20% - 1px) 20%),#080a07}
.efficiency-meter progress::-webkit-progress-bar {background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),#ffffff1a calc(20% - 1px) 20%),#080a07;border-radius:5px}
.efficiency-meter progress::-webkit-progress-value {background:linear-gradient(90deg,#6b4a22,#d4b474);border-radius:5px}
.efficiency-meter progress::-moz-progress-bar {background:linear-gradient(90deg,#6b4a22,#d4b474)}
.efficiency-meter.safe progress::-webkit-progress-value {background:linear-gradient(90deg,#455b30,#9fbc74)}
.efficiency-meter.safe progress::-moz-progress-bar {background:linear-gradient(90deg,#455b30,#9fbc74)}
.efficiency-meter.weak .efficiency-label b {color:#e0a458}
.land-lore {grid-area:lore;display:flex;align-items:center;gap:8px;font-size:12px;color:#b7a67f;max-width:420px}
.land-lore b {color:#d6c7a6;font-weight:600;white-space:nowrap}
.land-lore .lore-bar {flex:1;height:5px;margin:0}
.land-card>.siege-progress,.land-card>.conquest-line {margin:0 16px 14px}
.land-card[data-land="forgotten-graveyard"]:before {background-image:url('/assets/reference/graveyard.jpg')}
.land-card[data-land="abandoned-crypt"]:before {background-image:url('/assets/crypt.svg')}
.land-card[data-land="old-mausoleum"]:before {background-image:url('/assets/reference/lair.jpg')}
.land-card[data-land="forsaken-battlefield"]:before {background-image:url('/assets/reference/battlefield.jpg')}
.land-card[data-land="spirit-hollow"]:before {background-image:url('/assets/reference/wasteland.jpg')}
.land-card[data-land="blood-marshes"]:before {background-image:url('/assets/reference/ritual.jpg')}
.land-card[data-land="hollow-cathedral"]:before {background-image:url('/assets/reference/altar.jpg')}
.land-card[data-land="ashen-ramparts"]:before {background-image:url('/assets/reference/kingdom.jpg');background-position:left top}
.land-card[data-land="cinder-garrison"]:before {background-image:url('/assets/reference/lava-golem.jpg')}
.land-card[data-land="kingdom-of-ash"]:before {background-image:url('/assets/reference/kingdom.jpg')}
/* A peril's slight warning above the lands, and its short note in the corner that never takes a click but its own ×. */
.peril-banner {display:flex;align-items:flex-start;gap:10px;margin:12px 15px 0;padding:10px 12px;border:1px solid #7a4a22;border-left:3px solid #e0a458;border-radius:3px;background:#2a1a0e;color:#ecd2ab;font-size:13px;line-height:1.45}
.peril-banner[hidden] {display:none}
.peril-banner .icon {flex:none;width:18px;height:18px;margin-top:1px;color:#e0a458}
.peril-toast {position:fixed;z-index:55;top:calc(var(--hud-height, 180px) + 12px);right:16px;width:min(340px,calc(100vw - 32px));box-sizing:border-box;padding:12px 36px 12px 14px;border:1px solid #8a5526;border-left:3px solid #e0a458;border-radius:4px;background:#1e140bf2;box-shadow:0 8px 24px #000b;color:#ecd2ab;pointer-events:none;animation:peril-in .3s ease-out}
.peril-toast[hidden] {display:none}
.peril-toast .eyebrow {color:#e0a458;font-size:10px;letter-spacing:1.4px}
.peril-toast p {margin:4px 0;font:15px/1.35 Georgia,serif;color:#f0dfc0}
.peril-toast small {font-size:12px;color:#c9b38e}
.peril-toast-close {position:absolute;top:6px;right:6px;width:26px;height:26px;padding:0;border:0;background:none;color:#c9b38e;font-size:18px;cursor:pointer;pointer-events:auto}
@keyframes peril-in {from {opacity:0;transform:translateY(-6px)}}
@media(prefers-reduced-motion:reduce) {.peril-toast {animation:none}}
@media(max-width:720px) {
  #territory-list {padding:10px}
  .land-card:after {background:linear-gradient(90deg,#0d0c09e6 0%,#0d0c09b8 60%,#0d0c0980 100%)}
  .land-card-inner {grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "copy" "yield" "meter" "lore" "actions";padding:12px}
  .land-title h3 {font-size:20px}
  .land-actions {justify-content:stretch}
  .land-actions>button,.land-actions .legion-buttons {flex:1;max-width:none}
  .land-actions .legion-buttons .secondary {flex:1}
  .efficiency-meter,.land-lore {max-width:none}
  .peril-banner {margin:10px 10px 0}
  .peril-toast {right:10px;width:calc(100vw - 20px)}
}
.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, #ritual-start {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}
.briefing {width:min(480px,calc(100% - 32px));padding:0;border:1px solid #8d6933;border-radius:5px;color:var(--ink);background:radial-gradient(ellipse at 50% 0,#5e45222b,transparent 60%),linear-gradient(#201b12,#100f0c);box-shadow:inset 0 1px #d2a75818,0 18px 60px #000d}
.briefing::backdrop {background:#000c}
.briefing form {display:grid;gap:12px;padding:24px}
.briefing h2 {font-size:23px;color:var(--gold-bright)}
.briefing .toll {border-left:2px solid #8d6933;padding-left:12px;color:var(--ink)}
.briefing h3 {font:600 11px 'Segoe UI',sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);margin:4px 0 -4px}
.welcome {max-height:calc(100dvh - 32px)}
.welcome h2:focus {outline:none}
.ledger {display:grid;grid-template-columns:1fr auto;gap:6px 16px;margin:0;padding:12px 14px;border:1px solid #3b3020;border-radius:3px;background:#0d0c0a8c;font-size:12px}
.ledger dt {color:var(--muted)}
.ledger dd {margin:0;text-align:right;color:var(--green);font:600 13px Georgia,serif;font-variant-numeric:tabular-nums}
.ledger.lost {border-color:#5a2f24;background:#1a0f0b8c}
.ledger.lost dd {color:#d98c73}
.welcome .toll {border-color:#8a3f2c;display:grid;gap:10px}
.welcome .toll p {margin:0}
.welcome .toll .hint {font-size:11px}
.welcome-events {list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:11px;line-height:1.5;color:#c2d0a0}
.welcome-events:empty {display:none}
.welcome-events li:before {content:'◆';color:#b59152;font-size:7px;margin-right:8px;vertical-align:2px}
.premium-note {margin:0;padding:10px 12px;border:1px dashed #6b5a8a;border-radius:3px;background:#1a1426;color:#cbb9ea;font-size:11px}
.premium-note b {color:#e2d4ff}
.briefing-actions {display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:6px}
.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.jpg') 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 h1,.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}.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}.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.jpg') 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}@keyframes toast-in {from {opacity:0;translate:0 10px}to {opacity:1;translate:0 0}}}

/* 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}

.harvest-land[data-land="forgotten-graveyard"]:before,.scene-tap[data-land="forgotten-graveyard"]:before,.scene-note[data-land="forgotten-graveyard"]:before {background-image:url('/assets/graveyard.svg');background-size:cover;background-position:center}
.harvest-land[data-land="abandoned-crypt"]:before,.scene-tap[data-land="abandoned-crypt"]:before,.scene-note[data-land="abandoned-crypt"]:before {background-image:url('/assets/crypt.svg');background-size:cover;background-position:center}
.harvest-land[data-land="old-mausoleum"]:before,.scene-tap[data-land="old-mausoleum"]:before,.scene-note[data-land="old-mausoleum"]:before {background-image:url('/assets/reference/lair.jpg');background-size:cover;background-position:center}
.harvest-land[data-land="forsaken-battlefield"]:before,.scene-tap[data-land="forsaken-battlefield"]:before,.scene-note[data-land="forsaken-battlefield"]:before {background-image:url('/assets/reference/battlefield.jpg');background-size:cover;background-position:center}
.harvest-land[data-land="spirit-hollow"]:before,.scene-tap[data-land="spirit-hollow"]:before,.scene-note[data-land="spirit-hollow"]:before {background-image:url('/assets/reference/wasteland.jpg');background-size:cover;background-position:center}
.harvest-land[data-land="blood-marshes"]:before,.scene-tap[data-land="blood-marshes"]:before,.scene-note[data-land="blood-marshes"]:before,.battle-scene[data-land="blood-marshes"]:before {background-image:url('/assets/reference/ritual.jpg');background-size:cover;background-position:center}
.harvest-land[data-land="hollow-cathedral"]:before,.scene-tap[data-land="hollow-cathedral"]:before,.scene-note[data-land="hollow-cathedral"]:before,.battle-scene[data-land="hollow-cathedral"]:before {background-image:url('/assets/reference/altar.jpg');background-size:cover;background-position:center}
.harvest-land[data-land="ashen-ramparts"]:before,.scene-tap[data-land="ashen-ramparts"]:before,.scene-note[data-land="ashen-ramparts"]:before,.battle-scene[data-land="ashen-ramparts"]:before {background-image:url('/assets/reference/kingdom.jpg');background-size:cover;background-position:left top}
.harvest-land[data-land="cinder-garrison"]:before,.scene-tap[data-land="cinder-garrison"]:before,.scene-note[data-land="cinder-garrison"]:before,.battle-scene[data-land="cinder-garrison"]:before {background-image:url('/assets/reference/lava-golem.jpg');background-size:cover;background-position:center}
.harvest-land[data-land="kingdom-of-ash"]:before,.scene-tap[data-land="kingdom-of-ash"]:before,.scene-note[data-land="kingdom-of-ash"]:before,.battle-scene[data-land="kingdom-of-ash"]:before {background-image:url('/assets/reference/kingdom.jpg');background-size:cover;background-position:center}
.dominion-banner.chapter-two[hidden] {display:none}
.dominion-banner.chapter-two h2 {margin:0;font:28px Georgia,serif;font-weight:400;color:#e8dcc0}
.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:720px) {.hero-copy h1 {max-width:240px}.hero-actions small {display:block;max-width:260px}.unit-equipment {margin-inline:10px}}

/* One pinned ledger for resources and all quick-navigation links. */
.pinned-hud {position:fixed;top:0;z-index:15;left:50%;transform:translateX(-50%);width:calc(100% - 48px);max-width:1692px;background:#0b0b09;box-shadow:0 8px 24px #000b}
.pinned-hud .masthead {box-shadow:none}
.pinned-hud .nav-row {margin:0;padding:9px 0}
.pinned-hud nav {flex-wrap:nowrap;overflow-x:auto;min-width:0;scrollbar-width:thin;scrollbar-color:#71552d #100f0c;padding:3px}
.pinned-hud nav a {flex-shrink:0}
.undead-card {border-bottom:1px solid #574328;margin-bottom:18px}
.undead-card .warrior-card {min-height:190px;gap:14px}
.undead-card .warrior-card>img {width:36%;height:190px;object-fit:cover;object-position:center 20%;flex-shrink:0}
.undead-card .warrior-info {padding:18px 12px 40px 0}
.undead-card .warrior-info h3 {font-size:22px}
.undead-card .unit-stats {flex-wrap:wrap;gap:8px 12px}
.undead-card .owned {bottom:10px;display:flex;align-items:baseline;gap:5px}
.undead-card .owned strong {font-size:24px}
.undead-card .purchase-block {display:block;padding:14px 14px 10px}
.undead-card .price {margin-bottom:12px}
.undead-card .price>small {display:block;margin-top:5px;font-size:9px;letter-spacing:0}
.undead-card .purchase-actions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.undead-card .summon-choice {display:grid;grid-template-columns:auto auto;gap:4px;padding:9px 4px;min-width:0;white-space:normal}
.summon-choice [data-summon-cost] {grid-column:1/-1;font-size:8px;line-height:1.5;overflow-wrap:anywhere;color:#bdb197}
.undead-card .unit-equipment {margin:0 14px 16px}
@media(max-width:1250px) {.pinned-hud {width:calc(100% - 32px)}}
@media(max-width:720px) {.pinned-hud {width:calc(100% - 20px)}.pinned-hud .nav-row {padding:5px 0}.undead-card .warrior-info h3 {font-size:21px}}

.roster-panel {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px;align-items:stretch}
.roster-panel>.panel-heading,.roster-panel>.legion-hall {grid-column:1/-1}
.roster-panel>.undead-card {margin:0;min-width:0;border-right:1px solid var(--line);display:flex;flex-direction:column}
.roster-panel>.undead-card:last-of-type {border-right:0}
.roster-panel .warrior-info {flex:1}
.roster-panel .unit-equipment {flex:1}
@media(max-width:1050px) {.roster-panel {grid-template-columns:1fr}.roster-panel>.undead-card {border-right:0}}

/* Souls join the etched ledger; four balances share its mobile row. */
.soul-resource strong,.soul-resource>.icon {color:var(--green)}
@media(max-width:720px) {
  .masthead {grid-template-columns:minmax(0,1.45fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.1fr);gap:12px 6px}
  .account {grid-column:3/5}
  .resource {gap:4px}
  .resource>.icon {display:none}
  .resource strong,.energy-resource strong {font-size:clamp(16px,calc(6.9vw - 5px),22px)}
  .resource strong em {font-size:.64em}
  .resource small {font-size:8px}
}

@media(min-width:721px) and (max-width:1050px) {
  .masthead {gap:10px;padding:12px}
  .resource {min-width:76px}
  .brand .wordmark {font-size:19px}
  .wordmark small {letter-spacing:1px}
  .account {min-width:80px;padding-left:8px}
}
.conquest-line {display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:9px;border-top:1px dashed #3f3322;font-size:9px;color:#8f856e;line-height:1.6}
.conquest-line b {color:#c6b18a;font-weight:500;letter-spacing:.5px}
.conquest-line .met {color:#9fbc74}
.conquest-line .unmet {color:#d98c75}
.conquest-line button {margin-left:auto;white-space:nowrap}
.conquest-line.active b {color:#c9d9a8}
.ritual {border-top:1px solid #40341f;padding-top:12px}
.ritual-heading {display:flex;justify-content:space-between;align-items:center;margin:0 18px 6px}
.ritual-heading strong {font-size:10px;color:var(--gold-bright);font-weight:500;letter-spacing:1px}
.ritual-copy {font-size:9px;color:#8f856e;line-height:1.5;margin:0 18px 10px}
.ritual-stats {display:grid;grid-template-columns:repeat(2,1fr);gap:4px 12px;margin:0 18px 8px;font-size:8px;color:#8f856e;letter-spacing:.5px}
.ritual-stats b {font-size:11px;color:#d6c7a6;font-weight:500;margin-left:4px}
#ritual-stability {display:block;width:calc(100% - 36px);margin:0 18px 8px}
.ritual-automation {display:flex;align-items:center;gap:8px;margin:0 18px 10px;font-size:9px;color:#b9ab8c}
.ritual-automation[hidden] {display:none}
.ritual-automation label {display:flex;align-items:center;gap:6px}
.ritual-automation select {margin-left:auto;background:#15130e;color:#d6c7a6;border:1px solid #4b3c24;font:inherit;padding:3px 6px}
.research-list {padding:4px 16px 14px}
.research-item {border-top:1px solid #342b1e;padding:12px 0 4px}
.research-item:first-child {border-top:0}
.research-item h3 {font-size:15px;color:#d6c7a6;margin:3px 0 2px}
.deathbind p small {color:#978c75}
.deathbind progress {width:100%;margin-top:4px}
.artifact-shelf {padding:12px 16px 14px;border-top:1px solid var(--line)}
.artifact-shelf h3 {font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#b7a67f;margin:0 0 8px}
.artifact-list {list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
.artifact-list li:not(.relic-note) {display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:7px 9px;border:1px solid var(--line);font-size:10px;color:#cfc3a6}
.artifact-list li strong {color:var(--green)}
.artifact-list li small {grid-column:1/-1;color:#978c75;font-size:9px}
.artifact-list li.perfect {border-color:#b08d3c}
.artifact-list li.perfect strong {color:#e2bd5a}
.research-item p {font-size:9px;color:#8f856e;line-height:1.5;margin:0}
.research-item .research-next {color:#9fbc74;margin-top:3px}
.territory-detail .legion-buttons {display:flex;gap:6px}
.relic-list {margin:0 18px 14px;display:grid;gap:6px}
.relic-row {display:flex;align-items:center;gap:8px;font-size:10px;color:#c6b18a}
.relic-row small {font-size:9px;color:#8f856e}
.relic-row b {color:var(--gold-bright);font-weight:500}
.relic-row .relic-buttons {margin-left:auto;display:flex;gap:4px}
.relic-row button {font-size:9px;padding:3px 8px}
.relic-note {font-size:9px;color:#8f856e;line-height:1.5}
.territory-detail small.sigil-drops {color:#b7a67f}
.sigil-stash {padding:12px 15px;border-top:1px solid var(--line)}
.sigil-stash h3 {font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#b7a67f;margin:0 0 8px}
.sigil-list {list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.sigil-list li:not(.relic-note) {display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--line);font-size:9px;color:#cfc3a6}
.sigil-list li.rare {border-color:#6d5a2e}
.sigil-list li strong {color:var(--green)}
#ritual-offering {background:#15130e;color:#d6c7a6;border:1px solid #4b3c24;font:inherit;font-size:10px;padding:0 6px;max-width:44%}
#ritual-offering[hidden] {display:none}
/* Ritual of Ascension: a live percentage that burns violet from 200% and blood-gold from 500%. */
.ritual-heading .ritual-mute {margin-left:auto;margin-right:12px;font-size:9px}
.ritual-percent {display:block;text-align:center;font-size:34px;font-weight:500;color:var(--gold-bright);letter-spacing:1px;margin:2px 18px 8px;transition:color .4s,text-shadow .4s}
.ritual-next {margin:0 18px 4px;font-size:8px;color:#8f856e;letter-spacing:.5px}
.ritual-pulse {display:block;width:calc(100% - 36px);height:4px;margin:0 18px 8px}
.altar-panel.ritual-burning .ritual-circle {box-shadow:0 0 34px #8fb04a44,inset 0 0 26px #8fb04a33}
.altar-panel.ritual-empowered {border-color:#7a4fb0;box-shadow:0 0 22px #7a4fb033}
.altar-panel.ritual-empowered .altar-scene {background:radial-gradient(ellipse at 50% 80%,#6b3fa855,transparent 68%),linear-gradient(#120d18,#1d1426)}
.altar-panel.ritual-empowered .ritual-circle {border-color:#a77be3aa;box-shadow:0 0 40px #9a6ae066,inset 0 0 30px #9a6ae055}
.altar-panel.ritual-empowered .ritual-circle>.icon {color:#d9c2ff;filter:drop-shadow(0 0 12px #b58cffcc)}
.altar-panel.ritual-empowered .ritual-percent,.altar-panel.ritual-empowered .ritual-heading strong {color:#d4b8ff;text-shadow:0 0 14px #a16eff99}
.altar-panel.ritual-empowered #ritual-claim {border-color:#9b72d6;background:linear-gradient(#4a2f6e,#2a1a40);color:#eadcff}
.altar-panel.ritual-ascendant {border-color:#d0452a;box-shadow:0 0 30px #e0602a55}
.altar-panel.ritual-ascendant .altar-scene {background:radial-gradient(ellipse at 50% 80%,#c2381c77,transparent 70%),linear-gradient(#1a0907,#2b0f09)}
.altar-panel.ritual-ascendant .ritual-circle {border-color:#ffb347cc;box-shadow:0 0 60px #ff6a2a88,inset 0 0 36px #ffb34766}
.altar-panel.ritual-ascendant .ritual-circle>.icon {color:#ffe3a3;filter:drop-shadow(0 0 16px #ff8a3dee)}
.altar-panel.ritual-ascendant .ritual-percent,.altar-panel.ritual-ascendant .ritual-heading strong {color:#ffd27a;text-shadow:0 0 12px #ff5a1fcc,0 0 28px #ff2a0088}
.altar-panel.ritual-ascendant #ritual-claim {border-color:#e8913a;background:linear-gradient(#7a2412,#44120a);color:#ffe7b5}
@media(prefers-reduced-motion:no-preference) {
  .altar-panel.ritual-burning .ritual-circle {animation:ritual-spin 12s linear infinite}
  .altar-panel.ritual-empowered .ritual-circle {animation:ritual-spin 6s linear infinite}
  .altar-panel.ritual-ascendant .ritual-circle {animation:ritual-spin 2.5s linear infinite}
  .altar-panel.ritual-ascendant .ritual-percent {animation:ritual-flare 1.2s ease-in-out infinite}
  @keyframes ritual-spin {to {rotate:360deg}}
  @keyframes ritual-flare {50% {text-shadow:0 0 20px #ff7a2aff,0 0 44px #ff2a00bb;scale:1.06}}
}
/* Dark achievements and the Hall of the Damned. */
.achievement-list {padding:0 13px 10px}
.achievement .rarity {font-size:7px}
.achievement small {color:#9fbc74}
.achievement.claimed h3 {color:var(--gold-bright)}
.achievement.claimed small,.achievement.claimed .goal-progress {color:#9fbc74}
.board-list {list-style:none;margin:0;padding:8px 15px 4px}
.board-list li {display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:7px 2px;border-bottom:1px solid #30291c;font-size:10px;color:#bbb095}
.board-list li:last-child {border-bottom:0}
.board-list li.you {color:var(--gold-bright)}
.board-list li b {font-weight:500;color:#d6c7a6}
.board-list .board-rank {color:#887856;font-size:9px}
.board-list .board-name {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board-list .board-empty {display:block;color:#8f856e}
#board-you {padding-top:4px;padding-bottom:12px}
.goal-tabs+.goal-tabs {padding-top:4px}
.board-season {padding-top:10px;padding-bottom:0}
.board-list button.board-name {min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;text-decoration:underline dotted #6f5f40;text-underline-offset:3px}
.board-list button.board-name:hover,.board-list button.board-name:focus-visible {color:var(--gold-bright)}
.board-last {padding-top:0;padding-bottom:12px;color:#a8946a}
.profile #profile-realm {color:#bbb095}

/* Etched inventory ledger: one action reserves the entire stack. */
.offering-ledger {margin:0 14px 16px;border-top:1px solid #594224}
.offering-ledger-heading {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0 8px}
.offering-ledger-heading h3 {font:700 16px Georgia,serif;color:var(--gold);margin:0}
.offering-ledger-heading>span {font-size:10px;color:var(--muted)}
.offering-columns,.offering-row {display:grid;grid-template-columns:minmax(0,1fr) 44px 65px 72px;gap:6px;align-items:center}
.offering-columns {font-size:8px;color:var(--muted);padding:6px 0;border-bottom:1px solid #594224}
.offering-ledger .relic-list {padding:0;max-height:310px;overflow-y:auto}
.offering-note {margin:8px 0 0;color:#d6a77a}
.offering-row {padding:10px 0;border-bottom:1px solid #59422455;font-size:11px}
.offering-name {display:flex;gap:7px;align-items:center;min-width:0;color:#d8c79e}
.offering-name .icon {width:19px;min-width:19px;height:22px;color:var(--gold)}
.offering-name strong {font:700 12px Georgia,serif;overflow-wrap:anywhere}
.offering-count,.offering-worth {text-align:right;font-variant-numeric:tabular-nums}
.offering-worth {color:var(--gold)}
.offering-row button {padding:6px 4px;font-size:10px;color:#d6a77a;border-color:#795034}
.auto-targets {display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.auto-targets button {font-size:10px;padding:5px 7px}
.auto-targets [aria-pressed="true"] {color:var(--gold-bright);border-color:var(--gold);background:#49371e}
.ritual-automation {display:block}
.auto-target-field {display:flex;align-items:center;gap:5px;margin-top:8px}
.auto-target-field input {width:84px;padding:5px 7px;background:#15130e;color:var(--gold-bright);border:1px solid #4b3c24;border-radius:3px;text-align:right;font-variant-numeric:tabular-nums}
.auto-target-field input:focus {outline:1px solid var(--gold);border-color:var(--gold)}
.auto-target-field button {font-size:10px;padding:5px 9px}
/* Guided tutorial: the elder necromancer's speech and a spotlight on the part being explained. */
.account-actions {display:flex;gap:12px;align-items:center}
.tutorial {position:fixed;inset:0;z-index:40}
.tutorial:not(.spotlit) {background:#050504c7}
.tutorial-spotlight {position:fixed;display:none;border:1px solid var(--gold-bright);border-radius:5px;box-shadow:0 0 0 9999px #050504c2,0 0 26px #d4b47455,inset 0 0 18px #d4b47433;pointer-events:none}
.tutorial.spotlit .tutorial-spotlight {display:block}
.tutorial-card {position:fixed;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 32px));display:grid;grid-template-columns:104px minmax(0,1fr);gap:18px;padding:18px;border:1px solid #8d6933;border-radius:5px;background:linear-gradient(135deg,#342b1bf2,#15130df7 62%);box-shadow:0 14px 50px #000d,inset 0 1px #d7b46f33}
.tutorial-card[data-place=bottom] {bottom:24px}
.tutorial-card[data-place=top] {top:24px}
.tutorial-card[data-place=center] {top:50%;transform:translate(-50%,-50%)}
.tutorial-portrait {width:104px;height:124px;border:1px solid #6d5129;border-radius:4px;background:url('/assets/necromancer.jpg') -300px -30px/436px auto no-repeat #0b0b09;box-shadow:inset 0 0 22px #000c,0 0 18px #91b87722}
.tutorial-copy {display:flex;flex-direction:column;gap:8px;min-width:0}
.tutorial-copy .eyebrow {display:flex;justify-content:space-between;gap:10px;color:#aa8b55}
.tutorial-copy .eyebrow b {color:var(--muted);font-weight:600}
.tutorial-copy h2 {font-size:22px;color:var(--gold-bright)}
.tutorial-copy p {font-size:13px;color:var(--ink)}
.tutorial-actions {display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:6px}
.tutorial-actions .text-button {margin-right:auto;font-size:11px}
@media(max-width:720px) {
  .tutorial-card {grid-template-columns:64px minmax(0,1fr);gap:12px;padding:14px;width:calc(100% - 20px)}
  .tutorial-card[data-place=bottom] {bottom:10px}
  .tutorial-card[data-place=top] {top:10px}
  .tutorial-portrait {width:64px;height:76px;background-position:-185px -18px;background-size:268px auto}
  .tutorial-copy h2 {font-size:19px}
  .tutorial-copy p {font-size:12px}
  .tutorial-actions {flex-wrap:wrap;gap:8px}
}

/* The legion hall: the shared command bar, a card per legion, and the muster that moves undead between them. */
.legion-hall {border-top:1px solid #493921;background:linear-gradient(#100f0bee,#0c0b09);padding:16px}
[data-class=warrior] {--unit:#b5c18f}
[data-class=guardian] {--unit:#d8c393}
[data-class=ranger] {--unit:#cf8a58}
[data-class=mage] {--unit:#a894c4}
.command-strip {margin-bottom:14px}
.legion-hall>.legion-wounds {margin:0 0 14px}
.command-strip .rarity {color:#91805f;font-size:7px;letter-spacing:1.4px}
.command-split {font-size:10px;color:#8f856e;text-align:right}
.command-split b {color:#d6c7a6;font-weight:500;font-variant-numeric:tabular-nums}
.command-bar {display:flex;gap:4px;height:12px;margin-top:7px;padding:2px;background:#080a07;border:1px solid #2c261a;border-radius:2px;box-shadow:inset 0 1px 3px #000}
.command-legion {display:flex;gap:1px;min-width:0;transition:width .5s ease-out}
.command-legion i {display:block;min-width:2px;background:var(--unit);opacity:.8;border-radius:1px}
.command-legion.legion-2 i {background:repeating-linear-gradient(135deg,#0000 0 3px,#0007 3px 5px),var(--unit)}
.legion-cards {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.legion-card {position:relative;display:flex;flex-direction:column;min-width:0;padding:14px 16px 10px;border:1px solid #3b3020;border-radius:3px;background:radial-gradient(ellipse at 0 0,#2e271840,transparent 60%),#12110d;box-shadow:0 6px 18px #0006}
.legion-card:before {content:'';position:absolute;inset:3px;border:1px solid #d4b47412;pointer-events:none}
.legion-card-head {display:flex;align-items:center;gap:12px}
.legion-card-head h3 {font-size:19px;color:#e2cc9b}
.legion-card-head .badge {margin-left:auto;align-self:flex-start}
.legion-numeral {flex-shrink:0;width:36px;height:40px;display:grid;place-items:center;font:15px Georgia,serif;color:var(--gold);background:linear-gradient(#755b31,#3d2f19);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);position:relative}
.legion-numeral:before {content:'';position:absolute;inset:1px;background:radial-gradient(#2b2416,#110f0a);clip-path:inherit;z-index:-1}
.legion-numeral {isolation:isolate}
.legion-epithet,.legion-label {display:block;font-size:7px;letter-spacing:1.4px;color:#7d7058;font-weight:600;margin-top:3px}
.legion-post {display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:16px}
.legion-post>div:first-child strong {display:block;font:15px Georgia,serif;color:#d6c7a6;margin-top:3px}
.legion-yield {text-align:right}
.legion-yield strong {display:block;font:22px Georgia,serif;color:#b9d49a;font-variant-numeric:tabular-nums;line-height:1}
.legion-yield small {font-size:9px;color:#8f856e}
.legion-card progress {height:6px;margin-top:8px}
.legion-ranks {list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.rank {display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:11px;align-items:center;padding:6px 10px 6px 7px;border:1px solid #2f2819;border-left:2px solid var(--unit);border-radius:2px;background:linear-gradient(90deg,color-mix(in srgb,var(--unit) 13%,transparent),transparent 75%),#0d0c09}
.unit-portrait {display:block;object-fit:cover;object-position:center 18%;border:1px solid var(--unit);border-radius:2px;background:#0b0a08;box-shadow:0 0 0 2px #0d0c09,0 2px 6px #000a;filter:saturate(.85)}
.rank .unit-portrait {grid-row:1/3;width:36px;height:45px}
.rank span {align-self:end;font-size:10px;color:#c6b18a}
.rank strong {grid-row:1/3;grid-column:3;font:21px Georgia,serif;color:var(--ink);font-variant-numeric:tabular-nums}
.rank small {align-self:start;margin-top:2px;font-size:8px;color:#7d7058;letter-spacing:.5px;line-height:1.4}
.rank em {color:#e09a80;font-style:normal}
.rank.empty {opacity:.45}
.rank.empty .unit-portrait {filter:grayscale(1)}
.legion-stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:10px;background:#2f2819;border:1px solid #2f2819;border-radius:2px;overflow:hidden}
.legion-stats span {display:flex;flex-direction:column;gap:2px;padding:6px 9px;background:#0f0e0b}
.legion-stats small {font-size:7px;letter-spacing:1.2px;color:#7d7058;font-weight:600}
.legion-stats b {font-size:14px;color:#d6c7a6;font-weight:500;font-variant-numeric:tabular-nums}
.legion-card .legion-traits {font-size:10px;margin-top:10px}
.legion-foot {display:flex;justify-content:flex-end;margin-top:auto;padding-top:8px}
.legion-locked {flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:14px 0 6px;padding:22px 14px;text-align:center;border:1px dashed #3b3020;background:repeating-linear-gradient(135deg,#ffffff04 0 6px,transparent 6px 12px)}
.legion-locked .icon {width:34px;height:34px;color:#6b5a3a}
.legion-locked .legion-traits {margin:0;font-size:10px;max-width:280px}
.legion-locked button {white-space:nowrap}
.legion-muster {margin-top:14px;padding:12px 14px;border:1px solid #3b3020;border-radius:3px;background:#0e0d0a}
.legion-muster h4 {margin:0;font:15px Georgia,serif;color:#c6b18a;font-weight:400}
.legion-transfer {display:grid;margin-top:8px}
.muster-row {display:grid;grid-template-columns:150px 48px auto auto 48px;justify-content:center;align-items:center;gap:6px 10px;padding:6px 0;border-top:1px solid #221d14}
.muster-head {border-top:0;padding:0 0 2px;font-size:7px;letter-spacing:1.3px;color:#7d7058;font-weight:600;text-transform:uppercase}
.muster-head span {text-align:center}.muster-head .to-first {text-align:right}.muster-head .to-second {text-align:left}
.muster-name {display:flex;align-items:center;gap:8px;font-size:11px;color:#c6b18a}
.muster-name .unit-portrait {width:24px;height:30px}
.muster-count {text-align:center;font:17px Georgia,serif;color:var(--ink);font-variant-numeric:tabular-nums}
.transfer-buttons {display:flex;gap:4px}
.transfer-buttons.to-first {justify-content:flex-end}
.transfer-buttons button {font-size:10px;padding:5px 7px;min-width:40px;white-space:nowrap}
@media(max-width:720px) {
  .legion-hall {padding:14px 12px}
  .legion-cards {grid-template-columns:1fr}
  .legion-card {padding:14px 12px 10px}
  .legion-epithet {font-size:7px}
  .muster-row {grid-template-columns:30px auto auto 30px;justify-content:space-between;gap:6px}
  .muster-name {grid-column:1/-1}
  .muster-head>span:first-child {display:none}
  .transfer-buttons button {min-width:0;padding:6px 7px}
}
/* An ink-and-brass ledger within the existing grimoire, with open bracket corners. */
.binding-ledger {position:relative;margin:12px 0;padding:14px;background:linear-gradient(100deg,#30291c88,#15130d33);border-block:1px solid #71603a}
.binding-ledger::before,.binding-ledger::after {content:"";position:absolute;width:9px;height:9px;border:1px solid var(--gold-bright);pointer-events:none}
.binding-ledger::before {top:-1px;left:0;border-right:0;border-bottom:0}
.binding-ledger::after {bottom:-1px;right:0;border-left:0;border-top:0}
.binding-ledger .line {flex-wrap:wrap;gap:6px}
.binding-ledger strong {color:var(--gold-bright);font-family:Georgia,serif;letter-spacing:.08em}
.binding-ledger p,.binding-ledger span,.binding-gate {font-size:12px;color:var(--ink)}
.binding-ledger progress {width:100%;margin:8px 0}

.artifact-controls {grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.artifact-controls button {min-height:36px;white-space:normal;text-align:left}
#artifact-slots {display:grid;gap:10px;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.artifact-list li small {font-size:11px;color:var(--muted)}

.patron-ledger {padding:14px 16px;border-top:1px solid var(--line)}
.patron-ledger h3 {font-family:Georgia,serif;color:var(--gold-bright);font-size:13px}
#patron-list {display:grid;gap:12px;margin:12px 0}
#patron-list>div {padding-left:10px;border-left:2px solid #71603a}
#patron-list p,#patron-list strong,#grave-luck {font-size:12px}
#patron-list p {color:var(--muted);margin:4px 0}
.collection .artifact-list {margin:8px 0;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.collection progress {width:100%;margin-top:4px}
.collection.locked h3 {color:#9d9277}
.binding-controls {display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:10px;color:#b7a67f}
.binding-controls label {display:flex;align-items:center;gap:6px}
.binding-controls input {width:64px}
.binding-controls button {font-size:10px;padding:6px 9px}
.deathbind .bind-buttons {display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}

/* The Delve: a shared descent with a wager box beside it. */
.delve-panel {margin-top:16px}
.delve-panel>.panel-description {padding:12px 16px 0}
.delve-history {list-style:none;display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:12px 16px 0}
.delve-chip {font-size:10px;padding:3px 8px;border-radius:10px;border:1px solid #4a4436;color:#b8b09c;font-variant-numeric:tabular-nums;white-space:nowrap}
.delve-chip.magic {border-color:#4c5fb0;color:#9fb0ff}
.delve-chip.rare {border-color:#b5a53a;color:#f1e27a}
.delve-chip.mythic {border-color:#4f9a43;color:#9be38c}
.delve-chip.complete {border-color:var(--gold-bright);color:#1a1206;background:var(--gold-bright);font-weight:700}
.delve-body {display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;padding:12px 16px 16px}
.delve-scene {position:relative;min-height:320px;border:1px solid #4b3a22;border-radius:4px;overflow:hidden;background:#0b0906}
.delve-scene canvas {position:absolute;inset:0;width:100%;height:100%;display:block}
.delve-overlay {position:absolute;left:0;right:0;top:34%;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;pointer-events:none;padding:0 12px}
.delve-overlay strong {font-family:Georgia,'Times New Roman',serif;font-size:42px;font-weight:400;color:var(--gold-bright);text-shadow:0 2px 12px #000,0 0 20px #d4b47455;font-variant-numeric:tabular-nums;letter-spacing:1px}
.delve-overlay span {font-size:11px;letter-spacing:2px;color:#e8d9b6;text-shadow:0 1px 6px #000;font-weight:600}
.delve-overlay em {font-size:12px;color:#c9bfa8;text-shadow:0 1px 6px #000;max-width:420px}
.delve-scene[data-phase="ended"] .delve-overlay strong {color:#e0493c;font-size:34px;text-shadow:0 2px 14px #000,0 0 22px #b3121288;text-transform:uppercase}
.delve-scene.complete .delve-overlay strong {color:#ffd27a;text-shadow:0 0 14px #ff5a1fcc,0 0 30px #ff2a0088}
.delve-scene[data-phase="betting"] .delve-overlay strong {font-size:56px}
.delve-bet {display:flex;flex-direction:column;gap:8px}
.delve-bet label,.delve-bet .line span {font-size:9px;letter-spacing:1.5px;color:var(--muted);font-weight:600}
.delve-bet .line {display:flex;justify-content:space-between;align-items:center}
.delve-amount,.delve-target {display:flex;gap:5px;align-items:center}
.delve-amount input,.delve-target input {flex:1;min-width:0;padding:8px 9px;background:#15130e;color:var(--gold-bright);border:1px solid #4b3c24;border-radius:3px;text-align:right;font-variant-numeric:tabular-nums}
.delve-target input {max-width:110px;flex:0 1 110px}
.delve-amount .secondary {padding:8px 9px}
.delve-auto {display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0!important;font-size:12px!important;color:var(--ink)!important;font-weight:400!important}
.delve-bet .primary {width:100%;padding:12px}
.delve-bet .primary.cash-out {border-color:#72884e;background:linear-gradient(#4a5a2b,#2a3419);color:#e9f6cf}
.delve-status {min-height:18px;font-size:12px;color:var(--ink)}
.delve-bet h3 {font-size:13px;color:var(--gold);margin-top:4px}
.delve-bettors {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:170px;overflow:auto}
.delve-bettors li {display:grid;grid-template-columns:minmax(0,1fr) auto 86px;gap:8px;font-size:11px;padding:4px 6px;background:#12100b;border-radius:2px;font-variant-numeric:tabular-nums}
.delve-bettors li span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.delve-bettors li.you {outline:1px solid #6d5129}
.delve-bettors li em {font-style:normal;text-align:right;color:var(--muted)}
.delve-bettors li em.out {color:var(--green)}
.delve-bettors li em.lost {color:#d0584c}
.delve-bettors li.empty {display:block;color:var(--muted)}
.delve-record,.delve-note {font-size:11px}
.delve-locked {font-size:12px;color:#e0b070;border:1px solid #6d5129;padding:8px;border-radius:3px}
@media(max-width:900px) {.delve-body {grid-template-columns:1fr}.delve-scene {min-height:260px}}
@media(max-width:720px) {.delve-overlay strong {font-size:34px}.delve-scene[data-phase="ended"] .delve-overlay strong {font-size:24px}.delve-panel>.panel-description {font-size:12px}}
/* Schema 31: up to five legion cards, each with a farming route of numbered dropdowns. */
.legion-extra {display:contents}
.command-legion.legion-3 i {background:repeating-linear-gradient(45deg,#0000 0 3px,#0007 3px 5px),var(--unit)}
.command-legion.legion-4 i {background:repeating-linear-gradient(90deg,#0000 0 3px,#0008 3px 4px),var(--unit)}
.command-legion.legion-5 i {background:radial-gradient(#0008 1px,#0000 1.5px) 0 0/4px 4px,var(--unit)}
.command-legion.legion-6 i {background:repeating-linear-gradient(0deg,#0000 0 3px,#0008 3px 4px),var(--unit)}
.command-legion.legion-7 i {background:repeating-linear-gradient(45deg,#0007 0 1px,#0000 1px 4px),repeating-linear-gradient(135deg,#0007 0 1px,#0000 1px 4px),var(--unit)}
.legion-route {margin-top:12px;padding-top:10px;border-top:1px solid #2f2819}
.route-head,.route-foot {display:flex;align-items:center;justify-content:space-between;gap:10px}
.route-slots {font-size:9px;color:#8f856e;letter-spacing:.6px}
.route-list {list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.route-stop {display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:6px 8px;padding:6px 8px;border:1px solid #33291b;border-radius:3px;background:#0f0e0b}
.route-stop.next {border-color:#6d5a33;box-shadow:inset 3px 0 var(--gold)}
.route-num {font:13px Georgia,serif;color:var(--gold);text-align:center}
.route-stop select {min-width:0;width:100%;font:12px Georgia,serif;color:#e8d6a8;background:#1a160f;border:1px solid #6d5a33;border-radius:3px;padding:6px 26px 6px 8px;appearance:none;background-image:linear-gradient(45deg,#0000 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,#0000 50%);background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
.route-stop select:disabled {opacity:.5;cursor:not-allowed}
.route-stop option {background:#1a160f;color:#e8d6a8}
.route-tags {grid-column:2/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:4px}
.route-tag {display:inline-flex;align-items:center;gap:4px;font-size:7px;letter-spacing:.8px;font-weight:600;color:#a89570;border:1px solid #3f3522;border-radius:2px;padding:2px 5px;background:#16130d}
.route-tag.rare {color:#c7a6d9;border-color:#4a3656}
.route-tag.material {color:#f0cf85;border-color:#8d6933;background:#2a2012}
.route-tag.material.sealed {color:#7d7058;border-color:#3f3522;background:#16130d}
.route-tag.material.sealed img {filter:grayscale(1) brightness(.6)}
.route-tag img {width:14px;height:14px}
.route-remove {grid-column:3;grid-row:1;width:26px;height:26px;border:1px solid #4a3b24;border-radius:3px;background:#1a160f;color:#c9a27a;font-size:14px;line-height:1}
.route-remove:hover:not(:disabled) {border-color:var(--gold);color:var(--gold-bright)}
.route-note {font-size:9px;color:#8f856e;line-height:1.4}
.route-add {padding:6px 10px;font-size:10px}
.muster-pick {display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:8px}
.muster-side {display:inline-flex;align-items:center;gap:5px}
.muster-chip {min-width:32px;height:28px;border:1px solid #4a3b24;border-radius:3px;background:#15120c;color:#a89570;font:12px Georgia,serif}
.muster-chip[aria-pressed="true"] {border-color:var(--gold);color:var(--gold-bright);background:linear-gradient(#49371d,#302514)}
.territory-detail .legion-buttons {flex-wrap:wrap;justify-content:flex-end}
.territory-detail .legion-buttons .secondary {padding:6px 8px;font-size:10px}
.sigil-drops b {color:#f0cf85;font-weight:600}
.sigil-drops b.sealed {color:#8f856e}
/* The Summoning Altar */
.summoning-panel .panel-description {padding:0 18px}
.material-list {list-style:none;margin:12px 18px 4px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.material-list li {display:flex;align-items:center;gap:6px;padding:6px;border:1px solid #4a3b24;border-radius:3px;background:#15120c;min-width:0}
.material-list li.empty {opacity:.55}
.material-list li.empty img {filter:grayscale(1)}
.material-list span {display:flex;flex-direction:column;min-width:0}
.material-list small {font-size:7px;letter-spacing:.5px;color:#8f856e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.material-list b {font:16px Georgia,serif;color:var(--gold-bright);font-weight:400;font-variant-numeric:tabular-nums}
.item-image {width:28px;height:28px;flex-shrink:0}
.boss-list {display:grid;gap:10px;padding:10px 18px 18px}
.forge-light {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 18px 0;padding:10px 12px;border:1px solid #4a3b24;border-radius:3px;background:radial-gradient(ellipse at 100% 50%,#6a1d0c40,transparent 60%),#12110d;font-size:10px;color:#c9bfa6}
.forge-light[hidden] {display:none}
.material-list.forge-materials {grid-template-columns:repeat(2,minmax(0,1fr))}
.golem-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 18px 6px}
.golem-card {display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:10px;border:1px solid #3b3020;border-radius:3px;background:#12110d}
.golem-card img {width:72px;height:90px;object-fit:cover;border-radius:2px;filter:saturate(.8)}
.golem-card h3 {margin:2px 0;font:17px Georgia,serif;font-weight:400;color:#e5d8b8}
.golem-card p {margin:0;font-size:9px;color:#9b9180;line-height:1.4}
.golem-card .unit-stats {flex-wrap:wrap;gap:6px 10px;margin-top:8px}
.golem-card .golem-price {grid-column:1/-1;display:flex;flex-direction:column;gap:2px;font-size:9px;color:#c9bfa6}
.golem-card .golem-price span {display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.golem-card .golem-price .item-image {width:16px;height:16px}
.golem-card .golem-price small {color:#8f856e;font-size:8px}
.golem-card>button {grid-column:1/-1}
.golem-anvil {display:grid;gap:6px;margin:6px 18px 0;padding:10px 12px;border:1px solid #6a3a1c;border-radius:3px;background:#1a110b;font-size:10px;color:#e0b98a}
.golem-anvil[hidden] {display:none}
.golem-anvil progress {width:100%;height:5px}
.golem-roster-title {margin:14px 18px 6px;font:13px Georgia,serif;font-weight:400;color:#d8c9a4}
.golem-roster {list-style:none;margin:0 18px 16px;padding:0;display:grid;gap:6px}
.golem-roster li {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px;padding:6px 8px;border:1px solid #3b3020;border-radius:3px;background:#12110d;font-size:10px}
.golem-roster li>span {display:flex;align-items:center;gap:8px}
.golem-roster li b {font:14px Georgia,serif;font-weight:400;color:#e5d8b8}
.golem-roster small {color:#8f856e;font-size:8px}
.golem-legions {display:flex;align-items:center;gap:4px;margin-left:auto}
.golem-name {display:flex;flex-direction:column;gap:2px}
.golem-name .unit-stats {margin-top:2px;gap:8px}
.golem-ability {color:#b9ad90}
.golem-ability b {font:inherit;color:var(--gold-bright)}
.golem-roster .golem-upgrade {flex-basis:100%;font-size:10px;padding:6px 8px;white-space:normal;text-align:left}
.golem-roster .golem-max {flex-basis:100%;color:var(--gold-bright)}
.golem-roster .relic-note {border:0;background:none;padding:0}
[data-class=golem] {--unit:#9fb3c6}
.boss {display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"art name name" "art needs buttons";align-items:center;gap:6px 10px;padding:8px 10px;border:1px solid #3b3020;border-radius:3px;background:radial-gradient(ellipse at 0 50%,#5a2a1830,transparent 60%),#12110d}
.boss.perfected {border-color:#a88545;box-shadow:inset 0 0 0 1px #d4b47433}
.boss.unready .boss-art,.boss.unready h3 {opacity:.7}
.boss-art {grid-area:art;display:grid;place-items:center;width:44px;height:44px;border:1px solid #4a3b24;border-radius:50%;background:radial-gradient(#2a2012,#0c0b08)}
.boss-art .item-image {width:32px;height:32px}
.boss-name {grid-area:name;display:flex;align-items:center;min-width:0}
.boss-name h3 {font-size:16px;color:#e2cc9b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.boss-star {margin-left:6px;color:var(--gold-bright);font-size:14px}
.boss-needs {grid-area:needs;display:flex;flex-wrap:wrap;gap:5px}
.boss-need {display:inline-flex;align-items:center;gap:3px;font:14px Georgia,serif;color:#8f856e;border:1px solid #3f3522;border-radius:3px;padding:2px 7px 2px 3px;background:#16130d;font-variant-numeric:tabular-nums}
.boss-need.met {color:#f0cf85;border-color:#8d6933}
.boss-need:not(.met) .item-image {filter:grayscale(1) brightness(.7)}
.boss-need .item-image {width:22px;height:22px}
.boss .bind-buttons {grid-area:buttons;display:flex;gap:5px;justify-content:flex-end}
.boss .bind-buttons button {padding:7px 10px;font-size:12px}
.boss-waiting {margin:2px 2px 0;font-size:12px;color:#8f856e}
.summoning-panel .panel-heading h2 {display:flex;align-items:center}
.summoning-panel .material-list {display:flex;flex-wrap:wrap;gap:6px;margin:12px 18px 0}
.summoning-panel .material-list li {gap:5px;padding:4px 9px 4px 5px;flex:none}
.summoning-panel .material-list .item-image {width:26px;height:26px}
.summoning-panel .material-list b {font-size:17px}
/* The Reliquary's trophy room: grey until found, framed in gold once it is yours. */
.trophy-room {padding:4px 18px 18px}
.trophy-room h3 {display:flex;align-items:baseline;justify-content:space-between;font-size:14px;color:#c6b18a;margin:14px 0 8px;letter-spacing:.5px}
.trophy-room h3 small {font:10px 'Segoe UI',Arial,sans-serif;color:var(--gold)}
.trophy-grid {list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.trophy-large {grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
.trophy {display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 8px;text-align:center;border:1px solid #2b251a;border-radius:4px;background:#0f0e0b;min-width:0}
.trophy img,.trophy-glyph {filter:grayscale(1) brightness(.45);opacity:.7}
.trophy-glyph .icon {width:34px;height:34px;color:#6b5a3a}
.trophy-name {font-size:9px;color:#6f6552;line-height:1.3;overflow-wrap:anywhere}
.trophy small {font-size:8px;color:#5f5645}
.trophy.found {border-color:#c79a45;background:radial-gradient(ellipse at 50% 30%,#6b4f1f55,transparent 70%),#1a150c;box-shadow:0 0 0 1px #d4b47440,0 0 14px #d4a24a33}
.trophy.found img,.trophy.found .trophy-glyph {filter:none;opacity:1}
.trophy.found .trophy-glyph .icon {color:var(--gold-bright)}
.trophy.found .trophy-name {color:#f0dca8}
.trophy.found small {color:var(--gold-bright);font-weight:600}
.collection-list {display:grid;gap:10px}
.collection {padding:10px;border:1px solid #2b251a;border-radius:3px}
.collection.complete {border-color:#8d6933}
.collection.locked {opacity:.55}
.collection h4 {margin:0;font:13px Georgia,serif;color:#c6b18a;font-weight:400}
.collection .relic-note {font-size:9px;margin:6px 0 0}
.collection progress {height:4px;margin-top:4px;width:100%}
@media(max-width:720px) {
  .material-list {grid-template-columns:repeat(3,minmax(0,1fr));margin-inline:12px}
  .material-list.forge-materials {grid-template-columns:repeat(2,minmax(0,1fr))}
  .forge-light {margin-inline:12px;flex-wrap:wrap}
  .golem-grid {grid-template-columns:minmax(0,1fr);padding-inline:12px}
  .golem-anvil {margin-inline:12px}
  .golem-roster-title {margin-inline:12px}
  .golem-roster {margin-inline:12px}
  .boss-list {padding:10px 12px 14px}
  .boss {grid-template-columns:40px minmax(0,1fr);grid-template-areas:"art name" "art needs" "buttons buttons";gap:6px 10px}
  .boss-art {width:40px;height:40px}
  .boss-art .item-image {width:30px;height:30px}
  .boss .bind-buttons {justify-content:stretch}
  .boss .bind-buttons button {flex:1;padding:9px 8px;font-size:13px}
  .summoning-panel .material-list {margin-inline:12px}
  .trophy-room {padding:4px 12px 14px}
  .trophy-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
  .summoning-panel .panel-description {padding:0 12px}
}

/* Siege Works: stage progress under a sealed branch land. */
.siege-progress {display:block;width:calc(100% - 32px);height:5px;margin:0 16px 12px;accent-color:#b89455}

/* Restless Spirits: a wisp over the haunted land, and the coffin hunt it may lead to. */
.spirit {position:absolute;z-index:3;width:54px;height:54px;margin:-27px 0 0 -27px;border:0;border-radius:50%;padding:0;cursor:pointer;
  background:radial-gradient(circle,#f3ffffee 0 14%,#9fe6ffaa 30%,#5fa8ff44 55%,transparent 70%);box-shadow:0 0 24px 8px #7fd3ff55}
.spirit span {position:absolute;inset:18px;border-radius:50%;background:#fff;opacity:.85}
.spirit:hover {filter:brightness(1.3)}
@media(prefers-reduced-motion:no-preference) {.spirit {animation:spirit-drift 3.2s ease-in-out infinite}@keyframes spirit-drift {0%,100% {translate:0 0;opacity:.85}50% {translate:14px -10px;opacity:1}}}
.coffin-reopen {position:absolute;z-index:3;right:14px;bottom:14px}
.coffin-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.coffin {min-height:64px;font-size:26px;border:1px solid #6d5129;border-radius:4px;background:linear-gradient(#2c2418,#18140d);color:var(--gold-bright)}
.coffin:hover:not(:disabled) {filter:brightness(1.3);border-color:var(--gold-bright)}
.coffin .icon {width:28px;height:28px}
.coffin.opened {font-size:13px;color:var(--green);background:#141a10;border-color:#4f6b3a;opacity:1;filter:none}

/* The harvest banner (schema 34): one panel per held land, split side by side. */
.dominion-banner {display:flex;flex-direction:column}
.dominion-banner:after {background:linear-gradient(0deg,#0c0d0af2 0%,#0c0d0ab0 45%,#10110d40 100%)}
.banner-head {padding:18px 26px 12px;position:relative;z-index:1}
.banner-head h1 {font-size:28px;line-height:1.1;color:#e7dcc0;margin:8px 0 6px;text-shadow:0 2px 8px #000}
.banner-head p {font-size:11px;color:#adac96;max-width:560px}
.banner-head .eyebrow {color:#baa779;font-size:9px}
.banner-head .eyebrow span {font-size:7px;margin:0 10px;color:#77623d}
.harvest-lands {display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1px;flex:1;min-height:150px;background:#50412b;border-top:1px solid #50412b}
.harvest-land {position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-height:150px;padding:14px 16px;border:0;border-radius:0;background:#11110d;color:inherit;text-align:left;cursor:pointer;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.harvest-land:before {content:'';position:absolute;inset:0;z-index:-2;opacity:.8;transition:opacity .2s,transform .4s}
.harvest-land:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0a0b08f5 0%,#0a0b08a8 45%,#0a0b0820 100%)}
.harvest-land:hover:before,.harvest-land:focus-visible:before {opacity:1;transform:scale(1.03)}
.harvest-land:active {box-shadow:inset 0 0 0 2px var(--green)}
.harvest-land:focus-visible {outline:2px solid var(--gold-bright);outline-offset:-4px}
.harvest-land[aria-disabled="true"] {cursor:default}
.harvest-land[aria-disabled="true"]:before {opacity:.5}
.harvest-land.open:before {opacity:.8}
.harvest-land.sealed {cursor:not-allowed}
.harvest-land.sealed:before {opacity:.4;filter:grayscale(1)}
.harvest-land.sealed .harvest-name,.harvest-land.sealed .harvest-caption {color:#9a9483}
.harvest-name {font:19px Georgia,serif;color:#e7dcc0;text-shadow:0 2px 6px #000}
.harvest-caption {font:9px Georgia,serif;letter-spacing:1.5px;color:#d6c29c}
.harvest-foot strong {display:block;font-size:10px;color:#bdcd9d;font-weight:500}
.harvest-foot strong b {padding:0 4px;color:#6a7950}
.harvest-foot small {display:block;font-size:9px;color:#8f9780;margin-top:3px}
.harvest-foot .harvest-find {color:#c9ad73;margin-top:1px}
.harvest-reward {position:absolute;right:14px;top:14px;pointer-events:none;color:#e1f5b9;text-shadow:0 2px 8px #000;font:15px Georgia,serif;opacity:0}
.grave-reward {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dominion-banner[data-lands="1"] .harvest-name {font-size:24px}
.conquer-first {white-space:nowrap;color:#c9b98f}
@media(max-width:720px) {.banner-head {padding:16px 16px 10px}.banner-head h1 {font-size:24px}.harvest-lands {grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.dominion-banner[data-lands="1"] .harvest-lands,.dominion-banner[data-lands="3"] .harvest-land:first-child,.dominion-banner[data-lands="5"] .harvest-land:first-child {grid-column:1/-1}.dominion-banner[data-lands="1"] .harvest-lands {grid-template-columns:1fr}.harvest-land {min-height:110px;padding:12px}.harvest-name {font-size:16px}.harvest-caption {font-size:8px;letter-spacing:1px}.harvest-foot strong {font-size:9px}}
/* Drag and drop between legions */
.rank.draggable {grid-template-columns:auto minmax(0,1fr) auto auto}
.drag-handle {grid-row:1/3;grid-column:4;width:26px;height:40px;margin-left:2px;padding:0;border:1px solid #4a3b24;border-radius:3px;background:#15120c;color:#a89570;cursor:grab;touch-action:none}
.drag-handle .icon {width:14px;height:14px;fill:none;stroke:currentColor}
.drag-handle:hover:not(:disabled),.drag-handle:focus-visible {border-color:var(--gold);color:var(--gold-bright)}
.drag-handle:disabled {opacity:.4;cursor:default}
body.dragging,body.dragging * {cursor:grabbing!important;user-select:none}
.legion-card.drop-ok {outline:1px dashed #8a6d3b;outline-offset:2px}
.legion-card.drop-no {opacity:.6}
.legion-card.drop-over {outline:2px solid var(--gold);outline-offset:2px;box-shadow:0 0 0 4px #d4b47426,0 6px 18px #0006}
.drag-ghost {position:fixed;left:0;top:0;z-index:1000;display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border:1px solid var(--gold);border-radius:3px;background:#15120cf2;box-shadow:0 8px 20px #000c;pointer-events:none;color:#e2cc9b;font-size:11px}
.drag-ghost .unit-portrait {width:28px;height:35px}
.drag-ghost span {display:flex;flex-direction:column;gap:2px}
.drag-ghost small {font-size:9px;color:#a89570}

/* One hunting scene per legion, under its card header. */
.legion-scene {display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:1px;margin:0 0 12px;background:#50412b;border:1px solid #50412b}
.legion-scene:empty {display:none}
.scene-tap,.scene-note {position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;min-height:96px;padding:10px 12px;border:0;border-radius:0;background:#11110d;color:inherit;text-align:left;overflow:hidden}
.scene-note {grid-column:1/-1}
.scene-tap {cursor:pointer;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.scene-tap:before,.scene-note:before {content:'';position:absolute;inset:0;z-index:-2;opacity:.75;background-size:cover;background-position:center}
.scene-tap:after,.scene-note:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0a0b08f5 0%,#0a0b08b0 55%,#0a0b0830 100%)}
.scene-tap:active {box-shadow:inset 0 0 0 2px var(--green)}
.scene-tap:focus-visible {outline:2px solid var(--gold-bright);outline-offset:-4px}
.scene-tap[aria-disabled="true"] {cursor:default}
.scene-tap strong,.scene-note strong {font:17px Georgia,serif;color:#e7dcc0;text-shadow:0 2px 6px #000}
.scene-reward {font-size:10px;color:#bdcd9d}
.scene-tap small,.scene-note small {font-size:9px;color:#a5ac96}
.scene-note.idle strong {color:#c9bfa6}
.scene-encounter {display:flex;flex-direction:column;justify-content:center;gap:6px;padding:10px 12px;background:#15150f}
.scene-encounter progress {width:100%}
.scene-encounter small {font-size:10px;color:#a5ac96}
@media(max-width:720px) {.legion-scene {grid-template-columns:1fr}.scene-tap,.scene-note {min-height:84px}}

/* Worldboss events: the floating omen, its chip after dismissal, the battle and the relic vault. */
.omen {position:fixed;left:16px;bottom:16px;z-index:18;display:flex;gap:14px;align-items:flex-start;width:min(380px,calc(100% - 32px));padding:16px 40px 16px 16px;border:1px solid #6e5a8a;border-radius:4px;color:var(--ink);
  background:radial-gradient(ellipse at 15% 20%,#6e4fa033,transparent 60%),linear-gradient(160deg,#241f2a,#12100e 70%);box-shadow:0 0 0 1px #0008,0 0 28px #7d5bb044,0 14px 40px #000c}
.omen-close {position:absolute;top:6px;right:6px;width:30px;height:30px;border:0;background:none;color:#bfb2d4;font-size:20px;line-height:1}
.omen-close:focus-visible,.omen-chip:focus-visible {outline:2px solid var(--gold-bright);outline-offset:2px}
.omen-sigil {flex:none;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 50% 38%,#0b0a0d 30%,#0b0a0d 34%,transparent 35%),radial-gradient(circle at 50% 60%,#0b0a0d 44%,transparent 45%),radial-gradient(circle,#9c7bd0 0%,#4a3470 55%,#1a1522 72%);box-shadow:0 0 18px #9c7bd066}
.omen[data-phase="active"] .omen-sigil {background:radial-gradient(circle at 50% 38%,#0b0a0d 30%,#0b0a0d 34%,transparent 35%),radial-gradient(circle at 50% 60%,#0b0a0d 44%,transparent 45%),radial-gradient(circle,#d07b7b 0%,#70343a 55%,#221516 72%);box-shadow:0 0 18px #d07b7b66}
.omen-body {display:grid;gap:6px;min-width:0}
.omen-body .eyebrow {color:#c2a6e8}
.omen-title {margin:0;font:15px/1.35 Georgia,serif;color:#efe6d2}
.omen-time {margin:0;font-size:11px;color:#b5aac6}
.omen-body .primary {justify-self:start;white-space:normal;text-align:left}
.omen-chip {position:fixed;left:16px;bottom:16px;z-index:18;display:flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:9px 14px;border:1px solid #6e5a8a;border-radius:18px;background:#1b1722;color:#dcd0ee;font-size:11px;box-shadow:0 6px 20px #000a}
.omen-chip-dot {width:8px;height:8px;border-radius:50%;background:#9c7bd0;box-shadow:0 0 8px #9c7bd0}
.omen-chip[data-phase="active"] .omen-chip-dot {background:#d07b7b;box-shadow:0 0 8px #d07b7b}
@media(prefers-reduced-motion:no-preference) {.omen {animation:omen-rise .5s ease-out}.omen-sigil {animation:omen-pulse 3s ease-in-out infinite}
  @keyframes omen-rise {from {opacity:0;translate:0 16px}to {opacity:1;translate:0 0}}@keyframes omen-pulse {0%,100% {filter:brightness(1)}50% {filter:brightness(1.35)}}}
.battle {width:min(560px,calc(100% - 32px))}
.battle-scene {position:relative;isolation:isolate;height:150px;margin:-24px -24px 4px;overflow:hidden;background:radial-gradient(ellipse at 50% 100%,#3a1c2a,#0c0a0d 70%)}
.battle-scene:before {content:'';position:absolute;inset:0;z-index:-2;opacity:.55;background-size:cover;background-position:center}
.battle-scene[data-land="forgotten-graveyard"]:before {background-image:url('/assets/graveyard.svg')}
.battle-scene[data-land="abandoned-crypt"]:before {background-image:url('/assets/crypt.svg')}
.battle-scene[data-land="old-mausoleum"]:before {background-image:url('/assets/reference/lair.jpg')}
.battle-scene[data-land="forsaken-battlefield"]:before {background-image:url('/assets/reference/battlefield.jpg')}
.battle-scene[data-land="spirit-hollow"]:before {background-image:url('/assets/reference/wasteland.jpg')}
.battle-scene:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#100f0c 0%,#100f0c00 60%)}
.battle-boss {position:absolute;left:50%;bottom:-10px;width:150px;height:150px;translate:-50% 0;border-radius:50% 50% 12% 12%;background:radial-gradient(circle at 38% 34%,#d07b7b 0 4px,transparent 5px),radial-gradient(circle at 62% 34%,#d07b7b 0 4px,transparent 5px),radial-gradient(ellipse at 50% 45%,#050405 55%,transparent 72%);filter:drop-shadow(0 0 22px #b0506088)}
@media(prefers-reduced-motion:no-preference) {.battle-boss {animation:boss-breathe 4s ease-in-out infinite}@keyframes boss-breathe {0%,100% {scale:1}50% {scale:1.04}}}
.battle progress {width:100%}
.battle-stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.battle-stats span {display:grid;gap:2px;padding:8px 10px;border:1px solid #3b3020;background:#0f0e0b}
.battle-stats small {font-size:9px;letter-spacing:1.2px;color:var(--gold)}
.battle-stats b {font:18px Georgia,serif;color:#efe6d2}
.battle-rules {font-size:11px;color:var(--muted);line-height:1.5}
.wb-relics .trophy small {max-width:100%}
/* The Reliquary (schema 47): a header picture that opens the codex, and a shelf per collection. */
.reliquary-banner {position:relative;display:flex;align-items:flex-end;width:calc(100% - 36px);margin:0 18px;min-height:150px;padding:0;border:1px solid #6d5129;border-radius:4px;overflow:hidden;background:#0a0907 url('/assets/reliquary.svg') center/cover no-repeat;cursor:pointer;text-align:left;color:var(--ink)}
.reliquary-banner:after {content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,#000000b3 60%,#000e);pointer-events:none}
.reliquary-banner-text,.codex-head>div {text-shadow:0 1px 3px #000,0 0 10px #000}
.reliquary-banner:hover,.reliquary-banner:focus-visible {border-color:var(--gold-bright);box-shadow:0 0 18px #9be35a33}
.reliquary-banner-text {position:relative;z-index:1;display:grid;gap:2px;padding:12px 14px}
.reliquary-banner-text strong {font:20px Georgia,serif;color:var(--gold-bright)}
.reliquary-banner-text small {font-size:12px;color:#cfc3a6}
.reliquary-shelves {list-style:none;margin:10px 18px 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}
.reliquary-shelf {display:grid;grid-template-columns:1fr auto;gap:4px 8px;width:100%;padding:8px 10px;border:1px solid #2b251a;border-radius:3px;background:#0f0e0b;color:#c6b18a;font:13px Georgia,serif;text-align:left;cursor:pointer}
.reliquary-shelf:hover,.reliquary-shelf:focus-visible {border-color:#8d6933}
.reliquary-shelf b {font:600 11px 'Segoe UI',sans-serif;color:var(--gold)}
.reliquary-shelf progress {grid-column:1/-1;width:100%;height:4px}
.codex {position:fixed;inset:0;z-index:50;width:min(900px,calc(100% - 24px));max-height:calc(100dvh - 24px);margin:auto;padding:0;border:1px solid #8d6933;border-radius:5px;color:var(--ink);background:var(--bg);box-shadow:0 0 0 100vmax #000c,0 18px 60px #000;overflow:hidden}
.codex[open] {display:flex;flex-direction:column}
body.codex-open {overflow:hidden}
.codex-head {position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;min-height:120px;padding:14px 16px;background:#0a0907 url('/assets/reliquary.svg') center/cover no-repeat;border-bottom:1px solid #6d5129}
.codex-head:before {content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#000d)}
.codex-head>* {position:relative}
.codex-head h2 {margin:2px 0 0;font:24px Georgia,serif;color:var(--gold-bright)}
.codex-body {overflow-y:auto;padding:4px 18px 20px;overscroll-behavior:contain}
.codex-body>.panel-description {padding:10px 0 0}
.codex-section {scroll-margin-top:8px}
.codex-section h3 {display:flex;align-items:center;justify-content:space-between;gap:8px;font:15px Georgia,serif;color:#c6b18a;margin:18px 0 4px}
.codex-section h3 small {font:600 11px 'Segoe UI',Arial,sans-serif;color:var(--gold)}
.codex-section>.relic-note {margin:0 0 8px;font-size:12px}
.codex .trophy-grid {grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}
.codex .trophy {padding:12px 8px 10px}
.codex .trophy-name {font-size:12px}
.codex .trophy small {font-size:10px;line-height:1.35;color:#8a7f68}
.codex .collection .relic-note {font-size:11px}
.trophy.mystery {border-style:dashed;border-color:#3a3122}
.trophy.mystery .trophy-name {color:#8a7f68;font-style:italic}
.mystery-glyph {display:grid;place-items:center;width:40px;height:40px;border:1px dashed #5c4a2c;border-radius:50%;font:600 22px/1 Georgia,serif;color:#7d6a45;filter:none;opacity:1}
.hud-reliquary {display:flex;align-items:center;gap:10px;flex:none;margin-right:18px;padding:6px 10px 6px 6px;border:1px solid #4a3a20;border-radius:4px;background:#100e0a;color:var(--ink);text-align:left;cursor:pointer}
.hud-reliquary[hidden] {display:none}
.hud-reliquary:hover,.hud-reliquary:focus-visible {border-color:var(--gold-bright);box-shadow:0 0 12px #9be35a26}
.hud-reliquary-art {width:48px;height:48px;flex:none;border:1px solid #8d6933;border-radius:3px;background:#0a0907 url('/assets/reliquary.svg') 50% 38%/auto 62px no-repeat}
.hud-reliquary-text {display:grid;gap:2px;min-width:0}
.hud-reliquary .label {font-size:8px;letter-spacing:1.6px;color:#a48d61}
.hud-reliquary strong {font:19px Georgia,serif;color:var(--gold-bright);font-variant-numeric:tabular-nums;white-space:nowrap}
.hud-reliquary-bars {display:flex;gap:3px}
.hud-reliquary-bars progress {width:16px;height:4px}
@media(max-width:720px) {.codex {width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0}.codex .trophy-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.codex-head {min-height:96px}.reliquary-banner {min-height:120px;width:calc(100% - 24px);margin:0 12px}.reliquary-shelves {margin:10px 12px 14px}}
@media(max-width:720px) {.omen {left:16px;right:16px;width:auto}.battle-stats b {font-size:15px}}
/* Land Lore (schema 43): a bar and the next checkpoint on every land card, and the Lore panel. */
.territory-detail small.lore-line {display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#b7a67f}
.lore-line b {color:#d6c7a6;font-weight:600}
.lore-bar {width:72px;height:5px;accent-color:#9fbc74;vertical-align:middle}
.lore-list .lore-bar {display:block;width:100%;margin:6px 0 2px}
.lore-pool {padding:4px 16px 12px;border-bottom:1px solid #342b1e}
.lore-pool-head {display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lore-pool-head strong {color:#d6c7a6;font-size:14px}
.lore-pool-head progress {flex:1;min-width:120px;height:6px;accent-color:#b89455}
.lore-pour {display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-top:10px}
.lore-pour label {display:flex;flex-direction:column;gap:3px;font-size:9px;color:#8f856e;letter-spacing:.08em;text-transform:uppercase}
.lore-pour select, .lore-pour input {background:#16110b;color:#d6c7a6;border:1px solid #4a3c28;border-radius:4px;padding:6px 8px;font:inherit;font-size:12px;min-width:0}
.lore-pour input {width:96px}
.lore-hint {display:block;margin-top:6px;font-size:10px;color:#8f856e}
.lore-list {list-style:none;margin:0;padding:4px 16px 14px}
.lore-row {border-top:1px solid #342b1e;padding:12px 0 6px}
.lore-row:first-child {border-top:0}
.lore-row.locked {opacity:.5}
.lore-head {display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.lore-head h3 {font-size:15px;color:#d6c7a6;margin:0}
.lore-row small {font-size:9px;color:#8f856e}
.lore-row .lore-title {color:#f0cf85}
.lore-pips {display:flex;gap:4px;margin:6px 0 4px}
.lore-pips i {width:8px;height:8px;border-radius:50%;border:1px solid #5a4a33;background:transparent}
.lore-pips i.lit {background:#9fbc74;border-color:#9fbc74}
.lore-pips i.seal {border-radius:2px;border-color:#b89455}
.lore-pips i.seal.lit {background:#f0cf85;border-color:#f0cf85}
.lore-row p {font-size:9px;color:#8f856e;line-height:1.5;margin:2px 0 0}
.lore-reward b {color:#b7a67f;font-weight:600}
.lore-reward.lit b {color:#f0cf85}
.lore-row .research-next {color:#9fbc74}
.lore-actions {display:flex;gap:6px;margin-top:6px}

/* One resource to start (schema 42): Dark Energy stands alone in the ledger until Souls join it in
   Chapter II. Command is the size of the army, so it lives with the legions, not with the coin. */
.masthead>.resource[hidden] {display:none}
.command-count {font:15px Georgia,serif;color:var(--gold-bright);letter-spacing:0;margin-left:6px;font-variant-numeric:tabular-nums}
.command-count em {font-style:normal;font-size:12px;color:#8a7e63}
.command-note {display:block;margin-top:4px;font-size:10px;color:var(--muted)}
.command-note.command-full {color:#e0a458}
@media(max-width:720px) {
  .masthead {grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .brand {grid-column:1}
  .account {grid-column:2}
  .masthead>.energy-resource {grid-column:1/-1}
  .masthead:has(#souls-resource:not([hidden]))>.energy-resource {grid-column:1}
  .masthead>.soul-resource {grid-column:2}
  /* Chapter III: Bones join as a third balance (schema 44). */
  .masthead:has(#bones-resource:not([hidden])) {grid-template-columns:repeat(3,minmax(0,1fr))}
  .masthead:has(#bones-resource:not([hidden]))>.brand {grid-column:1/3}
  .masthead:has(#bones-resource:not([hidden]))>.account {grid-column:3}
  .masthead>.bone-resource {grid-column:3}
}
.admin {width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 32px)}
.admin-table-wrap {max-height:320px;overflow:auto;border:1px solid #3a2f1e;border-radius:3px}
.admin-table {width:100%;border-collapse:collapse;font-size:12px}
.admin-table th {position:sticky;top:0;background:#1a160f;color:var(--gold);font:600 10px 'Segoe UI',sans-serif;letter-spacing:1.2px;text-transform:uppercase;text-align:left;padding:8px}
.admin-table td {padding:6px 8px;border-top:1px solid #2c2418;overflow-wrap:anywhere}
.admin-table td:first-child {color:var(--muted);font-variant-numeric:tabular-nums}
.admin-table td:last-child {text-align:right}
.admin-message {min-height:1em;font-size:12px;color:var(--gold-bright)}
.admin-reset {display:grid;gap:8px;border-left-color:#9b3a2a}
.admin-reset input {padding:9px 10px;border:1px solid #584528;border-radius:3px;background:#0d0c09;color:var(--ink);font:inherit}
.danger {border:1px solid #9b3a2a;border-radius:3px;padding:10px 16px;color:#f1c8bd;background:linear-gradient(#5a2118,#35140f);font-weight:600;font-size:12px}
.danger:disabled {opacity:.45;cursor:not-allowed}

/* Release the dead (2026-09-25): healthy undead return to the grave for nothing, freeing command. */
.legion-release {border-top-color:#4a2a22}
.legion-release h4 {color:#d49a7a}
.release-row {display:grid;grid-template-columns:150px 48px auto;justify-content:start;align-items:center;gap:6px 10px;padding:6px 0;border-top:1px solid #221d14}
.release-row:first-child {border-top:0}
@media(max-width:720px) {.release-row {grid-template-columns:minmax(0,1fr) auto auto}.release-row .muster-name {grid-column:auto}}

/* Omens of the Dead: today's omen and tomorrow's. */
.omen-strip {display:flex;align-items:center;gap:13px;padding:10px 15px;background:linear-gradient(90deg,#1d1622,#15130f);border:1px solid #4a3a52;border-radius:3px;margin-bottom:17px}
.omen-strip[hidden] {display:none}
.omen-sigil {color:#c9b3e0;width:30px;display:grid;place-items:center}
.omen-sigil .icon {width:26px;height:26px;filter:drop-shadow(0 0 7px #9b7cc088)}
.omen-strip .eyebrow {font-size:7px;letter-spacing:1.4px;display:block;color:#a58fbd;margin-bottom:4px}
.omen-today {flex:1;min-width:0}
.omen-today strong {font:17px Georgia,serif;color:#e4d6f2}
.omen-effects {display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px;font-size:11px}
.omen-boon {color:var(--green)}
.omen-bane {color:#d58a74}
.omen-bane[hidden] {display:none}
.omen-next {border-left:1px solid #4a3a52;padding-left:14px;max-width:34%}
.omen-next strong {display:block;font:13px Georgia,serif;color:#cdbfdb}
.omen-next small {display:block;color:var(--muted);font-size:10px;margin-top:3px;line-height:1.4}
.omen-strip[data-omen="bloodmoon"] {border-color:#6b2f2f;background:linear-gradient(90deg,#2a1414,#15130f)}
.omen-strip[data-omen="bloodmoon"] .omen-sigil {color:#e08080}
@media (max-width:640px) {.omen-strip {flex-wrap:wrap}.omen-next {border-left:0;border-top:1px solid #4a3a52;padding:8px 0 0;max-width:none;width:100%}}

/* First session (progressive disclosure): command grows right under its bar, and the crypt's classes
   wait behind a seal that says what opens it. */
.command-grow {margin-top:10px;padding:10px 12px;border:1px solid #3d3322;background:#12110c;display:grid;gap:8px}
.command-grow p {margin:0;font-size:11px;line-height:1.5;color:#b3a88f}
.command-grow p b {color:var(--gold)}
.command-next {display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.command-next>span {font-size:12px;color:#cdbf9f;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.command-next b {font:15px Georgia,serif;color:#e0cc9d;font-weight:400}
.command-next #command-upgrade-cost.command-locked {color:#e0a458}
.hint {font-size:11px}
.hint.blocked {color:#e0a458}
.seal-note {display:none}
.undead-card.sealed .seal-note {display:grid;gap:9px;margin:12px 14px 16px;padding:12px;border:1px solid #6a5431;border-left:3px solid #e0a458;background:#16130c}
.seal-note p {margin:0;font-size:12px;line-height:1.5;color:#dccfae}
.seal-note button {justify-self:start}
.undead-card.sealed .purchase-block,.undead-card.sealed .unit-equipment,.undead-card.sealed .hint {display:none}
.undead-card.sealed .warrior-card>img {filter:grayscale(.65) brightness(.6)}
.undead-card.sealed .owned {display:none}
@media(min-width:1051px) {.roster-panel.crypt-sealed {grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr))}
  .roster-panel.crypt-sealed>.undead-card.sealed .warrior-card {flex-direction:column;gap:0;min-height:0}
  .roster-panel.crypt-sealed>.undead-card.sealed .warrior-card>img {width:100%;height:150px;border-right:0;mask-image:linear-gradient(#000 70%,#0000)}
  .roster-panel.crypt-sealed>.undead-card.sealed .warrior-info {padding:4px 14px 6px}
  .roster-panel.crypt-sealed>.undead-card.sealed:nth-of-type(3) {border-right:1px solid var(--line)}}
.lands-beyond {margin:0;padding:11px 15px;border-top:1px solid var(--line);font-size:11px;color:#9b927d;line-height:1.5}
@media(min-width:1051px) {.dashboard[data-columns="2"] {grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr)}.dashboard[data-columns="1"] {grid-template-columns:minmax(0,1fr)}}
@media(max-width:1050px) {.dashboard[data-columns="2"]>.journal-column {grid-column:auto;grid-template-columns:1fr}}
/* A running conquest: a banner on the land's card with its countdown and a filling bar. */
.conquest-line.active {border-top:1px solid #56683f;margin-top:12px;padding:0}
.conquest-march {flex:1;display:grid;gap:6px;padding:12px 14px;border:1px solid #56683f;border-left:3px solid #9fbc74;background:linear-gradient(90deg,#1a2114,#12140e)}
.conquest-march strong {font:15px Georgia,serif;font-weight:400;color:#d7e4bb}
.conquest-march span {font-size:12px;color:#b9c3a1}
.conquest-march span b {font-size:14px;color:#e6f0cc;font-variant-numeric:tabular-nums}
.conquest-march progress {width:100%;height:8px;accent-color:#9fbc74}
.conquest-status {padding:7px 11px;border:1px solid #56683f;border-radius:3px;background:#1a2114;color:#c9d9a8;font-size:12px;white-space:nowrap}
.conquest-status b {font-variant-numeric:tabular-nums;color:#e6f0cc}
.harvest-land.marching [data-harvest-state] {color:#c9d9a8}

/* Your legion: a compact summary on the main page; the full army opens in the Manage your legion window. */
.legion-summary {margin-bottom:16px}
.legion-summary .panel-heading {align-items:center}
.summary-body {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:14px 20px;align-items:center;padding:14px 16px}
.summary-army {list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.summary-army li {display:flex}
.summary-pick {display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid #3f3322;border-left:3px solid var(--unit,#8d6933);border-radius:2px;background:#12110c;font-size:12px;color:#cfc3a6;text-align:left}
.summary-pick:hover {border-color:#8d6933;border-left-color:var(--unit,#8d6933);background:#1a170f}
.summary-pick[aria-pressed="true"] {border-color:var(--gold);border-left-color:var(--unit,#8d6933);background:linear-gradient(#2c2416,#1a150d);box-shadow:0 0 0 1px #d4b47455}
.summary-classes {display:grid;gap:6px}
.summary-tip {font-size:10px;color:#8f856e}
.quick-label {font-size:8px;letter-spacing:1.4px;color:#91805f}
.quick-label b {font:13px Georgia,serif;letter-spacing:0;color:#e0cc9d;font-weight:400}
.summary-army li b {font:16px Georgia,serif;color:var(--gold-bright);font-weight:400;font-variant-numeric:tabular-nums}
.summary-army li em {font-style:normal;color:#e0a458;font-size:11px}
.summary-army .unit-portrait {width:28px;height:35px;object-fit:cover;border-radius:2px}
.summary-facts {display:grid;gap:6px;min-width:0}
.summary-command {display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:4px 10px}
.summary-command .rarity {font-size:8px;letter-spacing:1.4px;color:#91805f}
.summary-command strong {font:16px Georgia,serif;font-weight:400;color:#e0cc9d;font-variant-numeric:tabular-nums}
.summary-command progress {width:100%;height:8px;accent-color:#9fbc74}
.summary-command small {grid-column:1/-1;font-size:11px;color:var(--muted)}
.summary-command small.command-full {color:#e0a458}
.summary-post {margin:0;font-size:12px;color:#b3a88f;line-height:1.5}
.summary-raise {display:grid;gap:6px;justify-items:end}
.summary-raise .purchase-actions {display:flex;gap:6px}
.summary-raise .summon-choice {display:grid;grid-template-columns:auto auto;gap:2px 6px;padding:8px 12px}
.summary-raise .summon-choice small {grid-column:1/-1;font-size:10px}
.summary-raise .hint {padding:0;text-align:right;max-width:300px}
.summary-seal {margin:0 16px 14px;padding:10px 12px;border-left:3px solid #e0a458;background:#16130c;font-size:12px;color:#dccfae;line-height:1.5}
@media(max-width:900px) {.summary-body {grid-template-columns:1fr}.summary-raise {justify-items:stretch}.summary-raise .purchase-actions {display:grid;grid-template-columns:1fr 1fr}.summary-raise .hint {text-align:left;max-width:none}}

.legion-manager {width:min(1400px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #8d6933;border-radius:5px;color:var(--ink);background:var(--bg);box-shadow:0 18px 60px #000d;overflow:auto;overscroll-behavior:contain}
.legion-manager::backdrop {background:#000c}
.manager-head {position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #493923;background:linear-gradient(#201b12,#15120c)}
.manager-head h2 {margin:2px 0 0;font:22px Georgia,serif;color:var(--gold-bright)}
.legion-manager .roster-panel {margin:0;border:0;border-radius:0}
/* Smaller portraits inside the window: the pictures no longer fill a quarter of the screen. */
.legion-manager .undead-card .warrior-card {min-height:120px}
.legion-manager .undead-card .warrior-card>img {width:96px;height:120px}
.legion-manager .undead-card .warrior-info {padding:12px 10px 30px 0}
.legion-manager .undead-card .warrior-info h3 {font-size:18px}
.legion-manager .undead-card .warrior-info>p {display:none}
@media(min-width:1051px) {.legion-manager .roster-panel.crypt-sealed>.undead-card.sealed .warrior-card>img {width:100%;height:96px}}
@media(max-width:720px) {.legion-manager {width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0;margin:0}}
.legion-manager .roster-panel>.panel-heading {display:none}
/* The Forbidden Grimoire as an upgrade tree: three branches, cheapest studies at the top, joined by
   paths that glow once the study above is started. The chosen study opens below the tree. */
.research-tree {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 12px 0;padding:14px 8px 16px;border:1px solid #33291a;border-radius:4px;background:radial-gradient(ellipse at 50% 0,#3b2c1633,transparent 70%),repeating-linear-gradient(0deg,#0000 0 38px,#ffffff04 38px 39px),linear-gradient(#14120d,#0d0c09);box-shadow:inset 0 0 30px #000c}
.tree-branch h3 {display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:64px;gap:4px;margin:0 0 12px;padding-bottom:9px;border-bottom:1px solid #3c301d;font-size:11px;letter-spacing:.8px;text-align:center;color:var(--gold);text-transform:uppercase}
.tree-branch h3 .icon {width:18px;height:18px;opacity:.8}
.tree-branch ol {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:12px}
.tree-node {position:relative;width:100%;display:flex;justify-content:center}
.tree-node button {position:relative;z-index:1}
.tree-node+.tree-node:before {content:'';position:absolute;left:50%;top:-12px;height:24px;width:2px;translate:-1px 0;background:linear-gradient(#2c2418,#40331f)}
.tree-node.lit:before {background:linear-gradient(#b58a3f,#e2b964);box-shadow:0 0 6px #d6a44f88}
.tree-node button {display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;max-width:130px;padding:0;background:none;border:0;color:inherit;text-align:center}
.node-sigil {position:relative;display:grid;place-items:center;width:68px;height:68px}
.node-frame {position:absolute;display:block;inset:11px;border:1px solid #5c4726;background:radial-gradient(circle at 50% 35%,#3a2d18,#15120c 70%);box-shadow:inset 0 0 0 3px #0c0b08,inset 0 0 0 4px #3a2e1b,0 3px 8px #000a;rotate:45deg;transition:box-shadow .2s,border-color .2s,filter .2s}
.node-sigil .icon {position:relative;width:22px;height:22px;color:#b99a62}
.node-sigil em {position:absolute;left:50%;bottom:-3px;translate:-50% 0;min-width:28px;padding:1px 5px;border:1px solid #5c4726;border-radius:8px;background:#100e0a;font:600 8px 'Segoe UI',sans-serif;font-style:normal;color:#c9b27f;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:center}
.node-name {margin-top:4px;font:11px/1.25 Georgia,serif;color:#cdbd99}
.node-price {font-size:9px;margin-top:1px;color:#9f937a;font-variant-numeric:tabular-nums}
.tree-node.started .node-frame {border-color:#b08a45}
.tree-node.started .node-sigil .icon {color:var(--gold-bright)}
.tree-node.mastered .node-frame {border-color:#e2bd5a;background:radial-gradient(circle at 50% 35%,#6b4d1f,#211a0e 72%);box-shadow:inset 0 0 0 3px #0c0b08,inset 0 0 0 4px #b08d3c,0 0 14px #d6a44f66}
.tree-node.mastered .node-sigil .icon,.tree-node.mastered .node-sigil em {color:#ffe3a3}
.tree-node.mastered .node-price {color:#c6a560}
.tree-node.sealed .node-sigil {filter:grayscale(1) brightness(.55)}
.tree-node.sealed .node-name,.tree-node.sealed .node-price {color:#6d6556}
.tree-node button.ready .node-frame {border-color:#8fb86a;box-shadow:inset 0 0 0 3px #0c0b08,inset 0 0 0 4px #4f6a38,0 0 12px #8fb86a55}
.tree-node button.ready .node-price {color:var(--green)}
.tree-node button[aria-pressed="true"] .node-frame {outline:2px solid var(--gold-bright);outline-offset:4px}
.tree-node button[aria-pressed="true"] .node-name {color:var(--gold-bright)}
.tree-node button:hover .node-sigil {filter:brightness(1.3)}
.tree-node button:focus-visible {outline:0}
.tree-node button:focus-visible .node-frame {outline:2px solid var(--gold-bright);outline-offset:4px}
.node-perk {max-width:100%;font-size:10px;line-height:1.3;color:#a9c98a}
.tree-node.mastered .node-perk {color:#d9bd7a}
.tree-node.sealed .node-perk {color:#6d6556}
/* The chosen study's Research bar: sticks to the bottom of the screen while the tree is in view. */
/* overflow:clip keeps the rounded corners without making the panel a scroll box, which would stop the bar sticking. */
#grimoire.panel {overflow:clip}
.study-detail {position:sticky;bottom:0;z-index:5;margin:10px 12px 0;padding-bottom:12px;background:linear-gradient(#0000,var(--panel) 12px)}
.study-bar {display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #6d5129;border-radius:4px;background:linear-gradient(#211b11,#15120c);box-shadow:0 -6px 18px #000c}
.study-bar-text {flex:1;min-width:0}
.study-bar h3 {font-size:15px;color:var(--gold-bright);margin:2px 0 1px}
.study-bar p {font-size:11px;line-height:1.4;margin:0}
.study-bar .research-next {color:#9fbc74}
.study-bar .study-now {color:#a39b86}
.study-bar .study-seal {color:#c98f6a}
.study-buy {display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.study-buy>span {font-size:11px;color:#c5ad79;text-align:right}
@media(max-width:720px) {.study-detail {margin:8px 8px 0}.study-bar {padding:9px 10px;gap:8px}.study-buy>span {max-width:110px}.node-perk {font-size:9px}.research-tree {margin:4px 8px 0;padding:12px 2px 14px;gap:2px}.tree-branch h3 {font-size:9px;letter-spacing:.4px}.node-sigil {width:60px;height:60px}.node-frame {inset:10px}.node-name {font-size:10px}}
@media(prefers-reduced-motion:no-preference) {.tree-node button.ready .node-frame {animation:node-ready 2.4s ease-in-out infinite}@keyframes node-ready {50% {box-shadow:inset 0 0 0 3px #0c0b08,inset 0 0 0 4px #4f6a38,0 0 18px #8fb86a88}}}
/* The shared ? beside a name (public/info-tip.js) and its floating note. */
.info-tip {display:inline-grid;place-items:center;width:20px;height:20px;flex:none;margin-left:6px;padding:0;border:1px solid #6d5129;border-radius:50%;background:#1c1810;color:#d4b474;font:600 12px/1 Georgia,serif;cursor:help;vertical-align:middle}
.info-tip:hover,.info-tip[aria-expanded="true"] {border-color:var(--gold-bright);color:var(--gold-bright);background:#2a2114}
.info-note {position:absolute;z-index:60;box-sizing:border-box;padding:10px 12px;border:1px solid #8d6933;border-radius:4px;background:#17140e;box-shadow:0 6px 18px #000a;color:#d8cfbb;font-size:13px;line-height:1.45;pointer-events:none}
.info-note b {color:var(--gold-bright);font-weight:600}
.info-note p {margin:0}
.info-note p+p,.info-note ul+p,.info-note p+ul {margin-top:6px}
.info-note ul {margin:0;padding-left:16px}
.info-note .info-gap {display:block;margin-top:6px}

/* Deathbinding: a tab per rite (locked ones show the rank they wait on) and one readable card. */
.deathbind-tabs {display:flex;flex-wrap:wrap;gap:6px;padding:2px 16px 10px}
.deathbind-tab {flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:7px 10px;border:1px solid #4a3c25;border-radius:4px;background:#1a1610;color:var(--ink);font:600 13px/1.2 Georgia,serif;text-align:left;cursor:pointer}
.deathbind-tab span {white-space:nowrap}
.deathbind-tab small {display:inline-flex;align-items:center;gap:3px;font:500 11px/1 system-ui,sans-serif;color:var(--muted)}
.deathbind-tab small.star {color:#9fd07a}
.deathbind-tab small.new {color:#9fd07a}
.deathbind-tab small .icon {width:11px;height:11px}
.deathbind-tab:hover {border-color:#8d6933}
.deathbind-tab.chosen {border-color:var(--gold-bright);background:linear-gradient(#3a2d17,#231b0f);color:var(--gold-bright)}
.deathbind-tab.locked {color:#8a806c}
.deathbind-card {padding:4px 16px 14px}
.deathbind-rite {display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 14px;align-items:start}
.deathbind-art {width:96px;height:96px;padding:6px;box-sizing:border-box;border:1px solid #4a3c25;border-radius:4px;background:radial-gradient(circle at 50% 45%,#2e2616,#12100b 75%)}
.deathbind-rite.locked .deathbind-art {filter:grayscale(1) brightness(.55)}
.deathbind-title {display:flex;align-items:center;gap:2px}
.deathbind-body h3 {margin:0;font:600 19px/1.2 Georgia,serif;color:var(--gold-bright)}
.deathbind-body p {margin:3px 0 0;font-size:13px;line-height:1.4;color:var(--ink)}
.deathbind-body .deathbind-kind {font-size:12px;color:var(--muted)}
.deathbind-body .deathbind-traits {color:#c9bb98}
.deathbind-chips {display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.deathbind-chips .chip {padding:4px 8px;border:1px solid #4a3c25;border-radius:3px;background:#1c1810;font-size:12px;color:var(--ink);white-space:nowrap}
.deathbind-chips .chip small {color:var(--muted)}
.deathbind-chips .chip.cost {color:var(--gold-bright);border-color:#6d5129}
.deathbind-chips .chip.short {border-color:#6a2c24;color:#e0a090}
.deathbind-body .deathbind-odds {margin-top:8px;color:#b9c9a0}
.deathbind-odds .star {color:#9fd07a}
.deathbind-body .bind-buttons {display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.deathbind-body .bind-buttons button {padding:9px 14px;font-size:13px}
.deathbind-insight {grid-column:1/-1;margin-top:6px}
.deathbind-insight .line {display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink)}
.deathbind-insight .insight-label {display:inline-flex;align-items:center}
.deathbind-insight progress {width:100%;margin-top:5px}
.deathbind-insight p {margin:4px 0 0;font-size:12px;color:#9fd07a}
.deathbind-sealed {display:flex;align-items:center;gap:6px;margin-top:10px !important;color:var(--gold) !important}
.deathbind-sealed .icon {width:14px;height:14px}
.deathbind-needs {margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--muted)}
#deathbinding .binding-ledger {margin:10px 16px;padding:10px 12px}
#deathbinding .binding-ledger p {margin:0;font-size:12px;color:var(--muted)}
#deathbinding .binding-controls {padding:0 16px}
@media(max-width:420px) {.deathbind-rite {grid-template-columns:72px minmax(0,1fr)}.deathbind-art {width:72px;height:72px}.deathbind-body h3 {font-size:17px}.deathbind-body .bind-buttons button {flex:1}}

/* Covens (schema 48): members, the Paladin Citadel's five walls and the legion lent to them. */
.coven-form {display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 16px 10px}
.coven-form[hidden] {display:none}
.coven-form label {width:100%}
.coven-form input {flex:1 1 140px;min-width:0;padding:8px 10px;border:1px solid #4a3c25;border-radius:3px;background:#12100b;color:var(--ink)}
.coven-body {padding:0 16px 14px}
.coven-body h3 {margin:14px 0 6px;font:600 13px Georgia,serif;color:var(--gold)}
.coven-body h3 small {font:400 11px 'Segoe UI',sans-serif;color:var(--muted);margin-left:6px}
.coven-members,.coven-open,.coven-walls,.coven-relics {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.coven-members li,.coven-open li {display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:7px 9px;border:1px solid #3a2f1d;border-radius:3px;background:#15120d;font-size:12px}
.coven-members li.you {border-color:#6d5129}
.coven-members li>span:first-child,.coven-open li>span {flex:1;min-width:0}
.coven-members small,.coven-open small {color:var(--muted);font-size:10px;letter-spacing:.6px}
.coven-lending {color:var(--muted);font-size:11px}
.coven-members b:last-of-type {font-variant-numeric:tabular-nums;color:var(--gold-bright)}
.coven-walls li {padding:4px 0}
.coven-walls .line {display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink)}
.coven-walls small {color:var(--muted);font-size:10px}
.coven-walls progress {width:100%;margin-top:3px}
.coven-walls li.broken span {color:var(--green)}
.coven-lend {margin-top:12px;padding:10px;border:1px solid #4a3c25;border-radius:3px;background:#1a1610}
.coven-lend p {margin:0 0 8px;font-size:12px}
.coven-lend-picks {display:flex;flex-wrap:wrap;gap:6px}
.coven-lend-picks small {color:var(--muted);margin-left:4px}
.coven-relics {flex-direction:row;flex-wrap:wrap}
.coven-relics li {flex:1 1 120px;padding:6px 8px;border:1px solid #3a2f1d;border-radius:3px;background:#12100b;font-size:11px;color:#6d6556}
.coven-relics li.found {border-color:#8d6933;color:var(--ink)}
.coven-relics small {display:block;color:var(--muted)}
.coven-leave {margin-top:12px}

/* Phone: the Reliquary overview takes a narrow last column of the balance row, so the bar keeps its height. */
@media(max-width:720px) {
  .masthead:has(#hud-reliquary:not([hidden])) {grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
  .masthead:has(#hud-reliquary:not([hidden]))>.account {grid-column:2/-1}
  .masthead:has(#hud-reliquary:not([hidden]))>.energy-resource {grid-column:1/3}
  .masthead:has(#hud-reliquary:not([hidden])):has(#souls-resource:not([hidden]))>.energy-resource {grid-column:1}
  .masthead:has(#hud-reliquary:not([hidden])):has(#bones-resource:not([hidden])) {grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr) auto}
  .masthead:has(#hud-reliquary:not([hidden])):has(#bones-resource:not([hidden]))>.account {grid-column:3/-1}
  /* With three balances the overview shrinks to the vault and its count. */
  .masthead:has(#bones-resource:not([hidden]))>.hud-reliquary {flex-direction:column;justify-content:center;gap:3px}
  .masthead:has(#bones-resource:not([hidden]))>.hud-reliquary .label,.masthead:has(#bones-resource:not([hidden]))>.hud-reliquary .hud-reliquary-bars {display:none}
  .masthead:has(#bones-resource:not([hidden]))>.hud-reliquary strong {font-size:12px;text-align:center}
  .masthead>.hud-reliquary {grid-row:2;grid-column:-2;align-self:stretch;margin:0;padding:10px 0 0;gap:6px;border:0;border-top:1px solid #44331b;border-radius:0;background:none}
  .hud-reliquary-art {width:30px;height:30px;background-size:auto 40px}
  .hud-reliquary strong {font-size:clamp(14px,calc(4.6vw - 2px),18px)}
  .hud-reliquary .label {font-size:7px;letter-spacing:1px}
  .hud-reliquary-bars progress {width:9px;height:3px}
}

/* Grave Contracts (schema 48): three tasks with progress bars, and the Seal shop. */
.contract-list {list-style:none;margin:0;padding:0 16px;display:flex;flex-direction:column;gap:8px}
.contract {padding:9px 10px;border:1px solid #3a2f1d;border-radius:3px;background:#15120d}
.contract.done {border-color:#6f8f4f;background:linear-gradient(#1c2214,#15120d)}
.contract.empty {color:var(--muted);font-size:12px;border-style:dashed}
.contract .line {display:flex;justify-content:space-between;align-items:center;gap:8px}
.contract strong {font:13px Georgia,serif;color:var(--ink)}
.contract-pay {font-size:11px;color:var(--gold);white-space:nowrap}
.contract progress {width:100%;margin:6px 0 4px}
.contract small {color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.contract .primary {padding:6px 12px}
.contract-shop-title {margin:14px 16px 6px;font:600 13px Georgia,serif;color:var(--gold)}
.contract-shop {padding:0 16px 14px;display:flex;flex-direction:column;gap:6px}
.contract-goods {display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid #3a2f1d;border-radius:3px;background:#12100b}
.contract-goods>div {flex:1;min-width:0}
.contract-goods strong {display:block;font-size:12px;color:var(--ink)}
.contract-goods small {color:var(--muted);font-size:11px}

/* The Bone Garden (schema 51) */
.garden-plot {list-style:none;margin:0;padding:0 16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.grave {min-height:88px;padding:8px;border:1px solid #3a2f1d;border-radius:3px;background:#15120d;display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}
.grave b {font:13px Georgia,serif;color:var(--ink);overflow-wrap:anywhere}
.grave small {color:var(--muted);font-size:11px}
.grave.ripe {border-color:#6f8f4f;background:linear-gradient(#1c2214,#15120d)}
.grave.sprouted b {color:var(--gold)}
.grave .primary {padding:5px 10px}
.grave .text-button {margin-top:auto;font-size:11px}
.grave.empty {padding:0;border-style:dashed}
.grave-pick {all:unset;box-sizing:border-box;width:100%;height:100%;padding:8px;cursor:pointer;display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}
.grave-pick:focus-visible {outline:2px solid var(--gold);outline-offset:-2px}
.grave.chosen {border-color:var(--gold);border-style:solid}
.garden-title {margin:14px 16px 6px;font:600 13px Georgia,serif;color:var(--gold)}
.garden-seeds {padding:0 16px;display:flex;flex-direction:column;gap:6px}
.garden-log {list-style:none;margin:0;padding:0 16px 14px;display:flex;flex-direction:column;gap:5px}
.garden-log li {padding:6px 9px;border:1px solid #2a2418;border-radius:3px;display:flex;flex-direction:column;gap:2px;color:var(--muted)}
.garden-log li.found {border-color:#3a2f1d;color:var(--ink)}
.garden-log .line {display:flex;justify-content:space-between;gap:8px}
.garden-log small {font-size:11px;color:var(--muted)}
.garden-log .garden-total {border:0;padding:4px 0}
/* Options: per-device settings, one checkbox row each. */
.option-row {display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:4px;background:#0000002e;cursor:pointer}
.option-row input {width:18px;height:18px;margin:2px 0 0;accent-color:#c89a45;cursor:pointer}
.option-row b {display:block;color:var(--gold-bright);font-size:14px}
.option-row small {display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}
