@charset "UTF-8";/*go-link-base*/:where(.go-link){color:LinkText;text-decoration:underline;cursor:pointer}
/* ==========================================================================
   22Bet Nigeria — "Naija Ink" design system
   Ink-black body · emerald primary · coral secondary · cyan links
   Two-tier header · main column + sticky right control rail (betslip logic)
   ========================================================================== */

:root {
  /* surfaces */
  --ink:        #06100f;
  --ink-2:      #0a1a19;
  --ink-3:      #0c201e;
  --card:       #0e2523;
  --card-2:     #12302d;
  --line:       #1c403c;
  --line-soft:  #16332f;

  /* brand */
  --green:      #00a862;
  --green-2:    #00c874;
  --green-dim:  #06301f;
  --cyan:       #21c7c2;
  --cyan-dim:   #0b3634;
  --coral:      #ff5a3c;
  --coral-dim:  #3a170f;
  --gold:       #f0b429;

  /* type */
  --txt:        #eaf4f1;
  --txt-2:      #c3d7d2;
  --muted:      #90aca7;
  --paper:      #f2f7f5;
  --paper-2:    #e6efec;
  --paper-txt:  #08201e;
  --paper-mut:  #4a6663;

  /* metrics */
  --wrap:       1240px;
  --rail:       334px;
  --r-sm:       8px;
  --r:          14px;
  --r-lg:       20px;
  --head-h:     116px;
  --head-h-sm:  60px;

  --ff: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ff-num: "Segoe UI", system-ui, sans-serif;

  --sh:   0 2px 10px rgba(0,0,0,.35);
  --sh-lg:0 18px 44px rgba(0,0,0,.5);

  /* the 22Bet X glyph, used as a decorative field */
  --x-cyan: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='168' height='168' viewBox='0 0 168 168'%3E%3Cg fill='none' stroke='%2321c7c2' stroke-width='7' stroke-linejoin='round' opacity='.20'%3E%3Cpath d='M30 8 L46 24 L62 8 L74 20 L58 36 L74 52 L62 64 L46 48 L30 64 L18 52 L34 36 L18 20 Z'/%3E%3Cpath d='M114 92 L130 108 L146 92 L158 104 L142 120 L158 136 L146 148 L130 132 L114 148 L102 136 L118 120 L102 104 Z'/%3E%3C/g%3E%3C/svg%3E");
  --x-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='168' height='168' viewBox='0 0 168 168'%3E%3Cg fill='none' stroke='%2300a862' stroke-width='7' stroke-linejoin='round' opacity='.22'%3E%3Cpath d='M30 8 L46 24 L62 8 L74 20 L58 36 L74 52 L62 64 L46 48 L30 64 L18 52 L34 36 L18 20 Z'/%3E%3Cpath d='M114 92 L130 108 L146 92 L158 104 L142 120 L158 136 L146 148 L130 132 L114 148 L102 136 L118 120 L102 104 Z'/%3E%3C/g%3E%3C/svg%3E");
  --dots: radial-gradient(currentColor 1.5px, transparent 1.6px);
}

/* ── reset ─────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--head-h) + 18px); }
body {
  margin: 0;
  background: var(--ink);
  color: var(--txt);
  font: 400 16px/1.72 var(--ff);
  overflow-x: hidden;
}
img, svg { max-width: 100%; display: block; }
a { color: var(--cyan); text-decoration: none; }span:where(.go-link){ color: var(--cyan); text-decoration: none; }
a:hover { text-decoration: underline; }span:where(.go-link):hover{ text-decoration: underline; }
button { font: inherit; color: inherit; cursor: pointer; }
input, select { font: inherit; }
h1, h2, h3, h4 { margin: 0; line-height: 1.18; font-weight: 800; letter-spacing: -.015em; }
p { margin: 0 0 1.05em; }
p:last-child { margin-bottom: 0; }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 3px; border-radius: 4px; }

/* Horizontal only — never a `padding` shorthand. Blocks like .ng-hero__in and
   .ng-shell carry .ng-wrap too, and a shorthand here (same specificity, later
   in source once media queries kick in) silently zeroes their vertical
   padding, collapsing the hero and footer gaps to 0. */
.ng-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding-left: 22px; padding-right: 22px; }
.ng-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* display treatment lifted from the 22Bet key-art lettering */
.ng-display {
  font-weight: 900;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: -.02em;
  line-height: 1.04;
}

/* ── header ────────────────────────────────────────────────────────────── */
.ng-head { position: sticky; top: 0; z-index: 90; }

