/* tokens/fonts.css */
/* Google Fonts substitutes — no original font files supplied.
   Names, headlines, body: Newsreader · Labels/nav/CTAs (spaced caps): Archivo · Time & colophon: Courier Prime */

/* tokens/colors.css */
:root{
/* palette */
--gunmetal:#2E3532;--dark-amaranth:#8B2635;--soft-linen:#E0E2DB;--dust-grey:#D2D4C8;--tea-green:#D3EFBD;
/* derived */
--amaranth-deep:#6E1D29;--gunmetal-2:#454D49;--linen-light:#ECEEE8;
/* role names used by components (aliases) */
--carbon:var(--gunmetal);--brick:var(--dark-amaranth);--brick-deep:var(--amaranth-deep);
--snow:var(--soft-linen);--alabaster:var(--dust-grey);--highlight:var(--tea-green);
/* paper (grounds) */
--paper:var(--soft-linen);--paper-2:var(--dust-grey);--paper-3:#C3C6B8;--paper-white:var(--linen-light);
/* ink (text ramp from gunmetal) */
--ink:var(--gunmetal);--ink-2:#3E4642;--ink-3:#57605B;--ink-4:#838A85;

/* semantic */
--surface-page:var(--linen-light);--surface-raised:var(--linen-light);--surface-sunken:var(--linen-light);--surface-plate:var(--soft-linen);--surface-inset:var(--soft-linen);--surface-inverse:var(--gunmetal);--surface-highlight:var(--tea-green);
--text-strong:var(--ink);--text-body:var(--ink-2);--text-muted:var(--ink-3);--text-faint:var(--ink-4);--text-inverse:var(--soft-linen);--text-inverse-muted:var(--dust-grey);
--text-link:var(--dark-amaranth);--text-link-hover:var(--ink);
--accent:var(--dark-amaranth);--accent-2:var(--tea-green);
--focus-ring:0 0 0 2px var(--paper),0 0 0 4px var(--dark-amaranth);
}

/* tokens/typography.css */
:root{
--font-display:'Archivo','Helvetica Neue',Arial,sans-serif;
--font-text:'Newsreader','Iowan Old Style',Georgia,serif;
--font-label:'Courier Prime','Courier New',ui-monospace,monospace;
--font-mast:var(--font-text);--font-mono:var(--font-label);--font-serif:var(--font-text);--font-sans:var(--font-display);
--fs-masthead:clamp(52px,10vw,132px);/* @kind font */
--fs-page-title:clamp(44px,6.4vw,84px);/* @kind font */
--fs-display-1:clamp(36px,4.2vw,54px);/* @kind font */
--fs-display-2:clamp(34px,3.6vw,48px);/* @kind font */
--fs-display-3:30px;/* @kind font */
--fs-display-4:24px;/* @kind font */
--fs-footer-name:clamp(32px,4vw,48px);/* @kind font */
--fs-lede:21px;/* @kind font */
--fs-body:17px;/* @kind font */
--fs-small:15px;/* @kind font */
--fs-dateline:14px;/* @kind font */
--fs-caption:13px;/* @kind font */
--fs-tagline:13px;/* @kind font */
--fs-section:12px;/* @kind font */
--fs-label:11px;/* @kind font */
--fs-kicker:11px;/* @kind font */
--lh-mast:1;/* @kind font */
--lh-display:1.06;/* @kind font */
--lh-head:1.15;/* @kind font */
--lh-body:1.55;/* @kind font */
--lh-small:1.5;/* @kind font */
--fw-regular:400;/* @kind font */
--fw-semibold:600;/* @kind font */
--fw-bold:700;/* @kind font */
--track-mast:-.025em;/* @kind font */
--track-head:-.015em;/* @kind font */
--track-label:.16em;/* @kind font */
--track-kicker:.2em;/* @kind font */
--track-section:.24em;/* @kind font */
--track-tagline:.32em;/* @kind font */
--type-caps:600 11px/1.3 var(--font-display);/* @kind font */
}

/* tokens/spacing.css */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--section-gap:104px;--section-end:120px;
--page-max:1200px;--page-gutter:60px;--measure:62ch;/* @kind other */--col-gap:48px;
--header-h:88px;
}

/* tokens/effects.css */
:root{
--radius-0:0;--radius-1:1px;
--shadow-none:none;
--shadow-book:2px 3px 0 rgba(46,53,50,.06),8px 14px 24px -8px rgba(46,53,50,.35);
--shadow-print:0 1px 2px rgba(46,53,50,.12);
--ease-page:cubic-bezier(.22,.61,.36,1);/* @kind other */--dur-fast:160ms;/* @kind other */--dur-base:240ms;/* @kind other */--dur-slow:480ms;/* @kind other */
--photo-filter:saturate(.9) contrast(1.02);/* @kind other */
--photo-filter-bw:grayscale(1) contrast(1.05);/* @kind other */
}

/* tokens/base.css */
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-body)}
h1,h2,h3,h4{font-family:var(--font-text);font-weight:400;letter-spacing:var(--track-head);color:var(--text-strong);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;transition:color var(--dur-fast) var(--ease-page)}
a:hover{color:var(--text-link-hover)}
a:focus-visible,button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
::selection{background:var(--tea-green);color:var(--gunmetal)}
img{display:block;max-width:100%}
