:root{--rd-ink: #14171f;--rd-body: #3d4250;--rd-muted: #5b6170;--rd-line: #e5e7eb;--rd-paper: #ffffff;--rd-soft: #f4f5f7;--rd-accent: #0d9488;--rd-accent-dark: #0f766e;--rd-felt: #0b1d1b;--rd-felt-2: #12302c;--rd-die: #fbfaf6;--rd-edge: #d9d4c7;--rd-pip: #1c1f26;--rd-hot: #22c55e;--rd-cold: #f87171;--rd-on-felt: #e6f0ee;--rd-on-felt-muted: rgba(230, 240, 238, .68);--primary: #0d9488;--primary-dark: #0f766e;--border: #e5e7eb;--surface: #ffffff;--shadow-soft: 0 10px 30px rgba(15, 23, 42, .08);--surface-muted: #f4f5f7;--text-main: #14171f;--text-muted: #5b6170;}
.rd-sprite{position: absolute;width: 0;height: 0;overflow: hidden;}
.rd-app{display: grid;grid-template-columns: minmax(0, 380px) minmax(0, 1fr);gap: 20px;align-items: start;margin: 8px 0 56px;}
.rd-panel{background: var(--rd-paper);border: 1px solid var(--rd-line);border-radius: 20px;padding: 20px;box-shadow: var(--shadow-soft);color: var(--rd-ink);}
.rd-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 4px 12px;font-size: 12.5px;color: var(--rd-muted);padding-bottom: 12px;margin-bottom: 16px;border-bottom: 1px dashed var(--rd-line);}
.rd-byline .author-link{color: var(--rd-accent-dark);font-weight: 700;text-decoration: none;}
.rd-byline .author-link:hover{text-decoration: underline;}
.rd-group{border: 0;padding: 0;margin: 0 0 18px;min-width: 0;}
.rd-label,.rd-group legend{display: block;float: none;width: auto;font-size: 12px;font-weight: 700;letter-spacing: .06em;text-transform: uppercase;line-height: 1.3;color: var(--rd-muted);margin: 0 0 8px;padding: 0;}
.rd-notation{display: flex;align-items: center;border: 1.5px solid var(--rd-line);border-radius: 12px;padding: 0 12px;background: var(--rd-soft);transition: border-color .15s, box-shadow .15s, background .15s;}
.rd-notation:focus-within{border-color: var(--rd-accent);box-shadow: 0 0 0 3px rgba(13, 148, 136, .18);background: #fff;}
.rd-notation.is-error{border-color: #dc2626;box-shadow: 0 0 0 3px rgba(220, 38, 38, .14);}
.rd-notation input{flex: 1;min-width: 0;border: 0;background: transparent;padding: 11px 0;font: 600 16px/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: var(--rd-ink);outline: none;}
.rd-notation input::placeholder{color: #9aa0ab;font-weight: 500;}
.rd-help{font-size: 12.5px;line-height: 1.45;color: var(--rd-muted);margin: 7px 0 0;}
.rd-help.is-error{color: #b91c1c;font-weight: 600;}
.rd-sides{display: grid;grid-template-columns: repeat(7, minmax(0, 1fr));gap: 6px;}
.rd-side,.rd-mode{position: relative;margin: 0;cursor: pointer;}
.rd-side input,.rd-mode input{position: absolute;opacity: 0;pointer-events: none;}
.rd-side span{display: flex;flex-direction: column;align-items: center;gap: 5px;padding: 9px 2px 8px;border: 1.5px solid var(--rd-line);border-radius: 12px;font: 700 12.5px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: var(--rd-ink);background: #fff;transition: border-color .15s, background .15s, color .15s;}
.rd-side svg{width: 24px;height: 24px;fill: var(--rd-soft);stroke: var(--rd-muted);stroke-width: 7;stroke-linejoin: round;overflow: visible;}
.rd-side:hover span,.rd-mode:hover span{border-color: #b8c0cc;}
.rd-side input:checked + span{border-color: var(--rd-accent);background: rgba(13, 148, 136, .08);color: var(--rd-accent-dark);}
.rd-side input:checked + span svg{fill: rgba(13, 148, 136, .2);stroke: var(--rd-accent);}
.rd-side input:focus-visible + span,.rd-mode input:focus-visible + span{outline: 2px solid var(--rd-accent);outline-offset: 2px;}
.rd-pair{display: grid;grid-template-columns: 1fr 1fr;gap: 12px;}
.rd-stepper{display: flex;align-items: stretch;border: 1.5px solid var(--rd-line);border-radius: 12px;overflow: hidden;background: #fff;transition: border-color .15s;}
.rd-stepper:focus-within{border-color: var(--rd-accent);}
.rd-step{flex: 0 0 40px;border: 0;background: var(--rd-soft);color: var(--rd-ink);font-size: 20px;font-weight: 600;line-height: 1;cursor: pointer;transition: background .15s;}
.rd-step:hover{background: #e7e9ee;}
.rd-step:focus-visible{outline: 2px solid var(--rd-accent);outline-offset: -2px;}
.rd-stepper input{flex: 1;min-width: 0;width: 100%;border: 0;text-align: center;font: 700 18px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: var(--rd-ink);padding: 10px 0;outline: none;-moz-appearance: textfield;appearance: textfield;}
.rd-stepper input::-webkit-outer-spin-button,.rd-stepper input::-webkit-inner-spin-button{-webkit-appearance: none;margin: 0;}
.rd-modes{display: flex;flex-wrap: wrap;gap: 6px;}
.rd-mode span{display: inline-block;padding: 8px 12px;border-radius: 999px;border: 1.5px solid var(--rd-line);font-size: 13.5px;font-weight: 600;line-height: 1.2;color: var(--rd-ink);background: #fff;transition: background .15s, border-color .15s, color .15s;}
.rd-mode input:checked + span{background: var(--rd-ink);border-color: var(--rd-ink);color: #fff;}
.rd-roll{width: 100%;display: flex;align-items: center;justify-content: center;gap: 10px;border: 0;border-radius: 14px;padding: 15px 20px;background: var(--rd-accent);color: #fff;font-size: 17px;font-weight: 800;cursor: pointer;box-shadow: 0 10px 24px rgba(13, 148, 136, .28);transition: transform .15s, background .15s;}
.rd-roll:hover{background: var(--rd-accent-dark);transform: translateY(-1px);}
.rd-roll:active{transform: translateY(1px);}
.rd-roll:focus-visible{outline: 3px solid rgba(13, 148, 136, .4);outline-offset: 3px;}
.rd-roll svg{width: 20px;height: 20px;fill: none;stroke: currentColor;stroke-width: 2;}
.rd-hint{text-align: center;font-size: 12.5px;color: var(--rd-muted);margin: 10px 0 0;}
.rd-hint kbd{font: 600 11px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;padding: 3px 6px;border-radius: 5px;border: 1px solid var(--rd-line);border-bottom-width: 2px;background: var(--rd-soft);color: var(--rd-ink);}
.rd-felt{min-width: 0;background: radial-gradient(700px 300px at 50% 0%, rgba(45, 212, 191, .16), transparent 70%), linear-gradient(180deg, var(--rd-felt-2), var(--rd-felt));border-radius: 20px;padding: 22px;color: var(--rd-on-felt);box-shadow: 0 24px 50px rgba(8, 24, 22, .28);}
.rd-tray{min-height: 210px;display: flex;flex-wrap: wrap;align-items: center;align-content: center;justify-content: center;gap: 14px;padding: 20px 10px;border-radius: 16px;background: rgba(0, 0, 0, .2);box-shadow: inset 0 2px 12px rgba(0, 0, 0, .4);}
.rd-die{display: flex;flex-direction: column;align-items: center;gap: 6px;width: var(--rd-size, 96px);cursor: pointer;border-radius: 14px;outline: none;transition: opacity .2s, transform .15s;}
.rd-die:hover{transform: translateY(-3px);}
.rd-die:focus-visible{box-shadow: 0 0 0 3px #5eead4;}
.rd-die svg{display: block;width: 100%;height: auto;overflow: visible;filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .35));}
.rd-body > *{fill: var(--rd-die);stroke: var(--rd-edge);stroke-width: 2;stroke-linejoin: round;}
.rd-facet{fill: none;stroke: var(--rd-edge);stroke-width: 1.5;}
.rd-pip{fill: var(--rd-pip);}
.rd-die text{fill: var(--rd-pip);font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;font-weight: 800;}
.rd-die.is-idle text{fill: #a3aba9;}
.rd-die.is-max .rd-body > *{stroke: var(--rd-hot);stroke-width: 4;}
.rd-die.is-max svg{filter: drop-shadow(0 0 10px rgba(34, 197, 94, .55)) drop-shadow(0 6px 8px rgba(0, 0, 0, .35));}
.rd-die.is-min .rd-body > *{stroke: var(--rd-cold);stroke-width: 4;}
.rd-die.is-dropped{opacity: .35;}
.rd-die-note{min-height: 16px;font: 600 12px/1.3 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: var(--rd-on-felt-muted);text-align: center;word-break: break-all;}
.rd-die-note del{opacity: .75;}
.rd-tray.is-rolling .rd-die svg{animation: rd-tumble .36s ease-in-out infinite;}
.rd-tray.is-landed .rd-die svg{animation: rd-land .22s ease-out;}
@keyframes rd-tumble{0%{transform: rotate(0) translateY(0);}25%{transform: rotate(-14deg) translateY(-6px);}50%{transform: rotate(10deg) translateY(2px);}75%{transform: rotate(-6deg) translateY(-3px);}100%{transform: rotate(0) translateY(0);}}
@keyframes rd-land{from{transform: scale(.86);}to{transform: scale(1);}}
.rd-result{display: flex;align-items: flex-end;justify-content: space-between;flex-wrap: wrap;gap: 14px;margin: 18px 4px 0;}
.rd-total{display: flex;flex-direction: column;}
.rd-total-label{font-size: 12px;font-weight: 700;letter-spacing: .08em;text-transform: uppercase;color: var(--rd-on-felt-muted);}
.rd-total output{font: 800 clamp(44px, 7vw, 64px)/1 ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;color: #fff;letter-spacing: -.02em;font-variant-numeric: tabular-nums;}
.rd-actions{display: flex;flex-wrap: wrap;gap: 8px;}
.rd-ghost{display: inline-flex;align-items: center;gap: 6px;border: 1px solid rgba(255, 255, 255, .18);background: rgba(255, 255, 255, .06);color: var(--rd-on-felt);border-radius: 10px;padding: 8px 12px;font-size: 13.5px;font-weight: 600;cursor: pointer;transition: background .15s, border-color .15s;}
.rd-ghost:hover{background: rgba(255, 255, 255, .12);border-color: rgba(255, 255, 255, .3);}
.rd-ghost:disabled{opacity: .45;cursor: default;}
.rd-ghost:focus-visible{outline: 2px solid #5eead4;outline-offset: 2px;}
.rd-ghost svg{width: 15px;height: 15px;fill: none;stroke: currentColor;stroke-width: 2;stroke-linecap: round;stroke-linejoin: round;}
.rd-breakdown{margin: 8px 4px 0;font: 500 14px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: rgba(230, 240, 238, .85);word-break: break-word;}
.rd-stats{display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: 8px;margin: 18px 0 0;}
.rd-stat,.rd-box{background: rgba(255, 255, 255, .05);border: 1px solid rgba(255, 255, 255, .09);border-radius: 12px;min-width: 0;}
.rd-stat{padding: 10px 12px;}
.rd-stat dt{font-size: 11px;font-weight: 700;letter-spacing: .06em;text-transform: uppercase;color: var(--rd-on-felt-muted);margin: 0 0 4px;}
.rd-stat dd{margin: 0;font: 700 18px/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: #fff;font-variant-numeric: tabular-nums;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.rd-split{display: grid;grid-template-columns: 1.25fr 1fr;gap: 12px;margin-top: 12px;}
.rd-box{padding: 12px 14px;}
.rd-box h3{font-size: 12px;font-weight: 700;letter-spacing: .06em;text-transform: uppercase;color: var(--rd-on-felt-muted);margin: 0 0 10px;}
.rd-tally{display: flex;align-items: flex-end;gap: 3px;height: 124px;}
.rd-bar{flex: 1;display: flex;flex-direction: column;align-items: center;justify-content: flex-end;height: 100%;min-width: 0;}
.rd-bar em{font: normal 600 10px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: var(--rd-on-felt-muted);margin-bottom: 3px;}
.rd-bar i{display: block;width: 100%;max-width: 28px;height: var(--h, 0%);min-height: 2px;border-radius: 4px 4px 0 0;background: linear-gradient(180deg, #5eead4, #14b8a6);transition: height .25s ease;}
.rd-bar b{font: 600 10px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: rgba(230, 240, 238, .8);margin-top: 5px;white-space: nowrap;}
.rd-log{list-style: none;margin: 0;padding: 0;max-height: 124px;overflow-y: auto;font: 500 13px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;}
.rd-log li{display: flex;align-items: baseline;gap: 8px;padding: 5px 0;border-bottom: 1px solid rgba(255, 255, 255, .07);}
.rd-log li:last-child{border-bottom: 0;}
.rd-log-n{flex: 0 0 auto;color: #5eead4;}
.rd-log-d{flex: 1;min-width: 0;color: rgba(230, 240, 238, .6);overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.rd-log strong{color: #fff;}
.rd-log .rd-log-empty{color: var(--rd-on-felt-muted);border: 0;}
.rd-read{margin: 0 auto 48px;color: var(--rd-ink);}
.rd-read h2,.rd-limits h2{font-size: clamp(1.4rem, 2.6vw, 1.85rem);font-weight: 800;line-height: 1.2;margin: 0 0 12px;color: var(--rd-ink);}
.rd-read h3{font-size: 1.08rem;font-weight: 700;margin: 0 0 6px;color: var(--rd-ink);}
.rd-read p,.rd-read li,.rd-limits li{font-size: 1.02rem;line-height: 1.7;color: var(--rd-body);}
.rd-read code{font: 600 .9em ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;background: var(--rd-soft);border: 1px solid var(--rd-line);border-radius: 6px;padding: 1px 6px;color: var(--rd-accent-dark);white-space: nowrap;}
.rd-table-wrap{overflow-x: auto;border: 1px solid var(--rd-line);border-radius: 14px;margin: 14px 0;}
.rd-ref{width: 100%;border-collapse: collapse;font-size: .95rem;}
.rd-ref th,.rd-ref td{padding: 11px 14px;text-align: left;border-bottom: 1px solid var(--rd-line);vertical-align: top;color: var(--rd-body);}
.rd-ref thead th{background: var(--rd-soft);font-size: 12px;letter-spacing: .05em;text-transform: uppercase;color: var(--rd-muted);}
.rd-ref tbody tr:last-child > *{border-bottom: 0;}
.rd-ref td:last-child{font-weight: 700;color: var(--rd-ink);font-variant-numeric: tabular-nums;white-space: nowrap;}
.rd-curve-fig{margin: 16px 0;}
.rd-curve{display: grid;grid-template-columns: repeat(11, minmax(0, 1fr));align-items: end;gap: 6px;height: 210px;padding: 16px 16px 0;border: 1px solid var(--rd-line);border-radius: 14px;background: linear-gradient(180deg, #fff, var(--rd-soft));}
.rd-curve div{display: flex;flex-direction: column;align-items: center;justify-content: flex-end;height: 100%;}
.rd-curve span{font: 700 11px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: var(--rd-muted);margin-bottom: 4px;}
.rd-curve i{display: block;width: 100%;height: calc(var(--n) * 24px);border-radius: 6px 6px 0 0;background: rgba(13, 148, 136, .75);}
.rd-curve .is-peak i{background: var(--rd-accent-dark);}
.rd-curve b{font: 700 13px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;padding: 8px 0;color: var(--rd-ink);}
.rd-curve-fig figcaption{font-size: .9rem;color: var(--rd-muted);margin-top: 8px;}
.rd-cards{display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 14px;margin-top: 14px;}
.rd-card{border: 1px solid var(--rd-line);border-radius: 16px;padding: 18px;background: #fff;}
.rd-card p{font-size: .97rem;margin: 0;}
.rd-card-num{display: inline-block;font: 700 12.5px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color: var(--rd-accent-dark);background: rgba(13, 148, 136, .1);border-radius: 999px;padding: 6px 10px;margin-bottom: 12px;}
.rd-games{list-style: none;padding: 0;margin: 14px 0 0;}
.rd-games li{display: grid;grid-template-columns: 220px 1fr;gap: 16px;padding: 13px 0;margin: 0;border-bottom: 1px solid var(--rd-line);}
.rd-games li:last-child{border-bottom: 0;}
.rd-games strong{color: var(--rd-ink);}
.rd-limits{margin: 0 auto 48px;padding: 22px 24px;border-radius: 18px;background: #f0fdfa;border: 1px solid #99f6e4;color: var(--rd-ink);}
.rd-limits ul{margin: 0;padding-left: 20px;}
.rd-limits strong{color: var(--rd-ink);}
@media (max-width: 991.98px){.rd-app{grid-template-columns: 1fr;}.rd-cards{grid-template-columns: 1fr;}}
@media (max-width: 575.98px){.rd-panel,.rd-felt{padding: 14px;border-radius: 16px;}.rd-sides{grid-template-columns: repeat(4, minmax(0, 1fr));}.rd-tray{min-height: 170px;gap: 10px;}.rd-stats{grid-template-columns: repeat(2, minmax(0, 1fr));}.rd-split{grid-template-columns: 1fr;}.rd-games li{grid-template-columns: 1fr;gap: 2px;}.rd-curve{gap: 3px;padding: 12px 8px 0;height: 190px;}.rd-curve i{height: calc(var(--n) * 21px);}.rd-limits{padding: 18px 16px;}}
@media (prefers-reduced-motion: reduce){.rd-tray.is-rolling .rd-die svg,.rd-tray.is-landed .rd-die svg{animation: none;}.rd-bar i,.rd-roll,.rd-die{transition: none;}}