/*
 * Колесо фортуны во весь экран. Разметка — lobby/fortune.blade.php, поведение — /js/fortune.js.
 * Размер колеса не считается в пикселях: сцена занимает всё место под заголовком, колесо — самый большой квадрат в ней (cqw/cqh).
 * Встроенных style="" на сайте нельзя (CSP): всё, что зависит от данных, JS кладёт через CSSOM в переменные --*.
 */
.fs {
  --fs-lime: #bbeb00;
  --fs-lime-hi: #e4ff5c;
  --fs-lime-lo: #5f7a00;
  --fs-gold: #ffc933;
  --fs-ink: #0b1204;
  position: fixed;
  inset: 0;
  z-index: 260;
  overflow: hidden;
  color: #f4f5f6;
  font-family: var(--font, Inter, system-ui, sans-serif);
  background: #060a03;
  opacity: 0;
  transition: opacity .4s ease;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}
.fs[hidden] { display: none; }
.fs.is-open { opacity: 1; }
/* Окно входа лежит на z-index 90. Пока оно открыто, колесо опускается ниже, иначе «Войти» в центре остаётся под колесом. */
body:has(.auth-overlay.is-open) .fs { z-index: 80; }
html.fs-lock, html.fs-lock body { overflow: hidden; }

/* ---------- фон ---------- */
.fs-bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; background:
  radial-gradient(120% 90% at 50% 38%, #254708 0%, #10240a 38%, #070d04 72%, #040702 100%); }
.fs-glow { position: absolute; left: 50%; top: 52%; width: min(150vmax, 1500px); aspect-ratio: 1; translate: -50% -50%; border-radius: 50%;
  background: radial-gradient(circle, rgba(187, 235, 0, .30) 0%, rgba(187, 235, 0, .12) 24%, rgba(187, 235, 0, 0) 58%);
  animation: fs-breathe 5s ease-in-out infinite; }
.fs-rays { position: absolute; left: 50%; top: 52%; width: 220vmax; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%;
  background: repeating-conic-gradient(from 0deg, rgba(228, 255, 92, .17) 0deg 5deg, rgba(228, 255, 92, 0) 5deg 15deg);
  -webkit-mask-image: radial-gradient(circle, #000 0%, rgba(0, 0, 0, .6) 20%, transparent 46%);
  mask-image: radial-gradient(circle, #000 0%, rgba(0, 0, 0, .6) 20%, transparent 46%);
  animation: fs-turn 90s linear infinite; }
.fs-rays.is-slow { background: repeating-conic-gradient(from 7deg, rgba(255, 201, 51, .12) 0deg 3deg, rgba(255, 201, 51, 0) 3deg 21deg);
  animation-duration: 140s; animation-direction: reverse; }
.fs-vignette { position: absolute; inset: 0; background: radial-gradient(120% 100% at 50% 50%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, .72) 100%); }
.fs-dust { position: absolute; inset: 0; }
.fs-dust i { position: absolute; bottom: -12px; left: var(--x, 50%); width: var(--s, 6px); aspect-ratio: 1; border-radius: 50%; opacity: 0;
  background: radial-gradient(circle at 35% 30%, #fff8c4, var(--c, #ffc933) 55%, rgba(255, 201, 51, 0) 72%);
  filter: blur(var(--b, 0px));
  animation: fs-rise var(--d, 14s) linear var(--w, 0s) infinite; }
.fs-dust i.is-coin { border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff2a8, #e2a800 60%, #7a5400 100%); box-shadow: 0 0 8px rgba(255, 201, 51, .55); }

/* ---------- кнопки справа ---------- */
.fs-btn { position: absolute; z-index: 6; right: max(14px, env(safe-area-inset-right)); width: 46px; height: 46px; padding: 0; display: grid; place-items: center;
  border-radius: 50%; border: 1px solid rgba(228, 255, 92, .28); color: #eaffa0; cursor: pointer;
  background: rgba(10, 18, 4, .55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .12);
  transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.fs-btn:hover { background: rgba(187, 235, 0, .18); border-color: rgba(228, 255, 92, .6); }
.fs-btn:active { transform: scale(.92); }
.fs-btn:focus-visible, .fs-hub:focus-visible, .fs-card-ok:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.fs-btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.fs-close { top: max(14px, env(safe-area-inset-top)); }
.fs-sound { top: calc(max(14px, env(safe-area-inset-top)) + 58px); }
.fs-sound svg path:first-child { fill: currentColor; stroke-width: 1.2; }
.fs-sound .fs-mute { display: none; }
.fs-sound[aria-pressed="false"] .fs-wave { display: none; }
.fs-sound[aria-pressed="false"] .fs-mute { display: block; }
.fs-sound[aria-pressed="false"] { color: #9aa58a; }

/* ---------- заголовок и сцена ---------- */
.fs-body { position: relative; z-index: 2; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr); justify-items: center;
  padding: max(18px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); }
.fs-head { display: grid; justify-items: center; gap: 12px; padding: 0 58px; text-align: center; }
.fs-title { margin: 0; max-width: 18ch; font-size: clamp(24px, 3.4vw + 8px, 52px); line-height: 1.08; font-weight: 800; letter-spacing: -.01em; text-wrap: balance;
  text-shadow: 0 2px 24px rgba(187, 235, 0, .35), 0 2px 0 rgba(0, 0, 0, .35); }
.fs-jackpot { margin: 0; display: inline-flex; align-items: center; gap: 10px; padding: 7px 18px 7px 14px; border-radius: 999px;
  border: 1px solid rgba(255, 201, 51, .55); background: linear-gradient(180deg, rgba(255, 201, 51, .22), rgba(122, 84, 0, .28));
  box-shadow: 0 0 24px rgba(255, 201, 51, .25), inset 0 1px 0 rgba(255, 255, 255, .22); font-size: clamp(13px, 1.1vw + 9px, 18px); }
.fs-jackpot span { text-transform: uppercase; letter-spacing: .14em; font-size: .72em; font-weight: 700; color: #ffe08a; }
.fs-jackpot strong { font-weight: 800; color: #fff6cf; text-shadow: 0 0 14px rgba(255, 201, 51, .75); }
.fs-stage { width: 100%; min-height: 0; display: grid; place-items: center; container-type: size; padding-top: clamp(14px, 4.2vmin, 40px); box-sizing: border-box; }
.fs-wheel-box { position: relative; width: min(100cqw, 100cqh); aspect-ratio: 1; container-type: inline-size;
  transform-origin: 50% 50%; animation: fs-enter .9s cubic-bezier(.2, .9, .25, 1) both; }
.fs-wheel { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 18px 38px rgba(0, 0, 0, .55)); }
.fs.is-win .fs-wheel-box::before { content: ""; position: absolute; inset: -4%; border-radius: 50%; z-index: -1;
  background: radial-gradient(circle, rgba(255, 244, 168, .55), rgba(187, 235, 0, 0) 66%); animation: fs-breathe 1.2s ease-in-out infinite; }

/* огни обода и сектор-победитель рисует JS внутри svg */
.fs-bulb { fill: #f4ffb0; filter: drop-shadow(0 0 5px rgba(228, 255, 92, .95)); animation: fs-chase 1.6s linear infinite; }
/* Сдвиг огней. Скрипт больше не пишет style: политика страницы такую запись режет. */
.fs-bulbs > .n-18-0 { animation-delay: 0s; }
.fs-bulbs > .n-18-1 { animation-delay: -0.089s; }
.fs-bulbs > .n-18-2 { animation-delay: -0.178s; }
.fs-bulbs > .n-18-3 { animation-delay: -0.267s; }
.fs-bulbs > .n-18-4 { animation-delay: -0.356s; }
.fs-bulbs > .n-18-5 { animation-delay: -0.444s; }
.fs-bulbs > .n-18-6 { animation-delay: -0.533s; }
.fs-bulbs > .n-18-7 { animation-delay: -0.622s; }
.fs-bulbs > .n-18-8 { animation-delay: -0.711s; }
.fs-bulbs > .n-18-9 { animation-delay: -0.800s; }
.fs-bulbs > .n-18-10 { animation-delay: -0.889s; }
.fs-bulbs > .n-18-11 { animation-delay: -0.978s; }
.fs-bulbs > .n-18-12 { animation-delay: -1.067s; }
.fs-bulbs > .n-18-13 { animation-delay: -1.156s; }
.fs-bulbs > .n-18-14 { animation-delay: -1.244s; }
.fs-bulbs > .n-18-15 { animation-delay: -1.333s; }
.fs-bulbs > .n-18-16 { animation-delay: -1.422s; }
.fs-bulbs > .n-18-17 { animation-delay: -1.511s; }
.fs-bulbs > .n-21-0 { animation-delay: 0s; }
.fs-bulbs > .n-21-1 { animation-delay: -0.076s; }
.fs-bulbs > .n-21-2 { animation-delay: -0.152s; }
.fs-bulbs > .n-21-3 { animation-delay: -0.229s; }
.fs-bulbs > .n-21-4 { animation-delay: -0.305s; }
.fs-bulbs > .n-21-5 { animation-delay: -0.381s; }
.fs-bulbs > .n-21-6 { animation-delay: -0.457s; }
.fs-bulbs > .n-21-7 { animation-delay: -0.533s; }
.fs-bulbs > .n-21-8 { animation-delay: -0.610s; }
.fs-bulbs > .n-21-9 { animation-delay: -0.686s; }
.fs-bulbs > .n-21-10 { animation-delay: -0.762s; }
.fs-bulbs > .n-21-11 { animation-delay: -0.838s; }
.fs-bulbs > .n-21-12 { animation-delay: -0.914s; }
.fs-bulbs > .n-21-13 { animation-delay: -0.990s; }
.fs-bulbs > .n-21-14 { animation-delay: -1.067s; }
.fs-bulbs > .n-21-15 { animation-delay: -1.143s; }
.fs-bulbs > .n-21-16 { animation-delay: -1.219s; }
.fs-bulbs > .n-21-17 { animation-delay: -1.295s; }
.fs-bulbs > .n-21-18 { animation-delay: -1.371s; }
.fs-bulbs > .n-21-19 { animation-delay: -1.448s; }
.fs-bulbs > .n-21-20 { animation-delay: -1.524s; }
.fs-bulbs > .n-24-0 { animation-delay: 0s; }
.fs-bulbs > .n-24-1 { animation-delay: -0.067s; }
.fs-bulbs > .n-24-2 { animation-delay: -0.133s; }
.fs-bulbs > .n-24-3 { animation-delay: -0.200s; }
.fs-bulbs > .n-24-4 { animation-delay: -0.267s; }
.fs-bulbs > .n-24-5 { animation-delay: -0.333s; }
.fs-bulbs > .n-24-6 { animation-delay: -0.400s; }
.fs-bulbs > .n-24-7 { animation-delay: -0.467s; }
.fs-bulbs > .n-24-8 { animation-delay: -0.533s; }
.fs-bulbs > .n-24-9 { animation-delay: -0.600s; }
.fs-bulbs > .n-24-10 { animation-delay: -0.667s; }
.fs-bulbs > .n-24-11 { animation-delay: -0.733s; }
.fs-bulbs > .n-24-12 { animation-delay: -0.800s; }
.fs-bulbs > .n-24-13 { animation-delay: -0.867s; }
.fs-bulbs > .n-24-14 { animation-delay: -0.933s; }
.fs-bulbs > .n-24-15 { animation-delay: -1.000s; }
.fs-bulbs > .n-24-16 { animation-delay: -1.067s; }
.fs-bulbs > .n-24-17 { animation-delay: -1.133s; }
.fs-bulbs > .n-24-18 { animation-delay: -1.200s; }
.fs-bulbs > .n-24-19 { animation-delay: -1.267s; }
.fs-bulbs > .n-24-20 { animation-delay: -1.333s; }
.fs-bulbs > .n-24-21 { animation-delay: -1.400s; }
.fs-bulbs > .n-24-22 { animation-delay: -1.467s; }
.fs-bulbs > .n-24-23 { animation-delay: -1.533s; }
.fs-bulbs > .n-27-0 { animation-delay: 0s; }
.fs-bulbs > .n-27-1 { animation-delay: -0.059s; }
.fs-bulbs > .n-27-2 { animation-delay: -0.119s; }
.fs-bulbs > .n-27-3 { animation-delay: -0.178s; }
.fs-bulbs > .n-27-4 { animation-delay: -0.237s; }
.fs-bulbs > .n-27-5 { animation-delay: -0.296s; }
.fs-bulbs > .n-27-6 { animation-delay: -0.356s; }
.fs-bulbs > .n-27-7 { animation-delay: -0.415s; }
.fs-bulbs > .n-27-8 { animation-delay: -0.474s; }
.fs-bulbs > .n-27-9 { animation-delay: -0.533s; }
.fs-bulbs > .n-27-10 { animation-delay: -0.593s; }
.fs-bulbs > .n-27-11 { animation-delay: -0.652s; }
.fs-bulbs > .n-27-12 { animation-delay: -0.711s; }
.fs-bulbs > .n-27-13 { animation-delay: -0.770s; }
.fs-bulbs > .n-27-14 { animation-delay: -0.830s; }
.fs-bulbs > .n-27-15 { animation-delay: -0.889s; }
.fs-bulbs > .n-27-16 { animation-delay: -0.948s; }
.fs-bulbs > .n-27-17 { animation-delay: -1.007s; }
.fs-bulbs > .n-27-18 { animation-delay: -1.067s; }
.fs-bulbs > .n-27-19 { animation-delay: -1.126s; }
.fs-bulbs > .n-27-20 { animation-delay: -1.185s; }
.fs-bulbs > .n-27-21 { animation-delay: -1.244s; }
.fs-bulbs > .n-27-22 { animation-delay: -1.304s; }
.fs-bulbs > .n-27-23 { animation-delay: -1.363s; }
.fs-bulbs > .n-27-24 { animation-delay: -1.422s; }
.fs-bulbs > .n-27-25 { animation-delay: -1.481s; }
.fs-bulbs > .n-27-26 { animation-delay: -1.541s; }
.fs-bulbs > .n-30-0 { animation-delay: 0s; }
.fs-bulbs > .n-30-1 { animation-delay: -0.053s; }
.fs-bulbs > .n-30-2 { animation-delay: -0.107s; }
.fs-bulbs > .n-30-3 { animation-delay: -0.160s; }
.fs-bulbs > .n-30-4 { animation-delay: -0.213s; }
.fs-bulbs > .n-30-5 { animation-delay: -0.267s; }
.fs-bulbs > .n-30-6 { animation-delay: -0.320s; }
.fs-bulbs > .n-30-7 { animation-delay: -0.373s; }
.fs-bulbs > .n-30-8 { animation-delay: -0.427s; }
.fs-bulbs > .n-30-9 { animation-delay: -0.480s; }
.fs-bulbs > .n-30-10 { animation-delay: -0.533s; }
.fs-bulbs > .n-30-11 { animation-delay: -0.587s; }
.fs-bulbs > .n-30-12 { animation-delay: -0.640s; }
.fs-bulbs > .n-30-13 { animation-delay: -0.693s; }
.fs-bulbs > .n-30-14 { animation-delay: -0.747s; }
.fs-bulbs > .n-30-15 { animation-delay: -0.800s; }
.fs-bulbs > .n-30-16 { animation-delay: -0.853s; }
.fs-bulbs > .n-30-17 { animation-delay: -0.907s; }
.fs-bulbs > .n-30-18 { animation-delay: -0.960s; }
.fs-bulbs > .n-30-19 { animation-delay: -1.013s; }
.fs-bulbs > .n-30-20 { animation-delay: -1.067s; }
.fs-bulbs > .n-30-21 { animation-delay: -1.120s; }
.fs-bulbs > .n-30-22 { animation-delay: -1.173s; }
.fs-bulbs > .n-30-23 { animation-delay: -1.227s; }
.fs-bulbs > .n-30-24 { animation-delay: -1.280s; }
.fs-bulbs > .n-30-25 { animation-delay: -1.333s; }
.fs-bulbs > .n-30-26 { animation-delay: -1.387s; }
.fs-bulbs > .n-30-27 { animation-delay: -1.440s; }
.fs-bulbs > .n-30-28 { animation-delay: -1.493s; }
.fs-bulbs > .n-30-29 { animation-delay: -1.547s; }
.fs-bulbs > .n-33-0 { animation-delay: 0s; }
.fs-bulbs > .n-33-1 { animation-delay: -0.048s; }
.fs-bulbs > .n-33-2 { animation-delay: -0.097s; }
.fs-bulbs > .n-33-3 { animation-delay: -0.145s; }
.fs-bulbs > .n-33-4 { animation-delay: -0.194s; }
.fs-bulbs > .n-33-5 { animation-delay: -0.242s; }
.fs-bulbs > .n-33-6 { animation-delay: -0.291s; }
.fs-bulbs > .n-33-7 { animation-delay: -0.339s; }
.fs-bulbs > .n-33-8 { animation-delay: -0.388s; }
.fs-bulbs > .n-33-9 { animation-delay: -0.436s; }
.fs-bulbs > .n-33-10 { animation-delay: -0.485s; }
.fs-bulbs > .n-33-11 { animation-delay: -0.533s; }
.fs-bulbs > .n-33-12 { animation-delay: -0.582s; }
.fs-bulbs > .n-33-13 { animation-delay: -0.630s; }
.fs-bulbs > .n-33-14 { animation-delay: -0.679s; }
.fs-bulbs > .n-33-15 { animation-delay: -0.727s; }
.fs-bulbs > .n-33-16 { animation-delay: -0.776s; }
.fs-bulbs > .n-33-17 { animation-delay: -0.824s; }
.fs-bulbs > .n-33-18 { animation-delay: -0.873s; }
.fs-bulbs > .n-33-19 { animation-delay: -0.921s; }
.fs-bulbs > .n-33-20 { animation-delay: -0.970s; }
.fs-bulbs > .n-33-21 { animation-delay: -1.018s; }
.fs-bulbs > .n-33-22 { animation-delay: -1.067s; }
.fs-bulbs > .n-33-23 { animation-delay: -1.115s; }
.fs-bulbs > .n-33-24 { animation-delay: -1.164s; }
.fs-bulbs > .n-33-25 { animation-delay: -1.212s; }
.fs-bulbs > .n-33-26 { animation-delay: -1.261s; }
.fs-bulbs > .n-33-27 { animation-delay: -1.309s; }
.fs-bulbs > .n-33-28 { animation-delay: -1.358s; }
.fs-bulbs > .n-33-29 { animation-delay: -1.406s; }
.fs-bulbs > .n-33-30 { animation-delay: -1.455s; }
.fs-bulbs > .n-33-31 { animation-delay: -1.503s; }
.fs-bulbs > .n-33-32 { animation-delay: -1.552s; }
.fs-bulbs > .n-36-0 { animation-delay: 0s; }
.fs-bulbs > .n-36-1 { animation-delay: -0.044s; }
.fs-bulbs > .n-36-2 { animation-delay: -0.089s; }
.fs-bulbs > .n-36-3 { animation-delay: -0.133s; }
.fs-bulbs > .n-36-4 { animation-delay: -0.178s; }
.fs-bulbs > .n-36-5 { animation-delay: -0.222s; }
.fs-bulbs > .n-36-6 { animation-delay: -0.267s; }
.fs-bulbs > .n-36-7 { animation-delay: -0.311s; }
.fs-bulbs > .n-36-8 { animation-delay: -0.356s; }
.fs-bulbs > .n-36-9 { animation-delay: -0.400s; }
.fs-bulbs > .n-36-10 { animation-delay: -0.444s; }
.fs-bulbs > .n-36-11 { animation-delay: -0.489s; }
.fs-bulbs > .n-36-12 { animation-delay: -0.533s; }
.fs-bulbs > .n-36-13 { animation-delay: -0.578s; }
.fs-bulbs > .n-36-14 { animation-delay: -0.622s; }
.fs-bulbs > .n-36-15 { animation-delay: -0.667s; }
.fs-bulbs > .n-36-16 { animation-delay: -0.711s; }
.fs-bulbs > .n-36-17 { animation-delay: -0.756s; }
.fs-bulbs > .n-36-18 { animation-delay: -0.800s; }
.fs-bulbs > .n-36-19 { animation-delay: -0.844s; }
.fs-bulbs > .n-36-20 { animation-delay: -0.889s; }
.fs-bulbs > .n-36-21 { animation-delay: -0.933s; }
.fs-bulbs > .n-36-22 { animation-delay: -0.978s; }
.fs-bulbs > .n-36-23 { animation-delay: -1.022s; }
.fs-bulbs > .n-36-24 { animation-delay: -1.067s; }
.fs-bulbs > .n-36-25 { animation-delay: -1.111s; }
.fs-bulbs > .n-36-26 { animation-delay: -1.156s; }
.fs-bulbs > .n-36-27 { animation-delay: -1.200s; }
.fs-bulbs > .n-36-28 { animation-delay: -1.244s; }
.fs-bulbs > .n-36-29 { animation-delay: -1.289s; }
.fs-bulbs > .n-36-30 { animation-delay: -1.333s; }
.fs-bulbs > .n-36-31 { animation-delay: -1.378s; }
.fs-bulbs > .n-36-32 { animation-delay: -1.422s; }
.fs-bulbs > .n-36-33 { animation-delay: -1.467s; }
.fs-bulbs > .n-36-34 { animation-delay: -1.511s; }
.fs-bulbs > .n-36-35 { animation-delay: -1.556s; }
.fs.is-spinning .fs-bulb { animation-duration: .5s; }
.fs.is-win .fs-bulb { animation-duration: .28s; fill: #fff3b0; }
.fs-seg-glow { fill: rgba(255, 255, 255, .0); animation: fs-seg-pulse .7s ease-in-out infinite alternate; }
.fs-label text { font-family: var(--font, Inter, system-ui, sans-serif); font-weight: 800; text-anchor: middle; paint-order: stroke; }
.fs-label .on-lime { fill: #0f1a02; stroke: rgba(240, 255, 150, .55); stroke-width: .6px; }
.fs-label .on-dark { fill: #f1ffb4; stroke: rgba(0, 0, 0, .55); stroke-width: .8px; }
.fs-label .on-gold { fill: #3a2600; stroke: rgba(255, 244, 168, .7); stroke-width: .6px; }
.fs-label .sym { font-weight: 700; opacity: .92; }
.fs-label .tag { font-weight: 800; letter-spacing: .12em; }

/* ---------- указатель ---------- */
.fs-pointer { position: absolute; z-index: 3; left: 50%; top: -3.6%; width: 13.5%; aspect-ratio: .8; translate: -50% 0; transform-origin: 50% 30%;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .55)) drop-shadow(0 0 14px rgba(187, 235, 0, .55)); will-change: transform; }
.fs-pointer svg { width: 100%; height: 100%; display: block; overflow: visible; }

/* ---------- кнопка в центре ---------- */
.fs-hub-form { position: absolute; z-index: 4; left: 50%; top: 50%; width: 34%; aspect-ratio: 1; translate: -50% -50%; margin: 0; }
.fs-hub { position: relative; width: 100%; height: 100%; padding: 0; display: grid; place-content: center; justify-items: center; gap: .3em; cursor: pointer; text-decoration: none;
  border-radius: 50%; border: 0; color: var(--fs-ink); font-family: inherit; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; text-align: center;
  font-size: 4.9cqw; line-height: 1;
  background: radial-gradient(circle at 34% 24%, #f6ffc0 0%, #cdf51c 30%, #98c200 62%, #5f7a00 100%);
  box-shadow: 0 0 0 .9cqw #0b1204, 0 0 0 1.5cqw rgba(228, 255, 92, .65), 0 1.6cqw 3.2cqw rgba(0, 0, 0, .55), inset 0 -1cqw 2cqw rgba(60, 80, 0, .55), inset 0 .6cqw 1.2cqw rgba(255, 255, 255, .55);
  transition: transform .18s ease, filter .25s ease; }
.fs-hub::before { content: ""; position: absolute; left: 14%; right: 14%; top: 7%; height: 36%; border-radius: 50%;
  background: linear-gradient(180deg, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0)); pointer-events: none; }
.fs-hub::after { content: ""; position: absolute; inset: -9%; border-radius: 50%; border: .5cqw solid rgba(228, 255, 92, .65); opacity: 0; pointer-events: none; }
.fs-hub:not(:disabled):not([aria-disabled="true"]):hover { transform: scale(1.05); }
.fs-hub:not(:disabled):active { transform: scale(.95); }
.fs-hub:not(:disabled)::after { animation: fs-ping 2.2s ease-out infinite; }
.fs-hub:disabled { cursor: default; filter: saturate(.55) brightness(.82); }
.fs-hub-label { position: relative; z-index: 1; text-shadow: 0 1px 0 rgba(255, 255, 255, .45); }
.fs-hub-sub { position: relative; z-index: 1; min-height: 1em; font-size: .56em; font-weight: 800; letter-spacing: .08em; font-variant-numeric: tabular-nums; opacity: .85; }
.fs-hub-sub:empty { display: none; }
.fs.is-spinning .fs-hub::after { animation: none; }

/* ---------- итог ---------- */
.fs-result { position: absolute; inset: 0; z-index: 8; display: grid; place-items: center; padding: 20px;
  background: radial-gradient(circle at 50% 50%, rgba(5, 10, 2, .55), rgba(3, 6, 1, .86)); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  opacity: 0; transition: opacity .35s ease; }
.fs-result[hidden] { display: none; }
.fs-result.is-in { opacity: 1; }
.fs-card { position: relative; width: min(92vw, 440px); padding: 34px 28px 28px; display: grid; justify-items: center; gap: 10px; text-align: center; border-radius: 28px;
  border: 1px solid rgba(228, 255, 92, .45);
  background: linear-gradient(180deg, rgba(34, 58, 8, .96), rgba(12, 22, 4, .98));
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .6), 0 0 60px rgba(187, 235, 0, .35), 0 30px 80px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .18);
  transform: translateY(18px) scale(.9); transition: transform .5s cubic-bezier(.2, 1.1, .3, 1); }
.fs-result.is-in .fs-card { transform: none; }
.fs-card.is-jackpot { border-color: rgba(255, 201, 51, .8);
  background: linear-gradient(180deg, rgba(74, 52, 4, .97), rgba(24, 16, 2, .98));
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .6), 0 0 90px rgba(255, 201, 51, .5), 0 30px 80px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .25); }
.fs-card-kicker { margin: 0; text-transform: uppercase; letter-spacing: .16em; font-size: 13px; font-weight: 800; color: #cfe96a; }
.fs-card.is-jackpot .fs-card-kicker { color: #ffd966; font-size: 15px; }
.fs-card-sum { margin: 0; display: flex; align-items: baseline; justify-content: center; gap: .18em; max-width: 100%; font-size: clamp(46px, 14vw, 84px); line-height: 1; font-weight: 900;
  color: #f4ffc2; font-variant-numeric: tabular-nums; text-shadow: 0 0 34px rgba(187, 235, 0, .6), 0 3px 0 rgba(0, 0, 0, .4); }
.fs-card.is-jackpot .fs-card-sum { color: #fff2b8; text-shadow: 0 0 40px rgba(255, 201, 51, .85), 0 3px 0 rgba(0, 0, 0, .4); }
.fs-card-sum small { font-size: .5em; font-weight: 800; opacity: .9; }
.fs-card-meta { margin: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 10px; color: #b9c79a; font-size: 14px; font-weight: 600; }
.fs-chip { padding: 4px 11px; border-radius: 999px; background: rgba(187, 235, 0, .16); border: 1px solid rgba(228, 255, 92, .35); color: #e4ff7a; font-weight: 800; font-size: 13px; }
.fs-chip:empty { display: none; }
.fs-card-ok { margin-top: 12px; min-width: 190px; padding: 14px 30px; border: 0; border-radius: 14px; cursor: pointer; font: inherit; font-weight: 900; font-size: 16px; letter-spacing: .03em; text-transform: uppercase;
  color: var(--fs-ink); background: linear-gradient(180deg, #e4ff5c, #a9d400); box-shadow: 0 8px 24px rgba(187, 235, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .7); transition: transform .15s ease, filter .15s ease; }
.fs-card-ok:hover { filter: brightness(1.06); }
.fs-card-ok:active { transform: scale(.96); }
.fs-card-play { margin-top: 12px; min-width: 190px; padding: 14px 30px; border-radius: 14px; text-align: center; text-decoration: none; font-weight: 900; font-size: 16px; letter-spacing: .03em; text-transform: uppercase;
  color: var(--fs-ink); background: linear-gradient(180deg, #e4ff5c, #a9d400); box-shadow: 0 8px 24px rgba(187, 235, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .7); transition: transform .15s ease, filter .15s ease; }
.fs-card-play:hover { filter: brightness(1.06); }
.fs-card-play:active { transform: scale(.96); }
.fs-card-play[hidden] { display: none; }
.fs-card-play:not([hidden]) + .fs-card-ok { margin-top: 0; background: transparent; color: #cfe96a; box-shadow: none; text-transform: none; font-size: 14px; padding: 8px 18px; }
.fs-card.is-jackpot .fs-card-ok { background: linear-gradient(180deg, #ffe48a, #e0a200); box-shadow: 0 8px 24px rgba(255, 201, 51, .4), inset 0 1px 0 rgba(255, 255, 255, .7); }
.fs-fx { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 9; pointer-events: none; }

/* ---------- анимации ---------- */
@keyframes fs-turn { to { transform: rotate(360deg); } }
@keyframes fs-breathe { 0%, 100% { opacity: .65; scale: .96; } 50% { opacity: 1; scale: 1.04; } }
@keyframes fs-rise { 0% { transform: translate3d(0, 0, 0) scale(.6); opacity: 0; } 10% { opacity: var(--o, .8); } 90% { opacity: var(--o, .8); } 100% { transform: translate3d(var(--dx, 24px), -110vh, 0) scale(1); opacity: 0; } }
@keyframes fs-chase { 0%, 100% { opacity: .35; } 8% { opacity: 1; } 40% { opacity: .35; } }
@keyframes fs-seg-pulse { from { fill: rgba(255, 255, 255, .0); } to { fill: rgba(255, 255, 255, .34); } }
@keyframes fs-ping { 0% { opacity: .75; transform: scale(.92); } 70%, 100% { opacity: 0; transform: scale(1.22); } }
@keyframes fs-enter { from { opacity: 0; transform: scale(.78) rotate(-14deg); } to { opacity: 1; transform: none; } }

/* ---------- раскладки ---------- */
/* Низкий экран на боку: заголовок слева, колесо справа во всю высоту. */
@media (orientation: landscape) and (max-height: 560px) {
  .fs-body { grid-template-columns: minmax(180px, 34%) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-items: center; justify-items: stretch; padding-right: 76px; }
  .fs-head { padding: 0 8px 0 4px; justify-items: start; text-align: left; align-self: center; }
  .fs-title { font-size: clamp(20px, 3.2vw, 32px); max-width: 14ch; }
  .fs-stage { height: 100%; }
}
@media (max-width: 480px) {
  .fs-head { padding: 0 50px; gap: 10px; }
  .fs-btn { width: 42px; height: 42px; }
  .fs-sound { top: calc(max(14px, env(safe-area-inset-top)) + 52px); }
}
@media (prefers-reduced-motion: reduce) {
  .fs-glow, .fs-rays, .fs-dust i, .fs-bulb, .fs-hub::after { animation: none !important; }
  .fs-wheel-box { animation: none; }
  .fs, .fs-result, .fs-card { transition: none; }
}

/* Условия колеса под заголовком: фриспины, игра, вейджер и ссылка на бонусные правила. */
.fs-terms { margin: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 14px; max-width: min(92vw, 560px); font-size: .82em; font-weight: 600; color: #d6ec8f; }
.fs-terms span { display: inline-flex; align-items: center; gap: 6px; }
.fs-terms span + span::before { content: ""; width: 4px; height: 4px; margin-right: 8px; border-radius: 50%; background: rgba(214, 236, 143, .55); }
.fs-terms-art { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(228, 255, 92, .55); box-shadow: 0 0 10px rgba(187, 235, 0, .35); }
.fs-terms a { color: #f4ffb0; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(244, 255, 176, .5); }
.fs-terms a:hover { color: #fff; }
.fs-card-rules { color: #cfe96a; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.fs-art { pointer-events: none; }
.fs-card-burn { margin: 0; max-width: 100%; padding: 6px 12px; border-radius: 10px; background: rgba(255, 201, 51, .14); border: 1px solid rgba(255, 224, 138, .45); color: #ffe9a8; font-size: 13px; font-weight: 700; line-height: 1.35; }
.fs-card-burn[hidden] { display: none; }
