/* Approved scoreboard composition. Decorative chrome uses separate raster assets;
   text, controls and reel symbols remain independent and responsive. */
html,body { width:100%; height:100%; overflow:hidden; }
button { font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
button:disabled { cursor:default; }
[hidden] { display:none !important; }
.app {
  display:flex; align-items:center; justify-content:center;
  width:100%; max-width:none; height:100vh; height:100dvh; min-height:0;
  padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  background: #071b32 url('assets/background/arena-desktop.png') center / cover no-repeat;
}
.cabinet { width:min(1120px,88vw,calc((100dvh - 162px) / .76)); position:relative; }
.topbar { position:relative; width:76%; height:auto; aspect-ratio:6/1; margin:0 auto -3px; padding:0; border:0; overflow:hidden; background:none; z-index:2; }
.game-logo { position:absolute; width:100%; height:auto; left:0; top:50%; transform:translateY(-50%); }
.stage { display:block; margin:0; padding:0; min-height:0; container-type:normal; }
.bonus-status-slot { height:32px; margin-bottom:-1px; background:#071f32; border:1px solid #637d8c; border-bottom:0; border-radius:6px 6px 0 0; }
.bonus-status-slot:has(.free-spins-info:not(.visible)) { background:transparent; border-color:transparent; }
.free-spins-info { position:static; display:flex; visibility:hidden; height:100%; gap:0; margin:0; justify-content:space-around; align-items:center; }
.free-spins-info.visible { visibility:visible; }
.free-spins-badge,.multiplier-badge { flex:1; border:0; border-radius:0; background:none; padding:0 8px; font-size:clamp(10px,1.2vw,15px); color:#d7edfa; letter-spacing:.2px; white-space:nowrap; }
.free-spins-info strong { color:#ffcf65; font-size:1.3em; margin:0 4px; font-variant-numeric:tabular-nums; }
.frame-wrap { width:100%; aspect-ratio:5/3; margin:0; border:0; border-radius:0; overflow:visible; background:transparent url('assets/ui/reel-frame.png?v=2') center / 103.6% 112.9% no-repeat; box-shadow:none; }
.reels-wrap { inset:6.2% 2.5% 5.8%; }
.reels { padding:0; }
.frame-wrap::after { display:none; }
.stage.free-spins-theme .frame-wrap { border-radius:0; box-shadow:none; }
.cabinet.in-bonus .bonus-status-slot { border-color:#e5b963; }
.symbol-img { width:92%; height:92%; }
.cell.sym-JERSEY .symbol-img { filter:drop-shadow(0 2px 3px #243e4b80); }
.cabinet.in-bonus .cell.sym-JERSEY { outline:2px solid #eebd4d; outline-offset:-3px; border-radius:7px; }
.cabinet.in-bonus .cell.sym-JERSEY::after { content:''; position:absolute; bottom:4px; right:4px; width:17%; height:17%; background:url('assets/icons/lock-fill.svg') center/contain no-repeat; opacity:.85; }
.hud {
  position:relative; width:110%; margin:-2px -5% 0; display:grid; align-items:center;
  grid-template-columns:auto 1.05fr 1.15fr .8fr 1fr auto;
  grid-template-areas:'utility balance bet win buy spin';
  gap:clamp(7px,1vw,16px); padding:16px 26px; border:0; border-radius:0;
  background:url('assets/ui/console.png') center / 100% 218% no-repeat;
}
.hud-panel { border:0; padding:0; background:none; min-width:0; }
.hud-label { font-size:clamp(10px,1.1vw,15px); font-weight:700; letter-spacing:.3px; color:#a7c8e4; margin-bottom:3px; }
.hud-value { font-size:clamp(16px,2vw,28px); font-weight:800; font-variant-numeric:tabular-nums; }
.credit-unit { font-size:10px; text-transform:uppercase; color:#a7c8e4; margin-top:2px; }
.utility-controls { grid-area:utility; display:flex; gap:8px; }
.icon-btn,.bet-btn { display:inline-flex; justify-content:center; align-items:center; min-width:44px; width:44px; height:44px; padding:9px; border:1px solid #a3bdce; border-radius:50%; background:#102c43; color:white; box-shadow:none; }
.icon-btn img,.bet-btn img,.spin-icon,.bet-lock { filter:brightness(0) invert(1); width:100%; height:100%; object-fit:contain; }
.bet-control { gap:5px; justify-content:center; }
.bet-btn { border-color:#577ea8; background:#234671; }
.bet-value-btn { background:none; border:0; color:white; min-height:44px; min-width:42px; padding:0 2px; }
.bet-lock { display:none; width:18px; height:18px; }
.cabinet.in-bonus .bet-lock { display:block; }
.cabinet.in-bonus .bet-btn { display:none; }
.spin-btn,.bonus-counter { grid-area:spin; width:76px; height:76px; border:3px solid #dce7f1; border-radius:50%; background:#d6303e; padding:13px; box-shadow:0 3px 0 #061323; justify-self:center; }
.spin-btn .spin-icon { display:block; }
.spin-btn:disabled { opacity:.8; filter:none; }
.cabinet.is-spinning .spin-icon { animation:spin-progress 1.05s linear infinite; }
@keyframes spin-progress { to {transform:rotate(360deg);} }
.bonus-counter { display:flex; flex-direction:column; justify-content:center; align-items:center; padding:4px; background:#123956; }
.bonus-counter strong { font-size:28px; line-height:1; }
.bonus-counter span { font-size:10px; margin-top:4px; }
.buy-bonus-btn { grid-area:buy; display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:64px; padding:6px 12px; border:1px solid #ffe1a0; border-radius:8px; background:#efbe55; color:#241800; box-shadow:0 3px 0 #81591f; font-size:clamp(10px,1.2vw,16px); letter-spacing:0; }
.buy-bonus-btn strong { display:block; width:100%; margin-top:4px; padding:3px 8px; font-size:1.15em; background:#ad791d; color:white; border-radius:4px; }
.bonus-progress { grid-area:buy; display:flex; flex-direction:column; gap:4px; align-items:center; text-align:center; color:#f8d36c; font-size:14px; }
.bonus-progress span { color:#c7e2f6; font-size:10px; }
.win-banner,.summary-banner { top:37px; border-radius:6px; max-width:90%; }
.stage.free-spins-theme .win-banner { top:37px; }
.jersey-popup { top:37px; font-size:12px; }
.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; }
.fullscreen-overlay { visibility:hidden; }
.fullscreen-overlay.visible { visibility:visible; }
.info-modal-close { width:44px; height:44px; }
.info-modal-box { padding-top:56px; }
.game-dialog { margin:auto; width:min(400px,calc(100vw - 28px)); max-height:85dvh; overflow:auto; border:1px solid #95b4c9; border-radius:14px; padding:26px; color:#eaf6ff; background:#092238; box-shadow:0 12px 50px #0009; }
.game-dialog::backdrop { background:#020d19c9; }
.game-dialog h2 { font-size:20px; letter-spacing:.6px; padding-right:32px; margin:0 0 24px; }
.dialog-close { position:absolute; right:12px; top:12px; }
.menu-action { display:block; width:100%; padding:15px; margin:8px 0; border:1px solid #395a74; border-radius:8px; background:#14344e; color:white; text-align:left; font-size:15px; }
.menu-note { margin:16px 0 0; color:#abc1d2; font-size:12px; line-height:1.5; }
.bet-options { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:18px; }
.bet-option { border:1px solid #486b84; border-radius:8px; background:#173c58; padding:14px 4px; color:white; font-size:15px; }
.bet-option[aria-pressed='true'] { border-color:#f4cc70; color:#f4cc70; }
.menu-action:disabled,.bet-option:disabled { opacity:.4; }
.dev-tools { position:fixed; left:8px; top:8px; z-index:20; opacity:.85; }
@media (max-aspect-ratio:4/5), (max-width:680px) and (min-height:541px) {
 .app { background-image:url('assets/background/arena-mobile-centered.png'); background-size:auto 100%; background-position:calc(50% + 2dvh) center; padding-left:max(7px,env(safe-area-inset-left)); padding-right:max(7px,env(safe-area-inset-right)); }
 .cabinet { width:min(100%,calc((100dvh - 218px) / .8)); }
 .topbar { width:92%; aspect-ratio:6/1; }
 .bonus-status-slot { height:28px; }
 .free-spins-badge,.multiplier-badge { font-size:9px; padding:0 3px; }
 .hud { width:100%; margin:-1px 0 0; grid-template-columns:1fr 1.4fr 1fr; grid-template-areas:'balance bet win' 'buy spin utility'; padding:15px 12px; gap:9px 5px; background-size:100% 218%; }
 .hud-value { font-size:18px; }
 .hud-label { font-size:10px; }
 .credit-unit { font-size:8px; }
 .bet-control { gap:0; }
 .bet-btn { width:44px; height:44px; padding:12px; min-width:44px; }
 .bet-value-btn { min-width:37px; padding:0; }
 .bet-value-btn .hud-value { font-size:16px; }
 .utility-controls { gap:4px; justify-content:center; }
 .icon-btn { width:44px; height:44px; padding:10px; }
 .spin-btn,.bonus-counter { width:74px; height:74px; }
 .buy-bonus-btn { font-size:10px; min-height:60px; padding:5px; }
 .buy-bonus-btn strong { padding:3px; font-size:15px; }
 .bonus-progress { font-size:11px; }
 .bonus-progress span { font-size:8px; }
 .win-banner,.summary-banner,.stage.free-spins-theme .win-banner,.jersey-popup { top:32px; }
 .summary-banner { font-size:11px; padding:8px; }
}
@media (max-height:540px) and (min-aspect-ratio:4/5) {
 .app { padding:5px max(10px,env(safe-area-inset-right)) 5px max(10px,env(safe-area-inset-left)); }
 .cabinet { width:min(78vw,calc((100dvh - 110px) / .72)); }
 .topbar { width:65%; }
 .bonus-status-slot { height:23px; }
 .free-spins-badge,.multiplier-badge { font-size:9px; }
 .hud { width:min(160%,calc(100vw - 20px)); margin-left:50%; transform:translateX(-50%); padding:8px 14px; gap:6px; }
 .hud-value { font-size:16px; }
 .hud-label { font-size:9px; }
 .credit-unit { font-size:8px; }
 .utility-controls { gap:3px; }
 .icon-btn { width:44px; height:44px; }
 .spin-btn,.bonus-counter { width:54px; height:54px; padding:9px; }
 .bonus-counter strong { font-size:20px; }
 .buy-bonus-btn { min-height:48px; padding:3px 6px; font-size:10px; }
 .buy-bonus-btn strong { margin:2px 0 0; padding:2px; }
 .bonus-progress {font-size:10px;}
}
@media (prefers-reduced-motion:reduce) { .spin-icon,.win-anim-jump,.win-anim-wolf,.win-anim-bear,.win-anim-tiger,.win-anim-zubr { animation:none !important; } }
/* The cabinet stays fixed; only bonus mode reserves space above the reels. */
.cabinet { width:min(1120px,86vw,calc((100dvh - 145px) / .65)); }
.topbar { margin-bottom:-5px; }
.bonus-status-slot { position:absolute; top:6.1%; left:2.5%; width:95%; height:28px; z-index:3; border:0; border-radius:0; background:#09283e; }
.bonus-status-slot:has(.free-spins-info:not(.visible)) { visibility:hidden; }
.frame-wrap { aspect-ratio:1.92; }
.reels-wrap { top:calc(6.2% + 28px); }
.win-banner,.summary-banner,.stage.free-spins-theme .win-banner,.jersey-popup { top:6px; }
@media (max-aspect-ratio:4/5), (max-width:680px) and (min-height:541px) {
 .cabinet { width:min(100%,calc((100dvh - 195px) / .97)); }
 .frame-wrap { aspect-ratio:1.25; }
 .bonus-status-slot { height:25px; }
 .reels-wrap { top:calc(6.2% + 25px); }
 .topbar { width:94%; }
 .hud { gap:9px 5px; }
}
@media (max-height:540px) and (min-aspect-ratio:4/5) {
 .cabinet { width:min(78vw,calc((100dvh - 93px) / .63)); }
 .frame-wrap { aspect-ratio:1.92; }
 .bonus-status-slot { height:20px; }
 .reels-wrap { top:calc(6.2% + 20px); }
}

.cell.sym-WOLF .symbol-img,.cell.sym-BEAR .symbol-img,.cell.sym-TIGER .symbol-img { width:100%; height:100%; }
.summary-dialog { text-align:center; }
.summary-dialog h2 { padding:0; color:#ffce6c; }
.summary-dialog p { color:#aec7db; margin:8px 0; }
#summaryCredits { display:block; font-size:44px; font-variant-numeric:tabular-nums; }
.summary-dialog .menu-action { text-align:center; margin-top:24px; }
.cabinet.in-bonus .frame-wrap { background-image:url('assets/ui/reel-frame-bonus.png'); }
@media (max-aspect-ratio:4/5), (max-width:680px) and (min-height:541px) {
 .hud { grid-template-columns:1fr 1.5fr 1fr; }
 .utility-controls { gap:0; }
 .bet-value-btn { min-width:44px; }
 .free-spins-badge,.multiplier-badge { font-size:11px; }
}
/* Center a console wider than the reels without inherited grid alignment. */
.hud { justify-self:auto; align-self:auto; margin:-2px 0 0; left:50%; transform:translateX(-50%); }
@media (min-width:681px) and (min-height:541px) and (min-aspect-ratio:4/5) {
 .topbar { width:64%; }
 .hud { padding:12px 26px; }
 .icon-btn { width:56px; height:56px; padding:13px; }
 .spin-btn,.bonus-counter { width:96px; height:96px; padding:17px; }
 .bonus-counter strong { font-size:34px; }
 .hud-value { font-size:clamp(20px,2.1vw,30px); }
 .hud-label { font-size:clamp(11px,1.1vw,16px); }
 .buy-bonus-btn { min-height:72px; }
}

.cell.sym-WOLF .symbol-img,.cell.sym-BEAR .symbol-img,.cell.sym-TIGER .symbol-img { width:110%; height:110%; }
@keyframes jersey-scale-in {
  0% { transform:scale(0); opacity:0; }
  60% { transform:scale(1.04); opacity:1; }
  100% { transform:scale(1); opacity:1; }
}
@media (max-aspect-ratio:4/5), (max-width:680px) and (min-height:541px) {
 .utility-controls { flex-direction:row-reverse; }
}

/* Shared enamel-and-steel finish for the live console controls. */
.hud {
 --control-face:linear-gradient(155deg,#31516a 0%,#132e46 45%,#071929 100%);
 --steel-edge:linear-gradient(145deg,#f0f7fa 0%,#849aaa 32%,#334d60 52%,#d1e2eb 80%,#738d9f 100%);
 --control-shadow:inset 0 1px 2px #ffffff30,inset 0 -4px 8px #0008,0 3px 6px #0008;
}
.hud .icon-btn,.hud .bet-btn,.spin-btn,.bonus-counter,.buy-bonus-btn {
 border:2px solid transparent;
 background:var(--control-face) padding-box,var(--steel-edge) border-box;
 box-shadow:var(--control-shadow);
 transition:filter .16s ease,box-shadow .16s ease;
}
.hud button:focus-visible { outline:3px solid #fbd276; outline-offset:3px; }
@media (hover:hover) {
 .hud button:not(:disabled):hover { filter:brightness(1.18); }
}
.hud button:not(:disabled):active { box-shadow:inset 0 3px 8px #000b; }
.hud button:disabled { opacity:.55; }
.spin-btn,.bonus-counter {
 border-width:3px;
 background:radial-gradient(ellipse at 35% 15%,#48758d 0%,#153c56 45%,#071b2c 85%) padding-box,var(--steel-edge) border-box;
 box-shadow:inset 0 2px 3px #d7f4ff66,inset 0 -7px 14px #0009,0 4px 9px #000b;
}
.spin-btn .spin-icon { width:78%; height:78%; margin:auto; filter:brightness(0) invert(1) drop-shadow(0 2px 2px #0008); }
.buy-bonus-btn { color:#ffdb7b; border-radius:9px; text-shadow:0 2px 2px #000; font-weight:800; letter-spacing:.7px; }
.buy-bonus-btn strong { width:auto; background:none; margin-top:5px; padding:0; color:#f0f7ff; font-variant-numeric:tabular-nums; }
.hud .icon-btn { border-color:transparent; }
.hud .bet-btn { border-width:1px; padding:13px; }
.bet-control { border:1px solid #7895ab55; border-radius:30px; background:#020d1980; box-shadow:inset 0 2px 5px #0008; }
.bet-value-btn { flex:1; }
.hud-label { color:#adc8db; letter-spacing:1px; font-weight:600; }
.hud-value { text-shadow:0 2px 3px #0009; }
.win-panel .hud-value { color:#ffdb7b; }
.credit-unit { color:#8aa9bf; letter-spacing:1px; }
.balance-panel,.win-panel { align-self:center; }
.reels { border-radius:3px; box-shadow:inset 0 10px 15px -10px #284a6f99,inset 0 -10px 15px -10px #284a6f99; }
.reel { background:linear-gradient(90deg,#35607f0d,transparent 22%,#fff2 50%,transparent 78%,#35607f0d); }
.reel:not(:last-child) { border-right:1px solid #53799735; box-shadow:1px 0 0 #ffffff70; }
.cell.sym-NUMBER_10 .symbol-img,.cell.sym-NUMBER_8 .symbol-img,
.cell.sym-LETTER_A .symbol-img,.cell.sym-LETTER_C .symbol-img { width:80%; height:80%; }
.cell.sym-WOLF .symbol-img,.cell.sym-BEAR .symbol-img,
.cell.sym-TIGER .symbol-img,.cell.sym-ZUBR .symbol-img { width:100%; height:100%; flex-shrink:0; }
.cell.sym-ZUBR .symbol-img { transform:none; }
@media (min-width:681px) and (min-height:541px) and (min-aspect-ratio:4/5) {
 .hud { grid-template-columns:auto 1.1fr 1.3fr 1fr 1.1fr auto; }
 .hud .buy-bonus-btn { min-height:70px; }
 .hud .buy-bonus-btn strong { font-size:21px; }
}
@media (max-aspect-ratio:4/5), (max-width:680px) and (min-height:541px) {
 .hud { padding:17px 22px 27px; gap:13px 7px; grid-template-columns:1fr 1.4fr 1fr; }
 .hud-label { font-size:10px; margin-bottom:5px; letter-spacing:.8px; }
 .hud-value { font-size:20px; }
 .bet-value-btn .hud-value { font-size:18px; }
 .bet-control { gap:0; margin:0 -5px; }
 .hud .bet-btn { width:44px; height:44px; min-width:44px; padding:13px; }
 .hud .buy-bonus-btn { min-height:64px; font-size:11px; letter-spacing:.2px; }
 .hud .buy-bonus-btn strong { font-size:17px; }
 .spin-btn,.bonus-counter { width:80px; height:80px; padding:10px; }
 .utility-controls { gap:5px; }
 .utility-controls .icon-btn { flex-shrink:0; }
}
@media (max-height:540px) and (min-aspect-ratio:4/5) {
 .hud-label { letter-spacing:.4px; }
 .hud .bet-btn { padding:12px; }
.buy-bonus-btn strong { margin-top:2px; }
}

.cabinet:not(.in-bonus) .reels-wrap { top:6.2%; }
/* Wider windows use the landscape arena; portrait overscan covers up to 4:5. */
@media (min-aspect-ratio:4/5) {
 .app { background-image:url('assets/background/arena-desktop.png'); background-size:cover; background-position:center; }
}
.hud .spin-btn {
 background:radial-gradient(ellipse at 35% 15%,#e9fcff 0%,#82dff5 30%,#269ac6 66%,#125477 100%) padding-box,
   linear-gradient(145deg,#ffffff,#a4e6ff 35%,#3a7b99 58%,#e5faff 85%) border-box;
 box-shadow:inset 0 2px 3px #fff9,inset 0 -5px 10px #073c6380,0 3px 8px #0008,0 0 18px #6ed9ff50;
}
.hud .spin-btn .spin-icon { filter:brightness(0) saturate(100%) drop-shadow(0 1px 1px #ffffff80); opacity:.8; }
.hud .spin-btn:disabled { opacity:.65; box-shadow:inset 0 2px 5px #073c6366; }

/* Mark the actual paying symbols, retaining a readable result until next spin. */
.reels.showing-wins .cell:not(.winning-cell) .symbol-img { opacity:.48; }
.cell.winning-cell { background:radial-gradient(ellipse,#fff3b860,transparent 72%); box-shadow:inset 0 0 0 1px #dcaa4670; border-radius:8px; }
.symbol-img { transition:opacity .18s ease; }
.win-banner { pointer-events:none; background:linear-gradient(135deg,#183b52,#061d30); border:1px solid #edcc83; box-shadow:0 4px 16px #00101c80; }
.win-banner {
 width:min(280px,86%); max-width:none; box-sizing:border-box;
 justify-content:center; align-items:center; gap:12px;
 padding:10px 14px; color:#ffdc85;
}
#winBannerLabel { flex:none; color:#c4dfee; font-size:12px; line-height:1.2; }
#winBannerAmount { min-width:7ch; text-align:right; font-size:clamp(18px,5vw,24px); line-height:1.2; font-variant-numeric:tabular-nums; }
.win-tier-label,.win-tier-amount { width:100%; max-width:100%; line-height:1.15; overflow-wrap:anywhere; }
.win-tier-amount { font-size:clamp(28px,8vw,64px); }

/* Bonus dialogs share the approved navy/steel artwork and live typography. */
.buy-bonus-modal { padding:16px; background:#020c1bd1; overflow:auto; }
.buy-bonus-modal-box,.game-dialog.summary-dialog {
 position:relative; width:min(480px,100%); max-width:480px; box-sizing:border-box;
 border:0; border-radius:0; padding:36px 32px 30px;
 background: url('assets/ui/modal-panel.png') center / 100% 100% no-repeat;
 color:#edf8ff; text-align:center; box-shadow:none;
}
.game-dialog.summary-dialog { width:min(440px,calc(100vw - 28px)); max-height:calc(100dvh - 28px); }
.summary-dialog::backdrop { background:#020c1bd1; }
#menuDialog {
 width:min(430px,calc(100vw - 28px)); max-height:calc(100dvh - 28px);
 padding:34px 28px 36px; border:0; border-radius:0;
 background:url('assets/ui/modal-panel.png') center / 100% 100% no-repeat;
 box-shadow:none; text-align:center;
}
#menuDialog::backdrop { background:#020c1bd1; }
#menuDialog h2 { padding:0; margin:0; font-size:32px; }
.menu-options { display:grid; gap:10px; margin:26px 0 0; }
.menu-row { display:flex; align-items:center; gap:12px; width:100%; min-height:76px; padding:12px; border:1px solid #567f9f; border-radius:8px; background:#041b2bb3; color:#edf8ff; text-align:left; }
.menu-row>img { width:24px; height:24px; flex:none; filter:brightness(0) invert(1); opacity:.8; }
.menu-row>span:nth-child(2) { flex:1; min-width:0; }
.menu-row strong { display:block; font-size:16px; }
.menu-row small { display:block; margin-top:5px; font-size:11px; color:#aacbdd; line-height:1.4; }
.menu-chevron { font-size:26px; color:#8bdff3; }
.sound-state { border:1px solid #6ab8d4; border-radius:20px; padding:7px 10px; background:#15465c; color:#a4f3ff; font-size:11px; font-weight:800; }
[aria-checked='false'] .sound-state { border-color:#547084; background:#102536; color:#a5bac8; }
.menu-reset { padding:22px 0; }
.menu-reset button { background:none; border:0; color:#b6cee0; min-height:44px; font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.menu-reset button:disabled { opacity:.4; }
.menu-reset p { margin:0; color:#8cabbe; font-size:11px; }
#menuDialog .menu-note { font-size:10px; margin:18px 0 0; color:#9cb8cd; }
.menu-row:focus-visible,.menu-reset button:focus-visible { outline:2px solid #9eeeff; outline-offset:3px; }
@media (max-width:380px) { #menuDialog { padding-inline:23px; } .menu-row { gap:9px; padding:10px; } .menu-row strong { font-size:14px; } }
.modal-eyebrow,.summary-dialog .modal-eyebrow { color:#8ceaff; font-size:13px; font-weight:800; letter-spacing:1.7px; margin:0 0 20px; }
.modal-heading,.summary-dialog h2.modal-heading { font-family:Impact,'Arial Narrow',sans-serif; font-size:clamp(28px,7.3vw,44px); font-style:italic; line-height:1.1; margin:0; padding:0; color:#ecf8ff; text-shadow:0 3px 0 #193c56; }
.modal-heading span { color:#87e9ff; }
.modal-subtitle { margin:10px 0 24px; font-size:15px; }
.modal-dismiss { position:absolute; top:30px; right:30px; width:44px; height:44px; padding:12px; display:flex; align-items:center; justify-content:center; border:0; border-radius:4px; background:transparent; box-shadow:none; z-index:2; }
.modal-dismiss img { display:block; width:20px; height:20px; filter:brightness(0) invert(1); opacity:.8; }
.modal-dismiss:hover img { opacity:1; }
.purchase-values { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.purchase-values>div { min-width:0; padding:13px 5px; border:1px solid #6b91af; border-radius:8px; background:#04132466; }
.purchase-values span,.purchase-values small { display:block; font-size:11px; font-weight:700; color:#b7d5ec; }
.purchase-values strong { display:block; font-size:clamp(20px,5.5vw,28px); margin:6px 0; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.purchase-multiple { color:#aac8dc; font-size:12px; margin:10px 0 18px; }
.buy-bonus-modal-actions { display:grid; grid-template-columns:1fr 1.3fr; gap:12px; }
.buy-bonus-modal-box { padding-top:52px; padding-bottom:60px; }
.buy-bonus-modal-box .modal-dismiss { top:36px; }
.ice-action,.steel-action { min-height:54px; width:100%; padding:12px 10px; border:2px solid #b8eaff; border-radius:7px; font-size:16px; font-weight:900; line-height:1.2; }
.ice-action { color:#05243b; background:linear-gradient(165deg,#edffff,#8ae7fa 40%,#37b5df); box-shadow:inset 0 2px 3px #fff9,0 3px 0 #14567b; }
.steel-action { color:#c4dff5; border-color:#8ca8bc; background:linear-gradient(#2a4761,#0a2034); box-shadow:inset 0 1px 2px #fff4,0 3px 0 #03101e; }
.ice-action:focus-visible,.steel-action:focus-visible { outline:3px solid #ffdb7b; outline-offset:3px; }
.modal-dismiss:focus-visible { outline:1px solid #9eeaff; outline-offset:-4px; }
.ice-action:active,.steel-action:active { filter:brightness(.85); }
.summary-dialog #summaryCredits { display:block; max-width:100%; margin:18px 0 0; font-family:Impact,'Arial Narrow',sans-serif; line-height:1.1; font-weight:900; color:#ffd05b; text-shadow:0 3px 0 #865411,0 0 22px #ffc84233; overflow-wrap:anywhere; }
.summary-unit { color:#a0ecff; font-weight:800; font-size:20px; margin:8px 0 20px; }
.summary-dialog .summary-multiple { border-block:1px solid #5084a266; padding:12px 0; margin:0; color:#e5f6ff; font-size:17px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.summary-dialog .summary-played { margin:20px 0 26px; color:#bbddec; font-size:14px; }
@media (max-width:540px) {
 .buy-bonus-modal-box,.game-dialog.summary-dialog { padding:34px 25px 28px; }
 .buy-bonus-modal-box { padding:52px 36px 60px; }
 .buy-bonus-modal-actions { grid-template-columns:1fr; }
 .buy-bonus-modal-actions .ice-action { grid-row:1; }
 .purchase-values { gap:9px; }
}
@media (max-height:540px) {
 .buy-bonus-modal { justify-content:flex-start; }
 .buy-bonus-modal-box { margin:auto; }
}
@media (prefers-reduced-motion:reduce) {
 .symbol-img { transition:none; }
}

/* Rules: readable HTML over the shared navy and steel treatment. */
.info-modal-box { width:min(660px,calc(100vw - 28px)); max-width:660px; height: min(690px,calc(100dvh - 32px)); max-height:calc(100dvh - 32px); padding:40px 38px 30px; border:2px solid #829baa; border-radius:22px; background:radial-gradient(ellipse at top,#193b52,#071a29 75%); box-shadow:inset 0 0 0 3px #253f50,inset 0 0 30px #0008,0 20px 70px #000b; color:#eef7ff; }
.info-modal-box .info-modal-close { top:14px; right:14px; width:44px; height:44px; border-radius:8px; background:transparent; font-size:20px; }
.rules-title { font-size:28px; letter-spacing:1.5px; text-align:center; margin:4px 26px 20px; color:#fff; line-height:1.2; }
.rules-title:focus { outline:none; }
.rules-nav { display:flex; gap:8px; margin-bottom:20px; flex-shrink:0; }
.rules-nav button { flex:1; min-height:44px; border:1px solid #496777; border-radius:9px; color:#afc5d4; background:#071c2a; font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.rules-nav button[aria-pressed=true] { color:#dffbff; border-color:#7adcf6; background:#163d50; box-shadow:inset 0 -2px #65d5f4; }
.info-modal-scroll { flex:1; min-height:0; padding:0 5px 8px 0; scrollbar-width:thin; scrollbar-color:#527586 transparent; overscroll-behavior:contain; }
.info-modal-box [hidden] { display:none !important; }
.info-modal-box p { font-size:15px; line-height:1.55; margin:0; color:#bcd0df; }
.info-modal-box b { color:#eefaff; }
.info-modal-box h3 { margin:0 0 6px; font-size:16px; letter-spacing:.7px; color:#eaf6ff; }
.rules-steps { display:grid; gap:18px; padding:8px 0 20px; }
.rules-steps article { display:flex; gap:16px; align-items:flex-start; padding:16px; border:1px solid #385564; background:#15304370; border-radius:12px; }
.rules-number { display:grid; place-items:center; flex:none; width:36px; height:36px; border-radius:50%; background:#87dcf1; color:#082033; font-size:20px; font-weight:900; }
.rules-callout { padding:16px; border-left:3px solid #7bd8f4; background:#18384a80; border-radius:0 10px 10px 0; margin:18px 0; }
.info-modal-box .rules-note { font-size:13px; color:#a8bfce; margin:16px 0 4px; }
.rules-symbol-strip { display:grid; grid-template-columns:repeat(5,1fr); gap:5px; margin:20px 0; }
.rules-symbol-strip > span { position:relative; min-width:0; min-height:0; overflow:hidden; aspect-ratio:1; display:grid; place-items:center; border:1px solid #365265; border-radius:9px; background:#0a1f2d; }
.rules-symbol-strip .info-symbol-icon { position:absolute; inset:5%; width:90%; height:90%; object-fit:contain; }
.rules-symbol-strip .example-hit { border-color:#91eaff; background:#204b60; box-shadow:inset 0 0 12px #76dfff30; }
.rules-equation,.rules-price { display:flex; justify-content:space-around; gap:12px; background:#061521; padding:16px; border:1px solid #385666; border-radius:12px; font-size:13px; color:#a9c8db; text-align:center; }
.rules-equation b,.rules-price b { display:block; font-size:24px; margin-top:5px; color:#f9d475; }
.rules-price { margin:26px 0; padding:24px 12px; }
.rules-trigger { display:grid; grid-template-columns:repeat(5,1fr); gap:4px; max-width:360px; margin:16px auto; }
.rules-trigger > span { height:40px; border:1px solid #395b6c; border-radius:5px; background:#132d3f; display:grid; place-items:center; }
.rules-trigger .info-symbol-icon { height:38px; width:100%; }
.rules-reward { text-align:center; color:#f9d475; font-size:40px; font-weight:900; line-height:1.1; }
.rules-reward span { display:block; font-size:16px; letter-spacing:2px; margin-top:5px; }
.rules-pagination { display:grid; grid-template-columns:1fr 65px 1fr; gap:12px; align-items:center; padding-top:18px; flex:none; }
.rules-pagination button { min-height:48px; border-radius:10px; font-size:15px; cursor:pointer; }
.rules-pagination button:disabled { opacity:.3; cursor:default; }
#rulesProgress { text-align:center; color:#aac9db; font-size:14px; font-variant-numeric:tabular-nums; }
.rules-lines { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }
.rules-line-card { border:1px solid #375567; border-radius:9px; padding:10px; background:#0a2030; }
.rules-line-card strong { font-size:11px; color:#b7d4e4; letter-spacing:1px; }
.rules-line-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:3px; margin-top:8px; }
.rules-line-grid span { height:12px; background:#233b4c; border-radius:2px; }
.rules-line-grid .on { background:#86dff4; box-shadow:0 0 5px #86dff440; }
#infoPaytable { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; margin-top:14px; }
.info-paytable-row { min-height:76px; }
.info-symbol-payouts { line-height:1.8; white-space:pre-wrap; }
.info-modal-box button:focus-visible { outline:2px solid #a2eaff; outline-offset:2px; }
@media(max-width:600px) {
 .info-modal-box { padding:32px 20px 22px; border-radius:18px; }
 .rules-title { font-size:22px; margin:12px 28px 18px; }
 .rules-steps { gap:12px; padding-top:0; }
 .rules-steps article { padding:12px; gap:12px; }
 .info-modal-box p { font-size:14px; }
 .rules-callout { padding:12px; margin:14px 0; }
 .rules-lines { grid-template-columns:repeat(2,1fr); }
 #infoPaytable { grid-template-columns:1fr; }
 .rules-pagination { padding-top:12px; }
 .rules-nav { margin-bottom:16px; }
}

/* Rules polish: prose alignment, explicit paytable and full reel example. */
.info-modal-box .rules-lead,.info-modal-box .rules-note,.rules-steps article,.rules-callout p { text-align:left; }
.rules-steps article > div { flex:1; }
.rules-grid-figure { margin:16px auto; max-width:360px; }
.rules-example-grid { position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:4px; }
.rules-example-grid > span { min-width:0; height:46px; display:grid; place-items:center; border:1px solid #375262; border-radius:6px; background:#0c2535; }
.rules-example-grid .info-symbol-icon { width:85%; height:40px; position:relative; z-index:1; }
.rules-example-grid .example-muted .info-symbol-icon { opacity:.35; }
.rules-example-grid .example-path { position:relative; border-color:#6fa8bb; }
.rules-example-grid .example-path::before { content:""; position:absolute; left:-3px; right:-3px; top:50%; height:2px; background:#92e5f2; opacity:.6; }
.rules-example-grid .example-hit { background:#285265; border:2px solid #a2edff; box-shadow:0 0 9px #72d6f333; }
.rules-grid-figure figcaption { color:#a6d4e4; font-size:10px; letter-spacing:.7px; text-align:center; margin-top:9px; }
#infoPaytable { display:block; }
.rules-payout-table { width:100%; border-collapse:collapse; table-layout:fixed; font-variant-numeric:tabular-nums; }
.rules-payout-table caption { text-align:left; color:#9fbfce; font-size:12px; padding:0 0 12px; }
.rules-payout-table th,.rules-payout-table td { padding:10px 4px; border-bottom:1px solid #45627570; text-align:center; font-size:14px; }
.rules-payout-table thead th { color:#aeeaff; background:#142e40; }
.rules-payout-table thead span { display:block; font-size:11px; font-weight:400; margin-top:3px; }
.rules-payout-table th:first-child { width:34%; text-align:left; }
.rules-payout-table td { color:#eef7ff; }
.rules-payout-symbol { display:flex; align-items:center; gap:10px; font-size:12px; }
.rules-payout-symbol .info-symbol-icon { width:40px; height:44px; }
@media(max-width:600px) {
 .rules-payout-symbol { gap:5px; font-size:10px; }
 .rules-payout-symbol .info-symbol-icon { width:30px; height:38px; }
 .rules-payout-table th,.rules-payout-table td { font-size:12px; padding:9px 2px; }
 .rules-payout-table thead span { font-size:10px; }
 .rules-example-grid > span { height:38px; }
 .rules-example-grid .info-symbol-icon { height:34px; }
}

.info-modal-box[data-guide-page="2"] { height:min(650px,calc(100dvh - 32px)); }

/* Keep the locked bet and bonus summary clear of their frames. */
.cabinet.in-bonus .bet-control { position:relative; padding-inline:32px; }
.cabinet.in-bonus .bet-lock { position:absolute; right:12px; top:50%; transform:translateY(-50%); width:16px; height:16px; }
.game-dialog.summary-dialog { padding:36px 36px 52px; }
@media(max-width:540px) {
 .game-dialog.summary-dialog { padding:34px 32px 48px; }
}

/* Resting reels: a restrained ice surface and consistent symbol breathing room. */
.reels { background:linear-gradient(180deg,#b9d2df99,#e0edf177 18%,#e8f1f377 50%,#d9e8ee77 82%,#afc9d699); }
.reels::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none; border-radius:3px; box-shadow:inset 0 12px 15px -12px #183d5fb3,inset 0 -12px 15px -12px #183d5fb3; }
.reel { background:linear-gradient(90deg,#244f6c0b,transparent 20%,#ffffff16 50%,transparent 80%,#244f6c0b); }
.cell.sym-WOLF .symbol-img,.cell.sym-BEAR .symbol-img,
.cell.sym-TIGER .symbol-img,.cell.sym-ZUBR .symbol-img { width:88%; height:88%; }
.cell.sym-NUMBER_10 .symbol-img,.cell.sym-LETTER_A .symbol-img { width:80%; height:80%; }
.cell.sym-NUMBER_8 .symbol-img,.cell.sym-LETTER_C .symbol-img { width:78%; height:78%; }
.cell.sym-JERSEY .symbol-img { width:88%; height:88%; transform:none; }
.cell.sym-GOAL .symbol-img { width:86%; height:82%; }
.cabinet.in-bonus .cell.sym-JERSEY { outline:none; border-radius:8px; box-shadow:inset 0 0 0 1px #d5a54590; background:radial-gradient(ellipse,#ffe6a333,transparent 75%); }
.cabinet.in-bonus .cell.sym-JERSEY::after { bottom:8%; right:8%; width:12%; height:12%; opacity:.8; }

/* Frozen jerseys cover the moving strip beneath their transparent artwork. */
.cabinet.in-bonus .cell.sticky-frozen-cell { background:radial-gradient(ellipse,#f3e8c8,#d9e6e9 78%); }

/* Floating ice typography; celebrations remain inside the reel field. */
.win-banner,.stage.free-spins-theme .win-banner { top:50%; left:50%; width:82%; transform:translate(-50%,-45%) scale(.94); flex-direction:column; gap:2px; padding:18px 8px; border:0; border-radius:0; background:radial-gradient(ellipse,#092a4cbb,transparent 70%); box-shadow:none; }
.win-banner.visible { transform:translate(-50%,-50%) scale(1); }
#winBannerLabel { color:#e8fbff; font-size:clamp(16px,3vw,26px); letter-spacing:5px; text-shadow:0 2px 3px #082a46; }
#winBannerAmount { min-width:0; max-width:100%; text-align:center; font-family:Impact,'Arial Narrow',sans-serif; font-weight:900; font-size:clamp(34px,8vw,82px); color:#edfcff; -webkit-text-stroke:1px #99e8ff; text-shadow:0 3px 0 #3991bb,0 6px 0 #143b60,0 0 22px #45caff; }
.win-banner::after { content:''; width:65%; height:2px; margin-top:8px; background:linear-gradient(90deg,transparent,#cefbff,transparent); box-shadow:0 0 10px #70e2ff; }
.win-tier-overlay { overflow:hidden; padding:16px; box-sizing:border-box; background:radial-gradient(ellipse,#1873a666,#061326c9 75%); border-radius:3px; }
.win-tier-overlay.visible { pointer-events:auto; }
.win-tier-overlay .win-tier-label { z-index:1; width:auto; font-size:clamp(32px,7vw,88px); font-style:italic; color:#eafaff; -webkit-text-stroke:1px #82d7ef; text-shadow:0 4px 0 #285d86,0 7px 0 #0c2744,0 0 20px #6cdfff80; margin:0 0 10px; }
.win-tier-overlay .win-tier-amount { z-index:1; color:#ffda62; white-space:nowrap; overflow-wrap:normal; -webkit-text-stroke:1px #ffecab; text-shadow:0 4px 0 #bb7716,0 8px 0 #583210,0 0 22px #ffd45b55; }
.win-tier-overlay .confetti-piece { width:7px; height:13px; border-radius:0; clip-path:polygon(50% 0,100% 35%,70% 100%,0 65%); box-shadow:0 0 8px #a4eaff; }
.win-skip { z-index:3; border:0; color:#e2f6ff; background:transparent; padding:14px 24px; min-height:44px; margin-top:10px; font-size:13px; }
.win-skip:focus-visible { outline:2px solid #9be6ff; border-radius:6px; }
@media(prefers-reduced-motion:reduce) { .win-tier-overlay .confetti-piece { display:none; } .win-banner { transition:opacity .15s; } }

/* Sharper celebration lettering and a focused ice flare. */
.win-tier-overlay { background:#061426b8; isolation:isolate; }
.win-tier-overlay::before { content:''; position:absolute; z-index:0; pointer-events:none; left:9%; right:9%; top:54%; height:3px; background:linear-gradient(90deg,transparent,#72d9ff 25%,#fff 50%,#72d9ff 75%,transparent); box-shadow:0 0 10px 2px #7cdfff88,0 0 28px 5px #42baff44; transform:rotate(-4deg); }
.win-tier-overlay .win-tier-label { line-height:1.08; letter-spacing:1px; margin-bottom:14px; -webkit-text-stroke:1px #b1eaff; color:#edfbff; background:linear-gradient(172deg,#fff 0%,#e9fbff 42%,#82cfea 44%,#e6faff 53%,#bbdfed 100%); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; filter:drop-shadow(0 3px 0 #30678e) drop-shadow(0 3px 0 #071c32); text-shadow:none; }
.win-tier-overlay .win-tier-amount { background:linear-gradient(180deg,#fff6ba 3%,#ffdf74 30%,#ffc43c 53%,#f0a516 55%,#ffdb6b 78%,#ffe49a); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; -webkit-text-stroke:1px #ffd96d; text-shadow:none; filter:drop-shadow(0 3px 0 #ae6c12) drop-shadow(0 4px 0 #4c2a08); }
#winBannerAmount { text-shadow:0 2px 0 #5fb6d5,0 5px 0 #153d60,0 0 12px #56c6f180; }
.win-banner { background:radial-gradient(ellipse,#082945aa,transparent 65%); }

/* Winning-line replay is informational and never intercepts Spin. */
.line-replay-layer { position:absolute; inset:0; pointer-events:none; z-index:4; }
.line-replay-layer svg { position:absolute; width:100%; height:100%; overflow:visible; }
.line-replay-layer polyline { fill:none; stroke:#b5f2ff; stroke-width:2; vector-effect:non-scaling-stroke; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 0 3px #138bd2); opacity:.8; }
.line-replay-label { position:absolute; left:50%; bottom:6px; transform:translateX(-50%); max-width:95%; white-space:nowrap; background:#08283ee8; border:1px solid #85d5ed; color:#e7faff; padding:6px 12px; border-radius:7px; font-size:clamp(10px,1.5vw,15px); font-weight:700; font-variant-numeric:tabular-nums; }
.reels.line-replay .cell:not(.line-current) .symbol-img { opacity:.4; }
.reels.line-replay .cell.line-current .symbol-img { opacity:1; }
.reels.line-replay .cell.line-current { box-shadow:inset 0 0 0 2px #9ae6ff; background:#9de4ff30; border-radius:7px; }

/* Clear line hierarchy on bright ice. */
.line-replay-layer polyline { stroke:#36d5ff; stroke-width:2.5; opacity:1; filter:none; }
.line-replay-layer polyline.line-underlay { stroke:#063b5e; stroke-width:5.5; opacity:.9; }
.line-replay-label { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:3px 12px; width:max-content; max-width:calc(100% - 16px); box-sizing:border-box; padding:8px 12px; background:#062337f5; }
.line-replay-number { font-size:10px; letter-spacing:1px; font-weight:600; color:#a4c2d1; }
.line-replay-label strong { font-size:clamp(14px,2vw,20px); color:#f3fcff; }
.reels.line-replay .cell.line-current .symbol-img { animation:line-symbol-pulse 1.5s ease-in-out infinite; }
@keyframes line-symbol-pulse { 0%,100% { filter:drop-shadow(0 2px 4px #103c5b55); } 50% { filter:drop-shadow(0 0 7px #54d9ffbb); } }
@media(prefers-reduced-motion:reduce) { .reels.line-replay .cell.line-current .symbol-img { animation:none; } }

/* A reserved caption lane keeps winning-line amounts off the symbols. */
.reels-wrap { bottom:calc(5.8% + 32px); }
.line-status { position:absolute; left:2.5%; right:2.5%; bottom:5.8%; height:32px; display:flex; align-items:center; justify-content:center; background:#103146; border-top:1px solid #7eb5ce66; pointer-events:none; }
.line-status:empty::after { content:'ICE RUSH'; color:#7fabbc; font-size:10px; letter-spacing:3px; opacity:.6; }
.line-status .line-replay-label { position:static; transform:none; border:0; border-radius:0; padding:3px 8px; background:none; max-width:100%; gap:10px; }
.line-status .line-replay-label strong { font-size:clamp(13px,1.6vw,18px); }

/* One left-to-right reveal per line, with no endlessly running tracer. */
.line-replay-layer polyline { stroke-dasharray:100; stroke-dashoffset:100; animation:line-draw 360ms linear forwards; }
.line-replay-layer polyline.line-spark { stroke:#fff; stroke-width:4; stroke-dasharray:4 100; stroke-dashoffset:4; filter:drop-shadow(0 0 4px #63dcff); animation:line-trace 360ms linear forwards; }
.reels.line-replay .cell.line-current { animation:line-cell-arrive 240ms ease-out var(--line-arrival,0ms) both; }
.reels.line-replay .cell.line-current .symbol-img { animation:line-symbol-arrive 240ms ease-out var(--line-arrival,0ms) both, line-symbol-pulse 1.5s ease-in-out calc(var(--line-arrival,0ms) + 240ms) infinite; }
.line-status .line-replay-label { animation:line-caption-in 180ms ease-out 360ms both; }
@keyframes line-draw { to { stroke-dashoffset:0; } }
@keyframes line-trace { 0% { stroke-dashoffset:4; opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { stroke-dashoffset:-100; opacity:0; } }
@keyframes line-cell-arrive { from { box-shadow:inset 0 0 0 2px transparent; background:transparent; } to { box-shadow:inset 0 0 0 2px #9ae6ff; background:#9de4ff30; } }
@keyframes line-symbol-arrive { from { opacity:.4; } to { opacity:1; } }
@keyframes line-caption-in { from { opacity:0; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) {
 .line-replay-layer polyline { animation:none; stroke-dashoffset:0; }
 .line-replay-layer polyline.line-spark { display:none; }
 .reels.line-replay .cell.line-current,.reels.line-replay .cell.line-current .symbol-img,.line-status .line-replay-label { animation:none; }
}

/* Dash lengths follow the normalized path, not a non-scaling stroke. */
.line-replay-layer polyline { vector-effect:none; stroke-dasharray:100 100; }
.line-replay-layer polyline.line-spark { stroke-dasharray:4 100; }

.cell.sym-JERSEY .symbol-img.jersey-scale-in { animation-timing-function:ease-out; }

/* Goal celebration scales the artwork, never the entire reel cell. */
.cell.sym-GOAL .symbol-img { transform:none; }
.cell.goal-highlight { animation:none; }
.cell.goal-highlight .symbol-img { animation:goal-art-pulse 650ms ease-in-out infinite; }
@keyframes goal-art-pulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.04); } }
@media(prefers-reduced-motion:reduce) { .cell.goal-highlight .symbol-img { animation:none; } }

/* Bounded win gestures: leave room for every frame, including narrow phones. */
@keyframes win-anim-zubr { 0%,100% { transform:scale(1); } 40% { transform:translateY(-2%) scale(1.04); } 70% { transform:scale(1.02); } }
.win-anim-zubr { animation-timing-function:ease-in-out; }
@keyframes win-anim-wolf { 0%,100% { transform:rotate(0); } 33% { transform:rotate(-2deg); } 66% { transform:rotate(2deg); } }
@keyframes win-anim-tiger { 0%,100% { transform:translateX(0); } 25% { transform:translateX(-2%) rotate(-1deg); } 50% { transform:translateX(2%) rotate(1deg); } 75% { transform:translateX(-1%); } }
@keyframes win-anim-bear { 0%,100% { transform:scale(1); } 30% { transform:scale(.99,.94); } 60% { transform:scale(1.03); } }
@keyframes win-anim-jump { 0%,100% { transform:scale(1); } 50% { transform:scale(1.04); } }
