@font-face {
  font-family: "Baloo 2";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/assets/fonts/baloo2-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Baloo 2";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/assets/fonts/baloo2-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --bg:            #F8F6FA;
  --surface:       #ffffff;
  --elevated:      #F0EBF5;
  --border:        rgba(30,104,113,0.16);

  --dark-bg:       #0C2C30;
  --dark-surface:  #113F45;

  --accent:        #1E6871;
  --accent-2:      #2A9BA0;
  --accent-hover:  #144A51;

  --gold:          #E8BC5D;
  --gold-dark:     #D6A72B;
  --gold-pale:     #F4E0B6;
  /* Text/ornament tone for use ON gold. Three rules referenced it and it
     was never defined, so `color: var(--on-gold)` fell back to whatever was
     inherited and the casino cabinet's gradient — which used it as a stop —
     was thrown out whole for being invalid. Warm and dark enough to read on
     any palette's gold. */
  --on-gold:       #1F1300;

  --text:          #111827;
  --text-soft:     #4B5563;
  --text-muted:    #6B7280;

  --link-accent-soft: #ADE7E9;
  --gradient-hero:       linear-gradient(135deg, #081D20 0%, #0C2C30 30%, #195961 55%, #0C2C30 80%, #000000 100%);
  --gradient-table-head: linear-gradient(90deg, #195961, #0C2C30);

  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 18px;

  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 40px;
  --space-5: 64px;

  --font: "Baloo 2", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --container: 1100px;
  --shadow: 0 8px 28px rgba(7,26,20,.08);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font: 400 16px/1.6 var(--font); color: var(--text); background: var(--bg); }
img, svg { display: block; max-width: 100%; height: auto; }

:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px var(--accent);
  border-radius: 2px;
}

.skip-link {
  position: absolute; top: -48px; left: var(--space-2); z-index: 100;
  background: var(--dark-bg); color: #fff; padding: 10px 18px;
  border-radius: var(--radius-sm); font-weight: 600; font-size: 14px;
}
.skip-link:focus-visible {
  top: var(--space-2);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); }
