.page-hero{padding-block:clamp(2rem, 1.5rem + 4vw, 4rem) var(--space-xl);position:relative;overflow:clip}.page-hero-inner{gap:var(--space-m);max-width:62ch;display:grid}.page-title{font-size:var(--step-4)}.page-lead{font-size:var(--step-1);color:var(--ink-soft)}.filter-bar{margin-top:var(--space-l);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-btn{border-radius:var(--radius-pill);background:var(--paper-2);border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);padding:.42em .95em;position:relative}.filter-btn:hover{color:var(--ink);border-color:var(--line-strong);transform:translateY(-2px)}.filter-btn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filter-count{opacity:.6;margin-left:.4em;font-size:.9em}.filter-empty{margin-top:var(--space-xl);padding:var(--space-xl);border:1px dashed var(--line-strong);border-radius:var(--radius-l);text-align:center;color:var(--ink-soft)}@media (prefers-reduced-motion:no-preference){.is-filtering{animation:card-in .5s var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.985)}}.post-list{gap:var(--space-l);margin-top:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.post-card{gap:0;padding:0;overflow:hidden}.post-card .post-body{gap:.6rem;padding:clamp(1.1rem,1rem + 1vw,1.6rem);display:grid}.post-cover{aspect-ratio:16/9;padding:var(--space-m) clamp(1.1rem, 1rem + 1vw, 1.6rem);background:linear-gradient(135deg, var(--accent-soft,var(--lava-soft)), var(--paper-2) 58%, var(--accent-soft,var(--lava-soft)));border-bottom:1px solid var(--line);align-content:space-between;display:grid;position:relative;overflow:hidden}.post-cover:before{content:"";background-image:repeating-linear-gradient(115deg,#16110d0d 0 1px,#0000 1px 13px);position:absolute;inset:0}.post-cover:after{content:"";aspect-ratio:1;background:var(--accent,var(--lava));opacity:.24;width:78%;transition:transform var(--dur-slow) var(--ease-out), opacity var(--dur-slow) var(--ease-out);border-radius:50%;position:absolute;bottom:-46%;right:-22%}.post-card:hover .post-cover:after{opacity:.34;transform:scale(1.16)translate(-4%,-6%)}.post-cover-top{z-index:1;justify-content:space-between;align-items:center;gap:var(--space-s);display:flex;position:relative}.post-index{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;color:var(--ink-soft)}.post-cover-glyph{z-index:1;color:var(--accent-deep,var(--lava-deep));opacity:.9;position:relative}.post-title{font-size:var(--step-2);letter-spacing:-.025em}.post-title a{position:static}.post-card .post-link-overlay{z-index:3;border-radius:inherit;position:absolute;inset:0}.post-desc{font-size:var(--step--1);color:var(--ink-soft)}.post-meta{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.post-meta .dot{opacity:.5;background:currentColor;border-radius:50%;width:3px;height:3px}.tag-row{flex-wrap:wrap;gap:.4rem;display:flex}.tag{border-radius:var(--radius-pill);background:var(--sand);color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--step--2);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;padding:.22em .62em;display:inline-flex}a.tag:hover{background:var(--ink);color:var(--paper)}.post-card--featured{flex-direction:row;grid-column:1/-1}.post-card--featured .post-cover{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line);flex:42%;min-height:260px}.post-card--featured .post-body{align-content:center;gap:var(--space-s);flex:58%;padding:clamp(1.4rem,1rem + 2vw,2.6rem)}.post-card--featured .post-title{font-size:var(--step-3)}.post-card--featured .post-desc{font-size:var(--step-0)}@media (width<=760px){.post-card--featured{flex-direction:column}.post-card--featured .post-cover{aspect-ratio:16/9;border-right:0;border-bottom:1px solid var(--line);min-height:0}}.article-head{padding-block:clamp(1.75rem, 1.5rem + 3vw, 3.5rem) var(--space-l);position:relative;overflow:clip}.breadcrumb{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft);align-items:center;gap:.5rem;display:inline-flex}.breadcrumb a:hover{color:var(--ink)}.article-title{margin-top:var(--space-m);font-size:var(--step-4);max-width:24ch}.article-lead{margin-top:var(--space-m);max-width:58ch;font-size:var(--step-1);color:var(--ink-soft)}.article-meta{align-items:center;gap:var(--space-s) var(--space-m);margin-top:var(--space-l);padding-top:var(--space-m);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft);flex-wrap:wrap;display:flex}.avatar{background:var(--ink);width:32px;height:32px;color:var(--paper);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:.9rem;font-weight:700;display:inline-grid}.article-body{padding-bottom:var(--space-2xl)}.prose{max-width:var(--maxw-prose);font-size:1.06rem;line-height:1.72}.prose>*+*{margin-top:1.15em}.prose h2{font-size:var(--step-2);scroll-margin-top:calc(var(--header-h) + 24px);margin-top:2.2em}.prose h3{font-size:var(--step-1);scroll-margin-top:calc(var(--header-h) + 24px);margin-top:1.8em}.prose h2+*,.prose h3+*{margin-top:.7em}.prose a{color:var(--lava-deep);text-underline-offset:3px;text-decoration:underline 1.5px;text-decoration-color:color-mix(in srgb, var(--lava-deep) 40%, transparent);transition:text-decoration-color var(--dur-fast) var(--ease-out)}.prose a:hover{text-decoration-color:currentColor}.heading-anchor{font-family:var(--font-mono);color:var(--lava-deep);opacity:0;transition:opacity var(--dur-fast) var(--ease-out);margin-left:.4em;font-size:.7em;text-decoration:none}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.prose ul,.prose ol{padding-left:1.25em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--lava-deep)}.prose strong{font-weight:650}.prose blockquote{border-left:3px solid var(--lava);color:var(--ink-soft);margin-inline:0;padding:.2em 0 .2em 1.15em;font-size:1.05em}.prose blockquote p{margin:0}.prose code{font-family:var(--font-mono);background:var(--sand);border:1px solid var(--line);border-radius:6px;padding:.16em .4em;font-size:.86em}.prose pre{font-family:var(--font-mono);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-s);background:#fbf9f4;margin:0;padding:1.15rem 1.25rem;font-size:.86rem;line-height:1.66;overflow-x:auto}.prose pre code{font-size:inherit;white-space:pre;background:0 0;border:0;padding:0}.code-block{margin-block:1.5em;position:relative}.code-block .code-lang{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.4rem;display:inline-block}.copy-btn{border-radius:var(--radius-s);background:var(--paper-2);border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft);opacity:0;transition:opacity var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:.35em;padding:.32em .6em;display:inline-flex;position:absolute;top:.6rem;right:.6rem}.code-block:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.copy-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.copy-btn[data-copied=true]{background:var(--sea);border-color:var(--sea);color:var(--white);opacity:1}@media (pointer:coarse){.copy-btn{opacity:1}}.prose table{border-collapse:collapse;width:100%;font-size:.95rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);padding:.6rem .75rem}.prose th{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);border-bottom:1.5px solid var(--line-strong)}.prose hr{border:0;border-top:1px dashed var(--line-strong);margin-block:2.2em}.prose img{border-radius:var(--radius-m);border:1px solid var(--line)}.callout{border-radius:var(--radius-m);background:var(--sun-soft);border:1px solid color-mix(in srgb, var(--sun) 55%, var(--line));padding:1rem 1.15rem;font-size:.98rem}.article-foot{max-width:var(--maxw-prose);margin-top:var(--space-2xl);padding-top:var(--space-l);border-top:1px solid var(--line);gap:var(--space-l);display:grid}.share-row{align-items:center;gap:var(--space-s);flex-wrap:wrap;display:flex}.author-card{align-items:center;gap:var(--space-m);padding:var(--space-m);border-radius:var(--radius-m);background:var(--sand);display:flex}.author-card .avatar{flex:none;width:42px;height:42px}.author-card p{font-size:var(--step--1);color:var(--ink-soft)}.post-nav{gap:var(--space-m);grid-template-columns:1fr 1fr;display:grid}.post-nav a{padding:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-m);background:var(--paper-2);transition:transform var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out);gap:.3rem;display:grid}.post-nav a:hover{box-shadow:var(--shadow-m);border-color:var(--line-strong);transform:translateY(-3px)}.post-nav .dir{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft)}.post-nav .next{text-align:right;justify-items:end}@media (width<=640px){.post-nav{grid-template-columns:1fr}}.notfound{text-align:center;place-items:center;gap:var(--space-m);min-height:62svh;padding-block:var(--space-2xl);display:grid}.notfound-code{font-family:var(--font-display);font-size:var(--step-5);letter-spacing:-.05em;font-weight:700;line-height:1}.lost-goat{color:var(--lava-deep)}@media (prefers-reduced-motion:no-preference){.lost-goat{animation:wander 6s var(--ease-out) infinite alternate}}@keyframes wander{0%{transform:translate(-14px)rotate(-2deg)}to{transform:translate(14px)rotate(2deg)}}
