/* ============ DESIGN TOKENS — SINGLE SOURCE OF TRUTH ============
   No color/size/space/radius literal may appear in any other CSS file.
   Every other file uses var(--token). Authored dark-ready (a future
   [data-theme="dark"]{} block overrides colors with no markup change). */
:root{
  /* color */
  --surface-bg:#f9f9fd; --surface-card:#ffffff; --surface-low:#f3f3f7;
  --primary:#1b4d73; --on-primary:#ffffff;
  --text-main:#191c1e; --text-muted:#40484c; --border-color:#c2c7cf;
  /* status (semantic) — success matches the published-chip green */
  --success:#2f6b45; --error:#b3261e;
  /* type */
  --font-main:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',monospace;
  --text-base:16px; --text-sm:14px; --label:12px; --h-sm:20px; --h-md:24px; --h-lg:32px;
  /* space (4px base) */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;
  /* layout */
  --nav-height:64px; --container-max:1280px; --pad-desktop:32px; --pad-mobile:16px; --gutter:24px;
  /* radius + elevation (flat) */
  --radius:4px; --radius-lg:8px; --shadow-sm:0 1px 2px rgba(0,0,0,.04);
}

/* base reset */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--surface-bg);color:var(--text-main);
  font-family:var(--font-main);font-size:var(--text-base);line-height:1.5;}
img,svg,video{max-width:100%;height:auto;display:block;}
a{color:var(--primary);text-decoration:none;}
a:hover{text-decoration:underline;}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}

/* layout container */
.container{max-width:var(--container-max);margin-inline:auto;
  padding-inline:var(--pad-mobile);}
@media(min-width:768px){.container{padding-inline:var(--pad-desktop);}}

/* accessibility: skip link + sr-only */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:var(--space-2);top:var(--space-2);
  z-index:1000;background:var(--surface-card);color:var(--primary);
  padding:var(--space-2) var(--space-4);border:1px solid var(--border-color);
  border-radius:var(--radius);transform:translateY(-200%);}
.skip-link:focus{transform:translateY(0);}

/* motion safety: honor reduced-motion — neutralize animation + force reveal visible */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;
    animation-iteration-count:1 !important;transition-duration:.01ms !important;
    scroll-behavior:auto !important;}
  .js [data-reveal]{opacity:1 !important;transform:none !important;}
}