main p a { text-decoration: underline; text-underline-offset: 2px; }
ul { list-style: none; }
h1, h2, h3, h4, h5, h6 { line-height: 1.25; font-weight: 700; text-align: center; }
button { font: inherit; cursor: pointer; background: none; border: 0; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--space-2); }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.section { padding-top: var(--space-4); padding-bottom: var(--space-2); }
.section--alt { background: var(--surface); }
.prose-block { padding-top: var(--space-4); padding-bottom: var(--space-2); }
.prose-block--alt { background: linear-gradient(180deg, var(--elevated), var(--surface)); }
.section__title { font-size: 28px; margin-bottom: var(--space-3); }
[data-section="toplist-title"] { font-size: 22px; margin-bottom: var(--space-1); }
.section__lead { color: var(--text-soft); max-width: 640px; margin-bottom: var(--space-3); text-align: center; margin-inline: auto; }
[data-section="reviews"] .section__lead { max-width: none; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 13px 24px; border-radius: var(--radius-md); font-weight: 700;
  white-space: nowrap;
}
.btn--primary { background: linear-gradient(135deg, var(--accent-2), var(--accent)); color: #fff; }
.btn--gold { background: var(--gold); color: #0B1220; }
.btn:hover { filter: brightness(.92); }
.btn:active { transform: translateY(1px); }

.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 40;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.site-header.is-scrolled { background: var(--surface); box-shadow: var(--shadow); border-color: var(--border); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding-block: 2px; min-height: 64px; }
.site-header__logo { display: flex; align-items: center; gap: 10px; }
.site-header__logo img { display: block; height: 60px; width: auto; }
.site-logo__icon { display: block; height: 40px; width: 40px; flex-shrink: 0; object-fit: contain; }
.site-logo__text { display: inline-flex; flex-direction: column; font-family: "Baloo 2", sans-serif; font-weight: 800; line-height: 1.08; font-size: 14px; color: var(--text); white-space: nowrap; }
.site-header__nav { display: none; gap: var(--space-3); }
.site-header__nav-link { font-weight: 600; font-size: 15px; color: var(--text-soft); }
.site-header__nav-link.is-current, .site-header__nav-link:hover { color: var(--accent); }
.mob-menu-btn { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; color: var(--text); }

.age-badge {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  height: 34px; padding: 0 10px; border-radius: var(--radius-md);
  background: var(--dark-bg); border: 2px solid var(--gold); color: var(--gold);
  font-weight: 800; font-size: 13px; letter-spacing: -.02em;
}

.lang-switcher { position: relative; }
.lang-switcher__btn {
  display: flex; align-items: center; gap: 6px;
  height: 34px; padding: 0 10px; border-radius: var(--radius-md);
  border: 1.5px solid var(--accent); color: var(--accent);
  font-weight: 800; font-size: 13px; letter-spacing: .02em;
  background: var(--surface);
}
.lang-switcher__chevron { transition: transform .15s ease; flex-shrink: 0; }
.lang-switcher.is-open .lang-switcher__chevron { transform: rotate(180deg); }
.lang-switcher__menu {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 60;
  width: 190px; background: var(--surface); border-radius: var(--radius-lg);
  box-shadow: var(--shadow); padding: 6px;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .15s ease, transform .15s ease, visibility 0s .15s;
}
.lang-switcher.is-open .lang-switcher__menu {
  opacity: 1; visibility: visible; transform: translateY(0);
  transition: opacity .15s ease, transform .15s ease;
}
.lang-switcher__item {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radius-md);
  font-weight: 700; font-size: 14px; color: var(--text);
}
.lang-switcher__item:hover { background: var(--elevated); }
.lang-switcher__item.is-current { background: var(--elevated); color: var(--accent); }
.lang-switcher__flag { font-size: 17px; line-height: 1; flex-shrink: 0; }

main { padding-top: 64px; scroll-margin-top: 64px; }
body:has(.hero) .site-header:not(.is-scrolled) .site-header__nav-link,
body:has(.page-hero) .site-header:not(.is-scrolled) .site-header__nav-link { color: rgba(255,255,255,.85); }
body:has(.hero) .site-header:not(.is-scrolled) .site-header__nav-link.is-current,
body:has(.hero) .site-header:not(.is-scrolled) .site-header__nav-link:hover,
body:has(.page-hero) .site-header:not(.is-scrolled) .site-header__nav-link.is-current,
body:has(.page-hero) .site-header:not(.is-scrolled) .site-header__nav-link:hover { color: #fff; }
body:has(.hero) .site-header:not(.is-scrolled) .mob-menu-btn,
body:has(.page-hero) .site-header:not(.is-scrolled) .mob-menu-btn { color: #fff; }

.site-header__actions { display: flex; align-items: center; gap: 10px; }
.site-header__actions a.site-header__nav-link { display: none; }

@media (min-width: 860px) {
  .site-header__nav { display: flex; align-items: center; }
  .site-header__actions { display: flex; align-items: center; gap: 20px; }
  .site-header__actions a.site-header__nav-link { display: inline; }
  .mob-menu-btn { display: none; }
}
@media (max-width: 859px) {
  .site-header__inner { padding-block: 2px; min-height: 64px; }
}

.mob-menu { position: fixed; inset: 0; z-index: 50; visibility: hidden; }
.mob-menu.is-open { visibility: visible; }
.mob-menu__backdrop { position: absolute; inset: 0; background: rgba(7,26,20,.55); opacity: 0; }
.mob-menu.is-open .mob-menu__backdrop { opacity: 1; }
.mob-menu__panel {
  position: absolute; top: 0; right: 0; height: 100%; width: min(320px, 84%);
  background: var(--surface); padding: var(--space-3);
  transform: translateX(100%);
  display: flex; flex-direction: column; gap: var(--space-3);
}
.mob-menu.is-open .mob-menu__panel { transform: translateX(0); }
.mob-menu__close { align-self: flex-end; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: -10px -10px 0 0; }
.mob-menu__nav { display: flex; flex-direction: column; gap: var(--space-1); }
.mob-menu__link { display: block; padding-block: 10px; font-weight: 600; font-size: 17px; color: var(--text); }
.mob-menu__link.is-current { color: var(--accent); }
.mob-menu__link--divider { margin-top: var(--space-2); padding-top: 18px; border-top: 1px solid var(--border); }

.hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  margin-top: -64px;
  padding-top: calc(var(--space-4) + 64px - 10px);
  background: var(--gradient-hero);
}
@media (max-width: 640px) {
  .hero { padding-top: calc(var(--space-3) + 64px); }
}
.hero .container { position: relative; z-index: 1; }
.hero__image {
  position: absolute; right: 0; top: calc(var(--space-4) + 64px);
  width: clamp(320px, 46vw, 600px); height: auto;
  pointer-events: none;
}
@media (max-width: 640px) {
  .hero__image { display: none; }
}
.hero__title { font-size: clamp(26px, 4vw, 42px); margin-bottom: var(--space-2); max-width: 620px; text-align: center; }
.hero__lead {
  color: rgba(255,255,255,.78); max-width: 560px; margin-bottom: var(--space-1); text-align: center;
}
.hero__lead-more { display: none; }
.hero__lead.is-expanded .hero__lead-more { display: inline; }
.hero__lead-toggle {
  display: block; margin: 0 auto var(--space-3);
  color: var(--link-accent-soft); font-weight: 700; font-size: 14px; text-decoration: underline;
}

.hero:not(:has(.hero__image)) .hero__title,
.hero:not(:has(.hero__image)) .hero__lead {
  max-width: none;
}

@media (min-width: 641px) {
  .hero__lead-more { display: inline; }
  .hero__lead-toggle { display: none; }
}
.hero__author {
  font-size: 13px; color: rgba(255,255,255,.65);
  padding-bottom: var(--space-3); border-bottom: 1px solid rgba(255,255,255,.15);
}
.hero__author-inner {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px;
  max-width: 560px; margin-inline: auto;
}
.hero__avatar { width: 36px; height: 36px; border-radius: 50%; overflow: hidden; flex-shrink: 0; object-fit: cover; }
.hero__avatar--initials { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; font-size: 13px; font-weight: 700; }
.hero__author strong { color: rgba(255,255,255,.9); }

.hero__author-name { display: flex; flex-direction: column; gap: 1px; line-height: 1.2; }
.hero__author-name-label { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: rgba(255,255,255,.5); }
.hero__author-name a { font-size: 13px; }

.hero__avatar-wrap { position: relative; flex-shrink: 0; }
.verified-badge {
  position: absolute; bottom: -2px; right: -2px;
  display: flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; border-radius: 50%; flex-shrink: 0;
  background: var(--accent-2); color: #fff; font-size: 9px; font-weight: 700;
  border: 2px solid var(--dark-bg);
}

.page-hero {
  position: relative; overflow: hidden; color: #fff;
  margin-top: -64px;
  padding-top: calc(var(--space-4) + 64px);
  padding-bottom: var(--space-4);
  background: var(--gradient-hero);
}
@media (max-width: 640px) {
  .page-hero { padding-top: calc(var(--space-3) + 64px); padding-bottom: var(--space-3); }
}
.page-hero .breadcrumbs { display: flex; justify-content: center; }
.page-hero .breadcrumbs__list { color: rgba(255,255,255,.6); }
.page-hero .breadcrumbs__list a { color: rgba(255,255,255,.75); }
.page-hero .breadcrumbs__list a:hover { color: #fff; }
.page-hero .breadcrumbs__list li:not(:last-child)::after { color: rgba(255,255,255,.3); }
.page-hero .breadcrumbs__list li[aria-current="page"] { color: #fff; }
.page-hero h1 { color: #fff; }
.page-hero .info-lead { color: rgba(255,255,255,.78); margin-bottom: 0; }
.page-hero + .container { padding-top: var(--space-4); }

/* Author byline moved into the hero (was a standalone section further down
   the page), as a single quote card: quote text on top, avatar+name+role
   below -- matches how .hero-wins__tile etc. already float as light cards
   over this same dark hero gradient elsewhere in the template. */
.page-hero__quote-card {
  max-width: 480px; margin: var(--space-3) auto 0;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-3); text-align: center;
}
.page-hero__quote {
  margin: 0 0 var(--space-2); padding: 0; border: none;
  font-size: 15px; font-style: italic; line-height: 1.5;
  color: var(--text);
}
.page-hero__quote-person { display: flex; align-items: center; justify-content: center; gap: var(--space-2); }
.page-hero__quote-person .person-card__name,
.page-hero__quote-person .person-card__role { text-align: left; }

.hero__author-date {
  display: flex; flex-direction: column; gap: 1px; line-height: 1.2;
  padding-left: var(--space-2); border-left: 1px solid rgba(255,255,255,.2);
}
.hero__author-date-label { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: rgba(255,255,255,.5); }
.hero__author-date time { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.9); }

[data-section="toplist"] .hero__author { color: var(--text-muted); border-bottom-color: var(--border); padding-bottom: 8px; margin-bottom: var(--space-2); }
[data-section="toplist"] .hero__author strong { color: var(--text); }
[data-section="toplist"] .hero__author-name-label,
[data-section="toplist"] .hero__author-date-label { color: var(--text-muted); }
[data-section="toplist"] .hero__author-date time { color: var(--text); }
[data-section="toplist"] .hero__author-date { border-left-color: var(--border); }

.stars { display: inline-flex; gap: 2px; }
.star--full  { color: var(--gold); }
.star--half  { color: var(--gold); opacity: .5; }
.star--empty { color: var(--border); }

.review-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-2); box-shadow: var(--shadow); margin-bottom: var(--space-3);
}
.review-card:last-child { margin-bottom: 0; }
[data-section="reviews"] { padding-bottom: 0; }
.review-card > * + * { margin-top: var(--space-2); }
@media (max-width: 640px) {
  .review-card > .btn { display: block; width: 100%; text-align: center; margin-top: var(--space-1); }
}

.review-card__media img {
  width: 100%; height: auto; aspect-ratio: 2874 / 1400;
  border-radius: var(--radius-md); object-fit: cover; display: block;
}

.review-card__id { position: relative; display: flex; align-items: center; gap: 12px; scroll-margin-top: 154px; }
.review-card__id-extra { display: none; align-items: center; gap: var(--space-2); margin-left: auto; flex-shrink: 0; }
.review-card__id-bonus { font-weight: 800; font-size: 18px; color: var(--text); white-space: nowrap; }

@media (min-width: 641px) {
  .review-card__id { flex-wrap: wrap; }
  .review-card__id-extra { display: flex; }
  .review-card__bonus-block,
  .review-card > .btn {
    display: none;
  }
}
.review-card__id .brand-logo-bg { width: 122px; }

.review-card__carousel {
  display: flex; gap: var(--space-2); overflow-x: auto;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
  padding-bottom: var(--space-2);
}
.review-card__carousel .review-card__media { flex: 0 0 90%; scroll-snap-align: start; }
@media (min-width: 641px) {
  .review-card__carousel { display: none; }
}

.review-card__bonus-block { background: var(--elevated); border-radius: var(--radius-md); padding: var(--space-2); }
.review-card__bonus-label {
  font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .04em;
  text-align: center; color: var(--accent); margin-bottom: 4px;
}
.review-card__bonus-amount { font-weight: 800; font-size: 22px; text-align: center; margin-bottom: 8px; }
.review-card__bonus-amount-spins { display: block; font-weight: 700; font-size: 18px; color: var(--text-soft); margin-top: 2px; }
.review-card__bonus-percent { font-weight: 800; font-size: 18px; color: var(--accent); }
.review-card__checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 1px 8px; }
.review-card__checklist li {
  position: relative; padding-left: 16px; font-size: 14px; color: var(--text-soft);
}
.review-card__checklist li strong { font-size: 15px; font-weight: 700; color: var(--text); white-space: nowrap; }
.review-card__checklist li::before {
  content: ""; position: absolute; left: 0; top: 8px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--accent);
}

.review-nav {
  position: sticky; top: 64px; z-index: 30;
  display: flex; gap: var(--space-2); align-items: center;
  padding: 20px 10px 10px; margin-bottom: var(--space-3);
  background: var(--bg); border-bottom: 1px solid var(--border);
  overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.review-nav::-webkit-scrollbar { display: none; }
@media (min-width: 641px) {
  .review-nav { justify-content: center; }
  .review-nav__item .brand-logo-bg { width: 118px; height: 82px; padding: 11px; }
}
.review-nav__item { position: relative; flex-shrink: 0; border-radius: var(--radius-md); }
.review-nav__item .brand-logo-bg { width: 64px; height: 44px; padding: 6px; transition: transform .2s ease, box-shadow .2s ease; }
.review-nav__item.is-active .brand-logo-bg {
  transform: scale(1.15);
  box-shadow: 0 0 0 2px var(--accent), 0 10px 20px rgba(15,122,85,.35);
}

.brand-logo-rank--lg { width: 34px; height: 34px; font-size: 15px; }

.review-card__summary {
  background: var(--elevated); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-2);
}
.review-card__summary-title { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 16px; font-weight: 700; margin-bottom: var(--space-1); }

