:root{color-scheme:light;--color-canvas:#fff;--color-surface:#fafafa;--color-ink:#171717;--color-muted:#666;--color-faint:#8a8a8a;--color-border:#d8d8d8;--color-border-strong:#8b8b8b;--color-accent:#315f9d;--color-accent-hover:#244b7d;--color-on-accent:#fff;--color-code:#f3f3f3;--color-focus:#171717;--font-body:Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;--font-ui:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-code:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:clamp(1.0625rem, 1rem + .16vw, 1.15rem);--text-lg:clamp(1.25rem, 1.12rem + .55vw, 1.55rem);--text-xl:clamp(1.75rem, 1.4rem + 1.4vw, 2.65rem);--text-hero:clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem);--leading-body:1.72;--leading-prose:1.5;--prose-paragraph-gap:.75em;--leading-tight:1.1;--content-width:44rem;--layout-width:72rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--page-gutter:clamp(1rem, 4vw, 2.5rem);--border-width:1px;--radius-sm:.2rem;--radius-md:.35rem;--transition-fast:.14s ease}*,:before,:after{box-sizing:border-box}html{background:var(--color-canvas);min-width:20rem;color:var(--color-ink);font-family:var(--font-body);scroll-behavior:smooth}body{min-height:100vh;font-size:var(--text-base);line-height:var(--leading-body);text-rendering:optimizelegibility;margin:0}::selection{background:var(--color-ink);color:var(--color-canvas)}a{color:inherit;text-decoration-color:var(--color-border-strong);text-decoration-line:underline;text-decoration-thickness:var(--border-width);text-underline-offset:.22em;transition:text-decoration-color var(--transition-fast)}a:hover{text-decoration-color:var(--color-ink);text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}img,video{max-width:100%;height:auto;display:block}button,input,textarea,select{font:inherit}button{cursor:pointer}.skip-link{z-index:100;top:var(--space-3);left:var(--space-3);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-ink);background:var(--color-canvas);font-family:var(--font-ui);font-size:var(--text-sm);position:fixed;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-shell{width:min(100%, calc(var(--layout-width) + 2 * var(--page-gutter)));padding-inline:var(--page-gutter);margin-inline:auto}.site-header{width:min(100%, var(--content-width));justify-content:space-between;align-items:baseline;gap:var(--space-5);padding-block:var(--space-4);border-bottom:var(--border-width) solid var(--color-border);font-family:var(--font-ui);margin-inline:auto;display:flex}.site-mark{letter-spacing:-.04em;font-weight:750;text-decoration:none}.site-mark:before{content:"↪";margin-right:var(--space-2);font-weight:400}.site-nav{gap:var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.site-nav a{text-decoration-color:#0000}.site-nav a:hover,.site-nav a[aria-current=page]{text-decoration-color:var(--color-ink)}main{min-height:62vh}.site-footer{width:min(100%, var(--content-width));justify-content:space-between;gap:var(--space-4);margin-inline:auto;margin-top:var(--space-8);padding-block:var(--space-5) var(--space-7);border-top:var(--border-width) solid var(--color-border);color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.hero{gap:var(--space-4);padding-block:var(--space-6) var(--space-7);border-bottom:var(--border-width) solid var(--color-border);grid-template-columns:minmax(0,1fr);align-items:stretch;display:grid}.eyebrow,.section-label,.post-meta,.kicker{color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;margin:0;font-weight:650;line-height:1.4}.hero h1{font-family:var(--font-ui);font-size:var(--text-hero);letter-spacing:-.045em;margin:0;font-weight:760;line-height:1.2}.hero-copy{gap:var(--space-1);color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-sm);flex-direction:column;margin:0;line-height:1.4;display:flex}.hero-copy p{margin:0}.reading-page{width:min(100%, var(--content-width));margin-inline:auto}.section{padding-block:var(--space-7)}.section-heading{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.section-heading h1,.section-heading h2{font-family:var(--font-ui);font-size:var(--text-lg);letter-spacing:-.035em;line-height:var(--leading-tight);margin:0}.post-list{border-top:var(--border-width) solid var(--color-border);margin:0;padding:0;list-style:none}.post-list>li{gap:var(--space-5);padding-block:var(--space-5);border-bottom:var(--border-width) solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;display:grid}.latest-notes{padding-top:var(--space-5)}.latest-notes .post-list,.latest-notes .post-list>li{border:0}.archive-link{margin:var(--space-5) 0 0;font-family:var(--font-ui);font-size:var(--text-sm)}.post-list h2,.post-list h3{font-family:var(--font-ui);font-size:var(--text-lg);letter-spacing:-.03em;margin:0;font-weight:680;line-height:1.25}.post-list h2 a,.post-list h3 a{text-decoration-color:#0000}.post-list h2 a:hover,.post-list h3 a:hover{text-decoration-color:var(--color-ink)}.post-description{max-width:46rem;margin:var(--space-2) 0 0;color:var(--color-muted)}.post-date{white-space:nowrap;color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-sm)}.tag-list{gap:var(--space-2);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.tag-list a,.tag{padding:.1rem var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);text-decoration:none;display:inline-block}.tag-list a:hover{border-color:var(--color-ink)}.article-header{width:min(100%, var(--content-width));padding-block:var(--space-7) var(--space-5);border-bottom:var(--border-width) solid var(--color-border);margin-inline:auto}.article-header h1,.page-title{margin:var(--space-3) 0 var(--space-5);font-family:var(--font-ui);font-size:var(--text-xl);letter-spacing:-.05em;font-weight:760;line-height:1.05}.article-dek{color:var(--color-muted);font-size:var(--text-lg);margin:0;line-height:1.45}.article-meta-row{justify-content:space-between;gap:var(--space-4);align-items:center;display:flex}.markdown-link{height:2rem;color:var(--color-muted);border-radius:var(--radius-sm);flex:0 0 2rem;justify-content:center;align-items:center;display:inline-flex}.markdown-link:hover{color:var(--color-ink);background:var(--color-code)}.article-tags{width:min(100%, var(--content-width));margin:var(--space-4) auto 0;font-family:var(--font-ui);font-size:var(--text-sm)}.article-tags h2{font-size:var(--text-sm);margin:0;font-weight:650}.article-tags .tag-list{margin-top:var(--space-3)}.prose{width:min(100%, var(--content-width));padding-block:var(--space-6) var(--space-7);line-height:var(--leading-prose);overflow-wrap:break-word;margin-inline:auto}.prose>:first-child{margin-top:0}.article-page .prose :is(h2,h3,h4){scroll-margin-top:5rem}.article-contents{width:min(100%, var(--content-width));margin:var(--space-5) auto 0;font-family:var(--font-ui);font-size:var(--text-sm);line-height:1.4}.article-contents summary{padding-block:var(--space-2);cursor:pointer;font-weight:650}.article-contents nav{overscroll-behavior:contain;max-height:60vh;margin-top:var(--space-2);overflow-y:auto}.article-contents ol{margin:0;padding:0;list-style:none}.article-contents a{padding:.45rem var(--space-3);border-left:2px solid var(--color-border);color:var(--color-muted);overflow-wrap:anywhere;text-decoration:none;display:block}.article-contents .contents-subsection a{padding-left:var(--space-5);font-size:var(--text-xs)}.article-contents a:hover,.article-contents a[aria-current=location]{border-left-color:var(--color-accent);background:var(--color-surface);color:var(--color-accent)}.article-contents a[aria-current=location]{font-weight:650}@media (width>=72rem){.site-header-article,.site-footer-article{width:min(100%,62rem)}.article-page{max-width:62rem;margin-inline:auto}.article-page .article-header,.article-page>.comments{margin-inline:0}.article-intro,.article-body{grid-template-columns:minmax(0, var(--content-width)) 15rem;column-gap:var(--space-7);align-items:start;display:grid}.article-tags{margin-top:var(--space-7);padding-top:var(--space-2)}.article-body>.prose{grid-area:1/1}.article-contents{top:var(--space-6);margin-top:var(--space-6);grid-area:1/2;position:sticky}.article-contents nav{max-height:calc(100dvh - 8rem)}}.prose>:last-child{margin-bottom:0}.prose h2,.prose h3,.prose h4{font-family:var(--font-ui);letter-spacing:-.025em;margin:1.6em 0 .6em;line-height:1.2}.prose h2{padding-bottom:var(--space-2);border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-lg)}.prose p,.prose ul,.prose ol,.prose blockquote{margin-block:var(--prose-paragraph-gap)}.prose li+li{margin-top:.35em}.prose blockquote{padding-left:var(--space-5);border-left:2px solid var(--color-border-strong);color:var(--color-muted);margin-inline:0}.prose code{background:var(--color-code);font-family:var(--font-code);padding:.12em .28em;font-size:.84em}.prose pre{margin-block:var(--space-5);padding:var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-code);line-height:1.55;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-ui);font-size:var(--text-sm);display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);text-align:left}.page-narrow{width:min(100%, var(--content-width));padding-block:var(--space-7);margin-inline:auto}.notice{padding:var(--space-4);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-sm)}.button,button.button{min-height:2.65rem;padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent);font-family:var(--font-ui);font-size:var(--text-sm);transition:background var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.button:hover,button.button:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover);text-decoration:none}.button-secondary,button.button-secondary{border-color:var(--color-border-strong);background:var(--color-canvas);color:var(--color-ink)}.button-secondary:hover,button.button-secondary:hover{border-color:var(--color-ink);background:var(--color-surface)}.button-small,button.button-small{min-height:2rem;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.field{gap:var(--space-2);display:grid}.field label{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:680}.field-hint{color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-xs);margin:0}.field input,.field textarea,.field select{width:100%;padding:var(--space-3);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink)}.field textarea{resize:vertical;min-height:9rem;font-family:var(--font-body);line-height:1.55}.form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.spaced-top{margin-top:var(--space-5)}.form-stack{gap:var(--space-4);display:grid}.form-status{min-height:1.5em;color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-sm);margin:0}.comments{width:min(100%, var(--content-width));padding-top:var(--space-7);border-top:var(--border-width) solid var(--color-border);margin-inline:auto}.comment-list,.comment-replies{margin:0;padding:0;list-style:none}.comment{padding-block:var(--space-5);border-top:var(--border-width) solid var(--color-border)}.comment:first-child{border-top:0}.comment-replies{margin-top:var(--space-4);padding-left:var(--space-5);border-left:var(--border-width) solid var(--color-border)}.comment-head,.comment-actions{gap:var(--space-2) var(--space-3);font-family:var(--font-ui);font-size:var(--text-xs);flex-wrap:wrap;align-items:baseline;display:flex}.comment-author{font-weight:720}.comment-time{color:var(--color-muted)}.comment-body{margin-block:var(--space-3)}.comment-body>:first-child{margin-top:0}.comment-body>:last-child{margin-bottom:0}.text-button{border:0;border-bottom:var(--border-width) solid var(--color-border-strong);color:var(--color-muted);font-family:var(--font-ui);font-size:var(--text-xs);background:0 0;padding:0}.text-button:hover{border-color:var(--color-ink);color:var(--color-ink)}.comment-form{gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-5);border:var(--border-width) solid var(--color-border);display:grid}.replying-to{justify-content:space-between;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:var(--border-width) solid var(--color-border);font-family:var(--font-ui);font-size:var(--text-sm);display:none}.replying-to[data-active=true]{display:flex}.admin-list{gap:var(--space-4);margin:var(--space-5) 0 0;padding:0;list-style:none;display:grid}.admin-card{padding:var(--space-4);border:var(--border-width) solid var(--color-border)}.admin-card .comment-body{padding-block:var(--space-3);border-block:var(--border-width) solid var(--color-border)}.admin-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.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}@media (width<=44rem){.site-header{align-items:start}.site-header,.hero,.post-list>li{flex-direction:column;grid-template-columns:1fr}.hero{gap:var(--space-5);padding-block:var(--space-6) var(--space-5)}.post-date{grid-row:1}.form-grid{grid-template-columns:1fr}.comment-replies{padding-left:var(--space-3)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
