:root{--bg: #fcfcfd;--bg-sub: #f2f4f7;--ink: #15181e;--ink-2: #3a414b;--muted: #6b727d;--rule: #e2e5ea;--rule-strong: #cbd0d8;--accent: #1a4fa0;--accent-hover: #12386f;--accent-soft: #e9f0fa;--tag: #8a5a12;--tag-soft: #f6eeda;--serif: "Newsreader", ui-serif, Georgia, "Times New Roman", serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--measure: 40rem;--step--1: .8125rem;--step-0: 1.0625rem;--step-1: 1.25rem;--step-2: 1.5rem;--step-3: 2rem;--step-4: 2.625rem;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e1116;--bg-sub: #161a21;--ink: #e9ebef;--ink-2: #c3c8d1;--muted: #8b929e;--rule: #232932;--rule-strong: #333b46;--accent: #85acf0;--accent-hover: #a8c4f5;--accent-soft: #151f2e;--tag: #dcaa5e;--tag-soft: #241d10;color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1116;--bg-sub: #161a21;--ink: #e9ebef;--ink-2: #c3c8d1;--muted: #8b929e;--rule: #232932;--rule-strong: #333b46;--accent: #85acf0;--accent-hover: #a8c4f5;--accent-soft: #151f2e;--tag: #dcaa5e;--tag-soft: #241d10;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:var(--step-0);font-optical-sizing:auto;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}img{max-width:100%;height:auto;display:block}.shell{max-width:var(--measure);margin:0 auto;padding:0 1.5rem}main.shell{padding-top:4.5rem}.back-arrow{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:0 0 2.25rem -.5rem;border-radius:999px;color:var(--muted);text-decoration:none;transition:color .14s ease,background-color .14s ease}.back-arrow svg{width:20px;height:20px}.back-arrow:hover{color:var(--accent);background:var(--bg-sub)}.bio{display:flex;flex-direction:column;gap:1.1rem}.eyebrow{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}.bio h1{font-size:var(--step-4);font-weight:500;line-height:1.1;letter-spacing:-.015em;margin:0;text-wrap:balance}.bio p{margin:0;font-size:var(--step-1);color:var(--ink-2);line-height:1.6}.bio p strong{color:var(--ink);font-weight:600}.section{margin-top:4rem;display:flex;flex-direction:column;gap:0}.section-head{display:flex;align-items:baseline;gap:.9rem;padding-bottom:.75rem;border-bottom:1px solid var(--rule-strong)}.section-head h2{font-family:var(--mono);font-size:var(--step--1);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:0}.list{list-style:none;margin:0;padding:0}.entry{border-bottom:1px solid var(--rule)}.entry-link{display:grid;grid-template-columns:5.5rem 1fr;gap:.35rem 1.5rem;padding:1.35rem .75rem 1.4rem;margin:0 -.75rem;text-decoration:none;color:inherit;border-radius:3px;transition:background-color .14s ease}.entry-link:hover{background:var(--bg-sub)}.entry-date{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);padding-top:.42em;font-variant-numeric:tabular-nums;white-space:nowrap}.entry-body{display:flex;flex-direction:column;gap:.35rem}.entry-title{font-size:var(--step-2);font-weight:500;line-height:1.25;letter-spacing:-.01em;margin:0;text-wrap:balance;transition:color .14s ease}.entry-link:hover .entry-title{color:var(--accent)}.entry-excerpt{margin:0;color:var(--ink-2);line-height:1.55}.entry-foot{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);display:flex;align-items:center;gap:.6rem;margin-top:.15rem}.tag{color:var(--tag);background:var(--tag-soft);padding:.1rem .42rem;border-radius:2px;letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem}@media(max-width:34rem){.entry-link{grid-template-columns:1fr;gap:.5rem}.entry-date{padding-top:0}:root{--step-4: 2.125rem;--step-2: 1.3125rem}}.connect{margin-top:4rem;padding-bottom:4.5rem}.links{display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:1.5rem 0 0;list-style:none}.link-chip{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:var(--step--1);text-decoration:none;color:var(--ink);border:1px solid var(--rule-strong);padding:.5rem .85rem;border-radius:3px;transition:border-color .14s ease,color .14s ease,background-color .14s ease}.link-chip:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.link-chip svg{width:15px;height:15px;fill:currentColor;flex:none}.colophon{margin-top:3rem;padding-top:1rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--step--1);color:var(--muted);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.article-head{display:flex;flex-direction:column;gap:1rem;margin-bottom:2.5rem}.article-head h1{font-size:var(--step-3);font-weight:500;line-height:1.18;letter-spacing:-.015em;margin:0;text-wrap:balance}.article-meta{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.standfirst{font-size:var(--step-1);color:var(--ink-2);line-height:1.55;margin:0;padding-left:1rem;border-left:2px solid var(--accent)}.prose{font-size:var(--step-0)}.prose>*+*{margin-top:1.15em}.prose h2{font-size:var(--step-2);font-weight:600;line-height:1.25;letter-spacing:-.01em;margin-top:2.4em;text-wrap:balance}.prose h3{font-size:var(--step-1);font-weight:600;margin-top:2em}.prose blockquote{margin-left:0;margin-right:0;padding:.2rem 0 .2rem 1.1rem;border-left:2px solid var(--rule-strong);color:var(--ink-2);font-style:italic}figure.cover{margin:0 0 2.75rem}figure.cover img{border:1px solid var(--rule);border-radius:3px}.prose figure{margin:2em 0}.prose figcaption{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);margin-top:.6rem;line-height:1.5}.prose img{border:1px solid var(--rule);border-radius:3px}.table-wrap{overflow-x:auto;margin:2em 0;border:1px solid var(--rule);border-radius:3px}.prose>table{display:block;overflow-x:auto;max-width:100%;border:1px solid var(--rule);border-radius:3px}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1);font-family:var(--mono)}.prose th,.prose td{text-align:left;padding:.6rem .85rem;border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums;white-space:nowrap}.prose th{color:var(--muted);font-weight:500;letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem}.prose tbody tr:last-child td{border-bottom:none}.prose td:not(:first-child),.prose th:not(:first-child){text-align:right}.prose code{font-family:var(--mono);font-size:.875em;background:var(--bg-sub);padding:.12em .35em;border-radius:2px}.prose pre{background:var(--bg-sub);border:1px solid var(--rule);border-radius:3px;padding:1rem;overflow-x:auto}.prose pre code{background:none;padding:0}.prose hr{border:none;border-top:1px solid var(--rule);margin:2.5em 0}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.theme-toggle{position:fixed;top:1.1rem;right:1.1rem;z-index:30;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .18s ease,border-color .18s ease,background-color .18s ease}.theme-toggle:hover{color:var(--ink);border-color:var(--rule);background:var(--bg-sub)}.theme-toggle svg{width:18px;height:18px;display:block;transition:transform .5s cubic-bezier(.34,1.3,.5,1)}.theme-icon .mask-dot{transition:transform .48s cubic-bezier(.34,1.3,.5,1)}.theme-icon .rays{transform-origin:12px 12px;transition:opacity .22s ease,transform .48s cubic-bezier(.34,1.3,.5,1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle svg{transform:rotate(-28deg)}:root:not([data-theme=light]) .theme-icon .mask-dot{transform:translate(-9px,1px)}:root:not([data-theme=light]) .theme-icon .rays{opacity:0;transform:scale(.35) rotate(-45deg)}}:root[data-theme=dark] .theme-toggle svg{transform:rotate(-28deg)}:root[data-theme=dark] .theme-icon .mask-dot{transform:translate(-9px,1px)}:root[data-theme=dark] .theme-icon .rays{opacity:0;transform:scale(.35) rotate(-45deg)}@media(max-width:34rem){.theme-toggle{top:.6rem;right:.6rem}}
