/* ==========================================================================
   PANOSTEO — Mouvement : révélations (rejouées à chaque retour dans la section),
   séquence du hero, figures, clôture, politique prefers-reduced-motion.
   Seuls transform, opacity, clip-path et stroke-dashoffset sont animés.
   ========================================================================== */

/* ---- Révélation au défilement (conditionnée à html.js : sans JS, tout est visible) ---- */
.js .po-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--po-t-slow) var(--po-ease-reveal), transform var(--po-t-slow) var(--po-ease-reveal);
  transition-delay: var(--po-delay, 0ms);
}
.js .po-reveal--visual { transform: translateY(28px) scale(.975); }
.js .po-reveal--rule { transform: translateY(12px); }
.js .po-reveal--instant { opacity: 1; transform: none; transition: none; }   /* observé, mais sans fondu : le contenu anime lui-même */
.js .po-reveal.is-visible { opacity: 1; transform: none; }

/* Cascade : --po-i est posé par nth-child (≤ 8) puis par JS au-delà */
.po-stagger > * { --po-delay: calc(var(--po-i, 0) * var(--po-stagger)); }
.po-stagger > :nth-child(2) { --po-i: 1; }
.po-stagger > :nth-child(3) { --po-i: 2; }
.po-stagger > :nth-child(4) { --po-i: 3; }
.po-stagger > :nth-child(5) { --po-i: 4; }
.po-stagger > :nth-child(6) { --po-i: 5; }
.po-stagger > :nth-child(7) { --po-i: 6; }
.po-stagger > :nth-child(8) { --po-i: 7; }

/* Rituel d'ouverture de section : filet Minéral qui s'étire, cartouche en clip */
.js .po-cartouche.po-reveal::before { transform: scaleX(0); transform-origin: left; transition: transform .5s var(--po-ease-reveal); }
.js .po-cartouche.po-reveal.is-visible::before { transform: scaleX(1); }
.js .po-cartouche.po-reveal > span { clip-path: inset(0 100% 0 0); transition: clip-path .6s var(--po-ease-reveal) .25s; }
.js .po-cartouche.po-reveal.is-visible > span { clip-path: inset(0 -4px 0 0); }

/* ---- Titres mot à mot (h1 / h2 [data-split]) ---- */
.po-w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding: 0 .04em .14em;
  margin: 0 -.04em -.14em;
}
.js .po-w > span {
  display: inline-block;
  transform: translateY(112%);
  transition: transform .75s var(--po-ease-reveal);
  transition-delay: calc(var(--po-i, 0) * 35ms + var(--po-delay, 0ms));
}
.js .is-visible .po-w > span { transform: none; }
.js [data-split]:not(.is-visible):not([data-split-done]) { opacity: 0; transition: opacity .6s var(--po-ease); }
.js [data-split].is-visible { opacity: 1; }

/* ---- Keyframes partagés ---- */
@keyframes po-draw { to { stroke-dashoffset: 0; } }
@keyframes po-fade-in { to { opacity: 1; } }
/* Paquets voyageurs : motif « tiret 60–70 + grand espace » non répété, qui entre avant le début du tracé
   et sort après la fin (offset 60/70 → -1000), sans fondu : aucun scintillement en début de cycle. */
