/* Tarragoncove — style.css. INTL-social / _core/social-v2 track.
   Hero theme (user-requested override): "Chicken Road Dash" — farmyard
   green + asphalt grey + traffic-cone orange + caution-stripe yellow, a
   daredevil rooster dashing across a busy highway. Nav:
   "chevron-signpost-cascade" (bespoke, new). Footer:
   "lane-strip-crossing-deck" (bespoke, new). Mobile-first: base rules are
   the small-viewport rules, min-width media queries layer up. */

/* ===== 1. Reset + base ===== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
/* Global [hidden] guarantee: several components below set `display: flex`
   on the same element that also toggles the `hidden` attribute at runtime
   (auth pill user/guest swap, auth modal, paytable sheet) — without this
   rule, author `display` specificity can beat the UA default and leave a
   "hidden" element visible. */
[hidden] { display: none !important; }
body {
  margin: 0;
  font-family: "Nunito", "Segoe UI", system-ui, sans-serif;
  background: var(--blz-bg);
  color: var(--blz-text);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4 { font-family: "Fredoka", "Nunito", sans-serif; margin: 0 0 .5em; line-height: 1.15; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }
.container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 20px; }
:focus-visible { outline: 3px solid var(--blz-yellow); outline-offset: 2px; }

/* ===== 2. Tokens ===== */
:root {
  --blz-bg: #1b1f22;
  --blz-bg-alt: #24292c;
  --blz-bg-card: #2c3237;
  --blz-text: #f6f3ea;
  --blz-text-dim: #b7c0c2;
  --blz-green: #3fae4a;
  --blz-green-deep: #2c8a37;
  --blz-orange: #ff7a1a;
  --blz-orange-deep: #e8590c;
  --blz-yellow: #ffd23f;
  --blz-yellow-deep: #e6b800;
  --blz-white: #fffaf0;
  --blz-card-bg: rgba(255,255,255,0.05);
  --blz-card-border: rgba(255,255,255,0.13);
  --blz-radius-lg: 26px;
  --blz-radius-md: 16px;
  --blz-radius-sm: 10px;
  --blz-shadow: 0 18px 44px rgba(0,0,0,.5);

  /* Required auth-modal / cookie-banner contract tokens, mapped to the
     road palette (see templates/auth-modal-variants' "Required CSS custom
     properties" section). */
  --sv2-gold: var(--blz-orange);
  --sv2-gold-deep: var(--blz-yellow-deep);
  --sv2-white: var(--blz-white);
  --sv2-ink: #1b1f22;
  --sv2-text-dim: var(--blz-text-dim);
  --sv2-card-bg: rgba(255,255,255,.06);
  --sv2-card-border: rgba(255,255,255,.15);
  --sv2-radius-lg: 26px;
}

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 12px 22px; border-radius: 10px; border: none; font-weight: 800; font-size: 15px; transition: transform .15s ease, box-shadow .15s ease; }
.btn--primary { background: linear-gradient(135deg, var(--blz-orange), var(--blz-yellow-deep)); color: #201200; box-shadow: 0 10px 24px rgba(255,122,26,.35); }
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(255,122,26,.48); }
.btn--secondary { background: var(--blz-green); color: #08210b; }
.btn--secondary:hover { transform: translateY(-2px); }
.btn--ghost { background: rgba(255,255,255,.08); color: var(--blz-text); border: 1px solid var(--blz-card-border); }
.btn--ghost:hover { background: rgba(255,255,255,.14); }
.btn--sm { min-height: 40px; padding: 9px 16px; font-size: 14px; }
.btn--block { width: 100%; }

.blz-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; letter-spacing: .04em; color: var(--blz-yellow); font-size: 14px; text-transform: uppercase; }
.blz-section { padding: 52px 0; }
.blz-section__head { text-align: center; max-width: 640px; margin: 0 auto 28px; }
.blz-section__head h2 { font-size: clamp(26px, 5vw, 38px); color: var(--blz-white); }
.blz-section__head p { color: var(--blz-text-dim); }

/* ===== 3. Nav — "chevron-signpost-cascade" (bespoke) =====
   Desktop (>=900px): NO full-width bar, sidebar, rail, pill-pair, ticker,
   overlay-launcher, arch, pit-board, bell-FAB, decoupled top/bottom pair,
   or three-element wavy cluster used by any prior archetype. A single
   square "signpost" brand badge fixed top-LEFT holds only the brand mark.
   Independently, primary nav links cascade as a diagonal stack of angled
   chevron "signpost" tabs pinned to the top-RIGHT corner, each tab
   overlapping the next at a slight downward-diagonal offset (like stacked
   highway exit signs); the balance+auth pill is the LAST (bottom-most)
   chevron in that same cascade, not a separate element. Mobile: the brand
   badge stays top-left; the chevron cascade hides and a single "MERGE ▸"
   tab fixed bottom-RIGHT slides out a diagonal drawer anchored to that
   same corner — a new single-corner interaction, not an upward sheet,
   tile grid, slide-drawer, curtain, dropdown, or accordion. */
