/* Larkspurio — Prospector's Golden Vein Rush
   _core/social-v2 track. Mobile-first: base rules are the small-viewport
   layout; every @media query below is min-width only (CLAUDE.md Rule #1). */

@import url('https://fonts.googleapis.com/css2?family=Alfa+Slab+One&family=Vollkorn:wght@400;600;700&display=swap');

:root {
  /* required auth-modal / cookie-banner tokens (auth-modal.template.html) */
  --sv2-gold: #e8a93c;
  --sv2-gold-deep: #c97a1d;
  --sv2-white: #fff8ec;
  --sv2-ink: #2b1b0e;
  --sv2-text-dim: #d8b98c;
  --sv2-card-bg: rgba(255, 220, 160, 0.07);
  --sv2-card-border: rgba(255, 200, 130, 0.16);
  --sv2-radius-lg: 20px;

  /* Larkspurio palette */
  --gsp-bg-0: #241206;
  --gsp-bg-1: #4a2a0d;
  --gsp-bg-2: #6b3f14;
  --gsp-rock: #574536;
  --gsp-rock-dark: #362a20;
  --gsp-amber: #e8a93c;
  --gsp-amber-deep: #c97a1d;
  --gsp-amber-bright: #ffcf6b;
  --gsp-cream: #fff8ec;
  --gsp-dim: #d8b98c;
  --gsp-danger: #ff5a4d;
  --gsp-win: #7de08a;

  --gsp-font-display: "Alfa Slab One", "Impact", sans-serif;
  --gsp-font-body: "Vollkorn", Georgia, serif;

  --gsp-radius-sm: 10px;
  --gsp-radius-md: 16px;
  --gsp-radius-lg: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--gsp-font-body);
  color: var(--gsp-cream);
  background: linear-gradient(160deg, var(--gsp-bg-0) 0%, var(--gsp-bg-1) 48%, var(--gsp-bg-2) 100%);
  background-repeat: no-repeat;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: var(--gsp-amber-bright); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 {
  font-family: var(--gsp-font-display);
  color: var(--gsp-cream);
  line-height: 1.15;
  margin: 0 0 0.5em;
  text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}
p { margin: 0 0 1em; }
ul { padding-left: 1.2em; }
/* No Bootstrap is loaded on this site, and this custom .container never had
   its own max-width/centering — any page that narrows it with an inline
   max-width (all 19 game pages, ~760px) was left flush against the left
   edge with a dead void filling the rest of a desktop viewport instead of
   being centered. margin:auto is a no-op wherever .container is already
   full-width, so this only affects the narrowed pages.
   The 1320px cap is the second half of that same gap: without it, EVERY
   section (nav, hero, game grid, footer) just kept stretching to match the
   monitor — fine at a 1440px laptop, visibly bloated on a real 1920px+
   desktop screen where nav links spread apart and the hero image balloons.
   1320px is the standard Bootstrap 5 xxl container width — proven at real
   desktop sizes, not just the one viewport it happened to be eyeballed at. */
.container { padding-left: 18px; padding-right: 18px; margin-left: auto; margin-right: auto; max-width: 1320px; }
/* Narrow reading-width variant for single-column pages (game detail write-ups) —
   was 19 copies of the same inline style; centralized here so future width
   tweaks happen once instead of in every game-*.php file. */
.container--narrow { max-width: 760px; }
.gsp-prose--form { max-width: 520px; margin-left: auto; margin-right: auto; }
.gsp-section { padding: 48px 0; }
.gsp-section--alt { background: rgba(0,0,0,0.18); }
.gsp-eyebrow {
  display: inline-block;
  font-family: var(--gsp-font-display);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gsp-bg-0);
  background: linear-gradient(120deg, var(--gsp-amber-bright), var(--gsp-amber-deep));
  padding: 6px 14px;
  border-radius: 999px;
  margin-bottom: 14px;
}
.gsp-section-head { max-width: 640px; margin-bottom: 28px; }
.gsp-section-head h2 { font-size: clamp(1.6rem, 4vw, 2.4rem); }
.gsp-section-head p { color: var(--gsp-dim); }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 22px;
  border-radius: 999px;
  border: none;
  font-family: var(--gsp-font-body);
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
}
.btn--gold {
  background: linear-gradient(120deg, var(--gsp-amber-bright), var(--gsp-amber-deep));
  color: var(--gsp-bg-0);
  box-shadow: 0 10px 28px rgba(232, 169, 60, 0.35);
}
.btn--gold:hover { filter: brightness(1.08); text-decoration: none; }
.btn--ghost {
  background: rgba(255,255,255,0.06);
  color: var(--gsp-cream);
  border: 1px solid rgba(255,255,255,0.22);
}
.btn--ghost:hover { background: rgba(255,255,255,0.12); text-decoration: none; }
.btn--sm { min-height: 44px; padding: 8px 16px; font-size: 0.9rem; }
.btn--link {
  background: none;
  color: var(--gsp-amber-bright);
  min-height: auto;
  padding: 4px 0;
  text-decoration: underline;
}

