:root{--bg: #0e0f1a;--bg2: #15172a;--panel: #1c1f38;--panel2: #262a4d;--line: #34396b;--text: #e8e9fb;--muted: #9aa0d0;--violet: #7c5cff;--violet2: #9d86ff;--gold: #ffcc55;--hp: #ff5d73;--block: #6fb8ff;--green: #5fd3a0;--danger: #ff6b6b;--attack: #ff7a59;--defense: #6fb8ff;--venom: #8de06a;--engine: #ffd45e;--utility: #c79bff}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%;background:radial-gradient(1200px 800px at 50% -10%,#1a1d36,var(--bg));color:var(--text);font-family:ui-rounded,Segoe UI,system-ui,-apple-system,sans-serif}.app{max-width:560px;margin:0 auto;min-height:100%;padding:env(safe-area-inset-top) 12px calc(env(safe-area-inset-bottom) + 12px);position:relative}.screen{padding:14px 4px 40px;animation:fade .25s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}h1,h2,h3{margin:6px 0 12px}.hint{color:var(--muted);margin:6px 0 14px}small{color:var(--muted)}.btn{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:15px;cursor:pointer;transition:transform .08s ease,background .15s ease,border .15s ease}.btn:hover:not(:disabled){background:var(--panel2)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,var(--violet2),var(--violet));border-color:var(--violet2);color:#fff;font-weight:700}.btn.big{width:100%;padding:16px;font-size:17px}.btn.small{padding:6px 10px;font-size:13px;border-radius:9px}.menu{display:flex;flex-direction:column;gap:10px;max-width:360px;margin:0 auto}.mini{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:13px;cursor:pointer;min-width:30px}.mini.on{background:var(--violet);border-color:var(--violet2)}.mini:disabled{opacity:.4}.title{text-align:center;padding-top:60px}.logo{font-size:64px;letter-spacing:10px;margin:30px 0 0;background:linear-gradient(180deg,#fff,var(--violet2));-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{color:var(--muted);margin-bottom:36px}.meta-stats{margin-top:28px;color:var(--muted);font-size:13px}.casters{display:grid;gap:12px;grid-template-columns:1fr;margin-bottom:18px}.caster-card{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:4px}.caster-card:hover{border-color:var(--violet2);background:var(--panel2)}.caster-card p{color:var(--muted);margin:4px 0;font-size:14px}.caster-hp{color:var(--hp);font-weight:700}.caster-relic{color:var(--gold);font-size:13px}.run-options{display:flex;gap:18px;flex-wrap:wrap;margin:14px 0}.run-options label{display:flex;flex-direction:column;gap:6px;font-size:14px}.run-options input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px}.asc-buttons{display:flex;gap:6px}.run-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:12px;font-size:14px}.run-header .hp{color:var(--hp)}.run-header .gold{color:var(--gold)}.run-header .asc{color:var(--muted)}.relic-bar{display:flex;gap:6px;flex-wrap:wrap}.relic{font-size:12px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:3px 7px;color:var(--gold)}.node-choices{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.node-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 10px;background:var(--panel);border:1px solid var(--line);border-radius:16px;color:var(--text);cursor:pointer}.node-card:hover{border-color:var(--violet2);background:var(--panel2);transform:translateY(-2px)}.node-icon{font-size:34px}.node-card.type-elite{border-color:#c77}.node-card.type-boss{border-color:var(--gold)}.node-card.type-shop{border-color:var(--green)}.node-label{font-size:14px;color:var(--muted)}.enemies{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}.enemy{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:150px;text-align:center}.enemy.elite{border-color:#c77}.enemy.boss{border-color:var(--gold)}.enemy.dead{opacity:.35;filter:grayscale(1)}.enemy-name{font-weight:700;margin-bottom:4px}.enemy-intent{color:var(--danger);font-size:13px;margin-bottom:6px}.combat-log{min-height:42px;color:var(--muted);font-size:12px;text-align:center;margin:6px 0}.player-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}.player-stats{flex:1}.resources{display:flex;flex-direction:column;gap:4px;text-align:right;font-size:14px}.res.charge{color:var(--engine)}.res.reroll{color:var(--violet2)}.res.turn{color:var(--muted);font-size:12px}.hpbar{position:relative;height:18px;background:#2a0f17;border-radius:9px;overflow:hidden;border:1px solid #3a1822;margin:4px 0}.hpbar-fill{height:100%;background:linear-gradient(90deg,#ff7d8f,var(--hp));transition:width .3s ease}.hpbar-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;text-shadow:0 1px 2px #000}.block-chip{margin-left:6px;color:var(--block)}.status-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:4px}.status-chip{font-size:12px;background:var(--panel2);border-radius:7px;padding:2px 6px}.tray{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;margin:10px 0 16px}.die{background:linear-gradient(180deg,var(--panel2),var(--panel));border:2px solid var(--line);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:6px;animation:roll .4s cubic-bezier(.2,.9,.3,1.2);position:relative}@keyframes roll{0%{transform:rotate(-18deg) scale(.7);opacity:0}60%{transform:rotate(6deg) scale(1.05);opacity:1}to{transform:none}}.die.ready{border-color:var(--violet2);box-shadow:0 0 0 1px var(--violet2),0 6px 16px #7c5cff40}.die.used{opacity:.4;filter:saturate(.5)}.die.blank{opacity:.7}.die.dk-attack{border-top-color:var(--attack)}.die.dk-defense{border-top-color:var(--defense)}.die.dk-venom{border-top-color:var(--venom)}.die.dk-engine{border-top-color:var(--engine)}.die.dk-utility{border-top-color:var(--utility)}.die-top{display:flex;align-items:center;justify-content:space-between;font-size:18px}.face-sym{letter-spacing:1px}.face-sym.muted{color:var(--muted)}.die-value{font-weight:800;font-size:16px;color:var(--text)}.die-cost{color:var(--engine);font-size:13px}.die-face{flex:1;text-align:left;background:transparent;border:none;color:var(--text);cursor:pointer;padding:2px;border-radius:8px}.die-face:disabled{cursor:not-allowed}.face-label{font-weight:700;font-size:14px;margin-bottom:3px}.face-lines{font-size:12px;color:var(--muted);line-height:1.35}.die-foot{display:flex;align-items:center;justify-content:space-between}.wear{color:var(--violet2);font-size:11px;min-height:14px}.rust{color:#b6873f;margin-left:3px}.die-actions{display:flex;gap:4px}.die-kind{position:absolute;top:4px;right:8px;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.combat-controls{position:sticky;bottom:8px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080912c7;display:flex;align-items:center;justify-content:center;padding:18px;z-index:50;animation:fade .2s ease}.overlay-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;max-width:460px;width:100%;text-align:center}.overlay-card h2{font-size:28px}.bag-modal{max-height:85vh;overflow:auto;text-align:left}.bag-modal-head{display:flex;justify-content:space-between;align-items:center}.reward-options,.drift-options{display:flex;flex-direction:column;gap:10px;margin:12px 0}.reward-opt{text-align:left}.gold-line{color:var(--gold);font-weight:700}.relic-reward,.relic-bar{margin:10px 0}.shop-items{display:flex;flex-direction:column;gap:10px;margin:12px 0}.shop-item{display:flex;justify-content:space-between;text-align:left}.shop-item .cost{color:var(--gold)}.event-text{color:var(--muted);line-height:1.5}.event-result{color:var(--violet2);font-style:italic;margin:12px 0}.bag-grid{display:grid;gap:12px;grid-template-columns:1fr}.bag-die{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px}.bag-die-name{font-weight:700;margin-bottom:8px}.bag-faces{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.bag-face{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:7px;font-size:12px;color:var(--text);text-align:left}button.bag-face{cursor:pointer}button.bag-face:hover{border-color:var(--violet2)}.bag-face.dk-attack{border-left:3px solid var(--attack)}.bag-face.dk-defense{border-left:3px solid var(--defense)}.bag-face.dk-venom{border-left:3px solid var(--venom)}.bag-face.dk-engine{border-left:3px solid var(--engine)}.bag-face.dk-utility{border-left:3px solid var(--utility)}.bf-head{display:flex;gap:5px;align-items:center;margin-bottom:3px}.bf-lines{display:flex;flex-direction:column;color:var(--muted)}.bf-wear{margin-top:4px;color:var(--violet2);font-size:11px}.end{text-align:center}.end .win{color:var(--gold)}.end .lose{color:var(--danger)}.bag-fab,.install-fab{position:fixed;z-index:40;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:999px;padding:10px 16px;cursor:pointer;font-size:14px;box-shadow:0 6px 20px #0006}.bag-fab{right:14px;bottom:76px}.install-fab{left:14px;bottom:14px;background:var(--violet);border-color:var(--violet2);color:#fff}@media(min-width:480px){.casters{grid-template-columns:1fr 1fr}}
