@font-face{font-family:"Bodoni Moda";src:url('/assets/fonts/bodoni-moda.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:"Bodoni Moda";src:url('/assets/fonts/bodoni-moda-italic.woff2') format('woff2');font-style:italic;font-weight:400 700;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url('/assets/fonts/source-sans-3.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
:root{
  --ivory:#F7F3EC;--linen:#EFE8DC;--ice:#FBF9F5;--charcoal:#1E1C1A;
  --taupe:#6A6259;--taupe-soft:#7A7268;--gold:#B89B64;--gold-deep:#8C7142;
  --rule:rgba(30,28,26,.16);--rule-strong:rgba(30,28,26,.32);
  --serif:"Bodoni Moda","Bodoni 72",Didot,"Times New Roman",serif;
  --sans:"Source Sans 3","Source Sans Pro",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);--ease-inout:cubic-bezier(.65,0,.35,1);
  --maxw:1200px;--gutter:24px;--margin:clamp(24px,6vw,120px);
}
*{box-sizing:border-box}
html{scroll-padding-top:32px}
body{margin:0;background:var(--ivory);color:var(--charcoal);font:400 18px/1.55 var(--sans);overflow-x:clip}
::selection{background:rgba(184,155,100,.28);color:var(--charcoal)}
a{color:var(--charcoal);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:var(--gold)}
a:hover{text-decoration-color:var(--charcoal)}
:focus-visible{outline:2px solid var(--charcoal);outline-offset:3px}
button,input{font:inherit}
p{margin:0 0 1em;text-wrap:pretty}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:500;font-optical-sizing:auto;text-wrap:balance}
h2{font-size:56px;line-height:1.04;letter-spacing:-.02em}
svg{display:block}
[hidden]{display:none!important}
.wrap{width:calc(100% - var(--margin)*2);max-width:var(--maxw);margin-inline:auto}
.label{font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--taupe)}
.skip-link{position:absolute;left:var(--margin);top:12px;z-index:10;background:var(--ivory);padding:8px 12px;transform:translateY(-180%)}
.skip-link:focus{transform:none}
.site-header{display:flex;justify-content:space-between;align-items:baseline;padding-block:29px 25px;border-bottom:1px solid var(--rule)}
.site-name{font:500 20px/1.3 var(--serif);font-optical-sizing:auto;text-decoration:none}
.site-header nav{display:flex;gap:30px}
.site-header nav a{font:600 13px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.site-header nav a:hover,.site-header nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--charcoal)}
.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:28px;grid-template-rows:auto auto;align-content:start;padding-block:68px 96px;min-height:650px}
.hero-main{grid-column:1/9;grid-row:1}
.hero-main>.label{margin-bottom:25px}
h1{font-size:clamp(64px,9.2vw,136px);line-height:.94;letter-spacing:-.03em}
h1 span{display:block}
.hero-intro{font-size:21px;line-height:1.5;max-width:34rem;margin:0;grid-column:1/9;grid-row:2}
.selected-work{grid-column:9/13;grid-row:2;align-self:start;margin-top:0;border-top:1px solid var(--gold);padding-top:18px}
.selected-work .label{margin-bottom:17px}
.selected-work h2{font-size:28px;line-height:1.16;letter-spacing:0;margin-bottom:14px}
.selected-work>p:not(.label){font-size:16px;line-height:1.5}
.link-row,.program__links{display:flex;gap:24px;flex-wrap:wrap;font-size:16px}
.selected-work .link-row{margin-top:21px;margin-bottom:0}
.hero-decoration{--trace-w:clamp(304px,39.4444vw,568px);position:absolute;top:45px;left:calc(66.6667% - 4px);right:calc(-1 * max(var(--margin),(100vw - var(--maxw)) / 2));height:calc(var(--trace-w) * 288 / 568);z-index:-1;overflow:hidden;pointer-events:none}
.hero-tracing{position:absolute;top:0;left:0;width:var(--trace-w);height:100%}
.hero-tracing path{fill:none;stroke:var(--gold);stroke-width:1px;vector-effect:non-scaling-stroke}
.tracing-primary{opacity:.55}.tracing-secondary{opacity:.22}
.hero-frost{position:absolute;top:0;left:0;width:var(--trace-w);height:100%}
.hero-light{position:absolute;inset:-50% -100%;opacity:0;transform:translateX(-50%) rotate(-22deg);background:linear-gradient(90deg,transparent 42%,rgba(255,253,247,.5) 50%,transparent 58%)}
.js.motion-ready .hero-tracing path{stroke-dasharray:1;stroke-dashoffset:1;animation:trace 2.4s var(--ease-inout) forwards}
.js.motion-ready .hero-tracing .tracing-secondary{animation-delay:.5s}
.js.motion-ready .hero-light{animation:light-sweep 2.6s var(--ease-inout) .6s both}
@keyframes trace{to{stroke-dashoffset:0}}
@keyframes light-sweep{0%{opacity:0;transform:translateX(-50%) rotate(-22deg)}20%,70%{opacity:1}100%{opacity:0;transform:translateX(50%) rotate(-22deg)}}
.section{border-top:1px solid var(--rule);padding-top:56px;margin-top:112px}
.hero+.section{margin-top:0}
.section-intro{max-width:588px}
.section-intro>.label{margin-bottom:17px}
.section-intro h2{margin-bottom:24px}
.section-intro p:last-child{margin-bottom:0}
.text-link{display:inline-block;font-size:16px;margin-top:5px}
.program-label{margin-top:64px;margin-bottom:16px}
.program{list-style:none;margin:0;padding:0;max-width:996px;border-top:1px solid var(--rule);scroll-margin-top:32px}
.program__item{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);padding-block:28px;scroll-margin-top:32px}
.program__num{font:500 22px/1.45 var(--serif);color:var(--gold-deep);font-variant-numeric:lining-nums tabular-nums}
.program__head{display:flex;align-items:baseline;gap:16px}
.program__title{font-size:27px;line-height:1.18}
.program__leader{flex:1;min-width:16px;border-bottom:1px dotted var(--rule-strong)}
.program__meta{font-size:15px;white-space:nowrap;color:var(--taupe);font-variant-numeric:lining-nums tabular-nums}
.program__org{font-size:15px;color:var(--taupe);margin:8px 0 12px}
.program__desc{max-width:49rem;margin:0}
.program__links{margin:15px 0 0}
[data-rule]::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--rule);transform-origin:left}
.about{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter)}
.about .section-intro{grid-column:1/7}
.bio{grid-column:8/13;margin:0;border-top:1px solid var(--rule)}
.bio__row{position:relative;display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding-block:18px}
.bio dt{padding-top:3px}
.bio dd{margin:0;font-size:16px;line-height:1.45}
.reading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,6vw,96px);margin-top:48px}
.reading-column>h3{margin-bottom:20px}
.reading-list{list-style:none;counter-reset:reading;margin:0;padding:0}
.reading-list li{position:relative;counter-increment:reading;padding:22px 0 23px 36px;border-top:1px solid var(--rule)}
.reading-list li:last-child{border-bottom:1px solid var(--rule)}
.reading-list li::before{content:counter(reading,lower-roman) ".";position:absolute;left:0;top:24px;color:var(--gold-deep);font:500 18px/1.3 var(--serif)}
.reading-title{font:italic 500 21px/1.3 var(--serif);font-optical-sizing:auto}
.reading-list p{font-size:15px;line-height:1.45;color:var(--taupe);margin:10px 0 0}
.email{display:inline-block;font:500 clamp(28px,4vw,48px)/1.25 var(--serif);font-optical-sizing:auto;margin:32px 0 24px;max-width:100%;overflow-wrap:normal;word-break:normal}
.contact .link-row{margin:0}
.site-footer{margin-top:100px;padding-bottom:32px}
.footer-flourish{width:72px;height:36px;margin-bottom:24px}
.footer-flourish path{stroke:var(--gold);stroke-width:1;fill:none;vector-effect:non-scaling-stroke}
.site-footer p{font-size:14px;color:var(--taupe);margin:0}
.site-footer p span{padding-inline:12px}
.not-found{padding-block:100px;min-height:50vh}
.not-found h2{margin:16px 0 32px}
.js .reveal-ready{opacity:0;transform:translateY(14px);transition:opacity 700ms var(--ease),transform 700ms var(--ease);transition-delay:var(--reveal-delay,0ms)}
.js .program__main.reveal-ready{transition-duration:600ms}
.js .reveal-ready.is-visible{opacity:1;transform:none}
.js .rule-ready::after{transform:scaleX(0);transition:transform 900ms var(--ease);transition-delay:var(--rule-delay,0ms)}
.js .rule-ready.is-visible::after{transform:scaleX(1)}
.js .flourish-ready path{stroke-dasharray:1;stroke-dashoffset:1}
.js .flourish-ready.is-visible path{animation:trace 1.6s var(--ease) forwards}
@media(max-width:1050px){.hero{min-height:600px}.hero-main{grid-column:1/8}.selected-work{grid-column:9/13}.program__head{gap:12px}.bio__row{grid-template-columns:90px minmax(0,1fr)}}
@media(max-width:760px){
 body{font-size:17px}.site-header{display:block;padding-block:24px 20px}.site-header nav{gap:20px;margin-top:16px}.site-header nav a{font-size:12px;letter-spacing:.12em}
 .hero{display:block;padding-block:112px 64px;min-height:0}.hero-main>.label{margin-bottom:24px}h1{font-size:60px}
 .hero-intro{font-size:18px;line-height:1.5;margin-top:28px}.selected-work{margin-top:44px;max-width:34rem}
 .hero-decoration{top:0;left:auto;right:calc(-1 * var(--margin));width:160px;height:88px}.hero-tracing{width:174px;height:88px;inset:0 auto auto 16px}.hero-frost{width:100%}.tracing-primary{opacity:.35}.tracing-secondary{opacity:.15}
 .section{margin-top:72px;padding-top:36px}.hero+.section{margin-top:0}h2{font-size:40px}
 .section-intro h2{margin-bottom:22px}.program-label{margin-top:44px}.program__item{grid-template-columns:44px minmax(0,1fr);padding-block:24px}
 .program__head{display:block}.program__title{font-size:23px}.program__leader{display:none}.program__meta{display:block;margin-top:8px}.program__org{margin-top:4px}
 .about{display:block}.bio{margin-top:40px}.bio__row{grid-template-columns:100px minmax(0,1fr);padding-block:16px}
 .reading-grid{grid-template-columns:1fr;gap:40px;margin-top:36px}.reading-title{font-size:20px}
 .email{margin-top:28px;font-size:26px;line-height:1.25}.site-footer{margin-top:72px}.site-footer p span{padding-inline:5px}
}
.reading-title{text-decoration-color:rgba(140,113,66,.4)}
.reading-title:hover,.reading-title:focus-visible{text-decoration-color:var(--charcoal)}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .js .reveal-ready{opacity:1;transform:none}.js .rule-ready::after{transform:scaleX(1)}
 .js.motion-ready .hero-tracing path,.js .flourish-ready path{stroke-dashoffset:0}.hero-frost,.hero-light{display:none}
}
@media print{
 @page{margin:18mm}body{background:white;font-size:11pt}.wrap{width:100%;max-width:none}
 .site-header nav,.skip-link,.hero-decoration,.rink,.footer-flourish,.text-link{display:none!important}
 .hero{display:block;min-height:0;padding:32px 0}.hero-main{max-width:none}h1{font-size:48pt}.hero-intro{font-size:12pt}
 .selected-work{margin-top:24px;max-width:28rem}.section{margin-top:36px;padding-top:24px}h2{font-size:28pt}
 .program{max-width:none}.program__item{padding-block:16px;break-inside:avoid}.program__title{font-size:17pt}
 .about{display:block}.bio{margin-top:24px}.bio__row{padding-block:10px}.reading-grid{gap:30px}.reading-list li{break-inside:avoid}
 .email{font-size:24pt}.site-footer{margin-top:40px}.js .reveal-ready{opacity:1;transform:none}.js .rule-ready::after{transform:scaleX(1)}
 a{text-decoration-color:var(--rule-strong)}
}