/* ================= NAV: mineshaft-crossbeam-rail-nav ================= */
.gsp-nav {
  position: sticky;
  top: 0;
  z-index: 60;
  background: linear-gradient(180deg, #3c2410, #2a1608);
  border-bottom: 2px solid var(--gsp-amber-deep);
  box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}
.gsp-nav__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 60px;
  padding: 6px 16px;
  gap: 12px;
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}
.gsp-nav__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--gsp-cream);
  font-family: var(--gsp-font-display);
  font-size: 1.1rem;
  flex-shrink: 0;
}
.gsp-nav__brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, var(--gsp-amber-bright), var(--gsp-amber-deep));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gsp-bg-0);
  box-shadow: 0 0 0 3px rgba(0,0,0,0.4), 0 0 14px rgba(232,169,60,0.5);
  flex-shrink: 0;
}
.gsp-nav__brand-mark svg { width: 22px; height: 22px; }
.gsp-nav__utility { display: flex; align-items: center; gap: 10px; }
.gsp-nav__balance {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(0,0,0,0.3);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 0.85rem;
  white-space: nowrap;
}
.gsp-nav__balance strong { color: var(--gsp-amber-bright); }
.gsp-nav__links { display: none; } /* revealed at >=900px */
.gsp-nav__mobile-toggle {
  display: none;
  min-width: 44px;
  min-height: 44px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(120deg, var(--gsp-amber-bright), var(--gsp-amber-deep));
  color: var(--gsp-bg-0);
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* mobile FAB + rising stack */
.gsp-nav-fab {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 70;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(140deg, var(--gsp-amber-bright), var(--gsp-amber-deep));
  color: var(--gsp-bg-0);
  box-shadow: 0 10px 26px rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.18s ease;
}
.gsp-nav-fab.is-active { transform: rotate(28deg) scale(1.06); }
.gsp-nav-fab svg { width: 26px; height: 26px; }
.gsp-nav-mobile-list {
  position: fixed;
  right: 18px;
  bottom: 86px;
  z-index: 69;
  display: none;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  pointer-events: none;
}
.gsp-nav-mobile-list.is-open { display: flex; }
.gsp-nav-mobile-list a {
  pointer-events: none;
  opacity: 0;
  transform: translateY(14px) scale(0.9);
  transition: opacity 0.18s ease, transform 0.18s ease;
  background: rgba(20,10,4,0.94);
  border: 1px solid var(--gsp-amber-deep);
  color: var(--gsp-cream);
  padding: 10px 16px;
  border-radius: 999px;
  font-size: 0.92rem;
  min-height: 44px;
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.gsp-nav-mobile-list.is-open { pointer-events: auto; }
.gsp-nav-mobile-list.is-open a {
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0) scale(1);
}
.gsp-nav-mobile-list a:nth-child(1) { transition-delay: 0.02s; }
.gsp-nav-mobile-list a:nth-child(2) { transition-delay: 0.06s; }
.gsp-nav-mobile-list a:nth-child(3) { transition-delay: 0.1s; }
.gsp-nav-mobile-list a:nth-child(4) { transition-delay: 0.14s; }
.gsp-nav-mobile-list a:nth-child(5) { transition-delay: 0.18s; }
.gsp-nav-mobile-list a:nth-child(6) { transition-delay: 0.22s; }

@media (min-width: 900px) {
  .gsp-nav__bar { padding: 10px 28px; min-height: 76px; }
  .gsp-nav__links {
    display: flex;
    align-items: flex-end;
    gap: 26px;
    position: relative;
    padding-top: 22px;
    flex: 1;
    justify-content: center;
  }
  .gsp-nav__links::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 4%;
    right: 4%;
    height: 2px;
    background: repeating-linear-gradient(90deg, rgba(232,169,60,0.55) 0 6px, transparent 6px 12px);
  }
  .gsp-nav__tag {
    color: var(--gsp-cream);
    font-size: 0.92rem;
    font-weight: 600;
    background: rgba(0,0,0,0.32);
    border: 1px solid rgba(232,169,60,0.4);
    border-radius: 999px;
    padding: 7px 15px;
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
  }
  .gsp-nav__tag::before {
    content: "";
    position: absolute;
    top: -14px;
    left: 50%;
    width: 1px;
    height: 14px;
    background: rgba(232,169,60,0.55);
  }
  .gsp-nav__tag:nth-child(odd) { transform: translateY(0); }
  .gsp-nav__tag:nth-child(even) { transform: translateY(10px); }
  .gsp-nav__tag:nth-child(even)::before { height: 24px; top: -24px; }
  .gsp-nav__tag:hover { background: rgba(232,169,60,0.18); text-decoration: none; }
  .gsp-nav-fab, .gsp-nav-mobile-list { display: none; }
}