@keyframes po-signal { 0% { stroke-dashoffset: 60; } 60% { stroke-dashoffset: -1000; } 100% { stroke-dashoffset: -1000; } }
/* Cycle du hero : 9,5 s = balayage (5,2 s) puis voyant d'alerte (3,4 s) puis pause */
@keyframes po-scan { 0% { transform: translateY(0); opacity: 0; } 4.4% { opacity: 1; } 50% { opacity: 1; } 54.5% { transform: translateY(300px); opacity: 0; } 100% { transform: translateY(300px); opacity: 0; } }
@keyframes po-soft-pulse { 0%, 100% { opacity: .10; } 50% { opacity: .22; } }
/* Voyant d'alerte du hero : apparaît juste après le balayage (cycle de 7 s partagé avec po-scan) */
@keyframes po-alert-dot { 0%, 55% { opacity: 0; transform: scale(.4); } 57.5% { opacity: 1; transform: scale(1.2); } 59%, 93% { opacity: 1; transform: scale(1); } 97%, 100% { opacity: 0; transform: scale(.4); } }
/* L'onde bat deux fois autour du point (elle part juste au-delà du contour du point) */
@keyframes po-alert-ring {
  0%, 56% { opacity: 0; transform: scale(1.2); }
  57% { opacity: .9; transform: scale(1.4); }
  64% { opacity: 0; transform: scale(3.2); }
  65% { opacity: 0; transform: scale(1.2); }
  66.5% { opacity: .9; transform: scale(1.4); }
  74%, 100% { opacity: 0; transform: scale(3.2); }
}
@keyframes po-alert-label { 0%, 57% { opacity: 0; } 60%, 93% { opacity: 1; } 97%, 100% { opacity: 0; } }
@keyframes po-corner-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
@keyframes po-pop { to { opacity: 1; transform: scale(1); } }
@keyframes po-node-in { to { opacity: 1; transform: scale(1); } }
/* Pipeline continu (cycle 4,8 s) : segment 1, puis les deux branches 2→3 à l'arrivée, puis 3→4, puis pause */
@keyframes po-flow-seg1 { 0% { stroke-dashoffset: 70; } 25% { stroke-dashoffset: -1000; } 100% { stroke-dashoffset: -1000; } }
@keyframes po-flow-seg2 { 0%, 25% { stroke-dashoffset: 70; } 50% { stroke-dashoffset: -1000; } 100% { stroke-dashoffset: -1000; } }
@keyframes po-flow-seg3 { 0%, 50% { stroke-dashoffset: 70; } 75% { stroke-dashoffset: -1000; } 100% { stroke-dashoffset: -1000; } }
@keyframes po-flow-tick1 { 0% { transform: scale(1); } 3% { transform: scale(2.4); } 9% { transform: scale(1); } 100% { transform: scale(1); } }
@keyframes po-flow-tick2 { 0%, 24% { transform: scale(1); } 27% { transform: scale(2.4); } 33% { transform: scale(1); } 100% { transform: scale(1); } }
@keyframes po-flow-tick3 { 0%, 49% { transform: scale(1); } 52% { transform: scale(2.4); } 58% { transform: scale(1); } 100% { transform: scale(1); } }
@keyframes po-flow-tick4 { 0%, 74% { transform: scale(1); } 77% { transform: scale(2.4); } 83% { transform: scale(1); } 100% { transform: scale(1); } }
/* Schéma en branches (cycle 10 s, synchronisé avec l'affichage signalement) : B puis A */
@keyframes po-branch-pulse-b { 0%, 18% { stroke-dashoffset: 70; } 28% { stroke-dashoffset: -1000; } 100% { stroke-dashoffset: -1000; } }
@keyframes po-branch-pulse-a { 0%, 68% { stroke-dashoffset: 70; } 78% { stroke-dashoffset: -1000; } 100% { stroke-dashoffset: -1000; } }
@keyframes po-end-b { 0%, 27% { opacity: 0; } 29%, 47% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes po-end-a { 0%, 77% { opacity: 0; } 79%, 97% { opacity: 1; } 100% { opacity: 0; } }
/* Affichage « signalement » : cycle de 10 s, balayage puis catégorie B, balayage puis catégorie A */
@keyframes po-result-scan {
  0% { transform: translateY(0); opacity: 0; }
  2% { opacity: 1; }
  13% { opacity: 1; }
  15% { transform: translateY(290px); opacity: 0; }
  50% { transform: translateY(0); opacity: 0; }
  52% { opacity: 1; }
  63% { opacity: 1; }
  65% { transform: translateY(290px); opacity: 0; }
  100% { transform: translateY(290px); opacity: 0; }
}
@keyframes po-hl-b { 0%, 17% { opacity: 0; } 19%, 47% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes po-hl-a { 0%, 67% { opacity: 0; } 69%, 97% { opacity: 1; } 100% { opacity: 0; } }
/* Voyant : apparaît juste après le balayage (ambre puis, au cycle suivant, vert), avec une onde */
@keyframes po-lamp-b { 0%, 14% { opacity: 0; transform: scale(.4); } 16.5% { opacity: 1; transform: scale(1.2); } 18%, 47% { opacity: 1; transform: scale(1); } 50%, 100% { opacity: 0; transform: scale(.4); } }
@keyframes po-lamp-a { 0%, 64% { opacity: 0; transform: scale(.4); } 66.5% { opacity: 1; transform: scale(1.2); } 68%, 97% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(.4); } }
/* L'onde reprend la forme du pictogramme et bat deux fois à son apparition */
@keyframes po-lamp-ring-b {
  0%, 16.5% { opacity: 0; transform: scale(1); }
  17.5% { opacity: .85; transform: scale(1.1); }
  24% { opacity: 0; transform: scale(2.2); }
  25.5% { opacity: 0; transform: scale(1); }
  26.5% { opacity: .85; transform: scale(1.1); }
  33%, 100% { opacity: 0; transform: scale(2.2); }
}
@keyframes po-lamp-ring-a {
  0%, 66.5% { opacity: 0; transform: scale(1); }
  67.5% { opacity: .85; transform: scale(1.1); }
  74% { opacity: 0; transform: scale(2.2); }
  75.5% { opacity: 0; transform: scale(1); }
  76.5% { opacity: .85; transform: scale(1.1); }
  83%, 100% { opacity: 0; transform: scale(2.2); }
}

/* Tracés : pathLength="1000" normalise toutes les longueurs */
.po-draw { stroke-dasharray: 1000; stroke-dashoffset: 1000; }
.no-js .po-draw { stroke-dashoffset: 0; }

/* ---- Hero : séquence d'entrée (html.is-ready est posé par JS, jouée une fois) ---- */
.js .po-hero__lead,
.js .po-hero__kws > *,
.js .po-hero__actions > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--po-t-slow) var(--po-ease-reveal), transform var(--po-t-slow) var(--po-ease-reveal);
}
.js .po-hero__lead { transition-delay: .9s; }
.js .po-hero__kws > :nth-child(1) { transition-delay: 1.05s; }
.js .po-hero__kws > :nth-child(2) { transition-delay: 1.13s; }
.js .po-hero__kws > :nth-child(3) { transition-delay: 1.21s; }
.js .po-hero__kws > :nth-child(4) { transition-delay: 1.29s; }
.js .po-hero__actions > :nth-child(1) { transition-delay: 1.43s; }
.js .po-hero__actions > :nth-child(2) { transition-delay: 1.51s; }
html.is-ready .po-hero__lead,
html.is-ready .po-hero__kws > *,
html.is-ready .po-hero__actions > * { opacity: 1; transform: none; }
.js .po-hero__title { --po-delay: .25s; }
html.is-ready .po-hero__title { opacity: 1; }
html.is-ready .po-hero__title .po-w > span { transform: none; }
html.is-ready .po-hero .po-accent { background-size: 100% 2px; }

