@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap');
:root{--paper:#edf2f4;--ink:#17232b;--slate:#637782;--blue:#173a5e;--line:#bdcbd1;--sans:Geist,Arial,sans-serif;--mono:"Geist Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{height:78px;padding:0 4vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);position:relative;z-index:10}.monogram{font-size:1.35rem;font-weight:700;letter-spacing:-.09em}.monogram span,.underlink,.site-header nav a:hover,.project-index-row:hover strong,.outline-link:hover{color:var(--blue)}.site-header nav{display:flex;align-items:center;gap:2rem;font-size:.82rem}.project-menu{position:relative}.project-menu summary{cursor:pointer;list-style:none}.project-menu summary::-webkit-details-marker{display:none}.project-menu summary span{font-family:var(--mono);margin-left:.25rem}.menu-panel{position:absolute;right:-1rem;top:2rem;width:310px;background:#f8fbfc;border:1px solid var(--line);padding:.7rem;box-shadow:0 16px 38px rgba(23,58,94,.12)}.menu-panel a{display:grid;grid-template-columns:1fr auto;padding:.8rem;border-bottom:1px solid var(--line)}.menu-panel a:last-child{border-bottom:0}.menu-panel a:hover{background:#e2ebef}.menu-panel span,.menu-panel small{display:block;font: .62rem var(--mono);color:var(--slate);text-transform:uppercase;letter-spacing:.04em}.menu-panel strong{font-weight:500;margin:.18rem 0}.eyebrow{font: .68rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin:0 0 1.3rem}.home-hero{min-height:calc(100dvh - 78px);padding:8vw 4vw 5vw;display:grid;grid-template-columns:.82fr 1.18fr;gap:6vw;align-items:end}.home-hero h1,.feature-project h2,.section-intro h2,.material-section h2,.project-hero h1,.project-content h2{font-size:clamp(3.5rem,7vw,8rem);font-weight:500;letter-spacing:-.075em;line-height:.9;margin:0}.home-hero h1 em,.feature-project h2 span{font-style:normal;color:var(--blue)}.lede{font-size:1.04rem;line-height:1.65;max-width:33rem;margin:2rem 0}.underlink{display:inline-flex;gap:.6rem;border-bottom:1px solid currentColor;padding-bottom:.3rem;font-size:.9rem}.hero-board{display:block}.hero-board img{width:100%;height:min(63vw,670px);object-fit:contain;background:#dbe5e9}.hero-board span,.image-frame figcaption{display:block;margin-top:.65rem;color:var(--slate);font:.64rem var(--mono)}.feature-rule{padding:1.25rem 4vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.feature-rule .eyebrow{margin:0}.feature-rule p:last-child{margin:0;color:var(--blue);font:.68rem var(--mono);text-transform:uppercase}.feature-project{padding:10vw 4vw;display:grid;grid-template-columns:.72fr 1.28fr;gap:8vw;align-items:end}.feature-copy>p:not(.eyebrow){line-height:1.6;max-width:29rem;margin:2rem 0}.outline-link{display:inline-flex;gap:.7rem;border:1px solid var(--ink);padding:.85rem 1rem;font-size:.84rem;transition:.2s}.outline-link:hover{border-color:var(--blue);background:#dfe9ed}.image-frame{margin:0;background:#dbe5e9}.image-frame img{width:100%;height:100%;object-fit:contain}.large-board{height:min(48vw,610px)}.process-section{border-top:1px solid var(--ink);padding:10vw 4vw;display:grid;grid-template-columns:.65fr 1.35fr;gap:8vw}.section-intro{position:sticky;top:2rem;height:max-content}.process-list{border-top:1px solid var(--ink)}.project-index-row{display:grid;grid-template-columns:3rem 1fr auto;gap:1rem;align-items:start;border-bottom:1px solid var(--line);padding:1.15rem 0}.project-index-row b,.project-index-row span,.project-index-row small{font: .64rem var(--mono);letter-spacing:.04em;color:var(--slate)}.project-index-row strong{display:block;font-size:1.5rem;letter-spacing:-.05em;font-weight:500;margin:.25rem 0;transition:color .2s}.project-index-row .arrow{font-size:1.1rem;color:var(--ink)}.material-section{padding:10vw 4vw;display:grid;grid-template-columns:1.2fr .8fr;gap:9vw;align-items:center;border-top:1px solid var(--line)}.material-image{height:min(56vw,640px)}.material-section p:last-child{line-height:1.6;max-width:28rem;margin-top:2rem}.project-hero{padding:8vw 4vw 7vw;display:grid;grid-template-columns:.78fr 1.22fr;gap:6vw;align-items:end}.project-meta{font: .68rem var(--mono);color:var(--slate);text-transform:uppercase}.project-note{font: .68rem var(--mono);color:var(--blue);text-transform:uppercase;line-height:1.5}.hero-full{height:min(64vw,710px)}.project-content{padding:9vw 4vw;display:grid;grid-template-columns:.65fr 1.35fr;gap:8vw;border-top:1px solid var(--line)}.project-content>div>p:last-child{line-height:1.6;max-width:28rem}.board-viewer object{width:100%;height:720px;background:#fff;border:1px solid var(--line)}.board-viewer>p{font:.64rem var(--mono);color:var(--slate)}.project-gallery{padding:0 4vw 10vw;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.project-image{height:31vw;min-height:240px}footer{padding:1.25rem 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;font:.64rem var(--mono);color:var(--slate)}@media(max-width:760px){.site-header{padding:0 5vw}.site-header nav{gap:1rem}.menu-panel{right:-4rem;width:285px}.home-hero,.feature-project,.process-section,.material-section,.project-hero,.project-content{grid-template-columns:1fr}.home-hero,.project-hero{padding:17vw 5vw 14vw;min-height:auto;gap:3rem}.feature-project,.process-section,.material-section,.project-content{padding:17vw 5vw;gap:3rem}.hero-board img,.hero-full{height:70vw}.feature-rule{padding:1rem 5vw;display:block}.feature-rule p:last-child{margin-top:.6rem}.large-board{height:68vw}.section-intro{position:static}.material-image{height:70vw}.project-gallery{padding:0 5vw 17vw;grid-template-columns:1fr}.project-image{height:72vw}.board-viewer object{height:540px}footer{padding:1.25rem 5vw;display:grid;gap:.35rem}.home-hero h1,.feature-project h2,.section-intro h2,.material-section h2,.project-hero h1,.project-content h2{font-size:clamp(3.15rem,14vw,5rem)}}
.collection-hero{padding:9vw 4vw 7vw;border-bottom:1px solid var(--ink)}.collection-hero h1{font-size:clamp(3.8rem,9vw,10rem);letter-spacing:-.085em;line-height:.86;font-weight:500;margin:0;max-width:12ch}.collection-list{padding:0 4vw 10vw}.collection-row{display:grid;grid-template-columns:1.08fr .92fr;gap:8vw;align-items:center;padding:7vw 0;border-bottom:1px solid var(--line)}.collection-row:nth-child(odd){grid-template-columns:.78fr 1.22fr}.collection-row:nth-child(odd) .collection-image{order:2}.collection-image{height:clamp(300px,45vw,620px);background:transparent}.collection-image img{object-fit:contain;background:#dbe5e9}.collection-copy{max-width:32rem}.collection-copy h2{font-size:clamp(2.4rem,5vw,5.8rem);letter-spacing:-.07em;line-height:.9;font-weight:500;margin:.3rem 0 1.5rem}.collection-copy>p:not(.eyebrow){line-height:1.65}.collection-open{display:inline-flex;gap:.7rem;margin-top:1.4rem;border-bottom:1px solid var(--ink);padding-bottom:.3rem;font-size:.85rem}.collection-row:hover h2,.collection-row:hover .collection-open{color:var(--blue)}.project-reading{padding:8vw 4vw;display:grid;grid-template-columns:.65fr 1.35fr;gap:8vw;border-top:1px solid var(--line)}.reading-copy{columns:2;column-gap:3rem;max-width:60rem}.reading-copy p{line-height:1.7;margin:0 0 1.2rem;break-inside:avoid}.project-gallery{grid-template-columns:1.1fr .9fr .9fr}.project-image-0{height:min(58vw,750px);grid-row:span 2}.project-image-1{height:min(28vw,360px)}.project-image-2{height:min(35vw,470px);align-self:end}@media(max-width:760px){.collection-hero{padding:17vw 5vw 12vw}.collection-list{padding:0 5vw 17vw}.collection-row,.collection-row:nth-child(odd){grid-template-columns:1fr;gap:2rem;padding:17vw 0}.collection-row:nth-child(odd) .collection-image{order:0}.collection-image{height:72vw}.project-reading{padding:17vw 5vw;grid-template-columns:1fr;gap:2rem}.reading-copy{columns:1}.project-gallery{grid-template-columns:1fr}.project-image-0,.project-image-1,.project-image-2{height:72vw;grid-row:auto}}

/* Compact project index: imagery keeps its own proportion rather than entering a fixed card. */
.media-section{padding:6vw 4vw 9vw;border-bottom:1px solid var(--line)}.media-section header{display:grid;grid-template-columns:.7fr 1.3fr;gap:2rem;align-items:baseline;margin:0 0 4vw}.media-section h2{font-size:clamp(2.8rem,6vw,6.5rem);letter-spacing:-.075em;line-height:.9;font-weight:500;margin:0}.media-section header>p:last-child{max-width:25rem;line-height:1.55;margin:0;color:var(--slate)}.portfolio-grid{columns:3;column-gap:1.25rem}.project-tile{display:inline-block;width:100%;vertical-align:top;break-inside:avoid;margin:0 0 2.8rem;color:var(--ink)}.project-tile figure{position:relative;margin:0;overflow:hidden;background:transparent}.project-tile figure img{width:100%;height:auto;transition:opacity .22s ease}.project-tile h3{font-size:1.12rem;letter-spacing:-.045em;font-weight:500;margin:.7rem 0 0}.tile-overlay{position:absolute;inset:0;display:flex!important;flex-direction:column;justify-content:space-between;padding:1.25rem;background:var(--blue);color:#edf2f4!important;font: .84rem/1.55 var(--sans)!important;opacity:0;transition:opacity .22s ease;margin:0!important}.tile-overlay b{font: .64rem var(--mono);letter-spacing:.06em;text-transform:uppercase}.project-tile:hover img,.project-tile:focus-visible img{opacity:0}.project-tile:hover .tile-overlay,.project-tile:focus-visible .tile-overlay{opacity:1}.project-tile:hover h3,.project-tile:focus-visible h3{color:var(--blue)}.project-hero-image{margin:0;align-self:end}.project-hero-image img{display:block;width:100%;height:auto}.project-hero-image figcaption,.project-image figcaption{display:block;margin-top:.65rem;color:var(--slate);font:.64rem var(--mono)}.project-gallery{display:block;columns:2;column-gap:1.25rem;padding:0 4vw 10vw}.project-image,.project-image-0,.project-image-1,.project-image-2{display:inline-block;width:100%;height:auto!important;min-height:0!important;grid-row:auto!important;break-inside:avoid;margin:0 0 2.2rem}.project-image img{width:100%;height:auto;display:block}.home-hero .hero-board img,.feature-project .large-board img,.material-section .material-image img{height:auto;object-fit:initial;background:transparent}.feature-project .large-board,.material-section .material-image{height:auto;background:transparent}.home-hero .hero-board{align-self:end}.home-hero .hero-board img{width:100%}@media(max-width:760px){.media-section{padding:14vw 5vw}.media-section header{grid-template-columns:1fr;gap:.8rem;margin-bottom:10vw}.portfolio-grid{columns:1}.project-tile{margin-bottom:2.5rem}.tile-overlay{opacity:1;position:static;padding:.8rem 0 0;background:transparent;color:var(--ink)!important;font-size:.9rem!important}.project-tile:hover img,.project-tile:focus-visible img{opacity:1}.project-tile h3{margin-top:.8rem}.tile-overlay b{display:none}.project-gallery{columns:1;padding:0 5vw 15vw}.project-image{margin-bottom:2.5rem}}
.contact-page{min-height:calc(100dvh - 78px);padding:12vw 4vw;display:flex;flex-direction:column;align-items:flex-start}.contact-page h1{font-size:clamp(4rem,11vw,12rem);letter-spacing:-.09em;line-height:.86;font-weight:500;margin:0 0 4rem}.contact-page>a{font-size:clamp(1.2rem,2.4vw,2.2rem);letter-spacing:-.04em;margin:.35rem 0;border-bottom:1px solid transparent}.contact-page>a:hover{color:var(--blue);border-color:var(--blue)}@media(max-width:760px){.contact-page{padding:22vw 5vw}.contact-page h1{margin-bottom:3rem}}

/* Final editorial pass: the image establishes each page before the copy begins. */
.home-link{font:500 .82rem var(--sans);letter-spacing:-.02em}.home-link span{color:var(--blue);margin-left:.2rem}.home-hero{min-height:0;display:block;padding:2.5vw 4vw 3vw}.home-hero-image{display:block;height:calc(100dvh - 190px)}.home-hero-image img{width:100%;height:100%;object-fit:contain;background:transparent}.home-hero-caption{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;padding-top:1.2rem}.home-hero-caption h1{font-size:clamp(2.2rem,5vw,5.8rem);letter-spacing:-.075em;line-height:.9;font-weight:500;margin:0}.home-hero-caption p{max-width:25rem;margin:0;font: .72rem/1.5 var(--mono);color:var(--slate)}.portfolio-grid{display:grid;columns:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;align-items:start}.project-tile{display:block;margin:0;color:var(--ink)}.project-tile-featured{grid-column:span 2}.project-tile-featured h3{font-size:clamp(1.3rem,2vw,2rem)}.project-tile figure{background:transparent}.tile-overlay{align-items:center;justify-content:center;background:transparent;color:rgba(23,35,43,.8)!important;font-size:clamp(2rem,5vw,5.5rem)!important;line-height:.86!important;font-weight:700!important;letter-spacing:-.08em;text-align:center}.project-tile:hover img,.project-tile:focus-visible img{opacity:1;filter:brightness(1.07)}.tile-overlay b{display:none}.project-page-hero{height:auto;padding:2vw 4vw 0}.project-page-hero figure{height:auto;margin:0}.project-page-hero img{display:block;width:100%;height:auto;object-fit:initial;background:transparent}.project-summary{max-width:68rem;padding:5vw 4vw;border-top:1px solid var(--line)}.project-summary h1{font-size:clamp(2.1rem,5vw,5.2rem);letter-spacing:-.075em;line-height:.9;font-weight:500;margin:0 0 1.6rem}.project-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:42rem;margin:0 0 2rem;border-top:1px solid var(--line)}.project-summary dl div{padding:1rem 0;border-bottom:1px solid var(--line)}.project-summary dt{font:.62rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}.project-summary dd{margin:.35rem 0 0;font-size:.95rem;line-height:1.45}.project-summary .lede{margin:2.2rem 0}.source-text{max-width:44rem}.source-text p{line-height:1.65;margin:0 0 1rem}.project-summary .project-note{margin:0 0 2rem}.project-gallery{columns:2}.project-content{padding-top:6vw}.project-content h2{font-size:clamp(2.7rem,5vw,5.2rem)}@media(max-width:760px){.home-hero{padding:3vw 5vw 12vw}.home-hero-image{height:65vw}.home-hero-caption{display:block;padding-top:1rem}.home-hero-caption p{margin-top:.8rem}.portfolio-grid{grid-template-columns:1fr;gap:2.3rem}.project-tile-featured{grid-column:auto}.tile-overlay{font-size:3.5rem!important}.project-page-hero{height:auto;padding:3vw 5vw 0}.project-summary{padding:12vw 5vw 8vw}.project-summary dl{grid-template-columns:1fr}.project-gallery{columns:1}.project-content{padding-top:14vw}}

/* White field, quiet chrome, and image-readable hover state. */
:root{--paper:#fff}.image-frame,.hero-board img,.board-viewer object{background:#fff}.home-hero-caption p a{color:inherit;border-bottom:1px solid var(--line);padding-bottom:.15rem}.home-hero-caption p a:hover{color:var(--blue);border-color:var(--blue)}.home-shortcuts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:0 4vw}.home-shortcuts a{display:flex;justify-content:space-between;align-items:center;padding:1.2rem 0;font-size:clamp(1.6rem,3vw,3.5rem);letter-spacing:-.065em}.home-shortcuts a+a{border-left:1px solid var(--ink);padding-left:4vw}.home-shortcuts span{font:.65rem var(--mono);color:var(--slate);letter-spacing:.06em}.home-shortcuts a:hover strong{color:var(--blue)}.home-contact{padding:7vw 4vw 9vw;display:flex;flex-direction:column;align-items:flex-start}.home-contact p,.home-contact a{font-size:clamp(1.2rem,2.5vw,2.4rem);letter-spacing:-.045em;margin:0 0 .35rem}.home-contact a:hover{color:var(--blue)}.tile-overlay{background:rgba(255,255,255,.2);align-items:flex-start;justify-content:flex-end;padding:1.2rem;color:rgba(23,35,43,.9)!important;font-size:clamp(1.8rem,4.8vw,5rem)!important;text-align:left}.joinery-summary{max-width:76rem}.joinery-argument{display:grid;grid-template-columns:.72fr 1.28fr;gap:7vw;padding:7vw 4vw;border-top:1px solid var(--line)}.joinery-copy{max-width:35rem}.joinery-copy h2,.joinery-envelope h2,.joinery-structure-copy h2,.joinery-site h2{font-size:clamp(2.4rem,5vw,5.8rem);letter-spacing:-.07em;line-height:.9;font-weight:500;margin:0 0 2rem}.joinery-copy p,.joinery-envelope p,.joinery-structure-copy p,.joinery-site p{line-height:1.65;margin:0 0 1.2rem}.joinery-argument figure,.joinery-location figure,.joinery-envelope figure,.joinery-systems figure,.joinery-site figure{margin:0}.joinery-argument figure img,.joinery-location img,.joinery-envelope img,.joinery-systems img,.joinery-site img{width:100%;height:auto;display:block}.joinery-argument figcaption,.joinery-systems figcaption{font:.64rem var(--mono);color:var(--slate);margin-top:.65rem}.joinery-location{display:grid;grid-template-columns:1fr 1.3fr;gap:1.2rem;padding:0 4vw 7vw}.joinery-full-board{padding:0 4vw 7vw}.joinery-full-board img{display:block;width:100%;height:auto}.joinery-envelope{display:grid;grid-template-columns:1.25fr .75fr;gap:6vw;align-items:start;padding:7vw 4vw;border-top:1px solid var(--line)}.joinery-systems{display:grid;grid-template-columns:.38fr 1.62fr;gap:1.2rem;padding:0 4vw 5vw}.joinery-structure-copy{max-width:58rem;padding:0 4vw 8vw}.joinery-site{display:grid;grid-template-columns:.9fr 1.1fr;gap:5vw;padding:7vw 4vw;border-top:1px solid var(--line)}@media(max-width:760px){.home-shortcuts{margin:0 5vw;grid-template-columns:1fr}.home-shortcuts a+a{border-left:0;border-top:1px solid var(--line);padding-left:0}.home-contact{padding:16vw 5vw}.joinery-argument,.joinery-location,.joinery-envelope,.joinery-systems,.joinery-site{grid-template-columns:1fr;padding-left:5vw;padding-right:5vw;gap:2.5rem}.joinery-full-board{padding:0 5vw 14vw}.joinery-structure-copy{padding:0 5vw 15vw}.joinery-envelope,.joinery-site{padding-top:15vw;padding-bottom:15vw}.tile-overlay{padding:.8rem;font-size:3rem!important}}
.project-gallery{columns:1;max-width:1440px;padding-top:2vw}.project-gallery .project-image{width:100%;margin-bottom:5vw}
.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2vw;columns:auto}.project-gallery .project-image{grid-column:1/-1;margin:0}.project-gallery .project-image.pair{grid-column:span 1}.tile-overlay{background:rgba(255,255,255,.45)}.project-reference{display:inline-flex;margin:1.4rem 1.2rem 0 0;border-bottom:1px solid var(--ink);padding-bottom:.25rem;font-size:.9rem}.project-reference:hover{color:var(--blue);border-color:var(--blue)}.source-file{margin:0 1rem 1.2rem 0}.board-viewer .underlink{font-size:.84rem}
@media(max-width:760px){.project-gallery{grid-template-columns:1fr;gap:2.5rem}.project-gallery .project-image.pair{grid-column:auto}}

/* Compact project reading: boards are visible as complete, uncropped previews. */
.project-gallery{max-width:1180px;margin:0 auto;padding-left:4vw;padding-right:4vw}
.project-board{display:grid;grid-template-columns:.38fr .62fr;gap:5vw;align-items:start;border-top:1px solid var(--line);padding:7vw 4vw;max-width:1180px;margin:0 auto}
.project-board h2{font-size:clamp(2.2rem,4vw,4.4rem);letter-spacing:-.07em;line-height:.9;font-weight:500;margin:0}
.project-board-image{margin:0 0 2rem}.project-board-image a{display:block;background:#fff}.project-board-image img{display:block;max-width:100%;width:auto;max-height:78vh;object-fit:contain}.project-board-image figcaption{font:.64rem var(--mono);color:var(--slate);margin-top:.65rem}
@media(max-width:760px){.project-gallery{padding-left:5vw;padding-right:5vw}.project-board{grid-template-columns:1fr;gap:2rem;padding:15vw 5vw}.project-board-image img{max-height:68vh}}

/* Home: image-led, neutral, and deliberately quiet. */
:root{--paper:#fff;--ink:#111;--slate:#555;--blue:#111;--line:#c9c9c9}
.site-header{display:grid;grid-template-columns:1fr auto 1fr;background:#fff}
.site-header nav{grid-column:2;justify-self:center}
.menu-panel{background:#fff;box-shadow:0 16px 38px rgba(0,0,0,.12)}
.menu-panel a:hover,.outline-link:hover{background:#f2f2f2}
.home-hero{position:relative;height:calc(100dvh - 78px);min-height:540px;padding:0;overflow:hidden}
.home-hero-image{position:absolute;inset:0;width:100%;height:100%;margin:0}
.home-hero-image img{width:100%;height:100%;object-fit:cover;max-width:none}
.home-award-link{position:absolute;right:4vw;bottom:3vw;max-width:17rem;color:#fff;font:.9rem var(--mono);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.75);padding-bottom:.35rem;text-shadow:0 1px 12px rgba(0,0,0,.55)}
.home-hero-credit{position:absolute;left:4vw;right:clamp(23rem,30vw,34rem);bottom:3vw;margin:0;color:#fff;font:clamp(.95rem,1.25vw,1.18rem)/1.45 var(--sans);letter-spacing:-.015em;text-shadow:0 1px 12px rgba(0,0,0,.65)}
.home-award-link:hover{border-color:#fff}
.home-shortcuts{max-width:44rem;margin:0 auto;border-top:0}
.home-shortcuts a{justify-content:center;gap:1rem;text-align:center}
.home-shortcuts a+a{padding-left:0}
.home-shortcuts span{display:none}
.home-shortcuts a:hover strong,.home-contact a:hover,.home-credit a:hover{color:#111}
.home-credit{max-width:48rem;margin:0 auto;padding:7vw 0 4vw;font-size:clamp(1.15rem,2vw,1.7rem);line-height:1.4;letter-spacing:-.035em}
.home-credit p{margin:0}
.home-credit a{border-bottom:1px solid currentColor}
.home-contact{align-items:center;padding:1vw 4vw 8vw}
.home-contact a{font-size:clamp(1.1rem,1.8vw,1.5rem);border-bottom:1px solid var(--ink);padding-bottom:.25rem}
@media(max-width:760px){.site-header{grid-template-columns:1fr auto 1fr}.site-header nav{gap:1rem}.home-hero{height:calc(100dvh - 78px);min-height:420px}.home-award-link{left:5vw;right:auto;bottom:5vw;max-width:calc(100% - 10vw);text-align:left;line-height:1.5;font-size:.78rem}.home-hero-credit{left:5vw;right:5vw;bottom:8.4rem;font-size:.85rem}.home-shortcuts{margin:0 5vw}.home-credit{padding:16vw 5vw 10vw}.home-contact{padding:2vw 5vw 16vw}}

/* Full-width home navigation directly beneath the Joinery image. */
.home-shortcuts{max-width:none;margin:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.home-shortcuts a{min-height:7rem;flex:1;justify-content:center;align-items:center}.home-shortcuts a+a{padding-left:0}
@media(max-width:760px){.home-shortcuts{margin:0}.home-shortcuts a{min-height:5.5rem}}

/* The Joinery: a short editorial sequence, then an expandable drawing catalogue. */
.joinery-concept,.joinery-context,.joinery-isonometric,.joinery-catalogue{border-top:1px solid var(--line);padding:7vw 4vw;max-width:1440px;margin:0 auto}
.joinery-concept{display:grid;grid-template-columns:.7fr 1.3fr;gap:2vw 5vw;align-items:start}
.joinery-concept-copy{max-width:31rem}.joinery-concept h2,.joinery-context h2,.joinery-isonometric h2,.joinery-catalogue h2{font-size:clamp(2.25rem,4.8vw,5.25rem);letter-spacing:-.07em;line-height:.9;font-weight:500;margin:0 0 1.8rem}
.joinery-concept-copy p:not(.eyebrow),.joinery-catalogue header>p:last-child{line-height:1.62;margin:0 0 1.1rem}
.joinery-concept figure,.joinery-context figure,.joinery-isonometric figure{margin:0}.joinery-parti{grid-column:2}.joinery-history{grid-column:1/-1;max-width:920px;margin-top:3vw!important}.joinery-concept img,.joinery-context img,.joinery-isonometric img{width:100%;height:auto;object-fit:contain;background:#fff}
.joinery-concept figcaption,.joinery-context figcaption,.joinery-isonometric figcaption{font:.64rem var(--mono);color:var(--slate);margin-top:.65rem}
.joinery-context{display:block}.joinery-context header{max-width:32rem;margin-bottom:3vw}.joinery-context figure:first-of-type{width:100%}.joinery-context figure+figure{max-width:60%;margin:3vw 0 0 auto}
.joinery-context--axon{max-width:none;min-height:100svh;display:grid;grid-template-rows:auto minmax(0,1fr);padding:4vw}.joinery-context--axon header{max-width:none;margin:0 0 2vw}.joinery-context--axon figure{display:flex;min-height:0;flex-direction:column;justify-content:center}.joinery-context--axon figure:first-of-type{width:100%}.joinery-context--axon img{width:100%;max-height:calc(100svh - 13rem);object-fit:contain}
.joinery-isonometric header{max-width:32rem;margin-bottom:3vw}.joinery-isonometric figure{max-width:1280px}
.joinery-catalogue{display:grid;grid-template-columns:.38fr 1fr;gap:5vw;align-items:start}.joinery-catalogue header{position:sticky;top:2rem}.joinery-catalogue h2{margin-bottom:1rem}.joinery-catalogue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.joinery-catalogue-grid .joinery-catalogue-item{position:relative;aspect-ratio:1;background:#fff;display:flex;align-items:center;justify-content:center;overflow:visible;z-index:0}.joinery-catalogue-grid img{width:100%;height:100%;object-fit:contain;padding:.7rem;pointer-events:none;transition:transform .24s ease}
@media(max-width:760px){.joinery-concept,.joinery-context,.joinery-isonometric,.joinery-catalogue{padding:15vw 5vw}.joinery-concept,.joinery-context,.joinery-catalogue{grid-template-columns:1fr;gap:2.5rem}.joinery-parti,.joinery-history{grid-column:auto}.joinery-history{margin-top:0!important}.joinery-context header{grid-row:auto}.joinery-context figure+figure{max-width:100%;justify-self:stretch}.joinery-isonometric header{margin-bottom:2.5rem}.joinery-catalogue header{position:static}.joinery-catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Shared reading rhythm: every project moves from proposition to evidence to outcome. */
.project-narrative{max-width:1440px;margin:0 auto}.project-chapter{display:grid;grid-template-columns:.32fr 1fr;gap:5vw;padding:7vw 4vw;border-top:1px solid var(--line);align-items:start}.project-chapter header{position:sticky;top:2rem}.project-chapter h2{font-size:clamp(2rem,4.2vw,4.7rem);letter-spacing:-.07em;line-height:.9;font-weight:500;margin:0}.project-chapter-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;align-items:start}.project-chapter-media .project-image{grid-column:1/-1;margin:0}.project-chapter-media .project-image.pair{grid-column:span 1}.project-chapter-media img{width:100%;height:auto;object-fit:contain;background:#fff}.project-chapter-media figcaption{display:block;margin-top:.65rem;color:var(--slate);font:.64rem var(--mono)}
@media(max-width:760px){.project-chapter{grid-template-columns:1fr;gap:2.2rem;padding:15vw 5vw}.project-chapter header{position:static}.project-chapter-media{gap:1.7rem}.project-chapter-media .project-image.pair{grid-column:span 1}}

/* Student Work: consistent 16:10 project reading, with no privileged tile. */
.collection-statement{max-width:45rem;margin-top:3rem;font-size:clamp(1.05rem,1.65vw,1.45rem);line-height:1.48;letter-spacing:-.035em}.collection-statement p{margin:0 0 1rem}.collection-statement strong{font-weight:600}.portfolio-grid-projects .project-tile-featured{grid-column:auto}.portfolio-grid-projects .project-tile-featured h3{font-size:1.12rem}.portfolio-grid-projects .project-tile figure{aspect-ratio:16/10}.portfolio-grid-projects .project-tile figure img{height:100%;object-fit:cover}
@media(max-width:760px){.collection-statement{margin-top:2.2rem}.portfolio-grid-projects .project-tile-featured{grid-column:auto}}

/* Project headers share one field: information at left, architecture at right. */
.project-intro{display:grid;grid-template-columns:minmax(18rem,.72fr) minmax(0,1.28fr);gap:5vw;align-items:end;padding:4vw;max-width:1600px;margin:0 auto;border-bottom:1px solid var(--line)}
.project-intro .project-summary{max-width:none;padding:0;border:0}.project-intro .project-page-hero{height:auto;padding:0}.project-intro .project-page-hero figure{margin:0}.project-intro .project-page-hero img{width:100%;height:auto;max-height:76vh;object-fit:contain;background:#fff}.project-intro .lede{margin:1.7rem 0}.project-intro .source-text{max-width:34rem}.project-intro .project-summary dl{max-width:none}
@media(max-width:760px){.project-intro{grid-template-columns:1fr;padding:12vw 5vw;gap:3rem}.project-intro .project-page-hero img{max-height:none}.project-intro .project-summary{order:1}.project-intro .project-page-hero{order:2}}

/* Navigation returns with an upward scroll and stays aligned at the right. */
.site-header{position:sticky;top:0;display:flex;justify-content:space-between;transition:transform .22s ease;will-change:transform}.site-header nav{margin-left:auto}.site-header--hidden{transform:translateY(-101%)}
@media(max-width:760px){.site-header{display:flex}.site-header nav{margin-left:auto}}

/* Fire-Proof Altadena: the fire condition appears only on intentional hover. */
.project-tile .tile-hover-image,.project-page-hero .project-hero-hover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease;pointer-events:none}.project-tile:hover .tile-hover-image,.project-tile:focus-visible .tile-hover-image,.project-page-hero figure:hover .project-hero-hover{opacity:1}.project-page-hero figure{position:relative}.project-page-hero .project-hero-main{position:relative;z-index:0}.project-page-hero .project-hero-hover{z-index:1}

/* Index refinement: a quiet metadata layer keeps the image, year, and studio legible. */
.portfolio-grid{gap:clamp(1rem,1.6vw,1.7rem)}.project-tile figure{isolation:isolate}.project-tile h3{margin:.8rem 0 0;font-size:1.05rem;letter-spacing:-.04em;font-weight:500}.tile-overlay{align-items:flex-start;justify-content:flex-end;gap:.4rem;padding:1.15rem;background:rgba(255,255,255,.78);color:var(--ink)!important;font-weight:400!important;line-height:1!important;text-align:left}.tile-year{display:block;font-size:clamp(1.55rem,3.2vw,3.65rem);letter-spacing:-.08em;font-weight:500;line-height:.88}.tile-studio{display:block;max-width:16rem;color:var(--slate);font:.59rem/1.35 var(--mono);font-weight:400;letter-spacing:.07em;text-transform:uppercase}.project-tile:hover .tile-overlay,.project-tile:focus-visible .tile-overlay{opacity:1}.project-tile:hover h3,.project-tile:focus-visible h3{color:var(--ink)}
@media(max-width:760px){.tile-overlay{position:static;display:block!important;padding:.75rem 0 0;background:transparent;color:var(--ink)!important;opacity:1}.tile-year{font-size:1.2rem;letter-spacing:-.055em}.tile-studio{margin-top:.3rem;font-size:.55rem}.project-tile h3{margin-top:.55rem}}

/* Fluid reading scale: copy gains presence on broad screens without competing with the drawings. */
:root{--reading-size:clamp(1rem,.82rem + .35vw,1.28rem);--caption-size:clamp(.67rem,.58rem + .12vw,.8rem)}
body{font-size:var(--reading-size)}
.lede,.source-text p,.feature-copy>p:not(.eyebrow),.material-section p:last-child,.collection-copy>p:not(.eyebrow),.reading-copy p,.joinery-concept-copy p:not(.eyebrow),.joinery-catalogue header>p:last-child{font-size:var(--reading-size);line-height:1.62}
.project-summary dd{font-size:clamp(.98rem,.84rem + .22vw,1.2rem)}
.project-hero-image figcaption,.project-image figcaption,.project-chapter-media figcaption,.joinery-concept figcaption,.joinery-context figcaption,.joinery-isonometric figcaption,.project-board-image figcaption,.hero-board span,.image-frame figcaption{font-size:var(--caption-size)}
.home-hero-credit{right:auto;width:min(46vw,54rem);font-size:clamp(1.05rem,.85rem + .45vw,1.42rem);line-height:1.42}
.home-award-link{font-size:clamp(.85rem,.73rem + .18vw,1rem);max-width:19rem}
@media(min-width:1440px){.project-chapter{gap:6vw}.project-intro{gap:6vw}.project-chapter h2{font-size:clamp(2.4rem,3.8vw,5rem)}}
@media(max-width:760px){.home-hero-credit{right:5vw;width:auto;font-size:clamp(.92rem,3.7vw,1.08rem);line-height:1.45}.home-award-link{font-size:.78rem;max-width:calc(100% - 10vw)}}

/* A short personal note receives the same restrained, image-first rhythm as the portfolio. */
.about-page{min-height:calc(100dvh - 78px);max-width:72rem;padding:12vw 4vw;display:grid;align-content:center}.about-page h1{font-size:clamp(3.4rem,8vw,8.5rem);letter-spacing:-.085em;line-height:.88;font-weight:500;margin:0 0 3rem}.about-page h1 span{display:block;font-size:.32em;letter-spacing:-.045em;margin-top:.65rem}.about-page>p:not(.eyebrow){max-width:34rem;font-size:var(--reading-size);line-height:1.55;margin:0 0 1.15rem}.about-page .eyebrow{margin-bottom:2rem}
.home-contact{gap:1rem}
@media(max-width:760px){.about-page{padding:22vw 5vw;align-content:start}.about-page h1{margin-bottom:2.5rem}}

/* Bolt Housing: expand floor-plan inspection without changing the grid's resting layout. */
.project-chapter-media .project-image--zoom{position:relative;overflow:visible;z-index:0}.project-chapter-media .project-image--zoom img{pointer-events:none;transition:transform .24s ease;transform-origin:center}.project-chapter-media .project-image--zoom figcaption{position:relative;background:#fff}.project-chapter-media .project-image--zoom:hover,.project-chapter-media .project-image--zoom:focus-within{z-index:5}.project-chapter-media .project-image--zoom:hover img,.project-chapter-media .project-image--zoom:focus-within img{transform:scale(3)}

/* Enlarged drawings remain within the viewport and float as a complete, uninterrupted image. */
.joinery-catalogue-grid .joinery-catalogue-item,.project-chapter-media .project-image--zoom{cursor:zoom-in}
.joinery-catalogue-grid .joinery-catalogue-item img,.project-chapter-media .project-image--zoom img{position:relative;z-index:2;transform-origin:var(--zoom-origin,center);transition:transform .24s ease,box-shadow .24s ease}
.project-chapter-media .project-image--zoom figcaption{position:relative;z-index:1}
.project-chapter-media .project-image--zoom:hover img,.project-chapter-media .project-image--zoom:focus-within img{transform:scale(var(--zoom-scale,1))}
.project-chapter-media .project-image--zoom.image-expanded{z-index:30!important}
.project-chapter-media .project-image--zoom.image-expanded img{transform:scale(var(--zoom-scale,1));box-shadow:0 18px 36px rgba(0,0,0,.18)}

/* A Joinery catalogue drawing is previewed across the complete 3 × 3 field.
   The drawing itself stays uncropped; white space completes the field. */
.joinery-catalogue-grid{position:relative;isolation:isolate}
.joinery-catalogue-grid .joinery-catalogue-item:hover img{transform:none;box-shadow:none}
.joinery-catalogue-preview{position:absolute;inset:0;z-index:30;display:none;align-items:center;justify-content:center;padding:clamp(1rem,2vw,2.5rem);background:#fff;pointer-events:none}
.joinery-catalogue-preview.is-visible{display:flex}
.joinery-catalogue-preview img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;padding:0;transform:none!important;box-shadow:none!important}

/* Shared controls match the reading scale and keep enlarged studies inside the page field. */
.site-header nav,.home-link{font-size:var(--reading-size)}
.project-tile-altadena{grid-column:span 1}
.project-tile-altadena figure{width:100%;aspect-ratio:16/10}
.project-tile-altadena figure .tile-hero-image,.project-tile-altadena figure .tile-hover-image{width:100%;height:100%;object-fit:cover}
.hero-hover-prompt{position:absolute;right:1rem;bottom:1rem;z-index:2;color:#fff;font:.64rem var(--mono);letter-spacing:.07em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.7);pointer-events:none}
.back-to-top{position:fixed;right:4vw;bottom:2rem;z-index:40;border:1px solid var(--ink);background:#fff;color:var(--ink);padding:.65rem .8rem;font:var(--caption-size) var(--mono);letter-spacing:.03em;cursor:pointer;opacity:0;transform:translateY(1rem);pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{background:var(--ink);color:#fff}
@media(max-width:760px){.site-header nav,.home-link{font-size:.95rem}.back-to-top{right:5vw;bottom:1.25rem}.hero-hover-prompt{right:.75rem;bottom:.75rem;font-size:.58rem}}

/* About is a quiet two-part portrait: biography at left, studio evidence at right. */
.about-page{max-width:1440px;grid-template-columns:minmax(0,1.05fr) minmax(16rem,.7fr);gap:clamp(3rem,8vw,10rem);align-items:center}
.about-copy{max-width:38rem}.about-copy h1{font-size:clamp(3.4rem,7.2vw,8rem);letter-spacing:-.085em;line-height:.88;font-weight:500;margin:0 0 3rem}.about-copy h1 span{display:block;font-size:.32em;letter-spacing:-.045em;margin-top:.65rem}.about-copy>p:not(.eyebrow){max-width:34rem;font-size:var(--reading-size);line-height:1.55;margin:0 0 1.15rem}.about-copy .eyebrow{margin-bottom:2rem}
.about-portrait{width:min(100%,31rem);margin:0;justify-self:end}.about-portrait img{width:100%;height:auto;object-fit:contain;background:#fff}
@media(max-width:760px){.about-page{grid-template-columns:1fr;gap:3rem}.about-copy h1{margin-bottom:2.5rem}.about-portrait{justify-self:start;width:min(100%,26rem)}}
