html {
    scroll-behavior: smooth;
}

::selection {
    background: hsl(146, 80%, 35%);
    color: white;
}

body {
    font-family: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
    font-weight: normal;
    font-size: 14pt;
    background-color: hsl(268, 15%, 97%);
}

p {
    line-height: 155%;
}

em {
    font-style: normal;
    font-weight: bold;
}

h1, h2, h3 {
    font-family: "Patrick Hand", cursive;
    font-weight: 400;
    font-style: normal;
}

h1 {
    margin: 4rem 0 6rem 0;
    font-size: clamp(2rem, 9vw, 4rem);
    color: hsl(268, 80%, 40%);
    text-decoration: underline;
    text-decoration-color: hsl(146, 80%, 35%);
    text-decoration-thickness: 3px;
    text-underline-offset: 6px;
}

h2 {
    margin-top: 3rem;
    background-color: hsl(146, 80%, 30%);
    color: white;
    display: inline-block;
    padding: .3rem 1rem;
    letter-spacing: .1rem;
    transform: rotate(-2deg);
}

h3 {
    color: hsl(268, 80%, 40%);
    font-size: 20pt;
    letter-spacing: .1rem;
    font-weight: normal;
}

#W {
    max-width: 44rem;
    margin: 8vh auto 6rem;
    padding: 0 1.5rem;
}

.leading {
    font-size: 20pt;
}

blockquote {
    font-style: normal;
    font-size: 1.15em;
    color: hsl(268, 20%, 45%);
    margin-top: 6rem;
    padding-top: 1rem;
    text-align: center;
    letter-spacing: .02em;
    border-top: 1px solid hsl(268, 20%, 45%);
}

ul {
    display: flex;
    flex-wrap: wrap;
    list-style-type: none;
    padding-left: 0;
    gap: 10px;
    justify-content: center;
    margin-bottom: 2rem;
}

ul li {
    border: 2px solid currentColor;
    border-radius: 2rem;
    padding: .2rem .85rem;
    font-size: .85em;
    font-weight: 600;
    letter-spacing: .03em;
}

.skills-cloud {
    justify-content: center;
    margin-top: 1rem;
}

a {
    color: hsl(355, 80%, 40%);
}

.service-card {
    background-color: white;
    border-radius: .5rem;
    padding: .75rem 1.5rem 0.1rem;
    margin-bottom: 1rem;
}

.service-card h3 {
    margin-top: .5rem;
}

.service-card p {
    margin-bottom: .75rem;
}

.CTA {
    margin-top: 2.5rem;
    padding: 1rem 1.5rem;
    background-color: hsl(146, 60%, 96%);
    border-radius: .5rem;
}

.top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 0 1.1rem;
    padding-bottom: .4rem;
    border-bottom: 1px solid hsl(146, 0%, 35%);
    font-size: .78em;
}

.top-bar a {
    color: hsl(268, 18%, 22%);

    &:hover {
        color: hsl(355, 80%, 40%);
    }
}

.lang-switch {
    display: inline-block;
}

/* =============================================
   Animations
   ============================================= */

@keyframes page-enter {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes h2-stamp {
    0% {
        opacity: 0;
        transform: rotate(-2deg) scale(1.22);
    }
    72% {
        opacity: 1;
        transform: rotate(-2deg) scale(0.97);
    }
    100% {
        opacity: 1;
        transform: rotate(-2deg) scale(1);
    }
}

@media (prefers-reduced-motion: no-preference) {
    #W {
        animation: page-enter 0.6s ease-out both;
    }

    h2 {
        animation: h2-stamp 0.38s ease-out both;
        animation-delay: 0.35s;
    }

    h2:nth-of-type(2) { animation-delay: 0.48s; }
    h2:nth-of-type(3) { animation-delay: 0.61s; }
    h2:nth-of-type(4) { animation-delay: 0.74s; }
}