/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 300 400;
  font-display: swap;
  src: url(fonts/newsreader-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 300 400;
  font-display: swap;
  src: url(fonts/newsreader-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrument-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/instrument-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/plex-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/plex-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  /* ---- Brand ramp (source palette) ---- */
  --plum-900:#3a0926;--plum-700:#5f0f40;--plum-500:#8a2560;--plum-200:#e6cfdd;--plum-050:#f7eef3;
  --crimson-700:#750216;--crimson-500:#9a031e;--crimson-200:#f0cdd2;--crimson-050:#fbeef0;
  --orange-700:#b34a0c;--orange-500:#e36414;--orange-200:#f8d6bf;--orange-050:#fdf0e7;
  --amber-700:#c96c11;--amber-500:#fb8b24;--amber-200:#fddfbe;--amber-050:#fff5eb;
  --teal-900:#082e38;--teal-700:#0f4c5c;--teal-500:#1a7085;--teal-200:#c3dbe1;--teal-050:#eef5f7;

  /* ---- Neutrals: warm, paper-leaning ---- */
  --ink-900:#191316;--ink-800:#2b2226;--ink-600:#544a4e;--ink-400:#8a8085;
  --ink-300:#b4acaf;--ink-200:#ddd6d8;--ink-100:#ece7e8;--ink-050:#f5f2f1;
  --paper:#fbfaf8;--paper-raised:#ffffff;--black:#000000;--white:#ffffff;

  /* ---- Semantic: surface ---- */
  --surface-page:var(--paper);
  --surface-card:var(--paper-raised);
  --surface-sunken:var(--ink-050);
  --surface-inverse:var(--ink-900);
  --surface-accent:var(--plum-700);
  --surface-accent-soft:var(--plum-050);
  --surface-highlight:var(--amber-050);

  /* ---- Semantic: text ---- */
  --text-strong:var(--ink-900);
  --text-body:var(--ink-800);
  --text-muted:var(--ink-600);
  --text-faint:var(--ink-400);
  --text-inverse:var(--paper);
  --text-accent:var(--plum-700);
  --text-link:var(--plum-700);
  --text-link-hover:var(--crimson-500);

  /* ---- Semantic: line ---- */
  --line-hairline:var(--ink-200);
  --line-strong:var(--ink-900);
  --line-accent:var(--plum-700);
  --line-focus:var(--teal-700);

  /* ---- Semantic: status ---- */
  --status-critical:var(--crimson-500);
  --status-critical-soft:var(--crimson-050);
  --status-warning:var(--amber-500);
  --status-warning-soft:var(--amber-050);
  --status-info:var(--teal-700);
  --status-info-soft:var(--teal-050);
  --status-neutral:var(--ink-600);
  --status-neutral-soft:var(--ink-050);
}

:root{
  --font-serif:"Newsreader",ui-serif,Georgia,serif;
  --font-sans:"Instrument Sans",ui-sans-serif,system-ui,"Helvetica Neue",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;

  --font-display:var(--font-serif);
  --font-heading:var(--font-sans);
  --font-body:var(--font-serif);
  --font-ui:var(--font-sans);
  --font-data:var(--font-mono);

  /* Type scale — 1.25 major third, 16px base */
  --size-3xs:11px;--size-2xs:12px;--size-xs:13px;--size-sm:15px;--size-md:17px;
  --size-lg:20px;--size-xl:25px;--size-2xl:31px;--size-3xl:39px;--size-4xl:49px;--size-5xl:61px;--size-6xl:76px;

  --leading-tight:1.05;--leading-snug:1.2;--leading-normal:1.45;--leading-relaxed:1.65;
  --tracking-tight:-0.02em;--tracking-snug:-0.01em;--tracking-normal:0;
  --tracking-wide:0.04em;--tracking-caps:0.10em;

  --weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;

  --measure-prose:66ch;--measure-narrow:46ch;--measure-wide:78ch;
}

:root{
  /* 4px base, geometric-ish steps */
  --space-0:0px;--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;--space-11:160px;

  --gutter-inline:24px;--gutter-inline-lg:48px;
  --section-y:96px;--section-y-sm:56px;

  --radius-none:0px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;

  --border-hair:1px;--border-thick:2px;--border-rule:3px;

  --container-sm:640px;--container-md:820px;--container-lg:1080px;--container-xl:1240px;
}

:root{
  /* Shadows are used sparingly — flat surfaces + hairlines are the default. */
  --shadow-none:none;
  --shadow-hairline:0 0 0 1px var(--line-hairline);
  --shadow-raised:0 1px 2px rgba(25,19,22,.06),0 2px 8px rgba(25,19,22,.04);
  --shadow-overlay:0 8px 32px rgba(25,19,22,.12),0 1px 3px rgba(25,19,22,.08);
  --shadow-focus:0 0 0 2px var(--paper),0 0 0 4px var(--teal-700);

  --overlay-scrim:rgba(25,19,22,.48);
  --blur-veil:saturate(140%) blur(10px); /* @kind other */
  --alpha-ink-06:rgba(25,19,22,.06);
  --alpha-ink-12:rgba(25,19,22,.12);
  --alpha-paper-70:rgba(251,250,248,.7);
}

:root{
  --ease-standard:cubic-bezier(.2,0,0,1); /* @kind other */
  --ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
  --ease-in:cubic-bezier(.4,0,1,1); /* @kind other */
  --duration-instant:80ms; /* @kind other */
  --duration-fast:140ms; /* @kind other */
  --duration-base:220ms; /* @kind other */
  --duration-slow:420ms; /* @kind other */
  --transition-ui:color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),opacity var(--duration-fast) var(--ease-standard);
}

html,body{margin:0;background:var(--paper);color:var(--text-body);}
a{color:var(--text-link);}
a:hover{color:var(--text-link-hover);}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:var(--size-sm);font-weight:500;letter-spacing:var(--tracking-wide);text-transform:uppercase;line-height:1;white-space:nowrap;padding:13px 26px;border-radius:var(--radius-sm);text-decoration:none;background:var(--plum-700);color:var(--paper);border:1px solid var(--plum-700);transition:var(--transition-ui);}
.btn:hover{background:var(--plum-900);border-color:var(--plum-900);color:var(--paper);}