/* ================= HERO ================= */
.gsp-hero {
  position: relative;
  padding: 40px 0 48px;
  overflow: hidden;
}
.gsp-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.28;
  z-index: 0;
}
.gsp-hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(36,18,6,0.2), var(--gsp-bg-0) 92%);
}
.gsp-hero__grid {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.gsp-hero__copy { max-width: 620px; }
.gsp-hero__eyebrow-line {
  font-size: 0.86rem;
  color: var(--gsp-amber-bright);
  letter-spacing: 0.04em;
  margin-bottom: 14px;
  font-weight: 700;
}
.gsp-hero__proof {
  display: flex;
  gap: 22px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.gsp-hero__proof-stat { min-width: 110px; }
.gsp-hero__proof-stat strong {
  display: block;
  font-family: var(--gsp-font-display);
  font-size: 1.5rem;
  color: var(--gsp-amber-bright);
}
.gsp-hero__proof-stat span { font-size: 0.82rem; color: var(--gsp-dim); }
.gsp-hero h1 {
  font-size: clamp(2rem, 6vw, 3.1rem);
  margin-bottom: 18px;
}
.gsp-hero__bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gsp-hero__bullets li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--gsp-cream);
  font-size: 1.02rem;
}
.gsp-hero__bullets li::before {
  content: "⛏";
  color: var(--gsp-amber-bright);
  flex-shrink: 0;
}
.gsp-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.gsp-hero__visual {
  position: relative;
  border-radius: var(--gsp-radius-lg);
  overflow: hidden;
  border: 1px solid rgba(232,169,60,0.3);
  box-shadow: 0 24px 60px rgba(0,0,0,0.5);
}
.gsp-hero__visual img { width: 100%; height: 100%; object-fit: cover; }

.gsp-age-flag {
  position: fixed;
  right: 0;
  bottom: 130px;
  z-index: 55;
  background: linear-gradient(120deg, var(--gsp-amber-bright), var(--gsp-amber-deep));
  color: var(--gsp-bg-0);
  font-family: var(--gsp-font-display);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  padding: 8px 12px 8px 16px;
  border-radius: 8px 0 0 8px;
  box-shadow: -4px 4px 14px rgba(0,0,0,0.4);
  animation: gsp-flag-wave 3.4s ease-in-out infinite;
  transform-origin: right center;
}
@keyframes gsp-flag-wave {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
}
.gsp-hero__microcopy { color: var(--gsp-dim); font-size: 0.9rem; margin-bottom: 18px; }
.gsp-hero__visual { position: relative; }
/* text_block_position: left-anchored on a hero-split-copy-visual layout —
   copy column stays first/left in DOM + grid order, visual column second/right. */
.gsp-hero__cta-primary { margin-bottom: 16px; }
.gsp-hero__lead { color: var(--gsp-cream); font-size: 1.05rem; line-height: 1.55; max-width: 54ch; margin-bottom: 18px; }
.gsp-hero__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
  color: var(--gsp-amber-bright);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(232,169,60,0.4);
}
.gsp-hero__link:hover, .gsp-hero__link:focus-visible { border-bottom-color: var(--gsp-amber-bright); }
@media (min-width: 900px) {
  .gsp-hero__grid { flex-direction: row; align-items: center; gap: 48px; }
  .gsp-hero__copy { flex: 1.05; }
  .gsp-hero__visual { flex: 0.95; aspect-ratio: 4/5; }
  .gsp-hero--right .gsp-hero__grid { flex-direction: row-reverse; }
}

.gsp-leaderboard { list-style: none; padding: 0; margin: 18px auto 0; max-width: 520px; display: flex; flex-direction: column; gap: 8px; }
.gsp-leaderboard li {
  display: flex;
  align-items: center;
  gap: 14px;
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(232,169,60,0.2);
  border-radius: var(--gsp-radius-sm);
  padding: 10px 16px;
}
.gsp-leaderboard__rank {
  font-family: var(--gsp-font-display);
  color: var(--gsp-amber-bright);
  font-size: 1.2rem;
  width: 24px;
}
.gsp-leaderboard__name { flex: 1; text-align: left; }
.gsp-leaderboard__coins { color: var(--gsp-dim); font-size: 0.9rem; }

.gsp-countdown {
  display: inline-flex; align-items: center; gap: 6px; margin: 10px 0 0; padding: 6px 12px;
  border-radius: 999px; background: rgba(232,169,60,0.12); border: 1px solid rgba(232,169,60,0.3);
  color: var(--gsp-amber-bright); font-size: 0.82rem; font-weight: 700;
}
.gsp-countdown--static { color: var(--gsp-dim); font-weight: 400; background: rgba(0,0,0,0.2); border-color: rgba(255,255,255,0.12); }
.gsp-jackpot .gsp-countdown { margin-top: 14px; }

@media (min-width: 900px) {
  .gsp-age-flag { bottom: 40px; }
}

