/* /assets/nav-collapse.css */
/* Desktop collapse / expand for the green menu (release-menu-toggle-20261016).
   html.wg-nav-collapsed is set before first paint by the page head and kept by
   assets/nav-collapse.js (localStorage 'windgame-nav-collapsed').
   Main pages (#sidebar.mp-sidebar): desktop from 781px. Game pages (#wg-shell-sidebar): from 1181px.
   Below those widths the menu stays the drawer behind the burger and the button is hidden. */
:root { --wg-nav-full: clamp(252px, 19vw, 300px); --wg-nav-rail: 86px; --wg-nav-ease: cubic-bezier(.2, .7, .2, 1); }

.wg-nav-collapse { display: none; }

/* ---------- The round edge button ---------- */
@media (min-width: 781px) { .wg-nav-collapse--mp { display: grid; } }
@media (min-width: 1181px) { .wg-nav-collapse--shell { display: grid; } }
html body .wg-nav-collapse {
  position: fixed;
  z-index: 1002;
  top: 50%;
  /* Sits in the notch of the menu's curved right edge (sidebar-mask.svg: x = 81–83% at mid-height). */
  left: calc(7px + var(--wg-nav-w) * .82 - 13px);
  width: 34px;
  height: 34px;
  margin: -17px 0 0;
  padding: 0;
  place-items: center;
  border: 1px solid #a89561;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 22%, #6b7a4a, transparent 55%), linear-gradient(150deg, #2c4632, #10241c 78%);
  color: #f3dc9a;
  box-shadow: 0 4px 10px #000a, inset 0 1px #fff4c255, 0 0 0 3px #0c1a1499;
  cursor: pointer;
  font: inherit;
  transform: none;
  transition: left .28s var(--wg-nav-ease), background-color .2s, box-shadow .2s, color .2s;
}
html body .wg-nav-collapse svg { display: block; transition: transform .28s var(--wg-nav-ease); }
html.wg-nav-collapsed body .wg-nav-collapse svg { transform: rotate(180deg); }
@media (hover: hover) {
  html body .wg-nav-collapse:hover { color: #fff3c9; box-shadow: 0 5px 14px #000b, inset 0 1px #fff4c277, 0 0 0 3px #0c1a1499, 0 0 14px #e9c97955; transform: none; }
}
html body .wg-nav-collapse:focus-visible { outline: 2px solid #d3ff84; outline-offset: 3px; }
html[data-theme='light'] body .wg-nav-collapse {
  border-color: #b49a5c;
  background: radial-gradient(circle at 32% 22%, #fffbe8, transparent 58%), linear-gradient(150deg, #eef5e6, #d3e4d3 80%);
  color: #6b5420;
  box-shadow: 0 4px 10px #3e584a40, inset 0 1px #fff, 0 0 0 3px #f3f6f0cc;
}
html[data-theme='light'] body .wg-nav-collapse:focus-visible { outline-color: #3b722b; }

/* Accessible but invisible text on the rail (names stay for screen readers). */
/* ---------- Main pages (multipage.css menu) ---------- */
@media (min-width: 781px) {
  :root { --wg-nav-w: var(--wg-nav-full); }
  html.wg-nav-collapsed { --wg-nav-w: var(--wg-nav-rail); }
  html body .mp-sidebar { width: var(--wg-nav-w); transition: width .28s var(--wg-nav-ease), padding .28s var(--wg-nav-ease); }
  html body .mp-wrap { margin-left: var(--wg-nav-w); transition: margin-left .28s var(--wg-nav-ease); }

  html.wg-nav-collapsed body .mp-sidebar { padding: 18px 16px 16px 9px; overflow-x: hidden; }
  html.wg-nav-collapsed body .mp-brand { justify-content: center; padding: 0 0 8px; }
  html.wg-nav-collapsed body .mp-brand-wordmark,
  html.wg-nav-collapsed body .mp-side-nav a > span:not(.mp-nav-glyph) {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  html.wg-nav-collapsed body .mp-sidebar-label { visibility: hidden; height: 6px; padding: 0; overflow: hidden; }
  html.wg-nav-collapsed body .mp-side-nav a { justify-content: center; gap: 0; padding: 4px 0; }
  html.wg-nav-collapsed body .mp-side-nav a:hover { transform: none; }
  html.wg-nav-collapsed body .mp-nav-group.rd-dock { display: flex; flex-direction: column; gap: 3px; padding-top: 8px; }
  html.wg-nav-collapsed body .rd-dock a { min-height: 46px; padding: 4px 0; }
  html.wg-nav-collapsed body .mp-sidebar-note { display: none; }
}

/* ---------- Game pages (game-shell.css menu) ---------- */
@media (min-width: 1181px) {
  :root { --wg-nav-w: var(--wg-nav-full); }
  html.wg-nav-collapsed { --wg-rail-w: var(--wg-nav-rail); --wg-nav-w: var(--wg-nav-rail); }
  html body.wg-shell-ready { transition: padding-left .28s var(--wg-nav-ease); }
  html body .wg-shell-sidebar { transition: width .28s var(--wg-nav-ease), padding .28s var(--wg-nav-ease); }

  html.wg-nav-collapsed body .wg-shell-sidebar { padding: 18px 16px 16px 9px; overflow-x: hidden; }
  html.wg-nav-collapsed body .wg-shell-brand { justify-content: center; padding: 0 0 8px; }
  html.wg-nav-collapsed body .wg-shell-brand-wordmark,
  html.wg-nav-collapsed body .wg-shell-nav a > span:not(.wg-shell-nav-glyph) {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  html.wg-nav-collapsed body .wg-shell-label { visibility: hidden; height: 6px; padding: 0; overflow: hidden; }
  html.wg-nav-collapsed body .wg-shell-nav a { justify-content: center; gap: 0; padding: 4px 0; }
  html.wg-nav-collapsed body .wg-shell-nav a:hover { transform: none; }
  html.wg-nav-collapsed body .wg-shell-nav-group.wg-shell-dock { display: flex; flex-direction: column; gap: 3px; padding-top: 8px; }
  html.wg-nav-collapsed body .wg-shell-dock a { min-height: 46px; padding: 4px 0; }
  /* Theme and language stay one click away: expand the menu. */
  html.wg-nav-collapsed body .wg-shell-footer { display: none; }
}

/* ---------- Game pages whose header sits in a wrapper (.shell > header, main > header) ----------
   arena-game-shell.js marks the header it uses with .wg-shell-header; game-shell.css only
   knows body > header, so the burger room on tablets and phones is given here. */
@media (max-width: 1180px) {
  body.wg-shell-ready .wg-shell-header { position: relative; padding-left: max(76px, calc(env(safe-area-inset-left) + 76px)); }
}
/* Narrow phones: the burger takes 76px, so a full header may wrap onto a second line instead of
   pushing the page sideways. */
@media (max-width: 600px) {
  body.wg-shell-ready .wg-shell-header { flex-wrap: wrap; row-gap: 8px; min-width: 0; max-width: 100%; box-sizing: border-box; }
}
/* Phones: games with their own fixed action row (trainings, Chicken) keep it above the quick bar. */
@media (max-width: 780px) {
  body.wg-shell-ready .button-row, body.wg-shell-ready.wg-premium .button-row { bottom: var(--wg-bar-h, 0px); }
  body.wg-shell-ready.wg-premium-coin .coin-choice { bottom: calc(77px + env(safe-area-inset-bottom) + var(--wg-bar-h, 0px)); }
}
/* Race: its older built-in sidebar and burger give way to the shared menu. */
body.wg-shell-ready > aside#side-menu, body.wg-shell-ready #menu-toggle.mobile-menu { display: none !important; }
body.wg-shell-ready > aside#side-menu ~ main { margin-left: 0; }

@media (prefers-reduced-motion: reduce) {
  html body .wg-nav-collapse, html body .wg-nav-collapse svg,
  html body .mp-sidebar, html body .mp-wrap,
  html body.wg-shell-ready, html body .wg-shell-sidebar { transition: none !important; }
}

/* /assets/nav-v5.css */
/* Navigation v5 (TZ3 §7, release-tz-nav-20261016): bigger, brighter tile icons, larger labels,
   stronger contrast, one hover/selected system for the site menu (.mp-*), the game-page menu
   (.wg-shell-*) and both phone quick bars. Visual only; loaded after nav-collapse.css.
   Owner art slots (html.art-nav-*) keep priority; owner-only entries (Номера, Админ панель) get tiles too. */
:root { --nv-ico: 40px; --nv-ease: cubic-bezier(.2, .7, .2, 1); --nv-gold: #f2d27a; --nv-text: var(--wg-text-tint); --nv-muted: var(--wg-text-tint); }

/* ---------- Icons (one set for menus and bars) ---------- */
.mp-nav-games .mp-nav-glyph::after, .wg-shell-nav-games .wg-shell-nav-glyph::after, .rd-bb-games .rd-bb-icon, .wg-shell-bar-games .wg-shell-bar-icon { background-image: url("/assets/nav-icons-v5/games.svg"); }
.mp-nav-lobby .mp-nav-glyph::after, .wg-shell-nav-lobby .wg-shell-nav-glyph::after { background-image: url("/assets/nav-icons-v5/lobby.svg"); }
.mp-nav-rounds .mp-nav-glyph::after, .wg-shell-nav-rounds .wg-shell-nav-glyph::after { background-image: url("/assets/nav-icons-v5/rounds.svg"); }
.mp-nav-challenges .mp-nav-glyph::after, .wg-shell-nav-challenges .wg-shell-nav-glyph::after { background-image: url("/assets/nav-icons-v5/challenges.svg"); }
.mp-nav-rankings .mp-nav-glyph::after, .wg-shell-nav-rankings .wg-shell-nav-glyph::after { background-image: url("/assets/nav-icons-v5/rankings.svg"); }
.mp-nav-tournaments .mp-nav-glyph::after, .wg-shell-nav-tournaments .wg-shell-nav-glyph::after, .rd-bb-tournaments .rd-bb-icon, .wg-shell-bar-tournaments .wg-shell-bar-icon { background-image: url("/assets/nav-icons-v5/tournaments.svg"); }
.mp-nav-referrals .mp-nav-glyph::after, .wg-shell-nav-referrals .wg-shell-nav-glyph::after { background-image: url("/assets/nav-icons-v5/referrals.svg"); }
.mp-nav-share .mp-nav-glyph::after, .wg-shell-nav-share .wg-shell-nav-glyph::after { background-image: url("/assets/nav-icons-v5/share.svg"); }
.mp-nav-community .mp-nav-glyph::after, .wg-shell-nav-community .wg-shell-nav-glyph::after { background-image: url("/assets/nav-icons-v5/community.svg"); }
.mp-nav-profile .mp-nav-glyph::after, .wg-shell-nav-profile .wg-shell-nav-glyph::after, .rd-bb-profile .rd-bb-icon, .wg-shell-bar-profile .wg-shell-bar-icon { background-image: url("/assets/nav-icons-v5/profile.svg"); }
.mp-nav-support .mp-nav-glyph::after, .wg-shell-nav-support .wg-shell-nav-glyph::after, .rd-bb-support .rd-bb-icon, .wg-shell-bar-support .wg-shell-bar-icon { background-image: url("/assets/nav-icons-v5/support.svg"); }
.mp-nav-rules .mp-nav-glyph::after, .wg-shell-nav-rules .wg-shell-nav-glyph::after, .rd-bb-rules .rd-bb-icon, .wg-shell-bar-rules .wg-shell-bar-icon { background-image: url("/assets/nav-icons-v5/rules.svg"); }
html body .mp-side-nav .mp-nav-plates .mp-nav-glyph::after { background-image: url("/assets/nav-icons-v5/plates.svg") !important; }
/* «Номера» carries an «Только владелец» mark: put it under the label so the row fits the menu. */
html body .mp-side-nav a.mp-nav-plates { display: grid; grid-template-columns: var(--nv-ico) minmax(0, 1fr); column-gap: 13px; row-gap: 3px; align-items: center; }
html body .mp-side-nav a.mp-nav-plates .mp-nav-glyph { grid-row: 1 / span 2; }
html body .mp-side-nav a.mp-nav-plates .wg-owner-mark { grid-column: 2; justify-self: start; margin: 0; font-size: 8.5px; letter-spacing: .04em; }
html body .mp-side-nav, html body .mp-side-nav a { min-width: 0; }
html body .mp-nav-admin .mp-nav-glyph::after { content: ''; background-image: url("/assets/nav-icons-v5/admin.svg"); }
html body .mp-nav-admin .mp-nav-glyph .mp-icon { display: none; }

/* The tile is the icon now: no second frame around it. */
html body .mp-side-nav .mp-nav-glyph, html body .wg-shell-nav .wg-shell-nav-glyph {
  width: var(--nv-ico); height: var(--nv-ico); flex: none; border: 0; border-radius: 13px; background: none;
  box-shadow: 0 4px 10px #0007; transition: transform .22s var(--nv-ease), box-shadow .22s var(--nv-ease);
}
html body .mp-side-nav .mp-nav-glyph::before, html body .wg-shell-nav .wg-shell-nav-glyph::before { display: none; }
html body .mp-side-nav .mp-nav-glyph::after, html body .wg-shell-nav .wg-shell-nav-glyph::after {
  width: var(--nv-ico); height: var(--nv-ico); background-position: center; background-size: contain; background-repeat: no-repeat; filter: none; transition: transform .22s var(--nv-ease);
}

/* ---------- Items: larger text, clearer contrast, one hover and one selected state ---------- */
html body .mp-side-nav a, html body .wg-shell-nav a {
  position: relative; min-height: 52px; gap: 13px; padding: 5px 10px 5px 6px; border: 1px solid transparent; border-radius: 14px;
  color: var(--nv-text); font-size: 15px; font-weight: 700; letter-spacing: .005em; line-height: 1.2;
  transition: background-color .22s var(--nv-ease), border-color .22s var(--nv-ease), color .22s, transform .22s var(--nv-ease), box-shadow .22s var(--nv-ease);
}
@media (hover: hover) {
  html body .mp-side-nav a:hover, html body .wg-shell-nav a:hover { background: #ffffff12; border-color: #ffffff1f; color: #fff; transform: translateX(2px); }
  html body .mp-side-nav a:hover .mp-nav-glyph, html body .wg-shell-nav a:hover .wg-shell-nav-glyph { transform: translateY(-1px) scale(1.06); box-shadow: 0 6px 14px #0008; }
  html body .mp-side-nav a:hover .mp-nav-glyph::after, html body .wg-shell-nav a:hover .wg-shell-nav-glyph::after { transform: none; }
}
html body .mp-side-nav a:active, html body .wg-shell-nav a:active { transform: scale(.985); }
html body .mp-side-nav a:focus-visible, html body .wg-shell-nav a:focus-visible { outline: 2px solid #d3ff84; outline-offset: 2px; }

/* Selected section: gold edge, lit background, glowing tile. */
html body .mp-side-nav a.active, html body .mp-side-nav a[aria-current="page"], html body .wg-shell-nav a.active {
  background: linear-gradient(100deg, #f2d27a33, #f2d27a14 55%, #ffffff08); border-color: #f2d27a8c; color: #fff8df; font-weight: 800;
  box-shadow: inset 4px 0 var(--nv-gold), 0 0 18px #f2d27a26;
}
html body .mp-side-nav a.active .mp-nav-glyph, html body .mp-side-nav a[aria-current="page"] .mp-nav-glyph, html body .wg-shell-nav a.active .wg-shell-nav-glyph {
  box-shadow: 0 0 0 2px var(--nv-gold), 0 0 16px #f2d27a80, 0 4px 10px #0007;
}

/* Section label above the list. */
html body .mp-sidebar-label, html body .wg-shell-label { color: #e2c581; font-size: 10px; letter-spacing: .2em; }

/* Bottom dock (Профиль / Поддержка / Правила): same tiles, readable labels. */
html body .rd-dock a, html body .wg-shell-dock a { min-height: 84px; gap: 6px; padding: 8px 2px; min-width: 0; font-size: 11.5px; font-weight: 700; color: var(--nv-text); background: #ffffff0d; border-color: #ffffff1c; border-radius: 16px; }
html body .rd-dock a .mp-nav-glyph, html body .wg-shell-dock a .wg-shell-nav-glyph, html body .rd-dock a .mp-nav-glyph::after, html body .wg-shell-dock a .wg-shell-nav-glyph::after { width: 36px; height: 36px; }
@media (hover: hover) { html body .rd-dock a:hover, html body .wg-shell-dock a:hover { transform: translateY(-2px); background: #ffffff17; } }

/* Short screens: keep all items without scrolling. */
@media (min-width: 781px) and (max-height: 860px) {
  :root { --nv-ico: 36px; }
  html body .mp-side-nav a, html body .wg-shell-nav a { min-height: 44px; }
  html body .rd-dock a, html body .wg-shell-dock a { min-height: 70px; }
}

/* ---------- Collapsed rail (nav-collapse.css): centred tiles, owner marks hidden ---------- */
html.wg-nav-collapsed body .mp-side-nav a, html.wg-nav-collapsed body .wg-shell-nav a { padding: 5px 0; transform: none; }
html.wg-nav-collapsed body .mp-side-nav a.active, html.wg-nav-collapsed body .wg-shell-nav a.active { box-shadow: inset 3px 0 var(--nv-gold), 0 0 14px #f2d27a26; }
html.wg-nav-collapsed body .rd-dock a, html.wg-nav-collapsed body .wg-shell-dock a { min-height: 48px; }
@media (min-width: 781px) {
  html.wg-nav-collapsed body .mp-side-nav .wg-owner-mark { display: none; }
  html.wg-nav-collapsed body .mp-side-nav a.mp-nav-plates { display: flex; }
}

/* ---------- Phones: drawer items and quick bar ---------- */
@media (max-width: 780px) {
  html body .mp-side-nav a, html body .wg-shell-nav a { min-height: 50px; font-size: 15.5px; }
  html body .rd-bottom-bar a, html body .wg-shell-bar a { font-size: 11px; font-weight: 700; color: var(--nv-muted); transition: color .2s, background-color .2s; }
  html body .rd-bottom-bar a .rd-bb-icon, html body .wg-shell-bar a .wg-shell-bar-icon { width: 30px; height: 30px; border-radius: 9px; box-shadow: 0 3px 8px #0007; background-size: contain; transition: transform .2s var(--nv-ease), box-shadow .2s; }
  html body .rd-bottom-bar a[aria-current="page"], html body .wg-shell-bar a[aria-current="page"] { color: #fff3c9; }
  html body .rd-bottom-bar a[aria-current="page"] .rd-bb-icon, html body .wg-shell-bar a[aria-current="page"] .wg-shell-bar-icon { box-shadow: 0 0 0 2px var(--nv-gold), 0 0 12px #f2d27a80; transform: translateY(-1px); }
}

/* ---------- Light theme ---------- */
html[data-theme='light'] body .mp-side-nav a, html[data-theme='light'] body .wg-shell-nav a { color: #1d3424; }
html[data-theme='light'] body .rd-dock a, html[data-theme='light'] body .wg-shell-dock a { color: var(--wg-s3); background: #ffffff8c; border-color: var(--wg-accent-hi); }
@media (hover: hover) {
  html[data-theme='light'] body .mp-side-nav a:hover, html[data-theme='light'] body .wg-shell-nav a:hover { background: #ffffffa6; border-color: #b9ccb5; color: #0f2416; }
}
html[data-theme='light'] body .mp-side-nav a.active, html[data-theme='light'] body .mp-side-nav a[aria-current="page"], html[data-theme='light'] body .wg-shell-nav a.active {
  background: linear-gradient(100deg, #f6e3a8, #f3ecd0 60%, #ffffff99); border-color: #c9a64e; color: #3a2a06; box-shadow: inset 4px 0 #c9971f, 0 4px 12px #a07a1a22;
}
html[data-theme='light'] body .mp-side-nav a.active .mp-nav-glyph, html[data-theme='light'] body .wg-shell-nav a.active .wg-shell-nav-glyph { box-shadow: 0 0 0 2px #c9971f, 0 0 12px #c9971f55, 0 3px 8px #0003; }
html[data-theme='light'] body .mp-sidebar-label, html[data-theme='light'] body .wg-shell-label { color: #7a5c14; }
html[data-theme='light'] body .mp-side-nav .mp-nav-glyph, html[data-theme='light'] body .wg-shell-nav .wg-shell-nav-glyph { box-shadow: 0 3px 8px #2f4a3a40; }

@media (prefers-reduced-motion: reduce) {
  html body .mp-side-nav a, html body .wg-shell-nav a, html body .mp-side-nav .mp-nav-glyph, html body .wg-shell-nav .wg-shell-nav-glyph,
  html body .rd-bottom-bar a .rd-bb-icon, html body .wg-shell-bar a .wg-shell-bar-icon { transition: none !important; }
  html body .mp-side-nav a:hover, html body .wg-shell-nav a:hover, html body .mp-side-nav a:hover .mp-nav-glyph, html body .wg-shell-nav a:hover .wg-shell-nav-glyph { transform: none !important; }
}

/* /assets/nav-solid.css */
/* Group 1, item 9 (2026-10-20): the side menu is one solid panel. The curved (masked) right edge and
   the 7px inset left a notch/gap at the top right between the menu and the page; on phones the
   drawer had a rounded top-right corner. Now: flush to the top, left and bottom edges, straight
   right edge with a thin border. Width, padding of the expanded/collapsed states are unchanged. */
@media (min-width:781px){
  html body .mp-sidebar,html body .wg-shell-sidebar{
    inset:0 auto 0 0!important;-webkit-mask:none!important;mask:none!important;
    border:0!important;border-right:1px solid #33463a!important;border-radius:0!important;
    filter:none!important;box-shadow:10px 0 30px #0006!important}
  html body .mp-sidebar::after,html body .wg-shell-sidebar::after{border-radius:0!important}
  html:not(.wg-nav-collapsed) body .mp-sidebar,html:not(.wg-nav-collapsed) body .wg-shell-sidebar{padding-right:22px!important}
  html[data-theme="light"] body .mp-sidebar,html[data-theme="light"] body .wg-shell-sidebar{
    border-right-color:#b1c8ad!important;box-shadow:8px 0 26px #445f4b26!important}
}
@media (max-width:780px){
  html body .mp-sidebar,html body .wg-shell-sidebar{border-radius:0!important;-webkit-mask:none!important;mask:none!important}
  html body .mp-sidebar::after,html body .wg-shell-sidebar::after{border-radius:0!important}
}

/* /assets/tz3/scene.css */
/* TZ3 · themed game backgrounds. Visual only; pairs with scene.js. */
html.tz3-scene-on{background:#040a17}
html.tz3-scene-on body{background:transparent!important}
.tz3-scene{background:var(--tz3-base);position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:strict}
.tz3-plate,.tz3-light,.tz3-motes{position:absolute;inset:0;width:100%;height:100%}
.tz3-plate{background:var(--tz3-base) center/cover no-repeat;opacity:0;transition:opacity .9s ease;transform:scale(1.04);will-change:opacity}
.tz3-scene.tz3-ready .tz3-plate{opacity:1}
/* readable page: dark band under the header and a soft bottom fade */
.tz3-scene::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,#040a17b3 0,#040a1740 16%,transparent 30%,transparent 76%,#040a1780 100%)}
.tz3-light{opacity:.55;mix-blend-mode:screen;background:var(--tz3-light);animation:tz3-breathe 9s ease-in-out infinite}
@keyframes tz3-breathe{50%{opacity:.85}}
html.tz3-lite .tz3-light{animation:none}
@media (prefers-reduced-motion:reduce){.tz3-light{animation:none}.tz3-plate{transition:none}}

/* per-theme base colour (shown before the plate loads) and light */
.tz3-theme-wheel{--tz3-base:radial-gradient(ellipse at 50% 40%,#16305f,#060d1f 70%);
  --tz3-light:radial-gradient(ellipse 40% 55% at 50% 38%,#ffc65a2e,transparent 70%),conic-gradient(from 180deg at 50% 0%,transparent 0 160deg,#7fb0ff14 170deg,transparent 180deg,#ffd08a12 190deg,transparent 200deg)}
.tz3-theme-hilo{--tz3-base:radial-gradient(ellipse at 50% 35%,#123a6d,#050c1c 72%);
  --tz3-light:radial-gradient(ellipse 45% 50% at 50% 35%,#4aa8ff2a,transparent 70%)}
.tz3-theme-baccarat{--tz3-base:radial-gradient(ellipse at 50% 35%,#2a2440,#07070f 72%);
  --tz3-light:radial-gradient(ellipse 45% 50% at 50% 30%,#ffbf5a26,transparent 70%)}
.tz3-theme-coin{--tz3-base:radial-gradient(ellipse at 50% 35%,#2b2a8a,#07081f 72%);
  --tz3-light:radial-gradient(ellipse 30% 60% at 50% 30%,#ffc85a33,transparent 70%)}

/* Game areas become windows onto the scene; control panels stay solid enough to read. */
/* Wheel (/arena/roulette) */
.tz3-theme-wheel section.game{background:transparent!important}
.tz3-theme-wheel .wheel-panel{background:radial-gradient(circle at 50% 45%,#2a6fb066 0,#0b2a5a59 46%,#06142e8c 100%)!important}
.tz3-theme-wheel .control-panel{background:linear-gradient(145deg,#123d69eb,#092542e6)!important}
/* HiLo practice (/arena/hilo) and W page */
.tz3-theme-hilo section.game{background:transparent!important}
.tz3-theme-hilo .table{background:radial-gradient(ellipse at 50% 40%,#1f68b06b 0,#123b6866 50%,#071d3aa6 100%)!important}
.tz3-theme-hilo .controls{background:linear-gradient(135deg,#0e3458f2,#092643f2)!important}
.tz3-theme-hilo .hilo-table{background:linear-gradient(150deg,#08213b99,#06172799 65%,#03121fb3)!important}
.tz3-theme-hilo .hilo-panel{background:linear-gradient(150deg,#08213bf0,#061727f0 65%,#03121ff2)!important}
/* Coinflip training and W page */
.tz3-theme-coin .coin-stage,.tz3-theme-coin section.stage{background:radial-gradient(ellipse at 50% 55%,#3d4fd066 0,#1a1f6a4d 40%,#0a0d2a80 100%)!important}
.tz3-theme-coin aside.panel,.tz3-theme-coin section.panel{background:linear-gradient(150deg,#16267aeb,#0b1648ee 55%,#070d27f2)!important}
.tz3-theme-coin section.proof{background:linear-gradient(150deg,#16267ad9,#0b1648e0 55%,#070d27e6)!important}
/* Baccarat practice and W */
.tz3-theme-baccarat section.table{background:radial-gradient(ellipse at 50% 30%,#3a2f5c66 0,#1a1a3a66 50%,#0a0a18b0 100%)!important;
  box-shadow:inset 0 0 0 1px #e0b56a33,0 24px 60px #0008}
.tz3-theme-baccarat .hand{background:linear-gradient(140deg,#0c0c1ccc,#1b1830b8)!important;border-color:#d7ac6440!important}
.tz3-theme-baccarat .controls{background:#0b0b18f0!important}

/* In-stage light layer (under the game objects) */
.tz3-stage-host{isolation:isolate}
.tz3-stagefx{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;border-radius:inherit}
.tz3-stagefx i{position:absolute;display:block}
.tz3-rays{left:50%;top:var(--tz3-ry,46%);width:190vmax;height:190vmax;max-width:2200px;max-height:2200px;margin:-95vmax 0 0 -95vmax;
  -webkit-mask:radial-gradient(closest-side,#000 0,#0009 22%,transparent 62%);mask:radial-gradient(closest-side,#000 0,#0009 22%,transparent 62%);
  opacity:var(--tz3-ro,.5);animation:tz3-rot 90s linear infinite;will-change:transform}
@media (min-width:1200px){.tz3-rays{margin:-1100px 0 0 -1100px;width:2200px;height:2200px}}
.tz3-pool{left:50%;bottom:-8%;width:80%;height:38%;transform:translateX(-50%);border-radius:50%;filter:blur(2px);opacity:.75}
@keyframes tz3-rot{to{transform:rotate(360deg)}}
html.tz3-lite .tz3-rays{animation:none}
@media (prefers-reduced-motion:reduce){.tz3-rays{animation:none}}
.tz3-theme-wheel .tz3-rays{--tz3-ro:.55;background:repeating-conic-gradient(from 0deg,#ffcf6a2e 0 7.5deg,#2f6fff14 7.5deg 15deg)}
.tz3-theme-wheel .tz3-pool{background:radial-gradient(closest-side,#ffd27a40,#4d8dff1f 60%,transparent)}
.tz3-theme-hilo .tz3-rays{--tz3-ro:.45;--tz3-ry:40%;background:repeating-conic-gradient(from 0deg,#5ab4ff1f 0 5deg,transparent 5deg 20deg)}
.tz3-theme-hilo .tz3-pool{background:radial-gradient(closest-side,#7cc8ff33,#ffd08a14 60%,transparent)}
.tz3-theme-coin .tz3-rays{--tz3-ro:.6;--tz3-ry:45%;background:repeating-conic-gradient(from 0deg,#ffd36e33 0 4deg,transparent 4deg 12deg,#9a8cff1a 12deg 14deg,transparent 14deg 20deg);animation-duration:60s}
.tz3-theme-coin .tz3-pool{background:radial-gradient(closest-side,#ffc95a40,#7a6cff1a 60%,transparent)}
.tz3-theme-baccarat .tz3-rays{--tz3-ro:.55;--tz3-ry:-10%;animation:none;
  background:repeating-radial-gradient(circle at 50% 50%,transparent 0 46px,#e4b8653d 47px 48px),repeating-conic-gradient(from 0deg,#e4b86524 0 1deg,transparent 1deg 10deg)}
.tz3-theme-baccarat .tz3-pool{background:radial-gradient(closest-side,#ffc4703a,#a86cff14 60%,transparent)}
/* Light theme: the scene stays a dark window, so text drawn straight on it keeps the dark-theme ink (QA 2026-10-16). */
html[data-theme="light"].tz3-scene-on body,html[data-theme="light"].tz3-scene-on body.wg-shell-ready,html[data-theme="light"].tz3-scene-on .mp-body{color:#eef4ff}
html[data-theme="light"].tz3-scene-on body.wg-shell-ready .intro p:not(.eyebrow),html[data-theme="light"].tz3-scene-on body.wg-shell-ready .help,html[data-theme="light"].tz3-scene-on body.wg-shell-ready .practice-link{color:#c3d2e6}
html[data-theme="light"].tz3-scene-on .hilo-w-page .hilo-kicker{color:#f7ce77}
html[data-theme="light"].tz3-scene-on .hilo-w-page .hilo-hero p{color:#b6cfe1}
html[data-theme="light"].tz3-scene-on body.wg-shell-ready .demo-tag{color:#adf0ff}
html[data-theme="light"].tz3-scene-on body.wg-shell-ready .under-table summary,html[data-theme="light"].tz3-scene-on body.wg-shell-ready .proof summary{color:#eef2e4}
html[data-theme="light"].tz3-scene-on body.wg-shell-ready footer{color:#9db9cc}
html[data-theme="light"].tz3-scene-on body.wg-shell-ready footer a{color:#95e6ff}
html[data-theme="light"].tz3-scene-on body.wg-shell-ready>header .brand,html[data-theme="light"].tz3-scene-on body.wg-shell-ready>header .back,html[data-theme="light"].tz3-scene-on body.wg-shell-ready .topbar nav a{color:#e3eefc}
html[data-theme="light"].tz3-scene-on body.wg-shell-ready .last small{color:#b4c8bb}

/* /assets/mobile-fix.css */
/* WIND GAME phone adaptation (mob1-20261016). Layout/input only: no game logic, odds or stakes.
   Loaded last in <head> on site pages and Arena game pages. Safe on desktop: every rule is
   inside a phone/touch media query except touch-action, which only removes the double-tap delay. */

/* TZ3 §8: a double tap must not zoom the page or fire a button twice with the 300ms delay. */
button, [role="button"], .wg-shell-bar a, .rd-bottom-bar a { touch-action: manipulation; }

/* ---------- Phones (portrait and small tablets) ---------- */
@media (max-width: 600px) {
  /* Chat/support button: smaller so it covers less of the game cards. */
  html body .wg-help-fab .wg-help-trigger { width: 46px; height: 46px; border-radius: 16px; }
  html body .wg-help-fab .wg-help-trigger svg { width: 23px; height: 23px; }

  /* HiLo: the 56px gutter reserved for the chat button squeezed the three choices
     until «Недоступно / Unavailable» was cut. Give them the full row back. */
  .hilo-w-page .hilo-choices { padding-right: 0 !important; gap: 6px; }
  .hilo-w-page .hilo-choices button { padding: 8px 6px; overflow-wrap: anywhere; }

  /* Secondary actions under 40px. */
  #verify, button#verify { min-height: 40px; }
  #pz-sw-practice, #pz-sw-w { min-height: 40px; }
  .th-pill { min-height: 40px; }
  #refresh, #cancel { min-height: 40px; }
  .wg-game-scroll-controls button { min-width: 40px; min-height: 40px; }
  #game-search { min-height: 40px; }

  /* Home favourites star: 28px visual, 40px touch area. */
  .mp-favorite::after { content: ""; position: absolute; inset: -6px; }

  /* Game header links (Duel W / Coin Flip / rooms): wrap instead of cutting «Профиль». */
  body.wg-shell-ready .wg-shell-header > nav { flex-wrap: wrap; row-gap: 2px; min-width: 0; max-width: 100%; }
}

@media (max-width: 360px) {
  .hilo-w-page .hilo-choices strong { font-size: 12px; }
  .hilo-w-page .hilo-choices span, .hilo-w-page .hilo-choices small { font-size: 10.5px; }
}

/* ---------- Short landscape phones (e.g. 740x360) ---------- */
/* The 66px quick bar + header left only ~half of the screen for the game. */
@media (orientation: landscape) and (max-height: 500px) {
  :root {
    --rd-dock-h: calc(46px + env(safe-area-inset-bottom)) !important;
    --wg-bar-h: calc(46px + env(safe-area-inset-bottom)) !important;
  }
  html body .rd-bottom-bar, html body .wg-shell-bar { padding-top: 3px; padding-bottom: env(safe-area-inset-bottom); }
  html body .rd-bottom-bar a, html body .wg-shell-bar a { flex-direction: row; gap: 7px; min-height: 40px; font-size: 12px; }
  html body .rd-bottom-bar a .rd-bb-icon, html body .wg-shell-bar a .wg-shell-bar-icon { width: 24px; height: 24px; flex: none; }
  html body .wg-help-fab .wg-help-trigger { width: 44px; height: 44px; border-radius: 15px; }
  html body .wg-help-fab .wg-help-trigger svg { width: 22px; height: 22px; }
}

/* /assets/game-light.css */
/* WIND GAME light theme for game pages (group 1, item 12, 2026-10-20).
   Loaded last on each game page; active only under html.gl[data-theme="light"].
   - page background, top bar, titles, footer and the stake bar get light theme tokens;
   - the playing field (canvas, 3D race, rocket space, card table, coin scene, number boards)
     keeps its night art in a light frame;
   - side panels / cards / rule blocks of pages without their own light rules are normalised to
     the dark design and then shown light with invert(1)+hue-rotate(180deg): text, buttons and
     status colours (win/error) keep their relative contrast; images are inverted back.
   Pages with native light rules (Duel: html.gl-native) skip the inversion. */
html[data-theme="light"]{
  --gl-bg:var(--wg-pale);--gl-bg-2:var(--wg-pale);--gl-surface:#ffffff;--gl-line:var(--wg-pale-2);
  --gl-text:var(--wg-s2);--gl-muted:var(--wg-accent-lo);--gl-accent:var(--wg-accent-lo);--gl-accent-2:var(--wg-accent-lo);--gl-green:var(--wg-accent-lo);
  color-scheme:light;background:var(--gl-bg)
}
html.gl[data-theme="light"] body{background:linear-gradient(180deg,var(--gl-bg-2),var(--gl-bg) 60%)!important;color:var(--gl-text)}
html.gl[data-theme="light"] body .tz3-scene{display:none!important}
/* Top bar of the game shell. */
html.gl[data-theme="light"] body header.wg-shell-header{background:linear-gradient(180deg,#ffffff,var(--wg-pale))!important;border-color:var(--gl-line)!important;box-shadow:0 6px 18px color-mix(in srgb,var(--wg-s4) 7.8%,transparent)!important}
html.gl[data-theme="light"] body header.wg-shell-header :is(a,span,strong,.brand,.back),html.gl[data-theme="light"] body>header :is(.brand,.back),html.gl[data-theme="light"] body .topbar nav a{color:var(--gl-text)!important;-webkit-text-fill-color:currentColor;text-shadow:none!important}
html.gl[data-theme="light"] body header.wg-shell-header :is(.brand b,.brand span,.demo-tag,.accent),html.gl[data-theme="light"] body>header .brand :is(b,span){color:var(--gl-green)!important}
html.gl[data-theme="light"] body .demo-tag{border-color:var(--wg-accent-hi)!important}
/* Titles and intro text (the tz3 night-scene rules kept them light). */
html.gl[data-theme="light"] body :is(.intro,.topbar,.page-head,.hero-copy,.hilo-hero,.th-hero-copy,main>header,.title,.head,.game-head,section.hero) h1{color:var(--gl-text)!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important;background:none!important}
html.gl[data-theme="light"] body :is(.intro,.topbar,.page-head,.hero-copy,.hilo-hero,.th-hero-copy,main>header,.title,.head,.game-head,section.hero) h1 :is(em,span,b,i,.accent){color:var(--gl-accent)!important;-webkit-text-fill-color:currentColor!important;background:none!important;text-shadow:none!important}
html.gl[data-theme="light"] body :is(.intro,.page-head,.hero-copy,.hilo-hero,.th-hero-copy,main>header,.title,.head,.game-head,section.hero) :is(p:not(.eyebrow),.hero-lead,.back){color:var(--gl-muted)!important;text-shadow:none!important}
html.gl[data-theme="light"] body :is(.intro,.topbar,.page-head,.hero-copy,.hilo-hero,.th-hero-copy,main>header,.title,.head,.game-head,section.hero) .eyebrow,html.gl[data-theme="light"] body .hilo-kicker{color:var(--gl-green)!important}
html.gl[data-theme="light"] body section.hero:not(.wg-home-hero),html.gl[data-theme="light"] body section.th-hero{background:radial-gradient(circle at 80% 40%,var(--wg-pale-2),transparent 45%),linear-gradient(135deg,#ffffff,var(--wg-pale))!important;border-color:var(--gl-line)!important;box-shadow:0 12px 30px color-mix(in srgb,var(--wg-s4) 7.8%,transparent)!important}
html.gl[data-theme="light"] body footer{color:var(--gl-muted)!important}
html.gl[data-theme="light"] body footer a{color:var(--gl-green)!important}
html.gl[data-theme="light"] body .wg-guest-play small{color:var(--gl-muted)!important}
html.gl[data-theme="light"] body :is(#status,p.status){color:var(--gl-accent-2)!important}
/* Stake bar (assets/stake-bar.css) through its own tokens. */
html[data-theme="light"] .sbar{--sb-bg:var(--wg-pale);--sb-bg2:#ffffff;--sb-line:var(--wg-accent-hi);--sb-text:var(--wg-s2);--sb-muted:var(--wg-accent-lo);--sb-cyan:var(--wg-accent);--sb-gold:#9a6400;--sb-lime:var(--wg-accent-lo);box-shadow:0 8px 22px color-mix(in srgb,var(--wg-s4) 10.2%,transparent)}
html[data-theme="light"] .sbar .sbar-amount{background:#ffffff}
html[data-theme="light"] .sbar .sbar-step{background:radial-gradient(circle at 35% 30%,#ffffff,var(--wg-pale));color:var(--wg-accent-lo);border-color:var(--wg-accent-hi)}
html[data-theme="light"] .sbar .sbar-quick button{background:#ffffff;color:var(--wg-s2);border-color:var(--wg-accent-hi)}
html[data-theme="light"] .sbar .sbar-value{text-decoration-color:#9a640080}
/* Side panels and cards: normalise to the dark design, then invert to light. */
html.gl:not(.gl-native)[data-theme="light"] body :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls){background-color:var(--wg-s2)!important;background-image:linear-gradient(160deg,var(--wg-s3),var(--wg-s2))!important;color:var(--wg-text-tint);border-color:var(--wg-accent-lo)!important;filter:invert(1) hue-rotate(180deg) brightness(1.05);box-shadow:none!important}
html.gl:not(.gl-native)[data-theme="light"] body :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls) :is(h2,h3,h4,.eyebrow,summary,label){color:var(--wg-text-tint)!important;-webkit-text-fill-color:currentColor}
html.gl:not(.gl-native)[data-theme="light"] body :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls) :is(p,small,.fine,.message,.notice,.panel-intro,.risk-caption,.mode-label,.hint):not(.error):not(.bad):not(.good):not(.win){color:var(--wg-text-tint)!important}
html.gl:not(.gl-native)[data-theme="light"] body :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls) .wg-guest-play small{color:var(--wg-text-tint)!important}
html.gl:not(.gl-native)[data-theme="light"] body :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls) :is(img,picture,video,canvas,.sbar){filter:invert(1) hue-rotate(180deg)}
/* Keno / Limbo boards (dark fields): own counters stay light. */
html.gl[data-theme="light"] body :is(section.stage,section.race-stage,section.table,.hilo-table,.rs-stage,.mines-field){box-shadow:0 14px 34px color-mix(in srgb,var(--wg-s4) 14.9%,transparent);border-color:var(--gl-line)}
html.gl[data-theme="light"] body :is(section.race-stage,section.stage,section.table,.hilo-table,.rs-stage) :is(h2,h3,.eyebrow,strong,em,.paytable-head span){color:var(--wg-text-tint)!important;-webkit-text-fill-color:currentColor}
html.gl[data-theme="light"] body :is(section.tz3-stage-host,section.table.tz3-stage-host){background:radial-gradient(120% 90% at 50% 0%,var(--wg-s5),var(--wg-s2) 70%)!important}
html.gl[data-theme="light"] body .topbar-right span{color:var(--gl-muted)!important}
/* Small leftovers found by the contrast check. */
html.gl[data-theme="light"] body :is(.topbar,header.top,header.wg-shell-header) nav a{background:#ffffff!important;border-color:var(--wg-accent-hi)!important;color:var(--gl-text)!important}
html.gl[data-theme="light"] body .sbar .sbar-note:not(.is-error){color:var(--wg-accent-lo)!important}
html.gl[data-theme="light"] body :is(.status-chip,.w-chip,.pill,.mode-pill){background:var(--wg-pale)!important;color:var(--wg-accent-lo)!important;border-color:var(--wg-accent-hi)!important;text-shadow:none!important}
html.gl[data-theme="light"] body :is(.th-kicker,.stake-overview span){color:var(--gl-green)!important}
html.gl[data-theme="light"] body .stake-overview strong{background:#ffffff!important;color:var(--gl-text)!important;border-color:var(--wg-accent-hi)!important}
html.gl[data-theme="light"] body :is(p.footnote,.how b,.steps b){color:var(--gl-muted)!important}
html.gl[data-theme="light"] body header.top{border-color:var(--gl-line)!important}
html.gl[data-theme="light"] body header.top .brand{color:var(--gl-text)!important}
html.gl[data-theme="light"] body header.top .brand b{color:var(--gl-green)!important}
/* A listed block inside another listed block must not be inverted twice. */
html.gl:not(.gl-native)[data-theme="light"] body :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls) :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls){filter:none!important;background-image:none!important;background-color:transparent!important}
/* Guest "sign in and play" call to action keeps its lime button colours inside inverted panels. */
html.gl:not(.gl-native)[data-theme="light"] body :is(aside.control-panel,aside.bet-panel,aside.controls,aside.wallet,aside.panel,section.panel,div.controls,.hilo-panel,.info-card,details.proof,details.rules,details.fairness,section.proof,section.rk-players,section.odds-box,.stake-block,.feedback,section.gate,.th-card,.balance-chip,.mh-tile,.sg-controls) .wg-guest-play :is(a,button){filter:invert(1) hue-rotate(180deg)}
/* Sound button, game tabs, rooms flow and status line. */
html.gl[data-theme="light"] body .wg-sfx-btn{background:#ffffff!important;color:var(--wg-accent-lo)!important;border-color:var(--wg-accent-hi)!important}
html.gl[data-theme="light"] body .wg-sfx-btn[aria-pressed="false"]{color:var(--wg-accent-hi)!important}
html.gl[data-theme="light"] body .game-tabs a{background:#ffffff!important;color:var(--gl-text)!important;border-color:var(--wg-accent-hi)!important;box-shadow:none!important}
html.gl[data-theme="light"] body .game-tabs a:is([aria-current],.active,[aria-selected="true"]){background:linear-gradient(135deg,var(--wg-accent),var(--wg-accent))!important;color:#fff!important;border-color:var(--wg-accent)!important}
html.gl[data-theme="light"] body .flow b{color:#9a6400!important}
html.gl[data-theme="light"] body .flow span{color:var(--gl-muted)!important}
html.gl[data-theme="light"] body .flow>div{border-color:var(--wg-pale-2)!important}
html.gl[data-theme="light"] body p#status.status{background:#ffffff!important;border-color:var(--gl-line)!important;color:var(--gl-accent-2)!important}
html.gl[data-theme="light"] body .sbar .sbar-value{color:var(--sb-gold)!important}
