/* css/fonts.css — font serviti dal nostro server, non da Google.
 *
 * PERCHE': i font di Google partivano al caricamento di ogni pagina, prima di
 * qualsiasi consenso, mandando l'indirizzo IP del visitatore a Google (non
 * installano cookie, quindi il banner non li copriva). In piu' erano
 * responsabili di TUTTO il layout shift del sito: 0,10-0,16 di CLS con i font
 * attivi, 0,0000 bloccandoli (misurato il 30/07/2026).
 *
 * COME AGGIORNARE UN FONT: si riscarica il CSS da Google con uno User-Agent
 * moderno (altrimenti serve woff1), si prendono gli URL dei .woff2, si salvano
 * in css/fonts/ e si aggiornano i blocchi qui sotto tenendo gli unicode-range
 * come sono: servono al browser per NON scaricare latin-ext quando la pagina
 * non ha caratteri che lo richiedono.
 *
 * Il subset "math" di Kalnia non e' stato incluso: contiene simboli
 * matematici che un sito in italiano non usa.
 */


/* Kalnia 400 — latin-ext */
@font-face {
  font-family: 'Kalnia';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/kalnia-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;
}

/* Kalnia 400 — latin */
@font-face {
  font-family: 'Kalnia';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/kalnia-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;
}

/* Kalnia 700 — latin-ext */
@font-face {
  font-family: 'Kalnia';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/kalnia-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;
}

/* Kalnia 700 — latin */
@font-face {
  font-family: 'Kalnia';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/kalnia-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;
}

/* Lato 400 — latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/lato-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;
}

/* Lato 400 — latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/lato-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;
}

/* Lato 700 — latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/lato-700-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;
}

/* Lato 700 — latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/lato-700-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;
}


/* ============================================================
   MATERIAL SYMBOLS — ATTENZIONE, IL FONT E' RIDOTTO
   ============================================================
   Il file contiene SOLO le 80 icone usate oggi dal sito pubblico: 10 KB
   invece dei 312 KB del font completo (che ne ha alcune migliaia).
   Il rovescio della medaglia: aggiungere in una pagina un'icona che non e'
   in questo elenco la fa apparire come RETTANGOLO VUOTO, senza errori in
   console e senza che nulla lo segnali.

   Quando aggiungi un'icona il file va rigenerato: i comandi esatti stanno in
   CLAUDE.md, sezione Conventions, alla voce sul font delle icone. Non sono
   riportati qui perche' contengono sequenze che chiuderebbero questo commento
   e romperebbero il foglio di stile (e' successo davvero il 30/07/2026: la
   regola @font-face qui sotto non veniva piu' letta e tutte le icone del sito
   comparivano come testo).

   font-display: block e non swap di proposito: con swap, finche' il font non
   arriva il browser mostrerebbe il NOME dell'icona come testo
   ("self_improvement" scritto in chiaro dentro la pagina).

   Icone incluse (80):
   accessibility_new, air, arrow_back, arrow_forward, arrow_right_alt, arrow_upward
   assignment_turned_in, auto_awesome, auto_stories, back_hand, backpack, bedtime
   bolt, calendar_month, calendar_today, call, chat, check_circle
   checkroom, child_care, child_hat, directions_run, directions_walk, do_not_disturb_on
   emoji_events, event_available, event_busy, event_repeat, exercise, explore
   explore_off, favorite, fitness_center, flare, folder, footprint
   format_quote, groups, health_and_safety, help_center, home, imagesmode
   light_mode, lightbulb, list_alt, location_away, location_on, mail
   map, meeting_room, menu_book, nature_people, person, person_check
   photo_camera, photo_library, pregnant_woman, psychology, psychology_alt, quiz
   rate_review, rotate_right, schedule, school, search, self_improvement
   send, sentiment_neutral, sentiment_satisfied, spa, stars, storefront
   trending_up, verified_user, visibility, volunteer_activism, water, wb_sunny
   work_history, workspace_premium
   ============================================================ */

@font-face {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('fonts/material-symbols-outlined.woff2') format('woff2');
}

.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}
