/* =========================================================================
   TOKENS · BLOCK A — FAMILIE
   Oliver Albach Brand-Universum: Oliver Albach · Surge · Matter at Hand · studio ọmọ
   -------------------------------------------------------------------------
   Quelle: /_shared/tokens.css. Wird per `node tools/sync-shared.mjs` nach
   <site>/assets/shared/tokens.css gespiegelt. NIE die Kopie editieren.

   Enthält nur, was auf allen vier Seiten identisch ist: Raster, Abstände,
   Typo-Skala, Mono-Schrift, Bewegung, Hairline. Farben und Display-Schrift
   (Block B) stehen in <site>/assets/css/tokens.css.
   ========================================================================= */

/* ------------------------------------------------------- Mono-Schrift ---- */
/* IBM Plex Mono — das verbindende Element aller vier Seiten. Latin, Latin-Ext
   und Vietnamese (trägt ọ U+1ECD für „studio ọmọ“). Self-hosted, SIL OFL. */
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-latin-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  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+2074, U+20AC, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-latin-ext-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  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: "IBM Plex Mono";
  src: url("fonts/plex-mono-vietnamese-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
    U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
    U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-latin-500.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  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+2074, U+20AC, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-latin-ext-500.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  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;
}

/* ------------------------------------------------------------ Block A ---- */
:root {
  /* Raster */
  --container: 1200px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --grid-cols: 12;

  /* Abstände (auf 8 px, oben fluid) */
  --sp-1: 0.5rem;
  --sp-2: 1rem;
  --sp-3: 1.5rem;
  --sp-4: 2rem;
  --sp-5: 3rem;
  --sp-6: clamp(3.5rem, 7vw, 6rem);
  --sp-7: clamp(5rem, 12vw, 10rem);
  --sp-8: clamp(7rem, 18vw, 16rem);

  /* Typo-Skala, fluid */
  --step--1: clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
  --step-0: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --step-1: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
  --step-2: clamp(1.75rem, 1.5rem + 1.2vw, 2.5rem);
  --step-3: clamp(2.5rem, 1.9rem + 3vw, 4.5rem);
  --step-4: clamp(3.5rem, 1.5rem + 8vw, 8rem);
  --step-5: clamp(4rem, 0.5rem + 13vw, 14rem);

  /* Mono — verbindendes Element aller vier Seiten */
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --mono-size: 0.6875rem;
  --mono-track: 0.12em;

  /* Bewegung */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-1: 240ms;
  --dur-2: 600ms;
  --dur-3: 1100ms;

  /* Rhythmus: 130 BPM — Olis Tempo, für Puls/Takt-Elemente */
  --beat: 461.5ms;
  --bar: 1846ms;

  /* Hairline */
  --hair: 1px;
}
