:root {
  color-scheme: dark;
  --ink: #eceaf5;
  --muted: #9691aa;
  --faint: #666176;
  --panel: #211e2b;
  --panel-2: #292536;
  --panel-3: #17151f;
  --line: rgba(255,255,255,.09);
  --gold: #f5bd4f;
  --gold-2: #e99132;
  --violet: #8f73ff;
  --violet-2: #5f42db;
  --green: #62d59b;
  --red: #f26b6d;
  --blue: #64b7e9;
  --cold: #78d8f2;
  --radius: 16px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #121018;
  color: var(--ink);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: #121018; }
body { min-width: 320px; overflow-x: hidden; }
button, input, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
[hidden] { display: none !important; }

.app-shell { min-height: 100vh; min-height: 100dvh; padding-bottom: 86px; background:
  radial-gradient(circle at 50% 0%, rgba(91,64,131,.16), transparent 35%),
  linear-gradient(180deg, #16131e 0, #121018 75%); }
.topbar { min-height: 70px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr minmax(230px, 430px) 1fr; align-items: center; gap: 24px; padding: 10px clamp(16px, 3vw, 48px); background: rgba(19,17,26,.88); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 30; }
.brand { display: inline-flex; align-items: center; justify-self: start; gap: 11px; border: 0; background: none; padding: 0; cursor: pointer; text-align: left; }
.brand-mark { width: 38px; height: 43px; display: grid; place-items: center; color: #251b10; font: 900 21px/1 Georgia, serif; background: linear-gradient(145deg, #ffd678, #d98529); clip-path: polygon(50% 0, 95% 18%, 84% 78%, 50% 100%, 16% 78%, 5% 18%); filter: drop-shadow(0 4px 8px rgba(229,143,47,.25)); }
.brand strong { display:block; color:#fff0cf; letter-spacing:.12em; font-size:15px; }
.brand small { display:block; color:#847d91; letter-spacing:.25em; font-size:8px; margin-top:2px; }
.topbar-progress { display:flex; align-items:center; gap:10px; min-width:0; }
.level-chip { flex:0 0 auto; border:1px solid rgba(245,189,79,.35); color:#b9b2c5; padding:7px 10px; border-radius:7px; font-size:10px; letter-spacing:.1em; }
.level-chip strong { color:var(--gold); font-size:15px; margin-left:3px; }
.top-xp { height:26px; background:#0e0d13; border:1px solid var(--line); border-radius:7px; flex:1; position:relative; overflow:hidden; display:grid; place-items:center; color:#bbb6c8; font-size:9px; letter-spacing:.08em; }
.top-xp span { position:relative; z-index:1; }
.top-xp i { position:absolute; inset:0 auto 0 0; background:linear-gradient(90deg, #6338bc, #9868eb); opacity:.65; transition:width .35s; }
.currencies { justify-self:end; display:flex; align-items:center; gap:14px; }
.currency { display:flex; align-items:center; gap:7px; font-size:13px; }
.currency i { color:var(--gold); font-style:normal; }
.save-state { color:#7b758a; font-size:10px; text-transform:uppercase; letter-spacing:.08em; display:flex; align-items:center; gap:6px; }
.save-state i { width:6px; height:6px; background:var(--green); border-radius:50%; box-shadow:0 0 9px var(--green); }
.icon-button { width:34px; height:34px; border:1px solid var(--line); border-radius:8px; background:#201d29; cursor:pointer; letter-spacing:2px; }

.game-layout { max-width:1480px; margin:0 auto; padding:clamp(16px,2vw,28px); display:grid; grid-template-columns:minmax(210px, 270px) minmax(480px, 1fr) minmax(220px, 280px); gap:16px; align-items:stretch; }
.card, .dungeon-card, .workspace { background:linear-gradient(165deg, rgba(42,38,55,.96), rgba(28,25,37,.98)); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 16px 50px rgba(0,0,0,.22); overflow:hidden; }
.card { padding:18px; }
.card-heading { display:flex; align-items:center; justify-content:space-between; color:#aaa4b9; letter-spacing:.13em; font-size:9px; font-weight:800; padding-bottom:14px; border-bottom:1px solid var(--line); }
.status-pill { padding:5px 8px; border-radius:999px; font-size:8px; letter-spacing:.12em; }
.status-pill.ready { color:#74dcab; background:rgba(64,179,122,.11); }
.status-pill.fighting { color:#ffca64; background:rgba(245,189,79,.12); }
.status-pill.fallen { color:#ff888a; background:rgba(242,107,109,.12); }
.portrait-wrap { display:grid; place-items:center; padding:20px 0 8px; position:relative; }
.portrait { width:112px; height:112px; border-radius:50%; position:relative; overflow:hidden; background:radial-gradient(circle at 50% 32%, #725b80 0 17%, #332940 48%, #17131d 70%); box-shadow:inset 0 0 0 3px #312a3e, 0 0 0 1px #61516d; }
.portrait-glow { position:absolute; width:54px; height:80px; background:#bd87db; filter:blur(25px); opacity:.25; left:28px; top:20px; }
.hero-head { position:absolute; width:34px; height:38px; background:linear-gradient(145deg,#c49b78,#8d674f); border-radius:45% 48% 42% 42%; left:39px; top:23px; box-shadow:inset -8px 0 #362938; }
.hero-head:after { content:""; position:absolute; width:22px; height:10px; background:#d9a957; left:7px; top:22px; clip-path:polygon(0 0,100% 0,80% 70%,55% 45%,30% 100%); opacity:.75; }
.hero-body { position:absolute; width:65px; height:64px; background:linear-gradient(135deg,#70758a,#303443 60%); border-radius:40% 40% 10% 10%; left:22px; top:57px; border:4px solid #242735; }
.hero-body:after { content:""; position:absolute; width:50px; height:11px; background:#a66e3d; top:31px; left:4px; transform:rotate(-5deg); }
.hero-sword { position:absolute; width:7px; height:64px; background:linear-gradient(90deg,#9ea9b8,#e9f0f5,#737d8d); right:18px; top:23px; transform:rotate(28deg); border-radius:5px 5px 2px 2px; box-shadow:0 0 8px rgba(209,226,237,.25); }
.hero-sword:after { content:""; position:absolute; width:25px; height:5px; background:#d9a450; bottom:9px; left:-9px; }
.class-badge { margin-top:-11px; z-index:2; background:#312944; border:1px solid rgba(161,126,228,.5); color:#bda5eb; padding:5px 9px; border-radius:5px; font-size:8px; letter-spacing:.13em; font-weight:800; }
.hero-name { text-align:center; margin:3px 0 17px; }
.hero-name strong { display:block; font:700 20px/1.2 Georgia, serif; }
.hero-name span { color:var(--muted); font-size:10px; }
.bar-label { display:flex; justify-content:space-between; margin:10px 1px 5px; color:#8e899c; font-size:8px; letter-spacing:.09em; }
.bar-label b { color:#d5d1dc; font-size:9px; letter-spacing:0; }
.meter { height:8px; background:#0d0c11; border-radius:999px; overflow:hidden; box-shadow:inset 0 1px 2px #000; }
.meter i { display:block; height:100%; border-radius:inherit; transition:width .18s ease; }
.meter.health i { background:linear-gradient(90deg,#a83748,#e35d60); }
.meter.focus i { background:linear-gradient(90deg,#3f6fc2,#5ab4de); }
.mini-stats { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:18px 0 14px; }
.mini-stats > div { min-height:58px; padding:8px; border:1px solid var(--line); border-radius:9px; background:rgba(10,9,14,.22); display:grid; grid-template-columns:25px 1fr; grid-template-rows:1fr 1fr; align-items:center; }
.stat-icon { width:20px; height:20px; grid-row:1/3; border-radius:6px; display:grid; place-items:center; font-size:11px; margin-right:6px; }
.stat-icon.damage { color:#f6ae62; background:rgba(246,174,98,.1); }.stat-icon.armor{color:#8db9df;background:rgba(91,154,211,.1)}.stat-icon.speed{color:#f4d466;background:rgba(244,212,102,.1)}.stat-icon.crit{color:#d897ed;background:rgba(216,151,237,.1)}
.mini-stats small { color:#777184; font-size:7px; letter-spacing:.08em; align-self:end; }.mini-stats b{font-size:12px;align-self:start;}
.wide-button { width:100%; min-height:38px; border:1px solid var(--line); border-radius:8px; background:#302b3d; color:#b9b4c5; font-size:9px; letter-spacing:.11em; font-weight:800; cursor:pointer; display:flex; justify-content:center; gap:10px; align-items:center; }
.wide-button.ghost { background:transparent; }.wide-button span{color:var(--gold);font-size:17px;line-height:0}

.dungeon-card { min-height:530px; display:flex; flex-direction:column; }
.dungeon-topline { min-height:72px; padding:14px 18px; display:flex; align-items:center; justify-content:space-between; gap:20px; background:#211d29; border-bottom:1px solid var(--line); }
.dungeon-topline small { color:#6f697c; letter-spacing:.13em; font-size:8px; font-weight:700; }
.dungeon-topline h1 { margin:3px 0 0; font:700 21px/1.2 Georgia,serif; color:#eee9f1; }
.room-counter { display:flex; flex-direction:column; align-items:flex-end; gap:7px; color:#aaa4b5; font-size:8px; letter-spacing:.08em; }
.room-pips { display:flex; gap:4px; }.room-pips i{width:18px;height:3px;border-radius:4px;background:#393442}.room-pips i.active{background:var(--gold)}.room-pips i.done{background:var(--green)}.room-pips i.boss{background:#763c42}
.dungeon-scene { min-height:350px; position:relative; overflow:hidden; background:
  linear-gradient(180deg, rgba(13,12,19,.05), rgba(11,9,14,.66)),
  radial-gradient(ellipse at 50% 50%, #4a3a54 0,#252030 35%,#14121b 73%); isolation:isolate; }
.scene-depth { position:absolute; inset:0; pointer-events:none; }
.depth-three { background:linear-gradient(90deg,#0e0d13 0 9%,transparent 9% 91%,#0e0d13 91%), repeating-linear-gradient(90deg,transparent 0 11%,rgba(13,11,18,.25) 11% 13%,transparent 13% 25%); }
.depth-two:before,.depth-two:after { content:"";position:absolute;width:19%;height:72%;bottom:0;background:linear-gradient(90deg,#211b28,#352b3d 65%,#17131c);clip-path:polygon(0 0,86% 6%,100% 100%,0 100%); }
.depth-two:after { right:0; transform:scaleX(-1); }.depth-two:before{left:0}
.depth-one { background:linear-gradient(0deg,rgba(8,7,11,.55),transparent 38%); }
.depth-one:after { content:"";position:absolute;left:8%;right:8%;bottom:0;height:32%;background:repeating-linear-gradient(165deg,transparent 0 42px,rgba(135,105,144,.08) 44px 47px),linear-gradient(180deg,#39303f,#19161e);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%); }
.torch { position:absolute; top:29%; width:10px; height:40px; background:#49392d; z-index:3; }.torch-left{left:12%}.torch-right{right:12%}
.torch:before { content:""; position:absolute;width:17px;height:24px;left:-4px;top:-22px;background:#ffae42;border-radius:65% 35% 60% 40%;transform:rotate(45deg);box-shadow:0 0 18px 7px rgba(255,140,53,.25);animation:flicker .3s infinite alternate; }.torch:after{content:"";position:absolute;inset:-48px -50px;background:radial-gradient(circle,rgba(241,129,60,.18),transparent 65%);z-index:-1}
@keyframes flicker{to{transform:rotate(40deg) scale(.85,1.12);filter:hue-rotate(8deg)}}
.floor-runes { position:absolute;z-index:2;left:34%;right:34%;bottom:17%;height:28%;border:2px solid rgba(178,105,220,.2);border-radius:50%;transform:perspective(150px) rotateX(60deg);box-shadow:inset 0 0 20px rgba(179,89,215,.13),0 0 15px rgba(179,89,215,.1); }
.floor-runes:after,.floor-runes:before{content:"";position:absolute;inset:18%;border:1px solid rgba(209,134,244,.25);border-radius:50%}.floor-runes:after{inset:40%;background:rgba(189,112,222,.13)}
.combatant { position:absolute; z-index:8; width:88px; height:112px; bottom:22%; transition:left .75s ease, right .75s ease, transform .18s; }
.combatant .shadow { position:absolute;bottom:0;left:8%;width:84%;height:14px;background:rgba(0,0,0,.45);filter:blur(4px);border-radius:50%; }
.hero-sprite { left:21%; }.hero-sprite .sprite-body{position:absolute;width:45px;height:59px;left:20px;bottom:12px;background:linear-gradient(90deg,#242733,#6f7488 48%,#30333f);border-radius:40% 40% 15% 15%;box-shadow:inset 0 -13px #3d2c3c}.hero-sprite .sprite-head{position:absolute;width:31px;height:34px;left:28px;bottom:66px;background:#a97b5e;border-radius:48%;box-shadow:inset -8px 0 #3c2d3d}.hero-sprite .sprite-weapon{position:absolute;width:7px;height:69px;left:69px;bottom:17px;background:linear-gradient(90deg,#6f7a8a,#e7f1f2,#77818e);transform:rotate(18deg);border-radius:6px;transform-origin:bottom center}.hero-sprite .sprite-weapon:after{content:"";position:absolute;width:27px;height:5px;bottom:8px;left:-10px;background:#d59c42}
.enemy-sprite { right:20%; }.enemy-sprite .enemy-body{position:absolute;width:65px;height:42px;left:10px;bottom:17px;background:linear-gradient(165deg,#d2c7a9,#776f61);border-radius:55% 60% 25% 30%;box-shadow:inset 10px -9px #4d493f}.enemy-sprite .enemy-body:after,.enemy-sprite .enemy-body:before{content:"";position:absolute;width:31px;height:9px;background:#aaa08b;bottom:-5px;border-radius:50%;transform:rotate(30deg)}.enemy-sprite .enemy-body:after{right:-8px;transform:rotate(-30deg)}
.enemy-eye{position:absolute;z-index:2;width:4px;height:4px;background:#ef5662;border-radius:50%;bottom:43px;box-shadow:0 0 7px #f22}.enemy-eye.one{left:21px}.enemy-eye.two{left:31px}
.travel-line { position:absolute; left:17%;right:17%;bottom:12%;height:2px;background:rgba(255,255,255,.08);z-index:4;overflow:hidden; }.travel-line span{height:100%;display:block;width:0;background:linear-gradient(90deg,var(--violet),var(--gold));transition:width .3s}
.scene-caption { position:absolute;z-index:10;top:16px;left:50%;transform:translateX(-50%);padding:7px 12px;border:1px solid rgba(255,255,255,.1);background:rgba(18,15,23,.78);backdrop-filter:blur(8px);border-radius:999px;color:#bbb4c4;font-size:9px;white-space:nowrap;letter-spacing:.05em; }
.pulse-dot { display:inline-block;width:5px;height:5px;background:var(--gold);border-radius:50%;margin-right:6px;box-shadow:0 0 7px var(--gold);animation:pulse 1s infinite alternate; }
@keyframes pulse{to{opacity:.35}}
.hero-sprite.walking { animation:bob .38s infinite alternate; }.enemy-sprite.walking{animation:bob .43s .1s infinite alternate}@keyframes bob{to{transform:translateY(-4px)}}
.hero-sprite.attacking .sprite-weapon{animation:slash .25s ease}@keyframes slash{50%{transform:translate(18px,-5px) rotate(75deg)}}
.enemy-sprite.attacking{animation:enemy-hit .22s}@keyframes enemy-hit{50%{transform:translateX(-14px)}}
.combatant.hit { filter:brightness(1.8) saturate(.4); transform:translateX(-5px); }
.combatant.dead { animation:die .55s forwards; }.hero-sprite.dead{animation:hero-die .7s forwards}@keyframes die{to{opacity:0;transform:translateY(25px) rotate(15deg) scale(.75)}}@keyframes hero-die{to{opacity:.25;transform:translateY(20px) rotate(-70deg);transform-origin:bottom}}
.damage-number { position:absolute;z-index:20;font-weight:900;font-size:18px;color:#fff;animation:float-number .85s forwards;filter:drop-shadow(0 2px 2px #000); }.damage-number.crit{color:#ffd66e;font-size:26px}.damage-number.enemy-damage{color:#ff8383}.damage-number.heal{color:#69dda2}@keyframes float-number{0%{opacity:0;transform:translateY(5px) scale(.7)}20%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-48px)}}
.loot-pop { position:absolute;z-index:20;left:50%;top:42%;transform:translate(-50%,-50%);border:1px solid rgba(245,189,79,.4);background:rgba(30,24,33,.92);padding:8px 13px;border-radius:9px;color:#ffd070;font-size:10px;font-weight:800;letter-spacing:.08em;animation:loot-pop 1.3s forwards}@keyframes loot-pop{0%{opacity:0;transform:translate(-50%,-35%) scale(.7)}20%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-70%)}}
.combat-log { min-height:59px;border-top:1px solid var(--line);background:#1d1a24;padding:10px 17px;display:flex;align-items:center;justify-content:space-between;gap:15px}.combat-log>div{display:flex;align-items:center;gap:10px;min-width:0}.log-icon{width:31px;height:31px;border-radius:7px;background:#332c40;display:grid;place-items:center;color:#c2a3d2}.combat-log p{margin:0;min-width:0}.combat-log p b,.combat-log p small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combat-log p b{font-size:11px}.combat-log p small{color:#777181;font-size:9px;margin-top:3px}.dps-chip{text-align:right}.dps-chip small{display:block;color:#6e6878;font-size:7px;letter-spacing:.1em}.dps-chip b{color:var(--gold);font-size:16px}
.primary-button { margin:12px 16px 16px; min-height:52px; border:1px solid rgba(255,214,115,.28); border-radius:10px; background:linear-gradient(180deg,#c9863a,#9e5929); box-shadow:inset 0 1px rgba(255,255,255,.25),0 8px 20px rgba(157,82,31,.2);cursor:pointer;text-shadow:0 1px rgba(0,0,0,.3); }.primary-button span,.primary-button small{display:block}.primary-button span{font-size:11px;font-weight:900;letter-spacing:.1em}.primary-button small{font-size:8px;color:#ffe3b0;margin-top:3px}.primary-button:hover{filter:brightness(1.08)}.primary-button:disabled{filter:saturate(.2);opacity:.6;cursor:default}

.tier-chip{color:#d9b36a;background:rgba(213,159,63,.1);border:1px solid rgba(213,159,63,.2);padding:4px 7px;border-radius:5px}.threat-preview,.run-rewards{padding:16px 0;border-bottom:1px solid var(--line)}.threat-preview>small,.run-rewards>small{font-size:8px;letter-spacing:.11em;color:#777182;font-weight:700}.threat-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0 0;font-size:10px}.threat-row span{color:#b5afbe;display:flex;align-items:center;gap:7px}.threat-row b{font-size:9px;color:#d3ced7}.damage-dot{width:8px;height:8px;display:inline-block;border-radius:2px}.damage-dot.physical{background:#b6a995}.damage-dot.cold{background:#6fd6ec;box-shadow:0 0 7px rgba(111,214,236,.45)}.enemy-panel{margin:15px -3px 0;padding:14px;border-radius:10px;background:rgba(8,7,12,.26);border:1px solid var(--line)}.enemy-heading,.enemy-name,.enemy-health-text{display:flex;justify-content:space-between;align-items:center}.enemy-heading span{font-size:8px;letter-spacing:.1em;color:#777182}.enemy-heading em{font-style:normal;font-size:8px;background:#382f3d;color:#b8a9c1;padding:3px 6px;border-radius:4px}.enemy-name{margin:10px 0 7px}.enemy-name strong{font:700 15px Georgia,serif}.enemy-name span{font-size:8px;color:#837d8d}.meter.enemy-health{height:7px}.meter.enemy-health i{background:linear-gradient(90deg,#9e374d,#d95767)}.enemy-health-text{font-size:8px;color:#716a7c;margin-top:5px}.enemy-health-text b{font-size:8px;color:#c1bac6}.run-rewards>div{display:flex;justify-content:space-between;margin-top:11px;color:#aaa4b4;font-size:10px}.run-rewards span{display:flex;align-items:center;gap:4px}.run-rewards b{color:#e7e1ea}.gold-gem{color:var(--gold);font-style:normal}.loot-gem{color:#9175df;font-style:normal}.repeat-toggle{display:flex;align-items:center;justify-content:space-between;padding:15px 0;cursor:pointer}.repeat-toggle span b,.repeat-toggle span small{display:block}.repeat-toggle b{font-size:10px}.repeat-toggle small{font-size:8px;color:#746e7e;margin-top:2px}.repeat-toggle input{position:absolute;opacity:0;pointer-events:none}.repeat-toggle>i{width:35px;height:19px;border-radius:999px;background:#393441;position:relative;transition:.2s}.repeat-toggle>i:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:#aaa4b1;top:3px;left:3px;transition:.2s}.repeat-toggle input:checked+i{background:#674abb}.repeat-toggle input:checked+i:after{left:19px;background:#fff}

.workspace { max-width:1480px; margin:0 auto 18px; min-height:88px; border-radius:12px; }
.workspace-empty { min-height:88px; padding:14px 22px; display:flex; align-items:center; justify-content:center; gap:14px; text-align:left; }
.workspace-empty .loot-orb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(145,111,229,.12);border:1px solid rgba(145,111,229,.25);color:#ad8aff}.workspace-empty strong,.workspace-empty small{display:block}.workspace-empty strong{font:700 14px Georgia,serif}.workspace-empty small{font-size:9px;color:#777181;margin-top:4px;max-width:500px;line-height:1.5}
.bottom-nav { position:fixed;z-index:40;left:0;right:0;bottom:0;min-height:70px;background:rgba(21,18,28,.94);backdrop-filter:blur(20px);border-top:1px solid var(--line);display:flex;justify-content:center;padding:0 max(10px,env(safe-area-inset-right)) env(safe-area-inset-bottom);box-shadow:0 -12px 30px rgba(0,0,0,.22)}.bottom-nav button{position:relative;width:min(135px,16.5vw);border:0;border-top:2px solid transparent;background:none;color:#777181;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}.bottom-nav button i{font-style:normal;font-size:18px}.bottom-nav button span{font-size:8px;letter-spacing:.07em;text-transform:uppercase;font-weight:700}.bottom-nav button.active{color:var(--gold);border-top-color:var(--gold);background:linear-gradient(180deg,rgba(245,189,79,.08),transparent)}.bottom-nav em{position:absolute;top:8px;left:calc(50% + 8px);background:var(--red);color:#fff;font-style:normal;font-size:8px;border-radius:999px;padding:2px 5px}
.toast-stack{position:fixed;z-index:80;right:18px;bottom:88px;display:flex;flex-direction:column;gap:9px;pointer-events:none}.toast{width:min(360px,calc(100vw - 36px));padding:13px 14px;background:#292431;border:1px solid rgba(255,255,255,.12);border-left:3px solid var(--gold);box-shadow:0 13px 35px rgba(0,0,0,.36);border-radius:9px;animation:toast-in .25s ease;display:flex;gap:10px}.toast strong,.toast small{display:block}.toast strong{font-size:11px}.toast small{color:#918a9a;font-size:9px;margin-top:3px;line-height:1.4}@keyframes toast-in{from{opacity:0;transform:translateX(20px)}}
.modal-root:empty{display:none}.modal-root{position:fixed;z-index:100;inset:0;background:rgba(8,7,11,.76);backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px}.modal{width:min(620px,100%);max-height:min(84vh,780px);overflow:auto;background:#27232f;border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 30px 100px #000;padding:22px}

@media (max-width: 1050px){.game-layout{grid-template-columns:minmax(190px,235px) 1fr}.intel-card{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:16px;align-items:center}.intel-card .card-heading{grid-column:1/-1}.intel-card .threat-preview,.intel-card .enemy-panel,.intel-card .run-rewards{margin:0;padding:10px;border:0}.intel-card .repeat-toggle,.intel-card>.wide-button{display:none}.dungeon-card{min-width:0}.workspace{margin-left:16px;margin-right:16px}}
@media (max-width: 720px){.app-shell{padding-bottom:66px}.topbar{grid-template-columns:auto 1fr auto;gap:10px;min-height:58px;padding:8px 12px}.brand strong{font-size:12px}.brand small,.save-state,.topbar-progress{display:none}.brand-mark{width:31px;height:35px;font-size:17px}.currencies{gap:8px}.game-layout{padding:10px;display:flex;flex-direction:column;gap:10px}.hero-card{display:grid;grid-template-columns:72px 1fr auto;grid-template-rows:auto auto;gap:8px 12px;padding:12px}.hero-card .card-heading{grid-column:1/-1;padding-bottom:8px}.portrait-wrap{padding:0;grid-row:2}.portrait{width:66px;height:66px}.portrait .hero-head{transform:scale(.62);transform-origin:top left;left:23px;top:14px}.portrait .hero-body{transform:scale(.62);transform-origin:top left;left:13px;top:34px}.portrait .hero-sword{transform:scale(.62) rotate(28deg);transform-origin:top left;right:2px;top:14px}.class-badge{display:none}.hero-name{display:none}.resource-group{align-self:center}.mini-stats{display:flex;margin:0;align-self:center}.mini-stats>div{display:block;min-height:0;padding:7px;text-align:center}.mini-stats .stat-icon,.mini-stats small{display:none}.mini-stats b{font-size:10px}.hero-card>.wide-button{display:none}.dungeon-card{min-height:470px}.dungeon-topline{padding:10px 13px;min-height:58px}.dungeon-topline h1{font-size:17px}.room-pips i{width:9px}.dungeon-scene{min-height:300px}.torch-left{left:7%}.torch-right{right:7%}.hero-sprite{left:12%;transform:scale(.8);transform-origin:bottom}.enemy-sprite{right:11%;transform:scale(.8);transform-origin:bottom}.scene-caption{top:10px;font-size:10px}.combat-log{padding:9px 12px}.combat-log p small{font-size:9px}.primary-button{margin:9px 10px 11px;min-height:54px}.intel-card{display:none}.workspace{margin:0 10px 10px;min-height:72px}.workspace-empty{min-height:72px;padding:10px 14px}.bottom-nav{min-height:60px}.bottom-nav button{width:16.66%;min-height:56px}.bottom-nav button i{font-size:17px}.bottom-nav button span{font-size:8px}.toast-stack{right:10px;bottom:70px}.toast{width:calc(100vw - 20px)}.toast strong{font-size:12px}.toast small{font-size:10px}}
@media (max-width: 420px){.mini-stats>div:nth-child(n+3){display:none}.dungeon-topline{gap:7px}.dungeon-topline h1{font-size:15px}.room-counter>span{display:none}.room-pips{gap:2px}.room-pips i{width:7px}.dungeon-scene{min-height:285px}.combat-log p small{max-width:190px}.dps-chip{display:none}.workspace-empty .loot-orb{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Dynamic enemy silhouettes */
.enemy-sprite.husk .enemy-body{width:58px;height:76px;left:14px;bottom:11px;border-radius:42% 48% 18% 18%;background:linear-gradient(100deg,#3d5237,#78905a 52%,#342f2d);box-shadow:inset 10px -8px #2d372b}.enemy-sprite.husk .enemy-body:before{width:44px;height:9px;left:-23px;bottom:20px;background:#65553d;transform:rotate(28deg)}.enemy-sprite.husk .enemy-body:after{width:43px;height:9px;right:-23px;bottom:27px;background:#65553d;transform:rotate(-34deg)}.enemy-sprite.husk .enemy-eye.one{left:35px;bottom:66px}.enemy-sprite.husk .enemy-eye.two{left:46px;bottom:66px}
.enemy-sprite.wisp .enemy-body{width:51px;height:51px;left:19px;bottom:33px;border-radius:50%;background:radial-gradient(circle at 45% 42%,#e6fbff 0 8%,#77c9e1 11% 30%,#5a50aa 62%,transparent 65%);box-shadow:0 0 26px 9px rgba(97,187,231,.38);animation:wisp-float .65s infinite alternate}.enemy-sprite.wisp .enemy-body:before,.enemy-sprite.wisp .enemy-body:after{width:18px;height:32px;bottom:-20px;background:linear-gradient(#6fbfd9,transparent);transform:skew(-18deg);border-radius:0}.enemy-sprite.wisp .enemy-body:after{right:4px;transform:skew(18deg)}.enemy-sprite.wisp .enemy-eye{background:#241b55;box-shadow:none;bottom:61px}.enemy-sprite.wisp .enemy-eye.one{left:36px}.enemy-sprite.wisp .enemy-eye.two{left:48px}@keyframes wisp-float{to{transform:translateY(-7px) scale(1.03)}}
.enemy-sprite.archer .enemy-body{width:42px;height:68px;left:22px;bottom:12px;background:linear-gradient(90deg,#463845,#87705a,#38313c);border-radius:45% 45% 15% 15%;box-shadow:inset -8px -9px #2d2730}.enemy-sprite.archer .enemy-body:before{width:50px;height:62px;left:20px;bottom:8px;background:transparent;border:4px solid #9b7049;border-left-color:transparent;border-radius:50%;transform:none}.enemy-sprite.archer .enemy-body:after{width:3px;height:62px;right:-30px;bottom:8px;background:#d6c6a1;transform:none}.enemy-sprite.archer .enemy-eye{bottom:68px}.enemy-sprite.archer .enemy-eye.one{left:34px}.enemy-sprite.archer .enemy-eye.two{left:45px}
.enemy-sprite.warden{transform:scale(1.08);transform-origin:bottom}.enemy-sprite.warden .enemy-body{width:60px;height:76px;left:13px;bottom:10px;background:linear-gradient(100deg,#333c39,#748174 45%,#303533);border-radius:42% 44% 12% 12%;box-shadow:inset 11px -8px #292e2c,0 0 0 3px #4e5e54}.enemy-sprite.warden .enemy-body:before{width:36px;height:48px;left:-26px;bottom:12px;background:#3f4d48;border:3px solid #829085;clip-path:polygon(50% 0,100% 18%,86% 82%,50% 100%,14% 82%,0 18%);transform:none}.enemy-sprite.warden .enemy-body:after{width:8px;height:67px;right:-16px;bottom:0;background:linear-gradient(90deg,#687078,#d3d8d7,#626a70);transform:rotate(10deg)}.enemy-sprite.warden .enemy-eye{bottom:68px;background:#91e6a5}.enemy-sprite.warden .enemy-eye.one{left:33px}.enemy-sprite.warden .enemy-eye.two{left:45px}
.enemy-sprite.bellkeeper{transform:scale(1.28);transform-origin:bottom}.enemy-sprite.bellkeeper .enemy-body{width:64px;height:80px;left:10px;bottom:8px;border-radius:48% 48% 12% 12%;background:linear-gradient(100deg,#2f2936,#75596b 45%,#29232f);box-shadow:inset 12px -12px #241f2a,0 0 0 3px #91734c}.enemy-sprite.bellkeeper .enemy-body:before{width:58px;height:39px;left:3px;bottom:45px;background:linear-gradient(#a37c4c,#5e4938);clip-path:polygon(50% 0,100% 100%,0 100%);transform:none}.enemy-sprite.bellkeeper .enemy-body:after{width:31px;height:38px;right:-22px;bottom:13px;border:5px solid #c6954b;border-radius:50%;background:#47342f;transform:none;box-shadow:inset 0 0 0 5px #211a1d}.enemy-sprite.bellkeeper .enemy-eye{bottom:61px;background:#83dcec;box-shadow:0 0 8px #6ff}.enemy-sprite.bellkeeper .enemy-eye.one{left:31px}.enemy-sprite.bellkeeper .enemy-eye.two{left:45px}
.dungeon-scene.boss-casting{box-shadow:inset 0 0 90px rgba(93,202,245,.24)}.dungeon-scene.boss-casting:after{content:"FUNERAL CHIME";position:absolute;z-index:7;inset:0;display:grid;place-items:center;color:rgba(158,224,247,.14);font:900 clamp(25px,5vw,58px) Georgia,serif;letter-spacing:.12em;animation:cast-warning .9s linear}.dungeon-scene.boss-enraged{background-color:rgba(120,18,25,.18)}.dungeon-scene.cast-flash{animation:scene-flash .85s}@keyframes cast-warning{from{transform:scale(.75);opacity:.15}to{transform:scale(1.1);opacity:1}}@keyframes scene-flash{50%{filter:brightness(1.35) saturate(.7)}}
.reduce-motion *, .reduce-motion *::before, .reduce-motion *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}

/* Workspace panels */
.workspace{padding:0 22px 22px}.workspace-header{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);margin-bottom:18px}.workspace-header small,.section-kicker{font-size:8px;letter-spacing:.12em;color:#797284;font-weight:800}.workspace-header h2{font:700 18px/1.25 Georgia,serif;margin:4px 0 0}.last-run-chip,.point-chip,.phase-chip{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:999px;padding:7px 10px;color:#9992a3;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.point-chip.available{color:#f5cb72;border-color:rgba(245,189,79,.25);background:rgba(245,189,79,.08)}.section-kicker{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-kicker small{font-size:8px;color:#6f6979;letter-spacing:0}.section-kicker button{border:0;background:none;color:var(--gold);font-size:9px;cursor:pointer}.empty-copy{color:#7e7789;font-size:11px;margin:10px 0}.recent-loot{padding-top:2px}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}.item-grid.compact{grid-template-columns:repeat(5,minmax(100px,1fr))}.item-card{min-height:128px;position:relative;border:1px solid var(--line);border-top:2px solid var(--rarity,#777);border-radius:10px;background:linear-gradient(165deg,#302b3a,#211e29);padding:11px;text-align:left;display:flex;flex-direction:column;cursor:pointer;overflow:hidden}.item-card:hover{transform:translateY(-2px);filter:brightness(1.08)}.item-card:after{content:"";position:absolute;width:70px;height:70px;right:-30px;top:-35px;background:radial-gradient(circle,var(--rarity,#777),transparent 70%);opacity:.13}.item-icon{width:42px;height:42px;border-radius:10px;background:rgba(5,4,8,.28);display:grid;place-items:center;font-size:24px;color:var(--rarity,#bbb);margin-bottom:9px}.item-name{font:700 11px/1.25 Georgia,serif;min-height:28px}.item-meta{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:7px}.item-meta b{font-size:7px;color:var(--rarity,#bbb);text-transform:uppercase;letter-spacing:.08em}.item-meta small{color:#716b79;font-size:7px}.new-dot{position:absolute;width:7px;height:7px;right:8px;top:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}.item-marks{position:absolute;right:8px;bottom:31px;color:#d5ad5e;font-size:9px}.rarity-common{--rarity:#aaa397}.rarity-magic{--rarity:#6eb7ed}.rarity-rare{--rarity:#eacb65}.rarity-epic{--rarity:#bc7af0}.rarity-legendary{--rarity:#ef8b47}
.character-workspace{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}.build-sheet,.equipment-sheet{min-width:0}.attribute-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.attribute-card{min-height:65px;background:rgba(10,9,14,.24);border:1px solid var(--line);border-radius:9px;display:grid;grid-template-columns:1fr auto 34px;align-items:center;padding:9px;gap:9px}.attribute-card span,.attribute-card small{display:block}.attribute-card span{font-size:11px;font-weight:700}.attribute-card small{color:#777181;font-size:8px;margin-top:3px}.attribute-card>b{font:700 18px Georgia,serif;color:#e8e1ec}.attribute-card button{width:32px;height:32px;border-radius:7px;border:1px solid rgba(245,189,79,.22);background:rgba(245,189,79,.08);color:var(--gold);cursor:pointer}.attribute-card button:disabled{opacity:.3;cursor:default}.derived-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.derived-grid>div{min-height:62px;padding:9px;background:#191720;border:1px solid var(--line);border-radius:8px}.derived-grid small,.derived-grid b,.derived-grid em{display:block}.derived-grid small{font-size:7px;color:#757080;letter-spacing:.08em}.derived-grid b{font-size:14px;margin-top:5px}.derived-grid em{font-size:7px;font-style:normal;color:#746e7d;margin-top:2px}.derived-grid .cold b{color:var(--cold)}.derived-grid .lightning b{color:#b898f1}.equipment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.equipment-slot{min-height:69px;border:1px solid var(--line);border-left:2px solid var(--rarity,#494451);border-radius:8px;background:rgba(12,10,16,.22);padding:7px}.equipment-slot>small{display:block;color:#6f6979;font-size:7px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.equipment-slot button{width:100%;border:0;background:none;padding:0;display:grid;grid-template-columns:30px 1fr;grid-template-rows:1fr 1fr;text-align:left;cursor:pointer}.equipment-slot button i{grid-row:1/3;width:27px;height:27px;background:#2b2733;border-radius:6px;display:grid;place-items:center;font-style:normal;color:var(--rarity,#aaa)}.equipment-slot button span{font:700 10px Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equipment-slot button em{font-size:7px;color:#716b7b;font-style:normal}.empty-slot{height:28px;display:grid;place-items:center;color:#57515f}
.inventory-toolbar{display:flex;gap:7px;margin-bottom:13px;overflow:auto;padding-bottom:2px}.inventory-toolbar button{min-height:35px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#25212e;color:#8e8798;font-size:9px;white-space:nowrap;cursor:pointer}.inventory-toolbar button.active{color:#17121b;background:var(--gold);border-color:var(--gold);font-weight:800}.inventory-legend{font-size:8px;color:#8a8392}.panel-empty{min-height:180px;display:grid;place-items:center;align-content:center;text-align:center;color:#777080}.panel-empty span{font-size:28px;color:#5e5669}.panel-empty strong{color:#aaa4b1;font:700 14px Georgia,serif;margin-top:9px}.panel-empty small{max-width:430px;line-height:1.5;font-size:9px;margin-top:5px}
.skill-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:20px}.skill-row{display:grid;gap:8px}.skill-card{min-height:78px;border:1px solid var(--line);border-radius:10px;background:#211e29;padding:11px;display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center}.skill-card>i{width:42px;height:42px;background:#332b42;border:1px solid #554465;color:#ceb1e5;border-radius:10px;display:grid;place-items:center;font-style:normal;font-size:20px}.skill-card div>span,.skill-card strong,.skill-card p{display:block}.skill-card div>span{font-size:7px;color:#7e7588;letter-spacing:.08em}.skill-card strong{font:700 13px Georgia,serif;margin-top:3px}.skill-card p{font-size:9px;color:#827b8c;margin:3px 0 0}.skill-card>b{font-size:8px;color:var(--gold)}.skill-card.defensive>i{color:#70dda5;border-color:rgba(112,221,165,.3);background:rgba(112,221,165,.08)}.skill-card.locked{opacity:.58;border-style:dashed}
.dungeon-select-grid{display:grid;grid-template-columns:minmax(380px,1.2fr) minmax(200px,.8fr);gap:14px}.dungeon-select-card{border:1px solid var(--line);border-radius:12px;background:#211d28;overflow:hidden}.dungeon-select-card.unlocked{display:grid;grid-template-columns:150px 1fr;position:relative}.dungeon-art{min-height:190px;position:relative;background:radial-gradient(circle at 50% 50%,#65476d,#2f2838 48%,#17141d);overflow:hidden;display:grid;place-items:center}.mini-arch{position:absolute;width:95px;height:150px;border:14px solid #29222e;border-bottom:0;border-radius:55px 55px 0 0;bottom:-10px;box-shadow:inset 0 0 25px #111}.dungeon-art>i{position:relative;z-index:2;font:900 35px Georgia,serif;color:#e0b764;font-style:normal;text-shadow:0 0 18px #d28b3d}.dungeon-copy{padding:18px 18px 60px}.dungeon-copy>span{color:#947da2;font-size:8px;letter-spacing:.11em}.dungeon-copy h3{font:700 19px Georgia,serif;margin:5px 0}.dungeon-copy p{font-size:9px;color:#837b8b;line-height:1.5;max-width:450px}.threat-tags{display:flex;gap:6px}.threat-tags em{font-style:normal;font-size:7px;padding:4px 7px;border:1px solid var(--line);border-radius:5px;color:#aaa1ae}.dungeon-details{display:flex;gap:18px;margin-top:13px}.dungeon-details span{font-size:8px;color:#716a79}.dungeon-details b{display:block;color:#d7d0dc;font-size:12px}.dungeon-select-card.unlocked>button{position:absolute;right:16px;bottom:15px;min-width:190px;height:36px;border:1px solid rgba(245,189,79,.25);border-radius:7px;background:linear-gradient(#c27d34,#945325);font-size:9px;font-weight:800;letter-spacing:.07em;cursor:pointer}.dungeon-select-card.unlocked>button:disabled{filter:saturate(.2);opacity:.5}.locked-region{display:flex;min-height:190px;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-style:dashed;color:#645e6c;position:relative}.locked-region>span{font-size:8px;letter-spacing:.12em}.locked-region>strong{font:700 15px Georgia,serif;color:#85808d;margin-top:6px}.locked-region>small{font-size:8px;margin-top:4px}.locked-region>i{position:absolute;font-style:normal;font-size:75px;opacity:.06}
.lifetime-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.lifetime-grid>div{padding:12px;background:#1b1822;border:1px solid var(--line);border-radius:9px;display:grid;grid-template-columns:auto 1fr;gap:0 8px}.lifetime-grid i{grid-row:1/3;font-style:normal;color:#9c7cc2}.lifetime-grid span{font-size:7px;color:#746e7c}.lifetime-grid b{font-size:15px}.breakdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:20px}.breakdown-grid section{padding:14px;border:1px solid var(--line);border-radius:10px;background:rgba(10,9,14,.16)}.breakdown-row{display:grid;grid-template-columns:1fr 2fr 35px;align-items:center;gap:9px;margin:9px 0}.breakdown-row>div:first-child{display:flex;justify-content:space-between;font-size:9px}.breakdown-row b{font-size:8px;color:#aaa4af}.breakdown-bar{height:5px!important;background:#111016;border-radius:99px;overflow:hidden}.breakdown-bar i{display:block;height:100%;background:#8a6cc8}.breakdown-bar i.basic-attack{background:#b0a48d}.breakdown-bar i.sundering-strike{background:#e5ad4d}.breakdown-bar i.physical{background:#b9aa8e}.breakdown-bar i.cold{background:#63cce8}.breakdown-bar i.lightning{background:#9b79dc}.breakdown-row>em{font-style:normal;font-size:8px;color:#77717e;text-align:right}

/* Dialogs */
body.modal-open{overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:17px}.modal-header small{font-size:8px;color:#81798a;letter-spacing:.12em}.modal-header h2{font:700 22px Georgia,serif;margin:4px 0 0}.modal-header button{width:38px;height:38px;border-radius:8px;border:1px solid var(--line);background:#312c39;color:#aaa2ae;font-size:22px;cursor:pointer}.modal-copy,.about-copy p{font-size:10px;color:#918a98;line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:18px}.modal-actions button{min-height:40px;padding:0 16px;border-radius:8px;font-size:9px;font-weight:800;letter-spacing:.05em;cursor:pointer}.modal-actions .primary{border:1px solid rgba(245,189,79,.25);background:linear-gradient(#c68439,#975628)}.modal-actions .secondary{border:1px solid var(--line);background:#342f3d;color:#c1bac7}.modal-actions .danger,.modal-actions .danger-ghost{border:1px solid rgba(242,107,109,.35);background:#a54149;color:#fff}.modal-actions .danger-ghost{background:rgba(242,107,109,.06);color:#f18b8e}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare-item{border:1px solid var(--line);border-top:3px solid var(--rarity,#777);border-radius:10px;background:#1b1821;padding:13px;min-width:0}.compare-item>small{font-size:7px;color:#716b78;letter-spacing:.1em}.compare-title{display:flex;align-items:center;gap:10px;margin:10px 0}.compare-title>i{width:48px;height:48px;flex:0 0 auto;border-radius:9px;background:#2c2733;display:grid;place-items:center;font-style:normal;font-size:25px;color:var(--rarity,#aaa)}.compare-title em,.compare-title strong,.compare-title span{display:block}.compare-title em{font-style:normal;font-size:7px;color:var(--rarity,#aaa);text-transform:uppercase}.compare-title strong{font:700 14px Georgia,serif;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compare-title span{font-size:7px;color:#77707e}.item-stat-list{border-top:1px solid var(--line);padding-top:7px}.item-stat-list>div{display:flex;justify-content:space-between;padding:4px 0;font-size:9px}.item-stat-list span{color:#8f8896}.item-stat-list b{color:#ddd7e1}.affix-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.affix-list span{font-size:7px;padding:3px 5px;border-radius:4px;background:rgba(126,98,178,.12);color:#a78bce}.legendary-power{margin-top:10px;padding:9px;border:1px solid rgba(239,139,71,.2);background:rgba(239,139,71,.07);border-radius:7px}.legendary-power b{font-size:9px;color:#f0a265}.legendary-power p{font-size:8px;color:#a58a7c;margin:4px 0 0}.compare-item.empty{display:flex;min-height:210px;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-item-icon{font-size:31px;color:#514b58}.compare-item.empty strong{font:700 13px Georgia,serif}.compare-item.empty p{font-size:8px;color:#716b78}.delta-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.delta{padding:9px;border-radius:7px;background:#1b1821;border:1px solid var(--line)}.delta small,.delta b,.delta em{display:block}.delta small{font-size:7px;color:#77707f}.delta b{font-size:13px;margin:4px 0}.delta em{font-size:7px;font-style:normal;text-transform:uppercase}.delta.higher b,.delta.higher em{color:#62d59b}.delta.lower b,.delta.lower em{color:#f27b7c}.delta.same{opacity:.55}.tradeoff-note{font-size:8px;color:#807987;line-height:1.5;margin:8px 2px}.save-option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:15px 0}.save-option-grid button{min-height:120px;border:1px solid var(--line);border-radius:10px;background:#1e1b25;color:#c4bec9;padding:13px;cursor:pointer;text-align:left}.save-option-grid button i,.save-option-grid button strong,.save-option-grid button small{display:block}.save-option-grid button i{font-style:normal;font-size:24px;color:var(--gold)}.save-option-grid button strong{font:700 13px Georgia,serif;margin-top:9px}.save-option-grid button small{font-size:8px;color:#77717f;margin-top:4px;line-height:1.4}.motion-setting{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;cursor:pointer}.motion-setting span b,.motion-setting span small{display:block}.motion-setting b{font-size:10px}.motion-setting small{font-size:8px;color:#77717d;margin-top:2px}.motion-setting input{position:absolute;opacity:0}.motion-setting>i{width:38px;height:21px;background:#3a3541;border-radius:99px;position:relative}.motion-setting>i:after{content:"";position:absolute;width:15px;height:15px;left:3px;top:3px;border-radius:50%;background:#aaa4ae;transition:.2s}.motion-setting input:checked+i{background:#7654ce}.motion-setting input:checked+i:after{left:20px;background:#fff}.save-textarea{width:100%;height:220px;resize:vertical;background:#15131a;color:#bdb7c2;border:1px solid var(--line);border-radius:9px;padding:11px;font:9px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.file-picker{display:inline-block;margin-top:9px;cursor:pointer}.file-picker input{position:absolute;opacity:0}.file-picker span{display:inline-grid;place-items:center;min-height:36px;border:1px dashed #61596a;border-radius:7px;padding:0 12px;color:#a59eaa;font-size:9px}.inline-error{margin-top:9px;padding:9px;border-radius:7px;background:rgba(242,107,109,.09);border:1px solid rgba(242,107,109,.23);color:#f29899;font-size:9px}.warning-panel{display:flex;gap:12px;padding:14px;border-radius:9px;background:rgba(242,107,109,.07);border:1px solid rgba(242,107,109,.2)}.warning-panel>i{width:31px;height:31px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-style:normal;background:#a43d48}.warning-panel strong{font:700 13px Georgia,serif}.warning-panel p{font-size:9px;color:#a98b91;line-height:1.5;margin:5px 0 0}
.result-modal{width:min(720px,100%)}.result-hero{text-align:center;padding:8px 8px 18px}.result-hero>span{width:55px;height:55px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;background:rgba(242,107,109,.09);border:1px solid rgba(242,107,109,.2);color:#f17779;font-size:25px}.result-hero.victory>span{background:rgba(245,189,79,.09);border-color:rgba(245,189,79,.25);color:var(--gold)}.result-hero small{font-size:8px;letter-spacing:.13em;color:#847d8c}.result-hero h2{font:700 25px Georgia,serif;margin:5px 0}.result-hero p{font-size:9px;color:#898290}.result-rewards{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.result-rewards>div{padding:10px;border:1px solid var(--line);background:#1c1922;border-radius:8px;text-align:center}.result-rewards small,.result-rewards b{display:block}.result-rewards small{font-size:7px;color:#736d7a}.result-rewards b{font-size:14px;margin-top:3px}.result-analysis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.result-analysis section{padding:12px;border:1px solid var(--line);border-radius:9px;background:#1d1a23}.result-analysis section>div:not(.section-kicker){display:flex;align-items:center;justify-content:space-between;padding:5px 0;font-size:9px}.result-analysis section>div span{display:flex;align-items:center;gap:6px;text-transform:capitalize}.damage-dot.fire{background:#ef7e4b}.damage-dot.lightning{background:#a282df}.analysis-callout{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important;padding:9px!important;background:rgba(242,107,109,.06);border-radius:7px}.analysis-callout.good{background:rgba(98,213,155,.06)}.analysis-callout b{font-size:11px;color:#f08b8d}.analysis-callout.good b{color:#72d9a6}.analysis-callout span{color:#958d9c;font-size:8px}.result-actions{justify-content:center}.about-copy{padding:2px 4px}.toast.danger{border-left-color:var(--red)}.toast.green{border-left-color:var(--green)}.save-state.error{color:#f08a8c}.save-state.error i{background:var(--red);box-shadow:0 0 8px var(--red)}

@media(max-width:900px){.item-grid.compact{grid-template-columns:repeat(3,1fr)}.character-workspace,.skill-layout,.breakdown-grid{grid-template-columns:1fr}.lifetime-grid{grid-template-columns:repeat(3,1fr)}.dungeon-select-grid{grid-template-columns:1fr}.locked-region{min-height:120px}}
@media(max-width:720px){.workspace{padding:0 12px 15px;scroll-margin-top:64px}.workspace-header{min-height:62px;margin-bottom:12px}.workspace-header h2{font-size:16px}.last-run-chip,.inventory-legend{display:none}.item-grid,.item-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.item-card{min-height:108px;padding:7px}.item-icon{width:32px;height:32px;font-size:18px;margin-bottom:6px}.item-name{font-size:9px;min-height:29px}.item-meta b,.item-meta small{font-size:7px}.character-workspace{gap:14px}.attribute-grid{grid-template-columns:1fr}.attribute-card{min-height:59px}.derived-grid{grid-template-columns:repeat(2,1fr)}.equipment-grid{grid-template-columns:1fr 1fr}.skill-card{grid-template-columns:38px 1fr;min-height:86px}.skill-card>i{width:38px;height:38px}.skill-card>b{display:none}.skill-card p{font-size:10px}.dungeon-select-card.unlocked{grid-template-columns:105px 1fr}.dungeon-art{min-height:210px}.dungeon-copy{padding:14px 10px 58px}.dungeon-copy h3{font-size:16px}.dungeon-copy p{font-size:10px}.dungeon-details{gap:8px}.dungeon-select-card.unlocked>button{left:115px;right:10px;min-width:0;min-height:44px}.lifetime-grid{grid-template-columns:repeat(2,1fr)}.modal-root{padding:8px;align-items:end}.modal{padding:14px;max-height:88dvh;border-radius:15px 15px 6px 6px}.modal-copy,.about-copy p{font-size:12px}.modal-header h2{font-size:19px}.comparison-grid{grid-template-columns:1fr}.compare-item{min-height:0}.comparison-grid .compare-item:nth-child(2){display:none}.delta-strip{grid-template-columns:1fr 1fr}.modal-actions{position:sticky;bottom:-14px;background:#27232f;padding:10px 0 4px;z-index:3}.modal-actions button{min-height:44px;flex:1}.save-option-grid{grid-template-columns:1fr}.save-option-grid button{min-height:80px;display:grid;grid-template-columns:44px 1fr;grid-template-rows:1fr 1fr}.save-option-grid button i{grid-row:1/3}.result-analysis{grid-template-columns:1fr}.result-rewards{grid-template-columns:1fr 1fr}.result-hero h2{font-size:21px}.bottom-nav button{min-height:54px}}
@media(max-width:380px){.item-grid,.item-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.dungeon-select-card.unlocked{grid-template-columns:82px 1fr}.dungeon-select-card.unlocked>button{left:92px}.dungeon-details span:nth-child(2){display:none}}

/* Spatial expedition surface */
.dungeon-card{min-height:clamp(610px,calc(100dvh - 150px),790px)}
.spatial-scene{flex:1;min-height:455px;background:#0d0a12}
.dungeon-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:manipulation}
.world-hud{position:absolute;z-index:12;left:12px;right:12px;bottom:58px;display:flex;align-items:center;gap:7px;pointer-events:none}
.world-hud span{border:1px solid rgba(255,255,255,.1);background:rgba(13,10,17,.8);backdrop-filter:blur(8px);border-radius:6px;padding:6px 8px;color:#aaa3b2;font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.world-hud .world-objective{flex:1;color:#e4dce8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.world-hud .world-depth{color:var(--gold)}
.scene-vitals{position:absolute;z-index:13;bottom:10px;width:clamp(112px,31%,190px);padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:rgba(18,15,23,.84);backdrop-filter:blur(8px);pointer-events:none}
.scene-vitals>div:first-child{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px;white-space:nowrap;overflow:hidden}.scene-vitals strong{overflow:hidden;text-overflow:ellipsis;font:700 10px Georgia,serif}.scene-vitals span{flex:0 0 auto;color:var(--muted);font-size:8px}.scene-vitals .meter{height:6px}
.hero-vitals{left:12px}.enemy-vitals{right:12px}.enemy-vitals>div:first-child{flex-direction:row-reverse}.start-button.running{display:none}
@media(max-width:720px){.dungeon-card{order:-1;min-height:clamp(500px,calc(100dvh - 96px),690px)}.spatial-scene{min-height:390px}.world-hud{left:8px;right:8px;bottom:54px}.world-hud .world-floor{display:none}.world-hud span{font-size:7px;padding:5px 7px}.scene-vitals{bottom:7px;width:calc(50% - 12px);padding:6px 7px}.hero-vitals{left:7px}.enemy-vitals{right:7px}.scene-vitals strong{font-size:9px}.scene-vitals span{font-size:7px}}
@media(max-width:720px) and (max-height:760px){.dungeon-card{min-height:max(440px,calc(100dvh - 128px))}.spatial-scene{min-height:clamp(255px,calc(100dvh - 365px),360px)}.start-button{min-height:49px;margin:5px 10px 6px}}

/* Compact expedition controls and readable target state */
.combat-log>div{flex:1}.scene-caption{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}.scene-caption[hidden]{display:none}
.enemy-vitals{transition:opacity .18s ease,transform .18s ease}.enemy-vitals.is-hidden{opacity:0;transform:translateY(5px)}.enemy-vitals[hidden]{display:none}
.scene-repeat{display:flex;align-items:center;gap:7px;min-height:40px;cursor:pointer;color:#777181;font-size:7px;font-weight:800;letter-spacing:.1em}.scene-repeat input{position:absolute;opacity:0}.scene-repeat>i{width:35px;height:19px;flex:0 0 auto;border-radius:999px;background:#393441;position:relative;transition:.2s}.scene-repeat>i:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:#aaa4b1;top:3px;left:3px;transition:.2s}.scene-repeat input:checked+i{background:#674abb}.scene-repeat input:checked+i:after{left:19px;background:#fff}
.scene-repeat input:focus-visible+i,.repeat-toggle input:focus-visible+i,.motion-setting input:focus-visible+i{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:720px){.comparison-grid .compare-item:nth-child(2){display:block}.icon-button,.modal-header button{width:44px;height:44px}.scene-repeat{min-height:44px}.combat-log{gap:9px}.combat-log .log-icon{display:none}}
