/* ============================================================================
   Coaching and Clarity — apariție la scroll ("fade-up")
   Aceeași senzație ca pe wpmyway.com, care folosește AOS cu un singur efect:
   fade + urcare de 100px. Aici e făcut din 30 de linii, fără librărie, ca site-ul
   să rămână fără dependențe.

   REGULA DE SIGURANȚĂ: nimic nu se ascunde decât dacă JS confirmă că rulează
   (clasa .js-reveal pe <html>). Fără JS, sau dacă scriptul cade, pagina se vede
   întreagă. Un site care își ascunde conținutul în așteptarea unui script e un
   site care într-o zi apare gol — inclusiv pentru Google.
   ========================================================================== */

.js-reveal :where(
  /* --- homepage --- */
  .who__head, .who__card,
  .appr__head, .model, .note, .found,
  .exp__figure, .exp__creds, .reasons li,
  .quote, .offer, .step,
  /* --- About --- */
  .two__head, .role, .edu__col, .meth, .std, .case,
  /* --- comune --- */
  .svc__head, .meth__head, .creds li, .final .wrap
){
  opacity:0;
  transform:translateY(100px);
  transition:opacity .34s cubic-bezier(.22,.61,.36,1),
             transform .34s cubic-bezier(.22,.61,.36,1);
  transition-delay:calc(var(--rv, 0) * 70ms);
  will-change:opacity, transform;
}

/* Starea finală. Lista de sus e în `:where(...)`, care are specificitate zero —
   altfel `.final .wrap` din listă ar fi ridicat întregul selector peste regula
   asta, iar elementele ar primi clasa fără să se vadă vreodată. */
.js-reveal .is-in{
  opacity:1;
  transform:none;
  will-change:auto;
}

/* Cine a cerut mai puțină mișcare primește pagina așa cum e, fără nimic ascuns.
   Regula e dublată în JS: clasa .js-reveal nici nu se pune în acest caz. */
@media (prefers-reduced-motion:reduce){
  .js-reveal :where(
    .who__head, .who__card,
    .appr__head, .model, .note, .found,
    .exp__figure, .exp__creds, .reasons li,
    .quote, .offer, .step,
    .two__head, .role, .edu__col, .meth, .std, .case,
    .svc__head, .meth__head, .creds li, .final .wrap
  ){
    opacity:1;
    transform:none;
    transition:none;
  }
}
