/* Self-hosted fonts — no network required.
   Family names match the originals so page CSS needs no changes.
   Sources: Fontsource (Archivo, Source Serif 4, IBM Plex Mono), all SIL Open Font License. */

/* ---- Archivo: variable weight 100–900 and width 62%–125% ---- */
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-display:swap;
  font-weight:100 900;
  font-stretch:62% 125%;
  src:url(fonts/archivo-latin-wdth-normal.woff2) format('woff2-variations');
  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;
}
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-display:swap;
  font-weight:100 900;
  font-stretch:62% 125%;
  src:url(fonts/archivo-latin-ext-wdth-normal.woff2) format('woff2-variations');
  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;
}

/* ---- Source Serif 4: variable weight, optical size axis ---- */
@font-face{
  font-family:'Source Serif 4';
  font-style:normal;
  font-display:swap;
  font-weight:200 900;
  src:url(fonts/source-serif-4-latin-opsz-normal.woff2) format('woff2-variations');
  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;
}
@font-face{
  font-family:'Source Serif 4';
  font-style:normal;
  font-display:swap;
  font-weight:200 900;
  src:url(fonts/source-serif-4-latin-ext-opsz-normal.woff2) format('woff2-variations');
  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;
}
@font-face{
  font-family:'Source Serif 4';
  font-style:italic;
  font-display:swap;
  font-weight:200 900;
  src:url(fonts/source-serif-4-latin-opsz-italic.woff2) format('woff2-variations');
  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;
}
@font-face{
  font-family:'Source Serif 4';
  font-style:italic;
  font-display:swap;
  font-weight:200 900;
  src:url(fonts/source-serif-4-latin-ext-opsz-italic.woff2) format('woff2-variations');
  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;
}

/* ---- IBM Plex Mono: 400 / 500 / 600 ---- */
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-display:swap;
  font-weight:400;
  src:url(fonts/ibm-plex-mono-latin-400-normal.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;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-display:swap;
  font-weight:500;
  src:url(fonts/ibm-plex-mono-latin-500-normal.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;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-display:swap;
  font-weight:600;
  src:url(fonts/ibm-plex-mono-latin-600-normal.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;
}

/* ---- Shared site header, identical on all three pages ---- */
.sitebar{
  position:sticky;top:0;z-index:80;background:rgba(228,233,236,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);
}
.sitebar .wrap{display:flex;align-items:center;gap:20px;height:50px;overflow-x:auto;scrollbar-width:none}
.sitebar .wrap::-webkit-scrollbar{display:none}
.sitebar .mark{
  font-family:var(--disp);font-weight:900;font-stretch:125%;font-size:.8rem;
  letter-spacing:.02em;white-space:nowrap;color:var(--ink);text-decoration:none;flex:none;
}
.sitebar nav{display:flex;gap:16px;flex:none}
.sitebar nav a{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink2);text-decoration:none;white-space:nowrap;padding:4px 0;border-bottom:2px solid transparent;
}
.sitebar nav a:hover,.sitebar nav a:focus-visible{color:var(--blue);border-bottom-color:var(--blue)}
.sitebar nav a[aria-current="page"]{color:var(--ink);font-weight:600;border-bottom-color:var(--mag)}
.sitebar .sheet{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink3);white-space:nowrap;margin-left:auto;flex:none;padding-left:20px;
}
@media(max-width:720px){.sitebar .sheet{display:none}}
