/* ==============================
   Base
   ============================== */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: #ffffff;
    color: #171717;

    font-family:
        'Space Grotesk',
        sans-serif;

    line-height: 1.6;
}

a {
    color: inherit;

    text-decoration: underline;
    font-weight: 600;
}

header,
main,
footer {
    width: min(1050px, calc(100% - 48px));
    margin: 0 auto;
}


/* ==============================
   Header
   ============================== */

header {
    height: 68px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

nav {
    display: flex;
    gap: 32px;
}

nav a {
    position: relative;

    color: #333;
    font-size: 14px;
}

nav a:hover {
    color: #171717;
}


/* ==============================
   Hero
   ============================== */

.hero {
    min-height: 120px;

    display: grid;
    grid-template-columns: 1fr;
}

.hero-text {
    padding: 24px 0;
}

.eyebrow {
    margin: 0 0 6px;

    color: #171717;

    font-family: monospace;
    font-size: 20px;
    font-weight: 600;
}

.hero h1 {
    margin: 0;

    font-size: clamp(28px, 4vw, 38px);
    line-height: 1.1;
    letter-spacing: -1.5px;

    font-weight: 700;
}

.tagline {
    margin: 16px 0 0;

    color: #333;

    font-size: 16px;
    max-width: 500px;
}


/* ==============================
   Social Icons
   ============================== */

.social-icons {
    display: flex;
    align-items: center;
    gap: 16px;

    margin-top: 20px;
}

.social-icons a {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 18px;
    height: 18px;

    color: #333;

    transition: color 0.15s ease;
}

.social-icons a:hover {
    color: #171717;
}

.social-icons svg {
    width: 100%;
    height: 100%;

    fill: currentColor;
}

.social-icons svg rect,
.social-icons svg circle {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}


/* ==============================
   General Sections
   ============================== */

.split-section {
    display: grid;
    grid-template-columns: 1fr;
}

.section-label {
    padding: 12px 0 4px;

    color: #171717;

    font-family: monospace;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.section-content {
    padding: 0 0 14px;
}

.section-content>p {
    max-width: 600px;

    margin: 0;

    font-size: 16px;
}


/* ==============================
   Projects
   ============================== */

.projects {
    padding-top: 0;
    padding-bottom: 0;
}

.project {
    padding: 8px 0;
}

.project p {
    margin: 0;

    color: #444;

    font-size: 15px;
}

.project a {
    color: #171717;
}

.project a:hover {
    text-decoration: underline;
}


/* ==============================
   Lower Section
   ============================== */

.back-link {
    display: block;

    width: min(1050px, calc(100% - 48px));
    margin: 0 auto;

    padding: 20px 0 0;

    font-size: 14px;
    text-decoration: none;
}

.email {
    display: inline-block;

    margin-bottom: 24px;
}

/* ==============================
   Footer
   ============================== */

footer {
    padding: 12px 0 18px;

    color: #888;

    font-size: 12px;

    text-align: center;
}


/* ==============================
   Mobile
   ============================== */

@media (max-width: 700px) {

    header {
        height: auto;

        padding: 22px 0;

        align-items: flex-start;
    }

    nav {
        gap: 14px;

        flex-wrap: wrap;
        justify-content: flex-end;
    }

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

    .hero-text {
        padding: 20px 0 10px;
    }

    .hero h1 {
        font-size: 28px;
        letter-spacing: -1px;
    }

    .split-section {
        grid-template-columns: 1fr;
    }

    .section-label {
        padding-bottom: 2px;
    }

    .section-content {
        padding: 2px 0 10px;
    }

    .project {
        padding: 6px 0;
    }

    header,
    main,
    footer,
    .back-link {
        width: min(100% - 32px, 1050px);
    }

}



/* ==============================
   Blog
   ============================== */

.blog-header {
    padding: 90px 0 70px;
    border-bottom: 1px solid #deddd8;
}

.blog-header h1 {
    margin: 0;

    font-size: clamp(42px, 6vw, 64px);
    line-height: 1;
    letter-spacing: -3px;
}

.blog-header > p:last-child {
    max-width: 550px;

    margin-top: 24px;

    color: #555;

    font-size: 18px;
}

.posts {
    border-bottom: 1px solid #deddd8;
}

.post {
    padding: 35px 0;

    border-bottom: 1px solid #e2e1dc;
}

.post:last-child {
    border-bottom: none;
}

.post-date {
    margin: 0 0 8px;

    color: #16865f;

    font-family: monospace;
    font-size: 13px;
}

.post h2 {
    margin: 0 0 8px;

    font-size: 24px;
}

.post p:not(.post-date) {
    max-width: 600px;

    margin: 0 0 14px;

    color: #555;
}

.post a {
    color: #276e58;

    font-size: 14px;

    text-decoration: none;
}

.post a:hover {
    text-decoration: underline;
}


/* ==============================
   Article
   ============================== */

.article {
    padding: 20px 0 60px;
}

.article-header {
    margin-bottom: 40px;
}

.article-header h1 {
    margin: 0 0 12px;

    font-size: clamp(24px, 3vw, 30px);
    line-height: 1.2;
    letter-spacing: -1px;
}

.article-header p {
    max-width: 600px;

    margin: 0;

    color: #555;

    font-size: 16px;
}

.article-content {
    max-width: 600px;
}

.article-content p {
    margin: 0 0 20px;

    font-size: 16px;
    line-height: 1.7;
}