.review-card__body { position: relative; max-height: 4.8em; overflow: hidden; transition: max-height .3s ease; }
.review-card__body::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2em;
  background: linear-gradient(transparent, var(--elevated));
}
.review-card__body.is-expanded { max-height: 999px; }
.review-card__body.is-expanded::after { display: none; }
.review-card__body p { color: var(--text-soft); font-size: 14px; margin-bottom: var(--space-1); text-align: center; }

.review-card__readmore {
  display: block; margin: 4px auto 0;
  font-size: 13px; font-weight: 700; color: var(--accent);
}
.review-card__readmore:hover { color: var(--accent-hover); }

@media (min-width: 860px) {
  .review-card__body { max-height: none; overflow: visible; }
  .review-card__body::after { display: none; }
  .review-card__readmore { display: none; }
}

.review-card__quote {
  border-left: 3px solid var(--accent); padding-left: var(--space-2);
}
.review-card__quote p { font-style: italic; color: var(--text-soft); font-size: 14px; }
.review-card__quote cite { display: block; margin-top: 4px; font-style: normal; font-size: 12px; color: var(--text-muted); }

.ctable { width: 100%; border-collapse: collapse; background: var(--surface); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.ctable th, .ctable td { padding: 14px 16px; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--border); font-size: 14px; }
.ctable thead tr { background: var(--gradient-table-head); }
.ctable th {
  background: transparent; text-align: center;
  color: #fff; font-size: 12px; text-transform: uppercase; letter-spacing: .04em;
}
.ctable:not(.brand-table) tbody tr:nth-child(even) { background: var(--elevated); }
.ctable tr:last-child td { border-bottom: 0; }
.ctable-wrap { overflow-x: auto; }

.brand-table { table-layout: fixed; }
.brand-table td { word-break: break-word; }

.brand-table__cols col:nth-child(1) { width: 32%; }
.brand-table__cols col:nth-child(2) { width: 23%; }
.brand-table__cols col:nth-child(3) { width: 11%; }
.brand-table__cols col:nth-child(4) { width: 11%; }
.brand-table__cols col:nth-child(5) { width: 12%; }
.brand-table__cols col:nth-child(6) { width: 13%; }

td.bonus-cell { font-weight: 700; color: #000; font-size: 16px; padding-left: 28px; }
.bonus-cell__mobile, .bonus-cell__label { display: none; }
.brand-table__stat--percent, .brand-table__stat--wager { display: none; }

.brand-table__name { position: relative; display: flex; align-items: center; gap: 12px; }
.brand-logo-bg {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  width: 128px; height: 84px; padding: 10px; flex-shrink: 0;
  border-radius: var(--radius-md);
}
.brand-logo { width: 100%; height: 100%; border-radius: 0; flex-shrink: 0; object-fit: contain; }
.brand-logo-text {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; text-align: center;
  color: #fff; font-weight: 800; font-size: 15px; line-height: 1.15;
  letter-spacing: .01em;
}
.brand-logo-rank {
  position: absolute; top: -10px; left: -10px; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-pale), var(--gold), var(--gold-dark));
  color: #1A0A00; font-weight: 700; font-size: 13px;
  box-shadow: var(--shadow);
}
.brand-table tbody tr:first-child .brand-logo-rank {
  width: 34px; height: 34px; font-size: 15px;
}
.brand-table__info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.brand-table tbody tr:first-child .brand-table__info {
  gap: 0;
}
.brand-table__title { font-weight: 700; font-size: 17px; text-align: left; }
.brand-table__founded { font-size: 15px; font-weight: 600; color: var(--text-soft); }
.brand-table__founded-year { color: var(--text); }
.brand-table__top-badge {
  display: inline-flex; align-items: center; gap: 5px; align-self: flex-start;
  padding: 3px 10px; border-radius: 999px;
  background: var(--elevated); border: 1px solid var(--border);
  font-size: 14px; font-weight: 600; color: var(--text-soft);
}
.brand-table__rating { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.brand-table__rating .star:not(:first-child) { display: none; }
.brand-table__rating .stars { font-size: 18px; }
.brand-table__rating .rating-num { font-size: 16px; color: var(--text-soft); }
.brand-table__rating .rating-word { font-size: 15px; font-weight: 600; color: var(--text-soft); }
.rating-num { font-size: 13px; color: var(--text-muted); font-weight: 600; }
.rating-word { font-size: 12px; color: var(--text-muted); }
.brand-table td:last-child .btn { display: flex; width: 100%; justify-content: center; text-align: center; }

@media (max-width: 640px) {
  .brand-table, .brand-table thead, .brand-table tbody, .brand-table tr, .brand-table th, .brand-table td {
    display: block; width: auto;
  }
  .brand-table thead { display: none; }

  .brand-table tr {
    position: relative; overflow: hidden;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
    box-shadow: var(--shadow); padding: var(--space-2); margin-bottom: var(--space-2);
  }
  .brand-table tr:last-child { margin-bottom: 0; }

  .brand-table td { border-bottom: none; padding: 0; }

  .brand-table td.brand-table__name {
    display: flex; align-items: center; flex-wrap: wrap;
    padding-bottom: 8px; margin-bottom: 8px;
  }
  .brand-table__info { gap: 2px; }
  .brand-table__title { font-size: 19px; }
  .brand-table td.brand-table__name::after {
    content: ""; flex: 1 0 100%; height: 1px; margin-top: 3px;
    background: linear-gradient(to right, transparent 5%, var(--border) 5%, var(--border) 95%, transparent 95%);
  }

  .bonus-cell__full { display: none; }
  .bonus-cell__label {
    display: block; margin-bottom: 2px;
    font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .04em;
    color: var(--accent);
  }
  .bonus-cell__mobile {
    display: block; font-weight: 800; font-size: 26px;
  }
  .bonus-cell__mobile-spins { display: block; font-weight: 700; font-size: 18px; color: var(--text-soft); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .brand-table td.bonus-cell {
    text-align: center;
    padding-bottom: 4px; margin-bottom: 4px;
  }
  .brand-table td.bonus-cell::after {
    content: ""; display: block; width: 90%; height: 1px; background: var(--border);
    margin: 4px auto 0;
  }

  .brand-table td.brand-table__stats {
    display: flex;
    padding-bottom: 4px; margin-bottom: 4px;
  }
  .brand-table__stat {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 0;
    font-weight: 700; font-size: 16px;
  }
  .brand-table__stat + .brand-table__stat { border-left: 1px solid var(--border); }
  .brand-table__stat--percent { color: var(--text); }
  .brand-table__stat::before {
    content: attr(data-label);
    font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: .03em;
    color: var(--text-muted);
  }

  /* data-col is the language-neutral hook; data-label now carries the
     translated text the mobile ::before renders, so selecting on it would
     break on every non-Hungarian site. The old selectors stay for site
     repos whose markup predates data-col. */
  .brand-table td[data-col="license"], .brand-table td[data-col="wagering"],
  .brand-table td[data-label="Licenc"], .brand-table td[data-label="Megforgatás"] { display: none; }

  .brand-table td:last-child .btn { font-size: 17px; padding: 15px 24px; }
}

.hero-podium { margin-top: var(--space-3); }
.hero-podium__title { color: #fff; font-size: 18px; margin-bottom: var(--space-3); }
.hero-podium__row { display: flex; align-items: stretch; justify-content: center; gap: var(--space-2); }

.hero-podium__item {
  position: relative;
  flex: 1; max-width: 200px;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow);
  padding: var(--space-2);
}
.hero-podium__badge {
  position: absolute; top: -18px; left: 50%; transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
  padding: 7px 16px; border-radius: 999px;
  background: linear-gradient(135deg, var(--gold-pale), var(--gold), var(--gold-dark));
  color: #1A0A00; font-weight: 800; font-size: 14px;
  box-shadow: var(--shadow);
}
.hero-podium__badge--sm { top: -14px; padding: 5px 12px; font-size: 12px; }
.hero-podium__logo-bg {
  display: flex; align-items: center; justify-content: center;
  width: 100%; padding: 12px 0; border-radius: var(--radius-md);
}
.hero-podium__logo-bg img { height: 32px; width: auto; max-width: 85%; object-fit: contain; }
.hero-podium__name {
  font-weight: 700; font-size: 13px; text-align: center; max-width: 100%;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: var(--text);
}
.hero-podium__bonus {
  display: flex; flex-direction: column; align-items: center;
  margin-top: 2px; margin-bottom: 4px;
}
.hero-podium__bonus-amount { font-weight: 800; font-size: 24px; color: var(--text); line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.hero-podium__bonus-spins { font-weight: 700; font-size: 13px; color: var(--text-muted); line-height: 1.2; white-space: nowrap; }
.hero-podium__btn { width: 100%; padding: 10px; font-size: 13px; }

@media (max-width: 640px) {
  .hero-podium__row { gap: 8px; }
  .hero-podium__item { padding: var(--space-1); gap: 2px; }
  .hero-podium__badge { top: -16px; padding: 6px 12px; font-size: 12px; }
  .hero-podium__badge--sm { top: -12px; padding: 4px 9px; font-size: 10px; }
  .hero-podium__logo-bg img { height: 26px; }
  .hero-podium__name { font-size: 11px; }
  .hero-podium__bonus { margin-top: 1px; margin-bottom: 2px; }
  .hero-podium__bonus-amount { font-size: 16px; }
  .hero-podium__bonus-spins { font-size: 11px; }
  .hero-podium__btn { padding: 8px; font-size: 11px; }
}

.gift-picker { display: none; margin-top: 20px; padding-block: 8px; }
.hero-podium.js-gift-active .gift-picker { display: block; }
.hero-podium.js-gift-active [data-gift-fallback] { display: none; }
html.has-js [data-gift-picker] [data-gift-fallback] { display: none; }
[data-gift-picker] { min-height: 236px; }

.gift-picker__prompt {
  text-align: center; margin-bottom: var(--space-3);
  opacity: 0; transform: translateY(6px);
  transition: opacity .4s ease, transform .4s ease;
}
.gift-picker__prompt.is-visible { opacity: 1; transform: translateY(0); }
.gift-picker__cta-text { color: var(--gold-dark); font-weight: 800; font-size: 26px; }

.gift-picker__stage { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); }

.gift-picker__reel { position: relative; display: flex; justify-content: center; gap: var(--space-2); padding-bottom: 14px; }
.gift-picker__reel[hidden] { display: none; }
.gift-picker__reel::after {
  content: "";
  position: absolute;
  left: 10%; right: 10%; bottom: 4px;
  height: 2px;
  border-radius: 2px;
  filter: blur(2.5px);
  background: linear-gradient(90deg, transparent, var(--gold-dark) 12%, var(--gold) 50%, var(--gold-dark) 88%, transparent);
  box-shadow: 0 3px 10px rgba(0,0,0,.4);
}

.gift-picker__reel.is-flying { animation: giftFlyOut .42s ease forwards; pointer-events: none; }
@keyframes giftFlyOut {
  0%   { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-26px) scale(.92); opacity: 0; }
}

.gift-slot {
  position: relative;
  padding: 10px;
  display: flex; align-items: center; justify-content: center;
  transition: transform .2s ease;
}
.gift-slot:disabled { cursor: default; }
.gift-picker:not(.no-anim) .gift-slot {
  animation: giftDropIn 1.1s cubic-bezier(.16,.7,.2,1) both;
}
.gift-slot:nth-child(2) { animation-delay: .28s !important; }
.gift-slot:nth-child(3) { animation-delay: .56s !important; }
@keyframes giftDropIn {
  from { transform: translateY(-220px); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}

.gift-slot__icon {
  display: block;
  width: 88px; height: auto; flex-shrink: 0;
  filter: drop-shadow(0 20px 24px rgba(0,0,0,.4)) drop-shadow(0 6px 10px rgba(0,0,0,.3));
}
.gift-picker.is-settled .gift-slot__icon {
  animation: giftWave 2.8s ease-in-out infinite;
}
.gift-slot:nth-child(2) .gift-slot__icon { animation-delay: .3s !important; }
.gift-slot:nth-child(3) .gift-slot__icon { animation-delay: .6s !important; }
@keyframes giftWave { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

@media (hover: hover) and (pointer: fine) {
  .gift-slot:hover, .gift-slot:focus-visible { transform: scale(1.08); }
}
.gift-slot:active { transform: scale(.94); }

.gift-picker__cards { width: 100%; max-width: 320px; }
.bonus-card {
  display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center;
  background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow);
  padding: 14px;
  opacity: 0; transform: scale(.55) translateY(22px);
}
.bonus-card[hidden] { display: none; }
.bonus-card.is-visible { animation: bonusCardPop .8s cubic-bezier(.22,.9,.3,1) both; }
@keyframes bonusCardPop {
  0%   { opacity: 0; transform: scale(.55) translateY(22px); }
  50%  { opacity: 1; }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
.gift-picker.no-anim .bonus-card.is-visible { animation: none; opacity: 1; transform: scale(1) translateY(0); }
.bonus-card__badge { font-weight: 700; font-size: 15px; color: var(--gold-dark); }
.bonus-card__amount { font-weight: 800; font-size: 34px; color: var(--text); line-height: 1.15; }
.bonus-card.is-visible .bonus-card__amount-text { animation: amountGlow 2.2s ease-in-out .5s infinite; }
@keyframes amountGlow {
  0%, 100% { text-shadow: 0 0 0 rgba(250,204,21,0); }
  50%      { text-shadow: 0 0 16px rgba(250,204,21,.6); }
}
.bonus-card__spins { display: block; font-weight: 700; font-size: 13px; color: var(--text-muted); margin-top: 2px; }
.bonus-card__brand { display: flex; align-items: center; gap: 8px; margin: 4px 0 2px; }
.bonus-card__logo-bg { display: flex; align-items: center; justify-content: center; padding: 6px 10px; border-radius: var(--radius-md); }
.bonus-card__logo { height: 24px; width: auto; max-width: 70px; object-fit: contain; }
.bonus-card__name { font-weight: 700; font-size: 14px; color: var(--text); }
.bonus-card__cta { width: 100%; margin-top: 4px; padding: 12px; font-size: 16px; }
.bonus-card.is-visible .bonus-card__cta { animation: ctaPulse 1.8s ease-in-out .6s infinite; }
@keyframes ctaPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.045); } }

