/**
 * 2026 ALGO-FACTORY.COM — aflivecovers, scène « Contrôle de l'âge » (scène E de la maquette, afagecontrol).
 *
 * Popup de vérification d'âge, date de naissance refusée avec redirection, seconde date acceptée,
 * boutique déverrouillée, âge mémorisé. Racine : .afl-ag ; animations : afl-ag-*.
 * Durée et image fixe : scene.json.
 */

.afl-ag{
  position:absolute;inset:0;font-size:3cqw;
  background:linear-gradient(180deg,#fbfcfe,#eef2f9);
  animation:afl-cycle var(--afl-dur) linear infinite;
}
.afl-ag__page{position:absolute;inset:0;animation:afl-ag-page var(--afl-dur) cubic-bezier(.3,.9,.3,1) infinite}
@keyframes afl-ag-page{
  0%,4%{filter:blur(0)}
  10%,71%{filter:blur(1.1cqw) saturate(.8)}
  78%,100%{filter:blur(0)}
}
.afl-ag__shop{
  position:absolute;left:0;right:0;top:0;height:10cqw;display:flex;align-items:center;gap:2cqw;padding:0 4cqw;
  background:#fff;border-bottom:1px solid var(--afl-ink-08);
}
.afl-ag__shop b{font-size:2.9cqw;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:1.2cqw}
.afl-ag__shop b i{width:3.2cqw;height:3.2cqw;border-radius:1cqw;background:linear-gradient(135deg,#7c3aed,#4c1d95)}
.afl-ag__shop em{width:6cqw;height:1.4cqw;border-radius:99px;background:var(--afl-ink-08);font-style:normal}
.afl-ag__prod{position:absolute;left:4cqw;right:4cqw;top:14cqw;bottom:4cqw;display:flex;gap:3.4cqw}
.afl-ag__bottle{
  width:30cqw;flex:none;border-radius:2.4cqw;position:relative;overflow:hidden;
  background:linear-gradient(160deg,#2a1a4a,#0f0724);
  display:grid;place-items:center;
}
.afl-ag__bottle::after{
  content:"";position:absolute;top:-40%;left:-60%;width:55%;height:200%;transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
}
.afl-ag__bottle svg{width:13cqw;height:13cqw;fill:rgba(255,255,255,.9);filter:drop-shadow(0 1cqw 2cqw rgba(0,0,0,.4))}
.afl-ag__pinfo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2.2cqw;padding-top:1cqw}
.afl-ag__pinfo .afl-ag__k{font-size:2.1cqw;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7c3aed}
.afl-ag__pinfo .afl-ag__l1{height:2.6cqw;width:76%;border-radius:99px;background:rgba(7,7,49,.2)}
.afl-ag__pinfo .afl-ag__l2{height:2.2cqw;width:50%;border-radius:99px;background:var(--afl-ink-14)}
.afl-ag__pinfo .afl-ag__pr{font-size:5cqw;font-weight:800;letter-spacing:-.03em;line-height:1}
.afl-ag__warn{
  display:inline-flex;align-items:center;gap:1.2cqw;align-self:flex-start;
  font-size:2.1cqw;font-weight:700;color:var(--afl-danger);
  background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.24);border-radius:1.2cqw;padding:1cqw 1.8cqw;
}

.afl-ag__overlay{position:absolute;inset:0;z-index:6;background:rgba(7,7,49,.6);opacity:0;animation:afl-ag-ov var(--afl-dur) ease-out infinite}
@keyframes afl-ag-ov{0%,4%{opacity:0}10%,71%{opacity:1}78%,100%{opacity:0}}

.afl-ag__card{
  position:absolute;left:50%;top:50%;width:66cqw;z-index:7;margin-left:-33cqw;
  transform:translateY(-50%) scale(.8);opacity:0;
  background:#fff;border-radius:3cqw;padding:3.4cqw 3.4cqw 3cqw;text-align:center;
  box-shadow:0 4cqw 8cqw -3cqw rgba(7,7,49,.6);
  animation:afl-ag-card var(--afl-dur) cubic-bezier(.16,1.45,.3,1) infinite;
}
@keyframes afl-ag-card{
  0%,6%{opacity:0;transform:translateY(-50%) scale(.8)}
  13%,71%{opacity:1;transform:translateY(-50%) scale(1)}
  77%,100%{opacity:0;transform:translateY(-50%) scale(.88)}
}
/* secousse au refus */
.afl-ag__shake{animation:afl-ag-shake var(--afl-dur) linear infinite}
@keyframes afl-ag-shake{
  0%,31%{transform:translateX(0)}
  32%{transform:translateX(-1.6cqw)}
  33%{transform:translateX(1.6cqw)}
  34%{transform:translateX(-1.1cqw)}
  35%{transform:translateX(1.1cqw)}
  36%,100%{transform:translateX(0)}
}
.afl-ag__emblem{
  width:11cqw;height:11cqw;margin:0 auto 2cqw;border-radius:50%;
  display:grid;place-items:center;font-size:3.6cqw;font-weight:800;color:#fff;
  background:linear-gradient(150deg,#7c3aed,#4c1d95);
  box-shadow:0 1.6cqw 3.4cqw -1.2cqw rgba(76,29,149,.9);
  animation:afl-ag-emblem var(--afl-dur) linear infinite;
}
@keyframes afl-ag-emblem{
  0%,29%{background:linear-gradient(150deg,#7c3aed,#4c1d95);box-shadow:0 1.6cqw 3.4cqw -1.2cqw rgba(76,29,149,.9)}
  31%,45%{background:linear-gradient(150deg,#ef4444,#991b1b);box-shadow:0 1.6cqw 3.4cqw -1.2cqw rgba(153,27,27,.9)}
  47%,64%{background:linear-gradient(150deg,#7c3aed,#4c1d95);box-shadow:0 1.6cqw 3.4cqw -1.2cqw rgba(76,29,149,.9)}
  66%,100%{background:linear-gradient(150deg,#22c55e,#15803d);box-shadow:0 1.6cqw 3.4cqw -1.2cqw rgba(21,128,61,.9)}
}
.afl-ag__ttl{display:block;font-size:3.6cqw;font-weight:800;letter-spacing:-.02em;margin:0 0 1.2cqw;line-height:1.15}
.afl-ag__sub{display:block;font-size:2.4cqw;color:var(--afl-ink-60);margin:0 0 2.6cqw;line-height:1.5}

/* champ date de naissance */
.afl-ag__dob{position:relative;height:11cqw;margin-bottom:2.4cqw}
.afl-ag__row{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:1.4cqw}
.afl-ag__row--a{animation:afl-ag-row-a var(--afl-dur) ease-out infinite}
.afl-ag__row--b{animation:afl-ag-row-b var(--afl-dur) ease-out infinite;opacity:0}
@keyframes afl-ag-row-a{0%,42%{opacity:1}46%,100%{opacity:0}}
@keyframes afl-ag-row-b{0%,47%{opacity:0}50%,100%{opacity:1}}
.afl-ag__box{
  width:11cqw;height:9cqw;border-radius:1.6cqw;border:2px solid var(--afl-ink-14);background:#fff;
  display:grid;place-items:center;font-size:3.6cqw;font-weight:700;letter-spacing:.06em;color:var(--afl-ink);
}
.afl-ag__box--y{width:17cqw}
.afl-ag__sep{font-size:3cqw;font-weight:700;color:var(--afl-ink-40)}
.afl-ag__box > span{opacity:0;display:block}
/* saisie 1 : 14 / 03 / 2009 */
.afl-ag__row--a .afl-ag__box:nth-of-type(1) > span{animation:afl-ag-t1 var(--afl-dur) ease-out infinite}
.afl-ag__row--a .afl-ag__box:nth-of-type(2) > span{animation:afl-ag-t2 var(--afl-dur) ease-out infinite}
.afl-ag__row--a .afl-ag__box:nth-of-type(3) > span{animation:afl-ag-t3 var(--afl-dur) ease-out infinite}
@keyframes afl-ag-t1{0%,17%{opacity:0;transform:translateY(1cqw)}20%,100%{opacity:1;transform:none}}
@keyframes afl-ag-t2{0%,21%{opacity:0;transform:translateY(1cqw)}24%,100%{opacity:1;transform:none}}
@keyframes afl-ag-t3{0%,25%{opacity:0;transform:translateY(1cqw)}28%,100%{opacity:1;transform:none}}
/* saisie 2 : 22 / 07 / 1994 */
.afl-ag__row--b .afl-ag__box:nth-of-type(1) > span{animation:afl-ag-u1 var(--afl-dur) ease-out infinite}
.afl-ag__row--b .afl-ag__box:nth-of-type(2) > span{animation:afl-ag-u2 var(--afl-dur) ease-out infinite}
.afl-ag__row--b .afl-ag__box:nth-of-type(3) > span{animation:afl-ag-u3 var(--afl-dur) ease-out infinite}
@keyframes afl-ag-u1{0%,51%{opacity:0;transform:translateY(1cqw)}54%,100%{opacity:1;transform:none}}
@keyframes afl-ag-u2{0%,55%{opacity:0;transform:translateY(1cqw)}58%,100%{opacity:1;transform:none}}
@keyframes afl-ag-u3{0%,59%{opacity:0;transform:translateY(1cqw)}62%,100%{opacity:1;transform:none}}
/* le champ actif prend l'anneau de focus, l'un après l'autre */
.afl-ag__row--a .afl-ag__box:nth-of-type(1){animation:afl-ag-ra1 var(--afl-dur) ease-out infinite}
.afl-ag__row--a .afl-ag__box:nth-of-type(2){animation:afl-ag-ra2 var(--afl-dur) ease-out infinite}
.afl-ag__row--a .afl-ag__box:nth-of-type(3){animation:afl-ag-ra3 var(--afl-dur) ease-out infinite}
.afl-ag__row--b .afl-ag__box:nth-of-type(1){animation:afl-ag-rb1 var(--afl-dur) ease-out infinite}
.afl-ag__row--b .afl-ag__box:nth-of-type(2){animation:afl-ag-rb2 var(--afl-dur) ease-out infinite}
.afl-ag__row--b .afl-ag__box:nth-of-type(3){animation:afl-ag-rb3 var(--afl-dur) ease-out infinite}
@keyframes afl-ag-ra1{0%,15%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}16%,20%{border-color:var(--afl-primary);box-shadow:0 0 0 .7cqw rgba(2,114,234,.16)}22%,100%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}}
@keyframes afl-ag-ra2{0%,19%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}20%,24%{border-color:var(--afl-primary);box-shadow:0 0 0 .7cqw rgba(2,114,234,.16)}26%,100%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}}
@keyframes afl-ag-ra3{0%,23%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}24%,28%{border-color:var(--afl-primary);box-shadow:0 0 0 .7cqw rgba(2,114,234,.16)}30%,100%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}}
@keyframes afl-ag-rb1{0%,49%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}50%,54%{border-color:var(--afl-primary);box-shadow:0 0 0 .7cqw rgba(2,114,234,.16)}56%,100%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}}
@keyframes afl-ag-rb2{0%,53%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}54%,58%{border-color:var(--afl-primary);box-shadow:0 0 0 .7cqw rgba(2,114,234,.16)}60%,100%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}}
@keyframes afl-ag-rb3{0%,57%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}58%,62%{border-color:var(--afl-primary);box-shadow:0 0 0 .7cqw rgba(2,114,234,.16)}64%,100%{border-color:var(--afl-ink-14);box-shadow:0 0 0 0 rgba(2,114,234,0)}}
/* verdict d'âge */
.afl-ag__verdict{
  position:absolute;left:50%;bottom:-1.4cqw;transform:translateX(-50%) scale(.6);
  display:inline-flex;align-items:center;gap:1.1cqw;white-space:nowrap;
  font-size:2.2cqw;font-weight:800;border-radius:99px;padding:.9cqw 2cqw;opacity:0;
}
.afl-ag__verdict--ko{color:#fff;background:linear-gradient(180deg,#ef4444,#dc2626);animation:afl-ag-ko var(--afl-dur) cubic-bezier(.16,1.5,.3,1) infinite}
.afl-ag__verdict--ok{color:#04331a;background:linear-gradient(180deg,#4ade80,#22c55e);animation:afl-ag-ok var(--afl-dur) cubic-bezier(.16,1.5,.3,1) infinite}
@keyframes afl-ag-ko{0%,29%{opacity:0;transform:translateX(-50%) scale(.6)}32%,43%{opacity:1;transform:translateX(-50%) scale(1)}46%,100%{opacity:0;transform:translateX(-50%) scale(.9)}}
@keyframes afl-ag-ok{0%,63%{opacity:0;transform:translateX(-50%) scale(.6)}66%,71%{opacity:1;transform:translateX(-50%) scale(1)}75%,100%{opacity:0;transform:translateX(-50%) scale(.9)}}

.afl-ag__btns{display:flex;gap:1.8cqw;height:8cqw}
.afl-ag__btn{
  flex:1;font-size:2.4cqw;font-weight:700;border-radius:1.6cqw;text-align:center;
  display:grid;place-items:center;white-space:nowrap;
}
.afl-ag__btn--ok{
  color:#fff;background:linear-gradient(180deg,#0d80f7,#0272ea);
  box-shadow:0 1.4cqw 3cqw -1.4cqw rgba(2,114,234,.9);
  animation:afl-ag-btn-ok var(--afl-dur) ease-out infinite;
}
@keyframes afl-ag-btn-ok{
  0%,27%{filter:none;transform:none}
  29%{filter:brightness(.9);transform:scale(.96)}
  32%,62%{filter:none;transform:none}
  64%{filter:brightness(.9);transform:scale(.96)}
  67%,100%{filter:none;transform:none}
}
.afl-ag__btn--no{color:var(--afl-ink-60);background:var(--afl-ink-05);border:1px solid var(--afl-ink-08)}

/* refus : la zone d'action se transforme en message d'erreur */
.afl-ag__deny{
  position:absolute;left:3.4cqw;right:3.4cqw;bottom:3cqw;height:8cqw;z-index:4;
  display:flex;align-items:center;justify-content:center;gap:1.4cqw;white-space:nowrap;
  font-size:2.2cqw;font-weight:700;color:#fff;
  background:linear-gradient(180deg,#ef4444,#b91c1c);
  border-radius:1.6cqw;
  box-shadow:0 1.6cqw 3.4cqw -1.4cqw rgba(185,28,28,.9);
  opacity:0;animation:afl-ag-deny var(--afl-dur) cubic-bezier(.16,1.3,.3,1) infinite;
}
.afl-ag__deny svg{width:2.6cqw;height:2.6cqw;flex:none;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round}
@keyframes afl-ag-deny{
  0%,32%{opacity:0;transform:translateY(1.6cqw) scale(.96)}
  36%,45%{opacity:1;transform:none}
  49%,100%{opacity:0;transform:translateY(-1cqw) scale(.97)}
}
/* accès autorisé : coche qui explose */
.afl-ag__grant{
  position:absolute;left:50%;top:50%;z-index:9;width:16cqw;height:16cqw;margin:-8cqw 0 0 -8cqw;
  border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(150deg,#22c55e,#15803d);opacity:0;
  box-shadow:0 0 0 0 rgba(34,197,94,.5);
  animation:afl-ag-grant var(--afl-dur) cubic-bezier(.16,1.4,.3,1) infinite;
}
.afl-ag__grant svg{width:8cqw;height:8cqw;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
@keyframes afl-ag-grant{
  0%,71%{opacity:0;transform:scale(.4);box-shadow:0 0 0 0 rgba(34,197,94,.6)}
  75%{opacity:1;transform:scale(1);box-shadow:0 0 0 4cqw rgba(34,197,94,0)}
  81%,100%{opacity:0;transform:scale(1.15);box-shadow:0 0 0 0 rgba(34,197,94,0)}
}
.afl-ag__cookie{
  position:absolute;left:50%;bottom:4.4cqw;z-index:10;transform:translateX(-50%) scale(.82);
  display:inline-flex;align-items:center;gap:1.3cqw;white-space:nowrap;
  font-size:2.2cqw;font-weight:700;color:var(--afl-success);
  background:#fff;border:1px solid rgba(22,163,74,.32);border-radius:99px;padding:1.1cqw 2.2cqw;
  box-shadow:0 1.8cqw 3.6cqw -1.6cqw rgba(7,7,49,.4);
  opacity:0;animation:afl-ag-cookie var(--afl-dur) cubic-bezier(.16,1.3,.3,1) infinite;
}
@keyframes afl-ag-cookie{0%,82%{opacity:0;transform:translateX(-50%) scale(.82)}88%,100%{opacity:1;transform:translateX(-50%) scale(1)}}
.afl-ag__target{
  position:absolute;left:4cqw;top:13cqw;z-index:10;
  display:inline-flex;align-items:center;gap:1.2cqw;white-space:nowrap;
  font-size:2.1cqw;font-weight:700;color:#fff;
  background:rgba(7,7,49,.75);border:1px solid rgba(255,255,255,.18);border-radius:99px;padding:1cqw 2cqw;
  opacity:0;animation:afl-ag-target var(--afl-dur) ease-out infinite;
}
.afl-ag__target i{width:1.6cqw;height:1.6cqw;border-radius:50%;background:#a78bfa;flex:none;box-shadow:0 0 0 .5cqw rgba(167,139,250,.3)}
@keyframes afl-ag-target{0%,14%{opacity:0;transform:translateX(-2cqw)}19%,70%{opacity:1;transform:none}75%,100%{opacity:0}}
