:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{overscroll-behavior:none;touch-action:none;-webkit-text-size-adjust:100%;background:#0b0f14;width:100%;height:100dvh;margin:0;padding:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}#root{flex-direction:column;width:100%;height:100%;display:flex}.game-stage{flex:auto;min-height:0;position:relative;overflow:hidden}.game-loader{z-index:20;color:#cdd8e6;background:#0b0f14d1;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.game-loader__spinner{border:3px solid #ffffff26;border-top-color:#f2c94c;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite game-loader-spin}@keyframes game-loader-spin{to{transform:rotate(360deg)}}.game-loader__text{letter-spacing:.02em;font-size:14px}.game-loader__text--error{color:#f4b4b9;text-align:center;max-width:280px}.game-loader__retry{color:#f2c94c;cursor:pointer;background:0 0;border:1px solid #f2c94c;border-radius:8px;padding:8px 18px;font-weight:700}.game-loader__retry:hover{background:#f2c94a1f}.game-canvas{width:100%;height:100%;line-height:0;position:absolute;inset:0;overflow:hidden}.game-canvas canvas{display:block}.bet-amount-control{--bac-w:132px;width:var(--bac-w);aspect-ratio:273/76;flex:1 1 var(--bac-w);background-image:url(/assets/ui/bet_amount_control.png);background-position:49.791%;background-repeat:no-repeat;background-size:187.546% 673.684%;min-width:100px;position:relative}.bet-amount-control[aria-disabled=true]{opacity:.55}.bet-amount-control__step{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;width:24.5%;height:100%;padding:0;position:absolute;top:0}.bet-amount-control__step--minus{left:0}.bet-amount-control__step--plus{right:0}.bet-amount-control__step:disabled{cursor:not-allowed}.bet-amount-control__step:hover:not(:disabled){filter:brightness(1.4)}.bet-amount-control__value{color:#f4f7fb;text-align:center;background:0 0;border:none;width:51%;height:100%;padding:0;font-size:16px;font-weight:700;position:absolute;top:0;left:24.5%}.bet-amount-control__value:focus{outline:none}.betting-panel{padding:0 max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));z-index:10;pointer-events:none;position:absolute;bottom:0;left:0;right:0}.betting-panel__dock{pointer-events:auto;flex-direction:column;align-items:center;gap:10px;display:flex}.betting-panel__row{flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.betting-panel__row--horses{gap:8px}.betting-panel__row--controls{gap:16px}.horse-pick{--horse-color:#d64550;color:#cdd8e6;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#16233aeb;border:2px solid #ffffff1f;border-radius:10px;flex:none;align-items:flex-start;gap:8px;width:184px;padding:8px 10px;transition:border-color .15s,background .15s,transform .1s;display:flex}.horse-pick:hover:not(:disabled){border-color:var(--horse-color);transform:translateY(-1px)}.horse-pick--selected{border-color:var(--horse-color);background:color-mix(in srgb, var(--horse-color) 24%, #16233aeb);box-shadow:0 0 0 1px var(--horse-color)}.horse-pick:disabled{cursor:not-allowed;opacity:.55}.horse-pick__number{background:var(--horse-color);color:#0b0f14;text-align:center;border-radius:50%;flex-shrink:0;width:24px;height:24px;margin-top:1px;font-size:12px;font-weight:800;line-height:24px}.horse-pick__info{flex-direction:column;align-items:flex-start;min-width:0;line-height:1.25;display:flex}.horse-pick__name{color:#f4f7fb;white-space:normal;overflow-wrap:break-word;font-size:13px;font-weight:700;line-height:1.15}.horse-pick__odds{color:var(--horse-color);margin-top:2px;font-size:11px;font-weight:700}.betting-panel__balance{aspect-ratio:671/186;background-image:url(/assets/ui/balance_panel.png);background-position:49.914%;background-repeat:no-repeat;background-size:186.885% 674.194%;flex:none;justify-content:center;align-items:center;width:160px;display:flex}.betting-panel__balance-value{color:#f2c94c;font-size:18px;font-weight:800}.betting-panel__error{color:#f4b4b9;background:#d645502e;border:1px solid #d64550;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.betting-panel__bet-row{align-items:center;gap:6px;display:flex}.betting-panel__chip{color:#cdd8e6;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#16233aeb;border:1px solid #ffffff26;border-radius:8px;flex:none;min-height:32px;padding:7px 9px;font-size:12px}.betting-panel__chip:hover:not(:disabled){color:#f2c94c;border-color:#f2c94c}.betting-panel__chip:disabled{cursor:not-allowed;opacity:.4}.betting-panel__bet-btn{aspect-ratio:395/101;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background-color:#0000;background-image:url(/assets/ui/place_bet_button.png);background-repeat:no-repeat;background-size:100% 100%;border:none;width:190px;padding:0;transition:filter .15s,transform .1s;position:relative}.betting-panel__bet-btn:hover:not(:disabled){filter:brightness(1.12)saturate(1.1)}.betting-panel__bet-btn:active:not(:disabled){transform:scale(.96)}.betting-panel__bet-btn:disabled{cursor:not-allowed;filter:grayscale(.7)brightness(.75)}.betting-panel__bet-btn-status{color:#f2c94c;background:#060b128c;border-radius:8px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:absolute;inset:0}@media (width<=760px),(height<=480px){.betting-panel__dock{width:100%}.betting-panel__row--horses{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;width:100%;padding-bottom:2px;overflow-x:auto}.horse-pick{width:148px;padding:6px 8px}.horse-pick__name{font-size:12px}.betting-panel__row--controls{gap:10px}}@media (height<=480px){.betting-panel{padding-bottom:max(6px, env(safe-area-inset-bottom))}.betting-panel__dock{gap:6px}.horse-pick{width:128px;padding:4px 8px}.horse-pick__name{font-size:11px}.betting-panel__bet-btn{width:150px}.betting-panel__balance{width:130px}}.winner-modal__backdrop{-webkit-backdrop-filter:blur(3px);z-index:1000;background:#04080d99;justify-content:center;align-items:center;animation:.2s both winner-backdrop-fade;display:flex;position:fixed;inset:0}@keyframes winner-backdrop-fade{0%{opacity:0}to{opacity:1}}.winner-modal{text-align:center;background:linear-gradient(160deg,#16233a,#0c1524);border:2px solid #ffffff1a;border-radius:20px;flex-direction:column;align-items:center;gap:6px;width:min(360px,88vw);padding:32px 28px 26px;animation:.45s cubic-bezier(.34,1.56,.64,1) both winner-modal-pop;display:flex;position:relative;box-shadow:0 20px 60px #00000080}.winner-modal--win{border-color:#f2c94c;box-shadow:0 0 0 1px #f2c94c66,0 20px 60px #00000080,0 0 50px #f2c94c40}.winner-modal--lose{border-color:#d6455099}@keyframes winner-modal-pop{0%{opacity:0;transform:scale(.55)translateY(30px)}65%{opacity:1;transform:scale(1.05)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.winner-modal__badge{margin-bottom:4px;font-size:52px;line-height:1}.winner-modal--win .winner-modal__badge{animation:1.1s ease-in-out .3s infinite winner-badge-bounce}@keyframes winner-badge-bounce{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-6px)rotate(-6deg)}50%{transform:translateY(0)rotate(0)}75%{transform:translateY(-3px)rotate(6deg)}}.winner-modal__title{letter-spacing:.3px;color:#f4f7fb;margin:0;font-size:26px;font-weight:800}.winner-modal--win .winner-modal__title{color:#f2c94c}.winner-modal__subtitle{color:#a9b6c8;margin:0;font-size:14px}.winner-modal__horse-name{font-weight:700}.winner-modal__payout{color:#7be0a0;margin:10px 0 4px;font-size:38px;font-weight:800;animation:.4s .15s both winner-payout-in}@keyframes winner-payout-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.winner-modal__message{color:#cdd8e6;margin:10px 0 4px;font-size:15px}.winner-modal__close{color:#fff;cursor:pointer;background:#d64550;border:none;border-radius:10px;width:100%;margin-top:18px;padding:12px 20px;font-size:15px;font-weight:700;transition:background .15s}.winner-modal--win .winner-modal__close{color:#16233a;background:#f2c94c}.winner-modal__close:hover{filter:brightness(1.1)}.countdown-overlay{z-index:500;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.countdown-overlay__number{color:#f2c94c;text-shadow:0 0 40px #f2c94cb3,0 4px #0006;-webkit-text-stroke:3px #0b0f1499;font-size:clamp(96px,18vw,220px);font-weight:800;line-height:1;animation:.8s cubic-bezier(.22,1,.36,1) both countdown-pop}.countdown-overlay__number--go{color:#4caf6e;text-shadow:0 0 50px #4caf6ecc,0 4px #0006}@keyframes countdown-pop{0%{opacity:0;transform:scale(.35)}18%{opacity:1;transform:scale(1.2)}32%{opacity:1;transform:scale(1)}78%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.sound-toggle{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:15;aspect-ratio:1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background-color:#0000;background-image:url(/assets/ui/botton_sound_button.png);background-position:50%;background-repeat:no-repeat;background-size:752.941% 752.941%;border:none;width:44px;padding:0;transition:filter .15s,transform .1s;position:absolute}.sound-toggle:hover{filter:brightness(1.15)}.sound-toggle:active{transform:scale(.92)}.sound-toggle--muted{filter:grayscale(.7)brightness(.75)}.sound-toggle--muted:after{content:"";background:#d64550;border-radius:2px;width:66%;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 0 1px #00000073}@media (height<=480px){.sound-toggle{width:36px;top:max(6px, env(safe-area-inset-top));right:max(6px, env(safe-area-inset-right))}}
