:root{--paper:#f7f5f0;--ink:#282725;--muted:#77736c;--gold:#d8ad6f;--sand:#efe8dc;--line:#dcd8d0;--sans:Arial,Helvetica,sans-serif;--serif:Georgia,'Times New Roman',serif;--header:100px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px)}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans);opacity:1;transition:opacity .2s ease}body.page-leaving{opacity:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12;letter-spacing:-.025em}h1{font-size:clamp(46px,5.2vw,76px)}h2{font-size:clamp(32px,3.2vw,47px)}h3{font-size:30px}p{color:var(--muted)}.wrap{width:calc(100% - 10.8%);max-width:1500px;margin-inline:auto}.eyebrow{font-size:11px;line-height:1.5;letter-spacing:.055em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}.number{font-size:12px;color:var(--muted)}.text-link{font-size:14px;display:inline-block;border-bottom:1px solid transparent;padding-bottom:4px;transition:border-color .2s}.text-link:hover{border-color:var(--gold)}.skip-link{position:fixed;top:-100px;left:20px;padding:10px 20px;background:var(--ink);color:white;z-index:200}.skip-link:focus{top:10px}.site-header{height:var(--header);display:flex;align-items:center;padding:0 4.5%;gap:30px;background:var(--paper);position:relative;z-index:50;border-bottom:1px solid rgba(40,39,37,.06)}.brand{display:flex;align-items:center;gap:21px;margin-right:auto;flex-shrink:0}.brand img{width:52px;height:61px;object-fit:contain}.brand span{font-size:19px;white-space:nowrap;letter-spacing:-.035em}.desktop-nav{display:flex;gap:46px;align-items:center;font-size:14px}.desktop-nav a{position:relative;padding:9px 0}.desktop-nav a:after{content:'';position:absolute;bottom:1px;left:0;width:0;height:1px;background:var(--gold);transition:width .25s}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{width:100%}.languages{display:flex;gap:13px;font-size:12px;margin-left:40px;align-items:center}.languages a{position:relative;color:var(--muted)}.languages a.active{font-weight:700;color:var(--ink)}.languages a.active:after{content:'';height:2px;width:20px;background:var(--gold);position:absolute;bottom:-12px;left:0}.menu-toggle{display:none;width:40px;height:40px;border:0;background:none;padding:8px}.menu-toggle span{display:block;height:1px;margin:7px 0;background:var(--ink);transition:transform .2s}.mobile-nav[hidden]{display:none}.mobile-nav{position:absolute;top:var(--header);left:0;right:0;padding:30px 6%;background:var(--paper);z-index:49;border-bottom:1px solid var(--line);box-shadow:0 30px 40px #0001}.mobile-nav a{display:block;font:30px/1.8 var(--serif)}.hero{height:min(800px,calc(100svh - var(--header)));min-height:620px;position:relative;overflow:hidden;border-bottom:5px solid var(--gold)}.hero-image{width:100%;height:100%;object-fit:cover;object-position:50% 47%;animation:hero-settle 1.6s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.56),rgba(0,0,0,0) 70%)}.hero-copy{position:absolute;left:0;right:0;bottom:65px;color:white;animation:hero-enter 1s .15s both}.hero h1{font-size:clamp(52px,5.6vw,84px);line-height:1.03;max-width:1150px;text-shadow:0 1px 20px #0001}.eyebrow.light{color:#fff;font-size:11px;display:flex;gap:17px;align-items:center}.eyebrow.light span{width:55px;height:2px;background:var(--gold)}.hero-process{margin:40px 0 0;padding:0;display:flex;gap:0;list-style:none;font-size:14px;color:white}.hero-process li+li:before{content:'·';padding:0 9px}.scroll-cue{position:absolute;right:0;bottom:0;font-size:27px;line-height:1;padding:10px}.philosophy{display:grid;grid-template-columns:1fr 1.85fr;gap:10%;padding-block:82px 65px;border-bottom:1px solid var(--line)}.philosophy h2{font-size:42px}.gold-rule{display:block;width:90px;height:3px;background:var(--gold);margin-top:35px}.philosophy>div:nth-child(2){max-width:720px}.philosophy p:not(.eyebrow):not(.motto){margin-top:28px;font-size:18px;line-height:1.55;max-width:680px}.philosophy .motto{font:25px/1.25 var(--serif);color:var(--ink);margin-top:23px}.selected-projects{padding-block:64px 90px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:20px}.section-heading .eyebrow{margin-bottom:12px}.portfolio-note{font-size:13px;line-height:1.65;max-width:940px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:20px}.project-card a{display:block}.card-photo{aspect-ratio:1.2;overflow:hidden;background:var(--sand)}.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.65,.3,1),filter .6s}.project-link:hover .card-photo img{transform:scale(1.035);filter:brightness(1.035)}.card-title{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:15px}.card-title h3{font-size:34px}.card-title span{font-size:25px;transition:transform .3s}.project-link:hover .card-title span{transform:translate(3px,-3px)}.project-card p{font-size:14px;margin-top:14px}.press-band{background:var(--sand);padding-block:65px}.press-grid{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center}.press-photo{aspect-ratio:1.27;overflow:hidden}.press-photo img{width:100%;height:100%;object-fit:cover}.press-copy{padding:10px 0;max-width:600px}.press-copy .eyebrow{margin-bottom:12px}.publication{font:clamp(32px,3.7vw,55px)/1.15 var(--serif);color:var(--ink);letter-spacing:-.035em;margin-bottom:47px}.press-copy h2{font-size:35px;margin-bottom:23px}.press-copy>p:not(.eyebrow):not(.publication){font-size:16px;max-width:430px;line-height:1.6}.press-copy .text-link{margin-top:38px}.quality{padding-block:90px 70px}.quality>h2{font-size:38px}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:65px}.pillar{border-top:1px solid var(--line);padding-top:24px;position:relative}.pillar:before{content:'';position:absolute;top:-1px;height:2px;width:48px;background:var(--gold)}.pillar h3{font-size:24px;margin-top:20px}.pillar p{font-size:16px;margin-top:24px;max-width:360px}.family{display:grid;grid-template-columns:1.5fr 1fr;gap:10%;border-top:1px solid var(--line);padding-block:60px 125px;align-items:center}.family h2{font-size:34px}.family>p{font-size:17px;max-width:500px}.site-footer{background:var(--ink);color:var(--paper);border-top:5px solid var(--gold);padding-top:40px}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:6%;padding-bottom:48px}.site-footer .eyebrow{color:var(--gold);font-size:11px;margin-bottom:26px}.footer-brand{font:39px/1.08 var(--serif);color:var(--paper)}.footer-grid a{display:block;font-size:18px;line-height:1.6;width:fit-content}.footer-grid a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}.phones{margin-top:22px}.company-data p{font-size:13px;color:#c9c7c1;line-height:1.8}.company-data .company-name{color:var(--paper);font-size:19px;margin-bottom:12px}.company-data address{font-size:13px;font-style:normal;color:#c9c7c1;line-height:1.6;margin-top:18px}.copy-tax{border:0;background:none;color:var(--gold);padding:0 6px;font-size:18px;vertical-align:middle}.footer-nav{border-top:1px solid #ffffff50;display:flex;gap:22px;padding:25px 0 30px;font-size:12px;color:#c9c7c1}.footer-nav a:hover{color:white}.portfolio-page{padding-block:85px 110px}.portfolio-page .page-lead{margin-top:35px}.portfolio-page .portfolio-note{margin-top:20px;max-width:780px}.portfolio-grid{margin-top:40px;row-gap:65px}.page-lead{font-size:22px;line-height:1.6}.project-intro{padding-block:40px}.back-link{font-size:13px}.project-heading{display:flex;justify-content:space-between;align-items:flex-end;padding-top:44px;gap:50px}.project-heading h1{font-size:84px}.project-heading .eyebrow{margin-bottom:12px}.project-lead{font-size:21px;max-width:400px;padding-bottom:8px}.project-hero{width:100%;height:min(800px,70vw);min-height:400px;overflow:hidden}.image-open{border:0;background:none;padding:0;display:block;position:relative;width:100%;overflow:hidden}.project-hero .image-open{height:100%}.image-open img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.image-open:hover img{transform:scale(1.015)}.image-expand{position:absolute;bottom:26px;right:5%;background:#282725ab;color:white;padding:10px 18px;font-size:12px;backdrop-filter:blur(8px)}.project-description{display:grid;grid-template-columns:1fr 2fr;gap:10%;padding-block:70px}.project-description h2{font-size:38px;margin-bottom:25px;max-width:700px}.project-description p{margin-top:20px;max-width:800px}.project-description .eyebrow{margin-top:6px}.project-description .portfolio-note{font-size:12px;padding-top:18px;border-top:1px solid var(--line);margin-top:30px}.project-images{padding-bottom:65px}.project-images h2{font-size:32px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.photo-grid .image-open{aspect-ratio:1.4}.photo-grid .image-open>span{position:absolute;bottom:15px;right:20px;color:white;font-size:25px;text-shadow:0 1px 10px #000}.more-projects{padding-block:30px 100px}.more-projects h2{font-size:36px}.about-intro{padding-block:85px 65px}.about-intro h1{max-width:1100px}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:55px}.about-copy .page-lead{color:var(--ink);font-size:23px}.about-copy>p+ p{font-size:17px}.panorama{height:500px;position:relative;overflow:hidden;background:var(--sand)}.panorama img{width:100%;height:115%;object-fit:cover;will-change:transform}.panorama figcaption{position:absolute;bottom:30px;left:5.4%;color:white;font:32px var(--serif);text-shadow:0 1px 20px #000}.process-section{padding-block:75px}.process-section h2{margin-bottom:45px}.process-list{border-top:1px solid var(--line)}.process-item{border-bottom:1px solid var(--line)}.process-item summary{display:flex;align-items:center;gap:40px;padding:25px 0;cursor:pointer;list-style:none}.process-item summary::-webkit-details-marker{display:none}.process-item summary h3{font-size:30px}.plus{margin-left:auto;width:18px;height:18px;position:relative;flex-shrink:0}.plus:before,.plus:after{content:'';position:absolute;background:var(--ink);left:0;top:8px;width:18px;height:1px;transition:transform .3s}.plus:after{transform:rotate(90deg)}.process-item[open] .plus:after{transform:rotate(0)}.details-content{padding:0 30px 28px 62px;max-width:750px}.process-item[open] .details-content{animation:panel-in .35s ease both}.family-about{padding-bottom:90px}.text-page{padding-block:85px 110px;min-height:70vh}.text-page h1{margin-bottom:60px}.press-detail{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.press-detail>img{width:100%;aspect-ratio:1;object-fit:cover}.press-detail h2{margin-bottom:25px;font-size:38px}.press-detail .text-link{margin-top:25px}.press-detail .publication{font-size:42px;margin-bottom:30px}.editorial-note{font-size:12px;margin-top:40px;border-top:1px solid var(--line);padding-top:20px}.legal-copy{max-width:800px}.legal-copy p{margin-bottom:25px}.legal-copy dl{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:16px;margin-bottom:30px}.legal-copy dt{color:var(--muted)}.legal-copy dd{margin:0}dialog{border:0;padding:0}#lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;background:#1c1b19;color:white;overflow:hidden}#lightbox::backdrop{background:#1c1b19}#lightbox[open]{display:flex;flex-direction:column;animation:panel-in .2s ease}.lightbox-top{height:72px;flex-shrink:0;padding:15px 3%;display:flex;justify-content:space-between;align-items:center;font:24px var(--serif)}.lightbox-close{font:38px/1 Arial;border:0;background:none;color:white;width:48px;height:42px}.lightbox-stage{display:grid;grid-template-columns:65px minmax(0,1fr) 65px;align-items:center;flex:1;min-height:0;padding:0 1%}.lightbox-stage img{width:100%;height:100%;min-height:0;max-height:calc(100dvh - 196px);object-fit:contain;transition:opacity .15s}.lightbox-stage>button{border:0;background:none;color:white;font-size:25px;height:64px}.lightbox-stage>button:disabled{opacity:.2}.lightbox-bottom{height:124px;flex-shrink:0;padding:15px 5%;display:flex;align-items:center;gap:25px}#lightbox-counter{font-size:13px;white-space:nowrap;color:#bbb8b0}#lightbox-thumbnails{display:flex;gap:10px;overflow-x:auto}#lightbox-thumbnails button{padding:3px;background:none;border:1px solid transparent;flex-shrink:0}#lightbox-thumbnails button[aria-current=true]{border-color:var(--gold)}#lightbox-thumbnails img{width:90px;height:62px;object-fit:cover}.announcement{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--paper);color:var(--ink);padding:10px 24px;border:1px solid var(--gold);font-size:14px;opacity:0;pointer-events:none;z-index:100}.announcement.visible{opacity:1}.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .8s cubic-bezier(.2,.65,.3,1)}.js .reveal.is-visible{opacity:1;transform:none}.project-grid>.reveal:nth-child(3n+2),.pillars>.reveal:nth-child(2){transition-delay:.07s}.project-grid>.reveal:nth-child(3n+3),.pillars>.reveal:nth-child(3){transition-delay:.14s}@keyframes hero-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes hero-settle{from{transform:scale(1.035)}to{transform:scale(1)}}@keyframes panel-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(min-width:1700px){.hero{height:850px}.hero-copy{bottom:75px}.hero h1{font-size:90px}}
@media(max-width:1100px){:root{--header:85px}.site-header{gap:20px}.brand span{font-size:16px}.brand img{width:44px;height:52px}.brand{gap:15px}.desktop-nav{gap:25px;font-size:13px}.languages{margin-left:15px;gap:10px}.hero{min-height:560px}.hero-copy{bottom:50px}.hero-process{font-size:12px}.philosophy{gap:7%;grid-template-columns:1fr 1.65fr}.philosophy h2{font-size:36px}.publication{margin-bottom:30px}.press-copy h2{font-size:30px}.footer-grid{gap:4%}.footer-grid a{font-size:16px}.company-data p{font-size:12px}.project-card p{font-size:13px}}
@media(max-width:760px){:root{--header:88px}.wrap{width:88%}.site-header{padding-inline:5.3%;gap:12px}.brand{gap:14px}.brand img{width:42px;height:52px}.brand span{font-size:14px;white-space:normal;max-width:130px;line-height:1.2}.desktop-nav{display:none}.languages{margin-left:0;gap:8px;font-size:11px}.languages a.active:after{bottom:-8px;width:17px}.menu-toggle{display:block;padding:8px 4px;width:32px;margin-left:8px}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.hero{height:auto;min-height:0;border-bottom:0;display:flex;flex-direction:column}.hero-image{height:66svh;min-height:420px;max-height:650px;object-position:48% 50%;border-bottom:4px solid var(--gold)}.hero-shade{display:none}.hero-copy{position:relative;bottom:auto;background:var(--ink);width:100%;padding:34px 6% 40px;animation:hero-enter .8s both}.hero h1{font-size:clamp(38px,8.7vw,61px);line-height:1.1;letter-spacing:-.03em}.hero-process{flex-wrap:wrap;line-height:2;gap:0;font-size:12px;margin-top:25px;max-width:440px}.hero-process li+li:before{padding-inline:6px}.scroll-cue{display:none}.eyebrow{font-size:10px;margin-bottom:20px}.philosophy{grid-template-columns:1fr;gap:0;padding-block:48px}.philosophy>div:first-child h2,.philosophy>div:first-child .gold-rule{display:none}.philosophy h2{font-size:35px}.philosophy p:not(.eyebrow):not(.motto){font-size:16px;margin-top:28px;line-height:1.65}.philosophy .motto{font-size:25px;margin-top:28px}.selected-projects{padding-block:40px 55px}.section-heading{align-items:center;gap:20px}.section-heading h2{font-size:34px}.selected-projects>.section-heading{display:block}.selected-projects>.section-heading .text-link{margin-top:18px}.portfolio-note{font-size:12px}.project-grid{grid-template-columns:1fr;gap:36px;margin-top:28px}.card-photo{aspect-ratio:1.12}.card-title{margin-top:17px}.card-title h3{font-size:33px}.project-card p{font-size:14px;margin-top:10px}.press-band{padding-block:35px 45px}.press-grid{grid-template-columns:1fr;gap:30px}.press-photo{aspect-ratio:1.1}.press-copy{padding:0}.publication{font-size:38px;margin-bottom:28px}.press-copy h2{font-size:32px}.press-copy>p:not(.eyebrow):not(.publication){font-size:16px}.press-copy .text-link{margin-top:24px}.quality{padding-block:50px}.quality>h2{font-size:33px;line-height:1.2}.pillars{grid-template-columns:1fr;gap:30px;margin-top:35px}.pillar{padding-top:18px}.pillar h3{font-size:26px;margin-top:12px}.pillar p{margin-top:15px;max-width:none;font-size:16px}.family{grid-template-columns:1fr;gap:25px;padding-block:40px 70px}.family h2{font-size:31px}.family>p{font-size:16px}.site-footer{padding-top:35px}.footer-grid{grid-template-columns:1fr;gap:35px;padding-bottom:35px}.site-footer .eyebrow{margin-bottom:15px}.footer-brand{font-size:34px}.footer-grid a{font-size:17px}.phones{margin-top:17px}.company-data p{font-size:13px;line-height:2}.company-data .company-name{font-size:19px}.footer-nav{gap:20px;font-size:11px;flex-wrap:wrap}.portfolio-page{padding-block:45px 60px}.portfolio-page h1{font-size:42px}.portfolio-page .page-lead{font-size:18px;margin-top:25px}.portfolio-grid{row-gap:40px}.project-intro{padding-block:25px 30px}.project-heading{display:block;padding-top:30px}.project-heading h1{font-size:62px}.project-lead{font-size:18px;padding-top:20px}.project-hero{height:65vw;min-height:300px}.image-expand{font-size:10px;padding:7px 12px;bottom:15px}.project-description{grid-template-columns:1fr;gap:8px;padding-block:40px}.project-description h2{font-size:32px}.project-description p{font-size:16px}.project-description .portfolio-note{font-size:12px}.project-images{padding-bottom:35px}.photo-grid{grid-template-columns:1fr;gap:18px}.more-projects{padding-block:20px 60px}.more-projects h2{font-size:30px}.more-projects .section-heading{display:block}.more-projects .text-link{margin-top:15px}.about-intro{padding-block:45px}.about-intro h1{font-size:40px}.about-copy{grid-template-columns:1fr;gap:25px;margin-top:30px}.about-copy .page-lead{font-size:21px}.about-copy>p+p{font-size:16px}.panorama{height:360px}.panorama figcaption{font-size:26px;bottom:20px}.process-section{padding-block:45px}.process-section h2{font-size:35px}.process-item summary{gap:25px;padding:22px 0}.process-item summary h3{font-size:26px}.details-content{padding-left:42px;font-size:16px}.text-page{padding-block:45px 65px}.text-page h1{font-size:44px;margin-bottom:35px}.press-detail{grid-template-columns:1fr;gap:35px}.press-detail .publication{font-size:36px}.press-detail h2{font-size:32px}.legal-copy{font-size:16px}.legal-copy dl{grid-template-columns:1fr;gap:5px}.legal-copy dd{margin-bottom:12px}.lightbox-stage{grid-template-columns:36px minmax(0,1fr) 36px;padding:0}.lightbox-stage>button{font-size:20px}.lightbox-top{padding-inline:6%;height:64px}.lightbox-bottom{padding:10px 6%;height:110px;gap:12px;flex-direction:column;align-items:flex-start}#lightbox-thumbnails{width:100%;gap:6px}#lightbox-thumbnails img{width:65px;height:42px}.lightbox-stage img{max-height:calc(100dvh - 174px)}.js .reveal{transform:translateY(12px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.panorama img{transform:none!important}}
body{animation:page-enter .28s ease both}@keyframes page-enter{from{opacity:0}to{opacity:1}}

/* Review: a quiet architectural backdrop and contact-link motion. */
.quality-band{position:relative;isolation:isolate;overflow:hidden;background:var(--paper)}
.quality-background{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.quality-background img{position:absolute;left:-4%;top:-90px;width:108%;height:calc(100% + 180px);max-width:none;object-fit:cover;object-position:center 57%;filter:blur(9px) saturate(.55);opacity:.52;will-change:transform}
.quality-background:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,245,240,.66),rgba(247,245,240,.57));pointer-events:none}
.quality-band .quality{position:relative;padding-block:86px 88px}
.quality-band .pillar{border-top-color:rgba(40,39,37,.18)}
.quality-band .pillar p{color:#625f59}
.footer-grid .footer-logo{display:inline-block;width:112px;padding:0;margin-top:0}
.footer-logo img{width:112px;height:130px;object-fit:contain;filter:none;transition:opacity .3s}
.footer-logo:hover img{opacity:.78}
.footer-nav{justify-content:center;text-align:center}
.footer-contact a{position:relative;transition:color .3s,transform .35s cubic-bezier(.2,.65,.3,1);text-decoration:none!important}
.footer-contact a:before{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.65,.3,1)}
.footer-contact a:after{content:'';position:absolute;right:-25px;top:0;color:var(--gold);opacity:0;transform:translate(-4px,4px);transition:opacity .3s,transform .35s}
@media(hover:hover) and (pointer:fine){.footer-contact a:hover{color:var(--gold);transform:translateX(4px)}.footer-contact a:hover:before{transform:scaleX(1)}.footer-contact a:hover:after{opacity:1;transform:none}}
.footer-contact a:focus-visible:before{transform:scaleX(1)}.footer-contact a:focus-visible:after{opacity:1;transform:none}
@media(max-width:760px){.quality-band .quality{padding-block:50px}.quality-background img{top:-45px;height:calc(100% + 90px);filter:blur(7px);opacity:.24}.footer-logo img{width:98px;height:116px}}
@media(prefers-reduced-motion:reduce){.quality-background img{transform:none!important;will-change:auto}.footer-contact a:hover{transform:none}}

