/* ==========================================================================
   789bingoapkdownload.click - mobile-first design tokens + components
   File: css/dynamic-21180e-tokens.css
   Class contract: every class uses the "layer80e9b-" prefix.
   Palette: #20B2AA / #228B22 / #1A1A1A / #32CD32 / #FF1493
   Voice: technical headings + open body, small radii, square CTAs,
   light floating game tiles, layered bottom strip, press feedback.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root {
  --layer80e9b-ink: #0e0f0f;
  --layer80e9b-base: #1a1a1a;
  --layer80e9b-raise: #212121;
  --layer80e9b-panel: #242424;
  --layer80e9b-panel-hi: #2b2b2b;
  --layer80e9b-line: #313131;
  --layer80e9b-line-soft: #292929;
  --layer80e9b-teal: #20b2aa;
  --layer80e9b-teal-bright: #35d2c9;
  --layer80e9b-teal-deep: #15827c;
  --layer80e9b-forest: #228b22;
  --layer80e9b-forest-deep: #1a6e1a;
  --layer80e9b-lime: #32cd32;
  --layer80e9b-pink: #ff1493;
  --layer80e9b-pink-deep: #d5107b;
  --layer80e9b-pink-ink: #2a04174;
  --layer80e9b-text: #f2f6f5;
  --layer80e9b-mute: #a6b7b3;
  --layer80e9b-faint: #74857f;
  --layer80e9b-font-head: "Bahnschrift", "Roboto Condensed", "Segoe UI", Arial, sans-serif;
  --layer80e9b-font-body: "Segoe UI", Roboto, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --layer80e9b-r-xs: 2px;
  --layer80e9b-r-sm: 3px;
  --layer80e9b-r-md: 5px;
  --layer80e9b-canvas: 430px;
  --layer80e9b-top-h: 96px;
  --layer80e9b-bnav-h: 64px;
  --layer80e9b-ease: cubic-bezier(0.32, 0.72, 0.35, 1);
  --layer80e9b-press: translate3d(0, 1px, 0) scale(0.97);
}

/* --------------------------------------------------------------------------
   2. Base + reset
   -------------------------------------------------------------------------- */
* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background:
    radial-gradient(1200px 500px at 50% -220px, rgba(32, 178, 170, 0.14), transparent 70%),
    var(--layer80e9b-ink);
  color: var(--layer80e9b-text);
  font-family: var(--layer80e9b-font-body);
  font-size: 15px;
  line-height: 1.6;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; border: 0; }

button {
  font-family: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

a { color: var(--layer80e9b-teal-bright); text-decoration: none; }
a:active { color: var(--layer80e9b-lime); }

:focus-visible {
  outline: 2px solid var(--layer80e9b-lime);
  outline-offset: 2px;
  border-radius: var(--layer80e9b-r-xs);
}

::selection { background: var(--layer80e9b-pink); color: #ffffff; }

/* --------------------------------------------------------------------------
   3. Phone canvas shell (wide screens keep the centered canvas)
   -------------------------------------------------------------------------- */
.layer80e9b-shell {
  position: relative;
  width: 100%;
  max-width: var(--layer80e9b-canvas);
  margin: 0 auto;
  min-height: 100vh;
  background: var(--layer80e9b-base);
  box-shadow: 0 0 0 1px #000000, 0 0 60px rgba(0, 0, 0, 0.55);
  overflow-x: clip;
}

@media (min-width: 430px) {
  body { font-size: 15.5px; }
}

.layer80e9b-skip {
  position: absolute;
  left: 8px;
  top: -48px;
  z-index: 120;
  padding: 8px 14px;
  background: var(--layer80e9b-lime);
  color: #08210b;
  font-family: var(--layer80e9b-font-head);
  font-size: 13px;
  font-weight: 700;
  border-radius: var(--layer80e9b-r-xs);
  transition: top 0.15s var(--layer80e9b-ease);
}
.layer80e9b-skip:focus { top: 8px; }

/* --------------------------------------------------------------------------
   4. Fixed top bar: centered identity row + action row
   -------------------------------------------------------------------------- */
.layer80e9b-topbar {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: var(--layer80e9b-canvas);
  z-index: 70;
  background: rgba(20, 20, 20, 0.94);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--layer80e9b-line);
}

.layer80e9b-brandbar {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 6px 12px 4px;
  border-bottom: 1px solid var(--layer80e9b-line-soft);
  background: linear-gradient(180deg, rgba(32, 178, 170, 0.10), rgba(32, 178, 170, 0) 85%);
}

.layer80e9b-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--layer80e9b-text);
}

