/* ═══════════════════════════════════════════════════════════════════════════
   I FONT — un posto solo, per tutte e tre le pagine
   File: assets/font/font.css — nuovo il 15 settembre 2026
   ═══════════════════════════════════════════════════════════════════════════

   RICHIESTA DI LUCA (15/09/2026)
   «Voglio andare a lavorare sui font dell'app, COMPLETAMENTE. Voglio font non
    dati dall'AI ma scelti da me. Per il personal brand sportivo stavo pensando
    quelli della NIKE, per le scritte piccole e non grassetto, non so.»
   E dopo aver guardato il provino (PROVINO-FONT.html):
   «Mi piace tanto la A, Archivio, ma con le lettere piccole della C (in teoria
    dovrebbe essere Inter).»

   ─────────────────────────────────────────────────────────────────────────
   I FONT DELLA NIKE NON SI POSSONO AVERE, e non è un ripiego

   Il marchio «NIKE» è lettering disegnato a mano su una base di Futura Extra
   Bold Condensed Oblique; i manifesti storici sono Futura Bold Condensed e
   Trade Gothic Bold Condensed No. 20; i tagli di oggi Nike se li fa in casa e
   non escono dall'azienda. Nessuno dei tre si compra.

   Ma l'effetto «Nike» non sta nel nome del font: sta nella FORMA — maiuscolo,
   stretto, pesante, lettere vicine. Quella forma la dà anche Archivo, che è
   libero, gratuito e si può mettere dentro il programma.

   ─────────────────────────────────────────────────────────────────────────
   CHI FA COSA — tre ruoli, e si cambiano da qui

   ARCHIVO   i titoli. È una famiglia VARIABILE con due assi: il peso e la
             LARGHEZZA (62%-125%). È il motivo per cui l'ha scelta Luca: da
             un file solo escono sia il titolo stretto da manifesto sia una
             larghezza normale per i titoletti dentro le righe.
   INTER     tutto il testo, e soprattutto LE SCRITTE PICCOLE — 11, 12,5 e
             14 px, che è dove un font sbagliato si vede davvero. Inter è
             nato per le interfacce: occhio grande, lettere che non si
             confondono fra loro a corpo piccolo.
   IBM PLEX MONO   i numeri: carichi, timer, date. Resta quello di prima, e
             resta per una ragione precisa — le cifre hanno tutte la stessa
             larghezza, quindi il timer non BALLA mentre scorrono i secondi e
             i carichi stanno in colonna.

   ─────────────────────────────────────────────────────────────────────────
   ⚠ PERCHÉ I FILE STANNO QUI DENTRO E NON SI PRENDONO DA GOOGLE

   Prima le tre pagine chiedevano i font a fonts.googleapis.com. Vuol dire che
   il telefono di OGNI cliente, ogni volta che apriva l'app, faceva una
   chiamata ai server di Google — che quella chiamata la vede, con l'indirizzo
   IP di chi la fa. Su un'app che tiene dati di salute di persone paganti è
   una cosa che non serve a niente e va spiegata nell'informativa.

   Adesso i font stanno nel progetto:
     · niente terzi sul telefono dei clienti;
     · l'app parte anche senza rete (i file sono già lì);
     · se Google cambia indirizzo, a noi non succede niente.

   ⚠ LE LICENZE STANNO ACCANTO AI FILE. Archivo, Inter e IBM Plex Mono sono
   tutti sotto SIL Open Font License 1.1: si possono ridistribuire dentro un
   prodotto, anche a pagamento, a patto che la licenza viaggi con loro. Sono
   i tre OFL-*.txt in questa cartella: NON VANNO CANCELLATI.

   ⚠ SCARICATI UNA VOLTA SOLA, il 15/09/2026, nei soli sottoinsiemi latin e
   latin-ext (l'alfabeto che serve all'italiano più gli accenti stranieri dei
   cognomi). Niente greco, niente cirillico: sarebbero 200 KB per niente.
   ═══════════════════════════════════════════════════════════════════════════ */

