/* =====================================================================
   FLOURISH LAYER — micro-animazioni "di atmosfera", additive.
   Carica DOPO redesign.css. Rimuovendo <link> e <script> flourish.*
   il sito torna esattamente allo stato precedente.
   Palette e font invariati. Tutto si spegne con prefers-reduced-motion.
   ===================================================================== */

/* ---------- Divisore floreale: dondola e pulsa (sempre visibile) ---------- */
.divider img {
  transform-origin: center 60%;
  animation: dividerSway 3.6s ease-in-out infinite, dividerGlow 3.6s ease-in-out infinite;
}
@keyframes dividerSway {
  0%, 100% { transform: rotate(-7deg) scale(1); }
  50%      { transform: rotate(7deg) scale(1.12); }
}
@keyframes dividerGlow {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(233,169,142,0)); }
  50%      { filter: drop-shadow(0 3px 12px rgba(233,169,142,.95)); }
}

/* ---------- Card contatti / regalo: riflesso che scorre al passaggio del mouse ---------- */
.contact-card, .gift-btn, .gift-card { position: relative; overflow: hidden; }
.contact-card::before, .gift-btn::before, .gift-card::before {
  content: ""; position: absolute; top: 0; left: -75%;
  width: 50%; height: 100%; pointer-events: none; z-index: 2;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform: skewX(-18deg); transition: left .7s var(--ease-out);
}
.contact-card:hover::before, .gift-btn:hover::before, .gift-card:hover::before { left: 130%; }

/* ---------- Countdown: unità che "respirano" con più energia ---------- */
.countdown .unit { animation: cdBreath 2.6s ease-in-out infinite; }
.countdown .unit:nth-child(2) { animation-delay: .45s; }
.countdown .unit:nth-child(3) { animation-delay: .9s; }
@keyframes cdBreath {
  0%, 100% { transform: translateY(0) scale(1); }
  50%      { transform: translateY(-9px) scale(1.06); }
}

/* ---------- Pulse del countdown quando cambia il numero ---------- */
.countdown .num { transition: color .3s ease; will-change: transform; }
.countdown .num.tick { animation: cdTick .5s var(--ease-out); }
@keyframes cdTick {
  0%   { transform: translateY(0) scale(1); }
  35%  { transform: translateY(-3px) scale(1.14); color: var(--peach); }
  100% { transform: translateY(0) scale(1); }
}

/* ---------- Fiore del divider: dissolvenza d'ingresso (il moto è continuo sopra) ---------- */
.divider img { transition: opacity 1s ease; }
.reveal:not(.in) .divider img { opacity: 0; }
.reveal.in .divider img { opacity: .9; }

/* ---------- Sheen luminoso che attraversa il bottone principale ---------- */
.btn.solid { position: relative; overflow: hidden; }
.btn.solid::after {
  content: ""; position: absolute; top: 0; left: -60%;
  width: 40%; height: 100%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-18deg);
  animation: sheen 5.5s ease-in-out infinite;
}
@keyframes sheen {
  0%, 55% { left: -60%; }
  80%, 100% { left: 130%; }
}

/* ---------- Immagine del Forte: galleggiamento continuo + dissolvenza ---------- */
.forte-img {
  transition: opacity 1s ease;
  animation: forteFloat 5s ease-in-out infinite;
}
.reveal:not(.in) .forte-img { opacity: 0; }
.reveal.in .forte-img { opacity: 1; }
@keyframes forteFloat {
  0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
  50%      { transform: translateY(-10px) rotate(-1deg) scale(1.03); }
}

/* ---------- Cuore lieve che "batte" sul divisore dei nomi footer ---------- */
.fnames { position: relative; }

/* ---------- Rispetto delle preferenze di movimento ridotto ---------- */
@media (prefers-reduced-motion: reduce) {
  .btn.solid::after { animation: none; display: none; }
  .divider img { animation: none; }
  .forte-img { animation: none; }
  .countdown .unit { animation: none; }
  .countdown .num.tick { animation: none; }
  .reveal:not(.in) .divider img,
  .reveal:not(.in) .forte-img { opacity: 1; transform: none; }
}
