/* Wiki Authority Group. Design tokens. One file, both themes.
   Light: pure white page, near-black ink, one green accent. Dark: near-black page, off-white ink, the same green lifted for contrast.
   The system setting decides; a visitor's choice (data-theme on <html>, saved in localStorage) overrides it.
   Every colour on the site comes from here. Component files never hold a literal colour.
   Contrast (WCAG AA, measured): light ink 19.7:1, muted 5.6:1, label 8.2:1, accent 5.3:1, redline 6.6:1, white on accent 5.3:1.
                                 dark  ink 18.1:1, muted 7.2:1, label 9.4:1, accent 8.3:1, redline 7.1:1, ink on accent 8.3:1. */

@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/geist-latin.woff2") format("woff2")}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/geist-mono-latin.woff2") format("woff2")}

:root{
  /* colour, light */
  --bg:#FFFFFF;            /* page. Pure white, never tinted */
  --bg2:#FFFFFF;           /* kept equal to --bg on purpose: cards are separated by hairlines, not fills */
  --surface:#FFFFFF;
  --ink:#0B0B0C;           /* text */
  --ink2:#686868;          /* muted text, 62% ink */
  --ink3:#4F4F50;          /* small labels, 72% ink */
  --line:rgba(11,11,12,.08);   /* hairline */
  --line2:rgba(11,11,12,.16);  /* stronger hairline: inputs, pressed borders */
  --accent:#0F7B4F;        /* verified green: buttons, focus ring, status chips. Nothing else */
  --accent-ink:#0F7B4F;    /* accent used as text */
  --accent-soft:rgba(15,123,79,.10);
  --on-accent:#FFFFFF;
  --redline:#B42318;       /* only inside the sample report */
  --redline-soft:rgba(180,35,24,.08);
  --band:#0B0B0C;          /* the one dark section on a light page */
  --band-ink:#F5F5F5;
  --band-ink2:#9C9C9C;
  --band-line:rgba(255,255,255,.10);
  --band-accent:#2FBF7F;
  --globe-dot:#0B0B0C; --globe-dim:rgba(11,11,12,.35); --globe-glow:rgba(11,11,12,.05); --globe-pin:#0F7B4F;
  --shadow:0 1px 2px rgba(11,11,12,.04),0 12px 32px -16px rgba(11,11,12,.16);

  /* type */
  --f:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --m:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --fs-0:14px; --fs-1:15.5px; --fs-2:18px; --fs-3:20px; --fs-4:24px; --fs-5:32px; --fs-6:44px; --fs-7:60px;
  --lh-body:1.6; --track-display:-0.02em;

  /* space: 8px grid */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px; --s6:48px; --s7:64px; --s8:96px;
  --r:8px; --r-lg:12px; --max:1200px; --gutter:clamp(16px,4vw,40px);

  /* motion: transform and opacity only, once, short */
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-in-out:cubic-bezier(.77,0,.175,1);
  --d-fast:100ms; --d-ui:150ms; --d-reveal:350ms; --rise:10px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0B0B0C; --bg2:#0B0B0C; --surface:#0B0B0C;
    --ink:#F5F5F5; --ink2:#9C9C9C; --ink3:#B3B3B4;
    --line:rgba(255,255,255,.10); --line2:rgba(255,255,255,.20);
    --accent:#2FBF7F; --accent-ink:#2FBF7F; --accent-soft:rgba(47,191,127,.12); --on-accent:#0B0B0C;
    --redline:#F2766B; --redline-soft:rgba(242,118,107,.12);
    --band:#0B0B0C; --band-ink:#F5F5F5; --band-ink2:#9C9C9C; --band-line:rgba(255,255,255,.10); --band-accent:#2FBF7F;
    --globe-dot:#F5F5F5; --globe-dim:rgba(245,245,245,.30); --globe-glow:rgba(245,245,245,.05); --globe-pin:#2FBF7F;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -16px rgba(0,0,0,.6);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0B0B0C; --bg2:#0B0B0C; --surface:#0B0B0C;
  --ink:#F5F5F5; --ink2:#9C9C9C; --ink3:#B3B3B4;
  --line:rgba(255,255,255,.10); --line2:rgba(255,255,255,.20);
  --accent:#2FBF7F; --accent-ink:#2FBF7F; --accent-soft:rgba(47,191,127,.12); --on-accent:#0B0B0C;
  --redline:#F2766B; --redline-soft:rgba(242,118,107,.12);
  --band:#0B0B0C; --band-ink:#F5F5F5; --band-ink2:#9C9C9C; --band-line:rgba(255,255,255,.10); --band-accent:#2FBF7F;
  --globe-dot:#F5F5F5; --globe-dim:rgba(245,245,245,.30); --globe-glow:rgba(245,245,245,.05); --globe-pin:#2FBF7F;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -16px rgba(0,0,0,.6);
  color-scheme:dark;
}
/* In dark mode the trust band needs an edge to read as a section: a hairline above and below, set in site.css via --band-line. */

/* Text size control (A / A+): one step, saved per visitor */
:root[data-text="plus"]{--fs-1:17px; --fs-2:20px; --fs-3:22px; --fs-4:26px}

/* Reduced motion: every duration collapses to zero. Components read these tokens, so one rule covers the site. */
@media (prefers-reduced-motion:reduce){
  :root{--d-fast:0ms; --d-ui:0ms; --d-reveal:0ms; --rise:0px}
}
