/* VIZARNE — page Contact : faisceau de fibres optiques
   Le canvas est fixe, derrière le contenu ; il dessine le faisceau dans les
   coordonnées de la page, donc il défile avec elle tout en restant vivant. */
.fiber-canvas { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 0; pointer-events: none; display: block; }
.fiber-page { position: relative; z-index: 1; }
.fiber { position: relative; height: 95vh; }
.fiber-line {
  position: absolute; left: var(--gutter); bottom: 6vh; max-width: 15ch;
  font-family: var(--display); font-weight: 700; font-stretch: 80%; letter-spacing: -.03em; line-height: .98;
  font-size: clamp(30px, 3.6vw, 56px); color: #fff;
  opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform 1s cubic-bezier(.23, 1, .32, 1);
  text-shadow: 0 2px 24px rgba(8, 19, 32, .8);
}
.fiber-line.in { opacity: 1; transform: none; }
.fiber-line .it { font-family: 'Instrument Serif', Georgia, serif; font-style: italic; font-weight: 400; color: #cbe1f8; }
/* le formulaire et ses textes passent au-dessus des fibres */
.fiber-page .contact-grid { position: relative; z-index: 2; }
@media (max-width: 760px) {
  .fiber { height: 80vh; }
  .fiber-line { font-size: clamp(26px, 8vw, 36px); }
}
@media (prefers-reduced-motion: reduce) {
  .fiber-line { opacity: 1; transform: none; transition: none; }
}