/* Figure du hero : arc tracé, cadre d'analyse, balayage, signal */
.js #po-hero-arc .po-arcfig__band,
.js #po-hero-arc .po-arcfig__trab,
.js #po-hero-arc .po-frame__corners,
.js #po-hero-arc .po-alert__sign,
.js #po-hero-arc .po-alert__ring,
.js #po-hero-arc .po-alert__label { opacity: 0; }
html.is-ready #po-hero-arc .po-arcfig__outer { animation: po-draw 1.4s var(--po-ease-reveal) .1s forwards; }
html.is-ready #po-hero-arc .po-arcfig__inner { animation: po-draw 1.2s var(--po-ease-reveal) .45s forwards; }
html.is-ready #po-hero-arc .po-arcfig__band { animation: po-fade-in .9s var(--po-ease) 1.2s forwards; }
html.is-ready #po-hero-arc .po-arcfig__trab { animation: po-fade-in .9s var(--po-ease) 1.3s forwards; }
html.is-ready #po-hero-arc .po-frame__rect { animation: po-draw 1s var(--po-ease-reveal) 1.5s forwards; }
html.is-ready #po-hero-arc .po-frame__corners { animation: po-fade-in .5s var(--po-ease) 2.1s forwards, po-corner-pulse 3s var(--po-ease-inout) 2.6s infinite; }
html.is-ready #po-hero-arc .po-arcfig__base { animation: po-draw .8s var(--po-ease-reveal) 1.8s forwards; }
html.is-ready #po-hero-arc .po-arcfig__signal { animation: po-signal 4s linear 2.6s infinite; }
html.is-ready #po-hero-arc .po-scan { animation: po-scan 9.5s var(--po-ease-inout) 3s infinite; }
html.is-ready #po-hero-arc .po-alert__sign { animation: po-alert-dot 9.5s var(--po-ease) 3s infinite; }
html.is-ready #po-hero-arc .po-alert__ring { animation: po-alert-ring 9.5s var(--po-ease) 3s infinite; }
html.is-ready #po-hero-arc .po-alert__label { animation: po-alert-label 9.5s var(--po-ease) 3s infinite; }
html.is-ready:not(.is-settled) #po-hero-arc { will-change: transform, opacity; }

