/* ─────────────────────────────────────────────────────────────────────────────
   Alfred — les scènes de la suite de l'accueil (story.js).

   Une scène = une section collante : le texte tient la colonne de gauche, la
   scène la droite, et le défilement fait avancer l'une pendant que l'autre ne
   bouge pas. La liste des points (`.story-steps`) est le contenu ; l'élément en
   cours s'allume, la scène le montre.

   Tout est dessiné dans la langue de l'application — cartes graphite à double
   cadre, câbles lumineux de graph.css — pour que la page ne change jamais de
   monde en descendant.
   ───────────────────────────────────────────────────────────────────────────── */

.story{position:relative;z-index:2;height:calc(100svh + var(--steps) * 72svh)}
.story-pin{
  position:sticky;top:0;height:100svh;min-height:560px;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);align-items:center;
  gap:clamp(24px,4vw,64px);
  /* Le texte s'aligne sur la marge de la page, celle du logo ; la scène,
     elle, s'étend plus loin vers la droite — elle a besoin de place. */
  padding:0 max(20px,calc(50vw - 660px)) 0 max(20px,calc(50vw - 540px + 24px));
}
.story-text{position:relative;z-index:3}
.story-text h2{margin-bottom:14px}
.story-text .lede{font-size:clamp(14.5px,1.25vw,16.5px)}

/* La liste : un rail à gauche, l'élément en cours éclairé. */
.story-steps{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:4px}
.story-steps li{position:relative;padding:8px 0 8px 18px;opacity:.36;transition:opacity .35s}
.story-steps li::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;
  border-radius:2px;background:rgba(255,255,255,.12)}
.story-steps li::after{content:"";position:absolute;left:0;top:10px;width:2px;border-radius:2px;
  height:calc((100% - 20px) * var(--fill,0));background:var(--lav);box-shadow:0 0 10px rgba(201,160,255,.8)}
.story-steps li.done{opacity:.62}
.story-steps li.on{opacity:1}
.story-steps li b{display:block;font-size:15.5px;font-weight:500;color:var(--txt);letter-spacing:-.01em}
.story-steps li span{display:block;font-size:13.5px;color:var(--txt-2);line-height:1.5}
.story-steps li[data-short] span{font-size:14.5px;color:var(--txt)}
.story-note{margin:18px 0 0;font-size:13.5px;color:var(--txt-3);max-width:46ch}
.story-cta{margin:24px 0 0}

.story-stage{position:relative;height:min(76svh,700px);z-index:2}
.st-layer{position:absolute;inset:0}
.st-svg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.st-svg.edges{z-index:1}
.st-svg.anchors{z-index:3}
.st-abs{position:absolute;translate:-50% -50%}

/* Portrait : le titre en haut, la scène au milieu, le point en cours dessous. */
@media (max-aspect-ratio:9/10), (max-width:820px){
  .story-pin{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr) auto auto;
    align-items:start;gap:0;padding:clamp(84px,12svh,110px) 20px clamp(20px,4svh,40px)}
  .story-text{display:contents}
  .story-text h2{grid-row:1;font-size:clamp(24px,7vw,32px);margin-bottom:8px}
  .story-text .lede{grid-row:2;font-size:14px;margin-bottom:6px;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .story-stage{grid-row:3;height:100%;min-height:260px}
  .story-steps{grid-row:4;margin:8px 0 0;display:block;min-height:5.2em}
  .story-steps li{display:none;padding-left:14px}
  .story-steps li.on{display:block}
  .story-note{display:none}
  .story-cta{grid-row:5;margin:10px 0 0}
  .story-cta .btn-lg{padding:11px 22px;font-size:14px}
  .st-svg .ag-label-text{font-size:12px}
}

/* ── La carte de l'application, à l'échelle --k ───────────────────── */
.st-card{
  position:absolute;translate:-50% -50%;z-index:2;
  width:calc(300px * var(--k,1));min-height:calc(178px * var(--k,1));
  display:flex;align-items:center;justify-content:center;padding:calc(18px * var(--k,1));
  background:rgb(18,20,24);border:2px solid rgba(255,255,255,.13);
  border-radius:calc(34px * var(--k,1));
  box-shadow:0 16px 44px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.025);
  transition:border-color .5s,box-shadow .5s;
}
.st-card::before{content:"";position:absolute;inset:calc(-15px * var(--k,1));
  border:2px solid rgba(255,255,255,.13);border-radius:calc(49px * var(--k,1));pointer-events:none}
.st-card .cl{display:flex;align-items:center;gap:calc(14px * var(--k,1))}
.st-card .ic{width:calc(48px * var(--k,1));height:calc(48px * var(--k,1));flex:none;
  color:rgba(244,246,248,.94);opacity:.88}
