/* =========================
   BASE
========================= */

:root {
    --bg: #f7f5ef;
    --paper: #fbfaf6;
    --text: #1e1e1b;
    --muted: #6f6a5f;
    --rule: #ded8ca;
    --link: #222;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 19px;
    height: 100vh;
    overflow: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

/* =========================
   GRID LAYOUT
========================= */

.layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    max-width: 1100px;
    height: 100vh;
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
    gap: 40px;
}

/* =========================
   SIDEBAR
========================= */

.sidebar {
    position: sticky;
    top: 0;
    align-self: start;
    padding-top: 60px;
}

.site-title {
    font-size: 27px;
    font-weight: normal;
    margin: 0 0 32px 0;
    letter-spacing: 0.2px;
}

.menu p {
    margin: 0 0 12px 0;
}

.menu a {
    text-decoration: none;
    color: var(--muted);
    font-size: 16px;
    letter-spacing: 0.25px;
}

.menu a:hover {
    color: var(--text);
}

/* =========================
   CONTENT AREA
========================= */

.content-pane {
    height: 100%;
    overflow-y: auto;
    min-height: 0;
    -ms-overflow-style: none;  /* IE/Edge legacy */
    scrollbar-width: none;     /* Firefox */
}

.content-pane::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.content {
    max-width: 600px;   /* tighter reading column */
    line-height: 1.8;
    letter-spacing: 0.1px;
    margin-top: 52px;
    padding: 0 0 64px 0;
}

/* Titles */
.content h1 {
    font-size: 38px;
    font-weight: normal;
    line-height: 1.22;
    margin: 0 0 14px 0;
    letter-spacing: -0.25px;
}

/* Paragraph rhythm */
.content p {
    margin: 0 0 14px 0;
}

/* Links */
.content a {
    color: var(--link);
    text-decoration: none;
    text-decoration-color: #b8b1a4;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

.content a:hover {
    text-decoration: underline;
    text-decoration-color: #6f6a5f;
}

/* Blog list date style */
.blog-date {
    color: var(--muted);
    margin-right: 8px;
    font-size: 15px;
    letter-spacing: 0.2px;
}

/* preview section */
.blog-preview {
    margin: 0;
    padding: 0 0 22px 0;
    border-bottom: 1px solid var(--rule);
}

.blog-preview + .blog-preview {
    margin-top: 18px;
}

.blog-preview h2 {
    font-size: 32px;
    font-weight: normal;
    line-height: 1.28;
    margin: 0 0 6px 0;
    letter-spacing: -0.2px;
}

.blog-preview p {
    color: #3a372f;
}

/* single post page */
.post {
    max-width: 600px;
    padding: 44px 0 72px 0;
}

.post-title {
    /* font-family: "Avenir Next", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", sans-serif; */
    font-size: 58px;
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.6px;
    margin: 0 0 12px 0;
}

.post-meta {
    color: var(--muted);
    font-size: 15px;
    margin: 0 0 28px 0;
    letter-spacing: 0.25px;
}

.post .post-body {
    font-size: 20px;
    line-height: 1.48;
    /* color: #111a24; */
    color: #37352f;
    letter-spacing: 0;
}

.post .post-body p {
    margin: 0 0 18px 0;
}

.post .post-body h2,
.post .post-body h3 {
    font-weight: normal;
    line-height: 1.28;
    margin: 30px 0 10px 0;
    letter-spacing: -0.15px;
}

.post .post-body blockquote {
    margin: 20px 0;
    padding: 4px 0 4px 18px;
    border-left: 2px solid #c6bfae;
    color: #37352f;
    font-style: italic;
}

@media (max-width: 900px) {
    body {
        height: auto;
        overflow: auto;
    }

    .layout {
        grid-template-columns: 1fr;
        height: auto;
        padding: 24px 16px;
        gap: 24px;
    }

    .sidebar {
        position: static;
    }

    .content-pane {
        height: auto;
        overflow: visible;
    }

    .content {
        margin-top: 0;
        padding-bottom: 36px;
    }

    .blog-preview h2 {
        font-size: 28px;
    }

    .post-title {
        font-size: 42px;
    }

    .post .post-body {
        font-size: 19px;
        line-height: 1.44;
    }
}
