.loading-overlay[data-v-1732a3ce]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:10000}.loading-content[data-v-1732a3ce]{display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center;padding:40px;max-width:600px}.spinner[data-v-1732a3ce]{width:60px;height:60px;border:3px solid rgba(200,164,78,.15);border-top-color:#c8a44e;border-radius:50%;animation:spin-1732a3ce 1s linear infinite}@keyframes spin-1732a3ce{to{transform:rotate(360deg)}}.loading-title[data-v-1732a3ce]{font-family:Cinzel,serif;font-size:1.5rem;font-weight:600;margin:0;background:linear-gradient(180deg,#e8d48e,#c8a44e 40%,#8a6d2b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}.loading-text[data-v-1732a3ce]{font-family:var(--font-ui);color:var(--text-secondary, #c4b998);font-size:1.1rem;font-weight:400;line-height:1.6;margin:0;min-height:60px;white-space:pre-wrap}.loading-hint[data-v-1732a3ce]{font-family:var(--font-ui);color:var(--text-muted, #8b8678);font-size:.9rem;margin-top:8px;font-style:italic}.fade-enter-active[data-v-1732a3ce],.fade-leave-active[data-v-1732a3ce]{transition:opacity .3s ease}.fade-enter-from[data-v-1732a3ce],.fade-leave-to[data-v-1732a3ce]{opacity:0}@media (max-width: 768px){.loading-content[data-v-1732a3ce]{padding:24px;gap:20px}.loading-title[data-v-1732a3ce]{font-size:1.2rem}.loading-text[data-v-1732a3ce]{font-size:1rem}.spinner[data-v-1732a3ce]{width:50px;height:50px}}.global-toast-layer[data-v-acb80575]{position:fixed;top:max(18px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:9200;pointer-events:none;width:min(calc(100vw - 32px),440px)}.global-toast-stack[data-v-acb80575]{display:flex;flex-direction:column;gap:10px}.global-toast-card[data-v-acb80575]{width:100%;display:grid;grid-template-columns:4px minmax(0,1fr);align-items:stretch;padding:0;border:1px solid rgba(107,90,48,.72);background:linear-gradient(180deg,#18130df5,#0a0806f5);box-shadow:0 14px 36px #00000073;color:#efe4c7;cursor:pointer;pointer-events:auto;overflow:hidden;text-align:left}.global-toast-card[data-v-acb80575]:hover{border-color:#c8a44ee6}.global-toast-accent[data-v-acb80575]{background:#c8a44ef2}.global-toast-message[data-v-acb80575]{display:block;padding:12px 16px;font-family:var(--font-ui);font-size:13px;line-height:1.55;white-space:pre-wrap}.global-toast-card.tone-success .global-toast-accent[data-v-acb80575]{background:#36b37e}.global-toast-card.tone-warning .global-toast-accent[data-v-acb80575]{background:#d5a03a}.global-toast-card.tone-error .global-toast-accent[data-v-acb80575]{background:#d16a5d}.global-toast-card.tone-info .global-toast-accent[data-v-acb80575]{background:#7ea0d8}.global-toast-enter-active[data-v-acb80575],.global-toast-leave-active[data-v-acb80575]{transition:opacity .22s ease,transform .22s ease}.global-toast-enter-from[data-v-acb80575],.global-toast-leave-to[data-v-acb80575]{opacity:0;transform:translateY(-10px) scale(.98)}@media (max-width: 768px){.global-toast-layer[data-v-acb80575]{top:max(12px,env(safe-area-inset-top));width:min(calc(100vw - 20px),420px)}.global-toast-message[data-v-acb80575]{padding:11px 14px;font-size:12px}}.sandbox[data-v-b164d99a]{display:flex;flex-direction:column;gap:16px;padding:12px}.setup-row[data-v-b164d99a]{display:flex;gap:16px;align-items:flex-start}.picker[data-v-b164d99a],.roster[data-v-b164d99a]{flex:1;min-width:0}.picker>input[data-v-b164d99a]{width:100%;box-sizing:border-box}.monster-list[data-v-b164d99a]{max-height:320px;overflow:auto;list-style:none;padding:0;margin:8px 0}.monster-list li[data-v-b164d99a]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid #2a2a30}.monster-list li span[data-v-b164d99a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster ul[data-v-b164d99a]{list-style:none;padding:0;margin:8px 0;max-height:320px;overflow:auto}.roster li[data-v-b164d99a]{display:flex;align-items:center;gap:6px;padding:4px 0}h4[data-v-b164d99a]{margin:0 0 4px;color:#c8a44e;font-size:13px}.actions[data-v-b164d99a]{margin-top:12px;display:flex;gap:8px}input[data-v-b164d99a]{background:#1b1b1f;color:#eee;border:1px solid #444;padding:4px 6px}button[data-v-b164d99a]{background:#2c2c34;color:#eee;border:1px solid #555;padding:4px 10px;cursor:pointer}button[data-v-b164d99a]:disabled{opacity:.4;cursor:not-allowed}.layout[data-v-b164d99a],.buffs[data-v-b164d99a]{border-top:1px solid #333;padding-top:12px}.buffs>button[data-v-b164d99a]{margin-top:8px}.row[data-v-b164d99a]{display:flex;gap:6px;align-items:center;margin:4px 0}.editor[data-v-297b9a1a]{padding:12px;display:flex;flex-direction:column;gap:12px}.row[data-v-297b9a1a]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats input[data-v-297b9a1a]{width:48px}.section[data-v-297b9a1a]{border-top:1px solid #333;padding-top:10px}h4[data-v-297b9a1a]{margin:0 0 6px;color:#c8a44e;font-size:13px}.skills[data-v-297b9a1a],.spells[data-v-297b9a1a]{display:flex;flex-wrap:wrap;gap:6px 14px;max-height:180px;overflow:auto}.skills label[data-v-297b9a1a],.spells label[data-v-297b9a1a]{white-space:nowrap}.slots[data-v-297b9a1a]{gap:6px}.slot-col[data-v-297b9a1a]{display:flex;flex-direction:column;align-items:center;gap:3px}.slot-lv[data-v-297b9a1a]{font-size:11px;color:#9a9aa2}.slot-col input[data-v-297b9a1a]{width:40px;text-align:center}.hint[data-v-297b9a1a]{font-size:11px;color:#8a8a92}.actions[data-v-297b9a1a]{display:flex;gap:8px}input[data-v-297b9a1a]{background:#1b1b1f;color:#eee;border:1px solid #444;padding:4px 6px}input[type=checkbox][data-v-297b9a1a],input[type=radio][data-v-297b9a1a]{padding:0}select[data-v-297b9a1a]{background:#1b1b1f;color:#eee;border:1px solid #444;padding:4px 6px}button[data-v-297b9a1a]{background:#2c2c34;color:#eee;border:1px solid #555;padding:4px 12px;cursor:pointer}.dev-placeholder[data-v-e40650cf]{padding:24px;color:#9aa;text-align:center}.log-panel[data-v-c4ec9122]{display:flex;flex-direction:column;height:70vh;padding:10px 12px;gap:8px}.toolbar[data-v-c4ec9122]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.switch[data-v-c4ec9122]{display:inline-flex;align-items:center;gap:5px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px}.rec-dot[data-v-c4ec9122]{width:9px;height:9px;border-radius:50%;background:#555;display:inline-block}.rec-dot.on[data-v-c4ec9122]{background:#e0533a;box-shadow:0 0 6px #e0533a}.stat[data-v-c4ec9122]{color:#9aa;font-size:12px}.spacer[data-v-c4ec9122]{flex:1}.hint[data-v-c4ec9122]{color:#6ad08a;font-size:12px;margin:-2px 0 0}.filters[data-v-c4ec9122]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.battle-select[data-v-c4ec9122]{background:#1b1b1f;color:#eee;border:1px solid #444;padding:4px 6px;max-width:240px}.layer-chips[data-v-c4ec9122]{display:flex;gap:4px;flex-wrap:wrap}.chip[data-v-c4ec9122]{border:1px solid var(--chip);color:var(--chip);background:transparent;padding:2px 8px;border-radius:10px;font-size:12px;cursor:pointer}.chip.off[data-v-c4ec9122]{opacity:.35;border-color:#555;color:#888}.search[data-v-c4ec9122]{flex:1;min-width:140px;background:#1b1b1f;color:#eee;border:1px solid #444;padding:4px 8px}.event-list[data-v-c4ec9122]{flex:1;overflow:auto;border:1px solid #2a2a30;border-radius:6px;background:#121216}.empty[data-v-c4ec9122],.trunc[data-v-c4ec9122]{color:#888;text-align:center;padding:16px;font-size:13px;margin:0}.trunc[data-v-c4ec9122]{color:#777;padding:8px;font-size:12px}.event[data-v-c4ec9122]{border-bottom:1px solid #1f1f25}.event.expanded[data-v-c4ec9122]{background:#17171c}.row[data-v-c4ec9122]{display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;font-size:12px}.row[data-v-c4ec9122]:hover{background:#1d1d23}.seq[data-v-c4ec9122]{color:#555;min-width:38px}.time[data-v-c4ec9122]{color:#788;min-width:56px;font-variant-numeric:tabular-nums}.badge[data-v-c4ec9122]{color:#111;font-weight:600;padding:1px 6px;border-radius:3px;font-size:11px;white-space:nowrap}.ctx[data-v-c4ec9122]{color:#999;background:#24242c;padding:1px 5px;border-radius:3px;white-space:nowrap}.ctx.actor[data-v-c4ec9122]{color:#c8a44e}.kind[data-v-c4ec9122]{color:#7fa7c9;font-family:monospace;white-space:nowrap}.summary[data-v-c4ec9122]{color:#ddd;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.caret[data-v-c4ec9122]{color:#666}.detail[data-v-c4ec9122]{margin:0;padding:8px 12px;background:#0c0c0f;color:#b8c2cc;font-size:11px;line-height:1.45;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word;border-top:1px solid #1f1f25}button[data-v-c4ec9122]{background:#2c2c34;color:#eee;border:1px solid #555;padding:4px 10px;cursor:pointer;border-radius:3px}button[data-v-c4ec9122]:hover{background:#3a3a45}button.danger[data-v-c4ec9122]{border-color:#803434;color:#e98}.scenario-panel[data-v-191ce10b]{display:flex;flex-direction:column;gap:12px;padding:12px 14px;max-height:72vh;overflow:auto}.toolbar[data-v-191ce10b]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.scenario-select[data-v-191ce10b]{background:#1b1b1f;color:#eee;border:1px solid #444;padding:5px 8px;min-width:220px}.run-btn[data-v-191ce10b]{background:#2c3a2c;color:#d6f5d6;border:1px solid #4a6a4a;padding:5px 14px;cursor:pointer;border-radius:3px}.run-btn[data-v-191ce10b]:hover:not(:disabled){background:#36493a}.run-btn[data-v-191ce10b]:disabled{opacity:.5;cursor:not-allowed}.hint[data-v-191ce10b]{color:#9aa;font-size:12px}.ok-hint[data-v-191ce10b]{color:#6ad08a}.err[data-v-191ce10b]{color:#e66;font-size:13px;margin:0}.empty[data-v-191ce10b]{color:#888;font-size:13px;line-height:1.6}.result h4[data-v-191ce10b]{color:#c8a44e;font-size:13px;margin:10px 0 4px;border-bottom:1px solid #2a2a30;padding-bottom:3px}.grid[data-v-191ce10b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}.cell[data-v-191ce10b]{display:flex;flex-direction:column;gap:2px;background:#15151a;border:1px solid #26262e;border-radius:4px;padding:6px 8px}.cell.wide[data-v-191ce10b]{grid-column:1 / -1}.k[data-v-191ce10b]{color:#99a;font-size:11px}.v[data-v-191ce10b]{color:#ddd;font-size:13px;word-break:break-word}.v.ok[data-v-191ce10b]{color:#6ad08a}.v.no[data-v-191ce10b]{color:#e08a6a}.layer-counts[data-v-191ce10b]{display:flex;gap:6px;flex-wrap:wrap}.layer-chip[data-v-191ce10b]{background:#1d2330;color:#9fc3e0;border:1px solid #2e3a4a;border-radius:10px;padding:2px 10px;font-size:12px}.muted[data-v-191ce10b]{color:#777;font-size:12px}.actions[data-v-191ce10b]{display:flex;align-items:center;gap:10px;margin-top:8px}button[data-v-191ce10b]{background:#2c2c34;color:#eee;border:1px solid #555;padding:4px 10px;cursor:pointer;border-radius:3px}button[data-v-191ce10b]:hover{background:#3a3a45}.dev-overlay[data-v-4cf8ea05]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#0000008c;display:flex;align-items:center;justify-content:center}.dev-window[data-v-4cf8ea05]{width:min(900px,92vw);max-height:86vh;overflow:auto;background:#16161a;color:#eee;border:1px solid #555;border-radius:8px;box-shadow:0 12px 40px #0009}header[data-v-4cf8ea05]{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid #333}.x[data-v-4cf8ea05],.lock[data-v-4cf8ea05]{background:transparent;color:#bbb;border:none;cursor:pointer}.unlock[data-v-4cf8ea05]{padding:24px;display:flex;gap:8px;align-items:center}.unlock input[data-v-4cf8ea05]{background:#1b1b1f;color:#eee;border:1px solid #444;padding:6px 8px}.unlock button[data-v-4cf8ea05]{background:#2c2c34;color:#eee;border:1px solid #555;padding:6px 12px;cursor:pointer}.err[data-v-4cf8ea05]{color:#e66;margin:0 0 0 8px}.tabs[data-v-4cf8ea05]{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid #333}.tabs button[data-v-4cf8ea05]{background:#222;color:#ccc;border:1px solid #444;padding:4px 12px;cursor:pointer}.tabs button.active[data-v-4cf8ea05]{background:#3a3a45;color:#fff}.tabs .lock[data-v-4cf8ea05]{margin-left:auto;border:none}#app-container[data-v-49e33b31]{min-height:100vh;display:flex;flex-direction:column;position:relative;isolation:isolate;background:#080604}#app-container[data-v-49e33b31]:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:var(--app-background-image);background-position:center;background-size:cover;background-repeat:no-repeat}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-400-normal-DnUIPmzd.woff2) format("woff2"),url(/assets/cinzel-latin-400-normal-C8jUSQqm.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cinzel-latin-500-normal-B-2dbOfA.woff2) format("woff2"),url(/assets/cinzel-latin-500-normal-DMNTwV-V.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-600-normal-Dd5YO2UX.woff2) format("woff2"),url(/assets/cinzel-latin-600-normal-CH_LB4su.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2) format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/cinzel-latin-900-normal-BI3z7Tow.woff2) format("woff2"),url(/assets/cinzel-latin-900-normal-t_fSDEbn.woff) format("woff")}@font-face{font-family:Cinzel Decorative;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-decorative-latin-400-normal-C3uAaiWr.woff2) format("woff2"),url(/assets/cinzel-decorative-latin-400-normal-Bspm-4mP.woff) format("woff")}@font-face{font-family:Cinzel Decorative;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-decorative-latin-700-normal-CnX1aK6s.woff2) format("woff2"),url(/assets/cinzel-decorative-latin-700-normal-ov6XPGpn.woff) format("woff")}@font-face{font-family:Cinzel Decorative;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/cinzel-decorative-latin-900-normal-MnIZQgjg.woff2) format("woff2"),url(/assets/cinzel-decorative-latin-900-normal-BBdTCSMn.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-sc-latin-400-normal-bWtu-bD9.woff2) format("woff2"),url(/assets/noto-serif-sc-latin-400-normal-TDAhzw_V.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-serif-sc-latin-500-normal-ZcXeFfWF.woff2) format("woff2"),url(/assets/noto-serif-sc-latin-500-normal-DBRCPsxC.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-serif-sc-latin-600-normal-B99s59ZT.woff2) format("woff2"),url(/assets/noto-serif-sc-latin-600-normal-B12eBB-v.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-sc-latin-700-normal-CJ4TiP3v.woff2) format("woff2"),url(/assets/noto-serif-sc-latin-700-normal-Dwdbd-fz.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-sc-chinese-simplified-400-normal-hudUdRP0.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-400-normal-Bjln_Ehj.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-serif-sc-chinese-simplified-500-normal-DL_A5r9p.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-500-normal-DvZNnvSs.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-serif-sc-chinese-simplified-600-normal-BogBFFgE.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-600-normal-BqMAQkQB.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-sc-chinese-simplified-700-normal-B9DMK6uu.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-700-normal-C-z4U8v-.woff) format("woff")}:root{--gold: #c8a44e;--gold-primary: #c8a44e;--gold-light: #e8d48e;--gold-dark: #8a6d2b;--gold-dim: #6b5a30;--gold-glow: rgba(200, 164, 78, .5);--red-primary: #e74c3c;--red-dark: #c0392b;--danger: #c0392b;--danger-light: #e74c3c;--green-primary: #27ae60;--green-dark: #1e8449;--success: #27ae60;--info: #2980b9;--warning: #f39c12;--burgundy: #6b1d2a;--burgundy-light: #8b2d3a;--burgundy-dark: #4a0f1a;--burgundy-glow: rgba(107, 29, 42, .4);--purple: #3d1f5c;--purple-light: #5a3580;--purple-dark: #2a1040;--purple-glow: rgba(61, 31, 92, .4);--emerald: #1a6b4a;--emerald-light: #2a8b6a;--emerald-dark: #0a4b2a;--emerald-glow: rgba(26, 107, 74, .4);--rarity-common: #9d9d9d;--rarity-uncommon: #1eff00;--rarity-rare: #0070dd;--rarity-epic: #a335ee;--rarity-legendary: #ff8000;--bg-darkest: #110d09;--bg-primary: #110d09;--bg-dark: #17120d;--bg-secondary: #17120d;--bg-panel: #1e1812;--bg-tertiary: #1e1812;--bg-panel-light: #282119;--bg-card: #282119;--bg-deep: #0b0805;--bg-hover: #2c241b;--bg-active: #362d23;--text-light: #f1ead9;--text-primary: #f1ead9;--text-body: #ddcfb1;--text-secondary: #ddcfb1;--text-dim: #b4a68b;--text-muted: #988b74;--text-gold: #c8a44e;--border-gold: #c8a44e;--border-primary: #4a4034;--border-dim: #4a4034;--border-dark: #342d26;--border-light: #5c5044;--font-display: "Cinzel Decorative", "Noto Serif SC", serif;--font-heading: "Cinzel", "Noto Serif SC", serif;--font-body: "Noto Serif SC", serif;--font-ui: "Noto Serif SC", serif;--font-body-sans: "Noto Serif SC", serif;--line-height-body: 1.6;--line-height-ui: 1.45;--tracking-body: .03em;--tracking-ui: .02em;--tracking-heading: .05em;--text-metallic-gradient: linear-gradient(180deg, #e8d48e 0%, #c8a44e 40%, #8a6d2b 100%);--text-embossed-shadow: 0 1px 0 rgba(255, 255, 255, .1), 0 -1px 0 rgba(0, 0, 0, .6);--text-title-shadow: 0 2px 4px rgba(0, 0, 0, .5);--text-carved-color: var(--bg-panel);--text-carved-shadow: 0 1px 0 var(--gold-dim), 0 -1px 0 rgba(0, 0, 0, .8);--text-carved-stroke: .5px var(--gold-dim);--radius-sm: 1px;--radius-md: 1px;--radius-lg: 2px;--radius-xl: 2px;--panel-radius: 0;--border-radius: 0;--panel-radius-lg: 0;--panel-radius-xl: 0;--panel-radius-inner: 0;--icon-sidebar-width: 80px;--sidebar-left: 80px;--sidebar-right: 340px;--status-sidebar-width: 340px;--zone-gap: .75rem;--transition-fast: .2s ease;--transition-normal: .3s ease;--transition-cinematic: .8s cubic-bezier(.23, 1, .32, 1);--panel-shadow: inset 0 0 0 1px rgba(200, 164, 78, .1), inset 0 1px 0 rgba(232, 212, 142, .12), 0 0 0 1px rgba(0, 0, 0, .32), 0 4px 18px rgba(0, 0, 0, .28), 0 8px 36px rgba(0, 0, 0, .16);--card-shadow: inset 0 0 0 1px rgba(200, 164, 78, .06), 0 2px 12px rgba(0, 0, 0, .2);--card-shadow-hover: inset 0 0 0 1px rgba(200, 164, 78, .1), 0 4px 16px rgba(0, 0, 0, .22);--glass-bg: var(--bg-panel);--glass-blur: 0;--glass-border: #6b5a30;--glass-shadow: 0 8px 28px rgba(0, 0, 0, .55), 0 0 0 1px #433a2f;--glow-subtle: 0 0 8px rgba(200, 164, 78, .1);--glow-medium: 0 0 20px rgba(200, 164, 78, .2);--glow-strong: 0 0 30px rgba(200, 164, 78, .3);--glow-intense: 0 0 50px rgba(200, 164, 78, .4), 0 0 100px rgba(200, 164, 78, .15);--vignette-shadow: inset 0 0 220px rgba(0, 0, 0, .72), inset 0 0 80px rgba(200, 164, 78, .06);--narrative-border: 2px solid rgba(200, 164, 78, .4);--btn-ritual-bg: rgba(200, 164, 78, .03);--btn-ritual-border: rgba(200, 164, 78, .2);--btn-ritual-hover-bg: var(--gold-primary);--btn-ritual-hover-border: var(--gold-primary);--btn-ritual-hover-shadow: 0 0 30px rgba(200, 164, 78, .4);--btn-ritual-hover-color: #1a1a1a;--story-backdrop-gradient: linear-gradient(180deg, #241b10 0%, #342317 40%, #20170f 100%);--story-entry-bg: rgba(28, 22, 16, .78);--story-entry-blur: 0;--portrait-height: 200px;--hp-bar-height: 24px}[data-theme=light]{--bg-primary: #f0f0f5}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-body);font-size:var(--app-font-size, 16px);background-color:var(--bg-darkest);color:var(--text-body);line-height:var(--line-height-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1}html,body,#app,#app-container{font-family:var(--font-body)}p,li,dd,dt,blockquote{font-family:var(--font-body);line-height:var(--line-height-body);letter-spacing:var(--tracking-body)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);margin-top:0;font-weight:600;letter-spacing:var(--tracking-heading);background:var(--text-metallic-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(var(--text-title-shadow))}h1{font-size:2.5rem;line-height:1.2;letter-spacing:.12em;filter:drop-shadow(var(--text-title-shadow)) drop-shadow(0 0 40px rgba(200,164,78,.25))}h2{font-size:1.8rem;line-height:1.3;position:relative;padding-bottom:.5em}h2:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:2px;background:linear-gradient(90deg,var(--gold-primary),transparent);border-radius:0}h3{font-size:1.4rem;line-height:1.4}.title,[class$=-title],[class$=-heading]{font-family:var(--font-heading);letter-spacing:var(--tracking-heading)}.title,[class$=-title],[class$=-heading],.text-metallic{background:var(--text-metallic-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(var(--text-title-shadow))}.subtitle,[class$=-subtitle],.label,[class$=-label]{font-family:var(--font-ui);letter-spacing:var(--tracking-ui)}button,input,select,textarea,label{font-family:var(--font-ui);letter-spacing:var(--tracking-ui);line-height:var(--line-height-ui)}code,pre,kbd,samp{font-family:Consolas,Monaco,monospace}a{color:var(--gold-light);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--gold-dim);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gold-dark)}.mouse-glow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(200,164,78,.04),transparent 70%)}#particles-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998}#noise-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10000;opacity:.03;mix-blend-mode:overlay}.vignette{display:none}.ornate-panel{background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:0;position:relative;box-shadow:inset 0 0 0 1px #c8a44e14,inset 0 1px #c8a44e1a,0 0 0 1px #00000080,0 4px 20px #00000080,0 8px 40px #0000004d}.ornate-panel:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid rgba(200,164,78,.08);border-radius:0;pointer-events:none}.ornate-panel .corner-tl,.ornate-panel .corner-tr,.ornate-panel .corner-bl,.ornate-panel .corner-br{position:absolute;width:24px;height:24px;border-color:var(--gold);pointer-events:none;z-index:2}.ornate-panel .corner-tl{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}.ornate-panel .corner-tr{top:-1px;right:-1px;border-top:2px solid;border-right:2px solid}.ornate-panel .corner-bl{bottom:-1px;left:-1px;border-bottom:2px solid;border-left:2px solid}.ornate-panel .corner-br{bottom:-1px;right:-1px;border-bottom:2px solid;border-right:2px solid}.page-enter-active{animation:page-fade-in .4s ease both}.page-leave-active{animation:page-fade-out .4s ease both}@keyframes page-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes page-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.svg-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.svg-icon svg{display:block}.text-embossed{text-shadow:var(--text-embossed-shadow)}.text-metallic{background:var(--text-metallic-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none;filter:drop-shadow(var(--text-title-shadow))}.text-carved{color:var(--text-carved-color);text-shadow:var(--text-carved-shadow);-webkit-text-stroke:var(--text-carved-stroke)}.text-title{font-family:var(--font-heading);letter-spacing:var(--tracking-heading)}.ornate-divider{display:flex;align-items:center;gap:8px;margin:16px 0;opacity:.5}.ornate-divider:before,.ornate-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dim),transparent)}.ornate-divider .diamond{width:6px;height:6px;background:var(--gold-dim);transform:rotate(45deg);flex-shrink:0}.ornate-divider .dot{width:3px;height:3px;background:var(--gold-dim);border-radius:50%;flex-shrink:0}.btn{font-family:var(--font-ui);font-size:13px;font-weight:600;padding:10px 24px;border-radius:0;cursor:pointer;transition:all .3s ease;border:1px solid;position:relative;overflow:hidden;letter-spacing:.5px;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(180deg,#c8a44e,#a07830);border-color:#d4b060;color:#1a1408;text-shadow:0 1px 0 rgba(255,255,255,.2);box-shadow:0 2px 8px #c8a44e4d,inset 0 1px #fff3;font-family:var(--font-ui);font-size:13px;font-weight:600;padding:10px 24px;border-radius:0;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;letter-spacing:.5px;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px}.btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.btn-primary:hover{background:linear-gradient(180deg,#d4b060,#b08840);box-shadow:0 4px 16px #c8a44e80,inset 0 1px #ffffff4d;transform:translateY(-1px)}.btn-primary:active{transform:scale(.97)}.btn-secondary{background:transparent;border:1px solid var(--gold-dim);color:var(--gold);box-shadow:0 2px 8px #0003;font-family:var(--font-ui);font-size:13px;font-weight:600;padding:10px 24px;border-radius:0;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;letter-spacing:.5px;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px}.btn-secondary:hover{background:#c8a44e1a;border-color:var(--gold);box-shadow:0 2px 12px #c8a44e33}.btn-danger{background:linear-gradient(180deg,#c0392b,#962d22);border:1px solid #d44637;color:#fff;box-shadow:0 2px 8px #c0392b4d;padding:10px 24px;border-radius:0;cursor:pointer;transition:all .3s ease;font-family:var(--font-ui);font-size:13px;font-weight:600}.btn-danger:hover{background:linear-gradient(180deg,#d44637,#a83529);box-shadow:0 4px 16px #c0392b80}.btn-success{background:linear-gradient(180deg,#27ae60,#1e8449);border:1px solid #2ecc71;color:#fff;box-shadow:0 2px 8px #27ae604d;padding:10px 24px;border-radius:0;cursor:pointer;transition:all .3s ease}.btn-success:hover{background:linear-gradient(180deg,#2ecc71,#27ae60)}.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text-dim);padding:10px 24px;border-radius:0;cursor:pointer;transition:all .3s ease}.btn-ghost:hover{color:var(--text-body);background:var(--bg-hover)}.btn-sm{padding:6px 14px;font-size:11px}.btn-lg{padding:14px 36px;font-size:15px}.btn-compact{padding:6px 14px;font-size:11px;background:transparent;border:1px solid var(--border-dim);color:var(--text-dim);border-radius:0;cursor:pointer;transition:all .2s ease;font-family:var(--font-ui)}.btn-compact:hover{border-color:var(--gold-dim);color:var(--text-body);background:var(--bg-hover)}.btn-ritual{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.8rem;background:#c8a44e08;border:1px solid rgba(200,164,78,.2);border-radius:0;color:var(--text-dim);font-family:var(--font-heading);font-size:1rem;font-weight:700;letter-spacing:.4em;text-transform:uppercase;cursor:pointer;transition:all .8s cubic-bezier(.23,1,.32,1);position:relative;overflow:hidden}.btn-ritual:hover{background:var(--gold-primary);border-color:var(--gold-primary);box-shadow:0 0 30px #c8a44e66;color:#1a1a1a}.btn-ritual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transform:translate(-120%);transition:transform .6s ease}.btn-ritual:hover:after{transform:translate(120%)}.glass-card{background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:0;box-shadow:var(--card-shadow);transition:all var(--transition-normal)}.glass-card:hover{border-color:var(--gold-dim);box-shadow:var(--card-shadow-hover)}.api-card{background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:0;padding:1.5rem;margin-bottom:1rem;box-shadow:var(--card-shadow);transition:all .3s ease}.api-card:hover{border-color:var(--gold-dim);box-shadow:0 4px 16px #0000004d}.api-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.form-input,.api-input{width:100%;padding:10px 14px;background:var(--bg-darkest);border:1px solid var(--border-dim);border-radius:var(--radius-sm);color:var(--text-light);font-family:var(--font-ui);font-size:14px;transition:border-color .3s ease}.form-input:focus,.api-input:focus{outline:none;border-color:var(--gold-dim);box-shadow:0 0 0 2px #c8a44e1a}.form-input::placeholder,.api-input::placeholder{color:var(--text-muted)}.api-select,.fancy-select{padding:8px 32px 8px 12px;background:var(--bg-darkest);border:1px solid var(--border-dim);border-radius:var(--radius-sm);color:var(--text-light);font-family:var(--font-ui);font-size:13px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.api-select:focus,.fancy-select:focus{outline:none;border-color:var(--gold-dim)}label{display:block;margin-bottom:.5rem;color:var(--text-dim);font-family:var(--font-ui);font-size:.9rem}.tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:2px;font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.5px;border:1px solid}.tag-legendary{color:var(--rarity-legendary);border-color:#ff80004d;background:#ff800014}.tag-epic{color:var(--rarity-epic);border-color:#a335ee4d;background:#a335ee14}.tag-rare{color:var(--rarity-rare);border-color:#0070dd4d;background:#0070dd14}.tag-uncommon{color:var(--rarity-uncommon);border-color:#1eff004d;background:#1eff0014}.tag-common{color:var(--rarity-common);border-color:#9d9d9d4d;background:#9d9d9d14}.tag-combat{color:#e74c3c;border-color:#e74c3c4d;background:#e74c3c14}.tag-spell{color:#9b59b6;border-color:#9b59b64d;background:#9b59b614}.tag-heal{color:#2ecc71;border-color:#2ecc714d;background:#2ecc7114}.tag-arcane{color:#3498db;border-color:#3498db4d;background:#3498db14}.dice-result{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:0;font-family:var(--font-ui)}.dice-result .dr-value{font-size:24px;font-weight:700;font-family:var(--font-heading)}.dice-result .dr-label{font-size:11px;color:var(--text-dim)}.dice-result.normal .dr-value{color:var(--text-light)}.dice-result.critical .dr-value{color:var(--gold);text-shadow:0 0 10px rgba(200,164,78,.5)}.dice-result.critical{border-color:var(--gold-dim);background:#c8a44e0d;animation:critGlow 1.5s ease-in-out infinite}.dice-result.fumble .dr-value{color:var(--danger-light)}.dice-result.fumble{border-color:#c0392b4d;background:#c0392b0d}@keyframes critGlow{0%,to{box-shadow:0 0 8px #c8a44e33}50%{box-shadow:0 0 20px #c8a44e66}}.toast{position:fixed;top:60px;right:20px;padding:12px 20px;border-radius:0;font-family:var(--font-ui);font-size:13px;z-index:2000;display:none}.toast.show{display:flex;align-items:center;gap:8px}.toast-success{background:#27ae60e6;color:#fff;border:1px solid var(--success)}.toast-error{background:#c0392be6;color:#fff;border:1px solid var(--danger)}.toast-info{background:#2980b9e6;color:#fff;border:1px solid var(--info)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:3000;display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-overlay.show{display:flex}.modal{width:480px;max-width:90%;background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:0;padding:24px;position:relative;animation:modalIn .3s ease;box-shadow:inset 0 0 0 1px #c8a44e14,0 8px 40px #0009}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-title{font-family:var(--font-heading);font-size:20px;color:var(--gold);margin-bottom:12px}.modal-body{color:var(--text-body);font-size:15px;line-height:1.7;margin-bottom:20px}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.portrait-img-frame{position:relative;display:inline-block}.portrait-img-frame img,.portrait-img-frame .portrait-placeholder{display:block;object-fit:cover;object-position:center top}.portrait-img-frame:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:2px solid var(--gold);box-shadow:inset 0 0 0 1px var(--gold-dark),0 0 0 1px var(--gold-dark),0 0 8px #c8a44e33;pointer-events:none;z-index:2}.portrait-img-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(200,164,78,.3);box-shadow:inset 0 0 12px #0009;border-radius:inherit;pointer-events:none;z-index:3}.portrait-img-frame.portrait-lg,.portrait-img-frame.portrait-lg img,.portrait-img-frame.portrait-lg .portrait-placeholder{width:140px;height:175px;border-radius:0}.portrait-img-frame.portrait-md,.portrait-img-frame.portrait-md img,.portrait-img-frame.portrait-md .portrait-placeholder{width:96px;height:120px;border-radius:0}.portrait-img-frame.portrait-sm,.portrait-img-frame.portrait-sm img,.portrait-img-frame.portrait-sm .portrait-placeholder{width:64px;height:80px;border-radius:0}.portrait-img-frame.portrait-xs,.portrait-img-frame.portrait-xs img,.portrait-img-frame.portrait-xs .portrait-placeholder{width:48px;height:60px;border-radius:0}.portrait-img-frame.portrait-active:before{border-color:var(--gold-light);box-shadow:inset 0 0 0 1px var(--gold),0 0 0 1px var(--gold),0 0 16px #c8a44e66,0 0 30px #c8a44e26}.portrait-placeholder{background:linear-gradient(180deg,#1a1714,#0d0b08);display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.portrait-placeholder svg{opacity:.5}.portrait-img-frame.portrait-lg .portrait-corner{position:absolute;width:14px;height:14px;border-color:var(--gold-light);z-index:4;pointer-events:none}.portrait-img-frame.portrait-lg .portrait-corner.tl{top:-3px;left:-3px;border-top:2px solid;border-left:2px solid}.portrait-img-frame.portrait-lg .portrait-corner.tr{top:-3px;right:-3px;border-top:2px solid;border-right:2px solid}.portrait-img-frame.portrait-lg .portrait-corner.bl{bottom:-3px;left:-3px;border-bottom:2px solid;border-left:2px solid}.portrait-img-frame.portrait-lg .portrait-corner.br{bottom:-3px;right:-3px;border-bottom:2px solid;border-right:2px solid}.portrait-img-frame.portrait-md .portrait-corner{position:absolute;width:10px;height:10px;border-color:var(--gold-light);z-index:4;pointer-events:none}.portrait-img-frame.portrait-md .portrait-corner.tl{top:-3px;left:-3px;border-top:2px solid;border-left:2px solid}.portrait-img-frame.portrait-md .portrait-corner.tr{top:-3px;right:-3px;border-top:2px solid;border-right:2px solid}.portrait-img-frame.portrait-md .portrait-corner.bl{bottom:-3px;left:-3px;border-bottom:2px solid;border-left:2px solid}.portrait-img-frame.portrait-md .portrait-corner.br{bottom:-3px;right:-3px;border-bottom:2px solid;border-right:2px solid}.equip-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:var(--radius-sm);transition:all .2s ease;cursor:pointer}.equip-item:hover{background:var(--bg-hover);border-color:var(--gold-dim)}.equip-item .ei-icon{font-size:20px;width:32px;text-align:center}.equip-item .ei-name{font-family:var(--font-ui);font-size:13px;font-weight:600}.equip-item .ei-type{font-family:var(--font-ui);font-size:10px;color:var(--text-dim)}.equip-item.legendary .ei-name{color:var(--rarity-legendary)}.equip-item.epic .ei-name{color:var(--rarity-epic)}.equip-item.rare .ei-name{color:var(--rarity-rare)}.equip-item.uncommon .ei-name{color:var(--rarity-uncommon)}.equip-item.common .ei-name{color:var(--rarity-common)}.toggle{width:44px;height:24px;border-radius:12px;background:var(--border-dim);cursor:pointer;position:relative;transition:all .3s ease;border:none}.toggle.on{background:var(--gold)}.toggle .toggle-knob{width:18px;height:18px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:all .3s ease;box-shadow:0 1px 3px #0000004d}.toggle.on .toggle-knob{left:23px}.range-slider{-webkit-appearance:none;width:100%;height:4px;border-radius:2px;background:var(--border-dim);outline:none}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--gold);cursor:pointer;box-shadow:0 0 6px #c8a44e66}@media (max-width: 768px){.container{padding:.5rem}button{padding:.75rem 1rem;font-size:1rem;min-height:44px}input,select,textarea{padding:.75rem;font-size:1rem;min-height:44px}.card{margin-bottom:1rem;padding:1rem}.modal{width:95%;max-width:95%;margin:1rem auto;padding:1rem}table{font-size:.9rem}.decorative-element{display:none}}@media (max-width: 480px){.container{padding:.25rem}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1rem}.button-group{flex-direction:column;width:100%}.button-group button{width:100%;margin-bottom:.5rem}}@media (max-width: 768px) and (orientation: landscape){.modal{max-height:90vh;overflow-y:auto}}@media (hover: none) and (pointer: coarse){a,button{min-height:44px;min-width:44px;padding:.75rem 1rem}button:active{transform:scale(.95);opacity:.8}*{-webkit-overflow-scrolling:touch}button,.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.border-thin{border-width:.5px}}@media print{.no-print{display:none!important}.print-break{page-break-after:always}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--border-primary: #000000;--text-primary: #000000;--text-secondary: #000000}[data-theme=dark]{--border-primary: #ffffff;--text-primary: #ffffff;--text-secondary: #ffffff}}