html{scroll-behavior:smooth;scroll-padding-top:100px}.legal-dialog{max-width:720px;width:calc(100% - 40px);max-height:85vh;overflow:auto;border:0;background:var(--paper);color:var(--ink);padding:60px 40px;line-height:1.8}.legal-dialog::backdrop{background:#161513aa;backdrop-filter:blur(6px)}.panel-close{position:absolute;right:20px;top:10px;font-size:32px;border:0;background:none;cursor:pointer}.selected-projects .section-heading>.text-link{display:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Project overview stays above the homepage; each tile opens a separate zoom layer. */
#mosaic{width:min(1160px,88vw);max-width:none;max-height:86dvh;margin:auto;background:var(--paper);padding:0 24px 24px;overflow:auto;overscroll-behavior:contain;box-shadow:0 24px 90px #0003}
#mosaic::backdrop{background:rgba(85,85,85,.5)}
.mosaic-toolbar{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;height:60px;background:var(--paper)}
.mosaic-close{font:36px/1 Arial;background:none;border:0;width:44px;height:50px}
.mosaic-grid{columns:3;column-gap:16px}.mosaic-tile{display:block;width:100%;padding:0;border:0;background:var(--sand);margin:0 0 16px;break-inside:avoid;overflow:hidden;cursor:zoom-in}.mosaic-tile img{width:100%;height:auto;transition:transform .5s}.mosaic-tile:hover img{transform:scale(1.025)}
#lightbox-title{display:none}.lightbox-top{justify-content:flex-end}
.card-title h3{position:relative;padding-bottom:5px}.card-title h3:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.65,.3,1)}.project-link:hover .card-title h3:after,.project-link:focus-visible .card-title h3:after{transform:scaleX(1)}
@media(max-width:760px){#mosaic{width:90vw;max-height:88dvh;padding:0 12px 12px}.mosaic-grid{columns:2;column-gap:10px}.mosaic-tile{margin-bottom:10px}.mosaic-toolbar{height:52px}.footer-logo img{width:112px;height:130px}}

/* Review polish: logo contrast, visible soft imagery on narrow screens, and two-way fades. */
.footer-grid .footer-logo{width:140px;padding:10px 14px;background:var(--paper);border-radius:2px}
.footer-logo img{width:112px;height:130px}
@media(max-width:760px){.quality-background img{opacity:.48;filter:blur(7px) saturate(.55)}.quality-background:after{background:rgba(247,245,240,.62)}}
@media(prefers-reduced-motion:no-preference){body{animation:page-arrive .3s ease-out both}@keyframes page-arrive{from{opacity:0}to{opacity:1}}body.page-leaving{animation:none;opacity:0}}

/* Five curated views, recurrent reveals and persistent navigation. */
.site-header{position:sticky;top:0;background:rgba(247,245,240,.98);transition:background .35s,box-shadow .35s}
.site-header:after{content:'';position:absolute;left:0;right:0;top:100%;height:30px;pointer-events:none;background:linear-gradient(to bottom,rgba(40,39,37,.13),rgba(40,39,37,0));opacity:0;transition:opacity .35s}
.site-header.is-scrolled{background:linear-gradient(180deg,rgba(247,245,240,.99),rgba(247,245,240,.95));box-shadow:0 1px 0 rgba(40,39,37,.08);backdrop-filter:blur(12px)}
.site-header.is-scrolled:after{opacity:1}.mobile-nav{position:fixed}
.hero-slides{position:absolute;inset:0;overflow:hidden;background:var(--ink)}
.hero .hero-slide{position:absolute;inset:0;width:100%;height:100%;opacity:0;animation:none;transform:none;transition:opacity 1.4s ease-in-out;object-fit:cover;object-position:center 47%}
.hero .hero-slide.is-active{opacity:1}
.hero-controls{position:absolute;right:5.4%;bottom:18px;z-index:3;display:flex;align-items:center;gap:1px}
.hero-dot,.hero-pause{display:flex;justify-content:center;align-items:center;border:0;background:transparent;color:white;width:36px;height:36px;padding:0}
.hero-dot span{width:6px;height:6px;border:1px solid white;border-radius:50%;background:transparent;transition:background .3s,transform .3s}
.hero-dot[aria-current=true] span{background:var(--gold);border-color:var(--gold);transform:scale(1.4)}
.hero-pause{font:15px/1 Arial;margin-left:8px}.hero-controls button:focus-visible{outline-offset:0}
.js .reveal{transform:translate3d(0,var(--reveal-offset,24px),0);transition:opacity .65s ease,transform .85s cubic-bezier(.2,.65,.3,1)}
.js .reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
@media(max-width:760px){.hero-controls{right:5.3%;bottom:10px}.hero .hero-slide{object-position:55% center}}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none!important;transition:none}.hero .hero-slide{transition:none}.site-header,.site-header:after{transition:none}}

