:root{color-scheme:dark;--ink:#10100e;--paper:#e8e2d8;--muted:#aaa69d;--rule:#393934;font-family:Georgia,'Times New Roman',serif;color:var(--paper);background:var(--ink);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:1px solid var(--paper);outline-offset:7px}a:hover,button:hover{color:#fff}button{background:none;border:0;padding:0}.skip{position:fixed;top:12px;left:12px;transform:translateY(-200%);z-index:5;padding:12px;background:var(--ink)}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}/* Editorial cover: a typographic left page and a portrait on the right. */
.hero{width:100%;max-width:none;min-height:560px;height:100svh;max-height:none;margin:0;display:grid;grid-template-columns:58% 42%;background:#fafaf8;color:#181817;overflow:hidden;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
.hero-left{padding:20px 26px 22px;display:grid;grid-template-rows:auto 1fr auto;min-width:0}
.hero-name{display:block;font-size:clamp(80px,10vw,180px);font-weight:700;line-height:.88;letter-spacing:-.055em}
.hero-middle{display:grid;grid-template-columns:minmax(95px,.64fr) minmax(0,1.36fr);gap:30px;align-items:center;padding:36px 0}
.hero nav{display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:14px;line-height:1.3}
.hero nav a{text-decoration:none;padding:1px 0}
.hero nav a:hover{text-decoration:underline;color:#181817}
.hero nav a:focus-visible{outline-color:#181817}
.hero-bio{max-width:300px;margin:0;font-size:14px;line-height:1.5;letter-spacing:0}
.hero-portrait{position:relative;overflow:hidden;background:#10100e;min-width:0}
.hero-portrait img{position:absolute;height:112%;width:auto;max-width:none;top:-12%;right:-9%}
.section{max-width:1240px;margin:auto;padding:116px 70px;display:grid;grid-template-columns:26% 1fr;gap:34px;scroll-margin-top:0}.section h2{font-size:20px;font-weight:400;margin:9px 0;letter-spacing:.02em}.section-content{max-width:730px}.section p{font-size:19px;line-height:1.7;margin:0 0 22px}.section .intro{font-size:clamp(32px,3.2vw,48px);line-height:1.25;letter-spacing:-.025em;margin-bottom:32px}.section .lead{font-size:25px;line-height:1.55}.section .context{margin-top:42px;color:var(--muted);font-size:18px;line-height:1.8}.about{padding-top:130px;padding-bottom:130px}.work{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.project{padding:0 0 45px;margin-bottom:45px;border-bottom:1px solid var(--rule)}.project:last-child{border:0;margin:0;padding:0}.project-heading{display:flex;justify-content:space-between;align-items:baseline;gap:25px;margin-bottom:22px}.project h3{font-weight:400;font-size:30px;margin:0;line-height:1.2}.project-heading span{font-family:Arial,sans-serif;font-size:14px;color:var(--muted);text-align:right;line-height:1.5}.project p{font-size:18px}.project .project-note{font-size:16px;color:var(--muted);margin-bottom:0}.now{padding-bottom:80px}.off-hours{padding-top:75px;padding-bottom:110px}.interests{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:18px 32px;font-size:21px;color:var(--muted)}.contact{border-top:1px solid var(--rule);padding-top:100px;padding-bottom:120px}.email{font-size:clamp(20px,2.5vw,32px);text-decoration-thickness:1px;overflow-wrap:anywhere}.contact-links{display:flex;gap:32px;font-size:18px;margin-top:35px}.contact-links button{text-decoration:underline;text-underline-offset:5px}footer{max-width:1100px;margin:auto;padding:30px 0 40px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;font-size:16px;color:var(--muted)}footer a{text-decoration:none}dialog{position:fixed;border:1px solid #625f56;background:#191917;color:var(--paper);padding:48px;width:min(440px,90vw);line-height:1.7}dialog::backdrop{background:#000b}dialog h2{font-size:32px;font-weight:400;margin:0 0 18px}dialog p{font-size:18px}.close{position:absolute;right:16px;top:7px;font-size:30px}
@media(min-width:761px){.about{padding-top:76px}}
@media(min-width:761px) and (max-width:1050px){.hero{width:100%;grid-template-columns:62% 38%;min-height:560px}.hero-left{padding:20px}.hero-middle{gap:18px;grid-template-columns:95px minmax(0,1fr)}.hero-name{font-size:clamp(90px,11vw,116px)}.hero-bio{font-size:14px}}
@media(max-width:760px){.hero{width:100%;height:auto;max-height:none;min-height:0;margin-top:0;grid-template-columns:1fr}.hero-left{padding:22px;min-height:640px}.hero-name{font-size:clamp(76px,17vw,125px)}.hero-middle{grid-template-columns:90px minmax(0,1fr);gap:20px;padding:40px 0}.hero-bio{font-size:14px;max-width:300px}.hero nav{font-size:14px;gap:2px}.hero-portrait{height:480px}.hero-portrait img{width:220%;height:auto;top:-12%;right:0}
.section{display:block;padding:65px 26px}.section h2{font-size:17px;color:var(--muted);margin:0 0 32px}.section .intro{font-size:34px}.section .lead{font-size:22px}.section .context{font-size:17px;margin-top:30px}.project-heading{display:block}.project h3{font-size:29px;margin-bottom:10px}.project-heading span{text-align:left}.project p{font-size:18px}.project{margin-bottom:35px;padding-bottom:35px}.interests{font-size:20px;gap:20px 28px}.contact .intro{font-size:32px}.email{font-size:21px}footer{margin:0 26px;font-size:14px;padding:25px 0 30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* A quiet professional background beneath the personal introduction. */
.background{margin-top:44px;padding-top:26px;border-top:1px solid var(--rule)}.background h3{font-size:19px;font-weight:400;margin:0 0 24px}.background dl{margin:0}.background dl>div{display:grid;grid-template-columns:1fr 1.3fr;gap:18px;margin-top:16px;font-size:17px;line-height:1.5}.background dt{color:var(--paper)}.background dd{color:var(--muted);margin:0}@media(max-width:480px){.background dl>div{display:block;margin-top:20px}.background dd{font-size:16px;margin-top:4px}}
/* Case studies keep the overview readable, with optional operational detail. */
.project .project-opening{font-size:24px;line-height:1.4;letter-spacing:-.015em;margin-bottom:22px}.project-link{display:inline-block;margin-top:20px;font-size:16px}.project details{margin-top:26px}.project summary{cursor:pointer;font-size:17px;line-height:1.5;text-underline-offset:5px;width:fit-content}.project summary:hover{text-decoration:underline}.project summary:focus-visible{outline:1px solid var(--paper);outline-offset:7px}.project details[open] summary{margin-bottom:23px}.detail-body{padding-left:20px;border-left:1px solid var(--rule)}.detail-body p{color:#cbc6bd}.evidence-links{display:flex;flex-wrap:wrap;gap:14px 24px;font-size:15px;line-height:1.6;margin-top:24px}@media(max-width:760px){.project .project-opening{font-size:23px}.detail-body{padding-left:15px}.project summary{font-size:17px}}

@media(max-width:420px){.hero-left{padding:18px}.hero-middle{grid-template-columns:1fr;gap:30px}.hero nav{gap:2px}.hero-left{min-height:0}.hero-name{font-size:23vw}.hero-portrait{height:380px}.hero-portrait img{right:0}}

/* A quiet timeline: the century holds while years move with the page. */
.journey{background:#fafaf8;color:#242422;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:80px 5vw 100px}
.journey-heading{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:100px}
.journey-heading h2,.further-work>h2{font-size:14px;font-weight:400;margin:0}
.journey-heading>p{font-size:14px;color:#73736e;margin:0;width:40%}
.journey-layout{display:grid;grid-template-columns:27% 73%;align-items:start}
.journey-marker,.journey-year{font-size:clamp(100px,20vw,310px);font-weight:200;line-height:.9;letter-spacing:-.085em;font-variant-numeric:tabular-nums}
.journey-marker{position:sticky;top:26vh}
.journey .journey-chapter{display:grid;grid-template-columns:39% 61%;gap:0;border:0;margin:0;padding:0 0 180px;min-height:95svh;scroll-margin-top:100px}
.journey-copy{padding:20px 0 0 30px;max-width:490px}
.journey .milestone{font-size:14px;line-height:1.5;color:#73736e;margin:0 0 30px}
.mobile-century{display:none}
.journey .project-heading{display:block;margin-bottom:24px}
.journey .project-heading h3{font-size:25px;line-height:1.18;font-weight:400;letter-spacing:-.025em;margin:0 0 10px}
.journey .project-heading>span{font-family:inherit;font-size:14px;color:#73736e}
.journey .project-opening{font-size:15px;line-height:1.5;letter-spacing:-.01em;margin:0 0 22px}
.journey .project p:not(.project-opening):not(.milestone){font-size:14px;line-height:1.7}
.journey .project-note{color:#73736e}
.journey a,.journey summary{font-size:14px;color:#42423e}
.journey a:hover{color:#000}
.journey a:focus-visible,.journey summary:focus-visible{outline:1px solid #242422;outline-offset:5px}
.journey details{margin-top:24px}
.journey .detail-body{border-color:#d8d8d1;padding-left:14px}
.further-work{display:grid;grid-template-columns:55.5% 44.5%;padding-top:40px}
.journey .further-project{border:0;padding:0 0 80px 30px;margin:0;max-width:490px}
@media(min-width:1800px){.journey{padding-left:calc((100vw - 1620px)/2);padding-right:calc((100vw - 1620px)/2)}}
@media(max-width:760px){.journey{padding:50px 24px 40px}.journey-heading{display:block;margin-bottom:64px}.journey-heading>p{width:auto;margin-top:10px}.journey-layout{display:block}.journey-marker{display:none}.journey .journey-chapter{display:block;min-height:0;padding:0 0 90px;scroll-margin-top:35px}.mobile-century{display:inline}.journey-year{font-size:clamp(90px,25vw,170px);margin-bottom:32px}.journey-copy{padding:0;max-width:none}.journey .milestone{margin-bottom:22px}.further-work{display:block;padding-top:0}.further-work>h2{margin-bottom:40px}.journey .further-project{padding:0 0 60px;max-width:none}}

/* Each complete year stays beside all of its experiences. */
.journey-layout{display:block}
.journey-year-group{display:grid;grid-template-columns:55.5% 44.5%;align-items:start}
.journey-year-group>.journey-year{position:sticky;top:26vh;font-size:clamp(100px,20vw,310px);white-space:nowrap;letter-spacing:-.085em;line-height:.9}
.journey .journey-chapter{display:block;min-height:85svh;padding:0 0 140px}
.journey .detail-body p{color:#52524c}
@media(max-width:760px){.journey-year-group{display:block}.journey-year-group>.journey-year{position:sticky;top:0;z-index:1;background:#fafaf8;font-size:70px;padding:18px 0;margin-bottom:26px}.journey .journey-chapter{min-height:0;padding:0 0 75px;scroll-margin-top:110px}}

/* One century for the entire timeline; one sticky suffix per year group. */
.journey-layout{--year-size:clamp(100px,20vw,310px);display:grid;grid-template-columns:.942em minmax(0,1fr);align-items:start;font-size:var(--year-size)}
.journey-century,.journey-year-group>.journey-year{position:sticky;top:26vh;font-size:var(--year-size);font-weight:200;line-height:.9;letter-spacing:-.085em;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}
.journey-groups{min-width:0}
.journey-year-group{grid-template-columns:minmax(0,1fr) minmax(0,calc(44.5% / .79));font-size:initial}
.journey-copy{padding-left:30px}
@media(max-width:760px){.journey-layout{--year-size:clamp(60px,14vw,100px);grid-template-columns:.942em minmax(0,1fr)}.journey-century,.journey-year-group>.journey-year{top:20px;padding:0;background:none;z-index:auto;font-size:var(--year-size)}.journey-year-group{display:grid;grid-template-columns:calc(var(--year-size)*.942) minmax(0,1fr);gap:18px}.journey-copy{padding:5px 0 0}.journey .project-heading h3{font-size:20px}.journey .project-opening{font-size:14px}.journey .journey-chapter{padding-bottom:75px}.journey-heading{margin-bottom:50px}}

/* Two editorial columns leave an open title space between them. */
.about-editorial{background:#fafaf8;color:#242422;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:130px 6vw 100px}
.about-spread{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:820px;margin:0 auto}
.about-column{display:flow-root;font-size:14px;line-height:1.8;text-align:justify;hyphens:auto}
.about-column p{font-size:inherit;line-height:inherit;margin:0 0 22px}
.about-cutout{float:right;width:100px;height:420px;shape-outside:polygon(0 210px,100% 210px,100% 420px,0 420px)}
.about-column:last-child .about-cutout{float:left}
.about-spread h2{position:absolute;top:210px;left:50%;transform:translateX(-50%);width:200px;height:210px;display:flex;align-items:center;justify-content:center;margin:0;font-size:36px;letter-spacing:-.035em;font-weight:400}
.about-editorial .background{max-width:820px;margin:75px auto 0;border-color:#deded8}
.about-editorial .background h3{font-size:14px}
.about-editorial .background dt{color:#242422}
.about-editorial .background dd{color:#73736e}
.about-editorial .background dl>div,.about-editorial .background dd{font-size:14px}
@media(max-width:650px){.about-editorial{padding:65px 26px}.about-spread{display:flex;flex-direction:column;gap:0}.about-spread h2{position:static;transform:none;order:-1;width:100%;height:120px;margin:0 0 36px;font-size:32px}.about-cutout{display:none}.about-column{text-align:left;font-size:14px;line-height:1.8}.about-editorial .background{margin-top:40px}}
.about-column p{text-align:justify}
@media(max-width:650px){.about-column p{text-align:left}}

/* Dark editorial spread with a compact central opening. */
.about-editorial{background:#10100e;color:#fff}
.about-spread{gap:28px}
.about-cutout{width:62px;height:310px;shape-outside:polygon(0 190px,100% 190px,100% 310px,0 310px)}
.about-spread h2{top:190px;width:124px;height:120px;font-size:25px;letter-spacing:-.025em}
.about-editorial .background{border-color:#393934}
.about-editorial .background dt{color:#fff}
.about-editorial .background dd{color:#aaa69d}
@media(max-width:650px){.about-spread{gap:0}.about-spread h2{position:static;width:100%;height:75px;font-size:25px;margin-bottom:28px}}
/* Continuous, balanced text gives the spread a true rectangular outline. */
.about-spread{--opening-top:160px;--opening-height:96px;gap:28px}
.about-column p{margin:0;line-height:1.8;text-align:justify;text-align-last:justify;hyphens:none}
.about-cutout{width:62px;height:calc(var(--opening-top) + var(--opening-height));shape-outside:inset(var(--opening-top) 0 0 0)}
.about-spread h2{top:var(--opening-top);height:var(--opening-height);width:124px;font-size:25px}
@media(max-width:650px){.about-column p{text-align:left;text-align-last:auto;margin-bottom:22px}.about-spread h2{top:auto;height:75px}.about-cutout{display:none}}
.about-column p{margin:0 0 18px;text-align-last:auto}
.about-column p:last-child{margin-bottom:0}
/* Bring the opening experience into view earlier. */
.journey-heading{margin-bottom:48px}
@media(max-width:760px){.journey-heading{margin-bottom:32px}}

.note-ref{font-size:14px;line-height:0;vertical-align:baseline;position:relative;top:-.55em;margin-left:.15em;white-space:nowrap}
.note-ref a{color:inherit;text-decoration:none}
.note-ref a:hover{text-decoration:underline}
.about-notes{max-width:820px;margin:52px auto 0;padding-top:22px;border-top:1px solid #393934;color:#aaa69d;font-size:14px;line-height:1.65}
.about-notes ol{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.about-notes li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;scroll-margin-top:40px}
.about-notes .note-number{color:#fff;text-decoration:none;font-size:14px}
.about-notes li:target{color:#fff}
@media(max-width:650px){.about-notes{margin-top:32px}}

/* About starts at the viewport edge and has equal outer breathing room. */
.about-editorial{scroll-margin-top:-40px;padding-top:130px;padding-bottom:130px}
@media(max-width:650px){.about-editorial{padding-top:65px;padding-bottom:65px}}

/* Now: an editorial index tracing an implied half-circle. */
.now-editorial{background:#10100e;color:#fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:110px 6vw;scroll-margin-top:-40px}
.now-layout{max-width:1080px;margin:auto;position:relative;min-height:650px}
.now-intro{position:absolute;left:0;top:50%;transform:translateY(-50%);width:285px}
.now-intro h2{font-size:88px;line-height:1;font-weight:400;letter-spacing:-.065em;margin:0}
.now-thesis{margin:30px 0 0;max-width:260px;font-size:14px;line-height:1.8;color:#bdbdb6}
.now-thesis span{color:#fff}
.now-entries{display:flex;flex-direction:column;gap:52px;padding:12px 0 12px 350px}
.now-entry{position:relative;margin:0;max-width:520px}
.now-entry:nth-child(2),.now-entry:nth-child(3){margin-left:125px}
.now-entry h3{display:flex;align-items:baseline;gap:22px;font-size:24px;font-weight:400;line-height:1.15;letter-spacing:-.035em;margin:0 0 12px}
.now-entry h3 span{font-size:14px;letter-spacing:0;color:#aaa69d;min-width:18px}
.now-entry h4{margin:0 0 5px 40px;font-size:14px;line-height:1.5;font-weight:500}
.now-entry p{font-size:14px;line-height:1.75;margin:0 0 0 40px;color:#d7d7d2}
.now-entry:nth-child(1) p{max-width:315px}
.now-entry:nth-child(2) p{max-width:390px}
.now-entry:nth-child(3) p{max-width:440px}
.now-entry:nth-child(4) p{max-width:470px}
.now-entry a{display:inline-block;font-size:14px;margin:14px 0 0 40px;color:#fff;text-decoration:none}
.now-entry a:hover{text-decoration:underline}
@media(max-width:1000px){.now-editorial{padding:85px 5vw}.now-intro{width:220px}.now-intro h2{font-size:72px}.now-thesis{max-width:205px}.now-entries{padding-left:270px;gap:44px}.now-entry:nth-child(2),.now-entry:nth-child(3){margin-left:65px}.now-layout{min-height:0}}
@media(max-width:650px){.now-editorial{padding:65px 26px}.now-layout{min-height:0}.now-intro{position:static;transform:none;width:auto;margin-bottom:50px}.now-intro h2{font-size:72px}.now-thesis{max-width:340px;margin-top:24px}.now-entries{padding:0;gap:36px}.now-entry:nth-child(2),.now-entry:nth-child(3){margin-left:24px}.now-entry h3{font-size:22px;gap:14px}.now-entry h4,.now-entry p{margin-left:32px}.now-entry a{margin-left:32px}}

/* One shared exclusion shape lets every line trace the same arc. */
.now-layout{min-height:0}
.now-entries{display:flow-root;padding:0;--arc-height:620px}
.now-entries::before{content:"";float:left;width:48%;height:var(--arc-height);shape-outside:ellipse(100% 50% at 0 50%);shape-margin:24px;pointer-events:none}
.now-entry,.now-entry:nth-child(2),.now-entry:nth-child(3){max-width:none;margin:0 0 38px}
.now-entry:last-child{margin-bottom:0}
.now-entry h3{display:block;margin:0 0 12px;line-height:30px}
.now-entry h3 span{display:inline;margin-right:16px}
.now-entry h4{margin:0 0 5px;line-height:21px}
.now-entry p,.now-entry:nth-child(n) p{margin:0;max-width:none;line-height:21px}
.now-entry a{display:block;margin:14px 0 0;line-height:21px}
.now-intro{width:250px}
.now-intro h2{font-size:80px}
.now-thesis{max-width:235px}
@media(max-width:1000px){.now-intro{width:190px}.now-intro h2{font-size:64px}.now-thesis{max-width:180px;font-size:14px}.now-entries::before{width:45%;shape-margin:22px}}
@media(max-width:650px){.now-intro{width:auto}.now-intro h2{font-size:72px}.now-thesis{max-width:340px;font-size:14px}.now-entries::before{width:16%;shape-margin:10px}.now-entry,.now-entry:nth-child(2),.now-entry:nth-child(3){margin:0 0 32px}.now-entry:last-child{margin-bottom:0}}

/* Contents-style numbers share a right edge, level with each heading. */
.now-entry{padding-right:48px}
.now-entry h3{position:relative}
.now-entry h3 span{position:absolute;right:-48px;top:0;margin:0;min-width:0;line-height:30px;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:650px){.now-entry{padding-right:30px}.now-entry h3 span{right:-30px}}

/* Off Hours: a fixed left page beside a horizontally moving photo essay. */
.hours-editorial{background:#fafaf8;color:#191917;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;scroll-margin-top:-40px;position:relative}
.hours-sticky{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:36% 64%;overflow:hidden}
.hours-intro{position:relative;padding:78px 4vw 65px 6vw;z-index:2;background:#fafaf8}
.hours-intro h2{font-size:25px;font-weight:400;letter-spacing:-.035em;line-height:1.2;margin:0}
.hours-intro p{position:absolute;top:50%;transform:translateY(-50%);left:6vw;right:4vw;max-width:320px;margin:0;font-size:14px;line-height:1.85;text-align:justify}
.hours-window{min-width:0;overflow:hidden;position:relative}
.hours-window:focus-visible{outline:1px solid #8b8b80;outline-offset:-5px}
.hours-track{display:flex;width:max-content;height:100%;will-change:transform}
.hours-spread{width:64vw;flex:0 0 64vw;height:100%;display:flex;flex-direction:column;justify-content:space-around;padding:65px 4vw 55px 2vw;gap:30px}
.hours-photo{margin:0;display:flex;align-items:center;gap:22px;max-width:100%}
.hours-photo:nth-child(odd){align-self:flex-end}
.hours-photo:nth-child(even){align-self:flex-start;flex-direction:row-reverse}
.hours-photo img{display:block;width:clamp(180px,24vw,360px);height:clamp(140px,29vh,300px);object-fit:contain;transition:transform .35s ease}
.hours-photo img:hover{transform:scale(1.035)}
.hours-photo figcaption{font-size:14px;line-height:1.6;width:105px;flex:0 0 105px;color:#6b6b62;text-align:left}
@media(max-width:1000px) and (min-width:761px){.hours-photo{gap:12px}.hours-photo figcaption{width:78px;flex-basis:78px}.hours-intro{padding-left:4vw}.hours-intro p{left:4vw;right:3vw}.hours-photo img{width:25vw}}
@media(max-width:760px),(prefers-reduced-motion:reduce){
.hours-editorial{height:auto!important}
.hours-sticky{position:relative;height:auto;display:block;overflow:visible}
.hours-intro{padding:65px 26px 35px}
.hours-intro p{position:static;transform:none;max-width:420px;margin-top:40px;line-height:1.85}
.hours-window{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#bcbcb2 transparent;scroll-snap-type:x proximity;padding-bottom:25px}
.hours-track{height:650px;transform:none!important;will-change:auto}
.hours-spread{width:90vw;flex-basis:90vw;scroll-snap-align:start;padding:30px 26px;gap:35px}
.hours-photo{gap:15px}.hours-photo img{width:50vw;height:230px;max-width:360px}.hours-photo figcaption{width:80px;flex-basis:80px}
}
@media(prefers-reduced-motion:reduce){.hours-photo img{transition:none}.hours-photo img:hover{transform:none}}
.hours-photo img{width:auto;height:auto;max-width:clamp(180px,24vw,360px);max-height:29vh}
@media(max-width:760px),(prefers-reduced-motion:reduce){.hours-photo img{max-width:50vw;max-height:230px}}

/* Larger photographs with room for their adjacent captions. */
.hours-photo img{max-width:clamp(220px,32vw,480px);max-height:36vh}
.hours-spread{padding-top:45px;padding-bottom:40px;gap:24px}
.hours-photo{gap:18px}
@media(max-width:1000px) and (min-width:761px){.hours-photo img{max-width:34vw}.hours-photo{gap:12px}}
@media(max-width:760px),(prefers-reduced-motion:reduce){.hours-track{height:780px}.hours-spread{width:100vw;flex-basis:100vw;padding:30px 22px;gap:30px}.hours-photo img{max-width:60vw;max-height:300px}.hours-photo{gap:12px}.hours-photo figcaption{width:72px;flex-basis:72px}}

/* Contact comes first; supporting details form a quiet closing index. */
.profile-footer{display:block;max-width:none;margin:0;padding:85px 6vw 30px;border:0;background:#10100e;color:#f4f1e9;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;scroll-margin-top:-40px}
.profile-footer-inner{max-width:1200px;margin:auto}
.profile-footer h2{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:clamp(70px,15.5vw,210px);font-weight:600;line-height:1;letter-spacing:-.07em;text-align:center;margin:0 0 42px;white-space:nowrap}
.footer-contact-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:center;margin:0 auto 78px;max-width:900px}
.footer-contact-methods a,.footer-contact-methods button{font:400 clamp(25px,3vw,38px)/1.4 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-.025em;color:#f4f1e9;background:none;border:0;padding:12px 0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:9px;cursor:pointer}
.footer-contact-methods a:hover,.footer-contact-methods button:hover{color:#fff;text-decoration-thickness:2px}
.footer-directory{display:grid;grid-template-columns:.9fr 1.2fr 1.35fr .85fr .8fr;column-gap:35px;row-gap:35px;border-top:1px solid #393934;padding-top:30px}
.footer-directory h3{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:.025em;color:#aaa79e;margin:0 0 12px}
.footer-directory ul{list-style:none;padding:0;margin:0;font-size:14px;line-height:1.8;color:#aaa79e}
.profile-footer a:focus-visible,.profile-footer button:focus-visible{outline:1px solid #f4f1e9;outline-offset:6px}
.footer-signoff{display:flex;justify-content:space-between;gap:24px;margin-top:48px;font-size:14px;color:#aaa79e}
.footer-signoff a{color:inherit;text-decoration:none}
@media(max-width:900px){.footer-directory{grid-template-columns:repeat(3,1fr);gap:30px}.profile-footer{padding-top:65px}}
@media(max-width:600px){.profile-footer{padding:60px 26px 28px}.profile-footer h2{font-size:15.5vw;margin-bottom:28px}.footer-contact-methods{gap:14px;margin-bottom:50px}.footer-contact-methods a,.footer-contact-methods button{font-size:22px;text-underline-offset:7px}.footer-directory{grid-template-columns:1fr 1fr;gap:28px 22px}.footer-signoff{margin-top:38px;gap:12px;font-size:14px}}

.profile-footer h2 a,.footer-directory h3 a{color:inherit;text-decoration:none}
.footer-directory h3 a:hover{text-decoration:underline;text-underline-offset:4px;color:#f4f1e9}
.profile-footer h2 a{display:inline-block}
.profile-footer{padding-bottom:65px}
@media(max-width:600px){.profile-footer{padding-bottom:45px}}

/* Compact closing block: contacts first, then name and supporting details. */
.profile-footer{padding-top:45px;padding-bottom:40px}
.footer-contact-methods{margin-bottom:20px}
.profile-footer h2{margin-bottom:25px}
.footer-directory{padding-top:22px;row-gap:24px}
@media(max-width:600px){.profile-footer{padding-top:35px;padding-bottom:30px}.footer-contact-methods{margin-bottom:18px}.profile-footer h2{margin-bottom:24px}.footer-directory{padding-top:20px;row-gap:24px}}

/* The q descender crosses the rule beneath the name. */
.profile-footer h2{position:relative;z-index:1;margin-bottom:-.09em}
.footer-directory{position:relative;padding-top:29px}
@media(max-width:600px){.profile-footer h2{margin-bottom:-.09em}.footer-directory{padding-top:23px}}

/* Readability adjustments for a 14px minimum across all screen sizes. */
.hero-bio{max-width:340px;line-height:1.6}
.about-notes li{grid-template-columns:22px minmax(0,1fr);gap:10px}
.note-ref{top:-.4em}
.now-entry p,.now-entry:nth-child(n) p,.now-entry h4,.now-entry a{line-height:1.7}
.hours-photo figcaption{width:125px;flex-basis:125px}
.footer-directory{column-gap:24px;grid-template-columns:1fr 1.25fr 1.35fr 1fr 1fr}
.footer-directory h3{font-weight:500;letter-spacing:0}
@media(max-width:1100px){.footer-directory{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}}
@media(max-width:600px){.footer-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 22px}.footer-directory h3{line-height:1.5}.footer-directory ul{line-height:1.7}}
@media(max-width:1000px) and (min-width:761px){.hours-photo figcaption{width:100px;flex-basis:100px}.hours-photo img{max-width:30vw}}
@media(max-width:760px),(prefers-reduced-motion:reduce){.hours-photo figcaption{width:100px;flex-basis:100px}.hours-photo img{max-width:calc(100vw - 165px)}}

/* Phone composition: a compact cover, spacious reading measure and full-width timeline copy. */
@media(max-width:600px){
  html{scroll-padding-top:0}
  .hero-left{height:auto;min-height:560px;padding:20px 24px 24px;grid-template-rows:auto 1fr auto}
  .hero-name{font-size:clamp(78px,22vw,110px)}
  .hero-middle{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:27px;padding:22px 0}
  .hero nav{gap:1px;line-height:1.45}
  .hero nav a{padding:2px 0}
  .hero-bio{font-size:14px;line-height:1.58;max-width:350px}
  .hero-portrait{height:clamp(280px,38svh,420px)}
  .hero-portrait img{width:220%;height:auto;max-width:none;object-fit:unset;top:-12%;right:0}

  .about-editorial{padding:66px 25px 72px}
  .about-spread h2{height:auto;margin:0 0 56px;line-height:1.2}
  .about-column,.about-column p{font-size:15px;line-height:1.72}
  .about-column p{margin-bottom:24px}
  .about-notes{margin-top:42px}

  .journey{padding:62px 25px 74px}
  .journey-heading{margin-bottom:42px}
  .journey-layout{--year-size:clamp(64px,17vw,80px);grid-template-columns:calc(var(--year-size)*.942) minmax(0,1fr)}
  .journey-century,.journey-year-group>.journey-year{top:14px;z-index:3}
  .journey-year-group{display:block;min-width:0}
  .journey-year-group>.journey-year{height:calc(var(--year-size)*.95);margin:0 0 15px;background:#fafaf8}
  .journey-year-experiences{margin-left:calc(var(--year-size)*-.942)}
  .journey-copy{padding:0}
  .journey .journey-chapter{padding:0 0 72px;scroll-margin-top:85px}
  .journey .milestone{font-size:14px;margin-bottom:18px}
  .journey .project-heading{margin-bottom:18px}
  .journey .project-heading h3{font-size:25px}
  .journey .project-opening{font-size:17px;line-height:1.5}
  .journey .project p:not(.project-opening):not(.milestone){font-size:15px;line-height:1.7}

  .now-editorial{padding:72px 25px 82px}
  .now-intro{margin-bottom:46px}
  .now-thesis{font-size:15px;line-height:1.72}
  .now-entries::before{width:11%;shape-margin:12px}
  .now-entry,.now-entry:nth-child(2),.now-entry:nth-child(3){margin-bottom:42px}
  .now-entry h3{font-size:23px}
  .now-entry h4,.now-entry p,.now-entry:nth-child(n) p,.now-entry a{font-size:15px;line-height:1.65}

  .hours-intro{padding:72px 25px 16px}
  .hours-intro p{font-size:15px;line-height:1.72;text-align:left;margin-top:30px}
  .hours-window{scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;padding-bottom:12px}
  .hours-track{height:650px}
  .hours-spread{padding:12px 25px 28px;gap:20px}
  .hours-photo img{max-width:calc(100vw - 142px);max-height:275px}
  .hours-photo figcaption{width:85px;flex-basis:85px;font-size:14px;line-height:1.4}
  .hours-photo{gap:10px}

  .footer-contact-methods a{transition:text-decoration-color .25s ease,color .25s ease}
}

/* One quiet opening movement; interaction and system accessibility take priority. */
@media(max-width:600px) and (prefers-reduced-motion:no-preference){
  .hero-left .first-name{animation:cover-enter .7s cubic-bezier(.22,1,.36,1) both}
  .hero-middle{animation:cover-enter .8s .1s cubic-bezier(.22,1,.36,1) both}
  .hero-left .last-name{animation:cover-enter .8s .18s cubic-bezier(.22,1,.36,1) both}
  .hero-portrait img{animation:portrait-enter 1.1s .2s cubic-bezier(.22,1,.36,1) both}
}
@keyframes cover-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes portrait-enter{from{opacity:.65;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.hours-window{scroll-behavior:auto}}
