/* ===========================
   home-anim.css — v20.7.2
   - Frame intros: SAME variants (A/B/C). Allumage a poil plus court (géré côté JS via durée).
   - Logo: soft20 (start at 0.0).
   - Idle: mix de deux patterns (A/B) + assignation aléatoire par cadre.
   =========================== */

@keyframes va-introA-07200 {
  0%{opacity:0;filter:brightness(0.25) contrast(0.9)} 0.8%{opacity:1;filter:brightness(1.28) contrast(1.05)}
  3%{opacity:.18} 4%{opacity:1}
  6%{opacity:.16} 6.4%{opacity:1}
  8%{opacity:.28} 9%{opacity:1}
  11%{opacity:.21} 12%{opacity:1}
  14%{opacity:.17} 14.2%{opacity:1}
  17%{opacity:.3} 25%{opacity:1}
  36%{opacity:.83} 48%{opacity:.98} 60%{opacity:.79} 62%{opacity:.99}
  68%{opacity:.22} 70%{opacity:1} 71%{opacity:.26} 72%{opacity:1}
  84%{opacity:.97} 92%{opacity:1} 100%{opacity:1;filter:none}
}
@keyframes va-introB-08000 {
  0%{opacity:0;filter:brightness(0.25) contrast(0.9)} 0.7%{opacity:1;filter:brightness(1.29) contrast(1.05)}
  2.5%{opacity:.19} 3.2%{opacity:1}
  4%{opacity:.16} 4.2%{opacity:1}
  6%{opacity:.28} 7%{opacity:1}
  9%{opacity:.18} 9.3%{opacity:1}
  12%{opacity:.31} 25%{opacity:1}
  38%{opacity:.82} 50%{opacity:1} 58%{opacity:.78} 62%{opacity:.98}
  67%{opacity:.20} 69%{opacity:1} 71%{opacity:.27} 72%{opacity:1}
  84%{opacity:.97} 93%{opacity:1} 100%{opacity:1;filter:none}
}
@keyframes va-introC-08800 {
  0%{opacity:0;filter:brightness(0.25) contrast(0.9)} 0.6%{opacity:1;filter:brightness(1.27) contrast(1.05)}
  2%{opacity:.23} 2.8%{opacity:1}
  3.6%{opacity:.17} 3.8%{opacity:1}
  4.8%{opacity:.19} 5%{opacity:1}
  6.4%{opacity:.30} 8%{opacity:1}
  10%{opacity:.21} 25%{opacity:1}
  36%{opacity:.84} 48%{opacity:1} 56%{opacity:.80} 62%{opacity:.99}
  66%{opacity:.24} 68%{opacity:1} 70%{opacity:.22} 71%{opacity:1}
  86%{opacity:.97} 94%{opacity:1} 100%{opacity:1;filter:none}
}

/* Logo: soft + soft20 */
@keyframes va-logo-soft {
  0%   { opacity: 0;   filter: brightness(0.25) contrast(0.95); }
  10%  { opacity: .45; filter: brightness(0.85) contrast(1.01); }
  22%  { opacity: .85; filter: brightness(0.98) contrast(1.03); }
  35%  { opacity: 1;   filter: brightness(1.06) contrast(1.04); }
  45%  { opacity: .88; filter: brightness(0.96) contrast(1.02); }
  60%  { opacity: 1;   filter: brightness(1.02) contrast(1.02); }
  100% { opacity: 1;   filter: none; }
}
@keyframes va-logo-soft20 {
  0%   { opacity: 0; filter: brightness(0.7) contrast(0.98); }
  10%  { opacity: .5;  filter: brightness(0.9) contrast(1.01); }
  22%  { opacity: .88; filter: brightness(1.0) contrast(1.03); }
  35%  { opacity: 1;   filter: brightness(1.06) contrast(1.04); }
  45%  { opacity: .9;  filter: brightness(0.98) contrast(1.02); }
  60%  { opacity: 1;   filter: brightness(1.02) contrast(1.02); }
  100% { opacity: 1;   filter: none; }
}

/* Idle patterns */
@keyframes va-idle-A {
  0%   { opacity: 1;   } 6% { opacity:.95; } 12% { opacity:1; }
  18%  { opacity:.93; } 22% { opacity:1; }
  28%  { opacity:.97; } 34% { opacity:1; }
  40%  { opacity:.90; } 42% { opacity:1; }
  56%  { opacity:.96; } 62% { opacity:1; }
  74%  { opacity:.94; } 78% { opacity:1; }
  88%  { opacity:.98; } 100%{ opacity:1; }
}
@keyframes va-idle-B {
  0%   { opacity: 1;   }
  8%   { opacity: .92; }
  10%  { opacity: 1;   }
  18%  { opacity: .88; }
  19%  { opacity: 1;   }
  36%  { opacity: .94; }
  44%  { opacity: 1;   }
  58%  { opacity: .91; }
  60%  { opacity: 1;   }
  76%  { opacity: .95; }
  84%  { opacity: 1;   }
  96%  { opacity: .98; }
  100% { opacity: 1;   }
}

[data-va-lamp]{ will-change: opacity, filter; }
.va-idle-on { animation-iteration-count: infinite; animation-fill-mode: both; }
.va-idle-A  { animation-name: va-idle-A; }
.va-idle-B  { animation-name: va-idle-B; }

/* --- Added in v20.6.6 --- */
/* Title intro desync: softer + offset-friendly to avoid syncing with parent frame */
@keyframes va-intro-title-desync {
  0%   { opacity: 0;   filter: brightness(0.25) contrast(0.95); }
  1.2% { opacity: 1;   filter: brightness(1.18) contrast(1.03); }
  3%   { opacity: .28; }
  4.2% { opacity: 1;   }
  6.2% { opacity: .22; }
  7.0% { opacity: 1;   }
  10%  { opacity: .30; }
  12%  { opacity: 1;   }
  22%  { opacity: .92; }
  28%  { opacity: 1;   }
  40%  { opacity: .95; }
  44%  { opacity: 1;   }
  60%  { opacity: .90; }
  64%  { opacity: 1;   }
  100% { opacity: 1;   filter: none; }
}

/* Brief idle burst: a very short, sharper flicker used sporadically */
@keyframes va-idle-burst {
  0%   { opacity: 1; }
  35%  { opacity: .82; }
  70%  { opacity: 1; }
  100% { opacity: 1; }
}
/* helper class applied temporarily by JS */
.va-idle-burst { animation-name: va-idle-burst; animation-duration: 0.34s; animation-timing-function: ease-in-out; }


/* Added by combine patch — entry fade from 10% to 100% (logo-like speed) */
@keyframes va-fade10-soft {
  0%   { opacity: 0.10; filter: brightness(0.7) contrast(0.98); }
  15%  { opacity: 0.40; filter: brightness(0.9) contrast(1.00); }
  35%  { opacity: 0.86; filter: brightness(1.02) contrast(1.03); }
  55%  { opacity: 1.00; filter: brightness(1.05) contrast(1.04); }
  72%  { opacity: 0.94; filter: brightness(0.98) contrast(1.02); }
  85%  { opacity: 1.00; filter: brightness(1.02) contrast(1.02); }
  100% { opacity: 1.00; filter: none; }
}


/* Pre-boot: ensure big frames render dim (10%) on first paint */
html:not(.va-booted) .category.blue-neon,
html:not(.va-booted) .category.pink-neon,
html:not(.va-booted) .category.blue,
html:not(.va-booted) .category.pink {
  opacity: 0.10;
}