.layer80e9b-logo {
  width: 34px;
  height: 34px;
  object-fit: contain;
  border-radius: var(--layer80e9b-r-sm);
  border: 1px solid var(--layer80e9b-teal-deep);
  background: #101313;
  padding: 2px;
  flex: none;
}

.layer80e9b-brand-name {
  font-family: var(--layer80e9b-font-head);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.15;
  white-space: nowrap;
}
.layer80e9b-brand-name em {
  font-style: normal;
  color: var(--layer80e9b-teal-bright);
}

.layer80e9b-actionbar {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 5px 10px;
}

.layer80e9b-menubtn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 12px 0 9px;
  border: 1px solid var(--layer80e9b-line);
  border-radius: var(--layer80e9b-r-xs);
  background: var(--layer80e9b-raise);
  font-family: var(--layer80e9b-font-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--layer80e9b-text);
  transition: background-color 0.15s var(--layer80e9b-ease), transform 0.1s var(--layer80e9b-ease);
}
.layer80e9b-menubtn:active {
  background: var(--layer80e9b-panel-hi);
  transform: var(--layer80e9b-press);
}
.layer80e9b-menubtn svg { width: 16px; height: 16px; fill: var(--layer80e9b-teal); }

.layer80e9b-actions {
  margin-left: auto;
  display: flex;
  gap: 7px;
}

/* Square, high-contrast CTA buttons */
.layer80e9b-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 16px;
  border-radius: var(--layer80e9b-r-xs);
  font-family: var(--layer80e9b-font-head);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  line-height: 1;
  text-align: center;
  transition: background-color 0.16s var(--layer80e9b-ease), color 0.16s var(--layer80e9b-ease),
    border-color 0.16s var(--layer80e9b-ease), transform 0.09s var(--layer80e9b-ease);
}
.layer80e9b-btn:active { transform: var(--layer80e9b-press); }

.layer80e9b-btn-solid {
  background: var(--layer80e9b-pink);
  color: #ffffff;
  box-shadow: 0 3px 0 var(--layer80e9b-pink-deep);
}
.layer80e9b-btn-solid:active { box-shadow: 0 1px 0 var(--layer80e9b-pink-deep); }

.layer80e9b-btn-ghost {
  background: transparent;
  color: var(--layer80e9b-teal-bright);
  border: 1px solid var(--layer80e9b-teal-deep);
}
.layer80e9b-btn-ghost:active { background: rgba(32, 178, 170, 0.12); }

.layer80e9b-btn-forest {
  background: var(--layer80e9b-forest);
  color: #eaffea;
  box-shadow: 0 3px 0 var(--layer80e9b-forest-deep);
}
.layer80e9b-btn-forest:active { box-shadow: 0 1px 0 var(--layer80e9b-forest-deep); }

.layer80e9b-btn-wide { width: 100%; }

/* --------------------------------------------------------------------------
   5. Side drawer menu + scrim
   -------------------------------------------------------------------------- */
.layer80e9b-scrim {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(5, 6, 6, 0.66);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s var(--layer80e9b-ease), visibility 0.2s var(--layer80e9b-ease);
}
.layer80e9b-scrim.layer80e9b-is-shown { opacity: 1; visibility: visible; }

.layer80e9b-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 90;
  width: min(84vw, 318px);
  background: #191919;
  border-right: 1px solid var(--layer80e9b-line);
  transform: translate3d(-102%, 0, 0);
  transition: transform 0.24s var(--layer80e9b-ease);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.layer80e9b-drawer.layer80e9b-is-open { transform: translate3d(0, 0, 0); }

.layer80e9b-drawer-head {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 14px 14px 12px;
  border-bottom: 1px solid var(--layer80e9b-line-soft);
  position: sticky;
  top: 0;
  background: #191919;
  z-index: 2;
}
.layer80e9b-drawer-head .layer80e9b-logo { width: 30px; height: 30px; }
.layer80e9b-drawer-title {
  font-family: var(--layer80e9b-font-head);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.layer80e9b-drawer-close {
  margin-left: auto;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--layer80e9b-line);
  border-radius: var(--layer80e9b-r-xs);
  background: var(--layer80e9b-raise);
}
.layer80e9b-drawer-close:active { transform: var(--layer80e9b-press); }
.layer80e9b-drawer-close svg { width: 15px; height: 15px; fill: var(--layer80e9b-mute); }

