.content-route{--blog-measure:42rem;--blog-measure-wide:52rem}.blog-shell{background:radial-gradient(ellipse 120% 80% at 50% -20%, color-mix(in srgb, var(--pulse) 6%, transparent), transparent 55%), var(--ground);flex-direction:column;min-height:100vh;display:flex;position:relative}.blog-shell-grid{pointer-events:none;opacity:.35;background-image:linear-gradient(color-mix(in srgb, var(--ink) 4%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 4%, transparent) 1px, transparent 1px);background-size:100% 24px,24px 100%;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 0% 40%,#0000 100%);mask-image:linear-gradient(#000 0% 40%,#0000 100%)}.blog-index{padding:clamp(64px,10vh,100px) 0 clamp(48px,8vh,80px)}.blog-hero{border-bottom:1px solid color-mix(in srgb, var(--ink) 10%, transparent);gap:clamp(28px,4vw,48px);padding-bottom:clamp(40px,6vh,72px);display:grid}@media (min-width:860px){.blog-hero{grid-template-columns:1.05fr .95fr;align-items:end}}.blog-eyebrow{color:var(--ink-dim);letter-spacing:.06em;text-transform:lowercase;margin-bottom:1.25rem;display:block}.blog-hero-title{letter-spacing:-.035em;line-height:.96}.blog-hero-title span{display:block}.blog-hero-lead{font-size:var(--text-lg);color:color-mix(in srgb, var(--ink) 88%, transparent);max-width:36ch;margin:0;line-height:1.55}.blog-hero-stats{border-top:1px solid color-mix(in srgb, var(--ink) 8%, transparent);gap:1rem;margin-top:1.75rem;padding-top:1.25rem;display:grid}.blog-hero-stats dt{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.2rem}.blog-hero-stats dd{color:var(--ink);margin:0}.blog-empty{border-left:2px solid color-mix(in srgb, var(--pulse) 55%, transparent);max-width:36rem;margin-top:clamp(48px,8vh,88px);padding:clamp(32px,5vw,48px) 0 clamp(32px,5vw,48px) clamp(24px,3vw,32px)}.blog-empty-rule{background:color-mix(in srgb, var(--pulse) 70%, transparent);width:3rem;height:1px;margin-bottom:1.5rem}.blog-empty-label{text-transform:uppercase;letter-spacing:.1em;color:var(--pulse);margin:0 0 1rem}.blog-empty-title{letter-spacing:-.02em;margin:0 0 .75rem}.blog-empty-copy{font-size:var(--text-lg);color:color-mix(in srgb, var(--ink) 82%, transparent);max-width:32ch;margin:0 0 1.25rem;line-height:1.55}.blog-empty-hint{margin:0;line-height:1.6}.blog-index-list{flex-direction:column;margin:clamp(40px,6vh,64px) 0 0;padding:0;list-style:none;display:flex}.blog-card{border-bottom:1px solid color-mix(in srgb, var(--ink) 9%, transparent);color:inherit;grid-template-columns:auto 1fr auto;align-items:start;gap:clamp(16px,2.5vw,28px);padding:clamp(28px,4vh,40px) 0;text-decoration:none;transition:border-color .25s;display:grid}.blog-card:hover{border-color:color-mix(in srgb, var(--pulse) 35%, transparent)}.blog-card:hover .blog-card-title{color:var(--pulse)}.blog-card:hover .blog-card-arrow{color:var(--pulse);transform:translate(4px)}.blog-card-idx{color:color-mix(in srgb, var(--ink) 38%, transparent);font-variant-numeric:tabular-nums;padding-top:.35em}.blog-card-title{font-family:var(--font-display), system-ui, sans-serif;letter-spacing:-.02em;margin:0 0 .45em;font-size:clamp(1.25rem,2.8vw,1.65rem);font-weight:700;line-height:1.15;transition:color .2s}.blog-card-desc{color:color-mix(in srgb, var(--ink) 68%, transparent);max-width:48ch;margin:0 0 .85em;font-size:1rem;line-height:1.55}.blog-card-meta{font-family:var(--font-mono), ui-monospace, monospace;font-size:var(--mono-xs);letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--ink) 48%, transparent);flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.blog-tag{color:color-mix(in srgb, var(--pulse) 85%, var(--ink))}.blog-card-arrow{color:color-mix(in srgb, var(--ink) 35%, transparent);transition:transform .25s var(--ease-out-expo), color .2s ease;padding-top:.2em;font-size:1.25rem}.blog-post{padding:clamp(64px,10vh,100px) 0}.blog-post-layout{gap:clamp(32px,5vw,48px);display:grid}@media (min-width:900px){.blog-post-layout{grid-template-columns:9rem minmax(0,1fr);gap:clamp(40px,6vw,80px)}}.blog-post-rail{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;flex-direction:column;gap:1.25rem;display:flex}@media (min-width:900px){.blog-post-rail{align-self:start;position:sticky;top:5.5rem}}.blog-rail-back{text-transform:lowercase;letter-spacing:.02em}.blog-rail-tags{color:color-mix(in srgb, var(--pulse) 75%, var(--ink-dim));flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.blog-article{max-width:var(--blog-measure-wide)}.blog-post-head{border-bottom:1px solid color-mix(in srgb, var(--ink) 10%, transparent);margin-bottom:clamp(36px,5vh,56px);padding-bottom:clamp(28px,4vh,40px)}.blog-post-title{letter-spacing:-.03em;margin:0 0 .5em;line-height:1.08}.blog-post-dek{font-size:var(--text-lg);color:color-mix(in srgb, var(--ink) 78%, transparent);max-width:38ch;margin:0;line-height:1.55}.blog-prose{font-family:var(--font-text), system-ui, sans-serif;color:color-mix(in srgb, var(--ink) 92%, transparent);max-width:var(--blog-measure);font-size:clamp(1.0625rem,1.15vw,1.125rem);line-height:1.72}.blog-prose>p:first-of-type{color:var(--ink);font-size:1.12em;line-height:1.65}.blog-prose p{hanging-punctuation:first last;margin:0 0 1.35em}.blog-prose-h2,.blog-prose h2{font-family:var(--font-display), system-ui, sans-serif;letter-spacing:-.025em;color:var(--ink);margin:2.5em 0 .75em;font-size:clamp(1.35rem,2.5vw,1.75rem);font-weight:700;line-height:1.2}.blog-prose-h3,.blog-prose h3{font-family:var(--font-display), system-ui, sans-serif;color:var(--ink);margin:2em 0 .5em;font-size:1.15rem;font-weight:700}.blog-prose a{color:var(--pulse);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.blog-prose a:hover{color:color-mix(in srgb, var(--pulse) 80%, var(--ink))}.blog-prose strong{color:var(--ink);font-weight:600}.blog-prose ul,.blog-prose ol{margin:0 0 1.35em;padding-left:1.35em}.blog-prose li{margin-bottom:.45em}.blog-prose-quote,.blog-prose blockquote{border-left:2px solid color-mix(in srgb, var(--pulse) 50%, transparent);color:color-mix(in srgb, var(--ink) 85%, transparent);margin:2em 0;padding:.25em 0 .25em 1.35em;font-size:1.08em;font-style:italic;line-height:1.6}.blog-prose-hr,.blog-prose hr{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ink) 18%, transparent) 20%, color-mix(in srgb, var(--ink) 18%, transparent) 80%, transparent);border:none;height:1px;margin:2.5em 0}.blog-prose-code-inline,.blog-prose :not(pre)>code{font-family:var(--font-mono), ui-monospace, monospace;background:color-mix(in srgb, var(--ink) 6%, transparent);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:3px;padding:.15em .4em;font-size:.88em}.blog-prose-pre,.blog-prose pre{font-family:var(--font-mono), ui-monospace, monospace;background:color-mix(in srgb, var(--ground-raise) 90%, black);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:4px;margin:1.75em 0;padding:1.15em 1.25em;font-size:.84rem;line-height:1.55;overflow-x:auto}.blog-prose-pre code{font-size:inherit;background:0 0;border:none;padding:0}.blog-article-foot{margin-top:clamp(48px,8vh,72px)}.blog-article-rule{background:color-mix(in srgb, var(--ink) 10%, transparent);height:1px;margin-bottom:1.5rem}.blog-pagination{border-top:1px solid color-mix(in srgb, var(--ink) 8%, transparent);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-top:clamp(40px,6vh,64px);padding-top:1.5rem;display:grid}.blog-pag-link{font-family:var(--font-mono), ui-monospace, monospace;font-size:var(--mono-sm);color:var(--pulse);text-decoration:none}.blog-pag-link:hover{text-decoration:underline}.blog-pag-status{color:var(--ink-dim);text-align:center}.blog-foot{border-top:1px solid color-mix(in srgb, var(--ink) 8%, transparent);margin-top:auto;padding:clamp(40px,6vh,64px) 0 clamp(32px,5vh,48px)}.blog-foot-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 2rem;display:flex}.blog-foot-links{flex-wrap:wrap;gap:1rem 1.5rem;display:flex}.blog-foot-note{margin:0}body:has(.content-route) #rail-layer{display:none!important}body:has(.content-route) #trace-canvas-layer{display:none!important}body:has(.content-route) .interaction-layer{display:none!important}body:has(.content-route) .hero-clear #trace-canvas-layer{display:none!important}