/* ================= STAT STRIP (dual-stat-pair, above headline used inline in hero; reused generic) */
.gsp-stat-pair { display: flex; gap: 18px; margin-bottom: 18px; }
.gsp-stat-pair strong { color: var(--gsp-amber-bright); font-family: var(--gsp-font-display); }

/* ================= JACKPOT single-figure ================= */
.gsp-jackpot {
  background: radial-gradient(circle at 30% 20%, rgba(232,169,60,0.22), transparent 60%), var(--gsp-rock-dark);
  border-top: 1px solid rgba(232,169,60,0.25);
  border-bottom: 1px solid rgba(232,169,60,0.25);
  text-align: center;
  padding: 40px 0;
}
.gsp-jackpot__label {
  font-family: var(--gsp-font-display);
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gsp-dim);
  margin-bottom: 8px;
}
.gsp-jackpot__figure {
  font-family: var(--gsp-font-display);
  font-size: clamp(2.4rem, 8vw, 4.2rem);
  color: var(--gsp-amber-bright);
  text-shadow: 0 0 30px rgba(232,169,60,0.5);
}
.gsp-jackpot__figure small { font-size: 0.4em; color: var(--gsp-dim); display: block; margin-top: 4px; }
.gsp-jackpot__note { color: var(--gsp-dim); font-size: 0.85rem; margin-top: 10px; }

/* ================= GAME GRID CAROUSEL ================= */
.gsp-games__row { position: relative; }
.gsp-games__track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 10px;
  -webkit-overflow-scrolling: touch;
}
.gsp-games__track::-webkit-scrollbar { height: 8px; }
.gsp-games__track::-webkit-scrollbar-thumb { background: var(--gsp-amber-deep); border-radius: 4px; }

/* game-card-archetype: ore-tray-tilt-pour-card, landscape (16:9) */
.gsp-card {
  flex: 0 0 auto;
  width: 78vw;
  max-width: 320px;
  scroll-snap-align: start;
  border-radius: var(--gsp-radius-md);
  overflow: hidden;
  background: var(--gsp-card-bg);
  border: 1px solid var(--gsp-card-border);
  perspective: 900px;
}
.gsp-card__frame {
  transform-style: preserve-3d;
  transition: transform 0.3s ease;
  position: relative;
}
.gsp-card:hover .gsp-card__frame,
.gsp-card:focus-within .gsp-card__frame {
  transform: rotateX(-6deg) translateY(-4px);
}
.gsp-card__media { display: block; position: relative; aspect-ratio: 1/1; background: var(--gsp-rock-dark); }
.gsp-card__media img { width: 100%; height: 100%; object-fit: cover; }
.gsp-card__tag {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(0,0,0,0.55);
  color: var(--gsp-amber-bright);
  font-size: 0.72rem;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(232,169,60,0.4);
}
.gsp-card__body { padding: 12px 14px 16px; }
.gsp-card__title { font-family: var(--gsp-font-display); font-size: 1rem; margin: 0 0 4px; }
.gsp-card__meta { color: var(--gsp-dim); font-size: 0.82rem; margin-bottom: 10px; display: flex; gap: 10px; }
.gsp-card__tray {
  position: relative;
  height: 0;
  overflow: hidden;
  transition: height 0.25s ease;
}
.gsp-card:hover .gsp-card__tray,
.gsp-card:focus-within .gsp-card__tray { height: 44px; }
.gsp-card__play {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 999px;
  background: linear-gradient(120deg, var(--gsp-amber-bright), var(--gsp-amber-deep));
  color: var(--gsp-bg-0);
  font-weight: 700;
  border: none;
  width: 100%;
  cursor: pointer;
}
.gsp-games__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 560px) { .gsp-games__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .gsp-games__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .gsp-games__grid { grid-template-columns: repeat(4, 1fr); } }

