/* ═══════════════════════════════════════════════════════════════════════════
   FONDATIONE CARAVELLI — PALETTES PAR PAGE & TRANSITIONS CHROMATIQUES
   fc-palette-pages.css
   ─────────────────────────────────────────────────────────────────────────
   Fichier ADDITIF : il ne remplace rien de fondazione-2026.css.
   Il se contente de REDÉFINIR les variables de rôle existantes
   (--surface, --surface-2, --texte, --texte-doux, --accent, --ornement,
   --filet) dans la portée body[data-fc-page="…"], en restant dans
   l'univers Carrara / Obsidienne / Lapis / Ivoire / Or discret.

   Ordre de chargement recommandé : APRÈS fondazione-2026.css.

   Hooks :
     body[data-fc-page]  → famille de palette (accueil, atlas, projet…)
     body[data-fc-slug]  → raffinement par page précise
     html.fc-palette-transition / .fc-palette-reduite → pilotés par le JS
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 0. Durée & courbe du crossfade chromatique ──────────────────────────── */
:root{
  --fc-palette-duree : 760ms;                          /* 600–900 ms */
  --fc-palette-courbe: cubic-bezier(.33, 0, .2, 1);    /* douce, sans à-coup */
}

/* ── 1. Voile de fondu inter-pages ─────────────────────────────────────────
   Couche plein écran injectée par le JS (.fc-voile-palette).
   Sa couleur suit --fc-voile-couleur, que le JS aligne sur la palette
   de la page ENTRANTE pour un fondu sans flash blanc.                     */
.fc-voile-palette{
  position:fixed;
  inset:0;
  z-index:2147483000;            /* sous rien d'autre, au-dessus du contenu */
  pointer-events:none;
  background-color:var(--fc-voile-couleur, var(--obsidienne));
  opacity:var(--fc-voile-opacite, 0);
  transition:opacity var(--fc-palette-duree) var(--fc-palette-courbe);
  will-change:opacity;
  contain:strict;
}

/* Crossfade chromatique interne : quand la palette change sur la page
   (navigation interceptée, bfcache, retour arrière), les rôles de couleur
   glissent au lieu de basculer sec. On ne transitionne QUE des propriétés
   de couleur — jamais layout ni typographie.                                */
html.fc-palette-transition body{
  transition:
    background-color var(--fc-palette-duree) var(--fc-palette-courbe),
    color            var(--fc-palette-duree) var(--fc-palette-courbe);
}
html.fc-palette-transition body :where(
  .fc-nav, .fc-pied, [data-fc-chapitre], [data-fc-ligne], [data-fc-filet]
){
  transition:
    background-color var(--fc-palette-duree) var(--fc-palette-courbe),
    border-color     var(--fc-palette-duree) var(--fc-palette-courbe),
    color            var(--fc-palette-duree) var(--fc-palette-courbe);
}

/* ── 2. View Transitions inter-documents (progressive enhancement) ─────────
   Ignoré par les navigateurs qui ne le supportent pas ; le voile CSS/JS
   ci-dessus reste alors le seul mécanisme.                                  */
@view-transition{
  navigation:auto;
}
::view-transition-old(root),
::view-transition-new(root){
  animation-duration:var(--fc-palette-duree);
  animation-timing-function:var(--fc-palette-courbe);
  mix-blend-mode:normal;
}
/* Le nouveau document se révèle par-dessus : fondu simple, luxueux. */
::view-transition-old(root){ animation-name:fc-vt-fondu-sortant }
::view-transition-new(root){ animation-name:fc-vt-fondu-entrant }
@keyframes fc-vt-fondu-sortant{ from{opacity:1} to{opacity:0} }
@keyframes fc-vt-fondu-entrant{ from{opacity:0} to{opacity:1} }

/* ── 3. PALETTES PAR FAMILLE DE PAGE ───────────────────────────────────────
   Convention : on ne redéfinit que les RÔLES déjà consommés par le site
   (--surface, --surface-2, --texte, --texte-doux, --accent, --ornement,
   --filet) + une couleur de voile (--fc-voile-couleur).
   Toutes les teintes sont exprimées via les teintes nommées existantes
   (--obsidienne, --nuit, --encre, --profond, --ivoire, --carrara,
   --pierre, --glycine, --or-clair, --or, --jade) ou en oklch mesuré
   dans la même gamme. Luxe discret, jamais criard.                         */

/* — ACCUEIL : obsidienne canonique, lapis en lumière — */
body[data-fc-page="accueil"]{
  --surface   : var(--obsidienne);
  --surface-2 : var(--nuit);
  --accent    : var(--glycine);
  --ornement  : var(--or-clair);
  --fc-voile-couleur: var(--obsidienne);
}

