:root{color-scheme:light;--paper:#f6f3eb;--ink:#303b30;--muted:#74786b;--olive:#546345;--line:#d9d8c9;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--mono:ui-monospace,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:42px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.8 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible{outline:2px solid #9b7943;outline-offset:6px}.skip{position:fixed;left:20px;top:-90px;z-index:10;background:var(--paper);padding:12px}.skip:focus{top:15px}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#e8ebdf;border-right:1px solid #d0d6c4;padding:42px 35px;display:flex;flex-direction:column}.monogram{font:italic 52px/1 var(--serif);letter-spacing:-5px;width:65px}.monogram span{color:#a58a52}.sidebar-label{font:9px/1.8 var(--mono);letter-spacing:1.4px;color:var(--muted);margin:30px 0 50px}.sidebar nav{display:grid;gap:20px}.sidebar nav a{font-size:12px;display:flex;align-items:center;gap:15px;color:#6b7560;line-height:1.5}.sidebar nav a>span{font:9px var(--mono);color:#8b957e}.sidebar nav a[aria-current=location]{color:#293c23;font-weight:bold}.sidebar nav a[aria-current=location]>span{color:#8b713a}.sidebar-bottom{margin-top:auto;padding-top:35px;display:grid;gap:12px;font-size:11px}.sidebar-bottom>span{font:9px var(--mono);color:var(--muted);margin-top:20px}main{max-width:1120px;margin-left:260px;padding:0 clamp(35px,6vw,100px)}.page-header{display:flex;justify-content:space-between;gap:20px;padding:31px 0;border-bottom:1px solid var(--line);font:9px/1.5 var(--mono);letter-spacing:.7px;color:var(--muted)}.chapter{font:10px/1.7 var(--mono);letter-spacing:.4px;color:var(--muted)}.profile{padding:65px 0 70px}.profile h1{font:400 clamp(60px,7.3vw,108px)/1.05 var(--serif);letter-spacing:-5px;margin:25px 0 36px}.profile h1 em{font-weight:400;color:var(--olive)}.lead{font:400 clamp(25px,3vw,37px)/1.35 var(--serif);letter-spacing:-.6px;margin:0 0 40px;max-width:650px}.profile-bottom{display:grid;grid-template-columns:1.6fr 1fr;gap:45px;align-items:start}.profile-bottom>p{font-size:14px;line-height:1.9;margin:0;color:#616859}.profile-bottom dl{margin:0;border-left:1px solid var(--line);padding-left:25px;font-size:11px}.profile-bottom dl div{margin-bottom:13px}.profile-bottom dt{font:9px var(--mono);color:var(--muted);margin-bottom:3px}.profile-bottom dd{margin:0}.chapter-section{padding:55px 0 65px;border-top:1px solid var(--line)}.section-heading{margin-bottom:40px}h2{font:400 clamp(30px,3.3vw,44px)/1.15 var(--serif);letter-spacing:-1.2px;margin:15px 0 0}h3{font:400 27px/1.25 var(--serif);letter-spacing:-.6px;margin:14px 0 16px}p{margin:0 0 16px}.in-progress{display:grid;grid-template-columns:1fr 1fr;gap:35px}.in-progress article{padding:0 0 15px 20px;border-left:2px solid #bac3a6}.in-progress p{font-size:14px;line-height:1.85}.note-status{font:9px/1.8 var(--mono);color:var(--muted)}.status-dot{width:6px;height:6px;display:inline-block;background:#7c8c59;border-radius:50%;margin-right:4px}.status-dot.hollow{background:transparent;border:1px solid #7c8c59}.margin-note{font:italic 13px/1.7 var(--serif);color:#788068;display:block;margin-top:25px}.upcoming{display:grid;grid-template-columns:150px 1fr;gap:8px 20px;background:#edeedf;margin-top:40px;padding:25px 28px}.upcoming p{font-size:13px;line-height:2;margin:0}.upcoming p span{font:8px var(--mono);color:#7a806b;margin-left:12px;text-transform:uppercase}.upcoming small{grid-column:2;color:#787e6c;font-size:11px}.teaching-entry{display:grid;grid-template-columns:150px 1fr;gap:20px;margin-top:35px}.when{font:10px/1.7 var(--mono);color:var(--muted);padding-top:6px}.teaching-entry h3{margin:0 0 5px;font-size:25px}.organisation{font:10px var(--mono);color:var(--muted)}.teaching-entry p{font-size:14px;margin:18px 0 0;line-height:1.9}.entry-label{font:9px var(--mono);letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}.project-entry p{font-size:14px;line-height:1.9}.featured h3{font-size:38px}.featured>p{max-width:570px}.featured figure{margin:25px 0 45px}.featured img{width:100%;height:auto;display:block;border:8px solid #e5e3d6}.featured figcaption{font:10px/1.7 var(--sans);color:var(--muted);display:flex;gap:15px;margin-top:12px}.featured figcaption span{font-family:var(--mono);white-space:nowrap}.project-notes{display:grid;grid-template-columns:1fr 1fr;gap:35px}.project-notes .project-entry{border-top:1px solid var(--line);padding-top:22px}.project-notes h3{font-size:27px;overflow-wrap:anywhere}.text-link{display:inline-block;font-size:11px;border-bottom:1px solid #a2ad8f;padding-bottom:3px}.project-entry .small-note{font-size:11px;color:var(--muted)}.tool-list{margin:0}.tool-list>div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.tool-list dt{font:10px/1.8 var(--mono);color:var(--muted)}.tool-list dd{font-size:14px;line-height:1.9;margin:0}.contact h2{margin-bottom:25px}.email{font:400 clamp(22px,3vw,36px)/1.5 var(--serif);letter-spacing:-.8px;overflow-wrap:anywhere}.email span{font-size:24px;color:#7c895f;margin-left:10px}.social-links{display:flex;gap:30px;font-size:12px;margin-top:22px}.social-links a{border-bottom:1px solid #a2ad8f;padding-bottom:4px}footer{border-top:1px solid var(--line);padding:23px 0 35px;display:flex;justify-content:space-between;gap:15px;font:9px/1.8 var(--mono);color:var(--muted)}@media(min-width:1500px){main{margin-inline:auto;transform:translateX(130px);max-width:1120px}}@media(max-width:1000px){.sidebar{width:215px;padding:35px 25px}.sidebar nav{gap:17px}.sidebar nav a{font-size:11px}main{margin-left:215px;padding-inline:35px}.profile-bottom{gap:25px;grid-template-columns:1.5fr 1fr}.in-progress,.project-notes{gap:25px}.upcoming,.teaching-entry,.tool-list>div{grid-template-columns:115px 1fr;gap:20px}.page-header>span:last-child{display:none}}@media(max-width:720px){html{scroll-padding-top:20px}.sidebar{position:relative;inset:auto;width:100%;padding:22px 6% 20px;border-right:0;border-bottom:1px solid #d0d6c4;display:grid;grid-template-columns:1fr 1fr}.monogram{font-size:39px}.sidebar-label{margin:0;justify-self:end;font-size:8px;text-align:right}.sidebar nav{grid-column:1/-1;display:flex;gap:18px;overflow:auto;padding:22px 0 4px;margin-top:10px}.sidebar nav a{white-space:nowrap;gap:7px;font-size:10px}.sidebar nav a>span{font-size:8px}.sidebar-bottom{grid-column:1/-1;display:flex;gap:22px;flex-wrap:wrap;margin:15px 0 0;padding:0;font-size:10px}.sidebar-bottom>span{display:none}main{margin:0;padding:0 6%;width:100%}.page-header{font-size:8px;padding:22px 0}.profile{padding:40px 0 45px}.profile h1{font-size:clamp(51px,11.5vw,80px);letter-spacing:-3px;margin:23px 0 28px}.lead{font-size:28px;margin-bottom:28px}.profile-bottom{grid-template-columns:1fr;gap:25px}.profile-bottom dl{display:grid;grid-template-columns:1fr 1fr 50px;gap:12px;border-left:0;padding:20px 0 0;border-top:1px solid var(--line)}.profile-bottom dl div{margin:0}.chapter-section{padding:35px 0 45px}.section-heading{margin-bottom:30px}h2{font-size:33px}.in-progress,.project-notes{grid-template-columns:1fr;gap:30px}.margin-note{margin-top:15px}.upcoming{grid-template-columns:1fr;padding:20px;gap:14px}.upcoming small{grid-column:1}.teaching-entry{grid-template-columns:1fr;gap:10px}.when br{display:none}.teaching-entry h3{font-size:25px}.teaching-entry p{margin-top:12px}.tool-list>div{grid-template-columns:100px 1fr;gap:18px}.tool-list dd{font-size:13px}.featured img{border-width:5px}.email{font-size:clamp(23px,6vw,32px)}.email span{font-size:18px;margin-left:4px}footer{font-size:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{body{font-size:11pt;background:white;color:black}.sidebar,.skip{display:none}main{margin:0!important;padding:0!important;max-width:none;transform:none!important}.page-header{padding-top:0}.profile{padding:20px 0}.profile h1{font-size:48pt}.lead{font-size:20pt}.chapter-section{padding:25px 0}.in-progress,.project-notes{gap:20px}.project-entry,.teaching-entry,.tool-list>div{break-inside:avoid}a{color:black}.featured figure{max-width:450px}.featured img{border:0}.contact{break-inside:avoid}footer{padding:15px 0}}
/* The interactive cover precedes the notebook without changing its reading layout. */
#name-intro{height:200svh;background:#263028;position:relative;margin-inline:calc(-1 * clamp(35px,6vw,100px));overflow:clip}
#name-intro .hero{height:100svh;position:sticky;top:0;isolation:isolate;overflow:hidden;background:#172344;transform:scale(var(--hero-scale,1));border-radius:var(--hero-radius,0px)}
#name-intro .sky{position:absolute;inset:0;background:url('assets/seqset-sky.gif') center/420px;image-rendering:pixelated;opacity:.65;transform:scale(var(--scene-zoom,1));will-change:transform}
#name-intro #ink{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:var(--ink-opacity,1)}
#name-intro .hero-meta,#name-intro .hero-foot{position:absolute;left:6%;right:6%;z-index:3;display:flex;justify-content:space-between;gap:25px;color:#c9cec0;font:11px/1.6 var(--mono)}
#name-intro .hero-meta{top:35px}#name-intro .hero-foot{bottom:35px}
#name-intro .hero-name{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:94%;text-align:center;white-space:nowrap;margin:0;font:400 clamp(40px,6.4vw,100px)/1.1 var(--sans);letter-spacing:.015em;color:#efdfae;opacity:var(--name-opacity,1);z-index:2}
#name-intro .letter{display:inline-block;will-change:transform}
#name-intro .portal{position:absolute;left:50%;top:50%;width:30vmin;height:30vmin;border:1px solid #e8d99880;border-radius:50%;transform:translate(-50%,-50%) scale(var(--portal-scale,.5));opacity:var(--portal-opacity,0);box-shadow:0 0 0 35px #c6b67812,0 0 0 90px #c6b67808;pointer-events:none;z-index:2}
#name-intro .scene-caption{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:86%;text-align:center;font:400 clamp(30px,5vw,72px)/1.3 var(--serif);letter-spacing:-1px;color:#fff2c4;opacity:var(--caption-opacity,0);z-index:2;pointer-events:none}
#name-intro .scene-caption small{display:block;font:12px/1.6 var(--mono);letter-spacing:0;margin-top:20px}
@media(max-width:1000px){#name-intro{margin-inline:-35px}#name-intro .hero-foot,#name-intro .hero-meta{font-size:10px}}
@media(max-width:720px){#name-intro{margin-inline:calc(-100vw * .06);height:175svh}#name-intro .hero-name{font-size:10vw}#name-intro .hero-meta,#name-intro .hero-foot{font-size:9px;gap:18px}#name-intro .hero-foot>span{max-width:145px}#name-intro .sky{background-size:300px}}
@media(prefers-reduced-motion:reduce){#name-intro{height:80svh}#name-intro .hero{height:80svh;position:relative;transform:none;border-radius:0}#name-intro .sky{background-image:none;transform:none}#name-intro #ink,#name-intro .portal,#name-intro .scene-caption,#name-intro .pointer-hint{display:none}#name-intro .hero-name{opacity:1}#name-intro .letter{transform:none!important}}
@media print{#name-intro{display:none}}

/* A viewport-sized cover, followed by the two-column notebook. No overlay navigation. */
#name-intro{margin-inline:0;width:100%;}
#name-intro .hero-name{font-size:clamp(40px,7.5vw,110px)}
.notebook{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start}
.notebook .sidebar{position:sticky;inset:auto;top:0;width:100%;height:100svh}
.notebook main{margin:0;width:100%;max-width:1120px;transform:none;justify-self:center}
@media(max-width:1000px){.notebook{grid-template-columns:215px minmax(0,1fr)}}
@media(max-width:720px){.notebook{display:block}.notebook .sidebar{position:relative;top:auto;height:auto}#name-intro .hero-name{font-size:10vw}}
@media(prefers-reduced-motion:reduce){#name-intro,#name-intro .hero{height:100svh}}
@media print{.notebook{display:block}.notebook .sidebar{display:none}}
