:root{
  color-scheme:dark;
  --bg:#07070a;--panel:#121117;--panel2:#1a171d;--line:#302832;--ink:#eee9df;
  --muted:#aaa2a4;--blood:#9b1e32;--blood2:#d04459;--gold:#c7a768;--green:#77c99c;
  --danger:#ff6677;--shadow:0 12px 34px rgba(0,0,0,.42);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 0,#171019 0,#09090d 42%,#050507 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}button{font:inherit}
body{min-height:100vh}.app{min-height:100vh;padding-bottom:88px}.screen{max-width:980px;margin:0 auto;padding:16px}.title-screen{min-height:100vh;display:flex;align-items:flex-end;justify-content:center;padding:28px 18px;background:linear-gradient(to bottom,rgba(10,6,12,.1),rgba(7,7,10,.94)),radial-gradient(circle at 50% 20%,#43121e 0,#171019 23%,#08070a 62%)}.title-wrap{text-align:center;width:min(560px,100%);padding:32px 20px 34px;border:1px solid #493440;background:rgba(10,8,12,.74);box-shadow:var(--shadow);backdrop-filter:blur(8px)}.sigil{font-size:52px;filter:drop-shadow(0 0 18px #a2293c)}h1{font-family:Georgia,serif;letter-spacing:.13em;margin:8px 0 0;font-size:clamp(34px,9vw,64px)}.subtitle{font-family:Georgia,serif;color:var(--gold);letter-spacing:.24em;font-size:13px;margin:8px 0 24px}.eyebrow{color:var(--blood2);letter-spacing:.22em;text-transform:uppercase;font-size:11px;font-weight:800}.muted{color:var(--muted)}.btn{width:100%;border:1px solid #453743;background:linear-gradient(#242029,#151319);color:var(--ink);padding:13px 14px;margin:7px 0;border-radius:10px;font-weight:800;letter-spacing:.04em;box-shadow:0 6px 18px rgba(0,0,0,.25)}.btn.primary{border-color:#7c2b3b;background:linear-gradient(#a2293e,#681827)}.btn.gold{border-color:#78603d;background:linear-gradient(#856c40,#4a3823)}.btn:disabled{opacity:.35}.btn.small{width:auto;padding:8px 10px;margin:0;font-size:12px}.btn.ghost{background:transparent}.topbar{position:sticky;top:0;z-index:20;background:rgba(8,8,11,.94);backdrop-filter:blur(10px);border-bottom:1px solid #27222a;padding:10px 14px}.topbar-inner{max-width:980px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{font-family:Georgia,serif;font-weight:900;letter-spacing:.16em}.resources{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.pill{font-size:11px;border:1px solid #3a3139;padding:6px 8px;border-radius:999px;background:#141117}.hero-banner{border:1px solid #4a3440;background:linear-gradient(135deg,#20141b,#0e0d12 62%);padding:18px;border-radius:16px;box-shadow:var(--shadow);margin-bottom:14px}.hero-banner h2{font-family:Georgia,serif;margin:4px 0}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 8px 22px rgba(0,0,0,.18)}.card h3{margin:0 0 8px;font-family:Georgia,serif}.hub-card{min-height:122px;display:flex;flex-direction:column;justify-content:space-between}.icon{font-size:28px}.locked{opacity:.48;filter:saturate(.3)}.section-title{display:flex;justify-content:space-between;align-items:end;gap:10px;margin:22px 0 10px}.section-title h2{margin:0;font-family:Georgia,serif}.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;background:rgba(9,8,11,.96);border-top:1px solid #332934;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.navbtn{border:0;background:transparent;color:#c9c0c2;padding:6px 2px;font-size:11px}.navbtn span{display:block;font-size:20px;margin-bottom:3px}.navbtn.active{color:#ffcfda}.prologue{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px;background:radial-gradient(circle at top,#34131d,#0b0910 45%,#060609)}.story-card{max-width:650px;width:100%;border:1px solid #573744;border-radius:18px;background:rgba(11,9,13,.88);padding:22px;box-shadow:var(--shadow)}.story-card h2{font-family:Georgia,serif;font-size:30px}.story-card p{line-height:1.65;color:#d3cacc}.progress{height:9px;border:1px solid #302630;border-radius:999px;overflow:hidden;background:#0b0a0d}.progress>div{height:100%;background:linear-gradient(90deg,#7d1c2d,#d14259)}.region{display:flex;gap:12px;align-items:center}.region-index{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;border:1px solid #5a3c47;background:#1c1218;color:var(--gold);font-family:Georgia,serif;font-weight:900}.region-content{flex:1}.region-content h3{margin:0 0 3px}.tag{display:inline-block;border:1px solid #3a3139;background:#111015;border-radius:999px;font-size:10px;padding:4px 7px;margin-right:4px;color:#c2b9bc}.battlefield{background:radial-gradient(circle at 50% 15%,#2c1621,#111017 45%,#09090c);border:1px solid #4a323c;border-radius:18px;padding:16px;min-height:450px;display:flex;flex-direction:column;justify-content:space-between}.enemy{text-align:center;padding:18px}.enemy-portrait{font-size:76px;margin:8px 0}.enemy h2{font-family:Georgia,serif;margin:4px}.hp{height:16px;background:#1a1115;border:1px solid #4a3038;border-radius:999px;overflow:hidden;position:relative}.hp>div{height:100%;background:linear-gradient(90deg,#8c1c2f,#d3455d)}.hp.hero-hp>div{background:linear-gradient(90deg,#3d7a62,#7ad0a1)}.hptext{font-size:11px;color:#d6cdd0;text-align:right;margin-top:3px}.party{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.fighter{background:#111016;border:1px solid #342b34;border-radius:10px;padding:8px;text-align:center}.fighter .portrait{font-size:28px}.fighter strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combat-log{height:95px;overflow:auto;background:#09090c;border:1px solid #2c252d;border-radius:10px;padding:8px;font-size:11px;color:#bdb3b6}.loot-card{border-color:#6f4d28;background:linear-gradient(180deg,#211912,#111015)}.rarity-common{color:#ddd}.rarity-uncommon{color:#8bcf8b}.rarity-rare{color:#79aef7}.rarity-epic{color:#bd81ff}.rarity-legendary{color:#f0b84e}.rarity-mythic{color:#ff6f73}.rarity-cursed{color:#db4cff}.rarity-ancient{color:#ffd98a;text-shadow:0 0 10px #b36c22}.item-row{display:flex;gap:10px;align-items:center}.item-icon{width:42px;height:42px;border-radius:10px;background:#0c0b0f;border:1px solid #453944;display:grid;place-items:center;font-size:22px}.item-main{flex:1}.statline{font-size:11px;color:#bab0b3;margin-top:3px}.slots{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.slot{border:1px dashed #51404b;border-radius:10px;padding:10px;min-height:76px}.slot-name{font-size:10px;letter-spacing:.12em;color:#9f9497}.hero-card{display:flex;gap:12px;align-items:center}.hero-portrait{width:66px;height:66px;border:1px solid #4a3740;border-radius:14px;background:#19141a;display:grid;place-items:center;font-size:36px}.hero-info{flex:1}.hero-info h3{margin:0}.power{color:var(--gold);font-size:12px;font-weight:800}.meter{display:flex;gap:6px;align-items:center}.currency{color:#e0c787}.good{color:var(--green)}.bad{color:var(--danger)}.modal-backdrop{position:fixed;z-index:100;inset:0;background:rgba(0,0,0,.76);display:grid;place-items:center;padding:18px}.modal{width:min(520px,100%);max-height:85vh;overflow:auto;background:#111016;border:1px solid #4d3943;border-radius:16px;padding:18px;box-shadow:var(--shadow)}.modal h2{font-family:Georgia,serif}.toast{position:fixed;z-index:120;left:50%;bottom:96px;transform:translateX(-50%);background:#20171e;border:1px solid #6e4655;padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);font-size:13px}.split{display:flex;justify-content:space-between;gap:10px;align-items:center}.big-number{font-family:Georgia,serif;font-size:28px;color:var(--gold)}.divider{height:1px;background:#302730;margin:12px 0}.endgame-card{border-color:#573f6d;background:linear-gradient(135deg,#1d1325,#111014)}
@media(max-width:640px){.screen{padding:12px}.grid.three{grid-template-columns:1fr 1fr}.grid.two{grid-template-columns:1fr}.resources .pill:nth-child(1){display:none}.party{gap:5px}.fighter{padding:6px 4px}.fighter .portrait{font-size:24px}.title-wrap{padding:26px 16px}.slots{grid-template-columns:1fr 1fr}}


/* v0.2.0 — Chapter I combat presentation */
.ability-mini{font-size:9px;color:#c9b5bd;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.energy{height:5px;border:1px solid #34283a;background:#0a090d;border-radius:999px;overflow:hidden;margin-top:4px}
.energy>div{height:100%;background:linear-gradient(90deg,#5f337d,#d85cff)}
.ability-list{margin:10px 0;padding:9px;border:1px solid #342b38;border-radius:9px;background:#0e0d12;font-size:11px;line-height:1.55}
.encounter-title{font-family:Georgia,serif;color:var(--gold);font-size:18px;margin:6px 0}
.boss-phase{display:inline-block;margin-top:6px;border:1px solid #743345;border-radius:999px;padding:4px 8px;font-size:10px;color:#ffc3cf;background:#211117}
.status-chip{display:inline-block;border:1px solid #57374d;border-radius:999px;padding:2px 5px;margin-top:4px;font-size:9px;color:#e5b7cf}
.story-discovery{border-color:#72563c;background:linear-gradient(135deg,#21190f,#111014)}


/* v0.3.0 — equipment effect engine */
.effect-box{margin-top:8px;padding:8px 9px;border:1px solid #3d3140;border-radius:9px;background:#0c0b0f;font-size:10px;line-height:1.45}
.effect-box .unique{color:#e2c576}
.effect-box .curse{color:#df6f91;margin-top:4px}
.effect-box .ancient{color:#ffd98a;text-shadow:0 0 10px #8f5b22}
.proc-flash{animation:noctisProc .35s ease-out}
@keyframes noctisProc{0%{filter:brightness(1.8)}100%{filter:brightness(1)}}
.boss-loot-badge{display:inline-block;border:1px solid #735226;background:#21170e;color:#f0c77e;padding:3px 7px;border-radius:999px;font-size:9px;letter-spacing:.08em;margin-top:5px}


/* v0.4.0 — Black Citadel reconstruction */
.citadel-state{position:relative;overflow:hidden;border:1px solid #563844;background:linear-gradient(145deg,#171118,#0b0a0e);border-radius:18px;padding:18px;box-shadow:var(--shadow);margin-bottom:14px}
.citadel-state:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.26;background:radial-gradient(circle at 72% 18%,#7b1e35,transparent 32%),linear-gradient(120deg,transparent 30%,rgba(255,255,255,.035),transparent 62%)}
.citadel-rank{position:relative;display:flex;align-items:center;gap:14px}
.citadel-emblem{width:68px;height:68px;display:grid;place-items:center;border:1px solid #60404d;border-radius:14px;background:#100d12;font-size:38px;box-shadow:inset 0 0 22px rgba(120,30,50,.16)}
.citadel-rank h2{margin:2px 0 3px;font-family:Georgia,serif}
.reconstruction-meter{margin-top:14px;position:relative}
.reconstruction-labels{display:flex;justify-content:space-between;font-size:9px;color:#9f9297;margin-top:5px;letter-spacing:.05em}
.citadel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.citadel-building{border:1px solid #332b34;border-radius:11px;background:#0e0d11;padding:10px;min-height:82px}
.citadel-building.restored{border-color:#635039;background:linear-gradient(145deg,#17130e,#0e0d11)}
.citadel-building .building-icon{font-size:24px}
.citadel-building strong{display:block;margin:4px 0 2px;font-size:12px}
.citadel-building small{color:#968d90;font-size:10px;line-height:1.3}
.chapter-clear{border:1px solid #85643c;background:radial-gradient(circle at top,#332313,#141015 65%);border-radius:16px;padding:16px;box-shadow:0 10px 28px rgba(0,0,0,.3)}
.chapter-clear h2{font-family:Georgia,serif;color:#ead09a;margin:5px 0}
.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}
.reward-chip{border:1px solid #46372a;background:#100d0b;border-radius:9px;padding:8px;text-align:center;font-size:11px}
.family-badge{display:inline-block;margin-top:5px;border:1px solid #4b3947;border-radius:999px;padding:3px 7px;font-size:9px;color:#cbb8c7;letter-spacing:.06em}
@media(max-width:640px){.citadel-grid{grid-template-columns:1fr 1fr}.reward-grid{grid-template-columns:1fr 1fr 1fr}}


/* v0.5.0 — Blackthorn Forest */
.forest-banner{border:1px solid #3d5438;background:radial-gradient(circle at 75% 15%,rgba(82,31,91,.35),transparent 34%),linear-gradient(145deg,#10170f,#0a0d0a);border-radius:16px;padding:15px;margin-bottom:12px}
.forest-title{font-family:Georgia,serif;color:#c4d59d;margin:4px 0}
.poison-chip{display:inline-block;border:1px solid #49663e;background:#11190f;color:#9fdf83;border-radius:999px;padding:2px 5px;margin-top:4px;font-size:9px}
.root-chip{display:inline-block;border:1px solid #725447;background:#19110e;color:#dfb48f;border-radius:999px;padding:2px 5px;margin-top:4px;font-size:9px}
.witch-chip{display:inline-block;border:1px solid #623e70;background:#160d1a;color:#d8a7ed;border-radius:999px;padding:2px 6px;font-size:9px}
.citadel-expansion{margin-top:10px;border:1px solid #42523b;background:linear-gradient(145deg,#12170f,#0c0d0b);border-radius:12px;padding:11px}
.citadel-expansion strong{color:#cbd7aa}
.forest-reward{border:1px solid #586744;background:radial-gradient(circle at top,#1e2a18,#111014 70%);border-radius:16px;padding:16px}
.forest-reward h2{font-family:Georgia,serif;color:#cadb9d;margin:5px 0}


/* v0.6.0 — Summoning Altar & Cathedral of Blood */
.summon-panel{border:1px solid #553b62;background:radial-gradient(circle at 50% 0,rgba(102,41,119,.28),transparent 40%),linear-gradient(145deg,#151019,#0b0a0e);border-radius:16px;padding:16px}
.summon-pool{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.summon-hero{border:1px solid #352b3a;border-radius:10px;background:#0e0c11;padding:10px}
.summon-hero .portrait{font-size:28px}
.rate-table{width:100%;border-collapse:collapse;font-size:11px;margin:10px 0}
.rate-table td{padding:7px;border-bottom:1px solid #2e2630}
.rate-table td:last-child{text-align:right}
.cathedral-banner{border:1px solid #5b3140;background:radial-gradient(circle at 70% 10%,rgba(130,25,50,.28),transparent 32%),linear-gradient(145deg,#180d12,#0b0a0e);border-radius:16px;padding:15px;margin-bottom:12px}
.blood-chip{display:inline-block;border:1px solid #713041;background:#1d0d12;color:#ef9caf;border-radius:999px;padding:2px 6px;font-size:9px}
.holy-chip{display:inline-block;border:1px solid #675d3b;background:#18150d;color:#e8db9e;border-radius:999px;padding:2px 6px;font-size:9px}
.charm-chip{display:inline-block;border:1px solid #50385c;background:#140f17;color:#d2abd9;border-radius:999px;padding:2px 6px;font-size:9px}
.cathedral-reward{border:1px solid #6b3c49;background:radial-gradient(circle at top,#2a1119,#111014 70%);border-radius:16px;padding:16px}
.cathedral-reward h2{font-family:Georgia,serif;color:#efc4cf;margin:5px 0}


/* v0.7.0 — Solo Raid & Plague City */
.raid-panel{border:1px solid #4d3943;background:radial-gradient(circle at 50% 0,rgba(110,23,45,.28),transparent 42%),linear-gradient(145deg,#160d12,#0b0a0e);border-radius:16px;padding:16px}
.raid-boss{font-size:68px;text-align:center;margin:6px 0;filter:drop-shadow(0 0 18px rgba(140,40,60,.35))}
.raid-tier-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:12px 0}
.raid-tier{border:1px solid #3b3138;background:#100e12;color:#c8bec2;border-radius:9px;padding:8px 5px;font-size:10px}
.raid-tier.active{border-color:#7b3446;color:#ffd2dc;background:#241118}
.raid-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}
.raid-stat{border:1px solid #332a31;background:#0d0c0f;border-radius:9px;padding:9px;text-align:center;font-size:10px}
.raid-stat b{display:block;font-size:15px;color:#e4c58a;margin-top:3px}
.raid-log{height:120px;overflow:auto;background:#09090c;border:1px solid #2c252d;border-radius:10px;padding:8px;font-size:11px;color:#bdb3b6}
.plague-banner{border:1px solid #46553a;background:radial-gradient(circle at 70% 10%,rgba(89,118,50,.20),transparent 35%),linear-gradient(145deg,#11170f,#0b0d0a);border-radius:16px;padding:15px;margin-bottom:12px}
.infection-chip{display:inline-block;border:1px solid #52643f;background:#11180d;color:#b8d88f;border-radius:999px;padding:2px 6px;font-size:9px}
.decay-chip{display:inline-block;border:1px solid #6b5439;background:#1a130d;color:#d9b480;border-radius:999px;padding:2px 6px;font-size:9px}
.surgery-chip{display:inline-block;border:1px solid #4b5661;background:#10151a;color:#b9cbd7;border-radius:999px;padding:2px 6px;font-size:9px}
.plague-reward{border:1px solid #56633f;background:radial-gradient(circle at top,#1c2714,#111014 70%);border-radius:16px;padding:16px}
.plague-reward h2{font-family:Georgia,serif;color:#cadb9d;margin:5px 0}


/* v0.8.0 — Bounty Board & Frozen Necropolis */
.bounty-panel{border:1px solid #4a4534;background:linear-gradient(145deg,#15140e,#0b0a0e);border-radius:16px;padding:16px}
.bounty-grid{display:grid;gap:9px;margin-top:12px}
.bounty-card{border:1px solid #373225;border-radius:11px;background:#100f0b;padding:11px}
.bounty-card.complete{border-color:#6f673f;background:#17140c}
.bounty-progress{height:7px;background:#0b0a0d;border:1px solid #2e2a22;border-radius:999px;overflow:hidden;margin-top:7px}
.bounty-progress>div{height:100%;background:linear-gradient(90deg,#756a37,#c6b45e)}
.frozen-banner{border:1px solid #405564;background:radial-gradient(circle at 70% 10%,rgba(79,139,172,.22),transparent 34%),linear-gradient(145deg,#0f1519,#090b0d);border-radius:16px;padding:15px;margin-bottom:12px}
.frost-chip{display:inline-block;border:1px solid #416579;background:#0d151a;color:#a9d8ee;border-radius:999px;padding:2px 6px;font-size:9px}
.freeze-chip{display:inline-block;border:1px solid #5f7482;background:#11181d;color:#d4ecf6;border-radius:999px;padding:2px 6px;font-size:9px}
.shatter-chip{display:inline-block;border:1px solid #58616d;background:#111419;color:#d0d8df;border-radius:999px;padding:2px 6px;font-size:9px}
.frozen-reward{border:1px solid #4e6574;background:radial-gradient(circle at top,#14242d,#101014 70%);border-radius:16px;padding:16px}
.frozen-reward h2{font-family:Georgia,serif;color:#c9e6f4;margin:5px 0}


/* v0.9.0 — Ancient Archive & Crimson Kingdom */
.archive-panel{border:1px solid #5b523c;background:radial-gradient(circle at 65% 0,rgba(130,103,47,.18),transparent 36%),linear-gradient(145deg,#15120e,#0b0a0d);border-radius:16px;padding:16px}
.archive-grid{display:grid;gap:9px;margin-top:12px}
.archive-entry{border:1px solid #393226;border-radius:11px;background:#100e0b;padding:11px}
.archive-entry.locked{opacity:.5;filter:saturate(.45)}
.archive-bonus{border:1px solid #625536;background:#17130d;border-radius:10px;padding:9px;margin-top:8px}
.crimson-banner{border:1px solid #6a2f42;background:radial-gradient(circle at 70% 10%,rgba(150,29,65,.28),transparent 35%),linear-gradient(145deg,#1a0d12,#0b090d);border-radius:16px;padding:15px;margin-bottom:12px}
.charm-chip{display:inline-block;border:1px solid #61405f;background:#170f18;color:#e0b0df;border-radius:999px;padding:2px 6px;font-size:9px}
.blooddebt-chip{display:inline-block;border:1px solid #713041;background:#1d0d12;color:#ef9caf;border-radius:999px;padding:2px 6px;font-size:9px}
.frenzy-chip{display:inline-block;border:1px solid #7a3b30;background:#21100d;color:#f1b39e;border-radius:999px;padding:2px 6px;font-size:9px}
.crimson-reward{border:1px solid #713448;background:radial-gradient(circle at top,#2a1119,#111014 70%);border-radius:16px;padding:16px}
.crimson-reward h2{font-family:Georgia,serif;color:#efc4cf;margin:5px 0}

/* v0.10.0 — Blood Observatory & Ashen Wastes */
.observatory-panel,.ashen-banner,.ashen-reward{border:1px solid #5b4037;background:linear-gradient(145deg,#17100d,#0b0a0b);border-radius:16px;padding:15px}.observatory-grid{display:grid;gap:9px;margin-top:10px}.omen-card{border:1px solid #49352f;border-radius:11px;padding:11px;background:#100c0b}.omen-card.active{border-color:#8c473d}.morale-chip,.warfire-chip,.laststand-chip{display:inline-block;border:1px solid #654238;background:#1a0f0c;color:#e6b0a0;border-radius:999px;padding:2px 6px;font-size:9px}.ashen-reward h2{font-family:Georgia,serif;color:#e3b39f;margin:5px 0}

/* v0.11.0 — Drowned Kingdom */
.drowned-banner,.drowned-reward{border:1px solid #314e57;background:radial-gradient(circle at 70% 0,rgba(29,92,108,.2),transparent 35%),linear-gradient(145deg,#0d1619,#090b0d);border-radius:16px;padding:15px}.drowning-chip,.abyssal-chip,.undertow-chip{display:inline-block;border:1px solid #35616d;background:#0b1b20;color:#a9dbe4;border-radius:999px;padding:2px 6px;font-size:9px}.drowned-reward h2{font-family:Georgia,serif;color:#acd4db;margin:5px 0}

/* v0.12.0 — Iron Purgatory */
.purgatory-banner,.purgatory-reward{border:1px solid #59443d;background:radial-gradient(circle at 75% 0,rgba(143,65,36,.18),transparent 35%),linear-gradient(145deg,#17110f,#0b0a0b);border-radius:16px;padding:15px}.torment-chip,.chains-chip,.execution-chip{display:inline-block;border:1px solid #765040;background:#1c100c;color:#e4b29c;border-radius:999px;padding:2px 6px;font-size:9px}.purgatory-reward h2{font-family:Georgia,serif;color:#e1b19b;margin:5px 0}

/* v0.13.0 — Hollow Realm */
.hollow-banner,.hollow-reward{border:1px solid #514663;background:radial-gradient(circle at 70% 0,rgba(83,49,112,.22),transparent 38%),linear-gradient(145deg,#120f17,#08080b);border-radius:16px;padding:15px}.hollowing-chip,.null-chip,.fracture-chip{display:inline-block;border:1px solid #655278;background:#160f1e;color:#d0b8e5;border-radius:999px;padding:2px 6px;font-size:9px}.hollow-reward h2{font-family:Georgia,serif;color:#d1b9e5;margin:5px 0}

/* v0.14.0 — The Abyss */
.abyss-banner,.abyss-reward{border:1px solid #392f50;background:radial-gradient(circle at 65% 0,rgba(55,31,91,.28),transparent 38%),linear-gradient(145deg,#0b0910,#050507);border-radius:16px;padding:15px}.corruption-chip,.devour-chip,.doom-chip{display:inline-block;border:1px solid #4c3b68;background:#100b18;color:#c9b2e8;border-radius:999px;padding:2px 6px;font-size:9px}.abyss-reward h2{font-family:Georgia,serif;color:#cbb5e8;margin:5px 0}

/* v0.15.0 — Throne / Eternal Night */
.throne-banner,.throne-reward,.eternal-panel{border:1px solid #6a5742;background:radial-gradient(circle at 70% 0,rgba(126,83,35,.22),transparent 38%),linear-gradient(145deg,#15100d,#080708);border-radius:16px;padding:15px}.crown-chip,.annihilation-chip,.godwake-chip,.night-tier{display:inline-block;border:1px solid #765f45;background:#1a120b;color:#e5c89c;border-radius:999px;padding:2px 7px;font-size:9px}.throne-reward h2,.eternal-panel h2{font-family:Georgia,serif;color:#e0c395;margin:5px 0}.endgame-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.endgame-card{border:1px solid #3b3534;background:#0d0c0e;border-radius:12px;padding:10px}

/* v0.16.0 — Eternal Night I */
.endgame-stat{border:1px solid #44384d;background:#100d14;border-radius:10px;padding:9px;text-align:center}.endgame-stat b{display:block;font-family:Georgia,serif;font-size:18px}.nightmare-i{border-color:#6a4c78}.crypt-i{border-color:#665c43}.endgame-card .btn{margin-top:8px}

/* v0.17.0 — Eternal Night II */
.rift-i{border-color:#4b496f}.rush-i{border-color:#76533d}.rift-mod{display:inline-block;border:1px solid #514d79;background:#141226;color:#c9c4ff;border-radius:999px;padding:3px 7px;font-size:9px}.rush-chain{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.rush-node{border:1px solid #4b3b35;border-radius:8px;padding:4px 6px;font-size:9px}.rush-node.cleared{opacity:.45}

/* v0.18.0 — Eternal Night III */
.hunt-i{border-color:#6c5635}.forge-i{border-color:#773c31}.hunt-card{border:1px solid #51412d;background:linear-gradient(145deg,#17130d,#0c0b0d);border-radius:12px;padding:10px}.forge-recipe{border:1px solid #55312c;background:#130c0b;border-radius:12px;padding:10px;margin-top:8px}.ancient-mark{color:#ffd98a;text-shadow:0 0 10px #b36c22}.forge-level{color:#e6a074}

/* v0.19.0 — Ascension Systems */
.ascension-rank{color:#ffd98a;font-weight:800;letter-spacing:.08em}.trial-card{border-color:#55486f}.mythic-jewel{box-shadow:inset 0 0 18px rgba(173,113,255,.12)}

/* v0.20.0 — Mobile Stability */
@media(max-width:430px){.app{max-width:100%;overflow-x:hidden}.screen{padding-left:10px;padding-right:10px}.grid.two,.grid.three,.endgame-grid{grid-template-columns:1fr}.topbar-inner{gap:6px}.resources{gap:4px;flex-wrap:wrap;justify-content:flex-end}.pill{font-size:9px;padding:4px 6px}.hero-card{align-items:flex-start}.hero-card .btn{min-width:72px}.modal-backdrop{padding:10px}.modal{max-height:92vh;overflow-y:auto}.bottom-nav{padding-bottom:max(7px,env(safe-area-inset-bottom))}.btn{min-height:42px}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.item-row{gap:8px}.item-main{min-width:0}.item-main b,.statline{overflow-wrap:anywhere}}
@media(max-width:360px){.brand{font-size:15px}.resources .pill:nth-child(1){display:none}.screen{padding-left:8px;padding-right:8px}.bottom-nav .navbtn{font-size:9px}.bottom-nav .navbtn span{font-size:16px}}

/* v0.21.0 — UX Polish */
button:focus-visible,.btn:focus-visible,.navbtn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.btn:disabled{opacity:.42;cursor:not-allowed}.modal{overscroll-behavior:contain}.screen{animation:screenIn .14s ease-out}@keyframes screenIn{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.screen{animation:none}}

.endgame-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.endgame-progress>div{border:1px solid #34303d;background:#0d0b11;border-radius:9px;padding:7px}.endgame-progress span{display:block;font-size:9px;color:#918b99}.endgame-progress b{font-size:12px}@media(max-width:430px){.endgame-progress{grid-template-columns:1fr}.endgame-card .btn{width:100%}}

/* v0.21.0 QA2 — iPhone battle party fix */
@media(max-width:600px){.battlefield{padding:12px;min-height:0}.enemy{padding:10px 4px 14px}.enemy-portrait{font-size:60px}.party{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fighter{min-width:0;padding:9px 7px}.fighter .portrait{font-size:26px}.fighter strong{font-size:12px}.fighter .ability-mini{font-size:10px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.combat-log{height:110px;margin-top:8px}.section-title{align-items:center}.screen{overflow-x:hidden}}
