:root {
  --bg: #100c18; --surface: #191421; --surface-2: #241c2e; --line: #3c3149;
  --text: #f6efe8; --muted: #aa9fb1; --gold: #f0a65c; --gold-2: #ffe0a8;
  --red: #ff6b78; --green: #76d9ae; --blue: #78b9ff; --violet:#b68cff;
  --glass:linear-gradient(145deg,#241c2ee8,#15101ee8); --shadow: 0 22px 70px #0502088c;
}
* { box-sizing: border-box; }
html { background: var(--bg); color: var(--text); }
body { margin: 0; min-width: 320px; min-height: 100vh; font-family: "Segoe UI Variable Text","Segoe UI",Arial,sans-serif; background:radial-gradient(circle at 78% -12%,#a860473b,transparent 34%),radial-gradient(circle at 10% 45%,#503f8a2a,transparent 42%),linear-gradient(135deg,#0f0b17,#171121 55%,#0c0912); }
button, input, select { font: inherit; }
button { color: inherit; }
.grain { position: fixed; inset: 0; opacity: .055; pointer-events: none; z-index: 20; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); }
.shell { display: grid; grid-template-columns: 245px 1fr; min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 18px 20px; border-right: 1px solid var(--line); background: #0b0f0dcc; backdrop-filter: blur(15px); display: flex; flex-direction: column; z-index: 4; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 28px; }
.brand-mark { width: 44px; height: 44px; border: 1px solid #a77e3d; display: grid; place-items: center; font: 700 23px Cinzel; color: var(--gold-2); transform: rotate(45deg); background:#1a1710; box-shadow:0 0 30px #c7903530; }
.brand-mark::first-letter { transform: rotate(-45deg); }
.brand strong { display:block; font: 600 16px Cinzel; letter-spacing: .12em; }
.brand span { font-size:9px; letter-spacing:.13em; color:var(--muted); text-transform:uppercase; }
nav { display:grid; gap:5px; }
.nav-button { border:0; background:transparent; padding:12px 14px; display:flex; gap:13px; align-items:center; color:#98a198; cursor:pointer; border-radius:3px; text-align:left; }
.nav-button span { width:22px; font:18px Cinzel; text-align:center; color:#6f7972; }
.nav-button:hover { background:#19201c; color:var(--text); }
.nav-button.active { background:linear-gradient(90deg,#2a2419,#191c18); color:var(--gold-2); box-shadow:inset 2px 0 var(--gold); }
.nav-button.active span { color:var(--gold); }
.keeper-card { margin-top:auto; border:1px solid var(--line); background:#111613; padding:16px; }
.resource { display:flex; justify-content:space-between; padding-top:10px; font-size:12px; color:var(--muted); }
.resource strong { color:var(--text); }
.quiet.reset { margin-top:10px; color:#657068; font-size:10px; }
main { min-width:0; }
.topbar { min-height:112px; padding:27px 38px 22px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:#0c100e88; }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; margin:0; font-weight:600; }
h1 { font-size:clamp(26px,3vw,38px); letter-spacing:.02em; }
h2 { font-size:21px; }
h3 { font-size:17px; }
.eyebrow { display:block; color:var(--gold); font-size:9px; font-weight:700; letter-spacing:.18em; margin-bottom:7px; }
.hero-chip { display:flex; align-items:center; gap:10px; border:1px solid var(--line); padding:8px 13px 8px 8px; background:#121715; }
.hero-chip span { display:block; font-size:9px; color:var(--muted); text-transform:uppercase; }
.hero-chip strong { font:600 13px Cinzel; }
.hero-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid var(--gold);box-shadow:0 0 18px #d5a64d35}
.sigil { width:38px; height:38px; border:1px solid var(--sigil); color:var(--sigil); font:600 17px Cinzel; display:grid; place-items:center; border-radius:50%; font-style:normal; box-shadow:0 0 18px color-mix(in srgb,var(--sigil) 25%,transparent); }
.view { padding:28px 38px 56px; max-width:1540px; margin:auto; }
.panel { background:linear-gradient(145deg,#151a17f2,#101411f2); border:1px solid var(--line); box-shadow:var(--shadow); }
.panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; }
.muted { color:var(--muted); line-height:1.6; font-size:13px; }
.small { font-size:11px; }
.dashboard-grid { display:grid; gap:18px; }
.keep-layout { grid-template-columns:minmax(540px,1.4fr) minmax(290px,.6fr); }
.dungeon-panel,.build-panel { padding:24px; }
.threat { text-align:right; }
.threat span,.cost { display:block; color:var(--muted); font-size:9px; letter-spacing:.15em; }
.threat strong { font:600 28px Cinzel; color:var(--gold-2); }
.cost { color:var(--gold-2); font-size:16px; }
.dungeon-grid { aspect-ratio:1.45; display:grid; grid-template-columns:repeat(5,1fr); grid-template-rows:repeat(5,1fr); gap:5px; padding:14px; border:1px solid #303932; background:radial-gradient(circle,#20271f 1px,transparent 1px),#0a0d0b; background-size:18px 18px; }
.dungeon-viewport{position:relative;height:min(66vh,660px);min-height:470px;border:1px solid #566052;background:linear-gradient(155deg,#aeb1a1,#747b69);overflow:hidden;cursor:default}.dungeon-viewport:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 70px #25291f55}#dungeon-3d,#dungeon-3d canvas{width:100%;height:100%;display:block}.view-hint{position:absolute;z-index:2;left:50%;bottom:12px;transform:translateX(-50%);white-space:nowrap;font-size:9px;letter-spacing:.12em;color:#ebe9df;background:#1c211ddd;border:1px solid #7c8277;padding:8px 12px;pointer-events:none}.blueprint{margin-top:12px;border:1px solid #29312c;background:#0d110f}.blueprint summary{cursor:pointer;padding:10px 13px;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.blueprint .dungeon-grid{margin:0 12px 12px;aspect-ratio:1.8}.blueprint .dungeon-cell{min-height:40px}
.dungeon-cell { position:relative; border:1px solid #232a26; background:#121612; min-height:55px; cursor:default; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.dungeon-cell.rock { opacity:.36; background:#0b0e0c; }
.dungeon-cell.path { cursor:pointer; border-color:#465047; background:linear-gradient(145deg,#242a24,#171c18); box-shadow:inset 0 0 0 2px #101411; }
.dungeon-cell.path:hover { border-color:var(--gold); transform:translateY(-1px); }
.dungeon-cell b { font:600 21px Cinzel; color:#bac0b8; }
.dungeon-cell small { color:#7c877f; font-size:8px; text-transform:uppercase; }
.dungeon-cell.trap b { color:#d48469; }
.dungeon-cell.monster b { color:#96c59b; }
.dungeon-cell.entry { background:#14211a; border-color:#4e8768; }
.dungeon-cell.heart { background:#241313; border-color:#8f4641; }
.dungeon-cell.heart b { color:#ef6f65; text-shadow:0 0 18px #f33; }
.legend { display:flex; flex-wrap:wrap; gap:18px; margin-top:15px; color:var(--muted); font-size:10px; }
.legend i { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:6px; }
.entry-dot { background:var(--green); }.heart-dot{background:var(--red);}
.piece-list { display:grid; max-height:440px; overflow:auto; padding-right:4px; }
.piece { border:0; border-bottom:1px solid #252d28; background:transparent; display:grid; grid-template-columns:34px 1fr auto; align-items:center; text-align:left; gap:9px; padding:10px 7px; cursor:pointer; }
.piece:hover,.piece.selected { background:#20251f; }
.piece.selected { box-shadow:inset 2px 0 var(--gold); }
.piece i { width:30px;height:30px;border:1px solid #3d453e;display:grid;place-items:center;font-style:normal;color:var(--gold-2); }
.piece strong,.piece small { display:block; }.piece strong{font-size:11px}.piece small{font-size:8px;color:var(--muted);margin-top:2px}.piece b{font-size:10px;color:var(--gold)}
.gate-panel { margin-top:18px; padding:22px 24px; display:grid; grid-template-columns:1fr 220px 170px auto; gap:20px; align-items:end; }
.garrison-panel{margin-top:18px;padding:24px}.garrison-panel>.muted{max-width:900px}.garrison-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:10px;margin-top:16px}.guardian-card{border:1px solid #303933;background:#0e1210;padding:14px}.guardian-card header{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center}.guardian-card header>i{width:36px;height:36px;border:1px solid #52705a;color:var(--green);display:grid;place-items:center;font-style:normal;font:600 16px Cinzel}.guardian-card header span{font-size:7px;letter-spacing:.14em;color:var(--gold)}.guardian-card header h3{font-size:15px;margin-top:2px}.guardian-card header>b{font-size:8px;color:var(--muted);font-weight:500}.guardian-gear{display:flex;flex-wrap:wrap;gap:6px;min-height:38px;margin:12px 0}.guardian-gear>span{color:#667168;font-size:9px;align-self:center}.guardian-gear button{padding:7px 9px;text-align:left}.guardian-gear button span,.guardian-gear button strong{display:block}.guardian-gear button span{font-size:7px;color:var(--muted);text-transform:uppercase}.guardian-gear button strong{font-size:9px;margin-top:2px}.guardian-controls{display:grid;grid-template-columns:1fr auto auto;gap:6px}.guardian-controls select,.guardian-controls button{font-size:9px;padding:8px}
.rank-up{margin-top:8px;font-size:9px;color:var(--gold-2)}
label { display:grid; gap:7px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
select,input { border:1px solid #39423c; background:#0c100e; color:var(--text); padding:10px; outline:none; }
select:focus,input:focus { border-color:var(--gold); }
button { border:1px solid #3b453e; background:#1a211d; padding:10px 14px; cursor:pointer; }
button:hover { border-color:#6d786f; }
button.primary { background:linear-gradient(#d4aa5b,#ae7832); color:#171108; border-color:#f0d493; font-weight:700; box-shadow:0 5px 25px #d69a3d20; }
button.primary:hover { filter:brightness(1.08); }
button.large { padding:14px 22px; }
.danger-text { color:#df746c; background:transparent; border-color:#693e3a; }
.raid-banner { padding:18px 22px; display:grid; grid-template-columns:1fr 2fr auto; align-items:center; gap:25px; margin-bottom:18px; }
.raid-track { display:flex; align-items:center; justify-content:center; }
.raid-track i { width:26px;height:26px;border:1px solid #39413c;border-radius:50%;display:grid;place-items:center;color:#667168;font-size:9px;font-style:normal;position:relative; }
.raid-track i:not(:last-child)::after { content:""; position:absolute; width:12px; height:1px; background:#39413c; left:25px; }
.raid-track i.cleared { background:#24372b;color:var(--green);border-color:#4d7d60; }.raid-track i.current{border-color:var(--gold);color:var(--gold);box-shadow:0 0 14px #e4a83a55}
.combat-layout { display:grid; grid-template-columns:1fr 320px; gap:18px; }
.combat-stage { padding:25px; min-height:670px; display:grid; grid-template-rows:auto 300px auto auto 1fr auto; gap:14px; align-items:center; }
.raid-3d{height:300px;width:100%;border:1px solid #303a33;background:#090d0b;overflow:hidden}.raid-3d canvas{display:block;width:100%;height:100%}
.raid-party { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; }
.party-member { border:1px solid #303833; padding:7px; display:flex;gap:7px;align-items:center;background:#0e1210;opacity:.67; }
.party-member.active { border-color:var(--class); opacity:1; box-shadow:inset 0 0 18px color-mix(in srgb,var(--class) 12%,transparent); }
.party-member.fallen { filter:grayscale(1);opacity:.3}.party-member i{width:25px;height:25px;border:1px solid var(--class);border-radius:50%;display:grid;place-items:center;font-style:normal;color:var(--class);font:600 10px Cinzel}.party-member strong,.party-member small{display:block}.party-member strong{font-size:9px}.party-member small{font-size:7px;color:var(--muted)}
.combatant { display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; max-width:560px; width:100%; margin:auto; padding:18px; border:1px solid #303a33; background:#0e1210; }
.combatant>i:not(.sigil) { width:66px;height:66px;display:grid;place-items:center;border:1px solid #475149;font:600 30px Cinzel;font-style:normal; }
.combatant span { color:var(--muted);font-size:8px;letter-spacing:.13em}.combatant p{color:var(--muted);font-size:10px;margin:6px 0 0}.versus{text-align:center;font:600 12px Cinzel;color:#6f786f;letter-spacing:.25em}
.bar { height:18px; border:1px solid #333c36; background:#080a09; margin-top:7px; position:relative; overflow:hidden; }
.bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#743832,#c75a50)}.bar.mana i{background:linear-gradient(90deg,#275c78,#5aa8d0)}.bar.enemy-hp i{background:linear-gradient(90deg,#6f2f42,#b24e5f)}.bar span{position:absolute;inset:0;display:grid;place-items:center;font-size:8px;color:white;text-shadow:0 1px 2px #000}
.combat-actions { display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.combat-actions select{min-width:190px}.reward-strip{text-align:center}.reward-strip span,.reward-strip strong{display:block}.reward-strip span{color:var(--gold);font-size:9px;letter-spacing:.15em}.reward-strip strong{margin-top:5px}
.combat-log{padding:22px}.combat-log p{padding:9px 0;margin:0;border-bottom:1px solid #232a26;color:#8d978f;font-size:11px;line-height:1.45}.combat-log p.latest{color:var(--text)}
.raid-landing{padding:0;display:grid;grid-template-columns:minmax(320px,.8fr) 1.2fr;overflow:hidden;min-height:500px}.rival-art{position:relative;display:grid;place-items:center;background:radial-gradient(circle,#6b402540,transparent 52%),linear-gradient(155deg,#201a13,#0b0e0c);border-right:1px solid var(--line)}.rival-art b{font:600 clamp(100px,18vw,230px) Cinzel;color:#b37c3c20;text-shadow:0 0 60px #d2923b22}.rival-art span{position:absolute;top:25px;color:var(--gold);font-size:9px;letter-spacing:.24em}.rival-art i{position:absolute;bottom:80px;width:45%;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.raid-copy{padding:clamp(35px,6vw,90px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.raid-copy h2{font-size:clamp(25px,3vw,42px);max-width:600px}.raid-copy p{color:var(--muted);line-height:1.7;max-width:620px}.quick-stats,.stat-grid,.item-stats{display:grid;grid-template-columns:repeat(4,1fr);width:100%;border:1px solid var(--line);margin:18px 0 24px}.quick-stats div,.stat-grid div,.item-stats div{padding:12px;border-right:1px solid var(--line)}.quick-stats div:last-child,.stat-grid div:last-child,.item-stats div:last-child{border:0}.quick-stats span,.stat-grid span,.item-stats span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase}.quick-stats strong,.stat-grid strong,.item-stats strong{font:600 18px Cinzel;color:var(--gold-2)}
.hero-layout{display:grid;grid-template-columns:390px 1fr;gap:18px}.class-panel,.equipment-panel{padding:24px}.class-list{display:grid;gap:7px}.class-card{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;text-align:left;background:#101411}.class-card i{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--class);color:var(--class);border-radius:50%;font-style:normal}.class-card strong,.class-card small{display:block}.class-card small{color:var(--muted);font-size:9px}.class-card.selected{border-color:var(--class);background:color-mix(in srgb,var(--class) 8%,#111)}.hero-summary{margin-top:20px;padding:18px;border:1px solid #313a34;display:grid;grid-template-columns:80px 1fr;gap:16px;align-items:center}.portrait{width:76px;height:94px;border:1px solid var(--class);object-fit:cover;background:#101411}.hero-summary p{color:var(--muted);font-size:10px}.xp{height:5px;background:#080b09}.xp i{display:block;height:100%;background:var(--class)}.hero-summary small{font-size:8px;color:var(--muted)}.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:8px}.equipment-slot{text-align:left;min-height:70px;display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:center}.equipment-slot span,.equipment-slot strong,.equipment-slot small{display:block}.equipment-slot .slot-copy>span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.equipment-slot strong{margin:5px 0;font-size:11px}.equipment-slot small{font-size:8px;color:#7f8a82}.equipment-slot:disabled{cursor:default;opacity:.6}.slot-icon,.slot-placeholder{width:48px;height:48px;border-radius:50%;object-fit:cover;clip-path:circle(44%);background:#0d100e}.slot-placeholder{display:grid!important;place-items:center;border:1px solid #38423b;color:#657168!important;font:600 15px Cinzel!important;clip-path:none}
.forge-layout{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(420px,1.2fr);gap:18px}.inventory-panel,.workbench,.materials{padding:22px}.inventory-panel{grid-row:span 2}.inventory-list{display:grid;gap:6px;max-height:690px;overflow:auto}.item-row{display:grid;grid-template-columns:38px 1fr 30px;align-items:center;text-align:left;gap:10px;background:#101411}.item-row>.item-icon{width:36px;height:36px;border-radius:50%;object-fit:cover;clip-path:circle(44%)}.item-row strong,.item-row small{display:block}.item-row strong{font-size:10px}.item-row small{font-size:8px;color:var(--muted);margin-top:3px}.item-row>b{font:500 13px Cinzel;color:#89948c}.item-row.selected{border-color:var(--item);background:#1b201c}.item-focus{display:grid;grid-template-columns:75px 1fr;gap:15px;align-items:center}.item-orb{width:70px;height:70px;border-radius:50%;object-fit:cover;clip-path:circle(44%);box-shadow:0 0 25px #d5a64d22}.item-focus span,.item-focus small{font-size:9px;color:var(--muted)}.item-focus h2{margin:4px 0}.trait,.drawback{padding:10px;border-left:2px solid var(--green);background:#132019;color:#a8d9bd;font-size:11px}.drawback{border-color:var(--red);background:#241313;color:#e29d98}.workbench label{margin-top:15px}.work-actions{display:flex;gap:8px;margin:10px 0 18px}.tinker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.tinker-grid button{text-align:left}.tinker-grid strong,.tinker-grid small{display:block}.tinker-grid small{font-size:8px;color:var(--muted);margin-top:4px}.material-grid{display:grid;gap:7px;margin-top:12px}.material-grid>div{display:grid;grid-template-columns:1fr repeat(5,37px);align-items:center;border-bottom:1px solid #252c28;padding:6px}.material-grid strong{text-transform:capitalize;font-size:11px}.material-grid span{font-size:9px;color:var(--muted)}.material-grid i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;background:color-mix(in srgb,var(--gold) calc(30% + var(--q)*15%),#53605a)}
.spell-intro{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;margin-bottom:18px}.spell-intro p{color:var(--muted);line-height:1.6}.spell-families{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.spell-family{padding:20px;--element:#a9a9a9}.spell-family .panel-head>i{width:39px;height:39px;border:1px solid var(--element);color:var(--element);display:grid;place-items:center;font-style:normal}.element-fire{--element:#e47a55}.element-frost{--element:#78cdf2}.element-storm{--element:#a092ed}.element-earth{--element:#bb9a63}.element-light{--element:#f5d679}.element-shadow{--element:#9a73bb}.element-death{--element:#73bd91}.element-arcane{--element:#dd80c4}.spell{display:grid;grid-template-columns:1fr auto;gap:5px;padding:12px 0;border-top:1px solid #28302b}.spell strong,.spell small{display:block}.spell strong{font:500 13px Cinzel}.spell small{font-size:8px;color:var(--muted);margin-top:2px}.spell>b{color:var(--element);font:600 17px Cinzel}.spell p{grid-column:1/-1;margin:3px 0;color:#97a199;font-size:10px}.spell>span{grid-column:1/-1;font-size:7px;letter-spacing:.12em;color:var(--element)}.spell.locked{opacity:.35;filter:grayscale(.7)}
.element-icon{width:52px;height:52px;border-radius:50%;object-fit:cover;clip-path:circle(44%);filter:drop-shadow(0 0 9px color-mix(in srgb,var(--element) 45%,transparent))}
.report-summary{padding:22px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.summary-number{text-align:right}.summary-number span{display:block;font-size:9px;color:var(--muted)}.summary-number strong{font:600 30px Cinzel;color:var(--gold)}.report-list{display:grid;gap:9px}.report{padding:18px;display:grid;grid-template-columns:45px 1fr auto;gap:16px;align-items:center}.report-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--green);color:var(--green);font:600 20px Cinzel}.report.loss .report-mark{border-color:var(--red);color:var(--red)}.report p{margin:5px 0;color:#a9b1aa;font-size:11px}.report small{color:#6e7871;font-size:9px}.report>strong{font-size:10px;color:var(--muted)}.journal{margin-top:18px;padding:22px}.journal p{font-size:11px;color:#929c94;padding:8px 0;margin:0;border-bottom:1px solid #242b27}.empty-state{padding:35px;color:var(--muted);text-align:center;font-size:12px}
.guardian-assignment{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin:0 0 18px;padding:12px;border:1px solid #303933;background:#111713}.guardian-assignment label{margin:0}
.crafting-bench{display:grid;grid-template-columns:1fr 190px 170px auto;gap:9px;align-items:end;border-top:1px solid #303933;margin-top:18px;padding-top:16px}.crafting-bench p{font-size:9px;color:var(--muted);margin:5px 0 0}.crafting-bench select,.crafting-bench button{font-size:9px}
#toast{position:fixed;right:25px;bottom:25px;z-index:50;max-width:380px;padding:13px 17px;background:#18201b;border:1px solid #4b5a50;box-shadow:var(--shadow);font-size:11px;transform:translateY(30px);opacity:0;pointer-events:none;transition:.2s}#toast.show{transform:none;opacity:1}#toast.good{border-color:#4d8865}#toast.bad{border-color:#9e4c45}#toast.warn{border-color:#b98542}
@media(max-width:1050px){.keep-layout,.combat-layout,.hero-layout,.forge-layout{grid-template-columns:1fr}.build-panel{order:2}.gate-panel{grid-template-columns:1fr 1fr}.gate-panel>div{grid-column:1/-1}.combat-log{max-height:280px;overflow:auto}.inventory-panel{grid-row:auto}.spell-families{grid-template-columns:1fr}}
@media(max-width:740px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:14px}.brand{padding:0 5px 12px}.sidebar nav{grid-template-columns:repeat(3,1fr)}.nav-button{font-size:10px;padding:9px}.keeper-card{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:12px}.keeper-card>.eyebrow{grid-column:1/-1}.resource{display:block;text-align:center}.topbar{padding:20px}.hero-chip{display:none}.view{padding:18px}.keep-layout{grid-template-columns:1fr}.dungeon-panel,.build-panel{padding:15px}.dungeon-grid{padding:7px}.dungeon-cell{min-height:45px}.gate-panel{grid-template-columns:1fr}.gate-panel>*{grid-column:1!important}.raid-banner{grid-template-columns:1fr}.raid-track{justify-content:flex-start;overflow:auto}.raid-landing{grid-template-columns:1fr}.rival-art{min-height:220px}.raid-copy{padding:30px}.raid-party{grid-template-columns:repeat(5,90px);overflow:auto}.party-member span{display:none}.equipment-grid,.spell-families,.tinker-grid{grid-template-columns:1fr}.spell-intro{grid-template-columns:1fr}.quick-stats,.stat-grid,.item-stats{grid-template-columns:repeat(2,1fr)}.class-panel,.equipment-panel{padding:15px}.report{grid-template-columns:38px 1fr}.report>strong{grid-column:2}.keeper-card+.reset{display:none}}
@media(max-width:1050px){.garrison-grid{grid-template-columns:1fr}}
@media(max-width:1050px){.crafting-bench{grid-template-columns:1fr 1fr}.crafting-bench>div{grid-column:1/-1}}
@media(max-width:740px){.guardian-card header,.guardian-controls,.guardian-assignment,.crafting-bench{grid-template-columns:1fr}.crafting-bench>*{grid-column:1!important}}

/* Emberglass polish pass */
html{scroll-behavior:smooth}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 44%,#ffcc9b08 50%,transparent 56%);z-index:-1}
.grain{opacity:.035;mix-blend-mode:soft-light}
.sidebar{padding:30px 20px 22px;border-right:1px solid #55426880;background:linear-gradient(180deg,#171120eb,#0e0a16eb);backdrop-filter:blur(24px) saturate(135%);box-shadow:12px 0 45px #06030a45}
.brand-mark{border:0;border-radius:13px;background:linear-gradient(145deg,#3c2940,#211627);box-shadow:0 10px 30px #f0a65c26,inset 0 0 0 1px #ffc98765;transform:rotate(45deg)}
.brand{padding-bottom:32px}.brand strong{letter-spacing:.16em}.brand span{color:#b5a8bc}
nav{gap:8px}.nav-button{border-radius:12px;padding:12px 14px;transition:transform .24s cubic-bezier(.2,.8,.2,1),background .24s,color .24s,box-shadow .24s}
.nav-button:hover{background:#ffffff0b;color:var(--text);transform:translateX(3px)}
.nav-button.active{background:linear-gradient(100deg,#f0a65c20,#a879e51b);color:var(--gold-2);box-shadow:inset 0 0 0 1px #f0a65c42,0 8px 24px #09050e55}
.nav-button.active span{filter:drop-shadow(0 0 8px #f0a65c)}
.keeper-card{border:1px solid #5a48685c;border-radius:16px;background:linear-gradient(145deg,#2a2133b8,#17111fc9);box-shadow:inset 0 1px #ffffff0a;padding:18px}
.topbar{min-height:116px;padding:28px 40px 23px;border-bottom:1px solid #55426873;background:linear-gradient(90deg,#130e1bbd,#1d1425a3);backdrop-filter:blur(18px)}
h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:.012em;text-shadow:0 3px 24px #0009}
h2,h3{letter-spacing:.012em}.eyebrow{color:#f3ad6c;letter-spacing:.2em}
.hero-chip{border-color:#5b4869;border-radius:999px;background:#241a2dbf;padding-right:17px;box-shadow:0 8px 28px #07030d55,inset 0 1px #ffffff0a}
.view{padding:32px 40px 64px;animation:view-arrive .48s cubic-bezier(.2,.78,.2,1) both}
@keyframes view-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.panel{background:var(--glass);border:1px solid #5a486a8c;border-radius:18px;box-shadow:var(--shadow),inset 0 1px #ffffff0b;backdrop-filter:blur(16px) saturate(125%)}
button,select,input{border-radius:11px;transition:border-color .22s,background .22s,box-shadow .22s,transform .22s cubic-bezier(.2,.8,.2,1),filter .22s}
button{border-color:#584a62;background:linear-gradient(145deg,#2a2232,#1d1725);box-shadow:inset 0 1px #ffffff09}
button:not(:disabled):hover{border-color:#9a7ca7;transform:translateY(-2px);box-shadow:0 10px 25px #07030d70,inset 0 1px #ffffff12}
button:not(:disabled):active{transform:translateY(0) scale(.98)}
button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #ffd09a;outline-offset:3px}
button.primary{background:linear-gradient(135deg,#ffc878,#e68055);color:#24131a;border-color:#ffdca3;box-shadow:0 8px 28px #eb86573a,inset 0 1px #fff7}
button.primary:hover{filter:saturate(1.08) brightness(1.07);box-shadow:0 12px 34px #ec8f5860}
select,input{border-color:#5b4b66;background:#15101dcc;box-shadow:inset 0 1px 8px #05020870}
.dungeon-viewport,.raid-3d{border-color:#62695d;border-radius:15px;background:linear-gradient(155deg,#a8aa9b,#66705e);box-shadow:inset 0 0 50px #28302752,0 15px 35px #070d0955}
.view-hint{border:1px solid #858a7f;border-radius:999px;background:#20241fe6;color:#edece5;padding:8px 13px;box-shadow:0 7px 20px #0007}
.piece,.item-row,.class-card,.equipment-slot,.guardian-card,.guardian-assignment{border-color:#4f405b;background:linear-gradient(145deg,#241c2b,#17111f)}
.piece:hover,.piece.selected,.item-row.selected{background:linear-gradient(110deg,#f0a65c16,#ad7bdf10)}
.piece.selected{box-shadow:inset 3px 0 var(--gold),0 8px 22px #08030e52}
.dungeon-cell.path{border-radius:8px;border-color:#584863;background:linear-gradient(145deg,#342a3b,#201927)}
.gate-panel,.garrison-panel,.class-panel,.equipment-panel,.inventory-panel,.workbench,.materials,.spell-intro,.spell-family,.report-summary,.journal{overflow:hidden}

.raid-banner{border-radius:18px;background:linear-gradient(110deg,#2b2034e8,#1a1323e8);box-shadow:0 16px 50px #06020a73,inset 0 1px #ffffff0b}
.raid-track{gap:2px}.raid-track i{border-color:#66546d;background:#17111f;transition:.3s}.raid-track i:not(:last-child)::after{background:#66546d;width:14px}
.raid-track i.cleared{background:#25483b;color:#9ef2ca;border-color:#65bd97}.raid-track i.current{background:#3c2929;border-color:#ffb56e;color:#ffd69d;box-shadow:0 0 20px #f0a65c70}
.combat-layout{grid-template-columns:minmax(0,1fr) 340px;gap:20px}
.combat-stage{padding:22px;min-height:740px;grid-template-rows:auto auto 330px auto auto auto;gap:13px;overflow:hidden;position:relative}
.combat-stage:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-220px;top:170px;background:#a778db10;filter:blur(8px);pointer-events:none}
.combat-rhythm{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:2px 3px}.combat-rhythm strong{font-size:11px;color:#d9cedc;font-weight:500}
.momentum{display:flex;align-items:center;gap:10px}.momentum>span{font-size:8px;letter-spacing:.16em;color:#b7a9bd}.momentum b{display:flex;gap:5px}.momentum i{display:block;width:9px;height:9px;border-radius:50%;background:#30273b;border:1px solid #695778;transition:.28s}.momentum i.lit{background:linear-gradient(145deg,#ffe3a5,#f08b5f);border-color:#ffd390;box-shadow:0 0 12px #f0a65c}
.raid-party{gap:9px}.party-member{position:relative;border-radius:13px;border-color:#50415d;padding:9px;background:linear-gradient(145deg,#251d2d,#17111f);opacity:.72;cursor:pointer;min-width:0;text-align:left;transition:.24s}
.party-member:not(:disabled):hover{opacity:1;border-color:var(--class);transform:translateY(-3px)}
.party-member.active{border-color:var(--class);opacity:1;background:color-mix(in srgb,var(--class) 10%,#1b1423);box-shadow:0 8px 26px color-mix(in srgb,var(--class) 16%,transparent),inset 0 0 18px color-mix(in srgb,var(--class) 10%,transparent)}
.party-member.active:after{content:"READY";position:absolute;right:7px;top:6px;color:var(--class);font-size:6px;letter-spacing:.12em}.party-member.spent{opacity:.38}.party-member.spent i{filter:saturate(.3)}.party-member:disabled{cursor:default}.party-member.fallen{filter:grayscale(1);opacity:.22}
.raid-3d{height:330px;position:relative;isolation:isolate}.raid-3d canvas{position:relative;z-index:1}.combat-floats{position:absolute;inset:0;z-index:3;pointer-events:none}.float-number{position:absolute;font:700 22px Georgia,serif;color:#ff8690;text-shadow:0 3px 13px #000,0 0 18px #ff5266;animation:float-damage 1s cubic-bezier(.2,.75,.2,1) both}.enemy-float{left:72%;top:36%}.hero-float{left:27%;top:38%}.float-number.heal{color:#8cf0bd;text-shadow:0 3px 13px #000,0 0 18px #56d694}.float-number.critical{font-size:25px;color:#ffd18c}
@keyframes float-damage{0%{opacity:0;transform:translateY(12px) scale(.7)}20%{opacity:1;transform:translateY(0) scale(1.12)}100%{opacity:0;transform:translateY(-38px) scale(.95)}}
.combatant{max-width:none;border-radius:15px;border-color:#524361;background:linear-gradient(120deg,#211929eb,#17111feb);box-shadow:inset 0 1px #ffffff08;position:relative}.hero-combatant{border-left:3px solid var(--gold)}.enemy-combatant{grid-template-columns:auto minmax(180px,1fr) minmax(205px,.65fr);border-right:3px solid var(--red)}
.combatant>i:not(.sigil){border-radius:14px;border-color:#735e78;background:#130e1b;box-shadow:inset 0 0 22px #a86a5a17}
.enemy-intent{display:grid;grid-template-columns:38px 1fr;gap:3px 9px;align-items:center;padding:10px 12px;border:1px solid #6a566e;border-radius:12px;background:#100b18b8}.enemy-intent>i{grid-row:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#ff6b781c;color:#ff9da6;font-style:normal}.enemy-intent span small,.enemy-intent span strong,.enemy-intent span em{display:block}.enemy-intent span small{font-size:6px;letter-spacing:.15em;color:#b9abbf}.enemy-intent span strong{font-size:10px;margin:2px 0}.enemy-intent span em{font-size:8px;color:#e9b0b6;font-style:normal}.enemy-intent>p{grid-column:1/-1;font-size:8px;margin-top:4px}.intent-fortify>i{color:#9bc9ff;background:#78b9ff1a}.intent-siphon>i{color:#9be5bd;background:#76d9ae1a}.intent-crush{border-color:#9b5864}
.bar{height:19px;border:0;border-radius:999px;background:#0b0711;box-shadow:inset 0 2px 6px #000c;overflow:hidden}.bar i{border-radius:999px;background:linear-gradient(90deg,#b33b50,#ff6b78);transition:width .55s cubic-bezier(.2,.75,.2,1)}.bar.mana i{background:linear-gradient(90deg,#4c63b8,#76bfff)}.bar.enemy-hp i{background:linear-gradient(90deg,#9f354e,#ff697c)}
.versus{color:#96879d}.combat-actions{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:9px;width:100%;align-items:stretch}.action-button{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center;text-align:left;padding:11px 12px}.action-button>i{font-style:normal;font-size:18px;color:var(--gold-2);text-align:center}.action-button span strong,.action-button span small{display:block}.action-button span strong{font-size:11px}.action-button span small{font-size:7px;color:#b2a6b8;margin-top:2px}.action-button.guard>i{color:#9dcaff}.action-button.potion>i{color:#84e2b5}.action-button.cast>i{color:#d1a1ff}.spell-picker{display:grid;gap:5px;grid-column:1/3;text-align:left}.spell-picker>span{font-size:7px;color:#ac9db3;letter-spacing:.15em}.spell-picker select{height:100%;min-width:0;width:100%}.action-button.cast{grid-column:3}
.combat-log{padding:23px;border-radius:18px;max-height:740px;overflow:auto;background:linear-gradient(180deg,#211829e8,#130e1be8)}.combat-log p{border-bottom-color:#4b3b555c;color:#a99ead;padding:11px 2px}.combat-log p.latest{color:#fff1e8;background:linear-gradient(90deg,#f0a65c12,transparent);margin:0 -9px;padding:12px 10px;border-radius:9px;border-bottom:0}
.fx-attack .raid-3d,.fx-spell .raid-3d{animation:arena-flare .68s ease-out}.fx-trap .raid-3d{animation:arena-shake .46s ease-out}.fx-guard .hero-combatant{animation:guard-glow .7s ease-out}
@keyframes arena-flare{0%{box-shadow:inset 0 0 50px #07030d8c,0 15px 35px #07030d55}35%{box-shadow:inset 0 0 75px #f0a65c33,0 15px 45px #9e5b4555}100%{box-shadow:inset 0 0 50px #07030d8c,0 15px 35px #07030d55}}
@keyframes arena-shake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}100%{transform:none}}
@keyframes guard-glow{45%{border-color:#7fc2ff;box-shadow:0 0 36px #78b9ff34}}
.raid-landing{border-radius:22px}.rival-art{background:radial-gradient(circle,#b86b5340,transparent 50%),linear-gradient(155deg,#302039,#100c18);border-right-color:#5a4869}.rival-art b{color:#f0a65c24}.quick-stats,.stat-grid,.item-stats{border-color:#554462;border-radius:14px;overflow:hidden;background:#130e1a7a}.quick-stats div,.stat-grid div,.item-stats div{border-right-color:#554462}
.portrait,.item-orb,.slot-icon,.element-icon{filter:saturate(1.08) drop-shadow(0 8px 18px #0008)}
#toast{border-radius:13px;background:#261d2f;border-color:#695671;box-shadow:0 18px 50px #050208ad;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s}

@media(max-width:1050px){.combat-layout{grid-template-columns:1fr}.combat-log{max-height:270px}.combat-stage{min-height:auto}.enemy-combatant{grid-template-columns:auto 1fr}.enemy-intent{grid-column:1/-1}.combat-rhythm{align-items:flex-start}.view{padding:26px}}
@media(max-width:740px){.sidebar{border-radius:0 0 18px 18px}.keeper-card .resource span,.keeper-card .resource strong{display:block}.keeper-card .resource{line-height:1.35}.topbar{min-height:96px}.view{padding:18px 14px 46px}.panel{border-radius:15px}.combat-stage{padding:13px;grid-template-rows:auto auto 270px auto auto auto}.raid-3d{height:270px}.combat-rhythm{display:grid}.momentum{justify-content:space-between}.combat-actions{grid-template-columns:1fr 1fr}.action-button,.action-button.cast,.spell-picker{grid-column:auto}.action-button.attack,.action-button.guard{order:1}.action-button.potion,.action-button.cast{order:2}.spell-picker{grid-column:1/-1;order:3}.enemy-combatant{grid-template-columns:48px 1fr}.enemy-intent{grid-column:1/-1}.combatant{padding:13px}.combatant>i:not(.sigil){width:48px;height:48px}.party-member{min-width:104px}.party-member.active:after{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* One keeper + living menagerie */
.beast-build-note{margin:15px 0 0;padding:12px 13px;border:1px solid #594665;border-radius:12px;background:#120d1a}
.guardian-card header small{display:block;color:#8f8296;font-size:8px;margin-top:3px}.raid-controls{display:flex;gap:8px}.raid-party{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.party-member{cursor:default}.party-member:not(:disabled):hover{transform:none}.party-member.active:after{content:"ACTING"}
.auto-battle-status{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:13px;min-height:68px;width:100%;border:1px solid #6c5577;border-radius:14px;background:linear-gradient(110deg,#f0a65c18,#ad7bdc14);animation:auto-breathe 1.8s ease-in-out infinite}.auto-battle-status>i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f0a65c25;color:#ffd69b;font-style:normal;box-shadow:0 0 22px #f0a65c2e}.auto-battle-status strong,.auto-battle-status small{display:block}.auto-battle-status strong{font-size:11px}.auto-battle-status small{font-size:8px;color:#ad9fb4;margin-top:4px}.auto-battle-status.paused{animation:none;opacity:.68}.auto-battle-status.paused>i{color:#b4a7bb;background:#ffffff0b}
@keyframes auto-breathe{50%{border-color:#b18488;box-shadow:0 0 28px #f0a65c16}}
.menagerie-panel{grid-column:1/-1;padding:25px}.menagerie-count{text-align:center;min-width:80px;padding:10px 15px;border:1px solid #5d4a69;border-radius:13px;background:#15101d}.menagerie-count strong,.menagerie-count span{display:block}.menagerie-count strong{font:600 26px Cinzel;color:var(--gold-2)}.menagerie-count span{font-size:7px;letter-spacing:.15em;color:var(--muted)}
.keeper-mastery{grid-column:1/-1;padding:25px;overflow:hidden;background:radial-gradient(circle at 50% -35%,#d79f5320,transparent 40%),linear-gradient(145deg,#18131e,#0e1110)}.keeper-mastery .panel-head .muted{max-width:800px}.mastery-budget{min-width:128px;padding:13px;border:1px solid #8a6549;border-radius:15px;text-align:center;background:linear-gradient(145deg,#f0a65c16,#120d18)}.mastery-budget strong,.mastery-budget span,.mastery-budget small{display:block}.mastery-budget strong{font:600 34px Cinzel;color:var(--gold-2)}.mastery-budget span{font-size:7px;letter-spacing:.14em;color:#e9ba7f}.mastery-budget small{margin-top:4px;font-size:7px;color:var(--muted)}.keeper-branches{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.keeper-branch{position:relative;padding:16px;border:1px solid color-mix(in srgb,var(--branch) 35%,#332d38);border-radius:15px;background:linear-gradient(150deg,color-mix(in srgb,var(--branch) 8%,#18121e),#0d1010);overflow:hidden}.keeper-branch:after{content:"";position:absolute;width:130px;height:130px;right:-65px;top:-65px;border:1px solid color-mix(in srgb,var(--branch) 20%,transparent);border-radius:50%}.keeper-branch>header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px}.keeper-branch>header span{font-size:7px;letter-spacing:.18em;color:var(--branch)}.keeper-branch>header h3{margin:5px 0 0;font:600 17px Cinzel}.keeper-branch>header i{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--branch);border-radius:50%;color:var(--branch);font:600 17px Cinzel;font-style:normal;background:#0b0e0d}.keeper-branch>p{min-height:36px;margin:12px 0;color:var(--muted);font-size:8px;line-height:1.55}.talent-stack{display:grid;gap:6px}.talent-card{position:relative;z-index:1;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:9px;min-height:68px;padding:10px;text-align:left;border-radius:10px;background:#0d1010}.talent-card>i{width:24px;height:24px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--branch) 60%,#555);border-radius:50%;color:var(--branch);font-size:8px;font-style:normal}.talent-card strong,.talent-card small,.talent-card em{display:block}.talent-card strong{font:600 10px Cinzel}.talent-card small{margin-top:3px;color:var(--muted);font-size:7px;line-height:1.4}.talent-card em{margin-top:4px;color:#c18b78;font-size:6px;font-style:normal}.talent-card>b{font:600 13px Cinzel;color:var(--branch)}.talent-card:hover:not(:disabled){border-color:var(--branch);background:color-mix(in srgb,var(--branch) 8%,#111)}.talent-card.maxed{border-color:color-mix(in srgb,var(--branch) 55%,#444);box-shadow:inset 3px 0 var(--branch)}.talent-card.locked{filter:saturate(.35)}.talent-card:disabled{cursor:not-allowed;opacity:.56}.talent-card.maxed:disabled{opacity:.88}.mastery-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:13px;padding-top:13px;border-top:1px solid #39313e}.mastery-footer>span{color:#b5a9ba;font-size:8px;line-height:1.6}.mastery-footer button{white-space:nowrap;font-size:8px}.mastery-footer button:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:1050px){.keeper-branches{grid-template-columns:1fr}.keeper-branch>p{min-height:0}}
@media(max-width:740px){.keeper-mastery{padding:15px}.keeper-mastery .panel-head,.mastery-footer{align-items:stretch;flex-direction:column}.mastery-budget{min-width:0}.keeper-branch{padding:13px}.talent-card{grid-template-columns:25px 1fr auto}.mastery-footer button{width:100%}}
.nursery{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:start;padding:18px;border:1px solid #594766;border-radius:15px;background:linear-gradient(120deg,#24192d,#17101f)}.egg-list{display:grid;gap:8px}.egg-card{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:10px;border:1px solid #594766;border-radius:13px;background:#120d19}.egg-card>i,.egg-shop button>i{width:34px;height:42px;border-radius:52% 48% 48% 52%/62% 62% 38% 38%;background:radial-gradient(circle at 38% 30%,#fff8,var(--egg) 35%,color-mix(in srgb,var(--egg) 45%,#17101f));box-shadow:0 0 22px color-mix(in srgb,var(--egg) 38%,transparent);transform:rotate(8deg)}.egg-card span,.egg-card strong,.egg-card small{display:block}.egg-card span{font-size:7px;letter-spacing:.12em;color:var(--egg)}.egg-card strong{font-size:11px;margin:3px 0}.egg-card small{font-size:8px;color:var(--muted)}.egg-card button{font-size:8px;white-space:nowrap}
.class-panel{align-self:start}
.egg-shop{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0 20px}.egg-shop>.eyebrow{grid-column:1/-1}.egg-shop button{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;text-align:left;padding:10px}.egg-shop button>i{width:25px;height:31px}.egg-shop button span strong,.egg-shop button span small{display:block}.egg-shop button span strong{font-size:9px}.egg-shop button span small{font-size:7px;color:var(--muted);margin-top:3px}.egg-shop button>b{font-size:8px;color:var(--gold-2)}
.creature-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:11px}.creature-card{border:1px solid #594766;border-radius:15px;padding:15px;background:linear-gradient(145deg,#211827,#130e1b);box-shadow:inset 0 1px #ffffff08}.creature-card header{display:grid;grid-template-columns:46px 1fr auto;gap:11px;align-items:center}.creature-card header>i{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--beast);color:var(--beast);font:600 18px Cinzel;font-style:normal;background:color-mix(in srgb,var(--beast) 9%,#130e1b);box-shadow:0 0 20px color-mix(in srgb,var(--beast) 18%,transparent)}.creature-card header span,.creature-card header small{font-size:7px;color:var(--muted);letter-spacing:.1em}.creature-card header h3{margin:3px 0}.creature-card header>b{font-size:7px;color:var(--beast);letter-spacing:.12em}.creature-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:13px 0 8px}.creature-stats>span{text-align:center;padding:8px;border-radius:9px;background:#0e0a15;font:600 15px Cinzel;color:#e7dce8}.creature-stats small{display:block;font:600 6px "Segoe UI",sans-serif;color:var(--muted);margin-top:2px}.creature-xp{height:5px}.creature-xp i{background:var(--beast)}.xp-copy{display:block;color:var(--muted);font-size:7px;margin-top:5px}.creature-assignment{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:12px}.creature-assignment select,.creature-assignment button{font-size:8px;padding:9px}
.creature-identity{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:13px 0 7px}.creature-identity>span{padding:9px 10px;border:1px solid #4d3d58;border-radius:10px;background:#0e0a15}.creature-identity b,.creature-identity small{display:block}.creature-identity b{color:var(--beast);font:600 9px Cinzel}.creature-identity small{color:var(--muted);font-size:7px;margin-top:3px}.bond-track{height:4px;border-radius:99px;background:#0a0710;overflow:hidden}.bond-track i{display:block;height:100%;background:linear-gradient(90deg,#8f68bd,var(--beast));box-shadow:0 0 12px var(--beast)}.creature-name{display:grid;grid-template-columns:1fr auto auto;gap:7px;margin-top:11px}.creature-name input,.creature-name button{font-size:8px;padding:9px}.awakening-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:8px;padding:9px;border:1px dashed #56425f;border-radius:10px}.awakening-row select,.awakening-row button{font-size:8px;padding:8px}.awakening-row small{grid-column:1/-1;color:var(--muted);font-size:7px}.awakening-mark{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding:10px;border:1px solid var(--beast);border-radius:10px;background:color-mix(in srgb,var(--beast) 8%,#100b16)}.awakening-mark span{font:600 8px Cinzel;color:var(--beast);letter-spacing:.1em}.awakening-mark strong{font-size:8px;color:#ddd2df}
.lineage-block{margin:9px 0;padding:11px;border:1px solid color-mix(in srgb,var(--beast) 30%,#46394f);border-radius:11px;background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--beast) 8%,transparent),transparent 38%),#0d0a12}.lineage-heading{display:grid;grid-template-columns:1fr 1.5fr;gap:10px;align-items:start}.lineage-heading span small,.lineage-heading span strong{display:block}.lineage-heading span small{font-size:6px;letter-spacing:.13em;color:var(--beast)}.lineage-heading span strong{margin-top:4px;font:600 10px Cinzel}.lineage-heading>em{color:var(--muted);font-size:7px;line-height:1.5;font-style:normal}.lineage-options{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px}.lineage-options button{display:grid;grid-template-columns:1fr auto;gap:8px;text-align:left;padding:8px}.lineage-options button span strong,.lineage-options button span small{display:block}.lineage-options button span strong{font:600 8px Cinzel;color:var(--beast)}.lineage-options button span small{margin-top:3px;font-size:6px;color:var(--muted)}.lineage-options button>b{align-self:center;font-size:6px;color:#d6ae7b;white-space:nowrap}.lineage-options button:disabled{opacity:.5;cursor:not-allowed}.memory-ledger{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:9px;padding-top:8px;border-top:1px solid #352c3b}.memory-ledger>span{margin-right:3px;font-size:5px;letter-spacing:.14em;color:#8d7f94}.memory-ledger>i{padding:4px 6px;border:1px solid #504059;border-radius:99px;color:#c5b5cc;font-size:5px;font-style:normal;background:#17101e}
@media(max-width:740px){.lineage-heading,.lineage-options{grid-template-columns:1fr}.lineage-heading>em{margin-top:2px}}
.creature-loadout{display:grid;grid-template-columns:1fr auto auto;gap:7px;margin-top:8px;padding:9px;border:1px solid #4c3c57;border-radius:10px;background:#100b16}.creature-loadout select,.creature-loadout>button{font-size:8px;padding:8px}.creature-gear{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px}.creature-gear>span{color:var(--muted);font-size:7px}.creature-gear button{display:grid;text-align:left;padding:6px 8px}.creature-gear button span{font-size:6px;text-transform:uppercase;color:var(--muted)}.creature-gear button strong{font-size:7px}
.contracts-panel{margin-bottom:18px;padding:24px}.renown-mark{min-width:82px;padding:11px;text-align:center;border:1px solid #745d82;border-radius:13px;background:linear-gradient(145deg,#281c31,#150f1c)}.renown-mark strong,.renown-mark span{display:block}.renown-mark strong{font:600 27px Cinzel;color:var(--gold-2)}.renown-mark span{font-size:6px;letter-spacing:.18em;color:var(--muted)}.contract-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.contract{display:grid;grid-template-rows:auto auto 1fr auto auto auto;gap:7px;padding:16px;border:1px solid #4d3c57;border-radius:13px;background:linear-gradient(145deg,#1f1726,#110c17)}.contract>span{font-size:6px;letter-spacing:.17em;color:#a28dab}.contract h3{margin:0}.contract p{margin:0;color:var(--muted);font-size:9px;line-height:1.6}.contract-progress{height:5px;background:#08060b;border-radius:99px;overflow:hidden}.contract-progress i{display:block;height:100%;background:linear-gradient(90deg,#8d67bb,#efad68)}.contract small{font-size:7px;color:#9d90a3}.contract button{font-size:8px}.contract.ready{border-color:#bb865c;box-shadow:0 0 24px #f0a65c10}.contract.ready button{border-color:#bb865c;color:#ffd59d}.contract.claimed{opacity:.55}
.atlas-panel{padding:24px}.atlas-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.atlas-head p{max-width:760px}.atlas-sigil{flex:0 0 68px;width:68px;height:68px;display:grid;place-items:center;border:1px solid var(--region);border-radius:18px;color:var(--region);font:600 31px Cinzel;background:color-mix(in srgb,var(--region) 8%,#120d19);box-shadow:0 0 28px color-mix(in srgb,var(--region) 15%,transparent)}.region-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:21px 0 12px}.region-card{min-height:132px;display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:start;text-align:left;padding:13px;border-radius:13px}.region-card>i{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--region);border-radius:50%;color:var(--region);font:600 13px Cinzel;font-style:normal}.region-card span>*{display:block}.region-card span small{font-size:6px;color:var(--region);letter-spacing:.12em}.region-card span strong{font:600 11px Cinzel;margin:4px 0}.region-card span em{font-size:7px;line-height:1.5;color:var(--muted);font-style:normal}.region-card>b{grid-column:2;font-size:6px;letter-spacing:.12em;color:#706578}.region-card.selected{border-color:var(--region);background:color-mix(in srgb,var(--region) 8%,#17101f);box-shadow:0 0 24px color-mix(in srgb,var(--region) 12%,transparent)}.region-card.locked:not(.selected){filter:saturate(.25);opacity:.55}.difficulty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.difficulty-card{display:grid;text-align:left;padding:13px;border-radius:12px}.difficulty-card span,.difficulty-card small{font-size:7px;color:var(--muted)}.difficulty-card strong{font:600 14px Cinzel;margin:4px 0}.difficulty-card.selected{border-color:#c18a60;background:#f0a65c0c}.difficulty-card.locked:not(.selected){opacity:.52}.expedition-brief{display:grid;grid-template-columns:1.5fr 1fr .7fr auto;gap:9px;align-items:stretch;margin-top:12px;padding:13px;border:1px solid #5b4766;border-radius:14px;background:#100b16}.expedition-brief>div{padding:7px 10px;border-right:1px solid #49384f}.expedition-brief span,.expedition-brief strong,.expedition-brief small{display:block}.expedition-brief span{font-size:6px;letter-spacing:.13em;color:var(--muted);text-transform:uppercase}.expedition-brief strong{font:600 11px Cinzel;margin:5px 0}.expedition-brief small{font-size:7px;color:#93869a}.risk-favored{color:#7addaa}.risk-matched{color:#f2bd77}.risk-dangerous{color:#ff7d87}.raid-modifier{display:block;max-width:420px;color:#a99aaf;font-size:7px;margin-top:4px}.raid-track i.elite{border-color:#f1b96d;color:#ffd18f;box-shadow:0 0 13px #f0a65c2c}.elite-enemy{border-color:#bd875e!important;box-shadow:0 0 28px #f0a65c16,inset 0 1px #ffffff0a}.elite-enemy>i{color:#ffd088!important;border-color:#d69d69!important;background:#f0a65c13!important}
.world-condition{display:grid;grid-template-columns:54px 1.3fr .8fr;gap:18px;align-items:center;margin:20px 0 4px;padding:18px;border:1px solid color-mix(in srgb,var(--region) 58%,#5a4663);border-radius:16px;background:linear-gradient(120deg,color-mix(in srgb,var(--region) 12%,#140e1b),#100b16 66%);box-shadow:inset 0 1px #ffffff0a}.world-condition>i{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--region);border-radius:50%;font:600 20px Cinzel;color:var(--region);font-style:normal}.world-condition>div span,.world-condition>aside>strong{display:block;font-size:9px;letter-spacing:.13em;color:var(--region)}.world-condition h3{font:600 20px Cinzel;margin:5px 0}.world-condition p{margin:0 0 7px;color:#b5aabd;line-height:1.45}.world-condition small{color:#9c91a2}.world-condition aside{padding-left:17px;border-left:1px solid #4b3b51}.world-condition aside span{display:block;margin:6px 0;color:#ddd4df}.world-condition aside>div{height:6px;margin:9px 0;background:#2c2431;border-radius:99px;overflow:hidden}.world-condition aside>div b{display:block;height:100%;background:var(--region);border-radius:inherit}.world-condition aside button{width:100%;margin-top:10px}
.doctrine-panel{margin-top:12px;padding:17px;border:1px solid #5e4b68;border-radius:15px;background:radial-gradient(circle at 90% 0,#71b9d511,transparent 30%),linear-gradient(145deg,#17111e,#0d1110)}.doctrine-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.doctrine-head h3{margin:4px 0}.doctrine-head p{margin:0;color:var(--muted);font-size:8px;line-height:1.6}.doctrine-head>b{padding:8px 11px;border:1px solid #637582;border-radius:9px;color:#8fd2ee;font-size:7px;letter-spacing:.15em}.doctrine-controls{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:7px;align-items:end;margin-top:14px}.doctrine-controls label{font-size:7px}.doctrine-controls select{min-width:0;width:100%;font-size:8px;padding:9px}.doctrine-controls button{font-size:8px;white-space:nowrap}.formation-order{margin-top:13px;padding-top:12px;border-top:1px solid #38313e}.formation-order>span{font-size:6px;letter-spacing:.16em;color:#9fa8ae}.formation-order>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.formation-order article{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:8px;border:1px solid color-mix(in srgb,var(--member) 35%,#37313b);border-radius:10px;background:color-mix(in srgb,var(--member) 5%,#0d1010)}.formation-order article>i{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--member);border-radius:50%;color:var(--member);font:600 11px Cinzel;font-style:normal}.formation-order article span small,.formation-order article span strong{display:block}.formation-order article span small{font-size:5px;letter-spacing:.1em;color:var(--member)}.formation-order article span strong{margin-top:3px;font-size:8px}.formation-order article>b{display:flex;gap:3px}.formation-order article button{padding:4px 6px;font-size:9px}.formation-order article>em{font-size:5px;letter-spacing:.1em;color:#a99aad;font-style:normal}
@media(max-width:1050px){.doctrine-controls{grid-template-columns:1fr 1fr}.doctrine-controls>button{grid-column:1/-1}.formation-order>div{grid-template-columns:1fr 1fr}}
@media(max-width:740px){.doctrine-panel{padding:13px}.doctrine-head{align-items:stretch;flex-direction:column}.doctrine-head>b{align-self:flex-start}.doctrine-controls,.formation-order>div{grid-template-columns:1fr}.doctrine-controls>button{grid-column:auto}.formation-order article{grid-template-columns:30px 1fr auto}}
@media(max-width:1050px){.egg-shop{grid-template-columns:repeat(2,1fr)}.creature-grid{grid-template-columns:1fr}.contract-grid{grid-template-columns:1fr}.region-grid{grid-template-columns:repeat(2,1fr)}.world-condition{grid-template-columns:48px 1fr}.world-condition aside{grid-column:1/-1;border-left:0;border-top:1px solid #4b3b51;padding:14px 0 0}.expedition-brief{grid-template-columns:1fr 1fr}.expedition-brief>button{grid-column:1/-1}.expedition-brief>div{border-right:0}}
@media(max-width:740px){.raid-controls{display:grid}.nursery{grid-template-columns:1fr}.egg-shop{grid-template-columns:1fr}.egg-card{grid-template-columns:38px 1fr}.egg-card button{grid-column:1/-1}.menagerie-panel{padding:15px}.creature-card header{grid-template-columns:42px 1fr}.creature-card header>b{grid-column:2}.creature-assignment,.creature-name,.awakening-row,.creature-loadout{grid-template-columns:1fr}.creature-loadout .creature-gear{grid-column:auto}.awakening-row small{grid-column:auto}.creature-identity{grid-template-columns:1fr 1fr}.contracts-panel,.atlas-panel{padding:15px}.atlas-head{align-items:flex-start}.atlas-sigil{width:52px;height:52px;flex-basis:52px}.world-condition{grid-template-columns:1fr}.world-condition>i{display:none}.region-grid,.difficulty-grid,.expedition-brief{grid-template-columns:1fr}.region-card{min-height:0}.expedition-brief>button{grid-column:auto}.raid-party{grid-template-columns:repeat(4,105px);overflow:auto}.raid-banner .raid-controls{grid-column:1/-1}.auto-battle-status{padding:10px}}

.mastery-panel{margin-top:18px;padding:24px;overflow:hidden}.mastery-panel .panel-head{align-items:flex-start}.mastery-panel .panel-head .muted{max-width:700px}.mastery-total{min-width:90px;text-align:center;padding:11px;border:1px solid #755c45;border-radius:13px;background:linear-gradient(145deg,#f0a65c12,#17101f)}.mastery-total strong,.mastery-total span{display:block}.mastery-total strong{font:600 28px Cinzel;color:var(--gold)}.mastery-total span{font-size:6px;letter-spacing:.14em;color:#a99886}.layout-progression{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px 0}.layout-card{position:relative;display:flex;flex-direction:column;min-height:176px;padding:15px;border:1px solid #3c3441;border-radius:14px;background:linear-gradient(155deg,#1a1420,#0e1110);overflow:hidden}.layout-card:after{content:"";position:absolute;width:110px;height:110px;border:1px solid #f0a65c14;border-radius:50%;right:-42px;top:-38px}.layout-card>span{font-size:6px;letter-spacing:.14em;color:var(--gold)}.layout-card h3{font:600 14px Cinzel;margin:6px 0}.layout-card p{font-size:8px;line-height:1.55;color:var(--muted);flex:1}.layout-card small{font-size:7px;color:#9d8d82;margin:7px 0}.layout-card button{position:relative;z-index:1}.layout-card.active{border-color:#c18a60;box-shadow:inset 0 0 35px #f0a65c0c}.layout-card.active:before{content:"ACTIVE";position:absolute;right:11px;bottom:13px;font-size:6px;letter-spacing:.15em;color:#f0a65c66}.layout-card.locked{filter:saturate(.4)}.trap-workshop{border-top:1px solid #2f2a31;padding-top:17px}.workshop-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.workshop-heading strong{font-size:8px;color:#a89caa}.trap-mastery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.trap-mastery{padding:13px;border:1px solid #343139;border-radius:12px;background:#0d1110}.trap-mastery>div{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center}.trap-mastery i{width:32px;height:32px;display:grid;place-items:center;border:1px solid #52635a;color:var(--green);font-style:normal}.trap-mastery span small,.trap-mastery span strong{display:block}.trap-mastery span small{font-size:6px;color:var(--muted);letter-spacing:.12em}.trap-mastery span strong{font:600 10px Cinzel;margin-top:3px}.trap-mastery>div>b{font:600 15px Cinzel;color:var(--gold)}.trap-mastery p{min-height:37px;font-size:7px;line-height:1.5;color:#898f8a}.trap-mastery p em{color:#f1bd7b;font-style:normal;font-weight:700}.trap-mastery.combo{border-color:#9c754f;background:linear-gradient(140deg,#f0a65c0c,#0d1110);box-shadow:inset 0 0 22px #f0a65c08}
.architect-workshop{margin:0 0 18px;padding:17px;border:1px solid #3e3a3f;border-radius:15px;background:#0c100e}.architect-workshop>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.architect-workshop h3{margin:4px 0;font:600 17px Cinzel}.architect-workshop p{margin:0;color:var(--muted)}.architect-workshop>header>strong{font-size:9px;color:var(--gold);letter-spacing:.1em}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.theme-grid button{display:grid;grid-template-columns:28px 1fr;gap:9px;text-align:left;padding:11px}.theme-grid i{width:28px;height:28px;border-radius:7px;background:linear-gradient(145deg,var(--theme-stone) 48%,var(--theme-ground) 49%);box-shadow:inset 0 0 0 1px #ffffff24}.theme-grid span>*{display:block}.theme-grid span strong{font:600 10px Cinzel}.theme-grid span small{font-size:7px;line-height:1.4;color:var(--muted);margin-top:3px}.theme-grid button>b{grid-column:2;font-size:7px;color:var(--gold)}.theme-grid button.active{border-color:var(--gold)}.room-builder{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;padding-top:13px;border-top:1px solid #302d31}.room-builder label{font-size:8px;color:var(--muted)}.room-builder select{display:block;width:100%;margin-top:5px}.room-builder button{align-self:end}.built-rooms{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}.built-rooms>span{color:var(--muted);padding:10px}.built-rooms article{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid #33373a;border-radius:10px}.built-rooms span>*{display:block}.built-rooms small{font-size:7px;color:var(--gold)}.built-rooms strong{font:600 11px Cinzel;margin:2px 0}.built-rooms em{font-size:7px;color:var(--muted);font-style:normal}
.defense-analytics{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}.defense-analytics article{padding:14px;border:1px solid #38313c;border-radius:12px;background:linear-gradient(145deg,#18121d,#0d1110)}.defense-analytics span,.defense-analytics strong{display:block}.defense-analytics span{font-size:6px;letter-spacing:.12em;color:var(--muted)}.defense-analytics strong{font:600 19px Cinzel;color:#e9c495;margin-top:6px}.damage-ledger{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.damage-ledger span{padding:4px 6px;border:1px solid #37333a;border-radius:5px;color:#8d9390;font-size:7px}.damage-ledger b{color:#d2c5ad}
@media(max-width:1050px){.layout-progression,.trap-mastery-grid{grid-template-columns:1fr 1fr}.theme-grid{grid-template-columns:1fr 1fr}.room-builder{grid-template-columns:1fr 1fr}.room-builder button{grid-column:1/-1}.defense-analytics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:740px){.mastery-panel{padding:15px}.layout-progression,.trap-mastery-grid,.theme-grid,.room-builder,.built-rooms,.defense-analytics{grid-template-columns:1fr}.architect-workshop>header{display:block}.architect-workshop>header>strong{display:block;margin-top:8px}.room-builder button{grid-column:auto}.layout-card{min-height:150px}.workshop-heading{align-items:flex-start;flex-direction:column}.report-summary{align-items:flex-start}.summary-number{min-width:72px}.damage-ledger{margin-top:10px}}

.inventory-filters{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:6px;margin:13px 0}.inventory-filters input,.inventory-filters select{min-width:0;padding:8px;font-size:8px}.favorite-filter{grid-column:1/-1;display:flex!important;align-items:center;gap:7px;margin:0!important;padding:8px 10px;border:1px solid #39313e;border-radius:8px;background:#120e16;color:#c7b9ce!important;font-size:8px!important}.favorite-filter input{width:auto}.item-row.favorite{border-color:#9e744a;box-shadow:inset 3px 0 #dca35e}.work-actions{flex-wrap:wrap}.work-actions button:disabled{opacity:.45;cursor:not-allowed}.item-comparison{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:11px 13px;margin:0 0 13px;border:1px solid #3f3743;border-radius:10px;background:linear-gradient(120deg,#18121d,#101411)}.item-comparison div span,.item-comparison div strong{display:block}.item-comparison div span{font-size:6px;letter-spacing:.13em;color:var(--muted)}.item-comparison div strong{font-size:9px;margin-top:3px}.item-comparison>b{grid-row:1/3;grid-column:2;font:600 14px Cinzel}.item-comparison>b.better{color:#76d9ae}.item-comparison>b.worse{color:#eb7e87}.item-comparison>small{font-size:7px;color:#92879a}.loot-codex{margin-top:16px;border:1px solid #3c3341;border-radius:12px;background:#0f0c13;overflow:hidden}.loot-codex summary{cursor:pointer;display:grid;grid-template-columns:1fr 90px;gap:12px;align-items:center;padding:12px}.loot-codex summary span b,.loot-codex summary span small{display:block}.loot-codex summary span b{font:600 11px Cinzel}.loot-codex summary span small{font-size:7px;color:var(--muted);margin-top:3px}.loot-codex summary>i{height:5px;border-radius:4px;background:linear-gradient(90deg,var(--gold) var(--codex),#2c2530 var(--codex));box-shadow:0 0 10px #f0a65c20}.codex-section{padding:11px 12px;border-top:1px solid #2f2933}.codex-section>strong{display:block;font-size:6px;letter-spacing:.14em;color:var(--gold);margin-bottom:8px}.codex-section>div{display:flex;flex-wrap:wrap;gap:4px}.codex-section span{padding:4px 6px;border:1px solid #3d3541;border-radius:5px;font-size:6px;color:#b9acbf}.codex-section span.unknown{color:#514957;background:#151119;filter:blur(.15px)}
@media(max-width:740px){.inventory-filters{grid-template-columns:1fr 1fr}.inventory-filters input{grid-column:1/-1}.favorite-filter{grid-column:1/-1}.item-comparison{grid-template-columns:1fr}.item-comparison>b{grid-row:auto;grid-column:auto}.loot-codex summary{grid-template-columns:1fr 70px}}

.sound-controls{display:grid;grid-template-columns:1fr 1fr;gap:5px;align-items:center;margin-top:10px}.sound-controls button{padding:7px 8px;border-radius:8px;font-size:7px;color:#c6b9cc;background:#17111d}.sound-controls button[aria-pressed="true"]{color:var(--gold-2);border-color:#735a45}
@media(max-width:740px){.sound-controls{margin-top:8px}.sound-controls+.reset{display:none}}

/* Release-candidate onboarding, accessibility, and profile safety */
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}
.modal-scrim,.onboarding-scrim{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#07040bc9;backdrop-filter:blur(14px);z-index:50}.settings-panel{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid #785f84;border-radius:20px;background:linear-gradient(150deg,#251a2e,#100c17 76%);box-shadow:0 30px 100px #000c;padding:24px}.settings-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.icon-button{width:38px;height:38px;padding:0;display:grid;place-items:center;border-radius:50%;font-size:22px;background:#ffffff07}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.setting-row,.setting-slider,.setting-select{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:13px;border:1px solid #46384f;border-radius:12px;background:#0f0b15;text-transform:none;letter-spacing:0}.setting-row span strong,.setting-row span small,.setting-slider span strong,.setting-slider span small,.setting-select span strong,.setting-select span small{display:block}.setting-row strong,.setting-slider strong,.setting-select strong{font:600 11px Georgia,serif;color:var(--text)}.setting-row small,.setting-slider small,.setting-select small{font-size:7px;line-height:1.5;color:var(--muted);margin-top:4px}.setting-row button{min-width:82px;padding:8px;font-size:8px}.setting-row button[aria-pressed="true"]{color:var(--gold-2);border-color:#a6784d;background:#f0a65c10}.setting-slider input{width:150px;padding:0;accent-color:var(--gold)}.setting-select select{min-width:126px;font-size:9px;padding:8px}.save-tools{margin-top:14px;padding:16px;border:1px solid #5a465f;border-radius:14px;background:linear-gradient(120deg,#f0a65c0c,#120d19)}.save-tools p{margin:0 0 12px;color:var(--muted);font-size:9px;line-height:1.6}.save-tools>div{display:flex;flex-wrap:wrap;gap:7px}.save-tools button{font-size:8px}
.onboarding-scrim{z-index:60;background:radial-gradient(circle at 25% 20%,#8c584637,transparent 30%),#07040bea}.onboarding-card{display:grid;grid-template-columns:240px minmax(0,520px);width:min(760px,100%);min-height:390px;border:1px solid #8a674d;border-radius:24px;overflow:hidden;background:linear-gradient(145deg,#24172c,#0e0a14);box-shadow:0 35px 120px #000d}.onboarding-art{position:relative;display:grid;place-items:center;background:radial-gradient(circle,#f0a65c24,transparent 42%),linear-gradient(155deg,#3b273c,#16101e)}.onboarding-art:before,.onboarding-art:after{content:"";position:absolute;border:1px solid #e5ad6750;transform:rotate(45deg)}.onboarding-art:before{width:120px;height:120px}.onboarding-art:after{width:174px;height:174px}.onboarding-art>i{position:relative;z-index:1;width:82px;height:82px;display:grid;place-items:center;border:1px solid #e7b16d;border-radius:50%;background:#120c18;color:#ffd89c;font:600 35px Cinzel;font-style:normal;box-shadow:0 0 45px #f0a65c2b}.onboarding-art>span{position:absolute;left:22px;bottom:22px;font-size:8px;letter-spacing:.18em;color:#d7b489}.onboarding-copy{display:flex;flex-direction:column;justify-content:center;padding:42px}.onboarding-copy h2{font-size:30px;line-height:1.16}.onboarding-copy p{font-size:12px;line-height:1.8;color:#c2b5c7;margin:17px 0}.onboarding-dots{display:flex;gap:6px;margin:5px 0 28px}.onboarding-dots i{width:26px;height:3px;border-radius:4px;background:#403448}.onboarding-dots i.active{background:var(--gold);box-shadow:0 0 10px #f0a65c66}.onboarding-copy footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:auto}.onboarding-copy footer>div{display:flex;gap:7px}.onboarding-copy footer button{font-size:9px}.onboarding-copy footer>.quiet{border:0;background:transparent;color:var(--muted)}
.stability-panel{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:20px;margin-bottom:18px}.stability-panel p{margin:6px 0 0}.forecast-metrics{display:grid;grid-template-columns:repeat(5,auto);gap:5px}.forecast-metrics span{padding:8px;border:1px solid #493a50;border-radius:8px;text-align:center;color:var(--muted);font-size:7px}.forecast-metrics b{display:block;font:600 13px Cinzel;color:var(--gold-2);margin-bottom:2px}.stability-panel>button{font-size:9px;white-space:nowrap}
body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}body.high-contrast{--text:#fff;--muted:#d4cbd8;--line:#7c6a85;--gold:#ffc06f;--gold-2:#ffe7bc}body.high-contrast button,body.high-contrast input,body.high-contrast select{border-color:#807087}body.high-contrast .panel{border-color:#796783}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.stability-panel{grid-template-columns:1fr}.forecast-metrics{grid-template-columns:repeat(5,1fr)}}
@media(max-width:740px){.modal-scrim,.onboarding-scrim{padding:10px}.settings-panel{padding:17px;max-height:calc(100vh - 20px)}.setting-row,.setting-slider,.setting-select{grid-template-columns:1fr}.setting-slider input,.setting-select select{width:100%;min-width:0}.onboarding-card{grid-template-columns:1fr;max-height:calc(100vh - 20px);overflow:auto}.onboarding-art{min-height:155px}.onboarding-art:before{width:75px;height:75px}.onboarding-art:after{width:108px;height:108px}.onboarding-art>i{width:58px;height:58px;font-size:25px}.onboarding-art>span{left:16px;bottom:12px}.onboarding-copy{padding:25px 20px}.onboarding-copy h2{font-size:24px}.onboarding-copy footer{align-items:stretch;flex-direction:column-reverse}.onboarding-copy footer>div,.onboarding-copy footer button{width:100%}.forecast-metrics{grid-template-columns:1fr 1fr}.forecast-metrics span:last-child{grid-column:1/-1}}

/* v1.4 relic sets and runework */
.item-row.set-item{box-shadow:inset 3px 0 var(--set)}.set-banner{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin:12px 0;padding:11px;border:1px solid color-mix(in srgb,var(--set) 55%,#3d3541);border-radius:11px;background:color-mix(in srgb,var(--set) 8%,#110d16)}.set-banner span small,.set-banner span strong{display:block}.set-banner span small{font-size:6px;letter-spacing:.15em;color:var(--set)}.set-banner span strong{font:600 12px Cinzel;margin-top:4px}.set-banner p{margin:0;color:var(--muted);font-size:8px}.rune-forge{margin:13px 0;padding:13px;border:1px solid #51435a;border-radius:12px;background:#0e0a13}.rune-forge>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.rune-forge>header h3{margin:3px 0}.rune-forge>header button{font-size:7px}.rune-forge>header button:disabled{opacity:.4}.socket-row{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.socket-row>button{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:7px;text-align:left;border-color:color-mix(in srgb,var(--rune) 55%,#444)}.socket-row>button>i,.rune-storage button>i{color:var(--rune);font-style:normal}.socket-row strong,.socket-row small{display:block}.socket-row strong{font-size:8px}.socket-row small{font-size:6px;color:var(--muted)}.empty-socket{min-width:120px;padding:10px;border:1px dashed #5c4d65;border-radius:8px;text-align:center;color:#82738a;font-size:6px;letter-spacing:.13em}.empty-socket.locked{opacity:.6}.rune-storage{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding-top:10px;border-top:1px solid #352d3b}.rune-storage button{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:6px;text-align:left;padding:8px;border-color:color-mix(in srgb,var(--rune) 35%,#403744)}.rune-storage button span strong,.rune-storage button span small{display:block}.rune-storage button span strong{font-size:7px}.rune-storage button span small{font-size:5px;color:var(--muted)}.rune-storage button>b{font-size:7px;color:var(--rune)}.rune-storage button:disabled{opacity:.38;cursor:not-allowed}.active-sets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:13px;padding-top:11px;border-top:1px solid #39313f}.active-sets>span{font-size:6px;letter-spacing:.14em;color:var(--muted)}.active-sets>i{padding:7px 9px;border:1px solid color-mix(in srgb,var(--set) 50%,#44394b);border-radius:8px;background:color-mix(in srgb,var(--set) 7%,#100c14);font-style:normal}.active-sets>i b,.active-sets>i small{display:block}.active-sets>i b{font:600 8px Cinzel;color:var(--set)}.active-sets>i small{font-size:5px;color:var(--muted);margin-top:3px}.active-sets>em{color:#716678;font-size:7px;font-style:normal}
@media(max-width:740px){.set-banner{grid-template-columns:1fr}.rune-forge>header{align-items:stretch;flex-direction:column}.rune-storage{grid-template-columns:1fr}.socket-row{display:grid}.empty-socket{min-width:0}.active-sets{align-items:stretch;flex-direction:column}}

/* v1.5 readable 2D presentation */
.dungeon-board-2d{min-height:465px;border:1px solid #705977;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 35%,#49335033,transparent 46%),linear-gradient(145deg,#1b1324,#0d0a12);box-shadow:inset 0 0 70px #050208b8,0 18px 42px #05020866}
.dungeon-board-2d>header,.dungeon-board-2d>footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid #5b48655c;background:#100b17c7}
.dungeon-board-2d>header span b,.dungeon-board-2d>header span small{display:block}.dungeon-board-2d>header span b{font:600 14px Georgia,serif;letter-spacing:.08em;color:#f6d4a1}.dungeon-board-2d>header span small{margin-top:5px;color:#c0b4c5}.dungeon-board-2d>header em{font-style:normal;font-size:11px;letter-spacing:.14em;color:#e59d68}
.dungeon-board-frame{position:relative;min-height:360px;display:grid;place-items:center;padding:28px;background:linear-gradient(90deg,#ffffff05 1px,transparent 1px),linear-gradient(#ffffff05 1px,transparent 1px);background-size:34px 34px}
.dungeon-board-frame:before,.dungeon-board-frame:after{content:"";position:absolute;border:1px solid #e9ae6a18;transform:rotate(45deg);pointer-events:none}.dungeon-board-frame:before{width:260px;height:260px}.dungeon-board-frame:after{width:340px;height:340px}
.dungeon-board-frame .dungeon-grid{position:relative;z-index:2;width:min(100%,650px);aspect-ratio:1.55;border:1px solid #856b8b;border-radius:16px;padding:16px;background:radial-gradient(circle,#9b799529 1px,transparent 1px),linear-gradient(145deg,#23182cfa,#100c16fa);background-size:20px 20px;box-shadow:0 20px 55px #000a,inset 0 0 35px #a96c9d0b}
.dungeon-board-frame .dungeon-cell{min-height:51px;border-radius:11px}.dungeon-board-frame .dungeon-cell.path{border-color:#796586;background:linear-gradient(145deg,#3a2e44,#211928);box-shadow:inset 0 1px #ffffff10,0 5px 14px #0006}.dungeon-board-frame .dungeon-cell.path:hover{border-color:#ffc57e;background:linear-gradient(145deg,#4d3748,#2a1e2d);box-shadow:0 0 0 2px #f0a65c24,0 8px 20px #0008}.dungeon-board-frame .dungeon-cell.trap{background:linear-gradient(145deg,#472a31,#26171f)}.dungeon-board-frame .dungeon-cell.monster{background:linear-gradient(145deg,#244035,#15241e)}
.board-runes{position:absolute;z-index:0;color:#dfa8681c;font:600 62px Georgia,serif;letter-spacing:.38em;white-space:nowrap}.dungeon-board-2d>footer{border-top:1px solid #5b48655c;border-bottom:0;justify-content:flex-start;color:#b7aabd;font-size:11px}.dungeon-board-2d>footer span{display:flex;align-items:center;gap:7px}.dungeon-board-2d>footer span i{width:7px;height:7px;border-radius:50%;background:#76d9ae}.dungeon-board-2d>footer span:nth-child(2) i{background:#ff6b78}.dungeon-board-2d>footer strong{margin-left:auto;font-size:10px;letter-spacing:.12em;color:#f0a65c}

.raid-board-2d{height:330px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr);align-items:center;gap:16px;padding:26px;border:1px solid color-mix(in srgb,var(--region) 55%,#493750);border-radius:18px;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 36%,color-mix(in srgb,var(--region) 20%,transparent),transparent 34%),linear-gradient(180deg,#271a30,#0e0a14 78%);box-shadow:inset 0 0 75px #050208a8,0 16px 38px #05020866}
.raid-board-2d:before{content:"";position:absolute;inset:auto 0 0;height:35%;z-index:-1;background:linear-gradient(180deg,transparent,#060409b8),repeating-linear-gradient(90deg,#ffffff08 0 1px,transparent 1px 64px);transform:perspective(260px) rotateX(55deg);transform-origin:bottom}.arena-depth{position:absolute;inset:0;z-index:-2;display:flex;justify-content:space-around;align-items:flex-start;padding-top:44px;opacity:.4}.arena-depth i{width:16%;height:68%;border:1px solid color-mix(in srgb,var(--region) 36%,#4b3a55);border-bottom:0;border-radius:80px 80px 0 0;box-shadow:inset 0 0 30px #0008}
.battle-side{min-width:0}.battle-side>.board-label{display:block;margin-bottom:12px;font-size:10px;font-weight:700;letter-spacing:.17em;color:#cdbfd1}.party-side>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.battle-token,.boss-token{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid #665273;border-radius:13px;background:linear-gradient(145deg,#2a2032e8,#17101fe8);box-shadow:0 10px 24px #0006,inset 0 1px #ffffff0c}.battle-token img,.battle-token>i,.boss-token>i{width:46px;height:52px;display:grid;place-items:center;border:1px solid var(--token,#9f819f);border-radius:10px;background:#100c16;object-fit:cover;font:600 22px Georgia,serif;font-style:normal;color:var(--token,#f0b574)}.battle-token span strong,.battle-token span small,.boss-token span strong,.boss-token span small{display:block;overflow:hidden;text-overflow:ellipsis}.battle-token span strong,.boss-token span strong{font:600 13px Georgia,serif;white-space:nowrap}.battle-token span small,.boss-token span small{margin-top:4px;color:#b9acbf}.battle-token.active{border-color:var(--token);box-shadow:0 0 0 2px color-mix(in srgb,var(--token) 20%,transparent),0 12px 30px #0008}.battle-token.fallen{filter:grayscale(1);opacity:.3}
.battle-center{text-align:center}.battle-center span,.battle-center small{display:block;font-size:10px;letter-spacing:.14em;color:#c9b7c8}.battle-center b{display:grid;place-items:center;width:66px;height:66px;margin:10px auto;border:1px solid #d49b67;border-radius:50%;background:#1a111e;color:#ffc77d;font:600 28px Georgia,serif;box-shadow:0 0 34px #e58b5540}.enemy-side{text-align:right}.enemy-side>.board-label{text-align:right}.boss-token{grid-template-columns:minmax(0,1fr) 72px;padding:15px;border-color:color-mix(in srgb,var(--region) 68%,#8f5869);background:linear-gradient(145deg,color-mix(in srgb,var(--region) 16%,#291729),#160d1b)}.boss-token>i{grid-column:2;grid-row:1;width:70px;height:78px;border-color:var(--region);color:var(--region);font-size:34px}.boss-token>span{grid-column:1;grid-row:1}.boss-token span strong{font-size:18px;white-space:normal}.boss-token span small{color:var(--region)}.unknown-token{opacity:.7}.sovereign-board{box-shadow:inset 0 0 90px color-mix(in srgb,var(--region) 10%,#050208),0 16px 42px #05020877}.raid-board-2d .combat-floats{position:absolute;inset:0;z-index:4;pointer-events:none}
.sovereign-enemy{border-color:#a57969;border-right-color:var(--gold);background:linear-gradient(115deg,#2b1b2e,#18101f)}.sovereign-enemy>i:not(.sigil){color:#ffd18a;border-color:#b6835b;box-shadow:inset 0 0 25px #f0a65c18,0 0 24px #f0a65c16}.phase-name{display:block;margin:4px 0;color:#f3bd7e;font:600 13px Georgia,serif}.reward-strip small{display:block;margin-top:8px;color:#f3bd7e;font-size:11px;letter-spacing:.08em}

body[data-text-size="large"]{font-size:15px;line-height:1.45}body[data-text-size="large"] button,body[data-text-size="large"] input,body[data-text-size="large"] select,body[data-text-size="large"] label{font-size:13px}body[data-text-size="large"] small{font-size:11px!important;line-height:1.45}body[data-text-size="large"] .eyebrow{font-size:11px}body[data-text-size="large"] .muted{font-size:14px}body[data-text-size="large"] .brand span,body[data-text-size="large"] .hero-chip span,body[data-text-size="large"] .threat span{font-size:11px}body[data-text-size="large"] .piece strong,body[data-text-size="large"] .item-row strong,body[data-text-size="large"] .equipment-slot strong,body[data-text-size="large"] .spell strong{font-size:13px}body[data-text-size="large"] .combatant span,body[data-text-size="large"] .combatant p,body[data-text-size="large"] .bar span,body[data-text-size="large"] .combat-log p{font-size:12px}body[data-text-size="large"] .enemy-intent span small,body[data-text-size="large"] .enemy-intent span strong,body[data-text-size="large"] .enemy-intent span em,body[data-text-size="large"] .enemy-intent>p{font-size:11px}body[data-text-size="large"] .party-member strong{font-size:11px}body[data-text-size="large"] .resource{font-size:13px}body[data-text-size="large"] .region-card em,body[data-text-size="large"] .difficulty-card small,body[data-text-size="large"] .contract p{font-size:12px}

body[data-text-size="large"] .region-grid{grid-template-columns:repeat(3,1fr)}body[data-text-size="large"] .region-card{min-height:158px;padding:16px}body[data-text-size="large"] .region-card span small,body[data-text-size="large"] .region-card>b{font-size:10px}body[data-text-size="large"] .region-card span strong{font-size:14px;margin:6px 0}body[data-text-size="large"] .difficulty-card span{font-size:10px}body[data-text-size="large"] .difficulty-card strong{font-size:16px}body[data-text-size="large"] .expedition-brief span{font-size:10px}body[data-text-size="large"] .expedition-brief strong{font-size:13px}body[data-text-size="large"] .doctrine-controls{grid-template-columns:1fr 1fr}body[data-text-size="large"] .doctrine-controls>button{grid-column:1/-1}body[data-text-size="large"] .doctrine-head p{font-size:12px}body[data-text-size="large"] .doctrine-head>b{font-size:10px}body[data-text-size="large"] .doctrine-controls label{font-size:11px}body[data-text-size="large"] .formation-order>span{font-size:10px}body[data-text-size="large"] .formation-order article span small,body[data-text-size="large"] .formation-order article>em{font-size:9px}body[data-text-size="large"] .formation-order article span strong{font-size:11px}
body[data-text-size="large"] .guardian-card header span,body[data-text-size="large"] .guardian-card header>b,body[data-text-size="large"] .guardian-gear>span,body[data-text-size="large"] .rank-up{font-size:11px}body[data-text-size="large"] .layout-card>span,body[data-text-size="large"] .layout-card p,body[data-text-size="large"] .layout-card small,body[data-text-size="large"] .trap-mastery span small,body[data-text-size="large"] .trap-mastery p,body[data-text-size="large"] .defense-analytics span{font-size:11px}body[data-text-size="large"] .keeper-branch>header span,body[data-text-size="large"] .keeper-branch>p,body[data-text-size="large"] .talent-card small,body[data-text-size="large"] .talent-card em,body[data-text-size="large"] .mastery-footer>span{font-size:11px}body[data-text-size="large"] .talent-card strong{font-size:12px}body[data-text-size="large"] .menagerie-count span,body[data-text-size="large"] .egg-card span,body[data-text-size="large"] .creature-card header span,body[data-text-size="large"] .creature-card header>b,body[data-text-size="large"] .xp-copy,body[data-text-size="large"] .creature-identity small,body[data-text-size="large"] .lineage-heading span small,body[data-text-size="large"] .lineage-heading>em,body[data-text-size="large"] .lineage-options button span small,body[data-text-size="large"] .memory-ledger>span,body[data-text-size="large"] .memory-ledger>i{font-size:10px}body[data-text-size="large"] .contract>span,body[data-text-size="large"] .renown-mark span,body[data-text-size="large"] .contract small{font-size:10px}body[data-text-size="large"] .setting-row small,body[data-text-size="large"] .setting-slider small,body[data-text-size="large"] .setting-select small,body[data-text-size="large"] .save-tools p{font-size:11px}

@media(max-width:900px){body[data-text-size="large"] .region-grid{grid-template-columns:repeat(2,1fr)}.raid-board-2d{grid-template-columns:1fr 72px 1fr;padding:18px}.party-side>div{grid-template-columns:1fr}.battle-token{grid-template-columns:38px 1fr;padding:7px}.battle-token img,.battle-token>i{width:36px;height:40px}.boss-token{grid-template-columns:1fr 52px}.boss-token>i{width:50px;height:58px}.boss-token span strong{font-size:15px}}
@media(max-width:740px){body[data-text-size="large"] .region-grid,body[data-text-size="large"] .doctrine-controls{grid-template-columns:1fr}.dungeon-board-2d{min-height:0}.dungeon-board-2d>header{align-items:flex-start;flex-direction:column}.dungeon-board-frame{min-height:300px;padding:12px}.dungeon-board-frame .dungeon-grid{padding:8px;gap:4px}.dungeon-board-frame .dungeon-cell{min-height:43px}.dungeon-board-2d>footer{align-items:flex-start;flex-direction:column}.dungeon-board-2d>footer strong{margin-left:0}.raid-board-2d{height:350px;grid-template-columns:1fr 54px 1fr;padding:12px;gap:7px}.battle-side>.board-label{font-size:8px}.battle-token{grid-template-columns:1fr;text-align:center}.battle-token img,.battle-token>i{margin:auto}.battle-token span strong{font-size:10px}.battle-center b{width:46px;height:46px;font-size:20px}.battle-center span,.battle-center small{font-size:8px}.boss-token{grid-template-columns:1fr;text-align:center;padding:9px}.boss-token>i,.boss-token>span{grid-column:1;grid-row:auto}.boss-token>i{margin:auto;width:52px;height:58px}.enemy-side>.board-label{text-align:center}.combatant.enemy-combatant{grid-template-columns:auto 1fr}.enemy-intent{grid-column:1/-1}}

/* ImageGen realism icon layer */
.hero-avatar{object-position:50% 22%;background:#17111f}.piece{grid-template-columns:46px 1fr auto;min-height:62px}.piece-art,.guardian-art,.trap-art,.cell-art,.party-art,.sigil-art,.creature-art,.combatant-art,.battle-art,.boss-art{display:block;object-fit:contain;filter:drop-shadow(0 7px 10px #0008)}.piece-art{width:44px;height:44px;object-fit:contain;border:1px solid #584865;border-radius:10px;background:radial-gradient(circle,#ffffff0a,#100b16);padding:2px}.piece .fallback-art{display:grid;place-items:center;color:var(--gold-2);font-style:normal}.cell-art{width:72%;height:64%;max-width:68px;object-fit:contain;filter:drop-shadow(0 5px 6px #000b)}.dungeon-cell .cell-art+small{font-size:9px;margin-top:-3px;color:#c1b4c3}.guardian-card header{grid-template-columns:70px 1fr auto}.guardian-art{width:68px;height:68px;border:1px solid #654f6f;border-radius:13px;background:#110c18;object-position:center}.trap-mastery>div{grid-template-columns:52px 1fr auto}.trap-art{width:50px;height:50px;padding:2px;border:1px solid #5e4b68;border-radius:11px;background:#100b16}.party-member{min-height:52px}.party-art{width:38px;height:38px;border:1px solid var(--class);border-radius:10px;background:#100b16}.sigil-art{width:62px;height:62px;border:1px solid var(--sigil,#806584);border-radius:14px;background:#100b16;object-position:50% 20%;filter:drop-shadow(0 8px 12px #0008)}.creature-card header{grid-template-columns:70px 1fr auto}.creature-art{width:68px;height:68px;border:1px solid var(--beast);border-radius:14px;background:radial-gradient(circle,color-mix(in srgb,var(--beast) 12%,#120d19),#100b16);padding:2px}.combatant-art{width:78px;height:78px;border:1px solid #735e78;border-radius:14px;background:#130e1b;object-fit:contain;padding:2px}.battle-token .battle-art{width:46px;height:52px;border:1px solid var(--token);border-radius:10px;background:#100c16}.boss-token .boss-art{grid-column:2;grid-row:1;width:82px;height:92px;border:1px solid var(--region);border-radius:14px;background:radial-gradient(circle,color-mix(in srgb,var(--region) 12%,#110b17),#0d0911);object-fit:contain;padding:2px}.boss-token{grid-template-columns:minmax(0,1fr) 84px}.combatant>.fallback-art,.party-member>.fallback-art,.battle-token>.fallback-art,.boss-token>.fallback-art{display:grid;place-items:center;font-style:normal}
@media(max-width:740px){.guardian-card header,.creature-card header{grid-template-columns:58px 1fr}.guardian-art,.creature-art{width:56px;height:56px}.combatant-art{width:58px;height:58px}.boss-token .boss-art{grid-column:1;grid-row:auto;margin:auto;width:58px;height:66px}.boss-token{grid-template-columns:1fr}.piece{grid-template-columns:42px 1fr auto}.piece-art{width:40px;height:40px}}

/* v1.8 Chronicle */
.chronicle-hero{display:grid;grid-template-columns:1fr 150px;gap:28px;align-items:center;padding:28px;background:radial-gradient(circle at 90% 50%,#d99b4a1f,transparent 33%),linear-gradient(145deg,#171b17,#0c100e)}.chronicle-hero h2{font-size:26px}.chronicle-hero p{max-width:820px;color:var(--muted);line-height:1.7}.chronicle-seal{width:128px;height:128px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at center,#151813 53%,transparent 55%),conic-gradient(var(--gold) var(--completion),#34372f 0);box-shadow:0 0 34px #d99b4a22}.chronicle-seal strong,.chronicle-seal span{display:block}.chronicle-seal strong{font:600 24px Cinzel;color:var(--gold-2)}.chronicle-seal span{font-size:8px;color:var(--muted);margin-top:4px;text-transform:uppercase}.chronicle-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:14px 0}.chronicle-summary article{padding:13px;border:1px solid #353b35;background:#101410}.chronicle-summary span,.chronicle-summary strong{display:block}.chronicle-summary span{min-height:25px;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.chronicle-summary strong{font:600 20px Cinzel;margin:4px 0 9px}.chronicle-summary strong small{font-size:10px;color:#817c78}.chronicle-summary i,.chronicle-achievement>i{height:4px;display:block;background:#2b2e29;border-radius:4px;overflow:hidden}.chronicle-summary i b,.chronicle-achievement>i b{display:block;height:100%;background:linear-gradient(90deg,#9c6536,var(--gold-2))}.chronicle-achievements{padding:23px;margin-bottom:14px}.chronicle-achievements>.panel-head>strong{font-size:9px;color:var(--gold);letter-spacing:.1em}.achievement-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.chronicle-achievement{display:flex;min-height:225px;flex-direction:column;padding:14px;border:1px solid #353a35;background:#0d110e}.chronicle-achievement>span{font-size:7px;letter-spacing:.14em;color:var(--gold)}.chronicle-achievement h3{font-size:14px;margin:6px 0}.chronicle-achievement p{font-size:9px;color:var(--muted);line-height:1.5;flex:1}.chronicle-achievement small{font-size:7px;color:#aba39a;line-height:1.5;margin:8px 0}.chronicle-achievement button{font-size:8px}.chronicle-achievement.ready{border-color:#a97943;box-shadow:inset 0 0 24px #f0a65c12}.chronicle-achievement.claimed{opacity:.65}.chronicle-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.chronicle-category{padding:21px}.chronicle-category>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.chronicle-category>header>strong{font:600 16px Cinzel;color:var(--gold)}.chronicle-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.chronicle-entry{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:center;min-height:88px;padding:9px;border:1px solid #303630;background:#0d110e}.chronicle-entry>img,.chronicle-entry>i{width:58px;height:66px;object-fit:contain;display:grid;place-items:center;font-style:normal}.chronicle-entry small,.chronicle-entry strong{display:block}.chronicle-entry small{font-size:7px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em}.chronicle-entry strong{font:600 11px Cinzel;margin:3px 0}.chronicle-entry p{font-size:7px;line-height:1.45;color:var(--muted);margin:0}.chronicle-entry.undiscovered{filter:saturate(.25);opacity:.55}.chronicle-unknown{border:1px dashed #464c45;color:#747b72;font:600 18px Cinzel}.chronicle-region,.chronicle-relic{border-radius:50%;border:1px solid var(--entry-color);color:var(--entry-color);background:color-mix(in srgb,var(--entry-color) 12%,#10130f);font:600 22px Cinzel!important}.chronicle-room{border:1px solid #645747;color:#cfab78;background:#18140f;font-size:22px!important}
@media(max-width:1180px){.achievement-grid{grid-template-columns:repeat(3,1fr)}.chronicle-summary{grid-template-columns:repeat(3,1fr)}.chronicle-columns{grid-template-columns:1fr}.chronicle-entry-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:740px){.chronicle-hero{grid-template-columns:1fr;padding:18px}.chronicle-seal{width:108px;height:108px}.chronicle-summary,.achievement-grid,.chronicle-entry-grid{grid-template-columns:1fr}.chronicle-achievements,.chronicle-category{padding:15px}.chronicle-achievement{min-height:0}.chronicle-entry{grid-template-columns:58px 1fr}.chronicle-entry>img,.chronicle-entry>i{width:54px;height:61px}}

/* v2.0 Living Heart finale */
.living-heart{display:grid;grid-template-columns:150px 1fr 175px;gap:22px;align-items:center;margin:14px 0;padding:20px 24px;overflow:hidden;position:relative;background:radial-gradient(circle at 10% 50%,#9b372b35,transparent 26%),linear-gradient(120deg,#221413,#111613 58%,#18130e)}.living-heart:before{content:"";position:absolute;inset:-50%;pointer-events:none;background:conic-gradient(from 45deg,transparent,#ef8f5120,transparent 24%);animation:heart-halo 12s linear infinite}.living-heart>*{position:relative}.living-heart>img{width:140px;height:130px;object-fit:contain;filter:drop-shadow(0 12px 14px #0008) drop-shadow(0 0 18px #ee734a44)}.living-heart h2{font-size:22px}.living-heart p{margin:7px 0;color:var(--muted);font-size:11px;line-height:1.6}.living-heart>aside{text-align:center;border-left:1px solid #4d3730;padding-left:18px}.living-heart>aside strong,.living-heart>aside span{display:block}.living-heart>aside strong{font:600 25px Cinzel;color:var(--gold-2)}.living-heart>aside span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.living-heart>aside button{width:100%;margin-top:12px;font-size:8px}.living-heart.sleeping>img{filter:grayscale(.45) brightness(.7) drop-shadow(0 12px 14px #0008)}.heart-crowns{display:flex;gap:7px;margin-top:10px}.heart-crowns i{width:25px;height:25px;border:1px solid #55483e;display:grid;place-items:center;font-style:normal;color:#6b6259}.heart-crowns i.broken{border-color:#b8794f;color:#f0b066;background:#2b1d16;box-shadow:0 0 12px #ef8b4430}@keyframes heart-halo{to{transform:rotate(1turn)}}
@media(max-width:900px){.living-heart{grid-template-columns:110px 1fr}.living-heart>img{width:105px;height:100px}.living-heart>aside{grid-column:1/-1;border-left:0;border-top:1px solid #4d3730;padding:12px 0 0;display:grid;grid-template-columns:1fr 1fr 2fr;align-items:center}.living-heart>aside button{margin:0}}
@media(max-width:740px){.living-heart{grid-template-columns:1fr;padding:16px}.living-heart>img{width:120px;height:110px}.living-heart>aside{grid-template-columns:1fr;text-align:left;gap:3px}.living-heart>aside button{margin-top:8px}.heart-crowns{margin-bottom:4px}}
@media(max-width:740px){.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-button{min-width:0;overflow:hidden;justify-content:flex-start}.shell,.sidebar,main{width:100%;max-width:100vw}}

/* Intrinsic grid widths must not force the game beyond a phone viewport. */
.dashboard-grid>*{min-width:0}.panel-head>div{min-width:0}.panel-head{flex-wrap:wrap}
.piece{grid-template-columns:42px minmax(0,1fr) auto}.piece strong{overflow-wrap:anywhere}
@media(max-width:740px){.keep-layout{grid-template-columns:minmax(0,1fr)}.dungeon-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.guardian-grid{grid-template-columns:minmax(0,1fr)}.guardian-card{min-width:0;max-width:100%}.guardian-card header{grid-template-columns:58px minmax(0,1fr)}.guardian-card select{max-width:100%;min-width:0}.dungeon-viewport{height:380px;min-height:0}.panel-head{gap:12px}}