/* Clear hero hierarchy: title, gold separator, development stages. */
.hero-divider{display:block;width:64px;height:2px;background:var(--gold);margin-top:28px}
.hero-process{font-size:16px;margin-top:22px}
@media(max-width:1100px){.hero-process{font-size:14px}}
@media(max-width:760px){.hero-divider{margin-top:23px;width:55px}.hero-process{font-size:14px;margin-top:17px;line-height:1.8}}

/* Extra image bleed keeps the hero covered throughout parallax. */
.hero-slides{inset:-18% 0 0;height:118%;will-change:transform}
@media(prefers-reduced-motion:reduce){.hero-slides{inset:0;height:100%;will-change:auto}}

/* Match the heavy, spaced uppercase lettering in the supplied logo. */
.brand span{font-family:"Arial Black","Arial",Helvetica,sans-serif;font-weight:900;letter-spacing:.11em}
@media(max-width:760px){.brand span{letter-spacing:.075em}}

/* Justified rows: every row, including the last, fills the gallery width. */
.mosaic-grid{display:flex;flex-direction:column;columns:auto;gap:16px}
.mosaic-row{display:flex;gap:16px;align-items:stretch;width:100%}
.mosaic-row .mosaic-tile{display:block;min-width:0;width:auto;margin:0;padding:0;overflow:hidden}
.mosaic-row .mosaic-tile img{width:100%;height:100%;object-fit:cover;display:block}
#lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:4vh 4vw;border:0;background:transparent;box-shadow:none;overflow:hidden}
#lightbox[open]{display:flex;align-items:center;justify-content:center}
#lightbox::backdrop{background:rgba(85,85,85,.5)}
#lightbox-image{display:block;width:auto;height:auto;max-width:92vw;max-height:92dvh;object-fit:contain;box-shadow:0 16px 60px #0003}
#lightbox .lightbox-close{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0}
#lightbox .lightbox-close:focus-visible{clip-path:none;top:12px;right:12px;width:40px;height:40px;margin:0;background:var(--paper);color:var(--ink)}
@media(max-width:760px){.mosaic-grid,.mosaic-row{gap:10px}}

