@font-face{font-family:Avenir;src:url(/fonts/Avenir-Book.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Avenir;src:url(/fonts/Avenir-BookOblique.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Avenir;src:url(/fonts/Avenir-Medium.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Avenir;src:url(/fonts/Avenir-MediumOblique.woff2)format("woff2");font-style:italic;font-weight:500;font-display:swap}@font-face{font-family:Avenir;src:url(/fonts/Avenir-Heavy.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Avenir;src:url(/fonts/Avenir-HeavyOblique.woff2)format("woff2");font-style:italic;font-weight:700;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-italic.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-500.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-500italic.woff2)format("woff2");font-style:italic;font-weight:500;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-600.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-600italic.woff2)format("woff2");font-style:italic;font-weight:600;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-700.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-700italic.woff2)format("woff2");font-style:italic;font-weight:700;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-800italic.woff2)format("woff2");font-style:italic;font-weight:800;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-v27-latin-800.woff2)format("woff2");font-style:normal;font-weight:800;font-display:swap}:root{--font-body:"Avenir", "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, "Cascadia Code", monospace;--font-heading:"EB Garamond", Garamond, "Times New Roman", Georgia, serif;--cozy-line-height:1.66;--bg:#efe8d8;--surface:#e5dccc;--text:#211c15;--muted:#655947;--faint:#d3c4aa;--accent:#50746c;--border:#d3c4aa;--code-bg:#f5efe1;--code-text:#211c15;--header-bg:#efe8d8eb;--cozy-accent-ui:#7e8650;--site-page-bg:var(--bg);--site-page-surface:var(--surface);--site-page-text:var(--text);--site-page-muted:var(--muted);--site-page-border:var(--border);--site-page-accent:var(--cozy-accent-ui);--site-page-card-title:var(--text);--site-page-card-description:var(--muted);--site-page-preview-filter:none;--site-page-preview-overlay:transparent;--site-page-preview-inset-shadow:0 1px 0 #ffffff73 inset;--site-page-shadow:0 14px 32px #2d2b241f}[data-theme=dark]{--bg:#1e1c16;--surface:#1a1813;--text:#e5dccd;--muted:#b1a58e;--faint:#373126;--accent:#9cb8ad;--border:#373126;--code-bg:#15140f;--code-text:#e7dccb;--header-bg:#1e1c16eb;--cozy-accent-ui:#929765;--site-page-bg:var(--bg);--site-page-surface:var(--surface);--site-page-text:var(--text);--site-page-muted:var(--muted);--site-page-border:var(--border);--site-page-accent:var(--cozy-accent-ui);--site-page-card-title:var(--text);--site-page-card-description:var(--muted);--site-page-preview-filter:brightness(.78) contrast(.96) saturate(.84);--site-page-preview-overlay:#1213112e;--site-page-preview-inset-shadow:0 1px 0 #ffffff12 inset;--site-page-shadow:0 14px 32px #00000057}html{font-size:18px}body{font-family:var(--font-body);line-height:var(--cozy-line-height)}.site-header{--site-bg:var(--bg);--site-text:var(--text);--site-muted:var(--muted);--site-border:var(--border);--site-accent:var(--cozy-accent-ui);z-index:1;border-bottom:1px solid var(--site-border);background:var(--site-bg);backdrop-filter:blur(12px);font-size:18px;position:relative}[data-theme=dark] .site-header{--site-bg:#1e1c16eb}.site-tagline{max-width:980px;color:var(--site-page-muted,#655947);font-family:var(--font-body,"Avenir", "DM Sans", system-ui, sans-serif);letter-spacing:.02em;margin:0 auto;padding:16px 32px 0;font-size:13px;line-height:1.4}.site-header-inner{justify-content:space-between;align-items:center;gap:27px;max-width:980px;margin:0 auto;padding:14px 32px;display:flex}.site-logo{color:var(--site-accent);flex:none;font-family:EB Garamond,Garamond,Times New Roman,Georgia,serif;font-size:22px;font-weight:600;line-height:1;text-decoration:none}.site-logo:hover{color:var(--site-accent)}.site-nav{align-items:center;gap:18px;display:flex}.site-nav-link{color:var(--site-muted);font-family:var(--font-heading,"EB Garamond", Garamond, serif);letter-spacing:.01em;align-items:center;gap:.35rem;font-size:16px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.site-nav-link[aria-current=page],.site-nav-link:hover{color:var(--site-text)}.site-nav-icon{width:16px;height:16px;display:block}.theme-toggle{border:1px solid var(--site-border);width:32px;height:32px;color:var(--site-muted);cursor:pointer;background:0 0;border-radius:8px;place-items:center;padding:0;display:inline-grid}.theme-toggle:hover{color:var(--site-text);border-color:var(--site-muted)}.theme-icon{width:16px;height:16px;display:block}.theme-icon-sun,.theme-icon-moon{display:block}[data-theme=dark] .theme-icon-sun,[data-theme=light] .theme-icon-moon,:root:not([data-theme=dark]) .theme-icon-moon{display:none}@media (width<=780px){.site-header-inner{flex-direction:column;align-items:flex-start}.site-nav{flex-wrap:wrap;gap:15px}}@media (width<=520px){.site-header-inner,.site-tagline{padding-left:20px;padding-right:20px}}footer{border-top:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);padding:.9rem 0;font-size:.7rem;line-height:1;position:relative;overflow:hidden}footer .container{z-index:1;justify-content:space-between;align-items:center;gap:1rem;max-width:980px;margin:0 auto;padding:0 1.8rem;display:flex;position:relative}.footer-links{align-items:center;gap:1.1rem;display:flex}.footer-links a,.back-to-top{color:inherit}.footer-links a:hover,.back-to-top:hover{color:var(--text)}#footer-canvas{pointer-events:none;opacity:.4;width:100%;height:100%;position:absolute;inset:0}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-sans-latin-ext-400-normal.BtiwyxMk.woff2)format("woff2"),url(/_astro/dm-sans-latin-ext-400-normal.BjWJ59Pq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-sans-latin-400-normal.CW0RaeGs.woff2)format("woff2"),url(/_astro/dm-sans-latin-400-normal.BwCSEQnW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--max-width:980px;--article-width:800px;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:2.75rem;--space-2xl:3.5rem;--cozy-h1:#c58527;--cozy-h2:#93974a;--cozy-h3:#000;--cozy-h4:#000;--cozy-bold:#1a1610;--cozy-blockquote-border:#878b60;--cozy-hr:#d3c4aa;--cozy-grain-light-opacity:.055;--cozy-grain-dark-opacity:.065;& .astro-code,& .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}[data-theme=dark]{--cozy-h1:#f5c276;--cozy-h2:#93974a;--cozy-h3:#fff;--cozy-h4:#fff;--cozy-bold:#f1e7d6;--cozy-blockquote-border:#878b60;--cozy-hr:#373126;--cozy-grain-light-opacity:.06;--cozy-grain-dark-opacity:.07}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);min-height:100vh;color:var(--text);background-image:radial-gradient(ellipse at 20% 50%, rgba(75, 58, 34, calc(var(--cozy-grain-light-opacity) * 1.2)) .5px, transparent .8px), radial-gradient(ellipse at 80% 20%, rgba(75, 58, 34, var(--cozy-grain-light-opacity)) .8px, transparent 1.2px), radial-gradient(ellipse at 40% 80%, rgba(255, 255, 255, var(--cozy-grain-dark-opacity)) .6px, transparent 1px), radial-gradient(ellipse at 70% 40%, rgba(255, 255, 255, calc(var(--cozy-grain-dark-opacity) * .8)) 1px, transparent 1.5px), linear-gradient(115deg, #ffffff2e, transparent 38%, #5b42240a);background-size:18px 18px,32px 32px,24px 24px,40px 40px,100% 100%;flex-direction:column;margin:0;display:flex}[data-theme=dark] body{background-image:radial-gradient(ellipse at 20% 50%, rgba(238, 226, 205, calc(var(--cozy-grain-light-opacity) * 1.2)) .5px, transparent .8px), radial-gradient(ellipse at 80% 20%, rgba(238, 226, 205, var(--cozy-grain-light-opacity)) .8px, transparent 1.2px), radial-gradient(ellipse at 40% 80%, rgba(0, 0, 0, var(--cozy-grain-dark-opacity)) .6px, transparent 1px), radial-gradient(ellipse at 70% 40%, rgba(0, 0, 0, calc(var(--cozy-grain-dark-opacity) * .8)) 1px, transparent 1.5px), linear-gradient(115deg, #fff2d504, transparent 38%, #00000006)}header,main,footer{z-index:1;position:relative}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--cozy-h1);margin:1.45em 0 .55em;font-size:clamp(2rem,6vw,2.65rem)}h2{color:var(--cozy-h2);font-size:1.65rem}h3{color:var(--cozy-h3);font-size:1.15rem}h4{color:var(--cozy-h4);font-size:1rem}p{margin:0 0 1.35rem}a{color:var(--accent);text-underline-offset:.18em;text-decoration:none;transition:color .15s,border-color .15s,background-color .15s}a:hover{color:var(--text)}strong{color:var(--cozy-bold);font-weight:600}code{background:var(--code-bg);color:var(--code-text);font-family:var(--font-mono);border-radius:4px;padding:.18em .38em;font-size:.82em}pre{border:1px solid var(--border);background:var(--code-bg);color:var(--code-text);border-radius:10px;margin:1.8rem 0;padding:1.2rem 1.3rem;overflow-x:auto}pre code{background:0 0;padding:0;font-size:.82rem;line-height:1.85}blockquote{border-left:2px solid var(--cozy-blockquote-border);color:var(--text);padding:var(--space-xs) 0 var(--space-xs) var(--space-md);background:0 0;border-radius:0;margin:1em 0}img,video{max-width:100%;height:auto}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.8rem}main{flex:1 0 auto;width:100%;padding:3.5rem 0 6rem}.page-kicker,.eyebrow{color:var(--cozy-accent-ui);font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;margin:0 0 1rem;font-size:.64rem;font-weight:500}.intro{margin-bottom:3.1rem}.writing-intro{margin-bottom:1rem}.intro h1{margin:0 0 .75rem;font-size:clamp(2rem,5vw,2.55rem)}.intro p,.page-lede{max-width:31rem;color:var(--muted);font-size:.94rem;line-height:1.65}.section-title{color:var(--muted);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 1rem;font-size:.58rem;font-weight:500}.post-list{margin:0;padding:0;list-style:none}.post-list-item{border-bottom:1px solid var(--faint)}.post-list-link{color:inherit;grid-template-columns:6rem minmax(0,1fr);gap:1.3rem;padding:1rem 0;text-decoration:none;display:grid}.post-list-link:hover{color:inherit;background:color-mix(in srgb, var(--surface) 70%, transparent)}.post-list-body{flex-direction:column;gap:.15rem;display:flex}.post-list-date,.post-meta,.post-meta-tags,.archive-item time,.post-facts dt,.post-facts dd{font-family:var(--font-mono)}.post-list-date{color:var(--muted);font-size:.69rem;line-height:1.5}.post-list-title{color:var(--text);margin-bottom:.1rem;font-size:.98rem;font-weight:500;line-height:1.35;display:block}.post-list-excerpt{max-width:26rem;color:var(--muted);font-size:.82rem;line-height:1.55;display:block}.post-list-tag{color:var(--cozy-accent-ui);text-transform:lowercase;margin-top:.1rem;font-size:.6rem;line-height:1.4}.post-list-empty{color:var(--muted)}.article-grid{grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.post-sidebar{flex-direction:column;gap:1.35rem;display:flex;position:sticky;top:2.2rem}.back-link{color:var(--muted);font-size:.69rem;line-height:1}.back-link:hover{color:var(--text)}.post-facts{border-top:1px solid var(--border);gap:.85rem;margin:0;padding-top:1.2rem;display:grid}.post-facts dt{color:var(--muted);letter-spacing:.14em;margin-bottom:.34rem;font-size:.56rem;font-weight:500;line-height:1}.post-facts dd{color:var(--text);margin:0;font-size:.7rem;line-height:1.45}.post-article{max-width:var(--article-width);min-width:0}.post-header{margin-bottom:2.2rem}.post-title{margin:0 0 1rem;font-size:clamp(2rem,5vw,2.6rem)}.post-meta{color:var(--muted);margin:0;font-size:.72rem;line-height:1.5}.post-meta-tags{color:var(--accent);text-transform:lowercase}.post-content{font-size:1rem;line-height:var(--cozy-line-height);--flow-space:var(--space-sm)}.post-content>*,.post-content :where(p,li,blockquote,pre,table,figure){margin:0}.post-content>*+*{margin-top:var(--flow-space)}.post-content a{border-bottom:1px solid var(--border)}.post-content a:hover{border-color:var(--accent)}.post-content h2{--flow-space:calc(var(--space-sm) + var(--space-3xs))}.post-content h3,.post-content h4,.post-content h5,.post-content h6{--flow-space:var(--space-sm)}.post-content h2+*,.post-content h3+*,.post-content h4+*,.post-content h5+*,.post-content h6+*{--flow-space:var(--space-xs)}.post-content ul,.post-content ol{gap:var(--space-2xs);flex-direction:column;padding-left:1.35rem;display:flex}.post-content li>*+*{margin-top:var(--space-2xs)}.post-content pre{--flow-space:var(--space-md);overflow-x:auto}.post-content blockquote{--flow-space:var(--space-md)}.toc{padding-top:1.2rem;display:block}.toc-title{color:var(--muted);cursor:pointer;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.5rem;margin:0 0 .8rem;font-size:.56rem;font-weight:500;line-height:1;display:flex}.toc-title:before{content:"";border-bottom:1px solid;border-right:1px solid;width:.34rem;height:.34rem;transition:transform .15s;transform:rotate(45deg)translateY(-1px)}.toc.collapsed .toc-title:before{transform:rotate(-45deg)}.toc.collapsed .toc-list{display:none}.toc-list,.toc-list ul{margin:0;padding:0;list-style:none}.toc-list{flex-direction:column;gap:.52rem;display:flex}.toc-list ul{flex-direction:column;gap:.48rem;margin-top:.48rem;padding-left:.9rem;display:flex}.toc-list a{color:var(--text);font-family:var(--font-mono);font-size:.68rem;line-height:1.35}.toc-list ul a{color:var(--muted)}.toc-list a:hover{color:var(--cozy-accent-ui)}.archive-year{margin-top:2.2rem}.archive-year h2{color:var(--text);margin:0 0 .6rem;font-size:1.2rem}.archive-list{margin:0;padding:0;list-style:none}.archive-item{border-bottom:1px solid var(--faint);grid-template-columns:4.2rem minmax(0,1fr);gap:1rem;padding:.7rem 0;display:grid}.archive-item time{color:var(--muted);font-size:.7rem}.archive-item a{color:var(--text);font-weight:500}.archive-item a:hover{color:var(--cozy-accent-ui)}hr{border:none;border-top:1px solid var(--cozy-hr);margin-block:var(--space-lg)}.embed.video-player{border-radius:8px;height:0;margin:1.5em 0;padding-bottom:56.25%;position:relative;overflow:hidden}.embed.video-player iframe{border:0;width:100%;height:100%;position:absolute;inset:0}@media (width<=780px){header .container{flex-direction:column;align-items:flex-start}main{padding-top:2.8rem}.post-table-head{display:none}.post-list-link{grid-template-columns:minmax(0,1fr);gap:.45rem}.post-list-date,.post-list-tag{text-align:left}.article-grid{grid-template-columns:minmax(0,1fr);gap:2.2rem}.post-sidebar{position:static}.post-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){html{font-size:17px}.container{padding:0 1.1rem}.post-facts{grid-template-columns:minmax(0,1fr)}footer .container{align-items:center}}
