/* Cedric King — design tokens
   Fonts: no brand font files were supplied. Using Google Fonts substitutions:
   Oswald (condensed display), Public Sans (body/UI), IBM Plex Mono (data/labels). */
@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500;600;700&family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap");

:root{
  --font-display:"Oswald","Arial Narrow",Impact,sans-serif;
  --font-body:"Public Sans","Helvetica Neue",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;

  /* --- base ramps --- */
  --olive-900:#22291F;--olive-800:#2D3527;--olive-700:#3E4A3A;--olive-500:#5A6A52;--olive-300:#96A48C;--olive-200:#C3CBBB;--olive-50:#EDF0E9;
  --brass-800:#5A430F;--brass-700:#84621F;--brass-500:#C8A24B;--brass-300:#E0C889;--brass-100:#F5EBD4;
  --maroon-700:#4E1B27;--maroon-600:#6B2737;--maroon-100:#EBD9DD;
  --bone-50:#FAF8F3;--bone-100:#F4F1EA;--bone-200:#E7E2D6;--bone-300:#D3CCBC;--bone-400:#B8AF9B;
  --graphite-900:#14161A;--graphite-800:#1D2126;--graphite-700:#2B2F35;--graphite-500:#5B6169;--graphite-400:#6B7178;--graphite-300:#9AA0A6;--graphite-200:#C6CACE;
  --white:#FFFFFF;

  /* --- semantic: text --- */
  --text-primary:var(--graphite-900);--text-secondary:var(--graphite-500);--text-tertiary:var(--graphite-400);
  --text-inverse:var(--bone-50);--text-inverse-secondary:var(--olive-200);
  --text-accent:var(--brass-700);--text-accent-inverse:var(--brass-300);--text-honor:var(--maroon-600);
  --text-link:var(--graphite-900);--text-link-hover:var(--brass-700);

  /* --- semantic: surface --- */
  --surface-page:var(--bone-100);--surface-page-alt:var(--bone-50);--surface-card:var(--white);
  --surface-sunken:var(--bone-200);--surface-dark:var(--olive-900);--surface-dark-alt:var(--graphite-900);
  --surface-accent:var(--brass-500);--surface-honor:var(--maroon-600);--surface-scrim:rgb(20 22 26 / .72);

  /* --- semantic: border --- */
  --border-subtle:var(--bone-300);--border-default:var(--graphite-200);--border-strong:var(--graphite-900);
  --border-inverse:rgb(250 248 243 / .28);--border-accent:var(--brass-500);

  /* --- semantic: interactive --- */
  --action-fill:var(--graphite-900);--action-fill-hover:var(--olive-700);--action-text:var(--bone-50);
  --action-accent-fill:var(--brass-500);--action-accent-hover:var(--brass-300);--action-accent-text:var(--graphite-900);
  --action-quiet-border:var(--graphite-900);--action-disabled-fill:var(--bone-300);--action-disabled-text:var(--graphite-400);
  --focus-ring:var(--brass-700);

  /* --- semantic: status --- */
  --success-600:#3F6B45;--success-100:#E2EDE2;--warning-600:#B4761A;--warning-100:#F7EBD6;
  --danger-600:#9B2C21;--danger-100:#F6E0DC;--info-600:#3A5A6B;--info-100:#E1EAEE;

  /* --- elevation --- */
  --radius-none:0;--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-pill:999px;
  --shadow-hard-sm:3px 3px 0 var(--graphite-900);--shadow-hard:6px 6px 0 var(--graphite-900);
  --shadow-hard-brass:6px 6px 0 var(--brass-500);--shadow-hard-inverse:6px 6px 0 var(--bone-50);
  --shadow-pressed:1px 1px 0 var(--graphite-900);
  --shadow-overlay:0 24px 60px -12px rgb(20 22 26 / .45);
  --border-hairline:var(--rule-hairline) solid var(--border-subtle);
  --border-ink:var(--rule-medium) solid var(--graphite-900);
  --focus-outline:var(--rule-medium) solid var(--focus-ring);--focus-offset:2px;
  --scrim-bottom:linear-gradient(to top,rgb(20 22 26 / .88) 0%,rgb(20 22 26 / .62) 38%,rgb(20 22 26 / 0) 78%);
  --scrim-left:linear-gradient(to right,rgb(20 22 26 / .86) 0%,rgb(20 22 26 / .5) 45%,rgb(20 22 26 / 0) 85%);
  --scrim-flat:rgb(20 22 26 / .55);

  /* --- motion --- */
  --duration-instant:90ms;--duration-fast:140ms;--duration-base:220ms;--duration-slow:420ms;--duration-reveal:700ms;
  --ease-out:cubic-bezier(.2,.7,.25,1);--ease-in-out:cubic-bezier(.5,0,.3,1);--ease-linear:linear;
  --transition-control:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-instant) var(--ease-out);
  --reveal-distance:24px;

  /* --- spacing --- */
  --space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;
  --space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--space-40:160px;
  --container-max:1280px;--container-text:66ch;--container-narrow:720px;
  --gutter:clamp(20px,5vw,64px);
  --section-y:clamp(64px,9vw,160px);
  --section-y-tight:clamp(40px,5vw,80px);
  --stack-tight:var(--space-3);--stack:var(--space-6);--stack-loose:var(--space-10);
  --control-h-sm:36px;--control-h:48px;--control-h-lg:56px;--tap-min:44px;
  --rule-hairline:1px;--rule-medium:2px;--rule-heavy:6px;

  /* --- typography --- */
  --weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
  --size-display-1:clamp(3.5rem,9vw,7.5rem);--size-display-2:clamp(2.75rem,6vw,5rem);--size-display-3:clamp(2.25rem,4vw,3.5rem);
  --size-headline:2rem;--size-title:1.5rem;--size-subtitle:1.25rem;
  --size-lede:1.3125rem;--size-body:1.0625rem;--size-body-sm:0.9375rem;--size-caption:0.8125rem;--size-micro:0.6875rem;
  --leading-display:0.94;--leading-tight:1.08;--leading-heading:1.18;--leading-body:1.6;--leading-relaxed:1.72;
  --tracking-display:-0.015em;--tracking-heading:0;--tracking-body:0;--tracking-label:0.14em;--tracking-eyebrow:0.22em;
  --type-display-1:var(--weight-bold) var(--size-display-1)/var(--leading-display) var(--font-display);
  --type-display-2:var(--weight-bold) var(--size-display-2)/var(--leading-display) var(--font-display);
  --type-display-3:var(--weight-semibold) var(--size-display-3)/var(--leading-tight) var(--font-display);
  --type-headline:var(--weight-semibold) var(--size-headline)/var(--leading-heading) var(--font-display);
  --type-title:var(--weight-semibold) var(--size-title)/var(--leading-heading) var(--font-display);
  --type-lede:var(--weight-regular) var(--size-lede)/var(--leading-relaxed) var(--font-body);
  --type-body:var(--weight-regular) var(--size-body)/var(--leading-body) var(--font-body);
  --type-body-sm:var(--weight-regular) var(--size-body-sm)/var(--leading-body) var(--font-body);
  --type-caption:var(--weight-regular) var(--size-caption)/1.45 var(--font-body);
  --type-eyebrow:var(--weight-medium) var(--size-caption)/1.2 var(--font-mono);
  --type-label:var(--weight-semibold) var(--size-body-sm)/1.2 var(--font-body);
  --type-stat:var(--weight-bold) clamp(3rem,5vw,4.5rem)/0.9 var(--font-display);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:var(--type-body);color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--duration-fast) var(--ease-out)}
a:hover{color:var(--text-link-hover)}
img{display:block;max-width:100%}
button{font:inherit}
:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}

@media (prefers-reduced-motion:reduce){
  :root{--duration-fast:0ms;--duration-base:0ms;--duration-slow:0ms;--duration-reveal:0ms;--reveal-distance:0px}
  *{animation-duration:0ms !important;transition-duration:0ms !important}
}

.container{max-width:var(--container-max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:var(--space-4);top:-100px;z-index:100;background:var(--graphite-900);color:var(--bone-50);padding:var(--space-3) var(--space-5);font:var(--type-label);text-decoration:none;transition:top var(--duration-fast) var(--ease-out)}
.skip-link:focus{top:var(--space-4)}
