:root{color-scheme:light dark;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: ui-serif, Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, "Times New Roman", serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--step--2: clamp(.72rem, .7rem + .1vw, .78rem);--step--1: clamp(.86rem, .83rem + .15vw, .94rem);--step-0: clamp(1rem, .96rem + .25vw, 1.13rem);--step-1: clamp(1.2rem, 1.13rem + .35vw, 1.38rem);--step-2: clamp(1.44rem, 1.32rem + .6vw, 1.75rem);--step-3: clamp(1.73rem, 1.54rem + .95vw, 2.2rem);--step-4: clamp(2.07rem, 1.78rem + 1.45vw, 2.75rem);--leading-tight: 1.2;--leading-snug: 1.35;--leading-prose: 1.7;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-s: 1rem;--space-m: 1.5rem;--space-l: 2.25rem;--space-xl: 3.5rem;--space-2xl: 5rem;--content-width: 46rem;--measure: 68ch;--radius: 4px;--bg: #fbfaf7;--surface: #ffffff;--ink: #191a1c;--ink-muted: #5c5f66;--ink-faint: #696c74;--rule: #e4e2db;--rule-strong: #cfccc2;--accent: #2148c0;--accent-soft: #eaeefb;--mark: #fdf0c8}@media(prefers-color-scheme:dark){:root{--bg: #101012;--surface: #17171a;--ink: #e8e7e3;--ink-muted: #a2a5ad;--ink-faint: #a2a5ad;--rule: #26262b;--rule-strong: #3a3a42;--accent: #9db4ff;--accent-soft: #1b2033;--mark: #4a3d15}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{background:var(--bg);color:var(--ink);font-family:var(--font-serif);font-size:var(--step-0);line-height:var(--leading-prose);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal;font-variant-ligatures:common-ligatures;display:flex;flex-direction:column;min-height:100vh}img,picture,svg,video{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none;text-underline-offset:.18em;text-decoration-thickness:.06em}a:hover{text-decoration:underline}a:focus-visible,:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.container{width:100%;max-width:var(--content-width);margin-inline:auto;padding-inline:var(--space-s)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--surface);color:var(--ink);padding:var(--space-2xs) var(--space-s);border:1px solid var(--rule-strong);z-index:10}.skip-link:focus{left:var(--space-s);top:var(--space-2xs)}.site-header{border-bottom:1px solid var(--rule);margin-bottom:var(--space-l)}.site-header__inner{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-xs) var(--space-m);padding-block:var(--space-l)}.brand{font-family:var(--font-serif);font-size:var(--step-2);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.brand:hover{text-decoration:none;color:var(--accent)}.brand__dot{color:var(--accent);font-size:1.3em;line-height:0}.site-nav{display:flex;gap:var(--space-m);font-family:var(--font-sans);font-size:var(--step--1);letter-spacing:0}.site-nav a{color:var(--ink-muted)}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink);text-decoration:none}.site-nav a[aria-current=page]{border-bottom:1px solid var(--accent)}main{flex:1}.site-footer{border-top:1px solid var(--rule);margin-top:var(--space-2xl);padding-block:var(--space-m) var(--space-l);font-family:var(--font-sans);font-size:var(--step--1);color:var(--ink-faint)}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2xs) var(--space-m)}.site-footer a{color:var(--ink-muted)}.page-title{font-size:var(--step-4);line-height:var(--leading-tight);letter-spacing:-.02em;font-weight:600;margin-bottom:var(--space-s);text-wrap:balance}.lede{font-size:var(--step-1);line-height:var(--leading-snug);color:var(--ink-muted);max-width:var(--measure);text-wrap:pretty}.section-heading{font-family:var(--font-sans);font-size:var(--step--1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--space-m)}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--space-s)}.prose h2{font-size:var(--step-3);line-height:var(--leading-tight);letter-spacing:-.015em;font-weight:600;margin-top:var(--space-l);text-wrap:balance}.prose h3{font-size:var(--step-1);line-height:var(--leading-snug);font-weight:600;margin-top:var(--space-m);text-wrap:balance}.prose h4{font-family:var(--font-sans);font-size:var(--step-0);font-weight:600;margin-top:var(--space-m)}.prose ul,.prose ol{padding-left:1.35em}.prose li+li{margin-top:var(--space-3xs)}.prose li::marker{color:var(--ink-faint)}.prose blockquote{border-left:2px solid var(--rule-strong);padding-left:var(--space-s);color:var(--ink-muted);font-style:italic}.prose hr{border:0;border-top:1px solid var(--rule);margin-block:var(--space-l)}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--accent-soft);padding:.12em .32em;border-radius:var(--radius)}.prose pre{font-size:var(--step--1);line-height:1.6;padding:var(--space-s);border:1px solid var(--rule);border-radius:var(--radius);overflow-x:auto}.prose pre code{background:none;padding:0;font-size:inherit}.prose table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:var(--step--1)}.prose th,.prose td{text-align:left;padding:var(--space-2xs) var(--space-xs);border-bottom:1px solid var(--rule)}.prose th{border-bottom-color:var(--rule-strong);font-weight:600}.prose img{border-radius:var(--radius)}.prose figcaption{font-family:var(--font-sans);font-size:var(--step--2);color:var(--ink-faint);margin-top:var(--space-2xs);text-align:center}.prose mark{background:var(--mark);color:inherit;padding:0 .15em}@media(prefers-color-scheme:dark){.prose pre.astro-code,.prose pre.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.post-list{list-style:none;padding:0;margin:0}.post-list>li+li{border-top:1px solid var(--rule)}.post-item{padding-block:var(--space-l) var(--space-xl)}.post-item__date{display:block;font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--space-2xs)}.post-item__title{font-size:var(--step-2);line-height:var(--leading-snug);letter-spacing:-.015em;font-weight:600;text-wrap:balance}.post-item__title a{color:var(--accent)}.post-item__title a:hover{color:var(--accent);text-decoration:underline}.post-item__desc{color:var(--ink);margin-top:var(--space-s);max-width:var(--measure);text-wrap:pretty}.post-item__read{display:inline-block;margin-top:var(--space-xs);font-size:var(--step--1)}.post-item__read:focus-visible{text-decoration:underline}.post-item__arrow{display:inline-block}@media(prefers-reduced-motion:no-preference){.post-item__arrow{transition:transform .16s ease-out}.post-item__read:hover .post-item__arrow,.post-item__read:focus-visible .post-item__arrow{transform:translate(3px)}}.post-item__excerpt{margin-top:var(--space-s)}.post-item__image{display:block;margin-top:var(--space-m)}.post-item__image img{width:100%;border:1px solid var(--rule);border-radius:var(--radius)}.archive-year+.archive-year{margin-top:var(--space-xl)}.archive-year>h2{font-size:var(--step-3)}.archive-month{margin-top:var(--space-m)}.archive-month>h3{font-family:var(--font-sans);font-size:var(--step--1);font-weight:500;color:var(--ink-muted);margin-bottom:var(--space-xs)}.archive-list{list-style:none;padding:0}.archive-list>li{display:grid;grid-template-columns:7rem auto 1fr;gap:var(--space-xs);align-items:baseline;padding-block:var(--space-xs);border-bottom:1px solid var(--rule)}.archive-list time,.archive-draft{font-family:var(--font-sans);font-size:var(--step--2);color:var(--ink-muted)}@media(max-width:480px){.archive-list>li{grid-template-columns:1fr;gap:var(--space-3xs)}.archive-separator{display:none}}.writing-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2xs) var(--space-s);padding-bottom:var(--space-s);border-bottom:1px solid var(--rule-strong);font-family:var(--font-sans);font-size:var(--step--2);color:var(--ink-muted)}.writing-heading .section-heading{margin:0;color:var(--ink-muted)}@media(max-width:480px){.site-header__inner{padding-block:var(--space-m)}.site-nav{gap:var(--space-s)}}.tags{display:flex;flex-wrap:wrap;gap:var(--space-2xs);list-style:none;padding:0;margin:0;font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:0}.tag{display:inline-block;padding:0;text-decoration:underline;text-decoration-color:var(--rule-strong);color:var(--ink-muted)}.tag:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.post-item__tags{margin-top:var(--space-xs)}.post-header{margin-bottom:var(--space-l)}.post-header__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-s);font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--space-s)}.post-header__title{font-size:var(--step-4);line-height:var(--leading-tight);letter-spacing:-.02em;font-weight:600;text-wrap:balance}.post-header__desc{font-size:var(--step-1);line-height:var(--leading-snug);color:var(--ink-muted);margin-top:var(--space-s);max-width:var(--measure);text-wrap:pretty}.post-footer{margin-top:var(--space-xl);padding-top:var(--space-m);border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-s);font-family:var(--font-sans);font-size:var(--step--1)}.empty{border-top:1px solid var(--rule);padding-top:var(--space-m);color:var(--ink-muted);font-style:italic}.page-intro{margin-bottom:var(--space-l)}.home-more{margin-top:var(--space-m);font-family:var(--font-sans);font-size:var(--step--1)}.tag-index{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}.tag-index>li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-s);padding-block:var(--space-xs);border-bottom:1px solid var(--rule)}.tag-index__count{font-family:var(--font-sans);font-size:var(--step--2);color:var(--ink-faint);white-space:nowrap}.stack-s>*+*{margin-top:var(--space-s)}.stack-m>*+*{margin-top:var(--space-m)}.stack-l>*+*{margin-top:var(--space-l)}
