/* Sfondo in movimento su tutta la pagina: strato fisso con foglie, foglioline che cadono e bagliori.
   Solo transform e opacity. Disattivato con prefers-reduced-motion. */
.mv-stage { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 50; contain: layout paint; }
.mv-back { z-index: -1; }
.mv-layer { position: absolute; inset: 0; will-change: transform; transform: translate3d(var(--mv-x, 0px), var(--mv-y, 0px), 0); }

.mv-sprig { position: absolute; height: auto; opacity: .3; transform-origin: var(--ox, 90%) var(--oy, 0%); width: clamp(170px, 24vw, 380px); }
.mv-s1 { right: -3%; top: -4%; --ox: 85%; --oy: 5%; }
.mv-s2 { left: -6%; top: -6%; --ox: 10%; --oy: 5%; transform: scaleX(-1); opacity: .24; width: clamp(150px, 20vw, 300px); }
.mv-s3 { left: -7%; top: 46%; --ox: 8%; --oy: 50%; transform: scaleX(-1) rotate(70deg); opacity: .22; width: clamp(140px, 17vw, 260px); }
.mv-s4 { right: -5%; bottom: -8%; --ox: 90%; --oy: 95%; transform: rotate(200deg); opacity: .24; width: clamp(160px, 21vw, 320px); }

.mv-fall { position: absolute; top: -12vh; left: var(--x, 50%); width: var(--w, 34px); height: auto; opacity: 0; }
.mv-bokeh { position: absolute; border-radius: 50%; background: radial-gradient(circle, rgba(255,252,235,.9) 0%, rgba(255,252,235,.35) 45%, rgba(255,252,235,0) 70%); opacity: .5; }

@media (prefers-reduced-motion: no-preference) {
	.mv-s1 { animation: mv-sway-1 11s ease-in-out infinite; }
	.mv-s2 { animation: mv-sway-2 13s ease-in-out infinite; }
	.mv-s3 { animation: mv-sway-3 15s ease-in-out infinite; }
	.mv-s4 { animation: mv-sway-4 12s ease-in-out infinite; }
	.mv-fall { animation: mv-fall var(--t, 28s) linear infinite; animation-delay: var(--dl, 0s); }
	.mv-bokeh { animation: mv-drift var(--d, 18s) ease-in-out infinite; animation-delay: var(--dl, 0s); }
	.mv-paused .mv-sprig, .mv-paused .mv-bokeh, .mv-paused .mv-fall { animation-play-state: paused; }
}
@keyframes mv-sway-1 { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } }
@keyframes mv-sway-2 { 0%,100% { transform: scaleX(-1) rotate(-3deg); } 50% { transform: scaleX(-1) rotate(3deg); } }
@keyframes mv-sway-3 { 0%,100% { transform: scaleX(-1) rotate(66deg); } 50% { transform: scaleX(-1) rotate(75deg); } }
@keyframes mv-sway-4 { 0%,100% { transform: rotate(196deg); } 50% { transform: rotate(205deg); } }
@keyframes mv-drift { 0%,100% { transform: translate3d(0,0,0) scale(1); opacity: .3; } 50% { transform: translate3d(18px,-26px,0) scale(1.15); opacity: .65; } }
@keyframes mv-fall {
	0%   { transform: translate3d(0,0,0) rotate(0deg); opacity: 0; }
	8%   { opacity: .38; }
	50%  { transform: translate3d(50px,58vh,0) rotate(160deg); }
	92%  { opacity: .34; }
	100% { transform: translate3d(-20px,125vh,0) rotate(330deg); opacity: 0; }
}

/* Lo sfondo "fixed" della testata scattava su telefono */
.hero, .page-hero { background-attachment: scroll; }
@media (max-width: 640px) {
	.mv-s3, .mv-bokeh:nth-child(n+4) { display: none; }
	.mv-sprig { opacity: .26; }
}