.gift-picker.no-anim .gift-picker__reel,
.gift-picker.no-anim .gift-slot,
.gift-picker.no-anim .gift-slot__icon,
.gift-picker.no-anim .bonus-card,
.gift-picker.no-anim .bonus-card__amount-text,
.gift-picker.no-anim .bonus-card__cta,
.gift-picker.no-anim .gift-picker__prompt {
  animation: none !important; transition: none !important;
}

@media (max-width: 640px) {
  .gift-picker__cta-text { font-size: 22px; }
  .bonus-card__amount { font-size: 27px; }
  .gift-picker__cards { max-width: none; }
  /* Sits right under the lead it expands, rather than floating between the
     text and the slot machine — so the gap below it reads as the break
     before the slot machine instead of splitting the two evenly. */
  .hero__lead { margin-bottom: 2px; }
  .hero__lead-toggle { margin-bottom: 20px; }
  .hero-podium { margin-top: 8px; }
  .bonus-card__cta { width: calc(100% - 20px); }
  .gift-picker { margin-top: 0; }
  [data-gift-picker] { min-height: 227px; }
}

@media (min-width: 641px) {
  .gift-picker__cards { max-width: 256px; }
  .bonus-card__badge { font-size: 12px; }
  .bonus-card__amount { font-size: 27px; }
  .bonus-card__spins { font-size: 11px; }
  .bonus-card__brand { gap: 6px; margin: 3px 0 2px; }
  .bonus-card__logo-bg { padding: 5px 8px; }
  .bonus-card__logo { height: 19px; max-width: 56px; }
  .bonus-card__name { font-size: 11px; }
}

.prose-block .container { max-width: 720px; }
.prose-block h2 {
  font-size: 26px; margin-top: var(--space-4); margin-bottom: var(--space-2);
  position: relative; padding-bottom: var(--space-1);
}
.prose-block h2::after {
  content: ""; display: block; width: 56px; height: 4px; margin: var(--space-1) auto 0;
  border-radius: 999px; background: linear-gradient(135deg, var(--accent-2), var(--accent));
}
.prose-block h3 { font-size: 19px; margin-top: var(--space-3); margin-bottom: var(--space-1); color: var(--accent-hover); }
.prose-block p  { color: var(--text-soft); margin-bottom: var(--space-2); text-align: center; }

.faq__item { border-bottom: 1px solid var(--border); }
.faq__question { margin: 0; }
.faq__btn {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: var(--space-2);
  text-align: left; font-size: 16px; font-weight: 600; padding: var(--space-2) 0;
}
.faq__btn svg { flex-shrink: 0; }
.faq__item--open .faq__btn svg { transform: rotate(180deg); }
.faq__panel { overflow: hidden; max-height: 0; }
.faq__panel p { color: var(--text-soft); padding-bottom: var(--space-2); text-align: center; }

