/* Shared blog styles for traceopt.ai/blog.
   Single source of truth for every blog post + the listing page, so the
   chrome stays consistent and a fix lands once instead of per-post.
   Pair with the site-wide /styles.css (compiled Tailwind). Palette follows
   the TraceOpt design system (DESIGN.md): orange #FF8C00 / #D2691E on warm
   white #fffdfa, ink #111827 for the footer/CTA block only.
   New post? Link this file, do NOT re-inline these rules. */

/* ---- shared shells + primitives ---- */
.blog-shell{width:min(1120px,calc(100% - 48px));margin-left:auto;margin-right:auto}
.article-shell{width:min(860px,calc(100% - 48px));margin-left:auto;margin-right:auto}
.mono{font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.eyebrow{display:inline-flex;border:1px solid rgba(255,140,0,.2);background:rgba(255,255,255,.7);padding:.375rem .75rem;border-radius:9999px;color:#D2691E;font-size:.875rem;font-weight:500;font-style:italic;box-shadow:0 1px 2px rgba(31,41,55,.05);backdrop-filter:blur(24px);font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.hero-title-compact{font-size:2.2rem;line-height:1.08}
@media (min-width:640px){.hero-title-compact{font-size:2.75rem;line-height:1.06}}
@media (min-width:1024px){.hero-title-compact{font-size:3.25rem;line-height:1.05}}
.text-\[\#1f2937\]\/70{color:rgba(31,41,55,.7)}

/* ---- data tables ---- */
.table-wrap{overflow-x:auto;border:1px solid rgba(31,41,55,.08);border-radius:1rem;background:rgba(255,255,255,.78);box-shadow:0 1px 2px rgba(31,41,55,.05)}
.data-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.875rem;line-height:1.75rem;color:#1f2937}
.data-table th{border-bottom:1px solid rgba(31,41,55,.09);padding:.9rem 1rem;text-align:left;font-weight:700;color:#D2691E;font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}
.data-table td{border-bottom:1px solid rgba(31,41,55,.07);padding:.9rem 1rem}
.data-table tr:last-child td{border-bottom:0}
.data-table th:first-child,.data-table td:first-child{position:sticky;left:0;background:#fdfaf4;border-right:1px solid rgba(31,41,55,.06);z-index:1}

/* ---- article body ---- */
.article-hero{padding-top:5rem;padding-bottom:1.5rem}
@media (min-width:640px){.article-hero{padding-top:6rem;padding-bottom:2rem}}
@media (min-width:1024px){.article-hero{padding-top:7rem;padding-bottom:2.25rem}}
.article-card{border:1px solid rgba(31,41,55,.07);background:rgba(255,255,255,.72);border-radius:1rem;padding:1.5rem;box-shadow:0 1px 2px rgba(31,41,55,.05);backdrop-filter:blur(24px)}
.metric-grid{display:grid;gap:.75rem}
@media (min-width:768px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.metric-card{border:1px solid rgba(255,140,0,.18);background:rgba(255,255,255,.78);border-radius:.875rem;padding:1rem}
.metric-value{font-size:1.65rem;line-height:2rem;font-weight:700;color:#1f2937}
.metric-label{font-size:.75rem;line-height:1.25rem;color:rgba(31,41,55,.72)}
.config-grid{display:grid;gap:.9rem 1.6rem}
@media (min-width:640px){.config-grid{grid-template-columns:1fr 1fr}}
.config-k{display:block;font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#D2691E;font-weight:700;margin-bottom:.2rem}
.config-v{display:block;font-size:.95rem;line-height:1.5rem;color:#1f2937}
.article-body{padding-bottom:5rem}
.article-body h2{margin-top:3.5rem;font-size:1.75rem;line-height:2.15rem;font-weight:650;letter-spacing:-.025em;color:#1f2937}
.article-body p{margin-top:1.25rem;font-size:1rem;line-height:1.95rem;color:#1f2937}
.article-body ul{margin-top:1.25rem;display:grid;gap:.65rem}
.article-body li{position:relative;padding-left:1.35rem;font-size:1rem;line-height:1.85rem;color:#1f2937}
.article-body li:before{content:"";position:absolute;left:0;top:.75rem;width:.45rem;height:.45rem;border-radius:999px;background:#FF8C00}
.article-body code{border:1px solid rgba(255,140,0,.22);background:rgba(255,140,0,.08);border-radius:.35rem;padding:.1rem .32rem;color:#1f2937;font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em}
.article-body a{color:#D2691E;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.code-caption{margin-top:1.75rem;margin-bottom:-.4rem;font-size:.82rem;color:rgba(31,41,55,.66);font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.code-block{overflow-x:auto;border:1px solid rgba(31,41,55,.08);background:#111827;border-radius:1rem;padding:1.1rem;color:#e5e7eb;font-size:.78rem;line-height:1.75rem;font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.article-body .code-block code{border:0;background:transparent;color:#f9fafb;padding:0}
.callout{border:1px solid rgba(255,140,0,.28);background:rgba(255,140,0,.08);border-radius:1rem;padding:1.25rem;box-shadow:0 1px 2px rgba(31,41,55,.05)}
.figure{margin-top:2.25rem}
.figure img{width:100%;height:auto;border:1px solid rgba(31,41,55,.08);border-radius:1rem;background:rgba(255,255,255,.78);box-shadow:0 1px 2px rgba(31,41,55,.05)}
.figure figcaption{margin-top:.75rem;font-size:.82rem;color:rgba(31,41,55,.66);text-align:center}

/* ---- CTAs (buttons) ----
   The CTA links live inside .article-body, whose `a` rule (color + underline)
   would otherwise override the button styling. The `.article-body a.cta-*`
   rules below restore the button ink and remove the underline. Keep them. */
.cta-primary,.cta-secondary,.cta-dark{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;transition:transform .3s,box-shadow .3s,background-color .3s;font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.cta-primary{border:1px solid rgba(210,105,30,.3);background:linear-gradient(to bottom,#FFAF38,#FF8C00);color:#1a1205;box-shadow:0 10px 15px -3px rgba(255,140,0,.2)}
.cta-secondary{border:1px solid rgba(255,140,0,.25);background:rgba(255,255,255,.75);color:#D2691E;box-shadow:0 1px 2px rgba(31,41,55,.05);backdrop-filter:blur(24px)}
.cta-dark{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.1);color:white}
.cta-primary:hover,.cta-secondary:hover,.cta-dark:hover{transform:translateY(-.125rem)}
.cta-secondary:hover{background:white;box-shadow:0 10px 15px -3px rgba(31,41,55,.1)}
.cta-dark:hover{background:rgba(255,255,255,.15)}
.article-body a.cta-primary,.article-body a.cta-secondary,.article-body a.cta-dark{text-decoration:none}
.article-body a.cta-primary{color:#1a1205}
.article-body a.cta-secondary{color:#D2691E}
.article-body a.cta-dark{color:#fff}
.article-cta-block{margin-top:3.5rem}
.article-cta-block h2{color:white}
.article-cta-block p{color:rgba(255,255,255,.72)}

/* ---- blog listing (index) ---- */
.blog-card{display:block;border:1px solid rgba(31,41,55,.07);background:rgba(255,255,255,.68);border-radius:1rem;padding:1.75rem;box-shadow:0 1px 2px rgba(31,41,55,.05);backdrop-filter:blur(24px);transition:transform .3s,box-shadow .3s,background-color .3s}
.blog-card:hover{transform:translateY(-.125rem);background:white;box-shadow:0 20px 25px -5px rgba(31,41,55,.1),0 8px 10px -6px rgba(31,41,55,.08)}
.post-list-section{padding-bottom:5rem}
.post-card-grid{display:grid;gap:2rem}
.post-card-grid>*{min-width:0}
.post-metrics{display:grid;gap:.75rem}
@media (min-width:640px){.post-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1024px){.post-card-grid{grid-template-columns:1.25fr .75fr;align-items:center}.post-list-section{padding-bottom:6rem}.post-metrics{grid-template-columns:1fr}}
.tag{display:inline-flex;border:1px solid rgba(210,105,30,.25);background:rgba(255,140,0,.1);border-radius:9999px;padding:.25rem .625rem;color:#D2691E;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.metric{border:1px solid rgba(255,140,0,.18);background:rgba(255,255,255,.74);border-radius:.875rem;padding:1rem}
