/* =====================================================================
   THEME-DARK — the VB palette applied to the whole customer site.
   Loaded after styles.css on every non-admin page (base.html gates it),
   so admin keeps the light theme untouched.

   Structure: HAND-TUNED CORE first (tokens, ground, forms), then the
   GENERATED section — luminance-mapped overrides for every light-background
   / dark-text rule in styles.css (regenerate via tools/gen_dark_theme.py).
   ===================================================================== */

/* ---------------------------- HAND-TUNED CORE ---------------------------- */

:root {
  --ink: #e8eef7;
  --muted: #9fb0c8;
  --panel: rgba(16, 22, 38, 0.72);
  --border: rgba(158, 212, 255, 0.16);
  --shadow: 0 20px 55px rgba(3, 8, 20, 0.55);
  --success: #4ad39b;
  --error: #ff7a88;
  color-scheme: dark;
}

body {
  color: var(--ink);
  /* same deep radial as the homepage, plus the Heavy accent bloom the
     homepage paints when Heavy is selected (rgba 96,88,220 = vb.js ACCENTS.heavy) */
  background:
    radial-gradient(48% 46% at 50% 32%, rgba(96, 88, 220, 0.15) 0%, rgba(96, 88, 220, 0.04) 46%, rgba(0, 0, 0, 0) 72%),
    radial-gradient(120% 90% at 50% -10%, #0c101e 0%, #07080d 55%, #05060a 100%);
}

/* the light-theme photo wash reads as fog on dark — drop it */
body::before {
  background: none;
}

/* the homepage's dome-light sky, carried sitewide (canvas fed by
   /static/js/dome-light.js; page content sits above at z-index 1+) */
.vb-aurora {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.vb-aurora-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

input, select, textarea {
  color: var(--ink);
  background: rgba(10, 14, 26, 0.8);
  border-color: var(--border);
}

input::placeholder, textarea::placeholder {
  color: rgba(159, 176, 200, 0.65);
}

hr { border-color: var(--border); }

::selection { background: rgba(96, 150, 255, 0.4); }

/* frosted toast on dark glass */
.flash {
  background: rgba(16, 22, 38, 0.92);
  border-color: var(--border);
  color: var(--ink);
}

/* ------------------------------ GENERATED ------------------------------- */
/* =====================================================================
   THEME-DARK: generated overrides mapping the light component library
   onto the VB dark palette. Loaded AFTER styles.css on non-admin pages
   only. Regenerate with tools/gen_dark_theme.py; hand rules live in the
   HAND-TUNED section at the top of this file.
   ===================================================================== */
#gauntlet-status-chip { color: var(--ink); }
#ripbag-open-button { color: var(--ink); }
#ripbag-open-button:disabled { border-color: var(--border); }
#ripbag-open-button[data-busy="true"] { border-color: var(--border); }
.account-balance-copy > span { color: var(--ink); }
.account-balance-copy small { color: var(--ink); }
.account-balance-head { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-balance-head strong { color: var(--ink); }
.account-balance-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.77); background: rgba(16, 22, 38, 0.92); }
.account-balance-panel > p { color: var(--ink); }
.account-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.account-check { color: var(--ink); }
.account-chip { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-chip.is-hit { background: rgba(16, 22, 38, 0.92); }
.account-column-side .account-section-collapse[open] > .account-section-summary .search-rule::after { border-color: var(--border); }
.account-column-side .account-section-head .search-rule-label { color: var(--ink); }
.account-column-side .account-section-summary:focus-visible .search-rule-label { color: var(--ink); }
.account-column-side .account-section-summary:hover .search-rule-label { color: var(--ink); }
.account-command-copy .section-subtitle { color: var(--ink); }
.account-command-copy h1 { color: var(--ink); }
.account-command-hero { border-color: var(--border); }
.account-command-status { background: rgba(16, 22, 38, 0.63); }
.account-command-status span { color: var(--ink); }
.account-command-status strong { color: var(--ink); }
.account-discord-chip.is-linked { color: var(--ink); }
.account-history-filter-select { border-color: var(--border); color: var(--ink); }
.account-history-filter-select:focus { border-color: var(--border); }
.account-hit-history-art { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-hit-history-copy small { color: var(--ink); }
.account-hit-history-copy strong { color: var(--ink); }
.account-hit-history-row { border-color: var(--border); background: rgba(16, 22, 38, 0.72); }
.account-hit-history-value span { color: var(--ink); }
.account-hit-history-value strong { color: var(--ink); }
.account-open-packs-button.va-hero-live-button { border-color: var(--border); }
.account-open-packs-button.va-hero-live-button:focus-visible { border-color: var(--border); }
.account-open-packs-button.va-hero-live-button:hover { border-color: var(--border); }
.account-pack-empty { border-color: var(--border); background: rgba(16, 22, 38, 0.7); }
.account-pack-empty span { color: var(--ink); }
.account-pack-empty strong { color: var(--ink); }
.account-pack-hit-strip span { background: rgba(16, 22, 38, 0.92); }
.account-pack-hit-strip.is-muted span { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.account-pack-studio { border-color: var(--border); background: rgba(16, 22, 38, 0.77); }
.account-pack-summary-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-pack-summary-count span { color: var(--ink); }
.account-pack-summary-count strong { color: var(--ink); }
.account-pack-summary-hits b { color: var(--ink); }
.account-pack-summary-hits span { color: var(--ink); }
.account-pack-summary-main span { color: var(--ink); }
.account-pack-summary-main strong { color: var(--ink); }
.account-proof-link { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-recovery-result { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.account-referral-copy { border-color: var(--border); }
.account-referral-inputgroup { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-referral-link { color: var(--ink); }
.account-referral-panel { background: rgba(16, 22, 38, 0.92); }
.account-referral-stats { border-color: var(--border); }
.account-referral-stats span { color: var(--ink); }
.account-referral-stats strong { color: var(--ink); }
.account-referral-sub { color: var(--ink); }
.account-referral-title { color: var(--ink); }
.account-section-note { color: var(--ink); }
.account-section-summary .search-rule::after { border-color: var(--border); }
.account-section-title { border-color: var(--border); }
.account-section-title h2 { color: var(--ink); }
.account-section-title span { color: var(--ink); }
.account-shell .field-group input { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-shell .field-group input:focus { border-color: var(--border); }
.account-shell .field-group select { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-shell .field-group select:focus { border-color: var(--border); }
.account-shell .search-rule span:last-child { color: var(--ink); }
.account-shipping-link { border-color: var(--border); }
.account-shipping-link:hover { color: var(--ink); border-color: var(--border); }
.account-shipping-row { border-color: var(--border); }
.account-shipping-row small { color: var(--ink); }
.account-shipping-row strong { color: var(--ink); }
.account-snapshot-card { border-color: var(--border); }
.account-snapshot-card small { color: var(--ink); }
.account-snapshot-card span { color: var(--ink); }
.account-snapshot-card strong { color: var(--ink); }
.account-snapshot-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.77); }
.account-stat { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.account-token-history-row { background: rgba(16, 22, 38, 0.75); border-color: var(--border); }
.account-token-history-row small { color: var(--ink); }
.account-token-history-row strong { color: var(--ink); }
.account-topup-form-v2 { border-color: var(--border); }
.account-topup-preset { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.account-topup-preset.is-active { color: var(--ink); border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.account-topup-preset:focus-visible { border-color: var(--border); }
.account-topup-preset:hover { border-color: var(--border); }
.account-topup-presets-wrap > span { color: var(--ink); }
.account-topup-submit { border-color: var(--border); }
.account-topup-submit:focus-visible { border-color: var(--border); }
.account-topup-submit:hover { border-color: var(--border); }
.auth-action-button { border-color: var(--border); }
.auth-action-button:focus-visible { border-color: var(--border); }
.auth-action-button:hover { border-color: var(--border); }
.auth-back-button { color: var(--ink); }
.auth-copy { color: var(--ink); }
.auth-discord-button:focus-visible { border-color: var(--border); }
.auth-discord-button:hover { border-color: var(--border); }
.auth-divider { color: var(--ink); }
.auth-existing-account-note { border-color: var(--border); }
.auth-field-hint { color: var(--ink); }
.auth-footer { color: var(--ink); }
.auth-footer a { color: var(--ink); }
.auth-form input { border-color: var(--border); background: rgba(16, 22, 38, 0.75); }
.auth-google-button { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.auth-google-button:focus-visible { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.auth-google-button:hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.auth-helper-link a { color: var(--ink); }
.auth-marketing-optin { color: var(--ink); }
.brand-button-arcade { color: var(--ink); }
.brand-button-arcade.is-ghost { background: rgba(16, 22, 38, 0.72); }
.brand-button-arcade.is-secondary { color: var(--ink); }
.brand-button-bevel.is-ghost { color: var(--ink); }
.brand-button-bevel.is-secondary { color: var(--ink); }
.brand-button-clip.is-ghost { color: var(--ink); }
.brand-button-clip.is-secondary { color: var(--ink); }
.brand-button-frame { color: var(--ink); }
.brand-button-frame.is-ghost { color: var(--ink); }
.brand-button-frame.is-secondary { color: var(--ink); background: rgba(16, 22, 38, 0.6); }
.brand-button-glass.is-ghost { border-color: var(--border); }
.brand-button-gold { color: var(--ink); }
.brand-button-gold.is-ghost { color: var(--ink); }
.brand-button-gold.is-secondary { color: var(--ink); }
.brand-button-hardcut.is-ghost { color: var(--ink); }
.brand-button-hardcut.is-secondary { color: var(--ink); }
.brand-button-plate.is-ghost { color: var(--ink); }
.brand-button-plate.is-secondary { color: var(--ink); }
.brand-button-ribbon.is-ghost { color: var(--ink); }
.brand-button-ribbon.is-secondary { color: var(--ink); }
.brand-button-signal.is-ghost { color: var(--ink); }
.brand-button-signal.is-secondary { color: var(--ink); }
.brand-button-ticket { color: var(--ink); }
.button-lab-card { background: rgba(16, 22, 38, 0.81); border-color: var(--border); }
.button-lab-hero { border-color: var(--border); }
.button-lab-label { color: var(--ink); }
.card-profile-comp-filter-select { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-comp-row { border-color: var(--border); }
.card-profile-comps-panel { border-color: var(--border); }
.card-profile-hero-stat { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-hero-stat small { color: var(--ink); }
.card-profile-hero-stat span { color: var(--ink); }
.card-profile-hero-stat--psa { border-color: var(--border); }
.card-profile-hero-stat--psa strong { color: var(--ink); }
.card-profile-metric { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-metric-grid { background: rgba(16, 22, 38, 0.92); }
.card-profile-mobile-comps { border-color: var(--border); }
.card-profile-page .card-profile-back-link { color: var(--ink); }
.card-profile-page .card-profile-comp-filter-select { border-color: var(--border); }
.card-profile-page .card-profile-comp-row { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-comp-row-top span { color: var(--ink); }
.card-profile-page .card-profile-comp-row:hover { border-color: var(--border); }
.card-profile-page .card-profile-comps-header > span { color: var(--ink); }
.card-profile-page .card-profile-comps-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.7); }
.card-profile-page .card-profile-ebay-price-group { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-ebay-price-group h3 { border-color: var(--border); color: var(--ink); }
.card-profile-page .card-profile-ebay-price-row small { color: var(--ink); }
.card-profile-page .card-profile-ebay-price-row.is-premium strong { color: var(--ink); }
.card-profile-page .card-profile-image-copy { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.card-profile-page .card-profile-metric { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-metric span { color: var(--ink); }
.card-profile-page .card-profile-metric--premium-grade { background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-metric--premium-grade strong { color: var(--ink); }
.card-profile-page .card-profile-metric--premium-grade:nth-child(2n) { background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-metric--premium-grade:nth-child(3n) { background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-metric:hover { border-color: var(--border); }
.card-profile-page .card-profile-metric:nth-child(2n) { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-metric:nth-child(3n) { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-section { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .card-profile-subtitle { color: var(--ink); }
.card-profile-page .card-profile-tab { color: var(--ink); }
.card-profile-page .card-profile-tab-row { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.card-profile-page .card-profile-tab.is-active { border-color: var(--border); }
.card-profile-page .detail-copy-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .detail-image-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .population-report { border-color: var(--border); }
.card-profile-page .ppt-chart-panel { background: rgba(16, 22, 38, 0.92); }
.card-profile-page .ppt-market-meta-item { background: rgba(16, 22, 38, 0.92); }
.card-profile-page .ppt-market-meta-item span { color: var(--ink); }
.card-profile-page .ppt-market-report { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.card-profile-page .variant-prices { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-profile-page .variant-prices .detail-stat { background: rgba(16, 22, 38, 0.92); }
.card-profile-tab { color: var(--ink); }
.card-profile-tab-row { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.card-profile-tab.is-active { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.card-search2-action-button-primary { border-color: var(--border); }
.card-search2-action-button-primary:focus-visible { border-color: var(--border); }
.card-search2-action-button-primary:hover { border-color: var(--border); }
.card-search2-action-button-secondary { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.card-search2-action-button-secondary:focus-visible { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.card-search2-action-button-secondary:hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.card-search2-guided-toggle:hover { color: var(--ink); }
.card-search2-guided-toggle[aria-pressed="true"] { color: var(--ink); }
.card-search2-set-option { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.card-search2-set-option small { color: var(--ink); }
.card-search2-set-option:hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-search2-set-results { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-search2-smart-copy strong { color: var(--ink); }
.card-search2-smart-empty { background: rgba(16, 22, 38, 0.92); }
.card-search2-smart-option { border-color: var(--border); }
.card-search2-smart-option:hover { border-color: var(--border); }
.card-search2-smart-prices { color: var(--ink); }
.card-search2-smart-results { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-search2-smart-variant { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.card-search2-table-shell { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.card-search2-table-shell .card-table tbody tr + tr td { border-color: var(--border); }
.card-search2-table-shell .card-table tbody tr:hover td { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.card-search2-table-shell .card-table td { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.card-search2-table-shell .card-table td:first-child { border-color: var(--border); }
.card-search2-table-shell .card-table td:last-child { border-color: var(--border); }
.card-search2-table-shell .card-table th { color: var(--ink); }
.card-search2-table-shell .card-table thead th { background: rgba(16, 22, 38, 0.92); }
.card-search2-table-shell .card-thumb { border-color: var(--border); }
.card-table tbody tr + tr td { border-color: var(--border); }
.card-table tbody tr:hover { background: rgba(16, 22, 38, 0.92); }
.card-table th { color: var(--ink); }
.card-table thead { background: rgba(16, 22, 38, 0.92); }
.card-thumb { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.cb-arrow { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.cb-badge { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.cb-builder { border-color: var(--border); }
.cb-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.cb-card-art { background: rgba(16, 22, 38, 0.92); }
.cb-card-name { color: var(--ink); }
.cb-card-num { color: var(--ink); }
.cb-card-rarity[data-rarity="Mega Hyper Rare"] { color: var(--ink); }
.cb-card-rate { color: var(--ink); }
.cb-card.is-selected { border-color: var(--border); }
.cb-card:hover { border-color: var(--border); }
.cb-count { color: var(--ink); }
.cb-savings { color: var(--ink); }
.cb-savings.is-more { color: var(--ink); }
.cb-sub { color: var(--ink); }
.cb-title { color: var(--ink); }
.chase-card { background: rgba(16, 22, 38, 0.92); }
.chase-card-cta:hover { color: var(--ink); }
.chasers-action-status a { color: var(--ink); }
.chasers-action-status a:hover { color: var(--ink); }
.chasers-action-status.is-error { border-color: var(--border); }
.chasers-apply-dock-button { border-color: var(--border); }
.chasers-apply-dock-button:focus-visible { border-color: var(--border); }
.chasers-apply-dock-button:hover { border-color: var(--border); }
.chasers-auto-rip-button { border-color: var(--border); background: rgba(16, 22, 38, 0.75); color: var(--ink); }
.chasers-auto-rip-button.is-active { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-auto-rip-button:focus-visible { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-auto-rip-button:hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-bulk-flyer::after { background: rgba(16, 22, 38, 0.92); }
.chasers-bulk-flyer::before { background: rgba(16, 22, 38, 0.92); }
.chasers-bulk-side-button { border-color: var(--border); }
.chasers-bulk-side-button:hover { border-color: var(--border); }
.chasers-bulk-side-card .chasers-rip-info-secondary-value { color: var(--ink); }
.chasers-bulk-side-note { color: var(--ink); }
.chasers-card-face { border-color: var(--border); }
.chasers-card-meta strong { color: var(--ink); }
.chasers-choice-card { border-color: var(--border); background: rgba(16, 22, 38, 0.75); }
.chasers-choice-card-facts-disabled .chasers-choice-card-odds { color: var(--ink); }
.chasers-choice-card-facts-disabled .chasers-choice-card-surcharge { color: var(--ink); }
.chasers-choice-card-meta > small { color: var(--ink); }
.chasers-choice-card-number { color: var(--ink); }
.chasers-choice-card-odds { color: var(--ink); }
.chasers-choice-card-price-lines small { color: var(--ink); }
.chasers-choice-card-price-lines small span { color: var(--ink); }
.chasers-choice-card-price-lines small strong { color: var(--ink); }
.chasers-choice-card-price-lines small:last-child strong { color: var(--ink); }
.chasers-choice-card.is-selected { border-color: var(--border); background: rgba(16, 22, 38, 0.75); }
.chasers-choice-card:hover { border-color: var(--border); }
.chasers-cinematic-caption-title { color: var(--ink); }
.chasers-config-panel { border-color: var(--border); }
.chasers-cost-bar { border-color: var(--border); }
.chasers-cost-bar span { color: var(--ink); }
.chasers-cost-bar strong { color: var(--ink); }
.chasers-credit-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.75); }
.chasers-credit-panel-bulk { border-color: var(--border); }
.chasers-credit-panel-bulk-copy span { color: var(--ink); }
.chasers-credit-panel-bulk-copy strong { color: var(--ink); }
.chasers-credit-panel-bulk-note { color: var(--ink); }
.chasers-credit-panel-button.is-account { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-credit-panel-button.is-account:hover { background: rgba(16, 22, 38, 0.92); border-color: var(--border); color: var(--ink); }
.chasers-credit-panel-button.is-vault { border-color: var(--border); }
.chasers-credit-panel-button.is-vault:hover { border-color: var(--border); }
.chasers-credit-panel-copy strong { color: var(--ink); }
.chasers-credit-panel.is-balance-down .chasers-credit-panel-copy strong { color: var(--ink); }
.chasers-credit-panel.is-balance-down [data-credit-panel-balance-mobile] { color: var(--ink); }
.chasers-credit-panel.is-balance-down [data-credit-panel-balance] { color: var(--ink); }
.chasers-credit-panel.is-empty { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-dropdown-panel { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.chasers-entry-modal-action { border-color: var(--border); }
.chasers-entry-modal-action.is-live { border-color: var(--border); }
.chasers-entry-modal-action.is-simulation { border-color: var(--border); }
.chasers-entry-modal-card { border-color: var(--border); }
.chasers-entry-modal-close { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-entry-modal-close:hover { color: var(--ink); border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-entry-modal-copy p { color: var(--ink); }
.chasers-guide-panel h3 { color: var(--ink); }
.chasers-guide-points li { color: var(--ink); }
.chasers-hero-balance { border-color: var(--border); background: rgba(16, 22, 38, 0.72); }
.chasers-hero-balance span { color: var(--ink); }
.chasers-hero-balance strong { color: var(--ink); }
.chasers-hit-badge { background: rgba(16, 22, 38, 0.92); color: var(--ink); border-color: var(--border); }
.chasers-hit-banner { color: var(--ink); }
.chasers-hit-banner.is-muted { border-color: var(--border); color: var(--ink); }
.chasers-hit-price { background: rgba(16, 22, 38, 0.92); border-color: var(--border); color: var(--ink); }
.chasers-hit-summary { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-hit-summary-label { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-hit-summary-nav { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-inline-status a { color: var(--ink); }
.chasers-inline-status a:hover { color: var(--ink); }
.chasers-live-guide-ack { border-color: var(--border); background: rgba(16, 22, 38, 0.79); color: var(--ink); }
.chasers-live-guide-button { border-color: var(--border); }
.chasers-live-guide-button.is-secondary { border-color: var(--border); }
.chasers-live-guide-button[data-live-guide-mode="live"] { border-color: var(--border); }
.chasers-live-guide-modal-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.chasers-live-guide-modal-card p { color: var(--ink); }
.chasers-live-guide-modal-card strong { color: var(--ink); }
.chasers-mobile-rarity-summary > strong { color: var(--ink); }
.chasers-mobile-selection-price { color: var(--ink); }
.chasers-mode-toggle [data-mode-value="live"].is-active { border-color: var(--border); }
.chasers-mode-toggle [data-mode-value="simulation"].is-active { border-color: var(--border); }
.chasers-option-card { border-color: var(--border); background: rgba(16, 22, 38, 0.79); }
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-card-edge-cut span::after { background: rgba(16, 22, 38, 0.92); }
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-card-edge-cut span::before { background: rgba(16, 22, 38, 0.92); }
.chasers-pack-rip-corner-mark::after { background: rgba(16, 22, 38, 0.92); }
.chasers-picker-action { border-color: var(--border); color: var(--ink); }
.chasers-picker-intro { color: var(--ink); }
.chasers-picker-intro span { color: var(--ink); }
.chasers-picker-search input { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-picker-search input:focus { border-color: var(--border); }
.chasers-picker-toolbar .chasers-picker-action { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-picker-toolbar .chasers-picker-action.is-active { border-color: var(--border); }
.chasers-picker-toolbar .chasers-picker-action.is-active::before { background: rgba(16, 22, 38, 0.92); }
.chasers-picker-toolbar .chasers-picker-action:focus-visible { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.chasers-picker-toolbar .chasers-picker-action:hover { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.chasers-pricing-card { border-color: var(--border); }
.chasers-pricing-inline { background: rgba(16, 22, 38, 0.72); border-color: var(--border); }
.chasers-rarity-odds-chip + .chasers-rarity-odds-chip::before { color: var(--ink); }
.chasers-reveal-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-reveal-card.is-chase { border-color: var(--border); }
.chasers-reveal-card.is-hit-arming .chasers-card-face-back { border-color: var(--border); }
.chasers-reveal-card.is-hit-live.is-boom .chasers-card-face-front { border-color: var(--border); }
.chasers-reveal-card.is-hit-live.is-vaulted .chasers-card-face-front { border-color: var(--border); }
.chasers-rip-info-secondary-value { color: var(--ink); }
.chasers-rip-mobile-meta { color: var(--ink); }
.chasers-rip-mobile-meta-odds > strong { color: var(--ink); }
.chasers-rip-mobile-meta-price { color: var(--ink); }
.chasers-rip-mode .chasers-mode-toggle { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-rip-mode .chasers-picker-action { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-rip-mode .chasers-picker-action:hover { color: var(--ink); background: rgba(16, 22, 38, 0.92); }
.chasers-rip-mode [data-mode-value="live"].is-active { border-color: var(--border); }
.chasers-rip-mode [data-mode-value="simulation"].is-active { border-color: var(--border); }
.chasers-selected-review-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-selected-review-copy strong { color: var(--ink); }
.chasers-selected-review-remove { border-color: var(--border); }
.chasers-selected-strip-nav { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-selected-strip-stage { background: rgba(16, 22, 38, 0.7); border-color: var(--border); }
.chasers-selected-thumb { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-selection-balance strong { color: var(--ink); }
.chasers-selection-clear { color: var(--ink); }
.chasers-selection-dock { border-color: var(--border); }
.chasers-selection-dock.is-ready { border-color: var(--border); }
.chasers-selection-utility .chasers-inline-status { border-color: var(--border); background: rgba(16, 22, 38, 0.77); }
.chasers-selection-utility .chasers-inline-status.is-error { border-color: var(--border); }
.chasers-selection-utility-mode .chasers-mode-toggle { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-selection-utility-mode .chasers-picker-action { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-selection-utility-mode .chasers-picker-action:hover { color: var(--ink); background: rgba(16, 22, 38, 0.92); }
.chasers-selection-utility-mode [data-mode-value="live"].is-active { border-color: var(--border); }
.chasers-selection-utility-mode [data-mode-value="simulation"].is-active { border-color: var(--border); }
.chasers-selection-utility-stat strong { color: var(--ink); }
.chasers-set-card { background: rgba(16, 22, 38, 0.66); border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .cb-select { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .cb-select-title { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .cb-top-details .cb-count { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .cb-top-details .cb-status { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .cb-top-details .cb-sub { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .cb-top-name { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-copy p { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-copy-top .va-hero-choice a { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-copy-top .va-hero-choice a:focus-visible { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-copy-top .va-hero-choice a:hover { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-copy-top span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-live-button { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-hero-live-button:focus-visible { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-hero-live-button:hover { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-hero-nm-mark strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-proof-copy span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-proof-copy strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-proof-icon { background: rgba(16, 22, 38, 0.92); color: var(--ink); border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-hero-side-proof { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-side-proof-condition .va-hero-proof-copy strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-side-proof-discord .va-hero-proof-copy strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-side-proof-tiktok .va-hero-proof-copy strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-hero-side-proof-tiktok .va-hero-proof-icon { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-bulk { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-bulk::before { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-desc { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-name { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-stat { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-stat b { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-stat small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-stat:nth-child(1) b { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-stat:nth-child(3) b { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-detail-stats { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-frame { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-pack-frame-title { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-pack-view .va-pack-product-contents { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-belt-label { color: var(--ink); border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-belt-label small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-belt-label strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-bulk-stack span { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card { color: var(--ink); border-color: var(--border); background: rgba(16, 22, 38, 0.55); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card-meta .va-pack-product-card-rate { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card-meta span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card.is-active { border-color: var(--border); background: rgba(16, 22, 38, 0.63); background: rgba(16, 22, 38, 0.66); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card.is-active .va-pack-product-belt-label { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card.is-active .va-pack-product-belt-label em { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card.is-active .va-pack-product-belt-label small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card.is-active .va-pack-product-belt-label strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card.is-next { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card.is-prev { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card:focus-visible { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card:hover { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card[data-pack-position="-2"] { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card[data-pack-position="-3"] { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card[data-pack-position="-4"] { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card[data-pack-position="2"] { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-card[data-pack-position="3"] { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-content-card strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-contents { background: rgba(16, 22, 38, 0.7); border-color: var(--border); background: rgba(16, 22, 38, 0.66); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-contents-arrows button { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-contents-head > span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-copy strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-custom-card { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-custom-card::after { background: rgba(16, 22, 38, 0.57); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-custom-card:focus-visible::after { background: rgba(16, 22, 38, 0.66); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-custom-card:hover::after { background: rgba(16, 22, 38, 0.66); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-custom-close { background: rgba(16, 22, 38, 0.79); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-custom-copy strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-explainer-main { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-explainer-steps b { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-explainer-steps small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-explainer-steps span { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-explainer-steps strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-head h2 { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-head p { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-how-callout { border-color: var(--border); background: rgba(16, 22, 38, 0.55); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-how-callout b { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-how-callout strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-menu [data-va-pack-menu-price] { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-menu button { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-menu button.is-active { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-menu button.is-active [data-va-pack-menu-price] { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-menu button:focus-visible { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-menu button:hover { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-menu-label { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-nav { border-color: var(--border); background: rgba(16, 22, 38, 0.75); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-nav:focus-visible { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-nav:hover { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next b { border-color: var(--border); background: rgba(16, 22, 38, 0.66); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next:focus-visible { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next:focus-visible b { border-color: var(--border); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next:focus-visible span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next:hover { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next:hover b { border-color: var(--border); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-next:hover span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-price-strip .is-market-price strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-price-strip > span { border-color: var(--border); background: rgba(16, 22, 38, 0.68); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-price-strip small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-price-strip span:first-child strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-price-strip span:last-child strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-price-strip strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rail-title { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rail-title span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rarity-rates { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rarity-rates summary { border-color: var(--border); background: rgba(16, 22, 38, 0.79); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rarity-rates summary::after { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip-main { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip-main:focus-visible { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip-main:hover { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main) b { border-color: var(--border); background: rgba(16, 22, 38, 0.66); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main) span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main):focus-visible { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main):focus-visible b { border-color: var(--border); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main):focus-visible span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main):hover { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main):hover b { border-color: var(--border); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-rip:not(.va-pack-product-rip-main):hover span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-selected { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-selected small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-selected span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-selected strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-shelf { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-shelf.is-custom-pack-selected .va-pack-detail-desc { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-shelf.is-custom-pack-selected .va-pack-product-custom-card::after { background: rgba(16, 22, 38, 0.72); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-summary-logo { border-color: var(--border); background: rgba(16, 22, 38, 0.61); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-summary-stat { border-color: var(--border); background: rgba(16, 22, 38, 0.61); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-summary-stat b { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-summary-stat small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-summary-stat strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-summary-stat.is-pack-price strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-product-summary-stat.is-pack-savings strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-rates-chips .va-pack-rarity-rate-chip b { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-rates-chips .va-pack-rarity-rate-chip em { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-rates-label { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-switcher-arrow { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-switcher-name { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-switcher-tab { border-color: var(--border); background: rgba(16, 22, 38, 0.61); }
.chasers-shell[data-homepage-variant="a"] .va-pack-switcher-tab.is-active { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-pack-switcher-tab.is-active .va-pack-switcher-name { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-pack-switcher-tab:hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-party-pitch-cta { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-card { border-color: var(--border); background: rgba(16, 22, 38, 0.79); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-card-copy small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-card-copy strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-card-copy strong span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-card-prices small { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-card.is-selected { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-target-card:focus-visible { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-card:hover { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-picker h2 { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-presets .chasers-picker-action { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-target-presets .chasers-picker-action.is-active { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-presets .chasers-picker-action.is-active::before { background: rgba(16, 22, 38, 0.92); }
.chasers-shell[data-homepage-variant="a"] .va-target-presets .chasers-picker-action:focus-visible { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-presets .chasers-picker-action:hover { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-price span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-price strong { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-rail-arrow { border-color: var(--border); color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-rail::-webkit-scrollbar-track { background: rgba(16, 22, 38, 0.75); }
.chasers-shell[data-homepage-variant="a"] .va-target-rip-button { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-rip-button:focus-visible { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-rip-button:hover { border-color: var(--border); }
.chasers-shell[data-homepage-variant="a"] .va-target-savings span { color: var(--ink); }
.chasers-shell[data-homepage-variant="a"] .va-target-savings strong { color: var(--ink); }
.chasers-stage-slider-shell { background: rgba(16, 22, 38, 0.92); }
.chasers-stage-slider-shell .chasers-hit-action-confirm { background: rgba(16, 22, 38, 0.92); }
.chasers-surprise-toggle { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-surprise-toggle input { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-surprise-toggle-copy small { color: var(--ink); }
.chasers-topup-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-topup-cart-info strong { color: var(--ink); }
.chasers-topup-cartitem { border-color: var(--border); }
.chasers-topup-close { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.chasers-topup-close:focus-visible { border-color: var(--border); color: var(--ink); }
.chasers-topup-close:hover { border-color: var(--border); color: var(--ink); }
.chasers-topup-copy p { color: var(--ink); }
.chasers-topup-field input { color: var(--ink); }
.chasers-topup-head strong { color: var(--ink); }
.chasers-topup-iab-tip { background: rgba(16, 22, 38, 0.92); }
.chasers-topup-iab-tip strong { color: var(--ink); }
.chasers-topup-input-wrap { background: rgba(16, 22, 38, 0.92); }
.chasers-topup-input-wrap:focus-within { border-color: var(--border); }
.chasers-topup-mode.is-active { color: var(--ink); background: rgba(16, 22, 38, 0.92); }
.chasers-topup-modes { background: rgba(16, 22, 38, 0.92); }
.chasers-topup-preset { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.chasers-topup-preset.is-active { border-color: var(--border); }
.chasers-topup-q { color: var(--ink); }
.chasers-topup-qty { color: var(--ink); }
.chasers-topup-qty:focus { color: var(--ink); }
.chasers-topup-receipt strong { color: var(--ink); }
.chasers-topup-region { background: rgba(16, 22, 38, 0.92); }
.chasers-topup-step { color: var(--ink); background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.chasers-topup-summary { background: rgba(16, 22, 38, 0.92); }
.chasers-topup-summary-row strong { color: var(--ink); }
.chasers-topup-summary-row.is-total span { color: var(--ink); }
.checkout-country-warning { border-color: var(--border); color: var(--ink); }
.credit-balance-trigger:focus-visible { background: rgba(16, 22, 38, 0.79); }
.credit-balance-trigger:hover { background: rgba(16, 22, 38, 0.79); }
.credit-balance-value.is-zero { color: var(--ink); }
.daily-refresh-badge { border-color: var(--border); }
.daily-refresh-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.daily-refresh-mini-stat { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.daily-refresh-sidecard { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.daily-refresh-stage-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.daily-refresh-stage-card[data-stage-status="completed"] { background: rgba(16, 22, 38, 0.92); }
.daily-refresh-stage-card[data-stage-status="failed"] { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.daily-refresh-stage-card[data-stage-status="running"] { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.dashboard-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.dashboard-card-image img { border-color: var(--border); }
.dashboard-card-result { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.dashboard-card-result:hover { border-color: var(--border); }
.deposit-success-card h2 { color: var(--ink); }
.deposit-success-close:hover { color: var(--ink); }
.deposit-success-discord-btn { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.detail-chart-panel { background: rgba(16, 22, 38, 0.92); }
.detail-copy-panel { background: rgba(16, 22, 38, 0.92); }
.detail-image-panel { background: rgba(16, 22, 38, 0.92); }
.detail-image-placeholder { border-color: var(--border); }
.detail-stat { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.discord-credit-cta:focus-visible { border-color: var(--border); }
.discord-credit-cta:hover { border-color: var(--border); }
.discord-promo-button { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.featured-chases.is-hover-ready .chase-card:hover { border-color: var(--border); }
.field-checkbox { color: var(--ink); }
.field-group input { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.field-group input:hover { border-color: var(--border); }
.field-group label { color: var(--ink); }
.field-group select:hover { border-color: var(--border); }
.field-group textarea { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.first-deposit-bonus-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.first-deposit-bonus-copy small { color: var(--ink); }
.first-deposit-bonus-preview .is-bonus { background: rgba(16, 22, 38, 0.92); }
.first-deposit-bonus-preview .is-total { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.first-deposit-bonus-preview .is-total strong { color: var(--ink); }
.first-deposit-bonus-preview > div { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.first-deposit-bonus-preview span { color: var(--ink); }
.flash { background: rgba(16, 22, 38, 0.92); }
.flash.error { border-color: var(--border); }
.gauntlet-attack-status { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.gauntlet-battle-log p { color: var(--ink); }
.gauntlet-battle-log p.is-emphasis { color: var(--ink); }
.gauntlet-bracket-node { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.gauntlet-bracket-node[data-state="lost"] { border-color: var(--border); }
.gauntlet-bracket-node[data-state="won"] { color: var(--ink); }
.gauntlet-fighter-card { border-color: var(--border); }
.gauntlet-log-details { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.gauntlet-speed-button { color: var(--ink); }
.gauntlet-speed-button:hover { color: var(--ink); }
.gauntlet-start-button.is-passive { color: var(--ink); }
.gauntlet-summary-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.gauntlet-summary-card-highlight { border-color: var(--border); }
.gauntlet-team-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.gauntlet-topup-panel { border-color: var(--border); }
.ghost-button { color: var(--ink); background: rgba(16, 22, 38, 0.81); }
.ghost-button:hover { background: rgba(16, 22, 38, 0.92); }
.home3-analytics-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-analytics-card small { color: var(--ink); }
.home3-analytics-card span { color: var(--ink); }
.home3-analytics-card strong { color: var(--ink); }
.home3-card-preview { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-card-preview em { color: var(--ink); }
.home3-card-preview span { color: var(--ink); }
.home3-card-preview strong { color: var(--ink); }
.home3-chase-explainer-copy { border-color: var(--border); }
.home3-chase-explainer-copy-arrow { border-color: var(--border); }
.home3-chase-explainer-copy-block + .home3-chase-explainer-copy-block { border-color: var(--border); }
.home3-chase-explainer-copy-block[open] .home3-chase-explainer-copy-arrow { border-color: var(--border); }
.home3-chase-explainer-copy-content p { color: var(--ink); }
.home3-chase-explainer-copy-kicker { color: var(--ink); }
.home3-chase-explainer-how-content p { color: var(--ink); }
.home3-chase-explainer-how-item > span { color: var(--ink); }
.home3-chase-explainer-pullrate-card { border-color: var(--border); }
.home3-chase-explainer-pullrate-card span { color: var(--ink); }
.home3-chase-explainer-pullrate-card strong { color: var(--ink); }
.home3-chase-explainer-pullrate-row { border-color: var(--border); }
.home3-chase-explainer-pullrate-row b { color: var(--ink); }
.home3-chase-explainer-pullrate-row b em { color: var(--ink); }
.home3-chase-explainer-pullrate-row small { color: var(--ink); }
.home3-chase-explainer-pullrate-row span { color: var(--ink); }
.home3-chase-explainer-summary-copy strong { color: var(--ink); }
.home3-chase-explainer-toggle-arrow { border-color: var(--border); }
.home3-chase-proof-tag { color: var(--ink); }
.home3-chase-ticker { background: rgba(16, 22, 38, 0.92); }
.home3-chase-ticker.home3-ticker { background: rgba(16, 22, 38, 0.92); }
.home3-compare-card { border-color: var(--border); }
.home3-detail-card { background: rgba(16, 22, 38, 0.66); border-color: var(--border); }
.home3-detail-card p { color: var(--ink); }
.home3-detail-card strong { color: var(--ink); }
.home3-fair-copy p { color: var(--ink); }
.home3-fair-copy strong { color: var(--ink); }
.home3-fair-details-shell { border-color: var(--border); }
.home3-faq-answer p { color: var(--ink); }
.home3-faq-arrow { border-color: var(--border); }
.home3-faq-item[open] .home3-faq-arrow { border-color: var(--border); }
.home3-faq-summary span:first-child { color: var(--ink); }
.home3-featured-chases-cta.chasers-apply-dock-button { border-color: var(--border); }
.home3-featured-chases-cta.chasers-apply-dock-button:focus-visible { border-color: var(--border); }
.home3-featured-chases-cta.chasers-apply-dock-button:hover { border-color: var(--border); }
.home3-flow-item + .home3-flow-item { border-color: var(--border); }
.home3-flow-item small { color: var(--ink); }
.home3-flow-item span { color: var(--ink); }
.home3-flow-item strong { color: var(--ink); }
.home3-flow-strip { border-color: var(--border); }
.home3-hero h1 { color: var(--ink); }
.home3-hero-banner-cta-button { color: var(--ink); }
.home3-hero-banner-cta-button:hover { color: var(--ink); }
.home3-hero-caption { color: var(--ink); }
.home3-inline-points span { background: rgba(16, 22, 38, 0.75); border-color: var(--border); color: var(--ink); }
.home3-insights-demo-head span { color: var(--ink); }
.home3-insights-demo-head strong { color: var(--ink); }
.home3-insights-demo-tabs span { background: rgba(16, 22, 38, 0.79); color: var(--ink); }
.home3-insights-visual { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-kicker { color: var(--ink); }
.home3-pack-fan-card span { background: rgba(16, 22, 38, 0.92); border-color: var(--border); color: var(--ink); }
.home3-pack-summary h2 { color: var(--ink); }
.home3-pack-summary h2 span { color: var(--ink); border-color: var(--border); }
.home3-pack-summary p { color: var(--ink); }
.home3-panel-copy h3 { color: var(--ink); }
.home3-panel-copy p { color: var(--ink); }
.home3-platform-card { border-color: var(--border); }
.home3-platform-card span { color: var(--ink); }
.home3-platform-card strong { color: var(--ink); }
.home3-platform-card-fan { background: rgba(16, 22, 38, 0.92); }
.home3-platform-insights-head span { color: var(--ink); }
.home3-platform-note { color: var(--ink); }
.home3-platform-search-bar { background: rgba(16, 22, 38, 0.92); border-color: var(--border); color: var(--ink); }
.home3-platform-search-bar span { color: var(--ink); }
.home3-platform-search-bar strong { color: var(--ink); }
.home3-platform-search-card { border-color: var(--border); }
.home3-platform-search-copy small { color: var(--ink); }
.home3-platform-search-copy span { color: var(--ink); }
.home3-platform-search-copy strong { color: var(--ink); }
.home3-platform-visual { background: rgba(16, 22, 38, 0.75); border-color: var(--border); }
.home3-points { color: var(--ink); }
.home3-recent-hit-art { background: rgba(16, 22, 38, 0.92); }
.home3-recent-hit-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-recent-hit-card.is-major { border-color: var(--border); }
.home3-recent-hit-info > small { color: var(--ink); }
.home3-recent-hit-info time { color: var(--ink); }
.home3-recent-hit-meta b { color: var(--ink); }
.home3-recent-hit-meta span { color: var(--ink); }
.home3-recent-hit-stats em { color: var(--ink); }
.home3-recent-hit-stats span { background: rgba(16, 22, 38, 0.92); }
.home3-recent-hits-empty { color: var(--ink); }
.home3-recent-hits-head > strong { color: var(--ink); }
.home3-recent-hits-window { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.home3-rip-caption { background: rgba(16, 22, 38, 0.79); border-color: var(--border); }
.home3-rip-caption small { color: var(--ink); }
.home3-rip-caption strong { color: var(--ink); }
.home3-rip-section-head h4 { color: var(--ink); }
.home3-rip-section-head p { color: var(--ink); }
.home3-rip-slot { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-rip-stage { border-color: var(--border); }
.home3-rtyh-band { background: rgba(16, 22, 38, 0.92); }
.home3-rtyh-cta { border-color: var(--border); }
.home3-rtyh-head-copy > strong { color: var(--ink); }
.home3-rtyh-hero-card { background: rgba(16, 22, 38, 0.92); }
.home3-rtyh-mini-rail figcaption span { color: var(--ink); }
.home3-rtyh-mini-rail figcaption strong { color: var(--ink); }
.home3-rtyh-mini-rail img { background: rgba(16, 22, 38, 0.92); }
.home3-rtyh-stage-note { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-rtyh-stage-note span { color: var(--ink); }
.home3-rtyh-tier { background: rgba(16, 22, 38, 0.92); }
.home3-rtyh-tier-discount { color: var(--ink); }
.home3-rtyh-tier-discount b { color: var(--ink); }
.home3-rtyh-tier-discount s { color: var(--ink); }
.home3-rtyh-tier-ir_plus { border-color: var(--border); }
.home3-rtyh-tier-ir_plus:hover { border-color: var(--border); }
.home3-rtyh-tier-link { border-color: var(--border); }
.home3-rtyh-tier-main > span { color: var(--ink); }
.home3-rtyh-tier-main p { color: var(--ink); }
.home3-rtyh-tier-price { border-color: var(--border); }
.home3-rtyh-tier-price span { color: var(--ink); }
.home3-rtyh-tier-price strong { color: var(--ink); }
.home3-rtyh-tier-stats b { color: var(--ink); }
.home3-rtyh-tier-stats span { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.home3-rtyh-tier:focus-visible { border-color: var(--border); }
.home3-rtyh-tier:hover { border-color: var(--border); }
.home3-scroll-line { border-color: var(--border); }
.home3-scroll-line span { color: var(--ink); }
.home3-scroll-line strong { color: var(--ink); }
.home3-search-demo { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-search-demo-bar { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-search-demo-copy em { color: var(--ink); }
.home3-search-demo-copy strong { color: var(--ink); }
.home3-search-demo-copy strong span { color: var(--ink); }
.home3-search-demo-input { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-search-demo-input span { color: var(--ink); }
.home3-search-demo-input strong { color: var(--ink); }
.home3-search-demo-label { color: var(--ink); }
.home3-search-demo-metric { border-color: var(--border); }
.home3-search-demo-metric span { color: var(--ink); }
.home3-search-demo-metric strong { color: var(--ink); }
.home3-search-demo-mini span { background: rgba(16, 22, 38, 0.81); color: var(--ink); }
.home3-search-demo-pop-row span { color: var(--ink); }
.home3-search-demo-pop-row strong { color: var(--ink); }
.home3-search-demo-sale { border-color: var(--border); }
.home3-search-demo-sale p { color: var(--ink); }
.home3-search-demo-sale small { color: var(--ink); }
.home3-search-demo-sale-top span { color: var(--ink); }
.home3-search-demo-sale-top strong { color: var(--ink); }
.home3-search-demo-section { border-color: var(--border); }
.home3-search-demo-section-label { color: var(--ink); }
.home3-search-demo-section-pop { border-color: var(--border); }
.home3-search-list-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-search-list-copy small { color: var(--ink); }
.home3-search-list-copy span { color: var(--ink); }
.home3-search-list-copy strong { color: var(--ink); }
.home3-section-label { color: var(--ink); }
.home3-social-copy strong { color: var(--ink); }
.home3-social-link { border-color: var(--border); color: var(--ink); }
.home3-social-link b { color: var(--ink); }
.home3-social-link small { color: var(--ink); }
.home3-social-link:focus-visible { border-color: var(--border); }
.home3-social-link:hover { border-color: var(--border); }
.home3-spotlight-card { border-color: var(--border); }
.home3-spotlight-card small { color: var(--ink); }
.home3-spotlight-card span { color: var(--ink); }
.home3-spotlight-card strong { color: var(--ink); }
.home3-subtitle { color: var(--ink); }
.home3-toggle { border-color: var(--border); background: rgba(16, 22, 38, 0.66); color: var(--ink); }
.home3-toggle.is-active { background: rgba(16, 22, 38, 0.66); color: var(--ink); }
.home3-toggle:hover { border-color: var(--border); }
.home3-vault-copy p { color: var(--ink); }
.home3-vault-copy strong { color: var(--ink); }
.home3-vault-modal-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-vault-modal-card p { color: var(--ink); }
.home3-vault-modal-card strong { color: var(--ink); }
.home3-vault-modal-close { color: var(--ink); }
.home3-vault-modal-kicker { color: var(--ink); }
.home3-vault-modal-points div { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.home3-vault-modal-points span { color: var(--ink); }
.homepage-live-prompt-card { border-color: var(--border); }
.homepage-live-prompt-card p { color: var(--ink); }
.homepage-live-prompt-card strong { color: var(--ink); }
.homepage-live-prompt-highlight { color: var(--ink); }
.homepage-live-prompt-kicker { color: var(--ink); }
.homepage-live-prompt-later { border-color: var(--border); color: var(--ink); background: rgba(16, 22, 38, 0.77); }
.homepage-live-prompt-live { border-color: var(--border); }
.homepage-live-prompt-live:focus-visible { border-color: var(--border); }
.homepage-live-prompt-live:hover { border-color: var(--border); }
.insight-panel { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insight-panel--analytics { border-color: var(--border); }
.insight-table-name { color: var(--ink); }
.insight-table-shell { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insight-table-shell .card-table { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .card-table td:first-child { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .card-table td:nth-child(2) { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .card-table th:first-child { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .card-table th:nth-child(2) { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .card-table thead th { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.insight-table-shell .card-table thead th:first-child { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .card-table thead th:nth-child(2) { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .insights-table--grading td:first-child { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .insights-table--grading td:nth-child(2) { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .insights-table--grading th:first-child { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .insights-table--grading th:nth-child(2) { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .insights-table--grading thead th:first-child { background: rgba(16, 22, 38, 0.92); }
.insight-table-shell .insights-table--grading thead th:nth-child(2) { background: rgba(16, 22, 38, 0.92); }
.insights-analytics-section { background: rgba(16, 22, 38, 0.92); }
.insights-button-toggle { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-collapse-indicator { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-collapsible-summary:focus-visible .insights-collapse-indicator { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-collapsible-summary:hover .insights-collapse-indicator { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-command-card { background: rgba(16, 22, 38, 0.75); border-color: var(--border); }
.insights-command-group > span { color: var(--ink); }
.insights-command-hint { color: var(--ink); }
.insights-filter-button { color: var(--ink); }
.insights-filter-button.is-active { color: var(--ink); background: rgba(16, 22, 38, 0.92); }
.insights-filter-button:focus-visible { color: var(--ink); }
.insights-filter-button:hover { color: var(--ink); }
.insights-grade-card .insights-mover-gain span { color: var(--ink); }
.insights-grade-card .insights-mover-prices b { color: var(--ink); }
.insights-grade-dollar em { color: var(--ink); }
.insights-grade-meta span { color: var(--ink); }
.insights-home-section { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-market-overview-section .chart-shell { background: rgba(16, 22, 38, 0.92); }
.insights-market-overview-section .insight-note { color: var(--ink); }
.insights-market-overview-section .insight-panel { background: rgba(16, 22, 38, 0.92); }
.insights-market-overview-section .insight-panel .insights-grade-toggle { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-market-overview-section .insight-panel .insights-grade-toggle .insights-filter-button { color: var(--ink); }
.insights-market-overview-section .insight-panel .insights-grade-toggle .insights-filter-button:focus-visible { color: var(--ink); }
.insights-market-overview-section .insight-panel .insights-grade-toggle .insights-filter-button:hover { color: var(--ink); }
.insights-market-overview-section .insight-panel-header h2 { color: var(--ink); }
.insights-market-overview-section .stat-tile { background: rgba(16, 22, 38, 0.92); }
.insights-market-overview-section .stat-tile small { color: var(--ink); }
.insights-market-overview-section .stat-tile strong { color: var(--ink); }
.insights-market-range-note strong { color: var(--ink); }
.insights-mover-card { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.insights-mover-card--lead { background: rgba(16, 22, 38, 0.92); }
.insights-mover-name { color: var(--ink); }
.insights-mover-prices { color: var(--ink); }
.insights-mover-set { color: var(--ink); }
.insights-section-heading h1 { color: var(--ink); }
.insights-section-heading h2 { color: var(--ink); }
.insights-section-heading p:not(.eyebrow) { color: var(--ink); }
.insights-table { background: rgba(16, 22, 38, 0.92); }
.insights-toggle { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-toggle .language-pill { border-color: var(--border); background: rgba(16, 22, 38, 0.72); color: var(--ink); }
.insights-toggle .language-pill.is-active { color: var(--ink); background: rgba(16, 22, 38, 0.92); }
.insights-toggle .language-pill:hover { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.insights-top-nav-card { background: rgba(16, 22, 38, 0.92); }
.landing-bento-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.landing-bento-points span { color: var(--ink); }
.landing-chip { background: rgba(16, 22, 38, 0.7); border-color: var(--border); color: var(--ink); }
.landing-faq-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.landing-feature-card { background: rgba(16, 22, 38, 0.75); border-color: var(--border); }
.landing-final-panel { border-color: var(--border); }
.landing-flow-step { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.landing-flow-step span { color: var(--ink); }
.landing-rip-caption { border-color: var(--border); }
.landing-rip-stage { border-color: var(--border); }
.landing-signal-card { background: rgba(16, 22, 38, 0.72); border-color: var(--border); }
.landing-strip { border-color: var(--border); background: rgba(16, 22, 38, 0.64); }
.landing-strip-track span { color: var(--ink); }
.landing-vault-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.language-pill { color: var(--ink); }
.language-pill.is-active { color: var(--ink); background: rgba(16, 22, 38, 0.92); }
.language-pill:focus-visible { color: var(--ink); }
.language-pill:hover { color: var(--ink); }
.language-toggle { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.legal-shell { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.legal-updated { color: var(--ink); }
.module-chip { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.module-chip-negative { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.module-chip-positive { background: rgba(16, 22, 38, 0.92); }
.module-chip.is-danger { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.nav-dropdown-menu { background: rgba(16, 22, 38, 0.92); }
.odds-picker-guide-points li.is-vault-point { border-color: var(--border); }
.odds-picker-info-facts .ripbags-story-fact { background: rgba(16, 22, 38, 0.75); border-color: var(--border); }
.odds-picker-list { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.odds-picker-odds-button.is-active { border-color: var(--border); }
.odds-picker-odds-button.is-disabled { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.odds-picker-odds-button:disabled { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.odds-picker-odds-card.is-disabled .field-label { color: var(--ink); }
.odds-picker-odds-card.is-disabled .odds-picker-odds-hint { color: var(--ink); }
.odds-picker-odds-card.is-disabled .search-rule span:not(.search-rule-label) { color: var(--ink); }
.odds-picker-option { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.odds-picker-option-art { background: rgba(16, 22, 38, 0.92); }
.odds-picker-option.is-selected { border-color: var(--border); }
.odds-picker-option:hover { border-color: var(--border); }
.odds-picker-price-block { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.odds-picker-quote-panel { background: rgba(16, 22, 38, 0.79); border-color: var(--border); }
.odds-picker-result-art img { background: rgba(16, 22, 38, 0.92); }
.odds-picker-result-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.odds-picker-select-group { background: rgba(16, 22, 38, 0.75); border-color: var(--border); }
.odds-picker-selected-art { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.odds-picker-selected-card-shell img { background: rgba(16, 22, 38, 0.92); }
.odds-picker-stage-status a { color: var(--ink); }
.odds-picker-stage-status.is-error { background: rgba(16, 22, 38, 0.92); }
.odds-picker-stage-status.is-success { background: rgba(16, 22, 38, 0.92); }
.odds-picker-trigger { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.pack-audit-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pack-audit-card.is-fail { background: rgba(16, 22, 38, 0.92); }
.pack-audit-card[open] .pack-audit-summary { border-color: var(--border); }
.pack-audit-chain-step { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pack-audit-chain-step h3 { color: var(--ink); }
.pack-audit-chain-step li small { color: var(--ink); }
.pack-audit-chain-step li.is-missing strong { color: var(--ink); }
.pack-audit-checks li.is-fail { color: var(--ink); }
.pack-audit-checks li.is-fail .pack-audit-check-mark { color: var(--ink); }
.pack-audit-checks li.is-info { color: var(--ink); }
.pack-audit-checks li.is-legacy { color: var(--ink); }
.pack-audit-cost { color: var(--ink); }
.pack-audit-ident { color: var(--ink); }
.pack-audit-ident code { color: var(--ink); }
.pack-audit-meta { color: var(--ink); }
.pack-audit-outcome.is-miss { color: var(--ink); }
.pack-audit-vault { color: var(--ink); }
.pack-audit-verdict.is-clean { color: var(--ink); }
.pack-audit-verdict.is-fail { color: var(--ink); }
.pack-audit-verdict.is-legacy { color: var(--ink); }
.pack-audit-who > :last-child { color: var(--ink); }
.pack-builder-action-link { border-color: var(--border); }
.pack-builder-action-link.is-alt { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.pack-builder-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pack-builder-card img { background: rgba(16, 22, 38, 0.92); }
.pack-builder-card-bulk { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pack-builder-card.is-selected { border-color: var(--border); }
.pack-builder-pool-heading span { color: var(--ink); }
.pack-builder-pool-heading strong { color: var(--ink); }
.pack-builder-pool-popover small { color: var(--ink); }
.pack-builder-pool-popover span { color: var(--ink); }
.pack-builder-pool-popover strong { color: var(--ink); }
.pack-builder-pool-popover-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pack-builder-pool-popover-close { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.pack-builder-pool-popover-controls b { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.pack-builder-pool-scroll-head span { color: var(--ink); }
.pack-builder-pool-scroll-head strong { color: var(--ink); }
.pack-builder-pool-scroll-list article { border-color: var(--border); }
.pack-builder-pool-scroll-list article.is-random-bulk { border-color: var(--border); }
.pack-builder-pool-scroll-list article[role="button"]:focus-visible { border-color: var(--border); }
.pack-builder-pool-scroll-list article[role="button"]:hover { border-color: var(--border); }
.pack-builder-pool-scroll-list b { color: var(--ink); }
.pack-builder-pool-scroll-list em { color: var(--ink); }
.pack-builder-pool-scroll-list small { color: var(--ink); }
.pack-builder-result { background: rgba(16, 22, 38, 0.92); }
.pack-builder-result span { color: var(--ink); }
.pack-builder-status { color: var(--ink); }
.pack-builder-summary [data-summary-lines] em { color: var(--ink); }
.pack-builder-summary [data-summary-lines] span { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.parade-cta { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.parade-cta:hover { background: rgba(16, 22, 38, 0.92); }
.poke-news-chip.is-spotlight { color: var(--ink); }
.poke-news-pagination { color: var(--ink); }
.poke-news-section { background: rgba(16, 22, 38, 0.92); }
.poke-scoop-mark { color: var(--ink); }
.poke-scoop-mark em { color: var(--ink); }
.poke-wire-clock { color: var(--ink); }
.poke-wire-copy { border-color: var(--border); }
.poke-wire-copy h3 { color: var(--ink); }
.poke-wire-copy p { color: var(--ink); }
.poke-wire-empty strong { color: var(--ink); }
.poke-wire-item + .poke-wire-item { border-color: var(--border); }
.poke-wire-ledger { border-color: var(--border); }
.poke-wire-ledger-label { color: var(--ink); }
.poke-wire-source { border-color: var(--border); }
.poke-wire-source:hover { color: var(--ink); border-color: var(--border); }
.pokegauntlet-complete-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pokegauntlet-house-lock-copy { border-color: var(--border); }
.pokegauntlet-instruction-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pokegauntlet-pick-art { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.pokegauntlet-pick-attacks div { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.pokegauntlet-pick-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pokegauntlet-pick-card.is-locked { border-color: var(--border); }
.pokegauntlet-pick-stats span { color: var(--ink); }
.pokegauntlet-resume-card { border-color: var(--border); }
.pokegauntlet-slot { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pokegauntlet-slot.is-active { border-color: var(--border); }
.pokegauntlet-slot.is-filled { border-color: var(--border); }
.pokegauntlet-table thead th { background: rgba(16, 22, 38, 0.92); }
.pokegauntlet-tier-badge.tier-1 { border-color: var(--border); }
.pokegauntlet-tier-badge.tier-2 { border-color: var(--border); }
.pokegauntlet-tier-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.pokegauntlet-tier-card.tier-1 { border-color: var(--border); }
.pokegauntlet-tier-card.tier-2 { border-color: var(--border); }
.pokestreak-duel-card { background: rgba(16, 22, 38, 0.75); }
.pokestreak-instruction-card { background: rgba(16, 22, 38, 0.75); }
.pokestreak-lineup-card { background: rgba(16, 22, 38, 0.75); }
.pokestreak-lineup-card.is-active { border-color: var(--border); }
.pokestreak-picker-card { background: rgba(16, 22, 38, 0.75); }
.pokestreak-progress-node { background: rgba(16, 22, 38, 0.75); }
.pokestreak-resume-card { background: rgba(16, 22, 38, 0.75); }
.pokestreak-resume-lineup-card { background: rgba(16, 22, 38, 0.55); }
.pokestreak-slot { background: rgba(16, 22, 38, 0.75); }
.pokestreak-slot.is-active { border-color: var(--border); }
.pokestreak-slot.is-filled { border-color: var(--border); }
.pokestreak-slot:hover { border-color: var(--border); }
.pokestreak-step-node { background: rgba(16, 22, 38, 0.75); }
.pokestreak-step-node.is-active { border-color: var(--border); }
.pokestreak-step-node.is-lost { border-color: var(--border); }
.pokestreak-summary-card { background: rgba(16, 22, 38, 0.75); }
.pokestreak-tier-card { background: rgba(16, 22, 38, 0.75); }
.pokestreak-tier-card.is-active { border-color: var(--border); }
.pokestreak-tier-card:hover { border-color: var(--border); }
.pokestreak-tier-stat { background: rgba(16, 22, 38, 0.64); border-color: var(--border); }
.population-entry { border-color: var(--border); }
.population-grader-row { border-color: var(--border); }
.population-report { background: rgba(16, 22, 38, 0.92); }
.population-source { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.ppt-comp-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.primary-button { color: var(--ink); }
.referral-promo-card { background: rgba(16, 22, 38, 0.92); }
.referral-promo-card .referral-promo-title { color: var(--ink); }
.referral-promo-copy { border-color: var(--border); }
.referral-promo-explain { color: var(--ink); }
.referral-promo-info { border-color: var(--border); }
.referral-promo-inputgroup { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.referral-promo-link { color: var(--ink); }
.ripbags-card-draft { border-color: var(--border); }
.ripbags-credit-panel { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.ripbags-curve-card { background: rgba(16, 22, 38, 0.66); border-color: var(--border); }
.ripbags-draft-guide-card { border-color: var(--border); }
.ripbags-draft-guide-chip { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.ripbags-error-label { color: var(--ink); }
.ripbags-explainer-card { background: rgba(16, 22, 38, 0.81); border-color: var(--border); }
.ripbags-header-actions { border-color: var(--border); }
.ripbags-health-summary-range { color: var(--ink); }
.ripbags-health-summary-row { border-color: var(--border); }
.ripbags-health-summary-row small { color: var(--ink); }
.ripbags-loadbar { border-color: var(--border); }
.ripbags-pool-art { background: rgba(16, 22, 38, 0.72); }
.ripbags-pool-card.is-chase { border-color: var(--border); }
.ripbags-product-pill span { color: var(--ink); }
.ripbags-product-pill strong { color: var(--ink); }
.ripbags-product-pill.is-active span { color: var(--ink); }
.ripbags-product-pill.is-active strong { color: var(--ink); }
.ripbags-remaining-hero { border-color: var(--border); }
.ripbags-remaining-stat { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.ripbags-slot-active { background: rgba(16, 22, 38, 0.7); border-color: var(--border); }
.ripbags-slot-card { border-color: var(--border); }
.ripbags-slot-card.is-open { border-color: var(--border); }
.ripbags-slot-queue-row { background: rgba(16, 22, 38, 0.7); border-color: var(--border); }
.ripbags-stage-bag { border-color: var(--border); }
.ripbags-stage-row { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.ripbags-stage-row-copy { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.ripbags-story-fact { background: rgba(16, 22, 38, 0.66); border-color: var(--border); }
.ripbags-story-panel { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.ripbags-tier-bucket { border-color: var(--border); }
.ripbags-tier-bucket.is-open { border-color: var(--border); }
.ripbags-tier-guide-row { background: rgba(16, 22, 38, 0.77); border-color: var(--border); }
.ripbags-tier-guide-row.is-warning { border-color: var(--border); }
.ripbags-top-controls { background: rgba(16, 22, 38, 0.75); }
.ripbags-top-note { border-color: var(--border); }
.ripbags-value-chip { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.rtyh-bulk-copy small { color: var(--ink); }
.rtyh-bulk-copy strong { color: var(--ink); }
.rtyh-bulk-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-fair-row strong { color: var(--ink); }
.rtyh-hero h1 { color: var(--ink); }
.rtyh-hero-subtitle { color: var(--ink); }
.rtyh-hit-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.rtyh-hit-card strong { color: var(--ink); }
.rtyh-hit-card-meta { color: var(--ink); }
.rtyh-hit-card-meta span { color: var(--ink); }
.rtyh-how-lead { color: var(--ink); }
.rtyh-how-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-how-panel .search-rule-label { color: var(--ink); }
.rtyh-how-step { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.rtyh-how-step p { color: var(--ink); }
.rtyh-how-step strong { color: var(--ink); }
.rtyh-how-toggle { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.rtyh-how-toggle:focus-visible { border-color: var(--border); }
.rtyh-how-toggle:hover { border-color: var(--border); }
.rtyh-live-switch-cancel { border-color: var(--border); color: var(--ink); background: rgba(16, 22, 38, 0.77); }
.rtyh-live-switch-card { border-color: var(--border); }
.rtyh-live-switch-card > span { color: var(--ink); }
.rtyh-live-switch-card p { color: var(--ink); }
.rtyh-live-switch-card strong { color: var(--ink); }
.rtyh-live-switch-confirm { border-color: var(--border); }
.rtyh-min5-bar { background: rgba(16, 22, 38, 0.92); }
.rtyh-min5-bar-text strong { color: var(--ink); }
.rtyh-min5-bar:has(input:checked) { background: rgba(16, 22, 38, 0.92); }
.rtyh-min5-switch::after { background: rgba(16, 22, 38, 0.92); }
.rtyh-min5-teaser { color: var(--ink); }
.rtyh-mode-card { border-color: var(--border); }
.rtyh-option-badge { background: rgba(16, 22, 38, 0.92); }
.rtyh-option-caption { color: var(--ink); }
.rtyh-option-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.rtyh-option-card p { color: var(--ink); }
.rtyh-option-card-detailed { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.rtyh-option-group { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.rtyh-option-group-copy { color: var(--ink); }
.rtyh-option-group-foot { color: var(--ink); }
.rtyh-option-group-label { color: var(--ink); }
.rtyh-pack-card { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.rtyh-pack-card small { color: var(--ink); }
.rtyh-pack-card strong { color: var(--ink); }
.rtyh-rail-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-rail-card small { color: var(--ink); }
.rtyh-rail-card-number { color: var(--ink); }
.rtyh-rail-card-odds { color: var(--ink); }
.rtyh-rail-card-price-lines small { border-color: var(--border); color: var(--ink); }
.rtyh-rail-card-price-lines small:last-child { border-color: var(--border); color: var(--ink); }
.rtyh-results-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-results-head strong { color: var(--ink); }
.rtyh-section-head h2 { color: var(--ink); }
.rtyh-sidebar-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-sidebar-card p { color: var(--ink); }
.rtyh-stage-body .chasers-pack-scene.is-between-rips .chasers-cinematic-stage-message { color: var(--ink); }
.rtyh-stage-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-stage-copy strong { color: var(--ink); }
.rtyh-stage-head strong { color: var(--ink); }
.rtyh-stage-mode-chip { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.rtyh-stage-mode-chip:not(:disabled):focus-visible { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-stage-mode-chip:not(:disabled):hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.rtyh-stage-viewport { border-color: var(--border); }
.rtyh-stat strong { color: var(--ink); }
.search-card-meta span { color: var(--ink); }
.search-card-price-summary .search-card-price-summary-premium strong { color: var(--ink); }
.search-card-price-summary small { color: var(--ink); }
.search-empty-value { color: var(--ink); }
.search-panel { background: rgba(16, 22, 38, 0.92); }
.search-panel-clean { background: rgba(16, 22, 38, 0.92); }
.search-release-cell { color: var(--ink); }
.search-sales-cell span { color: var(--ink); }
.search-set-cell { color: var(--ink); }
.search-summary { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.secondary-button { color: var(--ink); }
.secondary-button.ripbags-next-button { color: var(--ink); }
.select-shell { border-color: var(--border); }
.select-shell::after { border-color: var(--border); }
.select-shell:hover { border-color: var(--border); }
.ship-merge-breakdown li { color: var(--ink); }
.ship-merge-copy > small { color: var(--ink); }
.ship-shield { color: var(--ink); }
.ship-summary { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.ship-summary-copy small { color: var(--ink); }
.ship-summary-row { border-color: var(--border); }
.ship-summary-toggle { background: rgba(16, 22, 38, 0.92); }
.ship-summary-toggle.is-remove { border-color: var(--border); color: var(--ink); }
.ship-summary-total > small { color: var(--ink); }
.ship-summary-total-copy span { color: var(--ink); }
.shipping-rate-list-refined .shipping-rate-option { background: rgba(16, 22, 38, 0.92); }
.shipping-rate-list-refined .shipping-rate-option.is-selected { border-color: var(--border); }
.shipping-rate-option { border-color: var(--border); background: rgba(16, 22, 38, 0.77); }
.shipping-rate-option.is-selected { border-color: var(--border); }
.shipping-rate-option:hover { border-color: var(--border); }
.shipping-review-actions > .shipping-credit-button { color: var(--ink); }
.shipping-review-address-card { border-color: var(--border); }
.shipping-review-itemized-card img { background: rgba(16, 22, 38, 0.92); }
.shipping-review-itemized-row { background: rgba(16, 22, 38, 0.79); border-color: var(--border); }
.shipping-review-order-card { border-color: var(--border); }
.shipping-review-paybox { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.shipping-review-service-card { border-color: var(--border); }
.shipping-review-totalbar article { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.shipping-review-totalbar-due { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.site-account-menu { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.site-account-menu-link { color: var(--ink); }
.site-account-menu-link small { color: var(--ink); }
.site-account-menu-link strong { color: var(--ink); }
.site-account-menu-link.is-active { background: rgba(16, 22, 38, 0.92); }
.site-account-menu-link:hover { background: rgba(16, 22, 38, 0.92); }
.site-footer { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.site-footer-copy { color: var(--ink); }
.site-footer-disclaimer { color: var(--ink); }
.site-nav-balance-chip { background: rgba(16, 22, 38, 0.92); border-color: var(--border); color: var(--ink); }
.site-nav-link-utility { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.site-nav-link-utility:hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.site-nav-menu-button { color: var(--ink); }
.site-nav-menu-link { color: var(--ink); }
.site-nav-menu-link.is-active { background: rgba(16, 22, 38, 0.92); }
.site-nav-menu-link.is-party-packs-link { border-color: var(--border); }
.site-nav-menu-link.is-party-packs-link strong { color: var(--ink); }
.site-nav-menu-panel { border-color: var(--border); }
.site-nav-menu-trigger { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.site-nav-menu-trigger:hover { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.solid-link { color: var(--ink); }
.stat-tile { background: rgba(16, 22, 38, 0.92); }
.support-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-footer span { color: var(--ink); }
.support-form .field-group input { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-form .field-group input:focus { border-color: var(--border); }
.support-form .field-group textarea { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-form .field-group textarea:focus { border-color: var(--border); }
.support-form input[readonly] { color: var(--ink); background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
.support-form-head { border-color: var(--border); }
.support-form-head span { color: var(--ink); }
.support-form-head strong { color: var(--ink); }
.support-inline-reply { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-intro { border-color: var(--border); }
.support-message-bubble { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-message-bubble p { color: var(--ink); }
.support-message-bubble span { color: var(--ink); }
.support-reply-alert { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-reply-alert span { color: var(--ink); }
.support-reply-alert strong { color: var(--ink); }
.support-reply-form { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-ticket { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.support-ticket-closed { color: var(--ink); }
.support-ticket-expand { color: var(--ink); }
.support-ticket-head small { color: var(--ink); }
.support-ticket-head strong { color: var(--ink); }
.support-ticket-status { color: var(--ink); }
.support-ticket-unread { color: var(--ink); }
.support-ticket[open] { background: rgba(16, 22, 38, 0.92); }
.support-ticket[open] .support-ticket-expand { color: var(--ink); }
.table-shell { background: rgba(16, 22, 38, 0.92); }
.target-banner { border-color: var(--border); }
.target-banner--avoid { border-color: var(--border); }
.target-banner--strong-buy { border-color: var(--border); }
.toggle-row { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.toggle-row small { color: var(--ink); }
.va-pack-choice-card { border-color: var(--border); background: rgba(16, 22, 38, 0.79); color: var(--ink); }
.va-pack-choice-card:focus-visible { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.va-pack-choice-card:hover { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.va-pack-choice-close { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.va-pack-choice-copy em { color: var(--ink); }
.va-pack-choice-copy strong { color: var(--ink); }
.va-pack-choice-head small { color: var(--ink); }
.va-pack-choice-head span { color: var(--ink); }
.va-pack-choice-head strong { color: var(--ink); }
.va-pack-choice-meta { border-color: var(--border); }
.va-pack-choice-meta b { color: var(--ink); }
.va-pack-choice-meta span { color: var(--ink); }
.va-pack-choice-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.va-pack-mobile-sheet .va-pack-product-rarity-rates { color: var(--ink); }
.va-pack-mobile-sheet .va-pack-product-rarity-rates summary { border-color: var(--border); background: rgba(16, 22, 38, 0.79); color: var(--ink); }
.va-pack-mobile-sheet .va-pack-product-rarity-rates summary::after { color: var(--ink); }
.va-pack-rarity-rate-chip { border-color: var(--border); background: rgba(16, 22, 38, 0.75); }
.va-pack-rarity-rate-chip b { color: var(--ink); }
.va-pack-rarity-rate-chip em { color: var(--ink); }
.va-reviews-head .va-reviews-eyebrow { color: var(--ink); }
.va-reviews-head .va-reviews-eyebrow a:focus-visible { color: var(--ink); }
.va-reviews-head .va-reviews-eyebrow a:hover { color: var(--ink); }
.va-reviews-head h2 { color: var(--ink); }
.va-reviews-head p { color: var(--ink); }
.va-reviews-head span { color: var(--ink); }
.va-spot { border-color: var(--border); }
.va-spot-id span { color: var(--ink); }
.va-spot-id strong { color: var(--ink); }
.va-spot-quote { color: var(--ink); }
.va-spot-quote strong { color: var(--ink); }
.va-spot-thumb.is-active { border-color: var(--border); }
.vault-actions-hint { border-color: var(--border); color: var(--ink); }
.vault-actions-shell { border-color: var(--border); }
.vault-bulk-action-zone small { color: var(--ink); }
.vault-bulk-confirm-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-bulk-confirm-card > p { color: var(--ink); }
.vault-bulk-confirm-card > strong { color: var(--ink); }
.vault-bulk-confirm-close { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.vault-bulk-confirm-summary .is-total { background: rgba(16, 22, 38, 0.92); }
.vault-bulk-confirm-summary div { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-bulk-confirm-summary strong { color: var(--ink); }
.vault-bulk-copy p { color: var(--ink); }
.vault-bulk-empty { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.vault-bulk-facts span { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.vault-bulk-include { border-color: var(--border); }
.vault-bulk-include-copy small { color: var(--ink); }
.vault-bulk-include-copy strong { color: var(--ink); }
.vault-bulk-include:has(input:checked) { border-color: var(--border); }
.vault-bulk-include:hover { border-color: var(--border); }
.vault-bulk-note-icon { border-color: var(--border); color: var(--ink); }
.vault-bulk-panel { border-color: var(--border); }
.vault-bulk-panel-count small { color: var(--ink); }
.vault-bulk-panel-count strong { color: var(--ink); }
.vault-bulk-panel-facts span { border-color: var(--border); color: var(--ink); }
.vault-bulk-panel-side { border-color: var(--border); }
.vault-bulk-redesign { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-bulk-stack-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-card-cell img { background: rgba(16, 22, 38, 0.92); }
.vault-card-checkmark { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-card-panel { border-color: var(--border); }
.vault-card-redesign { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-card-redesign .vault-card-art { background: rgba(16, 22, 38, 0.92); }
.vault-card-redesign .vault-card-footer { color: var(--ink); }
.vault-card-redesign .vault-status-pill { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.vault-card-redesign.is-selected { border-color: var(--border); }
.vault-card-redesign:hover { border-color: var(--border); }
.vault-card-select-surface input:checked + .vault-card-checkmark { border-color: var(--border); }
.vault-card-select-text { color: var(--ink); }
.vault-card-stats div { background: rgba(16, 22, 38, 0.72); border-color: var(--border); }
.vault-card-value-row div { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-card-value-row span { color: var(--ink); }
.vault-card-workspace { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-command-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-command-stat { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-command-stat small { color: var(--ink); }
.vault-command-stat span { color: var(--ink); }
.vault-command-stat strong { color: var(--ink); }
.vault-command-stat.is-credit { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-empty-state { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-empty-state span { color: var(--ink); }
.vault-hero-card { border-color: var(--border); }
.vault-history-card img { background: rgba(16, 22, 38, 0.92); }
.vault-history-details { border-color: var(--border); }
.vault-history-panel-redesign { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-history-panel-redesign .vault-history-details { background: rgba(16, 22, 38, 0.92); }
.vault-history-row { background: rgba(16, 22, 38, 0.7); border-color: var(--border); }
.vault-overview-card { border-color: var(--border); }
.vault-overview-card strong { color: var(--ink); }
.vault-primary-link { border-color: var(--border); }
.vault-primary-link.is-secondary { border-color: var(--border); }
.vault-section-titleline span { color: var(--ink); }
.vault-select-all-control { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
.vault-selection-sticky { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-selection-sticky-copy small { color: var(--ink); }
.vault-selection-sticky-copy span { color: var(--ink); }
.vault-selection-sticky-copy strong { color: var(--ink); }
.vault-selection-value { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
.vault-selection-value small { color: var(--ink); }
.vault-selection-value span { color: var(--ink); }
.vault-selection-value strong { color: var(--ink); }
.vault-workspace-head p { color: var(--ink); }
button.ripbags-open-button { color: var(--ink); }
button.ripbags-open-button:disabled { border-color: var(--border); }
button.ripbags-open-button[data-busy="true"] { border-color: var(--border); }
button.site-nav-balance-chip:focus-visible { border-color: var(--border); }
button.site-nav-balance-chip:hover { border-color: var(--border); }
@media (max-width: 520px) {
  .va-pack-choice-copy em { color: var(--ink); }
}
@media (max-width: 640px) {
  .insights-best-grade-section .insights-grade-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .insights-best-grade-section .insights-grade-card.insights-mover-card--lead { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .insights-grade-card .insights-mover-gain span { color: var(--ink); }
  .insights-mobile-market-price { border-color: var(--border); }
  .insights-mobile-market-price span { color: var(--ink); }
  .insights-mobile-market-price strong { color: var(--ink); }
  .insights-mover-card { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .insights-mover-card--lead { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .insights-mover-copy { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
  .insights-mover-gain span { color: var(--ink); }
  .pack-builder-mobile-title-balance { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .pack-builder-mobile-title-balance strong { color: var(--ink); }
  .pack-builder-rarity-pick:nth-child(n + 4) { border-color: var(--border); }
}
@media (max-width: 680px) {
  .account-referral-stats { border-color: var(--border); }
  .account-referral-stats > div + div { border-color: var(--border); }
}
@media (max-width: 700px) {
  .card-profile-metric:nth-child(3n) { border-color: var(--border); }
}
@media (max-width: 720px) {
  .vault-command-stat + .vault-command-stat { border-color: var(--border); }
  .vault-command-top { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
}
@media (max-width: 760px) {
  .chasers-action-status.is-error { border-color: var(--border); }
  .chasers-credit-panel-copy-mobile strong { color: var(--ink); }
  .chasers-credit-panel.is-balance-down .chasers-credit-panel-copy-mobile strong { color: var(--ink); }
  .chasers-guide-panel { background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
  .chasers-hit-badge { color: var(--ink); background: rgba(16, 22, 38, 0.92); border-color: var(--border); }
  .chasers-mobile-stage-mode { border-color: var(--border); background: rgba(16, 22, 38, 0.75); }
  .chasers-reveal-card.is-hit-card.is-hit-arming .chasers-card-face-back { border-color: var(--border); }
  .chasers-reveal-card.is-hit-live.is-boom .chasers-card-face-front { border-color: var(--border); }
  .chasers-reveal-card.is-hit-live.is-vaulted .chasers-card-face-front { border-color: var(--border); }
  .chasers-selection-utility-mode .chasers-mode-toggle { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .chasers-selection-utility-mode .chasers-picker-action { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
  .chasers-selection-utility-mode .chasers-picker-action:hover { background: rgba(16, 22, 38, 0.92); color: var(--ink); }
  .chasers-selection-utility-mode [data-mode-value="live"].is-active { border-color: var(--border); }
  .chasers-selection-utility-mode [data-mode-value="simulation"].is-active { border-color: var(--border); }
  .chasers-shell[data-homepage-variant="a"] .va-hero-proof-copy span { color: var(--ink); }
  .chasers-shell[data-homepage-variant="a"] .va-hero-proof-row { border-color: var(--border); background: rgba(16, 22, 38, 0.55); }
  .chasers-shell[data-homepage-variant="a"] .va-hero-side-proof-discord .va-hero-proof-copy strong { color: var(--ink); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-belt-label { color: var(--ink); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-custom-card::after { background: rgba(16, 22, 38, 0.66); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-menu button.is-active { border-color: var(--border); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-nav { background: rgba(16, 22, 38, 0.92); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-next-mobile { color: var(--ink); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-next-mobile b { color: var(--ink); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-next-mobile span { color: var(--ink); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-rip-main { border-color: var(--border); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-rip-main:focus-visible { border-color: var(--border); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-rip-main:hover { border-color: var(--border); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-shelf { border-color: var(--border); background: rgba(16, 22, 38, 0.66); background: rgba(16, 22, 38, 0.92); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-shelf.is-custom-pack-selected .va-pack-product-custom-card::after { background: rgba(16, 22, 38, 0.92); }
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-swipe-hint { color: var(--ink); }
  .rtyh-mobile-option-toggle { background: rgba(16, 22, 38, 0.92); }
  .va-pack-mobile-sheet-cards-title { color: var(--ink); }
  .va-pack-mobile-sheet-close { border-color: var(--border); background: rgba(16, 22, 38, 0.92); color: var(--ink); }
  .va-pack-mobile-sheet-copy small { color: var(--ink); }
  .va-pack-mobile-sheet-copy span { color: var(--ink); }
  .va-pack-mobile-sheet-copy strong { color: var(--ink); }
  .va-pack-mobile-sheet-panel { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .va-pack-mobile-sheet-stats > div { border-color: var(--border); background: rgba(16, 22, 38, 0.66); }
  .va-pack-mobile-sheet-stats > div:nth-child(1) { border-color: var(--border); background: rgba(16, 22, 38, 0.81); }
  .va-pack-mobile-sheet-stats > div:nth-child(1) strong { color: var(--ink); }
  .va-pack-mobile-sheet-stats > div:nth-child(2) { border-color: var(--border); background: rgba(16, 22, 38, 0.81); }
  .va-pack-mobile-sheet-stats > div:nth-child(2) strong { color: var(--ink); }
  .va-pack-mobile-sheet-stats b { color: var(--ink); }
  .va-pack-mobile-sheet-stats small { color: var(--ink); }
  .va-pack-mobile-sheet-stats strong { color: var(--ink); }
}
@media (max-width: 820px) {
  .chasers-shell[data-homepage-variant="a"] .va-pack-switcher-arrow { background: rgba(16, 22, 38, 0.92); }
  .pack-builder-rarity-pick:nth-child(n + 4) { border-color: var(--border); }
}
@media (max-width: 860px) {
  .account-hit-history-value { border-color: var(--border); }
  .card-profile-mobile-research { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
  .card-profile-mobile-research > summary::after { color: var(--ink); }
  .card-profile-page .detail-copy-panel { background: rgba(16, 22, 38, 0.92); }
}
@media (max-width: 980px) {
  .vault-bulk-panel-side { border-color: var(--border); }
}
@media (min-width: 761px) {
  .chasers-shell[data-homepage-variant="a"] .va-pack-product-nav { border-color: var(--border); background: rgba(16, 22, 38, 0.92); }
}

/* =====================================================================
   HAND-TUNED: the purchase sheet (top-up checkout). Placed after the
   generated layer on purpose — these win. Premium dark glass: frost
   borders, holo hairline, violet-blue glow, one hero CTA.
   ===================================================================== */

.chasers-topup-panel {
  background: rgba(3, 6, 14, 0.66);
  backdrop-filter: blur(10px);
}

.chasers-topup-card {
  border: 1px solid rgba(158, 212, 255, 0.22);
  background:
    linear-gradient(180deg, rgba(142, 202, 255, 0.07) 0%, rgba(150, 190, 255, 0.02) 40%, rgba(168, 140, 255, 0.06) 100%),
    linear-gradient(180deg, rgba(17, 23, 41, 0.97), rgba(10, 13, 24, 0.98));
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 0.6),
    0 0 40px rgba(124, 92, 255, 0.14),
    inset 0 1px 0 rgba(226, 240, 255, 0.14);
  position: relative;
}

/* holo hairline across the card's crown */
.chasers-topup-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 14%;
  right: 14%;
  height: 1px;
  border-radius: 1px;
  background: linear-gradient(90deg, transparent, rgba(62, 230, 255, 0.7), rgba(185, 92, 255, 0.7), rgba(255, 92, 225, 0.6), transparent);
  pointer-events: none;
}

.chasers-topup-close {
  border-color: rgba(158, 212, 255, 0.2);
  background: rgba(20, 27, 47, 0.9);
  color: var(--ink);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.4);
}

.chasers-topup-close:hover,
.chasers-topup-close:focus-visible {
  border-color: rgba(255, 122, 136, 0.55);
  color: #ff98a4;
}

.chasers-topup-kicker { color: #9ed4ff; }
.chasers-topup-copy strong { color: #f2f8ff; }
.chasers-topup-copy p { color: rgba(200, 214, 235, 0.78); }

/* segmented Buy packs / Enter amount toggle */
.chasers-topup-modes { background: rgba(255, 255, 255, 0.06); }
.chasers-topup-mode { color: rgba(178, 194, 220, 0.75); }
.chasers-topup-mode.is-active {
  color: #f2f8ff;
  background: rgba(96, 130, 200, 0.28);
  box-shadow: inset 0 0 0 1px rgba(158, 212, 255, 0.3), 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* cart line + stepper */
.chasers-topup-cartitem {
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(158, 212, 255, 0.12);
  border-radius: 12px;
}
.chasers-topup-cart-art { filter: drop-shadow(0 4px 10px rgba(120, 160, 255, 0.35)); }
.chasers-topup-cart-info strong { color: #f2f8ff; }
.chasers-topup-cart-info small { color: #93a5c4; }
.chasers-topup-step {
  color: #e8eef7;
  background: rgba(24, 32, 55, 0.95);
  border-color: rgba(158, 212, 255, 0.22);
}
.chasers-topup-step:hover { box-shadow: 0 0 10px rgba(120, 170, 255, 0.35); }
.chasers-topup-qty { color: #f2f8ff; }
.chasers-topup-qty:focus { color: #9ed4ff; }

/* receipt line */
.chasers-topup-receipt { border-color: rgba(158, 212, 255, 0.14); }
.chasers-topup-receipt span { color: #93a5c4; }
.chasers-topup-receipt strong { color: #f2f8ff; text-shadow: 0 0 14px rgba(140, 205, 255, 0.3); }

/* amount presets */
.chasers-topup-preset {
  color: #cfe0f5;
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(158, 212, 255, 0.18);
}
.chasers-topup-preset:hover { border-color: rgba(158, 212, 255, 0.45); }
.chasers-topup-preset.is-active {
  color: #ffffff;
  background: linear-gradient(180deg, rgba(96, 140, 230, 0.4), rgba(110, 90, 235, 0.34));
  border-color: rgba(158, 212, 255, 0.65);
  box-shadow: 0 0 14px rgba(120, 160, 255, 0.35), inset 0 1px 0 rgba(226, 240, 255, 0.25);
}

.chasers-topup-field input {
  color: #f2f8ff;
  background: rgba(10, 14, 26, 0.85);
  border-color: rgba(158, 212, 255, 0.2);
}
.chasers-topup-field input:focus {
  border-color: rgba(158, 212, 255, 0.55);
  box-shadow: 0 0 0 3px rgba(120, 160, 255, 0.18);
}

/* first-deposit bonus: emerald glass on dark */
.chasers-first-deposit-bonus {
  background: linear-gradient(160deg, rgba(18, 60, 40, 0.55), rgba(10, 36, 26, 0.6));
  border: 1px solid rgba(94, 234, 149, 0.32);
  box-shadow: 0 0 24px rgba(52, 211, 122, 0.14), inset 0 1px 0 rgba(180, 255, 214, 0.12);
}
.chasers-first-deposit-bonus .first-deposit-bonus-copy strong { color: #b7f5cf; }
.chasers-first-deposit-bonus .first-deposit-bonus-preview strong { color: #eafff2; }

/* the hero CTA: one luminous gradient button */
.chasers-topup-submit {
  color: #ffffff;
  background: linear-gradient(120deg, #3f7ce8 0%, #6d5ce8 55%, #8b5cf6 100%);
  border: 1px solid rgba(158, 212, 255, 0.4);
  box-shadow:
    0 10px 26px rgba(0, 0, 0, 0.5),
    0 0 22px rgba(109, 92, 232, 0.45),
    inset 0 1px 0 rgba(226, 240, 255, 0.3);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
  transition: box-shadow 0.18s ease, transform 0.12s ease, filter 0.18s ease;
}
.chasers-topup-submit:hover,
.chasers-topup-submit:focus-visible {
  transform: translateY(-1px);
  filter: brightness(1.07);
  box-shadow:
    0 12px 30px rgba(0, 0, 0, 0.55),
    0 0 30px rgba(139, 92, 246, 0.55),
    inset 0 1px 0 rgba(226, 240, 255, 0.35);
}
.chasers-topup-submit:active { transform: translateY(1px); }

.chasers-topup-account {
  color: #cfe0f5;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(158, 212, 255, 0.2);
}

.chasers-topup-helper { color: #8fa2c2; }
/* ================= END purchase sheet ================= */


/* =====================================================================
   HAND-TUNED: the VB nav bar, shared sitewide (markup: _vb_nav.html).
   Source of truth for these styles is vb.css — keep in sync.
   ===================================================================== */
:root {
  --vb-text: #f2f4f9;
  --vb-dim: #99a1b5;
  --vb-gold: #e9cd97;
  --vb-gutter: 20px;
  --vb-max-width: 72rem;
}

.page-shell { padding-top: 0; }
.vb-bar { position: sticky; }

.vb-bar {
  position: sticky;
  top: 0;
  z-index: 70;
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: calc(env(safe-area-inset-top) + 14px) var(--vb-gutter) 12px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  background: rgba(7, 8, 12, .54);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.vb-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--vb-text);
  text-decoration: none;
}
.vb-brand img { width: 34px; height: 34px; object-fit: contain; }
.vb-brand > span { font-size: 20px; line-height: 1; font-weight: 800; }
.vb-brand small { color: var(--vb-gold); font-size: .62em; }

.vb-bar-actions { display: flex; align-items: center; gap: 10px; }

.vb-balance {
  display: grid;
  min-width: 92px;
  padding: 7px 12px;
  color: var(--vb-text);
  text-decoration: none;
  text-align: right;
  border: 1px solid rgba(255, 255, 255, .12);
  background: rgba(10, 12, 18, .72);
}
.vb-balance small {
  color: var(--vb-dim);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}
.vb-balance strong { margin-top: 4px; color: var(--vb-gold); font-size: 14px; line-height: 1; }
.vb-balance.is-login { display: inline-flex; justify-content: center; align-items: center; font-weight: 800; }

/* ---- the ledger: Balance and Rewards, one card, two rows. Each row is its
   own link (balance -> account, rewards -> the vault's redeem panel). The
   rewards row is driven by points_widget.js; it reserves its space while the
   fetch is in flight so the bar never jumps, and drops out if the program is
   dark. ---- */
.vb-ledger {
  display: grid;
  gap: 3px;
  min-width: 164px;
  padding: 6px 12px 7px;
  border: 1px solid rgba(255, 255, 255, .12);
  background: rgba(10, 12, 18, .72);
}
.vb-ledger .vb-balance,
.vb-rewards {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 12px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: right;
  color: var(--vb-text);
  text-decoration: none;
}
.vb-ledger .vb-balance small,
.vb-rewards small {
  color: var(--vb-dim);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .05em;
  text-transform: uppercase;
  text-align: left;
}
.vb-ledger .vb-balance strong { margin-top: 0; font-variant-numeric: tabular-nums; }
.vb-rewards strong {
  display: inline-flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 4px;
  color: #dccbff;
  font-size: 14px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.vb-rewards strong b { font-weight: inherit; line-height: 1; }
.vb-rewards strong i { font-style: normal; font-size: 11px; line-height: 1; color: #c4b5fd; filter: drop-shadow(0 0 4px rgba(196, 181, 253, .7)); }
.vb-rewards.is-pending { visibility: hidden; }
.vb-rewards.is-off { display: none; }
.vb-rewards.is-ready small { color: #f0abfc; }
.vb-rewards.is-ready strong { color: #ffffff; text-shadow: 0 0 10px rgba(240, 171, 252, .9); }
@media (hover: hover) {
  .vb-ledger a:hover strong { filter: brightness(1.18); }
}
/* narrow phones: the wordmark gives up its ".com" and a couple of points so
   the ledger never has to squeeze */
@media (max-width: 430px) {
  .vb-bar.has-ledger .vb-brand small { display: none; }
  .vb-bar.has-ledger .vb-brand > span { font-size: 17px; }
  .vb-ledger { min-width: 0; padding: 6px 10px 7px; }
  .vb-ledger .vb-balance, .vb-rewards { gap: 10px; }
}

.vb-menu { position: relative; }
.vb-menu summary {
  width: 42px;
  height: 42px;
  display: grid;
  place-content: center;
  gap: 4px;
  cursor: pointer;
  list-style: none;
  border: 1px solid rgba(255, 255, 255, .14);
  background: rgba(10, 12, 18, .72);
}
.vb-menu summary::-webkit-details-marker { display: none; }
.vb-menu summary i { width: 17px; height: 2px; background: var(--vb-text); }
.vb-menu nav {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 220px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, .14);
  background: rgba(9, 11, 17, .98);
  box-shadow: 0 24px 50px rgba(0, 0, 0, .45);
}
.vb-menu nav a,
.vb-menu nav button {
  width: 100%;
  display: block;
  padding: 11px 12px;
  color: var(--vb-text);
  text-decoration: none;
  text-align: left;
  font-size: 13px;
  font-weight: 700;
}
.vb-menu nav a:hover,
.vb-menu nav button:hover { background: rgba(255, 255, 255, .07); }
.vb-menu form { margin: 0; }


.vb-bar { color: var(--vb-text); }
.vb-brand { color: var(--vb-text); text-decoration: none; }
/* ================= END VB nav ================= */

/* =====================================================================
   HAND-TUNED: pack page (chasers rip view) premium pass.
   Obsidian glass panels, holo hairlines, heavy-indigo ambience — the
   generated slabs above get replaced by this layer (same specificity,
   later wins; the mode-toggle actives need !important to beat base).
   ===================================================================== */

/* --- info panels: frosted obsidian, lit top edge --- */
.chasers-pricing-inline,
.chasers-bulk-side-card,
.referral-promo-card {
  background: linear-gradient(180deg, rgba(24, 30, 52, 0.82) 0%, rgba(12, 16, 30, 0.88) 100%);
  border: 1px solid rgba(158, 212, 255, 0.14);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 14px 34px rgba(3, 8, 20, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.chasers-pricing-inline span,
.chasers-stage-mode-label,
.referral-promo-eyebrow,
.chasers-rip-info-secondary-label {
  color: #8fa0bd;
  letter-spacing: 0.14em;
  font-weight: 600;
}

.chasers-pricing-inline strong { color: var(--ink); }

/* money reads gold, like the nav balance */
.chasers-pricing-inline strong[data-pack-cost-rip],
.chasers-pricing-inline strong[data-pack-cost-side],
.chasers-bulk-side-card strong[data-bulk-count-side] { color: var(--vb-gold, #e9cd97); }

.chasers-bulk-side-note { color: rgba(159, 176, 200, 0.75); }

/* --- mode toggle: dark ring instead of the light theme's white halo --- */
.chasers-mode-toggle .chasers-picker-action {
  background: rgba(10, 14, 26, 0.72);
  border-color: rgba(158, 212, 255, 0.16);
  color: #cdd7ea;
}

.chasers-mode-toggle [data-mode-value="simulation"].is-active {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -2px 0 rgba(8, 64, 131, 0.45),
    0 0 0 2px rgba(7, 8, 12, 0.9),
    0 0 16px rgba(23, 116, 222, 0.35) !important;
}

.chasers-mode-toggle [data-mode-value="live"].is-active {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    inset 0 -2px 0 rgba(128, 10, 29, 0.45),
    0 0 0 2px rgba(7, 8, 12, 0.9),
    0 0 16px rgba(207, 31, 60, 0.35) !important;
}

/* --- possible-cards strip: framed slivers that lift on hover --- */
.chasers-selected-thumb {
  border-radius: 10px;
  border: 1px solid rgba(158, 212, 255, 0.18);
  background: rgba(10, 14, 26, 0.7);
  box-shadow: 0 6px 16px rgba(3, 8, 20, 0.5);
  overflow: hidden;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.chasers-selected-thumb img { border-radius: inherit; display: block; }

@media (hover: hover) and (pointer: fine) {
  .chasers-selected-thumb:hover {
    transform: translateY(-3px);
    border-color: rgba(158, 212, 255, 0.45);
    box-shadow:
      0 10px 22px rgba(3, 8, 20, 0.6),
      0 0 14px rgba(96, 88, 220, 0.3);
  }
}

/* --- the stage dissolves into the page: no box, no frame — the sitewide
   dome IS the theater now (see the open-theater section below) --- */
.chasers-cinematic-stage,
.chasers-cinematic-stage.is-primed {
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* --- change-pack bar under the stage --- */
.chasers-changepack-bar {
  background: linear-gradient(180deg, rgba(24, 30, 52, 0.85) 0%, rgba(12, 16, 30, 0.9) 100%);
  border: 1px solid rgba(158, 212, 255, 0.14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 12px 28px rgba(3, 8, 20, 0.45);
  color: var(--ink);
  transition: border-color 160ms ease;
}

.chasers-changepack-bar:hover { border-color: rgba(158, 212, 255, 0.32); }
.chasers-changepack-bar-price { color: var(--vb-gold, #e9cd97); }
.chasers-changepack-bar-text small { color: rgba(159, 176, 200, 0.85); }

/* .chasers-changepack-bar-cue stays untouched: it is holo-gradient TEXT
   (background-clip: text) — any background override blanks the words */

/* --- buttons --- */
.chasers-credit-panel-button,
.referral-promo-copy,
.chasers-rip-selected-count {
  background: rgba(10, 14, 26, 0.72);
  border: 1px solid rgba(158, 212, 255, 0.18);
  color: #dbe4f5;
  transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .chasers-credit-panel-button:hover,
  .referral-promo-copy:hover,
  .chasers-rip-selected-count:hover {
    border-color: rgba(158, 212, 255, 0.45);
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(3, 8, 20, 0.5);
    background: rgba(16, 22, 38, 0.85);
    color: var(--ink);
  }
}

.chasers-bulk-side-button {
  background: linear-gradient(180deg, #5b54e6 0%, #443cc9 100%);
  border: 1px solid rgba(158, 212, 255, 0.25);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 10px 24px rgba(68, 60, 201, 0.35);
  transition: filter 160ms ease, box-shadow 160ms ease;
}

.chasers-bulk-side-button:hover:not(:disabled) {
  filter: brightness(1.08);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 12px 28px rgba(68, 60, 201, 0.5);
}

.chasers-bulk-side-button:disabled {
  background: rgba(16, 22, 38, 0.8);
  border-color: rgba(158, 212, 255, 0.1);
  color: rgba(159, 176, 200, 0.5);
  box-shadow: none;
}

/* referral link field sits in the glass, not on it */
.referral-promo-link {
  background: rgba(7, 10, 20, 0.8);
  border: 1px solid rgba(158, 212, 255, 0.14);
  color: #cdd7ea;
}

/* --- sidebar refinement pass --- */

/* store credit reads gold like every other money value — the green (and the
   light theme's !important) goes; zero keeps its soft warning red */
.credit-balance-value.is-positive { color: var(--vb-gold, #e9cd97) !important; }
.credit-balance-value.is-zero { color: var(--error, #ff7a88) !important; }

/* purchase sheet: same treatment for "Current balance" */
.chasers-topup-balance-line {
  color: #8fa0bd;
  border-bottom-color: rgba(158, 212, 255, 0.14);
}
.chasers-topup-balance-line strong {
  color: var(--vb-gold, #e9cd97);
  text-shadow: none;
}

/* rarity rates: real chips instead of a text wall */
.chasers-rarity-odds-chip,
.chasers-pricing-inline .chasers-rarity-odds-chip {
  padding: 0.26rem 0.5rem;
  border-radius: 8px;
  background: rgba(158, 212, 255, 0.07);
  border: 1px solid rgba(158, 212, 255, 0.12);
}
.chasers-rarity-odds-chip b { color: #9ed4ff; }
.chasers-rarity-odds-chip em { color: var(--ink) !important; }

/* a touch more air between the stacked sidebar cards */
.chasers-stage-side-meta { gap: 0.7rem; }

/* Vault / Account read as quiet utility chips */
.chasers-credit-panel-button.is-account,
.chasers-credit-panel-button.is-vault {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.74rem;
  font-weight: 700;
}

/* Discord CTA: keep the blurple, give it depth */
.discord-credit-cta {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 10px 24px rgba(88, 101, 242, 0.32);
  transition: filter 160ms ease, box-shadow 160ms ease;
}
.discord-credit-cta:hover {
  filter: brightness(1.07);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 12px 28px rgba(88, 101, 242, 0.45);
}

/* referral card details */
.referral-promo-title { color: var(--ink); }
.referral-promo-info {
  background: rgba(10, 14, 26, 0.72);
  border: 1px solid rgba(158, 212, 255, 0.2);
  color: #9ed4ff;
}

/* chips carry their own frames now — the light theme's "|" separators
   between them are noise */
.chasers-rarity-odds-chip + .chasers-rarity-odds-chip::before {
  content: none;
}

/* =====================================================================
   HAND-TUNED: THE STAGE — "holo sanctum".
   Set-agnostic rip theater replacing the rotating Ascended art backdrops
   (rotator itself is no-op'd in index.html). Pure CSS scene: nebula
   ground, god rays, floor ring — and it REACTS: indigo at rest, gold
   flood on a hit, cool dim on a miss. All transform/opacity/filter.
   ===================================================================== */

.chasers-image-bg {
  --stage-glow: 96, 88, 220;            /* rest = the site's heavy indigo */
  /* no walls: the sitewide dome shows through — the scene adds only light.
     A rising column behind the pack and a warm pool at its feet. */
  background:
    linear-gradient(180deg, transparent 0%, rgba(var(--stage-glow), 0.05) 30%, rgba(var(--stage-glow), 0.11) 62%, transparent 88%),
    radial-gradient(30% 68% at 50% 46%, rgba(var(--stage-glow), 0.16) 0%, transparent 74%),
    radial-gradient(80% 42% at 50% 100%, rgba(var(--stage-glow), 0.26) 0%, transparent 66%);
  transition: filter 700ms ease;
}

/* hit: the room floods warm; miss: it cools and dims */
.chasers-image-bg:has(~ .chasers-pack-scene.is-hit) {
  --stage-glow: 233, 205, 151;
  filter: brightness(1.18) saturate(1.15);
}
.chasers-image-bg:has(~ .chasers-pack-scene.is-miss) {
  filter: brightness(0.8) saturate(0.75);
}



/* ---------------- mode toggle: one segmented track, above the stage ------ */

.chasers-mode-toggle,
.chasers-rip-mode-toggle,
.chasers-mobile-stage-mode-toggle {
  flex-direction: row;
  align-items: stretch;
  gap: 3px;
  padding: 3px;
  border-radius: 999px;
  background: rgba(7, 10, 20, 0.8);
  border: 1px solid rgba(158, 212, 255, 0.16);
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.45);
  width: fit-content;
}

.chasers-mode-toggle .chasers-picker-action {
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  color: #9fb0c8;
  font-weight: 700;
  transition: color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.chasers-rip-mode-toggle .chasers-picker-action { width: 6.6rem; }

.chasers-mode-toggle [data-mode-value="simulation"].is-active,
.chasers-mode-toggle [data-mode-value="live"].is-active {
  border: 0 !important;
  border-radius: 999px !important;
}

.chasers-mode-toggle [data-mode-value="simulation"].is-active {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 0 14px rgba(23, 116, 222, 0.45) !important;
}

.chasers-mode-toggle [data-mode-value="live"].is-active {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    0 0 14px rgba(207, 31, 60, 0.45) !important;
}

/* ---------------- the reveal: every card earns its moment ---------------- */






@media (prefers-reduced-motion: reduce) {
  .chasers-image-bg::before,
  .chasers-cinematic-hit.is-visible .chasers-cinematic-hit-card:not(.is-pack-origin):not(.is-from-pack):not(.is-switching),
  .chasers-cinematic-hit.is-visible .chasers-cinematic-hit-card:not(.is-pack-origin):not(.is-from-pack):not(.is-switching)::before,
  .chasers-bulk-flyer.is-uv-revealing { animation: none; }
}

/* the energy sweep existed to garnish art-backdrop swaps; with the rotator
   retired it just strands a frozen beam across the sanctum — off */
.chasers-image-bg-energy { display: none; }

/* ---- pack-filter flow (the flow actually used on pack pages): the base
   sheet zeroes flyer pseudo-elements at higher specificity, so the marvel
   layer re-arms them here with matching weight ---- */




@media (prefers-reduced-motion: reduce) {
  .chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-hit-held-final::after {
    animation: none;
  }
}

/* =====================================================================
   HAND-TUNED: THE OPEN THEATER.
   No boxed stage — the page's dome is the room, the scene only adds
   light. The pack and cards step up in size and carry the show.
   ===================================================================== */

/* the bloom is dead: the white radial blob behind revealed cards read as
   AI-glow soup; the cards' own art does the talking now */
.chasers-card-aura { display: none !important; }

/* fan cards sit above the floor pool but under the current card */
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack
  .chasers-bulk-flyer.is-live:not(.is-filter-current) {
  z-index: calc(20 + var(--bulk-stack, 0));
}

/* --- the current card: one crisp rim line, no glow soup --- */
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack
  .chasers-bulk-flyer.is-filter-current .chasers-bulk-flyer-face {
  box-shadow:
    0 22px 34px rgba(3, 8, 20, 0.5),
    0 0 0 1px rgba(158, 212, 255, 0.35);
}

/* --- the held hit: a jewel-case double ring, sharp as a bezel --- */
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack
  .chasers-bulk-flyer.is-hit-held-final .chasers-bulk-flyer-face {
  box-shadow:
    0 26px 40px rgba(3, 8, 20, 0.6),
    0 0 0 2px rgba(233, 205, 151, 0.95),
    0 0 0 5px rgba(7, 10, 20, 0.9),
    0 0 0 6px rgba(158, 212, 255, 0.45);
}

/* =====================================================================
   HAND-TUNED: THEATER v2 — scale, the concealed grail, lights-out.
   Sizes go up for real (stage taller, pack and cards larger on every
   breakpoint). The hit rides the fan in the Party-Pack grail shell —
   white-hot, spectral band drifting, unreadable — and reveals by the
   room going dark and the card's own light dying out to show the art.
   ===================================================================== */

/* ---- scale: the show deserves the room ---- */
.chasers-stage-frame { min-height: 34rem; }

.chasers-pack-art-shell { width: min(28rem, 40vw); }

.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer {
  width: var(--bulk-card-width, min(17rem, 36vw));
}

.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-filter-current {
  transform: translate(calc(-50% + var(--filter-card-center-x, 0rem)), calc(-50% - 1.2rem)) rotate(0deg) scale(1.18);
}

.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-special-held-lifted,
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-hit-held-final,
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-missed-held-final {
  transform: translate(-50%, calc(-50% - 1.2rem)) rotate(0deg) scale(1.18) !important;
}

@media (max-width: 720px) {
  .chasers-pack-art-shell { width: min(24rem, 78vw); }
  .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer {
    width: var(--bulk-card-width, 62vw);
  }
  .chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-filter-current {
    transform: translate(calc(-50% + var(--filter-card-center-x, 0rem)), calc(-50% - 1.1rem)) rotate(0deg) scale(1.12);
  }
  .chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-special-held-lifted,
  .chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-hit-held-final,
  .chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-missed-held-final {
    transform: translate(-50%, calc(-50% - 1.1rem)) rotate(0deg) scale(1.12) !important;
  }
}

/* ---- the fan: face-up, big enough to read, dealt low across the floor;
   each takes its turn front and center ---- */
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack
  .chasers-bulk-flyer.is-live:not(.is-filter-current):not(.is-filter-flick):not(.is-exit):not(.is-hit-held-final):not(.is-special-held-lifted):not(.is-missed-held-final):not(.is-hit-held-exit):not(.is-hit-held-advance) {
  transform:
    translate(
      calc(-50% + (var(--bulk-stack, 0) - 4.5) * 2.45rem),
      calc(-50% + 10.4rem))
    rotate(calc((var(--bulk-stack, 0) - 4.5) * 2.4deg))
    scale(0.52);
  opacity: 0.96;
}

.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack
  .chasers-bulk-flyer.is-live:not(.is-filter-current) {
  z-index: calc(20 + var(--bulk-stack, 0));
}

@media (max-width: 720px) {
  .chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack
    .chasers-bulk-flyer.is-live:not(.is-filter-current):not(.is-filter-flick):not(.is-exit):not(.is-hit-held-final):not(.is-special-held-lifted):not(.is-missed-held-final):not(.is-hit-held-exit):not(.is-hit-held-advance) {
    transform:
      translate(
        calc(-50% + (var(--bulk-stack, 0) - 4.5) * 1.45rem),
        calc(-50% + 10rem))
      rotate(calc((var(--bulk-stack, 0) - 4.5) * 2deg))
      scale(0.4);
  }
}

/* ---- the concealed grail: exact Party-Pack treatment. The art is blown
   to a white silhouette (never readable) under a holo shell whose
   spectral band drifts the whole time it waits in the fan. ---- */

.chasers-card-edge-cut,
.chasers-blacklight-reveal { display: none !important; }

.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-armed:not(.is-uv-revealed) img {
  filter:
    brightness(4.8)
    saturate(0)
    contrast(0.08)
    blur(1.5px)
    drop-shadow(0 0 18px rgba(255, 255, 255, 0.98))
    drop-shadow(0 0 46px rgba(143, 215, 255, 0.8));
  animation: none;
}

.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-armed:not(.is-uv-revealed) .chasers-bulk-flyer-face-front::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  /* the Party-Pack shell verbatim: an OPAQUE white holo surface with the
     spectral band drifting across it — the art underneath is unreadable
     because it is fully covered, not merely blown out */
  background:
    linear-gradient(115deg,
      transparent 26%, rgba(139, 220, 255, 0.34) 42%,
      rgba(198, 151, 255, 0.3) 52%, rgba(255, 231, 170, 0.32) 62%, transparent 78%),
    linear-gradient(145deg, #fff 0 34%, #e3f8ff 58%, #f0e6ff 78%, #fff7dc 100%);
  background-size: 240% 100%, 100% 100%;
  box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.94);
  animation: grail-shell-drift 3.4s linear infinite, grail-shell-breathe 0.5s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes grail-shell-breathe {
  from { filter: brightness(1.05) saturate(0.86); }
  to { filter: brightness(1.34) saturate(1.08); }
}

@keyframes grail-shell-drift {
  /* two layers: the band drifts, the opaque white fill stays put */
  from { background-position: 120% 0, 0 0; }
  to { background-position: -120% 0, 0 0; }
}

.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-armed:not(.is-uv-revealed) .chasers-bulk-flyer-face-front {
  box-shadow:
    0 0 0 2px rgba(255, 255, 255, 0.94),
    0 0 18px rgba(132, 218, 255, 0.72),
    0 0 34px rgba(194, 143, 255, 0.48);
  animation: grail-conceal-pulse 0.48s ease-in-out infinite alternate;
}

@keyframes grail-conceal-pulse {
  from { box-shadow: 0 0 0 2px rgba(255,255,255,.82), 0 0 13px rgba(132,218,255,.56), 0 0 25px rgba(194,143,255,.36); }
  to { box-shadow: 0 0 0 2px rgba(255,255,255,1), 0 0 24px rgba(132,218,255,.86), 0 0 42px rgba(194,143,255,.56); }
}

/* rub/charge: the band races, the pulse quickens */
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-revealing .chasers-bulk-flyer-face-front::after {
  animation-duration: 0.7s;
}
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-revealing .chasers-bulk-flyer-face-front {
  animation-duration: 0.22s;
}

/* ---- lights out: while the grail charges, the room dies to black ---- */
.chasers-image-bg:has(~ .chasers-pack-scene .chasers-bulk-flyer.is-uv-revealing) {
  filter: brightness(0.12) saturate(0.4);
  transition: filter 500ms ease;
}

.chasers-pack-scene:has(.chasers-bulk-flyer.is-uv-revealing)
  .chasers-bulk-flyer.is-live:not(.is-uv-armed) {
  opacity: 0.08;
  transition: opacity 500ms ease;
}


/* ---- the pack doesn't slide off — it sublimates: burned away bottom-up
   into the same light the dissolve particles are already throwing ---- */
.chasers-pack-scene.is-pack-filter-reveal.is-opening.is-pack-dropping .chasers-pack-art-shell {
  /* the discard: opened, done, gone — tips forward and drops out of frame.
     Physical and quick; the cards rising behind it are the show. */
  animation: theater-pack-discard 760ms cubic-bezier(.5, 0, .8, .4) forwards;
  transform-origin: 50% 100%;
}

@keyframes theater-pack-discard {
  0% { transform: perspective(1100px) rotateX(0deg) translateY(0); opacity: 1; }
  28% { transform: perspective(1100px) rotateX(10deg) translateY(0.5rem); opacity: 1; }
  100% { transform: perspective(1100px) rotateX(32deg) translateY(10rem) scale(0.9); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-armed:not(.is-uv-revealed) .chasers-bulk-flyer-face-front::after,
  .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-armed:not(.is-uv-revealed) .chasers-bulk-flyer-face-front,
  .chasers-pack-scene.is-pack-filter-reveal.is-opening.is-pack-dropping .chasers-pack-art-shell { animation-duration: 1ms; }
}

/* the pack's 86% parent cap was the real size ceiling on desktop */
.chasers-pack-art-shell { max-width: none; }

/* the desktop size cap lived in a high-specificity min-width:900px rule —
   matched here so the bigger pack actually lands */
@media (min-width: 900px) {
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-stage-body:not(.pack-builder-stage-body) .chasers-pack-art-shell {
    /* big enough that rising cards (0.53x) stay fully behind the wrapper */
    width: min(33rem, 37vw);
    max-width: none;
  }
}

/* =====================================================================
   HAND-TUNED: STAGE HEIGHT, CRISP OPEN, THE ARRIVAL, AND THE BIG ONE.
   ===================================================================== */

/* desktop gets real headroom so the front card never crops */
@media (min-width: 900px) {
  .chasers-stage-frame { min-height: 40rem; }
}

/* the "little bloom" at open was the blurred wake streak; the firework
   burst was the "bloom explosion". Both die — the slash line, the dust
   motes, and the dissolve particles carry the open now. */
.chasers-pack-scene.is-pack-filter-reveal.is-opening .chasers-pack-art-shell::before,
.chasers-fireworks-burst { display: none !important; }

/* --- the arrival: when the concealed grail takes the stage it SLAMS in —
   overshoot pop on the inner (final frame matches the revealed flip pose) */
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-special-held-lifted:not(.is-uv-revealed) .chasers-bulk-flyer-inner {
  animation: grail-arrive 660ms cubic-bezier(.2, 1.35, .3, 1) both;
}

@keyframes grail-arrive {
  0% { transform: rotateY(180deg) rotateX(-5deg) translateY(3.2rem) scale(0.72); }
  62% { transform: rotateY(180deg) rotateX(-5deg) translateY(-0.35rem) scale(1.07); }
  100% { transform: rotateY(180deg) rotateX(-5deg) translateY(0) scale(1); }
}

/* floor ring answers the arrival */
.chasers-image-bg:has(~ .chasers-pack-scene .chasers-bulk-flyer.is-special-held-lifted:not(.is-uv-revealed))::after {
  animation: sanctum-floor-flare 660ms ease-out, sanctum-floor-breathe 5200ms ease-in-out 660ms infinite;
}

@keyframes sanctum-floor-flare {
  0% { opacity: 1; filter: brightness(2.2); }
  100% { opacity: 0.85; filter: brightness(1); }
}

/* =====================================================================
   THE BIG ONE — a card worth 2x the pack or more.
   The room does not dim: it DIES. Total black, the shell's pulse slows
   into a heartbeat (double-thump, then again, hungrier), and only then
   does the light die out into the reveal.
   ===================================================================== */

.chasers-image-bg:has(~ .chasers-pack-scene.is-epic-arming .chasers-bulk-flyer.is-epic-hit) {
  filter: brightness(0.04) saturate(0.2);
  transition: filter 1100ms ease;
}

.chasers-pack-scene.is-epic-arming .chasers-bulk-flyer.is-live:not(.is-uv-armed) {
  opacity: 0.02;
  transition: opacity 900ms ease;
}

/* the shell stops drifting and starts BEATING */
.chasers-pack-scene.is-epic-arming .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-epic-hit.is-uv-armed .chasers-bulk-flyer-face-front::after {
  animation: grail-shell-drift 3.4s linear infinite, epic-heartbeat 1.15s cubic-bezier(.45,0,.55,1) infinite;
}

.chasers-pack-scene.is-epic-arming .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-epic-hit.is-uv-armed .chasers-bulk-flyer-face-front {
  animation: epic-heartbeat-ring 1.15s cubic-bezier(.45,0,.55,1) infinite;
}

@keyframes epic-heartbeat {
  0%, 100% { filter: brightness(0.72) saturate(0.8); }
  10% { filter: brightness(1.5) saturate(1.1); }
  20% { filter: brightness(0.8) saturate(0.85); }
  32% { filter: brightness(1.75) saturate(1.2); }
  46% { filter: brightness(0.72) saturate(0.8); }
}

@keyframes epic-heartbeat-ring {
  0%, 100% { box-shadow: 0 0 0 2px rgba(255,255,255,.5), 0 0 10px rgba(132,218,255,.3); }
  10% { box-shadow: 0 0 0 2px rgba(255,255,255,.95), 0 0 26px rgba(132,218,255,.8); }
  20% { box-shadow: 0 0 0 2px rgba(255,255,255,.55), 0 0 12px rgba(132,218,255,.35); }
  32% { box-shadow: 0 0 0 3px rgba(255,255,255,1), 0 0 40px rgba(132,218,255,.95); }
  46% { box-shadow: 0 0 0 2px rgba(255,255,255,.5), 0 0 10px rgba(132,218,255,.3); }
}


@media (prefers-reduced-motion: reduce) {
  .chasers-pack-scene.is-epic-arming .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-epic-hit.is-uv-armed .chasers-bulk-flyer-face-front::after,
  .chasers-pack-scene.is-epic-arming .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-epic-hit.is-uv-armed .chasers-bulk-flyer-face-front,
  .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-special-held-lifted:not(.is-uv-revealed) .chasers-bulk-flyer-inner {
    animation: none;
  }
}

/* the frame grew but the stage BODY is what the scene fills — desktop
   headroom so the front card never kisses the top edge */
@media (min-width: 900px) {
  /* the stage owns the viewport on desktop: full height less the chrome
     (nav + topbar + change-pack bar), floor-capped so laptops stay sane */
  .chasers-stage-body:not(.pack-builder-stage-body) {
    min-height: clamp(37.5rem, calc(100vh - 19rem), 58rem);
  }
}


/* the base sheet still pulsed a blurred glow on the flyer during the rub
   (chasers-edge-cut-card-pressure) — depth shadow only, no halo */
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-revealing {
  animation: none;
  filter: drop-shadow(0 22px 34px rgba(3, 8, 20, 0.45));
}


/* the room's light comes back with one clean overshoot, then holds gold */
.chasers-image-bg:has(~ .chasers-pack-scene .chasers-bulk-flyer.is-uv-revealed) {
  filter: brightness(1.18) saturate(1.15);
  animation: stage-light-return 900ms cubic-bezier(.2, .7, .2, 1);
}

@keyframes stage-light-return {
  0% { filter: brightness(0.1) saturate(0.4); }
  15% { filter: brightness(1.7) saturate(1.25); }
  100% { filter: brightness(1.18) saturate(1.15); }
}

@media (prefers-reduced-motion: reduce) {
  .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-revealed .chasers-bulk-flyer-inner::after,
  .chasers-image-bg:has(~ .chasers-pack-scene .chasers-bulk-flyer.is-uv-revealed) { animation: none; }
}



/* =====================================================================
   HAND-TUNED: THE VB DELIVERY, TRANSPLANTED WHOLE.
   The four beats, exactly as the homepage plays them:
   1) the fountain — every card bursts from the pack together, scatters
      in the air, gathers landing;
   2) iteration — lift, turn, dealer's toss;
   3) the hit — veil, charge, FLASH at the landing, light crashes to
      black, a beat, then the torch sweeps the art out of the darkness;
   4) epic (2x pack) — same ceremony with a heartbeat held in the dark.
   ===================================================================== */

/* ---- 1. the fountain ---- */
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-live {
  animation: chasers-burst-out 1560ms cubic-bezier(.28,.72,.28,1) var(--burst-delay, 0ms) both;
}

@keyframes chasers-burst-out {
  0% {
    opacity: 1;
    transform: translate(-50%, -42%) scale(0.76) rotate(0deg);
  }
  58% {
    opacity: 1;
    transform:
      translate(calc(-50% + var(--scatter-x, 0rem)), -150%)
      scale(0.78)
      rotate(var(--scatter-rot, 0deg));
  }
  86% {
    opacity: 1;
    transform:
      translate(calc(-50% + (var(--bulk-stack, 0) * 0.07rem) + (var(--scatter-x, 0rem) * 0.12)),
                calc(-50% + (var(--bulk-stack, 0) * 0.045rem) + 0.14rem))
      scale(1.006)
      rotate(calc(var(--scatter-rot, 0deg) * 0.12));
  }
  100% {
    opacity: 1;
    transform:
      translate(calc(-50% + (var(--bulk-stack, 0) * 0.07rem)), calc(-50% + (var(--bulk-stack, 0) * 0.045rem)))
      scale(1)
      rotate(0deg);
  }
}

/* the fan and the presented card release the burst's fill */
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack
  .chasers-bulk-flyer.is-live:not(.is-filter-current):not(.is-filter-flick):not(.is-exit):not(.is-hit-held-final):not(.is-special-held-lifted):not(.is-missed-held-final):not(.is-hit-held-exit):not(.is-hit-held-advance),
.chasers-pack-scene.is-stack-revealed .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-filter-current {
  animation: none;
}

/* ---- 3+4. the hit delivery ---- */

/* the veil: the room dims with the card's charge, blacks out for the
   crash, blinks with the flash — body-level, exactly as on the homepage */
.vb-hit-veil {
  position: fixed;
  inset: 0;
  z-index: 25;
  pointer-events: none;
  background: radial-gradient(62% 50% at 50% 44%,
    rgba(4, 6, 10, 0) 36%,
    rgba(4, 6, 10, .42) 72%,
    rgba(4, 6, 10, .66) 100%);
  opacity: 0;
  transition: opacity 1100ms ease;
}
.vb-hit-veil.is-live { opacity: 1; }
.vb-hit-veil.is-building {
  background: radial-gradient(56% 46% at 50% 44%,
    rgba(2, 2, 5, 0) 30%,
    rgba(2, 2, 5, .55) 52%,
    rgba(2, 2, 5, .88) 72%,
    rgba(2, 2, 5, .97) 100%);
  transition: opacity 1100ms ease, background 700ms ease;
}
.vb-hit-veil.is-flash::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(66% 56% at 50% 44%,
    rgba(255, 255, 255, .72) 0%,
    rgba(255, 250, 235, .24) 55%,
    transparent 82%);
  animation: vb-room-flash 380ms cubic-bezier(.04,.7,.16,1) forwards;
}
@keyframes vb-room-flash {
  0% { opacity: 1; }
  100% { opacity: 0; }
}

/* the FLASH at the landing: blinding, decaying hard */
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-flash .chasers-bulk-flyer-face-front {
  animation: vb-lume-flare 360ms cubic-bezier(.1,.8,.2,1) forwards;
}
@keyframes vb-lume-flare {
  0% {
    box-shadow:
      0 0 8px 5px rgba(255, 255, 255, 1),
      0 0 120px 48px rgba(255, 255, 255, 1),
      0 0 260px 100px rgba(163, 222, 255, .9),
      0 18px 28px rgba(3, 8, 20, 0.34);
  }
  100% {
    box-shadow:
      0 0 0 0 rgba(255, 255, 255, 0),
      0 0 0 0 rgba(255, 255, 255, 0),
      0 0 0 0 rgba(163, 222, 255, 0),
      0 18px 42px rgba(0, 0, 0, .8);
  }
}

/* the crash: a black cover fades IN over the white sheet — pure
   light-to-dark crossfade, the art never peeks through */
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-uv-armed .chasers-bulk-flyer-face-front::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: #05060a;
  opacity: 0;
  transition: opacity 220ms cubic-bezier(.1,.75,.25,1);
  pointer-events: none;
}
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-crash .chasers-bulk-flyer-face-front::before,
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-sweeping .chasers-bulk-flyer-face-front::before {
  opacity: 1;
}
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-crash .chasers-bulk-flyer-face-front,
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-sweeping .chasers-bulk-flyer-face-front {
  box-shadow: 0 18px 42px rgba(0, 0, 0, .8);
  transition: box-shadow 220ms cubic-bezier(.1,.75,.25,1);
  animation: none;
}

/* the torch-lit art: masked at --rev-x, following the beam out of the dark */
.vb-flyer-lit {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  opacity: 0;
  pointer-events: none;
  filter:
    brightness(1.16) saturate(1.1)
    drop-shadow(0 0 11px rgba(255, 239, 193, .82))
    drop-shadow(0 0 26px rgba(117, 205, 255, .48));
}
.chasers-bulk-flyer.is-sweeping .vb-flyer-lit,
.chasers-bulk-flyer.is-flood .vb-flyer-lit {
  opacity: 1;
}
.chasers-bulk-flyer.is-sweeping .vb-flyer-lit {
  -webkit-mask-image: linear-gradient(to right,
    #000 0%,
    #000 calc(var(--rev-x, -30%) - 26%),
    rgba(0, 0, 0, .96) calc(var(--rev-x, -30%) - 12%),
    rgba(0, 0, 0, .6) calc(var(--rev-x, -30%) + 6%),
    transparent calc(var(--rev-x, -30%) + 28%),
    transparent 100%);
  mask-image: linear-gradient(to right,
    #000 0%,
    #000 calc(var(--rev-x, -30%) - 26%),
    rgba(0, 0, 0, .96) calc(var(--rev-x, -30%) - 12%),
    rgba(0, 0, 0, .6) calc(var(--rev-x, -30%) + 6%),
    transparent calc(var(--rev-x, -30%) + 28%),
    transparent 100%);
}
.vb-rev-beam {
  position: absolute;
  inset: -8%;
  z-index: 4;
  pointer-events: none;
  border-radius: 14px;
  background: radial-gradient(
    ellipse 25% 72% at var(--rev-x, -30%) 50%,
    rgba(255, 252, 232, .78) 0%,
    rgba(218, 240, 255, .38) 28%,
    rgba(153, 210, 255, .14) 52%,
    transparent 76%);
  mix-blend-mode: screen;
  filter: blur(7px);
  opacity: 0;
}
.chasers-bulk-flyer.is-sweeping .vb-rev-beam { opacity: .9; }

/* the floodlight: sweep complete, the glow breathes in — party handoff */
.chasers-bulk-flyer.is-flood .vb-flyer-lit {
  animation: vb-flood-breathe 1200ms ease forwards;
}
@keyframes vb-flood-breathe {
  0% {
    filter:
      brightness(1.16) saturate(1.1)
      drop-shadow(0 0 11px rgba(255, 239, 193, .82))
      drop-shadow(0 0 26px rgba(117, 205, 255, .48));
  }
  100% { filter: brightness(1) saturate(1); }
}

/* flood releases the conceal: the shell and its pulse stand down */
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-flood .chasers-bulk-flyer-face-front::after,
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-flood .chasers-bulk-flyer-face-front::before {
  display: none !important;
}
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-flood .chasers-bulk-flyer-face-front {
  animation: none;
  box-shadow: 0 22px 34px rgba(3, 8, 20, 0.5);
}
.chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-flood img {
  filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .vb-hit-veil { transition: none; }
  .vb-rev-beam { opacity: 0 !important; }
  .chasers-pack-bulk-pile.is-pack-filter-stack .chasers-bulk-flyer.is-live { animation-duration: 1ms; }
}


/* the pack sat low on the stage (centre at ~57% of the viewport on a
   laptop). The shell's stock 2.18rem top margin is most of it — trimming
   it lifts the pack and the resting hit that lands in its place. */
@media (min-width: 900px) {
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-stage-body:not(.pack-builder-stage-body) .chasers-pack-art-shell {
    margin-top: 0.4rem;
  }
}

/* Reclaim the dead space stacked above the stage on desktop (panel pad +
   topbar pad + frame gap + body pad came to ~35px of nothing), so the pack
   and the hit that rests in its place sit nearer the eye. */
@media (min-width: 900px) {
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-play-panel { padding-top: 0.3rem; }
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-rip-topbar { padding-top: 0.2rem; }
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-stage-frame { gap: 0.5rem; }
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-stage-body:not(.pack-builder-stage-body) { padding-top: 0.2rem; }
}

/* =====================================================================
   The stage pack, cropped to the pack.
   The stage arts are padded 1100x1100 squares whose opaque pack fills
   about 51% of the width, so object-fit rendered a box that was half
   empty: on a phone the pack came out 154px wide inside a 301px box.
   JS measures the opaque region and hands over --fx/--fy (its size as a
   fraction of the file) and --ox/--oy (where it starts); the image is
   then scaled and offset so that region exactly fills the shell. The
   cinema's pack is built the same way, so the pre-open stage and the
   opening sequence now share one geometry and the handoff has nothing
   left to jump between.
   ===================================================================== */
/* The box is sized in JS (layoutPackBox) in real pixels. Every CSS route
   tried here lost to the cascade or to grid stretch, and a wrong-aspect
   box visibly distorts the art now that the image fills it — so the one
   place that knows the pack's true ratio sets both dimensions outright. */
.chasers-pack-art-shell.is-art-cropped {
  justify-self: center;
  align-self: center;
  margin-top: 0;
  /* it floats: transform-only, so it never fights the centring that
     justify/align-self now handle */
  animation: rcx-stage-float 4.6s ease-in-out infinite;
  transform-origin: 50% 62%;
}
@keyframes rcx-stage-float {
  0%, 100% { transform: translateY(0) rotate(-0.9deg); }
  50%      { transform: translateY(-1.6%) rotate(0.9deg); }
}

.chasers-pack-art-shell.is-art-cropped .chasers-pack-art,
.chasers-pack-art-shell.is-art-cropped .chasers-pack-art-top {
  position: absolute;
  width: calc(100% / var(--fx, 1));
  height: calc(100% / var(--fy, 1));
  left: calc(-1 * var(--ox, 0) * 100% / var(--fx, 1));
  top: calc(-1 * var(--oy, 0) * 100% / var(--fy, 1));
  max-width: none;
  object-fit: fill;
}

.chasers-pack-art-shell.is-art-cropped .chasers-pack-art-top {
  background-size: 100% 100%;
  background-position: 0 0;
}

@media (max-width: 720px) {
  /* the phone is where this mattered: the pack now stands nearly two
     thirds of the screen wide instead of a third */
  .chasers-pack-art-shell.is-art-cropped { margin-top: 0; }
}

/* The phone put the pack 47% of the way down the screen. Nothing above it
   was earning that space: a 95px helper line ("Hits appear here once you
   select cards") sat over a strip that already labels itself, on top of
   two stacked 16px panel paddings. */
@media (max-width: 720px) {
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-rip-mobile-meta { display: none; }
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-play-panel { padding-top: 0.35rem; }
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-stage-body:not(.pack-builder-stage-body) {
    padding-top: 0.35rem;
  }
  .chasers-shell:not([data-homepage-variant="a"]) .chasers-mobile-stage-mode { padding-block: 0.2rem; }
}

/* On a wide monitor the brand sat against the far left edge and the menu
   against the far right, because the bar only had gutter padding. The bar
   itself stays full bleed (it is sticky and needs to span), but its
   CONTENTS now stop at the same 72rem the page sections use, so the
   lockup lines up with the content underneath instead of drifting out to
   the corners. */
.vb-bar {
  /* The bar's contents stop a little OUTSIDE the 72rem content column (80rem
     when the screen allows): the lockup sits a touch left of the content
     edge and the menu a touch right, so the nav reads as the frame around
     the page rather than one more column inside it. Narrow screens still
     fall back to the gutter. */
  padding-inline: max(var(--vb-gutter), (100% - var(--vb-nav-max-width, 80rem)) / 2);
}

/* the 5-pack minimum is a purchase decision, so it is locked for the
   duration of a run: the packs on screen must match what was paid for */
.rtyh-min5-bar.is-locked {
  opacity: 0.45;
  pointer-events: none;
  filter: saturate(0.5);
}

/* =====================================================================
   HAND-TUNED: Rarity Run play stage = the pack page stage, verbatim.

   The run screen predates the dark pass: it was built as a white card
   (.rtyh-stage-card) with a header strip, and the generated section only
   ever repainted that box dark. A pack page has no box at all — the pack
   stands free on the room itself. This strips the frame so both screens
   are the same stage, and the shared .chasers-* rules above then do the
   rest of the work with no duplication.
   ===================================================================== */
.rtyh-shell-play .rtyh-stage-card {
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 0;
}
/* the header strip becomes a floating label over the room, not a bar */
.rtyh-shell-play .rtyh-stage-head {
  border: 0;
  background: none;
  box-shadow: none;
  padding: 0 0 0.35rem;
  margin: 0;
}
.rtyh-shell-play .rtyh-stage-head::after { content: none; }
.rtyh-shell-play .rtyh-stage-body {
  border: 0;
  background: none;
  box-shadow: none;
  padding-inline: 0;
}
/* the run target reads as the pack name does on a pack page */
.rtyh-shell-play .rtyh-stage-head strong {
  font-size: 1.02rem;
  letter-spacing: 0.01em;
}
/* the mode chip matches the stage's own controls instead of a form button */
.rtyh-shell-play .rtyh-stage-mode-chip {
  border: 1px solid rgba(158, 212, 255, 0.16);
  background: linear-gradient(180deg, rgba(24, 30, 52, 0.82), rgba(12, 16, 30, 0.88));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(3, 8, 20, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Money on the run screen reads gold, exactly as it does on a pack page.
   The run was still carrying the light theme's #0f8b43 green, which is the
   one colour the pack pages deliberately dropped. */
.rtyh-shell-play .rtyh-sidebar-price,
.rtyh-shell-play [data-rtyh-total-value],
.rtyh-shell-play [data-rtyh-bulk-value],
.rtyh-shell-play .rtyh-min5-bar-text strong,
.rtyh-shell-play .rtyh-min5-bar-text strong em,
.rtyh-shell-play .rtyh-hit-value {
  color: var(--vb-gold, #e9cd97);
}

/* the run summary + hit list are the same obsidian glass as the pack page's
   side panels, so the two screens end on the same material */
.rtyh-shell-play .rtyh-results-card,
.rtyh-shell-play .rtyh-sidebar-card {
  background: linear-gradient(180deg, rgba(24, 30, 52, 0.82) 0%, rgba(12, 16, 30, 0.88) 100%);
  border: 1px solid rgba(158, 212, 255, 0.14);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 14px 34px rgba(3, 8, 20, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* --- the run screen on a phone, laid out like a pack page --- */
@media (max-width: 720px) {
  /* The pack sat 490px down a 844px screen: two full info cards and a
     duplicate "Run Target" strip were stacked on top of it. A pack page
     puts the mode toggle above the stage and everything else below, so
     the sidebar dissolves into the page grid and its cards are ordered
     individually. */
  .rtyh-shell-play .rtyh-sidebar { display: contents; }
  /* target first so they can change it before committing, then the stage,
     then everything that only matters once the run is done */
  .rtyh-shell-play .rtyh-sidebar > .rtyh-sidebar-card:not(.rtyh-mode-card) { order: 1; }
  .rtyh-shell-play .rtyh-stage-card { order: 2; }
  .rtyh-shell-play .rtyh-mode-card { order: 3; }
  .rtyh-shell-play .rtyh-sidebar > .rtyh-bulk-panel { order: 4; }
  /* the referral link is the least urgent thing on the page */
  .rtyh-shell-play .referral-promo-card,
  .rtyh-shell-play [class*="discord-credit-cta"] { order: 5; }

  /* the target chip reads as one line, not a paragraph */
  .rtyh-shell-play .rtyh-sidebar-card:not(.rtyh-mode-card) {
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 0.2rem 0.5rem;
    padding: 0.7rem 0.85rem;
  }
  .rtyh-shell-play .rtyh-sidebar-card > .chasers-credit-panel-button {
    grid-column: 1 / -1;
    margin-top: 0.35rem;
    padding-block: 0.5rem;
  }

  /* the stage toggle sits closer in on a phone */
  .rtyh-stage-mode { top: 0.6rem; left: 0.7rem; }
  .rtyh-stage-mode-opt { padding: 0.3rem 0.62rem; font-size: 0.62rem; letter-spacing: 0.1em; }

  /* the head only restated the target and the mode, both of which are
     already on screen — it was pure height */
  .rtyh-shell-play .rtyh-stage-head { display: none; }
}

/* =====================================================================
   HAND-TUNED: Rarity Run play screen, decluttered.
   The mode toggle lives on the stage now, the sidebar is a target chip
   and a balance panel, and the referral card sits at the bottom.
   ===================================================================== */

/* --- the mode toggle, on the stage opposite the sound control --- */
.rtyh-stage-mode {
  position: absolute;
  top: 0.9rem;
  left: 1rem;
  z-index: 30;
  /* the stage itself is pointer-events:none so the room behind stays
     clickable — its controls have to opt back in, the way Sound does */
  pointer-events: auto;
  display: inline-flex;
  padding: 2px;
  border-radius: 999px;
  border: 1px solid rgba(158, 212, 255, 0.16);
  background: linear-gradient(180deg, rgba(24, 30, 52, 0.82), rgba(12, 16, 30, 0.88));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(3, 8, 20, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.rtyh-stage-mode-opt {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 0.34rem 0.78rem;
  background: transparent;
  color: #8fa0bd;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1;
  cursor: pointer;
  transition: color 200ms ease, background 200ms ease;
}
.rtyh-stage-mode-opt { pointer-events: auto; }
.rtyh-stage-mode-opt:hover { color: #cfe0ff; }
/* sim is frost: cool, free, no commitment */
.rtyh-stage-mode-opt[data-mode-value="simulation"].is-active {
  color: #08131f;
  background: linear-gradient(180deg, #dcecff, #a8ccf0);
  box-shadow: 0 2px 10px rgba(120, 170, 230, 0.28);
}
/* live spends real credit, so it reads in the page's own red rather than a
   flat alert colour — deep base, warm rim, white type */
.rtyh-stage-mode-opt[data-mode-value="live"].is-active {
  color: #fff5f4;
  background: linear-gradient(180deg, #c8384a, #9d2233);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 2px 10px rgba(157, 34, 51, 0.45);
}
.rtyh-stage-mode-opt:disabled { opacity: 0.4; cursor: default; }
.rtyh-stage-mode-opt:focus-visible { outline: 2px solid #e9cd97; outline-offset: 2px; }

/* --- the target chip: what you are chasing, and how to change it --- */
.rtyh-shell-play .rtyh-sidebar-card:not(.rtyh-mode-card) {
  display: grid;
  gap: 0.3rem;
}
.rtyh-shell-play .rtyh-sidebar-card > .chasers-credit-panel-button { margin-top: 0.5rem; }

/* one line: "RARITY RUN:  IR or better" — the run is a chip, not a billboard */
.rtyh-target-line {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  margin: 0;
  white-space: nowrap;
  color: var(--ink);
}
.rtyh-target-line span {
  color: #8fa0bd;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.rtyh-target-line strong {
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.01em;
}

/* the referral eyebrow was a saturated blue on near-black: frost it */
.referral-promo-card .referral-promo-eyebrow,
.rtyh-shell-play .referral-promo-eyebrow {
  color: #b9d4f2;
  letter-spacing: 0.16em;
}
.rtyh-shell-play .referral-promo-link {
  color: #cfe0ff;
  background: rgba(10, 14, 26, 0.72);
  border-color: rgba(158, 212, 255, 0.16);
}

/* --- the welcome gate on rip surfaces (see _rip_welcome.html) --- */
.rip-welcome {
  position: fixed;
  inset: 0;
  z-index: 12500;
  display: grid;
  place-items: center;
  padding: 1rem;
}
.rip-welcome[hidden] { display: none !important; }
body.has-rip-welcome { overflow: hidden; }
.rip-welcome-veil {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(124, 92, 255, 0.22), transparent 70%),
    radial-gradient(40% 40% at 85% 90%, rgba(62, 230, 255, 0.12), transparent 70%),
    rgba(4, 7, 16, 0.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.rip-welcome-card {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 0.55rem;
  width: min(100%, 26.5rem);
  max-height: calc(100vh - 2rem);
  padding: 1.7rem 1.5rem 1.4rem;
  border-radius: 18px;
  border: 1px solid rgba(158, 212, 255, 0.16);
  background: linear-gradient(180deg, rgba(24, 30, 52, 0.94) 0%, rgba(11, 15, 28, 0.97) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 30px 80px rgba(3, 8, 20, 0.7),
    0 0 60px rgba(124, 92, 255, 0.12);
  text-align: center;
  animation: rip-welcome-in 560ms cubic-bezier(.2, .9, .25, 1) both;
}
@keyframes rip-welcome-in {
  from { opacity: 0; transform: translateY(18px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.rip-welcome-close {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  width: 2.1rem;
  height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(158, 212, 255, 0.18);
  background: rgba(10, 14, 26, 0.7);
  color: #9fb2d3;
  font-size: 0.8rem;
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease;
}
.rip-welcome-close:hover { color: #fff; border-color: rgba(158, 212, 255, 0.45); }
.rip-welcome-kicker {
  margin: 0.5rem 0 0;
  color: #8fa0bd;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
/* the title wears the same iridescence as the slider label and the cinema's
   points line — one material across the whole rip surface */
.rip-welcome-title {
  margin: 0;
  font-size: clamp(1.55rem, 6.4vw, 2.15rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-wrap: balance;
  background-image: linear-gradient(100deg, #3ee6ff, #7c5cff 30%, #ff5ce1 55%, #ffd35c 78%, #3ee6ff);
  background-size: 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.9)) drop-shadow(0 0 14px rgba(124, 92, 255, 0.3));
}
.rip-welcome-copy {
  margin: 0.2rem 0 0.4rem;
  max-width: 30ch;
  color: #c9d4ea;
  font-size: 0.98rem;
  line-height: 1.5;
  text-wrap: pretty;
}
.rip-welcome-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
  width: 100%;
  margin-top: 0.3rem;
}
.rip-welcome-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0 1rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: transform 140ms ease, filter 160ms ease, box-shadow 160ms ease;
}
.rip-welcome-btn:hover { transform: translateY(-1px); filter: brightness(1.08); }
.rip-welcome-btn:active { transform: translateY(0); }
/* live is red, sim is frost — the same pair as the stage toggle */
.rip-welcome-btn.is-live {
  color: #fff;
  background: linear-gradient(180deg, #c8384a, #9d2233);
  border-color: rgba(255, 150, 160, 0.35);
  box-shadow: 0 10px 26px rgba(157, 34, 51, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.rip-welcome-btn.is-sim {
  color: #0d1a30;
  background: linear-gradient(180deg, #dcecff, #a8ccf0);
  border-color: rgba(220, 236, 255, 0.5);
  box-shadow: 0 10px 26px rgba(60, 120, 200, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
@media (prefers-reduced-motion: no-preference) {
  .rip-welcome-title { animation: rip-welcome-holo 7s linear infinite; }
  @keyframes rip-welcome-holo { to { background-position: 300% 50%; } }
}
@media (prefers-reduced-motion: reduce) {
  .rip-welcome-card { animation: none; }
}
@media (max-width: 480px) {
  /* centred on phones too: the bottom-sheet placement read as an afterthought */
  .rip-welcome { padding: 1rem; align-items: center; }
  .rip-welcome-card { padding: 1.5rem 1.15rem 1.15rem; border-radius: 20px; }
  .rip-welcome-copy { font-size: 0.94rem; }
  .rip-welcome-btn { min-height: 2.9rem; font-size: 0.78rem; letter-spacing: 0.06em; }
}

/* =====================================================================
   HAND-TUNED: secondary buttons on the dark site. Placed after the
   generated layer on purpose — these win, and a regenerate cannot undo
   them.

   The generator maps light backgrounds to dark ones, but it can only see
   background-COLOR. .secondary-button paints its surface with a white
   linear-gradient (a background-image), so the generator flipped the text
   to light ink and left the white gradient standing: near-white on
   near-white. That is the whited-out "Load more history" in the vault,
   and the same for Back to Vault, Cancel request and Keep. Give it the
   dark surface .ghost-button already got.
   ===================================================================== */
.secondary-button {
  color: var(--ink);
  background-image: none;
  background-color: rgba(16, 22, 38, 0.81);
  border: 1px solid rgba(158, 212, 255, 0.22);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
/* the light hover repaints the gradient with the `background` shorthand,
   so the hover has to be answered in kind */
.secondary-button:hover {
  background-image: none;
  background-color: rgba(16, 22, 38, 0.92);
  border-color: rgba(158, 212, 255, 0.34);
}
.secondary-button:disabled,
.secondary-button[disabled] {
  color: rgba(232, 238, 247, 0.55);
  background-color: rgba(16, 22, 38, 0.55);
}
/* the ripbags "next" variant keeps its deliberate white pill (it sets
   background and color with !important in styles.css) — leave it alone */
.secondary-button.ripbags-next-button,
.secondary-button.ripbags-next-button:hover {
  background-color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    inset 0 0 0 1px rgba(23, 116, 222, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    inset 0 -4px 0 rgba(23, 116, 222, 0.12),
    0 14px 24px rgba(13, 99, 199, 0.10);
}

/* =====================================================================
   HAND-TUNED: the generator's remaining blind spots, sitewide.

   tools/gen_dark_theme.py can only map a background-COLOR, so it skipped
   every surface painted with a `background` shorthand gradient and left
   the light text standing on it. It also cannot see a hard-coded dark
   accent colour that was only ever legible on white. Both classes of
   miss are answered here, after the generated layer, so a regenerate
   cannot undo them.
   ===================================================================== */

/* The primary CTA. White gradient pill + var(--ink) text = invisible.
   Match the solid blue the dark site already uses for .vault-primary-link. */
.primary-button,
.solid-link {
  background-image: none;
  background-color: #1268d8;
  color: #fff;
  border: 1px solid rgba(158, 212, 255, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 10px 22px rgba(8, 46, 110, 0.45);
}
.primary-button:hover,
.solid-link:hover {
  background-image: none;
  background-color: #2179ea;
}
.primary-button:disabled,
.primary-button[disabled] {
  background-color: rgba(18, 104, 216, 0.4);
  color: rgba(255, 255, 255, 0.62);
  box-shadow: none;
}
/* "Pay with store credit" — same gradient miss, kept green to stay distinct */
.shipping-review-actions > .shipping-credit-button {
  background-image: none;
  background-color: rgba(20, 138, 96, 0.92);
  color: #fff;
  border: 1px solid rgba(120, 240, 190, 0.3);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 10px 22px rgba(4, 60, 40, 0.45);
}
.shipping-review-actions > .shipping-credit-button:hover {
  background-image: none;
  background-color: rgba(24, 158, 110, 0.96);
}

/* Accent inks that were only ever legible on white. --crimson-red and
   --shiny-blue are defined in styles.css and never redefined here, so the
   eyebrow and every "shiny blue" label sat dark-on-dark. */
.eyebrow { color: #7fa8e8; }
.module-chip-positive { color: #58d9a0; }
.ship-summary-toggle { color: #7fc4ff; }
.ship-bulk-note { color: #e2c268; }
/* --green is undefined repo-wide, so these resolved to #0d8a5f on dark */
.ship-merge-copy > strong,
.ship-summary-row.is-insurance.is-on .ship-summary-copy strong,
.ship-summary-row.is-insurance.is-on .ship-shield { color: #56d6a2; }
.shipping-review-service-title strong { color: #8fc4ff; }

/* Two shipping surfaces the generator could not reach: one !important
   white tile, one gradient panel. */
.shipping-review-totalbar-due {
  background: rgba(18, 25, 44, 0.95) !important;
  border-color: rgba(158, 212, 255, 0.2) !important;
}
.shipping-review-service-card {
  background-image: none;
  background-color: rgba(16, 22, 38, 0.92);
}
/* The order and address cards declare their own white gradient and only
   survive because they also carry .search-panel. Answer them directly so
   they cannot go white if that class is ever dropped. */
.shipping-review-order-card,
.shipping-review-address-card {
  background-image: none;
  background-color: rgba(16, 22, 38, 0.92);
}
/* .shipping-inline-alert has no rule anywhere, so .flash-stack's fixed
   positioning turned this page-level notice into a floating toast over
   the header. Put it back in the document. */
.shipping-inline-alert {
  position: static;
  transform: none;
  left: auto;
  top: auto;
  z-index: auto;
  pointer-events: auto;
  margin: 0 0 1rem;
}

/* Labels with no base rule at all, so they inherited body ink and vanished
   on any pale surface. Give them the muted ink they were always meant to
   have. */
.field-label { color: var(--muted); }
.results-meta { color: var(--muted); }

/* --- Custom Pack / Select Your Cards ---------------------------------
   .chasers-config-panel is the surface the whole selection screen sits
   on, and it paints itself with a `background` shorthand carrying two
   gradients, so the generator skipped it: a near-white sheet under text
   that had been flipped to near-white ink. Everything else on that
   screen was already mapped; this one panel was the ugliness. */
.chasers-config-panel {
  background-image:
    radial-gradient(circle at top right, rgba(96, 88, 220, 0.16), transparent 38%),
    linear-gradient(180deg, rgba(20, 27, 46, 0.94), rgba(13, 18, 33, 0.92));
  background-color: rgba(13, 18, 33, 0.92);
}
/* The picker chips keep a navy-mixed ink and a white top hairline from
   the light sheet they were drawn for. */
.chasers-picker-toolbar .chasers-picker-action,
.chasers-picker-toolbar .chasers-picker-action:hover {
  color: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
}
/* Latent white gradients on the same control, unreachable by the
   generator and currently masked only by ancestor rules. */
.chasers-picker-action,
.chasers-picker-action.is-active {
  background-image: none;
}
/* The card divider was drawn as a dark hairline for a white card. */
.chasers-choice-card-rule {
  background-image: linear-gradient(90deg, rgba(158, 212, 255, 0), rgba(158, 212, 255, 0.22), rgba(158, 212, 255, 0));
}
.chasers-choice-card-surcharge { color: #56d6a2; }

/* =====================================================================
   HAND-TUNED: the account page, dark and rebuilt.

   styles.css:11074 sets `.account-shell .search-panel, … { background:
   var(--pearl-white) }` at specificity (0,2,0), which outranks every
   (0,1,0) rule the generator emitted — so Account Activity, Shipping
   Activity, Shipping Address and Profile all rendered white with light
   ink on them. Everything here is scoped under .account-shell so it wins
   on specificity, and the layout is reworked in the same pass.
   ===================================================================== */
.account-shell {
  --acct-surface: rgba(17, 23, 40, 0.92);
  --acct-surface-2: rgba(12, 17, 31, 0.75);
  --acct-line: rgba(158, 212, 255, 0.14);
  --acct-line-strong: rgba(158, 212, 255, 0.26);
}

/* ── surfaces ─────────────────────────────────────────────────────── */
.account-shell .search-panel,
.account-shell .account-section-collapse,
.account-shell .account-card,
.account-shell .account-balance-panel,
.account-shell .account-snapshot-panel,
.account-shell .account-pack-studio {
  background: var(--acct-surface);
  border: 1px solid var(--acct-line);
  border-radius: 16px;
  box-shadow: 0 18px 40px rgba(3, 8, 20, 0.45);
}
.account-shell .account-token-history-row,
.account-shell .account-shipping-row {
  background: var(--acct-surface-2);
  border: 1px solid var(--acct-line);
  border-radius: 12px;
}
/* the top-up form was the odd white panel inside an otherwise dark card */
.account-shell .account-topup-form-v2 {
  background-image: none;
  background-color: rgba(10, 15, 28, 0.6);
  border-radius: 14px;
}
.account-shell .account-history-filter-select {
  background-image: none;
  background-color: rgba(10, 14, 26, 0.85);
  color: var(--ink);
}
.account-shell .checkout-country-warning {
  background: rgba(191, 16, 41, 0.16);
  border: 1px solid rgba(255, 122, 136, 0.3);
  color: #ffb3bc;
}
.account-shell .vault-status-pill {
  background: rgba(18, 104, 216, 0.2);
  color: #8fc4ff;
}
.account-shell .account-shipping-link {
  background: rgba(18, 104, 216, 0.16);
  color: #8fc4ff;
}
.account-shell .account-shipping-link:hover { background: rgba(18, 104, 216, 0.28); color: #fff; }
.account-shell .search-rule-label { color: var(--ink); }
.account-shell .search-rule { border-color: var(--acct-line); }
.account-shell .field-label { color: var(--muted); }
.account-shell .results-meta { color: var(--muted); }
.account-shell .account-recovery-result {
  background: rgba(10, 15, 28, 0.7);
  border: 1px solid var(--acct-line);
}

/* ── layout ───────────────────────────────────────────────────────── */
.account-shell .account-dashboard-top {
  grid-template-columns: minmax(0, 1.55fr) minmax(17rem, 0.75fr);
  gap: 1.1rem;
  align-items: start;
}
/* the three snapshot figures read as a stat rail, not a stack of rows */
.account-shell .account-snapshot-panel { padding: 0.35rem; gap: 0.35rem; }
.account-shell .account-snapshot-card {
  padding: 0.9rem 1rem;
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: 12px;
  background: rgba(10, 15, 28, 0.55);
}
.account-shell .account-snapshot-card span {
  font-size: 0.66rem; font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: #8fa0bd;
}
.account-shell .account-snapshot-card strong {
  color: #fff; font-size: 1.7rem; font-variant-numeric: tabular-nums;
}
.account-shell .account-snapshot-card strong.is-pending { color: #ffc46b; }
.account-shell .account-snapshot-card small { color: var(--muted); }

.account-shell .account-grid-refined {
  grid-template-columns: minmax(0, 1.3fr) minmax(21rem, 0.7fr);
  gap: 1.1rem;
  align-items: start;
}

/* ── the pack breakdown ───────────────────────────────────────────── */
.account-shell .account-pack-studio { padding: 1.2rem; gap: 1.1rem; }
.account-shell .account-section-title {
  border-bottom: 1px solid var(--acct-line);
  align-items: end;
}
.account-shell .account-section-title h2 { color: #fff; }
.account-shell .account-section-title > div > span {
  font-size: 0.66rem; font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: #8fa0bd;
}
.account-pack-studio-note {
  max-width: 26rem; margin: 0; color: var(--muted);
  font-size: 0.8rem; line-height: 1.45; text-align: right;
}
.account-shell .account-pack-summary-grid {
  grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
  gap: 0.7rem;
}
/* one tile per product; the tone is a top edge, not a left slab */
.account-shell .account-pack-summary-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  padding: 0.95rem 1rem 1rem;
  border: 1px solid var(--acct-line);
  border-left-width: 1px;
  border-radius: 14px;
  background: linear-gradient(168deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.015));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  overflow: hidden;
}
.account-shell .account-pack-summary-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--acct-tone, #8fa0bd);
}
.account-shell .account-pack-summary-card.is-blue { --acct-tone: #4d9bff; }
.account-shell .account-pack-summary-card.is-red { --acct-tone: #ff6b7d; }
.account-shell .account-pack-summary-card.is-green { --acct-tone: #4ad39b; }
.account-shell .account-pack-summary-card.is-purple { --acct-tone: #b18bff; }
.account-shell .account-pack-summary-card.is-black { --acct-tone: #9fb0c8; }
.account-shell .account-pack-summary-main { display: grid; gap: 0.12rem; }
.account-shell .account-pack-summary-main span {
  font-size: 0.62rem; font-weight: 800; letter-spacing: 0.13em;
  text-transform: uppercase; color: #8fa0bd;
}
.account-shell .account-pack-summary-main strong {
  color: #f1f5ff; font-size: 0.98rem; line-height: 1.25;
}
.account-pack-summary-figures {
  display: flex; align-items: flex-end; gap: 1.1rem; margin-top: auto;
}
.account-pack-figure { display: flex; flex-direction: column; gap: 0.1rem; }
.account-pack-figure b {
  color: #fff; font-size: 1.35rem; line-height: 1; font-variant-numeric: tabular-nums;
}
.account-pack-figure span {
  font-size: 0.6rem; font-weight: 800; letter-spacing: 0.11em;
  text-transform: uppercase; color: #8fa0bd;
}
.account-pack-figure.is-quiet b { font-size: 1.02rem; color: var(--acct-tone, #cfe0f6); }
.account-pack-summary-note {
  margin: 0; padding-top: 0.55rem; border-top: 1px solid var(--acct-line);
  color: var(--muted); font-size: 0.74rem; font-variant-numeric: tabular-nums;
}

/* ── the four side panels ─────────────────────────────────────────── */
.account-shell .account-section-collapse { overflow: hidden; }
.account-shell .account-section-summary {
  padding: 0.95rem 1.1rem;
  cursor: pointer;
  list-style: none;
}
.account-shell .account-section-summary::-webkit-details-marker { display: none; }
.account-shell .account-section-collapse[open] .account-section-summary {
  border-bottom: 1px solid var(--acct-line);
}
.account-shell .account-section-body { padding: 1rem 1.1rem 1.15rem; }
.account-shell .account-section-note { color: var(--muted); }

@media (max-width: 1080px) {
  .account-shell .account-dashboard-top,
  .account-shell .account-grid-refined { grid-template-columns: minmax(0, 1fr); }
  .account-shell .account-snapshot-panel {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  }
  .account-pack-studio-note { text-align: left; }
}
@media (max-width: 640px) {
  .account-shell .account-section-title { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
  .account-shell .account-pack-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
  .account-shell .account-pack-summary-card { padding: 0.75rem 0.7rem 0.8rem; gap: 0.55rem; }
  .account-shell .account-pack-summary-main strong { font-size: 0.88rem; }
  .account-pack-summary-figures { gap: 0.7rem; }
  .account-pack-figure b { font-size: 1.15rem; }
  .account-pack-figure.is-quiet b { font-size: 0.92rem; }
  .account-shell .account-snapshot-card strong { font-size: 1.45rem; }
  .account-shell .account-section-body { padding: 0.85rem 0.8rem 0.95rem; }
  .account-shell .account-section-summary { padding: 0.85rem 0.8rem; }
}

/* The old main/side split left the whole lower-left of the page empty
   once the pack tiles ran out, while the four panels stacked into one
   very tall right-hand rail. Give the breakdown the full width and lay
   the panels out beneath it. */
.account-shell .account-grid-refined {
  grid-template-columns: minmax(0, 1fr);
  gap: 1.1rem;
}
.account-shell .account-column-side {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr));
  gap: 1.1rem;
  align-items: start;
}
.account-shell .account-pack-summary-grid {
  grid-template-columns: repeat(auto-fill, minmax(248px, 1fr));
}
/* the shipment link is a chip, not a block */
.account-shell .account-shipping-link {
  display: inline-flex;
  align-items: center;
  width: auto;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  font-size: 0.78rem;
  white-space: nowrap;
}

/* Ordering: the full-width grid rule above is unconditional, so the
   narrow-screen column counts have to be restated after it. */
@media (max-width: 640px) {
  .account-shell .account-pack-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
  }
}
@media (max-width: 380px) {
  .account-shell .account-pack-summary-grid { grid-template-columns: minmax(0, 1fr); }
}
/* the activity filter was floating centred with a gap above it */
.account-shell .account-history-toolbar {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 0.75rem;
}
.account-shell .account-history-filter { margin: 0; }

@media (max-width: 640px) {
  /* two tiles to a row is tight, so the unit labels get their own line
     each instead of wrapping mid-phrase */
  .account-pack-summary-figures {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    align-items: end;
  }
  .account-pack-figure span { font-size: 0.55rem; letter-spacing: 0.05em; }
  .account-shell .account-pack-summary-main span {
    font-size: 0.58rem; letter-spacing: 0.08em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
}

/* --- Shipping checkout ------------------------------------------------
   .search-rule has no base rule anywhere, so on these pages the panel
   title and its right-hand value ran together as inline text ("Review
   Address and Pay Confirm before checkout"). Give the shipping panels
   the header row they were written for. */
.shipping-review-order-card > .search-rule,
.shipping-review-address-card > .search-rule {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding-bottom: 0.7rem;
  margin-bottom: 0.9rem;
  border-bottom: 1px solid rgba(158, 212, 255, 0.14);
}
.shipping-review-order-card > .search-rule .search-rule-label,
.shipping-review-address-card > .search-rule .search-rule-label {
  color: #fff;
  font-size: 1.02rem;
  font-weight: 800;
}
.shipping-review-address-card > .results-meta { margin-bottom: 1rem; }
.shipping-review-totalbar-due { border-left: 3px solid #4d9bff !important; }

/* The .primary-button fix above lands in a later file than styles.css, so
   at equal specificity it was also repainting the buttons that already
   declare their own surface. Hand them back. */
.chasers-apply-dock-button {
  background-image: linear-gradient(180deg, #bf1029 0%, #8f1630 100%);
  background-color: #bf1029;
  border: 1px solid rgba(143, 22, 48, 0.98);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    inset 0 -3px 0 rgba(92, 8, 26, 0.48),
    0 10px 20px rgba(92, 8, 26, 0.2);
}
.chasers-apply-dock-button:hover,
.chasers-apply-dock-button:focus-visible {
  background-image: linear-gradient(180deg, #cc1734 0%, #8f1630 100%);
  background-color: #cc1734;
  border-color: rgba(92, 8, 26, 0.98);
}
/* its disabled state paints a translucent grey, so the blue underneath
   from the .primary-button:disabled fix tinted through */
.chasers-apply-dock-button:disabled {
  background-color: rgba(145, 154, 168, 0.9);
}

/* --- The balance and add-credit panel --------------------------------
   It read as three stacked forms with a pink warning wedged between the
   balance and the first field. Now: the balance leads, the amount is one
   step (four chips or your own number), one button ends it, and the
   payments note is quiet fine print beside that button. */
.account-shell .account-balance-panel { padding: 1.35rem 1.4rem 1.4rem; }
.account-shell .account-balance-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.2rem;
  flex-wrap: wrap;
  padding-bottom: 1.15rem;
  margin-bottom: 1.15rem;
  border-bottom: 1px solid var(--acct-line);
}
.account-shell .account-balance-copy { display: grid; gap: 0.28rem; min-width: 0; }
.account-shell .account-balance-copy > span {
  font-size: 0.66rem; font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: #8fa0bd;
}
.account-shell .account-balance-copy > strong {
  font-size: clamp(2.1rem, 4.6vw, 2.9rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.account-shell .account-balance-copy > strong.is-positive { color: #6ee7b0; }
.account-shell .account-balance-copy > small {
  max-width: 30rem; color: var(--muted); font-size: 0.86rem; line-height: 1.45;
}
.account-shell .account-open-packs-button { flex: 0 0 auto; margin-left: 0; }

/* one step: the legend, then the chips */
.account-shell .account-topup-form-v2 {
  display: grid;
  gap: 1rem;
  padding: 1.1rem;
  border: 1px solid var(--acct-line);
}
.account-shell .account-topup-presets-wrap { display: grid; gap: 0.55rem; }
.account-shell .account-topup-presets-wrap > span {
  font-size: 0.66rem; font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: #8fa0bd;
}
.account-shell .account-topup-presets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
}
.account-shell .account-topup-preset {
  min-height: 3rem;
  padding: 0.5rem 0.4rem;
  border: 1px solid var(--acct-line);
  border-radius: 12px;
  background: rgba(10, 15, 28, 0.6);
  color: #dce6f6;
  font-size: 1rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}
.account-shell .account-topup-preset:hover {
  border-color: var(--acct-line-strong);
  background: rgba(18, 104, 216, 0.16);
  color: #fff;
}
.account-shell .account-topup-preset.is-active {
  border-color: rgba(96, 165, 250, 0.8);
  background: rgba(18, 104, 216, 0.3);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.35);
}

/* the amount and the button sit on one line, with a real currency mark */
.account-shell .account-topup-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(11rem, auto);
  align-items: end;
  gap: 0.7rem;
}
.account-shell .account-topup-field { display: grid; gap: 0.35rem; margin: 0; }
.account-topup-input { position: relative; display: block; }
.account-topup-input > i {
  position: absolute;
  left: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  font-style: normal;
  font-weight: 800;
  color: #8fa0bd;
  pointer-events: none;
}
.account-shell .account-topup-input input {
  width: 100%;
  min-height: 3.1rem;
  padding: 0.6rem 0.9rem 0.6rem 1.85rem;
  border: 1px solid var(--acct-line);
  border-radius: 12px;
  background: rgba(10, 15, 28, 0.75);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.account-shell .account-topup-input input:focus {
  outline: 0;
  border-color: rgba(96, 165, 250, 0.8);
  box-shadow: 0 0 0 3px rgba(18, 104, 216, 0.25);
}
.account-shell .account-topup-submit {
  min-height: 3.1rem;
  display: grid;
  gap: 0.1rem;
  place-content: center;
  padding: 0.5rem 1.15rem;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, #1a7bf0, #0f5cc0);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(8, 46, 110, 0.45);
}
.account-shell .account-topup-submit > span { font-size: 1rem; font-weight: 800; }
.account-shell .account-topup-submit > small { font-size: 0.7rem; color: rgba(255, 255, 255, 0.78); }
.account-shell .account-topup-submit:hover { filter: brightness(1.08); }

.account-topup-fineprint {
  margin: 0;
  color: #8492ad;
  font-size: 0.74rem;
  text-align: center;
}

@media (max-width: 640px) {
  .account-shell .account-balance-panel { padding: 1.1rem; }
  .account-shell .account-balance-head { gap: 0.85rem; }
  .account-shell .account-open-packs-button { width: 100%; }
  .account-shell .account-topup-form-v2 { padding: 0.9rem; gap: 0.85rem; }
  .account-shell .account-topup-presets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-shell .account-topup-row { grid-template-columns: minmax(0, 1fr); }
  .account-shell .account-topup-submit { min-height: 3.3rem; }
}
/* the head carried its own card border, so the panel read as three
   nested boxes; flatten it and let the hairline do the separating */
.account-shell .account-balance-head {
  display: flex;
  padding: 0 0 1.15rem;
  border: 0;
  border-bottom: 1px solid var(--acct-line);
  border-radius: 0;
  background: none;
}

/* The "add these bulk cards to that shipment" opt-in: another white
   gradient the generator could not see, so it kept its pale blue sheet
   while the copy on it went light. */
.vault-bulk-include {
  background-image: none;
  background-color: rgba(18, 104, 216, 0.12);
  border: 1px solid rgba(96, 165, 250, 0.28);
}
.vault-bulk-include:hover { border-color: rgba(96, 165, 250, 0.5); }
.vault-bulk-include:has(input:checked) {
  background-color: rgba(18, 104, 216, 0.24);
  border-color: rgba(96, 165, 250, 0.7);
}
.vault-bulk-include-copy strong { color: #fff; }
.vault-bulk-include-copy small { color: var(--muted); }

/* =====================================================================
   HAND-TUNED: the Rarity Run chooser (/chasers/rip-until-you-hit).

   It leaned on green for everything at once -- a solid green banner, a
   green frame with a glow, green prices, a green CTA -- so nothing led
   and the page read as one loud colour. The price chips on every card
   were white pills carrying pale ink, which is the illegible "white
   buttons". Violet carries the accent now, green survives only as the
   live-price dot, and the number a player is deciding on is white.
   ===================================================================== */
.rtyh-shell-select {
  --rr-line: rgba(158, 212, 255, 0.14);
  --rr-accent: #a78bfa;
  --rr-accent-soft: rgba(139, 92, 246, 0.18);
}

/* two options should fill the row, not sit in two of three columns */
.rtyh-option-grid-detailed {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 27rem), 1fr));
  gap: 1rem;
}
.rtyh-option-card-detailed {
  padding: 1.15rem;
  border: 1px solid var(--rr-line);
  border-radius: 18px;
  background: linear-gradient(168deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.015));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 18px 40px rgba(3, 8, 20, 0.45);
}
.rtyh-option-card-detailed:hover { border-color: rgba(167, 139, 250, 0.45); }

/* featured is a corner chip and a hairline, not a green banner and glow */
.rtyh-option-card-featured {
  border-color: rgba(167, 139, 250, 0.55) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 20px 46px rgba(70, 30, 140, 0.4) !important;
}
.rtyh-option-card-featured:hover {
  border-color: rgba(167, 139, 250, 0.8) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 24px 52px rgba(70, 30, 140, 0.5) !important;
}
.rtyh-option-featured-tag {
  display: inline-block;
  margin: 0 0 0.55rem;
  padding: 0.24rem 0.6rem;
  border-radius: 999px;
  border: 1px solid rgba(167, 139, 250, 0.5);
  background: var(--rr-accent-soft);
  color: #d9caff;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-align: left;
}

/* the price is the decision: white, big, tabular */
.rtyh-option-card-detailed .rtyh-option-price,
.rtyh-option-price {
  color: #fff;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.rtyh-option-badge {
  border: 1px solid var(--rr-line);
  background: rgba(10, 15, 28, 0.6);
  color: var(--muted);
}
/* the one place green still earns its keep */
.rtyh-option-badge::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 0.4rem;
  border-radius: 50%;
  background: #4ad39b;
  box-shadow: 0 0 8px rgba(74, 211, 155, 0.9);
}
.rtyh-min5-teaser {
  border: 1px solid rgba(167, 139, 250, 0.4);
  background: var(--rr-accent-soft);
  color: #d9caff;
}

/* Raw / PSA 10 were white pills with pale ink -- the illegible chips */
.rtyh-rail-card-price-lines small {
  border: 1px solid var(--rr-line);
  background: rgba(10, 15, 28, 0.85);
  background-image: none;
  color: #dce6f6;
  box-shadow: none;
}
.rtyh-rail-card-price-lines small:last-child {
  border-color: rgba(96, 165, 250, 0.35);
  background: rgba(18, 104, 216, 0.22);
  background-image: none;
  color: #a9d2ff;
  box-shadow: none;
}

/* the CTA: a real button at the foot of the card */
.rtyh-option-card-detailed .rtyh-option-cta,
.rtyh-option-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin-top: auto;
  min-height: 3rem;
  padding: 0.7rem 1rem;
  border-radius: 13px;
  border: 1px solid rgba(167, 139, 250, 0.4);
  background: linear-gradient(180deg, #7c5cff, #5b3fd6);
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.01em;
  box-shadow: 0 12px 26px rgba(60, 26, 140, 0.45);
}
.rtyh-option-card-detailed:hover .rtyh-option-cta { filter: brightness(1.1); }

/* the rails clipped their last card with no hint that they scroll */
.rtyh-card-rail {
  overflow-x: auto;
  scrollbar-width: thin;
  padding-bottom: 0.35rem;
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 2.2rem), transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 2.2rem), transparent 100%);
}
.rtyh-rail-card {
  border: 1px solid var(--rr-line);
  background: rgba(10, 15, 28, 0.6);
}
.rtyh-option-group {
  border: 1px solid var(--rr-line);
  background: rgba(10, 15, 28, 0.4);
  border-radius: 14px;
}
.rtyh-option-group-label { color: #b6a6dd; }

/* the How It Works bar */
.rtyh-how-panel { border: 1px solid var(--rr-line); }
.rtyh-how-toggle {
  border: 1px solid var(--rr-line);
  background: rgba(10, 15, 28, 0.6);
  color: var(--ink);
}
.rtyh-how-toggle:hover { border-color: rgba(167, 139, 250, 0.5); color: #fff; }
.rtyh-how-step-number {
  background: var(--rr-accent-soft);
  border: 1px solid rgba(167, 139, 250, 0.4);
  color: #d9caff;
}
/* the 4px green cap across every card top was the loudest of the greens */
.rtyh-option-card-detailed::before {
  height: 3px;
  background: linear-gradient(90deg, rgba(167, 139, 250, 0.15), rgba(167, 139, 250, 0.75), rgba(167, 139, 250, 0.15));
  opacity: 1;
}
.rtyh-option-card-featured::before {
  background: linear-gradient(90deg, #7c5cff, #b18bff 50%, #7c5cff);
}
/* the featured chip stretched to the card width inside the flex column */
.rtyh-option-featured-tag {
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
}

@media (max-width: 760px) {
  /* the collapsed mobile card kept its own green CTA and a pale green
     "view details" strip, both scoped inside a media query so the
     desktop rules above never reached them */
  .rtyh-option-mobile-collapsible.is-mobile-collapsed .rtyh-option-cta {
    border: 1px solid rgba(167, 139, 250, 0.4);
    border-radius: 13px;
    background: linear-gradient(180deg, #7c5cff, #5b3fd6);
    color: #fff;
    box-shadow: 0 12px 26px rgba(60, 26, 140, 0.45);
  }
  .rtyh-mobile-option-toggle {
    border: 1px solid rgba(158, 212, 255, 0.16);
    background: rgba(10, 15, 28, 0.6);
    color: #cfc4ec;
  }
  .rtyh-mobile-option-toggle-icon { color: #a78bfa; }
}

/* --- Support -----------------------------------------------------------
   .support-page painted a pale gradient slab behind its two cards -- a
   `background` shorthand the generator could not map. The dark sky shows
   through now, and the cards sit on it instead of on a white sheet. */
.support-page {
  background: transparent;
  min-height: 0;
}
.support-shell { align-items: start; }
.support-intro { min-height: 0; }

/* --- nav ledger: the abbreviated phone label (mirrors vb.css) --- */
/* the ledger label abbreviates on phones ("Balance" -> "BAL:") so the card
   stops crowding the hamburger. The rewards half is swapped in
   points_widget.js, which owns that text. */
.vb-lbl-abbr { display: none; }
@media (max-width: 480px) {
  .vb-lbl-full { display: none; }
  .vb-lbl-abbr { display: inline; }
}



/* =====================================================================
   Shipment details ("Track this shipment") hero cards.

   .vault-hero-card paints with a `background` shorthand gradient, and the
   dark-theme generator only rewrites `background-color` — so these cards
   kept their near-white light gradient and the figures inside them
   ("None", "$6.24") went white-on-white. Only the third slot survived,
   because its credit gradient happens to be dark green.
   ===================================================================== */
.vault-hero-card {
  background: linear-gradient(180deg, rgba(20, 27, 46, 0.92), rgba(14, 19, 34, 0.94));
  border-color: var(--border);
  box-shadow: 0 16px 32px rgba(2, 5, 14, 0.45);
}

.vault-hero-card.accent {
  background: linear-gradient(135deg, rgba(191, 16, 41, 0.26), rgba(13, 99, 199, 0.24));
}

.vault-hero-card-credit {
  background: linear-gradient(135deg, rgba(15, 138, 95, 0.3), rgba(60, 190, 150, 0.16));
}

.vault-hero-card small { color: var(--muted); }
.vault-hero-card strong { color: var(--ink); }
.vault-hero-card span { color: var(--muted); }
