:root{color-scheme:light;--paper:#faf7ef;--ink:#8b1a1a;--link-hover:#b42318;--measure:660px;--shell-width:660px}[data-theme=dark]{color-scheme:dark;--paper:#241417;--ink:#faf7ef;--link-hover:#ffb4ab}*,:before,:after{box-sizing:border-box}html{background:var(--paper);scroll-behavior:auto;overflow-x:hidden}body{background:var(--paper);min-width:0;min-height:100vh;color:var(--ink);text-rendering:optimizelegibility;margin:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:17px;font-weight:400;line-height:1.6;position:relative;overflow-x:hidden}body:before{z-index:0;content:"";pointer-events:none;opacity:.035;background:url(/paper-texture.svg);position:fixed;inset:0}img,picture,svg,video,canvas{max-width:100%;display:block}button,input,textarea,select{font:inherit}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}a{color:var(--ink);text-underline-offset:.16em;overflow-wrap:anywhere;text-decoration:underline 1px}a:hover{color:var(--ink)}.skip-link{z-index:20;border:1px solid var(--ink);background-color:var(--paper);color:var(--ink);padding:.45rem .7rem;text-decoration:underline;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.shell{width:min(calc(100% - 2rem), var(--shell-width));margin-inline:auto}.site-shell{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.site-header{background:0 0}.site-header-inner{justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;padding-block:1.5rem 0;display:flex}.brand{color:var(--ink);font-weight:400}.site-nav ul,.footer-links,.tag-list{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin:0;padding:0;list-style:none;display:flex}.site-nav a,.footer-links a{color:var(--ink);font-size:.95em}.site-main{flex:1 0 auto;min-width:0;padding-block:3rem 0}.site-footer{background:0 0;margin-top:4rem}.site-footer-inner{justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;padding-block:2rem 3rem;display:flex}.footer-note{margin:0}.footer-links{justify-content:flex-end}.hero{margin:0 0 3rem;padding:0}.hero canvas,.hero .dither-field,.hero [data-dither-field]{display:none}.hero-copy{max-width:42rem}.eyebrow{display:none}h1,h2,h3,h4{color:var(--ink);font-weight:400}h1{margin:0;font-size:26px;line-height:1.25}h2{margin:0;font-size:19px;line-height:1.35}h3{font-size:18px;line-height:1.4}.hero-description{max-width:42rem;margin:1rem 0 0}.hero-links{flex-wrap:wrap;gap:.25rem 1rem;margin-top:1rem;display:flex}.hero-links a:after{content:none}.section-heading{margin:3rem 0 .75rem;display:block}.section-heading a{color:var(--ink)}.writing-list,.project-list{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.writing-item,.project-list>li{min-width:0;padding:0}.writing-item a,.project-list a{color:var(--ink)}.writing-date{color:var(--ink);margin-bottom:.05rem;font-size:.9em;display:block}.writing-title{font-size:1em;font-weight:400;line-height:1.45;display:block}.writing-description{max-width:65ch;color:var(--ink);margin:.15rem 0 0;font-size:1em;display:block}.empty-state{margin:0}.content-shell{width:min(100%, var(--measure));margin-inline:auto}.content-header{margin-bottom:3rem}.back-link{margin-bottom:1.5rem;display:inline-block}.content-date{margin-top:.75rem}.content-description{max-width:58ch;margin:1rem 0 0}.tag-list{gap:.25rem 0;margin-top:1rem}.tag-list li{color:var(--ink)}.tag-list li:not(:last-child):after{content:", "}svg.article-icon{vertical-align:-.125em;color:currentColor;fill:none;stroke:currentColor;stroke-width:1.5px;width:1em;height:1em;box-shadow:none;margin-inline-end:.35em;display:inline-block}.prose{min-width:0;max-width:var(--measure);color:var(--ink);overflow-wrap:anywhere;font-size:17px;line-height:1.65}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose :where(h1,h2,h3,h4,h5,h6){color:var(--ink);margin-top:2.25em;margin-bottom:.7em;scroll-margin-top:2rem;font-weight:700;line-height:1.35}.prose h1{font-size:26px}.prose h2{font-size:22px}.prose h3{font-size:20px}.prose h4{font-size:19px}.prose h5,.prose h6{font-size:18px}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose figure,.prose table,.prose details{margin-top:1.25em;margin-bottom:1.25em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose a{color:var(--ink);text-decoration-thickness:1px}.prose strong{color:var(--ink);font-weight:700}.prose code,.prose kbd,.prose samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86em}.prose :not(pre)>code{border:1px solid var(--ink);background:var(--paper);color:inherit;overflow-wrap:anywhere;padding:.08em .3em}.prose pre{border:1px solid var(--ink);background:var(--paper);max-width:100%;color:var(--ink);tab-size:2;white-space:pre;padding:1rem;font-size:.86rem;line-height:1.55;overflow-x:auto}.prose pre code,.prose pre code *{background:0 0}.prose pre code span{color:var(--shiki-light,inherit);font-style:var(--shiki-light-font-style,inherit);font-weight:var(--shiki-light-font-weight,inherit);text-decoration:var(--shiki-light-text-decoration,inherit)}[data-theme=dark] .prose pre code span{color:var(--shiki-dark,inherit);font-style:var(--shiki-dark-font-style,inherit);font-weight:var(--shiki-dark-font-weight,inherit);text-decoration:var(--shiki-dark-text-decoration,inherit)}.prose pre code{overflow-wrap:normal;border:0;padding:0}.prose blockquote{border-left:2px solid var(--ink);margin-inline:0;padding-left:1rem}.prose aside.callout{border-left:2px solid var(--ink);background:color-mix(in srgb, var(--paper) 94%, var(--ink) 6%);min-width:0;max-width:100%;margin-block:1.5em;padding:.7rem .9rem}.prose aside.callout>p.callout-title{margin:0 0 .3rem;font-weight:700}.prose aside.callout>p.callout-title+div.callout-body{overflow-wrap:anywhere;margin:0}.prose aside.callout>p.callout-title+div.callout-body>:first-child{margin-top:0}.prose aside.callout>p.callout-title+div.callout-body>:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--ink);margin-block:3rem}.prose img{width:auto;max-width:100%;height:auto;margin-inline:auto}.prose figure:not(.no-shadow):not([data-no-shadow]),.prose img:not(.no-shadow):not([data-no-shadow]){box-shadow:4px 4px 0 var(--ink)}.prose figure img:not(.no-shadow):not([data-no-shadow]),.prose figure:has(mjx-container){box-shadow:none}.prose figure{margin-inline:0}.prose figcaption{color:var(--ink);text-align:center;margin-top:.6rem;font-size:.9em}.prose table,.prose .table-scroll{max-width:100%;display:block;overflow-x:auto}.prose table{border-collapse:collapse;white-space:nowrap;width:max-content;min-width:100%}.prose th,.prose td{border:1px solid var(--ink);text-align:left;padding:.45rem .65rem}.prose th{color:var(--ink);background:var(--paper);font-weight:700}.prose iframe{border:1px solid var(--ink);width:100%;max-width:100%;min-height:20rem;display:block}.prose mjx-container{color:currentColor}.prose mjx-container[display=true]{max-width:100%;margin-block:1.8em;padding-block:.35em;display:block;overflow:auto hidden}.prose mjx-container:not([display=true]){display:inline}.prose mjx-container svg{color:currentColor}.prose mjx-container[display=true] svg{max-width:none}.prose mjx-container:not([display=true]) svg{display:inline}.prose details{border-block:1px solid var(--ink);padding-block:.75rem}.prose summary{cursor:pointer;color:var(--ink)}.prose details.foldable-callout{border:0;padding-block:0}.prose details.foldable-callout>summary{padding-block:.15rem;font-weight:700}.prose details.foldable-callout>summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.prose details.foldable-callout[open]>summary{margin-bottom:.65rem}.prose details.foldable-callout[open]>summary+*{margin-top:0}@media (width<=600px){.site-header-inner,.site-footer-inner{flex-wrap:wrap;align-items:flex-start}.site-nav ul,.footer-links{gap:.25rem .85rem}.site-main{padding-top:1.5rem}.site-footer{margin-top:3rem}.site-footer-inner{padding-block:1.5rem 2rem}.footer-links{justify-content:flex-start}}@supports (background-clip:text){a,.prose a code,a>:is(.writing-date,.writing-title,.writing-description){background-image:linear-gradient(to right, var(--link-hover) 0 50%, currentColor 50% 100%), linear-gradient(transparent, transparent);-webkit-text-fill-color:transparent;background-position:100% 0,0 0;background-repeat:no-repeat;background-size:200% 100%,100% 100%;-webkit-background-clip:text,border-box;background-clip:text,border-box;transition:background-position .28s}a:hover,a:focus-visible,.prose a:is(:hover,:focus-visible) code,a:is(:hover,:focus-visible)>:is(.writing-date,.writing-title,.writing-description){background-position:0 0,0 0}a::selection,a ::selection{color:var(--paper);-webkit-text-fill-color:var(--paper)}}@media (prefers-reduced-motion:reduce){a,.prose a code,a>:is(.writing-date,.writing-title,.writing-description){transition:none}}@media print,(forced-colors:active){a,a:hover,a:focus-visible,.prose a code,a>:is(.writing-date,.writing-title,.writing-description){-webkit-text-fill-color:currentColor;background-image:none;-webkit-background-clip:border-box;background-clip:border-box;transition:none}}.code-copy{min-width:0;max-width:100%;margin-block:1.25em;position:relative}.prose .code-copy>pre{min-width:0;max-width:100%;margin-block:0;padding-top:3.25rem;overflow-x:auto}.code-copy__button{z-index:1;border:1px solid var(--ink);background:var(--paper);block-size:2rem;inline-size:2rem;color:var(--ink);cursor:pointer;place-items:center;padding:0;display:grid;position:absolute;top:.65rem;right:.65rem}.code-copy__button:hover{background:var(--ink);color:var(--paper)}.code-copy__button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.code-copy__button:disabled{cursor:wait;opacity:.7}.code-copy__icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75px;block-size:1.1rem;inline-size:1.1rem;display:block}.code-copy__icon--success,.code-copy__icon--error,.code-copy__button[data-state=success] .code-copy__icon--copy,.code-copy__button[data-state=error] .code-copy__icon--copy{display:none}.code-copy__button[data-state=success] .code-copy__icon--success,.code-copy__button[data-state=error] .code-copy__icon--error{display:block}.code-copy__status{clip:rect(0 0 0 0);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prose>.code-copy:first-child{margin-top:0}.prose>.code-copy:last-child{margin-bottom:0}.prose details.foldable-callout[open]>summary+.code-copy{margin-top:0}:root{color-scheme:light;--paper:#faf7ef;--ink:#8b1a1a;--color-bg:var(--paper);--color-ink:var(--ink)}[data-theme=dark]{--paper:#241417;--ink:#faf7ef;--color-bg:var(--paper);--color-ink:var(--ink)}.theme-toggle[data-astro-cid-l6lhmie6]{z-index:10;block-size:2.25rem;inline-size:2.25rem;color:var(--ink);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:fixed;top:1rem;right:1rem}.theme-toggle__icon[data-astro-cid-l6lhmie6]{block-size:20px;inline-size:20px;display:block}.theme-toggle__icon--sun[data-astro-cid-l6lhmie6],.theme-toggle[data-astro-cid-l6lhmie6][aria-pressed=true] .theme-toggle__icon--moon[data-astro-cid-l6lhmie6]{display:none}.theme-toggle[data-astro-cid-l6lhmie6][aria-pressed=true] .theme-toggle__icon--sun[data-astro-cid-l6lhmie6]{display:block}.theme-toggle[data-astro-cid-l6lhmie6]:focus-visible{outline-offset:3px;outline:2px solid}@media (width<=30rem){html body{padding-top:calc(2.25rem + env(safe-area-inset-top,0px))}.theme-toggle[data-astro-cid-l6lhmie6]{top:calc(.75rem + env(safe-area-inset-top,0px));right:calc(.75rem + env(safe-area-inset-right,0px))}}
