:root{color-scheme:dark;--color-text-default: #E6E6E6;--color-text-subtle: #C2C2C2;--color-text-tertiary: #A9A9A9;--color-text-placeholder: #8A8A8A;--color-text-disabled: #5A5A5A;--color-text-link: #BA9ACA;--color-text-brand: #BA9ACA;--color-text-destructive: #EDACB0;--color-text-on-brand: #FFFFFF;--color-text-always-dark: #000000;--color-text-invert: #000000;--color-text-on-ghost: #E6E6E6;--color-surface-page: #111111;--color-surface-container: #171717;--color-surface-raised: #1E1E1E;--color-surface-elevated: #252525;--color-surface-sunken: #00000099;--color-surface-tooltip: #F5F5F5;--color-surface-brand-tint: #130719;--color-surface-brand-subtle: #E4D7EA;--color-surface-glass-container: #1E1E1EB2;--color-surface-glass-raised: #1E1E1ECC;--color-surface-glass-elevated: #1E1E1EE5;--color-surface-glass-sunken: #1E1E1E99;--color-action-primary-rgb: 112, 44, 145;--color-action-primary: #702C91;--color-action-primary-hover: #9867B0;--color-action-secondary: #9867B0;--color-action-tertiary: #BA9ACA;--color-action-ghost: #363636;--color-action-ghost-hover: #FFFFFF1A;--color-action-tab-hover: #D1BBDC;--color-action-destructive: #AA4146;--color-action-destructive-hover: #DA535A;--color-action-success: #148748;--color-action-success-hover: #1AAD5C;--color-action-disabled: #A9A9A9;--color-action-on-primary: #FFFFFF;--color-action-on-secondary: #FFFFFF;--color-action-on-tertiary: #BA9ACA;--color-action-on-disabled: #5A5A5A;--color-border-default: #8A8A8A;--color-border-subtle: #5A5A5A;--color-border-focus: #D1BBDC;--color-border-focus-agnostic: #E6E6E6;--color-border-brand: #9867B0;--color-border-destructive: #EDACB0;--color-border-success: #B6E5CB;--color-icon-default: #C2C2C2;--color-icon-subtle: #8A8A8A;--color-icon-brand: #BA9ACA;--color-icon-on-brand: #FFFFFF;--color-icon-destructive: #E48388;--color-icon-disabled: #5A5A5A;--color-control-surface-on: #702C91;--color-control-surface-off: #5A5A5A;--color-control-thumb: #FFFFFF;--color-control-track: #262626;--color-control-scrollbar: #5A5A5A;--color-feedback-info-fg: #84CCF1;--color-feedback-info-bg: #0E1F28;--color-feedback-success-fg: #1AAD5C;--color-feedback-success-bg: #041D10;--color-feedback-error-fg: #E48388;--color-feedback-error-bg: #250504;--color-feedback-warning-fg: #473607;--color-feedback-warning-bg: #2B2104;--color-feedback-warning-icon: #FFE291;--color-premium-fg: #94710F;--color-premium-bg: #2B1D00;--color-premium-icon: #FFE291;--color-chip-pale-brand: #D1BBDC;--color-chip-deep-brand: #411A54;--color-chip-pale-blue: #C8E8F9;--color-chip-deep-blue: #183442;--color-chip-pale-green: #B6E5CB;--color-chip-deep-green: #07301A;--color-chip-pale-red: #F3C8CA;--color-chip-deep-red: #3D1719;--color-chip-pale-yellow: #FFEBB6;--color-chip-deep-yellow: #473607;--color-overlay-grayscale-xxs: #FFFFFF0D;--color-overlay-grayscale-xs: #FFFFFF1A;--color-overlay-grayscale-sm: #FFFFFF33;--color-overlay-grayscale-md: #FFFFFF4D;--color-overlay-grayscale-lg: #FFFFFF80;--color-overlay-grayscale-xl: #FFFFFFCC;--color-overlay-brighten-xxs: #FFFFFF0D;--color-overlay-brighten-xs: #FFFFFF1A;--color-overlay-brighten-sm: #FFFFFF33;--color-overlay-brighten-md: #FFFFFF4D;--color-overlay-brighten-lg: #FFFFFF80;--color-overlay-brighten-xl: #FFFFFFCC;--color-role-player: #148748;--color-role-gm: #84CCF1;--spacing-0: 0px;--spacing-2: 2px;--spacing-4: 4px;--spacing-6: 6px;--spacing-8: 8px;--spacing-10: 10px;--spacing-12: 12px;--spacing-14: 14px;--spacing-16: 16px;--spacing-20: 20px;--spacing-24: 24px;--spacing-28: 28px;--spacing-32: 32px;--height-16: 16px;--height-18: 18px;--height-28: 28px;--height-30: 30px;--height-32: 32px;--height-34: 34px;--height-36: 36px;--height-46: 46px;--height-54: 54px;--height-64: 64px;--rounded-0: 0px;--rounded-xs: 4px;--rounded-sm: 6px;--rounded-md: 8px;--rounded-lg: 12px;--rounded-xl: 16px;--rounded-2xl: 24px;--rounded-3xl: 32px;--rounded-full: 9999px;--border-xs: .5px;--border-sm: 1px;--border-md: 2px;--border-lg: 3px;--border-xl: 4px;--shadow-sm: 0 1px 2px rgba(0,0,0,.2), 0 1px 4px rgba(0,0,0,.12);--shadow-md: 0 4px 5px rgba(0,0,0,.14), 0 1px 10px rgba(0,0,0,.12), 0 2px 4px rgba(0,0,0,.2);--shadow-lg: 0 8px 10px rgba(0,0,0,.14), 0 3px 14px rgba(0,0,0,.12), 0 5px 5px rgba(0,0,0,.2);--motion-duration-fast: .15s;--motion-duration-normal: .25s;--motion-easing-default: cubic-bezier(.4, 0, .2, 1);--font-display: "nunito", sans-serif;--font-body: "proxima-nova", system-ui, sans-serif;--font-mono: "roboto-mono", "Courier New", monospace;--size-2xs: 8px;--size-xs: 10px;--size-sm: 13px;--size-md: 16px;--size-lg: 20px;--size-xl: 25px;--size-2xl: 31px;--size-3xl: 39px;--size-4xl: 49px;--weight-light: 300;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-black: 900}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-body);font-size:var(--size-md);background:var(--color-surface-page);color:var(--color-text-default);line-height:1.5}.shell{max-width:1120px;margin:0 auto;padding:var(--spacing-24) var(--spacing-32) var(--spacing-32)}.hero-top{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--spacing-8) var(--spacing-16);padding:0 0 var(--spacing-16);margin-bottom:var(--spacing-8);border-bottom:var(--border-sm) solid var(--color-border-subtle)}.brand{display:flex;flex-direction:column;gap:var(--spacing-2)}.brand-mark{display:flex;align-items:center;justify-content:flex-start;gap:var(--spacing-4);font-family:var(--font-display);font-size:var(--size-2xl);font-weight:var(--weight-black);letter-spacing:-.02em;line-height:1.2;color:var(--color-text-default);width:100%;min-width:0}.brand-mark svg{height:1.2em;width:auto;flex-shrink:0;position:relative;top:1px}.brand-title{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media(max-width:410px){.brand-title{display:none}}.brand-auth{position:absolute;top:0;right:0;display:flex;align-items:center;gap:var(--spacing-8)}.brand-username{font-size:var(--size-sm);color:var(--color-text-subtle)}@media(max-width:600px){.hero-top .brand-username{display:none}}.brand-login,.brand-logout{height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-brand);background:transparent;color:var(--color-text-brand);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--size-sm);cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default),color var(--motion-duration-fast) var(--motion-easing-default)}.brand-login:hover,.brand-logout:hover{background:var(--color-action-primary);color:var(--color-action-on-primary);border-color:var(--color-action-primary)}.hero-grid{position:relative;z-index:1;display:grid;gap:var(--spacing-20) var(--spacing-24);padding:var(--spacing-20) 0 0;grid-template-columns:1fr}.hero-preview-band{display:grid;grid-template-columns:minmax(100px,38vw) minmax(0,1fr);gap:var(--spacing-10) var(--spacing-12);align-items:center;min-width:0}.hero-result-slot{min-width:0;position:relative}.hero-preview-band .dicey-stage{width:min(152px,36vw);margin:0 auto}.hero-preview-band .dicey-badge{margin-top:var(--spacing-6);font-size:var(--size-xs)}.hero-preview-band .result-stage{margin-top:0;min-height:70px;padding:var(--spacing-10) var(--spacing-14)}@media(min-width:720px){.hero-preview-band{grid-template-columns:minmax(160px,200px) minmax(0,1fr);gap:var(--spacing-20) var(--spacing-28);align-items:center}.hero-preview-band.dicey-hidden{grid-template-columns:32px minmax(0,1fr);column-gap:var(--spacing-8)}.hero-preview-band .dicey-stage{width:min(200px,100%)}.hero-preview-band .dicey-badge{margin-top:var(--spacing-10);font-size:12px}.hero-preview-band .result-stage{min-height:160px;padding:var(--spacing-24) var(--spacing-28)}.hero-preview-band .result-total{font-size:72px;padding:var(--spacing-10) var(--spacing-24)}}.dicey-col{text-align:center;position:relative}.dicey-stage{position:relative;width:min(228px,52vw);margin:0 auto;filter:drop-shadow(0 14px 28px rgba(0,0,0,.5));transform-origin:50% 85%}.dicey-stage:after{content:"";position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--color-action-primary) 18%,transparent) 0%,transparent 65%);opacity:0;pointer-events:none;z-index:0;transition:opacity var(--motion-duration-normal) var(--motion-easing-default)}.dicey-stage.is-pulse:after{opacity:1}.dicey-stage img{position:relative;z-index:1;display:block;width:100%;height:auto;border-radius:var(--rounded-lg);transition:opacity var(--motion-duration-fast) var(--motion-easing-default),transform var(--motion-duration-fast) var(--motion-easing-default)}.dicey-stage.dicey-anim-pop img{animation:dicey-pop .65s cubic-bezier(.34,1.45,.64,1)}.dicey-stage.dicey-anim-shake img{animation:dicey-shake .55s ease}.dicey-stage.dicey-anim-bounce img{animation:dicey-bounce .6s cubic-bezier(.34,1.35,.64,1)}.dicey-stage.dicey-anim-bob img{animation:dicey-bob .7s ease-in-out}.dicey-stage.dicey-anim-spin img{animation:dicey-spin .5s cubic-bezier(.45,0,.55,1)}.dicey-stage.dicey-anim-crit-mega img{animation:dicey-crit-mega 1s cubic-bezier(.33,1.55,.55,1)}.dicey-stage.dicey-anim-fail-mega img{animation:dicey-fail-mega .9s cubic-bezier(.36,0,.2,1)}html.reduce-motion .dicey-stage,html.reduce-motion .dicey-stage img,html.reduce-motion .dicey-stage.dicey-anim-crit-mega img,html.reduce-motion .dicey-stage.dicey-anim-fail-mega img{animation:none!important}@keyframes dicey-crit-mega{0%{transform:scale(.82) translateY(16px) rotate(-6deg)}25%{transform:scale(1.12) translateY(-18px) rotate(4deg)}45%{transform:scale(.96) translateY(6px) rotate(-2deg)}65%{transform:scale(1.08) translateY(-10px) rotate(2deg)}85%{transform:scale(1.02) translateY(2px) rotate(0)}to{transform:scale(1) translateY(0) rotate(0)}}@keyframes dicey-fail-mega{0%{transform:translate(0) rotate(0) scale(1)}12%{transform:translate(-10px,4px) rotate(-10deg) scale(.92)}24%{transform:translate(10px,-3px) rotate(10deg) scale(.9)}36%{transform:translate(-8px,6px) rotate(-8deg) scale(.88)}50%{transform:translate(8px,2px) rotate(7deg) scale(.9)}65%{transform:translate(-4px) rotate(-4deg) scale(.94)}80%{transform:translate(3px,2px) rotate(2deg) scale(.98)}to{transform:translate(0) rotate(0) scale(1)}}@keyframes dicey-pop{0%{transform:scale(.88) translateY(10px)}55%{transform:scale(1.08) translateY(-10px) rotate(-3deg)}to{transform:scale(1) translateY(0) rotate(0)}}@keyframes dicey-shake{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-6px) rotate(-4deg)}30%{transform:translate(6px) rotate(4deg)}45%{transform:translate(-4px) rotate(-2deg)}60%{transform:translate(4px) rotate(2deg)}75%{transform:translate(-2px) rotate(-1deg)}}@keyframes dicey-bounce{0%{transform:translateY(0)}30%{transform:translateY(-16px)}55%{transform:translateY(0)}72%{transform:translateY(-8px)}88%{transform:translateY(0)}to{transform:translateY(0)}}@keyframes dicey-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes dicey-spin{0%{transform:rotate(0) scale(1)}40%{transform:rotate(-8deg) scale(.95)}to{transform:rotate(360deg) scale(1)}}.dicey-badge{display:block;margin-top:var(--spacing-10);font-family:var(--font-display);font-size:12px;font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);text-align:center}.dicey-badge.is-pink{color:var(--color-action-tertiary)}.dicey-badge.is-warn{color:var(--color-premium-icon)}.dicey-stage-wrap{position:relative;width:fit-content;margin:0 auto}.dicey-toggle-btn{position:absolute;top:50%;left:-16px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:var(--border-sm) solid var(--color-border-subtle);border-radius:var(--rounded-full);background:var(--color-surface-raised);color:var(--color-icon-subtle);cursor:pointer;line-height:0;z-index:1;transition:color var(--motion-duration-fast) var(--motion-easing-default),border-color var(--motion-duration-fast) var(--motion-easing-default)}.dicey-toggle-btn:hover{color:var(--color-icon-default);border-color:var(--color-border-default)}.dicey-toggle-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.hero-preview-band.dicey-hidden{grid-template-columns:32px minmax(0,1fr);column-gap:var(--spacing-8)}.hero-preview-band.dicey-hidden .dicey-stage-wrap,.hero-preview-band.dicey-hidden .dicey-badge{display:none}.dicey-mute-btn{position:absolute;top:41px;right:var(--spacing-8);padding:var(--spacing-4);border:none;background:none;color:var(--color-icon-subtle);cursor:pointer;border-radius:var(--rounded-sm);line-height:0;transition:color var(--motion-duration-fast) var(--motion-easing-default)}.dicey-mute-btn:hover{color:var(--color-icon-default)}.dicey-mute-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.dicey-mute-btn.is-muted{color:var(--color-text-brand)}.dicey-mute-btn svg{flex-shrink:0}.dicey-mute-btn .mute-x,.dicey-mute-btn.is-muted .sound-waves{display:none}.dicey-mute-btn.is-muted .mute-x{display:block}.roll-col{min-width:0}.roll-stack{display:flex;flex-direction:column}.roll-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--spacing-8) var(--spacing-20);margin-bottom:var(--spacing-8)}@media(min-width:720px){.roll-head{order:1}.roll-stack>.quick-grid{order:2}.roll-stack>.roll-expr-row{order:3}.roll-stack>.syntax-tools{order:4}.roll-stack>.history-stack{order:5}}.roll-stack>.roll-head h2,.history-header-row h2{font-family:var(--font-display);font-size:var(--size-lg);font-weight:var(--weight-black);letter-spacing:0;text-transform:none;line-height:1.4;color:var(--color-text-default);margin:0}.roll-stack>.roll-head h2{display:none}.qty{display:flex;align-items:center;gap:var(--spacing-8);font-family:var(--font-body);font-size:var(--size-sm);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.qty input{width:56px;height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-default);background:transparent;color:var(--color-text-default);font-family:var(--font-body);font-weight:var(--weight-regular);font-size:var(--size-sm);text-align:center;-moz-appearance:textfield;transition:border-color var(--motion-duration-fast) var(--motion-easing-default)}.qty input::-webkit-inner-spin-button,.qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.qty input:focus-visible{outline:none;border-width:var(--border-md);border-color:var(--color-border-focus)}.qty-stepper{display:flex;align-items:center;gap:2px;border-radius:5px;overflow:hidden}.qty-stepper input{width:56px;height:28px;border-radius:0;border:var(--border-sm) solid var(--color-border-default);transition:border-color var(--motion-duration-fast) var(--motion-easing-default)}.qty-stepper input:focus-visible{outline:none;border-color:var(--color-border-focus)}.qty-step-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:8px;background:var(--color-surface-elevated);border:none;color:var(--color-text-subtle);font-size:var(--size-lg);line-height:1;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default),color var(--motion-duration-fast) var(--motion-easing-default)}.qty-step-btn:first-child{border-radius:4px 0 0 4px}.qty-step-btn:last-child{border-radius:0 4px 4px 0}.qty-step-btn:hover{background:var(--color-overlay-grayscale-xxs);color:var(--color-text-default)}.qty-step-btn:active{background:var(--color-overlay-grayscale-xs)}.qty-step-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:-2px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-10)}@media(min-width:900px){.quick-grid{grid-template-columns:repeat(8,1fr)}}button.die-btn{position:relative;display:flex;align-items:center;justify-content:center;height:80px;padding:var(--spacing-10);border-radius:var(--rounded-lg);border:var(--border-sm) solid transparent;background:var(--color-surface-raised);box-shadow:var(--shadow-md);color:var(--color-text-default);cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-easing-default),background var(--motion-duration-fast) var(--motion-easing-default),transform var(--motion-duration-fast) var(--motion-easing-default)}button.die-btn svg{width:auto;height:52px}button.die-btn:hover{border-color:var(--color-border-subtle);background:linear-gradient(var(--color-overlay-grayscale-xxs),var(--color-overlay-grayscale-xxs)),var(--color-surface-raised)}button.die-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}button.die-btn:active{transform:scale(.88);background:var(--color-surface-elevated)}button.die-btn.rolling{animation:die-pulse .45s ease-in-out infinite alternate;pointer-events:none}@keyframes die-pulse{0%{border-color:var(--color-border-subtle)}to{border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-chip-deep-brand)}}@keyframes result-stamp{0%{transform:scale(1.349)}20%{transform:scale(.889)}36%{transform:scale(1.064)}50%{transform:scale(1)}70%{transform:scale(1.061)}80%{transform:scale(.985)}98%{transform:scale(1.026)}99%{transform:scale(.993)}to{transform:scale(1)}}.result-total.is-stamping{animation:result-stamp .32s ease-out both}@keyframes result-stamp-mobile{0%{transform:scale(1.471)}20%{transform:scale(.85)}36%{transform:scale(1.086)}50%{transform:scale(1)}70%{transform:scale(1.082)}80%{transform:scale(.98)}98%{transform:scale(1.035)}99%{transform:scale(.991)}to{transform:scale(1)}}@media(max-width:719px){.result-total.is-stamping{animation-name:result-stamp-mobile}}html.reduce-motion .result-total.is-stamping{animation:none!important}.formula-row{display:flex;flex-wrap:wrap;gap:var(--spacing-10);margin-top:var(--spacing-16)}.expr-input-shell{flex:1 1 160px;min-width:0;position:relative;height:var(--height-46);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-default);background:transparent;transition:border-width var(--motion-duration-fast) var(--motion-easing-default),border-color var(--motion-duration-fast) var(--motion-easing-default)}.expr-input-shell:focus-within{border-width:var(--border-md);border-color:var(--color-border-focus)}.expr-highlight{position:absolute;top:0;right:0;bottom:0;left:0;padding:0 var(--spacing-12);display:flex;align-items:center;overflow:hidden;pointer-events:none;z-index:0}.expr-highlight-inner{display:inline-block;white-space:pre;font-family:var(--font-mono);font-size:14px;line-height:1.375;letter-spacing:0;word-spacing:0;font-variant-ligatures:none;color:var(--color-text-default);will-change:transform}.expr-highlight-inner .expr-token-num{color:var(--color-action-primary-hover);font-weight:var(--weight-bold)}.expr-input-field{position:relative;z-index:1;display:block;width:100%;height:100%;margin:0;padding:0 var(--spacing-12);border:none;border-radius:var(--rounded-md);background:transparent;color:var(--color-text-default);font-family:var(--font-mono);font-size:14px;line-height:1.375;letter-spacing:0;word-spacing:0;font-variant-ligatures:none}.expr-input-shell.expr-input-shell--live .expr-input-field{color:transparent;caret-color:var(--color-action-tertiary)}.expr-input-shell.expr-input-shell--live .expr-input-field::selection{background:var(--color-overlay-grayscale-xs);color:var(--color-text-default)}.expr-input-field::placeholder{color:var(--color-text-placeholder)}.expr-input-field:focus{outline:none}button.primary{height:var(--height-46);padding:0 var(--spacing-16);border:none;border-radius:var(--rounded-md);background:var(--color-action-primary);color:var(--color-action-on-primary);font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--size-md);letter-spacing:.02em;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default),transform var(--motion-duration-fast) var(--motion-easing-default)}button.primary:hover{background:var(--color-action-primary-hover)}button.primary:active{transform:translateY(1px)}button.primary:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}button.ghost{height:var(--height-46);padding:0 var(--spacing-16);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-brand);background:transparent;color:var(--color-action-on-secondary);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--size-md);letter-spacing:.02em;cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-easing-default),background var(--motion-duration-fast) var(--motion-easing-default),color var(--motion-duration-fast) var(--motion-easing-default)}button.ghost:hover{background:var(--color-action-ghost-hover)}button.ghost:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.result-stage{position:relative;margin-top:var(--spacing-16);padding:var(--spacing-16) var(--spacing-20);border-radius:var(--rounded-xl);background:var(--color-surface-container);min-height:80px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--spacing-8)}.result-copy-btn{position:absolute;top:var(--spacing-8);right:var(--spacing-8);padding:var(--spacing-4);border:none;background:none;color:var(--color-icon-subtle);cursor:pointer;border-radius:var(--rounded-sm);line-height:0;transition:color var(--motion-duration-fast) var(--motion-easing-default)}.result-copy-btn:hover{color:var(--color-icon-default)}.result-copy-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.result-copy-btn.copied{color:var(--color-feedback-success-fg)}.result-stage.empty .result-placeholder{display:block}.result-placeholder{display:none;text-align:center;color:var(--color-text-placeholder);font-size:14px;line-height:1.4}.result-total[hidden]{display:none}.result-total{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:var(--spacing-6) var(--spacing-16);border-radius:var(--rounded-md);background:var(--color-chip-deep-brand);font-family:var(--font-display);font-size:var(--size-xl);font-weight:var(--weight-black);line-height:1;color:var(--color-text-default);text-align:center}.result-total.crit{background:color-mix(in srgb,var(--color-action-primary) 35%,var(--color-chip-deep-brand));color:var(--color-action-tertiary)}.result-total.fumble{background:var(--color-chip-deep-red);color:var(--color-feedback-error-fg)}.result-total.yn-yes{background:color-mix(in srgb,#16a34a 30%,var(--color-chip-deep-brand));color:#4ade80}.result-total.yn-no{background:var(--color-chip-deep-red);color:var(--color-feedback-error-fg)}.result-meta{text-align:center;font-size:13px;color:var(--color-text-subtle)}.breakdown{display:flex;flex-wrap:wrap;gap:var(--spacing-8);justify-content:center;margin-top:var(--spacing-4);width:100%;min-width:0}.die-chip[hidden]{display:none}.die-chip{display:inline-flex;align-items:center;gap:var(--spacing-6);height:var(--height-36);padding:0 var(--spacing-8);border-radius:var(--rounded-md);background:var(--color-surface-brand-tint);border:var(--border-sm) solid var(--color-text-brand);font-size:13px;font-weight:700;color:var(--color-text-brand)}.die-chip .faces{font-size:11px;font-weight:var(--weight-semibold);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.06em}.die-chip--dropped{opacity:.45}.die-chip--yn-yes{background:color-mix(in srgb,#16a34a 20%,var(--color-surface-brand-tint));border-color:#4ade80;color:#4ade80}.die-chip--yn-no{background:var(--color-chip-deep-red);border-color:var(--color-feedback-error-fg);color:var(--color-feedback-error-fg)}.die-chip--crit-success{background:color-mix(in srgb,#16a34a 20%,var(--color-surface-brand-tint));border-color:#4ade80;color:#4ade80}.die-chip--crit-fail{background:var(--color-chip-deep-red);border-color:var(--color-feedback-error-fg);color:var(--color-feedback-error-fg)}button.breakdown-toggle{display:inline-flex;align-items:center;height:var(--height-28);padding:0 var(--spacing-12);border-radius:var(--rounded-full);border:var(--border-sm) dashed var(--color-border-subtle);background:none;font-family:inherit;font-size:12px;font-weight:700;color:var(--color-text-subtle);cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-easing-default),color var(--motion-duration-fast) var(--motion-easing-default)}button.breakdown-toggle:hover{border-color:var(--color-border-default);color:var(--color-text-default)}.syntax-tools{margin-top:var(--spacing-20);padding:var(--spacing-16) var(--spacing-16) var(--spacing-14);border-radius:var(--rounded-lg);border:none;background:var(--color-surface-raised);box-shadow:var(--shadow-md)}.syntax-chip-label{display:block;font-size:var(--size-xs);font-weight:var(--weight-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:var(--spacing-8)}.syntax-chips-locked .syntax-chip-label{color:var(--color-text-subtle)}.syntax-chip-row{display:flex;flex-wrap:wrap;gap:var(--spacing-8)}button.syntax-chip{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:var(--height-36);padding:var(--spacing-4) var(--spacing-8);border-radius:var(--rounded-md);border:var(--border-sm) solid transparent;background:var(--color-surface-elevated);box-shadow:var(--shadow-md);color:var(--color-text-default);font-family:var(--font-body);font-size:12px;font-weight:700;cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-easing-default),background var(--motion-duration-fast) var(--motion-easing-default),opacity var(--motion-duration-fast) var(--motion-easing-default)}.syntax-chip-formula{display:block;margin-top:var(--spacing-2);font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:.02em;color:var(--color-text-subtle);font-family:var(--font-mono)}button.syntax-chip:hover:not([aria-disabled=true]){border-color:var(--color-border-subtle);background:linear-gradient(var(--color-overlay-grayscale-xxs),var(--color-overlay-grayscale-xxs)),var(--color-surface-raised)}button.syntax-chip:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}button.syntax-chip[aria-disabled=true]{opacity:.5;cursor:default}button.syntax-chip.is-locked:before{content:"🔒 ";font-size:.85em}.syntax-locked-blurb{margin:var(--spacing-10) 0 0;font-size:12px;font-weight:var(--weight-semibold);line-height:1.5;color:var(--color-text-subtle);text-align:left}.syntax-locked-blurb.is-off{display:none}.syntax-locked-blurb-link{margin:0;padding:0;border:none;background:none;font:inherit;font-weight:var(--weight-regular);color:var(--color-text-link);text-decoration:none;cursor:pointer;transition:text-decoration var(--motion-duration-fast) var(--motion-easing-default)}.syntax-locked-blurb-link:hover{text-decoration:underline;text-underline-offset:2px}.syntax-locked-blurb-link:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px;border-radius:var(--rounded-xs)}.syntax-chip-editor{margin-top:var(--spacing-12);padding-top:var(--spacing-10);border-top:var(--border-sm) solid var(--color-border-subtle);text-align:left}.syntax-chip-editor-summary{cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-action-tertiary);list-style:none}.syntax-chip-editor-summary::-webkit-details-marker{display:none}.syntax-chip-editor-summary:after{content:" ▾";display:inline-block;margin-left:var(--spacing-8);font-size:14px;line-height:1;vertical-align:middle;color:var(--color-text-subtle)}.syntax-chip-editor[open] .syntax-chip-editor-summary:after{content:" ▴"}.syntax-chip-editor-body{margin-top:var(--spacing-10);display:flex;flex-direction:column;gap:var(--spacing-10)}.syntax-chip-editor-add{display:flex;flex-direction:column;gap:var(--spacing-8)}.syntax-chip-editor-add label{display:flex;flex-direction:column;gap:var(--spacing-8);font-family:var(--font-body);font-size:var(--size-sm);font-weight:var(--weight-semibold);color:var(--color-text-subtle)}.syntax-chip-editor-add input{height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-default);background:transparent;color:var(--color-text-default);font-family:var(--font-body);font-size:var(--size-sm);transition:border-width var(--motion-duration-fast) var(--motion-easing-default),border-color var(--motion-duration-fast) var(--motion-easing-default)}.syntax-chip-editor-add input:focus-visible{outline:none;border-width:var(--border-md);border-color:var(--color-border-focus)}.syntax-chip-editor-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-8);align-items:center}button.syntax-chip-editor-add-btn{height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-brand);background:transparent;color:var(--color-action-on-secondary);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:12px;letter-spacing:.02em;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default)}button.syntax-chip-editor-add-btn:hover{background:var(--color-action-ghost-hover)}button.syntax-chip-editor-add-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.syntax-chip-editor-help{margin:0;font-size:11px;line-height:1.45;color:var(--color-text-tertiary)}.syntax-chip-editor-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-6)}.syntax-chip-editor-item{position:relative;display:flex;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-10);border-radius:var(--rounded-md);border:none;background:var(--color-surface-elevated);box-shadow:var(--shadow-md);cursor:grab}.syntax-chip-editor-item.is-dragging{opacity:.55}.syntax-chip-editor-item.drop-before:before,.syntax-chip-editor-item.drop-after:after{content:"";position:absolute;left:var(--spacing-6);right:var(--spacing-6);height:2px;border-radius:2px;background:var(--color-action-primary);pointer-events:none}.syntax-chip-editor-item.drop-before:before{top:-3px}.syntax-chip-editor-item.drop-after:after{bottom:-3px}.syntax-chip-editor-grip{flex-shrink:0;font-size:12px;color:var(--color-text-tertiary);letter-spacing:-.08em;-webkit-user-select:none;user-select:none}.syntax-chip-editor-item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-2)}.syntax-chip-editor-item-label{font-size:12px;font-weight:var(--weight-bold);color:var(--color-text-default)}.syntax-chip-editor-item-formula{font-size:11px;font-weight:var(--weight-semibold);font-family:var(--font-mono);color:var(--color-text-tertiary);word-break:break-all}button.syntax-chip-editor-remove{flex-shrink:0;margin:0;padding:var(--spacing-4);border:none;background:none;color:var(--color-feedback-error-fg);cursor:pointer;line-height:0;border-radius:var(--rounded-xs);transition:color var(--motion-duration-fast) var(--motion-easing-default)}button.syntax-chip-editor-remove:hover{color:var(--color-text-destructive)}button.syntax-chip-editor-remove:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}button.syntax-chip-editor-edit{flex-shrink:0;margin:0;padding:var(--spacing-4);border:none;background:none;color:var(--color-icon-default);cursor:pointer;line-height:0;border-radius:var(--rounded-xs);transition:color var(--motion-duration-fast) var(--motion-easing-default)}button.syntax-chip-editor-edit:hover{color:var(--color-text-default)}button.syntax-chip-editor-edit:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}button.syntax-chip-editor-cancel-btn{height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-subtle);background:none;color:var(--color-text-subtle);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:12px;cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-easing-default),color var(--motion-duration-fast) var(--motion-easing-default)}button.syntax-chip-editor-cancel-btn:hover{border-color:var(--color-border-default);color:var(--color-text-default)}.syntax-import-wrap{display:flex;flex-direction:column;gap:var(--spacing-6)}.syntax-import-row{display:flex;gap:var(--spacing-8);align-items:center}.syntax-import-select{flex:1;min-width:0;height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-default);background-color:var(--color-surface-raised);color:var(--color-text-subtle);font-family:var(--font-body);font-size:var(--size-sm);cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-easing-default);color-scheme:dark;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%238A8A8A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-10) center;background-size:16px;padding-right:var(--spacing-32)}.syntax-import-select option{background-color:var(--color-surface-raised);color:var(--color-text-default)}.syntax-import-select:hover{border-color:var(--color-border-brand);color:var(--color-text-default)}.syntax-import-feedback{margin:0;font-size:11px;color:var(--color-text-subtle)}.syntax-chip-editor-bulk-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-8);align-items:center}button.syntax-chip-editor-remove-all-btn{height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:none;background:transparent;color:var(--color-text-destructive);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:12px;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default)}button.syntax-chip-editor-remove-all-btn:hover{background:var(--color-action-ghost-hover)}button.syntax-chip-editor-remove-all-btn:focus-visible{outline:var(--border-md) solid var(--color-border-destructive);outline-offset:2px}.revert-confirm-dialog{max-width:440px}.revert-confirm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-16)}.revert-confirm-header h2{margin:0;font-family:var(--font-display);font-size:var(--size-xl);font-weight:var(--weight-black);color:var(--color-text-default)}.revert-confirm-body{margin:0;font-size:1rem;color:var(--color-text-subtle);line-height:1.5}.revert-confirm-actions{display:flex;justify-content:flex-end;gap:var(--spacing-16);margin-top:var(--spacing-24)}.history-stack{margin-top:var(--spacing-20);padding-top:var(--spacing-16);border-top:var(--border-sm) solid var(--color-border-subtle)}.history-header-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-10);margin-bottom:var(--spacing-6)}.history-header-actions{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:var(--spacing-10) var(--spacing-14)}button.history-clear{flex-shrink:0;margin:0;padding:0;border:none;background:none;font-family:inherit;font-size:var(--size-md);font-weight:var(--weight-regular);color:var(--color-text-link);text-decoration:none;cursor:pointer;line-height:1.5;transition:text-decoration var(--motion-duration-fast) var(--motion-easing-default)}button.history-clear:hover{text-decoration:underline;text-underline-offset:2px}button.history-clear:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px;border-radius:var(--rounded-xs)}button.history-share{flex-shrink:0;margin:0;padding:0;border:none;background:none;font-family:inherit;font-size:var(--size-md);font-weight:var(--weight-regular);color:var(--color-text-link);text-decoration:none;cursor:pointer;line-height:1.5;transition:text-decoration var(--motion-duration-fast) var(--motion-easing-default)}button.history-share:hover:not(:disabled){text-decoration:underline;text-underline-offset:2px}button.history-share:disabled{opacity:.35;cursor:not-allowed;text-decoration:none}button.history-share:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px;border-radius:var(--rounded-xs)}button.history-share.is-locked{opacity:.72}button.history-share.is-locked:not(:disabled){cursor:pointer}.history-roll-report-lock{display:none;margin-right:var(--spacing-4);font-size:var(--size-xs);line-height:1;vertical-align:.05em}button.history-share.is-locked .history-roll-report-lock{display:inline}.history{max-height:160px;overflow-y:auto;padding-right:var(--spacing-4);scrollbar-color:var(--color-control-scrollbar) transparent;scrollbar-width:thin}.history-item{padding:var(--spacing-8) 0;border-bottom:var(--border-sm) solid var(--color-border-subtle);font-size:12px}.history-item:last-child{border-bottom:none}.history-empty-state{color:var(--color-text-placeholder);font-size:var(--size-sm)}.history-expr{margin-top:var(--spacing-2);font-family:var(--font-mono);color:var(--color-action-tertiary);font-weight:var(--weight-bold);word-break:break-all}.history-sum{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--size-md);color:var(--color-premium-icon)}.history-detail{margin-top:var(--spacing-4);color:var(--color-text-tertiary);font-size:12px}.history-detail-dropped{text-decoration:line-through;opacity:.65}.quantum-callout{position:relative;margin-top:var(--spacing-32);padding:var(--spacing-32) 0 0;border-top:var(--border-sm) solid var(--color-border-subtle);text-align:center}.quantum-head{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--spacing-10);margin-bottom:var(--spacing-16)}.quantum-icon{width:22px;height:25px;flex-shrink:0;animation:quantum-pulse 2.4s ease-in-out infinite}.quantum-icon svg{width:100%;height:100%}@keyframes quantum-pulse{0%,to{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--color-icon-brand) 55%,transparent));transform:scale(1)}50%{filter:drop-shadow(0 0 10px color-mix(in srgb,var(--color-icon-brand) 85%,transparent));transform:scale(1.1)}}html.reduce-motion .quantum-icon{animation:none}.quantum-title{font-family:var(--font-display);font-size:var(--size-xl);font-weight:var(--weight-black);letter-spacing:-.01em;text-transform:none;color:var(--color-text-default)}.quantum-body{position:relative;font-size:var(--size-md);line-height:1.6;color:var(--color-text-subtle);max-width:520px;margin:0 auto}.quantum-body em{font-style:normal;color:var(--color-premium-icon);font-weight:var(--weight-bold)}.quantum-body a{color:var(--color-text-link);text-decoration:none;font-weight:var(--weight-bold);border-bottom:var(--border-sm) solid var(--color-border-brand);transition:border-color var(--motion-duration-fast) var(--motion-easing-default)}.quantum-body a:hover{border-color:var(--color-text-brand)}.quantum-body>p:first-of-type{margin:0}.quantum-body>p:not(:first-of-type){margin:var(--spacing-12) 0 0}.quantum-subscribe-wrap{text-align:center;margin-top:var(--spacing-32)}.quantum-subscribe-btn{display:inline-flex;align-items:center;justify-content:center;height:var(--height-46);padding:0 var(--spacing-16);border-radius:var(--rounded-md);font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--size-md);letter-spacing:.02em;text-decoration:none;color:var(--color-action-on-primary);background:var(--color-action-primary);border:none;cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default),transform var(--motion-duration-fast) var(--motion-easing-default)}button.quantum-subscribe-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.quantum-subscribe-btn:hover{background:var(--color-action-primary-hover)}.quantum-subscribe-btn:active{transform:translateY(1px)}.quantum-subscribe-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.quantum-login-alt{margin:var(--spacing-10) 0 0;font-size:var(--size-md);line-height:1.5;color:var(--color-text-subtle)}.quantum-login-alt-btn{margin:0;padding:0;border:none;background:none;font:inherit;color:var(--color-text-link);font-weight:var(--weight-regular);cursor:pointer;transition:text-decoration var(--motion-duration-fast) var(--motion-easing-default)}.quantum-login-alt-btn:hover{text-decoration:underline;text-underline-offset:2px}.quantum-login-alt-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px;border-radius:var(--rounded-xs)}.quantum-body code{font-size:.92em;padding:.12em .35em;border-radius:var(--rounded-xs);background:var(--color-surface-sunken);font-family:var(--font-mono)}.quantum-callout-footer{position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch}.quantum-dice-help{display:block;text-align:left;font-size:12px;line-height:1.55;color:var(--color-text-subtle);max-width:540px;margin:0 auto;width:100%;padding:0 var(--spacing-2)}.quantum-callout-unlocked{text-align:left}.quantum-dice-help-head{font-family:var(--font-display);font-size:var(--size-xl);font-weight:var(--weight-black);letter-spacing:-.01em;color:var(--color-text-default);text-align:center;margin-bottom:var(--spacing-16)}.quantum-dice-help-lead{margin:0 0 var(--spacing-16);color:var(--color-text-subtle);font-size:var(--size-md);line-height:1.5}.quantum-dice-help-lead a{color:var(--color-text-link);font-weight:var(--weight-regular);text-decoration:none}.quantum-dice-help-lead a:hover{text-decoration:underline;text-underline-offset:2px}.quantum-dice-help ul{margin:0 0 var(--spacing-16);padding-left:1.1em;font-size:var(--size-md);line-height:1.5;color:var(--color-text-subtle)}.quantum-dice-help li{margin-bottom:var(--spacing-6)}.quantum-dice-help li:last-child{margin-bottom:0}.quantum-dice-help code{font-size:.92em;padding:.1em .32em;border-radius:var(--rounded-xs);background:var(--color-surface-sunken);color:var(--color-feedback-info-fg);font-family:var(--font-mono);font-weight:var(--weight-semibold)}.quantum-dice-help details{margin-top:var(--spacing-16);border-radius:var(--rounded-md);background:var(--color-surface-raised)}.quantum-dice-help summary{display:flex;align-items:center;justify-content:space-between;height:var(--height-46);padding:0 var(--spacing-16);cursor:pointer;font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:var(--size-md);color:var(--color-text-default);list-style:none;border-radius:var(--rounded-md);background:var(--color-surface-raised);transition:background var(--motion-duration-fast) var(--motion-easing-default)}.quantum-dice-help summary:hover{background:var(--color-overlay-grayscale-xxs)}.quantum-dice-help summary::-webkit-details-marker{display:none}.quantum-dice-help summary:after{content:"";display:block;width:16px;height:16px;flex-shrink:0;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 4l4 4-4 4' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 4l4 4-4 4' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transform:rotate(0);transition:transform var(--motion-duration-normal) var(--motion-easing-default)}.quantum-dice-help details[open] summary:after{transform:rotate(90deg)}.quantum-dice-help summary:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.quantum-dice-help .quantum-dice-help-more{padding:var(--spacing-16);background:var(--color-surface-raised);border-radius:0 0 var(--rounded-md) var(--rounded-md);font-size:var(--size-md);line-height:1.5;color:var(--color-text-subtle)}.quantum-dice-help .quantum-dice-help-more p{margin:0 0 var(--spacing-12)}.quantum-dice-help .quantum-dice-help-more p:last-child{margin-bottom:0}.quantum-dice-help .quantum-dice-help-more ul{margin-bottom:var(--spacing-12)}.quantum-dice-help .quantum-dice-help-more a{font-weight:var(--weight-regular);color:var(--color-text-link);text-decoration:none}.quantum-dice-help .quantum-dice-help-more a:hover{text-decoration:underline;text-underline-offset:2px}.qstats-section{width:100%;max-width:1120px;margin:var(--spacing-32) auto 0;padding:var(--spacing-32) var(--spacing-32) var(--spacing-32);border-top:var(--border-sm) solid var(--color-border-subtle)}.qstats-inner{padding:0}.qstats-title{font-family:var(--font-display);font-size:var(--size-xl);font-weight:var(--weight-black);letter-spacing:-.01em;color:var(--color-text-default);text-align:center;margin:0 0 var(--spacing-12)}.qstats-desc{font-size:var(--size-sm);color:var(--color-text-subtle);text-align:center;line-height:1.6;max-width:560px;margin:0 auto var(--spacing-24)}.qstats-chart-wrap{display:flex;gap:var(--spacing-10);align-items:flex-start}.qstats-yaxis{display:flex;flex-direction:column;justify-content:space-between;height:240px;text-align:right;flex-shrink:0}.qstats-yaxis span{font-family:var(--font-body);font-size:var(--size-xs);color:var(--color-text-placeholder);line-height:1}.qstats-chart-col{flex:1;min-width:0}.qstats-bars{display:flex;align-items:flex-end;gap:var(--spacing-2);height:240px;border-left:var(--border-sm) solid var(--color-border-subtle);border-bottom:var(--border-sm) solid var(--color-border-subtle);background-image:repeating-linear-gradient(to top,transparent,transparent 23px,var(--color-overlay-grayscale-xxs) 23px,var(--color-overlay-grayscale-xxs) 24px)}.qstats-bar{flex:1;background:var(--color-action-primary);opacity:.6;border-radius:var(--rounded-xs) var(--rounded-xs) 0 0;transition:opacity var(--motion-duration-fast) var(--motion-easing-default)}.qstats-bar:hover{opacity:.9}.qstats-xaxis{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-4)}.qstats-xaxis-label{flex:1;text-align:center;font-family:var(--font-body);font-size:var(--size-xs);color:var(--color-text-placeholder)}.qstats-meta{margin-top:var(--spacing-28);padding-top:var(--spacing-20);border-top:var(--border-sm) solid var(--color-border-subtle)}.qstats-stats-row{display:flex;gap:var(--spacing-32);flex-wrap:wrap;margin-bottom:var(--spacing-16)}.qstats-stat{display:flex;flex-direction:column;gap:var(--spacing-2)}.qstats-stat-value{font-family:var(--font-body);font-size:var(--size-md);font-weight:var(--weight-bold);color:var(--color-text-default)}.qstats-stat-label{font-size:var(--size-xs);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-placeholder)}.qstats-caption{margin:0;font-size:11px;color:var(--color-text-subtle);text-align:right}.qstats-footnote{margin:var(--spacing-4) 0 0;font-size:10px;color:var(--color-text-placeholder);text-align:right}.qstats-error{display:flex;align-items:center;justify-content:center;height:240px;margin:0;border:var(--border-sm) dashed var(--color-border-subtle);border-radius:var(--rounded-sm);font-size:var(--size-sm);color:var(--color-text-subtle);text-align:center}.motion-pref-bar{margin-top:var(--spacing-16);padding:0 var(--spacing-4)}.demo-signin-panel{margin-top:var(--spacing-16);padding:var(--spacing-14) var(--spacing-16);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-subtle);background:var(--color-surface-container)}.syntax-demo-bar{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-4);margin:0;padding:0;border:none;transition:box-shadow var(--motion-duration-normal) var(--motion-easing-default)}.syntax-demo-bar.syntax-nudge{box-shadow:0 0 0 var(--border-md) var(--color-border-brand);border-radius:var(--rounded-md)}.syntax-demo-toggle{display:flex;align-items:center;gap:var(--spacing-12);cursor:pointer;font-size:12px;font-weight:var(--weight-regular);color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none}.syntax-demo-toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;flex-shrink:0;border:var(--border-sm) solid var(--color-action-tertiary);border-radius:var(--rounded-xs);background:transparent;cursor:pointer;position:relative;transition:background var(--motion-duration-fast) var(--motion-easing-default),border-color var(--motion-duration-fast) var(--motion-easing-default)}.syntax-demo-toggle input:checked{background:var(--color-action-primary);border-color:var(--color-action-primary)}.syntax-demo-toggle input:checked:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M11.5 3.5L5.5 10L2.5 7' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M11.5 3.5L5.5 10L2.5 7' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}.syntax-demo-toggle input:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.syntax-demo-hint{margin:0;padding-left:23px;font-size:11px;line-height:1.45;color:var(--color-text-tertiary)}.login-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:var(--spacing-20)}.login-modal[hidden]{display:none}.login-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-modal-dialog{position:relative;z-index:1;width:100%;max-width:400px;padding:var(--spacing-24);border-radius:var(--rounded-xl);border:none;background:var(--color-surface-container);box-shadow:var(--shadow-lg);color:var(--color-text-default);text-align:left}.login-modal-logo{text-align:center;margin-bottom:var(--spacing-20)}.login-modal-logo svg{display:inline-block}.login-modal-dialog h2{margin:0 0 var(--spacing-16);font-family:var(--font-display);font-size:var(--size-xl);font-weight:var(--weight-black);color:var(--color-text-default);text-align:left}.login-modal-toggle{display:flex;height:38px;border-radius:10px;background:#0000004d;border:var(--border-sm) solid rgba(161,161,161,.3);margin-bottom:var(--spacing-20);overflow:hidden}.login-modal-toggle-btn{flex:1;height:100%;padding:0 var(--spacing-24);border:none;border-radius:10px;background:transparent;color:var(--color-text-subtle);font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:var(--size-md);cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default),color var(--motion-duration-fast) var(--motion-easing-default),border var(--motion-duration-fast) var(--motion-easing-default)}.login-modal-toggle-btn:hover:not(.is-active){color:var(--color-text-default)}.login-modal-toggle-btn.is-active{background:var(--color-action-primary);border:var(--border-sm) solid var(--color-chip-pale-brand);color:var(--color-text-on-brand)}.login-modal-toggle-btn:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.login-modal-benefits{list-style:none;margin:0 auto var(--spacing-20);padding:0;display:flex;flex-direction:column;gap:var(--spacing-8);width:fit-content}.login-modal-benefits li{display:flex;align-items:center;gap:var(--spacing-8);font-size:var(--size-sm);font-weight:var(--weight-regular);color:var(--color-text-subtle)}.login-modal-benefits li svg{width:16px;height:16px;flex-shrink:0;fill:var(--color-action-success)}.login-modal-disclaimer{margin:0 0 var(--spacing-16);font-size:var(--size-sm);color:var(--color-text-placeholder);line-height:1.5}.login-modal-disclaimer--tight{margin-top:-4px}.login-modal-field{margin-bottom:var(--spacing-16)}.login-modal-field label{display:block;font-family:var(--font-body);font-size:var(--size-sm);font-weight:var(--weight-semibold);color:var(--color-text-subtle);margin-bottom:var(--spacing-6)}.login-modal-field input{width:100%;height:var(--height-46);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-default);background:transparent;color:var(--color-text-default);font-family:var(--font-body);font-size:var(--size-md);box-sizing:border-box;transition:border-width var(--motion-duration-fast) var(--motion-easing-default),border-color var(--motion-duration-fast) var(--motion-easing-default)}.login-modal-field input::placeholder{color:var(--color-text-placeholder)}.login-modal-field input:focus{outline:none;border-width:var(--border-md);border-color:var(--color-border-focus)}.login-modal-tos{display:flex;align-items:center;justify-content:center;gap:var(--spacing-12);margin-top:var(--spacing-16);cursor:pointer;font-family:var(--font-body);font-size:var(--size-md);font-weight:var(--weight-regular);line-height:22px;color:var(--color-text-tertiary)}.login-modal-tos input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;flex-shrink:0;border:var(--border-sm) solid var(--color-action-tertiary);border-radius:var(--rounded-xs);background:transparent;cursor:pointer;position:relative;transition:background var(--motion-duration-fast) var(--motion-easing-default),border-color var(--motion-duration-fast) var(--motion-easing-default)}.login-modal-tos input[type=checkbox]:checked{background:var(--color-action-primary);border-color:var(--color-action-primary)}.login-modal-tos input[type=checkbox]:checked:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M11.5 3.5L5.5 10L2.5 7' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M11.5 3.5L5.5 10L2.5 7' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}.login-modal-tos input[type=checkbox]:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.login-modal-tos-link{color:var(--color-action-tertiary);text-decoration:none;font-weight:var(--weight-regular)}.login-modal-tos-link:hover{text-decoration:underline;text-underline-offset:2px}.login-modal-actions{display:flex;flex-direction:column;gap:var(--spacing-12);margin-top:var(--spacing-20)}.login-modal-actions .login-modal-primary{display:flex;align-items:center;justify-content:center;width:100%;height:var(--height-46);padding:0 var(--spacing-16);border-radius:var(--rounded-md);border:none;font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--size-md);letter-spacing:.02em;text-decoration:none;background:var(--color-action-primary);color:var(--color-action-on-primary);cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-default)}.login-modal-actions .login-modal-primary:hover{background:var(--color-action-primary-hover)}.login-modal-actions .login-modal-primary:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.login-modal-signup{text-align:center;font-size:var(--size-md);color:var(--color-text-subtle);line-height:1.5}.login-modal-signup-link{margin:0;padding:0;border:none;background:none;font:inherit;font-weight:var(--weight-regular);color:var(--color-text-link);text-decoration:none;cursor:pointer;transition:text-decoration var(--motion-duration-fast) var(--motion-easing-default)}.login-modal-signup-link:hover{text-decoration:underline;text-underline-offset:2px}.login-modal-signup-link:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px;border-radius:var(--rounded-xs)}.login-modal-demo{margin:var(--spacing-16) 0 0;padding-top:var(--spacing-14);border-top:var(--border-sm) solid var(--color-border-subtle);font-size:12px;color:var(--color-text-tertiary)}.login-modal-demo button{display:block;margin-top:var(--spacing-8);height:var(--height-36);padding:0 var(--spacing-12);border-radius:var(--rounded-md);border:var(--border-sm) solid var(--color-border-subtle);background:var(--color-overlay-grayscale-xxs);color:var(--color-text-subtle);font-family:inherit;font-weight:var(--weight-bold);font-size:12px;cursor:pointer;transition:border-color var(--motion-duration-fast) var(--motion-easing-default),color var(--motion-duration-fast) var(--motion-easing-default)}.login-modal-demo button:hover{border-color:var(--color-border-brand);color:var(--color-text-default)}.login-modal-close{position:absolute;top:var(--spacing-16);right:var(--spacing-16);padding:0;border:none;border-radius:0;background:none;color:var(--color-icon-subtle);width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-easing-default)}.login-modal-close:hover{color:var(--color-icon-default)}.login-modal-close:focus-visible{outline:var(--border-md) solid var(--color-border-focus);outline-offset:2px}.roll-report-dialog{max-width:460px}.roll-report-preview{margin:var(--spacing-12) 0 0;padding:var(--spacing-12) var(--spacing-14);max-height:min(52vh,320px);overflow:auto;font-family:var(--font-mono);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all;color:var(--color-text-default);background:var(--color-surface-sunken);border:var(--border-sm) solid var(--color-border-subtle);border-radius:var(--rounded-md)}.roll-report-actions{margin-top:var(--spacing-14);display:flex;flex-wrap:wrap;gap:var(--spacing-10) var(--spacing-14);align-items:center;justify-content:flex-end}.roll-report-toast{font-size:12px;font-weight:var(--weight-bold);color:var(--color-feedback-success-fg);white-space:nowrap}.sr-hint{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(max-width:719px){.shell{padding:var(--spacing-14) var(--spacing-16) var(--spacing-20)}.hero-top{flex-wrap:nowrap;justify-content:space-between;padding:0 0 var(--spacing-12)}.brand-auth{position:static;order:2;flex-shrink:0}.brand{order:1;min-width:0;flex:1 1 auto}.hero-grid{padding:var(--spacing-14) 0 0;gap:var(--spacing-12)}.hero-preview-band .dicey-stage{width:min(128px,34vw)}.hero-preview-band .dicey-badge{margin-top:var(--spacing-4);font-size:var(--size-xs)}.hero-preview-band .result-stage{min-height:62px;padding:var(--spacing-8) var(--spacing-10)}.hero-preview-band .result-placeholder{font-size:12px;line-height:1.35}.hero-preview-band .result-body{gap:var(--spacing-10)}.hero-preview-band .result-d20-icon{display:none}.hero-preview-band .result-label{font-size:15px}.hero-preview-band .result-total{font-size:var(--size-2xl);padding:var(--spacing-8) var(--spacing-16);min-width:52px}.hero-preview-band .result-breakdown{font-size:var(--size-sm)}.breakdown{flex-wrap:nowrap;overflow:hidden;max-height:var(--height-28)}.breakdown.breakdown--expanded{flex-wrap:wrap;overflow:visible;max-height:none}.die-chip{height:var(--height-28);padding:0 var(--spacing-6);gap:var(--spacing-4);font-size:12px}.die-chip .faces{font-size:10px}.roll-head{flex-direction:row;justify-content:flex-end;align-items:center;margin-bottom:var(--spacing-8);gap:var(--spacing-6) var(--spacing-14)}.roll-head .qty{order:0}.qty input{width:52px;padding:0 var(--spacing-8);font-size:var(--size-sm)}.formula-row{margin-top:var(--spacing-10)}.history-stack{margin-top:var(--spacing-8);padding-top:var(--spacing-8)}.history{max-height:72px}}@media(min-width:400px){.roll-stack>.roll-head h2{display:block;margin-right:auto}.roll-head{justify-content:flex-start}}@media(min-width:720px)and (max-width:899px){.breakdown:not(.breakdown--expanded){flex-wrap:nowrap;overflow:hidden;max-height:var(--height-36)}}#gr-tooltip{position:fixed;top:0;left:0;background:var(--color-surface-tooltip);color:var(--color-text-invert);font-family:var(--font-body);font-size:13px;font-weight:var(--weight-semibold);line-height:1.4;padding:8px;border-radius:6px;box-shadow:0 2px 4px #1f29370f,0 4px 6px #1f29371a;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease;z-index:9999;min-width:80px;max-width:240px;text-align:center;white-space:normal}#gr-tooltip.is-visible{opacity:1;visibility:visible}#gr-tooltip:after{content:"";position:absolute;top:100%;left:var(--gr-tooltip-arrow-x, 50%);transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-surface-tooltip)}