/* Publisher's original wordmark and the supplied photograph of the feature. */
.press-photo{aspect-ratio:auto;align-self:center}
.press-photo img{width:100%;height:auto;object-fit:contain}
.publication-logo{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.publication-logo img{width:230px;max-width:75%;height:auto}
.publication-logo span{font:22px/1.2 var(--serif);color:var(--ink)}
.press-copy .press-publisher{margin-top:28px}
@media(max-width:760px){.publication-logo img{width:200px}.publication-logo span{font-size:20px}}

/* Position replaces numeric labels; strengthen the photograph by 25%. */
.pillar:nth-child(1):before{left:0;right:auto}
.pillar:nth-child(2):before{left:calc(50% - 24px);right:auto}
.pillar:nth-child(3):before{left:auto;right:0}
.quality-background img{opacity:.65}
@media(max-width:760px){.quality-background img{opacity:.60}}

/* Mobile reserves a real photo area above the text instead of collapsing it. */
@media(max-width:760px){.hero{padding-top:clamp(420px,66svh,650px)}.hero-slides{inset:0 0 auto;height:clamp(420px,66svh,650px);transform:none!important;will-change:auto}.hero .hero-slide{height:100%;min-height:0;max-height:none;border-bottom:4px solid var(--gold)}.hero-copy{z-index:1}}
#lightbox-image{width:auto;height:auto;max-width:92vw;max-height:92dvh}

/* Header spacing and section navigation */
.brand{gap:31.5px}
@media(max-width:1100px){.brand{gap:22.5px}.desktop-nav{gap:24px}.languages{margin-left:12px}}
@media(max-width:760px){.brand{gap:21px}}

/* Balanced family spacing and reversed logo on the dark footer. */
.family{padding-block:60px}
.footer-grid .footer-logo{width:140px;padding:0;background:transparent;border-radius:0}
.footer-logo img{width:140px;height:auto;filter:grayscale(1) invert(1)}
@media(max-width:760px){.family{padding-block:40px}}

/* Compact mobile hero and rolling navigation. */
@media(max-width:760px){
 .hero{padding-top:66.6667vw}
 .hero-slides{height:66.6667vw;aspect-ratio:3/2}
 .hero .hero-slide{object-position:center;height:100%;min-height:0;border-bottom:0}
 .hero h1{overflow-wrap:anywhere;hyphens:auto}
 html[lang="de"] .hero h1{font-size:clamp(25px,6.7vw,46px)}
 .mobile-nav{padding:0 6%;overflow:hidden;box-sizing:border-box}
 .mobile-nav a{font-size:23px;line-height:1.65}
 .mobile-nav a:first-child{padding-top:12px}
 .mobile-nav a:last-child{padding-bottom:12px}
}

/* Compact footer: details first, centered brand underneath. */
@media(max-width:760px){
 .site-footer{padding-top:28px}
 .footer-grid{grid-template-columns:1fr 1fr;gap:26px 24px;text-align:center;padding-bottom:24px}
 .footer-contact{order:1;min-width:0}
 .company-data{order:2;min-width:0}
 .footer-grid>div:first-child{order:3;grid-column:1/-1;display:flex;justify-content:center}
 .footer-grid a{margin-inline:auto}
 .site-footer .eyebrow{margin-bottom:12px}
 .phones{margin-top:12px}
 .company-data .company-name{margin-bottom:8px}
 .company-data address{margin-top:10px}
 .company-data p{line-height:1.7;overflow-wrap:anywhere}
 .footer-grid .footer-logo{width:104px;line-height:0}
 .footer-logo img{width:104px;height:auto}
 .footer-nav{justify-content:center;padding-block:18px 20px}
}
@media(max-width:539px){
 .footer-grid{grid-template-columns:1fr;gap:25px}
 .footer-grid>div:first-child{grid-column:auto}
}

/* Modal and backdrop enter and leave together. */
@keyframes gallery-fade-in{from{opacity:0}to{opacity:1}}
@keyframes gallery-fade-out{from{opacity:1}to{opacity:0}}
#mosaic[open],#lightbox[open],#mosaic[open]::backdrop,#lightbox[open]::backdrop{animation:gallery-fade-in .3s ease both}
#mosaic.is-closing,#lightbox.is-closing,#mosaic.is-closing::backdrop,#lightbox.is-closing::backdrop{animation:gallery-fade-out .26s ease both;pointer-events:none}

/* Typography variation B — strong geometric brand voice. */
:root{--display:"Arial Black","Helvetica Neue",Arial,sans-serif}
h1,h2,h3,.philosophy .motto,.mobile-nav a{font-family:var(--display);font-weight:900;letter-spacing:-.035em;line-height:1.12}
.hero h1{font-size:clamp(44px,5.1vw,76px);letter-spacing:-.045em}
.philosophy h2{font-size:clamp(30px,3vw,42px)}
.pillar h3{font-size:23px}.family h2{font-size:32px}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){.hero-slides{inset:-34% 0 0;height:134%}}
@media(max-width:760px){.hero h1{font-size:clamp(29px,7.4vw,48px)}html[lang="de"] .hero h1{font-size:clamp(25px,6.7vw,46px)}.philosophy h2,.family h2{font-size:29px}.mobile-nav a{font-size:21px;line-height:1.8}.quality>h2{font-size:29px}.press-copy h2{font-size:29px}}

