/* Lenis garde le défilement natif tactile ; pas de lissage CSS en parallèle. */
html.lenis,html.lenis body{scroll-behavior:auto!important}

/* SpotlightCard : halo bleu local, adapté de React Bits pour des cartes HTML. */
.rb-spotlight{position:relative;isolation:isolate;overflow:hidden;--light-x:50%;--light-y:50%;--light-on:0}
.rb-spotlight:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;opacity:var(--light-on);background:radial-gradient(280px circle at var(--light-x) var(--light-y),rgba(0,150,215,.14),transparent 70%);transition:opacity .3s ease}
.rb-spotlight:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;padding:1px;opacity:var(--light-on);background:radial-gradient(220px circle at var(--light-x) var(--light-y),rgba(0,157,220,.7),transparent 72%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box exclude,linear-gradient(#fff 0 0);transition:opacity .3s ease}
.rb-spotlight>*{position:relative;z-index:1}
.rb-spotlight:focus-within{border-color:var(--primary)}
body.dark .rb-spotlight:before{background:radial-gradient(280px circle at var(--light-x) var(--light-y),rgba(37,173,237,.17),transparent 70%)}

/* Magnet : un déplacement limité à quelques pixels, sans changer la cible. */
.rb-magnet{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .3s cubic-bezier(.2,.8,.2,1),background .2s,transform .2s}
.rb-magnet:focus-visible{translate:0 0}
@media(hover:none),(pointer:coarse){.rb-spotlight:before,.rb-spotlight:after{display:none}.rb-magnet{translate:none!important}}

/* Mouvement de l’écosystème et progression de lecture. */
.navbar:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:3px;background:linear-gradient(90deg,#008ed4,#19c3b1);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}

  html.motion-enabled .hero .orbit-three{animation:ecosystem-turn 38s linear infinite;animation-play-state:paused}
  html.motion-enabled .hero .orbit-two:after{content:'';position:absolute;top:50%;left:-4px;width:8px;height:8px;background:#4ed8eb;border-radius:50%;box-shadow:0 0 18px #4ed8eb;animation:ecosystem-pulse 2.5s ease-in-out infinite;animation-play-state:paused}
  html.motion-enabled .hero .satellite{animation:ecosystem-float 5s ease-in-out infinite;animation-play-state:paused}
  .hero .sat-two{animation-delay:-1.2s}.hero .sat-three{animation-delay:-2.5s}.hero .sat-four{animation-delay:-3.8s}
  html.motion-enabled .hero.motion-active .satellite,html.motion-enabled .hero.motion-active .orbit-three,html.motion-enabled .hero.motion-active .orbit-two:after{animation-play-state:running}
  .history-event:after{content:'';position:absolute;left:0;top:-1px;width:100%;height:2px;background:linear-gradient(90deg,#008ed4,#19c3b1);transform:scaleX(var(--line-progress,0));transform-origin:left;pointer-events:none}
  .product-summary .summary-logo img{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
  .product-summary:hover .summary-logo img{transform:translateY(-4px) scale(1.06)}
  .text-link span{display:inline-block;transition:transform .3s}.text-link:hover span{transform:translate(4px,-3px)}
@keyframes ecosystem-turn{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes ecosystem-float{0%,100%{translate:0 -10px}50%{translate:0 10px}}
@keyframes ecosystem-pulse{0%,100%{opacity:.45;scale:.7}50%{opacity:1;scale:1.35}}
@media(max-width:800px){.hero .satellite{animation-duration:6s}@keyframes ecosystem-float{0%,100%{translate:0 -3px}50%{translate:0 3px}}}
@media(max-width:560px){.history-event:after{top:0;left:-1px;width:2px;height:100%;transform:scaleY(var(--line-progress,0));transform-origin:top}}

/* Commande accessible de mouvement, y compris si le système le réduit. */
.motion-toggle{display:inline-grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--primary);font-size:16px;line-height:1}
.motion-toggle[hidden]{display:none}
.motion-toggle[aria-pressed="true"]{background:var(--surface);border-color:var(--primary)}
html.motion-reduced{scroll-behavior:auto}
html.motion-reduced *,html.motion-reduced *:before,html.motion-reduced *:after{animation:none!important;transition:none!important}
html.motion-reduced .rb-spotlight:before,html.motion-reduced .rb-spotlight:after{display:none}
html.motion-reduced .rb-magnet{translate:none!important}
