@font-face{font-family:Inter;src:url('./assets/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{font-family:Inter,'Segoe UI',sans-serif;color:#f7f7f8;font-synthesis:none;--accent:#d9f477;--muted:#9297a2;--row-height:76px}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:transparent}
body{display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-font-smoothing:antialiased}
body.preview{background:#17191c}
button,input,select{font:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button,a{touch-action:manipulation}
button:disabled{cursor:wait}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.roulette:focus-visible{outline:2px solid var(--accent);outline-offset:7px}
a{color:inherit;text-decoration:none}
button{color:inherit}
.icon-library{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.viewport{position:relative;width:1120px;height:700px;flex:none}
.widget{isolation:isolate;position:relative;width:1120px;height:700px;transform-origin:top left}
.widget:before{content:'';position:absolute;inset:92px 64px 105px;background:rgba(0,0,0,.58);border-radius:50%;filter:blur(90px);z-index:-1;pointer-events:none;transition:background .5s}
.header{position:absolute;top:78px;left:103px;right:103px;display:flex;align-items:center;justify-content:space-between;text-shadow:0 2px 14px #000,0 0 5px #000}
.brand{display:flex;align-items:center;gap:25px;font-size:30px;font-weight:500;letter-spacing:-1.2px}
.brand .icon{width:30px;height:30px;stroke-width:1.7}
.catalogue-link{display:flex;align-items:center;gap:11px;color:#9da1aa;font-size:14px;font-weight:400;transition:color .2s}
.catalogue-link:hover{color:#fff}
.catalogue-link .icon{width:17px;height:17px;margin-left:-6px}
.separator{padding:0 1px}
.roulette{position:absolute;top:135px;left:90px;right:90px;height:355px;cursor:pointer;border-radius:16px;outline-offset:0!important}
.reel-window{position:absolute;inset:0 50px;overflow:hidden;mask-image:linear-gradient(transparent,black 7%,black 88%,transparent)}
#reel{position:absolute;inset:0;user-select:none}
.game-row{position:absolute;left:0;right:0;top:0;height:76px;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:300;letter-spacing:-1.2px;white-space:nowrap;will-change:transform,opacity;font-size:34px;text-shadow:0 3px 24px rgba(0,0,0,.9);pointer-events:none}
.game-row span{display:block;max-width:100%;padding:0 8px}
.pointer{position:absolute;top:158px;display:flex;align-items:center;gap:14px;height:16px;color:var(--accent);transition:filter .3s}
.pointer-left{left:115px}
.pointer-right{right:115px}
.pointer span{width:44px;height:1px;background:rgba(239,241,242,.65)}
.pointer i{width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent}
.pointer-left i{border-left:14px solid var(--accent)}
.pointer-right i{border-right:14px solid var(--accent)}
.game-meta{position:absolute;top:202px;left:90px;right:90px;margin:0;color:#969ba6;text-align:center;font-size:13px;letter-spacing:.1px;pointer-events:none;transition:opacity .2s}
.result-links{position:absolute;top:350px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:13px;font-size:12px;color:#b7bca5}
.result-links[hidden]{display:none}
.result-links a{display:flex;align-items:center;gap:6px}
.result-links .icon{width:12px;height:12px}
.result-links a:hover{color:var(--accent)}
.result-links button{border:0;background:none;padding:4px 6px;display:flex;color:#939995}
.result-links button:hover{color:var(--accent)}
.result-links .result-history{display:flex;align-items:center;gap:5px;font-size:12px;color:#b7bca5}
.winner-hit-area{position:absolute;top:128px;left:190px;right:190px;height:76px;border-radius:6px;z-index:1}
.winner-hit-area:after{content:'';position:absolute;bottom:2px;left:45%;right:45%;height:1px;background:var(--accent);opacity:0;transition:opacity .2s}
.winner-hit-area:hover:after,.winner-hit-area:focus-visible:after{opacity:.8}
.history-button{display:flex;align-items:center;gap:7px;background:none;border:0;color:#a4acb3;padding:4px 0;font-size:12px}
.history-button .icon{width:19px;height:19px}
.history-button:hover{color:var(--accent)}
.action-area{position:absolute;top:513px;left:100px;right:100px;text-align:center;transition:opacity .4s}
.roll-button{border:0;border-radius:50px;background:var(--accent);color:#1c2113;min-width:230px;min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:13px 28px;font-size:16px;font-weight:550;letter-spacing:-.4px;box-shadow:0 5px 30px #0003;transition:background .2s,transform .2s,box-shadow .2s}
.roll-button .icon{width:23px;height:23px;stroke-width:1.8}
.roll-button:hover:not(:disabled){background:#e5ff91;transform:translateY(-2px);box-shadow:0 8px 34px #0005}
.roll-button:active:not(:disabled){transform:translateY(1px) scale(.98)}
.keyboard-hint{display:flex;justify-content:center;align-items:center;gap:10px;color:#8b929e;font-size:12px;margin-top:14px;text-shadow:0 2px 10px #000}
kbd{border:1px solid #818792;border-radius:3px;font:10px Inter,sans-serif;padding:2px 5px;line-height:1.2}
.footer{position:absolute;left:103px;right:103px;top:611px;display:flex;align-items:center;justify-content:space-between;color:#939aa6;text-shadow:0 2px 12px #000,0 0 5px #000}
.footer p{font-size:13px;margin:0}
.tools{display:flex;align-items:center;gap:24px}
.icon-button{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;width:28px;height:32px;padding:2px;color:#c9ccd0;transition:color .2s,transform .2s;filter:drop-shadow(0 1px 6px #000)}
.icon-button:hover{color:var(--accent);transform:translateY(-1px)}
.icon-button .icon{width:23px;height:23px}
body[data-state=spinning] .game-meta,body[data-state=spinning] .result-links{opacity:0;pointer-events:none}
body[data-state=spinning] .pointer{filter:drop-shadow(0 0 6px #d9f47755)}
body[data-state=spinning] .roll-button{visibility:hidden;pointer-events:none}
body[data-state=result] .pointer{animation:land .7s ease-out}
body.obs .header,body.obs .footer{visibility:hidden;opacity:0;pointer-events:none}
body.obs .action-area{visibility:hidden;opacity:0;pointer-events:none}
body.obs .roulette{top:184px}
body.obs .roulette:focus-visible{outline:none}
body.obs .winner-hit-area:focus-visible{outline:none}
body.focus[data-state=result] .game-row{transition:opacity .45s ease}
body.focus[data-state=result] .game-row:not(.is-selected){opacity:0!important}
body.obs.focus .result-links{top:234px}
body.obs .result-links{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s,visibility .2s}
body.obs .roulette:hover .result-links,body.obs .roulette:focus-within .result-links{visibility:visible;opacity:1;pointer-events:auto}
body.obs[data-state=spinning] .result-links{visibility:hidden;opacity:0;pointer-events:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.toast{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);padding:9px 14px;background:#24272a;border:1px solid #ffffff18;border-radius:9px;color:#d8ddcf;font-size:12px;box-shadow:0 8px 30px #0005;white-space:nowrap;z-index:5}
.settings{position:fixed;inset:0;max-height:calc(100svh - 32px);width:390px;max-width:calc(100vw - 32px);margin:auto;padding:27px 28px 24px;background:#1e2124;color:#eceeef;border:1px solid #ffffff16;border-radius:20px;box-shadow:0 25px 100px #000b;overflow:auto;color-scheme:dark}
.settings::backdrop{background:#0b0e1266;backdrop-filter:blur(8px)}
.settings-heading{display:flex;align-items:center;justify-content:space-between}
.settings h1{font-size:27px;font-weight:400;letter-spacing:-.8px;margin:0}
.settings-intro{font-size:12px;color:#999fa7;margin:7px 0 25px}
fieldset{border:0;padding:0;margin:0 0 22px}
legend{font-size:11px;font-weight:600;color:#b9c2a5;letter-spacing:.8px;text-transform:uppercase;margin-bottom:12px}
.toggle-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;cursor:pointer;margin-bottom:16px}
.toggle-row small{display:block;font-size:10px;font-weight:400;color:#9299a2;line-height:1.6;margin-top:3px}
.toggle-row input{position:absolute;right:0;opacity:0;width:34px;height:24px}
.switch{display:block;width:32px;height:19px;background:#484d50;border-radius:20px;flex-shrink:0;transition:background .2s}
.switch:before{content:'';display:block;width:13px;height:13px;background:#d8dbdb;border-radius:50%;margin:3px;transition:transform .2s,background .2s}
.toggle-row input:checked+.switch{background:var(--accent)}
.toggle-row input:checked+.switch:before{transform:translateX(13px);background:#252b1a}
.toggle-row input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:4px}
.pool-count{font-size:11px;color:#c1caaa;margin:8px 0 0}
.field-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:13px}
select{font-size:11px;border:1px solid #ffffff19;border-radius:6px;background:#2a2e30;color:#dfe3dc;padding:6px;cursor:pointer}
output{font-size:11px;color:#acb798}
.volume-row{display:flex;align-items:center;gap:15px}
input[type=range]{accent-color:var(--accent);height:4px;flex:1;min-width:0;cursor:pointer;margin:5px 0}
.text-button{padding:0;background:none;border:0;color:#b4bca5;font-size:11px}
.text-button:hover{color:var(--accent)}
.obs-note{font-size:10px;color:#989fa5;line-height:1.9;margin:0}
.obs-note strong{font-weight:500;color:#c8d1ba}
.settings-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px}
.done-button{background:var(--accent);color:#252c1d;border:0;border-radius:25px;padding:10px 19px;font-size:12px;font-weight:550}
.history-dialog{width:500px}
.history-dialog h1{font-size:25px}
.history-list{list-style:none;padding:0;margin:0;max-height:min(410px,55svh);overflow:auto;scrollbar-width:thin;scrollbar-color:#626b55 transparent}
.history-item{border-top:1px solid #ffffff0c}
.history-item a{display:grid;grid-template-columns:1fr 18px;align-items:center;gap:5px;padding:15px 4px;transition:color .2s}
.history-item a:hover{color:var(--accent)}
.history-item strong{display:block;font-size:15px;line-height:1.5;font-weight:350;letter-spacing:-.3px}
.history-item small{display:block;font-size:10px;color:#929ba4;line-height:1.6;margin-top:3px}
.history-item .icon{width:14px;height:14px;color:#929e7d}
.history-empty{font-size:13px;color:#a6afbb;text-align:center;line-height:1.9;padding:38px 0}
.history-note{font-size:10px;color:#858f99;margin:18px 0 0}
.history-more{margin:18px 0 0}
.noscript{position:fixed;top:40%;left:10%;right:10%;text-align:center;background:#1e2124;padding:20px;border-radius:10px}
@keyframes land{0%{filter:drop-shadow(0 0 16px #d9f477)}100%{filter:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