.site-footer { background: var(--dark-bg); color: rgba(255,255,255,.65); padding-block: var(--space-4); font-size: 14px; }

.site-footer__inner {
  display: grid; grid-template-columns: 1fr auto; gap: var(--space-3);
  align-items: start; padding-bottom: var(--space-3);
  border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: var(--space-2);
}
.site-footer__brand { display: flex; flex-direction: column; gap: var(--space-2); }
.site-footer__logo { display: inline-flex; align-items: center; gap: 10px; }
.site-footer__logo img { display: block; height: 60px; width: auto; }
.site-footer__logo .site-logo__text { color: #fff; }
.site-footer__desc { font-size: 14px; line-height: 1.6; max-width: 480px; color: rgba(255,255,255,.75); }

.site-footer__social { display: flex; gap: 12px; margin-top: 4px; }
.site-footer__social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,.08); color: rgba(255,255,255,.75);
}
.site-footer__social-link svg { width: 16px; height: 16px; }
.site-footer__social-link:hover { background: rgba(255,255,255,.16); color: #fff; }

.site-footer__links { display: flex; gap: var(--space-4); }
.site-footer__col { display: flex; flex-direction: column; gap: 8px; }
.site-footer__col-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.75); margin-bottom: 4px; }
.site-footer__link { color: rgba(255,255,255,.75); }
.site-footer__link:hover { color: #fff; }
.site-footer__address { font-style: normal; color: rgba(255,255,255,.75); line-height: 1.6; overflow-wrap: break-word; word-break: break-word; }
.site-footer__address a { color: var(--link-accent-soft); text-decoration: underline; }
.site-footer__address a:hover { color: #fff; }

@media (max-width: 640px) {
  .site-footer__inner { grid-template-columns: 1fr; }
}

.site-footer__disclaimer { color: rgba(255,255,255,.6); font-size: 14px; max-width: 760px; margin-top: var(--space-2); }
.site-footer__responsible { color: rgba(255,255,255,.6); font-size: 14px; max-width: 760px; margin-top: var(--space-2); }
.site-footer__responsible a { color: rgba(255,255,255,.85); text-decoration: underline; }
.site-footer__responsible a:hover { color: #fff; }

.page { padding-top: calc(var(--space-4) + 64px); padding-bottom: var(--space-5); }
.page .container { max-width: 720px; }
@media (max-width: 640px) {
  .page { padding-top: calc(var(--space-5) + 64px); }
}
.page:has(> .page-hero) { padding-top: 64px; }
.page h1 { font-size: 32px; margin-bottom: var(--space-2); }
.page h2 { font-size: 22px; margin-top: var(--space-4); margin-bottom: var(--space-1); }
.page p { color: var(--text-soft); margin-bottom: var(--space-2); text-align: center; }
.page .checklist { margin-top: var(--space-1); }
.contact-address { font-style: normal; color: var(--text-soft); line-height: 1.8; margin-bottom: var(--space-2); }
.contact-address a { color: var(--accent); }

.breadcrumbs { margin-bottom: var(--space-3); font-size: 13px; }
.breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--text-muted); }
.breadcrumbs__list a { color: var(--text-muted); }
.breadcrumbs__list a:hover { color: var(--accent); }
.breadcrumbs__list li { display: flex; align-items: center; gap: 6px; }
.breadcrumbs__list li:not(:last-child)::after { content: "/"; color: var(--border); }
.breadcrumbs__list li[aria-current="page"] { color: var(--text); font-weight: 600; }

.hero .breadcrumbs { display: flex; justify-content: center; }
.hero .breadcrumbs__list { color: rgba(255,255,255,.6); }
.hero .breadcrumbs__list a { color: rgba(255,255,255,.75); }
.hero .breadcrumbs__list a:hover { color: #fff; }
.hero .breadcrumbs__list li:not(:last-child)::after { color: rgba(255,255,255,.3); }
.hero .breadcrumbs__list li[aria-current="page"] { color: #fff; }

.proscons-heading { font-size: 20px; font-weight: 700; line-height: 1.25; text-align: center; margin-bottom: var(--space-2); }
.proscons { display: grid; grid-template-columns: 1fr; gap: var(--space-2); margin-bottom: var(--space-2); }
@media (min-width: 560px) { .proscons { grid-template-columns: 1fr 1fr; } }
.proscons--pros, .proscons--cons {
  border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-2);
}
.proscons h3, .proscons h4 { font-size: 16px; margin-bottom: var(--space-1); }
.proscons ul { list-style: none; font-size: 13px; color: var(--text-soft); }
.proscons li { position: relative; padding-left: 32px; margin-bottom: var(--space-1); min-height: 24px; }
.proscons li::before {
  position: absolute; left: 0; top: 0;
  display: flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%; font-size: 12px; font-weight: 700;
}
.proscons--pros li::before { content: "✓"; background: #dcfce7; color: #16a34a; }
.proscons--cons li::before { content: "✗"; background: #fee2e2; color: #dc2626; }

.checklist { list-style: none; margin-bottom: var(--space-2); }
.checklist li { position: relative; padding-left: 30px; margin-bottom: 8px; color: var(--text-soft); font-size: 14px; }
.checklist li::before {
  content: "✓"; position: absolute; left: 0; top: -1px;
  display: flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  background: #dcfce7; color: #16a34a; font-size: 12px; font-weight: 700;
}

.steps { list-style: none; counter-reset: step; margin-bottom: var(--space-2); }
.steps li { position: relative; padding-left: 36px; margin-bottom: var(--space-2); color: var(--text-soft); }
.steps li::before {
  counter-increment: step; content: counter(step);
  position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%;
  background: var(--accent); color: #fff; font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}

.info-lead {
  max-width: 600px; margin: 0 auto var(--space-3); font-size: 17px; line-height: 1.6;
}
.info-section { margin-top: var(--space-4); }
.info-section:first-of-type { margin-top: var(--space-3); }
.info-section > h2 { text-align: center; }
.info-section > p { max-width: 620px; margin-inline: auto; }

.info-grid {
  display: grid; grid-template-columns: 1fr; gap: var(--space-2);
  margin-top: var(--space-2); margin-bottom: var(--space-2);
}
@media (min-width: 640px) {
  .info-grid--2 { grid-template-columns: 1fr 1fr; }
  .info-grid--3 { grid-template-columns: repeat(3, 1fr); }
}

.info-card {
  display: flex; flex-direction: column; gap: 6px; text-align: left;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-2);
}
.info-card__icon {
  width: 40px; height: 40px; border-radius: var(--radius-md); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--elevated); font-size: 19px;
}
.info-card__title { font-size: 16px; font-weight: 700; color: var(--text); text-align: left; }
.info-card__text { font-size: 14px; color: var(--text-soft); line-height: 1.6; text-align: left; margin: 0; }

.callout {
  display: flex; gap: var(--space-2); align-items: flex-start; text-align: left;
  background: var(--elevated); border: 1px solid var(--border); border-left: 4px solid var(--accent);
  border-radius: var(--radius-lg); padding: var(--space-2); margin: var(--space-2) 0;
}
.callout__icon { font-size: 22px; line-height: 1; flex-shrink: 0; }
.callout__body { font-size: 14px; color: var(--text-soft); line-height: 1.6; margin: 0; text-align: left; }
.callout__body strong { color: var(--text); }
.callout--support { border-left-color: var(--gold-dark); }

.contact-card {
  display: flex; align-items: center; gap: var(--space-2); text-align: left;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-2); margin: var(--space-2) 0;
}
.contact-card__icon {
  width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-2)); font-size: 19px;
}
.contact-card__body { min-width: 0; }
.contact-card__label { font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); }
.contact-card__value {
  display: inline-block; font-size: 16px; font-weight: 700; color: var(--accent);
  word-break: break-word; padding: 2px 0;
}
.contact-card__value:hover { color: var(--accent-hover); }

.person-card {
  display: flex; align-items: center; gap: var(--space-2); text-align: left;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-2); margin: var(--space-2) 0;
}
.person-card__avatar {
  width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff;
  font-size: 20px; font-weight: 700;
}
.person-card__avatar--photo { background: none; object-fit: cover; }
.person-card__name { font-size: 16px; font-weight: 700; color: var(--text); }
.person-card__role { font-size: 13px; color: var(--text-muted); }

/* The author's LinkedIn, beside their name on the hero byline and the About
   page. Emitted empty for an author without one, so it never renders alone. */
