@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;600;800&display=swap');
:root{font-family:'Noto Sans JP',sans-serif;color:#f2f3f7;background:#131720;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 0,#1e2430 0,transparent 65%)}button,input,select{font:inherit}button{cursor:pointer;color:#f2f3f7;background:#232936;border:1px solid #363d4b;border-radius:9px;padding:10px 16px}button:hover{filter:brightness(1.13)}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #e9bc61;outline-offset:4px}main{max-width:800px;margin:auto;padding:44px 22px 110px}.intro{text-align:center;margin-bottom:30px}h1{font-size:clamp(25px,4.2vw,42px);line-height:1.5;margin:0;font-weight:800;letter-spacing:.02em}.table,.leaderboard{border:1px solid #2b303b;border-radius:20px;background:linear-gradient(160deg,#191e28,#0c1017);box-shadow:0 18px 48px #0003,inset 0 1px 0 #ffffff05;padding:24px}.table{text-align:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stats>div{border:1px solid #2a303c;background:#0c1018;border-radius:12px;padding:12px}.stats span{display:block;color:#9ba3b2;font-size:11px;letter-spacing:.1em}.stats strong{display:block;font-size:29px;line-height:1.4;font-variant-numeric:tabular-nums}.dice-stage{height:285px;display:grid;place-items:center;perspective:850px;position:relative}.dice-stage:after{content:'';position:absolute;bottom:28px;width:170px;height:25px;border-radius:50%;background:#0008;filter:blur(12px)}.die{--size:132px;--half:66px;--ivory:#faf8f0;--shade:#dcd8cf;--pip:#303744;width:var(--size);height:var(--size);position:relative;transform-style:preserve-3d;transform:rotateX(-24deg) rotateY(-32deg);z-index:1}.face{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:12px;padding:22px;border-radius:18px;border:1px solid #bdbab2;background:linear-gradient(145deg,var(--ivory) 30%,var(--shade));box-shadow:inset 0 0 4px #fff8,inset 0 -6px 10px #0001;backface-visibility:hidden}.front{transform:translateZ(var(--half))}.back{transform:rotateY(180deg) translateZ(var(--half))}.right{transform:rotateY(90deg) translateZ(var(--half))}.left{transform:rotateY(-90deg) translateZ(var(--half))}.top{transform:rotateX(90deg) translateZ(var(--half))}.bottom{transform:rotateX(-90deg) translateZ(var(--half))}.pip{border-radius:50%;background:var(--pip);box-shadow:inset 2px 2px 3px #0007,0 1px 0 #fff8}.pip.empty{visibility:hidden}.die[data-value="2"]{transform:rotateX(-24deg) rotateY(-122deg)}.die[data-value="3"]{transform:rotateX(-114deg) rotateZ(32deg)}.die[data-value="4"]{transform:rotateX(66deg) rotateZ(-32deg)}.die[data-value="5"]{transform:rotateX(-24deg) rotateY(58deg)}.die[data-value="6"]{transform:rotateX(-24deg) rotateY(148deg)}.die.black{--ivory:#353b46;--shade:#12151d;--pip:#f4f3ef}.die.gold{--ivory:#ffdf80;--shade:#bd8a28;--pip:#654516}#message{min-height:28px;font-size:14px;margin:4px 0 22px;line-height:1.7}.primary{width:100%;background:linear-gradient(#d65d55,#b13d39);border:1px solid #ba4944;box-shadow:0 8px 22px #b6343426;font-weight:800;padding:16px;color:#fff}.cost{font-size:11px;color:#9ca5b5;margin:12px 0 20px}.history-wrap{border-top:1px solid #2b303c;padding-top:16px}.history-wrap>span{font-size:11px;color:#939dac}#history{min-height:36px;font-family:serif;font-size:27px;letter-spacing:5px;overflow-wrap:anywhere}#history:empty:after{content:'—';color:#7c8595;font-size:18px}.text{background:transparent;border:0;font-size:12px;padding:9px 0;color:#c8ced8}.rules-button{display:block;margin-top:15px}.rules-button:before{content:'▸ ';color:#a1aaba}.leaderboard{margin-top:22px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}h2{font-size:20px;margin:0}.leaderboard ol{width:100%;padding:0;list-style-position:inside;margin:20px 0 0}.leaderboard li{padding:14px 12px;border-top:1px solid #2a303c;font-size:14px;overflow-wrap:anywhere}.leaderboard li::marker{color:#8f99aa}.leaderboard li span{float:right;font-size:12px;color:#bbc3d0}#error{color:#ffaaa2;font-size:13px;white-space:pre-wrap}#toolbox{position:fixed;right:20px;bottom:20px;border-radius:25px;background:#1d2431;box-shadow:0 6px 24px #0005;font-size:13px}dialog{width:calc(100% - 32px);max-width:520px;max-height:85vh;overflow:auto;border:1px solid #3a4353;border-radius:16px;background:#171d28;color:#f2f3f7;padding:24px;box-shadow:0 24px 80px #0008}dialog::backdrop{background:#050810b8;backdrop-filter:blur(4px)}.dialoghead{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialoghead button{font-size:22px;padding:2px 12px}.note{font-size:11px;color:#9ca6b7;line-height:1.8}dl{margin:24px 0 0}dt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:16px}dt b{font-size:13px}em{font-style:normal;font-weight:800;color:#e8c16f;margin-left:auto}dd{margin:8px 0 20px;padding-bottom:18px;border-bottom:1px solid #303848;font-size:12px;color:#aab4c5;line-height:1.8}dialog section{border-top:1px solid #303848;padding:10px 0}dialog h3{font-size:14px}output{margin-left:8px}#breath{font-size:18px;text-align:center}#record label{display:block;margin:18px 0 10px;font-size:13px}#record>div{display:flex;gap:8px}input,select{padding:10px;border:1px solid #3a4455;border-radius:7px;background:#0c111a;color:#fff}input{min-width:0;width:100%}#record button{white-space:nowrap}#restart{margin-top:12px}@media(max-width:520px){main{padding:26px 14px 90px}.table,.leaderboard{padding:17px;border-radius:15px}.stats>div{padding:10px 4px}.stats strong{font-size:25px}.dice-stage{height:255px}.intro{margin-bottom:22px}h1{font-size:25px}.die{--size:116px;--half:58px}.face{padding:18px;gap:10px}.leaderboard li{font-size:13px}}@media(prefers-reduced-motion:no-preference){.die{transition:transform .45s ease-out}.die.rolling{animation:tumble .6s linear infinite}@keyframes tumble{0%{transform:rotateX(-24deg) rotateY(-32deg)}100%{transform:rotateX(336deg) rotateY(688deg)}}#breath:not(:empty){animation:breathe 10s ease-in-out infinite}@keyframes breathe{0%,100%{transform:scale(.92)}40%{transform:scale(1.04)}}}
