.die-arena-mount{position:absolute;inset:0;overflow:hidden}.die-arena-mount canvas{display:block;width:100%!important;height:100%!important}.die-reveal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transform:scale(.6);transition:opacity .4s ease,transform .4s cubic-bezier(.2,1.4,.4,1)}.die-reveal.show{opacity:1;transform:scale(1)}.die-reveal-value{font-family:Cinzel,serif;font-weight:700;font-size:clamp(48px,12vw,104px);line-height:1;color:var(--bone);text-shadow:0 0 34px var(--accent-glow, rgba(94, 230, 168, .5)),0 0 6px #000}.die-reveal-flavor{margin-top:6px;font-family:Cinzel,serif;letter-spacing:.18em;text-transform:uppercase;font-size:clamp(11px,1.6vw,15px);color:var(--accent, var(--eldritch))}.die-reveal-breakdown{margin-top:8px;font-style:italic;font-size:13px;opacity:.7;letter-spacing:.04em}.die-reveal-strip{position:absolute;left:0;right:0;bottom:10px;display:flex;align-items:baseline;justify-content:center;gap:14px;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .4s ease}.die-reveal-strip.show{opacity:1}.die-reveal-strip .drv{font-family:Cinzel,serif;font-weight:700;font-size:clamp(22px,4.5vw,40px);color:var(--bone);text-shadow:0 0 22px var(--accent-glow, rgba(94, 230, 168, .5)),0 0 5px #000}.die-reveal-strip .drv-sum{font-family:Cinzel,serif;font-size:15px;opacity:.55;color:var(--accent, var(--eldritch))}.die-reveal.crit .die-reveal-value{color:var(--eldritch);text-shadow:0 0 44px var(--eldritch)}.die-reveal.crit .die-reveal-flavor{color:var(--eldritch)}.die-reveal.fumble .die-reveal-value{color:var(--blood);text-shadow:0 0 44px rgba(179,58,46,.85)}.die-reveal.fumble .die-reveal-flavor{color:var(--blood)}.dice-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px 18px 4px}.dice-strip-label{font-family:Cinzel,serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);margin-right:2px}.dice-strip-icons{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.die-chip{position:relative;width:38px;height:38px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--dc-border);background:radial-gradient(circle at 50% 38%,var(--dc-inner) 0%,var(--dc-outer) 120%);box-shadow:inset 0 1px #ffffff0f,0 2px 6px #0006;-webkit-user-select:none;user-select:none}.die-chip .dc-num{font-family:Cinzel,serif;font-weight:700;line-height:1;color:var(--dc-fill);text-shadow:0 0 9px var(--dc-glow);transition:opacity .15s ease}.die-chip .dc-del{position:absolute;inset:0;display:grid;place-items:center;border:none;border-radius:9px;background:transparent;color:#ff9b8f;font-size:22px;line-height:1;opacity:0;transition:opacity .15s ease,background .15s ease}.die-chip.editable{cursor:pointer}.die-chip.editable:hover .dc-num{opacity:0}.die-chip.editable:hover .dc-del{opacity:1;background:#46080673}.dice-strip-add{display:flex;flex-wrap:wrap;gap:5px;margin-left:auto}.dice-strip-add button{background:#ffffff0a;border:1px solid rgba(255,255,255,.12);color:var(--bone-dim);border-radius:7px;padding:4px 9px;font-size:12px;letter-spacing:.03em;transition:border-color .15s,color .15s,background .15s}.dice-strip-add button:hover{border-color:var(--eldritch);color:var(--bone);background:#5ee6a81a}.dice-strip-clear{margin-left:4px;border-color:#b33a2e73!important;color:#e8a59c!important}.dice-strip-clear:hover:not(:disabled){border-color:var(--blood)!important;color:#fff!important;background:#b33a2e38!important}.dice-strip-clear:disabled{opacity:.3;cursor:not-allowed}.cfg-backdrop{position:fixed;inset:0;z-index:50;background:#020405b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto}.cfg-panel{width:100%;max-width:460px;background:linear-gradient(180deg,#0e1619f5,#080d0ffa);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 30px 70px #0009;overflow:hidden}.cfg-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid rgba(94,230,168,.1)}.cfg-head h2{font-family:Cinzel,serif;font-size:18px;letter-spacing:.1em;color:var(--eldritch)}.cfg-close{background:transparent;border:none;color:var(--bone-dim);font-size:26px;line-height:1;padding:0 4px}.cfg-close:hover{color:var(--bone)}.cfg-body{padding:8px 22px 22px}.cfg-section{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.05)}.cfg-section:last-child{border-bottom:none}.cfg-section>h3{font-family:Cinzel,serif;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);margin-bottom:12px}.cfg-dice-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cfg-die-chip{display:inline-flex;align-items:center;gap:8px;background:#5ee6a814;border:1px solid rgba(94,230,168,.25);color:var(--bone);border-radius:999px;padding:6px 6px 6px 14px;font-size:14px;letter-spacing:.04em}.cfg-die-chip button{background:#ffffff0f;border:none;color:var(--bone-dim);width:20px;height:20px;border-radius:50%;font-size:14px;line-height:1;display:grid;place-items:center}.cfg-die-chip button:hover:not(:disabled){background:#b33a2e66;color:#fff}.cfg-die-chip button:disabled{opacity:.3}.cfg-add-row{display:flex;flex-wrap:wrap;gap:6px}.cfg-add-row button{background:#ffffff0a;border:1px solid rgba(255,255,255,.12);color:var(--bone-dim);border-radius:8px;padding:7px 12px;font-size:13px;letter-spacing:.04em;transition:border-color .15s,color .15s,background .15s}.cfg-add-row button:hover{border-color:var(--eldritch);color:var(--bone);background:#5ee6a81a}.cfg-swatches{display:flex;flex-wrap:wrap;gap:10px}.cfg-swatch{width:34px;height:34px;border-radius:50%;border:2px solid transparent;cursor:pointer;position:relative;transition:transform .12s}.cfg-swatch:hover{transform:scale(1.12)}.cfg-swatch.selected{border-color:var(--bone);box-shadow:0 0 0 2px #0009,0 0 14px var(--sw-glow)}.cfg-styles{display:flex;gap:10px}.cfg-style{flex:1;background:#ffffff08;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 8px;text-align:center;font-size:13px;letter-spacing:.04em;color:var(--bone-dim);cursor:pointer}.cfg-style .dot{width:26px;height:26px;border-radius:6px;margin:0 auto 8px;border:1px solid rgba(255,255,255,.18)}.cfg-style.selected{border-color:var(--eldritch);color:var(--bone);background:#5ee6a814}.cfg-range{width:100%;accent-color:var(--eldritch)}.cfg-range-val{font-variant-numeric:tabular-nums;color:var(--bone)}.cfg-voices{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.cfg-voice{background:#ffffff0a;border:1px solid rgba(255,255,255,.12);color:var(--bone-dim);border-radius:999px;padding:6px 14px;font-size:13px;letter-spacing:.03em;transition:border-color .15s,color .15s,background .15s}.cfg-voice:hover{border-color:#5ee6a880;color:var(--bone)}.cfg-voice.selected{border-color:var(--eldritch);color:var(--bone);background:#5ee6a81f}.cfg-vol-row{display:grid;grid-template-columns:110px 1fr 42px;align-items:center;gap:12px;margin-bottom:10px;font-size:13px;color:var(--bone-dim)}.cfg-vol-row .cfg-range-val{text-align:right;font-size:13px}.cfg-input{width:100%;background:#02040599;border:1px solid rgba(94,230,168,.18);border-radius:8px;padding:9px 12px;font-size:15px;color:var(--bone);outline:none;margin-bottom:9px}.cfg-btn{font-family:Cinzel,serif;letter-spacing:.08em;text-transform:uppercase;font-size:13px;color:var(--abyss);background:linear-gradient(180deg,#7df0bd,#5ee6a8 50%,#2f8f63);border:none;border-radius:999px;padding:10px 20px}.cfg-btn:disabled{filter:grayscale(.6) brightness(.7)}.cfg-msg{font-size:13px;margin-top:8px}.cfg-msg.ok{color:var(--eldritch)}.cfg-msg.err{color:#f3b9b2}.cfg-avatar-row{display:flex;align-items:center;gap:14px}.cfg-avatar-prev{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#1a2420;display:grid;place-items:center;color:var(--bone-dim);font-size:12px}.dice-app{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.dice-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px clamp(16px,4vw,40px);border-bottom:1px solid rgba(94,230,168,.1)}.dice-topbar h1{font-family:Cinzel,serif;font-weight:700;font-size:clamp(18px,2.6vw,26px);letter-spacing:.12em;color:var(--eldritch);text-shadow:0 0 18px rgba(94,230,168,.4),0 2px 4px #000}.dice-topbar .subtitle{font-style:italic;opacity:.45;font-size:13px;margin-top:2px}.dice-whoami{display:flex;align-items:center;gap:14px;font-size:14px}.dice-badge{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-family:Cinzel,serif;padding:4px 11px;border-radius:999px;border:1px solid currentColor}.dice-logout{background:transparent;border:1px solid rgba(233,226,207,.25);color:var(--bone-dim);border-radius:999px;padding:7px 16px;font-size:13px;letter-spacing:.06em;transition:border-color .2s,color .2s}.dice-logout:hover{border-color:#e9e2cf99;color:var(--bone)}.dice-banner{text-align:center;font-size:14px;padding:9px 16px;letter-spacing:.03em}.dice-banner.error{color:#f3b9b2;background:#b33a2e24;border-bottom:1px solid rgba(179,58,46,.4)}.dice-banner.notice{color:#f0e3bf;background:#f0d0621a;border-bottom:1px solid rgba(240,208,98,.35);font-style:italic}.dice-footer{text-align:center;padding:14px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.35}.dice-grid{flex:1;display:grid;gap:clamp(16px,2.2vw,26px);grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;padding:clamp(18px,3vw,34px) clamp(16px,4vw,40px);max-width:1500px;width:100%;margin:0 auto}@media(max-width:980px){.dice-grid{grid-template-columns:1fr;max-width:520px}}.dice-card{position:relative;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;overflow:hidden;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 18px 44px #00000073;transition:box-shadow .4s ease,border-color .4s ease,opacity .4s ease,filter .4s ease}.dice-card.is-offline{filter:grayscale(.85) brightness(.7);opacity:.72}.dice-card.is-self{border-color:var(--accent-border, rgba(94, 230, 168, .5))}.dice-card .accent-bar{height:4px;width:100%;background:var(--accent, var(--eldritch));box-shadow:0 0 18px var(--accent-glow, rgba(94, 230, 168, .5))}.dice-card-head{display:flex;align-items:center;gap:14px;padding:16px 18px 12px}.dice-avatar{width:52px;height:52px;border-radius:50%;flex:0 0 auto;object-fit:cover;display:grid;place-items:center;font-family:Cinzel,serif;font-size:20px;color:var(--abyss);background:var(--accent, var(--eldritch));border:2px solid rgba(255,255,255,.15);box-shadow:0 0 18px var(--accent-glow, rgba(94, 230, 168, .4))}.dice-card-name{font-family:Cinzel,serif;font-size:19px;letter-spacing:.04em;color:var(--bone);line-height:1.1}.dice-card-sub{font-size:12px;letter-spacing:.06em;opacity:.5;margin-top:3px}.dice-card-sub.offline{color:var(--blood);opacity:.95;font-style:italic}.dice-arena{position:relative;margin:4px 14px 14px;border-radius:12px;aspect-ratio:1 / 1;background:radial-gradient(ellipse at 50% 38%,#0c1417,#05080a 70%);border:1px solid rgba(94,230,168,.08);display:grid;place-items:center;overflow:hidden}.dice-arena .glyph{font-family:Cinzel,serif;font-size:clamp(40px,7vw,64px);color:var(--accent, var(--eldritch));opacity:.16;text-shadow:0 0 30px var(--accent-glow);-webkit-user-select:none;user-select:none}.dice-arena .hint{position:absolute;bottom:10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.3}.dice-card-action{padding:12px 18px 2px;display:flex;flex-direction:column}.dice-history{margin-top:auto;padding:4px 8px 4px 18px;display:flex;flex-direction:column;gap:2px;max-height:96px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(94,230,168,.3) transparent}.dice-history::-webkit-scrollbar{width:6px}.dice-history::-webkit-scrollbar-thumb{background:#5ee6a840;border-radius:3px}.dice-history-empty{font-size:12px;font-style:italic;opacity:.3;letter-spacing:.04em;padding:6px 0}.dice-history-row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:12px;font-size:13px;padding:3px 10px 3px 0;border-bottom:1px solid rgba(255,255,255,.04)}.dice-history-row:last-child{border-bottom:none}.dh-dice{font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.45;white-space:nowrap}.dh-vals{display:flex;align-items:baseline;gap:8px;justify-content:flex-end;flex-wrap:wrap}.dh-v{font-family:Cinzel,serif;font-size:16px;color:var(--accent, var(--bone));font-variant-numeric:tabular-nums}.dh-sum{font-size:11px;opacity:.4;font-variant-numeric:tabular-nums}.dh-time{font-size:11px;opacity:.4;font-variant-numeric:tabular-nums;white-space:nowrap}.dice-card-foot{margin-top:auto;padding:0 18px 18px;display:flex;flex-direction:column;gap:10px}.dice-roll-btn{font-family:Cinzel,serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:15px;color:var(--abyss);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 70%,white) 0%,var(--accent) 50%,color-mix(in srgb,var(--accent) 55%,black) 100%);border:none;border-radius:999px;padding:13px 0;box-shadow:0 0 22px var(--accent-glow),inset 0 1px #ffffff80;transition:transform .12s ease,box-shadow .25s ease,filter .25s ease}.dice-roll-btn:hover:not(:disabled){transform:translateY(-2px)}.dice-roll-btn:active:not(:disabled){transform:translateY(1px) scale(.98)}.dice-roll-btn:disabled{filter:grayscale(.7) brightness(.55);box-shadow:none}.dice-viewer-note{text-align:center;font-style:italic;font-size:13px;opacity:.4;padding:6px 0}.dice-empty-seat{text-align:center;opacity:.4;font-style:italic;font-size:14px;padding:6px 0}:root{--eldritch: #5ee6a8;--eldritch-dim: #2f8f63;--bone: #e9e2cf;--bone-dim: rgba(233, 226, 207, .55);--abyss: #05080a;--blood: #b33a2e;--panel: rgba(12, 20, 23, .72);--panel-border: rgba(94, 230, 168, .14);font-family:EB Garamond,Georgia,serif;color:var(--bone);color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;min-height:100%}body{background:radial-gradient(ellipse at 50% 22%,#0c1417,#05080a 58%,#020304) fixed;color:var(--bone);font-family:EB Garamond,Georgia,serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,.cinzel{font-family:Cinzel,serif;letter-spacing:.08em}button{font-family:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed}input{font-family:inherit}body:after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;box-shadow:inset 0 0 240px 70px #000c}a{color:var(--eldritch)}::selection{background:#5ee6a84d;color:#fff}