/* — ATLAS : nuit profonde tirée vers le lapis — */
body[data-fc-page="atlas"]{
  --surface   : oklch(.1420 calc(var(--c) * var(--c-ink) * .0200) var(--h-or));
  --surface-2 : oklch(.1800 calc(var(--c) * var(--c-ink) * .0420) var(--h-ink));
  --accent    : var(--glycine);
  --ornement  : var(--or-clair);
  --fc-voile-couleur: oklch(.1420 calc(var(--c) * var(--c-ink) * .0200) var(--h-or));
}

/* — TERRAIN (carnet de terrain) : encre plus sèche, malachite de preuve — */
body[data-fc-page="terrain"]{
  --surface   : var(--encre);
  --surface-2 : var(--obsidienne);
  --accent    : var(--jade);         /* la preuve, accent le plus rare */
  --ornement  : var(--or-clair);
  --fc-voile-couleur: var(--encre);
}

/* — CHARTE (etica, code-dignite) : violet profond, solennel — */
body[data-fc-page="charte"]{
  --surface   : var(--profond);
  --surface-2 : var(--obsidienne);
  --accent    : var(--glycine);
  --ornement  : var(--or-clair);
  --fc-voile-couleur: var(--profond);
}

/* — LECTURE (lettre, crédits, pages légales) : ivoire Carrara, jour — */
body[data-fc-page="lecture"]{
  --surface         : var(--ivoire);
  --surface-2       : var(--carrara);
  --texte           : var(--encre);
  --texte-doux      : oklch(.4200 calc(var(--c) * var(--c-ink) * .0214) var(--h-ink));
  --texte-tres-doux : oklch(.4900 calc(var(--c) * var(--c-ink) * .0180) var(--h-ink));
  --accent          : var(--violet);
  --ornement        : var(--or-sombre);
  --filet           : var(--filet-jour);
  --fc-voile-couleur: var(--ivoire);
}

/* — DIRECTION : nuit chaude d'un cran, or un peu plus présent — */
body[data-fc-page="direction"]{
  --surface   : var(--nuit);
  --surface-2 : var(--obsidienne);
  --accent    : var(--glycine);
  --ornement  : var(--or-clair);
  --fc-voile-couleur: var(--nuit);
}

/* — DOMAINES : obsidienne froide, accent lapis-or — */
body[data-fc-page="domaines"]{
  --surface   : var(--obsidienne);
  --surface-2 : var(--profond);
  --accent    : var(--or-clair);
  --ornement  : var(--glycine);
  --fc-voile-couleur: var(--obsidienne);
}

/* — INSTITUTION (gouvernance, transparence, preuves, rapporto) :
   Carrara assombri — la rigueur documentaire —                        */
body[data-fc-page="institution"]{
  --surface         : var(--carrara);
  --surface-2       : var(--ivoire);
  --texte           : var(--encre);
  --texte-doux      : oklch(.4200 calc(var(--c) * var(--c-ink) * .0214) var(--h-ink));
  --texte-tres-doux : oklch(.4900 calc(var(--c) * var(--c-ink) * .0180) var(--h-ink));
  --accent          : var(--violet);
  --ornement        : var(--or-sombre);
  --filet           : var(--filet-jour);
  --fc-voile-couleur: var(--carrara);
}

/* — SOUTIEN (sostenere, patronage) : nuit + or, la générosité — */
body[data-fc-page="soutien"]{
  --surface   : var(--nuit);
  --surface-2 : var(--encre);
  --accent    : var(--or-clair);
  --ornement  : var(--glycine);
  --fc-voile-couleur: var(--nuit);
}

/* — PROJETS (progetti/*) : obsidienne, malachite comme sceau — */
body[data-fc-page="projet"]{
  --surface   : var(--obsidienne);
  --surface-2 : var(--encre);
  --accent    : var(--glycine);
  --ornement  : var(--jade);
  --fc-voile-couleur: var(--obsidienne);
}

/* — ARCHIVES (archivio) : la plus sombre, presque void — */
body[data-fc-page="archives"]{
  --surface   : oklch(.1050 calc(var(--c) * var(--c-ink) * .0120) var(--h-ink));
  --surface-2 : var(--obsidienne);
  --accent    : var(--glycine);
  --ornement  : var(--or-clair);
  --fc-voile-couleur: oklch(.1050 calc(var(--c) * var(--c-ink) * .0120) var(--h-ink));
}

/* — Raffinement par SLUG (priorité sur la famille) — */
body[data-fc-slug="preuves"]{ --ornement: var(--jade) }
body[data-fc-slug="lettre"]{ --surface: var(--albe) }

/* ── 4. Mouvement réduit : tout est désactivé, aucun flash, aucun fondu ──── */
@media (prefers-reduced-motion: reduce){
  .fc-voile-palette{ transition:none; opacity:0 !important; display:none }
  html.fc-palette-transition body,
  html.fc-palette-transition body :where(
    .fc-nav, .fc-pied, [data-fc-chapitre], [data-fc-ligne], [data-fc-filet]
  ){ transition:none }
  ::view-transition-old(root),
  ::view-transition-new(root){ animation:none !important }
}
