:root{--color-bg:#faf7f0;--color-bg-soft:#f4efe3;--color-text:#2a2622;--color-text-soft:#4a443c;--color-muted:#8a8278;--color-faint:#b8ad9c;--color-rule:#e6dfce;--color-rule-soft:#efe9d9;--color-accent:#8a4a2b;--color-mark:#f0e6c8;--font-serif:var(--font-source-serif),"Source Serif 4","Iowan Old Style","Apple Garamond",Charter,Baskerville,"Times New Roman",var(--font-noto-serif-sc),"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,SimSun,serif;--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--measure:36rem;--measure-wide:44rem;--ease:cubic-bezier(0.2,0,0,1)}*,:after,:before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,html,ol,p,pre,ul{margin:0;padding:0}ol,ul{list-style:none}img,svg,video{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:1px}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none;hanging-punctuation:allow-end last}body,html{background:var(--color-bg)}body{min-height:100vh;color:var(--color-text);font-family:var(--font-serif);font-size:18px;line-height:1.8;font-feature-settings:"kern","liga","calt","halt","palt";font-variant-east-asian:proportional-width;text-wrap:pretty;word-break:normal;line-break:strict;overflow-wrap:anywhere}::selection{background:var(--color-mark)}a{color:var(--color-text);text-decoration:underline;text-decoration-thickness:.5px;text-underline-offset:.22em;text-decoration-color:var(--color-faint);text-decoration-skip-ink:auto;transition:color .2s var(--ease),text-decoration-color .2s var(--ease)}a:hover{color:var(--color-accent);text-decoration-color:currentColor}code{font-family:ui-monospace,SF Mono,Menlo,Monaco,Consolas,monospace}.page{width:100%;max-width:var(--measure);margin:0 auto;padding:0 1.5rem}.page--wide{max-width:var(--measure-wide)}.site-main{padding:2.5rem 0 6rem}.site-header{padding:3.5rem 0 2rem}.site-header__inner{display:flex;align-items:baseline;justify-content:space-between;gap:2rem}.site-header__brand{font-family:var(--font-serif);font-size:1.05rem;font-weight:400;font-style:italic;letter-spacing:.01em;color:var(--color-text);text-decoration:none}.site-header__brand:hover{color:var(--color-accent)}.site-nav{display:flex;gap:1.6rem;font-size:.95rem;font-style:italic}.site-nav,.site-nav a{color:var(--color-muted)}.site-nav a{text-decoration:none;position:relative}.site-nav a:hover{color:var(--color-accent)}.site-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-.35em;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .32s var(--ease)}.site-nav a:hover:after{transform:scaleX(1)}.site-footer{margin-top:5rem;padding:3rem 0 4rem;border-top:1px solid var(--color-rule)}.site-footer__inner{font-size:.85rem;font-style:italic;color:var(--color-muted);text-align:center}.site-footer__inner a{color:var(--color-muted);text-decoration-color:var(--color-rule)}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:100;pointer-events:none;background:transparent}.reading-progress__bar{height:100%;background:var(--color-accent);transform:scaleX(0);transform-origin:0 50%;transition:transform 80ms linear;opacity:.85}.lede{margin:0 0 4rem;font-size:1.05rem;line-height:1.85;color:var(--color-text-soft);font-style:italic;text-wrap:balance}.section-label{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);margin-bottom:2.25rem}.essay-year+.essay-year{margin-top:4.5rem}.essay-year__label{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--color-faint);font-weight:500;margin-bottom:1.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-rule-soft)}.entry-list>li+li{margin-top:2.75rem;padding-top:2.75rem;border-top:1px solid var(--color-rule)}.entry,.entry__date{display:block}.entry__date{font-family:var(--font-sans);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.65rem}.entry__title{font-size:1.5rem;line-height:1.35;font-weight:500;letter-spacing:-.005em;color:var(--color-text);text-wrap:balance;margin-bottom:.6rem}.entry__title a{text-decoration:none;color:inherit;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0 1px;background-position:0 100%;transition:background-size .38s var(--ease),color .2s var(--ease)}.entry__title a:hover{color:var(--color-accent);background-size:100% 1px}.entry__summary{font-size:1rem;line-height:1.85;color:var(--color-text-soft);letter-spacing:.01em;text-wrap:pretty}.article-header{margin:1rem 0 3rem;text-align:left}.article-eyebrow{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);margin-bottom:1.25rem}.article-title{font-size:clamp(1.95rem,4.4vw,2.55rem);line-height:1.22;font-weight:500;letter-spacing:-.01em;color:var(--color-text);text-wrap:balance;margin-bottom:1.25rem}.article-subtitle{margin-bottom:1.75rem;padding-left:1rem;border-left:2px solid var(--color-rule);font-size:1.05rem;line-height:1.85;color:var(--color-text-soft);letter-spacing:.01em;font-style:italic}.article-meta{font-family:var(--font-sans);font-size:.74rem;letter-spacing:.06em;color:var(--color-muted);text-transform:uppercase}.article-meta>*+:before{content:"·";margin:0 .6rem;color:var(--color-faint)}.article-rule{border:0;border-top:1px solid var(--color-rule);margin:2.25rem 0 2.75rem}.article-body{font-size:1.075rem;line-height:2.15;letter-spacing:.02em;color:var(--color-text);text-wrap:pretty}.article-body>*+*{margin-top:2.1rem}.article-body p{margin:0}.article-body>p:first-of-type:first-line{font-feature-settings:"smcp";font-variant:small-caps;letter-spacing:.04em}.article-body h1,.article-body h2,.article-body h3,.article-body h4{font-weight:500;letter-spacing:0;color:var(--color-text);line-height:1.4;text-wrap:balance}.article-body h1{font-size:1.55rem;margin-top:4.5rem}.article-body h2{font-size:1.25rem;margin-top:4.5rem}.article-body>h2:before{content:"";display:block;width:2.5rem;height:1px;background:var(--color-rule);margin-bottom:1.9rem}.article-body h1,.article-body h2,.article-body h3{position:relative}.article-body .heading-anchor{position:absolute;left:-1.4rem;top:50%;transform:translateY(-50%);font-family:var(--font-sans);font-size:.85rem;font-weight:400;color:var(--color-faint);text-decoration:none;opacity:0;transition:opacity .22s var(--ease),color .22s var(--ease)}.article-body .heading-anchor:focus-visible,.article-body h1:hover .heading-anchor,.article-body h2:hover .heading-anchor,.article-body h3:hover .heading-anchor{opacity:1}.article-body .heading-anchor:hover{color:var(--color-accent)}.article-body>h2:before{position:relative;z-index:1}.article-body h3{font-size:1.1rem;margin-top:3.2rem;color:var(--color-text-soft)}.article-body h1+p,.article-body h2+p,.article-body h3+p{margin-top:1.4rem}.article-body strong{font-weight:600;color:var(--color-text)}.article-body em{font-style:italic}.article-body a{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-faint);text-decoration-thickness:.5px;text-underline-offset:.25em}.article-body a:hover{color:var(--color-accent);text-decoration-color:currentColor}.article-body blockquote{margin:2.4rem 0;padding:.2rem 0 .2rem 1.4rem;border-left:2px solid var(--color-rule);color:var(--color-text-soft);font-style:italic;letter-spacing:.012em}.article-body blockquote p+p{margin-top:1rem}.article-body ol,.article-body ul{padding-left:0}.article-body ol>li,.article-body ul>li{position:relative;padding-left:1.5rem}.article-body ul>li:before{content:"·";position:absolute;left:.4rem;top:-.05em;color:var(--color-muted);font-size:1.4em;line-height:1}.article-body ol{counter-reset:list}.article-body ol>li{counter-increment:list}.article-body ol>li:before{content:counter(list) ".";position:absolute;left:0;top:0;font-family:var(--font-sans);font-size:.78rem;color:var(--color-muted);line-height:2.1}.article-body li+li{margin-top:.6rem}.article-body hr{border:0;text-align:center;margin:3rem 0;height:1rem;position:relative}.article-body hr:before{content:"✦";color:var(--color-faint);font-size:.75rem;letter-spacing:.5em}.article-body code{font-size:.86em;background:transparent;padding:0 .2em;color:var(--color-text-soft);box-shadow:inset 0 -1px 0 var(--color-rule);letter-spacing:0}.article-body pre{background:var(--color-bg-soft);border:1px solid var(--color-rule);border-radius:.4rem;padding:1rem 1.15rem;overflow-x:auto;font-size:.9rem;line-height:1.75;letter-spacing:0}.article-body pre code{background:transparent;padding:0;box-shadow:none;color:var(--color-text)}.essay-nav{margin-top:5rem;padding-top:2.25rem;border-top:1px solid var(--color-rule);display:grid;grid-template-columns:1fr 1fr;gap:2rem}.essay-nav__item{display:flex;flex-direction:column;gap:.55rem;text-decoration:none;color:var(--color-text);padding:.4rem 0;transition:color .22s var(--ease)}.essay-nav__item--older{text-align:right}.essay-nav__label{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);transition:color .22s var(--ease)}.essay-nav__title{font-size:1.05rem;line-height:1.45;font-weight:500;letter-spacing:-.005em;text-wrap:balance;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0 1px;background-position:0 100%;transition:background-size .38s var(--ease),color .22s var(--ease)}.essay-nav__item--older .essay-nav__title{background-position:100% 100%}.essay-nav__item:hover .essay-nav__title{color:var(--color-accent);background-size:100% 1px}.essay-nav__item:hover .essay-nav__label{color:var(--color-accent)}.article-footer{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-rule);font-size:.95rem;font-style:italic;color:var(--color-muted)}.article-footer a{color:var(--color-muted);text-decoration:none}.article-footer a:hover{color:var(--color-accent)}.prose-page__title{font-size:clamp(1.85rem,4vw,2.3rem);font-weight:500;letter-spacing:-.01em;line-height:1.2;color:var(--color-text);margin-bottom:.7rem}.prose-page__subtitle{margin-bottom:2.75rem;font-size:1.05rem;line-height:1.85;color:var(--color-text-soft);letter-spacing:.01em;font-style:italic;text-wrap:balance}.prose-page__meta{font-family:var(--font-sans);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin-bottom:2.75rem}.prose-page__section+.prose-page__section{margin-top:3rem}.prose-page__section h2{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);font-weight:500;margin-bottom:1.4rem}.prose-page__section li,.prose-page__section p{font-size:1.02rem;line-height:1.95;letter-spacing:.012em;color:var(--color-text)}.prose-page__section p+p{margin-top:1.1rem}.prose-page__section ul{padding:0}.prose-page__section li{position:relative;padding-left:1.4rem}.prose-page__section li+li{margin-top:.85rem;padding-top:.85rem;border-top:1px dashed var(--color-rule-soft)}.prose-page__section li:before{content:"—";position:absolute;left:0;top:0;color:var(--color-faint);font-style:normal}.prose-page__section li+li:before{top:.85rem}.not-found{padding-top:4rem;padding-bottom:6rem}.not-found__eyebrow{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--color-faint);margin-bottom:1.75rem}.not-found__title{font-size:clamp(1.85rem,4vw,2.4rem);font-weight:500;letter-spacing:-.01em;line-height:1.25;color:var(--color-text);margin-bottom:1.25rem;text-wrap:balance}.not-found__body{font-size:1.05rem;line-height:1.85;color:var(--color-text-soft);font-style:italic;margin-bottom:2.5rem;max-width:28rem}.not-found__actions{display:flex;gap:1rem;align-items:baseline;font-size:.95rem;color:var(--color-muted)}.not-found__actions a{color:var(--color-muted);text-decoration:none}.not-found__actions a:hover{color:var(--color-accent)}.api-list{margin-top:1.25rem;display:grid;gap:0}.api-list__row{display:grid;gap:.25rem;padding:.95rem 0;border-top:1px dashed var(--color-rule-soft)}.api-list__row:last-child{border-bottom:1px dashed var(--color-rule-soft)}.api-list dt code{font-size:.86rem;background:transparent;padding:0;color:var(--color-text);letter-spacing:-.01em}.api-list dd{font-size:.95rem;font-style:italic;line-height:1.7;color:var(--color-muted)}@media (max-width:640px){body{font-size:17px}.page{padding:0 1.25rem}.site-header{padding:2.5rem 0 1.5rem}.site-header__inner{flex-direction:column;align-items:flex-start;gap:1rem}.site-nav{gap:1.25rem;font-size:.92rem}.article-body{font-size:1.02rem;line-height:2.05;letter-spacing:.018em}.article-body>*+*{margin-top:1.85rem}.entry__title{font-size:1.35rem}.article-header{margin:.5rem 0 2.25rem}.article-body .heading-anchor{display:none}.essay-nav{grid-template-columns:1fr;gap:1.75rem}.essay-nav__item--older{text-align:left}.essay-nav__item--older .essay-nav__title{background-position:0 100%}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:0s!important;animation-duration:0s!important}}@media print{:root{--color-bg:#ffffff;--color-text:#000000;--color-text-soft:#222222;--color-muted:#555555;--color-rule:#cccccc}.article-footer,.site-footer,.site-header{display:none}body{line-height:1.7}.article-body,body{font-size:12pt}a{color:#000;text-decoration:none}}