/* ---- Figures de section (déclenchées par .is-visible ; boucles sous .is-active) ---- */
.is-visible .po-draw { animation: po-draw var(--po-t-draw) var(--po-ease-reveal) forwards; }
.po-fig--loop:not(.is-active) * { animation-play-state: paused; }
#po-hero-arc * { animation-play-state: running; }
.po-fig--loop:not(.is-active) #po-hero-arc .po-frame__corners,
.po-fig--loop:not(.is-active) #po-hero-arc .po-arcfig__signal,
.po-fig--loop:not(.is-active) #po-hero-arc .po-scan,
.po-fig--loop:not(.is-active) #po-hero-arc .po-alert__sign,
.po-fig--loop:not(.is-active) #po-hero-arc .po-alert__ring,
.po-fig--loop:not(.is-active) #po-hero-arc .po-alert__label { animation-play-state: paused; }

/* Ligne de sol */
.js .po-groundline .gl-solid { stroke-dasharray: 1000; stroke-dashoffset: 1000; }
.js .po-groundline .gl-dash, .js .po-groundline .gl-dot { opacity: 0; }
.po-groundline.is-visible .gl-solid { animation: po-draw .6s var(--po-ease-reveal) forwards; }
.po-groundline.is-visible .gl-dash, .po-groundline.is-visible .gl-dot { animation: po-fade-in .3s var(--po-ease) forwards; }
.po-groundline.is-visible .gl-dash:nth-of-type(1) { animation-delay: .5s; }
.po-groundline.is-visible .gl-dash:nth-of-type(2) { animation-delay: .55s; }
.po-groundline.is-visible .gl-dash:nth-of-type(3) { animation-delay: .6s; }
.po-groundline.is-visible .gl-dash:nth-of-type(4) { animation-delay: .65s; }
.po-groundline.is-visible .gl-dot:nth-of-type(1) { animation-delay: .7s; }
.po-groundline.is-visible .gl-dot:nth-of-type(2) { animation-delay: .75s; }
.po-groundline.is-visible .gl-dot:nth-of-type(3) { animation-delay: .8s; }
.po-groundline.is-visible .gl-dot:nth-of-type(4) { animation-delay: .85s; }
.po-groundline.is-visible .gl-dot:nth-of-type(5) { animation-delay: .9s; }
.po-groundline.is-visible .gl-dot:nth-of-type(6) { animation-delay: .95s; }

/* Flux du parcours */
.js .po-flow__node { opacity: 0; transform: scale(.8); transform-box: fill-box; transform-origin: center; }
.po-flow.is-visible .po-flow__node { animation: po-node-in .7s var(--po-ease-reveal) forwards; }
.po-flow.is-visible .po-flow__node--2 { animation-delay: .12s; }
.po-flow.is-visible .po-flow__node--3 { animation-delay: .24s; }
.po-flow.is-visible .po-flow__node--4 { animation-delay: .36s; }
.po-flow.is-visible .po-flow__link { animation-delay: .3s; animation-duration: 1.1s; }
.po-flow.is-visible.is-active .po-flow__pulse--1 { animation: po-flow-seg1 4.8s linear 1.3s infinite; }
.po-flow.is-visible.is-active .po-flow__pulse--2,
.po-flow.is-visible.is-active .po-flow__pulse--3 { animation: po-flow-seg2 4.8s linear 1.3s infinite; }
.po-flow.is-visible.is-active .po-flow__pulse--4 { animation: po-flow-seg3 4.8s linear 1.3s infinite; }
.po-flow.is-visible.is-active .po-flow__node--1 .n-tick { animation: po-flow-tick1 4.8s var(--po-ease) 1.3s infinite; }
.po-flow.is-visible.is-active .po-flow__node--2 .n-tick { animation: po-flow-tick2 4.8s var(--po-ease) 1.3s infinite; }
.po-flow.is-visible.is-active .po-flow__node--3 .n-tick { animation: po-flow-tick3 4.8s var(--po-ease) 1.3s infinite; }
.po-flow.is-visible.is-active .po-flow__node--4 .n-tick { animation: po-flow-tick4 4.8s var(--po-ease) 1.3s infinite; }

