@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f7f7f1;--ink:#15201d;--line:#c6ccc5;--muted:#5a655f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #df623c;outline-offset:5px}button{min-height:44px}img{width:100%;display:block;object-fit:cover}p{line-height:1.75;max-width:650px;margin:0 0 25px}h1,h2,h3{font-weight:500;letter-spacing:-.065em;line-height:1.02;margin:0}h1{font-size:clamp(65px,9vw,140px)}h2{font-size:clamp(45px,6vw,90px)}h3{font-size:clamp(25px,3vw,44px)}.eyebrow{text-transform:uppercase;font-weight:700;font-size:11px;letter-spacing:.13em;line-height:1.6}.caption{font-size:11px;line-height:1.6;display:flex;justify-content:space-between;gap:24px;margin-top:14px}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:20px}.skip:focus{top:10px}.notice{background:var(--ink);color:white;font-size:10px;display:flex;justify-content:space-between;padding:9px 3.4vw;gap:20px}.header{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:16px 3.4vw;gap:24px}.logo{display:flex;align-items:center;gap:13px}.logo strong{font-size:35px;letter-spacing:-.09em;line-height:1}.logo span{font-size:10px;letter-spacing:.09em}.desktop-nav{display:flex;align-items:center;gap:30px;font-size:12px}.desktop-nav a{padding:12px 0}.desktop-nav a[aria-current=page]{border-bottom:1px solid}.talk{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;border-bottom:1px solid;padding:14px 0;font-size:13px;min-height:46px}.menu-open{display:none;border:0;background:none;padding:8px 0}.menu-dialog{position:fixed;inset:0 0 auto auto;margin:0;width:min(570px,100%);height:100dvh;max-height:100dvh;max-width:100%;background:var(--paper);border:0;color:var(--ink);padding:30px;animation:menu-in .25s ease-out}.menu-dialog::backdrop{background:#10201bc9}.menu-dialog nav{display:flex;flex-direction:column;margin:60px 0 40px}.menu-dialog nav a{font-size:42px;letter-spacing:-.05em;padding:13px 0;border-bottom:1px solid var(--line)}.menu-close{float:right;border:0;background:none;padding:8px}.menu-dialog p{font-size:14px}.hero{position:relative;height:calc(100svh - 112px);min-height:650px;max-height:1000px;overflow:hidden;color:white}.hero>img{height:100%;object-position:50% 65%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#06160d05 30%,#09170e88 100%);pointer-events:none}.hero-copy{position:absolute;z-index:1;left:5vw;right:5vw;bottom:48px}.hero-copy h1{font-size:clamp(70px,9.8vw,155px);max-width:1000px;text-shadow:0 3px 35px #07160c25}.hero-meta{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-top:28px}.hero-meta p{font-size:14px;margin:0;line-height:1.55}.hero-meta a{font-size:12px;border-bottom:1px solid;padding:12px 0}.section{padding:105px 5vw}.section-head{display:flex;justify-content:space-between;gap:30px;margin-bottom:45px}.intro{display:grid;grid-template-columns:1fr 1.15fr;gap:10vw}.intro .eyebrow{padding-top:8px}.intro h2{margin-bottom:35px}.intro p{font-size:18px;max-width:560px}.intro-number{font-size:135px;line-height:1;letter-spacing:-.09em;margin:45px 0 15px}.work-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:85px 5vw;margin-top:60px}.work-card:nth-child(even){padding-top:150px}.work-card:nth-child(5){grid-column:1/-1;display:grid;grid-template-columns:1.18fr 1fr;gap:5vw;align-items:end}.work-card img{height:550px;transition:filter .35s}.work-card:nth-child(2) img,.work-card:nth-child(4) img{height:420px}.work-card:nth-child(5) img{height:530px}.work-card:hover img{filter:brightness(.9)}.work-card h3{margin:20px 0 12px}.work-card .arrow{font-size:28px;float:right}.work-card p{font-size:14px;margin:20px 0 0}.dark{background:var(--ink);color:var(--paper)}.dark .rule,.dark .principle{border-color:#53605a}.aperture-head{display:flex;justify-content:space-between;gap:30px;margin-bottom:35px}.aperture-head p{max-width:360px;font-size:14px;margin:0}.aperture{position:relative;height:75vh;min-height:500px;max-height:800px;overflow:hidden;background:#17221f}.aperture>img{height:100%;object-position:50% 55%}.panels{position:absolute;inset:0;display:flex;pointer-events:none}.panel{width:33.333%;height:100%;background:var(--paper);color:var(--ink);border-right:1px solid var(--line);transform:translateX(-102%);opacity:0;transform-origin:left;display:flex;justify-content:space-between;align-items:flex-end;padding:28px 25px;transition:transform 3.2s cubic-bezier(.25,.65,.1,1),opacity .3s 2.8s;overflow:hidden}.panel span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:36px;letter-spacing:-.04em}.panel small{font-size:11px}.js .aperture:not(.opened) .panel{transform:translateX(0);opacity:1;transition:none}.panel:nth-child(2){transition-delay:.16s,.16s}.panel:nth-child(3){transition-delay:.32s,.32s}.js .aperture:not(.opened) .panel{width:30%;margin-right:3.333%}.replay{border:0;color:inherit;background:none;text-decoration:underline;padding:0 0 0 20px;min-height:44px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:5vw;margin-top:70px}.principle{border-top:1px solid var(--line);padding-top:22px}.principle h3{font-size:31px;letter-spacing:-.045em;margin:45px 0 20px}.principle p{font-size:14px}.practice-band{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.practice-band img{height:600px}.practice-band h2{margin:25px 0 35px}.contact-band{padding:80px 5vw;border-top:1px solid var(--line)}.contact-band h2{font-size:clamp(55px,8.1vw,120px);max-width:1050px;margin:35px 0}.contact-bottom{display:flex;justify-content:space-between;gap:30px;align-items:center}.contact-bottom p{max-width:420px;font-size:15px}.solid{display:inline-flex;background:var(--ink);color:var(--paper);border:1px solid var(--ink);align-items:center;justify-content:space-between;gap:60px;padding:20px 25px;min-height:60px;font-size:14px}.dark .solid{background:var(--paper);color:var(--ink)}.footer{padding:50px 5vw 25px;background:var(--ink);color:var(--paper)}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:start}.footer nav{display:flex;gap:28px;font-size:12px;flex-wrap:wrap}.footer p{font-size:12px;margin:0}.footer-mark{font-size:clamp(140px,29vw,440px);line-height:.9;letter-spacing:-.09em;margin:60px 0 30px;font-weight:700}.footer-bottom{border-top:1px solid #526058;padding-top:20px;display:flex;justify-content:space-between;gap:35px;font-size:10px;line-height:1.7}.footer-bottom p{font-size:10px;max-width:660px}.page-opening{padding:65px 5vw 55px}.page-opening .eyebrow{margin-bottom:35px}.page-opening h1{max-width:1150px;margin-bottom:35px}.page-opening .lede{font-size:22px;max-width:700px}.filterbar{display:flex;gap:12px;flex-wrap:wrap;margin:35px 0 20px}.filterbar button{background:none;border:1px solid var(--line);padding:13px 22px;min-height:48px}.filterbar button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}[hidden]{display:none!important}.project-index .work-grid{margin-top:0}.project-index .work-card:nth-child(even){padding-top:80px}.project-index .work-card:nth-child(5){display:block;grid-column:auto}.case-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;border-top:1px solid var(--line);padding-top:20px;margin-top:50px}.case-meta p{font-size:13px;margin:8px 0}.case-cover{margin:0 5vw;display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:7vw}.case-cover>img{height:650px;object-fit:cover}.case-cover figcaption{padding-bottom:30px;font-size:25px;line-height:1.55;letter-spacing:-.035em}.case-cover.landscape{display:block}.case-cover.landscape>img{height:auto;max-height:850px;object-fit:contain;background:#e7e9e2}.case-cover.landscape figcaption{font-size:12px;padding:15px 0;letter-spacing:0}.case-story{display:grid;grid-template-columns:1fr 1.2fr;gap:10vw}.case-story h2{font-size:clamp(44px,5.3vw,80px)}.case-story p{font-size:18px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:start;padding:0 5vw}.gallery figure{margin:0}.gallery figure:nth-child(2){padding-top:140px}.gallery img{height:650px}.gallery figcaption{font-size:11px;margin-top:15px}.details{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.details h2{font-size:55px}.detail-row{border-top:1px solid var(--line);padding:24px 0}.detail-row h3{font-size:23px;margin-bottom:12px}.detail-row p{font-size:14px;margin:0}.next-project{display:flex;justify-content:space-between;gap:25px;align-items:center;border-top:1px solid var(--line);padding:45px 5vw}.next-project h3{margin-top:15px;font-size:45px}.next-project .next-arrow{font-size:65px}.portrait-pair{display:grid;grid-template-columns:1fr 1fr;gap:5vw}.portrait-pair img{height:650px}.timeline{margin-top:45px}.timeline-row{display:grid;grid-template-columns:130px 1fr;gap:30px;border-top:1px solid var(--line);padding:30px 0}.timeline-row strong{font-size:35px;font-weight:500;letter-spacing:-.05em}.timeline-row p{margin:0;font-size:17px}.steps{margin-top:50px}.step{display:grid;grid-template-columns:70px 1fr 1fr;gap:35px;border-top:1px solid var(--line);padding:35px 0}.step h3{font-size:34px}.step p{font-size:16px}.faq details{border-top:1px solid var(--line);padding:25px 0}.faq summary{font-size:23px;cursor:pointer;line-height:1.4}.faq details p{margin:25px 0 0;font-size:16px}.contact-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:10vw}.contact-layout h2{font-size:48px;margin-bottom:35px}.contact-layout .talk{font-size:20px}.contact-layout address{font-style:normal;font-size:20px;line-height:1.7;margin:35px 0}.contact-list{padding:0;list-style:none}.contact-list li{border-top:1px solid var(--line);padding:18px 0;font-size:16px}.source-note{padding:0 5vw 50px;font-size:11px;line-height:1.7;color:var(--muted)}@keyframes menu-in{from{transform:translateX(25%);opacity:.5}to{transform:none;opacity:1}}
@media(max-width:800px){html{scroll-padding-top:86px}.notice{padding:8px 5vw;font-size:9px}.header{padding:13px 5vw}.logo strong{font-size:30px}.logo span{font-size:8px}.desktop-nav{display:none}.menu-open{display:block}.mobile-actions{display:flex;align-items:center;gap:25px}.mobile-actions .talk{font-size:11px;min-height:44px;gap:10px}.hero{min-height:590px;height:calc(90svh - 100px);max-height:850px}.hero>img{object-position:59% 65%}.hero-copy{bottom:30px;left:6vw;right:6vw}.hero-copy h1{font-size:15vw;max-width:100%}.hero-meta{margin-top:22px;align-items:start;gap:20px}.hero-meta p{font-size:11px;max-width:190px}.hero-meta a{font-size:11px;white-space:nowrap}.section{padding:70px 6vw}.section-head{margin-bottom:30px}.intro{grid-template-columns:1fr;gap:30px}.intro h2{margin-bottom:25px}.intro p{font-size:17px}.intro-number{font-size:90px;margin-top:15px}.work-grid{grid-template-columns:1fr;gap:50px;margin-top:40px}.work-card:nth-child(even),.project-index .work-card:nth-child(even){padding-top:0}.work-card:nth-child(5){display:block;grid-column:auto}.work-card img,.work-card:nth-child(2) img,.work-card:nth-child(4) img,.work-card:nth-child(5) img{height:110vw;max-height:610px}.work-card:nth-child(2) img,.work-card:nth-child(3) img{height:85vw}.work-card h3{font-size:30px}.aperture-head{display:block}.aperture-head h2{margin-bottom:25px}.aperture-head p{font-size:14px}.aperture{height:100vw;min-height:380px;max-height:600px}.aperture>img{object-position:50% 50%}.panel{padding:20px 10px}.panel span{font-size:25px}.panel small{font-size:9px}.principles{grid-template-columns:1fr;gap:20px;margin-top:40px}.principle h3{margin:20px 0 15px}.practice-band{grid-template-columns:1fr;gap:35px}.practice-band img{height:100vw;max-height:600px}.contact-band{padding:60px 6vw}.contact-band h2{font-size:14vw}.contact-bottom{display:block}.contact-bottom p{font-size:14px}.solid{gap:40px;padding:18px 22px}.footer{padding:40px 6vw 25px}.footer-top{display:block}.footer nav{margin-top:30px;gap:20px}.footer-mark{font-size:28vw;margin:50px 0 25px}.footer-bottom{display:block}.footer-bottom p{margin-bottom:15px}.page-opening{padding:45px 6vw}.page-opening h1{font-size:14vw}.page-opening .lede{font-size:18px}.case-meta{grid-template-columns:1fr;gap:15px;margin-top:35px}.case-meta p{margin:5px 0}.case-cover{margin:0 6vw;display:block}.case-cover>img{height:115vw;max-height:650px}.case-cover figcaption{font-size:18px;padding:25px 0 0}.case-cover.landscape>img{height:auto}.case-story,.details{grid-template-columns:1fr;gap:35px}.case-story p{font-size:17px}.gallery{padding:0 6vw;grid-template-columns:1fr;gap:30px}.gallery figure:nth-child(2){padding-top:0}.gallery img{height:auto;max-height:650px;object-fit:contain}.details h2{font-size:45px}.next-project{padding:35px 6vw}.next-project h3{font-size:30px}.next-project .next-arrow{font-size:45px}.portrait-pair{grid-template-columns:1fr}.portrait-pair img{height:auto;max-height:600px}.timeline-row{grid-template-columns:80px 1fr;gap:20px}.timeline-row strong{font-size:26px}.timeline-row p{font-size:15px}.step{grid-template-columns:30px 1fr;gap:20px}.step p{grid-column:2}.step h3{font-size:30px}.faq summary{font-size:20px}.contact-layout{grid-template-columns:1fr;gap:60px}.contact-layout h2{font-size:40px}.contact-layout .talk{font-size:17px}.source-note{padding:0 6vw 40px}.caption{font-size:10px}.replay{font-size:11px}}
@media(min-width:801px){.mobile-actions{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .aperture:not(.opened) .panels{display:none}}
@media print{.header,.notice,.menu-dialog,.replay,.filterbar{display:none}.hero{height:500px;min-height:0}.section{padding:35px 20px;break-inside:avoid}.dark,.footer{background:white;color:black}.panels{display:none}.work-grid{display:block}.work-card{padding:0!important;margin:30px 0}.work-card img{height:350px!important}.footer-mark{font-size:100px}}
/* Apertures open in place so each architectural view remains aligned. */
.panel{width:33.333%;margin:0;opacity:1;transform:scaleX(0);transform-origin:left;transition:transform 3.2s cubic-bezier(.25,.65,.1,1)}
.panel:nth-child(2){transition-delay:.16s}.panel:nth-child(3){transition-delay:.32s}
.js .aperture:not(.opened) .panel{width:33.333%;margin:0;transform:scaleX(.9);opacity:1;transition:none}
@media(min-width:801px){.work-card:nth-child(5){display:block}.work-card:nth-child(5)>a{display:grid;grid-template-columns:1.18fr 1fr;gap:5vw;align-items:end}.project-index .work-card:nth-child(5)>a{display:block}}
html{scrollbar-gutter:stable}.gallery img{height:auto;max-height:760px;object-fit:contain}.menu-dialog{overflow-y:auto}

/* Keep the building silhouette clear; type occupies the sky. */
.hero>picture{display:block;height:100%}.hero>picture img{height:100%;object-position:50% 65%}.hero:after{background:linear-gradient(180deg,#08161070 0%,#08161000 48%,#08161070 100%)}.hero-copy{top:42px;bottom:35px;display:flex;flex-direction:column;align-items:flex-start}.hero-copy h1{font-size:clamp(70px,8vw,120px);margin-top:12px}.hero-meta{width:100%;margin-top:auto}@media(max-width:800px){.hero>picture img{object-position:50% 65%}.hero-copy{top:28px;bottom:25px}.hero-copy h1{font-size:13.5vw;margin-top:14px}.hero-meta{display:block}.hero-meta p{max-width:240px;margin-bottom:12px}.hero-meta a{display:inline-block}.hero:after{background:linear-gradient(180deg,#08161090 0%,#08161000 48%,#081610b0 100%)}}

.hero-meta a{font-size:14px;padding:14px 18px;border:1px solid #ffffffa0;background:#15201d50}.motion-toggle{display:none;background:none;color:inherit;border:1px solid #7a867d;margin-top:20px;padding:10px 16px;font-size:12px}.js .motion-toggle{display:block}.replay{display:none}.js .replay{display:block}.reduce-motion,.reduce-motion *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reduce-motion .panels{display:none!important}
/* Script-free navigation and portfolio remain ordinary links. */
.menu-open,.filterbar{display:none}.js .filterbar{display:flex}@media(max-width:800px){.js .menu-open{display:block}}
