:root{--ground: #e7eae5;--ground-raise: #f2f4ef;--ink: #17272e;--ink-soft: #55676f;--amber: #b26a00;--rule: #c9cfc6;--serif: "Spectral", Georgia, "Times New Roman", serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--measure: 34rem;--gutter: 8.5rem;--step: 1.5rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--serif);font-size:1.125rem;line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased}.shell{width:min(100% - 2.5rem,52rem);margin-inline:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:10;padding:.5rem .75rem;background:var(--ground-raise);font-family:var(--mono);font-size:.8125rem}.masthead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1rem 2rem;padding:2rem 0 3.5rem}.masthead__name{font-family:var(--serif);font-size:1.0625rem;font-weight:600;letter-spacing:.01em;color:var(--ink);text-decoration:none}.masthead__name:hover{color:var(--amber)}.nav{display:flex;gap:1.5rem;font-family:var(--mono);font-size:.8125rem;letter-spacing:-.01em}.nav a{color:var(--ink-soft);text-decoration:none;padding-bottom:.15rem;border-bottom:1px solid transparent}.nav a:hover{color:var(--ink);border-bottom-color:var(--rule)}.nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--amber)}.colophon{margin-top:6rem;padding:1.75rem 0 3rem;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;font-family:var(--mono);font-size:.78125rem;color:var(--ink-soft)}.colophon a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--rule)}.colophon a:hover{color:var(--amber);border-bottom-color:var(--amber)}.colophon ul{display:flex;gap:1.25rem;margin:0;padding:0;list-style:none}.thesis{max-width:20ch;margin:0 0 2.25rem;font-size:clamp(2.5rem,6.4vw,4.4rem);font-weight:600;line-height:1.06;letter-spacing:-.028em;text-wrap:balance}.thesis span{display:block}.thesis--page{font-size:clamp(2rem,4.6vw,3rem);max-width:24ch;margin-bottom:1.5rem}.standfirst{max-width:var(--measure);margin:0 0 1.25rem;font-size:1.1875rem;color:var(--ink-soft)}.standfirst strong{font-weight:600;color:var(--ink)}@media(prefers-reduced-motion:no-preference){.thesis span,.hero-fade{animation:rise .62s cubic-bezier(.2,.6,.2,1) both}.thesis span:nth-child(2){animation-delay:90ms}.thesis span:nth-child(3){animation-delay:.18s}.hero-fade{animation-delay:.3s}}@keyframes rise{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}.entries{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}.entry{display:grid;gap:.35rem 2rem;padding:1.6rem 0;border-bottom:1px solid var(--rule)}.entry__meta{font-family:var(--mono);font-size:.78125rem;line-height:1.5;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:.85rem}.entry__title{margin:0;font-size:1.3125rem;font-weight:600;line-height:1.28;letter-spacing:-.012em}.entry__title a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent}.entry__title a:hover{color:var(--amber);border-bottom-color:var(--amber)}.entry__standfirst{margin:.3rem 0 0;max-width:var(--measure);font-size:1rem;color:var(--ink-soft)}@media(min-width:56rem){.entry{grid-template-columns:var(--gutter) minmax(0,1fr)}.entry__meta{grid-column:1;justify-content:flex-end;text-align:right;flex-direction:column;align-items:flex-end;gap:.2rem;padding-top:.3rem}.entry__body{grid-column:2}}.article-head{padding-bottom:2rem;margin-bottom:2.5rem;border-bottom:1px solid var(--rule)}.article-head h1{margin:0 0 .9rem;max-width:24ch;font-size:clamp(2rem,4.6vw,3rem);font-weight:600;line-height:1.12;letter-spacing:-.024em;text-wrap:balance}.article-head__meta{font-family:var(--mono);font-size:.78125rem;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:1.25rem}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--step)}.prose h2{margin-top:3rem;font-size:1.5rem;font-weight:600;line-height:1.25;letter-spacing:-.016em}.prose h3{margin-top:2.25rem;font-size:1.1875rem;font-weight:600}.prose a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--amber)}.prose a:hover{color:var(--amber)}.prose blockquote{margin-inline:0;padding-left:1.25rem;border-left:2px solid var(--amber);color:var(--ink-soft)}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:.4rem}.prose code{font-family:var(--mono);font-size:.875em;background:var(--ground-raise);padding:.1em .35em;border:1px solid var(--rule)}.prose pre{font-family:var(--mono);font-size:.8125rem;line-height:1.6;padding:1rem 1.15rem;overflow-x:auto;background:var(--ground-raise)!important;border:1px solid var(--rule)}.prose pre code{background:none;border:0;padding:0}.prose img{max-width:100%;height:auto}.prose hr{border:0;border-top:1px solid var(--rule)}.subscribe{margin-top:4.5rem;padding:1.75rem 0 0;border-top:2px solid var(--ink);max-width:var(--measure)}.subscribe h2{margin:0 0 .4rem;font-size:1.25rem;font-weight:600;letter-spacing:-.012em}.subscribe p{margin:0 0 1.1rem;font-size:1rem;color:var(--ink-soft)}.subscribe__form{display:flex;flex-wrap:wrap;gap:.5rem}.subscribe input[type=email]{flex:1 1 15rem;min-width:0;font-family:var(--mono);font-size:.875rem;padding:.7rem .85rem;color:var(--ink);background:var(--ground-raise);border:1px solid var(--rule);border-radius:0}.subscribe input[type=email]::placeholder{color:var(--ink-soft)}.subscribe input[type=email]:focus-visible{outline:2px solid var(--amber);outline-offset:1px;border-color:var(--amber)}.subscribe button{font-family:var(--mono);font-size:.875rem;padding:.7rem 1.15rem;color:var(--ground-raise);background:var(--ink);border:1px solid var(--ink);border-radius:0;cursor:pointer}.subscribe button:hover{background:var(--amber);border-color:var(--amber)}.subscribe__note{margin:.85rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--ink-soft)}.section{margin-top:4.5rem}.section>h2{margin:0 0 1.5rem;padding-bottom:.65rem;border-bottom:1px solid var(--rule);font-size:1.0625rem;font-weight:600;letter-spacing:-.005em;color:var(--ink-soft)}.stack{margin:0;padding:0;list-style:none}.stack>li+li{margin-top:1.4rem}.stack h3{margin:0 0 .15rem;font-size:1.0625rem;font-weight:600}.stack p{margin:0;max-width:var(--measure);font-size:1rem;color:var(--ink-soft)}.empty{font-family:var(--mono);font-size:.875rem;color:var(--ink-soft);max-width:var(--measure)}a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:1px}
