:root{--paper:#f5f5f7;--ink:#181818;--muted:#696969;--red:#e52620;--gutter:clamp(22px,5vw,88px);--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:6px}::selection{background:var(--red);color:white}.skip-link{position:fixed;top:-70px;left:20px;z-index:100;background:white;padding:14px}.skip-link:focus{top:12px}.nav{height:84px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;position:fixed;inset:0 0 auto;z-index:20;transition:background .4s,box-shadow .4s}.nav.scrolled{background:rgba(245,245,247,.88);backdrop-filter:blur(22px);box-shadow:0 1px 0 #1818180d}.brand{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:750;letter-spacing:-.035em;white-space:nowrap}.red-ball{display:inline-block;background:var(--red);width:25px;height:25px;flex-shrink:0;border-radius:50%}.nav nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:500}.nav nav>a{transition:color .2s}.nav nav>a:hover{color:var(--red)}.nav-contact{background:#ffffffb3;border:1px solid #18181818;border-radius:40px;padding:12px 20px}.nav-contact span{margin-left:16px}.hero-track{height:185svh;position:relative}.hero{height:100svh;min-height:620px;position:sticky;top:0;overflow:hidden;background:#deE8ef}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 34%;transform-origin:50% 64%;will-change:transform}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(232,241,248,.1) 36%,transparent 63%,rgba(0,0,0,.38))}.hero-type{position:absolute;top:19%;left:var(--gutter);right:var(--gutter);text-align:center;will-change:opacity,transform}.hero-eyebrow{font-size:12px;font-weight:600;letter-spacing:.17em;margin:0 0 22px}.hero h1{font-size:clamp(60px,10.6vw,184px);line-height:.88;letter-spacing:-.07em;font-weight:750;color:var(--red);white-space:nowrap;margin:0 0 25px}.hero-tagline{font-size:clamp(24px,3.2vw,50px);letter-spacing:-.055em;margin:0;font-weight:500}.hero-tagline em{font-style:normal}.hero-bottom{position:absolute;bottom:34px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;color:white;font-size:13px;font-weight:500;gap:20px}.hero-bottom>a{display:flex;align-items:center;gap:17px}.hero-index{font-size:12px;letter-spacing:.09em}.scroll-line{display:block;width:1px;height:33px;background:#ffffff66;position:relative;overflow:hidden}.scroll-line:after{content:'';height:14px;width:1px;background:white;position:absolute;animation:down 2.2s infinite}@keyframes down{0%{transform:translateY(-15px)}100%{transform:translateY(36px)}}.section-pad{padding:130px var(--gutter)}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.13em;margin:0 0 34px}.intro h2{font-size:clamp(34px,4.9vw,80px);line-height:1.11;letter-spacing:-.055em;font-weight:500;margin:0}.intro h2 span{color:#8d8d8d}.intro-bottom{margin-top:50px;display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.intro-bottom p{font-size:18px;line-height:1.6;color:var(--muted);margin:0}.text-link{font-size:16px;display:inline-flex;gap:40px;border-bottom:1px solid #aaa;padding-bottom:12px;transition:color .2s}.text-link:hover{color:var(--red)}.projects{padding-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:44px}.section-heading h2{font-size:clamp(30px,3.2vw,52px);font-weight:500;letter-spacing:-.05em;margin:0}.red-period{color:var(--red)}.section-heading>span{font-size:12px;letter-spacing:.1em}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px 28px}.project-card{min-width:0}.project-card.featured{grid-column:1/-1}.project-image{position:relative;overflow:hidden;background:#ddd;aspect-ratio:4/5}.featured .project-image{aspect-ratio:16/9}.project-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.project-card:hover .project-image img{transform:scale(1.035)}.project-caption{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-top:19px}.project-caption h3{font-size:21px;letter-spacing:-.025em;font-weight:500;margin:0}.project-caption>span{font-size:13px;color:var(--muted)}.contact{text-align:center;padding-top:150px;padding-bottom:150px;border-top:1px solid #ddd}.contact h2{font-size:clamp(44px,7.2vw,120px);line-height:1.04;font-weight:500;letter-spacing:-.06em;margin:0 0 45px}.contact h2 span{color:var(--red)}.contact-button{display:inline-flex;gap:45px;align-items:center;padding:20px 28px;border-radius:40px;background:var(--red);color:white;font-size:16px;transition:transform .3s,background .3s}.contact-button:hover{background:#bf1e19;transform:translateY(-3px)}.contact-note{font-size:14px;color:var(--muted);margin-top:22px}.footer{padding:34px var(--gutter);border-top:1px solid #ddd;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:13px}.footer p{font-size:16px;letter-spacing:-.03em}.footer>span{color:var(--muted)}
@media(min-aspect-ratio:16/10){.hero-image{object-position:50% 34%}.hero-type{top:16%}}
@media(max-width:760px){:root{--gutter:22px}.nav{height:72px}.nav nav{gap:12px}.nav nav>a:not(.nav-contact){display:none}.nav-contact{font-size:12px;padding:11px 14px}.nav-contact span{margin-left:7px}.brand{font-size:12px;gap:8px}.red-ball{width:22px;height:22px}.hero-track{height:160svh}.hero{min-height:550px}.hero-image{object-position:50% 60%}.hero-type{top:22%;left:18px;right:22px}.hero h1{font-size:11.4vw;margin-bottom:18px;letter-spacing:-.068em}.hero-eyebrow{font-size:12px;letter-spacing:.14em;margin-bottom:20px}.hero-tagline{font-size:28px}.hero-bottom{bottom:28px;font-size:12px}.hero-bottom>span:first-child{display:none}.hero-index{font-size:12px}.section-pad{padding:85px var(--gutter)}.intro h2{font-size:clamp(32px,6.6vw,48px)}.intro-bottom{margin-top:30px;display:block}.intro-bottom p{font-size:16px}.intro-bottom .text-link{margin-top:30px}.projects{padding-top:10px}.section-heading{margin-bottom:28px}.section-heading>span{display:none}.project-grid{grid-template-columns:1fr;gap:42px}.featured .project-image{aspect-ratio:4/5}.project-caption h3{font-size:19px}.project-caption>span{font-size:12px}.contact h2{font-size:clamp(42px,9vw,68px)}.footer{display:grid;grid-template-columns:1fr auto;gap:10px 20px;padding-top:28px;padding-bottom:28px}.footer p{grid-row:2;margin:4px 0;font-size:14px}.footer>a:nth-of-type(2){grid-column:2;grid-row:1}.footer>span{text-align:right}}
html[data-motion="reduced"]{scroll-behavior:auto}html[data-motion="reduced"] *,html[data-motion="reduced"] *:before,html[data-motion="reduced"] *:after{animation:none!important;transition:none!important}html[data-motion="reduced"] .hero-track{height:100svh}html[data-motion="reduced"] .hero-image,html[data-motion="reduced"] .hero-type{will-change:auto}
.reading-progress{position:fixed;inset:0 0 auto;height:2px;background:var(--red);z-index:30;transform:scaleX(0);transform-origin:left;pointer-events:none}.project-trigger{display:block;width:100%;padding:0;border:0;color:inherit;text-align:left;background:none;cursor:pointer}.project-image .view-project{position:absolute;bottom:22px;right:22px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--ink);display:grid;place-items:center;font-size:23px;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}.project-trigger:hover .view-project,.project-trigger:focus-visible .view-project{opacity:1;transform:translateY(0)}.project-trigger:focus-visible{outline-offset:8px}.project-caption h3{transition:color .25s}.project-trigger:hover h3{color:var(--red)}.project-card.wide{grid-column:1/-1}.wide .project-image{aspect-ratio:16/9}.project-card.offset{margin-top:120px}.gallery-end{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:75px;padding-top:28px;border-top:1px solid #ddd}.gallery-end p{font-size:14px;line-height:1.7;color:var(--muted);max-width:540px;margin:0}.gallery-end .text-link{flex-shrink:0}.project-dialog{position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;margin:0;padding:0 40px;background:#f5f5f7;color:var(--ink);overflow:auto}.project-dialog[open]{display:flex;flex-direction:column;animation:dialog-in .3s var(--ease)}.project-dialog::backdrop{background:#0009;backdrop-filter:blur(10px)}@keyframes dialog-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.dialog-top{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:84px}.icon-button{border:1px solid #18181820;background:#fff;color:var(--ink);width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:22px;display:grid;place-items:center;transition:background .25s,color .25s}.icon-button:hover{background:var(--ink);color:white}.close-dialog{font-size:30px;font-weight:300}.dialog-stage{position:relative;min-height:200px;flex:1;display:flex;align-items:center;justify-content:center;touch-action:pan-y}.dialog-stage img{display:block;width:100%;height:100%;max-height:calc(100dvh - 245px);min-height:200px;object-fit:contain}.previous-project,.next-project{position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 15px #0001}.previous-project{left:0}.next-project{right:0}.dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:160px;flex-shrink:0;padding:22px 0}.dialog-bottom h2{font-size:28px;font-weight:500;letter-spacing:-.045em;margin:8px 0}.dialog-bottom .eyebrow{font-size:12px;margin:0;color:var(--muted)}.dialog-bottom p:not(.eyebrow){font-size:14px;line-height:1.5;color:var(--muted);margin:10px 0 0;max-width:650px}.dialog-links{display:flex;flex-direction:column;align-items:flex-end;gap:20px;flex-shrink:0}.dialog-links>span{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.dialog-links .text-link{font-size:14px;gap:10px}.reveal-ready .project-card{opacity:0;transform:translateY(26px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal-ready .project-card.is-visible{opacity:1;transform:translateY(0)}
@media(hover:none){.project-image .view-project{opacity:1;transform:none;width:38px;height:38px;font-size:20px;right:16px;bottom:16px}}
@media(max-width:760px){.project-card.offset{margin-top:0}.wide .project-image{aspect-ratio:4/5}.gallery-end{display:block;margin-top:45px}.gallery-end .text-link{margin-top:25px}.project-dialog{padding:0 18px}.dialog-top{height:70px}.dialog-top .brand{font-size:11px}.dialog-stage img{max-height:calc(100dvh - 285px)}.dialog-bottom{align-items:flex-start;min-height:200px;gap:15px}.dialog-bottom h2{font-size:23px}.dialog-links{padding-top:5px}.dialog-links .text-link{font-size:12px}.dialog-bottom p:not(.eyebrow){font-size:13px}.icon-button{width:40px;height:40px}.previous-project{left:2px}.next-project{right:2px}}
html[data-motion="reduced"] .reveal-ready .project-card{opacity:1;transform:none}
.project-image{display:block;border-radius:18px}.featured .project-image,.wide .project-image{border-radius:22px}.hero-bottom .hero-index{letter-spacing:.07em}.project-card .project-name{font-size:21px;letter-spacing:-.025em;font-weight:500;color:var(--ink);transition:color .25s}.project-trigger:hover .project-name{color:var(--red)}
@media(max-width:760px){.project-image,.featured .project-image,.wide .project-image{border-radius:12px}.project-card .project-name{font-size:19px}.hero-index{display:none}.hero-bottom{justify-content:center}.nav-contact{font-size:14px}.intro-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.intro-bottom .text-link{margin-top:0;gap:15px;flex-shrink:0}.intro-bottom p{font-size:14px}}
@media(max-width:360px){.intro-bottom{display:block}.intro-bottom .text-link{margin-top:25px}.nav .brand>span:last-child{display:none}}

/* Spatial rhythm and motion */
.hero{will-change:clip-path}.hero-image{object-position:50% 30%}.hero-type{top:clamp(94px,10.5svh,126px)}.hero h1{margin-bottom:19px}.hero-tagline{font-size:clamp(24px,3vw,46px)}.nav-contact span{display:inline-block;transition:transform .35s var(--ease)}.nav-contact:hover span{transform:translate(3px,-3px)}
.intro{padding-top:135px;padding-bottom:150px}.intro .magic-title{font-size:clamp(110px,25vw,390px);line-height:.9;letter-spacing:-.085em;font-weight:500;margin:0;overflow:hidden;padding-bottom:.07em}.magic-word,.magic-title .red-period{display:inline-block}.intro .magic-title .magic-word{color:var(--ink)}.intro .magic-title .red-period{color:var(--red)}.intro-bottom{margin-top:45px;align-items:center}.intro-bottom p{font-size:16px}.text-link span{display:inline-block;transition:transform .35s var(--ease)}.text-link:hover span{transform:translate(3px,-3px)}
.projects{padding-top:0;padding-bottom:90px}.project-grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:28px;row-gap:clamp(95px,12vw,190px);align-items:start}.project-card{position:relative;grid-column:span 6}.project-card:nth-child(2){grid-column:1/6}.project-card:nth-child(3){grid-column:8/13;margin-top:16vw}.project-card:nth-child(5){grid-column:2/6;margin-top:7vw}.project-card:nth-child(6){grid-column:7/13}.project-card:nth-child(7){grid-column:1/8}.project-card:nth-child(8){grid-column:9/13;margin-top:17vw}.project-card:nth-child(10){grid-column:1/7}.project-card:nth-child(11){grid-column:8/13;margin-top:13vw}.project-card:nth-child(13){grid-column:4/10}.project-image{border-radius:6px;isolation:isolate}.project-image img{transform:translate3d(0,var(--parallax,0px),0) scale(1.085);transition:scale 1.3s var(--ease);will-change:transform}.project-card:hover .project-image img{transform:translate3d(0,var(--parallax,0px),0) scale(1.085);scale:1.025}.project-image .view-project{transform:translateY(10px) scale(.85);transition:opacity .4s,transform .5s var(--ease)}.project-trigger:hover .view-project,.project-trigger:focus-visible .view-project{transform:translateY(0) scale(1)}
.project-card.cinematic{grid-column:1/-1;width:calc(100% + var(--gutter) + var(--gutter));margin-left:calc(-1 * var(--gutter))}.cinematic .project-image{height:min(88svh,1040px);min-height:520px;aspect-ratio:auto;border-radius:0}.cinematic .project-image:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0008);pointer-events:none}.cinematic .project-caption{position:absolute;bottom:40px;left:var(--gutter);right:var(--gutter);color:white;pointer-events:none;align-items:end}.cinematic .project-name{font-size:clamp(34px,4.8vw,76px);letter-spacing:-.05em;color:white}.cinematic .project-caption>span:last-child{color:#ffffffb3;margin-bottom:8px}.cinematic .project-trigger:hover .project-name{color:white}.cinematic .project-image .view-project{top:30px;right:var(--gutter);bottom:auto}.gallery-end{border:0;margin-top:80px;padding-top:0}.gallery-end p{font-size:13px}
.contact{padding-top:150px;padding-bottom:160px}.contact h2{font-size:clamp(76px,15vw,230px);line-height:1;letter-spacing:-.075em;font-weight:500;margin:0 0 54px}.contact-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.contact-button{justify-content:space-between;gap:34px;border-radius:999px;padding:10px 12px 10px 26px;min-height:64px;background:var(--ink);border:1px solid var(--ink);font-size:16px;transition:background .35s,border-color .35s,transform .4s var(--ease)}.button-arrow{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#ffffff1c;font-size:21px;transition:transform .4s var(--ease),background .35s}.contact-button:hover{background:var(--red);border-color:var(--red);transform:translateY(-3px)}.contact-button:hover .button-arrow{transform:rotate(45deg);background:#ffffff2c}.contact-instagram{color:var(--ink);background:transparent;border-color:#d4d4d7;padding-left:24px;gap:32px}.contact-instagram .button-arrow{background:#e8e8eb}.contact-instagram:hover{color:var(--ink);background:white;border-color:#bbb}.contact-instagram:hover .button-arrow{background:#efeff1}
.project-dialog[open]{animation:dialog-open .55s var(--ease)}@keyframes dialog-open{from{opacity:0;clip-path:inset(8% 8% round 30px);transform:translateY(20px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}.dialog-stage img{transition:opacity .25s}.dialog-stage.is-loading img{opacity:.25}
.reveal-ready .project-card{transform:translateY(46px);transition:opacity 1.2s var(--ease),transform 1.5s var(--ease)}.reveal-ready .project-image{clip-path:inset(7% 4% 0 round 16px);transition:clip-path 1.5s var(--ease)}.reveal-ready .project-card.is-visible{transform:translateY(0)}.reveal-ready .is-visible .project-image{clip-path:inset(0 round 6px)}.reveal-ready .cinematic.is-visible .project-image{clip-path:inset(0 round 0px)}.reveal-ready .magic-word{transform:translateY(110%) rotate(4deg);transition:transform 1.3s var(--ease)}.reveal-ready .magic-title .red-period{opacity:0;transform:translateY(100%);transition:transform 1.15s .1s var(--ease),opacity .8s .15s}.reveal-ready .intro.is-visible .magic-word,.reveal-ready .intro.is-visible .red-period{transform:translateY(0);opacity:1}
@media(hover:none){.project-card:hover .project-image img{scale:1}.project-image .view-project{transform:none}}
@media(max-width:760px){.hero-image{object-position:50% 60%}.hero-type{top:clamp(98px,13.5svh,130px)}.hero-tagline{font-size:28px}.intro{padding-top:90px;padding-bottom:100px}.intro .magic-title{font-size:29vw}.intro-bottom{margin-top:25px;align-items:flex-start}.intro-bottom p{font-size:14px;max-width:170px}.intro-bottom .text-link{font-size:14px;gap:14px}.projects{padding-top:0;padding-bottom:60px}.project-grid{grid-template-columns:1fr;gap:70px}.project-grid>.project-card{grid-column:1/-1;margin-top:0;width:89%;margin-left:0}.project-grid>.project-card:nth-child(2n){justify-self:end}.project-grid>.project-card.cinematic{width:calc(100% + var(--gutter) + var(--gutter));margin-left:calc(-1 * var(--gutter));justify-self:start}.cinematic .project-image{height:74svh;min-height:450px}.project-image{border-radius:5px}.project-caption{padding-top:15px}.cinematic .project-caption{bottom:26px}.cinematic .project-name{font-size:36px}.gallery-end{margin-top:55px}.contact{padding-top:100px;padding-bottom:100px}.contact h2{font-size:19vw;margin-bottom:35px}.contact-actions{gap:10px}.contact-button{font-size:14px;min-height:54px;padding:8px 9px 8px 18px;gap:20px}.button-arrow{width:34px;height:34px;font-size:19px}.contact-instagram{gap:16px}}
@media(max-width:390px){.nav .brand>span:last-child{display:none}.contact-actions{flex-direction:column;align-items:center}.contact-button{width:230px}.intro-bottom{display:block}.intro-bottom .text-link{margin-top:20px}}
html[data-motion="reduced"] .hero{will-change:auto}html[data-motion="reduced"] .reveal-ready .project-card,html[data-motion="reduced"] .reveal-ready .magic-word,html[data-motion="reduced"] .reveal-ready .magic-title .red-period{opacity:1;transform:none}html[data-motion="reduced"] .reveal-ready .project-image{clip-path:none}html[data-motion="reduced"] .project-image img,html[data-motion="reduced"] .project-card:hover .project-image img{will-change:auto;transform:none;scale:1}
@media(max-height:600px) and (min-width:761px){.hero{min-height:0}.hero-image{object-position:50% 15%}.hero-type{top:90px}.hero h1{font-size:min(10.6vw,150px)}}
@media(max-width:760px) and (orientation:landscape){.hero{min-height:0}.hero-image{object-position:50% 0%}.hero-type{top:94px}}
@media(max-width:480px){.contact-actions{flex-direction:column;align-items:center}.contact-button{width:250px}}

.motion-toggle{color:white;background:#16161655;border:1px solid #ffffff88;border-radius:30px;padding:10px 16px;font-size:14px;line-height:1.2;white-space:nowrap;cursor:pointer}.motion-toggle:hover{background:#16161699}.motion-toggle:focus-visible{outline-color:white}
/* Keep the opening typography in the sky above the new residence. */
.hero-image{object-position:50% 8%}
.hero-type{top:clamp(92px,9svh,108px)}
.hero h1{font-size:clamp(48px,min(10.6vw,18svh),184px);margin-bottom:14px}
.hero-tagline{font-size:clamp(24px,min(3vw,5svh),46px);line-height:1.1}
@media(max-width:760px){
  .hero-image{object-position:50% 0%}
  .hero-type{top:clamp(78px,10.5svh,96px)}
  .hero h1{font-size:clamp(32px,min(10.6vw,18svh),80px);margin-bottom:10px}
  .hero-tagline{font-size:clamp(20px,5.8vw,26px)}
}
@media(max-height:600px) and (orientation:landscape){.hero-image{object-position:50% min(0px,calc(72svh - 38vw))}}
@media(max-width:760px) and (orientation:landscape){.hero-type{top:78px}.hero-tagline{font-size:20px}}
@media(prefers-reduced-motion:reduce){html:not([data-motion]){scroll-behavior:auto}html:not([data-motion]) *,html:not([data-motion]) *:before,html:not([data-motion]) *:after{animation:none!important;transition:none!important}}