.layer80e9b-drawer-group { padding: 12px 12px 4px; }
.layer80e9b-drawer-label {
  font-family: var(--layer80e9b-font-head);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--layer80e9b-faint);
  padding: 0 10px 7px;
}
.layer80e9b-drawer-link {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 46px;
  padding: 0 10px;
  border-radius: var(--layer80e9b-r-xs);
  color: var(--layer80e9b-text);
  font-size: 14.5px;
  border: 1px solid transparent;
  transition: background-color 0.14s var(--layer80e9b-ease), border-color 0.14s var(--layer80e9b-ease);
}
.layer80e9b-drawer-link:active {
  background: rgba(32, 178, 170, 0.14);
  transform: var(--layer80e9b-press);
}
.layer80e9b-drawer-link svg {
  width: 17px;
  height: 17px;
  fill: var(--layer80e9b-teal);
  flex: none;
}
.layer80e9b-drawer-link span small {
  display: block;
  font-size: 11.5px;
  color: var(--layer80e9b-faint);
  line-height: 1.35;
}
.layer80e9b-drawer-cta { padding: 14px 14px 22px; margin-top: auto; }

.layer80e9b-no-scroll { overflow: hidden; }

/* --------------------------------------------------------------------------
   6. Main column + hero
   -------------------------------------------------------------------------- */
.layer80e9b-main {
  padding: calc(var(--layer80e9b-top-h) + 10px) 12px calc(var(--layer80e9b-bnav-h) + 86px);
}

.layer80e9b-hero { margin: 2px 0 14px; }

.layer80e9b-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--layer80e9b-font-head);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--layer80e9b-lime);
  margin: 0 0 8px;
}
.layer80e9b-kicker::before {
  content: "";
  width: 16px;
  height: 2px;
  background: var(--layer80e9b-lime);
}

.layer80e9b-h1 {
  font-family: var(--layer80e9b-font-head);
  font-size: 24px;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: 0.015em;
  margin: 0 0 10px;
  color: var(--layer80e9b-text);
}
.layer80e9b-h1 b { color: var(--layer80e9b-teal-bright); font-weight: 800; }

@media (min-width: 390px) {
  .layer80e9b-h1 { font-size: 26px; }
}

.layer80e9b-lead {
  margin: 0 0 12px;
  color: var(--layer80e9b-mute);
  font-size: 14.5px;
}
.layer80e9b-lead strong { color: var(--layer80e9b-text); font-weight: 600; }

/* --------------------------------------------------------------------------
   7. Carousel
   -------------------------------------------------------------------------- */
.layer80e9b-carousel {
  position: relative;
  border: 1px solid var(--layer80e9b-line);
  border-radius: var(--layer80e9b-r-md);
  background: #101010;
  overflow: hidden;
  touch-action: pan-y;
}

.layer80e9b-track {
  display: flex;
  transition: transform 0.42s var(--layer80e9b-ease);
  will-change: transform;
}

.layer80e9b-slide {
  position: relative;
  flex: 0 0 100%;
  width: 100%;
  display: block;
  text-align: left;
}
.layer80e9b-slide:active .layer80e9b-slide-img { transform: scale(0.985); }

.layer80e9b-slide-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform 0.18s var(--layer80e9b-ease);
}

.layer80e9b-slide-note {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 26px 12px 10px;
  background: linear-gradient(180deg, transparent, rgba(10, 10, 10, 0.92));
  pointer-events: none;
}
.layer80e9b-slide-tag {
  font-family: var(--layer80e9b-font-head);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--layer80e9b-lime);
}
.layer80e9b-slide-cap {
  font-family: var(--layer80e9b-font-head);
  font-size: 14.5px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.3;
}

.layer80e9b-dots {
  position: absolute;
  right: 10px;
  bottom: 8px;
  display: flex;
  gap: 6px;
  z-index: 3;
}
.layer80e9b-dot {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.layer80e9b-dot::after {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.38);
  transition: background-color 0.16s var(--layer80e9b-ease), transform 0.16s var(--layer80e9b-ease);
}
.layer80e9b-dot-on::after {
  background: var(--layer80e9b-pink);
  transform: scale(1.25);
}

