/* nldt11mi 1bruxq3 */
    /* ─── TOKENS ─────────────────────────────────────────── */
    :root {
      --yh02hp:        #F8F9FC;
      --yp3rtkz7:       #F0F2F8;
      --bvixte:   #FFFFFF;
      --do0uz:  #F4F5FB;
      --v6dr76:    #E2E6F0;
      --nr1xfya:      #0F1225;
      --yfbjxig:    #374151;   /* soft body text */
      --ygti488:     #6B7280;
      --l3vyu:    var(--l3vyu);   /* violet — iGaming signature */
      --duwiia9:   var(--duwiia9);   /* gold */
      --lejvdaa3:     var(--l3vyu);   /* win/positive */
      --ln9n4:       #EF4444;
      --nhupr:    var(--nhupr);

      --il3tyi6u: 6px;
      --m9wyy: 12px;
      --y5a31f5: 18px;
      --s55tk: 24px;

      --v00pviv:  0 1px 4px rgba(0,0,0,.3);
      --z4xk8ddz:  0 4px 20px rgba(0,0,0,.4);
      --eo67e: 0 0 24px rgba(var(--lnnefn7p),.12);

      --l2yoi: 'Barlow Condensed', sans-serif;
      --vqxtr72n: 'Besley', Georgia, serif;
      --hht9z1:    'Inter', sans-serif;
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: var(--hht9z1);
      background: var(--yh02hp);
      color: var(--nr1xfya);
      font-size: 16px;
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
    }
    img { max-width: 100%; display: block; }
    a { color: inherit; text-decoration: none; }

    .container {
      width: 100%;
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 20px;
    }

    /* ─── TOP BAR (18+ / lang) ───────────────────────────── */
    .top-bar {
      background: var(--daxqh);
      border-bottom: 1px solid rgba(255,255,255,.08);
      padding: 6px 0;
    }
    .i6idy {
      display: flex;
      align-items: center;
      justify-content: space-between;
      font-size: .72rem;
      color: var(--ygti488);
    }
    .y1xdi8t6 { display: flex; align-items: center; gap: 16px; }
    .wa5fkmu {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      background: rgba(var(--lnnefn7p),.15);
      border: 1px solid rgba(var(--lnnefn7p),.3);
      color: var(--l3vyu);
      font-size: .65rem;
      font-weight: 700;
      letter-spacing: .5px;
      padding: 2px 7px;
      border-radius: 3px;
    }
    .j6y87ju { display: flex; align-items: center; gap: 12px; }
    .j6y87ju a { color: var(--ygti488); font-size: .72rem; transition: color .15s; }
    .j6y87ju a:hover { color: var(--nr1xfya); }

    /* ─── HEADER / NAV ───────────────────────────────────── */
    .site-header {
      background: var(--nhupr);
      border-bottom: 1px solid var(--v6dr76);
      position: sticky;
      top: 0;
      z-index: 100;
      box-shadow: 0 2px 20px rgba(0,0,0,.5);
    }
    .dpfyzve {
      display: flex;
      align-items: center;
      min-height: 64px;
      flex-wrap: nowrap;   /* header must NEVER wrap to a 2nd row — collapse to burger instead */
      padding: 8px 0;
      gap: 0;
    }
    .m7e1dnq { height: 32px; width: 32px; flex-shrink: 0; border-radius: 7px; display: block; }
    .qy0pp { height: 30px; width: auto; flex-shrink: 0; display: block; }
    .kiacslgr {
      display: flex;
      align-items: center;
      gap: 10px;
      color: #fff;
      font-family: var(--l2yoi);
      font-size: 1.6rem;
      font-weight: 800;
      letter-spacing: .5px;
      white-space: nowrap;
      margin-right: 28px;
      flex-shrink: 0;
    }
    .if4bq {
      background: var(--l3vyu);
      color: #fff;
      font-size: .6rem;
      font-weight: 700;
      letter-spacing: 1px;
      padding: 2px 7px;
      border-radius: 4px;
      text-transform: uppercase;
    }

    /* Primary nav with dropdowns */
    /* nav light links */
    .c1wel4v > a { color: rgba(255,255,255,.82); text-decoration:none; font-size:.9rem; font-weight:600; }
    .c1wel4v > a:hover { color:#fff; }
    .kiacslgr { color:#fff; }
    .c1wel4v {
      display: flex;
      align-items: center;
      gap: 2px;
      flex: 1;
    }
    .nav-item {
      position: relative;
    }
    .nav-item > a {
      display: flex;
      align-items: center;
      gap: 5px;
      color: rgba(255,255,255,.82);
      font-size: .88rem;
      font-weight: 600;
      padding: 8px 14px;
      border-radius: var(--il3tyi6u);
      transition: background .15s, color .15s;
      white-space: nowrap;
    }
    .nav-item > a:hover,
    .nav-item > a.active { background: rgba(255,255,255,.08); color: #fff; }
    .nav-item > a .b93eu {
      font-size: .6rem;
      opacity: .5;
      transition: transform .2s;
    }
    .nav-item:hover > a .b93eu { transform: rotate(180deg); }

    /* Dropdown */
    .nav-dropdown {
      position: absolute;
      top: calc(100% + 8px);
      left: 0;
      /* last hardcoded nav colour — it kept the dropdowns blue on every palette */
      background: var(--daxqh);
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
      padding: 6px;
      min-width: 200px;
      box-shadow: var(--z4xk8ddz);
      opacity: 0;
      pointer-events: none;
      transform: translateY(-6px);
      transition: opacity .15s, transform .15s;
      z-index: 50;
    }
    .nav-item:hover .nav-dropdown,
    .nav-item:focus-within .nav-dropdown {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0);
    }
    .nav-dropdown a {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 9px 12px;
      border-radius: var(--il3tyi6u);
      color: rgba(255,255,255,.82);
      font-size: .85rem;
      font-weight: 500;
      transition: background .12s, color .12s;
    }
    .nav-dropdown a:focus-visible,
    .nav-item > a:focus-visible { outline: 2px solid var(--l3vyu); outline-offset: 2px; }
    .nav-dropdown a:hover { background: rgba(var(--lnnefn7p),.15); color: #fff; }
    .nav-dropdown a .dup3j { font-size: 1rem; opacity: .7; }

    /* Auth buttons */
    .f28bq {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-left: auto;
      flex-shrink: 0;
    }
    .u1dny {
      padding: 8px 20px;
      border-radius: var(--il3tyi6u);
      font-size: .85rem;
      font-weight: 700;
      color: rgba(255,255,255,.85);
      border: 1.5px solid rgba(255,255,255,.2);
      background: transparent;
      cursor: pointer;
      transition: border-color .15s, color .15s, background .15s;
      font-family: var(--hht9z1);
      text-decoration: none;
    }
    .u1dny:hover { border-color: rgba(255,255,255,.5); color: #fff; background: rgba(255,255,255,.06); }
    .rlr0k {
      padding: 8px 20px;
      border-radius: var(--il3tyi6u);
      font-size: .85rem;
      font-weight: 700;
      color: #fff;
      background: var(--l3vyu);
      border: none;
      cursor: pointer;
      transition: filter .15s, transform .1s;
      font-family: var(--hht9z1);
      text-decoration: none;
      box-shadow: 0 0 16px rgba(var(--lnnefn7p),.35);
    }
    .rlr0k:hover { filter: brightness(1.1); transform: translateY(-1px); }

    /* Burger */
    .burger {
      display: none;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 40px; height: 40px;
      cursor: pointer; gap: 5px;
      border: none; background: transparent; padding: 0;
      margin-left: auto;
    }
    .burger span {
      display: block; width: 22px; height: 2px;
      background: #fff; border-radius: 2px;
      transition: transform .25s, opacity .25s;
    }
    .burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .burger.open span:nth-child(2) { opacity: 0; }
    .burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    /* Mobile drawer */
    .nav-drawer {
      display: none;
      flex-direction: column;
      background: var(--nhupr);
      padding: 12px 20px 24px;
      gap: 2px;
      border-bottom: 1px solid var(--v6dr76);
    }
    /* Full-screen mobile menu: fixed overlay from just below the header to the bottom of the
       viewport (top is set by JS = header height, so it works with/without the top-bar). The
       sticky bonus bar is hidden while it is open (see body.drawer-open) so nothing peeks through. */
    .nav-drawer.open {
      display: flex;
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      top: 64px; /* JS overrides with the real header bottom */
      overflow-y: auto;
      overscroll-behavior: contain;
      z-index: 150;
      padding: 18px 20px calc(28px + env(safe-area-inset-bottom));
      border-bottom: none;
    }
    /* Scroll-lock + sticky-hide only apply at mobile widths, so even if the `drawer-open` class
       lingers after a resize back to desktop the page is NEVER left frozen. */
    @media (max-width: 1180px) {
      body.drawer-open { overflow: hidden; }
      body.drawer-open .sticky-bar { display: none; }
    }
    /* Above the burger breakpoint the drawer must never show, even if it was left open before a
       resize back to desktop — the desktop nav is visible instead. */
    @media (min-width: 1181px) {
      .nav-drawer, .nav-drawer.open { display: none; }
    }
    .nav-drawer a {
      color: rgba(255,255,255,.85);
      font-size: .9rem;
      font-weight: 500;
      padding: 11px 12px;
      border-radius: var(--il3tyi6u);
      border-bottom: 1px solid var(--v6dr76);
    }
    .nav-drawer a:hover { background: rgba(255,255,255,.06); color: #fff; }
    .wgcriw {
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: 1.2px;
      text-transform: uppercase;
      color: rgba(255,255,255,.25);
      padding: 14px 12px 4px;
    }
    .hsbm9cgb {
      display: flex;
      gap: 8px;
      padding: 12px 0 4px;
    }
    .hsbm9cgb a {
      flex: 1;
      text-align: center;
      border-radius: var(--il3tyi6u);
      font-weight: 700;
      padding: 10px;
    }
    .hsbm9cgb .u1dny { border: 1.5px solid rgba(255,255,255,.2); }
    .hsbm9cgb .rlr0k { background: var(--l3vyu); color: #fff; }

    /* ─── HERO ───────────────────────────────────────────── */
    .hero {
      background:
        radial-gradient(ellipse 70% 60% at 80% 50%, rgba(var(--lnnefn7p),.07) 0%, transparent 70%),
        radial-gradient(ellipse 40% 50% at 10% 80%, rgba(245,179,1,.04) 0%, transparent 60%),
        linear-gradient(160deg, var(--nhupr) 0%, var(--daxqh) 50%, var(--daxqh) 100%);
      color: #fff;
      padding: 72px 0 64px;
      position: relative;
      overflow: hidden;
    }
    .hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image:
        radial-gradient(circle at 1px 1px, rgba(255,255,255,.04) 1px, transparent 0);
      background-size: 32px 32px;
      pointer-events: none;
    }
    .ojas8i {
      display: grid;
      grid-template-columns: 1fr 1fr;
      align-items: center;
      gap: 48px;
    }
    .pinkf8t {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: rgba(var(--lnnefn7p),.2);
      border: 1px solid rgba(var(--lnnefn7p),.4);
      color: color-mix(in srgb, var(--l3vyu) 45%, #fff);
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: 1.2px;
      text-transform: uppercase;
      padding: 5px 12px;
      border-radius: 20px;
      margin-bottom: 18px;
    }
    .hero h1 {
      font-family: var(--vqxtr72n);
      font-size: clamp(2.2rem, 5vw, 3.8rem);
      font-weight: 800;
      line-height: 1.05;
      letter-spacing: -.5px;
      margin-bottom: 16px;
    }
    .hero h1 em {
      font-style: normal;
      background: linear-gradient(90deg, var(--l3vyu), var(--duwiia9));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .sjaoeoq {
      font-size: 1rem;
      color: rgba(255,255,255,.75);
      max-width: 440px;
      margin-bottom: 28px;
      line-height: 1.6;
    }
    .pt7268v {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      align-items: center;
    }
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 13px 28px;
      border-radius: var(--il3tyi6u);
      font-size: .9rem;
      font-weight: 700;
      cursor: pointer;
      transition: filter .15s, transform .1s;
      border: none;
      font-family: var(--hht9z1);
    }
    .btn:hover { filter: brightness(1.1); transform: translateY(-1px); }
    .vkpcj {
      background: var(--l3vyu);
      color: #fff;
      box-shadow: 0 0 20px rgba(var(--lnnefn7p),.4);
    }
    /* Default outline button sits on LIGHT sections (e.g. "view all slots →")
       → accent text/border so it never washes out. Contrast rule. */
    .c4kil0 {
      background: transparent;
      color: var(--l3vyu);
      border: 1.5px solid color-mix(in srgb, var(--l3vyu) 45%, transparent);
    }
    .c4kil0:hover { background: color-mix(in srgb, var(--l3vyu) 8%, transparent); }
    /* On DARK backgrounds (hero, dark bands) the same button goes white. */
    .hero .c4kil0,
    .sreodin .c4kil0,
    .top-bar .c4kil0,
    .sticky-bar .c4kil0 {
      color: #fff;
      border-color: rgba(255,255,255,.30);
    }
    .hero .c4kil0:hover,
    .sreodin .c4kil0:hover,
    .sticky-bar .c4kil0:hover { background: rgba(255,255,255,.08); }
    .cqmnmb {
      font-size: .72rem;
      color: rgba(255,255,255,.35);
      margin-top: 12px;
    }

    /* Hero right — bonus card */
    .itorn8 {
      background: linear-gradient(145deg, var(--nhupr), var(--daxqh));
      border: 1px solid rgba(var(--lnnefn7p),.35);
      border-radius: var(--s55tk);
      padding: 32px 28px;
      box-shadow: var(--eo67e);
      position: relative;
      overflow: hidden;
    }
    .itorn8::before {
      content: '';
      position: absolute;
      top: -40px; right: -40px;
      width: 160px; height: 160px;
      background: radial-gradient(circle, rgba(var(--lnnefn7p),.25), transparent 70%);
      pointer-events: none;
    }
    /* L2-page offer card (Коля 2026-08-19: "то что мы сгенерили чисто фотка на заднем фоне быть
       должна, а поверх нее наш текст" — themed art per page topic + brand fills the WHOLE card as
       a background photo, text/CTA sit on top of it via .prfg5; .cu6cfexc is
       a modifier only used on L2 markup, so the home hero's plain stat card is untouched). */
    .cu6cfexc {
      padding: 0;
      /* Коля 2026-08-19: "расширение фотки другое такое как у изначальной карточки" — trimming the
         stat rows collapsed the card to ~2.7:1; match the ORIGINAL (home hero) card's own proportions
         (556×363 measured live ≈ 3:2) instead of letting card height be dictated by the leaner text. */
      aspect-ratio: 3 / 2;
    }
    .beq0o {
      position: absolute;
      inset: 0;
      z-index: 0;
      /* no text/CTA sits over this photo any more (Коля 2026-08-19 removed .prfg5) —
         the dark wash that used to keep that overlay legible only dimmed the photo for nothing. */
    }
    .prfg5 {
      position: relative;
      z-index: 1;
      height: 100%;
      padding: 32px 28px;
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      gap: 4px;
    }
    .peluix3s {
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: 1.2px;
      text-transform: uppercase;
      color: rgba(255,255,255,.45);
      margin-bottom: 8px;
    }
    .tb3owe8g {
      font-family: var(--vqxtr72n);
      font-size: 2.2rem;
      font-weight: 800;
      line-height: 1;
      color: var(--duwiia9);
      letter-spacing: -1px;
      margin-bottom: 4px;
    }
    .z1v5on0 {
      font-size: .85rem;
      color: rgba(255,255,255,.6);
      margin-bottom: 24px;
    }
    .i237edyo {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 24px;
    }
    .q42vk9 {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: .85rem;
      color: rgba(255,255,255,.85);
    }
    .adqozkac {
      width: 22px; height: 22px;
      background: rgba(var(--lnnefn7p),.15);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: .75rem;
      flex-shrink: 0;
      color: var(--l3vyu);
    }
    .g133a3oc {
      display: block;
      width: 100%;
      text-align: center;
      background: linear-gradient(135deg, var(--l3vyu), var(--rhcmg6d));
      color: #fff;
      padding: 14px;
      border-radius: var(--m9wyy);
      font-weight: 700;
      font-size: .95rem;
      box-shadow: 0 4px 20px rgba(var(--lnnefn7p),.4);
      transition: filter .15s, transform .1s;
    }
    .g133a3oc:hover { filter: brightness(1.1); transform: translateY(-1px); }
    .dm0o8 {
      font-size: .65rem;
      color: rgba(255,255,255,.25);
      text-align: center;
      margin-top: 10px;
      line-height: 1.4;
    }

    /* ─── TRUST STRIP ────────────────────────────────────── */
    .lc6mnsvo {
      background: var(--bvixte);
      border-top: 1px solid #E2E6F0;
      border-bottom: 1px solid #E2E6F0;
      padding: 0;
    }
    .aaibpqvg {
      display: flex;
      align-items: stretch;
    }
    .w2s3cz {
      flex: 1;
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 18px 20px;
      border-right: 1px solid var(--v6dr76);
    }
    .w2s3cz:last-child { border-right: none; }
    .meh5og { font-size: 1.4rem; flex-shrink: 0; }
    .wngjy {
      font-size: .72rem;
      font-weight: 700;
      color: var(--nr1xfya);
    }
    .qhr5drg {
      font-size: .65rem;
      color: var(--ygti488);
      margin-top: 1px;
    }

    /* ─── SECTION WRAPPER ────────────────────────────────── */
    .section { padding: 56px 0; }
    .oy7eez { padding: 36px 0; }
    .eue95yd3 { background: var(--bvixte); }
    .sreodin { background: var(--do0uz); }

    .a1oc3 {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      margin-bottom: 28px;
      gap: 12px;
      flex-wrap: wrap;
    }
    /* framing text around card grids so a section is never a bare grid (spec FIX-14.08 rows 46/62/72).
       Full container width (Коля 2026-08-19: was capped at 760/780px — squeezed into half the module
       on wide screens instead of running the module's full length top and bottom). */
    .b50zr { margin: -14px 0 26px; color: var(--ygti488); font-size: .95rem; line-height: 1.6; }
    .tz9sbph { margin: 24px 0 0; color: var(--ygti488); font-size: .92rem; line-height: 1.6; }
    .h8zoyc {
      font-family: var(--vqxtr72n);
      font-size: 2rem;
      font-weight: 800;
      letter-spacing: -.2px;
      line-height: 1.1;
      position: relative;
      padding-left: 14px;
    }
    .h8zoyc::before {
      content: '';
      position: absolute;
      left: 0; top: 6px; bottom: 6px;
      width: 4px;
      background: var(--l3vyu);
      border-radius: 2px;
    }
    .be20b {
      font-size: .85rem;
      font-weight: 600;
      color: var(--l3vyu);
      white-space: nowrap;
    }
    .be20b:hover { text-decoration: underline; }

    /* ─── KEY FEATURES GRID (Коля 2026-08-19: explicit column counts, not auto-fit — auto-fit's
       minmax() wraps unpredictably at in-between widths and orphans one card on its own row).
       3 deterministic layouts, one per keyfeatures variant: v1=4-across, v2=2x2, v3=3-across. ── */
    .vxsf1j0s, .smptx, .akvod92 {
      display: grid;
      gap: 18px;
    }
    .vxsf1j0s  { grid-template-columns: repeat(4, 1fr); }
    .smptx { grid-template-columns: repeat(2, 1fr); }
    .akvod92  { grid-template-columns: repeat(3, 1fr); }

    /* v5 mosaic (Коля 2026-08-20: 5 layouts per block like every other section — the three grids above
       are all EVEN column counts, so a fourth/fifth one could only ever be another column count).
       The lead card is pinned to column 1 spanning all three implicit rows, the remaining three
       auto-place down column 2 — an uneven shape no grid-template-columns value can produce.
       "span 3" (not "1 / -1"): with no explicit rows, -1 resolves to line 1 and the span collapses. */
    .p9r8fx {
      display: grid;
      grid-template-columns: 1.15fr 1fr;
      gap: 18px;
    }
    .p9r8fx > .ud59k5vb:first-child {
      grid-column: 1;
      grid-row: 1 / span 3;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .p9r8fx .bq5u0mk0 { font-size: 1.7rem; margin-bottom: 10px; }
    .p9r8fx > .ud59k5vb:first-child .bq5u0mk0 { font-size: 2.6rem; margin-bottom: 14px; }
    @media (max-width: 900px) {
      .p9r8fx { grid-template-columns: 1fr; gap: 14px; }
      .p9r8fx > .ud59k5vb:first-child { grid-column: auto; grid-row: auto; }
    }

    /* ─── SLOTS GRID ─────────────────────────────────────── */
    .fbrp6 {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
      /* Коля 2026-08-19: breathing room when more content follows (games section: bonus copy after
         the grid) — harmless when slots-grid is the last element in its own section too. */
      margin-bottom: 40px;
    }
    .ni4g7u0k {
      background: var(--do0uz);
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
      overflow: hidden;
      cursor: pointer;
      transition: transform .15s, box-shadow .15s, border-color .15s;
      position: relative;
    }
    .ni4g7u0k:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 28px rgba(0,0,0,.5), 0 0 0 1px rgba(var(--lnnefn7p),.3);
      border-color: rgba(var(--lnnefn7p),.4);
    }
    .t32v73 {
      width: 100%;
      aspect-ratio: 4/3;
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 12%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 24%, #fff) 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 2.5rem;
      position: relative;
      overflow: hidden;
    }
    .t32v73::after {
      content: 'JUGAR';
      position: absolute;
      inset: 0;
      background: rgba(var(--lnnefn7p),.7);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--l2yoi);
      font-size: 1rem;
      font-weight: 800;
      letter-spacing: 2px;
      color: #fff;
      opacity: 0;
      transition: opacity .15s;
    }
    .ni4g7u0k:hover .t32v73::after { opacity: 1; }
    .ubcb1 {
      /* base = inline pill (list/row variants where the badge is not over a thumb) */
      display: inline-block;
      font-size: .6rem;
      font-weight: 800;
      letter-spacing: .8px;
      text-transform: uppercase;
      padding: 2px 7px;
      border-radius: 3px;
      z-index: 1;
      flex-shrink: 0;
    }
    /* only overlay the thumbnail when the badge actually lives inside one */
    .t32v73 .ubcb1 {
      position: absolute;
      top: 8px; left: 8px;
    }
    .ubcb1.s0dxcnfz { background: var(--l3vyu); color: #fff; }
    .ubcb1.new { background: var(--rhcmg6d); color: #fff; }
    .ubcb1.s3zfps { background: var(--duwiia9); color: #000; }
    .vjvqjx47 {
      padding: 10px 12px;
    }
    .lk39x {
      font-size: .82rem;
      font-weight: 700;
      color: var(--nr1xfya);
      margin-bottom: 2px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .aqbo1ty6 {
      font-size: .68rem;
      color: var(--ygti488);
    }
    .g9g6k5 {
      font-size: .68rem;
      color: var(--l3vyu);
      font-weight: 600;
      float: right;
    }

    /* ─── PROS / CONS ────────────────────────────────────── */
    .w9tt9 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .qou0m {
      background: var(--bvixte);
      border: 1px solid #E2E6F0;
      border-radius: var(--y5a31f5);
      padding: 24px;
      box-shadow: 0 2px 12px rgba(0,0,0,.06);
    }
    .qou0m.po1ipf { border-top: 3px solid var(--l3vyu); }
    .qou0m.gng1v9 { border-top: 3px solid var(--v6dr76); }
    .n0cct {
      display: flex;
      align-items: center;
      gap: 8px;
      font-family: var(--vqxtr72n);
      font-size: 1.2rem;
      font-weight: 800;
      margin-bottom: 18px;
    }
    .n0cct .bzb3y {
      width: 28px; height: 28px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .85rem;
      flex-shrink: 0;
    }
    .po1ipf .bzb3y { background: rgba(var(--lnnefn7p),.15); color: var(--l3vyu); }
    .gng1v9 .bzb3y { background: var(--do0uz); color: var(--ygti488); }
    .eaiw91t {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .eaiw91t li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: .88rem;
      color: var(--yfbjxig);
      line-height: 1.5;
    }
    .eaiw91t li .kedo8ul {
      width: 18px; height: 18px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .65rem;
      flex-shrink: 0;
      margin-top: 2px;
    }
    .po1ipf .kedo8ul { background: rgba(var(--lnnefn7p),.15); color: var(--l3vyu); }
    .gng1v9 .kedo8ul { background: var(--do0uz); color: var(--ygti488); }

    /* ─── CARD (generic) ─────────────────────────────────── */
    .card {
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
      box-shadow: var(--v00pviv);
      overflow: hidden;
    }
    .h4enw8w { padding: 20px 24px; }

    /* ─── INFO GRID ──────────────────────────────────────── */
    .ts0ej086 {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
    }
    .kgihatd {
      background: var(--bvixte);
      border: 1px solid #E2E6F0;
      border-radius: var(--y5a31f5);
      padding: 22px 20px 18px;
      box-shadow: 0 2px 8px rgba(0,0,0,.05);
      display: flex;
      flex-direction: column;
      gap: 0;
      position: relative;
      overflow: hidden;
      transition: transform .15s, box-shadow .15s;
    }
    .kgihatd::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, var(--l3vyu), var(--duwiia9));
    }
    .kgihatd:hover { transform: translateY(-2px); box-shadow: var(--eo67e); }
    .cm13g { font-size: 1.4rem; margin-bottom: 12px; }
    .oij9w5u {
      font-size: .62rem;
      font-weight: 800;
      letter-spacing: 1.2px;
      text-transform: uppercase;
      color: var(--ygti488);
      margin-bottom: 6px;
    }
    .vmgt95 {
      font-family: var(--vqxtr72n);
      font-size: 2.4rem;
      font-weight: 800;
      line-height: 1;
      color: var(--nr1xfya);
      margin-bottom: 4px;
      letter-spacing: -1px;
    }
    .es2ksk6 {
      font-size: .75rem;
      color: var(--ygti488);
      line-height: 1.4;
    }

    /* ─── BANNER / CTA STRIP ─────────────────────────────── */
    .rpg9tm43 {
      background: var(--yp3rtkz7);
      border-top: 1px solid var(--v6dr76);
      border-bottom: 1px solid var(--v6dr76);
    }
    .g4u8qc { display: block; }
    .pocxf9f {
      width: 100%;
      min-height: 90px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 16px 28px;
      border: 2px dashed var(--v6dr76);
      cursor: pointer;
      transition: border-color .15s;
      background: var(--do0uz);
      position: relative;
    }
    .pocxf9f:hover { border-color: rgba(var(--lnnefn7p),.4); }
    .riax56 { display: flex; align-items: center; gap: 10px; }
    .mst9ex { font-size: 1.4rem; opacity: .4; }
    .fypt9k { font-size: .8rem; font-weight: 600; color: var(--ygti488); }
    .v1zh8eev { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
    .hz47a {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 9px 20px; border-radius: var(--il3tyi6u);
      font-size: .85rem; font-weight: 700;
      white-space: nowrap;
      transition: filter .15s, transform .1s;
      text-decoration: none;
    }
    .hz47a:hover { filter: brightness(1.08); transform: translateY(-1px); }
    .t8mnincq { background: var(--l3vyu); color: #fff; }
    .b2lc5k2w { background: transparent; color: var(--l3vyu); border: 1.5px solid var(--l3vyu); }
    .b2lc5k2w:hover { background: rgba(var(--lnnefn7p),.1); }

    /* ─── ARTICLE IMAGE ──────────────────────────────────── */
    .pi467 { margin: 24px 0 28px; }
    .ac7sg2 {
      width: 100%; height: 280px;
      background: var(--do0uz);
      border: 2px dashed #D1D5E8;
      border-radius: var(--m9wyy);
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      gap: 8px; cursor: pointer;
      transition: border-color .15s;
    }
    .ac7sg2:hover { border-color: rgba(var(--lnnefn7p),.4); }
    .ac7sg2 .mst9ex { font-size: 2rem; }
    .ac7sg2 .fypt9k { font-size: .8rem; }
    .js9btr { width: 100%; height: 280px; object-fit: cover; border-radius: var(--m9wyy); display: block; }
    .nw55f { font-size: .75rem; color: var(--ygti488); margin-top: 8px; font-style: italic; }
    /* HOME INTRO: the themed photo floats inside the copy so the text wraps around it. A flex
       two-column layout here left a tall empty gutter under the picture (spec FIX-14.08 row 67). */
    /* selector carries .h915cuqm too: the generic .h915cuqm rule (width:100%; aspect-ratio)
       is declared later in this file and would otherwise win and stretch the photo full width. */
    .llvzxg { max-width: 1060px; margin: 0 auto; }
    .llvzxg::after { content: ""; display: block; clear: both; }
    .llvzxg .h915cuqm.wrj3tz {
      float: right;
      width: min(42%, 430px);
      aspect-ratio: auto;
      height: 320px;
      margin: 4px 0 18px 34px;
      border-radius: 16px;
    }
    @media (max-width: 720px) {
      .llvzxg .h915cuqm.wrj3tz { float: none; width: 100%; height: 210px; margin: 0 0 20px; }
    }

    /* float article images so the prose wraps around them — no empty gutter beside the image (spec FIX-14.08 row 67) */
    .prose .pi467.t8469a { width: min(44%, 360px); margin-top: 4px; margin-bottom: 14px; }
    .prose .pi467.t1l5k1e { float: right; margin-left: 28px; }
    .prose .pi467.wh0nxx49  { float: left;  margin-right: 28px; }
    .prose .t8469a .ac7sg2 { height: 210px; }
    /* full-width blocks clear the float so they never collide with a wrapped image */
    .qh9xmk, .prose-cta, .prose-cta-dark, .xj220, .jj3kb, .v7e779xi, .u05okcr { clear: both; }
    @media (max-width: 720px) {
      .prose .pi467.t8469a { float: none; width: 100%; margin: 22px 0 26px; }
      .prose .t8469a .ac7sg2 { height: 200px; }
    }

    /* ─── PROSE ──────────────────────────────────────────── */
    .prose { max-width: 100%; }
    /* Коля (live review), final: do NOT clear headings at all. Any clear — both or left — drops the
       heading below the photo and leaves the space next to it empty, which is what he rejected.
       The copy must keep wrapping around the picture; the picture simply starts LOWER so it never
       collides with a heading. That offset lives on .v0ksj4w/-right below. */
    .prose h2 {
      font-family: var(--vqxtr72n);
      font-size: 1.7rem; font-weight: 800;
      margin: 36px 0 12px; line-height: 1.15;
      color: var(--nr1xfya);
    }
    .prose h3 {
      font-family: var(--vqxtr72n);
      font-size: 1.25rem; font-weight: 700;
      margin: 28px 0 10px; line-height: 1.2;
      color: var(--nr1xfya);
    }
    .prose h4 { font-size: 1rem; font-weight: 700; margin: 20px 0 8px; color: var(--nr1xfya); }
    .prose p { color: var(--yfbjxig); margin-bottom: 16px; line-height: 1.75; }
    .prose ul {
      list-style: none; margin: 0 0 18px; padding: 0;
      display: flex; flex-direction: column; gap: 6px;
    }
    .prose ul li {
      padding-left: 22px; position: relative;
      color: var(--yfbjxig); line-height: 1.6;
    }
    .prose ul li::before {
      content: '';
      position: absolute; left: 6px; top: 10px;
      width: 6px; height: 6px;
      border-radius: 50%; background: var(--l3vyu);
    }
    .prose ol {
      counter-reset: ol-counter; list-style: none;
      margin: 0 0 18px; padding: 0;
      display: flex; flex-direction: column; gap: 8px;
    }
    .prose ol li {
      counter-increment: ol-counter;
      padding-left: 36px; position: relative;
      color: var(--yfbjxig); line-height: 1.6;
    }
    .prose ol li::before {
      content: counter(ol-counter);
      position: absolute; left: 0; top: 0;
      width: 24px; height: 24px;
      background: var(--l3vyu); color: #fff;
      font-size: .75rem; font-weight: 700;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
    }
    .prose strong { font-weight: 700; color: var(--nr1xfya); }
    .prose a { color: var(--l3vyu); text-decoration: underline; }

    /* ─── PROSE TABLE ────────────────────────────────────── */
    .qh9xmk {
      overflow-x: auto; margin: 20px 0 24px;
      border-radius: var(--m9wyy);
      border: 1px solid var(--v6dr76);
      box-shadow: var(--v00pviv);
    }
    .iyij1 { width: 100%; border-collapse: collapse; background: var(--bvixte); font-size: .875rem; }
    .iyij1 thead tr { background: var(--nhupr); }
    .iyij1 thead th {
      padding: 10px 16px; text-align: left;
      font-size: .68rem; font-weight: 800; letter-spacing: 1px;
      text-transform: uppercase; color: var(--ygti488);
      border-bottom: 1px solid var(--v6dr76);
      white-space: nowrap;
    }
    .iyij1 tbody tr { border-bottom: 1px solid var(--v6dr76); transition: background .12s; }
    .iyij1 tbody tr:first-child { background: var(--do0uz); }
    .iyij1 tbody tr:first-child td { font-weight: 600; }
    .iyij1 tbody tr:last-child { border-bottom: none; }
    .iyij1 tbody tr:hover { background: var(--do0uz); }
    .iyij1 tbody td { padding: 11px 16px; vertical-align: middle; color: var(--yfbjxig); }
    .dv1wwwtr {
      display: inline-block; padding: 2px 10px;
      border-radius: 20px; font-size: .78rem; font-weight: 700;
    }
    .dv1wwwtr.accent { background: var(--l3vyu); color: #fff; }
    .dv1wwwtr.gfigg { background: var(--duwiia9); color: #000; }

    /* ─── PROSE PROS & CONS (2nd-level topic pros/cons — spec FIX-14.08 row 63) ─── */
    .u05okcr { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 22px 0 26px; }
    .u05okcr .yw08n { background: var(--do0uz); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); padding: 16px 20px; }
    .u05okcr .xdxkhve { border-top: 3px solid var(--lejvdaa3); }
    .u05okcr .rmbvv { border-top: 3px solid #E5484D; }
    .u05okcr .ghw27ua { font-weight: 700; font-size: .95rem; margin-bottom: 8px; }
    .u05okcr h4 { font-family: var(--vqxtr72n); font-size: 1rem; margin: 0 0 10px; }
    .u05okcr ul { list-style: none; margin: 0; padding: 0; }
    .u05okcr li { font-size: .875rem; color: var(--yfbjxig); padding: 6px 0 6px 20px; position: relative; }
    .u05okcr .xdxkhve li::before { content: "+"; position: absolute; left: 2px; color: var(--lejvdaa3); font-weight: 700; }
    .u05okcr .rmbvv li::before { content: "\2013"; position: absolute; left: 2px; color: var(--ygti488); font-weight: 700; }
    @media (max-width: 640px) { .u05okcr { grid-template-columns: 1fr; } }

    /* ─── PROSE CTA ──────────────────────────────────────── */
    .prose-cta {
      margin: 28px 0;
      background: linear-gradient(135deg, rgba(var(--lnnefn7p),.12), rgba(var(--lnnefn7p),.06));
      border: 1px solid rgba(var(--lnnefn7p),.25);
      border-left: 4px solid var(--l3vyu);
      border-radius: var(--m9wyy);
      padding: 20px 24px;
    }
    .p6nb3 {
      display: flex; align-items: center;
      justify-content: space-between;
      gap: 20px; flex-wrap: wrap;
    }
    .ddexgyvy { display: flex; flex-direction: column; gap: 4px; }
    .ddexgyvy strong { font-size: 1rem; font-weight: 700; color: var(--nr1xfya); }
    .ddexgyvy span { font-size: .8rem; color: var(--ygti488); }
    .klesf {
      background: var(--l3vyu); color: #fff !important;
      padding: 11px 24px; border-radius: var(--il3tyi6u);
      font-size: .9rem; font-weight: 700;
      font-family: var(--hht9z1);
      white-space: nowrap; text-decoration: none !important;
      display: inline-flex; align-items: center; gap: 6px;
      transition: filter .15s, transform .1s; flex-shrink: 0; line-height: 1.4;
    }
    .klesf:hover { filter: brightness(1.1); transform: translateY(-1px); }

    /* ─── PROSE CTA DARK ─────────────────────────────────── */
    .prose-cta-dark {
      margin: 20px 0 28px;
      background: linear-gradient(135deg, var(--nhupr), var(--daxqh));
      border: 1px solid rgba(var(--lnnefn7p),.3);
      border-radius: var(--m9wyy);
      padding: 24px 28px;
      display: flex; align-items: center;
      justify-content: space-between;
      gap: 24px; flex-wrap: wrap;
      position: relative; overflow: hidden;
    }
    .prose-cta-dark::after {
      content: '🎰';
      position: absolute; right: 140px; top: 50%;
      transform: translateY(-50%);
      font-size: 5rem; opacity: .06;
      pointer-events: none;
    }
    .sutjdije { display: flex; flex-direction: column; gap: 5px; }
    .o6umey {
      font-size: .68rem; font-weight: 700; letter-spacing: 1px;
      text-transform: uppercase; color: rgba(255,255,255,.5);
    }
    .dgklt5xp {
      font-family: var(--vqxtr72n); font-size: 1.3rem;
      font-weight: 800; color: #fff; line-height: 1.2;
    }
    .tdzgu { font-size: .75rem; color: rgba(255,255,255,.4); }
    .d34ujr0n {
      background: linear-gradient(135deg, var(--l3vyu), var(--rhcmg6d));
      color: #fff !important;
      padding: 12px 26px; border-radius: var(--il3tyi6u);
      font-size: .9rem; font-weight: 700;
      font-family: var(--hht9z1);
      white-space: nowrap; text-decoration: none !important;
      display: inline-flex; align-items: center; flex-shrink: 0;
      transition: filter .15s, transform .1s; line-height: 1.4;
      position: relative; z-index: 1;
      box-shadow: 0 4px 16px rgba(var(--lnnefn7p),.4);
    }
    .d34ujr0n:hover { filter: brightness(1.1); transform: translateY(-1px); }

    /* ─── FOOTER ─────────────────────────────────────────── */
    .pv9q3k {
      background: var(--nhupr);
      border-top: 1px solid var(--v6dr76);
      color: rgba(255,255,255,.55);
      padding: 48px 0 0;
    }
    .k171yom0 {
      display: grid;
      grid-template-columns: 2.2fr 1fr 1fr 1fr;
      gap: 36px;
      margin-bottom: 40px;
    }
    .t2rgzw {
      font-family: var(--l2yoi);
      font-size: 1.4rem; font-weight: 800;
      color: #fff; margin-bottom: 10px;
    }
    .zkb8wj { height: 26px; width: auto; display: block; margin-bottom: 10px; }
    .bjxh84 { font-size: .82rem; line-height: 1.65; max-width: 260px; }
    .pufzb0p {
      font-size: .68rem; font-weight: 800; letter-spacing: 1.2px;
      text-transform: uppercase; color: rgba(255,255,255,.3);
      margin-bottom: 14px;
    }
    .v88bmnlh { list-style: none; display: flex; flex-direction: column; gap: 9px; }
    .v88bmnlh a {
      font-size: .82rem; color: rgba(255,255,255,.5);
      transition: color .15s;
    }
    .v88bmnlh a:hover { color: #fff; }

    /* Footer payments row */
    .ge18lvb4 {
      border-top: 1px solid var(--v6dr76);
      padding: 24px 0;
    }
    .t9762ese {
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 20px;
    }
    .bwks1m { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .ybrccwy {
      font-size: .65rem; font-weight: 700; letter-spacing: 1px;
      text-transform: uppercase; color: rgba(255,255,255,.25);
      margin-right: 4px; white-space: nowrap;
    }
    /* Payment logo placeholders — replace with <img> */
    .j2bcqybr {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 28px;
      padding: 0 12px;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 5px;
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .5px;
      color: rgba(255,255,255,.5);
      white-space: nowrap;
      transition: border-color .15s, color .15s;
    }
    .j2bcqybr:hover { border-color: rgba(255,255,255,.25); color: rgba(255,255,255,.8); }
    .j2bcqybr img { height: 16px; width: auto; opacity: .6; transition: opacity .15s; }
    .j2bcqybr:hover img { opacity: 1; }

    /* Footer bottom */
    .n5ei5se {
      border-top: 1px solid var(--v6dr76);
      padding: 20px 0;
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      flex-wrap: wrap;
      gap: 16px;
      font-size: .75rem;
      color: rgba(255,255,255,.25);
    }
    .nwahz { max-width: 600px; line-height: 1.6; }
    .x37gr { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
    .mr8os5 {
      display: inline-flex; align-items: center; gap: 5px;
      font-size: .65rem; font-weight: 700; letter-spacing: .5px;
      color: rgba(255,255,255,.5);
      border: 1px solid rgba(255,255,255,.15);
      padding: 4px 10px; border-radius: 4px;
    }

    /* ─── SPLIT BLOCK ────────────────────────────────────── */
    .m442q { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: start; }
    .imk4f7w { display: flex; flex-direction: column; }
    .elo5cxce { width: 100%; }
    .da2kvo { height: 240px !important; }
    .zzr7n { display: flex; flex-direction: column; gap: 0; padding-top: 4px; }
    .zzr7n p { margin-bottom: 14px; }
    .zzr7n ul { margin-bottom: 0; }

    /* ─── RESPONSIBLE GAMBLING ───────────────────────────── */
    .vmx30wcl {
      background: var(--yp3rtkz7);
      border-top: 1px solid #E2E6F0;
      padding: 10px 0;
    }
    .o08ak {
      display: flex;
      align-items: center;
      gap: 16px;
      flex-wrap: wrap;
    }
    .pva6y {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: .68rem;
      font-weight: 700;
      color: rgba(255,255,255,.35);
      white-space: nowrap;
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 4px;
      padding: 3px 10px;
    }
    .c95py {
      font-size: .68rem;
      color: rgba(255,255,255,.25);
      line-height: 1.4;
    }

    /* ═══════════════════════════════════════════════════════
       RESPONSIVE — single consolidated block
    ════════════════════════════════════════════════════════ */

    /* ── 1280px: slight slot reduction ── */
    @media (max-width: 1280px) {
      .fbrp6 { grid-template-columns: repeat(5, 1fr); }
    }

    /* ── 1024px: tablet landscape ── */
    @media (max-width: 1024px) {
      .fbrp6   { grid-template-columns: repeat(4, 1fr); }
      .k171yom0  { grid-template-columns: 1fr 1fr; gap: 28px; }
      .ts0ej086    { grid-template-columns: repeat(2, 1fr); }
      .gc697 { grid-template-columns: 1fr 1fr; }
      .vxsf1j0s, .akvod92 { grid-template-columns: repeat(2, 1fr); }
      .ojas8i  { gap: 32px; }
    }

    /* ── Nav collapse → burger. The full desktop nav (logo + 5 dropdowns + Mobile App + 2 auth
       buttons) is wide; below this width it would overflow/wrap, so switch to the mobile drawer
       BEFORE that happens rather than letting the auth buttons drop to a second row. ── */
    @media (max-width: 1180px) {
      .c1wel4v  { display: none; }
      .f28bq     { display: none; }
      .burger       { display: flex; }
    }

    /* ── 768px: tablet portrait ── */
    @media (max-width: 768px) {
      .top-bar      { display: none; }

      /* Hero */
      .hero         { padding: 40px 0 36px; }
      .ojas8i  { grid-template-columns: 1fr; gap: 28px; }
      .itorn8 { display: none; }
      .hero h1      { font-size: clamp(1.9rem, 5vw, 3rem); }

      /* Trust strip */
      .aaibpqvg   { flex-wrap: wrap; }
      .w2s3cz   {
        flex: 0 0 50%;
        border-right: none;
        border-bottom: 1px solid var(--v6dr76);
      }
      .w2s3cz:nth-child(odd) { border-right: 1px solid var(--v6dr76); }
      .w2s3cz:last-child     { border-bottom: none; }

      /* Grids */
      .ts0ej086      { grid-template-columns: 1fr 1fr; gap: 12px; }
      .fbrp6     { grid-template-columns: repeat(3, 1fr); gap: 10px; }
      .w9tt9  { grid-template-columns: 1fr; gap: 14px; }
      .gc697 { grid-template-columns: 1fr; gap: 14px; }
      .vxsf1j0s, .smptx, .akvod92 { grid-template-columns: 1fr 1fr; gap: 14px; }
      .m442q    { grid-template-columns: 1fr; gap: 20px; }

      /* Footer */
      .k171yom0    { grid-template-columns: 1fr; gap: 24px; }
      .bjxh84    { max-width: 100%; }
      .t9762ese { flex-direction: column; align-items: flex-start; gap: 14px; }

      /* Misc */
      .section        { padding: 36px 0; }
      .oy7eez     { padding: 24px 0; }
      .ac7sg2 { height: 200px; }
      .js9btr    { height: 200px; }
      .eyzqr9       { max-width: 100%; }

      /* Sticky bar */
      .rwflyry7 { display: none; }
    }

    /* ── 600px: large mobile ── */
    @media (max-width: 600px) {
      .fbrp6   { grid-template-columns: repeat(2, 1fr); gap: 8px; }
      .ts0ej086    { grid-template-columns: 1fr 1fr; gap: 10px; }

      /* Sticky bar */
      .at1smy30  { display: none; }
      .x1ds4fsl    { flex: 1; justify-content: center; }

      .v1zh8eev    { display: none; }
      .p6nb3   { flex-direction: column; align-items: flex-start; }
      .klesf     { width: 100%; justify-content: center; }
      .prose-cta-dark    { flex-direction: column; }
      .d34ujr0n { width: 100%; justify-content: center; }

      .bwks1m { gap: 6px; }
      .j2bcqybr { padding: 0 8px; font-size: .65rem; }
    }

    /* ── 480px: small mobile ── */
    /* Live/providers 2-col on tablet */
    @media (max-width: 768px) {
      .sp7ey9h { display: none; }
      div[style*="grid-template-columns:1fr 1fr;gap:32px"] { grid-template-columns: 1fr !important; }
    }
    @media (max-width: 480px) {
      .hero         { padding: 28px 0 28px; }
      .hero h1      { font-size: 1.8rem; }
      .pt7268v { flex-direction: column; }
      .btn          { justify-content: center; width: 100%; }

      .ts0ej086    { grid-template-columns: 1fr; gap: 10px; }
      .fbrp6   { grid-template-columns: repeat(2, 1fr); gap: 8px; }
      .t32v73   { aspect-ratio: 1/1; font-size: 2rem; }

      .w2s3cz   { flex: 0 0 100%; border-right: none; }
      .w2s3cz:nth-child(odd) { border-right: none; }

      .h8zoyc { font-size: 1.5rem; }
      .faq-question  { font-size: .9rem; padding: 14px 16px; }
      .faq-answer    { padding: 0 16px 14px; }

      .itorn8 { display: none; }
      .gc697  { grid-template-columns: 1fr; }
      .vxsf1j0s, .smptx, .akvod92 { grid-template-columns: 1fr; gap: 12px; }
    }

    /* ─── SOLUTIONS SECTION ──────────────────────────────── */
    .gc697 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    .kp4dhoe {
      background: var(--bvixte);
      border: 1px solid #E2E6F0;
      border-radius: var(--y5a31f5);
      padding: 0;
      overflow: hidden;
      transition: transform .15s, box-shadow .15s, border-color .15s;
      box-shadow: 0 2px 8px rgba(0,0,0,.06);
    }
    .kp4dhoe:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 32px rgba(var(--lnnefn7p),.12);
      border-color: rgba(var(--lnnefn7p),.3);
    }
    .a4bw77 {
      width: 100%;
      aspect-ratio: 16/9;
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 20%, #fff) 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 3.5rem;
      position: relative;
      overflow: hidden;
    }
    .a4bw77::before { display: none; }
    .smtudwoh {
      padding: 20px 22px 22px;
    }
    .prwkd9p {
      font-family: var(--vqxtr72n);
      font-size: 1.05rem;
      font-weight: 900;
      color: var(--nr1xfya);
      margin-bottom: 8px;
      text-transform: uppercase;
      letter-spacing: .5px;
    }
    .qu9l4w {
      font-size: .85rem;
      color: var(--ygti488);
      line-height: 1.6;
    }
    .bqxjdwi {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: .8rem;
      font-weight: 700;
      color: var(--l3vyu);
      margin-top: 12px;
      transition: gap .15s;
    }
    .bqxjdwi:hover { gap: 8px; }

    /* ─── FAQ ────────────────────────────────────────────── */
    .eyzqr9 {
      display: flex;
      flex-direction: column;
      gap: 8px;
      max-width: 820px;
      margin: 0 auto;
    }
    .cx0gcg2 {
      background: var(--bvixte);
      border: 1px solid #E2E6F0;
      border-radius: var(--m9wyy);
      overflow: hidden;
      box-shadow: 0 1px 4px rgba(0,0,0,.05);
    }
    .faq-question {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px 22px;
      background: transparent;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: var(--vqxtr72n);
      font-size: 1rem;
      font-weight: 900;
      color: var(--nr1xfya);
      transition: background .15s;
      font-style: italic;
    }
    .faq-question:hover { background: var(--do0uz); }
    .faq-question[aria-expanded="true"] { color: var(--l3vyu); }
    /* toggle affordance drawn as a CSS chevron (spec FIX-14.08 row 68: no literal "+" glued to the
       question text — the indicator is a pseudo-element, so the <h3> reads clean for SEO/screen-readers). */
    .faq-question::after {
      content: "";
      width: 10px; height: 10px;
      flex-shrink: 0;
      margin-left: 12px;
      margin-top: -3px;
      border-right: 2px solid var(--l3vyu);
      border-bottom: 2px solid var(--l3vyu);
      transform: rotate(45deg);
      transition: transform .25s, margin-top .25s;
    }
    .faq-question[aria-expanded="true"]::after {
      transform: rotate(-135deg);
      margin-top: 3px;
    }
    .faq-answer {
      display: none;
      padding: 0 22px 18px;
      font-size: .9rem;
      color: var(--yfbjxig);
      line-height: 1.7;
      border-top: 1px solid #F0F2F8;
    }
    .faq-answer.open { display: block; }

    /* ─── STICKY BOTTOM BAR ──────────────────────────────── */
    .sticky-bar {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      background: var(--daxqh);
      border-top: 1px solid rgba(255,255,255,.08);
      z-index: 200;
      padding: 10px 0;
      box-shadow: 0 -4px 24px rgba(0,0,0,.35);
    }
    .dwosfm {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }
    .exv0a {
      font-family: var(--vqxtr72n);
      font-size: 1.4rem;
      font-weight: 900;
      font-style: italic;
      color: #fff;
      flex-shrink: 0;
    }
    .pm0jp { height: 24px; width: auto; display: block; flex-shrink: 0; }
    .rwflyry7 {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 2px;
      flex-shrink: 0;
    }
    .ehshp {
      font-size: .6rem;
      font-weight: 700;
      letter-spacing: .8px;
      text-transform: uppercase;
      color: rgba(255,255,255,.4);
    }
    .etr1y8x {
      font-size: .85rem;
      letter-spacing: 1px;
      color: var(--duwiia9);
    }
    .yht0jxx {
      font-size: .72rem;
      font-weight: 700;
      color: rgba(255,255,255,.6);
    }
    .at1smy30 {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: .9rem;
      color: rgba(255,255,255,.75);
    }
    .at1smy30 strong {
      color: var(--l3vyu);
      font-weight: 700;
    }
    .x1ds4fsl {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: var(--l3vyu);
      color: #fff;
      padding: 10px 28px;
      border-radius: var(--il3tyi6u);
      font-size: .9rem;
      font-weight: 700;
      white-space: nowrap;
      text-decoration: none;
      box-shadow: 0 0 16px rgba(var(--lnnefn7p),.4);
      transition: filter .15s, transform .1s;
      flex-shrink: 0;
    }
    .x1ds4fsl:hover { filter: brightness(1.1); transform: translateY(-1px); }
    .tqoppo {
      background: none;
      border: none;
      color: rgba(255,255,255,.3);
      font-size: 1.1rem;
      cursor: pointer;
      padding: 4px 6px;
      line-height: 1;
      flex-shrink: 0;
      transition: color .15s;
    }
    .tqoppo:hover { color: rgba(255,255,255,.7); }
    /* Push page content above sticky bar */
    body.has-sticky-bar { padding-bottom: 64px; }



    /* ─── VIP LEVELS ─────────────────────────────────────── */
    .d5cwg {
      display: flex;
      gap: 0;
      position: relative;
    }
    .d5cwg::before {
      content: '';
      position: absolute;
      top: 28px; left: 10%; right: 10%;
      height: 2px;
      background: linear-gradient(90deg, #C0A060, #E8C86A, var(--l3vyu), var(--l3vyu));
      z-index: 0;
    }
    .p0tmgl {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      position: relative;
      z-index: 1;
    }
    .nel51 {
      width: 56px; height: 56px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.5rem;
      border: 3px solid transparent;
      box-shadow: 0 2px 12px rgba(0,0,0,.15);
      background: #fff;
      transition: transform .2s;
    }
    .p0tmgl:hover .nel51 { transform: scale(1.12); }
    .p0tmgl.jj1znp .nel51 { border-color: #CD7F32; background: linear-gradient(135deg,#FDF0E0,#fff); }
    .p0tmgl.ikmmmet .nel51 { border-color: #A0A0A0; background: linear-gradient(135deg,#F0F0F0,#fff); }
    .p0tmgl.gfigg   .nel51 { border-color: var(--duwiia9); background: linear-gradient(135deg,#FFFBE8,#fff); }
    .p0tmgl.k7mqp31t .nel51 { border-color: var(--l3vyu); background: linear-gradient(135deg,#F5F0FF,#fff); }
    .p0tmgl.gthtte  .nel51 { border-color: var(--l3vyu); background: linear-gradient(135deg,#E0F9FF,#fff); }
    .bl86rli {
      font-family: var(--vqxtr72n);
      font-size: .85rem;
      font-weight: 900;
      color: var(--nr1xfya);
      text-align: center;
    }
    .cel29wu4 {
      font-size: .72rem;
      color: var(--ygti488);
      text-align: center;
      line-height: 1.4;
      max-width: 90px;
    }
    @media (max-width: 600px) {
      .d5cwg { flex-wrap: wrap; gap: 20px; }
      .d5cwg::before { display: none; }
      .p0tmgl { flex: 0 0 calc(50% - 10px); }
    }

    /* ─── PROVIDERS CAROUSEL ─────────────────────────────── */
    .if2hrl {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }
    .s7oju {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 18px;
      background: var(--bvixte);
      border: 1px solid #E2E6F0;
      border-radius: 40px;
      font-size: .82rem;
      font-weight: 600;
      color: var(--nr1xfya);
      cursor: pointer;
      transition: border-color .15s, box-shadow .15s, transform .12s;
      box-shadow: 0 1px 4px rgba(0,0,0,.06);
    }
    .s7oju:hover {
      border-color: var(--l3vyu);
      box-shadow: 0 0 0 3px rgba(var(--lnnefn7p),.1);
      transform: translateY(-1px);
    }
    .t3lky20j { font-size: 1.1rem; }
    .hkzjz3 {
      font-size: .7rem;
      font-weight: 700;
      color: var(--l3vyu);
      background: rgba(var(--lnnefn7p),.1);
      padding: 1px 6px;
      border-radius: 10px;
    }

    /* ─── PAYMENT METHODS GRID ───────────────────────────── */
    .ib3bxxe {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
    }
    .tut2qucu {
      background: var(--bvixte);
      border: 1px solid #E2E6F0;
      border-radius: var(--m9wyy);
      padding: 18px 14px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      text-align: center;
      cursor: pointer;
      transition: border-color .15s, box-shadow .15s, transform .12s;
      box-shadow: 0 1px 4px rgba(0,0,0,.05);
    }
    .tut2qucu:hover {
      border-color: var(--l3vyu);
      box-shadow: 0 4px 16px rgba(var(--lnnefn7p),.1);
      transform: translateY(-2px);
    }
    .srq61d { font-size: 2rem; }
    .qq26oti {
      font-size: .78rem;
      font-weight: 700;
      color: var(--nr1xfya);
    }
    .wfdarhd {
      font-size: .68rem;
      color: var(--l3vyu);
      font-weight: 600;
    }
    .vw7rb {
      font-size: .65rem;
      color: #9CA3AF;
    }
    @media (max-width: 768px) {
      .ib3bxxe { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 480px) {
      .ib3bxxe { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    }

    /* ─── HOW TO PLAY STEPS ──────────────────────────────── */
    .tipyz7d4 {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      position: relative;
    }
    .tipyz7d4.glc6k::before {
      content: '';
      position: absolute;
      top: 30px; left: 12.5%; right: 12.5%;
      height: 2px;
      background: linear-gradient(90deg, var(--l3vyu), rgba(var(--lnnefn7p),.2));
      z-index: 0;
    }
    /* 2x2 grid: connector line inside EACH row (1→2 and 3→4) */
    .tipyz7d4.y9pmtohu .fevaiqk:nth-child(odd)::after {
      content: '';
      position: absolute;
      top: 30px;
      left: calc(50% + 30px);
      width: calc(100% - 60px);
      height: 2px;
      background: linear-gradient(90deg, var(--l3vyu), rgba(var(--lnnefn7p),.15));
      z-index: 0;
    }
    .fevaiqk {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 16px;
      padding: 0 16px;
      position: relative;
      z-index: 1;
    }
    .ny2u8p {
      width: 60px; height: 60px;
      border-radius: 50%;
      background: var(--bvixte);
      border: 2px solid var(--l3vyu);
      display: flex; align-items: center; justify-content: center;
      font-family: var(--vqxtr72n);
      font-size: 1.5rem;
      font-weight: 900;
      color: var(--l3vyu);
      box-shadow: 0 0 0 6px rgba(var(--lnnefn7p),.08);
    }
    .q625wo4b {
      font-family: var(--vqxtr72n);
      font-size: 1rem;
      font-weight: 900;
      color: var(--nr1xfya);
      text-align: center;
      line-height: 1.2;
    }
    .hxawf {
      font-size: .8rem;
      color: var(--ygti488);
      text-align: center;
      line-height: 1.5;
    }
    .jd5fth { font-size: 1.6rem; }
    @media (max-width: 768px) {
      .tipyz7d4 { grid-template-columns: 1fr 1fr; gap: 32px; }
      .tipyz7d4::before { display: none; }
      .tipyz7d4.y9pmtohu .fevaiqk::after { display: none; }
    }
    @media (max-width: 480px) {
      .tipyz7d4 { grid-template-columns: 1fr; gap: 24px; }
    }

    /* ─── LIVE TICKER ────────────────────────────────────── */
    .d6apah {
      background: var(--daxqh);
      border-radius: var(--m9wyy);
      overflow: hidden;
    }
    .clejmqz {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 12px 20px;
      border-bottom: 1px solid rgba(255,255,255,.08);
    }
    .drl70 {
      width: 8px; height: 8px;
      border-radius: 50%;
      background: var(--l3vyu);
      animation: pulse-dot 1.5s ease-in-out infinite;
    }
    @keyframes pulse-dot {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: .5; transform: scale(.8); }
    }
    .qyo669b {
      font-size: .78rem;
      font-weight: 700;
      color: rgba(255,255,255,.7);
      text-transform: uppercase;
      letter-spacing: .8px;
    }
    .eqydmyp {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .ui7atd0 {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 10px 20px;
      border-bottom: 1px solid rgba(255,255,255,.04);
      transition: background .15s;
    }
    .ui7atd0:hover { background: rgba(255,255,255,.03); }
    .vpm7f { display: flex; align-items: center; gap: 10px; }
    .s6dwv {
      width: 30px; height: 30px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--l3vyu), var(--l3vyu));
      display: flex; align-items: center; justify-content: center;
      font-size: .75rem; font-weight: 700; color: #fff;
      flex-shrink: 0;
    }
    .o87j95 { font-size: .8rem; color: rgba(255,255,255,.6); }
    .eciwi7ow { font-size: .72rem; color: rgba(255,255,255,.35); }
    .bvgcwz3 {
      font-family: var(--vqxtr72n);
      font-size: 1rem;
      font-weight: 900;
      color: var(--l3vyu);
    }
    .ugvaz0 {
      font-size: .72rem;
      font-weight: 700;
      color: var(--duwiia9);
    }

    /* ─── IMAGE PLACEHOLDERS ─────────────────────────────── */
    .is0qells {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(135deg, #E8E4F5 0%, color-mix(in srgb, var(--l3vyu) 20%, #fff) 100%);
      /* swap for real image: background: url('...') center/cover no-repeat; */
    }
    /* Real image usage: add class slot-img-real + style="background-image:url(...)" */
    .ni4g7u0k .t32v73 {
      position: relative;
      overflow: hidden;
    }

    .qfaprm05 {
      width: 40px;
      height: 40px;
      border-radius: var(--il3tyi6u);
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff), #D4CCF0);
      /* swap: background: url('...') center/cover no-repeat; */
    }
    .cm13g {
      margin-bottom: 12px;
      display: flex;
    }

    /* ─── ARTICLE IMAGE PLACEHOLDER ─────────────────────── */
    .ac7sg2 {
      position: relative;
    }
    .nu5rakx {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
    }
    .vya09ge {
      font-size: 1.6rem;
      opacity: .35;
    }
    .lkro1 {
      font-size: .72rem;
      font-weight: 700;
      color: #9CA3AF;
      letter-spacing: .5px;
    }
    .m71ie9 {
      font-size: .68rem;
      color: #C4C9D4;
      max-width: 260px;
      text-align: center;
    }

    /* ─── INFO CARD FULL-WIDTH IMAGE PLACEHOLDER ─────────── */
    .kgihatd.rza5o {
      padding: 0;
      overflow: hidden;
      min-height: 160px;
    }
    .ietm2 {
      position: relative;
      width: 100%;
      height: 100%;
      min-height: 160px;
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 65%, #12152b) 0%, color-mix(in srgb, var(--l3vyu) 90%, #000) 100%);
      /* Replace with: background-image: url('...'); background-size: cover; */
    }
    /* value-prop / bonus content overlaid on the promo banner — dark scrim keeps
       the light text readable over any seeded/AI image (contrast rule). */
    .bxrthp {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 7px;
      padding: 18px 20px;
      background: linear-gradient(180deg, rgba(12,14,30,.30) 0%, rgba(12,14,30,.66) 100%);
      z-index: 2;
    }
    .bxrthp .dzmmia { font-size: 1.85rem; line-height: 1; filter: drop-shadow(0 1px 2px rgba(0,0,0,.45)); }
    .bxrthp .mtyhmoi {
      font-family: var(--vqxtr72n);
      font-size: 1.1rem;
      font-weight: 900;
      color: #fff;
      text-shadow: 0 1px 3px rgba(0,0,0,.55);
      line-height: 1.15;
    }
    .bxrthp .sub {
      font-size: .82rem;
      color: rgba(255,255,255,.92);
      text-shadow: 0 1px 2px rgba(0,0,0,.5);
      max-width: 260px;
      line-height: 1.35;
    }
    .kgihatd.rza5o::before {
      /* keep top gradient line */
    }

    /* ─── PLACEHOLDER LABELS ─────────────────────────────── */
    .tyzkr {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      pointer-events: none;
    }
    .lgd4v9x {
      font-size: 1.4rem;
      opacity: .3;
      display: block;
    }
    .w0cbs6n {
      font-size: .68rem;
      font-weight: 700;
      color: color-mix(in srgb, var(--l3vyu) 40%, #fff);
      letter-spacing: .5px;
    }
    /* fill the whole thumb (absolute inset from the base rule); with the label hidden
       for real images a flex child would otherwise collapse to 0×0. */
    .is0qells {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
    }
    .klu0w17y {
      flex-direction: row;
      gap: 4px;
    }
    .klu0w17y .w0cbs6n {
      font-size: .6rem;
    }
    /* Article placeholder needs relative */
    .ac7sg2 {
      position: relative;
    }
    /* Info card placeholder needs relative */
    .ietm2 {
      position: relative;
    }

    /* ─── FLOAT IMAGE BLOCK ──────────────────────────────── */
    .jraxli0 {
      margin-bottom: 48px;
    }
    .tjj5f6h {
      font-family: var(--vqxtr72n);
      font-size: 1.7rem;
      font-weight: 900;
      color: var(--nr1xfya);
      margin-bottom: 16px;
      line-height: 1.15;
    }
    .oxbhtn6 {
      color: var(--yfbjxig);
      font-size: .95rem;
      line-height: 1.75;
    }
    .oxbhtn6 p {
      margin-bottom: 14px;
    }
    .oxbhtn6 p:last-child {
      margin-bottom: 0;
    }
    /* Float image left */
    .v0ksj4w {
      /* start the picture LOWER than the surrounding text (Коля: "опустить начало картинки"),
         so a heading never lands level with it and the copy wraps beside it instead of below. */
      /* clear the PICTURES, not the headings: each photo starts below the previous one, so two
         floats never sit level with each other and no heading lands in the narrow gap between them
         (Коля: "надо расстояние по высоте между картинками"). */
      clear: both;
      float: left;
      width: 42%;
      margin: 34px 28px 64px 0;
      border-radius: var(--m9wyy);
      overflow: hidden;
      border: 1px solid #E2E6F0;
      box-shadow: 0 2px 12px rgba(0,0,0,.07);
      flex-shrink: 0;
    }
    /* Float image right — text wraps around */
    .uhyrz {
      /* start the picture LOWER than the surrounding text (Коля: "опустить начало картинки"),
         so a heading never lands level with it and the copy wraps beside it instead of below. */
      /* clear the PICTURES, not the headings: each photo starts below the previous one, so two
         floats never sit level with each other and no heading lands in the narrow gap between them
         (Коля: "надо расстояние по высоте между картинками"). */
      clear: both;
      float: right;
      width: 42%;
      margin: 34px 0 64px 28px;
      border-radius: var(--m9wyy);
      overflow: hidden;
      border: 1px solid #E2E6F0;
      box-shadow: 0 2px 12px rgba(0,0,0,.07);
      flex-shrink: 0;
    }
    .h915cuqm {
      width: 100%;
      aspect-ratio: 4/3;
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 20%, #fff) 100%);
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .h915cuqm .tyzkr {
      position: static;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
    }
    .ikyptrn {
      padding: 8px 12px;
      font-size: .72rem;
      color: #9CA3AF;
      font-style: italic;
      background: var(--yh02hp);
      border-top: 1px solid #E2E6F0;
    }
    .phi7xk::after {
      content: '';
      display: table;
      clear: both;
    }
    @media (max-width: 600px) {
      .uhyrz {
        float: none;
        width: 100%;
        margin: 0 0 20px 0;
      }
      .v0ksj4w {
        float: none;
        width: 100%;
        margin: 0 0 20px 0;
      }
    }

    /* ─── CTA VARIANT 3: FULL-WIDTH IMAGE ───────────────── */
    .o65ej4yi {
      position: relative;
      border-radius: var(--y5a31f5);
      overflow: hidden;
      margin: 28px 0;
      min-height: 200px;
      display: flex;
      align-items: center;
    }
    /* Image layer */
    .zqhlvl3j {
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 20%, #fff) 100%);
      /* Replace: background-image: url('...'); background-size: cover; */
    }
    .pu5odtv {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
    }
    .pu5odtv .w0cbs6n { font-size: .72rem; font-weight: 700; color: color-mix(in srgb, var(--l3vyu) 35%, #fff); }
    /* Dark overlay so text is readable */
    .o65ej4yi::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, rgba(15,18,37,.85) 0%, rgba(15,18,37,.5) 60%, transparent 100%);
      z-index: 1;
    }
    .xvtji0c {
      position: relative;
      z-index: 2;
      padding: 32px 36px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      width: 100%;
      flex-wrap: wrap;
    }
    .pwjgv { display: flex; flex-direction: column; gap: 6px; max-width: 480px; }
    .o8vks0 {
      font-size: .68rem; font-weight: 700; letter-spacing: 1.2px;
      text-transform: uppercase; color: color-mix(in srgb, var(--l3vyu) 45%, #fff);
    }
    .puw1li47 {
      font-family: var(--vqxtr72n);
      font-size: 1.6rem; font-weight: 900;
      color: #fff; line-height: 1.15;
    }
    .qqzcew { font-size: .82rem; color: rgba(255,255,255,.6); }
    .kdw0br {
      display: inline-flex; align-items: center; gap: 6px;
      background: var(--l3vyu); color: #fff;
      padding: 13px 28px; border-radius: var(--il3tyi6u);
      font-size: .9rem; font-weight: 700;
      white-space: nowrap; text-decoration: none;
      box-shadow: 0 4px 20px rgba(var(--lnnefn7p),.4);
      transition: filter .15s, transform .1s;
      flex-shrink: 0; position: relative; z-index: 2;
    }
    .kdw0br:hover { filter: brightness(1.1); transform: translateY(-1px); }
    @media (max-width: 600px) {
      .xvtji0c { flex-direction: column; align-items: flex-start; }
      .kdw0br { width: 100%; justify-content: center; }
    }

    /* ─── CTA 3: IMAGE ONLY ──────────────────────────────── */
    .xj220 {
      display: block;
      width: 100%;
      height: 140px;
      border-radius: var(--m9wyy);
      overflow: hidden;
      margin: 28px 0;
      position: relative;
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 20%, #fff) 100%);
      /* Replace: background-image: url('...'); background-size: cover; */
      transition: filter .15s;
    }
    .xj220:hover { filter: brightness(.95); }
    .gozavre {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
    }

    /* ─── AUTH PAGES (login / register) ──────────────────── */
    .ni56x {
      min-height: calc(100vh - 220px);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 56px 20px;
      background:
        radial-gradient(ellipse 70% 60% at 80% 20%, rgba(var(--lnnefn7p),.12) 0%, transparent 70%),
        radial-gradient(ellipse 50% 60% at 10% 90%, rgba(var(--lnnefn7p),.08) 0%, transparent 60%),
        linear-gradient(160deg, var(--nhupr) 0%, var(--daxqh) 100%);
    }
    .zxdg4 {
      width: 100%;
      max-width: 420px;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      padding: 34px 30px 28px;
      box-shadow: 0 24px 60px rgba(0,0,0,.35);
    }
    .s5m8h3ew {
      display: block;
      text-align: center;
      font-family: var(--vqxtr72n);
      font-size: 1.5rem;
      font-weight: 900;
      color: var(--nr1xfya);
      margin-bottom: 4px;
    }
    .s5m8h3ew .if4bq { margin-left: 6px; }
    .he2hfxej {
      font-family: var(--vqxtr72n);
      font-size: 1.35rem;
      font-weight: 900;
      color: var(--nr1xfya);
      text-align: center;
      margin: 14px 0 4px;
    }
    .foxsq8ba { font-size: .86rem; color: var(--ygti488); text-align: center; margin-bottom: 22px; }
    .m82uig { display: flex; flex-direction: column; gap: 14px; }
    .dlf8an7 { display: flex; flex-direction: column; gap: 6px; }
    .gia04 { font-size: .78rem; font-weight: 600; color: var(--nr1xfya); letter-spacing: .3px; }
    .tx4cmpnj {
      width: 100%;
      padding: 11px 14px;
      font-size: .92rem;
      font-family: var(--hht9z1);
      color: var(--nr1xfya);
      background: var(--do0uz);
      border: 1.5px solid var(--v6dr76);
      border-radius: var(--il3tyi6u);
      outline: none;
      transition: border-color .15s, box-shadow .15s;
    }
    .tx4cmpnj:focus { border-color: var(--l3vyu); box-shadow: 0 0 0 3px rgba(var(--lnnefn7p),.15); }
    .ev0hi { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: .8rem; }
    .ykwl4f { display: flex; align-items: flex-start; gap: 8px; font-size: .8rem; color: var(--ygti488); line-height: 1.4; }
    .ykwl4f input { accent-color: var(--l3vyu); margin-top: 2px; flex-shrink: 0; }
    .z7hcvz { color: var(--l3vyu); font-weight: 600; }
    .z7hcvz:hover { text-decoration: underline; }
    .fqhl6gx {
      width: 100%;
      padding: 13px 20px;
      font-size: 1rem;
      font-weight: 800;
      font-family: var(--l2yoi);
      letter-spacing: .4px;
      color: #fff;
      background: linear-gradient(135deg, var(--l3vyu), var(--rhcmg6d));
      border: 0;
      border-radius: var(--m9wyy);
      cursor: pointer;
      transition: filter .15s, transform .15s;
    }
    .fqhl6gx:hover { filter: brightness(1.1); transform: translateY(-1px); }
    .nu4wrbf { text-align: center; font-size: .84rem; color: var(--ygti488); margin-top: 18px; }
    .opyogp { display: flex; align-items: center; gap: 12px; margin: 20px 0 14px; color: var(--ygti488); font-size: .72rem; letter-spacing: 1px; text-transform: uppercase; }
    .opyogp::before, .opyogp::after { content: ''; flex: 1; height: 1px; background: var(--v6dr76); }
    .mfj25nil { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; font-size: .72rem; color: var(--ygti488); margin-top: 16px; }
    .mfj25nil span { display: inline-flex; align-items: center; gap: 5px; }
    /* register: two-column with bonus panel */
    .nsngh {
      display: grid;
      grid-template-columns: minmax(0, 400px) minmax(0, 440px);
      gap: 28px;
      align-items: stretch;
      justify-content: center;
      width: 100%;
      max-width: 900px;
    }
    .uvxv06 {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 14px;
      padding: 34px 30px;
      border-radius: var(--y5a31f5);
      background:
        radial-gradient(ellipse 90% 60% at 85% 10%, rgba(var(--lnnefn7p),.25) 0%, transparent 65%),
        linear-gradient(150deg, color-mix(in srgb, var(--nhupr) 88%, #000) 0%, var(--daxqh) 100%);
      border: 1px solid rgba(255,255,255,.08);
      color: #fff;
    }
    .lqz9x59m { font-size: .72rem; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--duwiia9); }
    .b7slo { font-family: var(--vqxtr72n); font-size: 2rem; font-weight: 900; color: var(--duwiia9); line-height: 1.1; }
    .fsa1l4c { font-size: .9rem; color: rgba(255,255,255,.85); }
    .x6lkn9t { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
    .smzvse { display: flex; align-items: center; gap: 10px; font-size: .84rem; color: rgba(255,255,255,.9); }
    .smzvse .czr5d {
      width: 20px; height: 20px; border-radius: 50%;
      background: rgba(var(--lnnefn7p),.35);
      display: inline-flex; align-items: center; justify-content: center;
      font-size: .66rem; color: #fff; flex-shrink: 0;
    }
    .mhti9mw { font-size: .68rem; color: rgba(255,255,255,.45); margin-top: 8px; }
    @media (max-width: 860px) {
      .nsngh { grid-template-columns: 1fr; max-width: 440px; }
      .uvxv06 { order: -1; padding: 26px 24px; }
    }

    /* ─── ABOUT PAGE ─────────────────────────────────────── */
    .oeezr {
      padding: 64px 0 56px;
      color: #fff;
      background:
        radial-gradient(ellipse 70% 60% at 80% 30%, rgba(var(--lnnefn7p),.14) 0%, transparent 70%),
        linear-gradient(160deg, var(--nhupr) 0%, var(--daxqh) 100%);
    }
    .oeezr .pinkf8t { color: var(--duwiia9); }
    .whrtzlkx { font-family: var(--vqxtr72n); font-size: clamp(1.7rem, 4vw, 2.6rem); font-weight: 900; line-height: 1.15; margin: 10px 0 12px; }
    .wwcqa { max-width: 640px; color: rgba(255,255,255,.8); font-size: 1rem; line-height: 1.6; }
    .mp5i97 {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 14px;
      margin-top: 32px;
    }
    .q88avz {
      padding: 16px 18px;
      border-radius: var(--m9wyy);
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.1);
    }
    .q88avz .num { font-family: var(--vqxtr72n); font-size: 1.5rem; font-weight: 900; color: var(--duwiia9); }
    .q88avz .oti367q { font-size: .76rem; color: rgba(255,255,255,.7); margin-top: 2px; }
    .rjcpu { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
    .z90vd2 {
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
      padding: 22px 20px;
      border-top: 3px solid var(--l3vyu);
    }
    .z90vd2 .dzmmia { font-size: 1.6rem; margin-bottom: 10px; }
    .z90vd2 h3 { font-family: var(--vqxtr72n); font-size: 1.02rem; font-weight: 900; color: var(--nr1xfya); margin-bottom: 6px; }
    .z90vd2 p { font-size: .86rem; color: var(--ygti488); line-height: 1.55; }

    /* ─── CONTACT PAGE ───────────────────────────────────── */
    .dqse3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin-bottom: 36px; }
    .w0gmnh {
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
      padding: 24px 20px;
      text-align: center;
      transition: transform .15s, box-shadow .15s;
    }
    .w0gmnh:hover { transform: translateY(-2px); box-shadow: var(--eo67e); }
    .w0gmnh .dzmmia {
      width: 46px; height: 46px; border-radius: 50%;
      background: rgba(var(--lnnefn7p),.12);
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 1.3rem; margin-bottom: 12px;
    }
    .w0gmnh h3 { font-family: var(--vqxtr72n); font-size: 1rem; font-weight: 900; color: var(--nr1xfya); margin-bottom: 4px; }
    .w0gmnh .sub { font-size: .8rem; color: var(--ygti488); margin-bottom: 12px; }
    .w0gmnh .s6v43 { font-size: .86rem; font-weight: 700; color: var(--l3vyu); }
    .wcvy4 {
      max-width: 640px;
      margin: 0 auto;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      padding: 30px 28px;
    }
    .wcvy4 h2 { font-family: var(--vqxtr72n); font-size: 1.25rem; font-weight: 900; color: var(--nr1xfya); margin-bottom: 4px; }
    .wcvy4 .sub { font-size: .84rem; color: var(--ygti488); margin-bottom: 20px; }
    .f6vkkbcy { display: flex; flex-direction: column; gap: 14px; }
    .f6vkkbcy textarea.tx4cmpnj { min-height: 120px; resize: vertical; }
    .i4d63nh8 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
    @media (max-width: 560px) { .i4d63nh8 { grid-template-columns: 1fr; } }

    /* ─── VARIANT MODIFIERS (betting-style: one reference markup per block,
           variants are small clean modifier classes on the section) ───── */
    .zynoss .a1oc3 { justify-content: center; text-align: center; flex-direction: column; align-items: center; gap: 8px; }
    .zynoss .h8zoyc { padding-left: 0; }
    .zynoss .h8zoyc::before { display: none; }
    .n5kfweal { background: color-mix(in srgb, var(--l3vyu) 4%, #F6F6FB); }
    /* header */
    .rs8bo .dpfyzve { min-height: 54px; padding: 4px 0; }
    .rs8bo .kiacslgr { font-size: 1.05rem; }
    .stukvw { border-bottom: 2px solid var(--l3vyu); }
    .nw6b6s { background: color-mix(in srgb, var(--nhupr) 90%, var(--l3vyu)); }
    .kyxqhu .c1wel4v > .nav-item > a,
    .kyxqhu .c1wel4v > a { padding: 7px 13px; border-radius: 999px; transition: background .15s; }
    .kyxqhu .c1wel4v > .nav-item > a:hover,
    .kyxqhu .c1wel4v > a:hover { background: rgba(255,255,255,.09); }
    /* hero — every variant stays SPLIT (copy + bonus card side by side); variants differ
       by card side + background + column proportions. Never a centered vertical stack. */
    .occxh1 .ojas8i > div:first-child { order: 2; }
    .occxh1 .itorn8 { order: 1; }
    .zikxt .ojas8i { grid-template-columns: 1.4fr 1fr; }
    .otw0qvg { background: linear-gradient(160deg, var(--nhupr) 0%, var(--daxqh) 100%); }
    .w1ka3 {
      background:
        radial-gradient(ellipse 75% 80% at 78% 35%, rgba(var(--lnnefn7p),.42) 0%, transparent 62%),
        linear-gradient(150deg, var(--nhupr) 0%, color-mix(in srgb, var(--l3vyu) 34%, var(--daxqh)) 100%);
    }
    .pl5zx1t { position: relative; overflow: hidden; }
    .pl5zx1t::after {
      content: '';
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background: linear-gradient(114deg, transparent 46%, rgba(var(--lnnefn7p),.28) 46%, rgba(var(--lnnefn7p),.10) 66%, transparent 66%);
    }
    .pl5zx1t .container { position: relative; z-index: 1; }

    /* ─── SLOTS PAGES (data-driven catalog) ─────────────── */
    .pfm2yt { font-size: .78rem; color: var(--ygti488); margin-bottom: 16px; }
    .pfm2yt a { color: var(--ygti488); text-decoration: none; }
    .pfm2yt a:hover { color: var(--l3vyu); }
    .pfm2yt span { color: var(--nr1xfya); }
    .ni4g7u0k { position: relative; }
    .nh5oub { position: absolute; inset: 0; z-index: 2; }
    .klu0w17y .w0cbs6n { font-size: .7rem; }

    /* ─── in-content AD ZONE (gateway Banner System fills it) ─────── */
    .ys3gz2 { min-height: 100px; display: flex; align-items: center; justify-content: center; border: 1px dashed var(--v6dr76); border-radius: var(--m9wyy); background: var(--do0uz); color: var(--ygti488); font-size: .72rem; letter-spacing: 1.5px; text-transform: uppercase; overflow: hidden; }
    .ys3gz2:empty::before { content: 'Anuncio'; opacity: .6; }
    .ys3gz2:not(:empty) { border: 0; background: transparent; min-height: 0; }
    .ys3gz2 img, .ys3gz2 a { max-width: 100%; }
    /* .ys3gz2 stays flex+centered for a real banner creative (image/iframe of its own natural
       size), but the fallback prose-cta must span full width like every other prose-cta on the
       page (e.g. the seo_side CTA above it) instead of shrinking to its content in the flex row. */
    .ys3gz2 .prose-cta { width: 100%; }

    /* ─── page card grids (deposit methods / promos / providers / app) ─────── */
    .pdllp64n { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
    .ifz7ew { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); }
    .m0qzm { font-size: 1.5rem; flex-shrink: 0; }
    .dmc6h { flex: 1; min-width: 0; }
    .vikvfod { font-weight: 800; color: var(--nr1xfya); font-size: .95rem; }
    .lm5hjpzv { font-size: .74rem; color: var(--ygti488); }
    .a16n50pa { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
    .a918bs { font-weight: 700; color: var(--l3vyu); font-size: .82rem; }
    .brxkik { font-size: .72rem; color: var(--ygti488); }
    .aicwz { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
    .w96hgn1 { display: flex; flex-direction: column; gap: 10px; padding: 24px 22px; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--y5a31f5); border-top: 3px solid var(--l3vyu); }
    .ba48c { align-self: flex-start; font-size: .68rem; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; color: #fff; background: var(--l3vyu); padding: 4px 10px; border-radius: 999px; }
    .dam3avn { font-family: var(--vqxtr72n); font-size: 1.15rem; font-weight: 900; color: var(--nr1xfya); line-height: 1.2; }
    .rrgisyzi { font-size: .88rem; color: var(--ygti488); line-height: 1.55; flex: 1; }
    .uarzv { align-self: flex-start; margin-top: 4px; }
    /* promo-card CTAs now render inside .prose (l2CardsHtml) — ".prose a" (2-selector
       specificity) would otherwise beat .vkpcj and turn the label accent-on-accent. */
    .prose .uarzv { color: #fff !important; text-decoration: none !important; }
    .dgu9j { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
    .n7ks24m3 { padding: 20px 22px; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); }
    .s434av { font-family: var(--vqxtr72n); font-weight: 900; font-size: 1.05rem; color: var(--nr1xfya); margin-bottom: 6px; }
    .xt5ve535 { font-size: .85rem; color: var(--ygti488); line-height: 1.55; }
    .dvem3thk { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
    .mroc3 { padding: 22px 20px; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); text-align: center; }
    .mzd5asg6 { font-size: 1.8rem; margin-bottom: 10px; }
    .wc77gt { font-family: var(--vqxtr72n); font-weight: 900; color: var(--nr1xfya); margin-bottom: 4px; }
    .sj2lab { font-size: .84rem; color: var(--ygti488); line-height: 1.5; }

    /* ─── TOPBRANDS (cross-brand operator comparison) ─── */
    .xpul33 { text-align: center; max-width: 640px; margin: -6px auto 22px; color: var(--ygti488); font-size: .95rem; }
    .du2wyavj { display: flex; flex-direction: column; gap: 14px; }
    .w6tftlj2 {
      position: relative;
      display: grid;
      grid-template-columns: 44px 1.4fr 2fr auto;
      align-items: center;
      gap: 20px;
      padding: 18px 22px 18px 18px;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
      transition: border-color .15s, transform .15s;
    }
    .w6tftlj2:hover { transform: translateY(-2px); border-color: rgba(var(--lnnefn7p),.4); }
    .w6tftlj2.fswtt { border: 1.5px solid var(--l3vyu); box-shadow: 0 8px 26px rgba(var(--lnnefn7p),.14); }
    .kbxjy3f8 { font-family: var(--vqxtr72n); font-weight: 900; font-size: 1.15rem; color: var(--l3vyu); text-align: center; }
    .pnguuro5 { font-family: var(--vqxtr72n); font-weight: 900; font-size: 1.15rem; color: var(--nr1xfya); line-height: 1.2; }
    .t70xj4 { display: inline-block; vertical-align: middle; font-size: .6rem; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: #fff; background: var(--l3vyu); padding: 3px 7px; border-radius: 4px; margin-left: 4px; }
    .wgcs6ph { margin-top: 4px; color: var(--duwiia9); font-weight: 800; font-size: .95rem; }
    .ycpz0 { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px; margin: 0; padding: 0; list-style: none; }
    .ycpz0 li { display: flex; flex-direction: column; font-size: .8rem; }
    .ycpz0 li span { color: var(--ygti488); font-size: .68rem; text-transform: uppercase; letter-spacing: .4px; }
    .ycpz0 li b { color: var(--nr1xfya); font-weight: 700; }
    .wjr44r1 { white-space: nowrap; padding: 11px 22px; }
    .p3rokjq { margin-top: 16px; text-align: center; font-size: .74rem; color: var(--ygti488); line-height: 1.5; }
    @media (max-width: 860px) {
      .w6tftlj2 { grid-template-columns: 36px 1fr; grid-template-areas: "rank top" "facts facts" "cta cta"; gap: 12px 14px; }
      .kbxjy3f8 { grid-area: rank; align-self: start; }
      .z459h9 { grid-area: top; }
      .ycpz0 { grid-area: facts; }
      .wjr44r1 { grid-area: cta; justify-self: stretch; text-align: center; }
    }

    /* ─── default in-content ad creative (our casino bonus banner; gateway may replace) ─── */
    /* Fallback house-banner shown in a gateway ad slot on the demo; the Banner System loader
       (/_ldr.m3k2zj) replaces it with a live campaign creative in production. Site-accent, not gold. */
    .aqwdg { position: relative; display: flex; align-items: center; gap: 16px; width: 100%; padding: 15px 22px; text-decoration: none; border-radius: var(--m9wyy); background: linear-gradient(120deg, color-mix(in srgb, var(--l3vyu) 22%, var(--daxqh)), var(--daxqh)); border: 1px solid rgba(var(--lnnefn7p),.30); overflow: hidden; }
    .aqwdg:hover { filter: brightness(1.07); }
    .uy6nbe0 { position: absolute; top: 6px; right: 10px; font-size: .56rem; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: rgba(255,255,255,.42); }
    .umdz3thr { flex-shrink: 0; font-size: 1.7rem; line-height: 1; }
    .i05v17j5 { flex-shrink: 0; font-family: var(--vqxtr72n); font-size: 1.3rem; font-weight: 900; color: #fff; line-height: 1; }
    .q9gqp1ls { flex: 1; color: rgba(255,255,255,.82); font-size: .88rem; }
    .ou1y7 { flex-shrink: 0; font-weight: 800; color: #fff; background: var(--l3vyu); padding: 10px 18px; border-radius: var(--m9wyy); white-space: nowrap; box-shadow: 0 4px 14px rgba(var(--lnnefn7p),.28); }
    @media (max-width: 600px) { .aqwdg { flex-wrap: wrap; text-align: center; justify-content: center; gap: 10px; padding: 16px; } .q9gqp1ls { flex-basis: 100%; } }

    /* ─── RULES section layout variants (partials/rules/rules-v2..kj6ae) ─────
       Anti-footprint: the payments/safety/support block ships 5 structurally different
       layouts. Geometry only — every variant renders the same fields, and all colours come
       from the theme custom properties (no literal colour anywhere below). */
    /* v2 — asymmetric split: wide copy column + narrow Support aside */
    .y6r6v { grid-template-columns: 1.55fr 1fr; gap: 34px; }
    .tszff { padding-top: 0; }
    .lha04z1l { margin: 0 0 4px; }
    .tszff .prose-cta { margin-top: 18px; }
    /* v3 — card stack: one bordered surface per block, CTAs between the cards */
    .kcj376t { display: flex; flex-direction: column; gap: 20px; }
    .gi83ujf .h4enw8w { padding: 26px 28px 30px; }
    .gi83ujf .prose h3:first-child { margin-top: 0; }
    .kcj376t .prose-cta,
    .kcj376t .prose-cta-dark { margin: 0; }
    /* v4 — Коля (live review): this was a 250px STICKY left rail holding the section title. The
       sticky column tracked the scroll badly and left a tall empty gutter beside the copy (the same
       side-column failure rejected on the homeintro block). The title now sits full width above the
       copy, ruled off — the variant keeps its identity (title detached from the body, no CTA between
       the two rule blocks, image as a band) without a side column or any sticky scrolling. */
    .yazl0 { display: block; }
    .yazl0 .a1oc3 {
      display: block; margin-bottom: 22px; padding-bottom: 14px;
      border-bottom: 2px solid var(--v6dr76);
    }
    .yazl0 .prose h3:first-child { margin-top: 0; }
    .d1dfzopv { margin: 30px 0 26px; }
    .d1dfzopv .ac7sg2 { height: 240px; }
    /* v5 — duo grid: the two rule blocks side by side, Support as an image-left panel */
    .qfb89 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; margin-bottom: 8px; }
    .qfb89 .prose h3:first-child { margin-top: 0; }
    .nrut30 { margin-top: 26px; }
    .nrut30 .zzr7n .prose h3:first-child,
    .nrut30 .zzr7n h3:first-child { margin-top: 0; }
    @media (max-width: 980px) {
      .yazl0 { grid-template-columns: 1fr; gap: 16px; }
      .yazl0 .a1oc3 { position: static; margin-bottom: 20px; }
      .qfb89 { grid-template-columns: 1fr; gap: 4px; }
    }
    @media (max-width: 768px) {
      .y6r6v { grid-template-columns: 1fr; gap: 22px; }
      .lha04z1l { margin: 8px 0 4px; }
      .d1dfzopv .ac7sg2 { height: 200px; }
      .gi83ujf .h4enw8w { padding: 20px 18px 24px; }
    }


    /* ═══════════════════════════════════════════════════════
       HOME SECTION LAYOUT VARIANTS — games v2..kj6ae / homeintro v2..kj6ae
       One block per site is picked by domain seed (config.mf1hn), so these must be
       real structural alternatives, not restyles of the same DOM. Every colour is a token so the
       seeded palette drives them like the rest of the sheet.
    ════════════════════════════════════════════════════════ */

    /* ── games v2: slots lead as a wrapping contact sheet, both copy blocks stacked underneath.
       Коля 2026-08-20 (live review): the horizontal snap rail that used to live here was rejected —
       a block the reader can only finish by scrolling sideways. Its geometry now lives in
       .jl16ox70 / .hl8dna6i* at the end of this file (wrapping grid, no overflow). ── */
    .fl43p5 .jraxli0:last-child { margin-bottom: 0; }

    /* ── games v3: copy column + slot column side by side, bonus copy full-width below ── */
    .i4ravms { grid-template-columns: 1.05fr .95fr; gap: 34px; margin-bottom: 44px; }
    .e3wx22 .jraxli0 { margin-bottom: 0; }
    .oks3sr59 .fbrp6 { grid-template-columns: repeat(2, 1fr); margin-bottom: 0; }
    /* a 42%-wide float inside a half-width column leaves a sliver of text beside it — the
       in-copy pictures run full column width in the split and pair layouts instead */
    .i4ravms .v0ksj4w,
    .i4ravms .uhyrz,
    .mlbp704 .v0ksj4w,
    .mlbp704 .uhyrz { float: none; width: 100%; margin: 0 0 18px; }
    @media (max-width: 768px) {
      .i4ravms { grid-template-columns: 1fr; gap: 26px; }
    }

    /* ── games v4: two-column list of horizontal row cards ── */
    .ktwor4n8 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin: 0 0 40px;
    }
    .e3wq67x3 { display: grid; grid-template-columns: 108px 1fr; align-items: center; }
    .e3wq67x3 .t32v73 { width: 108px; aspect-ratio: 4/3; }
    .e3wq67x3 .vjvqjx47 { padding: 10px 14px; min-width: 0; }
    .e3wq67x3 .lk39x { margin-bottom: 4px; }
    .wzy1exg { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .wzy1exg .aqbo1ty6 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .wzy1exg .g9g6k5 { float: none; margin-left: auto; flex-shrink: 0; }
    @media (max-width: 768px) { .ktwor4n8 { grid-template-columns: 1fr; } }

    /* ── games v5: copy blocks paired side by side + portrait poster wall ── */
    .mlbp704 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-bottom: 38px; }
    .mlbp704 .jraxli0 { margin-bottom: 0; }
    .vvcc1o { margin-bottom: 0; }
    .g1puon .t32v73 { aspect-ratio: 3/4; }
    /* caption sits ON the artwork — dark scrim keeps the light text readable over any seeded or
       AI-generated thumbnail (contrast rule), same treatment as .bxrthp */
    .m22dxdm {
      position: absolute;
      left: 0; right: 0; bottom: 0;
      z-index: 1;
      padding: 22px 12px 10px;
      background: linear-gradient(180deg, rgba(12,14,30,0) 0%, rgba(12,14,30,.82) 62%, rgba(12,14,30,.94) 100%);
    }
    .m22dxdm .lk39x { color: #fff; margin-bottom: 3px; }
    .m22dxdm .aqbo1ty6 { color: rgba(255,255,255,.72); }
    .m22dxdm .g9g6k5 { color: var(--duwiia9); }
    .m22dxdm .ubcb1 { position: static; top: auto; left: auto; }
    @media (max-width: 860px) { .mlbp704 { grid-template-columns: 1fr; gap: 0; } .mlbp704 .jraxli0 { margin-bottom: 40px; } }

    /* ── homeintro v2: wide photo band on top, narrow centred measure below ── */
    .t0rl3rh0 {
      width: 100%;
      height: 300px;
      margin-bottom: 32px;
      border-radius: var(--y5a31f5);
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 22%, #fff) 100%);
    }
    .llvzxg.z3x3w3 { max-width: 820px; }
    @media (max-width: 720px) { .t0rl3rh0 { height: 190px; margin-bottom: 22px; } }

    /* ── homeintro v3: sticky media column beside the copy column ── */
    .iwbawy { grid-template-columns: .78fr 1.22fr; gap: 38px; }
    /* .iwbawy removed — that variant was replaced by the full-width strip */
    .iwbawy .umvflf {
      width: 100%;
      aspect-ratio: auto;
      height: 380px;
      border-radius: var(--y5a31f5);
    }
    .iwbawy .v0ksj4w,
    .iwbawy .uhyrz { float: none; width: 100%; margin: 0 0 18px; }
    @media (max-width: 768px) {
      .iwbawy { grid-template-columns: 1fr; gap: 22px; }
      .iwbawy .imk4f7w { position: static; }
      .iwbawy .umvflf { height: 200px; }
    }

    /* ── homeintro v4: framed panel, photo flush at the panel's bottom edge ── */
    .rzq2uy .h4enw8w { padding: 34px 38px 30px; }
    .llvzxg.kmgjkz4n { max-width: 100%; margin: 0; }
    .frc2a {
      width: 100%;
      height: 240px;
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 22%, #fff) 100%);
    }
    @media (max-width: 720px) {
      .rzq2uy .h4enw8w { padding: 22px 20px 18px; }
      .frc2a { height: 170px; }
    }

    /* ── homeintro v5: copy column + framed portrait tile beside it.
       Коля 2026-08-20 (live review): the full-bleed photo band that escaped .container and the copy
       card lifted over it on a negative margin were both rejected. The geometry now lives in
       .cvdcza0w* at the end of this file — picture inside the content column, no overlap. ── */

    /* ─── HEADER layout variants (partials/header/header-v2..kj6ae) ───────────
       Anti-footprint: the nav ships 5 structurally different element trees. Geometry only —
       every variant renders the same fields, and all colour comes from the base .site-header /
       .nav-item / .f28bq / .kz12ru* rules above (no literal colour anywhere below). */
    /* shared: list-based menus carry no bullets */
    .qyw6u5, .kqjeyeo, .fubrlu7, .qjhfxj8s { list-style: none; margin: 0; padding: 0; }
    .kqjeyeo li, .fubrlu7 li, .qjhfxj8s dd { display: block; margin: 0; }
    .ht54py0z { display: flex; flex-direction: column; }
    .ejyymr8 { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
    .tyvfh, .fubrlu7, .gvwfla8, .qjhfxj8s { display: flex; flex-direction: column; }
    .gvwfla8 { gap: 2px; }
    /* v2 — two rows: brand + auth strip on top, full-width menu rail underneath */
    .sjzii1u { display: flex; flex-direction: column; }
    .d7y3twzl { display: flex; align-items: center; min-height: 58px; padding: 8px 0; }
    .d7y3twzl .f28bq { margin-left: auto; }
    .f7l48w { border-top: 1px solid var(--v6dr76); }
    .f7l48w .c1wel4v { min-height: 44px; gap: 4px; }
    /* Коля (live review): margin-left:auto flung "App Móvil" to the opposite end of the menu rail,
       so the second row read as two unrelated fragments. It stays with the other menu items. */
    .ruqb9c4 { margin-left: 0; }
    /* v3 — centred rail: menu · brand · app+auth make ONE cluster centred in the row.
       The row still lives inside a plain .container, so the content column is the shared width. */
    /* Коля (live review): fully centring the row jammed the wordmark between the menu and the
       buttons with nothing to separate them. Brand and menu now read as one left-hand group and the
       actions sit on the right — v5 is the variant that centres the menu, so the two stay distinct. */
    .w10hanmz { justify-content: flex-start; gap: 18px; }
    .ub6hhile { flex: 0 0 auto; }
    .w10hanmz .hhqtw3x1 { order: -1; margin-right: 6px; }
    .w10hanmz .gla5lhd { margin-left: auto; }
    .hhqtw3x1 { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
    .hhqtw3x1 .kiacslgr { margin-right: 0; }
    .gla5lhd { margin-left: 0; }
    .kjfpdgwe { margin-right: 4px; }
    /* v4 — brand left, every other piece grouped in one cluster at the right edge */
    .vrhntls { margin-right: 20px; }
    .zk5uiq2k { display: flex; align-items: center; gap: 12px; margin-left: auto; min-width: 0; }
    .enoeyg3 .c1wel4v { flex: 0 0 auto; }
    .o7iuk { margin-left: 0; }
    .cikr877b { margin-right: 4px; }
    /* right-aligned menu ⇒ its panels hug the right edge instead of running off-canvas */
    .enoeyg3 .nav-dropdown { left: auto; right: 0; min-width: 340px; }
    /* v5 — single rail, menu centred in the free space between brand and auth cluster */
    .pv3wn { margin-right: 16px; }
    .hg2th9d { flex: 1 1 auto; justify-content: center; gap: 6px; }
    .a8zvh { margin-left: 16px; }
    .q3m3m > a { border: 1px solid var(--v6dr76); border-radius: 999px; padding: 7px 15px; }
    .pwtknv .nav-dropdown { left: 50%; transform: translate(-50%, -6px); }
    .pwtknv .nav-item:hover .nav-dropdown,
    .pwtknv .nav-item:focus-within .nav-dropdown { transform: translate(-50%, 0); }
    @media (max-width: 1180px) {
      .f7l48w { display: none; }
      /* burger widths: the cluster rules collapse to brand-left / burger-right */
      .w10hanmz { justify-content: flex-start; }
      .zk5uiq2k, .a8zvh { margin-left: 0; }
    }

    /* ─── STICKY bar layout variants (partials/sticky/sticky-v2..kj6ae) ───────
       Same fields, four different element trees. Geometry only — colours stay in the
       .b93u3* rules above. */
    /* v2 — CTA leads on the left, offer + licence grouped, brand closes the row */
    .n9pneuti { justify-content: flex-start; gap: 16px; }
    .g4hrj { display: flex; align-items: center; gap: 16px; flex: 1; min-width: 0; }
    .g4hrj .at1smy30 { margin: 0; }
    .n9pneuti .pm0jp,
    .n9pneuti .exv0a { margin-left: auto; }
    /* v3 — two clusters split left/right, divider before the offer */
    .ll8by3s8 { justify-content: space-between; gap: 16px; }
    .ep3p7 { display: flex; align-items: center; gap: 16px; min-width: 0; }
    .xwkjsso { justify-content: flex-end; }
    .xwkjsso .at1smy30 { padding-left: 16px; border-left: 1px solid var(--v6dr76); }
    /* v4 — full-bleed row, no .container: dismiss first, licence between offer and CTA */
    .mkvalyb1 { padding: 0 24px; gap: 18px; }
    .mkvalyb1 .at1smy30 { margin: 0; }
    .mkvalyb1 .x1ds4fsl { margin-left: auto; }
    /* v5 — two stacked rows, dismiss control floating over the bar */
    .ao34r9 { padding: 6px 0; }
    .uh1n1z { display: flex; flex-direction: column; gap: 3px; }
    .vshg8lh { display: flex; align-items: center; gap: 14px; }
    .vshg8lh .rwflyry7 { flex-direction: row; gap: 8px; }
    .vshg8lh .pm0jp { height: 19px; }
    .vshg8lh .exv0a { font-size: 1.1rem; }
    .f37fn { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
    .ao34r9 .x1ds4fsl { padding: 6px 22px; font-size: .85rem; }
    .ynlsjk { position: absolute; top: 4px; right: 10px; }
    @media (max-width: 768px) {
      .mkvalyb1 { padding: 0 14px; gap: 12px; }
    }
    @media (max-width: 600px) {
      .g4hrj    { display: none; }
      .vshg8lh { display: none; }
      .xwkjsso { flex: 1; }
      .xwkjsso .at1smy30 { border-left: none; padding-left: 0; }
    }

    /* ─── FOOTER structural variants (partials/footer/footer-v2..kj6ae) ──────
       Anti-footprint: v2..kj6ae no longer differ by a modifier class over one shared DOM —
       each ships a different element tree (band order, nav vs dl vs inline runs, legal bar
       placement). Everything below is GEOMETRY ONLY: every colour still comes from the
       existing .pv9q3k / .v88bmnlh / .n5ei5se rules or a theme custom
       property — no literal colour is introduced here. */
    /* v2 — payments band leads, link nav row, brand sign-off trails, standalone legal bar */
    .lp44a { padding-top: 0; }
    .lp44a .bpmb2lqk { border-top: 0; border-bottom: 1px solid var(--v6dr76); padding: 22px 0; }
    .sloqvl { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 28px; padding-top: 32px; padding-bottom: 28px; }
    .u3g8b54z { gap: 9px; }
    .u3g8b54z .pufzb0p { margin-bottom: 4px; }
    .s4blf { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 18px; padding-bottom: 26px; }
    .ca6ud8i, .gafptd { margin-bottom: 0; display: inline-block; }
    .ue248 { max-width: 760px; }
    .kmlj1w { display: block; padding: 18px 0 24px; }
    .syrxz8 { justify-content: flex-start; margin-bottom: 12px; }
    .du3vv { max-width: none; }
    /* v3 — dl link groups + brand/cert aside, payments strip under the links, one-line legal */
    .x9gflyf .jy4km { display: grid; grid-template-columns: 1fr 300px; gap: 40px; margin-bottom: 32px; }
    .othra1 { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 30px; }
    .ykbe4 { gap: 9px; }
    .ykbe4 .pufzb0p { margin-bottom: 0; }
    .ykbe4 dd { margin: 0; }
    .hojv92t { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
    .hkb9ks { max-width: 100%; }
    .jznht { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
    .vg2qnf { display: flex; flex-direction: column; gap: 14px; }
    .efy4tz0 { display: block; }
    .vu0jds5 { max-width: none; text-align: center; }
    /* v4 — brand masthead band on top, link columns with the disclaimer as the last cell, payment rail */
    .r0p2qi { padding-top: 0; }
    .z88392r { border-bottom: 1px solid var(--v6dr76); padding: 34px 0 28px; }
    .vjcb0 { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; }
    .k5uzwq30 { margin-bottom: 0; }
    .zua1g { max-width: 620px; }
    .jv1u28lo { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 30px; padding: 32px 0 30px; }
    .r9gp4j { display: flex; flex-direction: column; }
    .r9gp4j .pufzb0p { margin-bottom: 12px; }
    .ckzbj { max-width: none; font-size: .72rem; line-height: 1.65; }
    .vullu6uu { display: block; padding: 18px 0 24px; }
    .x2kiow9w { list-style: none; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; }
    .g16x4n { display: flex; }
    /* v5 — compact inline: brand+certs row, flattened inline link runs, fine-print legal */
    .c95hbv { padding-top: 34px; }
    .a509p { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-bottom: 12px; }
    .i0je9d .t2rgzw, .i0je9d .zkb8wj { margin-bottom: 0; }
    .mvthjdzl { list-style: none; }
    .jcoy9 { max-width: 100%; margin-bottom: 22px; }
    .w4k0sb { display: flex; flex-direction: column; gap: 10px; padding-bottom: 22px; }
    .p9aut0 { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
    .vnwl77 { margin-bottom: 0; }
    .uaokhurx { font-size: .82rem; }
    .kycs9vj { display: flex; flex-wrap: wrap; gap: 14px 28px; }
    .u1np827c { display: block; padding: 16px 0 24px; line-height: 1.6; }
    @media (max-width: 900px) {
      .x9gflyf .jy4km { grid-template-columns: 1fr; gap: 26px; }
    }
    @media (max-width: 768px) {
      .sloqvl { gap: 22px; padding-top: 26px; padding-bottom: 22px; }
      .s4blf { display: block; }
      .ue248 { margin-top: 8px; }
      .x2kiow9w { flex-direction: column; align-items: flex-start; }
      .a509p { align-items: flex-start; }
    }

    /* ─── PROS/CONS structural variants (partials/proscons/proscons-v2..kj6ae) ───────
       Anti-footprint: five different element trees, not one tree with five skins —
       v2 one stacked panel, v3 a dl "table" split, v4 a side rail with banded rows,
       v5 a single merged list. Column labels stay plain elements (.ghw27ua), never
       headings. Geometry + theme custom properties only, no literal colour. */
    .zv6oj .ghw27ua,
    .aj2ey .ghw27ua,
    .siuo3pv .ghw27ua,
    .mao7f08j .ghw27ua {
      display: inline-flex; align-items: center; gap: 8px;
      font-family: var(--vqxtr72n); font-size: 1.05rem; font-weight: 800;
    }
    .zv6oj .bzb3y,
    .aj2ey .bzb3y,
    .siuo3pv .bzb3y,
    .mao7f08j .bzb3y {
      width: 26px; height: 26px; border-radius: 50%;
      display: inline-flex; align-items: center; justify-content: center;
      font-size: .8rem; flex-shrink: 0;
    }
    /* v2 — one stacked panel: intro inside the card, pros run then cons run */
    .f0hjalw .a1oc3 { margin-bottom: 22px; }
    .zv6oj .h4enw8w { padding: 26px 28px 30px; }
    .xwww1n9 { margin: 0 0 20px; }
    .qykkhy1 .ghw27ua { display: flex; margin-bottom: 14px; }
    .qykkhy1 + .qykkhy1 { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--v6dr76); }
    /* v3 — dl "table" split: label row on top, list row under it */
    .s7t1o8 .b50zr { text-align: center; }
    .aj2ey { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; text-align: left; }
    .uimgxady { padding: 12px 16px; border-radius: var(--m9wyy) var(--m9wyy) 0 0; background: var(--do0uz); }
    .aj2ey .po1ipf.uimgxady { border-bottom: 3px solid var(--l3vyu); }
    .aj2ey .gng1v9.uimgxady { border-bottom: 3px solid var(--v6dr76); }
    .ymst09v {
      padding: 18px 16px 20px;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76); border-top: 0;
      border-radius: 0 0 var(--m9wyy) var(--m9wyy);
    }
    /* v4 — side rail: sticky title column + full-width banded rows */
    .ob8q20 .siuo3pv { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: start; }
    .v1080qh { /* was position:sticky — the rail tracked the scroll badly (Коля live review) */ }
    .v1080qh .a1oc3 { display: block; margin-bottom: 16px; }
    .es6rwa { margin: 0 0 14px; }
    .u14a6db { margin: 0; }
    .ayqxxzd { display: flex; flex-direction: column; gap: 18px; }
    .ay3qyq {
      padding: 20px 22px 22px;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
    }
    .ay3qyq.po1ipf { border-left: 3px solid var(--l3vyu); }
    .ay3qyq.gng1v9 { border-left: 3px solid var(--v6dr76); }
    .ay3qyq .ghw27ua { display: flex; margin-bottom: 14px; }
    .x47r9em { gap: 10px; }
    /* v5 — single merged list, one marker per entry, label chips opening each run */
    .abnk1b .a1oc3 { margin-bottom: 20px; }
    .mao7f08j {
      list-style: none;
      max-width: 820px; margin: 0 auto;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      overflow: hidden;
    }
    .aldrkeh { padding: 14px 22px; background: var(--do0uz); border-top: 1px solid var(--v6dr76); }
    .mao7f08j > .aldrkeh:first-child { border-top: 0; }
    .zsra3 {
      display: flex; align-items: flex-start; gap: 12px;
      padding: 11px 22px;
      font-size: .88rem; line-height: 1.5; color: var(--yfbjxig);
    }
    .zsra3 + .zsra3 { border-top: 1px solid var(--v6dr76); }
    .zsra3 .kedo8ul {
      width: 18px; height: 18px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .65rem; flex-shrink: 0; margin-top: 2px;
    }
    .zsra3 p { margin: 0; }
    @media (max-width: 900px) {
      .ob8q20 .siuo3pv { grid-template-columns: 1fr; gap: 20px; }
      .v1080qh { position: static; }
    }
    @media (max-width: 640px) {
      .aj2ey { grid-template-columns: 1fr; }
      .aj2ey > .po1ipf.uimgxady { grid-row: 1; }
      .aj2ey > .po1ipf.ymst09v { grid-row: 2; }
      .aj2ey > .gng1v9.uimgxady { grid-row: 3; margin-top: 16px; }
      .aj2ey > .gng1v9.ymst09v { grid-row: 4; }
      .zv6oj .h4enw8w { padding: 20px 18px 24px; }
      .ay3qyq { padding: 16px 16px 18px; }
      .aldrkeh, .zsra3 { padding-left: 16px; padding-right: 16px; }
    }

    /* ─── HERO structural variants (partials/hero/hero-v2..kj6ae) ────────────
       Anti-footprint: v2..kj6ae ship genuinely DIFFERENT element trees (different order, wrappers
       and nesting depth), not one skeleton under a modifier class. Geometry only — every variant
       renders exactly the same fields as v1, and every colour below comes from a theme custom
       property (no literal colour anywhere). */

    /* shared helpers (used by more than one hero variant) */
    .gq6pl { min-width: 0; }
    .s1k0phv { list-style: none; }
    .s1k0phv .adqozkac,
    .dg0cpb .adqozkac,
    .aatn8 .adqozkac { font-style: normal; font-weight: 700; }
    .n5req { display: block; }

    /* v2 — offer <aside> FIRST (card left) + copy <article> right, CTAs stacked */
    .rb0c7fpc .ojas8i { grid-template-columns: 1fr 1.3fr; }
    .evx63 { align-self: center; }
    .ucdlb4nm { margin-bottom: 22px; }
    .ucdlb4nm .z1v5on0 { margin-bottom: 0; }
    .g3y1y { flex-direction: column; align-items: stretch; }
    .g3y1y .btn { justify-content: center; max-width: 340px; }

    /* v3 — split <header> (eyebrow+H1 | subtitle+CTAs) over a full-width offer band */
    .gj2vff { display: grid; grid-template-columns: 1.1fr 1fr; gap: 46px; align-items: end; }
    .w8tzj { min-width: 0; }
    .w4ji2th1 { min-width: 0; }
    .w4ji2th1 .sjaoeoq { max-width: 100%; margin-bottom: 22px; }
    .ruu6mx0 {
      margin-top: 36px;
      display: grid;
      grid-template-columns: minmax(190px, .85fr) 1.5fr minmax(200px, .75fr);
      gap: 30px;
      align-items: center;
    }
    .v0o0x0f { min-width: 0; }
    .v0o0x0f .z1v5on0 { margin-bottom: 0; }
    .dg0cpb { flex-direction: row; flex-wrap: wrap; gap: 10px 22px; margin-bottom: 0; list-style: none; }
    .ind40 { display: flex; flex-direction: column; gap: 8px; }
    .ind40 .dm0o8 { margin-top: 0; }

    /* v4 — top rail (eyebrow ↔ age line), copy | <figure> grid, CTA row BELOW the grid */
    .khvg7 {
      display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
      gap: 12px; margin-bottom: 26px; padding-bottom: 14px;
      border-bottom: 1px solid rgba(var(--lnnefn7p), .22);
    }
    .khvg7 .pinkf8t { margin-bottom: 0; }
    .twxt6l { margin-top: 0; }
    .x0w1g .ojas8i { grid-template-columns: 1.35fr 1fr; align-items: start; }
    .x0w1g .sjaoeoq { margin-bottom: 0; max-width: 520px; }
    .u1l0t17 .tb3owe8g,
    .u1l0t17 .z1v5on0 { display: block; }
    .z2ypx {
      margin-top: 30px; padding-top: 24px;
      border-top: 1px solid rgba(var(--lnnefn7p), .22);
    }

    /* v5 — flat single-column flow + full-width offer ribbon (stays on mobile, it IS the block) */
    .baeshc .pinkf8t { margin-bottom: 16px; }
    .baeshc .sjaoeoq { max-width: 620px; }
    .fefv91vs {
      margin-top: 34px; padding: 22px 26px;
      display: flex; flex-wrap: wrap; align-items: center; gap: 6px 26px;
    }
    .fefv91vs .peluix3s { flex: 0 0 100%; margin-bottom: 2px; }
    .fefv91vs .tb3owe8g { margin-bottom: 0; }
    .fefv91vs .z1v5on0 { margin-bottom: 0; max-width: 260px; }
    .aatn8 {
      flex: 1 1 240px; flex-direction: row; flex-wrap: wrap;
      gap: 8px 18px; margin-bottom: 0; list-style: none;
    }
    .fefv91vs .g133a3oc { display: inline-flex; width: auto; justify-content: center; padding: 13px 26px; }
    .fefv91vs .dm0o8 { flex: 0 0 100%; text-align: left; margin-top: 6px; }

    @media (max-width: 1024px) {
      .rb0c7fpc .ojas8i,
      .x0w1g .ojas8i { grid-template-columns: 1fr 1fr; }
      .ruu6mx0 { grid-template-columns: minmax(170px, 1fr) 1.35fr; }
      .ind40 { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 18px; }
    }
    @media (max-width: 980px) {
      .gj2vff { grid-template-columns: 1fr; gap: 24px; align-items: start; }
    }
    @media (max-width: 768px) {
      .rb0c7fpc .ojas8i,
      .x0w1g .ojas8i { grid-template-columns: 1fr; }
      .khvg7 { justify-content: flex-start; }
      .g3y1y .btn { max-width: none; }
      .z2ypx { margin-top: 22px; padding-top: 18px; }
      .ruu6mx0 { grid-template-columns: 1fr; gap: 18px; margin-top: 26px; padding: 24px 20px; }
      .ind40 { flex-direction: column; align-items: stretch; gap: 8px; }
      .fefv91vs { margin-top: 26px; padding: 20px 18px; gap: 10px 18px; }
      .fefv91vs .z1v5on0 { flex: 0 0 100%; max-width: none; }
      .fefv91vs .g133a3oc { flex: 0 0 100%; width: 100%; }
      .aatn8 { flex: 0 0 100%; }
    }

    /* ─── TRUST structural variants (partials/trust/trust-v2..kj6ae) ─────────
       v1 stays the 5-cell flex strip; v2..kj6ae are a semantic list, a card grid, a centred inline
       run and separate tiles — different trees, same fields, theme colours only. */

    /* v2 — <ul>/<li> strip, flat cells stacked vertically */
    .b2oo26 { list-style: none; }
    .pkwiemh .w2s3cz { flex-direction: column; align-items: flex-start; gap: 6px; padding: 20px 22px; }
    .pkwiemh .meh5og { font-size: 1.25rem; font-style: normal; }
    .pkwiemh .wngjy { font-size: .78rem; }
    .pkwiemh .qhr5drg { font-style: normal; margin-top: 0; }

    /* v3 — <article> cards in a wrapping grid, icon+label share a <header> */
    .ov0egbv { padding: 22px 0; }
    .bvnspjy { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
    .ov0egbv .w2s3cz {
      display: block; flex: none; padding: 14px 16px;
      background: var(--bvixte); border: 1px solid var(--v6dr76);
      border-right: 1px solid var(--v6dr76); border-radius: var(--m9wyy);
    }
    .ylpmy { display: flex; align-items: center; gap: 10px; }
    .ov0egbv .qhr5drg { margin-top: 6px; }

    /* v4 — one <p> of centred inline chips, no grid element at all */
    .raunba { padding: 4px 0; }
    .ganakj { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 8px 26px; padding: 14px 0; }
    .raunba .w2s3cz {
      display: inline-flex; align-items: baseline; gap: 7px;
      flex: 0 0 auto; padding: 0; border-right: none; border-bottom: none;
    }
    .raunba .meh5og { font-size: 1rem; font-weight: 400; }
    .raunba .qhr5drg { margin-top: 0; }

    /* v5 — separate tiles: boxed <figure> icon + <dl> text */
    .g8esk6 { padding: 20px 0; }
    .l1mns9nf { display: flex; flex-wrap: wrap; gap: 10px; }
    .g8esk6 .w2s3cz {
      flex: 1 1 200px; gap: 10px; padding: 12px 14px;
      background: var(--bvixte); border: 1px solid var(--v6dr76);
      border-right: 1px solid var(--v6dr76); border-bottom: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
    }
    .kovoqh {
      display: flex; align-items: center; justify-content: center;
      width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%;
      background: rgba(var(--lnnefn7p), .12);
    }
    .t11dfr { min-width: 0; }

    @media (max-width: 768px) {
      .bvnspjy { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
      .raunba .w2s3cz { flex: 0 0 auto; }
      .g8esk6 .w2s3cz { flex: 1 1 46%; }
    }
    @media (max-width: 480px) {
      .ganakj { gap: 8px 16px; }
      .g8esk6 .w2s3cz { flex: 1 1 100%; }
    }

    /* hero v3 section wrapper — the split-head variant has no side card holding the hero open,
       so it sets its own vertical rhythm (geometry only). */
    .fl0hdy8 { padding: 64px 0 58px; }
    /* v4 (footer) — the legal cell of .jv1u28lo keeps enough width for the disclaimer */
    .jv1u28lo .z45f3l { min-width: 220px; }
    @media (max-width: 560px) { .jv1u28lo .z45f3l { min-width: 0; } }

    /* --- FAQ section layout variants (partials/faq/faq-v2..kj6ae) ------------
       Anti-footprint: the FAQ block ships 5 structurally different DOM trees
       (v1 card accordion / v2 definition list / v3 split rail / v4 numbered ol /
       v5 tile board). Geometry only - every variant renders the same fields and
       keeps the JS accordion contract intact: button.faq-question -> parentElement
       -> nextElementSibling === .faq-answer (assets/js/main.m3k2zj toggleFaq; those two
       class names plus the open state class are in the HARD_SKIP list of
       lib/anti-footprint.m3k2zj). The open/close marker is the .faq-question::after
       chevron and the CSS counters below - never a literal plus sign inside the
       question text. All colours come from the theme custom properties. */

    /* v2 - definition list: flat numbered rows, hairline rules, no card chrome */
    .syls99ih { max-width: 760px; margin: 0 auto 26px; text-align: center; }
    .syls99ih .h8zoyc { padding-left: 0; }
    .syls99ih .h8zoyc::before { display: none; }
    .kymk6oh { color: var(--ygti488); font-size: .9rem; margin-top: 8px; }
    .v3lm3s1n { counter-reset: faqrow; max-width: 760px; margin: 0 auto; border-top: 1px solid var(--v6dr76); }
    .xj61ky6 { counter-increment: faqrow; border-bottom: 1px solid var(--v6dr76); }
    .te077kq { justify-content: flex-start; gap: 10px; padding: 16px 6px; font-family: var(--hht9z1); font-style: normal; font-size: .95rem; font-weight: 700; }
    .mzkbf2 { flex: 0 0 26px; font-family: var(--l2yoi); font-size: 1.05rem; color: var(--l3vyu); }
    .mzkbf2::before { content: counter(faqrow); }
    .tjr9y { flex: 1 1 auto; }
    .cnh16tzz { border-top: 0; border-bottom: 1px solid var(--v6dr76); padding: 0 6px 18px 42px; }

    /* v3 - split: sticky heading rail on the left, accordion entries on the right */
    .lhvh4 { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: start; }
    .rvnbc9h { /* was position:sticky — the rail tracked the scroll badly (Коля live review) */ }
    .ci5s9 { color: var(--ygti488); font-size: .9rem; margin-top: 12px; }
    .l7vptq { display: flex; flex-direction: column; gap: 10px; }
    .y3fv7ecd { background: var(--bvixte); border: 1px solid var(--v6dr76); border-left: 3px solid var(--v6dr76); border-radius: 0 var(--m9wyy) var(--m9wyy) 0; overflow: hidden; transition: border-color .15s; }
    .y3fv7ecd:hover { border-left-color: var(--l3vyu); }
    .u5xsvatx { margin: 0; font: inherit; }
    .kl13f0q { padding: 15px 18px; font-size: .96rem; }
    .ddhl35fl { border-top: 0; padding: 0 18px 16px; }

    /* v4 - numbered ordered list under a centred banner header */
    .l94b3z { max-width: 700px; margin: 0 auto 30px; text-align: center; }
    .wvh3j { display: inline-block; margin-bottom: 8px; font-family: var(--l2yoi); font-size: .72rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--l3vyu); }
    .l94b3z .h8zoyc { padding-left: 0; }
    .l94b3z .h8zoyc::before { display: none; }
    .yal81vl { color: var(--ygti488); font-size: .9rem; margin-top: 8px; }
    .aeln3c1 { list-style: none; counter-reset: faqn; display: grid; gap: 12px; max-width: 880px; margin: 0 auto; }
    .nkj74 { counter-increment: faqn; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--y5a31f5); overflow: hidden; }
    .swlby { margin: 0; font: inherit; }
    .snklkr { justify-content: flex-start; gap: 12px; padding: 16px 20px; font-family: var(--hht9z1); font-style: normal; font-size: .95rem; font-weight: 700; }
    .snklkr::before { content: counter(faqn); flex: 0 0 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: color-mix(in srgb, var(--l3vyu) 12%, transparent); color: var(--l3vyu); font-family: var(--l2yoi); font-size: .82rem; }
    .snklkr::after { margin-left: auto; }
    .zb9qc { border-top: 0; padding: 0 20px 18px 58px; }

    /* v5 - tile board: the heading block is the first cell of the grid itself */
    .dwdc6 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; align-items: start; }
    .l8aan { grid-column: 1 / -1; text-align: center; margin-bottom: 10px; }
    .l8aan .h8zoyc { padding-left: 0; }
    .l8aan .h8zoyc::before { display: none; }
    .opcocc { color: var(--ygti488); font-size: .9rem; margin-top: 8px; }
    .yyjtzc { background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); overflow: hidden; }
    .c3t1e5 { margin: 0; }
    .i2x1fu7 { padding: 14px 16px; font-size: .93rem; }
    .fm9i1 { border-top: 1px solid var(--v6dr76); padding: 12px 16px 16px; font-size: .88rem; }

    @media (max-width: 900px) {
      .lhvh4 { grid-template-columns: 1fr; gap: 20px; }
      .rvnbc9h { position: static; }
      .dwdc6 { grid-template-columns: 1fr; }
    }
    @media (max-width: 768px) {
      .te077kq, .kl13f0q, .snklkr, .i2x1fu7 { font-size: .9rem; padding: 14px 16px; }
      .cnh16tzz { padding: 0 16px 14px 40px; }
      .ddhl35fl { padding: 0 16px 14px; }
      .zb9qc { padding: 0 16px 14px 52px; }
      .fm9i1 { padding: 12px 16px 14px; }
    }

    /* --- SLOTS section layout variants (partials/slots/slots-v2..kj6ae) ------
       Anti-footprint: the featured-games block ships 5 structurally different DOM
       trees (v1 card grid / v2 horizontal snap rail / v3 two-column media rows /
       v4 board whose first cell is the heading / v5 ranked line list). Geometry
       only - every variant renders name, provider, RTP, badge, the .t32v73 /
       .is0qells inline-background hooks and the cloaked /go/ play link with
       the nofollow sponsored noopener rel. All colours come from theme properties. */

    /* v2 - wrapping tile board; the "all slots" link leads the heading.
       Коля 2026-08-20 (live review): was a horizontal snap rail — rejected. The grid that replaced it
       lives in .agx9bppj / .ml3drrqi* at the end of this file. */
    .o7qhe6 { position: relative; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); overflow: hidden; transition: transform .15s, border-color .15s; }
    .o7qhe6:hover { transform: translateY(-3px); border-color: var(--l3vyu); }
    .o7qhe6:hover .t32v73::after { opacity: 1; }
    .hbdplruj { margin: 0; }
    .rhf1je { aspect-ratio: 16/10; }
    .g8jbypmh { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; padding: 10px 12px 12px; }
    .g8jbypmh .lk39x { flex: 1 1 100%; }
    .g8jbypmh .g9g6k5 { float: none; margin-left: auto; }

    /* v3 - two-column media rows; the "all slots" link trails as a centred button */
    .i8irf4n { margin-bottom: 26px; }
    .nnh3rn { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 26px; }
    .wd2dh1 { position: relative; display: grid; grid-template-columns: 92px 1fr; gap: 14px; align-items: center; padding: 10px; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); transition: border-color .15s, transform .15s; }
    .wd2dh1:hover { border-color: var(--l3vyu); transform: translateX(3px); }
    .wd2dh1:hover .t32v73::after { opacity: 1; }
    .tjqqlj { aspect-ratio: 1/1; border-radius: var(--il3tyi6u); }
    .j9ny71e7 { min-width: 0; }
    .lvr5iiy { display: flex; align-items: center; gap: 8px; white-space: normal; font-family: var(--hht9z1); font-size: .95rem; font-weight: 700; }
    .io3g0 { float: none; display: inline-block; margin-top: 6px; }
    .qlwywew { text-align: center; }

    /* v4 - board whose first cell is the section heading; play link leads, badge trails */
    .ee294em4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 40px; }
    .hwp70z1 { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 10px; padding-right: 8px; }
    .vlckq7k7 { position: relative; padding: 10px; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--y5a31f5); overflow: hidden; transition: border-color .15s, transform .15s; }
    .vlckq7k7:hover { border-color: var(--l3vyu); transform: translateY(-3px); }
    .vlckq7k7:hover .t32v73::after { opacity: 1; }
    .n2fsfgy { aspect-ratio: 3/2; border-radius: var(--m9wyy); }
    .d2xak { padding: 10px 4px 22px; }
    .d2xak .lk39x { font-size: .84rem; }
    .l51dwevq { float: none; display: block; margin-top: 3px; }
    .vlckq7k7 .ubcb1 { position: absolute; right: 12px; bottom: 12px; }

    /* v5 - ranked line list; visible play button instead of a full-card overlay */
    .qzduoa { justify-content: center; text-align: center; }
    .ma10r { list-style: none; counter-reset: slotrank; display: flex; flex-direction: column; gap: 8px; max-width: 900px; margin: 0 auto 22px; }
    .txzb5 { counter-increment: slotrank; position: relative; display: flex; align-items: center; gap: 14px; padding: 8px 14px; background: var(--bvixte); border: 1px solid var(--v6dr76); border-radius: var(--m9wyy); transition: border-color .15s; }
    .txzb5:hover { border-color: var(--l3vyu); }
    .txzb5::before { content: counter(slotrank); flex: 0 0 22px; text-align: center; font-family: var(--l2yoi); font-size: 1rem; color: var(--ygti488); }
    .wgitlr { flex: 0 0 62px; width: 62px; aspect-ratio: 1/1; border-radius: var(--il3tyi6u); }
    .f97m9uxz { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
    .f97m9uxz .lk39x { margin-bottom: 0; font-size: .9rem; }
    .f97m9uxz .aqbo1ty6 { font-style: normal; }
    .k0wxlbsv { float: none; flex: 0 0 auto; }
    .txzb5 .nh5oub { position: static; inset: auto; z-index: auto; flex: 0 0 auto; padding: 9px 18px; font-size: .82rem; }
    .cs07ko { text-align: center; }

    @media (max-width: 1024px) {
      .ee294em4 { grid-template-columns: repeat(3, 1fr); }
    }
    @media (max-width: 900px) {
      .nnh3rn { grid-template-columns: 1fr; }
      .ee294em4 { grid-template-columns: repeat(2, 1fr); }
      .hwp70z1 { grid-column: 1 / -1; }
    }
    @media (max-width: 600px) {
      .wd2dh1 { grid-template-columns: 72px 1fr; }
      .txzb5 { flex-wrap: wrap; gap: 10px; }
      .f97m9uxz { flex: 1 1 55%; }
      .txzb5 .nh5oub { margin-left: auto; }
    }

    /* ═══════════════════════════════════════════════════════
       BLOCK VARIANT SKELETONS — keyfeatures v2/v3/v5, homeintro v2/v5, steps v3
       (Коля 2026-08-20) These six partials used to share a tag-for-tag identical element tree with
       their v1 sibling — the same markup on every site in the network is exactly the footprint the
       variant system exists to remove, so each was rebuilt around a DIFFERENT element tree (dl/dt/dd
       ledger, ul>article>figure pillars, ol strip inside one band, figure-led banner, full-bleed
       overlap, ol rail). Every class below is referenced by one of those partials: a class with no
       rule here is skipped by lib/anti-footprint.m3k2zj and would ship as an identical literal token on
       all 46 sites. Colour comes from tokens only — never a literal.
    ════════════════════════════════════════════════════════ */

    /* ── keyfeatures v2: definition-list ledger, two columns of hairline rows (4 cards → 2 per column).
       The column count lives here, NOT inline, so the ≤900px single-column collapse can win. ── */
    .g0nrh7if { margin-bottom: 22px; }
    .xveu3np { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
    .psyab { padding: 18px 0; border-bottom: 1px solid var(--v6dr76); }
    .psyab:nth-child(-n+2) { border-top: 1px solid var(--v6dr76); }
    .ghdmjty8 { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
    .uclg2c4 { font-size: 1.5rem; line-height: 1; flex: 0 0 auto; }
    .xveu3np .c3peawdz {
      font-family: var(--vqxtr72n);
      font-size: 1.02rem;
      font-weight: 800;
      color: var(--nr1xfya);
    }
    .n1dothe { margin: 0; color: var(--ygti488); font-size: .9rem; line-height: 1.6; }
    @media (max-width: 900px) {
      .xveu3np { grid-template-columns: 1fr; gap: 0; }
      .psyab:nth-child(2) { border-top: 0; }
    }

    /* ── keyfeatures v3: three captioned pillars (the only variant build-site.m3k2zj trims to THREE cards —
       variantMap.uyy3679v === 'v3'). The icon sits in a bordered figure band above the copy, so the
       card reads as a captioned medallion instead of three stacked divs. ── */
    .aytzp9eb { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
    .y51yvz { display: flex; }
    .va4uqw0 {
      display: flex;
      flex-direction: column;
      width: 100%;
      padding: 26px 22px 24px;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      box-shadow: var(--v00pviv);
    }
    .rjhfnw {
      margin: 0 0 14px;
      padding-bottom: 14px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      border-bottom: 1px solid var(--v6dr76);
    }
    .kme1nb {
      width: 58px; height: 58px;
      display: flex; align-items: center; justify-content: center;
      font-size: 2rem;
      line-height: 1;
      border-radius: 50%;
      background: rgba(var(--lnnefn7p),.10);
    }
    .gke3fb {
      font-family: var(--vqxtr72n);
      font-size: 1.05rem;
      font-weight: 800;
      color: var(--nr1xfya);
      text-align: center;
      line-height: 1.25;
    }
    .xtrnzzn { margin: 0; color: var(--ygti488); font-size: .9rem; line-height: 1.6; text-align: center; }
    @media (max-width: 900px) { .aytzp9eb { grid-template-columns: 1fr; gap: 14px; } }

    /* ── keyfeatures v5: heading + copy + advantages inside ONE bordered band, the four items running
       across it as an <ol> strip divided by hairlines instead of four separate card boxes. ── */
    .ngtpqg {
      padding: 32px 34px 30px;
      background: var(--bvixte);
      border: 1px solid var(--v6dr76);
      border-radius: var(--s55tk);
      box-shadow: var(--v00pviv);
    }
    .tarsunkx { margin-bottom: 26px; }
    .b50zr.csc5te80 { margin: 14px 0 0; }
    .tz9sbph.ppk5l { margin: 26px 0 0; }
    .oci8a { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
    .pjmqpy0 { padding: 2px 22px; border-left: 1px solid var(--v6dr76); }
    .pjmqpy0:first-child { border-left: 0; padding-left: 0; }
    .p15dzkov { display: block; margin-bottom: 10px; font-size: 1.6rem; font-weight: 400; line-height: 1; color: var(--l3vyu); }
    .qrvcjh {
      display: block;
      margin-bottom: 6px;
      font-family: var(--vqxtr72n);
      font-size: 1rem;
      font-weight: 800;
      color: var(--nr1xfya);
      line-height: 1.25;
    }
    .usjx36g9 { margin: 0; color: var(--ygti488); font-size: .88rem; line-height: 1.6; }
    @media (max-width: 900px) {
      .oci8a { grid-template-columns: 1fr 1fr; gap: 22px 0; }
      .pjmqpy0:nth-child(odd) { border-left: 0; padding-left: 0; }
    }
    @media (max-width: 600px) {
      .ngtpqg { padding: 24px 20px; }
      .oci8a { grid-template-columns: 1fr; }
      .pjmqpy0 { border-left: 0; padding-left: 0; }
    }

    /* ── homeintro v2: the photo leads the module as a banner inside a <figure>; .t0rl3rh0
       (declared above) already carries the height and its own bottom margin, so the figure adds none. ── */
    .p9g8d1lk { display: flex; flex-direction: column; }
    .zk86r { margin: 0; width: 100%; }

    /* ── steps v3: dark vertical rail — an <ol> running top-to-bottom, a numbered medallion beside each
       copy block, connector drawn down the medallion column. No .tipyz7d4 here, so the horizontal
       .glc6k::before never applies. left:29px centres the 2px line under the 60px medallion. ── */
    .akv69 {
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 6px;
      margin-bottom: 36px;
    }
    .dn62da { color: var(--ygti488); font-size: .9rem; }
    .deeohsk1 {
      list-style: none;
      position: relative;
      display: flex;
      flex-direction: column;
      gap: 22px;
      max-width: 760px;
      margin: 0 auto;
    }
    .deeohsk1::before {
      content: "";
      position: absolute;
      left: 29px; top: 30px; bottom: 30px;
      width: 2px;
      background: linear-gradient(180deg, var(--l3vyu), rgba(var(--lnnefn7p),.2));
      z-index: 0;
    }
    .e02nxx { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: 20px; }
    .r1vofaq6 { flex: 0 0 60px; }
    .bz7cl2d { min-width: 0; padding-top: 7px; }
    .r803gxka { display: block; margin-bottom: 6px; text-align: left; }
    .m8bgek { text-align: left; font-size: .86rem; }
    @media (max-width: 768px) {
      .deeohsk1::before { display: none; }
      .e02nxx { gap: 14px; }
    }

    /* ═══════════════════════════════════════════════════════
       REJECTED-LAYOUT REPLACEMENTS — games v2 / slots v2 / homeintro v5
       (Коля 2026-08-20, live review of five built sites)
       Two layouts were rejected and rebuilt; their geometry lives here.
         • games v2 + slots v2 — a block that pushes its cards onto a HORIZONTAL SCROLL rail is out.
           Both now wrap inside the shared content column, so nothing is reachable only sideways and
           the document never scrolls horizontally at any viewport.
         • homeintro v5 — the full-bleed photo band that escaped .container and the copy card lifted
           over it on a negative margin are gone; the picture sits in the normal content column.
       Rules that apply to every variant and are honoured below:
         – LAYOUT ONLY, never colour: each variant keeps its own v1 section scheme (.sreodin for
           games/slots, bare .section for homeintro) and every colour here is an existing var(--…)
           token — no tints, no light backgrounds, no literals.
         – The content column is the shared .container on every variant: nothing below sets a
           max-width or padding on .container or on a wrapper standing in for it.
       Every class below is referenced by one of the three partials — a class with no rule here is
       skipped by lib/anti-footprint.m3k2zj and would ship as the same literal token on all 46 sites.
    ════════════════════════════════════════════════════════ */

    /* ── games v2: contact sheet — 4-across wrapping grid of 16:9 figure tiles, copy stacked after.
       Grid items are .ni4g7u0k (overflow:hidden), so their automatic minimum size is 0 and a long
       game name can never push the track — and therefore the page — wider than the column. ── */
    .jl16ox70 {
      list-style: none;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
      margin: 0 0 40px;
    }
    .wlrrx5bq { min-width: 0; }
    .sfd6fqm { margin: 0; }
    .qiyk53c { aspect-ratio: 16/9; }
    .wt6lk3 {
      display: flex;
      flex-direction: column;
      gap: 3px;
      padding: 10px 12px 12px;
      min-width: 0;
    }
    .wt6lk3 .lk39x { display: block; font-weight: 700; }
    .wt6lk3 .aqbo1ty6 {
      display: flex;
      align-items: baseline;
      gap: 8px;
      min-width: 0;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    .wt6lk3 .g9g6k5 { float: none; margin-left: auto; flex-shrink: 0; }
    @media (max-width: 900px) { .jl16ox70 { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
    @media (max-width: 520px) { .jl16ox70 { grid-template-columns: 1fr; } }

    /* ── slots v2: tile board — the same wrapping grid, 4 tiles across, link-led eyebrow heading.
       .o7qhe6 (declared above with the surface/border/radius) is the grid item; it carries
       overflow:hidden too, so the same zero automatic-minimum protection applies. ── */
    .dzhfqx { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 22px; }
    .se28mxv2 { font-family: var(--l2yoi); font-size: .72rem; letter-spacing: 1.6px; text-transform: uppercase; }
    .agx9bppj {
      list-style: none;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
      margin-bottom: 40px;
    }
    @media (max-width: 900px) { .agx9bppj { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
    @media (max-width: 520px) { .agx9bppj { grid-template-columns: 1fr; } }

    /* ── homeintro v5: tail figure — copy first, framed letterbox photo closing the module, both
       inside .container. No negative margins and no full-bleed, so the section paints only its own
       background and the page keeps its measure. Stacking (rather than a second media COLUMN — v3
       already owns that, and only survives long copy because it is sticky) is deliberate: a column
       layout leaves the empty gutter beside the text that this template rejected once already.
       The figure takes the copy's own width (no cap of its own) so the plate lines up edge to edge
       with the text above it, and .container is untouched — the content column is the shared one. ── */
    .cvdcza0w { display: flex; flex-direction: column; }
    .llvzxg.gaem24e6 { margin: 0; }
    .r2rt4q { margin: 34px 0 0; width: 100%; }
    .gbgbvbf {
      display: block;
      width: 100%;
      aspect-ratio: 21/9;
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      background: linear-gradient(135deg, color-mix(in srgb, var(--l3vyu) 10%, #fff) 0%, color-mix(in srgb, var(--l3vyu) 22%, #fff) 100%);
    }
    @media (max-width: 720px) {
      .r2rt4q { margin-top: 24px; }
      .gbgbvbf { aspect-ratio: 16/9; }
    }

    /* HOMEINTRO v3 — wide strip above the copy (replaces the old left media column, which left an
       empty gutter whenever the copy outran the picture). No side column, so nothing can hang. */
    .s4rsq1s1 {
      display: block; width: 100%; aspect-ratio: 4 / 1;
      border: 1px solid var(--v6dr76); border-radius: var(--y5a31f5);
      background-size: cover; background-position: center;
      margin: 0 0 26px;
    }
    .yungm { max-width: none; }
    @media (max-width: 700px) {
      .s4rsq1s1 { aspect-ratio: 16 / 9; margin-bottom: 18px; }
    }

    /* ─── 2nd-LEVEL HERO structural variants (partials/l2hero/l2hero-v2..kj6ae) ──────────
       The L2 hero used to be one hardcoded block inlined in pages/content.j1etfw +
       pages/slotspage.j1etfw — an identical element tree on all 46 sites, i.e. the exact
       footprint the section_variants machinery exists to remove. v1 IS that former markup,
       untouched (copy | offer-photo card + border-topped trust strip); v2..kj6ae are genuinely
       different TREES — different order, wrappers, nesting depth and tag types — rendering
       exactly the same fields.

       Three rules hold for every variant below:
         • GEOMETRY ONLY. Not one of these selectors declares a background or a text colour, so
           all five paint the shared .hero gradient and the page's scheme cannot drift. The few
           hairlines use rgba(var(--lnnefn7p),…) — the same theme token .khvg7 and
           .itorn8 already use. Text colours stay on the same inline literals v1 uses.
         • .container is never touched, and nothing is full-bleed or negatively offset, so the
           content column measures identically on all five and the page cannot scroll sideways.
         • NO side media column. The themed page photo always spans the full content width, so
           copy that outruns the picture can never leave an empty gutter beside it (the failure
           mode this template already rejected twice on the home page). */

    .yh4qeoy1, .i7vg7tmk, .j3ug4x3f, .s1qnngvj { padding: 48px 0 36px; }

    /* Shared photo frame. page.rr1qo paints the background image onto .beq0o,
       which is position:absolute/inset:0 — so the frame is what gives it a positioned box with a
       real size. Full content width in every variant. */
    .dh2gqab {
      position: relative;
      display: block;
      width: 100%;
      overflow: hidden;
      border: 1px solid rgba(var(--lnnefn7p), .35);
      border-radius: var(--s55tk);
    }
    .ssd26  { aspect-ratio: 5 / 1;  margin: 26px 0 0; }
    .yqxkxbr  { aspect-ratio: 4 / 1; }
    .qtyxytzp { aspect-ratio: 23 / 5; margin: 28px 0 0; }
    .qm2ojq { aspect-ratio: 9 / 2; }

    /* v2 — stacked poster: header → full-width photo → inline CTAs → inline trust <ul> */
    .oon2x5 { max-width: 860px; }
    .qdala { max-width: 620px; margin-bottom: 0; }
    .qgbvfz9 { margin-top: 26px; }
    .zamqryfn {
      display: flex; flex-wrap: wrap; align-items: center;
      gap: 10px 22px; list-style: none; margin: 22px 0 0; padding: 0;
    }
    .stw3iw9k { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
    .pphukm5 { font-style: normal; }

    /* v3 — two TEXT columns (H1 | intro + stacked CTAs) over a full-width <figure>, trust grid */
    .z8epavi { margin: 34px 0 0; }
    .amqw04 {
      display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      gap: 14px 20px; margin-top: 26px; padding-top: 18px;
      border-top: 1px solid rgba(var(--lnnefn7p), .22);
    }
    .rzrzou3 { display: flex; align-items: center; gap: 8px; min-width: 0; }

    /* v4 — copy, then a rail carrying the CTAs opposite the age line, photo last, trust chips */
    .nnfej { max-width: 820px; }
    .agpe9 {
      display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
      gap: 12px 28px; margin-top: 24px; padding-bottom: 20px;
      border-bottom: 1px solid rgba(var(--lnnefn7p), .22);
    }
    .fvdl5vg { margin-top: 0; }
    .sx7vlmno { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 22px; }
    .yai2r1 {
      display: inline-flex; align-items: center; gap: 8px; min-width: 0;
      padding: 7px 14px; border-radius: 999px;
      border: 1px solid rgba(var(--lnnefn7p), .22);
    }

    /* v5 — semantic flow: <article> copy, captioned <figure>, <footer> CTAs, <dl> trust pairs */
    .k8l54mbq { display: flex; flex-direction: column; }
    .prioobr { max-width: 680px; margin-bottom: 0; }
    .yxzi0 { margin: 26px 0 0; }
    .rs8do { margin-top: 12px; }
    .x58uao { margin-top: 22px; }
    .l34xh {
      display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 26px 0 0;
      padding-top: 18px; border-top: 1px solid rgba(var(--lnnefn7p), .22);
    }
    .ywrxp { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .i0235v { margin: 0; font-style: normal; }
    .cheyviz { margin: 0; }

    @media (max-width: 768px) {
      .yh4qeoy1, .i7vg7tmk, .j3ug4x3f, .s1qnngvj { padding: 40px 0 32px; }
      .ssd26  { aspect-ratio: 16 / 9; margin-top: 20px; }
      .yqxkxbr  { aspect-ratio: 16 / 9; }
      .qtyxytzp { aspect-ratio: 16 / 9; margin-top: 22px; }
      .qm2ojq { aspect-ratio: 16 / 9; }
      .z8epavi      { margin-top: 26px; }
      .agpe9     { justify-content: flex-start; }
      .amqw04  { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
    }
    @media (max-width: 480px) {
      .yh4qeoy1, .i7vg7tmk, .j3ug4x3f, .s1qnngvj { padding: 28px 0 28px; }
      .agpe9 { flex-direction: column; align-items: stretch; gap: 12px; }
      .agpe9 .pt7268v { flex: 0 0 auto; }
      .zamqryfn, .sx7vlmno, .l34xh { gap: 8px 16px; }
      .amqw04 { grid-template-columns: 1fr 1fr; gap: 8px 14px; }
    }

    /* ═══════════════════════════════════════════════════════
       2nd-LEVEL BODY BLOCKS — l2lead / l2prose / l2blocks
       (Коля 2026-08-21: "между хиро и сео есть гигантский блок… его надо порезать по мусташам,
        дать вариации и собрать")
       The body between the hero and the FAQ used to leave build-site.m3k2zj as ONE opaque html string
       (page.t0ttyxuh) assembled identically on every site in the network — the single largest
       footprint left on a 2nd-level page. It is now three separately-seeded blocks rendered from
       page.jhigee46 (lead / sections[] / blocks[]), five variants each.
       Rules honoured by every class below:
         – LAYOUT ONLY, never colour: no fills, no tints, no light backgrounds; the two colours used
           (var(--v6dr76) hairlines, one var(--l3vyu) hairline) are existing tokens.
         – The content column is the shared .container: nothing here sets a max-width or a horizontal
           padding on .container or on a wrapper standing in for it, so the measure is identical on
           all five variants. Only the l2blocks annex panel insets, and only its own contents.
         – No rules across the prose stream: sections carry float photos (.gx4jsq5v*, 42% wide),
           and a border on a block box spans the full column, so a hairline between prose parts would
           be painted straight through a floated picture. Prose variants therefore group with
           whitespace and type scale; hairlines are used only where nothing floats (the lead, and the
           blocks annex, which clears).
         – No horizontal scrolling, no full-bleed, no negative margins, no side media column.
       Every class here is referenced by one of the fifteen partials — a class with no rule is skipped
       by lib/anti-footprint.m3k2zj and would ship as the same literal token on all 46 sites.
    ════════════════════════════════════════════════════════ */

    /* ── l2lead: the fact-based opening block (H2 + 2-3 paragraphs). Nothing floats inside it, so
       these variants may use real dividers. v1 renders it bare. ── */
    .zh4ajmao {                          /* v2 — explicit divider closing the lead */
      border: 0;
      border-top: 1px solid var(--v6dr76);
      margin: 26px 0 30px;
    }
    .lwgar {                      /* v3 — masthead: rule above, lead sits under it */
      display: block;
      padding-top: 22px;
      border-top: 2px solid var(--v6dr76);
      margin-bottom: 28px;
    }
    .lwgar > h2:first-child { margin-top: 0; }
    .y4bqb {                         /* v4 — accent underline under the lead's own H2 */
      display: block;
      margin-bottom: 30px;
    }
    .y4bqb > h2 {
      position: relative;
      margin-top: 0;
      padding-bottom: 14px;
    }
    .y4bqb > h2::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      width: 56px;
      height: 3px;
      background: var(--l3vyu);
    }
    .besxn {                        /* v5 — lede typography, wide close */
      display: block;
      margin-bottom: 38px;
    }
    .besxn > h2:first-child { margin-top: 0; }
    .besxn > p:first-of-type { font-size: 1.05rem; line-height: 1.7; }

    /* ── l2prose: the H2/H3 prose sections. v1 renders them bare, in source order. ── */
    .rdssrmp3 {                      /* v2 — chapters grouped by whitespace */
      display: block;
      margin-top: 26px;
    }
    .rdssrmp3:first-child { margin-top: 0; }
    .rdssrmp3 > h2:first-child { margin-top: 10px; }
    .r4c0r {
      display: block;
      margin-top: 0;
    }
    .r4c0r > h3:first-child { margin-top: 14px; }

    .il0y84r {                         /* v3 — even ladder: one uniform gap between all parts */
      display: block;
      margin-top: 30px;
    }
    .il0y84r:first-child { margin-top: 0; }
    .il0y84r > h2:first-child,
    .il0y84r > h3:first-child { margin-top: 0; }

    .fbyxst {                         /* v4 — opening part lifted out, body grouped after it */
      display: block;
      margin-bottom: 34px;
    }
    .fbyxst > h2:first-child,
    .fbyxst > h3:first-child { margin-top: 0; }
    .u1sp1 { display: block; }
    .axtpm8r {
      display: block;
      margin-top: 22px;
    }
    .axtpm8r > h2:first-child { margin-top: 14px; }
    .b6mvvpju {
      display: block;
      margin-top: 0;
    }
    .b6mvvpju > h3:first-child { margin-top: 12px; }

    .t128s3l { display: block; }        /* v5 — tight run: bigger H2 step, H3 pulled up under it */
    .kdenuk {
      display: block;
      margin-top: 34px;
    }
    .kdenuk:first-child { margin-top: 0; }
    .kdenuk > h2:first-child {
      margin-top: 0;
      font-size: 1.85rem;
      letter-spacing: -.01em;
    }
    .te711 {
      display: block;
      margin-top: 0;
    }
    .te711 > h3:first-child {
      margin-top: 10px;
      font-size: 1.15rem;
    }

    /* ── l2blocks: the structural inserts (table / steps / highlights / pros & cons / card grids /
       inline CTA), each already an H3 unit of its own. These follow the prose, so every wrapper
       clears: a float photo from the last prose section must not be crossed by a border. v1 renders
       them bare, in source order. ── */
    .w6ihd0i {                         /* v2 — ruled stack */
      display: block;
      clear: both;
      padding-top: 24px;
      border-top: 1px solid var(--v6dr76);
      margin-top: 24px;
    }
    .w6ihd0i:first-child {
      padding-top: 0;
      border-top: 0;
      margin-top: 28px;
    }
    .w6ihd0i > h3:first-child { margin-top: 0; }

    .d73mor3 {                        /* v3 — annex: all inserts inside one bordered surface */
      clear: both;
      margin: 30px 0 0;
      padding: 4px 22px 22px;
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
    }
    .xantg {
      display: block;
      padding-top: 20px;
      border-top: 1px solid var(--v6dr76);
      margin-top: 20px;
    }
    .xantg:first-child {
      padding-top: 0;
      border-top: 0;
      margin-top: 0;
    }

    .ke4fca {                      /* v4 — first insert promoted, the rest stacked tighter */
      display: block;
      clear: both;
      margin-top: 28px;
      padding-bottom: 24px;
      border-bottom: 2px solid var(--v6dr76);
    }
    .ke4fca > h3:first-child { margin-top: 0; }
    .dizohyj {
      display: flex;
      flex-direction: column;
      gap: 18px;
      clear: both;
      margin-top: 22px;
    }
    .dizohyj:empty { display: none; }
    .hu9q7d1 { display: block; min-width: 0; }
    .hu9q7d1 > h3:first-child { margin-top: 0; }

    .g6mh181 {                       /* v5 — rotated plates, each opened by an accent hairline */
      display: flex;
      flex-direction: column;
      gap: 26px;
      clear: both;
      margin-top: 30px;
    }
    .sr2gc7n {
      display: block;
      min-width: 0;
      padding-top: 20px;
      border-top: 2px solid rgba(var(--lnnefn7p), .28);
    }
    .sr2gc7n > h3:first-child { margin-top: 0; }

    @media (max-width: 720px) {
      .d73mor3 { padding: 4px 14px 18px; }
      .kdenuk > h2:first-child { font-size: 1.55rem; }
    }

    /* ═══════════════════════════════════════════════════════
       BONUS PAGE BODY BLOCKS — bonus-lead / bonus-prose / bonus-blocks
       The /bonos/ (promotions cluster) page's OWN three body blocks, five variants each. Until now
       every 2nd-level page on a site rendered its body through the SAME generic l2lead/l2prose/
       l2blocks trio, so the bonus page, the app page and the slots hub shared one assembly; the
       bonus page now has its own, aliased onto the generic includes by build-site.m3k2zj (CLUSTER_BLOCK
       promotions → bonus).
       Each variant carries REAL visual weight, not just a different tag tree: rules, panels, rails,
       counter markers, heading type steps, a promoted first insert, and — specific to this page —
       a different promo-grid column count and a different pros/cons layout (two columns vs stacked).
       v1 is the deliberate no-treatment member of the set: it reproduces the generic rendering
       byte-for-byte, so a site that draws v1 keeps today's page exactly.
       Rules honoured by every class below:
         – LAYOUT ONLY, never colour: no fills, no tints, no light/dark backgrounds. The only colours
           used are the existing var(--v6dr76) and var(--l3vyu) tokens, on borders and markers.
         – The content column is the shared .container: nothing here sets a max-width or a horizontal
           padding on .container or on a wrapper standing in for the whole column, so the measure is
           identical on all five variants. Panels and cards inset only their own contents.
         – No FULL-WIDTH rule across the PROSE stream: the prose sections carry ~42%-wide float
           photos, and a horizontal border on a wrapper spans the whole column, so it would be
           painted straight through a picture. The prose variants therefore separate with spacing,
           indentation, heading type steps, counter markers and VERTICAL left rails only. Horizontal
           rules are used where nothing floats: the lead, and the blocks (whose wrappers all clear).
         – No horizontal scrolling, no full-bleed band, no negative margins, no side media column.
         – The pros & cons block is rendered verbatim from the block's own markup: no variant adds a
           heading level inside it (its column labels are .ghw27ua elements, not headings). Variants
           only re-flow its two columns via grid-template-columns.
         – Grid re-flows are scoped to min-width media queries, so the mobile stacking the base rules
           already do is never overridden.
       Every class here is referenced by one of the fifteen partials — a class with no rule is skipped
       by lib/anti-footprint.m3k2zj and would ship as the same literal token on all 46 sites.
    ════════════════════════════════════════════════════════ */

    /* ── bonus-lead: the offer's fact block (H2 + 2-3 paragraphs). Nothing floats inside it, so these
       variants may use real horizontal rules and a real box. v1 renders it bare. ── */
    .p2esid {                         /* v2 — offer rail: a heavy accent rule down the left edge */
      display: block;
      padding: 2px 0 2px 26px;
      border-left: 4px solid var(--l3vyu);
      margin: 0 0 44px;
    }
    .p2esid > h2:first-child { margin-top: 0; }

    .sbemyt {                         /* v3 — masthead: fenced by a heavy rule above … */
      display: block;
      padding-top: 26px;
      border-top: 4px solid var(--v6dr76);
    }
    .sbemyt > h2:first-child { margin-top: 0; }
    .elafj3 {                          /* … and a light one below */
      border: 0;
      border-top: 1px solid var(--v6dr76);
      margin: 12px 0 38px;
    }

    .hlx3ywai {                        /* v4 — key-terms panel: outline + radius, never a fill */
      display: block;
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      margin: 0 0 40px;
    }
    .z157w9t { display: block; padding: 8px 28px 14px; }
    .z157w9t > h2:first-child {    /* the panel's own title bar, ruled off from the terms */
      margin-top: 18px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--v6dr76);
    }

    .gu3g5cbk {                         /* v5 — lede: big type, closed by a wide accent rule */
      display: block;
      padding-bottom: 30px;
      border-bottom: 3px solid var(--l3vyu);
      margin-bottom: 40px;
    }
    .athpvbk { display: block; }
    .athpvbk > h2:first-child {
      margin-top: 0;
      font-size: 2.15rem;
      letter-spacing: -.02em;
    }
    .athpvbk > p:first-of-type {  /* the standfirst paragraph, set off by an indent + rule */
      font-size: 1.1rem;
      line-height: 1.72;
      padding-left: 18px;
      border-left: 2px solid var(--v6dr76);
    }

    /* ── bonus-prose: the H2/H3 offer sections. Separation here is spacing / indent / type / counter
       markers / vertical rails only — never a horizontal rule, which would cross a float photo.
       v1 renders them bare, in source order, on the default heading rhythm (36px before an H2). ── */
    .q0tvr0mk {                         /* v2 — wide-set chapters … */
      display: block;
      margin-top: 52px;
    }
    .q0tvr0mk:first-child { margin-top: 0; }
    .q0tvr0mk > h2:first-child { margin-top: 0; font-size: 1.85rem; }
    .ziwe47 {                         /* … with sub-topics hung off them on a vertical rail */
      display: block;
      margin-top: 10px;
      padding-left: 26px;
      border-left: 2px solid var(--v6dr76);
    }
    .ziwe47 > h3:first-child { margin-top: 12px; }

    .noh2wq {                       /* v3 — numbered ladder: one uniform step, every part marked */
      display: block;
      counter-reset: bnprung;
    }
    .lynufm1s {
      display: block;
      margin-top: 26px;
      counter-increment: bnprung;
    }
    .lynufm1s:first-child { margin-top: 0; }
    .lynufm1s > h2:first-child,
    .lynufm1s > h3:first-child { margin-top: 0; }
    .lynufm1s > h2:first-child::before,
    .lynufm1s > h3:first-child::before {
      content: counter(bnprung);
      display: inline-block;
      min-width: 2em;
      margin-right: .5em;
      padding: .12em 0;
      font-family: var(--hht9z1);
      font-size: .6em;
      font-weight: 700;
      line-height: 1.6;
      text-align: center;
      color: var(--l3vyu);
      border: 1px solid var(--l3vyu);
      border-radius: 999px;
      vertical-align: middle;
    }

    .a7g12 {                         /* v4 — opening part lifted out, set big, wide close … */
      display: block;
      margin-bottom: 46px;
    }
    .a7g12 > h2:first-child,
    .a7g12 > h3:first-child {
      margin-top: 0;
      font-size: 2.05rem;
      letter-spacing: -.015em;
    }
    .i1tqsl2 { display: block; }
    .s37gg {                         /* … and the rest folded tight, headings a step SMALLER */
      display: block;
      margin-top: 20px;
    }
    .s37gg > h2:first-child { margin-top: 0; font-size: 1.45rem; }
    .yc3kz {
      display: block;
      margin-top: 2px;
    }
    .yc3kz > h3:first-child { margin-top: 8px; font-size: 1.08rem; }

    .y4sk3 { display: block; }       /* v5 — big H2 step, each underscored; H3 hugs the segment */
    .pvf06 {
      display: block;
      margin-top: 40px;
    }
    .pvf06:first-child { margin-top: 0; }
    .pvf06 > h2:first-child {
      position: relative;
      margin-top: 0;
      padding-bottom: 12px;
      font-size: 2rem;
      letter-spacing: -.015em;
    }
    .pvf06 > h2:first-child::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      width: 64px;
      height: 3px;
      background: var(--l3vyu);
    }
    .lf55n5 {
      display: block;
      margin-top: 0;
    }
    .lf55n5 > h3:first-child { margin-top: 6px; font-size: 1.12rem; }

    /* ── bonus-blocks: the terms table, the claim steps, the offer list, the pros & cons columns, the
       promo-card grid and the inline CTA — each already an H3 unit of its own, and none of them
       carries a float, so horizontal rules and boxes are safe here. Every wrapper clears, so a float
       photo from the last prose section is never crossed. v1 renders them bare, in source order. ── */
    .mw9sb5cu {                        /* v2 — ONE offer sheet: outlined, accent head, inner rules */
      display: block;
      clear: both;
      margin: 44px 0 0;
      padding: 6px 26px 26px;
      border: 1px solid var(--v6dr76);
      border-top: 4px solid var(--l3vyu);
      border-radius: var(--y5a31f5);
    }
    .o6923g {
      display: block;
      padding-top: 26px;
      border-top: 1px solid var(--v6dr76);
      margin-top: 26px;
    }
    .o6923g:first-child {
      padding-top: 0;
      border-top: 0;
      margin-top: 0;
    }
    .o6923g > h3:first-child { margin-top: 18px; }

    .f7vi71f {                        /* v3 — ledger: no box, heavy rules, wide air between entries */
      display: block;
      clear: both;
      padding-top: 34px;
      border-top: 2px solid var(--v6dr76);
      margin-top: 34px;
    }
    .f7vi71f:first-child {
      padding-top: 0;
      border-top: 0;
      margin-top: 46px;
    }
    .f7vi71f > h3:first-child { margin-top: 0; }

    .yso8yx {                         /* v4 — first insert promoted: bigger heading, accent close */
      display: block;
      clear: both;
      margin-top: 44px;
      padding-bottom: 30px;
      border-bottom: 4px solid var(--l3vyu);
    }
    .yso8yx > h3:first-child {
      margin-top: 0;
      font-size: 1.6rem;
    }
    .z7jwdzak {                        /* … the rest as railed slats in one tight stack */
      display: flex;
      flex-direction: column;
      gap: 26px;
      clear: both;
      margin-top: 30px;
    }
    .z7jwdzak:empty { display: none; }
    .aonxaw {
      display: block;
      min-width: 0;
      padding-left: 22px;
      border-left: 3px solid var(--v6dr76);
    }
    .aonxaw > h3:first-child { margin-top: 0; }

    .hsi6nldb {                         /* v5 — rotated deck: every insert its own outlined card */
      display: flex;
      flex-direction: column;
      gap: 24px;
      clear: both;
      margin-top: 40px;
    }
    .aezx31e {
      display: block;
      min-width: 0;
      padding: 8px 24px 22px;
      border: 1px solid var(--v6dr76);
      border-radius: var(--m9wyy);
    }
    .aezx31e > h3:first-child { margin-top: 20px; }

    /* Per-variant re-flow of the two grids the bonus page owns. Scoped to min-width so the base
       mobile stacking (.aicwz auto-fit, .u05okcr @max-640) always wins on a phone.
       v1 keeps the defaults — auto-fit promo columns and two pros/cons columns. */
    @media (min-width: 721px) {
      .mw9sb5cu .aicwz { grid-template-columns: repeat(2, 1fr); }
      .f7vi71f .aicwz { grid-template-columns: repeat(4, 1fr); }
      .yso8yx .aicwz,
      .aonxaw .aicwz { grid-template-columns: repeat(2, 1fr); }
      .aezx31e .aicwz { grid-template-columns: repeat(3, 1fr); }
    }
    @media (min-width: 641px) {
      .mw9sb5cu .u05okcr { grid-template-columns: 1fr; }
      .f7vi71f .u05okcr { grid-template-columns: 1fr 1fr; }
      .yso8yx .u05okcr,
      .aonxaw .u05okcr { grid-template-columns: 1fr 1fr; }
      .aezx31e .u05okcr { grid-template-columns: 1fr; }
    }

    @media (max-width: 720px) {
      .mw9sb5cu { padding: 6px 15px 20px; }
      .aezx31e { padding: 8px 15px 18px; }
      .aonxaw { padding-left: 15px; }
      .ziwe47 { padding-left: 15px; }
      .yso8yx > h3:first-child { font-size: 1.3rem; }
      .pvf06 > h2:first-child { font-size: 1.55rem; }
      .a7g12 > h2:first-child,
      .a7g12 > h3:first-child { font-size: 1.6rem; }
      .athpvbk > h2:first-child { font-size: 1.6rem; }
      .z157w9t { padding: 8px 16px 12px; }
      .p2esid { padding-left: 15px; }
      .q0tvr0mk { margin-top: 38px; }
    }

/* ═══════════════════════════════════════════════════════
       SLOTS-PAGE BODY BLOCKS — slots-lead / slots-prose / slots-blocks
       (partials/slots-lead|slots-prose|slots-blocks/*-v1..kj6ae, five variants each)

       The /juegos/ page — and the /live-casino/ pages, which build-site.m3k2zj maps onto the same
       CLUSTER_BLOCK family — no longer shares the generic l2lead / l2prose / l2blocks renderings
       with every other 2nd-level page: it gets its OWN three body mustaches, so the largest part
       of the page assembles differently from /app/ and /bonos/ on the same site.

       What is special about this page: page.jhigee46.blocks[] mixes the SLOT-CARD GROUPS (an H3 plus a
       .fbrp6 of 8 cards, chunked and interleaved by build-site.m3k2zj l2SlotChunks) with the
       text-side structural inserts (data table, numbered steps, bulleted highlights, inline CTA).
       The variants tell those two kinds apart with :has(.fbrp6) — no build-side change, and
       the card markup (inline background-image thumbnail + cloaked /go/ play link carrying
       rel="nofollow sponsored noopener") is rendered verbatim, never rewritten.

       Коля / reviewer 2026-08-21 — "разделение вижу, отличий в мусташах не вижу": a different tag
       tree that paints nothing renders as the same page. Each variant below therefore carries a
       REAL visual signature, and the same signature runs through all three of its blocks:
         v1  reference — bare, exactly what the generic l2* v1 emits. Grid stays 5-across.
         v2  RAILED LEDGER — accent/border rails down the left of every prose chapter, the biggest
             H2 step (2.05rem) and the widest prose rhythm (46px), hairline-ruled text inserts,
             slot boards 3-across (big cards).
         v3  NUMBERED PANELS — a bordered counter chip before every H2, the tightest, most even
             prose ladder (30px, H2 1.5rem), each text insert inside its own bordered panel,
             slot boards 6-across (dense cards).
         v4  FEATURE BOX — the opening prose section boxed in a bordered panel with the largest
             heading on the page (2.2rem), indented H3 continuations, the first insert promoted
             into an accent-bordered feature box, slot boards 4-across (two clean rows).
         v5  UNDERLINED PLATES — thick accent underlines beneath every H2, square hanging markers
             on H3s, text inserts opened by a heavy left accent rule, slot boards 8-across in a
             single row with centred headings.
       Rules honoured by every class below:
         – LAYOUT ONLY, never colour: no fills, no tints, no light/dark backgrounds. The only two
           colours referenced are the existing var(--v6dr76) and var(--l3vyu) tokens, and only
           for hairlines, rails, marker bars and chip outlines.
         – The content column is the shared .container: nothing here sets a max-width or a padding
           on .container or on a wrapper standing in for it, so the measure is identical on all five.
           Only the panels, rails and indents inset their own contents.
         – The card grids stay WRAPPING CSS grids — no horizontal scrolling and no snap rails. The
           per-variant column counts use minmax(0,1fr) so a long slot name can never force overflow,
           and they apply from 1025px up; below that the shared responsive counts take over.
         – No full-bleed band, no negative margins, no side media column.
         – NO full-width horizontal rule on anything wrapping a prose SECTION: those carry ~42%-wide
           float photos and the rule would be painted straight through the picture. The prose
           variants separate with VERTICAL rails, indentation, heading type-scale steps, counter
           chips, heading underlines and spacing — never with a horizontal border. Horizontal
           hairlines appear only in the lead (which carries no image) and between the blocks, where
           every top-level wrapper clears the floats above it.
         – Wrappers that DO draw a box around prose (v2 rails, v4 opener panel) use display:flow-root
           so the section's own float is contained inside the box instead of bleeding past its edge.
       Every class here is referenced by one of the fifteen partials — a class with no rule is
       skipped by lib/anti-footprint.m3k2zj and would ship as the same literal token on all 46 sites.
    ════════════════════════════════════════════════════════ */

    /* ── slots-lead: the fact-based opening block (H2 + 2-3 paragraphs). No float photo lands in
       the lead (build-site.m3k2zj puts the intro image into sections[0]), so real horizontal dividers
       are safe here. v1 renders it bare, with no wrapper at all. ── */
    .nsqaty {                          /* v2 — magazine lede, closed by a heavy accent rule */
      display: block;
      margin: 0 0 34px;
      padding-bottom: 22px;
      border-bottom: 3px solid var(--l3vyu);
    }
    .y98h8 { display: block; min-width: 0; }
    .y98h8 > h2:first-child { margin-top: 0; font-size: 2rem; line-height: 1.14; }
    .y98h8 > p:last-child { margin-bottom: 0; }
    @media (min-width: 1120px) {
      .y98h8 { columns: 2; column-gap: 44px; }
      .y98h8 > h2 { column-span: all; }
      /* no break-inside:avoid — letting a paragraph flow across the gutter is what balances the
         two columns; forcing whole paragraphs left a ~130px hole under the shorter column. */
      .y98h8 > p { orphans: 2; widows: 2; }
    }

    .h8chzfo {                         /* v3 — masthead cut out between two rules, small heading */
      display: block;
      margin: 0 0 34px;
    }
    .n7qn7 {
      border: 0;
      border-top: 1px solid var(--v6dr76);
      height: 0;
      margin: 0;
    }
    .h8chzfo > .n7qn7:first-child {
      border-top-width: 3px;
      border-top-color: var(--l3vyu);
    }
    .fc98m8bi {
      display: block;
      min-width: 0;
      padding: 26px 0 6px;
    }
    .fc98m8bi > h2:first-child { margin-top: 0; font-size: 1.55rem; }
    .fc98m8bi > p:last-child { margin-bottom: 22px; }

    .epgxkmi {                          /* v4 — flagged masthead: accent bar above a 2.1rem H2 */
      display: block;
      margin-bottom: 50px;
    }
    .iqiws { display: block; min-width: 0; }
    .iqiws > h2:first-child {
      position: relative;
      margin-top: 0;
      padding-top: 24px;
      font-size: 2.1rem;
      line-height: 1.12;
    }
    .iqiws > h2:first-child::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 64px;
      height: 4px;
      background: var(--l3vyu);
    }
    .iqiws > p:first-of-type { font-size: 1.14rem; line-height: 1.72; }
    .iqiws > p:last-child { margin-bottom: 0; }

    .g9s7w5 {                         /* v5 — book setting: lede + first-line indents, ruled close */
      display: block;
      margin-bottom: 32px;
    }
    .ju7me97g {
      display: block;
      min-width: 0;
      padding-bottom: 24px;
      border-bottom: 1px solid var(--v6dr76);
    }
    .ju7me97g > h2:first-child { margin-top: 0; font-size: 1.45rem; }
    .ju7me97g > p:first-of-type { font-size: 1.1rem; line-height: 1.7; }
    .ju7me97g > p + p { text-indent: 1.8em; margin-bottom: 10px; }
    .ju7me97g > p:last-child { margin-bottom: 0; }

    /* ── slots-prose: the H2/H3 prose sections, each carrying its own ~42% float photo. Nothing
       below draws a horizontal rule across the column — the devices are vertical rails, indents,
       counter chips, heading underlines, hanging markers and type scale. v1 renders them bare. ── */
    .oehxn {                          /* v2 — chapters railed down the left, widest rhythm */
      display: flow-root;
      margin-top: 46px;
      padding-left: 24px;
      border-left: 3px solid var(--l3vyu);
    }
    .oehxn:first-child { margin-top: 0; }
    .rkic4pt { display: block; min-width: 0; }
    .rkic4pt > h2:first-child { margin-top: 4px; font-size: 2.05rem; line-height: 1.12; }
    .ehtafg {                           /* the continuation keeps the rail, in the quieter tone */
      display: flow-root;
      margin-top: 0;
      padding-left: 24px;
      border-left: 3px solid var(--v6dr76);
    }
    .ld5nhbt7 { display: block; min-width: 0; }
    .ld5nhbt7 > h3:first-child { margin-top: 18px; font-size: 1.3rem; }

    .z2v065q9 {                        /* v3 — even ladder, every H2 numbered by a bordered chip */
      display: block;
      counter-reset: sgp-chapter;
    }
    .q13pgfx {
      display: block;
      min-width: 0;
      margin-top: 30px;
    }
    .q13pgfx:first-child { margin-top: 0; }
    .q13pgfx > h2:first-child {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-top: 0;
      font-size: 1.5rem;
      line-height: 1.2;
    }
    .q13pgfx > h2:first-child::before {
      counter-increment: sgp-chapter;
      content: counter(sgp-chapter);
      flex: 0 0 auto;
      border: 2px solid var(--l3vyu);
      border-radius: var(--il3tyi6u);
      padding: 1px 10px;
      font-family: var(--hht9z1);
      font-size: .8rem;
      font-weight: 700;
      line-height: 1.5;
    }
    .q13pgfx > h3:first-child { margin-top: 0; font-size: 1.18rem; }

    .btx8830i {                          /* v4 — the opening section boxed, biggest heading on page */
      display: flow-root;
      min-width: 0;
      margin-bottom: 40px;
      padding: 24px 26px;
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
    }
    .btx8830i > h2:first-child,
    .btx8830i > h3:first-child { margin-top: 0; font-size: 2.2rem; line-height: 1.12; }
    .btx8830i > :last-child { margin-bottom: 0; }
    .sc6aig2 { display: block; }
    .av85k {
      display: block;
      margin-top: 28px;
    }
    .xsmi9it { display: block; min-width: 0; }
    .xsmi9it > h2:first-child { margin-top: 0; font-size: 1.6rem; }
    .xlpf2pb {                   /* continuations stepped in and stepped down */
      display: block;
      min-width: 0;
      margin-top: 0;
      padding-left: 28px;
    }
    .xlpf2pb > h3:first-child { margin-top: 14px; font-size: 1.05rem; letter-spacing: .02em; }

    .xi3xu { display: block; }        /* v5 — every H2 underlined, every H3 given a hanging square */
    .cdqhubgw {
      display: block;
      min-width: 0;
      margin-top: 40px;
    }
    .cdqhubgw:first-child { margin-top: 0; }
    .cdqhubgw > h2:first-child {
      position: relative;
      margin-top: 0;
      padding-bottom: 16px;
      font-size: 1.9rem;
      line-height: 1.14;
    }
    .cdqhubgw > h2:first-child::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      width: 72px;
      height: 4px;
      background: var(--l3vyu);
    }
    .ge3lfsc {
      display: block;
      min-width: 0;
      margin-top: 0;
    }
    .ge3lfsc > h3:first-child {
      position: relative;
      margin-top: 16px;
      padding-left: 24px;
      font-size: 1.22rem;
    }
    .ge3lfsc > h3:first-child::before {
      content: "";
      position: absolute;
      left: 0;
      top: .5em;
      width: 11px;
      height: 11px;
      border: 3px solid var(--l3vyu);
      border-radius: 2px;
    }

    /* ── slots-blocks: the structural inserts AND the interleaved 8-card slot groups. Every
       top-level wrapper clears, so no hairline is ever painted through the last prose float.
       v1 renders the inserts bare, in source order, and leaves the grid at its shared width. ── */
    .k6b6e {                           /* v2 — ruled ledger; the card boards break the rules */
      display: flow-root;
      clear: both;
      margin-top: 26px;
      padding-top: 26px;
      border-top: 1px solid var(--v6dr76);
    }
    .k6b6e:first-child {
      margin-top: 30px;
      padding-top: 0;
      border-top: 0;
    }
    .qhof6puh { display: block; min-width: 0; }
    .qhof6puh > h3:first-child { margin-top: 0; font-size: 1.35rem; }
    .k6b6e:has(.fbrp6) {          /* a slot-card group is ruled APART, not ruled off */
      margin-top: 40px;
      padding-top: 0;
      border-top: 0;
    }
    .k6b6e:has(.prose-cta) {           /* the inline CTA is already a bordered card of its own */
      margin-top: 8px;
      padding-top: 0;
      border-top: 0;
    }
    @media (min-width: 1025px) {
      .k6b6e .fbrp6 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
    }

    .pzgdll {                         /* v3 — every text insert panelled, the cards left open */
      display: flex;
      flex-direction: column;
      gap: 26px;
      clear: both;
      margin-top: 32px;
    }
    .hf8h8wt { display: flow-root; min-width: 0; }
    .hf8h8wt > h3:first-child { margin-top: 0; }
    .hf8h8wt:not(:has(.fbrp6)):not(:has(.prose-cta)) {
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      padding: 20px 24px;
    }
    .hf8h8wt:not(:has(.fbrp6)):not(:has(.prose-cta)) > :last-child { margin-bottom: 0; }
    .hf8h8wt:has(.fbrp6) > h3:first-child { font-size: 1.05rem; letter-spacing: .05em; }
    @media (min-width: 1025px) {
      .hf8h8wt .fbrp6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
    }

    .exwlfx {                       /* v4 — first insert promoted into an accent-bordered box */
      display: flow-root;
      clear: both;
      margin-top: 32px;
      padding: 22px 24px;
      border: 2px solid var(--l3vyu);
      border-radius: var(--y5a31f5);
    }
    .exwlfx > h3:first-child { margin-top: 0; font-size: 1.6rem; }
    .exwlfx > :last-child { margin-bottom: 0; }
    .aym2wj {
      display: flex;
      flex-direction: column;
      gap: 18px;
      clear: both;
      margin-top: 26px;
    }
    .aym2wj:empty { display: none; }
    .nquoz { display: flow-root; min-width: 0; }
    .wn2tsn { display: block; min-width: 0; }
    .wn2tsn > h3:first-child {
      position: relative;
      margin-top: 0;
      padding-left: 20px;
      font-size: 1.15rem;
    }
    .wn2tsn > h3:first-child::before {
      content: "";
      position: absolute;
      left: 0;
      top: .62em;
      width: 12px;
      height: 3px;
      background: var(--l3vyu);
    }
    .wn2tsn > :last-child { margin-bottom: 0; }
    @media (min-width: 1025px) {
      .exwlfx .fbrp6,
      .nquoz .fbrp6 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
    }

    .onk36cji {                         /* v5 — text plates opened by a heavy rail, boards centred */
      display: flex;
      flex-direction: column;
      gap: 34px;
      clear: both;
      margin-top: 34px;
    }
    .mtx3d7 { display: flow-root; min-width: 0; }
    .xe1vjz { display: block; min-width: 0; }
    .xe1vjz > h3:first-child { margin-top: 0; }
    .xe1vjz > :last-child { margin-bottom: 0; }
    .mtx3d7:not(:has(.fbrp6)):not(:has(.prose-cta)) {
      border-left: 5px solid var(--l3vyu);
      padding-left: 26px;
    }
    .mtx3d7:has(.fbrp6) { padding: 10px 0; }
    .mtx3d7:has(.fbrp6) .xe1vjz > h3:first-child { text-align: center; font-size: 1.45rem; }
    @media (min-width: 1180px) {
      .mtx3d7 .fbrp6 { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
    }
    @media (min-width: 1025px) and (max-width: 1179px) {
      .mtx3d7 .fbrp6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
    }

    /* narrow screens: the rails, indents and panels stay, but tightened; the big heading steps are
       capped so a 2.2rem serif H2 never runs off a 390px column. */
    @media (max-width: 720px) {
      .fc98m8bi { padding-top: 18px; }
      .oehxn, .ehtafg { padding-left: 14px; }
      .btx8830i { padding: 16px 16px; }
      .xlpf2pb { padding-left: 16px; }
      .hf8h8wt:not(:has(.fbrp6)):not(:has(.prose-cta)) { padding: 14px 16px; }
      .exwlfx { padding: 16px 16px; }
      .mtx3d7:not(:has(.fbrp6)):not(:has(.prose-cta)) { padding-left: 14px; }
    }
    @media (max-width: 600px) {
      .y98h8 > h2:first-child,
      .iqiws > h2:first-child { font-size: 1.5rem; }
      .rkic4pt > h2:first-child,
      .btx8830i > h2:first-child,
      .btx8830i > h3:first-child,
      .cdqhubgw > h2:first-child { font-size: 1.5rem; }
      .exwlfx > h3:first-child,
      .mtx3d7:has(.fbrp6) .xe1vjz > h3:first-child { font-size: 1.25rem; }
    }
    /* ═══════════════════════════════════════════════════════
       /app/ BODY BLOCKS — app-lead / app-prose / app-blocks
       (partials/app-lead|app-prose|app-blocks/*-v1..kj6ae, five variants each)

       The mobile-app page gets its OWN three body mustaches, aliased onto the generic
       l2lead / l2prose / l2blocks includes by build-site.m3k2zj CLUSTER_BLOCK, so /app/ arranges its
       body differently from /juegos/ and /bonos/ on the same site instead of all three sharing one
       assembly across the network.

       The five variants must be VISIBLY different with the two pages open side by side, not merely
       different in the DOM (Коля's reviewer: "разделение вижу, отличий в мусташах не вижу"). Each
       therefore carries real weight — its own separator device, its own inset, its own vertical
       rhythm and its own type scale:
         v1  legacy reference, no wrapper at all, nothing painted (kept byte-identical so a site
             that already renders this arrangement is not reflowed)
         v2  counted / ruled: hairline-divided even ladder in the prose, numbered units in the blocks
         v3  railed: thick accent rule down the left edge of every chapter and every plate
         v4  promoted: the opening section and the opening insert lifted into bordered panels, the
             remainder tightened and indented behind light rules
         v5  numbered run: CSS-counter chapter numerals, biggest type step, biggest gaps

       Rules honoured by every class below:
         – LAYOUT ONLY, never colour: no fills, no tints, no light or dark surfaces. Every colour is
           an existing token — var(--v6dr76) for hairlines, var(--l3vyu) / rgba with
           var(--lnnefn7p) for the accent rails, ticks and numerals.
         – The content column stays the shared .container: nothing here sets a max-width or a padding
           on .container or on a wrapper standing in for it. Only a variant's own group boxes inset.
         – FLOAT SAFETY. The prose sections carry ~42%-wide float photos. A border is drawn on a
           prose wrapper ONLY where that wrapper is both a block formatting context (display:
           flow-root, or a flex item) and cleared — then the picture is inside the box and no line
           can cross it. Where that is not guaranteed the variant uses a LEFT rule (which runs beside
           the column, never across it), padding, or plain whitespace instead.
         – No horizontal scrolling (min-width:0 on every flex child; the data table keeps its own
           overflow-x), no full-bleed band, no negative margins, no side media column.
         – Zero language in CSS: the only generated content is a bare decimal numeral from a counter
           and empty decorative bars. The two counters are named as DASHED idents (--dp11yfd8 / --c4fjlrp)
           on purpose: lib/anti-footprint.m3k2zj renames every --bjzj37yx token it finds in the CSS, so the
           counter identifiers are seeded per site instead of shipping as the same literal on all 46.
       Every class here is referenced by one of the fifteen app-* partials — a class with no rule is
       skipped by lib/anti-footprint.m3k2zj and would ship as the same literal token on all 46 sites.
    ════════════════════════════════════════════════════════ */

    /* ── app-lead: the fact-based opening block (H2 + 2-3 paragraphs). Nothing floats inside it, so
       real horizontal rules and four-sided borders are safe in this family. v1 renders it bare. ── */
    .bcj28 {                     /* v2 — tick-closed stack, tightest close of the five */
      display: block;
      margin-bottom: 26px;
    }
    .pxeig3 {
      display: block;
      padding-bottom: 14px;
    }
    .pxeig3 > h2:first-child { margin-top: 0; }
    .epbhednb {
      width: 72px;
      height: 5px;
      border-radius: 3px;
      background: var(--l3vyu);
    }
    .w31tp3iq {                      /* v3 — thick accent rail down the left edge */
      display: block;
      border-left: 4px solid var(--l3vyu);
      padding: 4px 0 4px 24px;
      margin-bottom: 30px;
    }
    .gmwwewb { display: block; }
    .gmwwewb > h2:first-child { margin-top: 0; }
    .scjf0 {                      /* v4 — four-sided hairline panel, stepped-up H2, widest close */
      display: block;
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      padding: 28px 30px 12px;
      margin-bottom: 48px;
    }
    .bmslm8 { display: block; }
    .bmslm8 > h2:first-child {
      margin-top: 0;
      font-size: 2rem;
    }
    .cjwuv9t {                      /* v5 — bracketed between two rules, lede first paragraph */
      display: block;
      border-top: 3px solid var(--l3vyu);
      padding: 26px 0 0;
      margin-bottom: 34px;
    }
    .ztfb8qa { display: block; }
    .ztfb8qa > h2:first-child { margin-top: 0; }
    .ztfb8qa > p:first-of-type { font-size: 1.09rem; line-height: 1.75; }
    .a7ce2 {
      border: 0;
      border-top: 1px solid var(--v6dr76);
      margin: 14px 0 0;
    }

    /* ── app-prose: the H2/H3 prose sections, each carrying its own float photo. Horizontal rules
       appear ONLY in v2, where every part is a flex item and therefore fully contains its own
       picture; the other variants separate with left rules, insets and whitespace. ── */
    .tmi1nj {                    /* v2 — hairline-divided even ladder, uniform rhythm */
      display: flex;
      flex-direction: column;
      gap: 42px;
    }
    .ti81y7d {
      display: flow-root;
      min-width: 0;
    }
    .ti81y7d + .ti81y7d {
      border-top: 1px solid var(--v6dr76);
      padding-top: 48px;
    }
    .ti81y7d > h2:first-child,
    .ti81y7d > h3:first-child { margin-top: 0; }

    .wav6vv {                      /* v3 — railed chapter, widest chapter-to-chapter gap */
      display: flow-root;
      clear: both;
      margin-top: 26px;
      border-left: 4px solid var(--l3vyu);
      padding-left: 26px;
    }
    .wav6vv:first-child { margin-top: 0; }
    .evyhjr8 { display: block; }
    .evyhjr8 > h2:first-child { margin-top: 0; }
    .zxtppcuc {                     /* v3 — continuation aligned under the chapter copy, no rail */
      display: flow-root;
      clear: both;
      margin-top: 6px;
      padding-left: 30px;
    }
    .zxtppcuc > h3:first-child { margin-top: 0; }

    .mtnrav {                      /* v4 — opening section promoted into a four-sided panel */
      display: flow-root;
      clear: both;
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      padding: 26px 28px 10px;
      margin-bottom: 40px;
    }
    .mtnrav > h2:first-child,
    .mtnrav > h3:first-child { margin-top: 0; }
    .kwrqo { display: block; }
    .kwrqo:empty { display: none; }
    .zlsqn {
      display: flow-root;
      clear: both;
      margin-top: 44px;
    }
    .zlsqn > h2:first-child { margin-top: 0; }
    .x1ox6snl {                     /* v4 — continuation inset behind a light vertical rule */
      display: flow-root;
      clear: both;
      margin-top: 24px;
      border-left: 2px solid var(--v6dr76);
      padding-left: 24px;
    }
    .x1ox6snl > h3:first-child { margin-top: 0; }

    .zvq8eo {                       /* v5 — numbered run: one tag per part, level as a modifier */
      display: block;
      counter-reset: --dp11yfd8;
    }
    .ze5sijd {
      display: flow-root;
      clear: both;
      min-width: 0;
    }
    .kzz93m { display: block; }
    .wg2y7q {
      position: relative;
      counter-increment: --dp11yfd8;
      margin-top: 40px;
      padding-top: 56px;
    }
    .wg2y7q::before {
      content: counter(--dp11yfd8, decimal-leading-zero);
      position: absolute;
      top: 0;
      left: 0;
      font-family: var(--l2yoi);
      font-size: 1rem;
      font-weight: 800;
      letter-spacing: .18em;
      line-height: 1;
      color: var(--l3vyu);
    }
    .wg2y7q .kzz93m > h2:first-child {
      margin-top: 0;
      font-size: 2rem;
    }
    .b7r7i {
      margin-top: 12px;
      border-left: 2px solid rgba(var(--lnnefn7p), .35);
      padding-left: 22px;
    }
    .b7r7i .kzz93m > h3:first-child {
      margin-top: 0;
      font-size: 1rem;
      letter-spacing: .07em;
      text-transform: uppercase;
    }

    /* ── app-blocks: the structural inserts (table / steps / highlights / feature grid / CTA). They
       all clear the prose floats, so rules and bordered surfaces are safe throughout this family. ── */
    .t1lad9m {                     /* v2 — numbered units in a wide-gapped series */
      display: flex;
      flex-direction: column;
      gap: 56px;
      clear: both;
      margin-top: 36px;
      counter-reset: --c4fjlrp;
    }
    .z0hx0m {
      display: flow-root;
      min-width: 0;
      position: relative;
      counter-increment: --c4fjlrp;
      padding: 4px 0 0 60px;
    }
    .z0hx0m::before {
      content: counter(--c4fjlrp, decimal-leading-zero);
      position: absolute;
      top: 0;
      left: 0;
      font-family: var(--l2yoi);
      font-size: 1.6rem;
      font-weight: 800;
      line-height: 1;
      color: var(--l3vyu);
    }
    .z0hx0m::after {
      content: "";
      position: absolute;
      top: 32px;
      left: 0;
      width: 34px;
      height: 4px;
      border-radius: 2px;
      background: var(--l3vyu);
    }
    .z0hx0m > h3:first-child { margin-top: 0; }

    .qqac68fo {                     /* v3 — every insert inside ONE bordered enclosure */
      display: block;
      clear: both;
      margin-top: 34px;
      border: 1px solid var(--v6dr76);
      border-radius: var(--y5a31f5);
      padding: 26px 26px 12px;
    }
    .gqqqvs {
      display: flow-root;
      min-width: 0;
      margin-top: 18px;
      padding-top: 18px;
      border-top: 1px solid var(--v6dr76);
    }
    .gqqqvs:first-child {
      margin-top: 0;
      padding-top: 0;
      border-top: 0;
    }
    .gqqqvs > h3:first-child { margin-top: 0; }

    .sbv7i8 {                   /* v4 — first insert promoted, stepped-up H3, heavy close */
      display: flow-root;
      clear: both;
      margin-top: 34px;
      padding-bottom: 26px;
      border-bottom: 3px solid var(--l3vyu);
    }
    .haw5k { display: block; }
    .haw5k > h3:first-child {
      margin-top: 0;
      font-size: 1.6rem;
    }
    .w64crjsq { display: block; }
    .w64crjsq:empty { display: none; }
    .oh44z3 {                      /* v4 — the remainder as a tight hairline-ruled list */
      display: flow-root;
      min-width: 0;
      margin-top: 30px;
      padding-top: 30px;
      border-top: 1px solid var(--v6dr76);
    }
    .oh44z3 > h3:first-child { margin-top: 0; }

    .m2ytr7 {                    /* v5 — each insert a railed figure plate */
      display: flex;
      flex-direction: column;
      gap: 40px;
      clear: both;
      margin-top: 32px;
    }
    .s8lci6n {
      display: flow-root;
      min-width: 0;
      margin: 0;
      padding-left: 24px;
      border-left: 4px solid var(--l3vyu);
    }
    .n2tlc { display: block; }
    .n2tlc > h3:first-child { margin-top: 0; }

    @media (max-width: 720px) {
      .w31tp3iq { padding-left: 16px; }
      .scjf0 { padding: 20px 16px 6px; }
      .bmslm8 > h2:first-child { font-size: 1.55rem; }
      .wav6vv { padding-left: 16px; margin-top: 22px; }
      .zxtppcuc { padding-left: 20px; }
      .mtnrav { padding: 18px 16px 4px; }
      .x1ox6snl { padding-left: 16px; }
      .wg2y7q .kzz93m > h2:first-child { font-size: 1.5rem; }
      .b7r7i { padding-left: 14px; }
      .z0hx0m { padding: 44px 0 0; }
      .z0hx0m::before { font-size: 1.3rem; }
      .qqac68fo { padding: 18px 8px 6px; }
      .haw5k > h3:first-child { font-size: 1.35rem; }
      .s8lci6n { padding-left: 6px; }
    }

/* seeded images */
.is0qells{background:url(/img/tile-slot.jpg) center/cover;border:0}.tyzkr,.w0cbs6n,.lgd4v9x{display:none!important}
