:root{color-scheme:light dark;--ink: #382521;--paper: #f5eee6;--spot-light: #9b422d;--spot-dark: #f3b59d;--spot: light-dark(var(--spot-light), var(--spot-dark));--bg: light-dark(var(--paper), var(--ink));--fg: light-dark(var(--ink), var(--paper));--dim: color-mix(in oklab, var(--fg) 48%, var(--bg));--faint: color-mix(in oklab, var(--fg) 15%, var(--bg));--wash: color-mix(in oklab, var(--fg) 6%, var(--bg));--on-dim: color-mix(in oklab, var(--bg) 66%, var(--fg));--serif: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--t-label: 12px;--t-small: 14px;--t-body: clamp(16px, .42vw + 14px, 18.5px);--t-lead: clamp(17px, .62vw + 14px, 24px);--t-h2: 1.48em;--t-title: clamp(34px, 5.8vw, 82px);--t-display: clamp(64px, 11.5vw, 176px);--measure: 66ch;--tracking-label: .08em;--bar: 64px;--header-height: calc(var(--bar) + var(--rule));--aside: round(nearest, clamp(10rem, 15vw, 14.5rem), 1px);--pad: round(nearest, clamp(18px, 4.4vw, 72px), 2px);--spread-y: clamp(26px, 3.6vw, 62px);--rule: 1px;--rule-color: color-mix(in oklab, var(--fg) 24%, var(--bg));--rule-strong: var(--rule-color);--ease: cubic-bezier(.3, .7, 0, 1);--t-switch: .12s;--t-nudge: .2s;--t-slide: .3s;--t-turn: .55s}:root[data-ink=flip]{--bg: light-dark(var(--ink), var(--paper));--fg: light-dark(var(--paper), var(--ink))}@media(max-width:780px){:root{--bar: 56px}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{background:var(--bg);scrollbar-gutter:stable;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--serif);font-size:var(--t-body);line-height:1.62;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:var(--fg);color:var(--bg)}*{scrollbar-width:thin;scrollbar-color:var(--fg) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--fg);border:2px solid var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:var(--rule) solid var(--fg);outline-offset:3px}img,svg,video{max-width:100%}img{display:block;height:auto;border:var(--rule) solid var(--rule-color)}hr{border:0;border-top:var(--rule) solid var(--rule-strong)}kbd{font-family:var(--mono);font-size:.82em;border:var(--rule) solid var(--rule-color);padding:.05em .35em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:1ms!important;scroll-behavior:auto!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.skip-link{position:fixed;top:.5rem;left:var(--pad);z-index:100;padding:.5em 1em;background:var(--fg);color:var(--bg);font-family:var(--sans);font-size:var(--t-small);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}body{display:flex;flex-direction:column;min-height:100svh}.bar,.colophon{flex-shrink:0}.site-content{display:flex;flex-direction:column;flex:1}.page{position:relative;flex:1}.page:before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--pad) + var(--aside));width:var(--rule);background:var(--rule-color);pointer-events:none}.spread{display:grid;grid-template-columns:var(--aside) minmax(0,1fr);gap:0;padding:var(--spread-y) var(--pad);border-bottom:var(--rule) solid var(--rule-color)}.spread--hero{padding:clamp(46px,7.5vw,124px) var(--pad) clamp(34px,4.6vw,74px);border-bottom:var(--rule) solid var(--rule-strong)}.spread--flush{padding:0;grid-template-columns:minmax(0,1fr);border-bottom:0}.spread--last{border-bottom:0}.spread__aside{align-self:start;position:sticky;top:calc(var(--header-height) + 1.7rem);display:flex;flex-direction:column;gap:.5em;padding-right:calc(var(--pad) * .5)}.spread__main{grid-column:2;min-width:0;padding-left:calc(var(--pad) * .5)}.spread--flush .spread__main{grid-column:1;padding:0}.label{font-family:var(--sans);font-size:var(--t-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--dim);line-height:1.75}.label b,.label strong{color:var(--fg);font-weight:500}.label a{transition:color var(--t-switch)}@media(hover:hover){.label a:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px}}.masthead{font-family:var(--serif);font-weight:300;font-size:var(--t-display);line-height:.88;letter-spacing:-.05em;padding-bottom:.1em}.masthead .dot{color:var(--spot)}.page-title{font-family:var(--serif);font-weight:300;font-size:var(--t-title);line-height:.96;letter-spacing:-.038em;max-width:24ch}.lede{max-width:40ch;margin-top:1.3em;font-size:var(--t-lead);line-height:1.48;letter-spacing:-.008em}.lede a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--faint);transition:text-decoration-color var(--t-switch)}@media(hover:hover){.lede a:hover{text-decoration-color:var(--fg)}}.page-desc{max-width:50ch;margin-top:1.15em}@media(max-width:780px){.page:before{display:none}.spread{grid-template-columns:1fr;gap:.9rem}.spread__aside{position:static;padding-right:0;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.25em 1.2em}.spread__main{grid-column:1;padding-left:0}.masthead{font-size:clamp(64px,15vw,176px)}.lede{margin-top:1em}}section[id]{scroll-margin-top:calc(var(--header-height) + 1rem)}.page>.spread:last-child{border-bottom:0}@media(max-width:780px){.spread__aside>.page-number~*{display:none}.spread__aside>.rail-detail{display:none}}.bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;height:var(--header-height);padding-right:var(--pad);background:var(--bg);border-bottom:var(--rule) solid var(--rule-color);font-family:var(--serif);font-size:18px;letter-spacing:-.01em}.bar__brand{display:flex;align-items:center;flex:0 0 calc(var(--pad) + var(--aside) + var(--rule));align-self:stretch;gap:.65rem;padding-left:var(--pad);border-right:var(--rule) solid var(--rule-color);font-weight:500}.logo{display:block;flex:0 0 auto}@media(hover:hover){.bar__brand:hover{color:var(--spot)}}.bar__nav{display:flex;align-self:stretch;align-items:stretch;gap:2rem;padding-left:calc(var(--pad) * .5)}.bar__nav a{position:relative;display:flex;align-items:center;min-height:44px;color:color-mix(in oklab,var(--fg) 72%,var(--bg));transition:color var(--t-switch)}.bar__nav a[aria-current=page]{color:var(--fg)}@media(hover:hover){.bar__nav a:hover{color:var(--fg)}}.bar__nav a[aria-current=page]:after{content:"";position:absolute;bottom:-1px;inset-inline:0;height:2px;background:var(--spot)}.bar__grow{flex:1}.bar__key{display:inline-grid;place-items:center;flex:0 0 44px;width:44px;height:44px;line-height:0;color:var(--fg)}@media(hover:hover){.bar__key:hover{background:var(--wash)}}.ink-key{display:block}.bar__progress{position:absolute;inset:auto auto -1px 0;height:2px;width:0;background:var(--spot);pointer-events:none}@media(max-width:780px){.bar{padding-inline:var(--pad);gap:.75rem}.bar__brand{flex:0 0 auto;border:0;padding:0}.bar__brand-name{display:none}.bar__nav{flex:1;justify-content:center;gap:clamp(12px,3vw,22px);padding:0}.bar__nav a{font-size:16px;letter-spacing:-.01em}.bar__grow{display:none}.bar>.bar__key{flex-basis:32px;width:32px}}@media(prefers-reduced-motion:no-preference){.ink-key{transition:transform var(--t-turn) var(--ease)}:root[data-ink=flip] .ink-key{transform:rotate(180deg)}.bar__progress{transition:width var(--t-nudge) linear}}[data-ink-list]{--ink-duration: var(--t-slide);--ink-easing: var(--ease);position:relative}[data-ink-slab]{position:absolute;top:0;left:0;width:var(--ink-width, 0px);height:var(--ink-height, 0px);transform:translate(var(--ink-x, 0px),var(--ink-y, 0px));background:var(--fg);opacity:0;pointer-events:none;transition:transform var(--ink-duration) var(--ink-easing),width var(--ink-duration) var(--ink-easing),height var(--ink-duration) var(--ink-easing),opacity var(--t-switch)}[data-ink-overlay]{opacity:0;clip-path:inset(var(--ink-y, 0px) calc(100% - var(--ink-x, 0px) - var(--ink-width, 0px)) calc(100% - var(--ink-y, 0px) - var(--ink-height, 0px)) var(--ink-x, 0px));transition:clip-path var(--ink-duration) var(--ink-easing),opacity var(--t-switch)}[data-ink-list][data-on]>:is([data-ink-slab],[data-ink-overlay]){opacity:1}[data-ink-snap]>:is([data-ink-slab],[data-ink-overlay]){transition:none}@media(prefers-reduced-motion:reduce){[data-ink-slab],[data-ink-overlay]{display:none}}.rows-wrap{position:relative}.rows__ink{z-index:1}.rows{list-style:none}.spread__main>.rows-wrap{margin-left:calc(var(--pad) * -.5)}.spread--list{padding-block:0;padding-right:0}.spread--list .row{padding-right:calc(var(--pad) - .55em)}.spread--list>.spread__aside{padding-top:var(--spread-y);padding-bottom:var(--spread-y)}.spread--list .rows>li:last-child>.row{border-bottom:0}.row{position:relative;display:grid;grid-template-columns:4ch minmax(0,1fr) auto 2ch;align-items:baseline;gap:0 1.7ch;padding:.82em .55em;border-bottom:var(--rule) solid var(--rule-color);transition:color .12s linear,border-color .12s linear}.row:focus-visible{outline:2px solid var(--spot);outline-offset:-2px}.row>*{position:relative;z-index:2}.row[data-lit]{color:var(--bg)}.row__body{transition:transform var(--t-slide) var(--ease)}.row[data-lit] .row__body{transform:translate(5px)}.row__no,.row__meta{font-family:var(--sans);font-size:var(--t-label);letter-spacing:.02em;text-transform:none;color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums;transition:color var(--t-switch)}.row[data-lit] .row__no,.row[data-lit] .row__meta{color:var(--on-dim)}.row__body{min-width:0}.row__title{font-size:1.04em;letter-spacing:-.008em}.row__note{display:block;margin-top:.28em;font-family:var(--sans);font-size:var(--t-small);letter-spacing:.01em;text-transform:none;color:var(--dim);max-width:64ch;line-height:1.6}.row[data-lit] .row__note{color:var(--on-dim)}.row__go{text-align:right;opacity:0;transition:opacity var(--t-switch)}.row[data-lit] .row__go{opacity:1}.rows-wrap[data-end-rule]:after{content:"";position:absolute;inset:auto 0 0;height:var(--rule);background:var(--rule-color);pointer-events:none}@media(prefers-reduced-motion:reduce){.row:focus-visible{background:var(--fg);color:var(--bg);border-bottom-color:transparent}.row:focus-visible .row__no,.row:focus-visible .row__meta,.row:focus-visible .row__note{color:var(--on-dim)}.row:focus-visible .row__go{opacity:1}@media(hover:hover){.row:hover{background:var(--fg);color:var(--bg);border-bottom-color:transparent}.row:hover .row__no,.row:hover .row__meta,.row:hover .row__note{color:var(--on-dim)}.row:hover .row__go{opacity:1}}}@media(max-width:780px){.row{grid-template-columns:4ch minmax(0,1fr) 2ch;grid-template-areas:"no body go" ". meta .";align-items:baseline;row-gap:.35em;padding:1em .2em}.row__no{grid-area:no}.row__body{grid-area:body}.row__go{grid-area:go;opacity:1}.row__meta{grid-area:meta}.spread--list .row{padding-right:var(--pad);padding-left:var(--pad)}.spread--list{padding-left:0;row-gap:0}.spread--list>.spread__aside{padding:1rem var(--pad) .25rem}.spread__main>.rows-wrap{margin-left:0}}@media(prefers-reduced-motion:no-preference){.row__go{transform:translate(-5px);transition:opacity var(--t-switch),transform var(--t-nudge) var(--ease)}.row[data-lit] .row__go{transform:translate(0)}}.gallery-block{margin-top:2em}.gallery{list-style:none;columns:3;column-gap:var(--rule);padding:0;margin:0}.gallery li,.prose .gallery li+li{break-inside:avoid;margin:0 0 var(--rule);padding:0}.gallery a{display:block;cursor:zoom-in}.gallery img{width:100%;height:auto;border:0;display:block;transition:opacity var(--t-switch) linear}@media(max-width:980px){.gallery{columns:2}}@media(max-width:560px){.gallery{columns:1}}@media(hover:hover){.gallery a:hover img{opacity:.86}}.lightbox{width:100vw;max-width:100vw;height:100vh;max-height:100vh;padding:var(--pad);border:0;background:transparent;place-items:center}.lightbox[open]{display:grid}.lightbox::backdrop{background:color-mix(in oklab,var(--ink) 94%,transparent)}.lightbox__stage{margin:0;display:grid;place-items:center}.lightbox__stage img{max-width:min(92vw,1400px);max-height:84vh;width:auto;height:auto;border:var(--rule) solid color-mix(in oklab,var(--paper) 30%,transparent)}.lightbox__key{position:fixed;z-index:1;display:grid;place-items:center;width:44px;height:44px;border:var(--rule) solid color-mix(in oklab,var(--paper) 40%,transparent);background:transparent;color:var(--paper);font-family:var(--sans);font-size:13px;line-height:1;transition:background var(--t-switch),color var(--t-switch)}@media(hover:hover){.lightbox__key:hover{background:var(--paper);color:var(--ink)}}.lightbox__key--close{top:var(--pad);right:var(--pad)}.lightbox__key--prev{left:var(--pad);top:50%;margin-top:-22px}.lightbox__key--next{right:var(--pad);top:50%;margin-top:-22px}@media(max-width:780px){.lightbox{height:100dvh;max-height:100dvh;padding:72px var(--pad) max(24px,env(safe-area-inset-bottom));grid-template-columns:44px 44px;grid-template-rows:minmax(0,1fr) 44px;gap:20px 12px;justify-content:center}.lightbox .lightbox__stage{grid-column:1 / -1;grid-row:1;margin:0;min-height:0;max-height:100%;width:calc(100vw - var(--pad) * 2)}.lightbox__stage img{max-width:100%;max-height:calc(100dvh - 230px - env(safe-area-inset-bottom))}.lightbox__key--prev,.lightbox__key--next{position:static;grid-row:2;margin:0}.lightbox__key--prev{grid-column:1}.lightbox__key--next{grid-column:2}}.prose a.image-zoom{display:block;cursor:zoom-in;text-decoration:none}.image-zoom img{transition:opacity var(--t-switch)}@media(hover:hover){.image-zoom:hover img{opacity:.9}}.lightbox__caption{max-width:65ch;max-height:4.5em;overflow-y:auto;margin-top:.8rem;color:var(--paper);font:14px/1.5 var(--sans);text-align:center}.lightbox [hidden]{display:none}body:has(.lightbox[open]){overflow:hidden}@media(prefers-reduced-motion:no-preference){.lightbox[open]{animation:viewer-fade-in .18s var(--ease) both}.lightbox[open]::backdrop{animation:viewer-fade-in .18s var(--ease) both}.lightbox[open] .lightbox__stage{animation:viewer-zoom-in .22s var(--ease) both}.lightbox[data-closing]{animation:viewer-fade-out .14s ease-in both}.lightbox[data-closing]::backdrop{animation:viewer-fade-out .14s ease-in both}.lightbox[data-closing] .lightbox__stage{animation:viewer-zoom-out .14s ease-in both}}@keyframes viewer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes viewer-fade-out{0%{opacity:1}to{opacity:0}}@keyframes viewer-zoom-in{0%{transform:scale(.975)}to{transform:scale(1)}}@keyframes viewer-zoom-out{0%{transform:scale(1)}to{transform:scale(.985)}}.pager{--ink-duration: .36s;--ink-easing: cubic-bezier(.22, .61, .36, 1);position:relative;display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-top:var(--rule) solid var(--rule-color)}.pager a,.pager__cell{position:relative;min-width:0;padding:1.5em var(--pad);display:flex;flex-direction:column;justify-content:center;gap:.5em}.pager a>*,.pager__cell>*{position:relative}.pager__next{text-align:right;align-items:flex-end;border-left:var(--rule) solid var(--rule-color)}.pager__label{font-family:var(--sans);font-size:var(--t-label);letter-spacing:.1em;color:var(--dim)}.pager__title{overflow-wrap:anywhere}.pager a:focus-visible{outline:2px solid var(--spot);outline-offset:-3px}.pager__inverse{position:absolute;inset:0;display:grid;grid-template-columns:inherit;pointer-events:none;user-select:none;color:var(--bg)}.pager__inverse .pager__label{color:var(--on-dim)}.pager__inverse .pager__next{border-color:transparent}@media(max-width:780px){.pager{grid-template-columns:1fr}.pager__next{text-align:left;align-items:flex-start}.pager__next{border-left:0}.pager__prev+.pager__next{border-top:var(--rule) solid var(--rule-color)}.pager__empty{display:none}}@media(prefers-reduced-motion:reduce){.pager a[data-lit]{background:var(--fg);color:var(--bg)}.pager a[data-lit] .pager__label{color:var(--on-dim)}}.colophon{display:flex;flex-wrap:wrap;gap:.8rem 2.2rem;align-items:baseline;padding:2.4em var(--pad) 3.2em;border-top:var(--rule) solid var(--rule-strong);font-family:var(--sans);font-size:var(--t-label);letter-spacing:.02em;text-transform:none;color:var(--dim)}.colophon a{color:var(--fg);text-decoration:underline;text-underline-offset:3px}@media(hover:hover){.colophon a:hover{text-decoration-color:var(--fg)}}.colophon__tagline{margin-left:auto}@media(max-width:780px){.colophon{gap:.6rem 1.4rem;padding:1.8em var(--pad) 2.4em}.colophon__tagline{flex-basis:100%;margin-left:0}}.prose{max-width:var(--measure)}.prose>:where(*+*){margin-top:1em}.prose p{line-height:1.7}.prose h2{font-family:var(--serif);font-weight:400;font-size:var(--t-h2);line-height:1.22;letter-spacing:-.018em;margin-top:2.4em}.prose h3{font-weight:500;font-size:1.12em;line-height:1.3;margin-top:2em}.prose h4{font-family:var(--sans);font-size:var(--t-label);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--dim);margin-top:2em}.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2.5px;text-decoration-color:var(--faint);transition:text-decoration-color var(--t-switch)}@media(hover:hover){.prose a:hover{text-decoration-color:var(--fg)}}.prose strong{font-weight:600}.prose em{font-style:italic}.prose ul:not(.gallery),.prose ol:not(.gallery){padding-left:1.3em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--dim);font-family:var(--sans);font-size:.8em}.prose blockquote{border-left:2px solid var(--fg);padding-left:1.15em;margin:2em 0;font-size:1.2em;line-height:1.42;letter-spacing:-.012em;font-weight:300;color:var(--fg)}.prose code{font-family:var(--mono);font-size:.82em;background:var(--wash);border:var(--rule) solid var(--rule-color);padding:.06em .34em;letter-spacing:-.01em}.prose pre{font-family:var(--mono);font-size:13px;line-height:1.65;background:var(--wash)!important;color:var(--fg)!important;border:var(--rule) solid var(--rule-color);padding:1.1em 1.2em;overflow-x:auto;tab-size:2}.prose pre code{background:none;border:0;padding:0;font-size:inherit;white-space:pre}.prose pre span,.astro-code span{color:inherit!important;background:none!important}.prose figure:not(.lightbox__stage){margin:2em 0}.prose figcaption:not(.lightbox__caption),.content-figure figcaption{margin-top:0;padding:.8rem 0 0;font-family:var(--serif);font-size:.88em;font-style:italic;line-height:1.5;letter-spacing:0;color:var(--dim)}.prose table{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:.94em;line-height:1.5}.prose th,.prose td{text-align:left;padding:.9rem 1rem;border-bottom:var(--rule) solid var(--rule-color);vertical-align:top}.prose th:first-child,.prose td:first-child{padding-left:0}.prose th:last-child,.prose td:last-child{padding-right:0}.prose th{font-family:var(--sans);font-size:var(--t-label);font-weight:500;letter-spacing:.06em;color:var(--fg);border-top:var(--rule) solid var(--rule-color)}.prose td code{background:none;border:0;padding:0}.prose sup a{text-decoration:none}.prose mark{background:color-mix(in oklab,var(--spot) 18%,var(--bg));color:var(--fg);padding:0 .15em}.prose del,.prose s{color:var(--dim);text-decoration:line-through;text-decoration-thickness:var(--rule)}.prose ins{text-decoration:none;border-bottom:var(--rule) solid var(--spot)}.prose abbr[title]{text-decoration:underline dotted var(--dim);text-underline-offset:3px;cursor:help}.prose small{font-size:.86em;color:var(--dim)}.prose cite,.prose q{font-style:italic}.prose sub,.prose sup{line-height:0;font-size:.72em}.prose hr{border-top-color:var(--rule-color);margin:2.6em 0}.prose dl{margin-top:1.4em}.prose dt{font-family:var(--sans);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding-top:.9em;border-top:var(--rule) solid var(--rule-color)}.prose dd{margin:.3em 0 .9em}.prose details{border-top:var(--rule) solid var(--rule-color);padding-top:.9em}.prose details[open]{padding-bottom:.9em}.prose details+details{border-top:0}.prose summary{display:flex;justify-content:space-between;align-items:baseline;gap:1em;font-family:var(--sans);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;list-style:none;color:var(--fg)}.prose summary::-webkit-details-marker{display:none}.prose summary:after{content:"+";color:var(--dim)}.prose details[open] summary:after{content:"−"}.prose details>:where(*+*){margin-top:.8em}.prose caption{text-align:left;padding-bottom:.85rem;font-family:var(--serif);font-size:.95em;font-style:italic;line-height:1.5;color:var(--dim)}.prose tfoot td{border-bottom:0;border-top:var(--rule) solid var(--rule-color);color:var(--dim)}.prose video,.prose iframe{width:100%;border:var(--rule) solid var(--rule-color)}.prose .footnotes{margin-top:3.4em;padding-top:1.1em;border-top:var(--rule) solid var(--rule-color);font-family:var(--sans);font-size:var(--t-small);line-height:1.7;color:var(--dim)}.prose .footnotes ol{padding-left:1.6em}.prose sup a{color:var(--spot)}.prose a[target=_blank]:after{content:"↗";margin-left:.22em;font-size:.72em;color:var(--dim);text-decoration:none}.btn,.project-link-wrapper a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;gap:.6rem;padding:.65rem 1.15rem;border:var(--rule) solid var(--fg);background:var(--fg);color:var(--bg);font-family:var(--serif);font-size:16px;line-height:1.4;transition:background var(--t-switch),color var(--t-switch)}@media(hover:hover){.btn:hover,.project-link-wrapper a:hover{background:var(--bg);color:var(--fg)}}.btn--quiet{background:transparent;color:var(--fg);border-color:var(--rule-color)}@media(hover:hover){.btn--quiet:hover{background:var(--wash)}}.btn:disabled{background:var(--wash);border-color:var(--rule-color);color:var(--dim);cursor:not-allowed}.field{display:flex;flex-direction:column;gap:.55rem;min-width:0}.field>label,.field__hint{font-family:var(--sans);font-size:var(--t-label);line-height:1.6;letter-spacing:.02em;color:var(--dim)}.field>label{color:var(--fg)}.field input,.field textarea,.field select,.select-trigger{width:100%;min-height:48px;padding:.75rem .9rem;border:var(--rule) solid var(--rule-color);border-radius:0;background:var(--bg);color:var(--fg);font:400 16px/1.5 var(--sans);transition:border-color var(--t-switch)}@media(hover:hover){.field input:hover,.field textarea:hover,.field select:hover,.select-trigger:hover{border-color:var(--fg)}}.field :is(input,textarea,select):focus-visible,.select-trigger:focus-visible{outline:2px solid var(--spot);outline-offset:3px}.field input::placeholder,.field textarea::placeholder{color:var(--dim);opacity:1}.field textarea{min-height:128px;resize:vertical}.check{font-family:var(--sans);display:inline-flex;align-items:center;min-height:44px;gap:.7rem;font-size:16px;cursor:pointer}.check input{appearance:none;flex:0 0 18px;width:18px;height:18px;display:grid;place-content:center;border:var(--rule) solid var(--rule-color);background:var(--bg);cursor:pointer}.check input:checked{border-color:var(--fg);background:var(--fg)}.check input[type=checkbox]:checked:after{content:"";width:9px;height:5px;border-left:1.5px solid var(--bg);border-bottom:1.5px solid var(--bg);transform:translateY(-1px) rotate(-45deg)}.check input[type=radio]{border-radius:50%}.check input[type=radio]:checked:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--bg)}.custom-select{position:relative}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;cursor:pointer}.select-trigger svg{transition:transform var(--t-nudge)}.select-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.select-options{position:absolute;top:calc(100% + 5px);inset-inline:0;z-index:10;max-height:240px;overflow-y:auto;list-style:none;border:var(--rule) solid var(--fg);padding:5px;background:var(--bg)}.select-options [role=option],.select-option-copy{font-family:var(--sans);display:flex;justify-content:space-between;padding:.65rem .7rem;font-size:16px;cursor:pointer}.select-options [role=option]>span,.select-option-copy>span{visibility:hidden}.select-options [aria-selected=true]>span,.select-option-copy[data-selected]>span{visibility:visible}.select-options>[role=option]{position:relative}.select-options__inverse{position:absolute;inset:0;padding:5px;color:var(--bg);pointer-events:none;user-select:none}@media(prefers-reduced-motion:reduce){.select-options [data-active]{background:var(--fg);color:var(--bg)}}.custom-select [hidden]{display:none}.sidenote{float:left;clear:left;width:17ch;margin-left:-22ch;margin-bottom:.6em;font-family:var(--sans);font-size:var(--t-label);line-height:1.7;letter-spacing:.02em;color:var(--dim);text-transform:none}.sidenote:before{content:"↳ "}@media(max-width:1100px){.sidenote{float:none;width:auto;margin:1.4em 0;padding-left:.9em;border-left:var(--rule) solid var(--rule-color)}}.content-figure{margin:2em 0}.project-link-wrapper{display:flex;flex-wrap:wrap;gap:.6em;margin:1.6em 0}@keyframes content-slide-out{to{opacity:0;transform:translateY(-4px)}}@keyframes content-slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}::view-transition-group(content){animation:none}::view-transition-old(content),::view-transition-new(content){height:auto;mix-blend-mode:normal}:root[data-theme-changing]{view-transition-name:root!important}:root[data-theme-changing] *{view-transition-name:none!important}:root[data-theme-changing]::view-transition-group(root){animation:none!important}:root[data-theme-changing]::view-transition-old(root),:root[data-theme-changing]::view-transition-new(root){animation:none!important;mix-blend-mode:normal}:root[data-theme-changing]::view-transition-old(root){z-index:1}:root[data-theme-changing]::view-transition-new(root){z-index:2;animation:theme-reveal .65s cubic-bezier(.22,.61,.36,1) both!important}@keyframes theme-reveal{0%{clip-path:circle(0px at var(--theme-x) var(--theme-y))}to{clip-path:circle(var(--theme-radius) at var(--theme-x) var(--theme-y))}}:root[data-theme-changing][data-palette-direction=back]::view-transition-new(root){z-index:1;animation:none!important}:root[data-theme-changing][data-palette-direction=back]::view-transition-old(root){z-index:2;animation:theme-conceal .65s cubic-bezier(.64,0,.78,.39) both!important}@keyframes theme-conceal{0%{clip-path:circle(var(--theme-radius) at var(--theme-x) var(--theme-y))}to{clip-path:circle(0px at var(--theme-x) var(--theme-y))}}:where(.prose,.lede,.label,.colophon) a:not(.btn){text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--rule-color);transition:text-decoration-color var(--t-switch)}:where(.prose,.lede,.label,.colophon) a:not(.btn):focus-visible{text-decoration-color:currentColor}@media(hover:hover){:where(.prose,.lede,.label,.colophon) a:not(.btn):hover{text-decoration-color:currentColor}}.prose :is(sup,.gallery) a{text-decoration:none}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
