:root{--paper:#f4f3ed;--ink:#213e2f;--muted:#616c62;--line:#a9b2a5;--faint:#d8dcd2;--orange:#bc4528;--gutter:clamp(20px,3.1vw,64px);--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-weight:400;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:34px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;width:100%;height:auto}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:6px}::selection{background:#d5dfcb;color:#163b27}[hidden]{display:none!important}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:12px;background:var(--ink);color:var(--paper);transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header,main,.contact-section{margin-inline:var(--gutter)}.site-header{height:83px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;border-bottom:1px solid var(--ink);gap:24px}.wordmark{display:flex;gap:10px;align-items:center;font-size:23px;letter-spacing:-.07em;width:max-content}.wordmark-dot{width:5px;height:5px;background:var(--orange);border-radius:50%;margin-top:13px}.header-role{font-size:12px}.separator{opacity:.45;margin-inline:6px}.site-header nav{display:flex;gap:32px;font-size:13px}.site-header nav a{position:relative}.site-header nav a:hover{text-decoration:underline;text-underline-offset:5px}.site-header sup{font:9px var(--mono);margin-left:3px}.intro{padding-top:28px}.intro-kicker{display:flex;justify-content:space-between;align-items:center;font-size:13px}.availability{display:flex;align-items:center;gap:9px;font-size:11px}.availability i{display:block;width:6px;height:6px;border-radius:50%;background:var(--orange)}.intro h1{font-size:clamp(60px,10.4vw,178px);line-height:1.06;letter-spacing:-.072em;margin:16px 0 24px;white-space:nowrap}.name-mark{display:inline-block;font-size:.57em;font-weight:300;vertical-align:top;margin-left:.12em;line-height:1.15;color:var(--orange)}.intro-bottom{display:grid;grid-template-columns:1fr 1fr auto;gap:28px;align-items:end;padding:8px 0 64px}.intro-line{font-size:clamp(20px,2.15vw,34px);line-height:1.18;letter-spacing:-.035em}.intro-note{font-size:13px;line-height:1.5;color:var(--muted);padding-bottom:2px}.scroll-cue{font-size:38px;line-height:1;transition:transform .2s}.scroll-cue:hover{transform:translateY(5px)}.section-label{font:11px var(--mono);line-height:1.5;letter-spacing:.015em;text-transform:uppercase;display:flex;gap:25px}.section-label>span{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.035em}.work-toolbar{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);min-height:66px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:24px}.template-note{font-size:11px;color:var(--muted)}.view-switch{display:flex;gap:18px;align-items:center}.view-switch button{border:0;background:none;display:flex;gap:7px;align-items:center;font-size:11px;padding:10px 0;color:var(--muted)}.view-switch button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:5px}.view-icon{display:block;width:10px;height:10px;opacity:.7}.index-icon{background:repeating-linear-gradient(to bottom,currentColor 0 1px,transparent 1px 4px)}.gallery-icon{border:1px solid currentColor;background:linear-gradient(to right,transparent 40%,currentColor 40% 55%,transparent 55%)}.project-row{display:grid;grid-template-columns:22% 18% 60%;border-bottom:1px solid var(--line);padding:22px 0 25px;min-width:0}.project-heading{position:relative;padding:0 24px 0 0;display:flex;flex-direction:column;align-items:flex-start}.project-number{font:10px var(--mono);margin-bottom:26px}.project-heading h3{font-size:clamp(25px,2.5vw,39px);line-height:1.04;letter-spacing:-.045em;max-width:100%}.project-heading h3 a{display:block}.row-arrow{display:inline-block;font-size:23px;margin-left:12px;vertical-align:top;opacity:0;transform:translate(-4px,4px);transition:.2s}.project-row:hover .row-arrow,.project-heading a:focus-visible .row-arrow{opacity:1;transform:none}.project-status{font-size:10px;line-height:1.5;letter-spacing:.04em;text-transform:uppercase;margin-top:auto;padding-top:24px;color:var(--muted)}.project-description{padding:1px 30px 0 0;display:flex;align-items:flex-start;flex-direction:column}.eyebrow{font:10px var(--mono);text-transform:uppercase;letter-spacing:.02em;line-height:1.5}.project-description p{font-size:12px;line-height:1.5;max-width:165px;margin-top:27px}.text-link{font-size:11px;margin-top:auto;border-bottom:1px solid transparent;padding-top:24px;padding-bottom:3px}.text-link:hover{border-bottom-color:var(--ink)}.text-link span{margin-left:7px}.project-media{display:grid;grid-template-columns:1.66fr 1fr;gap:9px;min-width:0}.project-media a{display:block;position:relative;overflow:hidden;background:#e5e8de;aspect-ratio:1.21}.project-media .project-detail{aspect-ratio:auto;background:#ebece4}.project-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.65,.3,1)}.project-media a:hover img{transform:scale(1.025)}.plate-id{position:absolute;bottom:12px;left:14px;font:8px var(--mono);letter-spacing:.03em;color:#48604c}.image-open{position:absolute;bottom:10px;right:12px;font-size:17px;opacity:0;transform:translateY(4px);transition:.2s}.project-cover:hover .image-open{opacity:1;transform:none}.index-end{font:9px var(--mono);text-transform:uppercase;letter-spacing:.035em;display:flex;justify-content:space-between;padding-top:18px;color:var(--muted)}.project-list[data-view=gallery]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-top:23px;border-bottom:1px solid var(--line)}.project-list[data-view=gallery] .project-row{display:flex;flex-direction:column;border:0;padding-top:0;min-height:0}.project-list[data-view=gallery] .project-heading{display:grid;grid-template-columns:30px 1fr;min-height:134px;padding:0}.project-list[data-view=gallery] .project-number{margin-top:3px}.project-list[data-view=gallery] .project-heading h3{font-size:30px}.project-list[data-view=gallery] .project-status{grid-column:2;margin:12px 0 20px;padding:0}.project-list[data-view=gallery] .project-description{order:3;padding:18px 0 0;display:grid;grid-template-columns:1fr auto;gap:10px}.project-list[data-view=gallery] .project-description p{grid-column:1/-1;grid-row:2;margin:0;max-width:260px}.project-list[data-view=gallery] .text-link{margin:0;padding:0}.project-list[data-view=gallery] .project-media{display:block}.project-list[data-view=gallery] .project-cover{aspect-ratio:.87}.project-list[data-view=gallery] .project-detail{display:none}.project-list[data-view=gallery] .project-cover img{object-fit:cover}.information-section{border-top:1px solid var(--ink);display:grid;grid-template-columns:40% 60%;margin-top:112px;padding:25px 0 100px}.information-content{padding-right:5%}.about-statement{font-size:clamp(25px,3.2vw,48px);line-height:1.16;letter-spacing:-.04em;max-width:880px}.information-details{display:grid;grid-template-columns:1.1fr 1fr;gap:42px;margin-top:52px}.information-details h3{font:10px var(--mono);text-transform:uppercase;margin-bottom:20px;color:var(--muted)}.information-details ul{list-style:none;margin:0;padding:0}.information-details li{font-size:12px;line-height:1.4;border-bottom:1px solid var(--faint);padding:10px 0;display:flex;gap:20px}.information-details li:first-child{padding-top:0}.information-details li span{font:9px var(--mono);padding-top:3px}.information-details p{font-size:12px;line-height:1.6}.information-details .availability{margin-top:24px}.contact-section{border-top:1px solid var(--ink);padding-top:24px}.contact-body{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:48px 0 72px}.contact-body h2{font-size:clamp(42px,5.8vw,92px);line-height:1;letter-spacing:-.055em}.contact-side{padding-top:8px;padding-left:10%;font-size:13px;line-height:1.5;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:22px}.contact-pending{color:var(--muted);font-size:11px;border-bottom:1px solid var(--line);padding-bottom:6px}.contact-link{font-size:19px;border-bottom:1px solid var(--ink);padding-bottom:5px}.contact-link span{margin-left:20px}.colophon{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0 24px;font-size:10px}.colophon a:hover{text-decoration:underline;text-underline-offset:4px}
/* Case-study pages share the same editorial grid. */
.case-navigation{padding:26px 0;display:flex;justify-content:space-between;font-size:11px}.case-navigation>a:hover{text-decoration:underline;text-underline-offset:4px}.case-navigation>span:last-child{font:9px var(--mono);text-transform:uppercase;color:var(--muted)}.case-intro{padding-top:30px;padding-bottom:42px}.case-intro h1{font-size:clamp(44px,7.7vw,126px);line-height:1.02;letter-spacing:-.065em;margin:24px 0 22px}.case-subtitle{font-size:clamp(18px,2vw,30px);line-height:1.3;letter-spacing:-.025em}.case-hero>a{position:relative;display:block;background:#e4e8de}.case-hero img{height:min(62vw,690px);object-fit:contain}.enlarge-label{position:absolute;bottom:18px;right:20px;font-size:11px;border-bottom:1px solid var(--ink);padding-bottom:3px;background:rgba(244,243,237,.6);padding:6px}.case-hero figcaption, .chapter-image figcaption{display:flex;justify-content:space-between;gap:20px;font:9px var(--mono);padding:13px 0;line-height:1.5;color:var(--muted)}.case-overview{display:grid;grid-template-columns:40% 60%;border-top:1px solid var(--ink);padding:28px 0 76px;margin-top:66px}.overview-text{font-size:clamp(23px,2.6vw,38px);line-height:1.22;letter-spacing:-.03em;max-width:800px}.project-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:40px 0 0}.project-facts dt{font:9px var(--mono);text-transform:uppercase;margin-bottom:10px;color:var(--muted)}.project-facts dd{font-size:12px;line-height:1.5;margin:0}.chapter{display:grid;grid-template-columns:40% 60%;border-top:1px solid var(--line);padding:24px 0 66px}.chapter-copy{padding-right:24%}.chapter h2{font-size:clamp(26px,3vw,44px);line-height:1.08;letter-spacing:-.04em;margin:32px 0 20px;max-width:340px}.chapter-copy p{font-size:13px;line-height:1.6;max-width:320px}.chapter-placeholder{min-height:340px;background:#eeeee6;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;border:1px solid var(--faint);font-size:11px;color:var(--muted);gap:18px}.placeholder-cross{font:30px var(--mono);font-weight:300;opacity:.6}.placeholder-caption{position:absolute;bottom:15px;left:17px;font:9px var(--mono);text-transform:uppercase}.chapter-image>a{position:relative;display:block;background:#ebece4}.chapter-image img{height:520px;object-fit:contain}.next-project{border-top:1px solid var(--ink);display:grid;grid-template-columns:40% 1fr auto;align-items:center;gap:24px;padding:30px 0 80px}.next-title{font-size:clamp(26px,3.2vw,50px);letter-spacing:-.04em}.next-arrow{font-size:42px;transition:.2s}.next-project:hover .next-arrow{transform:translate(4px,-4px)}.lightbox-open{overflow:hidden}.lightbox{border:0;background:var(--paper);color:var(--ink);width:calc(100vw - 48px);height:calc(100dvh - 48px);max-width:1600px;max-height:none;padding:22px 28px}.lightbox::backdrop{background:rgba(15,28,21,.86)}.lightbox-bar{display:flex;justify-content:space-between;align-items:center;font:11px var(--mono)}.lightbox button{border:0;background:none;padding:10px;font-size:13px}.lightbox-image-wrap{height:calc(100% - 90px);display:grid;grid-template-columns:50px 1fr 50px;align-items:center;gap:20px}.lightbox-image-wrap img{max-height:100%;height:100%;object-fit:contain;min-height:0;min-width:0}.lightbox-image-wrap button{font-size:28px}.lightbox [data-lightbox-caption]{font:11px var(--mono);line-height:1.4;padding-top:16px}
@media(min-width:1800px){.site-header,main,.contact-section{max-width:1720px;margin-inline:auto}.intro h1{font-size:178px}}
@media(max-width:1000px){.site-header{grid-template-columns:1fr auto}.header-role{display:none}.intro-bottom{grid-template-columns:1.2fr 1fr auto;padding-bottom:44px}.intro-note{font-size:11px}.project-row{grid-template-columns:24% 20% 56%}.project-description{padding-right:16px}.project-description p{font-size:11px}.project-media{grid-template-columns:1.5fr 1fr;gap:7px}.project-cover{aspect-ratio:.95!important}.project-heading h3{font-size:25px}.project-number{margin-bottom:20px}.row-arrow{display:none}.information-section,.case-overview,.chapter{grid-template-columns:32% 68%}.information-details{gap:22px}.work-toolbar{grid-template-columns:1fr auto}.template-note{grid-row:2;grid-column:1/-1;padding-bottom:15px;margin-top:-8px}.work-toolbar .section-label{padding-top:18px}.view-switch{padding-top:10px}.project-list[data-view=gallery]{gap:15px}.project-list[data-view=gallery] .project-heading h3{font-size:25px}.project-list[data-view=gallery] .project-description{display:block}.project-list[data-view=gallery] .project-description p{margin:10px 0}.project-list[data-view=gallery] .text-link{display:inline-block;margin-top:7px}.next-project{grid-template-columns:32% 1fr auto}.project-facts{gap:14px}}
@media(max-width:680px){:root{--gutter:20px}html{scroll-padding-top:20px}.site-header{height:67px;gap:14px}.wordmark{font-size:21px}.site-header nav{gap:19px;font-size:11px}.site-header sup{display:none}.intro{padding-top:22px}.intro-kicker{font-size:11px}.availability{font-size:9px;gap:6px}.availability i{width:5px;height:5px}.intro h1{font-size:clamp(38px,10.8vw,72px);margin:24px 0 27px;letter-spacing:-.07em}.name-mark{margin-left:.07em}.intro-bottom{grid-template-columns:1fr auto;gap:22px;padding:0 0 34px}.intro-line{font-size:23px;line-height:1.16}.intro-note{grid-column:1;grid-row:2;font-size:11px}.scroll-cue{grid-column:2;grid-row:1/3;font-size:32px;align-self:end}.section-label{font-size:9px;gap:16px}.work-toolbar{gap:17px;min-height:84px}.template-note{font-size:10px;padding-bottom:15px}.view-switch{gap:14px}.view-switch button{font-size:10px}.project-row{grid-template-columns:1fr 1fr;padding:21px 0 24px;gap:20px 16px}.project-heading{padding:0;display:grid;grid-template-columns:25px 1fr}.project-number{margin:3px 0 0;font-size:9px}.project-heading h3{font-size:26px;line-height:1.02}.project-status{grid-column:2;margin-top:12px;padding:0;font-size:8px}.project-description{padding:0 0 0 8px;justify-content:space-between}.project-description>.eyebrow{font-size:9px}.project-description p{margin-top:9px;font-size:11px;max-width:190px}.text-link{padding-top:14px;font-size:10px}.project-media{grid-column:1/-1;grid-template-columns:1.5fr 1fr;gap:7px}.project-media .project-cover{aspect-ratio:1.15!important}.plate-id{font-size:7px;bottom:10px;left:10px}.image-open{opacity:1;transform:none;font-size:15px}.index-end{font-size:8px;padding-top:14px}.information-section{grid-template-columns:1fr;gap:31px;margin-top:74px;padding:23px 0 62px}.information-content{padding:0}.about-statement{font-size:31px;letter-spacing:-.04em}.information-details{grid-template-columns:1fr;gap:33px;margin-top:34px}.information-details h3{margin-bottom:16px}.information-details li{font-size:12px}.information-details .availability{font-size:10px;margin-top:18px}.contact-section{padding-top:22px}.contact-body{grid-template-columns:1fr;gap:30px;padding:35px 0 46px}.contact-body h2{font-size:49px}.contact-side{padding:0;font-size:12px;gap:26px}.contact-link{font-size:17px}.colophon{font-size:9px;flex-wrap:wrap;gap:15px;line-height:1.4}.colophon>span:nth-child(2){display:none}.project-list[data-view=gallery]{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.project-list[data-view=gallery] .project-row{gap:0}.project-list[data-view=gallery] .project-heading{min-height:113px;grid-template-columns:20px 1fr}.project-list[data-view=gallery] .project-heading h3{font-size:22px}.project-list[data-view=gallery] .project-status{font-size:8px;margin:10px 0 20px}.project-list[data-view=gallery] .project-cover{aspect-ratio:.72!important}.project-list[data-view=gallery] .project-description{padding-top:13px}.project-list[data-view=gallery] .project-description p{font-size:10px}.case-navigation{font-size:10px;padding-top:24px}.case-navigation>span:last-child{font-size:8px}.case-intro{padding-top:25px;padding-bottom:29px}.case-intro h1{font-size:55px;line-height:1.03;margin:22px 0 17px}.case-subtitle{font-size:20px;max-width:320px}.case-hero img{height:380px}.enlarge-label{bottom:11px;right:11px;font-size:10px}.case-hero figcaption{font-size:8px}.case-hero figcaption>span:last-child{display:none}.case-overview{grid-template-columns:1fr;gap:28px;padding-top:22px;margin-top:38px;padding-bottom:42px}.overview-text{font-size:26px}.project-facts{grid-template-columns:1fr;gap:15px;margin-top:28px}.project-facts>div{display:grid;grid-template-columns:1fr 1.8fr;border-bottom:1px solid var(--faint);padding-bottom:13px}.project-facts dt{margin:0;line-height:1.6}.project-facts dd{font-size:11px}.chapter{grid-template-columns:1fr;gap:28px;padding-bottom:40px}.chapter-copy{padding:0}.chapter h2{font-size:32px;margin-top:20px;max-width:300px}.chapter-copy p{font-size:12px;max-width:350px}.chapter-placeholder{min-height:265px;font-size:10px}.chapter-image img{height:350px}.next-project{grid-template-columns:1fr auto;gap:20px;padding:24px 0 48px}.next-project .section-label{grid-column:1/-1}.next-title{font-size:31px}.next-arrow{font-size:34px}.lightbox{width:calc(100vw - 20px);height:calc(100dvh - 40px);padding:14px}.lightbox-image-wrap{grid-template-columns:22px 1fr 22px;gap:3px}.lightbox-image-wrap button{font-size:22px;padding:0}.lightbox [data-lightbox-caption]{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header nav,.view-switch,.scroll-cue,.text-link,.next-project,.lightbox,.enlarge-label{display:none!important}body{background:white}.intro h1{font-size:70px}.project-row{break-inside:avoid}.information-section{margin-top:40px}.contact-body{padding:30px 0}.contact-body h2{font-size:40px}}


/* A still, viewport-sized composition of selected project images. */
body.floating-home{--floating-paper:#f9f6f4;--floating-ink:#171715;background:var(--floating-paper);color:var(--floating-ink);font-family:Arial,Helvetica,sans-serif;height:100dvh;overflow:hidden;display:flex;flex-direction:column}
.floating-home .floating-header{flex:none;margin:0;padding:20px 2.8%;display:flex;justify-content:space-between;align-items:center;gap:20px}
.floating-wordmark{font-size:18px;letter-spacing:.10em;text-transform:uppercase}.floating-header nav{display:flex;gap:23px;font-size:13px}.floating-header nav a:hover,.floating-header nav a:focus-visible{text-decoration:underline;text-decoration-color:#ff806f;text-decoration-thickness:2px;text-underline-offset:6px}
.floating-home .floating-main{position:relative;margin:0;max-width:none;min-height:0;flex:1}
.floating-profile{position:absolute;top:9%;left:2.8%;width:21%;max-width:280px;z-index:2;font-size:12px;line-height:1.4}.profile-rule{display:block;width:38px;height:4px;background:currentColor;margin-bottom:14px}.floating-profile h1{font:italic 22px/1.1 Georgia,serif;margin:0 0 8px}.floating-profile>p{margin:0}.floating-profile .profile-availability{display:table;background:#ffad9f;font:italic bold 18px/1.2 Georgia,serif;padding:3px 6px;margin:18px 0 27px}.profile-details{display:flex;align-items:flex-start;gap:16px}.portrait-placeholder{width:96px;aspect-ratio:3/4;border:1px solid #b6aea9;background:linear-gradient(to top right,transparent calc(50% - .5px),#c8bdb7 50%,transparent calc(50% + .5px)),linear-gradient(to bottom right,transparent calc(50% - .5px),#c8bdb7 50%,transparent calc(50% + .5px));display:flex;align-items:end;padding:7px;flex:none;color:#595753;font-size:10px}.portrait-placeholder span{background:var(--floating-paper);padding:2px}.profile-details dl{margin:0;flex:1;min-width:0;font-size:11px}.profile-details dl div{padding:0 0 9px;margin:0 0 10px;border-bottom:1px solid #817b76}.profile-details dt{display:inline;font-weight:bold}.profile-details dd{display:inline;margin:0}.profile-details dd:before{content:' — '}.profile-details a{text-decoration:underline;overflow-wrap:anywhere}
.floating-work{position:absolute;inset:0}.floating-field{position:absolute;left:27%;right:2.8%;top:3%;bottom:3%}.floating-project{position:absolute;display:block;left:var(--x);top:var(--y);width:var(--w);height:var(--h);outline-offset:4px;color:var(--floating-ink)}.floating-image{display:block;width:100%;height:calc(100% - 17px);background-position:center;background-size:cover;background-repeat:no-repeat}.floating-image.is-placeholder{border:1px solid #b6aea9;background-color:#f1edeb;background-image:linear-gradient(to top right,transparent calc(50% - .5px),#c8bdb7 50%,transparent calc(50% + .5px)),linear-gradient(to bottom right,transparent calc(50% - .5px),#c8bdb7 50%,transparent calc(50% + .5px))}.floating-project:hover .floating-image,.floating-project:focus-visible .floating-image{border-radius:clamp(12px,1.4vw,22px);box-shadow:0 0 0 2px var(--floating-paper),0 0 0 3px rgb(0 255 0)}.floating-caption{display:flex;align-items:baseline;gap:7px;padding-top:4px;font-size:10px;line-height:1;white-space:nowrap;overflow:hidden}.floating-title{opacity:0;font:italic 12px/1 Georgia,serif;overflow:hidden;text-overflow:ellipsis}.floating-project:hover .floating-title,.floating-project:focus-visible .floating-title{opacity:1}
@media(max-width:850px){.floating-profile{width:23%}.profile-details{gap:9px}.portrait-placeholder{width:65px}.floating-field{left:29%}}
@media(max-width:680px){.floating-home .floating-header{padding:17px 20px}.floating-wordmark{font-size:14px;letter-spacing:.06em}.floating-header nav{gap:13px;font-size:11px}.floating-home .floating-main{display:flex;flex-direction:column}.floating-profile{position:relative;top:auto;left:auto;width:auto;max-width:none;padding:8px 20px 0;flex:none}.profile-rule{width:30px;height:3px;margin-bottom:8px}.floating-profile h1{font-size:18px;margin-bottom:4px}.floating-profile>p{font-size:11px}.floating-profile .profile-availability{margin:8px 0 10px;font-size:15px}.profile-details{max-width:340px}.portrait-placeholder{width:50px;font-size:8px;padding:3px}.profile-details dl{display:flex;flex-wrap:wrap;gap:0 10px;font-size:10px}.profile-details dl div{flex:1 1 105px;padding-bottom:5px;margin-bottom:5px}.floating-work{position:relative;inset:auto;flex:1;min-height:0}.floating-field{left:4%;right:4%;top:25px;bottom:2%}.floating-caption{font-size:9px}.floating-title{font-size:10px}}

.case-image-placeholder{height:min(62vw,690px);border:1px solid #b6aea9;background-color:#f1edeb;background-image:linear-gradient(to top right,transparent calc(50% - .5px),#c8bdb7 50%,transparent calc(50% + .5px)),linear-gradient(to bottom right,transparent calc(50% - .5px),#c8bdb7 50%,transparent calc(50% + .5px))}.case-image-detail{height:520px}@media(max-width:680px){.case-image-placeholder{height:380px}.case-image-detail{height:350px}}

/* Gentle pointer attraction and a restrained hover, with no idle motion. */
.floating-project{transform:translate3d(var(--move-x,0px),var(--move-y,0px),0)}
.floating-project:focus-visible{outline:none}
.floating-image{border-radius:0;box-shadow:0 0 0 2px transparent,0 0 0 3px transparent;transition:transform 260ms cubic-bezier(.22,1,.36,1),border-radius 260ms ease,box-shadow 260ms ease}
.floating-title{transition:opacity 180ms ease}
@media(hover:hover) and (pointer:fine){.floating-project:hover .floating-image{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.floating-project:hover .floating-image{transform:none}}

/* Portrait-led profile, shared by the project field and every case study. */
.floating-profile{top:5%;width:21%;max-width:300px}
.floating-profile .portrait-placeholder{width:min(100%,28dvh);height:auto;aspect-ratio:3/4;padding:10px;font-size:11px}
.floating-profile .profile-disciplines{margin:19px 0 0;font:700 clamp(10px,1.05vw,14px)/1.3 Arial,Helvetica,sans-serif;white-space:nowrap}
.floating-profile .profile-availability{display:block;background:none;padding:0;margin:20px 0 17px;font:italic 16px/1.2 Georgia,serif}
.profile-cv{width:min(100%,28dvh);margin:0;font-size:11px;line-height:1.4}
.profile-cv div{padding:7px 0;border-bottom:1px solid #817b76}.profile-cv dt{display:inline;font-weight:700}.profile-cv dd{display:inline;margin:0}.profile-cv dd:before{content:' — '}.profile-cv a{text-decoration:underline;overflow-wrap:anywhere}
body.persistent-page{--floating-paper:#f9f6f4;--floating-ink:#171715;background:var(--floating-paper);color:var(--floating-ink);font-family:Arial,Helvetica,sans-serif;height:100dvh;overflow:hidden;display:flex;flex-direction:column}
.persistent-page .floating-header{flex:none;margin:0;padding:20px 2.8%;display:flex;justify-content:space-between;align-items:center;gap:20px}
.case-shell{position:relative;flex:1;min-height:0}.case-scroll{position:absolute;left:27%;right:2.8%;top:0;bottom:0;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth;scroll-padding-top:12px}.persistent-page .case-content,.persistent-page .contact-section{margin:0;max-width:none}.case-scroll:focus-visible{outline:2px solid #bc4528;outline-offset:-2px}.lightbox-open .case-scroll{overflow:hidden}
.persistent-page .case-navigation{padding:18px 0 22px}.persistent-page .case-intro{padding-top:16px}.persistent-page .case-intro h1{font-size:clamp(40px,5.8vw,80px)}.persistent-page .case-overview,.persistent-page .chapter{grid-template-columns:25% 75%}.persistent-page .next-project{grid-template-columns:25% 1fr auto}
@media(max-width:850px){.floating-profile{width:23%}.case-scroll{left:29%}.floating-profile .profile-disciplines{font-size:clamp(9px,1.25vw,12px)}}
@media(max-width:680px){.floating-home .floating-profile,.persistent-page .floating-profile{position:relative;top:auto;left:auto;width:auto;max-width:none;padding:5px 20px 0;flex:none}.floating-profile .portrait-placeholder{width:min(24vw,13dvh);height:auto;min-width:58px;padding:4px;font-size:9px}.floating-profile .profile-disciplines{font-size:11px;margin:8px 0 0}.floating-profile .profile-availability{font-size:12px;margin:7px 0 3px}.profile-cv{width:min(100%,310px);display:flex;flex-wrap:wrap;gap:0 12px;font-size:9px}.profile-cv div{padding:3px 0;flex:1 1 82px}.persistent-page .floating-header{padding:17px 20px}.case-shell{display:flex;flex-direction:column}.case-scroll{position:relative;left:auto;right:auto;top:auto;bottom:auto;flex:1;min-height:0;margin:10px 20px 0}.persistent-page .case-overview,.persistent-page .chapter{grid-template-columns:1fr}.persistent-page .next-project{grid-template-columns:1fr auto}.persistent-page .case-intro h1{font-size:clamp(37px,11vw,55px);overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.case-scroll{scroll-behavior:auto}}

/* Compact education, experience, and contact details. */
.profile-cv dt{display:block;margin-bottom:3px}
.profile-cv dd{display:block;margin:0;color:#383634}
.profile-cv dd:before{content:none}
.profile-cv dd span{display:block}
.profile-cv .profile-contact{display:flex;flex-wrap:wrap;gap:2px 12px}
@media(max-width:680px){.profile-cv{width:min(100%,360px);gap:0 12px;font-size:10px}.profile-cv div{flex:1 1 135px}.profile-cv div:last-child{flex-basis:100%}.profile-cv dt{margin-bottom:1px}.profile-cv dd{line-height:1.3}.profile-cv .profile-contact{gap:3px 16px}}

/* A quiet three-level hierarchy for the compact CV. */
.profile-cv{margin-top:18px}
.profile-cv dt{font-size:11px;line-height:1.3;font-weight:700;letter-spacing:.045em;text-transform:uppercase;margin-bottom:4px}
.profile-cv dd .cv-item{display:block}
.profile-cv .cv-name{font-weight:600;color:#171715}
.profile-cv dd .cv-meta{display:inline;font-weight:400;color:#625e5b}
@media(max-width:680px){.profile-cv{margin-top:9px}.profile-cv dt{font-size:10.5px;margin-bottom:2px}}

/* Importance controls image area while each approved composition stays uncropped. */
.floating-work{pointer-events:none}
.floating-field{container-type:size;pointer-events:auto}
.floating-project{translate:-50% -50%;z-index:var(--layer,0);--unit:min(.88cqi,1.056cqb);--size:22;width:calc(var(--unit)*var(--size)*var(--frame-aspect-scale,var(--aspect-scale))*1.3);height:auto}
.floating-project[data-importance="+++"]{--size:38}
.floating-project[data-importance="++"]{--size:32}
.floating-project[data-importance="+"]{--size:27}
.floating-project[data-importance="neutral"]{--size:22}
.floating-project[data-importance="-"]{--size:18}
.floating-project[data-importance="--"]{--size:15}
.floating-project .floating-image{width:100%;height:auto;object-fit:contain}
/* Image centres form one rounded cluster, with the main project above its neighbours. */
.floating-project[data-project="knobs"]{--x:50%;--y:50%;--layer:1}
.floating-project[data-project="bubbly"]{--x:21.5%;--y:18%;--layer:2}
.floating-project[data-project="tribee"]{--x:76.2%;--y:28.3%}
.floating-project[data-project="vitrine"]{--x:86.5%;--y:62.5%}
.floating-project[data-project="zahir"]{--x:15.8%;--y:69.4%}
.floating-project[data-project="module-lampe"]{--x:72.8%;--y:51.1%}
.floating-project[data-project="marche-pied"]{--x:71.7%;--y:78.5%}
.floating-project[data-project="systeme-modulaire"]{--x:66.5%;--y:16%;--layer:2}
.floating-project[data-project="sculpture"]{--x:29.5%;--y:79.6%}
.floating-project[data-project="capsule"]{--x:85.3%;--y:84.2%}
.floating-project[data-project="ecrin"]{--x:48.9%;--y:85%}
.floating-home .lightbox{pointer-events:auto}
/* Keep labels below the enlarged image, with room for the complete project name. */
.floating-home .floating-caption{position:absolute;top:calc(101.25% + 7px);left:0;z-index:1;width:max-content;max-width:max(100%,min(12rem,26cqi));padding:5px 8px 6px;border-radius:6px;background:var(--floating-paper);color:var(--floating-ink);line-height:1.35;white-space:normal;overflow:visible;pointer-events:none}
.floating-home .floating-caption>span:first-child{flex:none}
.floating-home .floating-title{display:none;min-width:0;line-height:1.35;white-space:normal;overflow:visible;overflow-wrap:anywhere;text-overflow:clip}
.floating-home .floating-project:is(:hover,:focus-visible) .floating-caption{left:50%;translate:-50% 0}
.floating-home .floating-project:is(:hover,:focus-visible) .floating-title{display:block}
/* Translucent photographs sit inside glass; their stacking order never changes. */
.glass-definitions{position:absolute;pointer-events:none;overflow:hidden}
.glass-cutout{opacity:0;transition:opacity 620ms cubic-bezier(.22,1,.36,1)}
.floating-project[data-glass-occluding] .glass-cutout{opacity:.88}
.floating-home .floating-glass .floating-image,.floating-home .floating-glass::after{-webkit-mask-image:var(--glass-mask);mask-image:var(--glass-mask);mask-mode:luminance}
.floating-home .floating-glass{position:relative;display:block;overflow:hidden;border-radius:10px;background:rgb(255 255 255 / .035);-webkit-backdrop-filter:blur(1.5px) saturate(1.12);backdrop-filter:blur(1.5px) saturate(1.12);box-shadow:0 5px 16px rgb(40 29 22 / .06);transition:transform 620ms cubic-bezier(.22,1,.36,1),border-radius 620ms ease,box-shadow 620ms ease,backdrop-filter 620ms ease,-webkit-backdrop-filter 620ms ease}
.floating-home .floating-glass::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(135deg,rgb(255 255 255 / .06),transparent 35%,transparent 68%,rgb(255 255 255 / .03));box-shadow:inset 0 1px 1px rgb(255 255 255 / .7),inset 1px 0 1px rgb(255 255 255 / .3),inset 0 -1px 1px rgb(255 255 255 / .25);opacity:.35;transition:opacity 620ms ease}
.floating-home .floating-glass .floating-image{opacity:.98;border-radius:0;box-shadow:none;transform:none;transition:opacity 620ms cubic-bezier(.22,1,.36,1)}
.floating-home .floating-project:is(:hover,:focus-visible,[data-glass-active]) .floating-glass{border-radius:20px;box-shadow:0 12px 28px rgb(40 29 22 / .12),0 0 0 1px rgb(0 255 0)}
.floating-home .floating-project:is(:hover,:focus-visible,[data-glass-active]) .floating-image{opacity:1}
.floating-home .floating-project:is(:hover,:focus-visible,[data-glass-active]) .floating-glass::after{opacity:.7}
.floating-home .floating-project[data-glass-active] .floating-caption{visibility:hidden}
.floating-home .floating-hover-caption{position:absolute;z-index:5;max-width:min(12rem,70%);padding:5px 8px 6px;border-radius:6px;background:var(--floating-paper);color:var(--floating-ink);font:italic 12px/1.35 Georgia,serif;white-space:normal;overflow-wrap:anywhere;pointer-events:none}
.floating-home .floating-caption{transition:opacity 420ms ease}
.floating-home .floating-project[data-glass-active] .floating-caption{left:50%;translate:-50% 0}
.floating-home .floating-project[data-glass-active] .floating-title{display:block;opacity:1}
@media(hover:hover) and (pointer:fine){.floating-home .floating-project:is(:hover,:focus-visible,[data-glass-active]) .floating-glass{transform:translateY(-5px) scale(1.035)}}
@media(prefers-reduced-motion:reduce){.floating-home .glass-cutout,.floating-home .floating-glass,.floating-home .floating-glass::after,.floating-home .floating-glass .floating-image,.floating-home .floating-caption{transition:none}.floating-home .floating-project:is(:hover,:focus-visible,[data-glass-active]) .floating-glass{transform:none}}
@media(max-width:680px){
 .floating-project{--unit:min(1.2cqi,.72cqb)}
 .floating-project[data-project="knobs"]{--x:50%;--y:50%}
 .floating-project[data-project="bubbly"]{--x:23.8%;--y:24.9%}
 .floating-project[data-project="tribee"]{--x:76.2%;--y:32.9%}
 .floating-project[data-project="vitrine"]{--x:87.5%;--y:59.1%}
 .floating-project[data-project="zahir"]{--x:18.1%;--y:66%}
 .floating-project[data-project="module-lampe"]{--x:72.8%;--y:50%}
 .floating-project[data-project="marche-pied"]{--x:70.5%;--y:71.7%}
 .floating-project[data-project="systeme-modulaire"]{--x:53.4%;--y:16%}
 .floating-project[data-project="sculpture"]{--x:31.8%;--y:76%}
 .floating-project[data-project="capsule"]{--x:85.3%;--y:77.4%}
 .floating-project[data-project="ecrin"]{--x:48.9%;--y:76.2%}
}
@media(max-width:680px) and (max-height:740px){
 body.floating-home{height:auto;min-height:100dvh;overflow-y:auto}
 .floating-home .floating-main{flex:none}
 .floating-work{flex:none;height:470px}
}

/* The opening image fits the available reading area, including its caption. */
.persistent-page .case-scroll{container-type:size;padding-right:16px}
.persistent-page .floating-header{position:relative;height:76px;padding:0 2.8%;z-index:6}
.persistent-page .case-navigation{position:absolute;left:27%;top:0;bottom:0;z-index:5;padding:0;align-items:center}
.project-return{position:relative;display:block;width:90px;height:64px;border-radius:5px}
.project-return-miniature{position:relative;display:block;width:100%;height:100%;container-type:size;pointer-events:none}
.project-return-card{--unit:.88cqi;pointer-events:none}
.project-return-card[data-project="knobs"]{--x:78%;--y:46%;--size:30}
.project-return-card .floating-image{border-radius:0;box-shadow:none;transition:none}
.project-return-label{position:absolute;top:calc(100% + 2px);left:50%;transform:translateX(-50%);padding:4px 7px;background:var(--floating-paper);color:var(--floating-ink);font-size:11px;line-height:1.5;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.project-return:is(:hover,:focus-visible) .project-return-label{opacity:1}
.persistent-page .case-navigation .project-return:hover{text-decoration:none}
@media(min-width:681px) and (max-width:850px){.persistent-page .case-navigation{left:max(29%,calc(2.8% + 204px))}}
@media(prefers-reduced-motion:reduce){.project-return-card{--move-x:0px!important;--move-y:0px!important}}
.project-opening{height:100cqb;display:flex;flex-direction:column;padding:18px 0 24px}
.project-intro{flex:none;padding:0 0 18px;max-width:900px}
.project-category{font:11px/1.6 var(--mono);color:#625e5b}
.project-category span{margin:0 8px;color:#aaa19b}
.project-intro h1{font-size:clamp(32px,4.4vw,64px);font-weight:400;letter-spacing:-.055em;line-height:1.06;margin:8px 0 0;overflow-wrap:anywhere}
.project-summary{padding-top:30px;border-top:1px solid #c9c0ba;max-width:900px}
.project-subtitle{font-size:clamp(20px,2.1vw,30px);line-height:1.25;letter-spacing:-.025em;max-width:32ch}
.project-overview{font-size:16px;line-height:1.6;max-width:64ch;margin-top:24px;color:#383634}
.project-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:29px 0 0;padding-top:16px;border-top:1px solid #c9c0ba}
.project-meta dt{font:10px/1.4 var(--mono);color:#625e5b;margin-bottom:7px}
.project-meta dd{font-size:12px;line-height:1.5;margin:0;max-width:26ch}
.project-figure{min-width:0;margin:0}
.project-figure>a{position:relative;display:block}
.project-figure img{width:100%;height:auto;max-height:680px;object-fit:contain}
.project-hero{display:flex;flex-direction:column;flex:1;min-height:0}
.project-hero>a{flex:1;min-height:0}
.project-hero img{height:100%;max-height:none;min-height:0;object-fit:contain}
.project-hero figcaption{flex:none}
/* Portraits share the opening with their introduction; the image stays fully visible. */
@media(min-width:681px) and (min-height:680px){
 .project-lead--portrait{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);grid-template-rows:auto 1fr;column-gap:clamp(24px,3vw,48px);min-height:100cqb;padding:24px 0 30px}
 .project-lead--portrait .project-opening{display:contents}
 .project-lead--portrait .project-intro{grid-column:1;grid-row:1;padding:12px 0 24px}
 .project-lead--portrait .project-intro h1{font-size:clamp(30px,3.4vw,50px);margin:16px 0 0}
 .project-lead--portrait .project-category span{display:block;height:5px;font-size:0}
 .project-lead--portrait .project-hero{grid-column:2;grid-row:1/3;height:calc(100cqb - 54px);align-self:start}
 .project-lead--portrait .project-summary{grid-column:1;grid-row:2;padding:0;border:0;min-width:0}
 .project-lead--portrait .project-subtitle{font-size:clamp(18px,1.65vw,25px);line-height:1.3}
 .project-lead--portrait .project-overview{font-size:14px;line-height:1.65;margin-top:22px}
 .project-lead--portrait .project-meta{grid-template-columns:1fr;gap:14px;margin-top:25px;padding-top:0;border:0}
 .project-lead--portrait .project-meta dt{margin-bottom:4px}
 .project-lead--portrait .project-meta dd{max-width:none}
}
.project-figure .enlarge-label{position:absolute;bottom:12px;right:12px;padding:7px 10px;background:rgba(249,246,244,.92);border:1px solid #c9c0ba;border-radius:50%;font-size:16px;opacity:0;transition:opacity .18s}
.project-figure a:hover .enlarge-label,.project-figure a:focus-visible .enlarge-label{opacity:1}
.project-figure figcaption{display:flex;align-items:baseline;gap:12px;padding:12px 0 0;font-size:12px;line-height:1.5;color:#4d4844}
.figure-number{flex:none;font:10px var(--mono);color:#746d67}
.project-figure figcaption small{display:block;font:10px/1.5 var(--mono);color:#746d67;margin-top:4px}
.project-story{margin-top:58px}
.project-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px;border-top:1px solid #c9c0ba;padding:28px 0 56px;align-items:start}
.project-copy{position:sticky;top:18px}
.section-number{font:10px var(--mono);color:#746d67}
.project-copy h2{font-size:clamp(22px,2.1vw,31px);letter-spacing:-.035em;line-height:1.15;margin:17px 0;max-width:20ch}
.project-copy p{font-size:14px;line-height:1.65;color:#383634;max-width:38ch}
.project-plates{display:grid;gap:30px;min-width:0}
.persistent-page .next-project{grid-template-columns:1fr auto;gap:15px;padding:26px 0 32px;border-top-color:#817b76}
.persistent-page .next-project .section-label{grid-column:1/-1;color:#625e5b}
.persistent-page .next-title{font-size:clamp(28px,3.7vw,52px);letter-spacing:-.045em}
.project-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #c9c0ba;padding:20px 0 34px;font-size:12px;color:#625e5b}
.project-footer a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){.project-section{grid-template-columns:1fr;gap:24px}.project-copy{position:static}.project-copy h2{max-width:32ch}.project-copy p{max-width:64ch}.project-meta{gap:12px}.project-plates{gap:26px}}
@media(max-width:680px){
 .persistent-page .case-scroll{padding-right:0}
 .persistent-page .floating-header{height:62px;padding:0 20px}
 .persistent-page .case-navigation{left:auto;right:20px;padding:0}
 .project-return{width:90px;height:52px}
 .project-opening{padding:12px 0 16px}
 .project-intro{padding:0 0 12px}
 .project-category{font-size:10px}
 .project-intro h1{font-size:clamp(24px,7vw,34px);margin:6px 0 0}
 .project-summary{padding-top:24px}
 .project-subtitle{font-size:22px}
 .project-overview{font-size:15px;margin-top:19px}
 .project-meta{grid-template-columns:1fr;gap:10px;margin-top:22px;padding-top:14px}
 .project-meta>div{display:grid;grid-template-columns:85px 1fr;gap:12px;align-items:baseline}
 .project-meta dt{margin:0}.project-meta dd{max-width:none}
 .project-story{margin-top:35px}
 .project-section{padding:22px 0 35px}
 .project-copy h2{font-size:26px;margin:12px 0 15px}
 .project-copy p{font-size:15px;line-height:1.6}
 .project-figure figcaption{font-size:11px}
 .project-figure .enlarge-label{opacity:1;font-size:13px;padding:4px 7px;bottom:8px;right:8px}
}
@media(max-width:680px) and (max-height:740px){
 .persistent-page .floating-profile{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:14px}
 .persistent-page .floating-profile .profile-disciplines{grid-column:1/-1;grid-row:1;margin:0 0 8px}
 .persistent-page .floating-profile .portrait-placeholder{grid-column:1;grid-row:2;width:64px;min-width:0}
 .persistent-page .floating-profile .profile-cv{grid-column:2;grid-row:2;width:100%;margin:0}
 .persistent-page .floating-profile .profile-cv div{flex-basis:100%}
}
@media print{body.persistent-page{height:auto;overflow:visible;display:block}.case-shell,.persistent-page .case-scroll{position:static;overflow:visible;height:auto;container-type:normal}.persistent-page .floating-profile{position:static;width:100%;max-width:none;margin:25px 0}.persistent-page .case-navigation{display:none}.project-lead--portrait,.project-opening{height:auto;min-height:0;display:block}.project-lead--portrait .project-hero{height:auto}.project-hero img{height:auto;max-height:70vh}.project-copy{position:static}.project-section,.project-figure{break-inside:avoid}.project-footer{display:none}}
/* Tighter cover framing: retain the originals while cropping their display area. */
.floating-project[data-project="bubbly"] .floating-image{aspect-ratio:80/31;object-fit:cover;object-position:center}
.floating-project[data-project="lovelyboard"]{--x:23.8%;--y:48.9%;--frame-aspect-scale:.894427}
.floating-project[data-project="lovelyboard"] .floating-image{aspect-ratio:4/5;object-fit:cover;object-position:center 80%}
@media(max-width:680px){
 .floating-project[data-project="lovelyboard"]{--x:23.8%;--y:46.6%}
}
