section {
    padding-block: var(--space-6);
}

.hero {
    padding-top: clamp(4rem, 12vw, 6.5rem);
    position: relative;
}

.hero::after {
    content: "";
    position: absolute;
    right: -6rem;
    top: -4rem;
    width: 19rem;
    height: 19rem;
    border-radius: 35% 65% 70% 30% / 35% 40% 60% 65%;
    background: var(--hero-blob);
    opacity: 0.34;
    z-index: -1;
}

.hero-grid {
    display: grid;
    gap: var(--space-5);
}

.hero-art {
    position: relative;
    overflow: hidden;
    background: var(--hero-art-bg);
    border-radius: 40% 60% 44% 56% / 63% 35% 65% 37%;
    min-height: 15rem;
    border: 2px solid var(--hero-art-border);
    box-shadow: var(--hero-art-shadow);
}

.about,
.skills,
.projects,
.process,
.notes,
.contact {
    position: relative;
}

.about::before,
.projects::before {
    content: "";
    position: absolute;
    left: -6rem;
    top: 2.5rem;
    width: 10rem;
    height: 10rem;
    border-radius: 50%;
    background: var(--decor-orb-bg);
    border: 1px solid var(--decor-orb-border);
    z-index: -1;
}

.about::after,
.projects::after {
    content: "";
    position: absolute;
    right: 8%;
    bottom: 0.8rem;
    width: 4.2rem;
    height: 4.2rem;
    border-radius: 56% 44% 52% 48% / 45% 61% 39% 55%;
    background: var(--decor-orb-small);
    opacity: 0.7;
    z-index: -1;
}

.about p {
    max-width: 62ch;
}

.notes .project-card p,
.process .skill-card p {
    max-width: 62ch;
}

.skills-grid {
    grid-template-columns: 1fr;
}

.project-grid {
    grid-template-columns: 1fr;
}

.projects-layout {
    display: grid;
    gap: var(--space-4);
}

.contact-grid {
    grid-template-columns: 1fr;
}

.contact-card h3 {
    color: var(--text-primary);
}

@media (min-width: 48rem) {
    .hero-grid {
        grid-template-columns: 1.35fr 0.9fr;
        align-items: center;
    }

    .skills-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .project-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .projects-layout {
        grid-template-columns: minmax(0, 1.65fr) minmax(16rem, 0.95fr);
        align-items: start;
    }

    .contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 64rem) {
    .updates-column {
        position: sticky;
        top: 5.7rem;
        max-height: calc(100vh - 7.5rem);
        overflow: auto;
    }
}