.author-linkedin {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 18px; height: 18px; margin-left: 6px; vertical-align: middle;
  border-radius: 50%; border: 1px solid var(--accent-2); color: var(--accent-2);
  background: rgba(7, 26, 20, .45);
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.author-linkedin:hover { background: var(--accent-2); color: #fff; border-color: var(--accent-2); }
.author-linkedin:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }
/* On the About page the card sits on a light surface, where the dark fill
   would read as a blob rather than a ring. */
.person-card__name .author-linkedin { background: rgba(15, 122, 85, .10); }
.person-card__name .author-linkedin:hover { background: var(--accent-2); }
/* Filled from the assigned author-pool row's LinkedIn URL; the block is
   emitted empty when that row has none, so this never renders on its own. */
.person-card__linkedin { display: inline-block; margin-top: 2px; font-size: 13px; color: var(--accent-2); text-decoration: none; }
.person-card__linkedin:hover { text-decoration: underline; }

.lightbox { position: fixed; inset: 0; z-index: 60; visibility: hidden; }
.lightbox.is-open { visibility: visible; }
.lightbox__backdrop { position: absolute; inset: 0; background: rgba(7,26,20,.85); opacity: 0; transition: opacity .2s ease; }
.lightbox.is-open .lightbox__backdrop { opacity: 1; }
.lightbox__img {
  position: relative; z-index: 1;
  display: block; max-width: min(90vw, 1000px); max-height: 85vh;
  margin: auto; top: 50%; transform: translateY(-50%);
  border-radius: var(--radius-md);
  opacity: 0; transition: opacity .2s ease;
}
.lightbox.is-open .lightbox__img { opacity: 1; }
.lightbox__close {
  position: absolute; top: var(--space-2); right: var(--space-2); z-index: 2;
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.12); color: #fff;
}
.lightbox__nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.12); color: #fff;
}
.lightbox__nav--prev { left: var(--space-2); }
.lightbox__nav--next { right: var(--space-2); }
.lightbox__nav:hover, .lightbox__close:hover { background: rgba(255,255,255,.22); }

.mob-offer { display: none; }

@media (max-width: 640px) {
  .mob-offer {
    display: block;
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 45;
    background: var(--surface); border-top: 1px solid var(--border);
    box-shadow: 0 -4px 20px rgba(7,26,20,.12);
    transform: translateY(100%);
    transition: transform .35s cubic-bezier(.22,.68,0,1.2);
    padding: 10px var(--space-2) 12px;
  }
  .mob-offer.is-visible { transform: translateY(0); }

  .mob-offer__close {
    position: absolute; top: 8px; right: 10px; z-index: 1;
    display: flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 50%;
    color: var(--text-muted); font-size: 12px;
  }
  .mob-offer__close:hover { color: var(--text); background: var(--elevated); }

  .mob-offer__label {
    display: flex; align-items: center; gap: 5px;
    font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
    color: var(--accent); margin-bottom: 6px;
  }
  .mob-offer__label::before {
    content: ""; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
    background: var(--accent); animation: mob-offer-pulse 1.6s ease-in-out infinite;
  }
  @keyframes mob-offer-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .4; transform: scale(.7); }
  }

  .mob-offer__body { display: flex; align-items: center; gap: 10px; }
  .mob-offer__logo {
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    width: 68px; height: 44px; padding: 5px; border-radius: var(--radius-sm);
  }
  .mob-offer__logo img { width: 100%; height: 100%; object-fit: contain; }
  .mob-offer__info { flex: 1; min-width: 0; }
  .mob-offer__name { font-size: 12px; font-weight: 700; color: var(--text); line-height: 1.2; }
  .mob-offer__bonus { font-size: 16px; color: var(--text-soft); line-height: 1.3; }
  .mob-offer__bonus strong { color: var(--text); }
  .mob-offer__percent { font-weight: 800; color: var(--accent); }
  .mob-offer__btn { flex-shrink: 0; padding: 9px 16px; font-size: 12px; }
}

.games-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-2);
  list-style: none; margin-top: var(--space-3);
}
@media (max-width: 900px) {
  .games-grid { grid-template-columns: repeat(3, 1fr); }
}

.game-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  overflow: hidden; display: flex; flex-direction: column;
  transition: box-shadow .2s ease, transform .2s ease;
}
.game-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.game-card__thumb {
  height: 140px; background: var(--elevated);
}
.game-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.game-card__body { padding: 10px 12px 3px; text-align: center; flex: 1; }
.game-card__name { display: block; font-weight: 700; font-size: 14px; color: var(--text); }
.game-card__provider {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  margin-top: 2px; font-size: 12px; color: var(--text-muted);
}
.game-card__provider img { width: auto; height: 14px; max-width: 24px; object-fit: contain; flex-shrink: 0; }
.game-card__cta {
  display: block; margin: 5px 12px 12px; padding: 8px 10px; text-align: center;
  border-radius: var(--radius-sm); font-size: 13px; font-weight: 700;
  background: linear-gradient(135deg, var(--gold-pale), var(--gold), var(--gold-dark)); color: #1A0A00;
}
.game-card__cta:hover { filter: brightness(.92); }

.games-carousel__dots { display: none; }

@media (max-width: 640px) {
  .games-grid {
    display: flex; gap: var(--space-2); overflow-x: auto;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    padding-block: 26px; padding-inline: 13%; scrollbar-width: none;
  }
  .games-grid::-webkit-scrollbar { display: none; }
  .game-card {
    flex: 0 0 74%; scroll-snap-align: center;
    opacity: .55; transform: scale(.88); transition: opacity .25s ease, transform .25s ease;
  }
  .game-card.is-active { opacity: 1; transform: scale(1.16); z-index: 1; }

  .games-carousel__dots { display: flex; justify-content: center; gap: 6px; margin-top: var(--space-2); }
  .games-carousel__dot {
    width: 6px; height: 6px; padding: 0; border-radius: 50%; background: var(--border);
    transition: width .2s ease, border-radius .2s ease, background .2s ease;
  }
  .games-carousel__dot.is-active { width: 18px; border-radius: 3px; background: var(--accent); }
}

.bonus-slot { display: none; }
.hero-podium.js-gift-active .bonus-slot { display: flex; }
.hero-podium.js-gift-active [data-gift-fallback] { display: none; }
/* Hide the static fallback the instant JS is confirmed running, so it never
   flashes before gift-picker.js (deferred) swaps in the interactive slot. */
html.has-js [data-gift-picker] [data-gift-fallback] { display: none; }
/* Reserve enough height for the idle slot machine so the hero neither
   collapses before gift-picker.js runs nor jumps once it does. */
[data-gift-picker] { min-height: 300px; }