/* ================= SLOT SHOWCASE: mineshaft-winch-cabinet ================= */
.gsp-slot {
  position: relative;
  border-radius: var(--gsp-radius-lg);
  border: 2px solid var(--gsp-amber-deep);
  background: linear-gradient(180deg, #3a2412, #1c1005);
  padding: 20px 14px 26px;
  overflow: hidden;
}
.gsp-slot.is-flash::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle, rgba(255,207,107,0.35), transparent 70%);
  animation: gsp-flash 0.6s ease-out;
}
@keyframes gsp-flash { from { opacity: 1; } to { opacity: 0; } }
.gsp-slot__winch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  gap: 10px;
}
.gsp-slot__stat { text-align: center; }
.gsp-slot__stat span { display: block; font-size: 0.7rem; color: var(--gsp-dim); text-transform: uppercase; }
.gsp-slot__stat strong { font-family: var(--gsp-font-display); color: var(--gsp-amber-bright); font-size: 1.1rem; }
.gsp-slot__stat.is-pulsing strong { animation: gsp-pulse 0.5s ease; }
@keyframes gsp-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.18); } 100% { transform: scale(1); } }
.gsp-slot__stage {
  position: relative;
  border-radius: var(--gsp-radius-md);
  border: 4px solid #2a1a0c;
  background: #10090300;
  overflow: hidden;
}
.gsp-slot__cabinet { position: relative; }
/* game-ui */
.gsp-slot__reels {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 4px;
  padding: 8px;
  filter: none;
}
.gsp-slot__reels.is-spinning .gsp-slot__cell img { filter: blur(2px); }
.gsp-slot__cell {
  aspect-ratio: 1/1;
  background: rgba(0,0,0,0.4);
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(232,169,60,0.15);
}
.gsp-slot__cell img { width: 100%; height: 100%; object-fit: cover; transition: filter 0.1s; }
.gsp-slot__cell.is-win { box-shadow: inset 0 0 0 3px var(--gsp-win), 0 0 16px rgba(125,224,138,0.6); }
.gsp-slot__win {
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translate(-50%, -14px);
  background: rgba(20,10,4,0.9);
  border: 1px solid var(--gsp-win);
  color: var(--gsp-win);
  padding: 8px 16px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.9rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s, transform 0.25s;
  white-space: nowrap;
  z-index: 5;
}
.gsp-slot__win.is-visible { opacity: 1; transform: translate(-50%, 0); }
.gsp-slot__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.gsp-slot__bet {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(0,0,0,0.35);
  border-radius: 999px;
  padding: 6px 10px;
}
.gsp-slot__bet button {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: var(--gsp-amber-deep);
  color: var(--gsp-bg-0);
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
}
.gsp-slot__spin {
  width: 78px;
  height: 78px;
  border-radius: 50%;
  border: 4px solid var(--gsp-amber-bright);
  background: radial-gradient(circle at 35% 30%, var(--gsp-amber-bright), var(--gsp-amber-deep));
  color: var(--gsp-bg-0);
  font-family: var(--gsp-font-display);
  font-size: 0.85rem;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,0.45);
}
.gsp-slot__spin.is-spinning { animation: gsp-crank 0.9s linear; }
@keyframes gsp-crank { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.gsp-slot__spin:disabled { opacity: 0.6; cursor: not-allowed; }
.gsp-slot__auto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(232,169,60,0.4);
  background: rgba(0,0,0,0.3);
  color: var(--gsp-cream);
  font-size: 0.82rem;
  cursor: pointer;
}
.gsp-slot__auto.is-active { background: var(--gsp-amber-deep); color: var(--gsp-bg-0); }
.gsp-slot__note--legal { font-size: 0.82rem; color: var(--gsp-dim); text-align: center; margin-top: 14px; }

/* nugget-drop-bounce-settle: nuggets fall from the win line, bounce once,
   then settle and fade — a gravity/bounce physics, not a radial burst. */
.gsp-nugget {
  position: absolute;
  left: 50%;
  top: 30%;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--gsp-amber-bright), var(--gsp-amber-deep));
  box-shadow: 0 0 6px rgba(232,169,60,0.7);
  pointer-events: none;
  animation: gsp-bounce-settle var(--gsp-nugget-dur, 1100ms) var(--gsp-nugget-delay, 0ms) forwards;
  animation-timing-function: cubic-bezier(0.34, 1.4, 0.64, 1);
}
@keyframes gsp-bounce-settle {
  0% { transform: translate(-50%, -50%) scale(0.5); opacity: 1; }
  55% { transform: translate(calc(-50% + var(--gsp-nugget-tx)), calc(-50% + var(--gsp-nugget-fall))) scale(1) rotate(var(--gsp-nugget-rot)); opacity: 1; }
  70% { transform: translate(calc(-50% + var(--gsp-nugget-tx)), calc(-50% + var(--gsp-nugget-fall) * 0.82)) scale(1) rotate(var(--gsp-nugget-rot)); }
  85% { transform: translate(calc(-50% + var(--gsp-nugget-tx)), calc(-50% + var(--gsp-nugget-fall))) scale(1) rotate(var(--gsp-nugget-rot)); opacity: 1; }
  100% { transform: translate(calc(-50% + var(--gsp-nugget-tx)), calc(-50% + var(--gsp-nugget-fall))) scale(0.85) rotate(var(--gsp-nugget-rot)); opacity: 0; }
}

/* Paytable dialog */
.gsp-paytable {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: rgba(0,0,0,0.6);
}
.gsp-paytable[hidden] { display: none !important; }
.gsp-paytable__sheet {
  background: #1c1005;
  border: 2px solid var(--gsp-amber-deep);
  border-radius: 20px 20px 0 0;
  padding: 20px;
  width: 100%;
  max-width: 560px;
  max-height: 82vh;
  overflow-y: auto;
}
.gsp-paytable__row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.gsp-paytable__row img { width: 34px; height: 34px; border-radius: 6px; object-fit: cover; }
.gsp-paytable__row .name { flex: 1; font-size: 0.9rem; }
.gsp-paytable__row .val { font-size: 0.82rem; color: var(--gsp-amber-bright); width: 56px; text-align: right; }
.gsp-paytable__line { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 0.82rem; }
/* game-ui */
.gsp-paytable__line-grid { display: grid; grid-template-columns: repeat(5, 6px); grid-template-rows: repeat(3, 6px); gap: 2px; }
.gsp-paytable__line-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.15); }
.gsp-paytable__line-dot.is-on { background: var(--gsp-amber-bright); }