/* --------------------------------------------------------------------------
   8. Quick stat strip + chips
   -------------------------------------------------------------------------- */
.layer80e9b-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 0 0 14px;
}
.layer80e9b-stat {
  border: 1px solid var(--layer80e9b-line-soft);
  border-left: 2px solid var(--layer80e9b-teal-deep);
  border-radius: var(--layer80e9b-r-xs);
  background: var(--layer80e9b-raise);
  padding: 8px 6px 7px;
  text-align: center;
}
.layer80e9b-stat b {
  display: block;
  font-family: var(--layer80e9b-font-head);
  font-size: 15px;
  font-weight: 800;
  color: var(--layer80e9b-teal-bright);
  line-height: 1.15;
}
.layer80e9b-stat span {
  display: block;
  font-size: 10.5px;
  line-height: 1.3;
  color: var(--layer80e9b-faint);
  letter-spacing: 0.02em;
}

.layer80e9b-chips {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 2px 0 10px;
  margin: 0 0 6px;
  scrollbar-width: none;
  -ms-overflow-style: none;
  touch-action: pan-x;
}
.layer80e9b-chips::-webkit-scrollbar { display: none; }

.layer80e9b-chip {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid var(--layer80e9b-line);
  border-radius: var(--layer80e9b-r-xs);
  background: var(--layer80e9b-raise);
  font-family: var(--layer80e9b-font-head);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--layer80e9b-text);
  transition: border-color 0.15s var(--layer80e9b-ease), background-color 0.15s var(--layer80e9b-ease),
    transform 0.09s var(--layer80e9b-ease);
}
.layer80e9b-chip:active { transform: var(--layer80e9b-press); background: var(--layer80e9b-panel-hi); }
.layer80e9b-chip svg { width: 14px; height: 14px; fill: var(--layer80e9b-lime); }
.layer80e9b-chip.layer80e9b-chip-promo {
  border-color: var(--layer80e9b-pink-deep);
  color: #ffd9ec;
  background: rgba(255, 20, 147, 0.10);
}
.layer80e9b-chip.layer80e9b-chip-promo svg { fill: var(--layer80e9b-pink); }

/* --------------------------------------------------------------------------
   9. Content sections
   -------------------------------------------------------------------------- */
.layer80e9b-sec { margin: 26px 0; }
.layer80e9b-sec:first-of-type { margin-top: 10px; }

.layer80e9b-h2 {
  font-family: var(--layer80e9b-font-head);
  font-size: 18.5px;
  line-height: 1.28;
  font-weight: 800;
  letter-spacing: 0.02em;
  margin: 0 0 8px;
  color: var(--layer80e9b-text);
  padding-left: 10px;
  border-left: 3px solid var(--layer80e9b-pink);
}
.layer80e9b-h2 i {
  font-style: normal;
  color: var(--layer80e9b-teal-bright);
}

.layer80e9b-h3 {
  font-family: var(--layer80e9b-font-head);
  font-size: 15px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 16px 0 6px;
  color: var(--layer80e9b-lime);
}

.layer80e9b-p { margin: 0 0 12px; color: var(--layer80e9b-mute); }
.layer80e9b-p strong, .layer80e9b-li strong { color: var(--layer80e9b-text); font-weight: 600; }
.layer80e9b-p a, .layer80e9b-li a { border-bottom: 1px dotted rgba(53, 210, 201, 0.55); }

.layer80e9b-inlinepromo {
  display: inline;
  font-family: var(--layer80e9b-font-head);
  font-weight: 700;
  color: var(--layer80e9b-pink);
  border-bottom: 1px dashed rgba(255, 20, 147, 0.6);
  cursor: pointer;
  letter-spacing: 0.02em;
}
.layer80e9b-inlinepromo:active { color: #ff7fc1; }

/* Section head row: count pill */
.layer80e9b-sechead { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.layer80e9b-count {
  flex: none;
  font-family: var(--layer80e9b-font-head);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--layer80e9b-lime);
  border: 1px solid rgba(50, 205, 50, 0.4);
  border-radius: var(--layer80e9b-r-xs);
  padding: 2px 7px;
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   10. Game grid + light floating tiles
   -------------------------------------------------------------------------- */
.layer80e9b-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px 7px;
  margin: 12px 0 4px;
}

@media (min-width: 400px) {
  .layer80e9b-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 8px; }
}

