/* Adomos — motion v2 (partagé home + pages générées). Voir motion2.js. */

/* Glow rouge suivant le curseur dans les heros */
.cursor-glow{position:absolute !important;width:640px;height:640px;border-radius:50%;pointer-events:none;
  z-index:1;transform:translate(-50%,-50%);opacity:0;transition:opacity .5s ease;
  background:radial-gradient(circle,rgba(255,49,49,.16) 0%,rgba(255,49,49,.05) 40%,transparent 65%);
  filter:blur(30px);mix-blend-mode:screen}
.cursor-glow.on{opacity:1}
.hero,.pg-hero,.art-hero{overflow:hidden}

/* Spotlight : halo au point du curseur sur les cartes */
.spot{position:relative;overflow:hidden}
.spot::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s ease;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,49,49,.10),rgba(255,255,255,.035) 35%,transparent 62%)}
.spot:hover::after{opacity:1}

/* Boutons magnétiques : le transform inline est piloté par motion2.js */
.btn-p,.hdr-cta,.sb-cta-btn,.form-btn{transition:transform .3s cubic-bezier(.22,1,.36,1),filter .25s,box-shadow .25s}

/* Titre de hero mot à mot */
.pg-h1 .wd{display:inline-block;opacity:0;transform:translateY(.55em) rotate(1.5deg);
  animation:wdUp .75s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(.12s + var(--i,0)*.055s)}
@keyframes wdUp{to{opacity:1;transform:translateY(0) rotate(0)}}
/* quand le titre est découpé en mots, l'ancienne entrée du bloc entier se coupe */
.mo-ready .pg-hero .pg-h1.wordized{animation:none;opacity:1}

/* Marquee des références */
.marq{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq-track{display:inline-flex;align-items:center;gap:2.2rem;white-space:nowrap;
  animation:marq 26s linear infinite;will-change:transform}
.marq:hover .marq-track{animation-play-state:paused}
.marq-it{font-size:1.05rem;font-weight:600;color:var(--t2, rgba(255,255,255,.65))}
.marq-dot{width:5px;height:5px;border-radius:50%;background:#FF3131;flex:0 0 auto}
@keyframes marq{to{transform:translateX(-50%)}}

@media (prefers-reduced-motion: reduce){
  .cursor-glow{display:none}
  .spot::after{display:none}
  .pg-h1 .wd{animation:none;opacity:1;transform:none}
  .marq-track{animation:none}
}

/* Tilt 3D : lissage du retour */
.tilt{transition:transform .35s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d}
.tilt:hover{transition:transform .06s linear}

/* ── Vie ambiante ─────────────────────────────────────────── */
/* Décors de fond : toujours hors flux, quoi qu'en disent les règles de section */
.lines-bg{position:absolute !important;inset:0;pointer-events:none}

/* Faisceau lumineux descendant les lignes verticales des heros/CTA */
.lines-bg .line{overflow:hidden}
.lines-bg .line::after{content:"";position:absolute;left:0;top:-140px;width:100%;height:140px;
  background:linear-gradient(180deg,transparent,rgba(255,49,49,.55),transparent);
  animation:beam 7s cubic-bezier(.4,0,.2,1) infinite}
.lines-bg .line:nth-child(2)::after{animation-delay:1.4s}
.lines-bg .line:nth-child(3)::after{animation-delay:2.8s}
.lines-bg .line:nth-child(4)::after{animation-delay:4.2s}
.lines-bg .line:nth-child(5)::after{animation-delay:5.6s}
@keyframes beam{0%{top:-140px}55%,100%{top:110%}}

/* Respiration du bandeau CTA : halo rouge très doux */
.cta-band::before{content:"";position:absolute !important;left:50%;top:55%;width:720px;height:420px;
  transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,49,49,.10),transparent 65%);
  filter:blur(40px);animation:breathe 6s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}}

/* Points rouges qui pulsent (puces de services, marquee) */
.svc-t::before,.marq-dot{animation:dotpulse 2.6s ease-in-out infinite}
@keyframes dotpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,49,49,.35)}50%{box-shadow:0 0 0 5px rgba(255,49,49,0)}}

/* Dérive lente et continue des vignettes d'articles */
.art-thumb{animation:thumbdrift 14s ease-in-out infinite alternate}
@keyframes thumbdrift{from{transform:scale(1)}to{transform:scale(1.045)}}
.art-card:hover .art-thumb{animation-play-state:paused}

/* Le CTA principal du header respire doucement */
.hdr-cta{animation:ctaglow 4.5s ease-in-out infinite}
@keyframes ctaglow{0%,100%{box-shadow:0 0 0 0 rgba(255,49,49,.0)}50%{box-shadow:0 8px 30px -6px rgba(255,49,49,.55)}}

@media (prefers-reduced-motion: reduce){
  .tilt{transition:none}
  .lines-bg .line::after,.cta-band::before,.svc-t::before,.marq-dot,.art-thumb,.hdr-cta{animation:none !important}
}