.blz-brandpost {
  position: fixed; top: 12px; left: 12px; z-index: 60;
  display: flex; align-items: center; gap: 8px;
  background: var(--blz-bg-alt); border: 2px solid var(--blz-orange); border-radius: 12px;
  padding: 8px 12px; box-shadow: var(--blz-shadow);
}
.blz-brandpost__svg { display: flex; }
.blz-brandpost__svg svg { width: 24px; height: 24px; color: var(--blz-orange); }
.blz-brandpost__word { font-family: "Fredoka", sans-serif; font-weight: 600; font-size: 16px; color: var(--blz-white); display: none; }
.blz-brandpost__flag {
  position: absolute; top: -8px; right: -10px; background: var(--blz-yellow); color: #201200;
  font-size: 9px; font-weight: 800; line-height: 1; padding: 3px 6px 3px 8px;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 12% 50%);
}
@media (min-width: 480px) { .blz-brandpost__word { display: block; } }

.blz-cascade { position: fixed; top: 12px; right: 12px; z-index: 55; display: none; flex-direction: column; align-items: flex-end; }
.blz-cascade__tab {
  min-height: 40px; display: flex; align-items: center; padding: 8px 16px 8px 22px; margin-top: -6px;
  background: var(--blz-bg-alt); border: 1px solid var(--blz-card-border); color: var(--blz-text);
  font-weight: 700; font-size: 13px; clip-path: polygon(14px 0, 100% 0, 100% 100%, 14px 100%, 0 50%);
  transform: translateX(calc(var(--i) * 3px));
}
.blz-cascade__tab:first-child { margin-top: 0; }
.blz-cascade__tab[aria-current="page"] { background: linear-gradient(135deg, var(--blz-orange), var(--blz-yellow-deep)); color: #201200; }
.blz-cascade__tab--auth { background: var(--blz-bg-card); gap: 8px; padding-right: 10px; }
.blz-cascade__coins { font-weight: 800; font-size: 13px; color: var(--blz-yellow); white-space: nowrap; }
.blz-cascade__tab--auth [data-auth-when] { display: flex; align-items: center; gap: 6px; }

.blz-mergefab { position: fixed; bottom: 16px; right: 14px; z-index: 70; }
.blz-mergefab__btn {
  min-height: 46px; padding: 0 18px; border-radius: 999px; border: 2px solid var(--blz-yellow);
  background: repeating-linear-gradient(135deg, var(--blz-orange), var(--blz-orange) 10px, #201200 10px, #201200 20px);
  color: var(--blz-white); font-weight: 800; box-shadow: var(--blz-shadow); letter-spacing: .03em;
}
.blz-mergefab__drawer {
  position: absolute; bottom: 58px; right: 0; transform-origin: bottom right;
  transform: scale(.85) translateY(10px); opacity: 0; pointer-events: none;
  background: var(--blz-bg-card); border: 1px solid var(--blz-card-border); border-radius: 16px 4px 16px 16px;
  padding: 10px; display: flex; flex-direction: column; gap: 4px; width: 220px;
  box-shadow: var(--blz-shadow); transition: transform .26s cubic-bezier(.3,1.3,.5,1), opacity .2s ease;
}
.blz-mergefab.is-open .blz-mergefab__drawer { opacity: 1; pointer-events: auto; transform: scale(1) translateY(0); }
.blz-mergefab__drawer a { padding: 10px 12px; border-radius: 10px; font-weight: 700; font-size: 14px; min-height: 40px; display: flex; align-items: center; }
.blz-mergefab__drawer a[aria-current="page"], .blz-mergefab__drawer a:hover { background: rgba(255,122,26,.18); color: var(--blz-orange); }
.blz-mergefab__auth { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--blz-card-border); margin-top: 4px; flex-wrap: wrap; }

@media (min-width: 900px) {
  .blz-cascade { display: flex; }
  .blz-mergefab { display: none; }
}

.blz-side-agenote { position: fixed; left: 12px; bottom: 84px; z-index: 45; font-size: 11px; background: var(--blz-bg-alt); border: 1px solid var(--blz-card-border); padding: 6px 10px; border-radius: 999px; color: var(--blz-text-dim); display: none; }
@media (min-width: 900px) { .blz-side-agenote { display: block; bottom: 16px; left: 190px; } }

/* ===== 4. Hero — hero-fullbleed-photo, text_block_position: right-anchored ===== */
.blz-hero { position: relative; min-height: 620px; display: flex; align-items: center; padding: 110px 0 56px; }
.blz-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; }
.blz-hero__scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(27,31,34,.15) 0%, rgba(27,31,34,.55) 45%, rgba(27,31,34,.92) 100%), linear-gradient(0deg, var(--blz-bg) 0%, transparent 30%); z-index: 1; }
.blz-hero__inner { position: relative; z-index: 2; width: 100%; max-width: 620px; margin-left: auto; margin-right: 0; text-align: left; }
.blz-hero__liveproof { display: inline-flex; align-items: center; gap: 8px; background: rgba(0,0,0,.4); border: 1px solid var(--blz-card-border); border-radius: 999px; padding: 6px 14px; font-size: 13px; font-weight: 700; color: var(--blz-yellow); margin-bottom: 16px; }
.blz-hero__livedot { width: 8px; height: 8px; border-radius: 50%; background: var(--blz-green); box-shadow: 0 0 0 0 rgba(63,174,74,.6); animation: blzPulseDot 1.8s infinite; flex-shrink: 0; }
@keyframes blzPulseDot { 0% { box-shadow: 0 0 0 0 rgba(63,174,74,.6); } 70% { box-shadow: 0 0 0 8px rgba(63,174,74,0); } 100% { box-shadow: 0 0 0 0 rgba(63,174,74,0); } }
.blz-hero__pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.blz-pill { background: rgba(255,255,255,.08); border: 1px solid var(--blz-card-border); border-radius: 999px; padding: 6px 14px; font-size: 12px; font-weight: 800; color: var(--blz-text); }
.blz-hero__headline-row { display: flex; flex-direction: column; gap: 18px; }
.blz-hero__headline { font-size: clamp(32px, 6vw, 52px); }
.blz-hero__headline span { display: block; }
.blz-hero__headline .accent { color: var(--blz-orange); }
.blz-hero__cta { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.blz-hero__microcopy { color: var(--blz-text-dim); font-size: 13px; margin: 0; max-width: 320px; }
@media (min-width: 720px) {
  .blz-hero__headline-row { flex-direction: row; align-items: center; gap: 28px; }
  .blz-hero__cta { flex-shrink: 0; }
}

/* ===== 5. Trust signal — leaderboard-band ===== */
.blz-leaderboard { padding: 36px 0; background: var(--blz-bg-alt); }
.blz-leaderboard h2 { margin-top: 6px; margin-bottom: 18px; }
.blz-leaderboard__rows { display: flex; flex-direction: column; gap: 8px; }
.blz-leaderboard__row { display: flex; align-items: center; gap: 14px; background: var(--blz-card-bg); border: 1px solid var(--blz-card-border); border-radius: var(--blz-radius-sm); padding: 10px 16px; }
.blz-leaderboard__rank { font-family: "Fredoka", sans-serif; font-size: 26px; font-weight: 600; color: var(--blz-orange); width: 34px; flex-shrink: 0; }
.blz-leaderboard__name { flex: 1; font-weight: 700; font-size: 14px; }
.blz-leaderboard__amount { display: flex; align-items: center; gap: 6px; font-weight: 800; color: var(--blz-yellow); font-size: 14px; }
.blz-leaderboard__amount svg { width: 16px; height: 16px; }
.blz-leaderboard__note { text-align: center; color: var(--blz-text-dim); font-size: 12px; margin-top: 14px; margin-bottom: 0; }

/* ===== 6. Game library — game-catalog-stack, card_aspect_ratio: landscape, card archetype "license-plate-flip-tab" ===== */
.blz-catalog__row { margin-bottom: 30px; }
.blz-catalog__row-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.blz-catalog__row-head h3 { font-size: 19px; margin: 2px 0 0; }
.blz-catalog__seeall { font-size: 13px; font-weight: 800; color: var(--blz-orange); white-space: nowrap; min-height: 30px; display: inline-flex; align-items: center; }
.blz-catalog__shelf { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 12px; }
.blz-catalog__shelf::-webkit-scrollbar { height: 8px; }
.blz-gamegrid { display: grid; grid-template-columns: 1fr; gap: 16px; }

.blz-card { position: relative; width: 100%; }
.blz-catalog__shelf .blz-card { scroll-snap-align: start; flex: 0 0 auto; width: 260px; }
.blz-card__plate-link { position: relative; display: block; }
.blz-card__plate { position: relative; aspect-ratio: 16 / 9; border-radius: var(--blz-radius-sm); overflow: hidden; border: 3px solid var(--blz-white); box-shadow: var(--blz-shadow); background: var(--blz-bg-card); }
.blz-card__plate img { width: 100%; height: 100%; object-fit: cover; }
.blz-card__bolt { position: absolute; z-index: 2; width: 8px; height: 8px; border-radius: 50%; background: var(--blz-bg); box-shadow: inset 0 0 0 1.5px rgba(0,0,0,.4); top: 8px; }
.blz-card__bolt--tl { left: 8px; }
.blz-card__bolt--tr { right: 8px; }
.blz-card__fliptab {
  position: absolute; right: 0; bottom: 0; z-index: 3; background: var(--blz-orange); color: #201200;
  font-weight: 800; font-size: 12px; padding: 8px 12px; border-radius: 10px 0 var(--blz-radius-sm) 0;
  transform: translateY(100%); transition: transform .2s ease;
}
.blz-card__plate-link:hover .blz-card__fliptab, .blz-card__plate-link:focus .blz-card__fliptab { transform: translateY(0); }
.blz-card__title { margin-top: 10px; font-weight: 700; font-size: 14px; }
.blz-card__meta { font-size: 12px; color: var(--blz-text-dim); margin-top: 2px; }

@media (min-width: 640px) { .blz-gamegrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .blz-gamegrid { grid-template-columns: repeat(3, 1fr); } }

/* ===== 7. Slot showcase — "roadside-billboard-marquee" ===== */
.blz-slot { position: relative; padding: 16px 0 36px; }
.blz-slot__stage { position: relative; max-width: 600px; margin: 0 auto; padding-top: 26px; }
.blz-slot__poles { display: none; }
.blz-slot__cabinet {
  position: relative; background: var(--blz-bg-alt); border-radius: var(--blz-radius-lg); padding: 20px 14px;
  border: 6px solid #14171a; box-shadow: 0 0 0 4px var(--blz-yellow), var(--blz-shadow);
}
.blz-slot__marquee { height: 10px; border-radius: 999px; margin-bottom: 12px; background: repeating-linear-gradient(90deg, var(--blz-yellow) 0, var(--blz-yellow) 10px, var(--blz-orange) 10px, var(--blz-orange) 20px); animation: blzMarquee 1.2s linear infinite; background-size: 40px 100%; }
@keyframes blzMarquee { from { background-position: 0 0; } to { background-position: 40px 0; } }
/* game-ui */
.blz-slot__grid { display: grid; grid-template-columns: repeat(5, 1fr); grid-template-rows: repeat(3, 1fr); gap: 6px; background: #0f1113; border-radius: 16px; padding: 8px; border: 2px solid rgba(255,255,255,.12); }
.blz-slot__cell { aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: rgba(255,255,255,.06); }
.blz-slot__cell img { width: 100%; height: 100%; object-fit: cover; }
.blz-slot__cell.is-win { box-shadow: inset 0 0 0 3px var(--blz-yellow); }
.blz-slot.is-spinning .blz-slot__grid img, .blz-slot__grid.is-spinning img { filter: blur(3px); }
.blz-slot__gauges { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.blz-slot__gauge { flex: 1 1 130px; background: rgba(0,0,0,.3); border-radius: var(--blz-radius-sm); padding: 10px 14px; text-align: center; border: 1px solid rgba(255,255,255,.1); }
.blz-slot__gauge span { display: block; }
.blz-slot__gauge .label { font-size: 11px; text-transform: uppercase; color: var(--blz-text-dim); letter-spacing: .04em; }
.blz-slot__gauge .value { font-size: 20px; font-weight: 800; color: var(--blz-yellow); }
.blz-slot__gauge.is-pulsing .value { animation: blzGaugePulse .5s ease; }
@keyframes blzGaugePulse { 0% { transform: scale(1); } 40% { transform: scale(1.18); } 100% { transform: scale(1); } }
.blz-slot__bet { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 14px; }
.blz-slot__bet button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.08); color: #fff; font-size: 18px; }
.blz-slot__controls { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.blz-slot__controls .btn { flex: 1 1 120px; }
.blz-slot__win { text-align: center; margin-top: 12px; font-weight: 800; opacity: 0; transform: translateY(8px); transition: opacity .25s ease, transform .25s ease; color: var(--blz-yellow); }
.blz-slot__win.is-visible { opacity: 1; transform: translateY(0); }
.blz-slot__note--legal { text-align: center; font-size: 12px; color: var(--blz-text-dim); max-width: 520px; margin: 16px auto 0; }
@media (min-width: 700px) {
  .blz-slot__poles { display: block; position: absolute; top: 0; left: 50%; width: 100%; max-width: 480px; transform: translateX(-50%); height: 26px; z-index: -1; }
  .blz-slot__poles span { position: absolute; top: 0; width: 10px; height: 40px; background: #14171a; }
  .blz-slot__poles span:first-child { left: 20px; }
  .blz-slot__poles span:last-child { right: 20px; }
}

/* Win animation — "crossing-signal-cascade-flash": a row of 3 signal-light
   dots along the top edge of the cabinet flash in sequence (green, yellow,
   orange) then remove themselves — a discrete multi-color sequential blink,
   distinct from burst-outward/fall, shard-shatter, ring-pulse, ribbon,
   continuous perimeter-glow-sweep, or inflate-pop physics used by any
   prior INTL-social site. */
.blz-signal-row { position: absolute; top: 6px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 4; pointer-events: none; }
.blz-signal-dot { width: 12px; height: 12px; border-radius: 50%; opacity: .25; animation: blzSignalFlash 480ms ease var(--blz-signal-delay, 0ms) 2; }
.blz-signal-dot--green { background: var(--blz-green); }
.blz-signal-dot--yellow { background: var(--blz-yellow); }
.blz-signal-dot--orange { background: var(--blz-orange); }
@keyframes blzSignalFlash { 0%, 100% { opacity: .25; transform: scale(1); } 45% { opacity: 1; transform: scale(1.4); } }

.blz-paytable { position: fixed; inset: 0; z-index: 90; display: flex; align-items: flex-end; background: rgba(0,0,0,.65); }
.blz-paytable[hidden] { display: none; }
.blz-paytable__sheet { position: relative; background: var(--blz-bg-alt); border-radius: 20px 20px 0 0; width: 100%; max-height: 84vh; overflow-y: auto; padding: 20px; border-top: 1px solid var(--blz-card-border); }
.blz-paytable__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.blz-paytable__row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.blz-paytable__row img { width: 34px; height: 34px; border-radius: 8px; object-fit: cover; }
.blz-paytable__row .name { flex: 1; font-weight: 700; font-size: 14px; }
.blz-paytable__row .val { font-size: 13px; color: var(--blz-yellow); width: 50px; text-align: right; }
.blz-paytable__line { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
/* game-ui */
.blz-paytable__line-grid { display: grid; grid-template-columns: repeat(5, 8px); grid-template-rows: repeat(3, 8px); gap: 2px; }
.blz-paytable__line-dot { width: 8px; height: 8px; border-radius: 2px; background: rgba(255,255,255,.15); }
.blz-paytable__line-dot.is-on { background: var(--blz-orange); }
.blz-paytable__line-name { font-size: 13px; color: var(--blz-text-dim); }
@media (min-width: 640px) { .blz-paytable { align-items: center; justify-content: center; } .blz-paytable__sheet { border-radius: 20px; max-width: 480px; } }

/* ===== 8. How it works ===== */
.blz-steps { display: grid; gap: 16px; grid-template-columns: 1fr; }
.blz-step { background: var(--blz-card-bg); border: 1px solid var(--blz-card-border); border-radius: var(--blz-radius-md); padding: 18px; }
.blz-step__num { font-family: "Fredoka", sans-serif; font-size: 24px; color: var(--blz-orange); }
@media (min-width: 720px) { .blz-steps { grid-template-columns: repeat(4, 1fr); } }

.blz-page-footnote { text-align: center; color: var(--blz-text-dim); font-size: 13px; max-width: 560px; margin: 24px auto 0; }

/* ===== 9. Footer — "lane-strip-crossing-deck" (bespoke) =====
   Presented as a road cross-section viewed from above, stacked as
   horizontal "lanes": (1) brand lane FIRST (centered wordmark +
   disclaimer); (2) a nav lane with 3 columns separated by dashed
   lane-marker dividers; (3) a striped pedestrian-crossing responsible-
   gaming band; (4) a dark "shoulder" bottom bar. Genuinely different DOM
   order (brand-first, not nav-first) and visual language (lane markers,
   crossing stripes) from every prior footer archetype. */
.blz-footer { margin-top: 40px; background: var(--blz-bg-alt); border-top: 4px dashed var(--blz-card-border); }
.blz-footer__brandlane { padding: 30px 0 18px; text-align: center; }
.blz-footer__brand-word { font-family: "Fredoka", sans-serif; font-size: 24px; font-weight: 600; color: var(--blz-orange); }
.blz-footer__disclaimer { max-width: 560px; margin: 10px auto 0; color: var(--blz-text-dim); font-size: 13px; }

.blz-footer__navlane { padding: 12px 0 10px; border-top: 1px dashed var(--blz-card-border); }
.blz-footer__navrow { display: grid; grid-template-columns: 1fr; gap: 24px; padding: 14px 0; }
.blz-footer__navcol { border-left: 3px dashed transparent; padding-left: 0; }
.blz-footer__navcol h4 { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--blz-yellow); margin-bottom: 10px; }
.blz-footer__navcol a { display: block; padding: 6px 0; color: var(--blz-text-dim); font-size: 14px; min-height: 30px; }
.blz-footer__navcol a:hover { color: var(--blz-orange); }
@media (min-width: 720px) {
  .blz-footer__navrow { grid-template-columns: repeat(3, 1fr); }
  .blz-footer__navcol { border-left: 3px dashed var(--blz-card-border); padding-left: 20px; }
  .blz-footer__navcol:first-child { border-left: none; padding-left: 0; }
}

.blz-footer__crossing { background: repeating-linear-gradient(90deg, var(--blz-white) 0, var(--blz-white) 22px, var(--blz-bg-alt) 22px, var(--blz-bg-alt) 44px); padding: 3px 0; margin-top: 8px; }
.blz-footer__crossing-inner { background: var(--blz-bg); padding: 26px 0; }
.blz-footer__crossing-inner h4 { text-align: center; font-size: 14px; color: var(--blz-yellow); margin-bottom: 6px; }
.blz-footer__crossing-inner p { text-align: center; color: var(--blz-text-dim); font-size: 13px; max-width: 520px; margin: 0 auto 16px; }
.blz-footer__orgs { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: center; }
.blz-footer__org { display: flex; align-items: center; justify-content: center; background: var(--blz-bg-card); border: 1px solid var(--blz-card-border); border-radius: 10px; padding: 8px 12px; height: 44px; min-width: 44px; }
.blz-footer__org img { max-height: 26px; width: auto; }
.blz-footer__org--text { background: rgba(255,255,255,.92); color: #1b1f22; font-weight: 700; font-size: 12px; }
.blz-footer__rglink { display: block; text-align: center; margin-top: 14px; font-weight: 800; color: var(--blz-orange); font-size: 13px; }

.blz-footer__shoulder { padding: 16px 0 46px; text-align: center; font-size: 12px; color: var(--blz-text-dim); background: #14171a; }
.blz-footer__shoulder span { display: block; }
@media (min-width: 640px) { .blz-footer__shoulder span { display: inline; margin: 0 8px; } }

/* ===== 10. Auth modal — "toll-gate-lift-arm" (bespoke) =====
   The modal is framed inside a striped toll-booth barrier arm: on open,
   a yellow/black-striped bar rotates from horizontal (blocking) to a
   slight lifted angle above the card, as if the gate just raised to let
   you through. Sign Up / Log In toggle is styled as two lane-signal tabs. */
.blz-auth { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 16px; }
.blz-auth[hidden] { display: none; }
.blz-auth__catcher { position: absolute; inset: 0; background: rgba(0,0,0,.72); border: none; }
.blz-auth__gate { position: relative; width: 100%; max-width: 420px; }
.blz-auth__arm {
  position: absolute; top: -14px; left: -6%; width: 112%; height: 16px;
  background: repeating-linear-gradient(90deg, var(--blz-yellow) 0, var(--blz-yellow) 22px, #201200 22px, #201200 44px);
  border-radius: 6px; transform-origin: left center;
  animation: blzGateLift .5s cubic-bezier(.3,1.3,.4,1) both;
  box-shadow: var(--blz-shadow); z-index: 3;
}
@keyframes blzGateLift { from { transform: rotate(0deg); } to { transform: rotate(-11deg) translateY(-6px); } }
.blz-auth__card {
  position: relative; width: 100%; max-height: 92vh; overflow-y: auto;
  background: var(--sv2-card-bg); backdrop-filter: blur(16px); border: 1px solid var(--sv2-card-border);
  border-radius: var(--sv2-radius-lg); padding: 30px 26px 26px;
  box-shadow: var(--blz-shadow);
  animation: blzCardRise .38s cubic-bezier(.2,.9,.3,1.1);
}
@keyframes blzCardRise { from { transform: translateY(16px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.blz-auth__close { position: absolute; top: 14px; right: 16px; width: 34px; height: 34px; border-radius: 8px; background: rgba(255,255,255,.08); border: none; color: var(--blz-text); font-size: 16px; }
.blz-auth__title { font-size: 22px; text-align: center; margin-bottom: 16px; }
.blz-auth__toggle { display: flex; gap: 6px; background: rgba(255,255,255,.06); border-radius: 10px; padding: 5px; margin-bottom: 18px; }
.blz-auth__tab { flex: 1; min-height: 40px; border: none; border-radius: 8px; background: transparent; color: var(--blz-text-dim); font-weight: 800; }
.blz-auth__tab.is-active { background: linear-gradient(135deg, var(--blz-orange), var(--blz-yellow-deep)); color: #201200; }
.blz-auth__lead { text-align: center; color: var(--blz-text-dim); font-size: 14px; margin-bottom: 16px; }
.blz-auth__providers { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.blz-auth__provider { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px; border-radius: 10px; border: 1px solid var(--blz-card-border); background: rgba(255,255,255,.05); color: var(--blz-text); font-weight: 700; font-size: 14px; position: relative; overflow: hidden; }
.blz-auth__provider-icon { width: 20px; height: 20px; flex-shrink: 0; }
.blz-auth__provider--email { background: linear-gradient(135deg, var(--blz-orange), var(--blz-yellow-deep)); color: #201200; }
.blz-auth__fine { font-size: 11px; color: var(--blz-text-dim); text-align: center; margin-top: 10px; }
.blz-auth__back { background: none; border: none; color: var(--blz-yellow); font-weight: 700; margin-bottom: 10px; font-size: 13px; }
.blz-auth__field { display: block; margin-bottom: 12px; font-size: 13px; font-weight: 700; }
.blz-auth__field span { display: block; margin-bottom: 6px; color: var(--blz-text-dim); }
.blz-auth__field input { width: 100%; min-height: 46px; border-radius: 10px; border: 1px solid var(--blz-card-border); background: rgba(255,255,255,.06); color: var(--blz-text); padding: 0 14px; font-size: 16px; }
.blz-auth__error { color: #ff9b7a; font-size: 13px; min-height: 1em; margin-bottom: 6px; }

/* Provider-unavailable notice — "roadblock-barrier-slide-in" (bespoke): a
   small striped barricade bar slides DOWN from above the clicked provider
   button, covering it briefly with the caption text, then slides back UP
   on dismiss/timeout — distinct direction/mechanism from melt-drip (grows
   from bottom edge), ribbon-slide, toast, tooltip, title-swap, row-swap,
   button-lock, tile-flip, sticky-note, red-flag-banner, candle-caption,
   or chip-flip used by any prior INTL-social site. */
.blz-barrier {
  position: absolute; left: 0; right: 0; top: 0; height: 100%;
  background: repeating-linear-gradient(135deg, var(--blz-yellow) 0, var(--blz-yellow) 10px, #201200 10px, #201200 20px);
  color: #201200; font-weight: 800; font-size: 11px; display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 0 10px; transform: translateY(-100%); transition: transform .28s cubic-bezier(.3,1.2,.4,1);
  z-index: 5;
}
.blz-barrier.is-visible { transform: translateY(0); }

/* ===== 11. Cookie banner ===== */
.blz-cookie { position: fixed; inset: auto 0 0 0; z-index: 200; }
.blz-cookie[hidden] { display: none; }
.blz-cookie__bar { background: var(--blz-bg-alt); border-top: 1px solid var(--blz-card-border); padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.blz-cookie__text { font-size: 13px; color: var(--blz-text-dim); margin: 0; }
.blz-cookie__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.blz-cookie__panel { position: fixed; inset: auto 12px 84px 12px; max-width: 420px; margin: 0 auto; background: var(--blz-bg-card); border: 1px solid var(--blz-card-border); border-radius: var(--blz-radius-md); padding: 18px; box-shadow: var(--blz-shadow); }
.blz-cookie__panel[hidden] { display: none; }
.blz-cookie__panel-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.blz-cookie__panel-intro { font-size: 12px; color: var(--blz-text-dim); }
.blz-cookie__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.08); }
.blz-cookie__row-copy strong { display: block; font-size: 13px; }
.blz-cookie__row-copy span { font-size: 12px; color: var(--blz-text-dim); }
.blz-cookie__locked-badge { font-size: 11px; color: var(--blz-text-dim); }
.blz-cookie__toggle { width: 42px; height: 24px; border-radius: 999px; border: none; background: rgba(255,255,255,.15); position: relative; }
.blz-cookie__toggle-dot { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.blz-cookie__toggle.is-on { background: var(--blz-green); }
.blz-cookie__toggle.is-on .blz-cookie__toggle-dot { transform: translateX(18px); }
.blz-cookie__panel-actions { display: flex; gap: 8px; margin-top: 14px; }
@media (min-width: 640px) { .blz-cookie__bar { flex-direction: row; align-items: center; justify-content: space-between; } }

/* ===== 12. Legal pages — "glossary-term-columns" (bespoke, differs from
   Dazzlio's sticky-TOC-anchor-sections and Vertigold's numbered-clause
   accordion) ===== */
.blz-glossary { display: flex; flex-direction: column; gap: 0; }
.blz-glossary__row { display: grid; grid-template-columns: 1fr; gap: 6px; padding: 18px 0; border-bottom: 1px dashed var(--blz-card-border); }
.blz-glossary__term { font-family: "Fredoka", sans-serif; font-weight: 600; font-size: 15px; color: var(--blz-orange); margin: 0; }
.blz-glossary__def { margin: 0; color: var(--blz-text-dim); font-size: 14px; }
.blz-glossary__def ul { padding-left: 18px; list-style: disc; margin-bottom: 1em; }
.blz-glossary__def p:last-child { margin-bottom: 0; }
@media (min-width: 780px) { .blz-glossary__row { grid-template-columns: 220px 1fr; gap: 20px; } }

/* ===== 13. FAQ accordion ===== */
.blz-faq__item { border-bottom: 1px solid var(--blz-card-border); }
.blz-faq__q { width: 100%; text-align: left; background: none; border: none; color: var(--blz-text); padding: 16px 0; display: flex; justify-content: space-between; align-items: center; font-weight: 700; font-size: 15px; min-height: 44px; }
.blz-faq__a { max-height: 0; overflow: hidden; transition: max-height .25s ease; color: var(--blz-text-dim); font-size: 14px; }
.blz-faq__item.is-open .blz-faq__a { max-height: 400px; padding-bottom: 14px; }
.blz-faq__chevron { transition: transform .2s ease; }
.blz-faq__item.is-open .blz-faq__chevron { transform: rotate(45deg); }

/* ===== 14. Contact form ===== */
.blz-form { display: flex; flex-direction: column; gap: 14px; max-width: 480px; }
.blz-form label { font-size: 13px; font-weight: 700; color: var(--blz-text-dim); }
.blz-form input, .blz-form textarea { width: 100%; margin-top: 6px; min-height: 46px; border-radius: 10px; border: 1px solid var(--blz-card-border); background: rgba(255,255,255,.06); color: var(--blz-text); padding: 12px 14px; font-size: 16px; font-family: inherit; }
.blz-form textarea { min-height: 120px; }
#contact-form-note { color: var(--blz-yellow); font-size: 13px; min-height: 1em; }

/* ===== 15. Generic page hero (sub-pages) ===== */
.blz-pagehero { padding: 122px 0 36px; text-align: center; }
.blz-pagehero h1 { font-size: clamp(28px, 5vw, 40px); color: var(--blz-white); }
.blz-pagehero p { color: var(--blz-text-dim); max-width: 560px; margin: 10px auto 0; }

/* Tiers / promo grid (promotions, tournaments) */
.blz-tiers { display: grid; gap: 16px; grid-template-columns: 1fr; }
.blz-tier { background: var(--blz-card-bg); border: 1px solid var(--blz-card-border); border-radius: var(--blz-radius-md); padding: 20px; text-align: center; }
.blz-tier h3 { color: var(--blz-orange); }
@media (min-width: 720px) { .blz-tiers { grid-template-columns: repeat(3, 1fr); } }

.blz-promo-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
.blz-promo-card { background: var(--blz-card-bg); border: 1px solid var(--blz-card-border); border-radius: var(--blz-radius-md); padding: 20px; }
@media (min-width: 720px) { .blz-promo-grid { grid-template-columns: repeat(2, 1fr); } }

/* ===== 16. Game guide pages (game-*.php) ===== */
.blz-breadcrumb { font-size: 13px; color: var(--blz-text-dim); padding: 18px 0 0; }
.blz-breadcrumb a { color: var(--blz-orange); }

.blz-game-hero { display: grid; grid-template-columns: 1fr; gap: 28px; padding: 22px 0 36px; align-items: center; }
@media (min-width: 860px) { .blz-game-hero { grid-template-columns: 0.9fr 1.1fr; gap: 44px; } }
.blz-game-hero__media { border-radius: var(--blz-radius-sm); overflow: hidden; aspect-ratio: 16 / 9; border: 3px solid var(--blz-white); box-shadow: var(--blz-shadow); }
.blz-game-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blz-game-hero__body p { margin: 14px 0 22px; color: var(--blz-text-dim); }

.blz-prose { max-width: 760px; }
.blz-prose h2 {
  font-size: 26px; color: var(--blz-white); margin: 34px 0 14px;
  position: relative; padding-bottom: 10px;
}
.blz-prose h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 46px; height: 4px; border-radius: 999px; background: linear-gradient(90deg, var(--blz-orange), var(--blz-yellow)); }
.blz-prose h2:first-child { margin-top: 0; }
.blz-prose h3 { font-size: 18px; color: var(--blz-yellow); margin: 22px 0 10px; }
.blz-prose p { color: var(--blz-text-dim); font-size: 15px; line-height: 1.75; margin: 0 0 14px; }
.blz-prose ul, .blz-prose ol { margin: 0 0 16px; padding-left: 20px; color: var(--blz-text-dim); font-size: 15px; line-height: 1.7; }
.blz-prose li { margin-bottom: 6px; }
.blz-prose li::marker { color: var(--blz-orange); }
.blz-prose a { color: var(--blz-orange); }
.blz-prose strong { color: var(--blz-white); }

.blz-recs { margin-top: 44px; }
.blz-rec-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 640px) { .blz-rec-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .blz-rec-grid { grid-template-columns: repeat(4, 1fr); } }
.blz-rec-card {
  display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: var(--blz-radius-sm);
  background: var(--blz-card-bg); border: 1px solid var(--blz-card-border); text-decoration: none;
}
.blz-rec-card:hover { border-color: var(--blz-orange); }
.blz-rec-card__img { flex: none; width: 56px; height: 56px; border-radius: 8px; overflow: hidden; border: 2px solid var(--blz-white); }
.blz-rec-card__img img { width: 100%; height: 100%; object-fit: cover; }
.blz-rec-card__tag { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--blz-orange); }
.blz-rec-card__title { font-weight: 700; font-size: 14px; margin: 2px 0 0; color: var(--blz-white); }

/* Author byline: faceted avatar frame + short thesis-style bio, sits
   under the article body, above the responsible-play footnote. */
.blz-author-card {
  display: flex; gap: 16px; align-items: flex-start; margin-top: 40px; padding: 18px;
  border: 1px solid var(--blz-card-border); background: var(--blz-card-bg); border-radius: var(--blz-radius-md); max-width: 760px;
}
.blz-author-card__avatar { width: 64px; height: 64px; border-radius: 50%; flex: none; overflow: hidden; border: 2px solid var(--blz-white); }
.blz-author-card__avatar img { width: 100%; height: 100%; display: block; }
.blz-author-card__body { min-width: 0; }
.blz-author-card__label { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--blz-orange); margin-bottom: 4px; }
.blz-author-card__name { font-size: 17px; color: var(--blz-white); font-weight: 700; }
.blz-author-card__role { font-size: 12px; color: var(--blz-text-dim); margin-bottom: 8px; }
.blz-author-card__bio { margin: 0; padding-left: 18px; font-size: 13px; color: var(--blz-text-dim); line-height: 1.6; }
.blz-author-card__bio li { margin-bottom: 3px; }
.blz-author-card__bio li::marker { color: var(--blz-yellow); }

/* "Full Guide" link sits inside each game tile, right under the existing
   meta line. .blz-card is already a plain <div> (not a link/button), so
   this is a normal sibling element — no wrap div needed here. */
.blz-card__guide-link { display: block; margin-top: 4px; font-size: 11px; font-weight: 700; color: var(--blz-text-dim); }
.blz-card__guide-link:hover { color: var(--blz-orange); }
