:root{--ink: #242424;--ink-soft: #6b6b6b;--ink-faint: #a8a8a8;--rule: #e6e6e6;--bg: #ffffff;--accent: #1a8917;--highlight: #fffce8;--surface: #f4f4f2;--code-chrome: #faf9f6;--on-ink: #ffffff;--danger: #c0392b;--danger-border: #e0b4ae;--fig-bg: #f6f5f1;--serif: "Source Serif 4", Georgia, "Times New Roman", serif;--ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--column: 728px;color-scheme:light}:root[data-theme=dark]{--ink: #ece9e3;--ink-soft: #a9a59c;--ink-faint: #76716a;--rule: #322f2a;--bg: #1a1916;--accent: #46b34a;--highlight: #24291b;--surface: #232220;--code-chrome: #201f1b;--on-ink: #1a1916;--danger: #e5675a;--danger-border: #5a2b25;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{background:var(--bg)!important}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--serif);font-size:20px;line-height:1.58;color:var(--ink);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.site-header{border-bottom:1px solid var(--rule)}.site-header__inner,.site-footer__inner{max-width:var(--column);margin:0 auto;padding:0 20px}.site-header__inner{height:64px;display:flex;align-items:center;justify-content:space-between}.site-title{font-family:var(--ui);font-weight:600;font-size:19px;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.site-brand{display:inline-flex;flex-direction:column;line-height:1.05;text-decoration:none}.site-brand__name{font-family:var(--ui);font-weight:600;font-size:26px;letter-spacing:-.02em;color:var(--ink)}.site-title__by{font-family:var(--mono);font-weight:400;font-size:13px;color:var(--ink-faint);margin-left:8px}.site-nav{display:flex;align-items:center;gap:1.5rem;font-family:var(--ui);font-size:15px}.site-nav a{color:var(--ink-soft);text-decoration:none}.site-nav a:hover{color:var(--ink)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--rule);border-radius:999px;background:none;color:var(--ink-soft);cursor:pointer;transition:color .15s ease,border-color .15s ease}.theme-toggle:hover{color:var(--ink);border-color:var(--ink-faint)}.theme-toggle__sun{display:none}.theme-toggle__moon{display:block}:root[data-theme=dark] .theme-toggle__sun{display:block}:root[data-theme=dark] .theme-toggle__moon{display:none}main{max-width:var(--column);margin:0 auto;padding:56px 20px 80px}.site-footer{border-top:1px solid var(--rule)}.site-footer__inner{padding-top:28px;padding-bottom:28px;font-family:var(--ui);font-size:14px;color:var(--ink-faint);display:flex;align-items:center;justify-content:space-between}.rss-link{color:inherit;text-decoration:none;display:flex;align-items:center;gap:5px;opacity:.7}.rss-link:hover{opacity:1}.kicker{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}.draft-badge{display:inline-block;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft, #6b6b6b);background:var(--highlight);border:1px solid var(--rule);border-radius:4px;padding:5px 10px;margin:0 0 18px}.lead{display:block;text-decoration:none;color:inherit;margin:0 0 12px;padding-bottom:40px;border-bottom:1px solid var(--rule)}.lead__media{aspect-ratio:16 / 6.5;margin:0 0 22px;border-radius:3px;overflow:hidden;background:var(--surface)}.lead__media img{display:block;width:100%;height:100%;object-fit:cover}.lead__title{font-size:38px;font-weight:700;letter-spacing:-.02em;line-height:1.14;margin:10px 0}.lead:hover .lead__title{text-decoration:underline;text-decoration-color:var(--ink-faint)}.lead__desc{font-size:21px;line-height:1.5;color:var(--ink-soft);margin:0 0 12px}.section-label{display:flex;align-items:center;gap:16px;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:40px 0 4px}.section-label:after{content:"";flex:1;height:1px;background:var(--rule)}.intro{margin-bottom:56px;padding-bottom:40px;border-bottom:1px solid var(--rule)}.intro h1{font-size:46px;font-weight:700;letter-spacing:-.022em;line-height:1.1;margin:0 0 16px}.intro__lede{font-size:22px;line-height:1.5;color:var(--ink-soft);margin:0}.post-list{list-style:none;margin:0;padding:0}.post-list__item{padding:28px 0;border-bottom:1px solid var(--rule)}.post-list__kicker{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}.post-list__title{font-size:30px;font-weight:700;letter-spacing:-.018em;line-height:1.2;margin:0 0 8px}.post-list__title a{color:var(--ink);text-decoration:none}.post-list__title a:hover{text-decoration:underline;text-decoration-color:var(--ink-faint)}.post-list__desc{font-size:19px;color:var(--ink-soft);margin:0 0 10px}.post-list__date{font-family:var(--ui);font-size:14px;color:var(--ink-faint);margin:0}.post__header{margin-bottom:32px}.post__title{font-size:46px;font-weight:700;letter-spacing:-.022em;line-height:1.12;margin:0 0 18px}.deck{font-size:22px;line-height:1.5;color:var(--ink-soft);margin:0 0 22px}.post-meta{font-family:var(--mono);font-size:14px;color:var(--ink-soft);margin:0}.post-meta__author{color:var(--ink);font-weight:500}.post-meta__sep{margin:0 8px;color:var(--ink-faint)}.hero{margin:0 -80px 12px}.hero img{display:block;width:100%;height:auto;border-radius:2px}.hero figcaption,.content figcaption{font-family:var(--mono);font-size:12px;letter-spacing:.01em;color:var(--ink-faint);text-align:center;margin-top:10px}.content{font-size:20px;line-height:1.58;color:var(--ink)}.content>p:first-of-type:first-letter{float:left;font-size:72px;line-height:.8;font-weight:600;padding:6px 10px 0 0;color:var(--ink)}.content p{margin:0 0 28px}.content h2{font-size:30px;font-weight:700;letter-spacing:-.014em;line-height:1.25;margin:48px 0 16px}.content h3{font-size:24px;font-weight:600;margin:36px 0 12px}.content a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--ink-faint);text-underline-offset:2px}.content a:hover{text-decoration-color:var(--ink)}.content blockquote{margin:36px 0;padding-left:24px;border-left:3px solid var(--ink);font-style:italic;font-size:24px;line-height:1.4;color:var(--ink)}.content ul,.content ol{margin:0 0 28px;padding-left:28px}.content li{margin:0 0 10px}.content img{display:block;width:calc(100% + 160px);max-width:calc(100% + 160px);height:auto;margin:40px -80px;border-radius:2px}.content code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em;background:var(--highlight);padding:2px 6px;border-radius:3px}.content pre{margin:32px 0;padding:20px 24px;overflow-x:auto;border:1px solid var(--rule);border-radius:4px;font-size:15px;line-height:1.5}.content pre code{background:none;padding:0;font-size:inherit}::selection{background:var(--highlight)}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:40px 0 0;padding:32px 0 0;border-top:1px solid var(--rule)}.tags__item{font-family:var(--ui);font-size:13px;color:var(--ink-soft);background:var(--surface);border-radius:999px;padding:6px 14px}.author-card{display:flex;gap:16px;align-items:flex-start;margin:36px 0 0;padding:28px 0 0;border-top:1px solid var(--rule)}.author-card__avatar{flex:0 0 auto;width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--on-ink);font-family:var(--ui);font-weight:600;font-size:22px;display:flex;align-items:center;justify-content:center}.author-card__name{font-family:var(--ui);font-weight:600;font-size:16px;margin:0 0 4px}.author-card__bio{font-family:var(--ui);font-size:15px;line-height:1.5;color:var(--ink-soft);margin:0}.post__hearts{margin-top:40px}.heart__button{display:inline-flex;align-items:center;gap:8px;font-family:var(--ui);font-size:15px;background:none;border:1px solid var(--rule);border-radius:999px;padding:8px 16px;cursor:pointer;color:var(--ink-soft);transition:all .15s ease}.heart__button:hover:not(:disabled){border-color:var(--ink-faint);color:var(--ink)}.heart__button:disabled{color:var(--danger);border-color:var(--danger-border);cursor:default}.heart__glyph{font-size:18px;line-height:1}.content table{width:100%;border-collapse:collapse;margin:36px 0;font-family:var(--ui);font-size:15px;line-height:1.45}.content thead th{text-align:left;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--ink);padding:0 16px 10px}.content tbody td{padding:11px 16px;border-bottom:1px solid var(--rule);color:var(--ink-soft)}.content tbody tr:last-child td{border-bottom:0}.content th.num,.content td.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.content tbody tr.is-best td{background:var(--highlight);color:var(--ink);font-weight:600}.content tbody tr.is-best td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.content pre{margin:32px 0;padding:20px 22px;font-size:14.5px;line-height:1.62;border:1px solid var(--rule);border-radius:5px;overflow-x:auto;-webkit-overflow-scrolling:touch}.content pre code{font-family:var(--mono)}.content figure.code{margin:32px 0}.content figure.code figcaption{font-family:var(--mono);font-size:12px;text-align:left;color:var(--ink-soft);margin:0;padding:8px 14px;border:1px solid var(--rule);border-bottom:0;border-radius:5px 5px 0 0;background:var(--code-chrome)}.content figure.code pre{margin:0;border-radius:0 0 5px 5px}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .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}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .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}}.content figure.fig{margin:40px 0}.content figure.fig .fig__frame{background:var(--fig-bg);border:1px solid var(--rule);border-radius:4px;padding:24px 26px}.content figure.fig img{display:block;width:100%;max-width:100%;margin:0;border-radius:0}.content figure.fig figcaption{margin-top:12px}.fig__source{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--ink-faint);text-align:center;margin-top:4px}.content figure.fig--wide{width:calc(100% + 160px);max-width:calc(100% + 160px);margin-left:-80px;margin-right:-80px}.content .stats{display:grid;grid-template-columns:repeat(3,1fr);margin:40px 0;border-top:1px solid var(--ink)}.content .stat{padding:22px 24px 20px 0}.content .stat+.stat{border-left:1px solid var(--rule);padding-left:24px}.content .stat__num{font-family:var(--serif);font-weight:700;font-size:44px;line-height:1;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}.content .stat__num .unit{font-size:22px;color:var(--ink-soft);margin-left:1px}.content .stat__label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin-top:10px}.content .metric{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.92em;font-weight:600;color:var(--accent)}@media (max-width: 800px){body{font-size:18px}main{padding:36px 20px 64px}.intro h1,.post__title{font-size:34px}.intro__lede,.deck{font-size:19px}.post-list__title{font-size:26px}.lead__title{font-size:28px}.lead__desc{font-size:19px}.content{font-size:18px}.content>p:first-of-type:first-letter{font-size:52px}.content h2{font-size:24px}.content blockquote{font-size:21px}.hero{margin:0 -20px 12px}.content img{width:calc(100% + 40px);max-width:calc(100% + 40px);margin:32px -20px}.content table{font-size:13px}.content .stats{grid-template-columns:1fr}.content .stat+.stat{border-left:0;border-top:1px solid var(--rule);padding-left:0;padding-top:20px}.content .stat__num{font-size:38px}.content figure.fig--wide{width:calc(100% + 40px);max-width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}}
