@keyframes pastel-cycle {
    0%   { filter: sepia(1) saturate(6) brightness(1.3) hue-rotate(0deg); }
    100% { filter: sepia(1) saturate(6) brightness(1.3) hue-rotate(360deg); }
}

@keyframes wave {
    0%   { transform: translateY(0)       rotate(0deg); }
    25%  { transform: translateY(-0.1em)  rotate(-2deg); }
    50%  { transform: translateY(-0.18em) rotate(0deg); }
    75%  { transform: translateY(-0.1em)  rotate(2deg); }
    100% { transform: translateY(0)       rotate(0deg); }
}

h1 span {
    display: inline-block;
    animation: wave 3s ease-in-out infinite;
}

h1 span:nth-child(1) { animation-delay: -1.5s; }
h1 span:nth-child(2) { animation-delay: -1.3s; }
h1 span:nth-child(3) { animation-delay: -1.1s; }
h1 span:nth-child(4) { animation-delay: -0.9s; }
h1 span:nth-child(5) { animation-delay: -0.7s; }
h1 span:nth-child(6) { animation-delay: -0.5s; }
h1 span:nth-child(7) { animation-delay: -0.3s; }

.icons a {
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.icons a:nth-child(1):hover { transform: scale(1.3) rotate(-9deg); }
.icons a:nth-child(2):hover { transform: scale(1.3) rotate(7deg); }
.icons a:nth-child(3):hover { transform: scale(1.3) rotate(-6deg); }
.icons a:nth-child(4):hover { transform: scale(1.3) rotate(8deg); }
.icons a:nth-child(5):hover { transform: scale(1.3) rotate(-10deg); }

.icons img {
    opacity: 0.7;
    transition: filter 0.3s ease-out, opacity 0.25s ease-out;
}

.icons:hover a:not(:hover) img {
    opacity: 0.35;
}

.icons a:hover img {
    opacity: 1;
    animation: pastel-cycle 1.5s linear infinite;
}