/* Stronger secondary text and requested editorial details. */
:root{--muted:#56534e}
.hero-process li+li:before{content:'/';padding-inline:9px}
.press-copy>.eyebrow{font-size:13px;letter-spacing:.065em}
#lightbox-image{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}

@keyframes legal-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes legal-exit{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}
.legal-dialog[open]{animation:legal-enter .3s ease both}
.legal-dialog[open]::backdrop{animation:gallery-fade-in .3s ease both}
.legal-dialog.is-closing{animation:legal-exit .26s ease both;pointer-events:none}
.legal-dialog.is-closing::backdrop{animation:gallery-fade-out .26s ease both;pointer-events:none}

/* Scrollable legal panels with a permanently accessible close control. */
.legal-dialog{padding:0;overflow:hidden;max-height:85dvh}.legal-header{position:relative;padding:24px 58px 18px 30px;border-bottom:1px solid #ccc7bf}.legal-header h2{font-size:26px;margin:0}.legal-content{padding:8px 30px 30px;max-height:calc(85dvh - 85px);overflow-y:auto;overscroll-behavior:contain}.legal-content h3{font-size:18px;line-height:1.35;margin:24px 0 8px}.legal-content p{font-size:15px;line-height:1.7;margin:0;overflow-wrap:anywhere}.legal-dialog .panel-close{top:12px;right:18px}@media(max-width:540px){.legal-header{padding-left:20px}.legal-content{padding-left:20px;padding-right:20px}.legal-header h2{font-size:22px}}

/* Subtle image depth and clearer progress-like markers. */
.card-photo,.press-photo{box-shadow:0 4px 14px rgba(40,39,37,.11),0 1px 3px rgba(40,39,37,.06)}
.pillar{border-top-width:2px}.pillar:before{height:4px;top:-3px;border-radius:2px}

.company-data .company-name{font-size:16px;line-height:1.4;margin:0 0 6px}.company-data p:not(.eyebrow):not(.company-name){margin:0;line-height:1.5}.company-data address{margin-top:8px}

/* Unified footer typography across every viewport. */
#contact .footer-contact,#contact .company-data{font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;line-height:1.65;color:#e5e3df}
#contact .footer-contact a,#contact .company-data p:not(.eyebrow),#contact .company-data address{font:inherit;color:inherit;margin:0;letter-spacing:0}
#contact .footer-contact .eyebrow,#contact .company-data .eyebrow{font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:500;line-height:1.4;letter-spacing:.06em;margin:0 0 14px;color:var(--gold)}
#contact .footer-contact>a,#contact .company-data .company-name{font-size:14px;font-weight:500;line-height:1.65;margin:0 0 8px}
#contact .phones{margin:0;display:flex;flex-direction:column;gap:0}
#contact .phones a{font-size:14px;font-weight:400;line-height:1.65}
#contact .company-data address{margin-top:8px;font-style:normal}
#contact .copy-tax{font-size:12px;line-height:1;padding:0 0 0 6px;vertical-align:baseline}
#contact .footer-grid{align-items:start}
@media(max-width:760px){#contact .footer-grid{gap:24px}#contact .footer-contact,#contact .company-data{text-align:center}}

#contact .footer-contact>a{font-weight:400}#contact .company-data p.company-name{margin-bottom:8px;font-weight:400}

/* Keep shrink-wrapped contact links centered below the mobile heading. */
@media(max-width:760px){
 #contact .footer-contact{display:flex;flex-direction:column;align-items:center}
 #contact .footer-contact>a{margin-inline:auto}
 #contact .footer-contact .phones{width:100%;align-items:center}
 #contact .footer-contact .phones a{margin-inline:auto;align-self:center}
}

/* Subtle depth for the gallery panel, tiles and enlarged image. */
#mosaic{box-shadow:0 8px 30px rgba(20,19,17,.16),0 2px 6px rgba(20,19,17,.08)}
.mosaic-row .mosaic-tile{box-shadow:0 2px 7px rgba(20,19,17,.12),0 1px 2px rgba(20,19,17,.06)}
#lightbox-image{box-shadow:0 6px 24px rgba(20,19,17,.18),0 2px 6px rgba(20,19,17,.08)}

/* Vector arrows: never use the platform emoji glyph on iOS. */
.rer-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0;overflow:visible}
.footer-contact a:after{content:"";width:.85em;height:.85em;top:.35em;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M5 5h14v14' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M5 5h14v14' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}

/* Keep touch zoom local to the photo viewer, with no visible close glyph. */
#lightbox{touch-action:none;overscroll-behavior:contain;outline:none}
#lightbox-image{touch-action:none;user-select:none;-webkit-user-select:none;transform-origin:center;transition:none}
#lightbox .lightbox-close,#lightbox .lightbox-close:focus-visible{display:none}

/* Project identity remains visible while browsing the mosaic. */
.mosaic-toolbar{justify-content:space-between;align-items:center;gap:20px;height:auto;min-height:72px;padding-block:12px}
#mosaic-project-name{font-family:var(--display);font-weight:900;font-size:clamp(23px,3vw,32px);line-height:1.15;letter-spacing:-.035em;color:var(--ink);margin:0;padding-bottom:9px;position:relative}
#mosaic-project-name:after{content:"";position:absolute;bottom:0;left:0;width:48px;height:2px;background:var(--gold)}
.mosaic-close{flex-shrink:0;margin-left:auto}
@media(max-width:760px){.mosaic-toolbar{min-height:64px;padding-block:10px}}

/* Fine-line close controls, matching the mobile navigation icon. */
.mosaic-close,.legal-dialog .panel-close{font-size:0!important;position:relative;width:44px;height:44px;min-width:44px;padding:0;background:transparent;border:0;color:var(--ink);flex-shrink:0}
.mosaic-close:before,.mosaic-close:after,.legal-dialog .panel-close:before,.legal-dialog .panel-close:after{content:"";position:absolute;left:10px;top:21.5px;width:24px;height:1px;background:currentColor;transform:rotate(45deg)}
.mosaic-close:after,.legal-dialog .panel-close:after{transform:rotate(-45deg)}

.legal-dialog .panel-close{position:absolute}

/* Minimal square scrollbars across all scrollable dialogs. */
#mosaic,.legal-dialog,.legal-content{scrollbar-width:thin;scrollbar-color:#181818 transparent}
#mosaic::-webkit-scrollbar,.legal-dialog::-webkit-scrollbar,.legal-content::-webkit-scrollbar{width:5px;height:5px}
#mosaic::-webkit-scrollbar-track,.legal-dialog::-webkit-scrollbar-track,.legal-content::-webkit-scrollbar-track{background:transparent;box-shadow:none;border:0}
#mosaic::-webkit-scrollbar-thumb,.legal-dialog::-webkit-scrollbar-thumb,.legal-content::-webkit-scrollbar-thumb{background:#181818;border:0;border-radius:0;box-shadow:none}
#mosaic::-webkit-scrollbar-button,.legal-dialog::-webkit-scrollbar-button,.legal-content::-webkit-scrollbar-button{display:none;width:0;height:0}
#mosaic::-webkit-scrollbar-corner,.legal-dialog::-webkit-scrollbar-corner,.legal-content::-webkit-scrollbar-corner{background:transparent}
@supports selector(::-webkit-scrollbar){#mosaic,.legal-dialog,.legal-content{scrollbar-width:auto;scrollbar-color:auto}}
#mosaic,.mosaic-toolbar,.legal-dialog,.legal-header{box-shadow:none}

#mosaic-project-name:focus,.legal-header h2:focus{outline:none}
#mosaic::backdrop,.legal-dialog::backdrop{pointer-events:auto}

