/* ============================================================================
   project-victory.css — THE VICTORY PROJECT ENVIRONMENT
   ----------------------------------------------------------------------------
   Victory's system pairs an editorial serif with a functional sans: Source
   Serif 4 carries narrative and expressive display, Public Sans carries UI,
   explanation and everything load-bearing. Both are the exact variable faces
   the Victory design-system exhibits were built with.

   SCOPE — inside @layer project and inside .project-content[data-project=
   "victory"]. Unlayered universal components beat this layer, so the Victory
   closing, the metadata footer and the global navigation stay Radikal.

   LICENCE — Source Serif 4 (Adobe) and Public Sans (USWDS) are both SIL Open
   Font License 1.1. One canonical copy of each now lives in
   assets/fonts/victory/; the six duplicate pairs that were scattered through
   assets/victory/design-system/ have been removed.

   ITALICS ARE REAL HERE, AND THEY ARE SEPARATE FILES. An earlier version of
   this comment said "roman only, no italic axis delivered", which the
   @font-face three lines below already contradicted. The truth, read from the
   shipped woff2 binaries with fontTools on 2026-09-11:

     public-sans-variable.woff2          italicAngle 0     wght 100-900
     public-sans-italic-variable.woff2   italicAngle -8    wght 100-900
     source-serif-4-variable.woff2       italicAngle 0     wght 200-900, opsz 8-60
     source-serif-4-italic-variable.woff2 italicAngle -12  wght 200-900

   The italic cuts carry the OS/2 ITALIC bit and the head macStyle italic bit,
   and they are separate faces rather than an italic axis on the roman — which
   is why each needs its own @font-face. `font-synthesis:none` still stands
   below: a slant is only ever the real italic file, never a manufactured one.

   The Victory environment uses that italic deliberately and sparingly — `.vic
   em` takes the accent colour and the italic, and `.vc-art__cap em` takes the
   serif italic. This is the project's own voice and is unrelated to the
   Field Notes no-italics rule, which governs the Radikal shell.

   KNOWN DUPLICATION, pre-existing. The Source Serif 4 italic face is declared
   in three page-level <style> blocks (victory-the-work-at-a-glance.html,
   brand-systems-the-work-at-a-glance.html, brand-voice.html) rather than here.
   All three name the same file, so nothing is broken; it is recorded because
   the same pattern is what let the colour module's CSS drift between hosts.
   ========================================================================== */

@font-face{
  font-family:'Source Serif 4';
  src:url('../fonts/victory/source-serif-4-variable.woff2') format('woff2-variations');
  font-weight:200 900;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Public Sans';
  src:url('../fonts/victory/public-sans-variable.woff2') format('woff2-variations');
  font-weight:100 900;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Public Sans';
  src:url('../fonts/victory/public-sans-italic-variable.woff2') format('woff2-variations');
  font-weight:100 900;font-style:italic;font-display:swap;
}

@layer project{
  .project-content[data-project="victory"]{
    --v-editorial:'Source Serif 4', serif;  /* narrative and expressive display */
    --v-functional:'Public Sans', sans-serif; /* UI, explanation, support */
    font-family:var(--v-functional);
    font-weight:400;
    /* Legacy page sheets in this environment ask for --font-system and
       --font-meaning. Redefining them HERE means every one of those rules
       resolves to this project's typefaces without a single selector being
       rewritten — and re-defining them again on the universal components
       hands the shell back its own voice inside the same document. */
    --font-system:  var(--v-functional);
    --font-meaning: var(--v-editorial);
    --font-meaning-fallback: var(--v-editorial);
    --font-display: var(--v-editorial);
    --font:         var(--v-functional);
    font-synthesis:none;
  }

  /* --- EDITORIAL: Source Serif 4 ----------------------------------------- */
  .project-content[data-project="victory"] :where(h1,h2,h3),
  .project-content[data-project="victory"] .v-editorial,
  .project-content[data-project="victory"] .pullquote__line{
    font-family:var(--v-editorial);
    font-weight:400;
    letter-spacing:-.012em;
  }
  .project-content[data-project="victory"] :where(blockquote){
    font-family:var(--v-editorial);
    font-weight:400;
  }

  /* --- FUNCTIONAL: Public Sans ------------------------------------------- */
  .project-content[data-project="victory"] :where(h4,h5,h6){
    font-family:var(--v-functional);
    font-weight:600;
    letter-spacing:.01em;
  }
  .project-content[data-project="victory"] :where(p,li,dd,dt,figcaption,small,
    td,th,label,summary,button,input,select){
    font-family:var(--v-functional);
  }
  .project-content[data-project="victory"] :where(.label,.meta,.caption,
    figcaption,small){
    font-family:var(--v-functional);
    font-weight:500;
    letter-spacing:.06em;
  }
  .project-content[data-project="victory"] :where(b,strong){font-weight:600}

  /* Roman only until an italic role is explicitly approved. */
  .project-content[data-project="victory"] :where(em,i,cite){
    font-style:normal;font-weight:600;
  }
}
