:root{--ink:#f2f5f8;--ink-dim:#f2f5f89e;--glass:#1218209e;--glass-line:#ffffff24;--accent:#4ade80;--poly-4:polygon(50% 15%, 88% 82%, 12% 82%);--poly-6:polygon(16% 16%, 84% 16%, 84% 84%, 16% 84%);--poly-8:polygon(50% 12%, 88% 50%, 50% 88%, 12% 50%);--poly-10:polygon(50% 12%, 88% 40%, 50% 90%, 12% 40%);--poly-12:polygon(50% 12%, 90% 38%, 75% 88%, 25% 88%, 10% 38%);--poly-20:polygon(50% 12%, 90% 32%, 90% 68%, 50% 88%, 10% 68%, 10% 32%);--panel-padding:16px;--roll-height:64px;--gear-size:48px;--ad-height:62px;--ad-bottom:0px;--mark-height:48px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.poly[data-sides="4"]{clip-path:var(--poly-4)}.poly[data-sides="6"]{clip-path:var(--poly-6)}.poly[data-sides="8"]{clip-path:var(--poly-8)}.poly[data-sides="10"]{clip-path:var(--poly-10)}.poly[data-sides="12"]{clip-path:var(--poly-12)}.poly[data-sides="20"]{clip-path:var(--poly-20)}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;background:#0b0e13;margin:0;font-family:Hiragino Kaku Gothic ProN,Yu Gothic UI,Noto Sans JP,system-ui,sans-serif;overflow:hidden}#stage{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.ad{z-index:2;min-height:var(--ad-height);padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);border-bottom:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);background:#080b10b8;justify-items:center;display:grid;position:fixed;top:0;left:0;right:0}.ad[hidden]{display:none}.ad:has(ins[data-ad-status=unfilled]){display:none}.ad .adsbygoogle{width:100%;max-width:970px;display:block}.mark{top:calc(max(16px, env(safe-area-inset-top)) + var(--ad-bottom));left:max(16px, env(safe-area-inset-left));height:var(--mark-height);aspect-ratio:319.448/78.37;filter:brightness(0)invert();opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none;width:auto;position:fixed}.debug{top:calc(max(20px, env(safe-area-inset-top)) + var(--ad-bottom) + var(--mark-height) + 8px);border:1px solid var(--glass-line);color:#8fe3ad;font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:pre;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0a0e13d1;border-radius:8px;padding:8px 10px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;position:fixed;left:24px}body:has(.ad:not([hidden])) .debug{top:calc(var(--ad-height) + 12px)}.debug__graph,.debug .tuner{white-space:normal}.tuner{border-top:1px solid var(--glass-line);pointer-events:auto;max-height:42vh;margin-top:8px;padding-top:8px;overflow-y:auto}.tuner__switches{flex-wrap:wrap;gap:4px 10px;margin-bottom:6px;display:flex}.tuner__switches label{cursor:pointer;align-items:center;gap:3px;display:flex}.tuner__switches input{accent-color:#8fe3ad;margin:0}.tuner__title{color:var(--ink-dim);letter-spacing:.08em;margin:6px 0 2px}.tuner__row{cursor:pointer;grid-template-columns:92px 1fr 42px;align-items:center;gap:6px;display:grid}.tuner__row--changed .tuner__name,.tuner__row--changed .tuner__value{color:#ffd166}.tuner__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tuner__value{text-align:right;font-variant-numeric:tabular-nums}.tuner__row input[type=range]{accent-color:#8fe3ad;width:100%;height:12px;margin:0}.tuner__reset{border:1px solid var(--glass-line);width:100%;color:var(--ink-dim);cursor:pointer;background:#ffffff0f;border-radius:6px;margin-top:8px;padding:4px;font-family:inherit;font-size:11px}.tuner__reset:hover{color:var(--ink);background:#ffffff29}.debug__graph{background:#00000059;border-radius:4px;margin-top:6px;display:block}.result[hidden]{opacity:0;display:none}.result{opacity:1;transition:opacity .1s ease, display .1s allow-discrete}@starting-style{.result:not([hidden]){opacity:0}}.panel,.result{border:1px solid var(--glass-line);background:var(--glass);-webkit-backdrop-filter:blur(14px);border-radius:16px;padding:16px 18px;position:fixed;box-shadow:0 18px 40px #00000073}.panel{left:50%;bottom:max(24px, env(safe-area-inset-bottom));padding:var(--panel-padding) 18px;align-items:center;gap:20px;display:flex;transform:translate(-50%)}.pick{border:1px solid var(--glass-line);height:44px;color:var(--ink);letter-spacing:.06em;cursor:pointer;background:#ffffff0f;border-radius:12px;align-items:center;gap:9px;padding:0 16px;font-family:inherit;font-size:13px;transition:background .15s,transform .1s;display:flex}.pick:hover:not(:disabled){background:#ffffff29}.pick:active:not(:disabled){transform:scale(.96)}.pick:disabled{opacity:.32;cursor:default}.pick__count{font-variant-numeric:tabular-nums;color:var(--accent);font-size:16px;font-weight:700}.gear{left:max(16px, env(safe-area-inset-left));bottom:calc(max(24px, env(safe-area-inset-bottom)) + (var(--roll-height) + 2 * var(--panel-padding) + 2px - var(--gear-size)) / 2);width:var(--gear-size);height:var(--gear-size);border:1px solid var(--glass-line);background:var(--glass);-webkit-backdrop-filter:blur(14px);color:var(--ink-dim);cursor:pointer;touch-action:manipulation;border-radius:50%;place-items:center;padding:0;transition:background .15s,color .15s,transform .1s;display:grid;position:fixed;box-shadow:0 8px 20px #00000059}.gear:hover{color:var(--ink);background:#28323ecc}.gear:active{transform:scale(.96)}.gear__icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linejoin:round;width:24px;height:24px}.picker{opacity:0;width:min(344px,100vw - 24px);transition:opacity .1s ease, display .1s allow-discrete, overlay .1s allow-discrete;border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(18px);color:var(--ink);background:#121820db;border-radius:20px;margin:auto;padding:18px;position:relative;overflow:visible;box-shadow:0 24px 60px #00000080}.picker__close{border:1px solid var(--glass-line);width:36px;height:36px;color:var(--ink-dim);cursor:pointer;touch-action:manipulation;background:#1e2733;border-radius:50%;place-items:center;padding:0;font-family:inherit;font-size:22px;line-height:1;transition:background .15s,color .15s;display:grid;position:absolute;top:-14px;right:-14px;box-shadow:0 4px 12px #00000073}.picker__close:hover{color:var(--ink);background:#2b3846}.picker__close:active{transform:scale(.92)}.settings{width:min(400px,100vw - 24px);padding:0}.settings__body{border-radius:inherit;max-height:calc(100dvh - 64px);padding:20px 20px 18px;overflow-y:auto}.settings__title{letter-spacing:.02em;margin:0 0 14px;font-size:18px;font-weight:700}.settings__field{gap:6px;margin:0 0 18px;display:grid}.settings__label,.settings__heading{letter-spacing:.08em;color:var(--ink-dim);font-size:12px;font-weight:600}.settings__heading{margin:0 0 8px}.settings__select{border:1px solid var(--glass-line);height:44px;color:var(--ink);background:#0000004d;border-radius:12px;padding:0 12px;font-family:inherit;font-size:15px}.settings__select option{color:var(--ink);background:#121821}.settings__support{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;display:grid}.support{letter-spacing:.02em;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-width:0;height:38px;padding:0 8px;font-size:12px;font-weight:700;text-decoration:none;transition:filter .15s,transform .1s;display:flex}.support:hover{filter:brightness(1.08)}.support:active{transform:translateY(1px)}.support__icon{object-fit:contain;flex:none;width:17px;height:17px}.support--ofuse{color:#2882a7;background:#fff;border:1px solid #2882a7}.support--kofi{color:#fff;background:#72a4f2}.settings__about{border-top:1px solid var(--glass-line);padding-top:16px}.about__text{color:var(--ink);margin:0 0 12px;font-size:14px;line-height:1.6}.about__list{color:var(--ink-dim);margin:0 0 16px;padding-left:18px;font-size:13px;line-height:1.6}.about__list li+li{margin-top:4px}.about__copyright{border-top:1px solid var(--glass-line);letter-spacing:.02em;color:var(--ink-dim);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin:0;padding-top:12px;font-size:11px;display:flex}.about__copyright-link{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--glass-line);text-decoration-color:var(--glass-line);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}.about__copyright-link:hover,.about__copyright-link:focus-visible{color:var(--ink);text-decoration-color:currentColor}.about__link{color:var(--ink-dim)}.about__link:hover{color:var(--ink)}.about__link[hidden]{display:none}.picker[open]{opacity:1}@starting-style{.picker[open]{opacity:0}}.picker::backdrop{opacity:0;transition:opacity .1s ease, display .1s allow-discrete, overlay .1s allow-discrete;background:#06090d80}.picker[open]::backdrop{opacity:1}@starting-style{.picker[open]::backdrop{opacity:0}}.picker__mode{border:1px solid var(--glass-line);background:#ffffff0a;border-radius:14px;gap:4px;margin:6px 0 12px;padding:4px;display:flex}.mode{height:40px;color:var(--ink-dim);letter-spacing:.06em;cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-radius:10px;flex:1;padding:0;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,color .15s}.mode:hover:not([aria-pressed=true]){color:var(--ink);background:#ffffff14}.mode--same[aria-pressed=true]{color:#23252a;background:#f7f4ea}.mode--different[aria-pressed=true]{background:var(--palette,#c9b8e8);color:#23252a}.picker__grid{grid-template-columns:repeat(2,1fr);gap:10px;max-height:calc(100vh - 196px);display:grid;overflow-y:auto}.die{border:1px solid var(--glass-line);background:#ffffff0a;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:12px 6px;transition:background .15s,border-color .15s;display:flex}.die--active{background:#4ade801f;border-color:#4ade8080}.die__shape{font-variant-numeric:tabular-nums;background:#ffffff29;place-items:center;width:54px;height:54px;font-size:16px;font-weight:700;line-height:1;transition:background .15s,color .15s;display:grid}.die--active .die__shape{color:#04180d;background:#4ade809e}.die__shape[data-sides="4"]{align-content:end;padding-bottom:11px}.die__shape[data-sides="10"]{padding-bottom:4px}.stepper{align-items:center;gap:4px;display:flex}.step{border:1px solid var(--glass-line);width:44px;height:44px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#ffffff14;border-radius:50%;place-items:center;padding:0;font-family:inherit;font-size:21px;line-height:1;transition:background .15s,transform .1s;display:grid}.step:hover:not(:disabled){background:#fff3}.step:active:not(:disabled){transform:scale(.92)}.step:disabled{opacity:.3;cursor:default}.stepper__count{text-align:center;font-variant-numeric:tabular-nums;min-width:32px;font-size:18px;font-weight:700}.picker__actions{gap:10px;margin-top:14px;display:flex}.picker__ok{color:#04180d;letter-spacing:.1em;cursor:pointer;background:linear-gradient(#34d17a,#17a05a);border:none;border-radius:14px;flex:1;height:52px;font-family:inherit;font-size:17px;font-weight:700;transition:filter .15s,transform .1s}.picker__ok:hover:not(:disabled){filter:brightness(1.08)}.picker__ok:active:not(:disabled){transform:translateY(1px)}.picker__ok:disabled{filter:grayscale(.7)brightness(.7);cursor:default}.actions{align-items:center;gap:10px;display:flex}.reset{border:1px solid var(--glass-line);height:52px;color:var(--ink-dim);letter-spacing:.06em;cursor:pointer;background:#ffffff0f;border-radius:12px;padding:0 20px;font-family:inherit;font-size:13px;transition:background .15s,transform .1s}.reset:hover:not(:disabled){color:var(--ink);background:#ffffff29}.reset:active:not(:disabled){transform:scale(.96)}.reset:disabled{opacity:.32;cursor:default}.roll{min-width:210px;height:var(--roll-height);color:#04180d;letter-spacing:.08em;cursor:pointer;background:linear-gradient(#34d17a,#17a05a);border:none;border-radius:16px;padding:0 44px;font-size:19px;font-weight:700;transition:filter .15s,transform .1s;box-shadow:0 8px 20px #17a05a5c}.roll:hover:not(:disabled){filter:brightness(1.08)}.roll:active:not(:disabled){transform:translateY(1px)}.roll:disabled{filter:grayscale(.7)brightness(.7);cursor:default;box-shadow:none}.result{left:50%;bottom:calc(max(24px, env(safe-area-inset-bottom)) + 96px);background:#1218206b;flex-direction:column;gap:12px;min-width:188px;max-width:min(470px,100vw - 48px);display:flex;transform:translate(-50%)}.result__faces{flex-wrap:wrap;align-items:center;gap:8px 14px;min-height:34px;display:flex}.group{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.group__label{letter-spacing:.06em;min-width:26px;color:var(--ink-dim);font-size:11px;font-weight:600}.tally{align-items:center;gap:2px;margin-right:8px;display:flex}.tally__times{color:var(--ink-dim);margin-right:1px;font-size:12px;font-weight:600}.tally__count{font-variant-numeric:tabular-nums;color:var(--ink);font-size:17px;font-weight:600}.face{color:#23252a;font-variant-numeric:tabular-nums;background:#f7f4ea;place-items:center;width:36px;height:36px;font-size:16px;font-weight:700;animation:.24s ease-out backwards pop;display:grid}.face[data-sides="4"]{align-content:end;padding-bottom:5px}.face[data-sides="10"]{padding-bottom:3px}.face--one{color:#c0392b}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.result__total{border-top:1px solid var(--glass-line);justify-content:space-between;align-items:baseline;padding-top:10px;display:flex}.result__total-label{letter-spacing:.1em;color:var(--ink-dim);font-size:11px}.result__total-value{font-variant-numeric:tabular-nums;color:var(--accent);font-size:26px;font-weight:700}@media (min-width:641px){.panel{max-width:calc(50vw - 24px);left:75%}.roll{min-width:min(210px,50vw - 150px);padding:0 clamp(16px,50vw - 300px,44px)}.result{left:calc(25% + 32px);bottom:max(24px, env(safe-area-inset-bottom));max-width:min(470px,50vw - 88px)}}@media (max-width:640px){:root{--panel-padding:12px;--roll-height:52px;--gear-size:44px;--ad-height:52px;--mark-height:36px}.mark{top:calc(max(12px, env(safe-area-inset-top)) + var(--ad-bottom));left:max(10px, env(safe-area-inset-left))}.gear{left:max(10px, env(safe-area-inset-left))}.result{flex-direction:row;align-items:center;gap:8px;max-width:none;padding:8px 10px;left:12px;right:12px;transform:none}.result__faces{flex:1;column-gap:8px;min-width:0;max-height:40vh;overflow-y:auto}.face{font-size:19px}.result__faces:has(.group__label){--chip:clamp(26px, calc((100vw - 190px) / 6), 36px);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.result__faces:has(.group__label) .group{gap:4px}.result__faces:has(.group__label) .group__label{min-width:24px}.result__faces:has(.group__label) .group>.face{width:var(--chip);height:var(--chip);font-size:calc(var(--chip) * .52);flex-shrink:0}.face[data-sides="10"][data-digits="2"]{letter-spacing:-.04em;font-size:16px}.result__faces:has(.group__label) .group>.face[data-sides="10"][data-digits="2"]{font-size:calc(var(--chip) * .44)}.tally .face[data-sides="10"][data-digits="2"]{font-size:13px}.result__total{border-top:none;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:0;padding-top:0}.result__total-label{font-size:9px}.result__total-value{text-align:right;min-width:3ch;font-size:26px;line-height:1.1}.tally{gap:1px;margin-right:6px}.tally .face{width:30px;height:30px;font-size:15px}.tally .face[data-sides="4"]{padding-bottom:3px}.tally .face[data-sides="10"]{padding-bottom:2px}.tally__count{font-size:18px}.tally__times{font-size:11px}.panel{left:calc(max(10px, env(safe-area-inset-left)) + var(--gear-size) + 10px);padding:var(--panel-padding);align-items:stretch;right:12px;transform:none}.actions{flex:1;gap:8px}.pick{height:52px;padding:0 14px}.roll{flex:1;min-width:0;padding:0 20px;font-size:17px}}@media (min-width:384px) and (max-width:640px){.result__faces:has(.group__label):not(:has(.tally)):not(:has(.group>:nth-child(4))){--chip:clamp(28px, calc((100vw - 215px) / 6), 36px);grid-template-columns:repeat(3,minmax(0,1fr))}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#stage[hidden],.panel[hidden]{display:none}.unsupported{text-align:center;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:fixed;inset:0}.unsupported[hidden]{display:none}.unsupported__title{margin:0;font-size:20px;font-weight:600}.unsupported__text{max-width:34em;color:var(--ink-dim);margin:0;font-size:15px;line-height:1.7}.not-found{text-align:center;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:fixed;inset:0}.not-found__code{letter-spacing:.04em;margin:0;font-size:clamp(64px,18vw,120px);font-weight:700;line-height:1}.not-found__title{margin:0;font-size:20px;font-weight:600}.not-found__link{border:1px solid var(--glass-line);background:var(--glass);color:var(--accent);border-radius:999px;margin-top:12px;padding:10px 20px;font-size:15px;text-decoration:none}.not-found__link:hover,.not-found__link:focus-visible{border-color:var(--accent)}.legal{padding:40px 24px 64px;position:fixed;inset:0;overflow-y:auto}.legal__body{max-width:44em;margin:0 auto}.legal__title{margin:0 0 6px;font-size:clamp(24px,5vw,32px);font-weight:700}.legal__updated{letter-spacing:.04em;color:var(--ink-dim);margin:0 0 28px;font-size:12px}.legal__heading{letter-spacing:.04em;margin:28px 0 8px;font-size:15px;font-weight:700}.legal p{color:var(--ink);margin:0 0 10px;font-size:14px;line-height:1.8}.legal__list{margin:4px 0 0;padding-left:18px;font-size:13px;line-height:1.9}.legal a{color:var(--accent)}.legal__back{border:1px solid var(--glass-line);background:var(--glass);color:var(--accent);border-radius:999px;margin-top:32px;padding:10px 20px;font-size:15px;text-decoration:none;display:inline-block}.legal__back:hover,.legal__back:focus-visible{border-color:var(--accent)}.noscript{color:var(--ink);text-align:center;place-content:center;gap:8px;padding:24px;font-size:15px;display:grid;position:fixed;inset:0}.splash{z-index:3;background:#0b0e13;grid-auto-flow:row;align-content:center;justify-items:center;gap:18px;padding:24px;transition:opacity .25s;display:grid;position:fixed;inset:0}.splash__icon{width:64px;height:64px}.splash__text{color:var(--ink-dim);text-align:center;margin:0;font-size:14px}.splash[hidden]{display:none}.splash--done{opacity:0;pointer-events:none}.splash__ring{border:3px solid #ffffff24;border-top-color:#ffffffb8;border-radius:50%;width:44px;height:44px;animation:.9s linear infinite splash-spin}@keyframes splash-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.splash__ring{animation:1.8s ease-in-out infinite splash-pulse}@keyframes splash-pulse{50%{opacity:.3}}}
