:root{
  /* Button-radius token = 23 design px (PSB value; 1rem = 32
     design px, so 23/32 = .71875rem). Mirrors BTN_R in mw_build.py
     — change both together. */
  --btn-r: .71875rem;
  /* Button treatment token (owner pick: variant 4, 2026-08-17):
     vertical gradient + 1.5px inset top highlight + 0.22em darker-lime
     bottom edge. --btn-fx-card is the same plus a neutral elevation
     shadow for buttons sitting on white cards (checkout .mw-btn) —
     no lime glow on white, it washes out. Consumers: .cta (generator
     CSS), .mw-btn (checkout.css), .cc-accept (below). Change together,
     like --btn-r. The .cta--dark ghost variant opts out. */
  --btn-grad: linear-gradient(180deg, #B9FF41 0%, #9CFE00 55%, #92EF00 100%);
  --btn-fx: inset 0 1.5px 0 rgba(255,255,255,.55),
            inset 0 -0.22em 0 #74BD00;
  --btn-fx-card: inset 0 1.5px 0 rgba(255,255,255,.55),
                 inset 0 -0.22em 0 #74BD00,
                 0 1px 2px rgba(0,0,0,.22), 0 7px 20px rgba(0,0,0,.16);
}

/* Shared site chrome: footer, fine-print disclaimer lines, cookie banner.
   Same tokens as the sales page: lime #9CFE00, dark panels, Proxima Nova. */

/* ---------- footer ---------- */
.site-footer{
  background:#000; border-top:1px solid #1E2124;
  padding:2.6rem 1.4rem 2.2rem;
  color:#6B7076; font-size:.82rem; line-height:1.6;
  text-align:center;
  font-family:'Proxima Nova','Proxima Nova Rg',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
}
.site-footer .f-logo{
  display:block; margin:0 auto 1.4rem;
  width:12.5rem; height:auto;   /* 400 design px from a 1330px source — never upscaled */
}
.site-footer .f-links{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:.35rem 1.15rem; margin-bottom:1.4rem;
}
.site-footer .f-links a{ color:#9BA1A8; text-decoration:none; white-space:nowrap; }
.site-footer .f-links a:hover{ color:#9CFE00; }
.site-footer .f-meta{
  max-width:38rem; margin:0 auto 1.4rem;
  color:#6B7076; font-size:.78rem; line-height:1.55;
}
.site-footer .f-entity{ margin-bottom:.35rem; }
.site-footer .f-entity a{ color:#6B7076; text-decoration:none; }
.site-footer .f-entity a:hover{ color:#9CFE00; }
.site-footer .f-copy{ color:#4A4F55; }

/* ---------- site-wide link default: never browser blue ----------
   Muted grey, lime on hover. The hover rule is wrapped in :where() so it
   carries ZERO class specificity: any component that sets a color on an
   anchor (a button-styled anchor like .cta or .ty-dl, a themed link like
   .cc-text a) automatically keeps that color on hover. Before this
   (2026-08-20) the bare a:hover out-competed single-class buttons and
   produced lime-on-lime labels twice (.cta, then .ty-dl) — each needed
   its own pin. Plain unclassed links still get the lime hover: the
   :where rule ties with `a` above on specificity and wins on order. */
a{ color:#9BA1A8; }
a:where(:hover){ color:#9CFE00; }
/* Belt-and-braces pins for the known button-styled anchors — redundant
   under the :where() rule, kept so a future refactor of the global rule
   cannot silently reintroduce lime-on-lime. */
a.cta:hover{ color:#000; }
a.cta--dark:hover{ color:#9CFE00; } /* dark variant's label is lime on black by design */
a.ty-dl:hover{ color:#000; }        /* thank-you "Set Up Your Account" */

/* ---------- cookie consent banner ---------- */
.cc-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:99990; /* below checkout modal (99999) */
  display:none;
  background:#101214; border-top:1px solid #2A2A2A;
  color:#C7CBD0; font-size:.85rem; line-height:1.5;
  font-family:'Proxima Nova','Proxima Nova Rg',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom));
}
.cc-banner.cc-show{ display:block; }
/* never compete with the checkout modal */
body.mw-locked .cc-banner{ display:none; }

.cc-close{
  position:absolute; top:.55rem; right:.65rem;
  width:1.7rem; height:1.7rem; border-radius:50%;
  background:#222223; color:#C7CBD0; border:none;
  font-size:.85rem; line-height:1; cursor:pointer;
}
.cc-close:hover{ background:#333; color:#9CFE00; }
/* keep the first text line clear of the X when dismissible */
.cc-banner.cc-dismissible .cc-inner{ padding-right:1.9rem; }

.cc-inner{ max-width:60rem; margin:0 auto; display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.cc-text{ flex:1 1 18rem; min-width:14rem; }
.cc-text a{ color:#9BA1A8; text-decoration:underline; }
.cc-text a:hover{ color:#9CFE00; }
.cc-actions{ display:flex; gap:.55rem; flex-wrap:wrap; }
.cc-btn{
  border-radius:var(--btn-r); padding:.55rem 1.05rem; cursor:pointer;
  font-family:inherit; font-weight:700; font-size:.82rem;
}
.cc-accept{ background:var(--btn-grad, #9CFE00); color:#000; border:none;
  box-shadow:var(--btn-fx); }
.cc-accept:hover{ filter:brightness(1.06); }
.cc-reject, .cc-prefs{
  background:transparent; color:#C7CBD0; border:1px solid #3A3E44;
}
.cc-reject:hover, .cc-prefs:hover{ border-color:#9CFE00; color:#9CFE00; }

.cc-panel{ display:none; width:100%; margin-top:.6rem; }
.cc-panel.cc-show{ display:block; }
.cc-cat{
  display:flex; gap:.7rem; align-items:flex-start;
  background:#181B1E; border:1px solid #2A2A2A; border-radius:10px;
  padding:.7rem .8rem; margin-bottom:.55rem;
}
.cc-cat input{ margin-top:.2rem; accent-color:#9CFE00; }
.cc-cat b{ color:#fff; }
.cc-cat .cc-always{ color:#9CFE00; font-weight:700; font-size:.78rem; }
