html, body { overflow-x: hidden; max-width: 100vw; }

  :root {
    --c1: var(--color-brand-primary);
    --c2: var(--color-brand-secondary);
    --ca: var(--color-brand-accent);
    --cab: var(--color-brand-accent-bright);
    --bg: var(--color-neutral-900);
    --bg2: var(--color-neutral-800);
    --fg: var(--color-text-primary);
    --fg2: var(--color-text-secondary);
    --bdr: var(--color-border);
    --bdr2: var(--color-border-bright);
    --sp1: var(--spacing-sm);
    --sp2: var(--spacing-md);
    --sp3: var(--spacing-lg);
    --sp4: var(--spacing-xl);
    --sp5: var(--spacing-2xl);
    --sp6: var(--spacing-3xl);
    --rad1: var(--radius-md);
    --rad2: var(--radius-lg);
    --rad3: var(--radius-xl);
    --sh1: var(--shadow-md);
    --sh2: var(--shadow-lg);
    --sh3: var(--shadow-xl);
    --glow: var(--shadow-glow);
    --tr: var(--transition-base);
  }

  /* ── HERO ─────────────────────────────────────── */
  .pg-hero {
    align-items: center;
    background:
      radial-gradient(ellipse 80% 60% at 50% 0%, color-mix(in srgb, var(--ca) 18%, transparent), transparent 70%),
      linear-gradient(160deg, var(--bg2) 0%, var(--bg) 60%);
    border-bottom: 1px solid var(--bdr);
    border-radius: var(--rad3);
    display: flex;
    flex-direction: column;
    gap: var(--sp2);
    margin-bottom: var(--sp6);
    overflow: hidden;
    padding: var(--sp6) var(--sp2) var(--sp5);
    position: relative;
    text-align: center;
  }

  .pg-hero__badge {
    align-items: center;
    background: color-mix(in srgb, var(--ca) 15%, transparent);
    border: 1px solid color-mix(in srgb, var(--ca) 40%, transparent);
    border-radius: var(--radius-full);
    color: var(--cab);
    display: inline-flex;
    font-family: var(--font-body);
    font-size: .75rem;
    font-weight: 700;
    gap: .4rem;
    letter-spacing: .08em;
    padding: .35rem 1rem;
    text-transform: uppercase;
  }

  .pg-hero__badge-dot {
    animation: pulse-dot 1.6s ease-in-out infinite;
    background: var(--color-success);
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
    height: 7px;
    width: 7px;
  }

  @keyframes pulse-dot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .5; transform: scale(1.35); }
  }

  .pg-hero h1 {
    color: var(--fg);
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 5vw, 3rem);
    font-weight: 800;
    line-height: 1.15;
    margin: 0;
    max-width: 700px;
  }

  .pg-hero__sub {
    color: var(--fg2);
    font-size: clamp(.95rem, 2vw, 1.1rem);
    line-height: 1.6;
    max-width: 600px;
  }

  .pg-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp2);
    justify-content: center;
    margin-top: var(--sp1);
  }

  .pg-hero__stat {
    background: color-mix(in srgb, var(--color-surface-card) 80%, transparent);
    border: 1px solid var(--bdr);
    border-radius: var(--rad1);
    padding: .6rem 1.2rem;
    text-align: center;
  }

  .pg-hero__stat-val {
    color: var(--cab);
    display: block;
    font-family: var(--font-heading);
    font-size: 1.4rem;
    font-weight: 800;
  }

  .pg-hero__stat-lbl {
    color: var(--fg2);
    font-size: .75rem;
    letter-spacing: .05em;
    text-transform: uppercase;
  }

  /* ── SECTION COMMONS ──────────────────────────── */
  .pg-section {
    margin-bottom: var(--sp6);
  }

  .pg-section__title {
    color: var(--fg);
    font-family: var(--font-heading);
    font-size: clamp(1.3rem, 3vw, 1.9rem);
    font-weight: 700;
    margin: 0 0 var(--sp3);
    position: relative;
  }

  .pg-section__title::after {
    background: linear-gradient(90deg, var(--ca), transparent);
    border-radius: 2px;
    bottom: -.5rem;
    content: '';
    display: block;
    height: 3px;
    left: 0;
    position: absolute;
    width: 3.5rem;
  }

  /* ── SLOTS GRID ───────────────────────────────── */
  .slots-grid {
    display: grid;
    gap: var(--sp2);
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    margin-top: var(--sp3);
  }

  .slot-card {
    align-items: center;
    background: var(--color-surface-card);
    border: 1px solid var(--bdr);
    border-radius: var(--rad2);
    box-shadow: var(--sh1);
    cursor: default;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: var(--sp2) var(--sp1);
    text-align: center;
    transition: border-color var(--tr), box-shadow var(--tr), transform var(--tr);
  }

  .slot-card:hover {
    border-color: var(--bdr2);
    box-shadow: var(--sh3);
    transform: translateY(-4px);
  }

  .slot-card__icon {
    align-items: center;
    background: linear-gradient(135deg, color-mix(in srgb, var(--ca) 20%, transparent), color-mix(in srgb, var(--c2) 15%, transparent));
    border-radius: var(--rad1);
    color: var(--cab);
    display: flex;
    font-size: 1.6rem;
    height: 52px;
    justify-content: center;
    width: 52px;
  }

  .slot-card__name {
    color: var(--fg);
    font-family: var(--font-heading);
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.3;
  }

  .slot-card__tag {
    background: color-mix(in srgb, var(--color-success) 15%, transparent);
    border-radius: var(--radius-full);
    color: var(--color-success);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .06em;
    padding: .2rem .6rem;
    text-transform: uppercase;
  }

  .slot-card__tag--hot {
    background: color-mix(in srgb, var(--color-warning) 15%, transparent);
    color: var(--color-warning);
  }

  .pg-megaways {
    align-items: center;
    background: linear-gradient(135deg, color-mix(in srgb, var(--ca) 12%, var(--color-surface-card)), var(--color-surface-card));
    border: 1px solid color-mix(in srgb, var(--ca) 30%, transparent);
    border-radius: var(--rad2);
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp2);
    justify-content: space-between;
    margin-top: var(--sp3);
    padding: var(--sp2) var(--sp3);
  }

  .pg-megaways__text { color: var(--fg2); font-size: .95rem; }
  .pg-megaways__count {
    color: var(--cab);
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 800;
  }

  /* ── TABLE GAMES ──────────────────────────────── */
  .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  .games-table {
    border-collapse: collapse;
    font-size: .9rem;
    min-width: 480px;
    width: 100%;
  }

  .games-table thead tr {
    background: linear-gradient(90deg, color-mix(in srgb, var(--ca) 20%, transparent), color-mix(in srgb, var(--c1) 10%, transparent));
  }

  .games-table th {
    color: var(--cab);
    font-family: var(--font-heading);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .07em;
    padding: .85rem 1rem;
    text-align: left;
    text-transform: uppercase;
  }

  .games-table tbody tr {
    border-bottom: 1px solid var(--bdr);
    transition: background var(--tr);
  }

  .games-table tbody tr:hover { background: var(--color-surface-card-hover); }

  .games-table td {
    color: var(--fg);
    padding: .85rem 1rem;
    vertical-align: middle;
  }

  .games-table td:first-child { color: var(--fg); font-weight: 600; }

  .badge-pill {
    background: color-mix(in srgb, var(--ca) 15%, transparent);
    border: 1px solid color-mix(in srgb, var(--ca) 35%, transparent);
    border-radius: var(--radius-full);
    color: var(--cab);
    font-size: .72rem;
    font-weight: 700;
    padding: .2rem .65rem;
  }

  /* ── LIVE CASINO TABS ─────────────────────────── */
  .live-tabs { margin-bottom: var(--sp3); }

  .live-tabs__nav {
    border-bottom: 1px solid var(--bdr);
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    margin-bottom: var(--sp3);
  }

  .live-tab-btn {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--fg2);
    cursor: pointer;
    font-family: var(--font-body);
    font-size: .85rem;
    font-weight: 600;
    margin-bottom: -1px;
    padding: .6rem 1rem;
    transition: color var(--tr), border-color var(--tr);
  }

  .live-tab-btn:hover { color: var(--fg); }
  .live-tab-btn.active { border-color: var(--ca); color: var(--cab); }

  .live-tab-panel { display: none; }
  .live-tab-panel.isOpen { display: block; }

  .live-cards {
    display: grid;
    gap: var(--sp2);
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }

  .live-card {
    background: var(--color-surface-card);
    border: 1px solid var(--bdr);
    border-radius: var(--rad2);
    box-shadow: var(--sh1);
    overflow: hidden;
    transition: box-shadow var(--tr), transform var(--tr);
  }

  .live-card:hover { box-shadow: var(--sh3); transform: translateY(-3px); }

  .live-card__header {
    align-items: center;
    background: linear-gradient(135deg, color-mix(in srgb, var(--c1) 30%, var(--bg2)), var(--bg2));
    display: flex;
    height: 70px;
    justify-content: center;
    padding: var(--sp1);
  }

  .live-card__emoji { font-size: 2rem; line-height: 1; }

  .live-card__body { padding: var(--sp1) var(--sp2); }

  .live-card__name {
    color: var(--fg);
    font-family: var(--font-heading);
    font-size: .9rem;
    font-weight: 700;
    margin-bottom: .25rem;
  }

  .live-card__desc { color: var(--fg2); font-size: .78rem; line-height: 1.4; }

  /* ── PROVIDERS MARQUEE ────────────────────────── */
  .providers-wrap {
    background: var(--color-surface-card);
    border: 1px solid var(--bdr);
    border-radius: var(--rad2);
    overflow: hidden;
    padding: var(--sp3) 0;
  }

  .providers-track {
    animation: marquee 20s linear infinite;
    display: flex;
    gap: var(--sp4);
    width: max-content;
  }

  .providers-track:hover { animation-play-state: paused; }

  @keyframes marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
  }

  .provider-chip {
    align-items: center;
    background: color-mix(in srgb, var(--ca) 8%, var(--bg2));
    border: 1px solid var(--bdr);
    border-radius: var(--rad1);
    color: var(--fg);
    display: flex;
    font-family: var(--font-heading);
    font-size: .85rem;
    font-weight: 700;
    gap: .5rem;
    padding: .55rem 1.2rem;
    white-space: nowrap;
  }

  .provider-chip__dot {
    background: var(--ca);
    border-radius: 50%;
    flex-shrink: 0;
    height: 6px;
    width: 6px;
  }

  /* ── DEMO HIGHLIGHT BOX ───────────────────────── */
  .demo-split {
    display: grid;
    gap: var(--sp3);
    grid-template-columns: 1fr;
    margin-top: var(--sp3);
  }

  @media(min-width: 768px) { .demo-split { grid-template-columns: 1fr 1fr; } }

  .demo-box {
    border-radius: var(--rad2);
    padding: var(--sp3);
  }

  .demo-box--free {
    background: linear-gradient(135deg, color-mix(in srgb, var(--color-success) 10%, var(--color-surface-card)), var(--color-surface-card));
    border: 1px solid color-mix(in srgb, var(--color-success) 30%, transparent);
  }

  .demo-box--real {
    background: linear-gradient(135deg, color-mix(in srgb, var(--ca) 15%, var(--color-surface-card)), var(--color-surface-card));
    border: 1px solid color-mix(in srgb, var(--ca) 40%, transparent);
  }

  .demo-box__icon { font-size: 2rem; margin-bottom: .5rem; }

  .demo-box__title {
    color: var(--fg);
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: .5rem;
  }

  .demo-box__desc { color: var(--fg2); font-size: .9rem; line-height: 1.6; }

  .demo-box__bonus {
    background: color-mix(in srgb, var(--ca) 15%, transparent);
    border-radius: var(--rad1);
    color: var(--cab);
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 800;
    margin-top: var(--sp1);
    padding: .5rem .85rem;
  }

  /* ── FAQ ACCORDION ────────────────────────────── */
  .faq-list { display: flex; flex-direction: column; gap: .75rem; }

  .faq-item {
    background: var(--color-surface-card);
    border: 1px solid var(--bdr);
    border-radius: var(--rad1);
    overflow: hidden;
    transition: border-color var(--tr);
  }

  .faq-item:has(.faq-body.isOpen) { border-color: var(--bdr2); }

  .faq-q {
    align-items: center;
    background: transparent;
    border: none;
    color: var(--fg);
    cursor: pointer;
    display: flex;
    font-family: var(--font-body);
    font-size: .95rem;
    font-weight: 600;
    gap: var(--sp1);
    justify-content: space-between;
    padding: var(--sp2) var(--sp3);
    text-align: left;
    width: 100%;
  }

  .faq-q__arrow {
    border: 2px solid var(--bdr2);
    border-radius: 50%;
    color: var(--ca);
    flex-shrink: 0;
    font-size: 1rem;
    height: 26px;
    line-height: 22px;
    text-align: center;
    transition: transform var(--tr);
    width: 26px;
  }

  .faq-body.isOpen ~ .faq-q .faq-q__arrow,
  .faq-item:has(.faq-body.isOpen) .faq-q__arrow { transform: rotate(180deg); }

  .faq-body {
    color: var(--fg2);
    display: none;
    font-size: .9rem;
    line-height: 1.7;
    padding: 0 var(--sp3) var(--sp2);
  }

  .faq-body.isOpen { display: block; }

  /* ── UTILS ────────────────────────────────────── */
  .flex { display: flex; }
  .items-center { align-items: center; }
  .justify-center { justify-content: center; }
  .gap-2 { gap: var(--sp1); }
  .gap-3 { gap: var(--sp2); }
  .mt-2 { margin-top: var(--sp1); }
  .mt-3 { margin-top: var(--sp2); }
  .mt-4 { margin-top: var(--sp3); }
  .text-center { text-align: center; }
  .text-sm { font-size: .85rem; }
  .text-fg2 { color: var(--fg2); }
  .font-bold { font-weight: 700; }

  @media(max-width: 480px) {
    .slots-grid { grid-template-columns: repeat(2, 1fr); }
    .live-tab-btn { font-size: .78rem; padding: .5rem .7rem; }
  }