.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}}#app-container[data-v-d3f710b3]{min-height:100vh;display:flex;flex-direction:column}@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: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}}