.layer80e9b-game {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
  text-align: center;
  transition: transform 0.09s var(--layer80e9b-ease);
}
.layer80e9b-game:active { transform: var(--layer80e9b-press); }

.layer80e9b-game-frame {
  position: relative;
  display: block;
  border: 1px solid var(--layer80e9b-line);
  border-radius: var(--layer80e9b-r-sm);
  background:
    linear-gradient(160deg, rgba(32, 178, 170, 0.10), rgba(255, 255, 255, 0.02) 55%),
    #1f1f1f;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.05);
  padding: 4px;
  overflow: hidden;
}
.layer80e9b-game-frame::after {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: 3px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(50, 205, 50, 0.35), transparent);
  opacity: 0;
  transition: opacity 0.16s var(--layer80e9b-ease);
}
.layer80e9b-game:active .layer80e9b-game-frame::after { opacity: 1; }

.layer80e9b-game-frame img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--layer80e9b-r-xs);
}

.layer80e9b-game-name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  font-size: 11.5px;
  line-height: 1.3;
  color: var(--layer80e9b-mute);
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}

/* --------------------------------------------------------------------------
   11. Content modules: steps, branches, checklist, definitions
   -------------------------------------------------------------------------- */
.layer80e9b-panelbox {
  border: 1px solid var(--layer80e9b-line-soft);
  border-radius: var(--layer80e9b-r-md);
  background: var(--layer80e9b-raise);
  padding: 14px 13px 6px;
  margin: 14px 0;
}

.layer80e9b-steps { list-style: none; margin: 12px 0 8px; padding: 0; counter-reset: layer80e9bstep; }
.layer80e9b-steps li {
  counter-increment: layer80e9bstep;
  position: relative;
  padding: 0 0 14px 40px;
}
.layer80e9b-steps li::before {
  content: counter(layer80e9bstep, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--layer80e9b-font-head);
  font-size: 12.5px;
  font-weight: 800;
  color: var(--layer80e9b-teal-bright);
  border: 1px solid var(--layer80e9b-teal-deep);
  border-radius: var(--layer80e9b-r-xs);
  background: rgba(32, 178, 170, 0.08);
}
.layer80e9b-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 13.5px;
  top: 32px;
  bottom: 2px;
  width: 1px;
  background: linear-gradient(180deg, var(--layer80e9b-teal-deep), transparent);
}
.layer80e9b-steps b {
  display: block;
  font-family: var(--layer80e9b-font-head);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--layer80e9b-text);
  margin-bottom: 2px;
}
.layer80e9b-steps p { margin: 0; font-size: 13.5px; color: var(--layer80e9b-mute); }

/* Scenario branch cards */
.layer80e9b-branch {
  border: 1px solid var(--layer80e9b-line-soft);
  border-left: 3px solid var(--layer80e9b-teal);
  border-radius: var(--layer80e9b-r-xs);
  background: var(--layer80e9b-panel);
  padding: 11px 12px;
  margin: 10px 0;
}
.layer80e9b-branch.layer80e9b-b-pink { border-left-color: var(--layer80e9b-pink); }
.layer80e9b-branch.layer80e9b-b-lime { border-left-color: var(--layer80e9b-lime); }
.layer80e9b-branch b {
  display: block;
  font-family: var(--layer80e9b-font-head);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--layer80e9b-teal-bright);
  margin-bottom: 3px;
}
.layer80e9b-branch.layer80e9b-b-pink b { color: #ff7fb4; }
.layer80e9b-branch.layer80e9b-b-lime b { color: var(--layer80e9b-lime); }
.layer80e9b-branch p { margin: 0; font-size: 13.5px; color: var(--layer80e9b-mute); }

/* Checklist */
.layer80e9b-check { list-style: none; margin: 12px 0 8px; padding: 0; }
.layer80e9b-check li {
  position: relative;
  padding: 0 0 12px 30px;
  font-size: 13.5px;
  color: var(--layer80e9b-mute);
}
.layer80e9b-check li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 17px;
  height: 17px;
  border-radius: var(--layer80e9b-r-xs);
  border: 1px solid var(--layer80e9b-forest);
  background:
    linear-gradient(135deg, transparent 42%, var(--layer80e9b-lime) 44%, var(--layer80e9b-lime) 58%, transparent 60%)
    no-repeat center / 100% 100%;
}
.layer80e9b-check b {
  display: block;
  font-family: var(--layer80e9b-font-head);
  font-size: 14px;
  color: var(--layer80e9b-text);
  font-weight: 700;
}