/* Affichage « signalement » : arc tracé, puis balayage et catégorie mise en avant, en boucle */
.po-result.is-visible .po-arcfig__outer { animation-delay: .1s; }
.po-result.is-visible .po-arcfig__inner { animation-delay: .35s; }
.po-result.is-visible .po-arcfig__base { animation-delay: .6s; }
.po-result.is-visible.is-active .po-result__scan { animation: po-result-scan 10s var(--po-ease-inout) .8s infinite; }
.po-result.is-visible.is-active .po-result__row--b::after,
.po-result.is-visible.is-active .po-result__row--b .po-result__chev { animation: po-hl-b 10s linear .8s infinite; }
.po-result.is-visible.is-active .po-result__row--a::after,
.po-result.is-visible.is-active .po-result__row--a .po-result__chev { animation: po-hl-a 10s linear .8s infinite; }
.po-result.is-visible.is-active .po-result__lamp--b { animation: po-lamp-b 10s var(--po-ease) .8s infinite; }
.po-result.is-visible.is-active .po-result__lamp--b .lp-ring { animation: po-lamp-ring-b 10s var(--po-ease) .8s infinite; }
.po-result.is-visible.is-active .po-result__lamp--a { animation: po-lamp-a 10s var(--po-ease) .8s infinite; }
.po-result.is-visible.is-active .po-result__lamp--a .lp-ring { animation: po-lamp-ring-a 10s var(--po-ease) .8s infinite; }

/* Schéma en branches : tracé des lignes, apparition des issues, puis paquets et mises en avant en boucle */
.js .po-branch__start, .js .po-branch__end { opacity: 0; transform: translateX(10px); transition: opacity .6s var(--po-ease-reveal), transform .6s var(--po-ease-reveal); }
.js .po-branch__start { transform: translateX(-10px); transition-delay: .3s; }
.js .po-branch__end--a { transition-delay: 1.3s; }
.js .po-branch__end--b { transition-delay: 1.45s; }
.is-visible .po-branch__start, .is-visible .po-branch__end { opacity: 1; transform: none; }
.po-result__copy.is-visible .po-branch__line { animation-delay: .5s; animation-duration: 1.1s; }
.po-result__copy.is-visible.is-active .po-branch__pulse--b { animation: po-branch-pulse-b 10s linear .8s infinite; }
.po-result__copy.is-visible.is-active .po-branch__pulse--a { animation: po-branch-pulse-a 10s linear .8s infinite; }
.po-result__copy.is-visible.is-active .po-branch__end--b::after { animation: po-end-b 10s linear .8s infinite; }
.po-result__copy.is-visible.is-active .po-branch__end--a::after { animation: po-end-a 10s linear .8s infinite; }

/* ---- Clôture : voile clair qui glisse vers le bas (rideau clair → sombre), puis tracé de la marque.
   Le voile est un pseudo-élément : la section n'est pas clippée, l'observateur d'intersection la voit. ---- */
.po-closing { position: relative; }
.js .po-closing::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--po-spongieux);
  transform: translateY(0);
  transition: transform 1.1s var(--po-ease-reveal), visibility 0s 1.1s;
  pointer-events: none;
}
.js .po-closing.is-visible::before { transform: translateY(100%); visibility: hidden; }
.js .po-closing .po-reveal { transition-delay: calc(.5s + var(--po-delay, 0ms)); }
.js .po-closing .po-cartouche.po-reveal > span { transition-delay: .75s; }
.js .po-closing .po-cartouche.po-reveal::before { transition-delay: .5s; }
.js .po-closing [data-split] { --po-delay: .7s; }

/* Séquence : 1) le logo apparaît (arc tracé, segment Minéral, mot) ; 2) la ligne de sol : trait plein,
   puis les tirets un à un, puis les points un à un. */
