/* ============================================================
   ANIMATIONS — reveal states & reduced-motion support
   ============================================================ */

.reveal-img{ clip-path:inset(0 100% 0 0); }
.reveal-img.is-revealed{ clip-path:inset(0 0% 0 0); transition:clip-path 1.2s var(--ease-premium); }
.reveal-img.is-revealed img{ transition:transform 1.4s var(--ease-premium); }

[data-fade]{ opacity:0; transform:translateY(36px); }
[data-fade-left]{ opacity:0; transform:translateX(-36px); }
[data-fade-right]{ opacity:0; transform:translateX(36px); }
/* a 36px sideways offset pushes full-width blocks past a phone viewport
   and widens the document, so reveal vertically on small screens */
@media (max-width:768px){
  [data-fade-left], [data-fade-right]{ transform:translateY(26px); }
}
[data-scale]{ opacity:0; transform:scale(.94); }

.svg-draw path{ stroke-dasharray:1000; stroke-dashoffset:1000; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  [data-fade], [data-fade-left], [data-fade-right], [data-scale]{ opacity:1 !important; transform:none !important; }
  .reveal-img{ clip-path:none !important; }
  .reveal-img img{ transform:none !important; }
  .svg-draw path{ stroke-dashoffset:0 !important; }
  .philo-node{ opacity:1 !important; transform:none !important; }
  .w-inner{ transform:none !important; min-height:0 !important; }
  .why-item.is-flipped .w-inner{ transform:none !important; }
  .w-face{ position:static !important; inset:auto !important; backface-visibility:visible !important; }
  .w-back{ transform:none !important; }
  .w-hint{ display:none !important; }
  .cursor-dot, .cursor-ring{ display:none !important; }
}