/* ================= TESTIMONIALS ================= */
.gsp-testimonials { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 700px) { .gsp-testimonials { grid-template-columns: repeat(3, 1fr); } }
.gsp-testimonial {
  background: var(--sv2-card-bg);
  border: 1px solid var(--sv2-card-border);
  border-radius: var(--gsp-radius-md);
  padding: 18px;
}
.gsp-testimonial p { font-style: italic; color: var(--gsp-cream); }
.gsp-testimonial cite { color: var(--gsp-amber-bright); font-style: normal; font-size: 0.85rem; }

/* ================= PROMO BAND ================= */
.gsp-promo {
  background: linear-gradient(120deg, rgba(232,169,60,0.16), rgba(0,0,0,0.2));
  border: 1px solid rgba(232,169,60,0.3);
  border-radius: var(--gsp-radius-lg);
  padding: 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}
@media (min-width: 700px) {
  .gsp-promo { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ================= HOW IT WORKS ================= */
.gsp-steps { display: grid; grid-template-columns: 1fr; gap: 16px; counter-reset: gsp-step; }
@media (min-width: 700px) { .gsp-steps { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 700px) { .gsp-steps--3 { grid-template-columns: repeat(3, 1fr); } }
.gsp-step { position: relative; padding: 18px; background: rgba(0,0,0,0.25); border-radius: var(--gsp-radius-md); border: 1px solid rgba(232,169,60,0.2); }
.gsp-step::before {
  counter-increment: gsp-step;
  content: counter(gsp-step);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--gsp-amber-deep);
  color: var(--gsp-bg-0);
  font-family: var(--gsp-font-display);
  margin-bottom: 10px;
}

/* ================= VIP CLUB — client-tracked rank progress ================= */
.gsp-vip-progress {
  background: rgba(0,0,0,0.25); border: 1px solid rgba(232,169,60,0.25); border-radius: var(--gsp-radius-md);
  padding: 18px 20px; margin-bottom: 24px;
}
.gsp-vip-progress__head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.gsp-vip-progress__head span:first-child { font-family: var(--gsp-font-display); color: var(--gsp-amber-bright); font-size: 1.15rem; }
.gsp-vip-progress__head span:last-child { color: var(--gsp-dim); font-size: 0.82rem; }
.gsp-vip-progress__track { height: 10px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.gsp-vip-progress__fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--gsp-amber-deep), var(--gsp-amber-bright)); transition: width 0.4s ease; width: 0; }
.gsp-vip-progress__note { color: var(--gsp-dim); font-size: 0.82rem; margin: 10px 0 0; }
.gsp-step.is-current { border-color: var(--gsp-amber-bright); box-shadow: 0 0 0 1px var(--gsp-amber-bright); }
.gsp-step.is-reached { opacity: 0.72; }

/* ================= GAMES LIBRARY — theme filter chips ================= */
.gsp-filter-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.gsp-filter-chip {
  min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(232,169,60,0.3);
  background: rgba(0,0,0,0.25); color: var(--gsp-dim); font-weight: 700; font-size: 0.86rem; cursor: pointer;
}
.gsp-filter-chip.is-active, .gsp-filter-chip:hover { background: var(--gsp-amber-bright); color: var(--gsp-bg-0); border-color: var(--gsp-amber-bright); }
.gsp-card[hidden] { display: none; }

/* ================= GAME DETAIL — quick-glance trust stats ================= */
.gsp-game-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.gsp-game-stats__item {
  flex: 1 1 140px; text-align: center; padding: 12px 10px; background: rgba(0,0,0,0.25);
  border: 1px solid rgba(232,169,60,0.2); border-radius: var(--gsp-radius-sm);
}
.gsp-game-stats__item b { display: block; font-family: var(--gsp-font-display); color: var(--gsp-amber-bright); font-size: 1.3rem; }
.gsp-game-stats__item span { color: var(--gsp-dim); font-size: 0.78rem; }

/* ================= FAQ ================= */
/* Caps the answer/question line length to a readable width on wide desktop
   viewports instead of stretching edge-to-edge across the full container. */
