:root{--bg:#f0eee6;--ink:#1f1e1d;--muted:#5e5d59;--hover:#5e5d59;--toggle-track:#faf9f5;--toggle-border:#1f1e1d;--toggle-knob:#1f1e1d;--font:"Newsreader", "Noto Serif SC", "Times New Roman", serif;--measure:620px}html.dark{--bg:#1f1e1d;--ink:#f0eee6;--muted:#b0aea5;--hover:#b0aea5;--toggle-track:#3d3d3a;--toggle-border:#f0eee6;--toggle-knob:#f0eee6;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);color-scheme:light;font-family:var(--font);font-optical-sizing:auto;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:20px;font-weight:400;line-height:1.6}html.dark{color-scheme:dark}body{background:var(--bg);min-height:100vh;color:var(--ink);margin:0}::selection{background:color-mix(in srgb, var(--ink) 18%, transparent);color:inherit}a{color:var(--ink);text-underline-offset:.1em;text-decoration:underline .08em}a:hover{color:var(--hover)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.wrap{width:100%;max-width:var(--measure);margin:0 auto;padding:0 20px}.site-header{justify-content:space-between;align-items:center;margin:15px 0 25px;padding:15px 0 10px;display:flex}.header-brand{align-items:center;gap:.55em;min-width:0;display:flex}.header-close{color:var(--ink);font-size:1.35em;font-weight:400;line-height:1;text-decoration:none}.header-close:hover{color:var(--hover)}.header-name-link{color:var(--ink);text-decoration:none}.header-name-link:hover{color:var(--ink)}.header-name{margin:0;font-size:28.8px;font-weight:600;line-height:1}.toggle-switch{flex:none;width:40px;height:20px;display:inline-block;position:relative;transform:translateY(-1px)}.toggle-checkbox{opacity:0;width:0;height:0;position:absolute}.toggle-label{cursor:pointer;border:1px solid var(--toggle-border);background:var(--toggle-track);border-radius:2rem;margin:0;position:absolute;inset:0}.toggle-label:before{content:"";background:var(--toggle-knob);border-radius:50%;width:14px;height:14px;position:absolute;bottom:2px;left:2px}.toggle-label.has-transition:before{transition:transform .2s linear}.toggle-checkbox:checked+.toggle-label:before{transform:translate(20px)}.toggle-checkbox:focus-visible+.toggle-label{outline:2px solid var(--ink);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bio{margin:0 0 1.3em}.bio p{margin:0 0 20px}.section{margin-top:1.3em}.section-title,.page-title{margin:0 0 .7em;font-size:24px;font-weight:600;line-height:1.2}.article-list{margin:0;padding-left:1.2em}.article-list li{margin:0 0 .8em;padding-left:.15em}.article-list a{color:var(--ink)}.post-title{text-wrap:balance;margin:.6em 0 .1em;font-size:clamp(2.4rem,7vw,3.1rem);font-weight:700;line-height:1.1}.post-subtitle{margin:0 0 .4em;font-size:22px;font-style:italic;font-weight:400;line-height:1.4}.post-date{color:var(--muted);margin:.8em 0 1.4em;font-size:18px;line-height:1.4}.prose{font-size:20px;font-weight:400;line-height:1.6}.prose>:first-child{margin-top:0}.prose p{margin:0 0 20px}.prose h2{margin:1.4em 0 .5em;font-size:1.6em;font-weight:600;line-height:1.2}.prose h3{margin:1.3em 0 .5em;font-size:1.2em;font-weight:600;line-height:1.2}.prose ul,.prose ol{margin:0 0 20px;padding-left:1.4em}.prose li{margin:0 0 .3em}.prose blockquote{border-left:1px solid color-mix(in srgb, var(--ink) 22%, transparent);margin:1.4em 0;padding:.25em 0 .1em 1.25em;font-style:italic}.prose hr{border:0;border-top:1px solid color-mix(in srgb, var(--ink) 18%, transparent);margin:2em 0}.prose strong{font-weight:600}.prose em{font-style:italic}.prose figure{margin:1.6em 0 1.8em}.prose img{border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);width:100%;height:auto;display:block}.prose figcaption,.prose p:has(>img)+p em{color:var(--muted);margin:.45em 0 0;font-size:16px;font-style:italic;line-height:1.45}.page-lead{margin:0 0 20px}.site-footer{color:var(--muted);margin-top:3em;padding:1.6em 0 2.4em;font-size:16px;line-height:1.5}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