/* ── Bonus slot machine ── */
.bonus-slot {
  width: 100%;
  max-width: 380px;
  margin: var(--space-3) auto 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  background: var(--surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  padding: var(--space-3) var(--space-2);
}
.bonus-slot__title {
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  letter-spacing: -.01em;
  color: var(--accent);
}

.bonus-slot__reels { display: flex; justify-content: center; gap: var(--space-1); width: 100%; }
.bonus-slot__reel {
  flex: 1 1 0;
  min-width: 0;
  max-width: 92px;
  aspect-ratio: 1 / 1;
  background: var(--elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  position: relative;
}
.bonus-slot__reel::after {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow: inset 0 8px 10px -6px rgba(58,26,6,.35), inset 0 -8px 10px -6px rgba(58,26,6,.35);
  border-radius: inherit;
  pointer-events: none;
}
.bonus-slot.is-spinning .bonus-slot__reel {
  box-shadow: 0 0 0 2px rgba(168,133,72,.4), 0 0 0 4px rgba(240,210,154,.3);
}

.bonus-slot__track { display: flex; flex-direction: column; will-change: transform; }
.bonus-slot__symbol { width: 100%; aspect-ratio: 1 / 1; min-height: 0; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.bonus-slot__symbol-svg { width: 62%; height: 62%; display: block; }

.bonus-slot__btn { width: 100%; max-width: 280px; margin-top: 2px; }
.bonus-slot__btn[aria-disabled="true"] { opacity: .7; cursor: default; pointer-events: none; }
.bonus-slot__btn.btn--gold {
  background: linear-gradient(135deg, var(--gold-pale), var(--gold));
  /* var(--on-gold) is never defined by any palette -- fell back to
     whatever color happened to be inherited, unreliable against the
     light gold-pale/gold gradient. A dark, warm tone here always
     contrasts, regardless of which palette a site ends up using. */
  color: #1F1300;
}

/* Periodic attention pulse while idle; stops on first user interaction. */
@keyframes bonusSlotAttract {
  0%, 50%, 100% { transform: scale(1); box-shadow: var(--shadow); }
  25%           { transform: scale(1.03); box-shadow: 0 10px 26px rgba(249,228,188,.55); }
}
.bonus-slot[data-state="idle"] .bonus-slot__btn--attract {
  animation: bonusSlotAttract 1.1s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .bonus-slot__track { transition: none !important; }
}

/* ── Bonus slot machine – ornate cabinet variant (data-gift-style="casino") ── */
.bonus-slot--casino {
  background: linear-gradient(160deg, var(--dark-surface) 0%, var(--dark-bg) 60%, var(--on-gold) 100%);
  border: 3px solid var(--gold);
  box-shadow: 0 0 0 2px var(--dark-bg), 0 0 0 3px var(--accent), 0 0 0 6px var(--gold), var(--shadow);
  gap: 14px;
}
.bonus-slot--casino .bonus-slot__title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--gold);
}
.bonus-slot--casino .bonus-slot__reels {
  position: relative;
  gap: 0;
  padding: 6px;
  border-radius: 10px;
  background:
    linear-gradient(to right, transparent 0%, rgba(240,210,154,.35) 12%, rgba(212,175,106,.28) 50%, rgba(240,210,154,.35) 88%, transparent 100%) 0 50% / 100% 2px no-repeat,
    var(--dark-bg);
  box-shadow: inset 0 2px 5px rgba(0,0,0,.55), inset 0 -2px 5px rgba(0,0,0,.55);
}
.bonus-slot--casino .bonus-slot__reels::after,
.bonus-slot--casino .bonus-slot__reels::before {
  content: "";
  position: absolute;
  top: 50%;
  width: 0; height: 0;
  transform: translateY(-50%);
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  pointer-events: none;
  z-index: 1;
}
.bonus-slot--casino .bonus-slot__reels::before { left: 0; border-left: 6px solid var(--gold); }
.bonus-slot--casino .bonus-slot__reels::after { right: 0; border-right: 6px solid var(--gold); }
.bonus-slot--casino .bonus-slot__reel {
  max-width: 84px;
  border: none;
  border-radius: 4px;
  background: linear-gradient(180deg, var(--gold-pale) 0%, var(--elevated) 100%);
}
.bonus-slot--casino .bonus-slot__reel:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.bonus-slot--casino .bonus-slot__reel:not(:last-child) {
  border-top-right-radius: 0; border-bottom-right-radius: 0;
  box-shadow: inset -2px 0 0 0 rgba(168,133,72,.4);
}
.bonus-slot--casino .bonus-slot__reel::after {
  box-shadow: inset 0 7px 10px -6px rgba(58,26,6,.35), inset 0 -7px 10px -6px rgba(58,26,6,.35);
}
.bonus-slot--casino .bonus-slot__reel:first-child::before,
.bonus-slot--casino .bonus-slot__reel:last-child::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(58,26,6,.22);
  pointer-events: none;
  border-radius: inherit;
  z-index: 1;
}
.bonus-slot--casino.is-spinning .bonus-slot__reel {
  box-shadow: 0 0 0 2px rgba(240,210,154,.55), 0 0 0 3px rgba(212,175,106,.3);
}
.bonus-slot--casino .bonus-slot__symbol-svg { width: 66%; height: 66%; }
@media (min-width: 480px) {
  .bonus-slot--casino .bonus-slot__title { font-size: 13px; }
  .bonus-slot--casino .bonus-slot__reel { max-width: 92px; }
}

/* ── Bonus reveal modal ── */
.bonus-slot-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2);
  background: rgba(0,0,0,.7);
  animation: bonusModalFadeIn .25s ease forwards;
}
.bonus-slot-modal-overlay[hidden] { display: none; }

.bonus-slot-modal {
  position: relative;
  width: 100%;
  max-width: 360px;
  max-height: calc(100vh - 2 * var(--space-2));
  overflow-y: auto;
  background: var(--surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  padding: var(--space-3) var(--space-2) var(--space-2);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  animation: bonusModalPop .5s cubic-bezier(.22,.9,.32,1.2) forwards;
}

.bonus-slot-modal__close {
  position: absolute;
  top: 6px; right: 6px;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; line-height: 1;
  color: var(--text-muted);
  background: var(--elevated);
  border-radius: 50%;
  transition: background .2s ease, color .2s ease;
}
.bonus-slot-modal__close:hover { background: var(--border); color: var(--text); }

.bonus-slot-modal__badge { font-size: 13px; color: var(--text-muted); }
.bonus-slot-modal__title { font-size: 20px; font-weight: 800; color: var(--text); }

.bonus-slot-modal__brand { display: flex; align-items: center; gap: 8px; margin: 2px 0; }
.bonus-slot-modal__logo-bg { display: flex; align-items: center; justify-content: center; padding: 6px 10px; border-radius: var(--radius-md); }
.bonus-slot-modal__logo { height: 24px; width: auto; max-width: 70px; object-fit: contain; }
.bonus-slot-modal__name { font-weight: 700; font-size: 14px; color: var(--text); }

.bonus-slot-modal__card {
  width: 100%;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 16px 12px;
  margin: 4px 0;
  border-radius: var(--radius-md);
  background: linear-gradient(180deg, rgba(240,210,154,.16) 0%, rgba(240,210,154,.04) 100%);
  border: 1.5px solid rgba(240,210,154,.3);
}
.bonus-slot-modal__amount { font-size: 30px; font-weight: 800; color: var(--text); line-height: 1.15; }
.bonus-slot-modal__amount.is-glowing { animation: amountGlow 2.2s ease-in-out infinite; }
@keyframes amountGlow {
  0%, 100% { text-shadow: 0 0 0 rgba(240,210,154,0); }
  50%      { text-shadow: 0 0 16px rgba(240,210,154,.5); }
}
.bonus-slot-modal__spins { font-size: 16px; font-weight: 700; color: var(--accent-2); }

.bonus-slot-modal__cta { width: 100%; max-width: none; min-height: 48px; margin-top: 6px; font-size: 16px; }
.bonus-slot-modal__cta.is-pulsing { animation: ctaPulse 1.8s ease-in-out infinite; }
@keyframes ctaPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.045); } }