.ng-strip {
  background: linear-gradient(90deg, var(--green-dim) 0%, #072b1d 46%, var(--cyan-dim) 100%);
  border-bottom: 1px solid var(--line-soft);
  font-size: .795rem;
  color: var(--txt-2);
}
.ng-strip__in { display: flex; align-items: center; gap: 18px; min-height: 38px; }
.ng-strip__lic { display: flex; align-items: center; gap: 9px; min-width: 0; }
.ng-strip__flag {
  width: 22px; height: 14px; flex: none; border-radius: 2px; overflow: hidden;
  background: linear-gradient(90deg, #008751 0 33.333%, #fff 33.333% 66.666%, #008751 66.666%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.18);
}
.ng-strip__txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ng-strip__right { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.ng-clock { font-variant-numeric: tabular-nums; color: var(--muted); letter-spacing: .02em; }

.ng-lang { display: flex; align-items: center; gap: 0; background: rgba(0,0,0,.34); border: 1px solid var(--line); border-radius: 999px; padding: 2px; }
.ng-lang__b {
  border: 0; background: transparent; color: var(--muted);
  font-size: .74rem; font-weight: 800; letter-spacing: .06em;
  padding: 4px 11px; border-radius: 999px; transition: .18s;
}
.ng-lang__b:hover { color: var(--txt); }
.ng-lang__b.is-on { background: var(--green); color: #04140d; }

/* fully opaque: at 96% the article text ghosted through while scrolling under it */
.ng-bar { background: var(--ink); border-bottom: 1px solid var(--line); }
.ng-bar__in { display: flex; align-items: center; gap: 26px; min-height: 76px; }
.ng-logo { flex: none; display: block; }
.ng-logo img { height: 42px; width: auto; }

.ng-nav { display: flex; align-items: center; gap: 4px; margin-left: 4px; }
.ng-nav a {
  position: relative; display: block; padding: 9px 14px; border-radius: var(--r-sm);
  color: var(--txt-2); font-size: .93rem; font-weight: 700; letter-spacing: .01em;
  text-decoration: none; transition: .18s; white-space: nowrap;
}.ng-nav span:where(.go-link){
  position: relative; display: block; padding: 9px 14px; border-radius: var(--r-sm);
  color: var(--txt-2); font-size: .93rem; font-weight: 700; letter-spacing: .01em;
  text-decoration: none; transition: .18s; white-space: nowrap;
}
.ng-nav a:hover { color: #fff; background: var(--card); text-decoration: none; }.ng-nav span:where(.go-link):hover{ color: #fff; background: var(--card); text-decoration: none; }
.ng-nav a.is-on { color: #fff; background: var(--card-2); }.ng-nav span:where(.go-link).is-on{ color: #fff; background: var(--card-2); }
.ng-nav a.is-on::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px;
  height: 2px; border-radius: 2px; background: var(--green);
}.ng-nav span:where(.go-link).is-on::after{
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px;
  height: 2px; border-radius: 2px; background: var(--green);
}

.ng-head__cta { margin-left: auto; display: flex; align-items: center; gap: 10px; }

.ng-burger {
  display: none; width: 46px; height: 42px; margin-left: auto;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-sm);
  align-items: center; justify-content: center; flex-direction: column; gap: 4px;
}
.ng-burger span:not(:where(.go-link)) { display: block; width: 20px; height: 2px; background: var(--txt); border-radius: 2px; transition: .2s; }
.ng-burger.is-on span:not(:where(.go-link)):nth-child(1) { transform: translateY(6px) rotate(45deg); }
.ng-burger.is-on span:not(:where(.go-link)):nth-child(2) { opacity: 0; }
.ng-burger.is-on span:not(:where(.go-link)):nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.ng-mob { display: none; border-top: 1px solid var(--line); background: var(--ink-2); }
.ng-mob.is-open { display: block; }
.ng-mob a {
  display: block; padding: 13px 0; border-bottom: 1px solid var(--line-soft);
  color: var(--txt); font-weight: 700; text-decoration: none;
}.ng-mob span:where(.go-link){
  display: block; padding: 13px 0; border-bottom: 1px solid var(--line-soft);
  color: var(--txt); font-weight: 700; text-decoration: none;
}
/* `.ng-mob a` is (0,1,1) and outranks `.ng-btn` (0,1,0), so the menu-link rule
   would otherwise strip the button's flex centring and horizontal padding. */
.ng-mob .ng-btn {
  display: flex; align-items: center; justify-content: center;
  padding: 14px 26px; border-bottom: 0; margin: 14px 0 18px;
  text-align: center; line-height: 1.2;
}

/* ── buttons ───────────────────────────────────────────────────────────── */
.ng-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 26px; border: 0; border-radius: var(--r-sm);
  font-size: .95rem; font-weight: 800; letter-spacing: .015em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; transition: transform .15s, box-shadow .15s, filter .15s;
  white-space: nowrap;
}
.ng-btn:hover { text-decoration: none; transform: translateY(-2px); }
.ng-btn:active { transform: translateY(0); }
.ng-btn--go { background: linear-gradient(180deg, var(--green-2), var(--green)); color: #03150d; box-shadow: 0 6px 18px rgba(0,168,98,.3); }
.ng-btn--go:hover { box-shadow: 0 10px 26px rgba(0,168,98,.42); }
.ng-btn--bonus { background: linear-gradient(180deg, #ff7357, var(--coral)); color: #2a0a04; box-shadow: 0 6px 18px rgba(255,90,60,.28); }
.ng-btn--bonus:hover { box-shadow: 0 10px 26px rgba(255,90,60,.4); }
.ng-btn--ghost { background: transparent; color: var(--txt); border: 1px solid var(--line); }
.ng-btn--ghost:hover { border-color: var(--cyan); color: #fff; }
.ng-btn--sm { padding: 9px 17px; font-size: .82rem; }
.ng-btn--lg { padding: 16px 34px; font-size: 1.02rem; }
.ng-btn--full { width: 100%; }

/* ── hero (split: copy left, framed key-art right) ─────────────────────── */
.ng-hero { position: relative; overflow: hidden; background: linear-gradient(160deg, #08201c 0%, var(--ink) 58%, #0a1d20 100%); border-bottom: 1px solid var(--line); }
.ng-hero::before {
  content: ""; position: absolute; inset: 0;
  background-image: var(--x-cyan); background-size: 168px 168px; opacity: .5;
  -webkit-mask-image: linear-gradient(105deg, #000 0%, transparent 62%);
  mask-image: linear-gradient(105deg, #000 0%, transparent 62%);
}
.ng-hero::after {
  content: ""; position: absolute; right: -140px; top: -170px; width: 560px; height: 560px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0,168,98,.24), transparent 66%);
}
.ng-hero__in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 46px; align-items: center; padding-top: 56px; padding-bottom: 60px; }
.ng-hero__copy { min-width: 0; }
.ng-eyebrow {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px;
  padding: 6px 14px 6px 10px; border-radius: 999px;
  background: rgba(0,168,98,.13); border: 1px solid rgba(0,168,98,.36);
  color: #6ff0b0; font-size: .76rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase;
}
.ng-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--green-2); box-shadow: 0 0 0 3px rgba(0,200,116,.22); }
.ng-hero h1 { font-size: clamp(1.95rem, 4vw, 3.05rem); margin-bottom: 18px; }
.ng-hero h1 em { font-style: normal; color: var(--cyan); }
.ng-hero__lead { font-size: 1.06rem; color: var(--txt-2); max-width: 60ch; margin-bottom: 26px; }
.ng-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 26px; }

/* App Store / Google Play badges */
.ng-store { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 24px; }
.ng-store__b {
  display: inline-flex; align-items: center; gap: 11px;
  padding: 9px 20px 9px 15px; border-radius: 11px;
  background: linear-gradient(180deg, #102a27, #091d1b);
  border: 1px solid var(--line); color: var(--txt); text-decoration: none;
  transition: transform .15s, border-color .15s, box-shadow .15s;
}
.ng-store__b:hover { text-decoration: none; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.34); }
.ng-store__b--ios:hover { border-color: #dfe9e6; }
.ng-store__b--android:hover { border-color: var(--green-2); }
.ng-store__ic { width: 26px; height: 26px; flex: none; fill: currentColor; }
.ng-store__b--android .ng-store__ic { fill: var(--green-2); }
.ng-store__t { display: flex; flex-direction: column; line-height: 1.16; }
.ng-store__t small { font-size: .66rem; text-transform: uppercase; letter-spacing: .09em; color: var(--muted); }
.ng-store__t b { font-size: 1rem; font-weight: 800; color: #fff; }
@media (max-width: 420px) { .ng-store { gap: 9px; } .ng-store__b { flex: 1 1 100%; justify-content: center; } }

.ng-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ng-chip {
  display: flex; flex-direction: column; gap: 1px; min-width: 118px;
  padding: 10px 15px; border-radius: var(--r-sm);
  background: rgba(14,37,35,.72); border: 1px solid var(--line);
}
.ng-chip b { font-size: 1.12rem; font-weight: 900; color: var(--gold); font-family: var(--ff-num); letter-spacing: -.01em; }
.ng-chip span:not(:where(.go-link)) { font-size: .73rem; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; }

.ng-hero__art { position: relative; }
.ng-frame {
  position: relative; border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--line); background: var(--card);
  box-shadow: var(--sh-lg);
}
.ng-frame img { width: 100%; height: auto; }
.ng-frame--flip img { transform: scaleX(-1); }
.ng-frame__tag {
  position: absolute; left: 14px; top: 14px; z-index: 2;
  padding: 5px 12px; border-radius: 999px; background: rgba(6,16,15,.8);
  border: 1px solid rgba(33,199,194,.4); backdrop-filter: blur(4px);
  font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan);
}

/* ── shell: article + control rail ─────────────────────────────────────── */
.ng-shell { display: grid; grid-template-columns: minmax(0,1fr) var(--rail); gap: 34px; align-items: start; padding-top: 42px; padding-bottom: 72px; }
.ng-main { min-width: 0; }
.ng-rail { position: sticky; top: calc(var(--head-h) + 16px); display: flex; flex-direction: column; gap: 16px; }

/* ── article rhythm ────────────────────────────────────────────────────── */
.ng-sec { margin-bottom: 40px; scroll-margin-top: calc(var(--head-h) + 20px); }
.ng-sec > p, .ng-sec > ul, .ng-sec > ol { color: var(--txt-2); }
.ng-h2 {
  position: relative; font-size: clamp(1.42rem, 2.5vw, 1.94rem);
  margin: 0 0 18px; padding-left: 17px;
}
.ng-h2::before { content: ""; position: absolute; left: 0; top: .16em; bottom: .16em; width: 5px; border-radius: 3px; background: linear-gradient(180deg, var(--green-2), var(--cyan)); }
.ng-h3 { font-size: clamp(1.12rem, 1.9vw, 1.32rem); margin: 26px 0 12px; color: #fff; }
.ng-h3--cyan { color: var(--cyan); }
.ng-lead { font-size: 1.06rem; color: var(--txt-2); }

/* lists */
.ng-ul { list-style: none; margin: 0 0 1.1em; padding: 0; }
.ng-ul > li { position: relative; padding: 0 0 0 27px; margin-bottom: 9px; }
.ng-ul > li::before {
  content: ""; position: absolute; left: 3px; top: .62em; width: 9px; height: 9px;
  background: var(--green); transform: rotate(45deg); border-radius: 2px;
}
.ng-ul--cyan > li::before { background: var(--cyan); }
.ng-ul--coral > li::before { background: var(--coral); }
.ng-ul > li b, .ng-ul > li strong { color: #fff; }

.ng-ol { list-style: none; margin: 0 0 1.1em; padding: 0; counter-reset: ngol; }
.ng-ol > li { position: relative; padding: 0 0 0 44px; margin-bottom: 11px; counter-increment: ngol; min-height: 30px; }
.ng-ol > li::before {
  content: counter(ngol); position: absolute; left: 0; top: -1px;
  width: 30px; height: 30px; border-radius: 9px;
  background: var(--card-2); border: 1px solid var(--line); color: var(--cyan);
  font-size: .84rem; font-weight: 900; font-family: var(--ff-num);
  display: flex; align-items: center; justify-content: center;
}
.ng-ol--green > li::before { background: rgba(0,168,98,.14); border-color: rgba(0,168,98,.4); color: #6ff0b0; }
.ng-ol > li b, .ng-ol > li strong { color: #fff; }

/* nested sub-list (registration "choose how to sign up") */
.ng-sub { list-style: none; margin: 8px 0 0; padding: 0; }
.ng-sub li { position: relative; padding-left: 22px; margin-bottom: 5px; color: var(--muted); }
.ng-sub li::before { content: ""; position: absolute; left: 3px; top: .68em; width: 7px; height: 7px; border-radius: 50%; border: 2px solid var(--cyan); }

/* ── cards / panels ────────────────────────────────────────────────────── */
.ng-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 22px; }
.ng-card--pad { padding: 26px; }
.ng-grid { display: grid; gap: 16px; }
.ng-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.ng-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.ng-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }

.ng-pc { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin: 6px 0 4px; }
.ng-pc__box { border-radius: var(--r); padding: 20px 22px; border: 1px solid var(--line); }
.ng-pc__box--pro { background: linear-gradient(180deg, rgba(0,168,98,.11), transparent 70%); border-color: rgba(0,168,98,.34); }
.ng-pc__box--con { background: linear-gradient(180deg, rgba(255,90,60,.1), transparent 70%); border-color: rgba(255,90,60,.32); }
.ng-pc__h { display: flex; align-items: center; gap: 9px; font-size: 1.04rem; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; margin-bottom: 13px; }
.ng-pc__box--pro .ng-pc__h { color: #6ff0b0; }
.ng-pc__box--con .ng-pc__h { color: #ff9a83; }
.ng-pc__list { list-style: none; margin: 0; padding: 0; }
.ng-pc__list li { position: relative; padding-left: 26px; margin-bottom: 8px; color: var(--txt-2); }
.ng-pc__list li::before { position: absolute; left: 0; top: 0; font-weight: 900; }
.ng-pc__box--pro li::before { content: "+"; color: var(--green-2); font-size: 1.15rem; }
.ng-pc__box--con li::before { content: "−"; color: var(--coral); font-size: 1.15rem; }

.ng-callout {
  position: relative; border-radius: var(--r); padding: 20px 22px 20px 24px;
  background: linear-gradient(120deg, rgba(33,199,194,.1), rgba(0,168,98,.05));
  border: 1px solid rgba(33,199,194,.32);
}
.ng-callout--warn { background: linear-gradient(120deg, rgba(240,180,41,.11), transparent); border-color: rgba(240,180,41,.34); }
.ng-callout__t { display: block; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; color: var(--cyan); margin-bottom: 7px; }
.ng-callout--warn .ng-callout__t { color: var(--gold); }

.ng-formula {
  display: block; margin: 4px 0 16px; padding: 16px 20px; border-radius: var(--r);
  background: #04211f; border: 1px dashed rgba(33,199,194,.45);
  font-family: var(--ff-num); font-size: 1.04rem; font-weight: 700; color: #b8f5e8; text-align: center;
}

/* ── tables: light "paper" panels against the ink page ─────────────────── */
.ng-tw { margin: 14px 0 30px; border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); background: var(--paper); }
.ng-tw__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* Column width is driven per-cell, not by a fixed table min-width: a flat 520px
   squeezed 3-column tables to ~150px a column on a phone, so every cell wrapped
   after two words. Now a 2-column table still fits the screen while wide tables
   scroll inside .ng-tw__scroll with readable columns. */
.ng-tbl { width: 100%; border-collapse: collapse; min-width: 100%; color: var(--paper-txt); background: var(--paper); }
.ng-tbl th, .ng-tbl td { min-width: 130px; }
.ng-tbl caption {
  caption-side: top; text-align: left; padding: 13px 18px;
  background: linear-gradient(90deg, var(--card-2), var(--card));
  color: #fff; font-weight: 800; font-size: .84rem; letter-spacing: .09em; text-transform: uppercase;
  border-bottom: 1px solid var(--line);
}
.ng-tbl th, .ng-tbl td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--paper-2); font-size: .94rem; }
.ng-tbl thead th { background: #dce8e4; color: #062421; font-weight: 800; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.ng-tbl tbody tr:nth-child(even) { background: #eaf2ef; }
.ng-tbl tbody tr:last-child td { border-bottom: 0; }
.ng-tbl tbody th { font-weight: 800; color: #062421; width: 34%; background: #e4ede9; }
.ng-tbl td em, .ng-tbl th em { font-style: italic; }
.ng-tbl .ng-num { font-family: var(--ff-num); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ng-tw__hint { padding: 9px 16px; font-size: .76rem; color: var(--muted); background: var(--card); border-top: 1px solid var(--line); }
@media (min-width: 861px) { .ng-tw__hint { display: none; } }

/* tier pill inside tables */
.ng-tier { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; }
.ng-tier::before { content: ""; width: 11px; height: 11px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.25); }
.ng-tier--copper::before { background: #b4703a; }
.ng-tier--bronze::before { background: #a1663c; }
.ng-tier--silver::before { background: #a9b6bb; }
.ng-tier--gold::before    { background: #e0b13c; }
.ng-tier--ruby::before    { background: #c8324c; }
.ng-tier--sapphire::before{ background: #2f6fd0; }
.ng-tier--diamond::before { background: #6fd8e8; }
.ng-tier--vip::before     { background: linear-gradient(135deg,#f0b429,#ff5a3c); }

/* ── promo banner card ─────────────────────────────────────────────────── */
.ng-banner {
  position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.86fr);
  gap: 0; margin: 6px 0 24px; border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--line); background: linear-gradient(120deg, var(--card-2), var(--ink-3));
}
.ng-banner__body { padding: 26px 26px 26px 28px; display: flex; flex-direction: column; justify-content: center; gap: 13px; }
.ng-banner__k { font-size: .74rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; color: var(--coral); }
.ng-banner__t { font-size: clamp(1.24rem, 2.3vw, 1.66rem); }
.ng-banner__t b { color: var(--gold); }
.ng-banner__p { color: var(--txt-2); font-size: .95rem; margin: 0; }
.ng-banner__pic { position: relative; min-height: 100%; }
.ng-banner__pic img { width: 100%; height: 100%; object-fit: cover; }
.ng-banner--rev { grid-template-columns: minmax(0,.86fr) minmax(0,1fr); }
.ng-banner--rev .ng-banner__pic { order: -1; }
.ng-banner--wide { grid-template-columns: 1fr; }
.ng-banner--wide .ng-banner__pic img { max-height: 260px; }

/* ── FAQ ───────────────────────────────────────────────────────────────── */
.ng-faq { display: flex; flex-direction: column; gap: 10px; }
.ng-q { border: 1px solid var(--line); border-radius: var(--r); background: var(--card); overflow: hidden; }
.ng-q[open] { border-color: rgba(0,168,98,.42); }
.ng-q > summary {
  list-style: none; cursor: pointer; padding: 16px 52px 16px 20px; position: relative;
  font-weight: 800; color: #fff; font-size: 1rem;
}
.ng-q > summary::-webkit-details-marker { display: none; }
.ng-q > summary h3 { display: inline; font-size: inherit; font-weight: inherit; letter-spacing: inherit; }
.ng-q > summary::after {
  content: ""; position: absolute; right: 20px; top: 50%; width: 11px; height: 11px;
  border-right: 2px solid var(--cyan); border-bottom: 2px solid var(--cyan);
  transform: translateY(-70%) rotate(45deg); transition: transform .22s;
}
.ng-q[open] > summary::after { transform: translateY(-30%) rotate(-135deg); }
.ng-q__a { padding: 0 20px 18px; color: var(--txt-2); }

/* ── reviews ───────────────────────────────────────────────────────────── */
.ng-revs { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.ng-rev { position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 22px 22px 20px; }
.ng-rev::before {
  content: "“"; position: absolute; right: 16px; top: -6px;
  font-size: 4.2rem; line-height: 1; color: rgba(33,199,194,.16); font-family: Georgia, serif;
}
.ng-rev__who { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; }
.ng-rev__av {
  width: 40px; height: 40px; flex: none; border-radius: 11px;
  background: linear-gradient(140deg, var(--green), var(--cyan)); color: #03150d;
  display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: .96rem;
}
.ng-rev__n { font-weight: 800; color: #fff; font-size: .97rem; }
/* the name and the city sit in adjacent spans with no whitespace between them in
   the markup, so without this they render glued: "ChineduDAGA LAGOS" */
.ng-rev__c { font-size: .78rem; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; margin-left: 8px; }
.ng-rev__b { color: var(--txt-2); margin: 0; font-size: .95rem; }

/* ── score bars ────────────────────────────────────────────────────────── */
.ng-scores { display: flex; flex-direction: column; gap: 14px; }
.ng-score { display: grid; grid-template-columns: minmax(120px, 190px) 1fr auto; gap: 14px; align-items: center; }
.ng-score__l { font-weight: 700; color: var(--txt-2); font-size: .95rem; }
.ng-score__t { height: 9px; border-radius: 6px; background: var(--ink-3); border: 1px solid var(--line); overflow: hidden; }
.ng-score__f { display: block; height: 100%; width: 0; border-radius: 6px; background: linear-gradient(90deg, var(--green), var(--cyan)); transition: width 1.1s cubic-bezier(.2,.8,.2,1); }
.ng-score__v { font-family: var(--ff-num); font-weight: 900; color: var(--gold); font-variant-numeric: tabular-nums; min-width: 62px; text-align: right; }

.ng-byline { display: flex; align-items: center; gap: 14px; margin-top: 24px; padding: 16px 18px; border-radius: var(--r); background: var(--card); border: 1px solid var(--line); }
.ng-byline__av { width: 46px; height: 46px; flex: none; border-radius: 50%; background: linear-gradient(140deg, var(--gold), var(--coral)); color: #2a1200; display: flex; align-items: center; justify-content: center; font-weight: 900; }
.ng-byline__n { font-weight: 800; color: #fff; }
.ng-byline__r { font-size: .86rem; color: var(--muted); font-style: italic; }

/* ── logo strips ───────────────────────────────────────────────────────── */
.ng-strip-logos { display: flex; flex-wrap: wrap; gap: 10px; }
.ng-strip-logos img {
  height: 26px; width: auto; padding: 9px 14px; border-radius: 10px;
  background: rgba(255,255,255,.055); border: 1px solid var(--line);
  filter: grayscale(1) brightness(1.9); opacity: .78; transition: .2s; box-sizing: content-box;
}
.ng-strip-logos img:hover { filter: none; opacity: 1; }
.ng-paychip {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 15px; border-radius: 10px;
  background: rgba(255,255,255,.05); border: 1px solid var(--line);
  font-size: .86rem; font-weight: 700; color: var(--txt-2);
}
.ng-paychip::before { content: ""; width: 8px; height: 8px; border-radius: 2px; transform: rotate(45deg); background: var(--cyan); }
.ng-paychip--local::before { background: var(--green-2); }

.ng-badges { display: flex; flex-wrap: wrap; gap: 12px; }
.ng-badge {
  display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: var(--r);
  background: var(--card); border: 1px solid var(--line); min-width: 150px;
}
.ng-badge b { color: #fff; font-size: .9rem; }
.ng-badge span:not(:where(.go-link)) { font-size: .74rem; color: var(--muted); letter-spacing: .04em; }

/* ── rail widgets ──────────────────────────────────────────────────────── */
.ng-w { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.ng-w__h {
  display: flex; align-items: center; gap: 9px; padding: 12px 16px;
  background: linear-gradient(90deg, var(--card-2), transparent);
  border-bottom: 1px solid var(--line);
  font-size: .78rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan);
}
.ng-w__h::before { content: ""; width: 8px; height: 8px; background: var(--green-2); transform: rotate(45deg); border-radius: 2px; }
.ng-w__b { padding: 16px; }

.ng-offer { position: relative; text-align: center; background: linear-gradient(170deg, #10322a, var(--card)); }
.ng-offer__k { font-size: .72rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; color: var(--coral); margin-bottom: 6px; }
.ng-offer__v { font-size: 1.78rem; font-weight: 900; color: var(--gold); font-family: var(--ff-num); line-height: 1.1; letter-spacing: -.02em; }
.ng-offer__s { font-size: .9rem; color: var(--txt-2); margin: 6px 0 14px; }
.ng-offer__fine { font-size: .72rem; color: var(--muted); margin-top: 10px; }

@keyframes ngPulse { 0% { box-shadow: 0 0 0 0 rgba(255,90,60,.55); } 70% { box-shadow: 0 0 0 11px rgba(255,90,60,0); } 100% { box-shadow: 0 0 0 0 rgba(255,90,60,0); } }

/* live list — every row is a name lifted from the page's own source copy,
   so the "live" treatment never asserts a figure nobody can verify */
.ng-livelist { list-style: none; margin: 0; padding: 0; }
.ng-livelist li {
  position: relative; padding: 7px 0 7px 21px; font-size: .87rem; color: var(--txt-2);
  border-bottom: 1px dashed var(--line-soft);
}
.ng-livelist li:last-child { border-bottom: 0; }
.ng-livelist li::before {
  content: ""; position: absolute; left: 2px; top: 1.02em; width: 7px; height: 7px; border-radius: 50%;
  background: var(--coral); box-shadow: 0 0 0 0 rgba(255,90,60,.6); animation: ngPulse 2.1s infinite;
}
.ng-livelist li:nth-child(2)::before { animation-delay: .5s; }
.ng-livelist li:nth-child(3)::before { animation-delay: 1s; }
.ng-livelist li:nth-child(4)::before { animation-delay: 1.5s; }
.ng-livelist li:nth-child(5)::before { animation-delay: 2s; }

.ng-toc { list-style: none; margin: 0; padding: 0; max-height: 336px; overflow-y: auto; }
.ng-toc li { margin: 0; }
.ng-toc a {
  display: block; padding: 7px 10px; border-left: 2px solid var(--line);
  color: var(--muted); font-size: .855rem; line-height: 1.4; text-decoration: none; transition: .16s;
}.ng-toc span:where(.go-link){
  display: block; padding: 7px 10px; border-left: 2px solid var(--line);
  color: var(--muted); font-size: .855rem; line-height: 1.4; text-decoration: none; transition: .16s;
}
.ng-toc a:hover { color: var(--txt); border-left-color: var(--cyan); background: rgba(33,199,194,.06); text-decoration: none; }.ng-toc span:where(.go-link):hover{ color: var(--txt); border-left-color: var(--cyan); background: rgba(33,199,194,.06); text-decoration: none; }
.ng-toc a.is-on { color: #fff; border-left-color: var(--green); background: rgba(0,168,98,.1); font-weight: 700; }.ng-toc span:where(.go-link).is-on{ color: #fff; border-left-color: var(--green); background: rgba(0,168,98,.1); font-weight: 700; }

.ng-ladder { list-style: none; margin: 0; padding: 0; }
.ng-ladder li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--line-soft); font-size: .88rem; }
.ng-ladder li:last-child { border-bottom: 0; }
.ng-ladder b { margin-left: auto; font-family: var(--ff-num); color: var(--gold); font-weight: 800; }

/* ── interactive tools ─────────────────────────────────────────────────── */
.ng-tool { border: 1px solid rgba(33,199,194,.35); border-radius: var(--r-lg); background: linear-gradient(165deg, #0b2a27, var(--ink-3)); overflow: hidden; margin: 8px 0 24px; }
.ng-tool__h { display: flex; align-items: center; gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--line); background: rgba(33,199,194,.07); }
.ng-tool__ic { width: 34px; height: 34px; flex: none; border-radius: 10px; background: linear-gradient(140deg, var(--cyan), var(--green)); color: #03150d; display: flex; align-items: center; justify-content: center; font-weight: 900; }
.ng-tool__t { font-size: 1.04rem; font-weight: 900; color: #fff; }
.ng-tool__s { font-size: .8rem; color: var(--muted); }
.ng-tool__b { padding: 22px; }
.ng-tool__row { display: grid; gap: 14px; margin-bottom: 16px; }
.ng-tool__row--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.ng-tool__row--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.ng-tool__row--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.ng-f { display: flex; flex-direction: column; gap: 6px; }
.ng-f > label { font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.ng-f input, .ng-f select {
  padding: 11px 13px; border-radius: 10px; background: #051a18; color: var(--txt);
  border: 1px solid var(--line); font-family: var(--ff-num); font-size: .98rem; width: 100%;
}
.ng-f input:focus, .ng-f select:focus { border-color: var(--cyan); outline: none; }
.ng-out { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 4px; }
.ng-out__c { padding: 14px 16px; border-radius: 12px; background: rgba(0,0,0,.3); border: 1px solid var(--line); }
.ng-out__l { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 4px; }
.ng-out__v { font-family: var(--ff-num); font-size: 1.3rem; font-weight: 900; color: var(--gold); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.ng-out__v--green { color: var(--green-2); }
.ng-out__v--cyan { color: var(--cyan); }
.ng-tool__note { font-size: .78rem; color: var(--muted); margin-top: 14px; }
.ng-verdict { margin-top: 16px; padding: 14px 18px; border-radius: 12px; font-weight: 700; border: 1px solid var(--line); background: rgba(0,0,0,.25); color: var(--txt-2); }
.ng-verdict--ok { border-color: rgba(0,168,98,.45); background: rgba(0,168,98,.1); color: #8ff3bd; }
.ng-verdict--no { border-color: rgba(255,90,60,.45); background: rgba(255,90,60,.1); color: #ffb0a0; }

.ng-seg { display: flex; flex-wrap: wrap; gap: 8px; }
.ng-seg__b { padding: 9px 15px; border-radius: 999px; background: #051a18; border: 1px solid var(--line); color: var(--txt-2); font-size: .85rem; font-weight: 700; transition: .16s; }
.ng-seg__b:hover { border-color: var(--cyan); }
.ng-seg__b.is-on { background: var(--green); border-color: var(--green); color: #03150d; }

/* ── the Lucky X Wheel (octagonal cabinet, left-hand pointer) ──────────── */
.ng-spin-fab {
  position: fixed; right: 22px; bottom: 22px; z-index: 80;
  display: flex; align-items: center; gap: 11px; padding: 10px 18px 10px 11px;
  border: 1px solid rgba(240,180,41,.5); border-radius: 999px;
  background: linear-gradient(120deg, #12302d, #071e1c);
  color: #fff; font-weight: 800; font-size: .88rem; box-shadow: var(--sh-lg);
}
.ng-spin-fab:hover { border-color: var(--gold); }
.ng-spin-fab__d {
  width: 30px; height: 30px; flex: none; border-radius: 9px;
  background: conic-gradient(var(--coral) 0 25%, var(--gold) 0 50%, var(--green) 0 75%, var(--cyan) 0);
  animation: ngRot 7s linear infinite; box-shadow: inset 0 0 0 3px rgba(6,16,15,.75);
}
@keyframes ngRot { to { transform: rotate(360deg); } }

.ng-ov { position: fixed; inset: 0; z-index: 120; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(2,8,8,.86); backdrop-filter: blur(5px); }
.ng-ov.is-open { display: flex; }
.ng-ov__box {
  position: relative; width: 100%; max-width: 452px; max-height: 94vh; overflow-y: auto;
  padding: 30px 26px 26px; border-radius: 24px; text-align: center;
  background: linear-gradient(170deg, #123330, #061513);
  border: 1px solid rgba(240,180,41,.4); box-shadow: var(--sh-lg);
}
.ng-ov__x { position: absolute; right: 12px; top: 10px; width: 34px; height: 34px; border: 0; border-radius: 10px; background: rgba(255,255,255,.07); color: var(--txt); font-size: 1.3rem; line-height: 1; }
.ng-ov__x:hover { background: rgba(255,255,255,.14); }
.ng-ov__t { font-size: 1.3rem; margin-bottom: 4px; }
.ng-ov__t b { color: var(--gold); }
.ng-ov__s { font-size: .84rem; color: var(--muted); margin-bottom: 18px; }

.ng-stage { position: relative; width: 272px; height: 272px; margin: 0 auto 18px; }
/* octagonal cabinet instead of the usual round rim */
.ng-cab {
  position: absolute; inset: -13px;
  background: linear-gradient(140deg, #f0b429, #7a4a08 46%, #f0b429);
  clip-path: polygon(29.3% 0,70.7% 0,100% 29.3%,100% 70.7%,70.7% 100%,29.3% 100%,0 70.7%,0 29.3%);
}
.ng-cab::after {
  content: ""; position: absolute; inset: 7px; background: #08201e;
  clip-path: polygon(29.3% 0,70.7% 0,100% 29.3%,100% 70.7%,70.7% 100%,29.3% 100%,0 70.7%,0 29.3%);
}
.ng-wheel {
  position: absolute; inset: 0; border-radius: 50%; overflow: hidden;
  transition: transform 4.6s cubic-bezier(.13,.72,.13,1);
  box-shadow: inset 0 0 0 4px rgba(6,16,15,.9);
}
.ng-wheel__seg { position: absolute; inset: 0; }
.ng-wheel__lbl {
  position: absolute; left: 50%; top: 50%; transform-origin: 0 0;
  font-size: .68rem; font-weight: 900; letter-spacing: .02em; white-space: nowrap; color: #06100f;
}
.ng-wheel__lbl--lite { color: #f7fffd; }
.ng-hub {
  position: absolute; left: 50%; top: 50%; width: 62px; height: 62px; transform: translate(-50%,-50%);
  border-radius: 16px; background: linear-gradient(140deg, #12302d, #051614);
  border: 2px solid var(--gold); display: flex; align-items: center; justify-content: center; z-index: 3;
}
.ng-hub__x { width: 26px; height: 26px; position: relative; }
.ng-hub__x::before, .ng-hub__x::after { content: ""; position: absolute; left: 50%; top: 0; width: 7px; height: 100%; margin-left: -3.5px; border-radius: 2px; background: var(--cyan); }
.ng-hub__x::before { transform: rotate(45deg); }
.ng-hub__x::after { transform: rotate(-45deg); background: var(--coral); }
/* pointer on the LEFT edge, not the top */
.ng-ptr { position: absolute; left: -25px; top: 50%; transform: translateY(-50%); z-index: 4; width: 0; height: 0; border-top: 13px solid transparent; border-bottom: 13px solid transparent; border-left: 25px solid var(--gold); filter: drop-shadow(0 2px 5px rgba(0,0,0,.55)); }
.ng-ptr::after { content: ""; position: absolute; left: -25px; top: -6px; width: 12px; height: 12px; border-radius: 50%; background: var(--gold); }

.ng-rem { font-size: .82rem; color: var(--muted); margin-bottom: 12px; }
.ng-rem b { color: var(--gold); }
.ng-ov__fine { font-size: .72rem; color: var(--muted); margin-top: 12px; }
.ng-prize { display: none; margin-top: 18px; padding-top: 18px; border-top: 1px dashed var(--line); }
.ng-prize.is-on { display: block; animation: ngPop .42s ease-out; }
@keyframes ngPop { from { opacity: 0; transform: translateY(11px) scale(.96); } to { opacity: 1; transform: none; } }
.ng-prize__ic { font-size: 2.4rem; line-height: 1; }
.ng-prize__t { font-size: 1.14rem; font-weight: 900; color: #fff; margin: 8px 0 4px; }
.ng-prize__v { font-size: 1.36rem; font-weight: 900; color: var(--gold); font-family: var(--ff-num); margin-bottom: 8px; }
.ng-prize__d { font-size: .87rem; color: var(--txt-2); margin-bottom: 15px; }

/* ── footer ────────────────────────────────────────────────────────────── */
.ng-foot { position: relative; background: var(--ink-2); border-top: 1px solid var(--line); padding: 46px 0 26px; overflow: hidden; }
.ng-foot::before { content: ""; position: absolute; inset: 0; background-image: var(--x-green); background-size: 168px 168px; opacity: .28; -webkit-mask-image: linear-gradient(0deg, #000, transparent 70%); mask-image: linear-gradient(0deg, #000, transparent 70%); }
.ng-foot__g { position: relative; display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 32px; margin-bottom: 32px; }
.ng-fcol h3 { font-size: .8rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--cyan); margin-bottom: 14px; }
.ng-fcol a { display: block; padding: 5px 0; color: var(--txt-2); font-size: .92rem; text-decoration: none; }.ng-fcol span:where(.go-link){ display: block; padding: 5px 0; color: var(--txt-2); font-size: .92rem; text-decoration: none; }
.ng-fcol a:hover { color: #fff; text-decoration: none; }.ng-fcol span:where(.go-link):hover{ color: #fff; text-decoration: none; }
.ng-fcol p { font-size: .9rem; color: var(--muted); }
.ng-foot__logo img { height: 40px; width: auto; object-fit: contain; margin-bottom: 14px; }
.ng-foot__bot { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding-top: 22px; border-top: 1px solid var(--line); font-size: .84rem; color: var(--muted); }
.ng-18 {
  display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: none;
  border-radius: 50%; border: 2px solid var(--coral); color: var(--coral); font-weight: 900; font-size: .84rem;
}
.ng-foot__cr { margin-left: auto; }

.ng-top { position: fixed; right: 22px; bottom: 84px; z-index: 79; width: 44px; height: 44px; border-radius: 12px; background: var(--card-2); border: 1px solid var(--line); color: var(--txt); display: none; align-items: center; justify-content: center; }
.ng-top.is-on { display: flex; }
.ng-top:hover { border-color: var(--cyan); }

/* ── bilingual body copy ───────────────────────────────────────────────────
   Hausa is the site's primary language and ships visible in the markup; the
   English sibling is hidden until the reader picks EN. These rules only ever
   ADD display:none, never override an element's own display, so a <tr>, <li>
   or <p> keeps its natural box. If JS never runs, Hausa simply stays on. */
html:not([data-ui="en"]) [data-lang="en"] { display: none; }
html[data-ui="en"] [data-lang="ha"] { display: none; }

/* ── scrollbars ────────────────────────────────────────────────────────────
   The OS default paints a white bar with arrow steppers through the ink panels.
   Firefox takes the standard properties; Blink and WebKit need the pseudo-
   elements. The transparent border plus background-clip:padding-box is what
   makes the thumb read as a slim pill instead of a full-width slab. */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
/* display:none alone did not remove the steppers here; zero the box as well */
::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
::-webkit-scrollbar-corner { background: transparent; }
::-webkit-scrollbar-thumb {
  background: #2a5a54;
  background-clip: padding-box;
  border: 2px solid transparent;
  border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover { background: var(--cyan); background-clip: padding-box; }

.ng-toc::-webkit-scrollbar { width: 8px; }
.ng-toc::-webkit-scrollbar-track { background: rgba(0,0,0,.3); border-radius: 999px; }

/* the tables are light "paper" panels; an ink thumb would disappear on them */
.ng-tw__scroll::-webkit-scrollbar-track { background: var(--paper-2); }
.ng-tw__scroll::-webkit-scrollbar-thumb { background: #9fb4ae; background-clip: padding-box; }
.ng-tw__scroll::-webkit-scrollbar-thumb:hover { background: var(--green); background-clip: padding-box; }

/* Firefox has no scrollbar pseudo-elements, so it needs the standard properties.
   The guard is load-bearing: from Chromium 121 the pseudo-elements are IGNORED on
   any scroller that a standard scrollbar property applies to, which drags the OS
   arrow steppers back in. Firefox does not support ::-webkit-scrollbar, so only
   it reads this block. */
@supports not selector(::-webkit-scrollbar) {
  html { scrollbar-width: thin; scrollbar-color: #2a5a54 transparent; }
  .ng-toc { scrollbar-color: #2a5a54 rgba(0,0,0,.3); }
  .ng-tw__scroll { scrollbar-color: #9fb4ae var(--paper-2); }
}

/* ── reveal (JS-driven so a JS failure never blanks the page) ──────────── */
.ng-rv { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
.ng-rv.is-in { opacity: 1; transform: none; }

/* ── responsive ────────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  :root { --rail: 300px; }
  .ng-nav a { padding: 9px 10px; font-size: .88rem; }.ng-nav span:where(.go-link){ padding: 9px 10px; font-size: .88rem; }
}
@media (max-width: 1040px) {
  .ng-shell { grid-template-columns: minmax(0,1fr); }
  .ng-rail { position: static; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
  .ng-rail .ng-w--toc { display: none; }
}
@media (max-width: 900px) {
  :root { --head-h: 96px; }
  .ng-nav, .ng-head__cta { display: none; }
  .ng-burger { display: flex; }
  .ng-hero__in { grid-template-columns: minmax(0,1fr); gap: 30px; padding-top: 34px; padding-bottom: 44px; }
  .ng-shell { padding-top: 36px; padding-bottom: 56px; }
  .ng-hero__art { order: -1; }
  .ng-banner, .ng-banner--rev { grid-template-columns: minmax(0,1fr); }
  .ng-banner__pic { order: -1; }
  .ng-banner__pic img { max-height: 240px; }
  .ng-revs, .ng-pc, .ng-grid--2, .ng-grid--3, .ng-grid--4 { grid-template-columns: minmax(0,1fr); }
  .ng-tool__row--2, .ng-tool__row--3, .ng-tool__row--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ng-out { grid-template-columns: minmax(0,1fr); }
  .ng-foot__g { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px) {
  :root { --head-h: 92px; }
  body { font-size: 15.5px; }
  .ng-wrap { padding-left: 16px; padding-right: 16px; }
  .ng-tw { margin: 12px 0 28px; }
  .ng-foot { padding-top: 40px; }
  /* wider columns on phones so prose cells stop wrapping every two words */
  .ng-tbl th, .ng-tbl td { min-width: 186px; padding: 12px 14px; }
  .ng-tbl tbody th { min-width: 148px; width: auto; }
  .ng-bar__in { min-height: 58px; }
  .ng-logo img { height: 34px; }
  .ng-strip__txt { display: none; }
  .ng-rail { grid-template-columns: minmax(0,1fr); }
  .ng-score { grid-template-columns: 1fr auto; }
  .ng-score__t { grid-column: 1 / -1; order: 3; }
  .ng-tool__row--2, .ng-tool__row--3, .ng-tool__row--4 { grid-template-columns: minmax(0,1fr); }
  .ng-foot__g { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .ng-foot__cr { margin-left: 0; }
  .ng-stage { width: 236px; height: 236px; }
  .ng-spin-fab span:not(:where(.go-link)):not(.ng-spin-fab__d) { display: none; }
  .ng-spin-fab { padding: 10px; right: 14px; bottom: 14px; }
  .ng-top { right: 14px; bottom: 74px; }
  .ng-banner__body { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  html { scroll-behavior: auto; }
}

@media print {
  .ng-head, .ng-rail, .ng-spin-fab, .ng-top, .ng-ov, .ng-foot { display: none !important; }
  body { background: #fff; color: #000; }
}
