/* =========================================
= FRONT PAGE — INTRO ATELIER
========================================= */
.nl-home-intro {
  padding: 5rem 2rem;
  background: var(--secondary-c);
}

.nl-home-intro--inner {
  /* 75 % sur écrans courants, plafonné à 80rem au-delà pour éviter des lignes
     trop longues (lisibilité) sur les très grands écrans. */
  max-width: min(75%, 80rem);
  margin: 0;
}

.nl-home-intro--title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-display-sm);
  color: var(--primary-60);
  font-weight: 400;
  font-style: normal;
}

.nl-home-intro--accent {
  font-weight: 400;
  font-style: italic;
  color: var(--primary);
}

@media (max-width: 64rem) {
  .nl-home-intro { padding: 4rem 1rem; }
  .nl-home-intro--inner { max-width: 85%; }
}

/* .nl-home-intro--common : segments NON accentués de la phrase. Volontairement
   SANS mise en forme propre (elle vient déjà de --title) — la classe sert
   uniquement de découpage pour l'animation et de cible anti-FOUC. */

/* Reveal au scroll (home-intro.js) : TOUS les segments de la phrase sont masqués
   AVANT le JS, uniquement si scripting actif ET animations autorisées → aucun flash.
   Le conteneur --inner n'est PAS masqué : il n'a pas de fond, tout le contenu
   visible est dans les segments. Il ne fait que glisser, ce sont les segments
   qui portent le fondu (sinon l'étape 1 animerait un bloc vide).
   Sans JS / GSAP absent / reduced-motion → visible (le JS révèle en fallback). */
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
  .nl-home-intro--accent,
  .nl-home-intro--common { opacity: 0; }
}
