/* Authoritative roll presentation: motion never chooses an outcome. */
.dice-dialog{max-width:960px;width:min(960px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:24px;border:1px solid #799a83;border-radius:22px;background:#101d19;color:#f3efdd;box-shadow:0 20px 100px #000b;overflow:auto}.dice-dialog::backdrop{background:#07100cce;backdrop-filter:blur(5px)}.dice-dialog header,.dice-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.dice-dialog header h2{margin:4px 0 18px}.dice-dialog footer{position:static;margin-top:20px;font-size:.85rem}.dice-dialog footer label{display:flex;gap:8px;align-items:center}.dice-dialog header small,.dice-roll-card>small{letter-spacing:.14em;font-size:.66rem;color:#b0bfac}.dice-roll-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}.dice-roll-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid #344a3d;border-radius:16px;padding:16px;background:linear-gradient(140deg,#23372b,#14221c)}.dice-roll-card h3{font-size:1rem;line-height:1.4;margin:7px 0 12px;overflow-wrap:anywhere}.dice-faces{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;perspective:650px}.animated-die{position:relative;width:90px;height:110px;flex:0 0 90px;transform-style:preserve-3d;filter:drop-shadow(0 8px 4px #0006)}.animated-die svg{width:90px;height:90px;display:block}.die-body{fill:#276247;stroke:#b0e09d;stroke-width:3;stroke-linejoin:round}.die-facets{fill:none;stroke:#9ccfa0;stroke-width:1.5;opacity:.55}.die-face{fill:#163626;stroke:#91ba81;stroke-width:1}.animated-die>span{position:absolute;top:28px;left:0;right:0;text-align:center;font-size:24px;line-height:30px;font-weight:800;color:#faf4d8}.animated-die>small{position:absolute;top:92px;left:0;right:0;text-align:center;font-size:11px;color:#c5d2bd}.dice-outcome{text-align:center;font-size:1.15rem;font-weight:750;margin:10px 0;transition:opacity .15s}.dice-outcome strong{display:block;font-size:2rem}.dice-detail,.dice-modifiers{font-size:.78rem;line-height:1.5;margin:8px 0;color:#c1cbbb}.dice-modifiers{color:#a7b6a6}.rolling .dice-outcome,.rolling .dice-detail,.rolling .dice-modifiers{visibility:hidden}.rolling .animated-die{animation:die-tumble 1.35s cubic-bezier(.12,.64,.3,1) both;animation-delay:var(--die-delay)}.dice-confetti{position:absolute;inset:0;pointer-events:none;z-index:-1}.dice-confetti i{position:absolute;left:50%;top:58%;width:5px;height:12px;background:hsl(calc(var(--n)*25 + 35) 70% 70%);opacity:0;transform:rotate(var(--angle))}.settled .dice-roll-card[data-outcome=success]:not(.opponent),.settled .dice-roll-card[data-outcome=critical-success]:not(.opponent){border-color:#d7d879;animation:roll-victory .65s ease-out}.settled .dice-roll-card[data-outcome=success]:not(.opponent) .dice-confetti i,.settled .dice-roll-card[data-outcome=critical-success]:not(.opponent) .dice-confetti i{animation:roll-confetti 1s ease-out both;animation-delay:calc(var(--n)*12ms)}.settled [data-outcome=critical-success] .dice-outcome{color:#f4d66e}.settled [data-outcome=critical-failure]:not(.opponent){border-color:#bd686a;animation:roll-shatter .55s ease-out}.settled [data-outcome=critical-failure]:not(.opponent) .die-body{fill:#6c2835;stroke:#f0a9a1}.settled [data-outcome=critical-failure] .dice-outcome{color:#ffbbb3}.settled [data-outcome=failure]:not(.opponent) .dice-outcome{color:#c6b6a4;animation:roll-failure .35s ease-out}.opponent{background:linear-gradient(140deg,#30252d,#191e21)}.opponent .die-body{fill:#4b384a;stroke:#c8b3cd}.opponent .die-face{fill:#302532;stroke:#c8b3cd}.opponent .dice-outcome{font-size:1rem}.reduced-motion *{animation:none!important;transition:none!important}.reduced-motion .dice-confetti{display:none}
@keyframes die-tumble{0%{transform:translateY(-20px) rotateX(35deg) rotateZ(-25deg)}25%{transform:translateY(10px) rotateX(390deg) rotateZ(160deg)}55%{transform:translateY(-7px) rotateX(660deg) rotateZ(310deg)}80%{transform:translateY(3px) rotateX(715deg) rotateZ(357deg)}100%{transform:translateY(0) rotateX(720deg) rotateZ(360deg)}}
@keyframes roll-victory{0%{box-shadow:inset 0 0 0 #c6dc8700}45%{box-shadow:inset 0 0 35px #c6dc8755}100%{box-shadow:inset 0 0 0 #c6dc8700}}
@keyframes roll-confetti{0%{opacity:1;transform:rotate(var(--angle)) translateY(0)}75%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-180px) rotate(160deg)}}
@keyframes roll-shatter{0%,100%{transform:translateX(0)}15%{transform:translateX(-7px) rotate(-1deg)}35%{transform:translateX(6px) rotate(1deg)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
@keyframes roll-failure{0%{opacity:0;transform:translateY(5px)}100%{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.dice-dialog{padding:16px}.dice-dialog header{align-items:flex-start}.dice-dialog header h2{font-size:1.35rem}.dice-dialog footer{flex-wrap:wrap}.animated-die{width:66px;height:84px;flex-basis:66px}.animated-die svg{width:66px;height:66px}.animated-die>span{top:20px;font-size:19px;line-height:24px}.animated-die>small{top:68px}}
@media(prefers-reduced-motion:reduce){.dice-dialog *{animation:none!important;transition:none!important}.dice-confetti{display:none}}

.dice-dialog .dice-announcement,.dice-dialog .dice-live-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dice-dialog input[type=checkbox]{width:auto;margin:0;padding:0}.dice-dialog footer{padding:0;border:0;background:transparent;min-height:0;box-shadow:none}

.dice-faces:has(.animated-die:nth-child(3)) .animated-die{width:56px;height:74px;flex-basis:56px}.dice-faces:has(.animated-die:nth-child(3)) svg{width:56px;height:56px}.dice-faces:has(.animated-die:nth-child(3)) .animated-die>span{top:17px;font-size:16px;line-height:21px}.dice-faces:has(.animated-die:nth-child(3)) .animated-die>small{top:58px}

.dice-dialog header{position:sticky;top:0;background:#101d19;z-index:3;padding:5px 0}


.dice-table{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #bfa67455;margin:6px 0 12px;box-shadow:inset 0 0 30px #0008}.has-dice-table .dice-faces{gap:8px;min-height:24px}.has-dice-table .animated-die{animation:none;transform:none;filter:none;flex:0 0 auto;width:auto!important;height:auto!important;display:flex;gap:4px;align-items:center;font-size:12px}.has-dice-table .animated-die svg{display:none}.has-dice-table .animated-die>span,.has-dice-table .animated-die>small{position:static;font-size:12px;line-height:20px}.has-dice-table .animated-die>span{color:#faf0c7}.has-dice-table .animated-die>small{color:#aebcaf}.has-dice-table .animated-die>small:after{content:':'}.has-dice-table .animated-die>small{order:-1}.rolling .has-dice-table .dice-faces{visibility:hidden}.dice-dialog button{border:1px solid #8a9c88;border-radius:8px;padding:10px 14px;background:#26382f;color:#f3efdd;cursor:pointer;font:inherit}.dice-dialog *{box-sizing:border-box}.dice-dialog h2{color:#f3efdd}.dice-dialog h3{color:#f3efdd}.dice-dialog footer label{color:#cad4c5}
.dice-dialog .dice-table{max-width:560px;margin-left:auto;margin-right:auto}

.dice-header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dice-reroll-status{font-size:.85rem;color:#edda95;margin:0 0 5px}.dice-reroll-note{font-size:.75rem;color:#b7c6b7;margin:0 0 10px}.dice-dialog button:disabled{opacity:.5;cursor:default}.dice-dialog .dice-reroll:not(:disabled){border-color:#dfc478;background:#43513a}.dice-dialog:has(.dice-reroll) header{flex-wrap:wrap}.dice-dialog:has(.dice-reroll) header h2{margin-bottom:8px}@media(max-width:600px){.dice-dialog:has(.dice-reroll) header{gap:5px}.dice-header-actions{width:100%;justify-content:flex-start}.dice-header-actions button{font-size:.85rem;padding:9px 12px}}
