/* Icone animate Voltare Pagina — movimenti minimi, lenti, in loop (condiviso da quiz e landing) */
.ico { width: 1em; height: 1em; display: block; overflow: visible; flex: none; }
.ico [class*="a-"] { transform-box: fill-box; transform-origin: center; }
.ico .vb { transform-box: view-box; transform-origin: 12px 12px; }
.ico .ob { transform-origin: center bottom; }
.ico .ot { transform-origin: center top; }
.ico .ol { transform-origin: left center; }
.ico .d1 { animation-delay: .25s !important; }
.ico .d2 { animation-delay: .5s !important; }

.ico .a-rot { animation: ico-rot 6s linear infinite; }
.ico .a-rot-slow { animation: ico-rot 16s linear infinite; }
.ico .a-swing { animation: ico-swing 3s ease-in-out infinite alternate; }
.ico .a-bob { animation: ico-bob 2.6s ease-in-out infinite alternate; }
.ico .a-beat { animation: ico-beat 2.2s ease-in-out infinite; }
.ico .a-blink { animation: ico-blink 1.8s ease-in-out infinite alternate; }
.ico .a-draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: ico-draw 3.8s ease-in-out infinite; }
.ico .a-grow { animation: ico-grow 2.6s ease-in-out infinite alternate; }
.ico .a-sway { animation: ico-sway 3.4s ease-in-out infinite alternate; }
.ico .a-twinkle { animation: ico-twinkle 2.8s ease-in-out infinite alternate; }
.ico .a-tilt { animation: ico-tilt 3.2s ease-in-out infinite alternate; }
.ico .a-fill { animation: ico-fill 3.2s ease-in-out infinite alternate; }
.ico .a-wave { animation: ico-wave 1.6s ease-in-out infinite alternate; }
.ico .a-look { animation: ico-look 3.4s ease-in-out infinite alternate; }
.ico .a-lift { animation: ico-lift 2.4s ease-in-out infinite alternate; }
.ico .a-flip { animation: ico-flip 4s ease-in-out infinite; }
.ico .a-ring { animation: ico-ring 3.2s ease-in-out infinite; }
.ico .a-fly { animation: ico-fly 3.2s ease-in-out infinite; }
.ico .a-drop { animation: ico-drop 2.4s ease-in infinite; }
.ico .a-steam { animation: ico-steam 2.2s ease-out infinite; }
.ico .a-dash { animation: ico-dash 1.4s linear infinite; }
.ico .a-turn { animation: ico-turn 2.8s ease-in-out infinite alternate; }
.ico .a-climb { animation: ico-climb 4s steps(1) infinite; }
.ico .a-slide { animation: ico-slide 2.6s ease-in-out infinite alternate; }

@keyframes ico-rot { to { transform: rotate(360deg); } }
@keyframes ico-swing { from { transform: rotate(-12deg); } to { transform: rotate(12deg); } }
@keyframes ico-bob { from { transform: translateY(0); } to { transform: translateY(-1.6px); } }
@keyframes ico-beat { 0%, 60%, 100% { transform: scale(1); } 30% { transform: scale(1.14); } }
@keyframes ico-blink { from { opacity: 1; } to { opacity: .25; } }
@keyframes ico-draw { 0% { stroke-dashoffset: 1; } 40%, 80% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -1; } }
@keyframes ico-grow { from { transform: scaleY(.45); } to { transform: scaleY(1); } }
@keyframes ico-sway { from { transform: rotate(-6deg); } to { transform: rotate(6deg); } }
@keyframes ico-twinkle { from { transform: scale(.82) rotate(0deg); } to { transform: scale(1.05) rotate(18deg); } }
@keyframes ico-tilt { from { transform: rotate(-8deg); } to { transform: rotate(8deg); } }
@keyframes ico-fill { from { transform: scaleX(.35); } to { transform: scaleX(2); } }
@keyframes ico-wave { from { transform: skewY(0); } to { transform: skewY(-7deg); } }
@keyframes ico-look { from { transform: translateX(-1.5px); } to { transform: translateX(1.5px); } }
@keyframes ico-lift { from { transform: translateY(0); } to { transform: translateY(-1.8px); } }
@keyframes ico-flip { 0%, 65% { transform: rotate(0); } 100% { transform: rotate(180deg); } }
@keyframes ico-ring { 0%, 22%, 100% { transform: rotate(0); } 4%, 12% { transform: rotate(-11deg); } 8%, 16% { transform: rotate(11deg); } }
@keyframes ico-fly { 0% { transform: translate(0, 0); opacity: 1; } 45% { transform: translate(2.5px, -2.5px); opacity: 1; } 55% { transform: translate(4px, -4px); opacity: 0; } 56% { transform: translate(-3px, 3px); opacity: 0; } 70%, 100% { transform: translate(0, 0); opacity: 1; } }
@keyframes ico-drop { 0% { transform: translateY(-3px); opacity: 0; } 30% { opacity: 1; } 70% { transform: translateY(1px); opacity: 1; } 100% { transform: translateY(2px); opacity: 0; } }
@keyframes ico-steam { from { transform: translateY(1px); opacity: 1; } to { transform: translateY(-2.5px); opacity: 0; } }
@keyframes ico-dash { to { stroke-dashoffset: -9; } }
@keyframes ico-turn { from { transform: rotate(-15deg); } to { transform: rotate(15deg); } }
@keyframes ico-climb { 0% { transform: translate(0, 0); } 25% { transform: translate(4px, -4px); } 50% { transform: translate(8px, -8px); } 75% { transform: translate(12px, -12px); } }
@keyframes ico-slide { from { transform: translate(0, 0); } to { transform: translate(-1.2px, 1.2px); } }

@media (prefers-reduced-motion: reduce) {
  .ico * { animation: none !important; stroke-dashoffset: 0 !important; }
}
