:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box}body{color:#f5edf8;background:#100b18;margin:0;font-family:Arial,sans-serif}.app{max-width:1300px;margin:auto;padding:24px}header{background:linear-gradient(135deg,#211331,#3d1f5c);border-radius:18px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:24px;display:flex}h1,h2{margin-top:0}button{cursor:pointer;color:#fff;background:#332044;border:0;border-radius:10px;padding:10px 14px;font-weight:700}button:hover,button.active{background:#8d4dff}.primary{background:#8d4dff;width:100%;margin-top:12px}.tabs{gap:10px;display:flex}.scene-card{background:#1b1226;border:1px solid #3d2a50;border-radius:18px;grid-template-columns:420px 1fr;gap:22px;margin-bottom:20px;padding:18px;display:grid}.scene-image{background:#0b0710;border-radius:14px;min-height:240px;overflow:hidden}.scene-image img{object-fit:cover;width:100%;height:100%}.test-box{background:#2b1b3d;border-radius:12px;gap:6px;margin-top:20px;padding:14px;display:grid}.grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;display:grid}.panel{background:#1b1226;border:1px solid #3d2a50;border-radius:18px;padding:18px}label{color:#d8c8e8;gap:5px;margin-bottom:10px;font-size:14px;display:grid}input,textarea{color:#fff;background:#100b18;border:1px solid #4b3462;border-radius:10px;width:100%;padding:10px}textarea{min-height:120px}.dice{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.dice button{min-height:70px;font-size:22px}.scene-button{text-align:left;width:100%;margin-bottom:8px}.item,.roll{background:#251733;border-radius:12px;gap:4px;margin-bottom:8px;padding:12px;display:grid}.success{border-left:5px solid #42d66b}.fail{border-left:5px solid #ff4f6d}.mj-message{background:#8d4dff;border-radius:12px;margin-bottom:18px;padding:14px;font-weight:700}@media (width<=900px){header,.scene-card,.grid{grid-template-columns:1fr;display:grid}}h1,h2,h3,p,span,strong,small,label{color:#f5edf8}input,textarea{color:#fff}input::placeholder,textarea::placeholder{color:#bfaed8}select{color:#fff;background:#100b18;border:1px solid #4b3462;border-radius:10px;width:100%;padding:10px}.character-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;display:grid}.character-form .wide{grid-column:1/-1}.creation-page{margin-bottom:18px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.panel-heading p{color:#d8c8e8}.character-summary{gap:8px;display:grid}.login-panel{max-width:520px;margin:0 auto 18px}.login-panel p{color:#d8c8e8;margin-bottom:16px}.error-message{color:#ffd6de;background:#ff4f6d2e;border:1px solid #ff4f6d;border-radius:10px;margin:10px 0;padding:10px}@media (width<=700px){.character-form{grid-template-columns:1fr}.panel-heading{display:grid}}.ai-response{white-space:pre-wrap;background:#251733;border:1px solid #4b3462;border-radius:12px;margin-top:15px;padding:15px}.ai-response h3{color:#f5edf8;margin:0 0 10px}.ai-response p{color:#f5edf8;margin:0;line-height:1.5}.dice-3d-grid{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.dice-3d{perspective:900px;cursor:pointer;background:0 0;border:0;width:82px;height:82px;padding:0}.dice-inner{width:100%;height:100%;transform-style:preserve-3d;background:radial-gradient(circle at 30% 20%,#ffffff52,#0000 24%),linear-gradient(145deg,#a76bff 0%,#7b38e8 45%,#351250 100%);border-radius:20px;place-items:center;transition:transform .35s,box-shadow .35s,filter .35s;display:grid;position:relative;box-shadow:0 16px 28px #00000059,0 0 24px #8d4dff80,inset 0 2px 8px #ffffff38,inset 0 -8px 14px #00000047}.dice-inner:before,.dice-inner:after{content:"";pointer-events:none;border:1px solid #ffffff2e;border-radius:16px;position:absolute;inset:10px;transform:translateZ(14px)}.dice-inner:after{border-color:#ffffff17;inset:18px;transform:translateZ(24px)rotate(45deg)}.dice-face{z-index:1;color:#fff;text-shadow:0 2px 4px #0000008c,0 0 12px #ffffff47;font-size:23px;font-weight:900;position:relative;transform:translateZ(34px)}.dice-3d:hover .dice-inner,.dice-3d:focus-visible .dice-inner{filter:brightness(1.08);transform:rotateX(24deg)rotateY(-28deg)scale(1.08);box-shadow:0 20px 34px #0000006b,0 0 34px #ae76ffbf,inset 0 2px 10px #ffffff47,inset 0 -8px 14px #0000004d}.dice-3d:active .dice-inner{animation:.75s cubic-bezier(.19,.85,.31,1.18) diceRoll3d}@keyframes diceRoll3d{0%{transform:rotateX(0)rotateY(0)rotate(0)scale(1)}45%{transform:rotateX(360deg)rotateY(240deg)rotate(35deg)scale(1.16)}to{transform:rotateX(720deg)rotateY(540deg)rotate(0)scale(1.03)}}.ai-roll-request{background:#1b1226;border:1px solid #5f3b85;border-radius:12px;gap:8px;margin-top:14px;padding:14px;display:grid}.dice-3d-suggested{margin-top:8px}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.button-row select{min-width:230px}.roll-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-bottom:12px;display:grid}.dice-quick{margin-top:14px}.chat-message{background:#251733;border-left:5px solid #8d4dff;border-radius:12px;gap:5px;margin-bottom:8px;padding:12px;display:grid}.chat-message p{margin:0;line-height:1.45}.chat-message small{color:#d8c8e8;margin-left:6px;font-weight:400}.chat-message.rp{border-left-color:#42d66b}.chat-message.private{border-left-color:#ffcc4d}.chat-message.mj{border-left-color:#ff4f6d}.roll strong{justify-content:space-between;align-items:center;display:flex}.character-summary select{margin-bottom:8px}header small{color:#d8c8e8;margin-top:6px;display:block}@media (width<=700px){.roll-controls{grid-template-columns:1fr}.tabs{flex-wrap:wrap}.button-row{display:grid}.button-row select{min-width:0}}.danger-panel{background:#ff4f6d14;border-color:#ff4f6d}.danger-panel p{color:#ffd6de;margin-top:-4px}.danger{background:#7a1f32;width:100%;margin-top:10px}.danger:hover{background:#ff4f6d}.danger-hard{background:#b00020}.dice-zone{background:radial-gradient(circle at top,#8d4dff29,#100b1873);border:1px solid #3d2a50;border-radius:18px;margin-top:18px;padding:16px}.dice-3d-grid{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));place-items:center;gap:18px;display:grid}.dice-3d{perspective:1000px;cursor:pointer;isolation:isolate;background:0 0;border:0;width:92px;height:92px;padding:0;position:relative}.dice-3d:disabled{cursor:wait;opacity:.95}.dice-shadow{filter:blur(7px);z-index:-1;background:#0000006b;border-radius:50%;height:14px;transition:transform .25s,opacity .25s;position:absolute;bottom:1px;left:16px;right:16px;transform:scaleX(1)}.dice-3d:hover .dice-shadow,.dice-3d:focus-visible .dice-shadow{opacity:.8;transform:scaleX(.82)}.dice-3d.rolling .dice-shadow{animation:1.05s ease-in-out diceShadowThrow}.dice-3d.rolling .dice-inner{animation:1.05s cubic-bezier(.18,.82,.28,1.08) diceThrow}.dice-3d.rolling .dice-face{animation:1.05s ease-in-out diceFaceBlur}@keyframes diceThrow{0%{transform:translateY(0)rotateX(0)rotateY(0)rotate(0)scale(1)}18%{transform:translateY(-34px)rotateX(180deg)rotateY(110deg)rotate(-18deg)scale(1.08)}42%{transform:translateY(-8px)rotateX(480deg)rotateY(310deg)rotate(20deg)scale(1.02)}62%{transform:translateY(-24px)rotateX(690deg)rotateY(510deg)rotate(-14deg)scale(1.05)}82%{transform:translateY(2px)rotateX(900deg)rotateY(720deg)rotate(8deg)scale(.98)}to{transform:translateY(0)rotateX(1080deg)rotateY(900deg)rotate(0)scale(1)}}@keyframes diceShadowThrow{0%,to{opacity:.7;transform:scaleX(1)}18%,62%{opacity:.28;transform:scaleX(.48)}42%,82%{opacity:.62;transform:scaleX(1.12)}}@keyframes diceFaceBlur{0%,to{filter:blur()}18%,62%{filter:blur(1.5px)}}@media (width<=700px){.dice-3d-grid{grid-template-columns:repeat(3,minmax(76px,1fr));gap:14px}.dice-3d{width:78px;height:78px}.dice-face{font-size:20px}}
