.dr-stage{gap:var(--sp-4);grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid}@media (min-width:1024px){.dr-stage{min-height:calc(100dvh - 68px - var(--sp-8))}}.dr-controls{gap:var(--sp-3);flex-direction:column;display:flex}.dr-ctl-row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.dr-ctl-label{font-family:var(--font-mono);font-size:var(--fs-tag);letter-spacing:var(--tracking-tag);text-transform:uppercase;color:var(--ink-3);flex:none;width:64px}.dr-count-seg{flex:1;gap:6px;display:flex}.dr-count-seg button{cursor:pointer;border:2px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:42px;height:42px;color:var(--ink-2);font-family:var(--font-mono);box-shadow:var(--shadow-chunky);transition:transform var(--dur-1) var(--ease-bounce), background var(--dur-1), color var(--dur-1);flex:none;font-size:.95rem;font-weight:700}.dr-count-seg button:hover{transform:translateY(-2px)}.dr-count-seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--line)}.dr-count-seg button:disabled{opacity:.5;pointer-events:none}.dr-tray{background:var(--bg-2);border:2px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-chunky);flex-direction:column;justify-content:center;align-items:center;min-height:clamp(220px,38dvh,360px);display:flex;position:relative;overflow:hidden}.dr-tray .dice-canvas{border-radius:inherit;cursor:grab;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.dr-tray .dice-canvas:active{cursor:grabbing}.dr-total{left:50%;bottom:var(--sp-4);align-items:center;gap:var(--sp-3);border-radius:var(--r-pill);background:var(--accent-soft);border:2px solid var(--accent-line);opacity:0;pointer-events:none;white-space:nowrap;padding:10px 20px;display:inline-flex;position:absolute;transform:translate(-50%)}.dr-total.show{opacity:1;animation:dr-pop var(--dur-3) var(--ease-bounce)}.dr-total__label{font-family:var(--font-mono);font-size:var(--fs-tag);letter-spacing:var(--tracking-tag);text-transform:uppercase;color:var(--ink-2)}.dr-total__num{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);font-size:2rem;font-weight:800;line-height:1}.dr-tray__hint{left:50%;bottom:var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-tag);letter-spacing:var(--tracking-tag);text-transform:uppercase;color:var(--ink-3);white-space:nowrap;position:absolute;transform:translate(-50%)}.dr-roll-btn{cursor:pointer;width:100%;font-family:var(--font-body);border:2px solid var(--line);border-radius:var(--r-btn);background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-chunky-lg);transition:transform var(--dur-1) var(--ease-bounce), box-shadow var(--dur-1) var(--ease-bounce);justify-content:center;align-items:center;gap:.6em;padding:1.1em 1.4em;font-size:1.15rem;font-weight:700;display:inline-flex}.dr-roll-btn:hover:not(:disabled){box-shadow:11px 11px 0 0 var(--shadow-col);transform:translate(-3px,-3px)}.dr-roll-btn:active:not(:disabled){box-shadow:3px 3px 0 0 var(--shadow-col);transform:translate(3px,3px)}.dr-roll-btn:disabled{cursor:default;opacity:.62}.dr-roll-btn .dr-roll-ico{transition:transform var(--dur-2) var(--ease-bounce);font-size:1.2em}.dr-roll-btn:hover:not(:disabled) .dr-roll-ico{transform:rotate(-18deg)}.dr-roll-btn.is-rolling .dr-roll-ico{animation:.6s linear infinite dr-spin-ico}.dr-mute-btn{cursor:pointer;border:2px solid var(--line);border-radius:var(--r-pill);background:var(--surface);width:36px;height:34px;transition:transform var(--dur-1) var(--ease-bounce), background var(--dur-1);box-shadow:var(--shadow-chunky);flex:none;justify-content:center;align-items:center;margin-left:auto;padding:0;font-size:15px;line-height:1;display:inline-flex}.dr-mute-btn:hover{transform:translateY(-2px)}.dr-mute-btn[aria-pressed=true]{background:var(--bg-2)}.dr-action-row{align-items:center;gap:var(--sp-3);display:flex}.dr-history{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-chunky);max-height:calc(100dvh - 68px - var(--sp-8));flex-direction:column;display:flex;overflow:hidden}.dr-history__head{align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:2px solid var(--line-soft);flex:none;display:flex}.dr-history__title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.05rem;font-weight:800}.dr-history__count{font-family:var(--font-mono);font-size:var(--fs-tag);letter-spacing:var(--tracking-tag);text-transform:uppercase;color:var(--ink-3);margin-left:auto}.dr-history__scroll{min-height:0;padding:var(--sp-3);gap:var(--sp-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.dr-history__scroll::-webkit-scrollbar{width:8px}.dr-history__scroll::-webkit-scrollbar-thumb{background:var(--line-soft);border-radius:99px}.dr-history__empty{justify-content:center;align-items:center;gap:var(--sp-3);min-height:0;padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--ink-3);flex-direction:column;display:flex}.dr-history__empty-ico{border:2px dashed var(--line-soft);border-radius:var(--r-md);width:56px;height:56px;color:var(--ink-3);place-items:center;display:grid}.dr-history__empty p{font-size:var(--fs-sm);color:var(--ink-2);max-width:22ch;margin:0}.dr-history__empty-mono{font-family:var(--font-mono);letter-spacing:var(--tracking-tag);text-transform:uppercase;color:var(--ink-3);font-size:10px}.dr-history__clear{margin:0 var(--sp-3) var(--sp-3);border:2px solid var(--line-soft);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-tag);letter-spacing:var(--tracking-tag);text-transform:uppercase;transition:color var(--dur-1), border-color var(--dur-1);background:0 0;flex:none;padding:8px}.dr-history__clear:hover{color:var(--accent);border-color:var(--accent-line)}.dr-entry{border:2px solid var(--line-soft);border-radius:var(--r-md);padding:var(--sp-3);gap:var(--sp-2);background:var(--bg);animation:dr-entry-in var(--dur-3) var(--ease-bounce);flex-direction:column;display:flex}.dr-entry__top{align-items:baseline;gap:var(--sp-2);display:flex}.dr-entry__label{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-sm);color:var(--ink);letter-spacing:.02em}.dr-entry__time{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:var(--tracking-tag);margin-left:auto;font-size:10px}.dr-entry__vals{flex-wrap:wrap;gap:5px;display:flex}.dr-chip{border:1.5px solid var(--line-soft);background:var(--surface);min-width:22px;height:22px;font-family:var(--font-mono);color:var(--ink-2);border-radius:7px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.dr-entry__total{font-family:var(--font-mono);font-size:var(--fs-tag);letter-spacing:var(--tracking-tag);text-transform:uppercase;color:var(--ink-3)}.dr-entry__total b{color:var(--accent);margin-left:4px;font-size:1.05rem}.dr-history__strip-label{display:none}@keyframes dr-pop{0%{opacity:0;transform:translate(-50%)scale(.6)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes dr-spin-ico{to{transform:rotate(360deg)}}@keyframes dr-entry-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (max-width:680px){.dr-stage{gap:var(--sp-3)}.dr-history{flex-direction:row;align-items:stretch;max-height:none;overflow:visible}.dr-history__head{display:none}.dr-history__scroll{padding:var(--sp-2);gap:var(--sp-2);flex-direction:row;overflow:auto hidden}.dr-entry{flex:none;width:132px}.dr-history__clear{display:none}.dr-history__strip-label{writing-mode:vertical-rl;border-right:2px solid var(--line-soft);font-family:var(--font-mono);letter-spacing:var(--tracking-tag);text-transform:uppercase;color:var(--ink-3);flex:none;justify-content:center;align-items:center;padding:4px;font-size:10px;display:flex;transform:rotate(180deg)}.dr-history__empty{padding:var(--sp-3);gap:var(--sp-3);flex-direction:row}.dr-history__empty-ico{flex:none;width:40px;height:40px}.dr-history__empty p{font-size:var(--fs-sm);text-align:left;max-width:none}.dr-ctl-label{width:100%}.dr-total__num{font-size:1.6rem}}@media (prefers-reduced-motion:reduce){.dr-roll-btn.is-rolling .dr-roll-ico,.dr-entry,.dr-total.show{animation:none!important}}
