:root{color-scheme:dark;--paper:#080808;--ink:#f5f0e5;--muted:#c2b9a5;--gold:#d9bc78;--gold-soft:#f3dda4;--line:#51452d;--panel:#13120f;--spring:cubic-bezier(.22,1.35,.42,1);font-family:system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(circle at 50% 28%,#4a37194d,transparent 37%),#080808;-webkit-tap-highlight-color:transparent}button,a,input,select{touch-action:manipulation}button,input,select{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold-soft);outline-offset:3px}
.home-bar{position:sticky;top:0;z-index:30;display:flex;width:100%;min-height:calc(52px + env(safe-area-inset-top));align-items:center;justify-content:center;gap:10px;border-bottom:1px solid #f4dfa5;background:linear-gradient(110deg,#b18a38,#f0d98e 48%,#b18a38);color:#090806;padding-top:env(safe-area-inset-top);box-shadow:0 8px 28px #0009,inset 0 1px #fff8;font-size:.88rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.home-bar:before{content:"\2190";font-size:1.15rem}.home-bar:focus-visible{outline:3px solid #fff;outline-offset:-5px}.preview-capture .home-bar{display:none}.preview-capture .game-shell{min-height:100svh}[hidden]{display:none!important}
.game-shell{width:min(100%,480px);height:calc(100svh - 52px - env(safe-area-inset-top));min-height:620px;margin:auto;padding:15px 18px calc(9px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.game-identity{min-width:0;display:flex;flex-direction:column;gap:3px}.game-identity h1{margin:0;color:var(--gold);font:500 31px/1 Georgia,serif;letter-spacing:-1px;white-space:nowrap}.player-name{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.player-name:empty{display:none}.top-actions{display:flex;gap:5px}.icon-button{width:40px;height:40px;border:1px solid #554625;background:#15130e;color:#ecd59c;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:23px;line-height:1;transition:background .2s,transform .3s var(--spring)}.icon-button:hover{background:#272218}.icon-button:active{transform:scale(.92)}.icon-button:disabled{opacity:.45}.info-icon,.info-control{font:italic bold 21px Georgia,serif}
.scorebar{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:11px;padding-bottom:11px;border-bottom:1px solid var(--line)}.scorebar.is-timer-hidden{grid-template-columns:repeat(2,1fr)}.scorebar>div{text-align:center;border-right:1px solid var(--line)}.scorebar>div:last-child,.scorebar.is-timer-hidden>div:nth-last-child(2){border:0}.scorebar>div[hidden]{display:none}.scorebar span{display:block;color:var(--muted);font-size:10px;letter-spacing:1.3px}.scorebar strong{display:flex;align-items:baseline;justify-content:center;font-size:25px;line-height:1.15;font-weight:550;font-variant-numeric:tabular-nums}.scorebar strong b{font:inherit}.scorebar small{color:var(--muted);font-size:13px;font-weight:500}.play-area{display:flex;flex:1;min-height:0;flex-direction:column}.message{min-height:39px;margin:0 0 10px;color:#ddd3bd;text-align:center;font-size:13px;line-height:1.45}
.box{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:14px 10px 17px;border:1px solid #7c6436;border-radius:15px;background:linear-gradient(145deg,#241c0f,#0c0b09 72%);box-shadow:inset 0 0 0 4px #090806,inset 0 0 0 5px #41341d,0 14px 32px #000a;perspective:900px}.number-tile{position:relative;min-width:0;padding:0;border:0;background:transparent;aspect-ratio:.82;transform-style:preserve-3d;transition:transform .65s var(--spring),opacity .4s}.number-tile:not(:disabled):hover{transform:translateY(-3px)}.number-tile:not(:disabled):active{transform:translateY(-1px) scale(.96)}.tile-face{position:absolute;inset:0;display:grid;place-items:center;border:1px solid #e5cf91;border-radius:7px;background:linear-gradient(145deg,#f4ead0,#bca66d);box-shadow:0 5px 0 #695329,0 8px 13px #0008;color:#17130b;font:600 clamp(23px,8vw,34px)/1 Georgia,serif;backface-visibility:hidden}.tile-hinge{position:absolute;z-index:2;left:18%;right:18%;bottom:-7px;height:7px;border:1px solid #92743a;border-radius:4px;background:#19140c}.number-tile.is-selected{transform:translateY(-7px)}.number-tile.is-selected .tile-face{border-color:#fff4bd;box-shadow:0 5px 0 #876b32,0 0 0 3px #e9ca7855,0 12px 22px #000b}.number-tile.is-selected .tile-face:after{content:"✓";position:absolute;right:4px;top:3px;display:grid;width:17px;height:17px;place-items:center;border-radius:50%;background:#17130b;color:var(--gold-soft);font:700 11px/1 system-ui}.number-tile.is-closed{transform:rotateX(-78deg) translateY(3px);opacity:.36}.number-tile.is-closed .tile-face{background:#17140d;color:#d9bc78}.dice-stage{display:flex;justify-content:center;gap:25px;margin:22px auto 16px;perspective:700px}.die{position:relative;width:82px;aspect-ratio:1;border:1px solid #806a39;border-radius:18px;background:linear-gradient(145deg,#f4ead0,#cdb983);box-shadow:0 8px 0 #6b5528,0 15px 25px #0009;color:#15120b;will-change:transform}.die-face{position:absolute;inset:0;overflow:hidden;border-radius:inherit}.die.is-spinning{animation:dice-tumble .24s linear infinite;box-shadow:0 11px 0 #6b5528,0 20px 35px #000c}.die.is-spinning .die-face{animation:face-flurry .15s linear infinite;filter:blur(.45px)}.die.is-settling{animation:die-lock .4s var(--spring)}.pip{position:absolute;width:14%;aspect-ratio:1;border-radius:50%;background:#18140c;box-shadow:inset 0 1px 1px #0008}.pip[data-position=tl]{left:22%;top:22%}.pip[data-position=tr]{right:22%;top:22%}.pip[data-position=ml]{left:22%;top:43%}.pip[data-position=mc]{left:43%;top:43%}.pip[data-position=mr]{right:22%;top:43%}.pip[data-position=bl]{left:22%;bottom:22%}.pip[data-position=br]{right:22%;bottom:22%}
.selection-actions{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.4fr);gap:10px;width:100%;margin:auto 0 10px}.undo-button,.confirm-button{min-height:52px;border-radius:12px;font-weight:800}.undo-button{border:1px solid #8f7543;background:#15120d;color:var(--gold-soft)}.confirm-button{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--gold);background:var(--gold);color:#0c0b08}.undo-button:disabled,.confirm-button:disabled{opacity:.4}.roll-button{display:flex;align-items:center;justify-content:center;gap:10px;width:min(100%,280px);min-height:50px;margin:auto auto 12px;border:1px solid var(--gold);border-radius:12px;background:var(--gold);color:#0c0b08;font-weight:850}.roll-button:hover,.confirm-button:hover:not(:disabled){background:var(--gold-soft)}.roll-button:active,.confirm-button:active:not(:disabled),.undo-button:active:not(:disabled){transform:scale(.98)}.roll-button:disabled{opacity:.65}.roll-button span:first-child{font-size:13px}.ad-reservation{display:grid;min-height:34px;place-items:center;margin-top:4px;border:1px dashed #41371f;border-radius:9px;color:#6e6759;font-size:8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
dialog{width:min(calc(100% - 28px),430px);max-height:calc(100dvh - 28px);margin:auto;overflow:auto;border:1px solid #9a7b3b;border-radius:20px;background:linear-gradient(145deg,#191713,#090909 70%);color:var(--ink);padding:22px;box-shadow:0 32px 110px #000e}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.dialog-top h2,dialog h2{margin:0;color:var(--gold-soft);font:400 31px/1.05 Georgia,serif}.dialog-top .eyebrow{margin:0}.dialog-top .icon-button{width:38px;height:38px;font-size:17px}.duration-field,.switch-row{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.duration-field>span,.switch-row span{display:grid;gap:3px;font-size:14px}.duration-field small,.switch-row small{color:var(--muted);font-size:11px;font-weight:400}.duration-field select{width:116px;min-height:40px;padding:6px 30px 6px 10px;border:1px solid #75623e;border-radius:9px;background:#201d17;color:var(--ink)}.switch-row{cursor:pointer}.switch-row input{appearance:none;width:40px;height:24px;margin:0;flex:0 0 40px;border:1px solid #8e836d;border-radius:20px;background:#39372f;position:relative}.switch-row input:before{content:"";position:absolute;width:16px;height:16px;top:3px;left:3px;border-radius:50%;background:#f5f0e5;transition:transform .2s}.switch-row input:checked{background:var(--gold);border-color:var(--gold)}.switch-row input:checked:before{transform:translateX(16px);background:#111}.primary-button{display:flex;width:100%;min-height:49px;align-items:center;justify-content:center;border:1px solid var(--gold);border-radius:11px;background:var(--gold);color:#0a0906;font-weight:800}.primary-button:hover{background:var(--gold-soft)}#settings-form>.primary-button{margin-top:16px}.secondary-button{min-height:48px;border:1px solid #8f7543;border-radius:10px;background:transparent;padding:8px 12px}.dialog-buttons{display:flex;gap:8px;margin-top:22px}.dialog-buttons .primary-button{flex:1}.eyebrow{margin:0 0 9px;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:1.5px}.record-panel{padding:14px;border:1px solid #4e422a;border-radius:12px;background:#090909}.record-grid{display:grid;grid-template-columns:1fr auto;gap:9px;color:#c9c0ae;font-size:13px}.record-grid strong{color:var(--gold-soft);font-size:14px;text-align:right}.dialog-note{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.rules h3{margin:22px 0 8px;color:var(--gold-soft);font:400 24px/1.1 Georgia,serif}.rules p,dialog>p{color:#d6cebd;font-size:14px;line-height:1.55}.control-rule{display:flex;align-items:flex-start;gap:12px;margin:12px 0}.control-rule p{margin:5px 0}.control-symbol{flex:0 0 36px;height:36px;display:grid;place-items:center;border:1px solid #554625;border-radius:50%;background:#15130e;color:#ecd59c;font-size:22px}.sound-muted{opacity:.55}.result-dialog{text-align:center}.result-mark{display:grid;width:74px;height:74px;place-items:center;margin:8px auto 16px;border:1px solid var(--gold);border-radius:11px;color:var(--gold-soft);font:500 38px/1 Georgia,serif;box-shadow:0 0 35px #d9bc7844}.final-score{display:block;margin:12px 0;color:var(--gold-soft);font:400 48px/1 Georgia,serif}.result-best{padding:12px;border-radius:10px;background:#292318;color:var(--gold-soft)!important}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition-duration:.01ms!important}
.duration-field select{width:140px}
@keyframes dice-tumble{0%{transform:translate(-4px,-7px) rotate(calc(var(--roll-direction)*-5deg)) scale(1.04)}25%{transform:translate(5px,1px) rotate(calc(var(--roll-direction)*4deg)) scale(.98)}50%{transform:translate(-1px,7px) rotate(calc(var(--roll-direction)*7deg)) scale(1)}75%{transform:translate(-6px,0) rotate(calc(var(--roll-direction)*-3deg)) scale(.97)}100%{transform:translate(-4px,-7px) rotate(calc(var(--roll-direction)*-5deg)) scale(1.04)}}@keyframes face-flurry{0%{transform:translateY(-12%);opacity:.7}50%{transform:translateY(12%);opacity:1}100%{transform:translateY(-12%);opacity:.7}}@keyframes die-lock{0%{transform:translateY(-12px) scale(.9)}55%{transform:translateY(4px) scale(1.08)}78%{transform:translateY(-1px) scale(.985)}100%{transform:translateY(0) scale(1)}}
@media(max-width:370px){.game-shell{padding-inline:11px}.top-actions{gap:3px}.icon-button{width:35px;height:40px}.game-identity h1{font-size:27px}.box{gap:6px;padding-inline:8px}.die{width:72px}.message{font-size:12px}}
@media(max-height:730px){.game-shell{min-height:560px;padding-top:8px}.topbar{margin-bottom:7px}.scorebar{margin-bottom:7px;padding-bottom:7px}.message{min-height:33px;margin-bottom:6px}.box{padding-block:10px 13px}.dice-stage{margin-block:15px 10px}.die{width:68px}.selection-actions{margin-bottom:6px}.undo-button,.confirm-button,.roll-button{min-height:44px}.ad-reservation{min-height:25px}}
@media(min-width:700px) and (orientation:portrait){.game-shell{width:min(100%,744px);padding-inline:28px}.game-identity h1{font-size:42px}.box{gap:15px;padding:24px 20px 29px}.tile-face{font-size:48px;border-radius:11px}.dice-stage{gap:42px;margin-block:36px 27px}.die{width:116px;border-radius:24px}.message{font-size:16px;margin-bottom:20px}.undo-button,.confirm-button,.roll-button{min-height:58px}.ad-reservation{min-height:42px}}
@media(min-width:800px) and (orientation:landscape){.game-shell{width:min(100%,940px);height:calc(100svh - 52px);display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:auto auto 1fr auto;column-gap:28px}.topbar,.scorebar,.ad-reservation{grid-column:1/-1}.play-area{grid-column:1/-1;display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:auto 1fr auto;column-gap:28px}.message{grid-column:1/-1}.box{grid-column:1;grid-row:2/4;align-self:center}.dice-stage{grid-column:2;grid-row:2;margin:auto}.selection-actions,.roll-button{grid-column:2;grid-row:3;align-self:end;margin-bottom:12px}.roll-button{margin-inline:auto}.selection-actions{width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}}
