:root{--paper:#f5f2ea;--paper-sunk:#eeeade;--paper-edge:#e7e2d3;--ink:#1d1b18;--ink-soft:#4a443a;--ink-muted:#5f594e;--ink-faint:#736b5e;--rule:#dcd5c6;--rule-strong:#c6beac;--amber:#9c5810;--amber-mark:#b86f1c;--amber-wash:#f0e6d4;--amber-lifted:#d69a4a;--dark:#211e1a;--dark-ink:#ede7da;--dark-muted:#a79e8d;--dark-rule:#3a3530;--serif:"Newsreader", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:"IBM Plex Sans", ui-sans-serif, "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--t-mega:clamp(2.75rem, 1.4rem + 6.2vw, 6.5rem);--t-xl:clamp(2.1rem, 1.3rem + 3.4vw, 3.75rem);--t-lg:clamp(1.65rem, 1.2rem + 1.9vw, 2.5rem);--t-md:clamp(1.3rem, 1.1rem + .9vw, 1.6rem);--t-body:1.0625rem;--t-small:.875rem;--t-meta:.6875rem;--measure:64ch;--page-max:1440px;--gutter:clamp(1.25rem, .6rem + 3vw, 5rem);--rail:12.5rem;--space-sect:clamp(3.5rem, 2rem + 6vw, 7rem);--ease:cubic-bezier(.22, .61, .36, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--t-body);font-feature-settings:"kern" 1, "liga" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.62}h1,h2,h3,h4,h5,h6{margin:0;font-weight:400;line-height:1.1}p,ul,ol,figure,blockquote,table{margin:0}ul,ol{padding:0;list-style:none}img,svg,video{max-width:100%;height:auto;display:block}::selection{background:var(--amber-wash);color:var(--ink)}a{color:var(--amber);border-bottom:1px solid color-mix(in srgb, var(--amber-mark) 42%, transparent);transition:border-color .18s var(--ease), color .18s var(--ease);text-decoration:none}a:hover{border-bottom-color:var(--amber-mark)}a.plain{color:inherit;border-bottom:none}:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:1px}:focus:not(:focus-visible){outline:none}.skip-link{z-index:100;background:var(--ink);color:var(--paper);font:500 var(--t-meta)/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;border:none;padding:.75rem 1.25rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.meta{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);font-weight:400;line-height:1.5}.meta--ink{color:var(--ink)}.meta--amber{color:var(--amber)}.meta-list{flex-direction:column;gap:1.15rem;display:flex}.meta-list dt{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.25rem}.meta-list dd{font-size:var(--t-small);color:var(--ink-soft);margin:0;line-height:1.45}.meta-run{flex-wrap:wrap;align-items:baseline;gap:.55rem;display:flex}.meta-run>*+:before{content:"/";color:var(--ink-faint);margin-right:.55rem}.display{font-family:var(--serif);letter-spacing:-.018em;text-wrap:balance;font-weight:400;line-height:1.04}.display--mega{font-size:var(--t-mega)}.display--xl{font-size:var(--t-xl)}.display--lg{font-size:var(--t-lg);line-height:1.12}.display--md{font-size:var(--t-md);letter-spacing:-.01em;line-height:1.22}.heading{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.19em;text-transform:uppercase;color:var(--ink);margin-bottom:1.5rem;font-weight:500}.prose{max-width:var(--measure);color:var(--ink-soft)}.prose p+p{margin-top:1.05em}.prose strong{color:var(--ink);font-weight:600}.prose em{font-style:italic}.prose--lede{font-family:var(--serif);color:var(--ink);max-width:46ch;font-size:clamp(1.2rem,1.05rem + .7vw,1.5rem);line-height:1.46}.prose ul.list{flex-direction:column;gap:.5rem;margin-top:1em;display:flex}.prose ul.list>li{padding-left:1.15rem;position:relative}.prose ul.list>li:before{content:"";background:var(--amber-mark);width:.4rem;height:1px;position:absolute;top:.72em;left:0}.opener{padding-block:clamp(2.75rem,1.75rem + 4vw,5rem) clamp(2rem,1.4rem + 2.5vw,3.25rem)}.opener__eyebrow{margin-bottom:1.1rem}.opener__title{margin-bottom:1.4rem}.num{font-family:var(--mono);font-size:var(--t-small);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.folio{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.14em;color:var(--ink-faint);font-variant-numeric:tabular-nums}.shell{flex-direction:column;min-height:100vh;display:flex}.wrap{width:100%;max-width:var(--page-max);padding-inline:var(--gutter);margin-inline:auto}.spread{grid-template-columns:var(--rail) minmax(0, 1fr);align-items:start;gap:clamp(1.5rem,1rem + 3vw,4.5rem);display:grid}.spread--wide{grid-template-columns:var(--rail) minmax(0, 1fr) minmax(0, .42fr)}.rail{position:sticky;top:2.5rem}.rail--static{position:static}@media (width<=900px){.spread,.spread--wide{grid-template-columns:1fr;gap:1.5rem}.rail{position:static}}.rule{border:0;border-top:1px solid var(--rule);margin:0}.rule--strong{border-top-color:var(--rule-strong)}.rule--ink{border-top:1px solid var(--ink)}.rule--tall{margin-block:var(--space-sect)}.section{padding-block:var(--space-sect)}.section--tight{padding-block:clamp(2.25rem,1.5rem + 3vw,3.5rem)}.section+.section{border-top:1px solid var(--rule)}.measure{max-width:var(--measure)}.measure--narrow{max-width:52ch}.masthead{border-bottom:1px solid var(--rule-strong);background:var(--paper)}.masthead__inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1.5rem;padding-block:1.15rem;display:flex}.masthead__name{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.19em;text-transform:uppercase;color:var(--ink);border:none;font-weight:500}.masthead__name:hover{color:var(--amber)}.nav{flex-wrap:wrap;gap:clamp(.9rem,.3rem + 1.6vw,2.1rem);display:flex}.nav__link{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);border:none;padding-block:.15rem;font-weight:400;position:relative}.nav__link:hover,.nav__link[aria-current=page]{color:var(--ink)}.nav__link[aria-current=page]:after{content:"";background:var(--amber-mark);height:2px;position:absolute;bottom:-.35rem;left:0;right:0}.footer{border-top:1px solid var(--rule-strong);margin-top:auto;padding-block:2.5rem 3rem}.footer__grid{grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));align-items:start;gap:2rem;display:grid}@media (width<=700px){.footer__grid{grid-template-columns:1fr 1fr}.footer__grid>:first-child{grid-column:1/-1}}.footer__name{font-family:var(--serif);font-size:1.35rem;line-height:1.2}.footer__list{flex-direction:column;gap:.4rem;display:flex}.footer__list a{font-size:var(--t-small)}.footer__base{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1.1rem;display:flex}.entries{border-top:1px solid var(--rule)}.entry{border-bottom:1px solid var(--rule);color:inherit;transition:background-color .2s var(--ease);border-top:none;border-left:none;border-right:none;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:start;gap:clamp(1rem,.5rem + 2vw,2.5rem);padding-block:clamp(1.75rem,1.25rem + 1.6vw,2.75rem);display:grid;position:relative}.entry:after{content:"";background:var(--amber-mark);width:0;height:1px;transition:width .32s var(--ease);position:absolute;bottom:-1px;left:0}.entry:hover{background:color-mix(in srgb, var(--amber-wash) 40%, transparent)}.entry:hover:after{width:100%}.entry:hover .entry__title{color:var(--amber)}.entry:hover .entry__arrow{color:var(--amber);transform:translate(4px)}.entry__num{font-family:var(--mono);font-size:var(--t-small);font-variant-numeric:tabular-nums;color:var(--ink-faint);padding-top:.32rem}.entry__title{font-family:var(--serif);letter-spacing:-.015em;transition:color .18s var(--ease);margin-bottom:.55rem;font-size:clamp(1.5rem,1.2rem + 1.2vw,2.15rem);line-height:1.1}.entry__desc{color:var(--ink-soft);max-width:54ch;margin-bottom:.9rem}.entry__foot{flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;display:flex}.entry__arrow{font-family:var(--mono);color:var(--ink-faint);transition:transform .24s var(--ease), color .18s var(--ease);padding-top:.3rem;font-size:1.05rem}@media (width<=620px){.entry{grid-template-columns:2.5rem minmax(0,1fr)}.entry__arrow{display:none}}.status{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap;align-items:baseline;gap:.45rem;display:inline-flex}.status__mark{font-size:.62em;line-height:1;transform:translateY(-.12em)}.status--active .status__mark{color:var(--amber)}.status--active{color:var(--ink)}.status--hold .status__mark{color:var(--ink-faint)}.status--research .status__mark{color:var(--amber)}.status--postponed .status__mark,.status--archived .status__mark{color:var(--ink-faint)}.tech{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-muted)}.chron{border-top:1px solid var(--rule)}.chron__year{grid-template-columns:var(--rail) minmax(0, 1fr);border-bottom:1px solid var(--rule);gap:clamp(1.5rem,1rem + 3vw,4.5rem);padding-block:clamp(1.75rem,1.25rem + 1.5vw,2.75rem);display:grid}@media (width<=900px){.chron__year{grid-template-columns:1fr;gap:1.1rem}}.chron__label{font-family:var(--serif);color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:clamp(1.75rem,1.4rem + 1.4vw,2.5rem);line-height:1}.chron__year:hover .chron__label{color:var(--amber-mark)}.chron__items{flex-direction:column;gap:1.6rem;display:flex}.chron__item{grid-template-columns:4.5rem minmax(0,1fr);gap:1.25rem;display:grid}@media (width<=620px){.chron__item{grid-template-columns:1fr;gap:.3rem}}.chron__date{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.1em;color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:.3rem}.chron__title{font-family:var(--serif);margin-bottom:.2rem;font-size:1.28rem;line-height:1.25}.chron__body{font-size:var(--t-small);color:var(--ink-soft);max-width:58ch}.rows{border-top:1px solid var(--rule)}.row{grid-template-columns:var(--rail) minmax(0, 1fr);border-bottom:1px solid var(--rule);align-items:baseline;gap:clamp(1rem,.6rem + 2vw,3rem);padding-block:clamp(1.15rem,.9rem + .9vw,1.75rem);display:grid}@media (width<=700px){.row{grid-template-columns:1fr;gap:.4rem}}.row__label{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.row__value{color:var(--ink)}.row__value .sub{font-size:var(--t-small);color:var(--ink-muted);margin-top:.15rem;display:block}.figure{margin-block:2.5rem}.figure__frame{border:1px solid var(--rule-strong);background:var(--paper-sunk);padding:0;overflow:hidden}.figure__frame img{width:100%;display:block}.figure__cap{border-top:1px solid var(--rule);grid-template-columns:4.5rem minmax(0,1fr);gap:1rem;margin-top:.7rem;padding-top:.6rem;display:grid}.figure__num{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.14em;color:var(--amber);text-transform:uppercase}.figure__text{font-size:var(--t-small);color:var(--ink-muted);line-height:1.45}.placeholder{border:1px dashed var(--rule-strong);background:var(--paper-edge);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-height:9rem;padding:2rem 1.25rem;display:flex}.placeholder__tag{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted)}.placeholder__what{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.1em;color:var(--ink-muted);max-width:32ch}.needs{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.08em;text-transform:uppercase;color:var(--amber);background:var(--amber-wash);border:1px solid color-mix(in srgb, var(--amber-mark) 35%, transparent);padding:.1rem .4rem;display:inline-block}.code{font-family:var(--mono);background:var(--dark);color:var(--dark-ink);white-space:pre;tab-size:2;border:none;padding:1.35rem 1.5rem;font-size:.8125rem;line-height:1.75;overflow-x:auto}.code .c{color:var(--dark-muted);font-style:italic}.code .k{color:var(--amber-lifted)}.code-cap{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.55rem}.diagram{font-family:var(--mono);color:var(--ink-soft);background:var(--paper-sunk);border:1px solid var(--rule);white-space:pre;padding:1.75rem 1.5rem;font-size:clamp(.6875rem,.62rem + .28vw,.8125rem);line-height:1.65;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--t-small)}.table th,.table td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:.6rem .9rem .6rem 0}.table th{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border-bottom-color:var(--rule-strong);font-weight:500}.table td{color:var(--ink-soft)}.table td:first-child{color:var(--ink);font-family:var(--mono);white-space:nowrap;font-size:.8125rem}.table-scroll{overflow-x:auto}.go{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid color-mix(in srgb, var(--amber-mark) 40%, transparent);align-items:baseline;gap:.45rem;padding-bottom:.15rem;display:inline-flex}.go__arrow{transition:transform .22s var(--ease)}.go:hover .go__arrow{transform:translate(3px)}.go-list{flex-wrap:wrap;gap:.9rem 1.75rem;display:flex}.band-dark{background:var(--dark);color:var(--dark-ink)}.band-dark .meta,.band-dark .row__label{color:var(--dark-muted)}.band-dark .rule,.band-dark .row{border-color:var(--dark-rule)}.band-dark a{color:var(--amber-lifted);border-bottom-color:color-mix(in srgb, var(--amber-lifted) 40%, transparent)}.note{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr);gap:.5rem;padding-block:1.5rem;display:grid}.note__kind{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.18em;text-transform:uppercase;color:var(--amber)}.note__body{color:var(--ink-soft);max-width:60ch}.pull{font-family:var(--serif);letter-spacing:-.012em;color:var(--ink);border-left:2px solid var(--amber-mark);max-width:30ch;padding-left:clamp(1rem,.6rem + 1.2vw,1.75rem);font-size:clamp(1.35rem,1.1rem + 1.1vw,1.95rem);line-height:1.32}.flow{flex-direction:column;gap:.15rem;display:flex}.flow__step{font-size:var(--t-small);color:var(--ink-soft)}.flow__step--now{color:var(--ink);font-weight:500}.flow__tick{color:var(--amber-mark);font-family:var(--mono);font-size:.75rem;line-height:1.2}@media (width<=760px){.artist-row{grid-template-columns:minmax(0,1fr)!important}.artist-row>div:first-child{max-width:12rem}}.figure__frame,.code,.diagram,.placeholder{border-radius:2px}button.go{border:none;border-bottom:1px solid color-mix(in srgb, var(--amber-mark) 40%, transparent);color:var(--amber);cursor:pointer;font-family:var(--mono);background:0 0;padding:0 0 .15rem}button.go:hover{border-bottom-color:var(--amber-mark)}.chron__kind{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:.3rem}dl.rows,ul.rows{margin:0;padding:0;list-style:none}.rows dd{margin:0}li.row{list-style:none}.hero{padding-block:clamp(3rem,1.75rem + 6vw,7.5rem) clamp(2.5rem,1.5rem + 4vw,5rem)}.hero__top{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:baseline;gap:1.5rem;margin-bottom:clamp(1.75rem,1.2rem + 2.2vw,3rem);padding-bottom:1rem;display:flex}.hero__name{font-family:var(--serif);font-size:var(--t-mega);letter-spacing:-.028em;margin:0;line-height:.92}.hero__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:clamp(1.75rem,1rem + 4vw,5.5rem);display:grid}@media (width<=860px){.hero__grid{grid-template-columns:1fr;gap:2.25rem}}.hero__role{font-family:var(--serif);letter-spacing:-.014em;text-wrap:balance;margin-bottom:1.5rem;font-size:clamp(1.5rem,1.2rem + 1.6vw,2.35rem);line-height:1.22}.hero__role em{color:var(--amber);font-style:italic}.hero__blurb{color:var(--ink-soft);max-width:44ch}.currently{border-top:1px solid var(--rule-strong)}.currently__row{border-bottom:1px solid var(--rule);grid-template-columns:2.25rem minmax(0,1fr);align-items:baseline;gap:1rem;padding-block:.95rem;display:grid}.currently__num{font-family:var(--mono);font-size:var(--t-meta);color:var(--ink-faint);font-variant-numeric:tabular-nums}.currently__label{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.12rem}.currently__value{color:var(--ink);font-size:.95rem;line-height:1.4}.currently__value a{color:var(--ink);border-bottom-color:var(--rule-strong)}.currently__value a:hover{color:var(--amber);border-bottom-color:var(--amber-mark)}.sect-head{align-items:baseline;gap:1.25rem;margin-bottom:clamp(1.5rem,1rem + 1.5vw,2.5rem);display:flex}.sect-head__line{background:var(--rule-strong);flex:1;height:1px}.note-block{grid-template-columns:var(--rail) minmax(0, 1fr);gap:clamp(1.5rem,1rem + 3vw,4.5rem);display:grid}@media (width<=900px){.note-block{grid-template-columns:1fr;gap:1.25rem}}@media print{:root{--paper:#fff;--paper-sunk:#fff;--paper-edge:#fff;--ink:#000;--ink-soft:#1a1a1a;--ink-muted:#333;--ink-faint:#555;--rule:#bbb;--rule-strong:#888;--amber:#000;--amber-mark:#000;--amber-wash:transparent}@page{margin:14mm 15mm}html,body{color:#000;background:#fff;font-size:10pt;line-height:1.42}.masthead,.footer,.skip-link,.no-print,.placeholder{display:none!important}.wrap{max-width:none;padding-inline:0}.opener{padding-block:0 .6rem}.section,.section--tight{padding-block:.8rem}.spread,.spread--wide,.note-block,.row,.chron__year,.chron__item{display:block!important}.rail{margin-bottom:.6rem;position:static!important}.row{border-bottom:1px solid var(--rule);padding-block:.3rem}.row__label{color:#000;margin-bottom:.1rem;font-weight:600}h1,h2,h3{break-after:avoid-page}.entry,.row,li,figure,.sect-head{break-inside:avoid}.display--mega{font-size:22pt}.display--xl{font-size:19pt}.display--lg{font-size:15pt}.display--md{font-size:11.5pt}.prose--lede{max-width:none;font-size:10.5pt}.prose,.measure{max-width:none}.meta,.folio,.num{font-size:7.5pt}a{color:#000;border-bottom:none;text-decoration:none}a[href^=http]:after{content:" (" attr(href) ")";color:#555;word-break:break-all;font-size:7.5pt}a[href^=\/]:after,a[href^=\#]:after,a[href^=mailto]:after{content:""}.code,.diagram{color:#000;border:1px solid var(--rule);background:#fff;font-size:8pt}.code .c,.code .k{color:#444}}
/*$vite$:1*/