.st-card .ic svg{width:100%;height:100%;display:block}
.st-card .tt{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-card .tt b{font-size:calc(20px * var(--k,1));font-weight:300;line-height:1.12;letter-spacing:-.02em;
  color:#f7f8fa;white-space:nowrap}
.st-card .tt i{font-style:normal;font-size:calc(15px * var(--k,1));font-weight:200;line-height:1.1;
  letter-spacing:.04em;text-transform:uppercase;color:rgba(207,212,219,.72);white-space:nowrap}
.st-card.live{border-color:#c9a0ff;
  box-shadow:0 16px 44px rgba(0,0,0,.42),0 0 0 1px rgba(170,31,205,.6),0 0 30px rgba(170,31,205,.5),0 0 70px rgba(170,31,205,.28)}

/* Une tuile : même matière que la carte, mais porteuse d'un aperçu. */
.st-tile{position:absolute;translate:-50% -50%;z-index:2;
  background:rgb(18,20,24);border:2px solid rgba(255,255,255,.13);
  border-radius:calc(22px * var(--k,1));box-shadow:0 16px 44px rgba(0,0,0,.42);
  padding:calc(9px * var(--k,1));display:flex;flex-direction:column;gap:calc(7px * var(--k,1))}
.st-tile::before{content:"";position:absolute;inset:calc(-10px * var(--k,1));
  border:2px solid rgba(255,255,255,.1);border-radius:calc(31px * var(--k,1));pointer-events:none}
.st-tile .pv{position:relative;flex:1;min-height:0;border-radius:calc(14px * var(--k,1));overflow:hidden;
  background:#0d0f12}
.st-tile .cap{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:0 calc(4px * var(--k,1))}
.st-tile .cap b{font-size:calc(14px * var(--k,1));font-weight:400;color:#f7f8fa;white-space:nowrap}
.st-tile .cap i{font-style:normal;font-size:calc(10.5px * var(--k,1));font-weight:300;color:rgba(207,212,219,.6);
  text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}

.st-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 12px;
  font-size:12px;font-weight:500;line-height:1;letter-spacing:.02em;white-space:nowrap;
  border:1px solid rgba(255,255,255,.15);background:rgba(15,17,21,.9);color:rgba(207,212,219,.85)}
.st-chip.lav{border-color:rgba(190,170,255,.3);color:rgba(201,160,255,.92)}

/* ── Médias : les aperçus ─────────────────────────────────────────── */
.pv-img{position:absolute;inset:0;
  background:
    radial-gradient(22% 30% at 72% 34%,#ffd9a8 0,#ffb37a 40%,transparent 72%),
    linear-gradient(180deg,#2a1f6e 0%,#7a3a9a 46%,#e0708a 74%,#f4a86e 100%)}
.pv-img i{position:absolute;left:-5%;right:-5%;bottom:0;height:52%;
  background:#1a1033;clip-path:polygon(0 70%,14% 38%,26% 58%,41% 22%,55% 52%,68% 30%,82% 56%,100% 34%,100% 100%,0 100%)}
.pv-img i + i{height:36%;background:#0f0a22;
  clip-path:polygon(0 60%,18% 30%,33% 64%,50% 40%,64% 70%,80% 36%,100% 58%,100% 100%,0 100%)}
.pv-img em{position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.07) 0 1px,transparent 1px 3px),
    repeating-linear-gradient(90deg,rgba(0,0,0,.35) 0 2px,transparent 2px 5px)}

.pv-vid{position:absolute;inset:0;overflow:hidden}
.pv-vid .reel{position:absolute;inset:0;display:flex;width:300%;animation:st-reel 6s linear infinite}
.pv-vid .reel span{flex:1;
  background:linear-gradient(135deg,#3b2a8c,#c2427f)}
.pv-vid .reel span:nth-child(2){background:linear-gradient(160deg,#173d6b,#4d9bff 60%,#d9f0ff)}
.pv-vid .reel span:nth-child(3){background:linear-gradient(120deg,#5a1f2e,#ff7b5c 55%,#ffd08a)}
@keyframes st-reel{to{transform:translateX(-66.666%)}}
.pv-vid .bar{position:absolute;left:8%;right:8%;bottom:9%;height:3px;border-radius:3px;background:rgba(255,255,255,.25)}
.pv-vid .bar b{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:#fff;width:calc(var(--q,0) * 100%)}
.pv-vid .play{position:absolute;left:50%;top:44%;translate:-50% -50%;width:26%;aspect-ratio:1;border-radius:50%;
  background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.4);display:grid;place-items:center}
.pv-vid .play::after{content:"";width:0;height:0;border-left:11px solid #fff;border-top:7px solid transparent;
  border-bottom:7px solid transparent;margin-left:3px}
.pv-vid .tag{position:absolute;right:7%;top:9%;font-size:10px;font-weight:600;letter-spacing:.06em;
  padding:3px 6px;border-radius:5px;background:rgba(0,0,0,.45);color:#fff}

.pv-mus{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3%;padding:0 7%;
  background:radial-gradient(80% 90% at 50% 100%,rgba(170,31,205,.25),transparent 70%),#0d0f12}
.pv-mus span{flex:1;height:60%;border-radius:3px;transform-origin:50% 50%;
  background:linear-gradient(180deg,#ff7bc8,#aa1fcd);animation:st-eq 1.1s ease-in-out infinite alternate}
@keyframes st-eq{from{transform:scaleY(.18)}to{transform:scaleY(1)}}

.pv-voix{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:10%;padding:0 8%}
.pv-voix svg{width:100%;height:38%}
.pv-voix svg path{fill:none;stroke:#c9a0ff;stroke-width:2;stroke-linecap:round;
  animation:st-wave 2.2s linear infinite}
@keyframes st-wave{to{transform:translateX(-50%)}}
.pv-voix p{margin:0;font-size:12px;line-height:1.35;color:#f2effa;white-space:nowrap;overflow:hidden;
  clip-path:inset(0 calc((1 - var(--q,0)) * 100%) 0 0)}

.pv-3d{position:absolute;inset:0;display:grid;place-items:center;perspective:420px;
  background:radial-gradient(60% 70% at 50% 60%,rgba(77,155,255,.18),transparent 70%),#0d0f12}
.pv-3d .cube{position:relative;width:38%;aspect-ratio:1;transform-style:preserve-3d;animation:st-spin 9s linear infinite}
.pv-3d .cube span{position:absolute;inset:0;border:1.5px solid rgba(201,160,255,.85);
  background:rgba(201,160,255,.06);box-shadow:inset 0 0 18px rgba(201,160,255,.18)}
@keyframes st-spin{from{transform:rotateX(-24deg) rotateY(0)}to{transform:rotateX(-24deg) rotateY(360deg)}}

.pv-app{position:absolute;inset:0;padding:9% 9%;display:flex;flex-direction:column;gap:9%;
  background:#0f1114;font-size:11px;color:#f2effa}
.pv-app .hd{display:flex;justify-content:space-between;align-items:center}
.pv-app .hd b{font-weight:500}
.pv-app .hd i{font-style:normal;color:#4d9bff;font-weight:600}
.pv-app .row{display:grid;grid-template-columns:38% 1fr;align-items:center;gap:8px;color:rgba(207,212,219,.75)}
.pv-app .row u{display:block;height:6px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden;text-decoration:none}
.pv-app .row u::after{content:"";display:block;height:100%;width:calc(var(--q,0) * var(--w));
  background:linear-gradient(90deg,#4d9bff,#c9a0ff);border-radius:6px}

/* ── Réponses visuelles : la conversation ─────────────────────────── */
.st-chat{position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:2;
  width:min(100%,560px);height:100%;max-height:600px;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#15181d 0%,#101216 100%);border:1px solid rgba(255,255,255,.09);
  border-radius:24px;box-shadow:0 24px 70px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.035);overflow:hidden}
.st-chat .hd{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.06)}
.st-chat .hd .av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:rgb(18,20,24);border:1.5px solid rgba(255,255,255,.18)}
.st-chat .hd .av svg{width:18px;height:18px;color:#f4f6f8}
.st-chat .hd b{font-size:14px;font-weight:500;color:#f7f8fa}
.st-chat .hd i{font-style:normal;font-size:11px;color:rgba(207,212,219,.55);text-transform:uppercase;letter-spacing:.05em}
.st-chat .th{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;padding:18px}
.st-chat .me{align-self:flex-end;max-width:80%;padding:10px 14px;border-radius:18px 18px 6px 18px;
  background:#2a2d33;color:#f7f8fa;font-size:14px;line-height:1.4;min-height:1.4em}
.st-chat .ans{position:relative;flex:1;min-height:0}
.st-chat .viz{position:absolute;inset:0;opacity:0;transition:opacity .35s,translate .35s;translate:0 8px}
.st-chat .viz.on{opacity:1;translate:0 0}
.st-chat .sug{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 16px;min-height:44px}
.st-chat .sug .st-chip{opacity:0;translate:0 6px;transition:opacity .3s,translate .3s}
.st-chat .sug.on .st-chip{opacity:1;translate:0 0}
.st-chat .sug.on .st-chip + .st-chip{transition-delay:.08s}

.viz-box{position:absolute;inset:0;border-radius:16px;border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.02);padding:14px 16px;display:flex;flex-direction:column;gap:8px;font-size:12.5px;
  color:rgba(207,212,219,.82)}
.viz-box h4{margin:0;font-size:13px;font-weight:500;color:#f7f8fa}
.viz-box svg{flex:1;min-height:0;width:100%;overflow:visible}
.viz-cmp{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.viz-cmp > div{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:7px}
.viz-cmp > div.win{border-color:rgba(190,170,255,.45);background:rgba(170,31,205,.07)}
.viz-cmp b{font-size:13px;font-weight:500;color:#f7f8fa;display:flex;justify-content:space-between}
.viz-cmp p{margin:0;display:flex;gap:7px;align-items:center;opacity:0;translate:-6px 0;transition:opacity .3s,translate .3s}
.viz-cmp p.on{opacity:1;translate:0 0}
.viz-cmp p::before{content:"✓";color:#34c759;font-weight:600;width:12px}
.viz-cmp p.no::before{content:"✕";color:#ff7b8b}
.viz-calc{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px}
.viz-calc .big{font-size:30px;font-weight:300;color:#f7f8fa;letter-spacing:-.02em}
.viz-calc .rail{position:relative;height:6px;border-radius:6px;background:rgba(255,255,255,.1)}
.viz-calc .rail b{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:linear-gradient(90deg,#5b45e8,#c9a0ff)}
.viz-calc .rail i{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;translate:-50% -50%;
  background:#f7f8fa;box-shadow:0 0 0 4px rgba(201,160,255,.25)}
.viz-calc .kv{display:flex;justify-content:space-between}
.viz-calc .kv b{color:#f7f8fa;font-weight:500}
.viz-timer{flex:1;display:grid;place-items:center}
.viz-timer svg{width:62%;height:auto;flex:none}
.viz-timer .t{font-size:34px;font-weight:200;fill:#f7f8fa;letter-spacing:-.02em}

/* ── Sans écran : le téléphone, les lunettes ──────────────────────── */
.st-phone{position:absolute;left:50%;top:50%;translate:-50% -50%;height:100%;max-height:600px;aspect-ratio:9/18.5;
  border-radius:44px;border:2px solid rgba(255,255,255,.16);background:#07080a;padding:10px;
  box-shadow:0 30px 80px rgba(0,0,0,.6)}
.st-phone .scr{position:relative;height:100%;border-radius:34px;overflow:hidden;
  background:radial-gradient(90% 60% at 50% 0%,rgba(91,69,232,.32),transparent 70%),linear-gradient(180deg,#121018,#0a0a0d);
  display:flex;flex-direction:column;align-items:center;padding:18% 8% 8%;gap:4%}
.st-phone .isl{position:absolute;top:2.2%;left:50%;translate:-50% 0;width:32%;height:3.6%;border-radius:999px;background:#000}
.st-phone .who{font-size:clamp(18px,2vw,24px);font-weight:400;color:#f7f8fa}
.st-phone .tm{font-size:13px;color:rgba(207,212,219,.7);font-variant-numeric:tabular-nums}
.st-phone .ava{position:relative;width:34%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;
  background:rgb(18,20,24);border:2px solid rgba(255,255,255,.16);margin:4% 0}
.st-phone .ava svg{width:56%;height:56%;color:#f4f6f8}
.st-phone .ava::before,.st-phone .ava::after{content:"";position:absolute;inset:-2px;border-radius:50%;
  border:2px solid rgba(201,160,255,.55);animation:st-ring 2.4s cubic-bezier(.22,1,.36,1) infinite}
.st-phone .ava::after{animation-delay:1.2s}
@keyframes st-ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
.st-phone .msg{width:100%;font-size:12.5px;line-height:1.4;padding:8px 11px;border-radius:14px;
  opacity:0;translate:0 8px;transition:opacity .35s,translate .35s}
.st-phone .msg.on{opacity:1;translate:0 0}
.st-phone .msg.me{background:#2a2d33;color:#f7f8fa;border-bottom-right-radius:5px}
.st-phone .msg.it{background:rgba(201,160,255,.1);border:1px solid rgba(201,160,255,.25);color:#e8deff;border-bottom-left-radius:5px}
.st-phone .eq{display:flex;gap:4px;height:26px;align-items:center;margin-top:auto}
.st-phone .eq span{width:4px;height:100%;border-radius:4px;background:#c9a0ff;animation:st-eq .8s ease-in-out infinite alternate}
.st-phone .end{width:17%;aspect-ratio:1;border-radius:50%;background:#ff3b30;display:grid;place-items:center;margin-top:5%}
.st-phone .end::after{content:"";width:48%;height:18%;border-radius:4px;background:#fff}

.st-glasses{position:absolute;left:50%;top:44%;translate:-50% -50%;width:min(92%,520px)}
.st-glasses svg{width:100%;height:auto;overflow:visible}
.st-glasses .fr{fill:none;stroke:#e6e8ec;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.st-glasses .ln{fill:rgba(91,69,232,.12)}
.st-glasses .sw{fill:none;stroke:#c9a0ff;stroke-width:2.5;stroke-linecap:round;opacity:0;
  animation:st-sound 1.8s ease-out infinite}
.st-glasses .sw:nth-of-type(2){animation-delay:.3s}
.st-glasses .sw:nth-of-type(3){animation-delay:.6s}
@keyframes st-sound{0%{opacity:0;transform:translateX(0)}30%{opacity:.9}100%{opacity:0;transform:translateX(14px)}}
.st-bub{position:absolute;max-width:min(80%,340px);padding:10px 14px;border-radius:16px;font-size:13.5px;line-height:1.4;
  opacity:0;translate:0 10px;transition:opacity .4s,translate .4s}
.st-bub.on{opacity:1;translate:0 0}
.st-bub.me{background:#2a2d33;color:#f7f8fa}
.st-bub.it{background:rgba(201,160,255,.1);border:1px solid rgba(201,160,255,.28);color:#e8deff}

/* ── Le prix : le relevé, la recharge, le calendrier ─────────────── */
.st-bill{position:absolute;z-index:2;background:rgb(18,20,24);border:2px solid rgba(255,255,255,.13);
  border-radius:26px;box-shadow:0 20px 60px rgba(0,0,0,.5);padding:18px 20px;display:flex;flex-direction:column;gap:2px}
.st-bill::before{content:"";position:absolute;inset:-12px;border:2px solid rgba(255,255,255,.1);border-radius:36px;pointer-events:none}
.st-bill h4{margin:0 0 8px;display:flex;justify-content:space-between;font-size:14px;font-weight:500;color:#f7f8fa}
.st-bill h4 i{font-style:normal;font-size:11px;font-weight:400;color:rgba(207,212,219,.55);text-transform:uppercase;letter-spacing:.06em}
.st-bill .ln{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:baseline;padding:9px 0;
  border-top:1px solid rgba(255,255,255,.06);opacity:0;translate:0 6px;transition:opacity .3s,translate .3s}
.st-bill .ln.on{opacity:1;translate:0 0}
.st-bill .ln b{display:block;font-size:13px;font-weight:400;color:#f2effa}
.st-bill .ln small{display:block;font-size:11px;color:rgba(207,212,219,.5)}
.st-bill .ln em{font-style:normal;font-size:13px;color:#f7f8fa;font-variant-numeric:tabular-nums;text-align:right;min-width:64px}
.st-bill .ln u{text-decoration:none;font-size:11px;color:#34c759;font-variant-numeric:tabular-nums;text-align:right;min-width:58px}
.st-bill .hdr{display:grid;grid-template-columns:1fr auto auto;gap:14px;font-size:10.5px;text-transform:uppercase;
  letter-spacing:.06em;color:rgba(207,212,219,.45);padding-bottom:4px}
.st-bill .hdr span:nth-child(2){min-width:64px;text-align:right}
.st-bill .hdr span:nth-child(3){min-width:58px;text-align:right}
.st-bill .ln.tot{border-top:1px solid rgba(255,255,255,.14)}
.st-bill .ln.tot b,.st-bill .ln.tot em{font-weight:500;font-size:15px}
.st-bill .ln.tot em{color:#c9a0ff}
.st-stamp{position:absolute;z-index:3;padding:8px 14px;border-radius:12px;border:2px solid #34c759;color:#34c759;
  font-size:14px;font-weight:600;letter-spacing:.04em;background:rgba(52,199,89,.08);white-space:nowrap;translate:-50% -50%;
  opacity:0;scale:1.6;rotate:-8deg;transition:opacity .3s,scale .35s cubic-bezier(.3,1.5,.5,1)}
.st-stamp.on{opacity:1;scale:1}
.st-pay{margin-top:10px;border-radius:999px;padding:11px 16px;text-align:center;font-size:14px;font-weight:500;color:#fff;
  background:linear-gradient(120deg,var(--indigo),var(--violet) 65%,var(--magenta))}
.st-cal{position:absolute;z-index:2;width:150px;perspective:600px}
.st-cal .pg{position:relative;height:150px;border-radius:22px;background:rgb(18,20,24);border:2px solid rgba(255,255,255,.13);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;overflow:hidden}
.st-cal .pg::before{content:"";position:absolute;left:0;right:0;top:0;height:30px;background:linear-gradient(120deg,#5b45e8,#aa1fcd)}
.st-cal .pg i{position:relative;margin-top:24px;font-style:normal;font-size:52px;font-weight:200;color:#f7f8fa;line-height:1}
.st-cal .pg span{font-size:13px;color:rgba(207,212,219,.7)}
.st-cal .fl{position:absolute;inset:0;transform-origin:50% 0;backface-visibility:hidden}

/* ── La confiance ─────────────────────────────────────────────────── */
.st-key{position:absolute;z-index:3;translate:-50% -50%;display:flex;align-items:center;gap:10px;padding:10px 16px;
  border-radius:999px;background:rgb(18,20,24);border:1px solid rgba(255,255,255,.16);
  font:500 13px/1 "JetBrains Mono",monospace;color:#f2effa;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.st-key svg{width:18px;height:18px;color:#ffd47b}
.st-doc{position:absolute;z-index:3;translate:-50% -50%;display:flex;align-items:center;gap:8px;padding:8px 12px;
  border-radius:12px;background:rgb(18,20,24);border:1px solid rgba(255,255,255,.12);font-size:12.5px;color:#f2effa;
  white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.st-doc::before{content:"";width:10px;height:12px;border-radius:2px;border:1.5px solid rgba(207,212,219,.7)}
.st-gate{position:absolute;z-index:2;translate:-50% -50%;width:12px;border-radius:6px;
  background:repeating-linear-gradient(180deg,#ff7b8b 0 10px,rgba(255,123,139,.25) 10px 20px);
  box-shadow:0 0 24px rgba(255,123,139,.45)}
.st-file{position:absolute;z-index:3;translate:-50% -50%;display:flex;align-items:center;gap:12px;padding:14px 18px;
  border-radius:18px;background:rgb(18,20,24);border:2px solid rgba(255,255,255,.14);box-shadow:0 18px 50px rgba(0,0,0,.5)}
.st-file svg{width:30px;height:30px;color:#c9a0ff}
.st-file b{display:block;font-size:14px;font-weight:500;color:#f7f8fa}
.st-file small{display:block;font-size:11.5px;color:rgba(207,212,219,.6)}
.st-dl{position:absolute;z-index:3;translate:-50% -50%;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(120deg,#5b45e8,#aa1fcd);animation:st-bob 1.4s ease-in-out infinite}
.st-dl svg{width:18px;height:18px;color:#fff}
@keyframes st-bob{50%{translate:-50% -30%}}

@media (prefers-reduced-motion:reduce){
  .pv-vid .reel,.pv-mus span,.pv-voix svg path,.pv-3d .cube,.st-phone .ava::before,.st-phone .ava::after,
  .st-phone .eq span,.st-glasses .sw,.st-dl{animation:none}
}

/* ── L'essai : les cartes de l'application, sans quadrillage ──────── */
.wire{background:transparent;border:0;padding:clamp(10px,3vw,30px) 0}
.wgrid{display:none}
.wnode{border:2px solid rgba(255,255,255,.13);border-radius:24px;background:rgb(18,20,24);backdrop-filter:none;
  padding:16px 18px;box-shadow:0 16px 44px rgba(0,0,0,.42)}
.wnode::before{content:"";position:absolute;inset:-11px;border:2px solid rgba(255,255,255,.1);border-radius:34px;pointer-events:none}
.wnode .kind{font-family:inherit;font-size:11px;font-weight:200;letter-spacing:.06em;color:rgba(207,212,219,.72);order:2}
.wnode .title{font-size:17px;font-weight:300;color:#f7f8fa}
.wnode.linked{border-color:#c9a0ff;box-shadow:0 16px 44px rgba(0,0,0,.42),0 0 0 1px rgba(170,31,205,.5),0 0 30px rgba(170,31,205,.45)}
#wsvg path{filter:drop-shadow(0 0 3px rgba(201,160,255,.9)) drop-shadow(0 0 10px rgba(170,31,205,.5))}
.wstage.hint .port.out::before{content:"";position:absolute;inset:6px;border-radius:50%;border:2px solid rgba(201,160,255,.7);
  animation:st-ring 1.8s cubic-bezier(.22,1,.36,1) infinite}

/* ── La FAQ ───────────────────────────────────────────────────────── */
.faq-in{opacity:0;translate:0 14px;transition:opacity .5s,translate .5s cubic-bezier(.22,1,.36,1)}
.faq-in.on{opacity:1;translate:0 0}
.qa p{overflow:hidden}
.qa summary::after{transition:rotate .25s}
.qa[open] summary::after{rotate:180deg}
.st-svg .ag-anchor{transition:opacity .25s}
/* Une seule étiquette par câble, côté départ : près d'Alfred, où tous les
   câbles arrivent, les secondes se chevauchaient. */
.st-svg .ag-edge .ag-label + .ag-label{display:none}

/* La confiance : clé, documents et fichier à la taille de la scène — en
   tailles explicites : `zoom` décalerait aussi leurs positions. */
#confiance .st-key{white-space:nowrap;font-size:15px;padding:13px 20px}
#confiance .st-key svg{width:22px;height:22px}
#confiance .st-doc{font-size:14px;padding:10px 14px}
#confiance .st-file{white-space:nowrap;padding:18px 22px}
#confiance .st-file b{font-size:16px}
#confiance .st-file small{font-size:12.5px}
#confiance .st-file svg{width:36px;height:36px}
#confiance .st-chip{font-size:13px;padding:7px 14px}
@media (max-aspect-ratio:9/10), (max-width:820px){
  #confiance .st-key{font-size:13px;padding:10px 14px}
  #confiance .st-doc{font-size:12px;padding:8px 11px}
  #confiance .st-file{padding:12px 16px}
  #confiance .st-file b{font-size:14px}
}

/* ── La confiance : le budget, ses alertes, le garde-fou ──────────── */
.st-budget{position:absolute;z-index:2;background:rgb(18,20,24);border:2px solid rgba(255,255,255,.13);border-radius:24px;
  padding:18px 20px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.st-budget::before{content:"";position:absolute;inset:-12px;border:2px solid rgba(255,255,255,.1);border-radius:34px;pointer-events:none}
.st-budget h4{margin:0 0 14px;display:flex;justify-content:space-between;align-items:baseline;font-size:14px;font-weight:500;color:#f7f8fa}
.st-budget h4 b{font-weight:400;font-size:13px;color:rgba(207,212,219,.8);font-variant-numeric:tabular-nums}
.st-budget .gauge{position:relative;height:10px;border-radius:10px;background:rgba(255,255,255,.08)}
.st-budget .gauge b{position:absolute;left:0;top:0;bottom:0;border-radius:10px;width:0;
  background:linear-gradient(90deg,#34c759,#ffd47b 55%,#ffa657 80%,#ff7b8b);background-size:440px 100%}
.st-budget .gauge b.full{box-shadow:0 0 16px rgba(255,123,139,.6)}
.st-budget .gauge i{position:absolute;top:-4px;bottom:-4px;width:2px;background:rgba(255,255,255,.35);border-radius:2px}
.st-budget .marks{position:relative;height:16px;margin-top:6px;font-size:10.5px;color:rgba(207,212,219,.55)}
.st-budget .marks span{position:absolute;translate:-50% 0;white-space:nowrap}
.st-budget .marks span:last-child{translate:-100% 0}
.st-note{position:absolute;z-index:3;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.35;color:#f2effa;
  background:rgba(255,212,123,.08);border:1px solid rgba(255,212,123,.3);
  opacity:0;translate:0 10px;transition:opacity .35s,translate .35s}
.st-note.on{opacity:1;translate:0 0}
.st-note.full{background:rgba(201,160,255,.1);border-color:rgba(201,160,255,.35)}
.st-guard{position:absolute;z-index:2;opacity:0}
.st-guard svg{width:100%;height:56px;overflow:visible}
.st-guard path{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.st-guard .base{stroke:#c9a0ff}
.st-guard .spike{stroke:#ff7b8b;stroke-dasharray:60;stroke-dashoffset:60;transition:stroke-dashoffset .4s}
.st-guard .cut{stroke:#ff7b8b;stroke-width:3;opacity:0;transition:opacity .2s}
.st-guard.cut .spike{stroke-dashoffset:0}
.st-guard.cut .cut{opacity:1}
.st-guard p{margin:6px 0 0;font:500 12px/1.4 "JetBrains Mono",monospace;color:#ffb3bd}

/* ── L'essai : un fil, c'est un accès accordé ─────────────────────── */
.wnode .perm{display:block;font-size:11.5px;color:#c9a0ff;opacity:0;max-height:0;overflow:hidden;
  transition:opacity .3s,max-height .3s,margin .3s}
.wnode.linked .perm{opacity:1;max-height:22px;margin-top:5px}
.st-phone .msg.tl{display:flex;gap:6px;flex-wrap:wrap;padding:0}
.st-phone .msg.tl .st-chip{font-size:11px;padding:4px 9px}

/* Le prix en portrait : la place manque, le relevé se resserre. */
@media (max-aspect-ratio:9/10), (max-width:820px){
  #prix .lede{display:none}
  .st-bill{padding:14px 16px}
  .st-bill .ln{padding:7px 0}
  .st-bill .ln small{display:none}
  .st-bill .ln.tot small{display:block}
  .st-stamp{font-size:11.5px;padding:6px 10px}
}

/* ── Sur votre machine : la fenêtre de l'ordinateur ───────────────── */
.st-win{position:absolute;z-index:2;display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,#15181d,#0f1114);border:1px solid rgba(255,255,255,.1);border-radius:18px;
  box-shadow:0 24px 70px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.04)}
.st-win .bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.06)}
.st-win .bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.14)}
.st-win .bar b{margin-left:8px;font-size:12px;font-weight:500;color:rgba(207,212,219,.7)}
.st-win .body{position:relative;flex:1;min-height:0}
.st-win .term{padding:18px 20px;font:400 13px/1.7 "JetBrains Mono",monospace;color:#e6e8ec}
.st-win .term p{margin:0;opacity:0;transition:opacity .3s}
.st-win .term p.ln0,.st-win .term p.on{opacity:1}
.st-win .term u{text-decoration:none;color:#7ec5ff}
.st-win .term .ok{color:#34c759}
.st-win .caret{display:inline-block;width:8px;height:15px;margin-left:2px;vertical-align:-2px;background:#c9a0ff;animation:st-blink 1s steps(1) infinite}
@keyframes st-blink{50%{opacity:0}}
.st-win .brw{position:absolute;inset:0;display:flex;flex-direction:column}
.st-win .url{margin:12px 14px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.05);
  font-size:12.5px;color:#f2effa;min-height:1.2em}
.st-win .url span::before{content:"🔒 ";opacity:.5}
.st-win .pg{flex:1;margin:0 14px 14px;border-radius:12px;background:#f4f5f7;padding:18px;display:flex;flex-direction:column;gap:10px;color:#1b1d22}
.st-win .pg h5{margin:0 0 4px;font-size:16px;font-weight:600}
.st-win .pg label{display:flex;flex-direction:column;gap:3px;font-size:13px}
.st-win .pg label i{font-style:normal;font-size:11px;color:#6b7280}
.st-win .pg label span{min-height:34px;border:1px solid #d6d9df;border-radius:9px;padding:7px 10px;background:#fff}
.st-win .pg button{align-self:flex-start;margin-top:4px;border:0;border-radius:999px;padding:9px 18px;font:500 13px inherit;
  color:#fff;background:#0c7a5a;transition:transform .15s,filter .15s}
.st-win .pg button.on{transform:scale(.95);filter:brightness(1.2)}
.st-win .cur{position:absolute;left:0;top:0;width:16px;height:16px;transition:translate .35s cubic-bezier(.22,1,.36,1);
  background:#111;clip-path:polygon(0 0,0 100%,30% 72%,52% 100%,64% 94%,44% 66%,82% 66%);filter:drop-shadow(0 0 1px #fff)}
.st-win .fls{padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.st-win .fls .q{padding:9px 14px;border-radius:12px;background:rgba(255,255,255,.06);font-size:13.5px;color:#f2effa;margin-bottom:6px;min-height:1.2em}
.st-win .fls p{margin:0;padding:8px 12px;border-radius:10px;font-size:13px;color:rgba(242,239,250,.86);
  border:1px solid transparent;transition:opacity .3s,border-color .3s,background .3s}
.st-win .fls p::before{content:"";display:inline-block;width:10px;height:12px;margin-right:9px;vertical-align:-1px;
  border-radius:2px;border:1.5px solid rgba(207,212,219,.6)}
.st-win .fls p.hit{border-color:rgba(126,197,255,.4);background:rgba(126,197,255,.08)}
.st-win .fls p.dim{opacity:.3}
.st-win .fls .dst{align-self:flex-start;margin-top:8px;opacity:0;translate:0 6px;transition:opacity .3s,translate .3s}
.st-win .fls .dst.on{opacity:1;translate:0 0}
.st-win .home{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px;align-content:center}
.st-win .tile{position:relative;border-radius:18px;background:rgb(18,20,24);border:1px solid rgba(255,255,255,.1);padding:16px;
  display:flex;flex-direction:column;gap:4px;min-height:150px;justify-content:flex-end}
.st-win .tile b{font-size:15px;font-weight:500;color:#f7f8fa}
.st-win .tile i{font-style:normal;font-size:12px;color:rgba(207,212,219,.6)}
.st-win .tile .pct{position:absolute;right:16px;top:14px;font-size:13px;color:#f7f8fa;font-variant-numeric:tabular-nums}
.st-win .bulb{position:absolute;left:16px;top:16px;width:44px;height:44px;border-radius:50%;
  background:radial-gradient(circle at 50% 40%,#fff6d8,#ffd47b 55%,#c98a2a);opacity:calc(.25 + var(--on,0) * .75);
  box-shadow:0 0 calc(var(--on,0) * 50px) calc(var(--on,0) * 12px) rgba(255,212,123,.55)}
.st-win .tile .rail{display:block;width:100%;align-self:stretch;flex:none;height:6px;border-radius:6px;background:rgba(255,255,255,.08);margin-top:10px;overflow:hidden}
.st-win .tile .rail span{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff9f43,#ffd47b)}
@media (max-width:820px), (max-aspect-ratio:9/10){
  .st-win .home{grid-template-columns:1fr;gap:10px}
  .st-win .tile{min-height:110px}
  .st-win .term{font-size:11px}
}

/* ── L'iPhone : les connecteurs ───────────────────────────────────── */
.st-iph{position:absolute;z-index:2;border-radius:40px;border:2px solid rgba(255,255,255,.16);background:#07080a;padding:9px;
  box-shadow:0 30px 80px rgba(0,0,0,.6)}
.st-iph .scr{position:relative;height:100%;border-radius:31px;overflow:hidden;padding:22% 8% 8%;
  background:linear-gradient(180deg,#121418,#0a0b0d);display:flex;flex-direction:column;gap:5px}
.st-iph .isl{position:absolute;top:2.2%;left:50%;translate:-50% 0;width:32%;height:3.4%;border-radius:999px;background:#000}
.st-iph h5{margin:0 0 6px;font-size:clamp(14px,1.4vw,18px);font-weight:600;color:#f7f8fa}
.st-iph .row{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.04);
  font-size:clamp(11px,1vw,13px);transition:background .3s,box-shadow .3s}
.st-iph .row b{flex:1;font-weight:500;color:#f2effa}
.st-iph .row .dot{width:9px;height:9px;border-radius:50%}
.st-iph .row .tg{position:relative;width:32px;height:19px;border-radius:999px;background:rgba(255,255,255,.14);transition:background .3s}
.st-iph .row .tg::after{content:"";position:absolute;left:2px;top:2px;width:15px;height:15px;border-radius:50%;background:#fff;
  transition:translate .3s cubic-bezier(.32,1.28,.55,1)}
.st-iph .row.on .tg{background:#34c759}
.st-iph .row.on .tg::after{translate:13px 0}
.st-iph .row.now{background:rgba(201,160,255,.1);box-shadow:inset 0 0 0 1px rgba(201,160,255,.3)}
.st-data{position:absolute;z-index:3;translate:-50% -50%;display:flex;align-items:center;gap:11px;padding:11px 14px;
  border-radius:16px;background:rgb(18,20,24);border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 34px rgba(0,0,0,.45);opacity:0}
.st-data .dot{width:10px;height:10px;border-radius:50%;flex:none}
.st-data i{display:block;font-style:normal;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:rgba(207,212,219,.55)}
.st-data b{display:block;font-size:13px;font-weight:400;color:#f7f8fa;line-height:1.3}
@media (max-width:820px), (max-aspect-ratio:9/10){
  .st-data{padding:8px 10px;gap:8px;border-radius:13px}
  .st-data b{font-size:11.5px}
  .st-data i{font-size:9.5px}
  .st-iph .row{padding:6px 7px;gap:6px}
  .st-iph .row .tg{width:26px;height:16px}
  .st-iph .row .tg::after{width:12px;height:12px}
  .st-iph .row.on .tg::after{translate:10px 0}
}
