/* ── Page layout ─────────────────────────────────────────────── */

body {
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
}

#article-parent {
    width: 720px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}


/* ── Cover image ──────────────────────────────────────────────── */

#cover-img {
    aspect-ratio: 3/1;
    width: 100%;
    object-fit: cover;
    height: auto;
    margin-top: 48px;
}


/* ── Post header (title + excerpt) ───────────────────────────── */

#post-header {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}


/* ── Byline row (author + date on left, read time on right) ──── */

#post-byline {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#post-byline-left {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.post-author {
    color: var(--mint-100);
}

.post-readtime {
    font-family: 'Jetbrains Mono';
}


/* ── Tags row ─────────────────────────────────────────────────── */

.blog-card-tags {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.tag-chip {
    background-color: color-mix(in srgb, var(--mint-100) 50%, rgba(0, 0, 0, 0.5) 50%);
    width: fit-content;
    padding: 0.3rem 0.5rem;
}

.tag-chip p {
    color: var(--mint-100);
    text-transform: uppercase;
    font-family: 'Jetbrains Mono';
    font-size: 1rem;
}


/* ── Markdown content ─────────────────────────────────────────── */

.markdown-content {
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--silver-300);
}

.markdown-content h1 {
    font-family: 'Instrument Serif', serif;
    font-size: 2.5em;
    padding-bottom: 0.1em;
}

.markdown-content h2,
.markdown-content h3,
.markdown-content h4,
.markdown-content h5,
.markdown-content h6 {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    line-height: 1;
    margin-top: 2rem;
    margin-bottom: 1rem;
    color: var(--mint-100);           /* was: --md-sys-color-on-primary */
}

.markdown-content h2 {
    font-size: 2em;
    padding-bottom: 0.3em;
    border-bottom: 1px solid var(--slate-500);   /* was: --md-sys-color-outline-variant */
}

.markdown-content h3 { font-size: 1.5em; }
.markdown-content h4 { font-size: 1.25em; }
.markdown-content h5 { font-size: 1em; }

.markdown-content h6 {
    font-size: 0.875em;
    color: var(--silver-500);         /* was: --md-sys-color-on-surface-variant */
}

.markdown-content p {
    font-family: 'Inter', sans-serif;
    margin-bottom: 1.5rem;
    margin-top: 1rem;
    color: var(--silver-100);
}

.markdown-content a {
    color: var(--mint-100);
    text-decoration: none;
    transition: color 0.2s ease;
    border-bottom: 1px solid var(--mint-300);
}

.markdown-content a:hover {
    color: var(--mint-300);           /* was: --md-sys-color-tertiary-fixed */
    border-bottom-color: var(--mint-300);  /* was: --md-sys-color-tertiary-fixed */
}

.markdown-content ul,
.markdown-content ol {
    font-family: 'Merriweather', monospace;
    margin-bottom: 1.5rem;
    padding-left: 2em;
    color: var(--silver-300);         /* was: --md-sys-color-primary-fixed */
}

.markdown-content li {
    margin-bottom: 0.5rem;
}

.markdown-content blockquote {
    margin: 1.5rem 0;
    padding: 1rem 1.5rem;
    color: var(--mint-100);           /* was: --md-sys-color-primary-fixed */
    border-left: 4px solid var(--mint-500);  /* was: --md-sys-color-primary-fixed */
    background-color: var(--mint-900); /* was: --md-sys-color-primary-container */
    border-radius: 0 1rem 0 0;
    font-family: 'Jetbrains Mono', monospace;
    font-style: italic;
}

.markdown-content code {
    font-family: 'Jetbrains Mono', Courier, monospace;
    font-size: 0.9em;
    padding: 0.2em 0.4em;
    background-color: var(--slate-700); /* was: --md-sys-color-surface-container-high */
    border-radius: 0 1rem 0 0;
    color: var(--mint-300);           /* was: --md-sys-color-tertiary */
}

.markdown-content pre {
    position: relative;
    font-family: 'Jetbrains Mono', Courier, monospace;
    font-size: 0.875em;
    line-height: 1.6;
    background-color: var(--slate-900); /* was: --md-sys-color-inverse-surface */
    border-radius: 0 1rem 0 0;
    padding: 1.5rem;
    overflow-x: auto;
    margin: 1.5rem 0;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.markdown-content pre code {
    display: block;
    padding: 0;
    background-color: transparent;
    color: var(--silver-100);         /* was: --md-sys-color-inverse-on-surface */
    overflow-x: auto;
}

.markdown-content table {
    border-collapse: collapse;
    width: 100%;
    margin: 1.5rem 0;
    display: block;
    overflow: hidden;
    border-radius: 0 1rem 0 0;
    border: 1px solid var(--slate-500);  /* was: --md-sys-color-outline-variant */
    background-color: var(--slate-700); /* was: --md-sys-color-secondary-fixed */
}

.markdown-content table th,
.markdown-content table td {
    padding: 0.75rem 1rem;
    border: 1px solid var(--slate-500);  /* was: --md-sys-color-outline-variant */
    font-family: 'Jetbrains Mono', monospace;
}

.markdown-content table th {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    background-color: var(--mint-900); /* was: --md-sys-color-secondary-container */
    color: var(--mint-100);           /* was: --md-sys-color-on-secondary-container */
    text-align: left;
}

.markdown-content table tr:nth-child(2n) {
    background-color: var(--slate-900); /* was: --md-sys-color-surface */
}

.markdown-content hr {
    height: 2px;
    padding: 0;
    margin: 2rem 0;
    background-color: var(--silver-100); /* was: --md-sys-color-outline-variant */
    border: 0;
    border-radius: 0.125rem;
}

.markdown-content img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 2rem auto;
    border-radius: 0.75rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.markdown-content strong {
    font-weight: 700;
    color: var(--mint-100);           /* was: --md-sys-color-on-primary */
}

.markdown-content em {
    font-style: italic;
}


/* ── Responsive ───────────────────────────────────────────────── */

@media (max-width: 768px) {
    #article-parent {
        width: 100%;
        padding: 0 1.25rem;
        box-sizing: border-box;
    }

    .markdown-content {
        font-size: 1rem;
    }

    .markdown-content h1 { font-size: 2em; }
    .markdown-content h2 { font-size: 1.5em; }

    .markdown-content pre {
        padding: 1rem;
    }
}