.dr{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--sp-5);margin-block:var(--sp-5) var(--sp-6)}.dr>h2{margin:0 0 var(--sp-4);font-size:var(--step-2)}.dr-shared[hidden]{display:none}.dr-shared{align-items:center;gap:var(--sp-2) var(--sp-4);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);font-size:var(--step--1);flex-wrap:wrap;display:flex}.dr-shared p{flex:16rem;margin:0}.dr-shared button{min-height:44px;padding-inline:var(--sp-3);color:var(--accent);cursor:pointer;background:0 0;border:0;font-weight:650}.dr-stage{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5) var(--sp-4);gap:var(--sp-4);text-align:center;align-content:center;justify-items:center;min-height:11rem;display:grid}.dr-dice{justify-content:center;gap:var(--sp-3);flex-wrap:wrap;max-width:100%;display:flex}.dr-group{justify-content:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.dr-group+.dr-group{border-left:1px dashed var(--border-strong);padding-left:var(--sp-3);margin-left:var(--sp-1)}.dr-empty{color:var(--text-muted);margin:0}.dr-die{font-variant-numeric:tabular-nums;width:3.25rem;height:3.25rem;font-weight:700;font-size:var(--step-1);color:var(--pip);--shape:none;flex:none;place-items:center;display:grid;position:relative}.dr-die:before,.dr-die:after{content:"";clip-path:var(--shape);border-radius:var(--radius-sm);position:absolute;inset:0}.dr-die:before{background:var(--die-edge)}.dr-die:after{background:var(--die-face);inset:2px}.dr-die>.dr-face{z-index:1;line-height:1;position:relative}.dr-die[data-sides="4"]{--shape:polygon(50% 4%, 96% 92%, 4% 92%)}.dr-die[data-sides="4"]>.dr-face{font-size:var(--step-0);transform:translateY(22%)}.dr-die[data-sides="8"]{--shape:polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)}.dr-die[data-sides="10"],.dr-die[data-sides="100"]{--shape:polygon(50% 0%, 96% 34%, 78% 100%, 22% 100%, 4% 34%)}.dr-die[data-sides="12"]{--shape:polygon(50% 0%, 100% 38%, 81% 97%, 19% 97%, 0% 38%)}.dr-die[data-sides="20"]{--shape:polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%)}.dr-die[data-sides="2"],.dr-die[data-sides="3"]{--shape:circle(48% at 50% 50%)}.dr-die[data-kept="0"]{opacity:.42}.dr-die[data-kept="0"]>.dr-face{text-decoration:line-through}.dr-die.is-crit:before{background:var(--accent)}.dr-die.is-crit>.dr-face{color:var(--accent)}.dr-die.is-fumble:before{background:var(--text-muted)}.dr-die.is-fumble>.dr-face{color:var(--text-muted)}.dr-die.is-pips>.dr-face{grid-template:repeat(3,1fr)/repeat(3,1fr);gap:12%;width:66%;height:66%;display:grid}.dr-die.is-pips i{background:var(--pip);aspect-ratio:1;border-radius:50%;place-self:center;width:100%}.dr-holder{justify-items:center;gap:var(--sp-1);display:grid}.dr-hold{min-height:24px;padding:0 var(--sp-2);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:999px;font-size:.72rem;font-weight:700}.dr-hold[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.dr-total-wrap{gap:var(--sp-1);display:grid}.dr-total-label{font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.dr-total{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(2.6rem,2rem + 3vw,4rem);font-weight:700;line-height:1}.dr-breakdown,.dr-prob{font-size:var(--step--1);color:var(--text-muted);margin:0}.dr-breakdown{font-family:var(--font-mono);word-break:break-word}.dr-controls{gap:var(--sp-4);margin-top:var(--sp-4);display:grid}.dr-quick{gap:var(--sp-2);flex-wrap:wrap;display:flex}.dr-quick button{min-width:3.4rem;min-height:44px;padding-inline:var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-weight:650}.dr-quick button:hover{background:var(--surface-2)}.dr-quick button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.dr-fields{gap:var(--sp-4);flex-wrap:wrap;align-items:flex-end;display:flex}.dr-field{gap:var(--sp-2);flex:10rem;display:grid}.dr-field.dr-field-notation{flex:2 15rem}.dr-field>span{font-size:var(--step--1);color:var(--text-muted);font-weight:650}.dr-input{width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);font-family:var(--font-mono)}.dr-stepper{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);align-items:stretch;display:flex;overflow:hidden}.dr-stepper button{background:var(--surface-2);min-width:44px;min-height:44px;font-size:var(--step-1);cursor:pointer;border:0;font-weight:700;line-height:1}.dr-stepper button:hover{background:var(--accent-soft);color:var(--accent)}.dr-stepper input{text-align:center;width:100%;min-width:3ch;min-height:44px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;-moz-appearance:textfield;background:0 0;border:0;flex:auto}.dr-stepper input::-webkit-outer-spin-button,.dr-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dr-stepper[aria-disabled=true]{opacity:.5}.dr-error{min-height:0;color:var(--accent);font-size:var(--step--1);margin:0;font-weight:600}.dr-error:empty{display:none}.dr-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.dr-roll{font-size:var(--step-1);flex:12rem}.dr-hint{font-size:var(--step--1);color:var(--text-muted);flex-basis:100%;margin:0}.dr-tools{gap:var(--sp-2);flex-wrap:wrap;margin-left:auto;display:flex}.dr-tool{align-items:center;gap:var(--sp-2);min-width:44px;min-height:44px;padding-inline:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-muted);font-size:var(--step--1);cursor:pointer;font-weight:650;display:inline-flex}.dr-tool:hover{color:var(--text);border-color:var(--border-strong)}.dr-tool[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.dr-panels{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.dr-box{border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4);background:var(--surface)}.dr-box .dr-box-label{margin:0 0 var(--sp-3);font-size:var(--step-0);letter-spacing:.02em;font-weight:700}.dr-box-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.dr-linkish{min-height:44px;padding:var(--sp-1) var(--sp-2);color:var(--accent);font-size:var(--step--1);cursor:pointer;background:0 0;border:0;font-weight:650}.dr-linkish:hover{text-decoration:underline}.dr-history-list{gap:var(--sp-1);font-size:var(--step--1);margin:0;padding:0;list-style:none;display:grid}.dr-history-list li{justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-family:var(--font-mono);margin:0;display:flex}.dr-history-list li:last-child{border-bottom:0}.dr-history-list b{font-variant-numeric:tabular-nums}.dr-note{margin:var(--sp-2) 0 0;font-size:var(--step--1);color:var(--text-muted)}.dr-stats{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(5rem,1fr));margin:0;display:grid}.dr-stats div{gap:2px;display:grid}.dr-stats dt{font-size:var(--step--1);color:var(--text-muted)}.dr-stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.dr-preset-list{gap:var(--sp-2);margin:0 0 var(--sp-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.dr-preset-list li{border:1px solid var(--border-strong);border-radius:999px;align-items:stretch;margin:0;display:flex;overflow:hidden}.dr-preset-list button{background:var(--surface);cursor:pointer;font-size:var(--step--1);min-height:44px;padding-inline:var(--sp-3);border:0;font-weight:650}.dr-preset-list button:hover{background:var(--surface-2)}.dr-preset-list .dr-preset-del{color:var(--text-muted);border-left:1px solid var(--border);padding-inline:var(--sp-2);font-size:var(--step-0)}.dr-preset-add{gap:var(--sp-2);flex-wrap:wrap;display:flex}.dr-preset-add input{flex:8rem}.dr-preset-add button{flex:none}.dr:fullscreen{padding:var(--sp-6) var(--gutter);background:var(--bg);border-radius:0;overflow-y:auto}.dr:fullscreen .dr-stage{min-height:45vh}.dr:fullscreen .dr-total{font-size:clamp(4rem,14vw,12rem)}.dr:fullscreen .dr-die{width:5.5rem;height:5.5rem;font-size:var(--step-3)}.dr:fullscreen .dr-panels{display:none}@keyframes dr-tumble{0%{transform:translateY(0)rotate(0)scale(1)}35%{transform:translateY(-16px)rotate(140deg)scale(1.06)}70%{transform:translateY(4px)rotate(280deg)scale(.97)}to{transform:translateY(0)rotate(360deg)scale(1)}}@keyframes dr-settle{0%{transform:scale(1.14)}60%{transform:scale(.97)}to{transform:scale(1)}}.dr-die.is-rolling{animation:.42s linear infinite dr-tumble}.dr-die.is-settling{animation:.16s ease-out dr-settle}@media (prefers-reduced-motion:reduce){.dr-die.is-rolling,.dr-die.is-settling{animation:none}}.sr-grid{gap:var(--sp-3);margin-block:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));display:grid}.sr-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:var(--sp-4) var(--sp-3);text-align:center}.sr-name{font-size:var(--step--1);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-2);font-weight:650}.sr-score{font-size:var(--step-3);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.sr-mod{font-size:var(--step--1);color:var(--text-muted)}.sr-dice{justify-content:center;gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.sr-dice .dr-die{width:2.1rem;height:2.1rem;font-size:var(--step--1)}.sr-summary{gap:var(--sp-3) var(--sp-5);font-size:var(--step--1);color:var(--text-muted);margin-block:var(--sp-4);flex-wrap:wrap;display:flex}.sr-summary b{color:var(--text)}.yn-stage{justify-items:center;gap:var(--sp-4);padding-block:var(--sp-5);text-align:center;display:grid}.yn-answer{letter-spacing:-.04em;font-size:clamp(3rem,2rem + 8vw,6rem);font-weight:700;line-height:1}.yn-answer[data-answer=no]{color:var(--text-muted)}.yn-answer[data-answer=yes]{color:var(--accent)}.yn-because{color:var(--text-muted);font-size:var(--step--1);margin:0}.yn-die{width:5rem;height:5rem;font-size:var(--step-2)}.yn-modes{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}
