@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&display=swap";:root{--blog-paper:var(--color-paper);--blog-ink:var(--color-ink);--blog-rust:var(--color-rust);--blog-rust-dark:var(--color-rust-dark);--blog-green:var(--color-green);--blog-line:var(--color-line);--blog-muted:var(--color-muted);--blog-charcoal:var(--color-charcoal);--blog-orange:var(--color-orange);--blog-mono:"DM Mono", ui-monospace, SFMono-Regular, Consolas, monospace}.blog-masthead{width:var(--page-content-width);border-bottom:1px solid var(--blog-line);justify-content:space-between;align-items:center;gap:1.5rem;min-height:5.5rem;margin:0 auto;display:flex}.blog-masthead p{color:var(--blog-muted);font:500 .68rem/1.4 var(--blog-mono);letter-spacing:.03em;margin:0}.blog-wordmark{color:var(--blog-ink);letter-spacing:-.03em;font-size:1rem;font-weight:800;text-decoration:none}.blog-wordmark span{color:var(--blog-rust)}.article-page{padding:var(--page-top-space) 0 clamp(5rem, 9vw, 8rem);background:radial-gradient(circle at 91% 7%, #0a684712, transparent 25rem), var(--blog-paper);position:relative}.article-head{width:var(--page-content-width);margin:0 auto}.back-link{min-height:2.75rem;color:var(--blog-rust);align-items:center;margin-bottom:clamp(1.6rem,4vw,2.6rem);font-size:.72rem;font-weight:800;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--blog-rust-dark)}.post-meta{color:var(--blog-green);font:500 .68rem/1.55 var(--blog-mono);letter-spacing:.045em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.post-tags{display:contents}.post-tags a{color:inherit;text-decoration:none}.post-tags a:hover{color:var(--blog-rust)}.post-tags a+a:before{content:"/";color:var(--blog-line);margin-right:.45rem}.article-head h1{max-width:52rem;color:var(--blog-ink);letter-spacing:-.07em;text-wrap:balance;margin:.9rem 0 1.25rem;font-size:clamp(2.65rem,8vw,5.45rem);font-weight:900;line-height:.92}.article-deck{max-width:44rem;color:var(--blog-muted);text-wrap:pretty;margin:0;font-size:clamp(1rem,2.2vw,1.15rem);line-height:1.65}.article-updated{color:var(--blog-muted);font:400 .68rem/1.5 var(--blog-mono);margin:1rem 0 0}.article-rule{width:var(--page-content-width);background:var(--blog-green);height:3px;margin:clamp(2rem,5vw,3.5rem) auto clamp(2.75rem,6vw,4.5rem);display:flex}.article-rule span{background:var(--blog-rust);width:min(28%,9rem)}.article-body{width:min(calc(100% - var(--page-gutter) * 2), 43.75rem);color:#494744;margin:0 auto;font-size:clamp(1rem,1.8vw,1.075rem);line-height:1.85}.article-body>:first-child{margin-top:0}.article-body p{margin:0 0 1.5rem}.article-body h1,.article-body h2,.article-body h3,.article-body h4,.article-body h5,.article-body h6{color:var(--blog-ink);letter-spacing:-.04em;scroll-margin-top:7rem;font-weight:800;line-height:1.15}.article-body h1{margin:3.75rem 0 1.1rem;font-size:clamp(1.9rem,5vw,2.65rem)}.article-body h2{margin:2.5rem 0 .85rem;font-size:clamp(1.65rem,4vw,2.2rem)}.article-body h3{margin:2.75rem 0 .85rem;font-size:1.35rem}.article-body h4,.article-body h5,.article-body h6{letter-spacing:-.02em;margin:2.25rem 0 .75rem;font-size:1.05rem}.article-body a{color:var(--blog-rust);overflow-wrap:anywhere;text-underline-offset:.18em;text-decoration-color:#b9472d66;text-decoration-thickness:.1em}.article-body .heading-anchor{color:var(--blog-rust);font:500 .62em/1 var(--blog-mono);letter-spacing:0;opacity:1;margin-left:.45em;text-decoration:none;transition:color .16s,opacity .16s;display:inline-block;transform:translateY(-.08em)}.article-body :is(h1,h2,h3,h4,h5,h6):hover .heading-anchor,.article-body .heading-anchor:hover,.article-body .heading-anchor:focus-visible{color:var(--blog-rust-dark);opacity:1}.article-body strong{color:var(--blog-ink)}.article-body del{color:var(--blog-muted)}.article-body hr{background:var(--blog-line);border:0;height:1px;margin:3rem 0}.article-body pre{color:#f8eee5;background:var(--blog-charcoal);font:400 .82rem/1.75 var(--blog-mono);border-radius:.875rem;margin:2rem 0;padding:clamp(1.15rem,4vw,1.6rem);overflow-x:auto;box-shadow:0 1rem 2.75rem #2d2d2d21}.article-body :not(pre)>code{color:var(--blog-rust-dark);font:500 .88em var(--blog-mono);background:#e8cead59;border-radius:.25rem;padding:.12rem .35rem}.article-body blockquote{color:var(--blog-muted);border-left:3px solid var(--blog-green);margin:2rem 0;padding:.2rem 0 .2rem 1.35rem}.article-body blockquote>:last-child{margin-bottom:0}.article-body img{border-radius:.875rem;max-width:100%;height:auto;margin:2rem auto;display:block}.article-body figure{margin:2.5rem 0}.article-body figure img{margin-bottom:.75rem}.article-body figcaption{color:var(--blog-muted);font:400 .74rem/1.6 var(--blog-mono);text-align:center}.article-body ul,.article-body ol{margin:0 0 1.5rem;padding-left:1.35rem}.article-body li{margin-bottom:.55rem;padding-left:.25rem}.article-body li>:is(ul,ol){margin-top:.55rem;margin-bottom:0}.article-body .contains-task-list{padding-left:0;list-style:none}.article-body .task-list-item{align-items:baseline;gap:.65rem;padding-left:0;display:flex}.article-body .task-list-item input{width:1rem;height:1rem;accent-color:var(--blog-green)}.article-body table{border-spacing:0;border-collapse:collapse;width:100%;margin:2rem 0;font-size:.92rem;display:block;overflow-x:auto}.article-body th,.article-body td{border-bottom:1px solid var(--blog-line);text-align:left;vertical-align:top;min-width:8rem;padding:.7rem .85rem}.article-body th{color:var(--blog-green);font:500 .72rem/1.5 var(--blog-mono);letter-spacing:.04em;text-transform:uppercase}.article-body [data-footnotes]{color:var(--blog-muted);border-top:1px solid var(--blog-line);margin-top:clamp(3.5rem,8vw,5rem);padding-top:2rem;font-size:.86rem;line-height:1.7;position:relative}.article-body [data-footnotes]:before{color:var(--blog-green);background:var(--blog-paper);content:"Notes & sources";font:500 .64rem/1 var(--blog-mono);letter-spacing:.08em;text-transform:uppercase;padding-right:.75rem;position:absolute;top:-.55rem;left:0}.article-body [data-footnotes] h2.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.article-body [data-footnotes] ol{margin:0;padding-left:1.6rem;list-style:decimal}.article-body [data-footnotes] li{margin-bottom:.9rem;padding-left:.45rem}.article-body [data-footnotes] p{margin:0}.article-body [data-footnote-backref]{color:var(--blog-rust);font-family:var(--blog-mono);justify-content:center;align-items:center;margin-left:.25rem;text-decoration:none;display:inline-flex}.article-body [data-footnote-backref]:hover{color:var(--blog-rust-dark);transform:translateY(-1px)}.article-navigation{width:var(--page-content-width);border-top:1px solid var(--blog-line);margin:clamp(4rem,8vw,6rem) auto 0;padding-top:1.5rem}.article-archive-link{min-height:2.75rem;color:var(--blog-rust);align-items:center;font-size:.75rem;font-weight:800;text-decoration:none;display:inline-flex}.article-navigation>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem;display:grid}.article-navigation>div>a{min-height:7rem;color:var(--blog-ink);border:1px solid var(--blog-line);background:#fff;border-radius:.85rem;flex-direction:column;justify-content:flex-end;padding:1.2rem;font-size:.9rem;font-weight:750;line-height:1.3;text-decoration:none;display:flex}.article-navigation>div>a:last-child{text-align:right}.article-navigation>div>a[rel=next]{grid-column:2}.article-navigation>div>a:hover{color:var(--blog-rust);border-color:#b9472d73}.article-navigation>div span{color:var(--blog-green);font:500 .6rem/1.4 var(--blog-mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.4rem}.section-kicker{color:var(--blog-rust);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .7rem;font-size:.72rem;font-weight:800}.blog-page,.archive-page{width:var(--page-content-width);min-height:70vh;padding-top:var(--page-top-space);margin:0 auto;padding-bottom:clamp(4.5rem,8vw,7rem)}.portfolio-back-button{min-height:2.75rem;color:var(--blog-rust);background:#ffffffb8;border:1px solid #b9472d47;border-radius:999px;align-items:center;margin-bottom:2rem;padding:0 1rem;font-size:.72rem;font-weight:800;text-decoration:none;transition:color .16s,background .16s,border-color .16s;display:inline-flex}.portfolio-back-button:hover{color:#fff;background:var(--blog-rust);border-color:var(--blog-rust)}.blog-hero{grid-template-columns:minmax(0,1.35fr) minmax(15rem,.65fr);align-items:end;gap:2.25rem;margin-bottom:2rem;display:grid}.blog-hero h1,.archive-head h1,.home-blog-head h2{color:var(--blog-ink);letter-spacing:-.07em;text-wrap:balance;margin:0;font-weight:900;line-height:.9}.blog-hero h1{max-width:44rem;font-size:clamp(3.25rem,8vw,6.4rem)}.blog-hero h1 span{color:var(--blog-rust);display:block}.blog-hero>p{color:var(--blog-muted);margin:0;font-size:.9rem;line-height:1.7}.latest-grid{grid-template-rows:repeat(2,minmax(14.5rem,auto));grid-template-columns:1.35fr .8fr .8fr;gap:.7rem;display:grid}.latest-grid[data-count="1"]{grid-template-rows:minmax(24rem,auto);grid-template-columns:1fr}.latest-grid[data-count="2"]{grid-template-rows:minmax(24rem,auto);grid-template-columns:1.35fr .8fr}.latest-grid[data-count="3"]{grid-template-rows:minmax(24rem,auto)}.latest-grid[data-count="1"]>.post-card:first-child,.latest-grid[data-count="2"]>.post-card:first-child,.latest-grid[data-count="3"]>.post-card:first-child{grid-row:auto}.latest-grid[data-count="4"]>.post-card:nth-child(4){grid-column:2/4}.post-card{min-width:0;color:var(--blog-ink);border:1px solid var(--blog-line);background:#fff;border-radius:1.05rem;flex-direction:column;padding:1.35rem 1.35rem 1.25rem;display:flex;position:relative;overflow:hidden}.latest-grid>.post-card:first-child{color:#fff;background:var(--blog-charcoal);border:0;grid-row:span 2}.latest-grid>.post-card:nth-child(3){color:#fff;background:var(--blog-green);border:0}.latest-grid>.post-card:nth-child(4){background:var(--color-sand)}.card-meta{color:var(--blog-green);font:500 .59rem/1.5 var(--blog-mono);letter-spacing:.03em;text-transform:uppercase;flex-wrap:wrap;gap:.35rem .55rem;margin:0;display:flex}.card-meta>*+:before{content:"·";color:var(--blog-line);margin-right:.55rem}.post-card h2,.post-card h3{letter-spacing:-.045em;margin:auto 0 .6rem;font-size:clamp(1.05rem,2vw,1.38rem);line-height:1.08}.post-card h2 a,.post-card h3 a{color:inherit;text-decoration:none}.latest-grid>.post-card:first-child h2,.latest-grid>.post-card:first-child h3{max-width:30rem;font-size:clamp(2rem,4.2vw,3.5rem);line-height:.98}.post-card-description{color:#666;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 1rem;font-size:.72rem;line-height:1.55;display:-webkit-box;overflow:hidden}.post-card-link{color:var(--blog-rust);align-self:flex-start;font-size:.72rem;font-weight:800;text-decoration:none}.post-card-link:hover,.post-card h2 a:hover,.post-card h3 a:hover{text-underline-offset:.16em;text-decoration:underline .1em}.latest-grid>.post-card:first-child .card-meta,.latest-grid>.post-card:nth-child(3) .card-meta,.latest-grid>.post-card:first-child .post-card-description,.latest-grid>.post-card:nth-child(3) .post-card-description{color:#ffffffad}.latest-grid>.post-card:first-child .post-card-link,.latest-grid>.post-card:nth-child(3) .post-card-link{color:var(--blog-orange)}.latest-footer{border:1px solid var(--blog-line);background:#fff;border-radius:.9rem;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1.25rem;padding:1rem 1.15rem;display:flex}.latest-footer p{color:var(--blog-muted);margin:0;font-size:.78rem}.blog-button{color:#fff;background:var(--blog-rust);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;min-height:2.75rem;padding:0 1.15rem;font-size:.75rem;font-weight:800;text-decoration:none;display:inline-flex}.blog-button:hover{background:var(--blog-rust-dark)}.home-blog{color:#fff;background:var(--blog-charcoal);position:relative;overflow:hidden}.home-blog-inner{padding-top:clamp(4rem,8vw,6rem);padding-bottom:clamp(4rem,8vw,6rem)}.home-blog-head{justify-content:space-between;align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.home-blog-head h2{color:#fff;font-size:2.25rem;font-weight:700}@media (width>=768px){.home-blog-head h2{font-size:3.75rem}}.home-blog .section-kicker{margin-bottom:var(--section-title-gap);color:var(--blog-orange)}.home-blog-head>p{color:#ffffffad;max-width:22rem;margin:0;font-size:.85rem;line-height:1.65}.home-posts{grid-template-columns:1.35fr .8fr .8fr;gap:.7rem;display:grid}.home-posts[data-count="1"]{grid-template-columns:1fr;max-width:34rem}.home-posts[data-count="2"]{grid-template-columns:1.35fr .8fr}.blog-empty-state{color:var(--blog-muted);font:500 .95rem/1.6 var(--blog-mono);margin:0;padding:2rem 0}.home-blog .blog-empty-state{color:#ffffffc7}.home-posts>.post-card{min-height:16rem}.home-posts>.post-card:first-child{color:var(--blog-ink);background:#fffdf9;border:1px solid #0000}.home-posts>.post-card:nth-child(3){color:#fff;background:var(--blog-green);border:0}.home-posts>.post-card:first-child h2,.home-posts>.post-card:first-child h3{font-size:clamp(1.45rem,3vw,2.15rem)}.home-posts>.post-card:nth-child(3) .card-meta,.home-posts>.post-card:nth-child(3) .post-card-description{color:#ffffffad}.home-posts>.post-card:nth-child(3) .post-card-link{color:var(--blog-orange)}.home-blog-action{justify-content:flex-end;margin-top:1.25rem;display:flex}.archive-head{border-bottom:3px solid var(--blog-ink);grid-template-columns:1fr minmax(11rem,.35fr);align-items:end;gap:2rem;padding-bottom:1.7rem;display:grid}.archive-head h1{font-size:clamp(3.25rem,8vw,6rem)}.archive-head>p{color:var(--blog-muted);font:500 .68rem/1.7 var(--blog-mono);text-align:right;text-transform:uppercase;margin:0}.trail-tools{border-bottom:1px solid #d8cbbd;justify-content:space-between;align-items:center;gap:1.25rem;padding:1rem 0;display:flex}.trail-tools>p{color:#766d65;font:400 .62rem/1.5 var(--blog-mono);text-transform:uppercase;margin:0}.tag-filters{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.tag-filters a{color:#665d55;min-height:2rem;font:500 .59rem/1 var(--blog-mono);border:1px solid #d8cbbd;border-radius:999px;align-items:center;gap:.35rem;padding:0 .65rem;text-decoration:none;display:inline-flex}.tag-filters a:hover{color:var(--blog-green);border-color:var(--blog-green)}.tag-filters a[aria-current=page]{color:#fff;background:var(--blog-green);border-color:var(--blog-green)}.tag-filters span{opacity:.65}.trail-list{width:100%;padding-top:.8rem}.trail-row{border-bottom:1px solid #0000;grid-template-columns:7.25rem minmax(0,1fr) 8.5rem 1.25rem;align-items:baseline;gap:1rem;padding:1rem 0;display:grid}.trail-row:hover{border-color:var(--blog-line)}.trail-row time,.trail-row>span{color:#6f665d;font:400 .59rem/1.5 var(--blog-mono)}.trail-row>span{text-align:right}.trail-row h2,.trail-row h3{letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:650;line-height:1.35}.trail-row h2 a,.trail-row h3 a{color:inherit;text-decoration:none}.trail-row:hover h2 a,.trail-row:hover h3 a{color:var(--blog-rust)}.blog-inline-archive{margin-top:clamp(5rem,10vw,8rem);padding-top:clamp(2.25rem,4vw,3.25rem);scroll-margin-top:6rem;position:relative}.blog-inline-archive:before{background:linear-gradient(90deg, var(--blog-rust) 50%, var(--blog-green) 50%);content:"";width:9rem;height:3px;position:absolute;top:0;left:0}.blog-inline-archive-head{border-bottom:3px solid var(--blog-ink);grid-template-columns:1fr minmax(11rem,.35fr);align-items:end;gap:2rem;padding-bottom:1.7rem;display:grid}.blog-inline-archive-head h2{color:var(--blog-ink);letter-spacing:-.07em;text-wrap:balance;margin:0;font-size:clamp(3.25rem,8vw,6rem);font-weight:900;line-height:.9}.blog-inline-archive-head>p{color:var(--blog-muted);font:500 .68rem/1.7 var(--blog-mono);text-align:right;text-transform:uppercase;margin:0}.trail-arrow{color:var(--blog-rust);opacity:0;text-decoration:none;transition:opacity .16s,transform .16s;transform:translate(-.3rem)}.trail-row:hover .trail-arrow,.trail-arrow:focus-visible{opacity:1;transform:none}.archive-back-link{min-height:2.75rem;color:var(--blog-rust);align-items:center;margin-top:2rem;font-size:.75rem;font-weight:800;text-decoration:none;display:inline-flex}.archive-empty{color:var(--blog-muted);margin:2rem 0}@media (width<=40rem){.blog-masthead{width:var(--page-content-width)}.blog-masthead p{text-align:right;max-width:9rem}.article-head,.article-rule{width:var(--page-content-width)}.article-head h1{font-size:clamp(2.5rem,13vw,4rem)}.article-body pre{margin-left:-.25rem;margin-right:-.25rem}.article-body [data-footnotes]{margin-top:3.5rem;padding-top:1.75rem}.blog-page,.archive-page{width:var(--page-content-width)}.blog-hero,.archive-head{grid-template-columns:1fr;gap:1rem}.blog-hero h1,.archive-head h1{font-size:clamp(3rem,16vw,4.25rem)}.latest-grid,.home-posts{grid-template-rows:auto;grid-template-columns:1fr}.latest-grid>.post-card:first-child{grid-row:auto;min-height:23rem}.latest-grid>.post-card:not(:first-child),.home-posts>.post-card{min-height:14.5rem}.latest-footer,.home-blog-head,.trail-tools{flex-direction:column;align-items:stretch}.home-blog-head{display:flex}.home-blog-head>p{max-width:none}.blog-button{width:100%}.tag-filters{justify-content:flex-start}.archive-head>p{text-align:left}.trail-row{grid-template-columns:4.6rem minmax(0,1fr) 1rem;gap:.65rem;padding:.85rem 0}.trail-row>span{text-align:left;grid-area:2/2;margin-top:-.3rem;font-size:.51rem}.trail-row time{grid-row:1/span 2;font-size:.51rem}.trail-row h2,.trail-row h3{font-size:.9rem}.trail-arrow{grid-area:1/3/span 2;align-self:center}.blog-inline-archive-head{grid-template-columns:1fr;gap:1rem}.blog-inline-archive-head h2{font-size:clamp(3rem,16vw,4.25rem)}.blog-inline-archive-head>p{text-align:left}.trail-arrow{opacity:1;transform:none}.article-navigation{width:var(--page-content-width)}.article-navigation>div{grid-template-columns:1fr}.article-navigation>div>a[rel=next]{grid-column:1}}@media (width>=40.001rem) and (width<=55rem){.latest-grid,.home-posts{grid-template-rows:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.latest-grid>.post-card:first-child,.home-posts>.post-card:first-child{grid-area:auto/1/auto/-1;min-height:23rem}}
