@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;1,400&family=Syne:wght@400;500;600;700&display=swap');
:root{--ink:#201d1a;--cream:#f3eee7;--stone:#d8cdc0;--wine:#431e2a;--gold:#9b8061;--serif:Italiana,Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans)}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.site-header{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:28px clamp(24px,4.5vw,75px);color:#fff}.site-header.dark{position:relative;background:var(--wine)}.wordmark{font:clamp(22px,2.2vw,34px)/.82 var(--serif);text-transform:uppercase;letter-spacing:-.025em;display:inline-block}.wordmark small{display:block;font:500 9px/1.5 var(--sans);letter-spacing:.39em;text-align:center;margin-top:7px}.menu-button{border:0;background:none;color:inherit;text-transform:uppercase;letter-spacing:.16em;font-size:12px;padding:12px 0}.menu-button:hover{opacity:.65}.menu-overlay{position:fixed;inset:0;z-index:30;background:var(--wine);color:#fff;visibility:hidden;opacity:0;transition:opacity .35s,visibility .35s;overflow:auto}.menu-open .menu-overlay{visibility:visible;opacity:1}.menu-top{display:flex;justify-content:space-between;align-items:center;padding:28px clamp(24px,4.5vw,75px)}.menu-inner{padding:4vh clamp(24px,8vw,140px) 8vh;display:grid;grid-template-columns:1fr 280px;gap:7vw}.menu-main{display:grid}.menu-main a{font:clamp(48px,6.8vw,108px)/1.02 var(--serif);border-bottom:1px solid #ffffff40;padding:8px 0;transition:padding .25s,color .25s}.menu-main a:hover{padding-left:18px;color:#d3ad9b}.menu-side{align-self:end;display:grid;gap:19px;font-size:12px;text-transform:uppercase;letter-spacing:.15em}.menu-side a:hover{text-decoration:underline}.hero{min-height:100svh;background:linear-gradient(90deg,#140d0b8c,#160e0a22 70%),url('/hero.png') center/cover no-repeat;color:#fff;display:flex;justify-content:center;align-items:center;text-align:center;padding:120px 30px 85px}.hero-inner{max-width:1050px}.overline{font-size:11px;text-transform:uppercase;letter-spacing:.22em;font-weight:600}.hero h1{font:clamp(65px,7vw,126px)/.94 var(--serif);letter-spacing:-.035em;margin:30px auto}.hero h1 em{font-weight:400}.hero p{font-size:clamp(17px,1.5vw,21px);line-height:1.45;max-width:670px;margin:0 auto 43px}.hero-actions{display:flex;justify-content:center;gap:40px;flex-wrap:wrap}.line-link{display:inline-block;padding-bottom:7px;border-bottom:1px solid currentColor;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.11em;transition:opacity .2s}.line-link:hover{opacity:.55}.section{padding:clamp(85px,10vw,155px) clamp(24px,7vw,120px)}.section-head{max-width:970px;margin-bottom:60px}.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.22em;font-weight:600;color:var(--gold);margin:0 0 25px}.section h2,.page-hero h1{font:clamp(47px,5.1vw,92px)/1.03 var(--serif);letter-spacing:-.025em;margin:0 0 25px}.lead{font-size:clamp(20px,2vw,29px);line-height:1.4;max-width:820px}.body-copy{font-size:17px;line-height:1.75;max-width:690px}.logos{background:#fff;overflow:hidden;padding:85px 0 70px;text-align:center}.logos .kicker,.logos h2,.logos .disclaimer{padding-inline:25px}.logos h2{font:clamp(38px,4vw,62px)/1 var(--serif);margin:0 0 30px}.disclaimer{font-size:12px;color:#706862;line-height:1.5}.logo-track{display:flex;gap:65px;align-items:center;width:max-content;animation:marquee 38s linear infinite;margin:60px 0 35px}.logo-track span{font:28px Georgia,serif;white-space:nowrap;letter-spacing:.1em;opacity:.63}.logo-track span:nth-child(3n){font-family:var(--sans);font-size:20px;font-weight:600;letter-spacing:.2em}@keyframes marquee{to{transform:translateX(-50%)}}.split{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.split img{width:100%;height:min(690px,70vw);object-fit:cover}.split .text{max-width:610px}.split .text h2{margin-bottom:32px}.dark-panel{background:var(--wine);color:#fff}.dark-panel .kicker{color:#d8baaa}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#c9bdb1;border:1px solid #c9bdb1}.service-card{background:var(--cream);padding:40px 32px 35px;min-height:320px;display:flex;flex-direction:column;transition:background .25s}.service-card:hover{background:#e8dfd4}.service-card .num{font-size:12px;color:#8d7567;margin-bottom:55px}.service-card h3{font:clamp(29px,2.4vw,44px)/1.1 var(--serif);margin:0 0 15px}.service-card p{font-size:15px;line-height:1.65;color:#56504b;flex:1}.service-card .line-link{align-self:flex-start}.audience{display:grid;grid-template-columns:45% 1fr;gap:9vw}.audience-list{border-top:1px solid #a89789}.audience-list article{padding:25px 0;border-bottom:1px solid #a89789}.audience-list h3{font:32px var(--serif);margin:0 0 10px}.audience-list p{font-size:16px;line-height:1.6;margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-card{display:block}.project-card figure{margin:0;aspect-ratio:4/5;overflow:hidden;background:#d8ccc1;position:relative}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.project-card:hover img{transform:scale(1.055)}.project-card .caption{display:flex;justify-content:space-between;gap:15px;padding:16px 2px}.project-card strong{font:26px var(--serif)}.project-card small{font-size:11px;text-transform:uppercase;letter-spacing:.13em}.concept-badge{position:absolute;left:18px;bottom:18px;background:#f4eee9e8;color:#27201b;padding:8px 10px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:-10px 0 38px}.filter{border:1px solid #9d8c7c;background:transparent;color:var(--ink);padding:11px 17px;border-radius:50px;font-size:12px}.filter[aria-pressed=true],.filter:hover{background:var(--ink);color:#fff}.quote-wrap{max-width:1000px;margin:auto;text-align:center}.quote-wrap blockquote{font:clamp(35px,4.2vw,72px)/1.17 var(--serif);margin:30px 0}.quote-wrap .disclaimer{color:#d8bbae}.quote-controls{display:flex;justify-content:center;gap:20px;margin-top:35px}.quote-controls button{border:1px solid #ffffff80;background:none;color:white;border-radius:50%;width:44px;height:44px}.cta{background:#d8c4b1;text-align:center}.cta h2{max-width:950px;margin:0 auto 35px}.footer{background:#211b1a;color:#f1ebe5;padding:75px clamp(24px,7vw,120px) 28px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}.footer h4{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#c9a998}.footer a:not(.wordmark){display:block;font-size:13px;line-height:2.2}.footer a:hover{text-decoration:underline}.footer-bottom{border-top:1px solid #ffffff40;margin-top:80px;padding-top:25px;display:flex;justify-content:space-between;font-size:11px;color:#b3aaa4;gap:20px}.page-hero{min-height:550px;background:var(--wine);color:#fff;padding:170px clamp(24px,7vw,120px) 95px}.page-hero .kicker{color:#d0aa9a}.page-hero h1{max-width:1050px;font-size:clamp(60px,7vw,120px)}.page-hero p{font-size:clamp(19px,1.8vw,26px);max-width:750px;line-height:1.5}.service-intro{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.service-intro h2{max-width:690px}.service-intro .body-copy{align-self:end}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:9vw}.service-detail h2{max-width:650px}.service-detail .body-copy{align-self:center}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact-form{display:grid;gap:22px}.contact-form label{font-size:12px;text-transform:uppercase;letter-spacing:.12em}.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:0;border-bottom:1px solid #90837a;background:transparent;padding:14px 0;outline:none;color:var(--ink);font-size:17px}.contact-form textarea{min-height:115px;resize:vertical}.contact-form button{border:1px solid var(--ink);background:var(--ink);color:white;padding:17px 28px;text-transform:uppercase;letter-spacing:.15em;font-size:12px;justify-self:start}.contact-form button:hover{background:transparent;color:var(--ink)}.form-result{line-height:1.6}.form-result a{display:inline-block;text-decoration:underline;margin-top:15px}.project-note{font-size:14px;color:#60564d;margin-top:25px}.inspiration-list{display:flex;flex-wrap:wrap;gap:10px}.inspiration-list span{border:1px solid #8e796c;padding:13px 17px;font-family:Georgia,serif}.hidden{display:none!important}@media(max-width:850px){.split,.audience,.service-intro,.service-detail,.contact-grid{grid-template-columns:1fr;gap:40px}.split img{height:500px}.service-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}.menu-inner{grid-template-columns:1fr}.menu-side{margin-top:30px}.page-hero{min-height:480px}}@media(max-width:560px){.site-header,.menu-top{padding:22px}.wordmark{font-size:20px}.wordmark small{font-size:7px}.hero{min-height:790px;background-position:59% center}.hero h1{font-size:clamp(62px,13vw,88px)}.hero-actions{gap:25px}.service-grid,.gallery-grid,.footer-grid{grid-template-columns:1fr}.section{padding:80px 24px}.section-head{margin-bottom:40px}.service-card{min-height:270px}.service-card .num{margin-bottom:35px}.split img{height:440px}.footer-bottom{flex-direction:column}.page-hero{padding:135px 24px 70px}.page-hero h1{font-size:60px}.logo-track{gap:35px}.logo-track span{font-size:23px}}

.logo-track .logo-item{display:inline-flex;align-items:center;gap:12px}.logo-track .logo-item img{width:28px;height:28px;object-fit:contain;filter:grayscale(1);opacity:.8}

/* Motion and interactive polish */
.menu-overlay{background:#242321;transition:opacity .45s ease,visibility .45s}.menu-main a{transition:padding .3s,color .3s,transform .3s}.menu-open .menu-main a{animation:menu-rise .5s both}.menu-open .menu-main a:nth-child(2){animation-delay:.045s}.menu-open .menu-main a:nth-child(3){animation-delay:.09s}.menu-open .menu-main a:nth-child(4){animation-delay:.135s}.menu-open .menu-main a:nth-child(5){animation-delay:.18s}.menu-open .menu-main a:nth-child(6){animation-delay:.225s}@keyframes menu-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.hero{background-position:center,center calc(50% + var(--hero-shift,0px));background-size:cover,cover}.hero-inner{animation:hero-enter 1s cubic-bezier(.2,.7,.2,1) both}@keyframes hero-enter{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
.motion-ready .reveal{opacity:0;transform:translateY(38px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}.motion-ready .project-card.reveal:nth-child(2),.motion-ready .service-card.reveal:nth-child(2){transition-delay:.08s}.motion-ready .project-card.reveal:nth-child(3),.motion-ready .service-card.reveal:nth-child(3){transition-delay:.16s}.logo-track:hover,.logo-track:focus-within{animation-play-state:paused}.project-card{transition:opacity .3s,transform .3s}.project-card:hover .caption small{transform:translateX(4px)}.project-card .caption small{transition:transform .25s}.quote-wrap blockquote{transition:opacity .25s,transform .25s}.quote-wrap blockquote.changing{opacity:0;transform:translateY(10px)}.quote-controls button:hover{background:#fff;color:#242321}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-inner,.logo-track,.menu-open .menu-main a{animation:none}.motion-ready .reveal{opacity:1;transform:none;transition:none}.project-card img,.menu-overlay,.quote-wrap blockquote{transition:none}}

/* Editorial direction refined to the reference: Playfair headings, Syne text, airy white sections. */
:root{--ink:#252525;--cream:#fff;--stone:#ededeb;--wine:#252525;--gold:#706760;--serif:'Playfair Display',Georgia,serif;--sans:Syne,Arial,sans-serif}
body{background:#fff}.wordmark{font-family:var(--sans);font-weight:700;letter-spacing:-.075em;font-size:clamp(24px,2.6vw,39px)}.wordmark small{font-family:var(--sans);font-weight:400;letter-spacing:.43em;font-size:7px;margin-top:5px}.site-header{padding-top:18px}.hero{background:linear-gradient(90deg,#28191655,#26191325),url('/hero.png') center/cover no-repeat}.hero h1{font-size:clamp(58px,5vw,76px);line-height:1.05;letter-spacing:-.05em;max-width:1060px}.hero p:not(.overline){font-size:clamp(17px,1.45vw,21px);line-height:1.24;text-transform:uppercase;max-width:700px}.hero .hero-inner{transform:translateY(35px)}.hero-actions{flex-direction:column;align-items:center;gap:24px}.hero-actions .line-link{font-size:14px}.section h2{font-size:clamp(44px,4vw,60px);line-height:1.12;letter-spacing:-.035em}.page-hero h1{font-size:clamp(58px,5.8vw,88px)}.section .lead{font-family:var(--sans);font-size:clamp(18px,1.6vw,23px);line-height:1.35}.kicker{color:#4a4643}.section{padding-top:clamp(95px,10vw,150px);padding-bottom:clamp(95px,10vw,150px)}.logos{background:#fff}.logos h2{font-size:clamp(40px,4vw,55px)}.service-grid{background:#ddd;border-color:#ddd}.service-card{background:#fff}.service-card:hover{background:#f4f2ef}.dark-panel{background:#252525}.dark-panel .kicker{color:#d5d5d5}.cta{background:#242424;color:#fff}.cta .kicker{color:#ccc}.footer{background:#242424}.footer h4{color:#ccc}.page-hero{background:#262626}.page-hero .kicker{color:#ddd}
.image-story{background:#fff;padding:50px clamp(24px,6vw,100px) 105px}.image-story-grid{height:850px;max-width:1320px;margin:auto;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:24px;position:relative}.image-story figure{margin:0;overflow:hidden}.image-story img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.image-story figure:hover img{transform:scale(1.04)}.image-story-a{grid-row:1/3;grid-column:1;max-height:790px;align-self:start}.image-story-b{grid-row:1;grid-column:2;height:420px;width:76%;justify-self:end;transform:translateY(52px)}.image-story-c{grid-row:2;grid-column:2;height:390px;width:70%;justify-self:start;transform:translateY(-25px)}.image-story-label{text-align:center;text-transform:uppercase;font-size:11px;letter-spacing:.2em;color:#666;margin:55px 0 0}.gallery-grid{grid-template-columns:1.08fr .92fr;gap:32px}.gallery-grid .project-card:nth-child(2){margin-top:115px}.gallery-grid .project-card:nth-child(3){grid-column:1 / 3;width:58%;margin:20px auto 0}.gallery-grid .project-card:nth-child(3) figure{aspect-ratio:1.35}.gallery-grid .project-card figure{aspect-ratio:4/4.6}
@media(max-width:850px){.image-story-grid{height:650px}.image-story-b{height:300px}.image-story-c{height:280px}.gallery-grid{gap:20px}.hero .hero-inner{transform:none}}
@media(max-width:560px){.hero{background-position:56% center}.hero h1{font-size:clamp(52px,11.5vw,66px)}.hero p:not(.overline){font-size:16px}.image-story{padding:30px 20px 75px}.image-story-grid{height:570px;gap:12px}.image-story-a{height:480px}.image-story-b{height:240px;width:100%;transform:translateY(30px)}.image-story-c{height:225px;width:100%;transform:translateY(0)}.gallery-grid{grid-template-columns:1fr}.gallery-grid .project-card:nth-child(2){margin-top:0}.gallery-grid .project-card:nth-child(3){grid-column:auto;width:auto;margin:0}.gallery-grid .project-card:nth-child(3) figure{aspect-ratio:4/4.6}}
@media(prefers-reduced-motion:reduce){.image-story img{transition:none}}
.image-story-b{position:relative;top:52px;transform:none}.image-story-c{position:relative;top:-25px;transform:none}@media(max-width:560px){.image-story-b{top:30px}.image-story-c{top:0}}
.image-story-a img{transform:translateY(var(--story-a,0px)) scale(1.08)}.image-story-b img{transform:translateY(var(--story-b,0px)) scale(1.1)}.image-story-c img{transform:translateY(var(--story-c,0px)) scale(1.1)}.image-story figure:hover img{filter:contrast(1.04)}@media(prefers-reduced-motion:reduce){.image-story-a img,.image-story-b img,.image-story-c img{transform:none}}

/* Scroll-linked dolly zoom: alternating gentle in and out movement. */
.image-zoom-frame{height:min(690px,70vw);overflow:hidden;display:block}.split .image-zoom-frame img{width:100%;height:100%;object-fit:cover}.image-story figure img.dolly-image,.image-zoom-frame img.dolly-image,.project-card figure img.dolly-image{transform:translateY(var(--dolly-shift,0px)) scale(var(--dolly-scale,1.08));transition:filter .35s;will-change:transform}.project-card:hover img.dolly-image{filter:contrast(1.06)}@media(max-width:850px){.image-zoom-frame{height:500px}}@media(max-width:560px){.image-zoom-frame{height:440px}}@media(prefers-reduced-motion:reduce){.image-story figure img.dolly-image,.image-zoom-frame img.dolly-image,.project-card figure img.dolly-image{transform:none;will-change:auto}}

.hero{position:relative;isolation:isolate;overflow:hidden;background:none!important}.hero::before{content:"";position:absolute;inset:-3%;z-index:-2;background:url('/hero.png') center/cover no-repeat;transform:scale(var(--hero-zoom,1.02));will-change:transform}.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#28191655,#26191325)}@media(prefers-reduced-motion:reduce){.hero::before{transform:none;will-change:auto}}

/* A more deliberate first impression, with staggered copy and a gentle image reveal. */
.hero-inner{animation:none}.hero-inner>.overline,.hero-inner>h1,.hero-inner>p:not(.overline),.hero-inner>.hero-actions{animation:hero-copy-in 1.15s cubic-bezier(.18,.7,.2,1) both}.hero-inner>.overline{animation-delay:.14s}.hero-inner>h1{animation-delay:.32s}.hero-inner>p:not(.overline){animation-delay:.55s}.hero-inner>.hero-actions{animation-delay:.78s}@keyframes hero-copy-in{from{opacity:0;transform:translateY(46px)}to{opacity:1;transform:translateY(0)}}
.hero::before{transform:translateY(var(--hero-y,0px)) scale(var(--hero-zoom,1.03));animation:hero-image-in 2s cubic-bezier(.16,.75,.2,1)}@keyframes hero-image-in{from{opacity:.45;filter:blur(7px);transform:scale(1.16)}to{opacity:1;filter:blur(0);transform:translateY(var(--hero-y,0px)) scale(var(--hero-zoom,1.03))}}
.motion-ready .reveal{transform:translateY(54px);transition-duration:1s}.motion-ready .reveal.is-visible{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.hero-inner>.overline,.hero-inner>h1,.hero-inner>p:not(.overline),.hero-inner>.hero-actions,.hero::before{animation:none}.motion-ready .reveal{transform:none;transition:none}}

/* Trigger the entrance after assets load, with a visible headline reveal. */
html.motion-capable .site-header .wordmark,html.motion-capable .site-header .menu-button,html.motion-capable .hero-inner>* ,html.motion-capable .page-hero h1,html.motion-capable .page-hero>p{opacity:0;animation:none}
html.motion-capable body.entered .site-header .wordmark{animation:header-enter .85s .12s both}html.motion-capable body.entered .site-header .menu-button{animation:header-enter .85s .35s both}html.motion-capable body.entered .hero-inner>.overline{animation:hero-copy-in 1.1s .35s both}html.motion-capable body.entered .hero-inner>h1{animation:headline-enter 1.55s .55s both}html.motion-capable body.entered .hero-inner>p:not(.overline){animation:hero-copy-in 1.1s .95s both}html.motion-capable body.entered .hero-inner>.hero-actions{animation:hero-copy-in 1.1s 1.2s both}html.motion-capable body.entered .page-hero h1{animation:headline-enter 1.3s .38s both}html.motion-capable body.entered .page-hero>p{animation:hero-copy-in 1s .75s both}
@keyframes header-enter{from{opacity:0;transform:translateY(-22px)}to{opacity:1;transform:translateY(0)}}@keyframes headline-enter{from{opacity:0;filter:blur(8px);transform:translateY(78px) scale(.96)}to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}
html.motion-capable .hero::before{animation:none}html.motion-capable body.entered .hero::before{animation:hero-image-in 2.4s cubic-bezier(.16,.75,.2,1)}
.menu-main a{font-size:clamp(38px,4vw,58px);line-height:1.16;padding:5px 0}.menu-inner{padding-top:5vh}.menu-side{font-size:12px;gap:15px}
@media(max-width:560px){.menu-main a{font-size:clamp(36px,9vw,48px)}}
@media(prefers-reduced-motion:reduce){html.motion-capable .site-header .wordmark,html.motion-capable .site-header .menu-button,html.motion-capable .hero-inner>*,html.motion-capable .page-hero h1,html.motion-capable .page-hero>p{opacity:1;animation:none}}