.gsp-faq { max-width: 820px; }
.gsp-faq__item { border-bottom: 1px solid rgba(255,255,255,0.1); }
.gsp-faq__q {
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  color: var(--gsp-cream);
  font-family: var(--gsp-font-display);
  font-size: 1rem;
  padding: 16px 0;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  min-height: 44px;
}
.gsp-faq__a { max-height: 0; overflow: hidden; color: var(--gsp-dim); transition: max-height 0.25s ease; }
.gsp-faq__item.is-open .gsp-faq__a { max-height: 320px; padding-bottom: 16px; }
.gsp-faq__item.is-open .gsp-faq__q .chev { transform: rotate(180deg); }
.gsp-faq__q .chev { transition: transform 0.2s; }

/* ================= FOOTER: ore-cart-loading-dock-footer ================= */
.gsp-footer {
  background: #180d04;
  border-top: 4px solid var(--gsp-amber-deep);
  padding: 44px 0 20px;
  margin-top: 40px;
}
.gsp-footer__dock {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.gsp-footer__cart {
  background: linear-gradient(160deg, #402812, #241206);
  border: 2px solid var(--gsp-amber-deep);
  border-radius: var(--gsp-radius-lg) var(--gsp-radius-lg) 4px 4px;
  padding: 22px;
  position: relative;
}
.gsp-footer__cart::after {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: -10px;
  height: 10px;
  background: repeating-linear-gradient(90deg, var(--gsp-amber-deep) 0 14px, transparent 14px 28px);
  border-radius: 0 0 6px 6px;
}
.gsp-footer__brand { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-family: var(--gsp-font-display); }
.gsp-footer__brand .gsp-nav__brand-mark { width: 34px; height: 34px; }
.gsp-footer__disclaimer { color: var(--gsp-dim); font-size: 0.88rem; max-width: 640px; }
.gsp-footer__platform {
  background: rgba(0,0,0,0.2);
  border: 1px dashed rgba(232,169,60,0.4);
  border-radius: var(--gsp-radius-md);
  padding: 20px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}
@media (min-width: 700px) { .gsp-footer__platform { grid-template-columns: repeat(2, 1fr); } }
.gsp-footer__col h4 { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gsp-amber-bright); margin-bottom: 10px; }
.gsp-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.gsp-footer__col a { color: var(--gsp-cream); font-size: 0.92rem; min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; }
.gsp-footer__scale {
  background: rgba(0,0,0,0.25);
  border-radius: var(--gsp-radius-md);
  border: 1px solid rgba(232,169,60,0.25);
  padding: 20px;
}
.gsp-footer__scale h4 { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gsp-amber-bright); margin-bottom: 8px; }
.gsp-footer__scale p { color: var(--gsp-dim); font-size: 0.85rem; }
.gsp-footer__orgs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.gsp-footer__org {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--gsp-bg-0);
  border: 1px solid rgba(232,169,60,0.3);
  border-radius: 10px;
  padding: 8px 12px;
  min-height: 44px;
}
.gsp-footer__org img { height: 22px; width: auto; }
.gsp-footer__org--text { color: var(--gsp-cream); font-size: 0.82rem; }
.gsp-footer__plinth {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--gsp-dim);
  font-size: 0.8rem;
}
@media (min-width: 700px) {
  .gsp-footer__plinth { flex-direction: row; justify-content: space-between; }
}