/* Definition list */
.layer80e9b-defs { margin: 12px 0 6px; }
.layer80e9b-defs dt {
  font-family: var(--layer80e9b-font-head);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--layer80e9b-teal-bright);
  border-top: 1px dashed var(--layer80e9b-line);
  padding: 10px 0 2px;
}
.layer80e9b-defs dt:first-child { border-top: 0; padding-top: 2px; }
.layer80e9b-defs dd {
  margin: 0;
  padding: 0 0 8px;
  font-size: 13.5px;
  color: var(--layer80e9b-mute);
}

/* Plain bullets */
.layer80e9b-ul { margin: 8px 0 12px; padding-left: 20px; color: var(--layer80e9b-mute); }
.layer80e9b-ul li { margin: 0 0 7px; font-size: 13.5px; }

/* --------------------------------------------------------------------------
   12. Homepage extended footer (brand > directory > promotions > disclaimer)
   -------------------------------------------------------------------------- */
.layer80e9b-xfooter {
  margin: 30px 0 0;
  border: 1px solid var(--layer80e9b-line);
  border-radius: var(--layer80e9b-r-md);
  background:
    linear-gradient(180deg, rgba(32, 178, 170, 0.07), rgba(0, 0, 0, 0) 120px),
    var(--layer80e9b-raise);
  padding: 16px 13px 14px;
}

.layer80e9b-xbrand { margin-bottom: 16px; }
.layer80e9b-xbrand .layer80e9b-brandmark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-family: var(--layer80e9b-font-head);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--layer80e9b-text);
}
.layer80e9b-xbrand .layer80e9b-brandmark img {
  width: 26px;
  height: 26px;
  object-fit: contain;
  border-radius: var(--layer80e9b-r-xs);
  border: 1px solid var(--layer80e9b-teal-deep);
  padding: 1px;
  background: #101313;
}
.layer80e9b-xbrand p { margin: 0; font-size: 13.5px; color: var(--layer80e9b-mute); }

.layer80e9b-xdir-title {
  font-family: var(--layer80e9b-font-head);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--layer80e9b-lime);
  margin: 4px 0 10px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--layer80e9b-line-soft);
}

.layer80e9b-dir {
  columns: 2;
  column-gap: 14px;
  margin: 0 0 16px;
}
.layer80e9b-dir a {
  display: block;
  break-inside: avoid;
  padding: 7px 8px;
  margin: 0 0 4px;
  border: 1px solid var(--layer80e9b-line-soft);
  border-radius: var(--layer80e9b-r-xs);
  background: var(--layer80e9b-panel);
  font-family: var(--layer80e9b-font-head);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--layer80e9b-mute);
  transition: color 0.14s var(--layer80e9b-ease), border-color 0.14s var(--layer80e9b-ease);
}
.layer80e9b-dir a b { color: var(--layer80e9b-text); font-weight: 700; }
.layer80e9b-dir a:active {
  color: var(--layer80e9b-text);
  border-color: var(--layer80e9b-teal);
  transform: var(--layer80e9b-press);
}

.layer80e9b-xpromo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0 0 16px;
}
.layer80e9b-xtile {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
  text-align: left;
  min-height: 96px;
  padding: 11px 10px;
  border-radius: var(--layer80e9b-r-xs);
  border: 1px solid rgba(255, 20, 147, 0.45);
  background: linear-gradient(150deg, rgba(255, 20, 147, 0.16), rgba(32, 178, 170, 0.05) 80%);
  transition: transform 0.09s var(--layer80e9b-ease), border-color 0.15s var(--layer80e9b-ease);
}
.layer80e9b-xtile:active { transform: var(--layer80e9b-press); }
.layer80e9b-xtile svg { width: 18px; height: 18px; fill: var(--layer80e9b-pink); }
.layer80e9b-xtile b {
  font-family: var(--layer80e9b-font-head);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
}
.layer80e9b-xtile span { font-size: 11.5px; line-height: 1.4; color: var(--layer80e9b-mute); }

.layer80e9b-xnote {
  margin: 0;
  padding: 10px 11px;
  border: 1px dashed rgba(50, 205, 50, 0.35);
  border-radius: var(--layer80e9b-r-xs);
  background: rgba(50, 205, 50, 0.05);
  font-size: 12px;
  line-height: 1.55;
  color: var(--layer80e9b-faint);
}
.layer80e9b-xnote b { color: var(--layer80e9b-lime); font-weight: 700; }

