@font-face{font-family:Fraunces;src:url('/assets/fonts/fraunces.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('/assets/fonts/inter.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--ink:#0E0F11;--stone:#EDE9E3;--white:#fff;--copper:#B8734A;--line:rgba(14,15,17,.22);--muted:rgba(14,15,17,.72);--ease:cubic-bezier(.23,1,.32,1);--gutter:clamp(24px,5vw,88px);--header-height:88px;--navy:var(--ink);--slate:var(--ink);--graphite:var(--ink);--mist:var(--stone)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px);scrollbar-color:var(--ink) var(--stone)}body{margin:0;background:var(--stone);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}::selection{background:var(--ink);color:var(--stone)}a{color:inherit;text-decoration:none;text-underline-offset:5px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:6px}section:focus{outline:none}img,video{display:block;max-width:100%}figure,p,h1,h2,h3,ol{margin:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.035em;line-height:1.08}h2{font-size:clamp(44px,5.6vw,84px)}h3{font-size:clamp(27px,2.6vw,40px)}p{max-width:65ch}svg{display:block}button[hidden],[hidden]{display:none!important}.wrap{max-width:1680px;margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(80px,9vw,144px)}.chapter-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}.chapter{display:flex;gap:24px;align-items:baseline;font-size:13px;font-weight:500;line-height:1.6;letter-spacing:0;grid-column:1/3;padding-top:10px;white-space:nowrap}.chapter span{font-variant-numeric:tabular-nums}.chapter-body{grid-column:3/13;min-width:0}.section-intro{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:24px;align-items:end;margin-bottom:72px}.section-intro h2{grid-column:1/7}.section-intro p{grid-column:7/11;font-size:16px;line-height:1.75}.drafting{background-image:linear-gradient(rgba(14,15,17,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(14,15,17,.04) 1px,transparent 1px);background-size:80px 80px}.skip-link{position:fixed;left:24px;top:12px;padding:12px 18px;background:var(--white);color:var(--ink);z-index:200;transform:translateY(-180%)}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Header has no transformed or animated ancestor. It stays at the viewport top. */
.header{position:fixed;inset:0 0 auto;z-index:100;background:var(--ink);color:var(--white);border-bottom:1px solid rgba(255,255,255,.2)}.header-inner{min-height:var(--header-height);display:flex;justify-content:space-between;align-items:center;gap:32px}.wordmark{display:inline-flex;flex-direction:column;line-height:1.05}.wordmark>span:first-child{font-family:Fraunces,Georgia,serif;font-size:30px;font-weight:600;letter-spacing:-.03em}.wordmark-sub{font-size:11px;letter-spacing:.27em;text-transform:uppercase;margin-top:8px}.header nav{display:flex;align-items:center;gap:clamp(20px,2.5vw,40px);font-size:13px}.header nav a{position:relative;padding-block:12px}.header nav a::after{content:'';position:absolute;bottom:6px;left:0;right:0;height:1px;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform 180ms var(--ease)}.header nav a:hover::after,.header nav a[aria-current]::after{transform:scaleX(1)}.menu-toggle{display:none}
/* One continuous architectural scene, with readable text at every frame. */
.hero{position:relative;isolation:isolate;background:var(--ink);color:var(--white);min-height:100svh;display:flex;align-items:stretch}.hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}.hero-media img,.hero-media video{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,15,17,.65),rgba(14,15,17,.2)),linear-gradient(0deg,rgba(14,15,17,.86) 0%,rgba(14,15,17,.16) 65%);z-index:1}.hero-content{width:100%;padding-top:calc(var(--header-height) + 56px);padding-bottom:28px;display:flex;flex-direction:column;justify-content:flex-end;min-height:100svh}.hero-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:clamp(58px,10vh,120px)}.hero .chapter{padding:0}.eyebrow{grid-column:5/13;font-size:13px;line-height:1.6;letter-spacing:.02em}.hero h1{font-size:clamp(64px,9.72vw,140px);line-height:.98;letter-spacing:-.04em;max-width:1200px;margin-bottom:48px}.headline-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.headline-line>span{display:block}.hero-lower{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:end}.hero-intro{grid-column:1/7;font-size:17px;line-height:1.65;max-width:640px}.hero-actions{grid-column:8/13;display:flex;flex-direction:column;align-items:flex-start;gap:18px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:56px;padding:16px 25px;border:1px solid currentColor;border-radius:0;background:var(--white);color:var(--ink);font-size:14px;font-weight:500;line-height:1.5;transition:background-color 180ms var(--ease),color 180ms var(--ease)}.button:hover{background:var(--stone)}.button:active{scale:.98}.button:disabled{opacity:.5;cursor:not-allowed}.text-link{display:inline-flex;align-items:center;gap:24px;font-size:14px;line-height:1.6;min-height:44px}.text-link:hover{text-decoration:underline}.hero-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.3);margin-top:44px;padding-top:20px;font-size:12px}.hero-bottom>span::before{content:'';display:inline-block;width:32px;height:1px;background:var(--copper);vertical-align:middle;margin-right:16px}.hero-bottom button{background:none;border:1px solid rgba(255,255,255,.7);font-size:12px;padding:8px 14px;min-height:44px}.hero-support{padding-block:30px;border-bottom:1px solid var(--line)}.hero-support p{font-size:13px;line-height:1.7;max-width:100%;text-align:center}
/* Practice: an open editorial list and a dedicated photographic preview. */
.practice-layout{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:40px;align-items:start}.practice-preview{position:sticky;top:calc(var(--header-height) + 40px);grid-column:1/5}.practice-image{aspect-ratio:3/4;overflow:hidden}.practice-image img{width:100%;height:100%;object-fit:cover}.image-note{display:block;font-size:12px;margin-top:14px;line-height:1.5}.service-list{grid-column:5/11}.service{border-top:1px solid var(--line);padding:30px 0 36px}.service:last-child{border-bottom:1px solid var(--line)}.service h3{margin-bottom:16px;font-size:clamp(28px,2.7vw,42px)}.service p{font-size:16px;line-height:1.8}.audiences{margin-top:116px;padding-top:40px;border-top:1px solid var(--copper);scroll-margin-top:120px}.audiences h2{font-size:clamp(38px,4vw,56px);max-width:700px}.audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 60px;margin-top:48px}.audience h3{font-family:Inter,Arial,sans-serif;font-size:18px;letter-spacing:-.02em;line-height:1.4;margin-bottom:12px}.audience p{font-size:16px;line-height:1.75}.drawing-divider{overflow:hidden}.drawing-divider svg{width:100%;height:100px}.trace{stroke:var(--copper);stroke-width:1;vector-effect:non-scaling-stroke}.trace.detail-line{stroke:var(--ink);opacity:.35}
/* Photographs sit on the twelve-column system at deliberately unequal sizes. */
.projects{background:var(--white)}.projects .section-intro{align-items:end}.project-disclosure{color:var(--muted);max-width:32ch}.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:80px 32px;align-items:start}.project:nth-child(1){grid-column:1/8}.project:nth-child(2){grid-column:9/13;margin-top:160px}.project:nth-child(3){grid-column:1/6}.project:nth-child(4){grid-column:7/13;margin-top:100px}.project figure{overflow:hidden;background:var(--stone);aspect-ratio:3/2}.project:nth-child(2) figure{aspect-ratio:4/5}.project:nth-child(3) figure{aspect-ratio:4/5}.project img{width:100%;height:100%;object-fit:cover}.project h3{font-family:Inter,Arial,sans-serif;font-size:18px;letter-spacing:-.025em;line-height:1.45;margin-top:20px;max-width:32ch}.projects+.drawing-divider{background:var(--white)}
/* The method reads normally; its drawing and chapter navigation remain in view. */
.method h2{max-width:800px}.method-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:72px;align-items:start}.method-drawing{position:sticky;top:calc(var(--header-height) + 56px)}.blueprint{width:100%;height:auto;color:var(--ink);overflow:visible}.plan-axes{stroke:var(--ink);stroke-width:.7;opacity:.3}.plan-draw{stroke:var(--ink)}.plan-route{stroke:var(--copper);stroke-width:1}.method-drawing .image-note{text-align:center}.method-nav{display:flex;border-top:1px solid var(--line);margin-top:32px;justify-content:space-between}.method-nav a{padding:18px 12px;font-size:13px;min-width:48px;text-align:center;border-top:1px solid transparent;margin-top:-1px;font-variant-numeric:tabular-nums}.method-nav a[aria-current]{border-top-color:var(--copper);font-weight:700}.steps{list-style:none;padding:0}.method-step{min-height:340px;display:flex;flex-direction:column;justify-content:center;padding-block:40px;scroll-margin-top:calc(var(--header-height) + 40px);border-top:1px solid var(--line)}.step-count{font-size:12px;margin-bottom:24px;font-variant-numeric:tabular-nums}.method-step h3{font-size:clamp(28px,2.8vw,42px);margin-bottom:24px}.method-step p{font-size:17px;line-height:1.8}.principles{border-top:1px solid var(--copper);margin-top:56px;padding-top:32px}.principles-heading{font-family:Inter,Arial,sans-serif;font-size:14px;letter-spacing:0}.principles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:36px}.principle h3{font-family:Inter,Arial,sans-serif;font-size:16px;letter-spacing:-.02em;line-height:1.4;margin-bottom:12px}.principle p{font-size:14px;line-height:1.7}
/* Preserve the founder's photographs, crop, copy, and manual selector. */
.founder{background:var(--white)}.founder h2{margin-bottom:54px}.founder-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:64px;align-items:start}.founder-media{position:sticky;top:calc(var(--header-height) + 40px)}.founder-photo{overflow:hidden}.founder-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 25%}.founder-copy h3{max-width:420px;font-size:30px;margin-bottom:28px}.founder-copy p{margin-bottom:24px;font-size:16px;line-height:1.8}.portrait-options{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px;padding:4px}.portrait-options button{padding:0;border:0;background:var(--stone);outline:1px solid transparent;outline-offset:3px}.portrait-options button[aria-pressed=true]{outline:2px solid var(--ink)}.portrait-options button:hover{outline-color:var(--ink)}.portrait-options button:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.portrait-options img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:center 25%}
.contact{background:var(--ink);color:var(--white)}.contact ::selection{background:var(--stone);color:var(--ink)}.contact .chapter{padding:0;margin-bottom:64px}.contact-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.contact-copy{grid-column:1/6}.contact h2{font-size:clamp(48px,6vw,88px);max-width:600px}.contact-copy p{font-size:17px;margin-top:32px;max-width:38ch}.contact-email{display:inline-flex;align-items:center;gap:16px;margin-top:40px;font-size:16px;word-break:break-word}.contact-email:hover{text-decoration:underline}form{grid-column:7/13}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:flex;flex-direction:column;gap:10px;margin-bottom:30px;min-width:0}.field label{font-size:13px}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.65);border-radius:0;background:transparent;color:var(--white);min-height:44px;padding:10px 0;font-size:16px;caret-color:var(--white)}.field textarea{resize:vertical;min-height:110px}.field select option{background:var(--ink);color:var(--white)}form .button{margin-top:8px}.footer{padding-block:64px 40px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:54px}.footer .wordmark>span:first-child{font-size:40px}.footer-links{display:flex;gap:20px;font-size:13px}.footer a:hover{text-decoration:underline}.footer>div>p{font-size:12px;line-height:1.8;max-width:100%;margin-top:10px}.legal-page{max-width:880px;padding-top:calc(var(--header-height) + 72px);padding-bottom:100px}.legal-page h1{font-size:clamp(48px,6vw,80px);margin-bottom:28px}.legal-page h2{font-size:28px;line-height:1.25;margin-top:44px;margin-bottom:16px;letter-spacing:-.02em}.legal-page p{font-size:17px;line-height:1.8;margin-bottom:20px}.legal-page a{text-decoration:underline;overflow-wrap:anywhere}
@media(min-width:900px) and (max-height:780px){.hero-content{padding-top:120px}.hero-top{margin-bottom:44px}.hero h1{font-size:clamp(64px,8.4vw,120px);margin-bottom:32px}.hero-bottom{margin-top:28px}}
@media(max-width:1199px){.chapter{gap:12px}.chapter-layout{column-gap:20px}.section-intro{grid-template-columns:1fr;gap:28px}.section-intro h2,.section-intro p{grid-column:1}.section-intro p{max-width:55ch}.hero-actions{grid-column:8/13}.practice-layout{gap:28px}.founder-grid{gap:36px}.principles-grid{grid-template-columns:1fr 1fr}.method-layout{gap:36px}}
@media(max-width:899px){:root{--gutter:24px;--header-height:76px}.header-inner{gap:20px}.wordmark>span:first-child{font-size:26px}.wordmark-sub{font-size:11px}.menu-toggle{display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent}.menu-toggle span{width:24px;height:1px;background:currentColor;transition:transform 180ms var(--ease)}.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)}.header nav{position:absolute;top:100%;left:0;right:0;background:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:0 32px;padding:18px var(--gutter) 28px;font-size:16px;border-bottom:1px solid rgba(255,255,255,.3)}.js .header nav{display:none}.js .header nav.is-open{display:grid}.header nav a{padding-block:12px}.header nav a::after{right:auto;width:32px}.hero-content{padding-top:calc(var(--header-height) + 32px);padding-bottom:24px;min-height:100svh}.hero-top{grid-template-columns:1fr;margin-bottom:48px;gap:20px}.hero .chapter,.eyebrow{grid-column:1}.eyebrow{font-size:12px;max-width:36ch}.hero h1{font-size:clamp(64px,10vw,88px);margin-bottom:32px}.hero-lower{display:block}.hero-intro{font-size:16px;max-width:55ch}.hero-actions{margin-top:28px;gap:8px}.hero-bottom{margin-top:32px;padding-top:14px}.hero-support{padding-block:24px}.hero-support p{text-align:left;font-size:12px}.chapter-layout{display:block}.chapter{padding:0;margin-bottom:36px;font-size:13px;gap:24px}.section{padding-block:72px}.section-intro{margin-bottom:40px}.section-intro h2{max-width:650px}.section-intro p{font-size:16px}.practice-layout{display:block}.practice-preview{display:none}.service{padding-block:26px}.service h3{font-size:32px}.service p{font-size:16px}.audiences{margin-top:64px;padding-top:32px}.audience-grid{grid-template-columns:1fr;gap:28px;margin-top:32px}.audience h3{font-size:18px}.drawing-divider svg{height:64px;min-width:600px;position:relative;left:50%;transform:translateX(-50%)}.project-grid{display:block}.project{margin-top:0!important;margin-bottom:44px}.project:last-child{margin-bottom:0}.project figure,.project:nth-child(2) figure,.project:nth-child(3) figure{aspect-ratio:3/2}.project h3{font-size:18px;margin-top:16px}.method-layout{display:block;margin-top:36px}.method-drawing{position:static;margin-bottom:44px}.blueprint{max-width:580px;margin-inline:auto}.method-nav{max-width:580px;margin-inline:auto;margin-top:24px}.method-step{min-height:0;padding-block:32px;scroll-margin-top:100px}.method-step h3{font-size:32px;margin-bottom:20px}.method-step p{font-size:16px}.step-count{margin-bottom:18px}.principles{margin-top:24px}.principles-grid{grid-template-columns:1fr;gap:24px;margin-top:28px}.principle p{font-size:16px}.founder h2{margin-bottom:34px}.founder-grid{grid-template-columns:1fr;gap:34px}.founder-media{position:static}.founder-photo img{aspect-ratio:4/4.8}.founder-copy h3{font-size:30px}.portrait-options{gap:10px;margin-top:14px}.contact .chapter{margin-bottom:36px}.contact-grid{display:block}.contact h2{font-size:56px}.contact-copy p{font-size:16px;margin-top:24px}.contact-email{font-size:15px;margin-top:28px}.contact form{margin-top:48px}.footer{padding-block:44px 28px}.footer-top{align-items:flex-start;flex-direction:column;gap:32px;margin-bottom:36px}.legal-page{padding-top:calc(var(--header-height) + 40px);padding-bottom:64px}.legal-page p{font-size:16px}.legal-page h2{font-size:26px}.header>.header-inner>.text-link{font-size:12px}}
@media(max-width:420px){:root{--gutter:20px}.hero h1{font-size:64px}.hero-top{margin-bottom:34px}.hero-intro{font-size:16px;line-height:1.7}.hero-bottom>span{font-size:11px}.form-row{grid-template-columns:1fr;gap:0}.hero-actions .button{font-size:14px}.contact h2{font-size:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero video{display:none}.parallax-image{transform:none!important}.image-reveal{clip-path:none!important}}

/* Responsive image sources keep the original photographic compositions. */
picture{display:block;width:100%;height:100%}.blueprint-image{width:100%;height:auto}.method-drawing>picture{height:auto}

/* Keep the full word visible on compact 320px phones. */
@media(max-width:359px){.hero h1{font-size:clamp(54px,17.5vw,63px)}}