.bonus-slot-modal__timer { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
.bonus-slot-modal__timer strong { color: var(--accent-2); font-weight: 700; }
.bonus-slot-modal[data-state="expired"] .bonus-slot-modal__timer { color: var(--accent-2); font-weight: 700; }

.bonus-slot-modal__retry {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 40px;
  font-size: 13px; font-weight: 600;
  color: var(--text-muted);
  text-decoration: underline; text-underline-offset: 3px;
  margin-top: 2px;
}
.bonus-slot-modal__retry:hover { color: var(--accent-2); }

@keyframes bonusModalFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes bonusModalPop {
  0%   { opacity: 0; transform: scale(.65) translateY(24px); }
  60%  { opacity: 1; transform: scale(1.06) translateY(-4px); }
  80%  { transform: scale(.98); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .bonus-slot-modal-overlay, .bonus-slot-modal { animation: none; }
}

.bonus-slot-modal--casino {
  border: 1.5px solid var(--gold);
  box-shadow: var(--shadow), inset 0 0 0 1px rgba(249,228,188,.55), inset 0 0 0 3px rgba(240,210,154,.4), 0 0 22px rgba(240,210,154,.14);
}
.bonus-slot-modal--casino .bonus-slot-modal__badge { color: var(--accent); font-weight: 700; }
.bonus-slot-modal--casino .bonus-slot-modal__card {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(240,210,154,.14) 0%, rgba(240,210,154,.03) 100%);
  border: 1.5px solid rgba(240,210,154,.4);
  box-shadow: 0 0 0 4px rgba(240,210,154,.08);
}
.bonus-slot-modal--casino .bonus-slot-modal__card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle 2.4px at 8% 14%, var(--gold) 100%, transparent 100%),
    radial-gradient(circle 2px at 18% 88%, var(--gold-pale) 100%, transparent 100%),
    radial-gradient(circle 2.4px at 40% 6%, var(--gold) 100%, transparent 100%),
    radial-gradient(circle 2px at 62% 92%, var(--gold-pale) 100%, transparent 100%),
    radial-gradient(circle 2.4px at 82% 10%, var(--gold) 100%, transparent 100%),
    radial-gradient(circle 2px at 92% 82%, var(--gold-pale) 100%, transparent 100%),
    radial-gradient(circle 2px at 96% 45%, var(--gold) 100%, transparent 100%);
  opacity: 0;
  animation: bonusCardParticles 520ms ease-out 260ms 1 both;
}
.bonus-slot-modal--casino .bonus-slot-modal__card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(100deg, transparent 42%, rgba(255,255,255,.8) 50%, transparent 58%);
  transform: translateX(-120%);
  opacity: 0;
  animation: bonusCardShine .6s ease-in-out .3s 1 both;
}
@keyframes bonusCardParticles {
  0%   { opacity: 0; transform: scale(.7); }
  40%  { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.12) translateY(-3px); }
}
@keyframes bonusCardShine {
  0%   { transform: translateX(-120%); opacity: 0; }
  15%  { opacity: .9; }
  55%  { opacity: .9; }
  100% { transform: translateX(120%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .bonus-slot-modal--casino .bonus-slot-modal__card::before,
  .bonus-slot-modal--casino .bonus-slot-modal__card::after { animation: none; }
}

@media (max-width: 640px) {
  .hero__lead { padding-bottom: 12px; }
  .hero-podium { margin-top: 8px; }
  .bonus-slot { margin-top: 0; padding: var(--space-2); }
  .bonus-slot__title { font-size: 17px; }
  .bonus-slot-modal { padding: var(--space-2) var(--space-1) var(--space-1); }
  .bonus-slot-modal__amount { font-size: 24px; }
  /* Reserve the slot's real height (title on one line) so the wins block sits
     8px under it; RU's longer title wraps to two lines on narrow phones. */
  [data-gift-picker] { min-height: 235px; }
  html[lang^="ru"] [data-gift-picker] { min-height: 254px; }
}

/* Every tile's player/game/amount is written by main.js at load, and its
   href by cta-links.js from the data-cta-name main.js just set — so with JS
   off the block is three empty cards that look clickable but are <a>
   elements with no href, which is not a link at all. Hidden until the
   has-js class lands, the same way the gift picker's fallback is. */
html:not(.has-js) .hero-wins { display: none; }

.hero-wins { max-width: 640px; margin: var(--space-1) auto var(--space-4); }
.hero-wins__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-1); margin-bottom: var(--space-1); }
.hero-wins__title { font-weight: 700; font-size: 16px; color: #fff; }
.hero-wins__live {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #fff;
}
.hero-wins__dot { width: 8px; height: 8px; border-radius: 50%; background: #3DDC84; box-shadow: 0 0 0 0 rgba(61,220,132,.6); animation: heroWinsPulse 1.8s ease-out infinite; }
/* Step carousel (vvegas-style): wrap clips, track is a flex row of tiles
   that slides one tile-width per advance — a new tile enters from the left,
   the trailing one exits to the right, then gets recycled to the far end
   for the next step (see main.js's advance()/hero-wins carousel code). */
.hero-wins__carousel-wrap { overflow: hidden; }
.hero-wins__track { display: flex; width: max-content; gap: var(--space-1); will-change: transform; }
.hero-wins__tile {
  display: flex; align-items: center; gap: 10px; min-width: 0;
  /* Width is set inline by JS (measured from the wrap, see main.js's
     measureStep()) -- can't be a CSS percentage of the track, since the
     track itself is sized to fit its content (width: max-content) and a
     percentage-of-content-sized-parent is a circular dependency. */
  flex: 0 0 auto;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 8px 12px 8px 8px; color: var(--text);
  transition: border-color .2s ease, background-color .2s ease, transform .15s ease;
}
.hero-wins__tile:active { transform: scale(.98); }
.hero-wins__tile:hover { color: var(--text); border-color: var(--accent-2); background: var(--elevated); }
.hero-wins__tile:focus-visible { border-radius: var(--radius-md); }
.hero-wins__amount.is-fresh { animation: heroWinsGlow 1.2s ease-out; }
.hero-wins__thumb { flex: none; width: 48px; height: 48px; border-radius: var(--radius-sm); object-fit: cover; }
.hero-wins__info { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.25; }
.hero-wins__player { font-size: 12px; color: var(--text-soft); }
.hero-wins__game {
  font-weight: 600; font-size: 13px; color: var(--text);
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.hero-wins__amount { font-weight: 800; font-size: 15px; color: #3DDC84; white-space: nowrap; overflow: hidden; }
.hero-wins__cta {
  flex: none; padding: 6px 14px; border-radius: var(--radius-sm);
  font-weight: 800; font-size: 13px; line-height: 1.2; white-space: nowrap; text-transform: uppercase; letter-spacing: .03em;
  background: linear-gradient(135deg, var(--gold-pale), var(--gold), var(--gold-dark)); color: var(--on-gold);
}
.hero-wins__cta::after { content: "\2192"; margin-left: 4px; }
.hero-wins__tile:hover .hero-wins__cta { filter: brightness(.92); }
@keyframes heroWinsPulse { 70% { box-shadow: 0 0 0 7px rgba(61,220,132,0); } 100% { box-shadow: 0 0 0 0 rgba(61,220,132,0); } }
@keyframes heroWinsGlow { from { text-shadow: 0 0 12px rgba(61,220,132,.9); } to { text-shadow: 0 0 0 rgba(61,220,132,0); } }
@media (max-width: 640px) {
  /* More breathing room from the slot machine above, less dead space before the next section. */
  .hero-wins { margin-top: var(--space-4); margin-bottom: var(--space-2); }
  .hero-wins__head { justify-content: center; }
  .hero-wins__head::before,
  .hero-wins__head::after { content: ""; flex: 1; height: 1px; background: var(--border); }
  .hero-wins__title { font-size: 14px; text-transform: uppercase; letter-spacing: .03em; }
  .hero-wins__live { display: none; }

  /* Mobile: a natively swipeable feed (matches the reference vvegas site's
     own mobile carousel, both the interaction -- overflow-x scroll + snap
     does the drag/snap itself, no JS needed for that part, see main.js's
     MOBILE_QUERY branch -- and the card itself: a compact horizontal
     thumb+info row instead of desktop's taller stacked layout. */
  .hero-wins__carousel-wrap {
    overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity; scrollbar-width: none;
  }
  .hero-wins__carousel-wrap::-webkit-scrollbar { display: none; }
  /* Grid, not flex: the CTA is a sibling of .hero-wins__info in the markup
     (not inside it, the way the reference vvegas card nests its play
     button), so a plain row flex put the button BESIDE the text and left
     the text column only ~70px wide. Two columns with the cover spanning
     both rows puts the full-width button under the text instead. */
  .hero-wins__tile {
    /* Width is set inline by JS (sizeMobileTiles) -- can't be a CSS percentage
       here, same circular-dependency reason as the desktop tiles (see main.js). */
    scroll-snap-align: start;
    display: grid; grid-template-columns: 76px minmax(0, 1fr); grid-template-rows: auto auto;
    gap: 6px 8px; height: auto; padding: 6px;
  }
  .hero-wins__info {
    grid-column: 2; grid-row: 1;
    display: flex; flex-direction: column; gap: 1px; min-width: 0; padding: 0;
  }
  /* Same proportions as the reference vvegas card: a slightly taller-than-wide
     cover, muted nick, bold game title on one ellipsised line, then the
     amount in the darker green that reads on white. */
  .hero-wins__thumb { grid-column: 1; grid-row: 1 / 3; width: 76px; height: 100%; min-height: 80px; align-self: stretch; border-radius: 8px; }
  .hero-wins__player { font-size: 11px; line-height: 1.3; }
  .hero-wins__game { font-size: 12px; font-weight: 700; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .hero-wins__amount { font-size: 14px; line-height: 1.3; text-align: left; color: #15803D; letter-spacing: -.01em; }
  .hero-wins__cta {
    grid-column: 2; grid-row: 2; width: 100%; height: 24px; padding: 0 8px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--gold-pale), var(--gold), var(--gold-dark));
    color: var(--on-gold); border-radius: 5px;
    font-size: 10px; font-weight: 800; letter-spacing: .05em;
  }
  .hero-wins__cta::after { content: none; }
}
@media (min-width: 480px) and (max-width: 640px) {
  .hero-wins__title { font-size: 15px; }
}
@media (max-width: 340px) {
  .hero-wins__tile { grid-template-columns: 52px minmax(0, 1fr); column-gap: 6px; }
  .hero-wins__thumb { width: 52px; height: 52px; }
}

/* The header's middle slot. .site-header__nav already carried its own
   show/hide rules but no element ever used them; the landing menu now does.
   Centred on the bar itself rather than by the flex row, because the logo and
   the actions either side are never the same width and space-between would
   put it off to one side. */
.site-header__inner { position: relative; }
@media (min-width: 860px) {
  .site-header__nav {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
  }
}