/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-display: swap;
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 62% 125%;
  src: url('/assets/font/archivo-variabile-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: 'Archivo';
  font-display: swap;
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 62% 125%;
  src: url('/assets/font/archivo-variabile-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: 'Inter';
  font-display: swap;
  font-style: italic;
  font-weight: 100 900;
  src: url('/assets/font/inter-variabile-corsivo-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: 'Inter';
  font-display: swap;
  font-style: italic;
  font-weight: 100 900;
  src: url('/assets/font/inter-variabile-corsivo-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: 'Inter';
  font-display: swap;
  font-style: normal;
  font-weight: 100 900;
  src: url('/assets/font/inter-variabile-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: 'Inter';
  font-display: swap;
  font-style: normal;
  font-weight: 100 900;
  src: url('/assets/font/inter-variabile-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-display: swap;
  font-style: normal;
  font-weight: 400;
  src: url('/assets/font/plexmono-400-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-display: swap;
  font-style: normal;
  font-weight: 400;
  src: url('/assets/font/plexmono-400-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-display: swap;
  font-style: normal;
  font-weight: 500;
  src: url('/assets/font/plexmono-500-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-display: swap;
  font-style: normal;
  font-weight: 500;
  src: url('/assets/font/plexmono-500-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;
}

/* ═══════════════════════════════════════════════════════════════════════════
   LE TRE VARIABILI — si cambia font di tutta l'app da queste righe

   ⚠ Sono su :root, quindi valgono per le tre pagine che caricano questo
   foglio (accesso, portale, CRM). Da qui in poi NESSUN file scrive più il
   nome di un font: scrive var(--font-testo). Se un giorno Archivo non
   piacesse più, si cambia QUI e cambia dappertutto.
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  --font-titolo:'Archivo',system-ui,-apple-system,sans-serif;
  --font-testo:'Inter',system-ui,-apple-system,sans-serif;
  --font-numeri:'IBM Plex Mono',ui-monospace,monospace;

  /* Quanto stretto è un titolo. Sono le due larghezze dell'asse di Archivo:
     la prima per i titoletti dentro le righe (che devono restare leggibili),
     la seconda per i titoli da manifesto. */
  --titolo-largo:88%;
  --manifesto-largo:72%;
  /* Le maiuscole strette hanno bisogno di un filo d'aria fra le lettere,
     altrimenti si toccano. Il numero è piccolo apposta: se cresce, il titolo
     smette di sembrare un manifesto e comincia a sembrare un sottotitolo. */
  --manifesto-spazio:.015em;
  /* ⚠ I TITOLI GRANDI VANNO STRETTI, NON ARIOSI — e questo lo dicono le foto
     che Luca ha mandato il 15/09, non un'idea mia. La scheda del marchio Nike
     dice, testuale: «Futura Condensed Extra Bold — -62% Tracking, 26% Shear».
     Cioè lettere quasi attaccate. Sotto i 16px l'aria serve (le maiuscole
     strette si toccano e non si leggono più), sopra no: lì l'aria smonta il
     manifesto. Due numeri e non uno, per questo. */
  --manifesto-spazio-stretto:-.012em;
  --titolo-peso:700;
  --manifesto-peso:800;

  /* ⚠ LA PENDENZA DEL MARCHIO NIKE — spenta apposta, e si accende da qui.
     Il «26% Shear» della scheda è la parte più riconoscibile del marchio:
     sono circa 14 gradi. Accenderla vuol dire mettere TUTTI i titoli
     dell'app in corsivo obliquo — è il gesto che fa dire «questo è Nike», e
     proprio per quello non lo decido io: `0deg` finché Luca non lo guarda.
     ⚠ E c'è un secondo motivo per pensarci. Il font non è di nessuno, ma un
     marchio che ricopia carattere, pendenza e spaziatura di un altro marchio
     smette di essere «ispirato» e diventa una somiglianza: il nome di
     Giuseppe non deve leggersi come un NIKE storto. La forma sì, la copia no. */
  --manifesto-inclinazione:0deg;
}
