@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:Cinzel;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f13700f23fbdc6fd-s.0q1bf9cc3c0ui.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-weight:700;font-display:swap;src:url(../media/cc014fcb166cf364-s.p.0rbrcy8kuidpb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-weight:900;font-display:swap;src:url(../media/f13700f23fbdc6fd-s.0q1bf9cc3c0ui.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-weight:900;font-display:swap;src:url(../media/cc014fcb166cf364-s.p.0rbrcy8kuidpb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel Fallback;src:local(Times New Roman);ascent-override:71.31%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:136.86%}.cinzel_367e2297-module__E2YtPq__className{font-family:Cinzel,Cinzel Fallback;font-style:normal}.cinzel_367e2297-module__E2YtPq__variable{--font-cinzel:"Cinzel", "Cinzel Fallback"}
@font-face{font-family:Cinzel Decorative;font-style:normal;font-weight:700;font-display:swap;src:url(../media/18b40ef1512f2489-s.0c_~1ulj98zuz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel Decorative;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ea1df765ed99ddf9-s.p.00wb.edbz0smi.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel Decorative;font-style:normal;font-weight:900;font-display:swap;src:url(../media/32b862db5c648773-s.0hmctdh~d5.o_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel Decorative;font-style:normal;font-weight:900;font-display:swap;src:url(../media/c91de1963421a97e-s.p.11y6wew.ka8ye.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel Decorative Fallback;src:local(Arial);ascent-override:73.87%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:132.12%}.cinzel_decorative_ab2cc774-module__L-16Ca__className{font-family:Cinzel Decorative,Cinzel Decorative Fallback;font-style:normal}.cinzel_decorative_ab2cc774-module__L-16Ca__variable{--font-cinzel-decorative:"Cinzel Decorative", "Cinzel Decorative Fallback"}
@font-face{font-family:Crimson Pro;font-style:italic;font-weight:400;font-display:swap;src:url(../media/d4cfff78d70c32f1-s.0.f_03yjeizj3.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Pro;font-style:italic;font-weight:400;font-display:swap;src:url(../media/edd49e6a728081e1-s.0nec83w9a499y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Pro;font-style:italic;font-weight:400;font-display:swap;src:url(../media/a41eab1df8ed80c4-s.p.05m5kcrbsr6xs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Pro;font-style:italic;font-weight:600;font-display:swap;src:url(../media/d4cfff78d70c32f1-s.0.f_03yjeizj3.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Pro;font-style:italic;font-weight:600;font-display:swap;src:url(../media/edd49e6a728081e1-s.0nec83w9a499y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Pro;font-style:italic;font-weight:600;font-display:swap;src:url(../media/a41eab1df8ed80c4-s.p.05m5kcrbsr6xs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bbe2082c2ebf69de-s.0tj914n-9wmjl.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9ae69ccf0a67f3e4-s.07rqilbxje11w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/115e7a2565b70400-s.p.0ldth1faq2ch-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/bbe2082c2ebf69de-s.0tj914n-9wmjl.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9ae69ccf0a67f3e4-s.07rqilbxje11w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/115e7a2565b70400-s.p.0ldth1faq2ch-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Pro Fallback;src:local(Times New Roman);ascent-override:90.96%;descent-override:21.8%;line-gap-override:0.0%;size-adjust:98.56%}.crimson_pro_1bf537d-module__CL2KjW__className{font-family:Crimson Pro,Crimson Pro Fallback}.crimson_pro_1bf537d-module__CL2KjW__variable{--font-narration:"Crimson Pro", "Crimson Pro Fallback"}
:root{--accent-rgb:139, 92, 246;--gold-rgb:251, 191, 36;--danger-rgb:239, 68, 68;--background:#0a0d1a;--foreground:#f1f5f9;--primary:#8b5cf6;--primary-hover:#7c3aed;--primary-glow:rgba(var(--accent-rgb), .35);--secondary:#f59e0b;--accent:#10b981;--danger:#ef4444;--card-bg:#161e32bf;--card-bg-hover:#1c263cd9;--border:#ffffff17;--border-hover:#ffffff2e;--muted:#64748b;--subtle:#94a3b8;--glass-shadow:0 8px 40px 0 #00000080;--glass-blur:blur(14px);--radius:12px;--radius-sm:8px;--gold:#d4a96a;--gold-soft:#d4a96a73;--gold-glow:#d4a96a47;--grain:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='200'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.8'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.13%200'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'/%3E%3C/svg%3E");--canvas-bg:var(--grain), radial-gradient(120% 90% at 16% -8%, rgba(var(--accent-rgb),.18), transparent 52%), radial-gradient(110% 80% at 92% 108%, #d4af371c, transparent 55%), radial-gradient(150% 130% at 50% 42%, transparent 46%, #00000094), linear-gradient(160deg, #13142e 0%, #0a0b1a 58%, #0e1126 100%);--canvas-side-bg:var(--grain), radial-gradient(130% 70% at 100% -6%, rgba(var(--accent-rgb),.18), transparent 58%), radial-gradient(120% 60% at 0% 100%, #d4af3714, transparent 60%), radial-gradient(150% 130% at 50% 50%, transparent 50%, #0000008c), linear-gradient(180deg, #1d2442 0%, #11162b 100%);--text-on-canvas:#e2e8f0;--text-on-canvas-dim:#94a3b8;--inset-bg:#00000040;--accent-strong:#c4b5fd;--text-on-canvas-faint:#64748b}[data-theme=light]{--background:#efe7d6;--foreground:#2a2520;--canvas-bg:var(--grain), radial-gradient(120% 90% at 16% -8%, #96642824, transparent 58%), radial-gradient(110% 80% at 92% 108%, #6e509617, transparent 60%), radial-gradient(150% 130% at 50% 46%, transparent 60%, #5c401a21), linear-gradient(160deg, #f4ecdb 0%, #ece1ca 58%, #f1e7cf 100%);--canvas-side-bg:var(--grain), radial-gradient(130% 70% at 100% -6%, #96642821, transparent 62%), radial-gradient(150% 130% at 50% 50%, transparent 60%, #5c401a24), linear-gradient(180deg, #f0e5cc 0%, #e4d8bc 100%);--text-on-canvas:#2c2620;--text-on-canvas-dim:#6b5f4d;--text-on-canvas-faint:#8a7d66}.campaign-root{--pane-card:#0000004d;--pane-card-border:var(--border);--pane-bubble:rgba(var(--accent-rgb),.15);--pane-bubble-border:rgba(var(--accent-rgb),.3);--pane-input:#00000080;--pane-btn:#ffffff0d;--pane-action:#6366f11a;--pane-action-border:#6366f166;--pane-action-text:#a5b4fc;--suggestion-bg:rgba(var(--accent-rgb),.06);--suggestion-bg-hover:rgba(var(--accent-rgb),.18);--suggestion-border:rgba(var(--accent-rgb),.25);--suggestion-text:#cbd5e1;--on-pane:#f1f5f9;--on-pane-dim:#9aa4b4;--on-pane-faint:#76808f;--dm-name:#a78bfa}.campaign-root[data-theme=light]{--pane-card:#1b1628f5;--pane-card-border:#785a2866;--pane-bubble:#211b34f9;--pane-bubble-border:#a080dc99;--pane-input:#191426fa;--pane-btn:#2e283cf5;--pane-action:#3c3460f5;--pane-action-border:#a080dc8c;--pane-action-text:#d6cdf5;--suggestion-bg:#2e2642f7;--suggestion-bg-hover:#423660fc;--suggestion-border:#9678d273;--suggestion-text:#ece4d4;--on-pane:#f5f0e7;--on-pane-dim:#cabfa8;--on-pane-faint:#ab9f86;--dm-name:#6d28d9}.campaign-root [data-chat-input]::placeholder{color:var(--on-pane-dim);opacity:.85}.themed-page[data-theme=light]{--card-bg:#fffaf2f0;--card-bg-hover:#fffcf6fa;--border:#5a44262e;--border-hover:#5a442657;--foreground:#211c16;--subtle:#463c2d;--muted:#5e5340;--inset-bg:#785a2812;--glass-shadow:0 8px 40px 0 #785a282e;--accent-strong:#5b21b6}.dashboard-root[data-theme=light]{--foreground:#f1f5f9}.dashboard-root[data-theme=light] .nav-pill{background:linear-gradient(#ffffff0f 0%,#fff0 60%),#161222c7}.dashboard-root[data-theme=light] .btn-secondary{background:linear-gradient(#ffffff0d 0%,#fff0 60%),#181428c7}.dashboard-root[data-theme=light] .btn-secondary:hover:not(:disabled){background:linear-gradient(#ffffff14 0%,#fff0 60%),#201b36db}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:clamp(15px,1vw,22px)}body{background:var(--background);color:var(--foreground);font-family:var(--font-geist-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;background-image:radial-gradient(80% 40% at 50% -10%,#1e1b4b 0%,#0000 60%),radial-gradient(60% 30% at 80% 80%,#0f172a 0%,#0000 50%);min-height:100vh;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}:focus{outline:none}:focus-visible{outline-offset:2px;border-radius:4px;transition:outline-color .12s,box-shadow .12s;box-shadow:0 0 0 4px #d4a96a2e, 0 0 18px rgba(var(--accent-rgb), .45)!important;outline:2px solid #d4a96a!important}button:focus-visible,a:focus-visible,[role=button]:focus-visible{border-radius:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--foreground);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{outline:none;box-shadow:0 0 0 3px #d4a96a2e,0 0 18px #d4a96a29;border-color:var(--gold)!important}input::placeholder,textarea::placeholder{color:var(--muted)}.glass-panel{background:linear-gradient(180deg, #ffffff0a 0%, #fff0 18%, #0000000f 100%), var(--card-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius);box-shadow:inset 0 1px 0 #ffffff0f, var(--glass-shadow)}.badge-hover{transition:transform .2s,box-shadow .2s}.badge-hover:hover{transform:translateY(-2px);box-shadow:0 8px 28px #00000080!important}.hero-img-panel{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1;width:46%;position:absolute;top:0;bottom:0}.hero-img-left{left:0}.hero-img-right{right:0}.hero-fade-right,.hero-fade-left{pointer-events:none;position:absolute;inset:0}.hero-fade-right{background:linear-gradient(to right, transparent 30%, var(--background) 92%)}.hero-fade-left{background:linear-gradient(to left, transparent 30%, var(--background) 92%)}@media (max-width:860px){.hero-img-panel{display:none}}.portrait-card{background:#0f1428cc;border:1px solid #ffffff17;border-radius:16px;flex-shrink:0;width:clamp(170px,16vw,240px);transition:transform .3s,box-shadow .3s;overflow:hidden;box-shadow:0 10px 38px #0000008c}.portrait-card:hover{transform:translateY(-10px)scale(1.04);box-shadow:0 24px 56px #000000b3}.portrait-ring{border-radius:50%;flex-shrink:0;width:clamp(140px,12vw,200px);height:clamp(140px,12vw,200px);transition:transform .3s,box-shadow .3s;overflow:hidden}.portrait-ring:hover{transform:translateY(-8px)scale(1.08)}.feature-card-lg{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:16px;padding:36px 28px;transition:border-color .25s,transform .25s,box-shadow .25s;display:flex}.feature-card-lg:hover{border-color:rgba(var(--accent-rgb), .45);transform:translateY(-5px);box-shadow:0 24px 60px #000000a6}.step-card{text-align:left;padding:48px 40px;transition:border-color .2s,transform .2s;position:relative;overflow:hidden}.step-card:hover{border-color:rgba(var(--accent-rgb), .35);transform:translateY(-4px)}.glass-panel-hover{transition:border-color .2s,box-shadow .2s}.glass-panel-hover:hover{border-color:var(--gold-soft);box-shadow:inset 0 1px 0 #ffffff17, 0 12px 48px 0 #0009, 0 0 24px var(--gold-glow)}.btn-primary{color:#fff;border-radius:var(--radius-sm);letter-spacing:.01em;cursor:pointer;text-shadow:0 1px 2px #00000059;box-shadow:inset 0 1px 0 #ffffff2e, inset 0 -1px 0 #0000004d, 0 4px 16px 0 var(--primary-glow);white-space:nowrap;background:linear-gradient(#ffffff1a 0%,#fff0 50%),linear-gradient(135deg,#8b5cf6 0%,#7c3aed 55%,#6d28d9 100%);border:1px solid #ffffff14;padding:.9rem 1.6rem;font-size:1.1rem;font-weight:600;transition:transform .15s,box-shadow .18s,border-color .18s,opacity .15s;position:relative;overflow:hidden}.btn-primary:before{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 25%,#ffffff38 50%,#0000 75%);transition:transform .7s;position:absolute;inset:0;transform:translate(-130%)}.btn-cta{color:#fff;letter-spacing:.02em;cursor:pointer;white-space:nowrap;text-shadow:0 1px 2px #0006;background:linear-gradient(#ffffff14 0%,#fff0 45%),linear-gradient(135deg,#7c3aed 0%,#6d28d9 55%,#4c1d95 100%);border:1px solid #d4a96a73;border-radius:10px;justify-content:center;align-items:center;gap:.5em;padding:.78rem 1.6rem;font-size:1.05rem;font-weight:700;transition:transform .18s,box-shadow .18s,border-color .18s;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff2e,inset 0 -1px #00000059,0 6px 18px #7c3aed73,0 0 0 1px #4c1d9599}.btn-cta:before{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 25%,#ffffff47 50%,#0000 75%);transition:transform .7s;position:absolute;inset:0;transform:translate(-130%)}.btn-cta:hover:not(:disabled){border-color:#d4a96ad9;transform:translateY(-2px);box-shadow:inset 0 1px #ffffff38,inset 0 -1px #00000059,0 10px 28px #7c3aeda6,0 0 22px #d4a96a40,0 0 0 1px #4c1d95b3}.btn-cta:hover:not(:disabled):before{transform:translate(130%)}.btn-cta:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 1px #ffffff1f,inset 0 2px 6px #0006,0 3px 10px #7c3aed59}.btn-cta:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-cta-plus{text-align:center;color:#fde68a;text-shadow:0 0 8px #fde68aa6;width:1.05em;height:1.05em;font-weight:900;line-height:1;display:inline-block}.nav-bar{position:relative}.nav-bar:after{content:"";background:linear-gradient(90deg, transparent 0%, #d4a96a59 18%, rgba(var(--accent-rgb), .45) 50%, #d4a96a59 82%, transparent 100%);pointer-events:none;opacity:.7;height:1px;position:absolute;bottom:-18px;left:0;right:0}.nav-pill{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);background:linear-gradient(#ffffff0d 0%,#fff0 60%),#0f0d208c;border-radius:40px;align-items:center;gap:12px;padding:8px 20px 8px 8px;transition:border-color .2s,box-shadow .2s;display:inline-flex;box-shadow:inset 0 1px #ffffff0f,0 4px 14px #00000047}.nav-pill:hover{border-color:var(--gold-soft);box-shadow:inset 0 1px 0 #ffffff14, 0 4px 16px #00000052, 0 0 14px var(--gold-glow)}.nav-brand{align-items:center;gap:10px;font-weight:700;display:inline-flex}.nav-brand-mark{color:var(--primary);text-shadow:0 0 14px rgba(var(--accent-rgb), .7), 0 0 28px rgba(var(--accent-rgb), .35);justify-content:center;align-items:center;font-size:1.05em;animation:3.6s ease-in-out infinite brandPulse;display:inline-flex}@keyframes brandPulse{0%,to{text-shadow:0 0 14px rgba(var(--accent-rgb), .7), 0 0 28px rgba(var(--accent-rgb), .35)}50%{text-shadow:0 0 22px #d4a96a8c, 0 0 38px rgba(var(--accent-rgb), .55)}}.d20-glow{filter:drop-shadow(0 0 7px rgba(var(--accent-rgb),.6)) drop-shadow(0 0 15px rgba(var(--accent-rgb),.28));animation:3.6s ease-in-out infinite d20Pulse}@keyframes d20Pulse{0%,to{filter:drop-shadow(0 0 7px rgba(var(--accent-rgb),.6)) drop-shadow(0 0 15px rgba(var(--accent-rgb),.28))}50%{filter:drop-shadow(0 0 11px #d4a96a80) drop-shadow(0 0 22px rgba(var(--accent-rgb),.5))}}@media (prefers-reduced-motion:reduce){.d20-glow{animation:none}}@keyframes chatHintGlow{0%,to{box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb), .25), 0 0 12px rgba(var(--accent-rgb), .25), 0 0 28px rgba(var(--accent-rgb), .12)}50%{box-shadow:inset 0 0 0 1px #d4a96a59, 0 0 22px #d4a96a52, 0 0 48px rgba(var(--accent-rgb), .28)}}.chat-hint-glow{animation:3.2s ease-in-out infinite chatHintGlow}.btn-dismiss{background:linear-gradient(180deg, #ffffff14 0%, #fff0 60%), rgba(var(--accent-rgb), .12);color:#c4b5fd;border:1px solid rgba(var(--accent-rgb), .35);letter-spacing:.04em;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:5px 12px;font-size:.72rem;font-weight:600;transition:background .18s,border-color .18s,color .18s,transform .15s,box-shadow .18s;display:inline-flex;box-shadow:inset 0 1px #ffffff14,0 2px 8px #00000040}.btn-dismiss:hover{color:#fff;background:linear-gradient(180deg, #ffffff1f 0%, #fff0 60%), rgba(var(--accent-rgb), .28);border-color:var(--gold-soft);box-shadow:inset 0 1px 0 #ffffff24, 0 4px 14px rgba(var(--accent-rgb), .35), 0 0 14px var(--gold-glow);transform:translateY(-1px)}.btn-dismiss:active{transform:translateY(0);box-shadow:inset 0 2px 5px #0000004d,0 1px 3px #0003}.btn-dismiss-check{color:#fde68a;text-shadow:0 0 6px #fde68a99;font-size:.85em;font-weight:800}body.dice-modal-open .tooltip-size-toolbar{display:none!important}.btn-primary:hover:not(:disabled){box-shadow:inset 0 1px 0 #ffffff38, inset 0 -1px 0 #0000004d, 0 8px 26px 0 rgba(var(--accent-rgb), .6), 0 0 18px var(--gold-glow);border-color:#d4a96a8c;transform:translateY(-2px)}.btn-primary:hover:not(:disabled):before{transform:translate(130%)}.btn-primary:active:not(:disabled){box-shadow:inset 0 1px 0 #ffffff1f, inset 0 2px 6px #00000059, 0 2px 8px 0 var(--primary-glow);transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary>*{z-index:1;position:relative}.btn-secondary{color:var(--foreground);border-radius:var(--radius-sm);border:1px solid var(--border);letter-spacing:.01em;cursor:pointer;-webkit-backdrop-filter:blur(6px);white-space:nowrap;background:linear-gradient(#ffffff0a 0%,#fff0 60%),#1412268c;padding:.9rem 1.6rem;font-size:1.1rem;font-weight:600;transition:background .18s,border-color .18s,box-shadow .18s,transform .15s;box-shadow:inset 0 1px #ffffff0f,0 2px 10px #00000040}.btn-secondary:hover:not(:disabled){border-color:var(--gold-soft);box-shadow:inset 0 1px 0 #ffffff1a, 0 4px 18px #00000059, 0 0 14px var(--gold-glow);background:linear-gradient(#ffffff12 0%,#fff0 60%),#1c1834b3;transform:translateY(-1px)}.btn-secondary:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 1px 4px #0000004d,0 1px 4px #00000040}.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-danger{background:linear-gradient(180deg, #ffffff0f 0%, #fff0 55%), linear-gradient(135deg, rgba(var(--danger-rgb), .18) 0%, #7f1d1d47 100%);color:#fca5a5;border-radius:var(--radius-sm);border:1px solid rgba(var(--danger-rgb), .4);letter-spacing:.01em;cursor:pointer;text-shadow:0 1px 2px #00000073;padding:.6rem 1.2rem;font-size:1rem;font-weight:600;transition:background .18s,border-color .18s,box-shadow .18s,transform .15s,color .15s;box-shadow:inset 0 1px #ffffff12,0 2px 10px #7f1d1d4d}.btn-danger:hover:not(:disabled){color:#fee2e2;background:linear-gradient(180deg, #ffffff1a 0%, #fff0 55%), linear-gradient(135deg, rgba(var(--danger-rgb), .32) 0%, #7f1d1d73 100%);border-color:rgba(var(--danger-rgb), .7);box-shadow:inset 0 1px 0 #ffffff1f, 0 6px 18px rgba(var(--danger-rgb), .4), 0 0 14px rgba(var(--danger-rgb), .25);transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 2px 6px #00000059,0 1px 4px #7f1d1d4d}.btn-danger:disabled{opacity:.5;cursor:not-allowed;transform:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#ffffff05;border-radius:6px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg, rgba(var(--accent-rgb), .45) 0%, #4c1d958c 100%);border:1px solid #ffffff0f;border-radius:6px;box-shadow:inset 0 1px #ffffff1f}::-webkit-scrollbar-thumb:hover{border-color:var(--gold-soft);background:linear-gradient(#a78bfaa6 0%,#6d28d9b3 100%)}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.animate-float{animation:6s ease-in-out infinite float}@keyframes bounce{0%,80%,to{opacity:.7;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.6s ease-out forwards fadeIn}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.pc-char{image-rendering:pixelated;display:inline-block}@keyframes pc-march{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes pc-float{0%,to{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-5px)}}@keyframes pc-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes pc-lurk{0%,65%,to{transform:translateY(0)}30%{transform:translateY(-4px)scaleY(.97)}}@keyframes pc-groove{0%,to{transform:rotate(-2deg)translateY(0)}25%{transform:rotate(0)translateY(-3px)}50%{transform:rotate(2deg)translateY(0)}75%{transform:rotate(0)translateY(-3px)}}@keyframes pc-drift{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.02)}}.pc-anim-fighter{animation:1.8s ease-in-out infinite pc-march}.pc-anim-wizard{animation:3.2s ease-in-out infinite pc-float}.pc-anim-rogue{animation:1.4s ease-in-out infinite pc-lurk}.pc-anim-cleric{animation:2.5s ease-in-out infinite pc-idle}.pc-anim-paladin{animation:2s ease-in-out infinite pc-march}.pc-anim-ranger{animation:2.2s ease-in-out infinite pc-idle}.pc-anim-bard{animation:.85s ease-in-out infinite pc-groove}.pc-anim-warlock{animation:4s ease-in-out infinite pc-drift}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes crownPulse{0%,to{filter:drop-shadow(0 0 6px rgba(var(--gold-rgb),.9)) drop-shadow(0 0 14px rgba(var(--gold-rgb),.5));transform:scale(1)}50%{filter:drop-shadow(0 0 10px rgba(var(--gold-rgb),1)) drop-shadow(0 0 22px rgba(var(--gold-rgb),.7));transform:scale(1.15)}}@keyframes activePlayerRise{0%,to{box-shadow:0 0 18px rgba(var(--card-rgb),.45), 0 0 40px rgba(var(--card-rgb),.2);transform:translateY(0)}50%{box-shadow:0 0 28px rgba(var(--card-rgb),.65), 0 0 56px rgba(var(--card-rgb),.3);transform:translateY(-3px)}}@keyframes targetedEnemy{0%,to{box-shadow:0 0 14px rgba(var(--danger-rgb),.5), 0 0 28px rgba(var(--danger-rgb),.2)}50%{box-shadow:0 0 24px rgba(var(--danger-rgb),.8), 0 0 50px rgba(var(--danger-rgb),.4)}}@keyframes diceTargetGlow{0%,to{box-shadow:0 0 10px rgba(var(--gold-rgb),.7), 0 0 22px rgba(var(--gold-rgb),.35)}50%{box-shadow:0 0 20px rgba(var(--gold-rgb),1), 0 0 42px rgba(var(--gold-rgb),.6)}}@keyframes diceCardRise{0%,to{box-shadow:0 0 18px rgba(var(--gold-rgb),.45), 0 0 40px rgba(var(--gold-rgb),.2);transform:translateY(0)}50%{box-shadow:0 0 30px rgba(var(--gold-rgb),.7), 0 0 60px rgba(var(--gold-rgb),.35);transform:translateY(-3px)}}@keyframes abilityFlash{0%{opacity:0;transform:scale(.6)}25%{opacity:1;transform:scale(1.05)}to{opacity:0;transform:scale(1.25)}}@keyframes spellHealPulse{0%{opacity:0;transform:scale(.6)}20%{opacity:1;transform:scale(1.05)}60%{opacity:.8;transform:scale(1.2)}to{opacity:0;transform:scale(1.45)}}@keyframes spellHealSparkle{0%{opacity:0;transform:translateY(8px)scale(.5)}30%{opacity:1;transform:translateY(-2px)scale(1.1)}to{opacity:0;transform:translateY(-18px)scale(.6)}}@keyframes spellDamageStrike{0%{opacity:0;transform:scale(.4)rotate(-8deg)}18%{opacity:1;transform:scale(1.12)rotate(2deg)}45%{opacity:.7;transform:scale(1.05)rotate(-2deg)}to{opacity:0;transform:scale(1.18)rotate(0)}}@keyframes spellDamageShake{0%,to{transform:translate(0)}10%{transform:translate(-3px)}20%{transform:translate(3px)}30%{transform:translate(-2px)}40%{transform:translate(2px)}50%{transform:translate(-1px)}}@keyframes spellBuffAura{0%{opacity:0;transform:scale(.7)}30%{opacity:1;transform:scale(1.08)}to{opacity:0;transform:scale(1.35)}}@keyframes spellFireRoar{0%{opacity:0;filter:brightness(1.4);transform:scale(.5)translateY(6px)}20%{opacity:1;filter:brightness(1.9);transform:scale(1.15)translateY(-4px)}60%{opacity:.75;filter:brightness(1.5);transform:scale(1.08)translateY(0)}to{opacity:0;filter:brightness();transform:scale(1.25)translateY(-8px)}}@keyframes spellColdFreeze{0%{opacity:0;filter:hue-rotate();transform:scale(.5)}25%{opacity:1;filter:hue-rotate(-10deg)brightness(1.3);transform:scale(1.06)}to{opacity:0;filter:hue-rotate()brightness();transform:scale(1.18)}}@keyframes spellLightningCrackle{0%,to{opacity:0}10%,30%,50%{opacity:1}20%,40%,60%{opacity:.3}70%{opacity:.6}}@keyframes spellThunderPush{0%{opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(2)}}@keyframes spellPoisonSwirl{0%{opacity:0;transform:scale(.6)rotate(0)}30%{opacity:1;transform:scale(1.1)rotate(45deg)}to{opacity:0;transform:scale(1.3)rotate(180deg)}}@keyframes spellRadiantBeam{0%{opacity:0;transform:scaleY(.3)translateY(20px)}25%{opacity:1;transform:scaleY(1.1)translateY(0)}70%{opacity:.6;transform:scaleY(1)translateY(0)}to{opacity:0;transform:scaleY(1.2)translateY(-10px)}}@keyframes spellNecroticDrain{0%{opacity:0;filter:saturate();transform:scale(1.2)}20%{opacity:1;filter:saturate(.4)brightness(.85);transform:scale(1)}to{opacity:0;filter:saturate()brightness();transform:scale(.85)}}@keyframes spellForceBlast{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1.5)}}@keyframes spellPsychicWaver{0%,to{opacity:0;filter:hue-rotate()blur()}20%,80%{opacity:.9;filter:hue-rotate(15deg)blur(.5px)}50%{opacity:1;filter:hue-rotate(-15deg)blur(1px)}}@keyframes spellEnchantSpiral{0%{opacity:0;transform:scale(.5)rotate(0)}30%{opacity:1;transform:scale(1.05)rotate(180deg)}to{opacity:0;transform:scale(1.3)rotate(360deg)}}@keyframes cardLiftOff{0%{opacity:1;filter:brightness()drop-shadow(0 0 #c4b5fd00);transform:translateY(0)scale(1)rotate(0)}35%{opacity:1;filter:brightness(1.3)drop-shadow(0 0 16px #c4b5fde6);transform:translateY(-30px)scale(1.06)rotate(-3deg)}to{opacity:0;filter:brightness(1.45)drop-shadow(0 0 24px #c4b5fd);transform:translateY(-58px)scale(.84)rotate(9deg)}}.card-liftoff{transform-origin:50%;will-change:transform, opacity, filter;animation:.8s cubic-bezier(.33,0,.3,1) forwards cardLiftOff}@keyframes cardDropIn{0%{opacity:0;filter:brightness(1.35)drop-shadow(0 0 18px #c4b5fdd9);transform:translateY(-52px)scale(.8)rotate(-360deg)}55%{opacity:1;filter:brightness(1.1)drop-shadow(0 0 8px #c4b5fd66);transform:translateY(5px)scale(1.035)rotate(0)}76%{opacity:1;transform:translateY(-2px)scale(.99)rotate(0)}to{opacity:1;filter:brightness()drop-shadow(0 0 #c4b5fd00);transform:translateY(0)scale(1)rotate(0)}}.card-dropin{transform-origin:50%;will-change:transform, opacity, filter;animation:1s cubic-bezier(.32,1.18,.5,1) forwards cardDropIn}.card-sparkles{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:visible}.card-sparkles:before,.card-sparkles:after{content:"";background:#fff;border-radius:50%;width:3px;height:3px;animation:.7s ease-out forwards sparkleRise;position:absolute;top:50%;left:50%}.card-sparkles:before{box-shadow:-70px -18px #fff,64px -8px #e9d5ff,-40px 14px 0 -.5px #fde68a,52px 20px #c4b5fd,-88px 6px 0 -.5px #f5d0fe,30px -28px #fff,-14px -34px 0 -.5px #ddd6fe}.card-sparkles:after{animation-delay:.12s;box-shadow:78px 6px #fff,-58px -6px #fde68a,18px 26px 0 -.5px #e9d5ff,-30px -24px #c4b5fd,90px -14px 0 -.5px #fff,-78px 18px #f5d0fe,44px 32px 0 -.5px #ddd6fe}@keyframes sparkleRise{0%{opacity:0;transform:translateY(8px)scale(.5)}30%{opacity:1;transform:translateY(0)scale(1.1)}to{opacity:0;transform:translateY(-30px)scale(.6)}}@keyframes objectiveGlow{0%,to{border-color:#e5c25a80;box-shadow:0 0 6px #d4af3742}50%{border-color:#f5e8aaf2;box-shadow:0 0 18px 2px #f0d2789e}}@keyframes objectiveShimmer{0%{transform:translate(-160%)}to{transform:translate(160%)}}.objective-current{animation:2.4s ease-in-out infinite objectiveGlow;position:relative;overflow:hidden}.objective-current:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(105deg,#0000 0%,#f5e8aa3d 50%,#0000 100%);width:60%;animation:2.8s ease-in-out infinite objectiveShimmer;position:absolute;top:0;bottom:0;left:0}@keyframes shimmerText{0%{background-position:200%}to{background-position:-200%}}@keyframes objectiveBannerAnim{0%{opacity:0;transform:scale(.86)translateY(18px)}14%{opacity:1;transform:scale(1)translateY(0)}76%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(1.05)translateY(-14px)}}.objective-banner-text{background:linear-gradient(#fff7d6 0%,#f6d873 30%,#e8c258 54%,#c8962e 78%,#9c6f1e 100%);-webkit-text-fill-color:transparent;color:#0000;filter:drop-shadow(0 2px 3px #000000a6)drop-shadow(0 0 18px #d4af378c)drop-shadow(0 0 42px #d4af3752);-webkit-background-clip:text;background-clip:text}@keyframes revealCharFade{0%{opacity:0}to{opacity:1}}@keyframes dndTitleReveal{0%{opacity:0;transform:scale(.86)translateY(18px)}55%{opacity:1;transform:scale(1)translateY(0)}to{opacity:1;transform:scale(1)translateY(0)}}.dnd-title-reveal{animation:1.1s cubic-bezier(.2,.9,.3,1) both dndTitleReveal}@keyframes dndTitleGlow{0%,to{filter:drop-shadow(0 2px 3px #000000a6)drop-shadow(0 0 18px #d4af378c)drop-shadow(0 0 42px #d4af374d)}50%{filter:drop-shadow(0 2px 3px #000000a6)drop-shadow(0 0 28px #ffe18cd9)drop-shadow(0 0 64px #d4af3780)}}.dnd-title-sheen{animation:4.6s ease-in-out 1.1s infinite dndTitleGlow}.dnd-sparkle-layer{pointer-events:none;position:absolute;inset:-24% -12%}.dnd-sparkle{color:#fff6d0;opacity:0;text-shadow:0 0 6px #fea,0 0 18px #ffcd5ae6,0 0 34px #d4af3799;will-change:transform, opacity;font-size:clamp(.95rem,2vw,1.6rem);animation:3.6s ease-in-out infinite dndSparkle;position:absolute;transform:scale(0)}@keyframes dndSparkle{0%{opacity:0;transform:scale(0)translateY(4px)rotate(0)}20%{opacity:1;transform:scale(calc(var(--sp-scale,1) * 1.1)) translateY(0) rotate(35deg)}50%{opacity:.9;transform:scale(calc(var(--sp-scale,1) * .8)) translateY(-3px) rotate(80deg)}72%{opacity:0;transform:scale(.18)translateY(-7px)rotate(120deg)}to{opacity:0;transform:scale(0)translateY(-7px)rotate(150deg)}}@keyframes dndSparkleSoft{0%,to{opacity:.12}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.dnd-title-reveal{animation:none}.dnd-title-sheen{animation:4.6s ease-in-out infinite dndTitleGlow}.dnd-sparkle{animation:2.6s ease-in-out infinite dndSparkleSoft;transform:scale(.9)}}@media (max-width:900px){.hide-on-narrow{display:none!important}}@keyframes dmOrbPulse{0%,to{box-shadow:0 0 30px rgba(var(--accent-rgb),.3), 0 0 70px rgba(var(--accent-rgb),.1)}50%{box-shadow:0 0 60px rgba(var(--accent-rgb),.55), 0 0 120px rgba(var(--accent-rgb),.2)}}@keyframes dmOrbSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.shimmer-heading{background:linear-gradient(120deg,#fff 15%,#c4b5fd 35%,#f59e0b 50%,#c4b5fd 65%,#fff 85%) 0 0/300%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:9s linear infinite shimmerText}@media (max-width:768px){.campaign-root .campaign-sidebar{width:min(46vw,270px)!important}.campaign-root .objectives-tracker{width:min(300px,74%)!important}}@media (max-width:480px){.campaign-root .campaign-sidebar{width:44vw!important}.campaign-root .objectives-tracker{width:min(240px,80%)!important}}@keyframes rollToastPop{0%{opacity:0;transform:translate(-50%,-40%)scale(.55)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.14)}30%{transform:translate(-50%,-50%)scale(1)}78%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-58%)scale(.94)}}@keyframes rollToastShake{0%,to{margin-left:0}15%{margin-left:-9px}30%{margin-left:8px}45%{margin-left:-6px}60%{margin-left:5px}75%{margin-left:-3px}88%{margin-left:2px}}.roll-toast{animation:1.5s ease-out forwards rollToastPop}.roll-toast-crit{animation:2.3s ease-out forwards rollToastPop}.roll-toast-fumble{animation:2.3s ease-out forwards rollToastPop,.55s ease-in-out rollToastShake}@keyframes hpFloatUp{0%{opacity:0;translate:0 6px;scale:.8}12%{opacity:1;translate:0;scale:1.12}25%{scale:1}to{opacity:0;translate:0 -46px;scale:.96}}.hp-floater{animation:1.65s ease-out forwards hpFloatUp}@keyframes turnRibbonIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.turn-ribbon{animation:.35s ease-out turnRibbonIn}@media (prefers-reduced-motion:reduce){.roll-toast,.roll-toast-crit,.roll-toast-fumble{animation:1.5s ease-out forwards rollToastPop}.hp-floater{animation-duration:1s}.turn-ribbon{animation:none}}@keyframes kenBurns{0%{transform:scale(1)translate(0)}to{transform:scale(1.07)translate(-.8%,-1.2%)}}.scene-layer{transform-origin:50%;will-change:transform;animation:1.2s fadeIn,60s ease-in-out infinite alternate kenBurns}.dm-narration{font-family:var(--font-narration), Georgia, "Iowan Old Style", "Palatino Linotype", serif;letter-spacing:.008em}@media (prefers-reduced-motion:reduce){.scene-layer{animation:1.2s fadeIn}}.perf-mode .scene-layer{will-change:auto;animation:1.2s fadeIn}.perf-mode{--pm-backdrop:none}.perf-mode [style*=backdrop]{-webkit-backdrop-filter:var(--pm-backdrop)!important;backdrop-filter:var(--pm-backdrop)!important}@keyframes nearLevelPulse{0%,to{box-shadow:0 0 0 1px rgba(var(--gold-rgb),.35), 0 0 18px rgba(var(--gold-rgb),.12)}50%{box-shadow:0 0 0 1px rgba(var(--gold-rgb),.6), 0 0 26px rgba(var(--gold-rgb),.28)}}.near-level-up{animation:2.6s ease-in-out infinite nearLevelPulse}@media (prefers-reduced-motion:reduce){.near-level-up{box-shadow:0 0 0 1px rgba(var(--gold-rgb),.45);animation:none}}