/* ================= LEGAL PAGES: sticky TOC + anchor-jump sections ================= */
.gsp-page-intro { max-width: 720px; margin-bottom: 30px; }
.gsp-legal-layout { display: flex; flex-direction: column; gap: 24px; }
.gsp-legal-toc {
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(232,169,60,0.25);
  border-radius: var(--gsp-radius-md);
  padding: 16px;
}
.gsp-legal-toc h2 { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gsp-amber-bright); margin-bottom: 10px; }
.gsp-legal-toc ol { list-style: decimal; padding-left: 1.1em; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.gsp-legal-toc a { color: var(--gsp-cream); font-size: 0.9rem; }
.gsp-prose h2 { font-size: 1.35rem; margin-top: 1.6em; scroll-margin-top: 90px; }
.gsp-prose ul { color: var(--gsp-dim); }
.gsp-prose p, .gsp-prose li { color: var(--gsp-dim); }
@media (min-width: 900px) {
  .gsp-legal-layout { display: grid; grid-template-columns: 240px 1fr; gap: 40px; align-items: start; }
  .gsp-legal-toc { position: sticky; top: 96px; }
}
.gsp-page-footnote {
  margin-top: 30px;
  padding: 16px;
  border: 1px solid rgba(232,169,60,0.25);
  border-radius: var(--gsp-radius-md);
  background: rgba(0,0,0,0.2);
  font-size: 0.88rem;
  color: var(--gsp-dim);
}

/* ================= AUTH MODAL: ore-crate-lid-pry-open ================= */
.gsp-auth {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.gsp-auth[hidden] { display: none !important; }
.gsp-auth__backdrop { position: absolute; inset: 0; background: rgba(10,5,2,0.72); }
.gsp-auth__crate {
  position: relative;
  width: 100%;
  max-width: 420px;
  background: linear-gradient(160deg, #4a2f16, #2a1a0c);
  border: 3px solid var(--gsp-amber-deep);
  border-radius: 12px;
  padding: 24px;
  max-height: 88vh;
  overflow-y: auto;
  transform-origin: top center;
  animation: gsp-pry-open 0.35s ease-out;
}
@keyframes gsp-pry-open {
  from { transform: rotateX(-30deg) translateY(20px); opacity: 0; }
  to { transform: rotateX(0) translateY(0); opacity: 1; }
}
.gsp-auth__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.gsp-auth__close {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(0,0,0,0.35); border: none; color: var(--gsp-cream); cursor: pointer;
}
.gsp-auth__step-methods { display: flex; flex-direction: column; gap: 10px; }
.gsp-auth__divider { display: flex; align-items: center; gap: 12px; margin: 18px 0; color: var(--gsp-dim); font-size: 0.82rem; }
.gsp-auth__divider::before, .gsp-auth__divider::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,0.15); }
.gsp-auth__provider {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 10px 16px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.06);
  color: var(--gsp-cream);
  cursor: pointer;
  font-size: 0.95rem;
  position: relative;
  transition: background 0.2s, border-color 0.2s;
}
.gsp-auth__provider.is-sealed {
  background: rgba(255,90,77,0.1);
  border-color: rgba(255,90,77,0.4);
  color: var(--gsp-dim);
  font-size: 0.85rem;
}
.gsp-auth__provider-icon { width: 20px; height: 20px; display: inline-flex; }
.gsp-auth__provider:hover { background: rgba(255,255,255,0.12); }
.gsp-auth__back { background: none; border: none; color: var(--gsp-amber-bright); cursor: pointer; margin-bottom: 12px; padding: 4px 0; min-height: 44px; }
.gsp-auth__field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; font-size: 0.85rem; color: var(--gsp-dim); }
.gsp-auth__field input {
  min-height: 46px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(0,0,0,0.3);
  color: var(--gsp-cream);
  padding: 0 14px;
  font-size: 1rem;
}
.gsp-auth__fine { font-size: 0.78rem; color: var(--gsp-dim); margin-top: 10px; }
.gsp-auth__error { color: var(--gsp-danger); font-size: 0.85rem; min-height: 1.2em; }
.gsp-auth__toast {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: -54px;
  background: rgba(0,0,0,0.9);
  border: 1px solid var(--gsp-amber-deep);
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 0.85rem;
  color: var(--gsp-cream);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.25s, transform 0.25s;
  pointer-events: none;
}
.gsp-auth__toast.is-visible { opacity: 1; transform: translateY(0); bottom: -54px; }
[data-auth-when="user"] { display: none; }
.is-authed [data-auth-when="user"] { display: inline-flex; }
.is-authed [data-auth-when="guest"] { display: none; }

/* ================= COOKIE BANNER ================= */
.gsp-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; }
.gsp-cookie[hidden] { display: none; }
.gsp-cookie__bar {
  background: #1c1005;
  border-top: 2px solid var(--sv2-gold-deep);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.gsp-cookie__text { font-size: 0.85rem; color: var(--gsp-dim); margin: 0; }
.gsp-cookie__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.gsp-cookie__panel {
  background: #1c1005;
  border-top: 2px solid var(--sv2-gold-deep);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  padding: 20px 16px;
}
.gsp-cookie__panel[hidden] { display: none; }
.gsp-cookie__panel-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.gsp-cookie__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.gsp-cookie__row-copy strong { display: block; font-size: 0.9rem; }
.gsp-cookie__row-copy span { font-size: 0.8rem; color: var(--gsp-dim); }
.gsp-cookie__locked-badge { font-size: 0.75rem; color: var(--gsp-dim); }
.gsp-cookie__toggle {
  width: 44px; height: 26px; border-radius: 999px; border: none;
  background: rgba(255,255,255,0.2); position: relative; cursor: pointer;
}
.gsp-cookie__toggle-dot { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: left 0.2s; }
.gsp-cookie__toggle.is-on { background: var(--sv2-gold-deep); }
.gsp-cookie__toggle.is-on .gsp-cookie__toggle-dot { left: 21px; }
.gsp-cookie__panel-actions { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
@media (min-width: 700px) {
  .gsp-cookie__bar { flex-direction: row; align-items: center; justify-content: space-between; }
  .gsp-cookie__text { max-width: 60%; }
}

/* ================= GAME-DETAIL PAGES ================= */
.gsp-quickfacts { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 20px 0; }
@media (min-width: 600px) { .gsp-quickfacts { grid-template-columns: repeat(3, 1fr); } }
.gsp-quickfacts__item { background: rgba(0,0,0,0.25); border: 1px solid rgba(232,169,60,0.25); border-radius: var(--gsp-radius-md); padding: 14px; }
.gsp-quickfacts__item span { display: block; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gsp-dim); margin-bottom: 4px; }
.gsp-related-heading { font-size: 1.2rem; margin: 40px 0 16px; }

/* utility */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
