:root{--bg: #f7f7f4;--panel: #fff;--text: #242b28;--muted: #788079;--line: #e2e5df;--accent: #315846;--accent-soft: #eaf0e9;--red: #9d4e44;--mono: ui-monospace, SFMono-Regular, Consolas, monospace;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-synthesis:none}*{box-sizing:border-box}html{min-width:320px;-webkit-text-size-adjust:100%;background:var(--bg)}body{margin:0;min-height:100vh;min-height:100dvh;line-height:1.5}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button{border:1px solid transparent;border-radius:5px;padding:10px 15px;font-size:12px;font-weight:500;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:39px;transition:background .12s ease}button:disabled{opacity:.43;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.primary:hover:not(:disabled){background:#254435}.secondary{background:var(--panel);color:var(--text);border-color:var(--line)}.secondary:hover:not(:disabled){background:#f0f2ed}.hidden{display:none!important}.shell{max-width:1260px;padding:0 40px 30px;margin:0 auto}.topbar{height:87px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:18px}.brand{display:flex;align-items:center;gap:11px;font-size:15px;letter-spacing:-.3px}.brand strong{font-size:21px;font-weight:600;letter-spacing:-1px}.brand-divider{color:#b6bdb5;font-weight:300;margin:0 4px}.brand-mark{display:grid;place-items:center;width:27px;height:27px;border:1px solid #79877c;border-radius:4px;font-size:24px;line-height:1;color:var(--accent);background:#fff}.hero-actions{display:flex;gap:8px;align-items:center}.hero-actions button{font-size:11px}.hero-actions button.fast-active{background:var(--accent-soft);border-color:#bdcdbd;color:var(--accent)}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:43px 0 27px}h1{font-size:28px;font-weight:550;letter-spacing:-1px;margin:0 0 7px;line-height:1.2}.intro p{font-size:12px;color:var(--muted);margin:0}.network-label{font:10px var(--mono);color:var(--muted);border:1px solid var(--line);padding:5px 8px;border-radius:4px;white-space:nowrap}.account-panel{display:flex;justify-content:space-between;margin:0 0 19px;padding:0 2px;font-size:11px;gap:14px}.account-panel>div{display:flex;gap:13px;align-items:baseline;min-width:0}.account-panel span{color:var(--muted);white-space:nowrap}.account-panel strong{font:12px var(--mono);font-weight:500;overflow-wrap:anywhere}#balance{position:relative}#balance.balance-up{color:var(--accent)}#balance.balance-down{color:var(--red)}#balance:after{content:attr(data-delta);position:absolute;right:0;top:-20px;opacity:0;font:10px var(--mono)}#balance.balance-up:after,#balance.balance-down:after{animation:balanceFloat .85s ease both}.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;overflow:hidden}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:18px;align-items:stretch}.game-grid>*{min-width:0}.bet-panel{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:417px}.controls{padding:26px 24px;display:flex;flex-direction:column;border-right:1px solid var(--line);gap:12px}.section-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;margin-bottom:14px}.section-label small{font:10px var(--mono);color:#9ca49c}.controls label{font-size:11px;color:#626c63}.guesses{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:8px}.guess{display:grid;place-items:center;aspect-ratio:1.18;min-height:46px;background:#fafbf8;border:1px solid var(--line);border-radius:5px;padding:13px;color:var(--text)}.guess:hover{background:#eef2eb}.guess.active{background:var(--accent-soft);border-color:#779781;box-shadow:0 0 0 1px #779781 inset}.guess .pip-face{width:24px;height:24px;gap:4px}.guess .pip.active{background:#4b5f50}.wager-row{display:flex;align-items:center;border:1px solid #d9ded5;border-radius:5px;padding:10px 12px;gap:8px}.wager-row:focus-within{border-color:var(--accent)}.wager-row input{border:0;background:transparent;color:var(--text);font:16px var(--mono);min-width:0;width:100%;outline:none}.wager-row span{font:10px var(--mono);color:var(--muted)}input[type=number]{-moz-appearance:textfield}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bet-rules{display:grid;grid-template-columns:1fr auto;gap:7px;font-size:10px;color:var(--muted);margin:5px 0 8px}.bet-rules b{font:11px var(--mono);color:var(--text)}.roll{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:45px;font-size:12px;margin-top:auto}.roll b{font-weight:500}.roll>span{font-size:17px;font-weight:400}.help-text{font-size:10px;line-height:1.7;color:var(--muted);margin:0}.dice-stage{position:relative;display:grid;place-items:center;min-height:417px;background:#eef1e9;padding:45px 25px;isolation:isolate}.table-label{position:absolute;top:26px;left:26px;font-size:10px;color:#6d7d6b}.table-caption{position:absolute;bottom:26px;font-size:9px;letter-spacing:.1px;color:#85917f}.cube{width:min(165px,90%);aspect-ratio:1;display:grid;place-items:center;background:#fffefa;color:#374536;border-radius:23px;border:1px solid #d9ddcf;box-shadow:0 4px #d4d9c9,0 13px 18px -12px #647753;transform:rotate(-8deg);font-size:64px;font-weight:400;position:relative}.cube.spinning{animation:diceTumble .7s ease-in-out infinite;will-change:transform}.cube.win{animation:winPop .55s ease}.cube.loss{animation:lossShake .35s ease}.pip-face{width:66%;height:66%;display:grid;grid-template:repeat(3,1fr) / repeat(3,1fr);gap:13%}.pip{border-radius:50%;display:block;background:transparent}.pip.active{background:#3c4a39}.round-panel{display:flex;flex-direction:column;padding:25px 23px;gap:20px;min-width:0}.round-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#68716a}.state-icon{display:grid;place-items:center;width:17px;height:17px}.state-icon>span{width:5px;height:5px;background:#a6ada2;border-radius:50%}.state-icon.spinning>span{width:13px;height:13px;background:none;border:1.5px solid #d4ddd2;border-top-color:var(--accent);animation:rotate .8s linear infinite}.state-icon.win>span{background:var(--accent)}.state-icon.loss>span{background:var(--red)}.round-message{margin-top:19px;min-height:86px}.round-message h2{font-size:21px;font-weight:500;letter-spacing:-.6px;line-height:1.2;margin:0 0 10px}.round-message p{font-size:11px;color:var(--muted);line-height:1.8;margin:0;max-width:225px}.round-panel.win .round-message h2{color:var(--accent)}.versus{display:grid;grid-template-columns:1fr 14px 1fr;align-items:center;gap:12px;padding:15px 0 17px}.mini-card{display:flex;flex-direction:column;align-items:center;gap:12px}.mini-card>span{font-size:10px;color:var(--muted)}.mini-die{width:64px;height:64px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;font-size:30px;background:#fafbf7;color:#7c8878}.mini-die .pip.active{background:#596954}.vs-line{font-size:21px;font-weight:200;color:#c4cbbf;text-align:center;margin-top:25px}.payout-line{display:flex;justify-content:space-between;align-items:center;margin-top:auto;border-top:1px solid var(--line);padding-top:17px;font-size:10px;color:var(--muted)}.payout-line strong{font-size:12px;font-weight:500;color:var(--text)}.round-panel.win .payout-line strong{color:var(--accent)}.metrics{font:10px/1.5 var(--mono);max-height:150px;overflow:auto;color:var(--muted)}.fast-play-panel{padding:20px 24px;margin-bottom:18px}.fast-play-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:8px}.fast-play-head>div{display:grid;gap:5px}.fast-play-head strong{font-size:13px;font-weight:600}.fast-play-head span{font-size:11px;color:var(--muted)}.close-button{padding:0;min-height:28px;min-width:28px;font-size:22px;font-weight:300;background:none;color:var(--muted)}.fast-play-setup{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:14px;align-items:end;margin-top:17px}.fast-play-setup label{display:grid;gap:6px;font-size:10px;color:var(--muted)}.fast-play-setup input,.fast-play-setup select{width:100%;min-width:0;padding:9px 11px;border:1px solid var(--line);border-radius:4px;background:#fff;font-size:12px;color:var(--text);min-height:38px}.fast-play-active{display:flex;justify-content:space-between;align-items:center;margin-top:15px;gap:16px}.fast-play-active strong{font:12px var(--mono);color:var(--accent)}.history-panel{margin-top:24px}.history-head{padding:19px 23px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.history-head strong{display:block;font-size:12px;font-weight:600}.history-head>div>span{font-size:10px;color:var(--muted);display:block;margin-top:3px}.history-head>span{font:11px var(--mono);color:var(--muted)}.history-list{max-height:520px;overflow:auto}.history-empty{padding:32px 23px;font-size:11px;color:var(--muted)}.history-item{border-bottom:1px solid var(--line)}.history-item:last-child{border:0}.history-summary{padding:14px 23px;display:grid;grid-template-columns:33px minmax(100px,1fr) 150px 80px;gap:16px;align-items:center}.history-face{width:31px;height:31px;border:1px solid var(--line);border-radius:5px;display:grid;place-items:center;font:12px var(--mono);background:#f6f8f1}.history-result strong{font-size:11px;font-weight:500}.history-result small,.history-bet small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.history-item.win .history-result strong{color:var(--accent)}.history-bet strong{font:11px var(--mono)}.history-summary time{font:10px var(--mono);color:var(--muted);text-align:right}.history-item details{padding:0 23px 12px 72px}.history-item summary{font-size:10px;color:var(--muted);cursor:pointer;max-width:max-content}.proof-grid{margin-top:12px;border:1px solid var(--line);border-radius:4px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden}.proof-grid>div{padding:12px;background:#fafbf8;min-width:0}.proof-grid span{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.proof-grid code{font:10px/1.7 var(--mono);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.page-footer{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:23px 0;margin-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}.game-info{max-width:520px}.game-info summary{cursor:pointer;text-align:center}.game-info>div{margin-top:16px;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:20px;color:#626c63;line-height:1.8;font-size:11px}.game-info p{margin:0 0 12px}.game-info dl{margin:0;font-size:10px}.game-info dt{margin-top:12px;color:var(--muted)}.game-info dd{margin:3px 0 0;font:10px/1.7 var(--mono);overflow-wrap:anywhere}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes diceTumble{0%,to{transform:rotate(-8deg) translateY(0)}30%{transform:rotate(20deg) translateY(-10px)}65%{transform:rotate(-28deg) translateY(-4px)}}@keyframes winPop{50%{transform:rotate(-8deg) scale(1.04)}}@keyframes lossShake{25%{transform:rotate(-12deg)}75%{transform:rotate(-4deg)}}@keyframes balanceFloat{0%{opacity:0;transform:translateY(5px)}20%{opacity:1}to{opacity:0;transform:translateY(-7px)}}@media(max-width:1050px){.shell{padding-inline:25px}.game-grid{grid-template-columns:minmax(0,1fr) 245px;gap:14px}.bet-panel{grid-template-columns:225px minmax(0,1fr)}.controls,.round-panel{padding:23px 19px}.cube{width:min(145px,90%)}.intro{margin-top:33px}.table-label{left:20px}.table-caption{font-size:8px}.round-message h2{font-size:19px}.round-message p{font-size:10px}}@media(max-width:800px){.game-grid{grid-template-columns:1fr}.bet-panel{grid-template-columns:280px minmax(0,1fr)}.round-panel{display:grid;grid-template-columns:1fr 180px;gap:0 26px;min-height:200px}.round-heading{grid-column:1 / -1;margin-bottom:15px}.round-message{margin-top:8px;min-height:0}.round-message p{max-width:350px}.versus{grid-column:2;grid-row:2 / 4;padding:0;gap:9px}.payout-line{grid-column:1;margin-top:18px;padding-top:12px}.round-message h2{font-size:21px}.intro{margin-top:29px}.fast-play-setup{grid-template-columns:1fr 1fr}.fast-play-active{flex-wrap:wrap}.network-label{font-size:9px}}@media(max-width:540px){.shell{padding:0 14px 20px}.topbar{height:auto;min-height:77px;gap:12px;flex-wrap:wrap;padding:17px 0 14px}.brand{font-size:12px;gap:8px}.brand strong{font-size:18px}.brand-mark{width:24px;height:24px;font-size:22px}.brand-divider{margin:0 1px}.hero-actions{gap:6px;margin-left:auto}.hero-actions button{font-size:10px;padding:8px 10px;min-height:35px}#connect{order:-1}.intro{margin:27px 0 23px;display:block}h1{font-size:25px;letter-spacing:-.8px}.intro p{font-size:11px;max-width:290px;margin-bottom:14px}.network-label{display:inline-block;font-size:8px}.account-panel{font-size:10px;margin-bottom:14px;gap:9px}.account-panel>div{display:grid;gap:4px}.account-panel>div:last-child{text-align:right}.account-panel strong{font-size:10px}.bet-panel{grid-template-columns:1fr;display:flex;flex-direction:column}.dice-stage{min-height:210px;order:-1;padding:45px 20px 35px;border-bottom:1px solid var(--line)}.table-label{top:17px;left:18px;font-size:9px}.table-caption{bottom:15px;font-size:8px}.cube{width:108px;border-radius:16px;font-size:48px;box-shadow:0 3px #d4d9c9,0 10px 14px -11px #647753}.controls{padding:19px;border:0;gap:11px}.section-label{margin-bottom:5px}.guesses{grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:4px}.guess{aspect-ratio:1;min-height:39px;padding:7px}.guess .pip-face{width:23px;height:23px;gap:4px}.controls label{font-size:10px}.bet-rules{grid-template-columns:1fr auto 1fr auto;gap:9px;font-size:9px;margin:5px 0}.bet-rules span:nth-of-type(2){text-align:right}.bet-rules b{font-size:10px}.roll{min-height:44px}.controls>.help-text{font-size:9px}.round-panel{padding:19px;grid-template-columns:1fr 115px;gap:0 16px;min-height:180px}.round-heading{font-size:10px;margin-bottom:11px}.round-message h2{font-size:19px}.round-message p{font-size:10px}.versus{gap:5px;grid-template-columns:1fr 8px 1fr}.mini-die{width:45px;height:45px;border-radius:8px;font-size:24px}.mini-card{gap:8px}.mini-card>span{font-size:9px}.vs-line{font-size:17px;margin-top:23px}.payout-line{font-size:9px;padding-top:10px}.payout-line strong{font-size:11px}.fast-play-panel{padding:17px}.fast-play-setup{gap:12px}.fast-play-setup label{font-size:9px}.fast-play-setup button{font-size:10px;min-height:39px}.history-panel{margin-top:18px}.history-head{padding:16px}.history-summary{grid-template-columns:28px 1fr auto;gap:10px;padding:13px 16px}.history-summary time{display:none}.history-head>div>span{font-size:9px}.history-face{width:28px;height:28px}.history-item details{padding:0 16px 12px 54px}.history-result small{font-size:9px}.history-bet strong{font-size:10px}.proof-grid{grid-template-columns:1fr}.page-footer{gap:13px;font-size:9px;flex-wrap:wrap;padding-top:20px;margin-top:20px}.page-footer>span:last-child{margin-left:auto}.game-info{order:3;width:100%;max-width:none}.game-info summary{text-align:left}.game-info>div{padding:16px}}@media(max-width:360px){.hero-actions{margin:0;width:100%}.hero-actions button{flex:1}.guess{min-height:36px}.guess .pip-face{width:20px;height:20px;gap:3px}.round-panel{grid-template-columns:1fr 105px}.bet-rules{gap:6px;font-size:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.session-clock{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:12px 16px;margin-bottom:18px;background:#edf3ed;border:1px solid #d4dfd4;border-radius:5px;font-size:11px}.session-clock strong{font-variant-numeric:tabular-nums;font-weight:600}.session-clock>span:last-child{margin-left:auto;color:#59675a}.session-clock.expired{background:#f6f1e8;border-color:#e2d4bb}.session-clock[hidden]{display:none}@media(max-width:540px){.session-clock>span:last-child{margin-left:0;width:100%}}
