@import "https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,200..800;1,6..72,200..800&family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap";:root{--paper:#f4f1e9;--paper-deep:#ece8dc;--paper-deeper:#e3dece;--ink:#1a1815;--ink-2:#4a453c;--ink-faint:#857e70;--accent:#8c2f28;--accent-deep:#6d241f;--focus:#8c2f28;--rule:#cfc8b6;--rule-soft:#ded8c9;--muted:#857e70;--neutral:#4a453c;--accent-ink:#f4f1e9;--font-serif:"Newsreader", "Iowan Old Style", Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-display:clamp(3.25rem, 14vw, 8.5rem);--text-display-s:clamp(2.25rem, 4.5vw + .5rem, 4rem);--text-4xl:clamp(2rem, 3.5vw + .25rem, 3rem);--text-3xl:clamp(1.75rem, 3vw + .25rem, 2.5rem);--text-2xl:clamp(1.5rem, 2.5vw + .25rem, 2rem);--text-xl:clamp(1.25rem, 2vw + .25rem, 1.5rem);--text-lg:1.125rem;--text-base:1rem;--text-sm:.875rem;--text-xs:.8125rem;--space-0:0;--space-px:1px;--space-05:.125rem;--space-1:.25rem;--space-15:.375rem;--space-2:.5rem;--space-25:.625rem;--space-3:.75rem;--space-35:.875rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.25rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-none:0;--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-xl:8px;--radius-2xl:12px;--radius-full:9999px;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.35s;--dur-slower:.5s;--rule-hairline:.5px;--rule-thin:1px;--rule-medium:2px;--shadow-sm:0 1px 2px #1a18150a;--shadow-md:0 4px 12px #1a18150f;--shadow-lg:0 12px 24px #1a181514;--shadow-xl:0 20px 40px #1a18151a;--measure:62ch;--shell:min(1080px, 100% - 2.5rem)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink);font-family:var(--font-serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:1.0625rem;line-height:1.62;overflow-x:clip}::selection{background:var(--accent);color:var(--paper)}a{color:var(--accent);text-underline-offset:3px;text-decoration:none;text-decoration-thickness:1px;transition:color .14s}a:hover{color:var(--accent-deep);text-decoration:underline}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}.grain{z-index:999;pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.055'/%3E%3C/svg%3E");position:fixed;inset:0}.progress{z-index:60;background:0 0;height:2px;position:fixed;top:0;left:0;right:0}.progress__bar{background:var(--accent);width:0%;height:100%;display:block}.runner{z-index:50;width:var(--shell);font-family:var(--font-mono);letter-spacing:.04em;background:var(--paper);border-bottom:1px solid var(--rule);align-items:baseline;gap:1.5rem;margin:0 auto;padding:.7rem 0 .6rem;font-size:.72rem;display:flex;position:sticky;top:0}.runner__id{color:var(--ink);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;font-weight:600}.runner__id:hover{color:var(--accent);text-decoration:none}.runner__links{flex-wrap:wrap;gap:1.15rem;margin-left:auto;display:flex}.runner__links a{color:var(--ink-faint);white-space:nowrap}.runner__links a:hover{color:var(--accent);text-decoration:none}.runner__sec{color:var(--accent)}.runner__cv{color:var(--ink);white-space:nowrap;border-bottom:1px solid var(--rule);padding-bottom:1px;font-weight:500}.runner__cv:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}@media (width<=860px){.runner{flex-wrap:wrap;gap:.9rem}.runner__links{order:3;gap:.9rem;width:100%;margin-left:0;padding-top:.35rem}}main{width:var(--shell);margin:0 auto}.masthead{padding:clamp(2.5rem,7vw,5.5rem) 0 3rem;position:relative}.masthead__meta{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;gap:.4rem 2rem;padding-bottom:1.4rem;font-size:.7rem;display:flex}.masthead__meta-mid{color:var(--accent)}.masthead__title{font-family:var(--font-serif);font-weight:300;font-size:var(--text-display);letter-spacing:-.035em;text-wrap:balance;margin-top:2.25rem;line-height:.87}.masthead__subtitle{color:var(--accent);letter-spacing:-.01em;margin-top:1.1rem;font-size:clamp(1.35rem,3.4vw,2.1rem);font-weight:300}.masthead__subtitle em{font-style:italic}.masthead__byline{max-width:var(--measure);color:var(--ink-2);margin-top:1.6rem;font-size:clamp(1.05rem,1.6vw,1.2rem);font-weight:300}.actions{flex-wrap:wrap;gap:.6rem;margin-top:2.25rem;display:flex}.btn{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink);border:1px solid var(--ink);cursor:pointer;background:0 0;border-radius:2px;align-items:center;gap:.5rem;padding:.62rem 1.15rem;font-size:.78rem;transition:background .14s,color .14s,border-color .14s;display:inline-flex}.btn:hover{background:var(--ink);color:var(--paper);text-decoration:none}.btn--solid{background:var(--accent);border-color:var(--accent);color:var(--paper)}.btn--solid:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn--ghost{border-color:var(--rule);color:var(--ink-faint)}.btn--ghost:hover{background:var(--ink-faint);border-color:var(--ink-faint);color:var(--paper)}.btn--ghost.is-done{border-color:var(--accent);color:var(--accent);background:0 0}.abstract{border-top:1px solid var(--rule);grid-template-columns:auto 1fr;gap:.9rem;max-width:74ch;margin-top:3rem;padding-top:1.6rem;display:grid}.abstract__label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink);text-transform:uppercase;font-size:.78rem;font-weight:600}.abstract__body{color:var(--ink-2);-webkit-hyphens:auto;hyphens:auto;font-size:1.03rem;font-weight:300}.walk{border-top:1px solid var(--rule);margin:2rem 0 4rem;padding:1.25rem 0 0;position:relative}.walk__canvas{width:100%;height:clamp(150px,26vw,240px);display:block}.walk__cap{border-top:1px solid var(--rule-soft);font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 2rem;margin-top:.9rem;padding-top:.7rem;font-size:.7rem;display:flex}.eq{font-family:var(--font-serif);color:var(--ink);white-space:nowrap;font-size:1.02rem;font-style:normal}.eq i{font-style:italic}.eq sub{font-size:.68em;font-style:normal}.eq__paren{vertical-align:-.08em;font-size:1.35em;font-weight:300}.eq__body{font-size:.95em}.walk__note{color:var(--ink-faint)}.section{border-top:2px solid var(--ink);padding:3.25rem 0}.section--last{border-bottom:none}.section__head{align-items:baseline;gap:1.1rem;margin-bottom:2.5rem;display:flex}.section__num{font-family:var(--font-mono);color:var(--accent);letter-spacing:.04em;font-size:.85rem;font-weight:600}.section__title{font-family:var(--font-serif);letter-spacing:-.02em;font-size:clamp(1.75rem,4vw,2.6rem);font-weight:400;line-height:1}.section__head:after{content:"";background:var(--rule);flex:1;align-self:center;min-width:2rem;height:1px}.entry{border-top:1px solid var(--rule-soft);grid-template-columns:3.5rem 1fr auto;gap:0 1.75rem;padding:1.9rem 0;display:grid}.entry:first-of-type{border-top:none;padding-top:.4rem}.entry__index{font-family:var(--font-mono);color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:.45rem;font-size:.8rem}.entry__title{font-family:var(--font-serif);letter-spacing:-.015em;font-size:clamp(1.4rem,3vw,1.85rem);font-weight:500;line-height:1.12}.entry__kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);border:1px solid var(--rule);vertical-align:middle;white-space:nowrap;border-radius:2px;margin-left:.6rem;padding:.18rem .5rem;font-size:.66rem;font-weight:500;display:inline-block}.entry__desc{max-width:var(--measure);color:var(--ink-2);margin-top:.7rem;font-weight:300}.entry__notes{max-width:var(--measure);color:var(--ink-2);margin-top:.9rem;padding-left:1.15rem;font-size:.97rem;font-weight:300}.entry__notes li{margin-bottom:.3rem}.entry__notes li::marker{color:var(--accent);content:"— "}.tags{flex-wrap:wrap;gap:.4rem;margin-top:1.1rem;list-style:none;display:flex}.tags li{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-2);background:var(--paper-deep);border:1px solid var(--rule-soft);border-radius:2px;padding:.18rem .5rem;font-size:.68rem}.entry__meta{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;padding-top:.5rem;font-size:.72rem}@media (width<=720px){.entry{grid-template-columns:2.5rem 1fr}.entry__meta{text-align:left;grid-column:2;padding-top:.6rem}}@media (width<=480px){.entry{grid-template-columns:1fr}.entry__index{padding-top:0}.entry__meta{grid-column:1}.entry__kind{width:fit-content;margin:.5rem 0 0;display:block}}.ledger{list-style:none}.ledger__row{border-top:1px solid var(--rule-soft);grid-template-columns:minmax(12rem,1fr) 2fr auto;align-items:start;gap:.4rem 2rem;padding:1.6rem 0;display:grid}.ledger__row:first-child{border-top:none;padding-top:.4rem}.ledger__role h3{font-family:var(--font-serif);letter-spacing:-.01em;font-size:1.3rem;font-weight:500;line-height:1.2}.ledger__org{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-top:.28rem;font-size:.74rem;display:block}.ledger__desc{color:var(--ink-2);max-width:58ch;font-size:.99rem;font-weight:300}.ledger__desc li{margin-bottom:.25rem}.ledger__desc ul{padding-left:1.15rem}.ledger__desc li::marker{color:var(--accent);content:"— "}.ledger__date{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;font-size:.72rem}@media (width<=800px){.ledger__row{grid-template-columns:1fr}.ledger__date{text-align:left;padding-top:.35rem}}.repertoire{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:2rem 2.5rem;display:grid}.repertoire__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--rule);margin-bottom:.85rem;padding-bottom:.6rem;font-size:.7rem;font-weight:600}.repertoire__list{font-family:var(--font-mono);color:var(--ink-2);font-size:.84rem;line-height:2.05;list-style:none}.repertoire__list li{justify-content:space-between;gap:1rem;display:flex}.repertoire__list li:after{content:"·";color:var(--rule)}.degree{border-top:1px solid var(--rule-soft);max-width:78ch;padding:1.6rem 0}.degree:first-of-type{border-top:none;padding-top:0}.degree__head{flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem;display:flex}.degree__title{font-family:var(--font-serif);letter-spacing:-.01em;font-size:1.45rem;font-weight:500}.degree__school{color:var(--accent);font-weight:400}.degree__date{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:.74rem}.degree__coursework{border-top:1px dashed var(--rule);color:var(--ink-2);margin-top:1rem;padding-top:.9rem;font-size:.99rem;font-weight:300}.degree__coursework-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-right:.4rem;font-size:.7rem}@media (width<=560px){.degree__date{width:100%;margin-left:0}}.correspondence{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;gap:2.5rem;display:grid}@media (width<=760px){.correspondence{grid-template-columns:1fr}}.correspondence__lede{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--ink);font-size:clamp(1.3rem,3vw,1.75rem);font-weight:300;line-height:1.35}.correspondence__list{list-style:none}.correspondence__list li{border-top:1px solid var(--rule-soft);grid-template-columns:6.5rem 1fr;align-items:baseline;gap:1rem;padding:.75rem 0;display:grid}.correspondence__list li:first-child{border-top:none;padding-top:0}.correspondence__key{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-size:.7rem}.correspondence__list a{font-family:var(--font-mono);word-break:break-word;font-size:.92rem}.colophon{padding:3rem 0 4rem}.colophon__rule{background:var(--ink);height:2px}.colophon__line{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin-top:1.1rem;font-size:.72rem;display:flex}.colophon__sep{color:var(--rule)}.colophon a{color:var(--ink-faint)}.colophon a:hover{color:var(--accent)}.js .reveal{opacity:0;transition:opacity .64s cubic-bezier(.2,.7,.2,1),transform .64s cubic-bezier(.2,.7,.2,1);transform:translateY(14px)}.js .reveal.is-visible{opacity:1;transform:none}.masthead .reveal:nth-child(2){transition-delay:40ms}.masthead .reveal:nth-child(3){transition-delay:90ms}.masthead .reveal:nth-child(4){transition-delay:.13s}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transition:none;transform:none}}