.js .po-markdraw .mk-arc { stroke-dasharray: 1000; stroke-dashoffset: -1000; }
.js .po-markdraw .mk-seg { stroke-dasharray: 1000; stroke-dashoffset: 1000; }
.js .po-markdraw .mk-gs { stroke-dasharray: 1000; stroke-dashoffset: 1000; }
.js .po-markdraw .mk-gd { opacity: 0; }
.js .po-markdraw .mk-dot { opacity: 0; transform: scale(.4); transform-box: fill-box; transform-origin: center; }
.js .po-markdraw .mk-word { opacity: 0; }
.is-visible .po-markdraw .mk-arc { animation: po-draw 1.2s var(--po-ease-reveal) .3s forwards; }
.is-visible .po-markdraw .mk-seg { animation: po-draw .5s var(--po-ease) 1.2s forwards; }
.is-visible .po-markdraw .mk-word { animation: po-fade-in .6s var(--po-ease) 1.4s forwards; }
.is-visible .po-markdraw .mk-gs { animation: po-draw .5s var(--po-ease) 2.2s forwards; }
.is-visible .po-markdraw .mk-gd { animation: po-fade-in .25s var(--po-ease) forwards; }
.is-visible .po-markdraw .mk-dot { animation: po-pop .3s var(--po-ease-reveal) forwards; }
.is-visible .po-markdraw .mk-gd:nth-of-type(2) { animation-delay: 2.8s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(3) { animation-delay: 2.87s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(4) { animation-delay: 2.94s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(5) { animation-delay: 3.01s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(6) { animation-delay: 3.08s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(7) { animation-delay: 3.15s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(8) { animation-delay: 3.22s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(9) { animation-delay: 3.29s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(10) { animation-delay: 3.36s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(11) { animation-delay: 3.43s; }
.is-visible .po-markdraw .mk-gd:nth-of-type(12) { animation-delay: 3.5s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(1) { animation-delay: 3.65s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(2) { animation-delay: 3.71s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(3) { animation-delay: 3.77s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(4) { animation-delay: 3.83s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(5) { animation-delay: 3.89s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(6) { animation-delay: 3.95s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(7) { animation-delay: 4.01s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(8) { animation-delay: 4.07s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(9) { animation-delay: 4.13s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(10) { animation-delay: 4.19s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(11) { animation-delay: 4.25s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(12) { animation-delay: 4.31s; }
.is-visible .po-markdraw .mk-dot:nth-of-type(13) { animation-delay: 4.37s; }

/* ---- Mouvement réduit (réglage système) : états finaux, aucune boucle ---- */
@media (prefers-reduced-motion: reduce) {
  .js .po-reveal, .js .po-w > span, .js [data-split], .js .po-hero__lead, .js .po-hero__kws > *, .js .po-hero__actions > *, .js .po-hero__title { opacity: 1 !important; transform: none !important; transition: none !important; }
  .js .po-cartouche.po-reveal::before { transform: none; transition: none; }
  .js .po-cartouche.po-reveal > span { clip-path: none; transition: none; }
  .po-draw, .js .po-groundline .gl-solid, .js .po-markdraw .mk-arc, .js .po-markdraw .mk-seg, .js .po-markdraw .mk-gs { stroke-dashoffset: 0 !important; animation: none !important; }
  .js .po-groundline .gl-dash, .js .po-groundline .gl-dot, .js .po-markdraw .mk-gd, .js .po-markdraw .mk-dot, .js .po-markdraw .mk-word, .js .po-flow__node, .js #po-hero-arc .po-arcfig__band, .js #po-hero-arc .po-arcfig__trab, .js #po-hero-arc .po-frame__corners, .js #po-hero-arc .po-alert__sign, .js #po-hero-arc .po-alert__label { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; }
  .po-arcfig__signal, .po-scan, .po-flow__pulse, .po-result__scan, .po-branch__pulse, .po-alert__ring { display: none !important; }
  .po-flow__node .n-tick { animation: none !important; }
  .po-result__row--b::after, .po-result__row--b .po-result__chev, .po-branch__end--b::after, .po-result__lamp--b { opacity: 1 !important; transform: none !important; animation: none !important; }
  .po-result__row--a::after, .po-result__row--a .po-result__chev, .po-branch__end--a::after, .po-result__lamp--a, .po-result__lamp .lp-ring { opacity: 0 !important; animation: none !important; }
  .js .po-branch__start, .js .po-branch__end { opacity: 1 !important; transform: none !important; transition: none !important; }
  .po-stat__tick, .po-ratio__bar { transform: none !important; transition: none !important; }
  .po-accent { background-size: 100% 2px !important; transition: none !important; }
  .js .po-closing::before { display: none !important; }
  .po-hero__field { transition: none; }
  html { scroll-behavior: auto; }
}

/* ---- Sans JavaScript : états finaux ---- */
.no-js .po-flow__node, .no-js .po-markdraw *, .no-js .po-arcfig__band, .no-js .po-arcfig__trab, .no-js .po-frame__corners { opacity: 1; transform: none; }
.no-js .po-arcfig__signal, .no-js .po-scan, .no-js .po-flow__pulse, .no-js .po-result__scan, .no-js .po-branch__pulse, .no-js .po-alert__ring { display: none; }
.no-js .po-result__row--b::after, .no-js .po-result__row--b .po-result__chev, .no-js .po-branch__end--b::after { opacity: 1; }
.no-js .po-result__lamp--b { opacity: 1; transform: none; }
