:root{--bg-0: #0a0b10;--bg-1: #141622;--bg-2: #1c1f30;--bg-3: #262a40;--ink: #e7ecff;--ink-dim: #8892b8;--accent: #f6b65f;--accent-2: #7fd7ff;--hp: #e05252;--mana: #5e7cff;--xp: #6bd16b;--danger: #ff5c7a;--success: #7fe3a3;--border: #3b4063;--border-bright: #6b73a8;--shadow: 0 4px 12px rgba(0, 0, 0, .5);--font: "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-display: "Palatino Linotype", "Book Antiqua", Palatino, serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:radial-gradient(circle at 50% -10%,#1c1f30,#06070c 70%);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}#app{min-height:100vh;display:flex;flex-direction:column}button{font-family:inherit;font-size:14px;color:var(--ink);background:linear-gradient(180deg,var(--bg-3) 0%,var(--bg-2) 100%);border:1px solid var(--border);border-radius:6px;padding:10px 14px;cursor:pointer;transition:all .14s ease;letter-spacing:.2px}button:hover:not(:disabled){border-color:var(--border-bright);transform:translateY(-1px);box-shadow:0 4px 10px #0006}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(180deg,#d59244,#a26423);border-color:#e1a35a;color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:linear-gradient(180deg,#e9a558,#b5732b)}button.danger{background:linear-gradient(180deg,#8a2e3a,#5a1a24);border-color:#b24358}iconify-icon{display:inline-block;vertical-align:middle}.scene{flex:1;display:flex;flex-direction:column;max-width:1100px;width:100%;margin:0 auto;padding:16px}.panel{background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg-1) 100%);border:1px solid var(--border);border-radius:10px;padding:18px;box-shadow:var(--shadow)}.title-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:24px;text-align:center}.title-screen h1{font-family:var(--font-display);font-size:56px;margin:0;letter-spacing:4px;background:linear-gradient(180deg,#ffe1a8,#c88a2a 60%,#6a3f0c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 6px rgba(0,0,0,.6))}.title-screen .subtitle{color:var(--ink-dim);font-style:italic;font-size:17px;max-width:540px;margin-top:-12px}.title-screen .menu{display:flex;flex-direction:column;gap:10px;min-width:260px}.title-screen .menu button{padding:14px 20px;font-size:16px}.title-screen .sigil{font-size:96px;color:var(--accent);filter:drop-shadow(0 6px 12px rgba(0,0,0,.7))}.title-screen .footer{margin-top:18px;color:var(--ink-dim);font-size:12px}.hud{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,#141622fa,#0a0b10f5);border-bottom:1px solid var(--border);padding:10px 16px;display:flex;align-items:center;gap:14px;backdrop-filter:blur(6px)}.hud .who{display:flex;align-items:center;gap:8px;color:var(--accent);font-weight:600;min-width:150px}.hud .bars{display:flex;flex-direction:column;gap:4px;min-width:220px;flex:1;max-width:360px}.hud .meta{display:flex;gap:14px;color:var(--ink-dim);font-size:13px;align-items:center}.hud .meta .pill{display:inline-flex;align-items:center;gap:5px;background:var(--bg-3);border:1px solid var(--border);padding:4px 9px;border-radius:999px;color:var(--ink)}.hud .meta .pill.crystal{color:var(--accent-2)}.hud .tools{display:flex;gap:6px}.hud .tools button{padding:6px 10px;font-size:12px}.bar{display:flex;align-items:center;gap:8px;font-size:12px}.bar-label{width:40px;color:var(--ink-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:10px}.bar-track{flex:1;height:12px;background:var(--bg-0);border:1px solid var(--border);border-radius:6px;overflow:hidden;position:relative}.bar-fill{height:100%;transition:width .24s ease;background:var(--hp)}.bar-fill.hp{background:linear-gradient(90deg,#9b2e2e,#e05252)}.bar-fill.mana{background:linear-gradient(90deg,#2a3f9e,#5e7cff)}.bar-fill.xp{background:linear-gradient(90deg,#2a6f3d,#6bd16b)}.bar-text{width:72px;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.room{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-top:16px}.room .art{min-height:280px;border-radius:10px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;position:relative;overflow:hidden}.room .art iconify-icon{font-size:140px;color:#ffffffc7;filter:drop-shadow(0 6px 18px rgba(0,0,0,.65))}.room .art .badge{position:absolute;top:12px;left:12px;background:#00000080;border:1px solid var(--border);padding:4px 10px;border-radius:999px;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-dim)}.room .art h2{margin:0;font-family:var(--font-display);font-size:26px;text-align:center;color:var(--ink);text-shadow:0 2px 6px rgba(0,0,0,.8)}.room .desc{padding:0 18px 14px;color:var(--ink-dim);font-style:italic;text-align:center}.room .side{display:flex;flex-direction:column;gap:10px}.room .side h3{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-dim)}.room .exit-btn{display:flex;align-items:center;gap:10px;text-align:left;padding:10px 12px}.room .exit-btn iconify-icon{font-size:22px;color:var(--accent-2)}.room .exit-btn .dir{color:var(--ink-dim);font-size:11px;text-transform:uppercase}.room .exit-btn .name{font-weight:600}.theme-combat{background:linear-gradient(160deg,#3a1a1c,#1a0d10)}.theme-elite{background:linear-gradient(160deg,#3e1f4a,#190e22)}.theme-forge{background:linear-gradient(160deg,#4a2b0d,#1d1206)}.theme-rest{background:linear-gradient(160deg,#0f3a2e,#071c16)}.theme-event{background:linear-gradient(160deg,#1f2e4a,#0b111c)}.theme-treasure{background:linear-gradient(160deg,#443a0a,#1a1604)}.theme-boss{background:linear-gradient(160deg,#4a0a1f,#1c0209)}.theme-start{background:linear-gradient(160deg,#2a2a3a,#0e0f16)}.combat{display:grid;grid-template-rows:1fr auto;gap:16px;margin-top:16px}.combat .stage{display:grid;grid-template-columns:1fr 1fr;gap:16px}.combat .enemy,.combat .player{padding:18px;text-align:center}.combat .enemy iconify-icon{font-size:120px;color:#e7ecff;filter:drop-shadow(0 4px 12px rgba(255,80,80,.3))}.combat .enemy h3,.combat .player h3{margin:8px 0 10px;font-family:var(--font-display);font-size:22px}.combat .tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:6px 0}.tag{font-size:10px;padding:3px 8px;border-radius:999px;background:var(--bg-3);border:1px solid var(--border);color:var(--ink-dim);text-transform:uppercase;letter-spacing:.5px}.tag.fire{color:#ffb078;border-color:#6a3010}.tag.cold{color:#9ad8ff;border-color:#1c3f5a}.tag.shock{color:#ffe98a;border-color:#5a4410}.tag.poison{color:#9beb8f;border-color:#1a4a12}.tag.physical{color:#d6d6d6;border-color:#3b3b3b}.tag.resist{color:#ff9d9d;border-color:#5a1a1a}.tag.weak{color:#9be0a5;border-color:#154026}.tag.immune{color:#e48aff;border-color:#4a1660}.tag.reflect{color:#9ad8ff;border-color:#113a58}.combat .log{max-height:140px;overflow-y:auto;padding:10px 12px;font-family:Consolas,Courier New,monospace;font-size:12px;color:var(--ink-dim);background:var(--bg-0);border:1px solid var(--border);border-radius:6px;margin-top:12px}.combat .log .entry{margin-bottom:3px}.combat .log .good{color:var(--success)}.combat .log .bad{color:var(--danger)}.combat .log .info{color:var(--accent-2)}.combat .actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.combat .actions button{padding:14px 16px}.submenu{margin-top:10px;padding:12px;background:var(--bg-0);border:1px solid var(--border);border-radius:8px}.submenu .opt{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;margin-bottom:6px;cursor:pointer}.submenu .opt:hover{border-color:var(--border-bright)}.submenu .opt .name{font-weight:600}.submenu .opt .cost{font-size:11px;color:var(--mana)}.submenu .opt .desc{font-size:11px;color:var(--ink-dim);flex-basis:100%;margin-top:4px}@keyframes flash-dmg{0%{opacity:0;transform:translateY(0) scale(.8)}30%{opacity:1;transform:translateY(-10px) scale(1.1)}to{opacity:0;transform:translateY(-40px) scale(1)}}.dmg-number{position:absolute;top:40%;left:50%;transform:translate(-50%);font-size:36px;font-weight:700;color:var(--danger);animation:flash-dmg .9s ease-out forwards;text-shadow:0 2px 8px rgba(0,0,0,.9);pointer-events:none}.dmg-number.heal{color:var(--success)}.forge{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-top:16px}.forge .runes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.forge .rune{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);cursor:pointer;transition:all .15s ease}.forge .rune:hover{border-color:var(--border-bright)}.forge .rune.selected{border-color:var(--accent);background:linear-gradient(180deg,#3a2a0f,#1a1105);box-shadow:0 0 0 2px #f6b65f4d}.forge .rune iconify-icon{font-size:36px;color:var(--accent)}.forge .rune .rname{font-size:12px;font-weight:600}.forge .rune .affinity{font-size:10px;color:var(--ink-dim)}.forge .slot{display:flex;gap:10px;padding:10px;border:1px dashed var(--border);border-radius:8px;min-height:60px;align-items:center;justify-content:center;color:var(--ink-dim);font-style:italic}.forge .slot iconify-icon{font-size:28px;color:var(--accent)}.forge .preview{padding:14px;background:var(--bg-0);border:1px solid var(--border);border-radius:8px;margin-top:10px}.forge .preview h4{margin:0 0 6px;color:var(--accent);font-family:var(--font-display);font-size:18px}.forge .preview .effect{font-size:12px;color:var(--ink-dim)}.forge .spells h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;color:var(--ink-dim);letter-spacing:1px}.forge .spell-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;margin-bottom:6px;background:var(--bg-2)}.forge .spell-row .sname{font-weight:600;flex:1}.forge .spell-row .cost{color:var(--mana);font-size:11px}.event-scene{display:grid;grid-template-columns:200px 1fr;gap:20px;margin-top:16px;padding:20px}.event-scene .portrait{display:flex;flex-direction:column;align-items:center}.event-scene .portrait iconify-icon{font-size:140px;color:var(--accent-2)}.event-scene .portrait .npc-name{margin-top:8px;font-family:var(--font-display);font-size:18px}.event-scene .body h2{margin:0 0 8px;font-family:var(--font-display)}.event-scene .body .text{color:var(--ink-dim);font-style:italic;margin-bottom:14px}.event-scene .choices{display:flex;flex-direction:column;gap:8px}.event-scene .choices button{text-align:left}.overlay-backdrop{position:fixed;inset:0;background:#05060cc7;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.overlay-panel{max-width:720px;max-height:80vh;overflow-y:auto;min-width:420px}.overlay-panel h2{margin-top:0;font-family:var(--font-display);display:flex;align-items:center;gap:10px}.overlay-panel .close{float:right;margin-top:-4px}.map-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.map-cell{padding:12px 8px;border:1px solid var(--border);border-radius:8px;text-align:center;background:var(--bg-2);font-size:11px}.map-cell iconify-icon{font-size:30px;display:block;margin:0 auto 4px;color:var(--accent-2)}.map-cell.here{border-color:var(--accent);box-shadow:0 0 0 2px #f6b65f59}.map-cell.hidden{opacity:.3;font-style:italic}.map-cell.cleared .name{text-decoration:line-through;color:var(--ink-dim)}.traits-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-top:10px}.traits-list .row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;border-bottom:1px solid var(--border)}.spellbook{display:flex;flex-direction:column;gap:8px;margin-top:10px}.spellbook .sb-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2)}.spellbook .sb-row iconify-icon{font-size:26px;color:var(--accent)}.spellbook .sb-row .sname{font-weight:600}.spellbook .sb-row .sdesc{font-size:11px;color:var(--ink-dim)}.spellbook .sb-row .sright{margin-left:auto;font-size:11px;color:var(--mana)}.game-over{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:18px;text-align:center}.game-over h1{font-family:var(--font-display);font-size:64px;margin:0;color:var(--danger);letter-spacing:6px}.victory h1{color:var(--success)}@media (max-width: 860px){.room,.forge,.combat .stage,.event-scene{grid-template-columns:1fr}.combat .actions{grid-template-columns:repeat(2,1fr)}}