/* --------------------------------------------------------------------------
   13. Common footer bar (copyright only)
   -------------------------------------------------------------------------- */
.layer80e9b-foot {
  margin: 18px 0 4px;
  padding: 14px 0 6px;
  border-top: 1px solid var(--layer80e9b-line-soft);
  text-align: center;
  font-size: 12px;
  color: var(--layer80e9b-faint);
  letter-spacing: 0.02em;
}
.layer80e9b-foot b { color: var(--layer80e9b-mute); font-weight: 600; }

/* --------------------------------------------------------------------------
   14. Layered bottom navigation strip (5 roles, raised center CTA)
   -------------------------------------------------------------------------- */
.layer80e9b-bnav {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 100%;
  max-width: var(--layer80e9b-canvas);
  z-index: 60;
  background: rgba(17, 18, 18, 0.97);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--layer80e9b-line);
  box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.45);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.layer80e9b-bnav-ticker {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 22px;
  padding: 0 12px;
  border-bottom: 1px solid var(--layer80e9b-line-soft);
  font-family: var(--layer80e9b-font-head);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--layer80e9b-faint);
  overflow: hidden;
  white-space: nowrap;
}
.layer80e9b-bnav-ticker i {
  font-style: normal;
  color: var(--layer80e9b-lime);
}
.layer80e9b-bnav-ticker .layer80e9b-pulse {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--layer80e9b-lime);
  flex: none;
  animation: layer80e9bpulse 2.2s ease-in-out infinite;
}
@keyframes layer80e9bpulse {
  0%, 100% { opacity: 0.35; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.15); }
}

.layer80e9b-bnav-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
  height: 60px;
}

.layer80e9b-bnav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  height: 60px;
  min-width: 44px;
  color: var(--layer80e9b-faint);
  transition: color 0.15s var(--layer80e9b-ease);
  -webkit-tap-highlight-color: transparent;
}
.layer80e9b-bnav-item svg { width: 21px; height: 21px; fill: currentColor; }
.layer80e9b-bnav-item span {
  font-family: var(--layer80e9b-font-head);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.layer80e9b-bnav-item:active { color: var(--layer80e9b-text); }

/* Active role: contrast inversion */
.layer80e9b-bnav-item.layer80e9b-is-active {
  color: #0f1412;
  background: var(--layer80e9b-teal);
  border-radius: var(--layer80e9b-r-xs) var(--layer80e9b-r-xs) 0 0;
}
.layer80e9b-bnav-item.layer80e9b-is-active span { color: #0f1412; }

/* Raised center promo role */
.layer80e9b-bnav-cta {
  position: relative;
  height: 74px;
  justify-content: flex-start;
  padding-top: 5px;
  color: #ffffff;
}
.layer80e9b-bnav-cta::before {
  content: "";
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  width: 46px;
  height: 46px;
  border-radius: var(--layer80e9b-r-sm);
  background: linear-gradient(160deg, var(--layer80e9b-pink), var(--layer80e9b-pink-deep));
  border: 1px solid rgba(255, 255, 255, 0.25);
  box-shadow: 0 6px 16px rgba(255, 20, 147, 0.4);
}
.layer80e9b-bnav-cta svg {
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 22px;
  fill: #ffffff;
  z-index: 1;
}
.layer80e9b-bnav-cta span { padding-top: 33px; }
.layer80e9b-bnav-cta:active::before { transform: translateX(-50%) scale(0.93); }

/* --------------------------------------------------------------------------
   15. Motion + accessibility refinements
   -------------------------------------------------------------------------- */
.layer80e9b-game,
.layer80e9b-btn,
.layer80e9b-chip,
.layer80e9b-xtile,
.layer80e9b-drawer-link,
.layer80e9b-menubtn,
.layer80e9b-drawer-close {
  -webkit-tap-highlight-color: rgba(32, 178, 170, 0.18);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (min-width: 375px) {
  .layer80e9b-main { padding-left: 14px; padding-right: 14px; }
  .layer80e9b-slide-cap { font-size: 15.5px; }
}

@media (min-width: 430px) {
  .layer80e9b-h1 { font-size: 27px; }
  .layer80e9b-h2 { font-size: 19.5px; }
  .layer80e9b-game-name { font-size: 12px; }
}
