/**
 * 2026 ALGO-FACTORY.COM — aflivecovers, scène « SmartCart » (scène B de la maquette, afaddtocart).
 *
 * Clic sur « Ajouter au panier », produit qui vole vers le panier, badge qui s'incrémente, panier
 * latéral qui glisse, livraison offerte, barre d'ajout rapide. Racine : .afl-sc ; animations :
 * afl-sc-*. Durée et image fixe : scene.json.
 */

.afl-sc{
  position:absolute;inset:0;
  font-size:3.1cqw;
  background:linear-gradient(180deg,#fbfcfe,#eef2f9);
  animation:afl-cycle var(--afl-dur) linear infinite;
}

/* barre de navigation boutique */
.afl-sc__bar{
  position:absolute;left:0;right:0;top:0;height:11cqw;z-index:5;
  display:flex;align-items:center;gap:2.4cqw;padding:0 4cqw;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border-bottom:1px solid var(--afl-ink-08);
}
.afl-sc__logo{display:flex;align-items:center;gap:1.2cqw;font-size:2.9cqw;font-weight:800;letter-spacing:-.02em}
.afl-sc__logo i{width:3.4cqw;height:3.4cqw;border-radius:1cqw;background:linear-gradient(135deg,#0d80f7,#0272ea);box-shadow:0 .6cqw 1.2cqw -.4cqw rgba(2,114,234,.8)}
.afl-sc__nav{display:flex;gap:2cqw;margin-left:2cqw}
.afl-sc__nav span{width:7cqw;height:1.5cqw;border-radius:99px;background:var(--afl-ink-08)}
.afl-sc__nav span:nth-child(2){width:5cqw}
.afl-sc__nav span:nth-child(3){width:6cqw}
.afl-sc__cart{position:relative;margin-left:auto;width:7cqw;height:7cqw;display:grid;place-items:center;flex:none}
.afl-sc__cart svg{width:5cqw;height:5cqw;fill:none;stroke:var(--afl-ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;animation:afl-sc-cart-shake var(--afl-dur) ease-out infinite}
@keyframes afl-sc-cart-shake{
  0%,33%{transform:none}
  35%{transform:rotate(-13deg) scale(1.12)}
  37%{transform:rotate(10deg) scale(1.1)}
  39%{transform:rotate(-6deg) scale(1.06)}
  42%,100%{transform:none}
}
.afl-sc__badge{
  position:absolute;right:-.2cqw;top:-.2cqw;
  min-width:4cqw;height:4cqw;padding:0 .8cqw;border-radius:99px;
  background:var(--afl-primary);color:#fff;display:grid;place-items:center;
  font-size:2.3cqw;font-weight:700;line-height:1;
  box-shadow:0 .6cqw 1.4cqw -.4cqw rgba(2,114,234,.9);
  transform:scale(0);
  animation:afl-sc-badge var(--afl-dur) cubic-bezier(.16,1.5,.3,1) infinite;
}
@keyframes afl-sc-badge{
  0%,33%{transform:scale(0)}
  40%{transform:scale(1.35)}
  44%,100%{transform:scale(1)}
}
.afl-sc__r-qty,.afl-sc__r-qty2{animation:afl-sc-qty var(--afl-dur) steps(1,end) infinite}
@keyframes afl-sc-qty{0%,62%{transform:translateY(0)}64%,100%{transform:translateY(-50%)}}

/* fiche produit */
.afl-sc__page{position:absolute;left:0;right:0;top:11cqw;bottom:0;padding:4.6cqw 4cqw;display:flex;gap:3.6cqw}
.afl-sc__media{
  position:relative;width:33cqw;flex:none;border-radius:2.4cqw;overflow:hidden;
  background:linear-gradient(150deg,#0272ea 0%,#17c3b2 100%);
  box-shadow:0 2.4cqw 4.4cqw -2cqw rgba(2,114,234,.5);
  display:grid;place-items:center;
}
.afl-sc__media::after{ /* reflet qui balaie */
  content:"";position:absolute;top:-60%;left:-60%;width:60%;height:220%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  transform:rotate(18deg);
  animation:afl-sc-shine var(--afl-dur) ease-in-out infinite;
}
@keyframes afl-sc-shine{0%,10%{transform:translateX(0) rotate(18deg)}26%,100%{transform:translateX(240%) rotate(18deg)}}
.afl-sc__media svg{width:15cqw;height:15cqw;fill:rgba(255,255,255,.92);filter:drop-shadow(0 1cqw 2cqw rgba(7,7,49,.3))}

.afl-sc__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2cqw;padding-top:.6cqw}
.afl-sc__kicker{font-size:2.1cqw;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--afl-primary)}
.afl-sc__name{height:2.6cqw;width:78%;border-radius:99px;background:rgba(7,7,49,.22)}
.afl-sc__name2{height:2.2cqw;width:52%;border-radius:99px;background:var(--afl-ink-14)}
.afl-sc__price{font-size:5.2cqw;font-weight:800;letter-spacing:-.03em;line-height:1;margin-top:.4cqw}
.afl-sc__price .afl-sc__vat{font-size:2.4cqw;font-weight:600;color:var(--afl-ink-40);margin-left:1cqw}
.afl-sc__chips{display:flex;gap:1.4cqw;margin-top:.4cqw}
.afl-sc__chips b{
  font-size:2.2cqw;font-weight:600;color:var(--afl-ink-60);
  border:1px solid var(--afl-ink-14);border-radius:1.2cqw;padding:.8cqw 1.8cqw;background:#fff;
}
.afl-sc__chips b:nth-child(2){border-color:var(--afl-primary);color:var(--afl-primary);box-shadow:0 0 0 .3cqw rgba(2,114,234,.14)}

.afl-sc__cta{
  position:relative;margin-top:auto;align-self:flex-start;
  display:inline-flex;align-items:center;gap:1.6cqw;
  background:linear-gradient(180deg,#0d80f7,#0272ea);color:#fff;
  font-size:2.8cqw;font-weight:700;border-radius:1.6cqw;padding:2.2cqw 3.6cqw;
  box-shadow:0 1.6cqw 3cqw -1.2cqw rgba(2,114,234,.9);
  animation:afl-sc-press var(--afl-dur) cubic-bezier(.3,1.4,.4,1) infinite;
}
.afl-sc__cta svg{width:3.2cqw;height:3.2cqw;fill:currentColor}
@keyframes afl-sc-press{
  0%,17%{transform:none;filter:none}
  19%{transform:scale(.93);filter:brightness(.88)}
  24%,100%{transform:none;filter:none}
}
.afl-sc__ripple{
  position:absolute;left:50%;top:50%;width:6cqw;height:6cqw;margin:-3cqw 0 0 -3cqw;
  border-radius:99px;border:.5cqw solid rgba(2,114,234,.75);opacity:0;
  animation:afl-sc-ripple var(--afl-dur) cubic-bezier(.1,.7,.3,1) infinite;
}
@keyframes afl-sc-ripple{
  0%,18%{opacity:0;transform:scale(.2)}
  20%{opacity:.85;transform:scale(.5)}
  29%,100%{opacity:0;transform:scale(3.6)}
}

/* produit qui vole vers le panier (X linéaire + Y parabolique) */
.afl-sc__fly{position:absolute;left:15cqw;top:37.5cqw;z-index:7;animation:afl-sc-fly-x var(--afl-dur) linear infinite}
.afl-sc__fly-y{animation:afl-sc-fly-y var(--afl-dur) linear infinite}
.afl-sc__fly-i{
  width:11cqw;height:11cqw;border-radius:2cqw;
  background:linear-gradient(150deg,#0272ea,#17c3b2);
  box-shadow:0 1.6cqw 3.4cqw -1.2cqw rgba(2,114,234,.9);
  opacity:0;display:grid;place-items:center;
  animation:afl-sc-fly-s var(--afl-dur) linear infinite;
}
.afl-sc__fly-i svg{width:5.4cqw;height:5.4cqw;fill:rgba(255,255,255,.95)}
/* X démarre lentement, Y monte vite : la trajectoire décrit un arc
   naturel jusqu'à l'icône panier sans jamais sortir du cadre. */
@keyframes afl-sc-fly-x{
  0%,19%{transform:translateX(0);animation-timing-function:cubic-bezier(.5,.02,.35,1)}
  33%,100%{transform:translateX(72cqw)}
}
@keyframes afl-sc-fly-y{
  0%,19%{transform:translateY(0);animation-timing-function:cubic-bezier(.1,.78,.3,1)}
  33%,100%{transform:translateY(-37.5cqw)}
}
@keyframes afl-sc-fly-s{
  0%,18.5%{opacity:0;transform:scale(1) rotate(0deg)}
  20%{opacity:1;transform:scale(.94) rotate(-6deg)}
  31%{opacity:1;transform:scale(.34) rotate(14deg)}
  33.5%,100%{opacity:0;transform:scale(.2) rotate(18deg)}
}

/* voile derrière le panier latéral */
.afl-sc__scrim{
  position:absolute;inset:0;z-index:8;background:rgba(7,7,49,.34);
  opacity:0;animation:afl-sc-scrim var(--afl-dur) ease-out infinite;
}
@keyframes afl-sc-scrim{
  0%,36%{opacity:0}
  43%,72%{opacity:1}
  78%,100%{opacity:0}
}

/* panier latéral */
.afl-sc__panel{
  position:absolute;right:0;top:0;bottom:0;width:50cqw;z-index:9;
  background:#fff;box-shadow:-2cqw 0 5cqw -1cqw rgba(7,7,49,.34);
  padding:3.6cqw 3.4cqw;display:flex;flex-direction:column;gap:2.4cqw;
  transform:translateX(102%);
  animation:afl-sc-panel var(--afl-dur) cubic-bezier(.18,.98,.28,1) infinite;
}
@keyframes afl-sc-panel{
  0%,36%{transform:translateX(102%)}
  44%,72%{transform:translateX(0)}
  79%,100%{transform:translateX(102%)}
}
.afl-sc__phead{display:flex;align-items:center;gap:1.6cqw;padding-bottom:2.2cqw;border-bottom:1px solid var(--afl-ink-08)}
.afl-sc__phead b{font-size:3.2cqw;font-weight:700;letter-spacing:-.015em}
.afl-sc__phead u{
  text-decoration:none;font-size:2.1cqw;font-weight:700;color:#fff;background:var(--afl-primary);
  border-radius:99px;padding:.5cqw 1.6cqw;line-height:1;
}
.afl-sc__phead u .afl-reel{font-size:2.1cqw;vertical-align:top}
.afl-sc__phead u b{font-weight:700}
.afl-sc__phead .afl-sc__x{margin-left:auto;font-size:3.4cqw;color:var(--afl-ink-40);line-height:1}

.afl-sc__item{display:flex;gap:2.2cqw;align-items:center;opacity:0;animation:afl-sc-item var(--afl-dur) cubic-bezier(.16,1.1,.3,1) infinite}
@keyframes afl-sc-item{
  0%,42%{opacity:0;transform:translateX(5cqw)}
  50%,100%{opacity:1;transform:none}
}
.afl-sc__thumb{width:11cqw;height:11cqw;border-radius:1.8cqw;flex:none;background:linear-gradient(150deg,#0272ea,#17c3b2);display:grid;place-items:center}
.afl-sc__thumb svg{width:5.4cqw;height:5.4cqw;fill:rgba(255,255,255,.95)}
.afl-sc__idesc{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.2cqw}
.afl-sc__idesc .afl-sc__l1{height:2.2cqw;width:80%;border-radius:99px;background:rgba(7,7,49,.2)}
.afl-sc__idesc .afl-sc__l2{height:1.8cqw;width:48%;border-radius:99px;background:var(--afl-ink-14)}
.afl-sc__step{display:inline-flex;align-items:center;gap:0;border:1px solid var(--afl-ink-14);border-radius:1.2cqw;overflow:hidden;width:max-content;margin-top:.6cqw}
.afl-sc__step > span{width:5cqw;height:4.6cqw;display:grid;place-items:center;font-size:2.6cqw;font-weight:700;color:var(--afl-ink-60)}
.afl-sc__step > span.afl-sc__q{border-left:1px solid var(--afl-ink-08);border-right:1px solid var(--afl-ink-08);color:var(--afl-ink);width:6cqw;overflow:hidden}
.afl-sc__step .afl-sc__plus{position:relative;color:var(--afl-primary)}
.afl-sc__step .afl-sc__plus::after{
  content:"";position:absolute;inset:0;background:rgba(2,114,234,.18);opacity:0;
  animation:afl-sc-plus var(--afl-dur) ease-out infinite;
}
@keyframes afl-sc-plus{0%,61%{opacity:0}63%{opacity:1}69%,100%{opacity:0}}
.afl-sc__step .afl-sc__q .afl-reel{font-size:2.6cqw}

/* jauge livraison offerte */
.afl-sc__ship{margin-top:.6cqw;opacity:0;animation:afl-sc-ship-in var(--afl-dur) ease-out infinite}
@keyframes afl-sc-ship-in{0%,46%{opacity:0;transform:translateY(1.4cqw)}52%,100%{opacity:1;transform:none}}
.afl-sc__ship .afl-sc__line{
  display:block;position:relative;margin:0 0 1.2cqw;height:3.2cqw;
  font-size:2.2cqw;font-weight:600;color:var(--afl-ink-60);
}
.afl-sc__ship .afl-sc__line span{position:absolute;left:0;top:0;white-space:nowrap;line-height:3.2cqw}
.afl-sc__ship .afl-sc__line .afl-sc__ok{color:var(--afl-success);font-weight:700;opacity:0;animation:afl-sc-ship-ok var(--afl-dur) ease-out infinite}
.afl-sc__ship .afl-sc__line .afl-sc__todo{opacity:1;animation:afl-sc-ship-todo var(--afl-dur) ease-out infinite}
@keyframes afl-sc-ship-todo{0%,63%{opacity:1}66%,100%{opacity:0}}
@keyframes afl-sc-ship-ok{0%,64%{opacity:0}67%,100%{opacity:1}}
.afl-sc__gauge{display:block;height:1.8cqw;border-radius:99px;background:var(--afl-ink-08);overflow:hidden;position:relative}
.afl-sc__gauge i{
  position:absolute;inset:0;transform-origin:left center;transform:scaleX(0);border-radius:99px;
  background:linear-gradient(90deg,#0272ea,#17c3b2);
  animation:afl-sc-gauge var(--afl-dur) cubic-bezier(.2,.85,.3,1) infinite;
}
@keyframes afl-sc-gauge{
  0%,48%{transform:scaleX(0);background:linear-gradient(90deg,#0272ea,#17c3b2)}
  54%,63%{transform:scaleX(.55);background:linear-gradient(90deg,#0272ea,#17c3b2)}
  69%,100%{transform:scaleX(1);background:linear-gradient(90deg,#16a34a,#17c3b2)}
}

.afl-sc__extra{display:flex;flex-direction:column;gap:1.8cqw;margin-top:1cqw;opacity:0;animation:afl-sc-extra var(--afl-dur) ease-out infinite}
@keyframes afl-sc-extra{0%,50%{opacity:0;transform:translateY(1.2cqw)}56%,100%{opacity:1;transform:none}}
.afl-sc__promo{
  font-size:2.2cqw;font-weight:600;color:var(--afl-primary);text-align:center;
  border:1px dashed rgba(2,114,234,.42);border-radius:1.2cqw;padding:1.4cqw;
  background:rgba(2,114,234,.04);
}
.afl-sc__reassure{display:flex;align-items:center;gap:1.4cqw;font-size:2cqw;color:var(--afl-ink-40);font-weight:500}
.afl-sc__reassure i{
  width:3cqw;height:3cqw;border-radius:50%;flex:none;display:grid;place-items:center;
  background:rgba(22,163,74,.14);color:var(--afl-success);font-size:1.9cqw;font-weight:800;font-style:normal;
}

.afl-sc__total{
  margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;
  padding-top:2.2cqw;border-top:1px solid var(--afl-ink-08);
  opacity:0;animation:afl-sc-total var(--afl-dur) ease-out infinite;
}
@keyframes afl-sc-total{0%,49%{opacity:0}54%,100%{opacity:1}}
.afl-sc__total span{font-size:2.4cqw;color:var(--afl-ink-40);font-weight:600}
.afl-sc__total b{font-size:4.2cqw;font-weight:800;letter-spacing:-.03em;position:relative}
.afl-sc__total b .afl-sc__v1{animation:afl-sc-v1 var(--afl-dur) steps(1,end) infinite}
.afl-sc__total b .afl-sc__v2{position:absolute;right:0;top:0;white-space:nowrap;opacity:0;animation:afl-sc-v2 var(--afl-dur) steps(1,end) infinite}
@keyframes afl-sc-v1{0%,63%{opacity:1}64%,100%{opacity:0}}
@keyframes afl-sc-v2{0%,63%{opacity:0}64%,100%{opacity:1}}
.afl-sc__go{
  display:block;text-align:center;background:linear-gradient(180deg,#0d80f7,#0272ea);color:#fff;
  font-size:2.7cqw;font-weight:700;border-radius:1.6cqw;padding:2.2cqw;
  box-shadow:0 1.6cqw 3cqw -1.4cqw rgba(2,114,234,.9);
  opacity:0;animation:afl-sc-go var(--afl-dur) cubic-bezier(.16,1.2,.3,1) infinite;
}
@keyframes afl-sc-go{0%,51%{opacity:0;transform:translateY(1.6cqw)}57%,100%{opacity:1;transform:none}}

/* barre sticky d'ajout rapide */
.afl-sc__sticky{
  position:absolute;left:0;right:0;bottom:0;z-index:10;height:12cqw;
  display:flex;align-items:center;gap:2.4cqw;padding:0 4cqw;
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-top:1px solid var(--afl-ink-08);
  box-shadow:0 -1.4cqw 3.4cqw -1.6cqw rgba(7,7,49,.3);
  transform:translateY(105%);
  animation:afl-sc-sticky var(--afl-dur) cubic-bezier(.18,1,.28,1) infinite;
}
@keyframes afl-sc-sticky{
  0%,73%{transform:translateY(105%)}
  80%,93%{transform:translateY(0)}
  98%,100%{transform:translateY(105%)}
}
.afl-sc__sthumb{width:8cqw;height:8cqw;border-radius:1.4cqw;flex:none;background:linear-gradient(150deg,#0272ea,#17c3b2);display:grid;place-items:center}
.afl-sc__sthumb svg{width:4cqw;height:4cqw;fill:rgba(255,255,255,.95)}
.afl-sc__stxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1cqw}
.afl-sc__stxt .afl-sc__l1{height:2cqw;width:56%;border-radius:99px;background:rgba(7,7,49,.2)}
.afl-sc__stxt .afl-sc__l2{height:1.6cqw;width:32%;border-radius:99px;background:var(--afl-ink-14)}
.afl-sc__sprice{font-size:3.2cqw;font-weight:800;letter-spacing:-.02em;flex:none}
.afl-sc__sbtn{
  flex:none;background:linear-gradient(180deg,#1ed3c1,var(--afl-accent));color:#04302c;
  font-size:2.5cqw;font-weight:700;border-radius:1.4cqw;padding:1.8cqw 3cqw;
  box-shadow:0 1.2cqw 2.4cqw -1cqw rgba(23,195,178,.9);
  animation:afl-sc-sbtn var(--afl-dur) ease-in-out infinite;
}
@keyframes afl-sc-sbtn{
  0%,82%{transform:none;box-shadow:0 1.2cqw 2.4cqw -1cqw rgba(23,195,178,.9)}
  86%{transform:scale(1.06);box-shadow:0 1.2cqw 2.4cqw -1cqw rgba(23,195,178,.9),0 0 0 1.6cqw rgba(23,195,178,.22)}
  91%,100%{transform:none;box-shadow:0 1.2cqw 2.4cqw -1cqw rgba(23,195,178,.9)}
}

/* curseur */
.afl-sc__cursor{
  position:absolute;z-index:12;left:0;top:0;width:5.2cqw;height:5.2cqw;
  transform:translate(74cqw,71cqw);
  filter:drop-shadow(0 .8cqw 1.4cqw rgba(7,7,49,.42));
  animation:afl-sc-cursor var(--afl-dur) cubic-bezier(.4,.05,.2,1) infinite;
}
.afl-sc__cursor svg{width:100%;height:100%}
@keyframes afl-sc-cursor{
  0%{transform:translate(74cqw,71cqw)}
  16%,17%{transform:translate(50cqw,63cqw)}
  19%{transform:translate(50cqw,64.4cqw)}
  22%,55%{transform:translate(50cqw,63cqw)}
  61%,62%{transform:translate(78cqw,21cqw)}
  63%{transform:translate(78cqw,22.4cqw)}
  66%,76%{transform:translate(78cqw,21cqw)}
  84%,100%{transform:translate(81cqw,66.5cqw)}
}




/* rouleaux de la scène (bloc du rouleau de la maquette) */
.afl-sc__step .afl-sc__q .afl-reel{font-size:2.6cqw}
.afl-sc__phead u .afl-reel{font-size:2.1cqw}
.afl-sc__badge .afl-reel{font-size:2.3cqw}
