/* Engineering-blog source posts (user order 2026-10-28): posts written from a
   company engineering blog. Scoped to <article class="tb-eng">; loads after
   news-post.css and overrides its serif body. Inter body, 68ch column,
   original-post card, key-numbers strip, contents list, numbered layers. */

.tb-eng {
    --eng-ink: #111827;
    --eng-body: #1f2937;
    --eng-muted: #6b7280;
    --eng-line: #e5e7eb;
    --eng-soft: #f8fafc;
    --eng-accent: #4f46e5;
    --eng-accent-soft: #eef2ff;
    font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.tb-eng h1 {
    font-family: "Inter", system-ui, sans-serif;
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.12;
    color: var(--eng-ink);
}

.tb-eng .tb-deck {
    font-family: "Inter", system-ui, sans-serif;
    font-size: 1.18rem;
    line-height: 1.6;
    color: #4b5563;
    max-width: 68ch;
}

.tb-eng .prose { max-width: 68ch; }

.tb-eng .prose p,
.tb-eng .prose li {
    font-family: "Inter", system-ui, sans-serif;
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--eng-body);
}

.tb-eng .prose p { margin: 0 0 1.25rem; }

.tb-eng .prose h2 {
    font-family: "Inter", system-ui, sans-serif;
    font-size: 1.6rem;
    font-weight: 750;
    letter-spacing: -0.015em;
    line-height: 1.25;
    color: var(--eng-ink);
    margin: 3rem 0 1rem;
    padding-top: 2rem;
    border-top: 1px solid var(--eng-line);
    scroll-margin-top: 6rem;
}

.tb-eng .prose h2 .eng-num {
    scroll-margin-top: 6rem;
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--eng-accent);
    margin-bottom: 0.4rem;
}

.tb-eng .prose h3 {
    font-family: "Inter", system-ui, sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--eng-ink);
    margin: 1.75rem 0 0.5rem;
}

.tb-eng .prose a { color: var(--eng-accent); text-decoration: underline; text-underline-offset: 3px; }

/* original engineering post card */
.eng-origin {
    display: block;
    margin: 0 0 1.75rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid var(--eng-line);
    border-left: 4px solid var(--eng-accent);
    border-radius: 0.9rem;
    background: #fff;
    max-width: 68ch;
}
.eng-origin__label {
    font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--eng-accent); margin: 0 0 0.35rem;
}
.eng-origin__title { font-size: 1.05rem; font-weight: 700; color: var(--eng-ink); margin: 0 0 0.25rem; line-height: 1.35; }
.eng-origin__meta { font-size: 0.85rem; color: var(--eng-muted); margin: 0 0 0.5rem; }
.eng-origin__url {
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 0.82rem; color: var(--eng-accent); word-break: break-all;
    text-decoration: none;
}
.eng-origin__url:hover { text-decoration: underline; }

/* key numbers strip */
.eng-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0 0 2rem;
    max-width: 68ch;
}
.eng-stat {
    background: var(--eng-soft);
    border: 1px solid var(--eng-line);
    border-radius: 0.8rem;
    padding: 0.85rem 0.9rem;
}
.eng-stat__num { display: block; font-size: 1.3rem; font-weight: 800; color: var(--eng-ink); letter-spacing: -0.02em; line-height: 1.15; }
.eng-stat__label { display: block; font-size: 0.78rem; color: var(--eng-muted); line-height: 1.4; margin-top: 0.3rem; }

/* contents */
.eng-toc {
    margin: 0 0 2rem;
    padding: 1rem 1.25rem;
    background: var(--eng-soft);
    border-radius: 0.8rem;
    max-width: 68ch;
}
.eng-toc__label { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--eng-muted); margin: 0 0 0.5rem; }
.eng-toc ol { margin: 0; padding-left: 1.25rem; columns: 2; column-gap: 2rem; }
.eng-toc li { font-size: 0.95rem; line-height: 1.55; margin: 0 0 0.3rem; break-inside: avoid; }
.eng-toc a { color: var(--eng-body); text-decoration: none; }
.eng-toc a:hover { color: var(--eng-accent); text-decoration: underline; }

/* numbered stages */
.tb-eng .prose ol.eng-layers { list-style: none; padding: 0; margin: 1.25rem 0 1.5rem; counter-reset: layer; }
.tb-eng .prose ol.eng-layers > li {
    counter-increment: layer;
    position: relative;
    padding: 0.9rem 1rem 0.9rem 3.4rem;
    margin: 0 0 0.6rem;
    border: 1px solid var(--eng-line);
    border-radius: 0.8rem;
    background: #fff;
    font-size: 1.02rem;
    line-height: 1.6;
}
.tb-eng .prose ol.eng-layers > li::before {
    content: counter(layer);
    position: absolute; left: 1rem; top: 0.9rem;
    width: 1.7rem; height: 1.7rem; border-radius: 999px;
    background: var(--eng-accent-soft); color: var(--eng-accent);
    font-weight: 800; font-size: 0.85rem;
    display: flex; align-items: center; justify-content: center;
}
.tb-eng .prose ol.eng-layers strong { display: block; color: var(--eng-ink); margin-bottom: 0.15rem; }

/* checklists */
.tb-eng .prose ul.eng-checks { list-style: none; padding: 0; margin: 0.5rem 0 1.5rem; }
.tb-eng .prose ul.eng-checks li { position: relative; padding-left: 1.75rem; margin: 0 0 0.55rem; font-size: 1.05rem; }
.tb-eng .prose ul.eng-checks li::before { content: "✓"; position: absolute; left: 0.2rem; top: 0; color: #059669; font-weight: 800; }

/* table */
.tb-eng .eng-table-wrap { overflow-x: auto; margin: 1.25rem 0 1.75rem; border: 1px solid var(--eng-line); border-radius: 0.8rem; }
.tb-eng table.eng-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; line-height: 1.5; }
.tb-eng table.eng-table th { text-align: left; background: var(--eng-soft); color: var(--eng-ink); font-weight: 700; padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--eng-line); }
.tb-eng table.eng-table td { padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--eng-line); vertical-align: top; color: var(--eng-body); }
.tb-eng table.eng-table tr:last-child td { border-bottom: 0; }

/* pull quote */
.tb-eng .prose blockquote.eng-quote {
    margin: 1.5rem 0; padding: 0.25rem 0 0.25rem 1.1rem;
    border-left: 3px solid var(--eng-accent);
    font-style: normal;
}
.tb-eng .prose blockquote.eng-quote p { font-size: 1.15rem; color: var(--eng-ink); margin: 0 0 0.4rem; }
.tb-eng .prose blockquote.eng-quote cite { font-size: 0.85rem; color: var(--eng-muted); font-style: normal; }

/* FAQ + sources inherit the sans body */
.tb-eng .tb-faq h2, .tb-eng .tb-sources h2 { font-family: "Inter", system-ui, sans-serif; letter-spacing: -0.015em; }
.tb-eng .tb-faq h3 { font-family: "Inter", system-ui, sans-serif; font-size: 1.1rem; }
.tb-eng .tb-faq p, .tb-eng .tb-sources li { font-family: "Inter", system-ui, sans-serif; font-size: 1.02rem; line-height: 1.65; }

@media (max-width: 640px) {
    .tb-eng .prose p, .tb-eng .prose li { font-size: 1.0625rem; line-height: 1.7; }
    .tb-eng .prose h2 { font-size: 1.35rem; margin-top: 2.25rem; padding-top: 1.5rem; }
    .eng-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .eng-toc ol { columns: 1; }
    .tb-eng .prose ol.eng-layers > li { padding-left: 3rem; }
}
