@font-face{font-family:"Jay Reading SC";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/jay-reading-sc-400.woff2") format("woff2");unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FE30-FFEF}
@font-face{font-family:"Jay Reading SC";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/jay-reading-sc-600.woff2") format("woff2");unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FE30-FFEF}
@font-face{font-family:"Jay Reading SC";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/jay-reading-sc-700.woff2") format("woff2");unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FE30-FFEF}
/* Independently implemented from measured rules; original illustration/assets are not bundled. */
@font-face{font-family:"Iowan Old Style Local";font-style:normal;font-weight:400;font-display:swap;src:local("Iowan Old Style"),local("IowanOldStyle-Roman"),local("Iowan Old Style BT")}
@font-face{font-family:"Iowan Old Style Local";font-style:italic;font-weight:400;font-display:swap;src:local("Iowan Old Style Italic"),local("IowanOldStyle-Italic")}
@font-face{font-family:"Iowan Old Style Local";font-style:normal;font-weight:700;font-display:swap;src:local("Iowan Old Style Bold"),local("IowanOldStyle-Bold")}
@font-face{font-family:"Iowan Old Style Local";font-style:italic;font-weight:700;font-display:swap;src:local("Iowan Old Style Bold Italic"),local("IowanOldStyle-BoldItalic")}
:root{--font-reading:"Iowan Old Style Local","Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Jay Reading SC","Songti SC",STSong,SimSun,serif;--font-ui:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--bg:#fff;--text-copy:#282828;--text-heading:#282828;--text-secondary:#504945;--text-nav:#676767;--text-nav-hover:#504945;--surface-subtle:#f3f3f2;--code-background:#f3f3f2;--code-inline:#ad2111;--divider:#e2e2df;--line-subtle:rgba(40,40,40,.1);--focus-color:#6657c8}
.dark{--bg:#1b1a19;--text-copy:#e8e5df;--text-heading:#f4f1eb;--text-secondary:#cbc6be;--text-nav:#aaa59e;--text-nav-hover:#f4f1eb;--surface-subtle:#242321;--code-background:#242321;--code-inline:#e06c5f;--divider:#3b3936;--line-subtle:rgba(232,229,223,.18)}
@supports(color:color-mix(in srgb,black,transparent)){:root{--line-subtle:color-mix(in srgb,var(--text-copy)10%,transparent)}.dark{--line-subtle:color-mix(in srgb,var(--text-copy)18%,transparent)}}
*,:before,:after{box-sizing:border-box}html{font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;text-size-adjust:100%;tab-size:4;background:var(--bg);min-width:0;font-kerning:auto;text-rendering:auto}body{margin:0;padding:0;min-height:100vh;color:var(--text-copy);background:var(--bg);font:400 17px/1.6 var(--font-reading);font-feature-settings:normal;font-variant-ligatures:normal;letter-spacing:normal;overflow-x:clip;-webkit-font-smoothing:antialiased}button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;border-radius:0}img,svg,video{display:block}img,video{height:auto}button{cursor:pointer}p,h1,h2,h3,h4,ul,ol,figure,blockquote,pre{margin:0}::selection{background:color-mix(in srgb,var(--text-copy)12%,transparent)}
.site-shell{--page-pad:clamp(1.25rem,3.4vw,3.25rem);min-height:100vh;padding:var(--page-pad);container-type:inline-size}.content-frame{--content-width:600px;width:min(100%,var(--content-width));margin-inline:auto;position:relative;overflow-wrap:break-word}.home-layout,.home-copy{min-width:0}.home-visual{display:none;position:relative;overflow:hidden;isolation:isolate;border:1px solid var(--line-subtle);border-radius:10px;background:var(--surface-subtle)}
.content-frame p,.content-paragraph{text-wrap:pretty;margin:0 0 1.45rem}.content-title,.site-title{color:var(--text-heading);font-family:var(--font-reading);font-weight:600;line-height:1.4;letter-spacing:-.02em;text-wrap:balance}.site-title{font-size:clamp(2.2rem,3.5vw,2.65rem);line-height:1.15;margin:0 0 .95em}.site-title-at{font-size:1.1em;line-height:0;display:inline-block;position:relative;top:.015em;margin-right:.015em}.content-title{font-size:30px;margin:0 0 .6em}.content-title:has(+.article-meta){line-height:1.1;margin-bottom:12px}.content-heading,.writing-index h2{font-family:var(--font-reading);font-size:1.45rem;font-weight:600;line-height:1.4;letter-spacing:-.02em;text-wrap:balance;color:var(--text-heading);margin:3.1rem 0 1.2rem}.content-subheading{font:italic 400 1.35rem/1.4 var(--font-reading);letter-spacing:-.02em;margin:2.8rem 0 1.05rem;color:var(--text-heading)}.content-small-heading{font-size:.97rem;font-style:italic;font-weight:400;line-height:1.4;margin:2.2rem 0 .8rem}.content-subtitle{font-size:.85em;font-style:italic;line-height:1.4;color:var(--text-nav)}.cjk-heading{letter-spacing:0}
.content-frame a{color:var(--text-nav);text-decoration-line:underline;text-decoration-color:color-mix(in srgb,var(--text-nav)30%,transparent);text-decoration-thickness:auto;text-underline-offset:.18em;text-decoration-skip-ink:auto;transition:color .3s ease-in-out,text-decoration-color .3s ease-in-out}.content-frame a:hover{color:var(--text-secondary);text-decoration-color:color-mix(in srgb,var(--text-secondary)30%,transparent)}
.bio-section{margin-bottom:3.25rem}.bio-toggle{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line-subtle);padding-bottom:.55rem;margin-bottom:1.35rem;font:400 14px/1.4 var(--font-ui);letter-spacing:.01em;color:var(--text-nav)}.bio-toggle-options{display:flex;gap:1rem;margin-left:auto}.bio-toggle button{background:none;border:0;padding:.2rem 0;color:inherit;font:inherit;position:relative;transition:color .16s}.bio-toggle button:hover,.bio-toggle button[aria-pressed=true]{color:var(--text-copy)}.bio-toggle button[aria-pressed=true]:after{content:"";position:absolute;left:0;right:0;bottom:-.62rem;height:1px;background:var(--text-copy)}
.writing-index,.writing-index>section+section{margin-top:3.5rem}.writing-index h2{margin-top:0}.notes-list{columns:2;column-gap:2.5rem;margin:.8em 0 0;padding-left:1.1em;list-style:square}.notes-list li{break-inside:avoid;margin-bottom:.2rem;padding:0 0 0 .15em}.notes-list>li::marker{color:color-mix(in srgb,var(--text-nav)70%,transparent)}.blogs-list{border-top:1px solid var(--line-subtle);margin-top:.85em}.content-frame .blog-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:1.25rem;padding:.72em 0;border-bottom:1px solid var(--line-subtle);color:var(--text-copy);text-decoration:none}.content-frame .blog-row:hover{color:var(--text-copy)}.blog-row time{font-family:var(--font-ui);font-size:14px;font-variant-numeric:lining-nums tabular-nums;letter-spacing:0;white-space:nowrap;color:var(--text-nav)}
@media(hover:hover) and (pointer:fine){.content-frame .blog-row{transition:opacity .3s ease-in-out}.blogs-list:hover .blog-row{opacity:.8}.blogs-list:hover .blog-row:hover{opacity:1}}
.article-meta{display:flex;align-items:center;gap:.45rem;margin:0 0 2.4rem;font:400 13px/1.35 var(--font-ui);color:var(--text-nav)}.content-frame a.article-meta{color:var(--text-nav);text-decoration:none}.article-meta-details{display:flex;align-items:baseline;gap:.4rem;letter-spacing:-.005em}.content-frame .fixture-notice{font:400 13px/1.6 var(--font-ui);color:var(--text-nav)}
@media(min-width:1100px){.content-frame:has(>.content-title+.article-meta){margin-top:48px}.home-layout{display:grid;width:min(100cqi,1500px);margin-inline:calc((var(--content-width) - min(100cqi,1500px))/2);grid-template-columns:minmax(0,1.75fr) minmax(380px,1fr);gap:clamp(2rem,3.6vw,3.75rem);align-items:start}.home-copy{width:min(100%,var(--content-width))}.home-visual{display:block;position:sticky;top:var(--page-pad);height:calc(100svh - 2*var(--page-pad));min-height:min(72svh,760px)}}
@media(max-width:639px){.site-shell{padding:2.5rem 1.25rem 1.25rem}.site-title{margin-bottom:.9em}.content-title{font-size:2rem}.notes-list{columns:1}.content-frame .blog-row{grid-template-columns:1fr;gap:.15rem}.blog-row time{font-size:13px}}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-color);outline-offset:3px;border-radius:2px}
@property --painting-wind{syntax:"<number>";inherits:true;initial-value:0}@property --painting-gust{syntax:"<number>";inherits:false;initial-value:0}.home-painting{position:absolute;inset:0;transition:--painting-wind 1.6s ease-out}.home-painting svg{position:absolute;inset:0;width:100%;height:100%}.home-painting-clouds{animation:painting-drift 9s linear infinite alternate paused;overflow:visible}.home-painting-sway{transform-box:fill-box;transform-origin:50% 100%;animation:painting-gust 3.2s ease-in-out infinite paused}.home-painting-grass{transform:skewX(calc(var(--painting-gust)*var(--painting-wind)*-2.5deg))}.home-painting-wheat{transform:rotate(calc(var(--painting-gust)*var(--painting-wind)*1.4deg))}.home-painting-leaf{transform:rotate(calc(var(--painting-gust)*var(--painting-wind)*1deg))}.home-visual:hover .home-painting{--painting-wind:1;transition:--painting-wind .6s ease-out}.home-visual:hover .home-painting-clouds,.home-visual:hover .home-painting-sway{animation-play-state:running}@keyframes painting-drift{to{transform:translateX(5%)}}@keyframes painting-gust{0%,100%{--painting-gust:.1}50%{--painting-gust:1}}
.media-placeholder-label{position:absolute;inset:45% 0 auto;display:grid;gap:8px;text-align:center;font:400 14px/1.4 var(--font-ui);color:var(--text-nav);pointer-events:none}.media-placeholder-label span+span{font-size:12px}
@media(prefers-reduced-motion:reduce){*,::before,::after{scroll-behavior:auto!important;transition-duration:.01ms!important}.home-painting-clouds,.home-painting-sway{animation:none}}
.content-strong,strong{font-weight:700}.content-emphasis,em{font-style:italic;font-weight:400}.cjk-em{font-style:normal;font-weight:600}
.content-list{margin:1rem 0 1.2rem 1.5rem;padding-left:0;list-style:square}.content-ordered-list{margin-left:2rem;list-style:decimal}.content-frame .content-list li{text-wrap:pretty;margin:0 0 .2rem;padding:0}.content-list>li::marker{color:color-mix(in srgb,var(--text-nav)70%,transparent)}.content-frame li>p:last-child{margin-bottom:0}
.content-blockquote{border-left:2px solid color-mix(in srgb,var(--text-nav)35%,var(--bg)65%);margin:0 0 1.6rem;color:var(--text-secondary);padding:.1rem 0 .1rem 1.25rem}.content-blockquote>:last-child{margin-bottom:0}
.content-frame pre{background:var(--code-background);font-variant-ligatures:none;text-size-adjust:none;border-radius:.45rem;margin:0 0 1.333rem;padding:1rem 2rem 1rem 1rem;font-family:"SF Mono",Monaco,Inconsolata,"Fira Code",monospace;font-weight:400;line-height:1.4;position:relative;overflow-x:auto}.content-frame pre code{font-variant-ligatures:none;letter-spacing:0;background:none;padding:0;font-family:inherit;font-size:13px;font-weight:400;line-height:1.75;display:block}.content-frame code:not(pre code){color:var(--code-inline);background:none;border-radius:0;padding:0 .2rem;font-family:SFMono-Regular,"SF Mono",ui-monospace,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.9em}
.content-frame table{border-collapse:collapse;white-space:normal;margin:0 auto 1.333rem;display:block;overflow-x:auto}.content-frame th,.content-frame td{border:1px solid var(--text-nav);text-align:start;vertical-align:top;min-width:18ch;padding:.75rem}.content-frame th{background:var(--surface-subtle);font-weight:700}.content-frame hr{background:var(--divider);border:0;height:1px;margin:24px 0}.content-frame>:last-child{margin-bottom:0}.content-frame img:not(.w-screen){max-width:100%}
.content-frame details{margin-block:1.6em}.content-frame summary{color:var(--text-nav);cursor:pointer;font-family:var(--font-ui);letter-spacing:0;align-items:center;gap:.55rem;font-size:13px;list-style:none;transition:color .16s;display:flex}.content-frame summary:hover{color:var(--text-copy)}.content-frame summary::-webkit-details-marker{display:none}.content-frame summary:before{clip-path:polygon(0 0,100% 50%,0 100%);content:"";background:currentColor;flex:none;width:7px;height:7px;transition:transform .16s}.content-frame details[open]>summary:before{transform:rotate(90deg)}.content-frame .article-disclosure-summary{margin-left:4px;margin-bottom:8px}
.wide-media{position:relative;width:100vw;max-width:1100px;left:50%;transform:translateX(-50%);margin-block:2.5rem}.wide-media img{width:100%;height:auto}.wide-media figcaption{font:400 13px/1.6 var(--font-ui);color:var(--text-nav);padding:.5rem 1.25rem 0;max-width:600px;margin:auto}
.margin-note-reference{font-size:.72em;line-height:0;position:relative;vertical-align:baseline;top:-.5em}.content-frame a.margin-note-reference-link{text-decoration:none}.margin-note{font:400 13px/1.4 var(--font-ui);color:var(--text-nav)}.margin-note-desktop{display:none}.article-margin-notes{display:flex;flex-direction:column;margin-top:2rem}.article-margin-notes:empty{display:none}.margin-note-mobile{display:block;margin-top:1rem}.margin-note-backlink{margin-left:.15em}.margin-notes-list{margin:0;padding-left:1.5rem}.margin-notes-list li{font:400 13px/1.4 var(--font-ui);color:var(--text-nav)}
@media(min-width:1400px){.content-frame .article-margin-notes{display:none}.content-frame .margin-note-desktop{width:240px;margin:0;display:block;position:absolute;left:calc(100% + 2rem);transform:translateY(-1.67rem)}.content-frame a.margin-note-reference-link{pointer-events:none}}
.bio-gallery{width:100%;margin:2.5rem 0 3.25rem}.fixture-gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.bio-gallery-item{border:1px solid var(--line-subtle);background:var(--surface-subtle);cursor:zoom-in;border-radius:3px;padding:0;transition:opacity .16s,transform .16s;overflow:hidden}.bio-gallery-item img{width:100%;height:auto}.bio-gallery-item:hover{opacity:.88;transform:translateY(-2px)}
.gallery-dialog{border:0;padding:0;margin:auto;background:none;color:white;max-width:calc(100vw - 96px);max-height:calc(100svh - 96px);overflow:visible}.gallery-dialog[open]{animation:gallery-image .3s cubic-bezier(.2,0,.2,1)}.gallery-dialog::backdrop{background:rgba(0,0,0,.78);animation:gallery-backdrop .3s ease-out}.gallery-dialog img{width:min(72vw,900px);max-height:calc(100svh - 128px);object-fit:contain;box-shadow:0 25px 60px #0006}.gallery-dialog button{position:absolute;background:none;border:0;color:white;font:400 32px/1 var(--font-ui);padding:8px}.gallery-close{top:-42px;right:-10px}.gallery-previous{left:-45px;top:calc(50% - 24px)}.gallery-next{right:-45px;top:calc(50% - 24px)}.gallery-counter{position:absolute;bottom:-32px;width:100%;text-align:center;font:400 13px/1.4 var(--font-ui)}.gallery-dialog.closing,.gallery-dialog.closing::backdrop{opacity:0;transition:opacity .3s ease-out}
@keyframes gallery-backdrop{from{background:transparent}}@keyframes gallery-image{from{opacity:0;transform:scale(.96)}}
@media(max-width:639px){.bio-gallery-item:nth-child(2n){margin-top:1.5rem}.gallery-dialog img{width:calc(100vw - 96px)}}
@media(hover:none),(pointer:coarse){.home-visual:hover .home-painting{--painting-wind:0}.home-painting-clouds,.home-painting-sway{animation:none}}
/* Development harness duplicates conservative preference rules without claiming device emulation. */
.test-reduced-motion *,.test-reduced-motion ::before,.test-reduced-motion ::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}.test-reduced-motion .home-painting-clouds,.test-reduced-motion .home-painting-sway,.test-touch .home-painting-clouds,.test-touch .home-painting-sway{animation:none}.test-touch .home-visual:hover .home-painting{--painting-wind:0}
@media(prefers-reduced-motion:reduce){.gallery-dialog[open],.gallery-dialog::backdrop{animation:none}}

.content-frame a.article-meta:hover,.content-frame a.margin-note-reference-link:hover{color:var(--text-secondary);text-decoration:none}
