@font-face{font-family:Manrope;src:url('assets/manrope-400.ttf') format('truetype');font-weight:400;font-display:block}
@font-face{font-family:Manrope;src:url('assets/manrope-500.ttf') format('truetype');font-weight:500;font-display:block}
@font-face{font-family:Manrope;src:url('assets/manrope-600.ttf') format('truetype');font-weight:600;font-display:block}
@font-face{font-family:Manrope;src:url('assets/manrope-700.ttf') format('truetype');font-weight:700;font-display:block}
@font-face{font-family:Manrope;src:url('assets/manrope-800.ttf') format('truetype');font-weight:800;font-display:block}
:root{--ink:#07161b;--paper:#fff;--muted:#737b7e;--line:#d4d8d9;--gutter:clamp(22px,4vw,84px);--ease:cubic-bezier(.22,1,.36,1);--hero-h:100svh}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}body.modal-open,body.menu-open{overflow:hidden}h1,h2,h3,p,figure{margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;max-width:100%}::selection{background:var(--ink);color:white}:focus-visible{outline:2px solid #bd783c;outline-offset:7px}.wrap{padding-inline:var(--gutter)}.section-pad{padding-block:84px}.section-label{font-size:16px;color:var(--muted)}.eyebrow{font-size:14px;text-transform:uppercase;color:var(--muted)}.rule-top{border-top:1px solid var(--line)}.skip-link{position:fixed;left:20px;top:-100px;padding:15px;background:white;color:var(--ink);z-index:120}.skip-link:focus{top:20px}.wordmark{font-weight:800;line-height:.85;letter-spacing:-.065em;white-space:nowrap}.wordmark sup{font-size:.16em;letter-spacing:-.02em;vertical-align:top;display:inline-block;transform:translate(.15em,.1em)}
.hero{position:relative;background:var(--ink);color:#fff;height:var(--hero-h)}.hero-stage{position:relative;top:auto;height:var(--hero-h);min-height:0;overflow:hidden;isolation:isolate}.hero-media{position:absolute;inset:0;z-index:-1;background:var(--ink)}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;max-width:none}.site-header{height:112px;display:flex;align-items:center;justify-content:space-between;position:absolute;inset:0 0 auto;z-index:30;gap:30px}.nav-wordmark{font-size:51px;letter-spacing:-.075em}.desktop-nav{display:flex;align-items:center;gap:clamp(24px,3.6vw,65px);margin-left:auto;margin-right:32px}.desktop-nav a{font-size:12px;text-transform:uppercase}.rolling-link{display:inline-block;overflow:hidden;line-height:1.35}.rolling-link>span,.button-label{position:relative;display:inline-block;transition:transform .5s var(--ease)}.rolling-link>span:after,.button-label:after{content:attr(data-label);position:absolute;top:150%;left:0;white-space:nowrap}.rolling-link:hover>span,.rolling-link:focus-visible>span,.button:hover .button-label,.button:focus-visible .button-label{transform:translateY(-150%)}.button{position:relative;display:inline-flex;justify-content:space-between;align-items:center;gap:28px;min-height:48px;padding:15px 20px;font-size:12px;text-transform:uppercase;font-weight:700;line-height:1.15;background:var(--ink);color:white;border:1px solid var(--ink);overflow:hidden;transition:background .3s,color .3s}.button-label{white-space:nowrap}.button .arrow{font-size:19px;line-height:12px;transition:transform .4s var(--ease)}.button:hover .arrow{transform:translate(2px,-2px)}.button-white{background:white;color:var(--ink);border-color:white}.button-outline{background:transparent;border-color:#586165;color:white}.button-outline:hover{background:#fff;color:var(--ink);border-color:#fff}.hero-copy{position:absolute;left:var(--gutter);bottom:85px;width:47%;will-change:transform}.hero-heading{font-size:clamp(24px,2.5vw,48px);font-weight:800;line-height:1.08;letter-spacing:-.052em;margin-bottom:28px}.line-mask{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}.line-mask>span{display:block;animation:line-enter 1.15s var(--ease) both;animation-delay:.12s}.line-mask:nth-child(2)>span{animation-delay:.22s}.hero-signature{position:absolute;right:var(--gutter);bottom:86px;font-size:clamp(145px,17vw,340px);will-change:transform}.section-intro{display:flex;justify-content:space-between;gap:70px;align-items:flex-start}.statement{font-size:clamp(28px,3vw,54px);line-height:1.13;font-weight:700;letter-spacing:-.055em;max-width:980px;text-transform:uppercase}.section-intro .section-label{flex-shrink:0;padding-top:7px}.about-details{display:grid;grid-template-columns:5fr 7fr;gap:40px;margin-top:55px;padding-top:35px}.body-copy{font-size:17px;line-height:1.55;letter-spacing:-.025em}.body-copy p+p{margin-top:18px}.body-copy strong{font-weight:700}.menu-toggle{display:none;width:42px;height:42px;padding:8px 0;border:0;background:transparent;z-index:110}.menu-toggle span{display:block;background:currentColor;height:1px;width:30px;margin:8px auto;transition:transform .3s}.menu-open .menu-toggle span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.mobile-menu{visibility:hidden;position:fixed;inset:0;z-index:20;background:var(--ink);color:white;padding:140px var(--gutter) 36px;display:flex;flex-direction:column;gap:15px;clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease),visibility .6s}.mobile-menu a{font-size:clamp(38px,8vw,75px);letter-spacing:-.05em;line-height:1.35}.mobile-menu small{display:inline-block;vertical-align:middle;width:38px;font-size:12px;letter-spacing:0;color:#aab3b6}.mobile-menu p{margin-top:auto;font-size:14px;color:#9ca8ad}.menu-open .mobile-menu{visibility:visible;clip-path:inset(0)}.menu-open .site-header{position:fixed!important;transform:none!important}.js [data-reveal]{transition:opacity .9s var(--ease),transform 1.1s var(--ease),filter .9s var(--ease)}.js [data-reveal]:not(.is-visible){opacity:0;transform:translateY(36px);filter:blur(3px)}@keyframes line-enter{from{transform:translateY(115%)}to{transform:translateY(0)}}
@media(min-width:1900px){.hero-copy{width:46%}}
@media(max-width:1000px){.desktop-nav{gap:22px;margin-right:0}.site-header{gap:22px}.nav-wordmark{font-size:42px}.hero-heading{font-size:27px}.hero-signature{font-size:18vw}.hero-copy{width:49%;bottom:70px}.hero-signature{bottom:70px}.statement{font-size:34px}.about-details{grid-template-columns:4fr 8fr}.section-pad{padding-block:65px}}
@media(max-width:700px){:root{--gutter:22px;--hero-h:92svh}.site-header{height:90px}.desktop-nav,.header-contact{display:none}.menu-toggle{display:block}.hero-stage{min-height:650px}.hero-copy{bottom:150px;width:calc(100% - 44px);max-width:440px;z-index:2}.hero-heading{font-size:clamp(20px,5vw,30px);letter-spacing:-.045em;max-width:95%;text-shadow:0 2px 22px #07161b}.hero-signature{bottom:36px;font-size:25vw;right:22px}.hero-media img{object-position:50% 50%}.hero-media:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(7,22,27,.7))}.hero-copy .button{min-height:44px;font-size:10px}.statement{font-size:28px}.section-intro{gap:25px;flex-direction:column-reverse}.section-label{font-size:14px}.section-intro .section-label{padding:0}.section-pad{padding-block:55px}.about-details{grid-template-columns:1fr;gap:28px;margin-top:32px;padding-top:27px}.body-copy{font-size:16px}.eyebrow{font-size:12px}}
.button-text{display:inline-block;overflow:hidden;line-height:1.2;height:1.2em}.button-label{display:block}.button-label:after{top:150%}.section-heading{font-size:clamp(26px,2.8vw,46px);line-height:1.18;letter-spacing:-.055em;font-weight:600}.display-title{font-size:clamp(38px,9vw,190px);font-weight:800;letter-spacing:-.065em;line-height:1.06;white-space:nowrap;padding-bottom:.17em}.work-content{padding-top:48px;padding-bottom:110px}.work-intro{font-size:clamp(28px,3vw,46px);line-height:1.14;letter-spacing:-.055em;text-transform:uppercase;font-weight:700}.work-grid{display:grid;grid-template-columns:4fr 8fr;gap:48px;margin-top:66px;align-items:start}.work-aside{max-width:290px;position:sticky;top:60px;padding-top:2px}.work-aside p,.services-note{font-size:clamp(17px,1.5vw,24px);line-height:1.24;letter-spacing:-.045em;color:var(--muted)}.text-link{display:inline-block;margin-top:68px;font-size:clamp(23px,2vw,32px);font-weight:600;letter-spacing:-.055em}.text-link span{display:inline-block;transition:transform .4s var(--ease)}.text-link:hover span{transform:translate(5px,-5px)}.project-card{display:block;position:relative;min-width:0;width:100%;border:0;padding:0;background:transparent;text-align:left;overflow:hidden}.project-image{display:block;aspect-ratio:1.54;overflow:hidden;background:#d5d6d4;position:relative}.project-image img{width:100%;height:100%;object-fit:cover;transform:none;transition:scale 1s var(--ease);will-change:transform}.project-card:hover .project-image img{scale:1.035}.project-hover-label{position:absolute;right:25px;bottom:90px;background:white;color:var(--ink);padding:14px 18px;font-size:14px;opacity:0;transform:translateY(12px);transition:opacity .4s,transform .5s var(--ease)}.project-hover-label span{margin-left:22px}.project-card:hover .project-hover-label,.project-card:focus-visible .project-hover-label{opacity:1;transform:none}.project-caption{display:flex;justify-content:space-between;align-items:center;padding-top:17px;font-size:21px;font-weight:600;letter-spacing:-.03em}.project-caption small{display:block;font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0;margin-top:4px}.section-bar{display:flex;justify-content:space-between;align-items:center;padding-block:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-bar h2{font-size:clamp(32px,4.5vw,68px);font-weight:700;letter-spacing:-.065em;line-height:1}.section-toggle{background:none;border:0;width:48px;height:48px;display:grid;place-items:center}.section-toggle span{height:12px;width:12px;border-top:2px solid;border-left:2px solid;transform:translateY(3px) rotate(45deg);transition:transform .4s var(--ease)}.section-toggle[aria-expanded=false] span{transform:translateY(-3px) rotate(225deg)}.collapsible{display:grid;grid-template-rows:1fr;transition:grid-template-rows .6s var(--ease)}.collapsible.is-collapsed{grid-template-rows:0fr}.collapsible-inner{min-height:0;overflow:hidden}.services-grid{display:grid;grid-template-columns:4fr 8fr;gap:48px}.services-main{grid-column:2;grid-row:1 / 3}.services-main>.section-heading{max-width:820px}.service-list{margin-top:45px}.service-row{display:flex;gap:16px;padding-block:22px;border-top:1px solid transparent;transition:border-color .3s,transform .5s var(--ease)}.service-row:hover{border-color:var(--line);transform:translateX(5px)}.service-number{font-size:14px;min-width:25px;padding-top:10px}.service-row h4{font-size:clamp(29px,3.8vw,62px);letter-spacing:-.06em;line-height:1.07;margin:0;font-weight:700}.service-row p{margin-top:12px;font-size:16px;line-height:1.45;color:var(--muted);letter-spacing:-.035em}.services-note{align-self:end;max-width:280px;grid-column:1;grid-row:2}.process{background:var(--ink);color:white;padding-block:65px 54px}.two-column{display:grid;grid-template-columns:4fr 8fr;gap:48px}.process .section-label,.process .eyebrow{color:#a7b2b6}.process-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;list-style:none;margin:60px 0 0;padding:0}.process-steps li{border-top:1px solid #697477;padding-top:21px}.process-steps .eyebrow{font-size:12px}.process-steps h3{font-size:23px;font-weight:600;letter-spacing:-.045em;margin-top:33px;margin-bottom:15px}.process-steps p{font-size:17px;line-height:1.45;color:#b7c0c4;max-width:330px;letter-spacing:-.025em}.process-footnote{color:#869397;font-size:11px;margin-top:60px;line-height:1.5}.faq{display:grid;grid-template-columns:4fr 8fr;gap:48px;padding-block:90px}.faq-list{margin-top:34px}.faq details{border-top:1px solid var(--line);padding:21px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{list-style:none;font-size:23px;font-weight:600;letter-spacing:-.04em;display:flex;justify-content:space-between;gap:20px;cursor:pointer}.faq summary::-webkit-details-marker{display:none}.faq summary span{flex:none;width:18px;height:18px;position:relative;margin-top:7px}.faq summary span:before,.faq summary span:after{content:'';position:absolute;left:0;top:8px;height:1px;width:18px;background:var(--ink)}.faq summary span:after{transform:rotate(90deg);transition:transform .3s}.faq details[open] summary span:after{transform:rotate(0)}.faq details p{font-size:17px;color:var(--muted);line-height:1.5;max-width:680px;margin-top:12px;padding-right:35px}.insights-intro{display:grid;grid-template-columns:7fr 5fr;gap:70px;align-items:start;margin-bottom:58px}.insights-intro>div{font-size:16px;line-height:1.5;max-width:390px;margin-left:auto}.underlined{display:inline-block;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.insights-intro .underlined{margin-top:18px;font-size:14px}.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px;scroll-margin-top:45px}.insight-card{min-width:0}.insight-card>button{text-align:left;display:block;width:100%;padding:0;border:0;background:none}.insight-cover{display:block;aspect-ratio:1.35;position:relative;padding:24px;overflow:hidden;transition:filter .5s,transform .65s var(--ease)}.cover-one{background:#dbe3e5}.cover-two{background:var(--ink);color:#fff}.cover-three{background:#c59564}.cover-category{font-size:11px;letter-spacing:.02em}.cover-number{position:absolute;right:24px;top:16px;font-size:52px;font-weight:400;line-height:1;letter-spacing:-.07em;transition:transform .7s var(--ease)}.cover-title{font-size:clamp(27px,3vw,49px);line-height:1.02;letter-spacing:-.065em;font-weight:700;position:absolute;left:24px;bottom:26px;transition:transform .7s var(--ease)}.insight-card button:hover .cover-title{transform:translateY(-8px)}.insight-card button:hover .cover-number{transform:translateY(6px)}.insight-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:17px;margin-bottom:15px}.insight-card h4{font-size:22px;line-height:1.2;font-weight:600;letter-spacing:-.045em;margin:0;min-height:55px}.insight-card p{font-size:15px;line-height:1.45;color:var(--muted);margin-top:15px;min-height:64px}.insight-card .underlined{font-size:14px;margin-top:19px}.clients .section-heading{max-width:850px}.client-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:55px}.client-item{border-top:1px solid var(--line);padding-top:9px}.client-item>span{font-size:11px;color:#969e9f;display:block;margin-bottom:6px}.client-item img{width:100%;height:auto;transition:transform .5s var(--ease);aspect-ratio:840/225;object-fit:contain}.client-item:hover img{transform:translateY(-4px)}.testimonials{background:#dce4e5;padding:32px var(--gutter)}.testimonial-track{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.testimonial-card{background:#fff;border:0;text-align:left;position:relative;padding:25px;display:flex;flex-direction:column;transition:transform .5s var(--ease);min-width:0}.testimonial-card:hover{transform:translateY(-5px)}.stars{font-size:13px;letter-spacing:2px;margin-bottom:22px}.testimonial-card q{font-size:17px;line-height:1.5;letter-spacing:-.035em;quotes:'“' '”';display:block}.testimonial-person{margin-top:auto;padding-top:25px;display:flex;align-items:center;gap:13px;font-size:13px;font-weight:600}.testimonial-person small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:3px}.avatar{width:44px;height:48px;display:block;position:relative;overflow:hidden;flex:none}.avatar img{height:120%;width:254%;max-width:none;position:absolute;right:-9%;top:-10%;object-fit:fill}.feedback-open{position:absolute;right:20px;bottom:30px;font-size:17px}.contact-banner{display:flex;justify-content:space-between;align-items:center;gap:50px;padding-block:68px}.contact-banner h2{font-size:clamp(28px,3.2vw,51px);line-height:1.17;letter-spacing:-.055em;font-weight:600}.contact-banner .button{min-width:220px}.footer{background:var(--ink);color:#fff;padding-block:45px 28px}.footer-top{display:grid;grid-template-columns:2.7fr 5fr 3fr auto;gap:34px;align-items:start}.footer-label{font-size:10px;color:#a1abae;margin-bottom:12px}.footer-email,.social-links{font-size:11px}.footer-email{text-decoration:none}.social-links{display:flex;gap:15px;text-transform:uppercase;flex-wrap:wrap}.footer-worldwide{font-size:11px;margin-top:17px}.back-top{height:35px;width:35px;background:#3b464a;display:grid;place-items:center;font-size:24px;transition:background .3s}.back-top:hover{background:#647175}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:50px;margin-top:57px}.footer-main>a:first-child{font-size:clamp(29px,3vw,49px);line-height:1.2;letter-spacing:-.05em}.footer-main>a:first-child span{white-space:nowrap}.footer-main .wordmark{font-size:70px}.footer-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;color:#909ca0;font-size:10px;line-height:1.8;margin-top:35px}.footer-bottom>div{text-align:right}.content-dialog{border:0;padding:0;background:#fff;color:var(--ink);width:min(1000px,calc(100% - 40px));max-height:90svh;overflow:auto}.content-dialog::backdrop{background:#07161bcc;backdrop-filter:blur(9px)}.dialog-close{position:sticky;top:0;z-index:1;background:white;border:0;border-bottom:1px solid var(--line);width:100%;padding:20px 32px;display:flex;justify-content:space-between;text-align:left;font-size:13px;text-transform:uppercase;align-items:center}.dialog-close span{font-size:30px;line-height:1}.dialog-body{padding:42px clamp(25px,5vw,70px) 60px}.dialog-body h2{font-size:clamp(30px,4vw,58px);line-height:1.08;letter-spacing:-.06em;font-weight:700;margin:18px 0 28px}.dialog-body h3{font-size:23px;letter-spacing:-.035em;margin:28px 0 10px}.dialog-body p{font-size:18px;line-height:1.7;letter-spacing:-.025em;color:#465155;margin:15px 0}.dialog-body .eyebrow{font-size:12px;color:var(--muted)}.dialog-body img{margin:25px 0;max-height:65vh;object-fit:contain;width:100%}.dialog-body .review-quote{font-size:25px;line-height:1.5}.dialog-body .review-attribution{font-size:16px;font-weight:600}.dialog-body .project-credit{font-size:14px}.dialog-body .button{margin-top:20px}.dialog-body .review-picture{position:relative;width:110px;height:125px;overflow:hidden;margin-bottom:30px}.dialog-body .review-picture img{margin:0;height:120%;width:254%;max-width:none;position:absolute;right:-9%;top:-10%;object-fit:fill}.text-reveal-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.text-reveal-line>span{display:block;transition:transform 1.1s var(--ease);transition-delay:calc(var(--line-index)*70ms)}.js [data-reveal].split-ready:not(.is-visible){transform:none;filter:none;opacity:1}.js [data-reveal].split-ready:not(.is-visible) .text-reveal-line>span{transform:translateY(115%)}
@media(min-width:1700px){.body-copy{font-size:20px}.work-content{padding-bottom:130px}.section-pad{padding-block:100px}.process{padding-block:85px 65px}}
@media(max-width:1000px){.work-grid,.services-grid,.two-column,.faq{gap:32px}.service-row h4{font-size:34px}.service-row p{font-size:14px}.insight-cover{padding:18px}.cover-title{left:18px;bottom:20px;font-size:28px}.cover-number{font-size:40px;right:18px}.insight-card h4{font-size:19px}.process-steps{gap:30px}.process-steps h3{font-size:19px}.process-steps p{font-size:16px}.testimonial-track{grid-template-columns:repeat(2,1fr)}.testimonial-card q{font-size:19px}.footer-top{grid-template-columns:1fr 2fr auto}.footer-worldwide{display:none}.footer-email{font-size:10px}.footer-main .wordmark{font-size:60px}}
@media(max-width:700px){.display-title{font-size:clamp(30px,8.2vw,64px);letter-spacing:-.065em;line-height:1.15;padding-bottom:20px}.work-content{padding-top:26px;padding-bottom:55px}.work-intro{font-size:25px}.work-intro br{display:none}.work-grid{grid-template-columns:1fr;margin-top:35px;gap:30px}.work-aside{position:static;max-width:none;display:flex;align-items:flex-start;justify-content:space-between;gap:25px}.work-aside p{max-width:220px;font-size:16px;line-height:1.4}.text-link{font-size:17px;margin-top:0;white-space:nowrap}.project-caption{font-size:19px}.project-hover-label{opacity:1;transform:none;right:14px;bottom:76px;padding:11px 14px;font-size:11px}.section-bar{padding-block:18px}.section-bar h2{font-size:35px}.section-toggle{height:35px;width:35px}.services-grid,.two-column,.faq{grid-template-columns:1fr;gap:30px}.services-main{grid-row:auto;grid-column:auto}.services-note{grid-column:auto;grid-row:auto;max-width:300px;font-size:16px;line-height:1.4}.section-heading{font-size:27px}.service-row{gap:12px;padding-block:20px}.service-row h4{font-size:clamp(24px,6.3vw,41px);letter-spacing:-.06em}.service-number{min-width:16px;font-size:11px;padding-top:6px}.service-row p{font-size:14px;line-height:1.4}.service-list{margin-top:24px}.process-steps{grid-template-columns:1fr;gap:35px;margin-top:40px}.process-steps h3{margin-top:20px;font-size:23px}.process-steps p{max-width:100%;font-size:16px}.process-footnote{font-size:10px;margin-top:42px;max-width:280px}.faq{padding-block:55px}.faq summary{font-size:20px}.faq details p{font-size:16px}.faq-list{margin-top:25px}.insights-intro{grid-template-columns:1fr;gap:27px;margin-bottom:35px}.insights-intro>div{margin:0;max-width:340px}.insight-grid{grid-template-columns:1fr;gap:42px}.insight-cover{aspect-ratio:1.45;padding:23px}.cover-title{font-size:46px;left:23px;bottom:25px}.cover-number{font-size:55px;right:23px}.insight-card h4{font-size:24px;min-height:0}.insight-card p{font-size:16px;min-height:0}.client-grid{grid-template-columns:repeat(2,1fr);gap:24px 20px;margin-top:35px}.client-item img{padding-block:8px}.testimonials{padding-block:24px;padding-right:0}.testimonial-track{display:flex;overflow-x:auto;gap:15px;scroll-snap-type:x mandatory;padding-right:22px;scrollbar-width:thin;padding-bottom:14px}.testimonial-card{min-width:85%;scroll-snap-align:start;padding:28px}.testimonial-card q{font-size:22px;line-height:1.4}.testimonial-person{padding-top:30px;font-size:14px}.testimonial-person small{font-size:11px}.contact-banner{padding-block:52px;align-items:flex-start;flex-direction:column;gap:30px}.contact-banner h2{font-size:29px}.contact-banner .button{min-width:180px}.footer{padding-block:38px 25px}.footer-top{grid-template-columns:1fr auto;gap:30px}.footer-top>div:nth-child(2){grid-row:2;grid-column:1/-1}.back-top{grid-column:2;grid-row:1}.footer-email{font-size:12px}.footer-label{font-size:11px}.social-links{font-size:12px;gap:20px}.footer-main{flex-direction:column;align-items:flex-start;gap:38px;margin-top:40px}.footer-main>a:first-child{font-size:31px}.footer-main .wordmark{font-size:75px}.footer-bottom{flex-direction:column;gap:19px;align-items:flex-start;margin-top:32px;font-size:9px}.footer-bottom>div{text-align:left}.content-dialog{width:calc(100% - 24px);max-height:94svh}.dialog-close{padding:15px 22px}.dialog-body{padding:30px 24px 40px}.dialog-body p{font-size:16px}.dialog-body .review-quote{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js [data-reveal]:not(.is-visible){opacity:1;transform:none;filter:none}.js [data-reveal].split-ready:not(.is-visible) .text-reveal-line>span{transform:none}.project-image img{transform:none!important;scale:1!important}}

/* Deliberate page entrance and calmer motion */
.hero-reveal{position:absolute;inset:0;background:#fff;z-index:40;pointer-events:none;visibility:visible}
body.preloading .hero-reveal{opacity:1}
body.page-ready .hero-reveal{animation:hero-curtain 2.4s var(--ease) forwards}
body.preloading .site-header,body.preloading .hero-copy,body.preloading .hero-signature,body.preloading 
body.page-ready .site-header,body.page-ready .hero-copy,body.page-ready .hero-signature,body.page-ready 
body.preloading .line-mask>span{animation-play-state:paused}
body.page-ready .line-mask>span{animation-play-state:running}
.line-mask>span{animation-duration:1.85s}
.line-mask:nth-child(2)>span{animation-delay:.62s}
.line-mask:nth-child(1)>span{animation-delay:.42s}
.js [data-reveal]{transition:opacity 1.45s var(--ease),transform 1.75s var(--ease),filter 1.5s var(--ease)}
.text-reveal-line>span{transition:transform 1.75s var(--ease);transition-delay:calc(var(--line-index)*140ms)}
.section-bar h2{cursor:pointer}
.section-bar h2[role=button]:focus-visible{outline:2px solid #bd783c;outline-offset:7px}
.typewriter{display:inline-block;min-width:1ch}
.typewriter-link{min-height:1.2em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes hero-curtain{0%{transform:translateY(0)}94%{transform:translateY(101%)}100%{transform:translateY(101%);visibility:hidden}}
@media(max-width:700px){.hero{height:var(--hero-h)}.hero-stage{position:relative;height:var(--hero-h);min-height:0}.hero-media img{object-position:50% 38%}.hero-copy{bottom:135px}.hero-signature{bottom:30px}}
.wordmark-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.nav-wordmark{width:130px;height:38px;font-size:0}
.hero-signature{width:clamp(270px,32vw,560px);aspect-ratio:3.45/1;font-size:0}
.footer-main .footer-wordmark{width:clamp(240px,28vw,440px);height:auto;aspect-ratio:3.45/1;flex:none;font-size:0}
@media(max-width:1000px){.nav-wordmark{width:112px;height:33px}.hero-signature{width:clamp(260px,36vw,400px)}}
@media(max-width:700px){.nav-wordmark{width:105px;height:31px}.hero-signature{width:min(72vw,350px);right:22px}.footer-main .footer-wordmark{width:min(78vw,350px)}}
.desktop-nav .menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;padding:0;border:0;background:transparent;color:inherit;font-size:14px;line-height:1.35;letter-spacing:.035em;font-weight:500}
.desktop-nav a{font-size:14px}
.rolling-link>span,.button-label{transition-duration:.8s}
.line-mask>span{animation-duration:2.25s}
.line-mask:nth-child(1)>span{animation-delay:.62s}
.line-mask:nth-child(2)>span{animation-delay:.92s}
.js [data-reveal]{transition:opacity 1.9s var(--ease),transform 2.2s var(--ease),filter 1.9s var(--ease)}
.text-reveal-line>span{transition-duration:2.2s;transition-delay:calc(var(--line-index)*180ms)}
@media(max-width:1280px){.hero{height:var(--hero-h)}.hero-stage{position:relative;height:var(--hero-h);min-height:0;top:auto}.site-header{gap:18px}.desktop-nav{gap:clamp(16px,2vw,25px)}.desktop-nav a,.desktop-nav .menu-toggle{font-size:13px}.header-contact{gap:14px;padding-inline:14px}}
@media(max-width:700px){.site-header .desktop-nav{display:flex;gap:0;margin:0 0 0 auto}.site-header .desktop-nav>a{display:none}.site-header .desktop-nav .menu-toggle{display:inline-flex;width:auto;height:42px;padding:0 2px;font-size:14px}.site-header .header-contact{display:none}}
.desktop-nav .menu-toggle{width:42px;height:42px;flex-direction:column;gap:6px;padding:0}
.desktop-nav .menu-toggle span{display:block;width:22px;height:1px;margin:0;background:#aab3b6;transition:transform .55s var(--ease),background-color .4s var(--ease)}
.desktop-nav .menu-toggle:hover span{background:#fff}
.menu-open .desktop-nav .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-open .desktop-nav .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mobile-menu{gap:10px}
.mobile-menu .menu-title,.mobile-menu>a{display:flex;align-items:center;gap:16px;font-size:clamp(34px,7vw,62px);letter-spacing:-.05em;line-height:1.15}
.mobile-menu .menu-title{font-weight:400}
.mobile-menu .menu-title small,.mobile-menu>a small{width:28px;flex:none;font-size:11px;letter-spacing:0;color:#aab3b6}
@media(max-width:700px){.site-header .desktop-nav .menu-toggle{width:42px;height:42px;padding:0}}
.desktop-nav .menu-toggle{width:auto;height:auto;flex-direction:row;gap:0;padding:0 2px;text-transform:uppercase}
.desktop-nav .menu-toggle .menu-toggle-label{display:inline;width:auto;height:auto;margin:0;background:transparent;color:inherit;transform:none!important}
.desktop-nav .menu-toggle .menu-icon-line{display:none}
@media(max-width:700px){.site-header .desktop-nav .menu-toggle{width:42px;height:42px;flex-direction:column;gap:6px;padding:0}.site-header .desktop-nav .menu-toggle .menu-toggle-label{display:none}.site-header .desktop-nav .menu-toggle .menu-icon-line{display:block;width:22px;height:1px;margin:0;background:#aab3b6;transition:transform .55s var(--ease),background-color .4s var(--ease)}.menu-open .site-header .desktop-nav .menu-toggle .menu-icon-line:nth-child(2){transform:translateY(3.5px) rotate(45deg)}.menu-open .site-header .desktop-nav .menu-toggle .menu-icon-line:nth-child(3){transform:translateY(-3.5px) rotate(-45deg)}}
.hero{height:var(--hero-h);}
.hero-stage{position:relative;top:auto;height:var(--hero-h);min-height:0}
@media(min-width:1281px){.hero-media img{object-fit:cover;object-position:center 25%}}
.desktop-nav .menu-toggle{display:none!important}
.desktop-nav .home-link{display:inline-block}
@media(max-width:700px){.site-header .desktop-nav .menu-toggle{display:flex!important}.site-header .desktop-nav .home-link{display:none}}
body.preloading .hero-signature{opacity:0}
body.page-ready .hero-signature{opacity:1;transition:opacity 1.7s var(--ease)}
@media(min-width:1281px){
  .nav-wordmark{width:11vw;height:auto;aspect-ratio:3.45/1}
  .desktop-nav a,.desktop-nav .menu-toggle{font-size:clamp(14px,1vw,20px)}
  .header-contact{width:13.6vw;min-height:2.8vw;padding:1vw 1.2vw;font-size:clamp(12px,.85vw,19px)}
  .hero-heading{font-size:clamp(40px,3.3vw,72px)}
  .hero-copy{bottom:7.5%}
  .hero-copy .button{width:14vw;min-width:220px;min-height:3.4vw;padding:1vw 1.25vw;font-size:clamp(12px,.85vw,19px)}
  .hero-signature{width:min(48vw,82vh);bottom:7.5%}
  
}

.wordmark-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.nav-wordmark{width:130px;height:38px;aspect-ratio:3.45/1;font-size:0}
.hero-signature{width:clamp(270px,32vw,560px);height:auto;aspect-ratio:3.45/1;font-size:0}
.footer-main .footer-wordmark{width:clamp(240px,28vw,440px);height:auto;aspect-ratio:3.45/1;flex:none;font-size:0}
@media(max-width:1000px){.nav-wordmark{width:112px;height:33px}.hero-signature{width:clamp(260px,36vw,400px)}}
@media(max-width:700px){.nav-wordmark{width:105px;height:31px}.hero-signature{width:min(72vw,350px);right:22px}.footer-main .footer-wordmark{width:min(78vw,350px)}}
@media(min-width:1281px){.nav-wordmark{width:11vw;height:auto;aspect-ratio:3.45/1}.hero-signature{width:min(48vw,82vh);bottom:7.5%}}
.nav-wordmark{overflow:hidden}
.nav-wordmark .wordmark-image,.hero-cta-mask .button{animation:line-enter 2.25s var(--ease) both;animation-play-state:paused}
.nav-wordmark .wordmark-image{animation-delay:.62s}
.hero-cta-mask{display:table;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hero-cta-mask .button{animation-delay:1.42s}
body.page-ready .nav-wordmark .wordmark-image,body.page-ready .hero-cta-mask .button{animation-play-state:running}
body.page-ready .hero-reveal{animation:hero-curtain 2.8s cubic-bezier(.65,0,.35,1) forwards}
/* Mobile photograph remains stationary beneath the opening curtain. */
@media(min-width:701px){
body.preloading .hero-media img{transform:translate3d(0,-5.5%,0)}
body.page-ready .hero-media img{animation:hero-photo-settle 2.8s cubic-bezier(.65,0,.35,1) both}
}
@keyframes hero-photo-settle{from{transform:translate3d(0,-5.5%,0)}to{transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:reduce){body.page-ready .hero-reveal{visibility:hidden;transform:translateY(101%)}body.preloading .hero-media img,body.page-ready .hero-media img{transform:none}}
.hero-signature{overflow:hidden}
.hero-signature .wordmark-image{animation:line-enter 2.25s var(--ease) .82s both;animation-play-state:paused}
.desktop-nav .rolling-link>span,.header-contact{animation:line-enter 2.25s var(--ease) both;animation-play-state:paused}
.desktop-nav .rolling-link:nth-of-type(1)>span{animation-delay:.72s}
.desktop-nav .rolling-link:nth-of-type(2)>span{animation-delay:.81s}
.desktop-nav .rolling-link:nth-of-type(3)>span{animation-delay:.90s}
.desktop-nav .rolling-link:nth-of-type(4)>span{animation-delay:.99s}
.desktop-nav .rolling-link:nth-of-type(5)>span{animation-delay:1.08s}
.header-contact{animation-delay:1.17s}
body.page-ready .hero-signature .wordmark-image,body.page-ready .desktop-nav .rolling-link>span,body.page-ready .header-contact{animation-play-state:running}
@media(prefers-reduced-motion:reduce){.hero-signature,.hero-signature .wordmark-image{overflow:visible;animation:none!important;transform:none!important}}

.js .footer-wordmark[data-reveal]{opacity:1;transform:none;filter:none;overflow:hidden}
.js .footer-wordmark[data-reveal] .wordmark-image{animation:line-enter 2.25s var(--ease) both;animation-play-state:paused}
.js .footer-wordmark[data-reveal].is-visible .wordmark-image{animation-play-state:running}

.service-branches{width:100%}.service-branch{border-top:1px solid var(--line)}.service-branch:last-child{border-bottom:1px solid var(--line)}.branch-static-title{display:flex;align-items:center;min-height:50px;margin-block:0;font-size:15px;font-weight:500;line-height:1.2}.branch-bar{border-bottom:1px solid var(--line)}.branch-toggle{width:100%;min-height:50px;padding:12px 0;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:inherit;font:500 15px/1.2 Manrope,sans-serif;text-align:left;cursor:pointer}.branch-icon{width:14px;height:14px;position:relative;flex:none}.branch-icon:before,.branch-icon:after{content:"";position:absolute;left:0;top:6px;width:14px;height:1px;background:currentColor;transition:transform .35s var(--ease)}.branch-icon:after{transform:rotate(90deg)}.branch-toggle[aria-expanded=true] .branch-icon:after{transform:rotate(0)}.branch-panel .process-heading{grid-template-columns:1fr}.branch-panel .faq{display:block}.service-branch .faq{grid-template-columns:1fr;gap:28px}.branch-panel .faq-list{margin-top:28px}@media(max-width:700px){.branch-static-title,.branch-toggle{min-height:46px;font-size:13px}.branch-toggle{padding-block:10px}.branch-panel .process{padding-block:48px 38px}.service-branch .faq{gap:22px;padding-block:42px}.branch-panel .faq-list{margin-top:22px}}
.studio-fiore-card .project-image{aspect-ratio:1162/752;background:#cfcabf}.studio-fiore-card .project-image img{transform:none;object-fit:contain;object-position:center;transition:scale 1s var(--ease)}.studio-fiore-card:hover .project-image img{scale:1.025}.content-dialog.project-dialog{width:min(1100px,calc(100% - 40px));background:#fff}.project-dialog .dialog-body{padding:0}.project-intro{padding:48px clamp(24px,5vw,70px)}.project-intro>p:last-child{max-width:760px}.project-dialog .project-gallery img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;margin:0}.project-gallery{display:grid;gap:0}@media(max-width:700px){.content-dialog.project-dialog{width:calc(100% - 24px)}.project-intro{padding:30px 24px}}


.studio-fiore-card .project-hover-label{bottom:24px}@media(max-width:700px){.studio-fiore-card .project-hover-label{bottom:14px}}

.arrow-icon{display:block;width:16px;height:16px;overflow:visible;flex:none}.arrow-icon path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.button .arrow{display:grid;place-items:center;width:16px;height:16px;font-size:0;line-height:1;flex:none}.button .arrow-icon{width:100%;height:100%}.text-link span{vertical-align:middle}.text-link .arrow-icon,.project-hover-label .arrow-icon,.feedback-open .arrow-icon{width:16px;height:16px}.back-top .arrow-icon{width:18px;height:18px}

html{background:var(--ink);overflow-x:hidden;overflow-x:clip}body{max-width:100%;overflow-x:hidden;overflow-x:clip}

.project-hover-label{display:flex;align-items:center;justify-content:space-between;gap:22px;width:164px;min-height:50px;padding-inline:20px}.project-hover-label span{display:flex;align-items:center;justify-content:center;flex:none;margin-left:0}@media(max-width:700px){.project-hover-label{width:150px;min-height:44px;padding:11px 15px;gap:18px}}

/* Contain text without interfering with native vertical scrolling. */
.footer-main>*{min-width:0;max-width:100%}
.typewriter-link{overflow-wrap:anywhere}
.footer-main .typewriter{white-space:normal}
@media(max-width:700px){
 .hero-media img{animation:none!important;transform:none!important;scale:none!important;will-change:auto}
 .work-aside>*{min-width:0}
 .work-aside .text-link{white-space:normal;flex-shrink:0}
}
@media(hover:none){.project-card:hover .project-image img,.studio-fiore-card:hover .project-image img{scale:1}}

/* Shareable project page */
.project-page{background:#fff;color:var(--ink)}
.project-page-header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.project-page-logo{display:block;width:112px;height:33px;overflow:hidden}
.project-page-logo .wordmark-image{object-fit:contain}
.project-close{display:flex;flex:1;justify-content:space-between;align-items:center;gap:34px;margin-left:clamp(26px,6vw,80px);padding:12px 0;font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.04em}
.project-close span:last-child{font-size:30px;font-weight:300;line-height:.75}
.project-page-intro{padding-block:clamp(50px,8vw,120px) clamp(38px,6vw,82px)}
.project-page-intro h1{font-size:clamp(46px,9vw,140px);line-height:.98;letter-spacing:-.075em;margin-top:20px}
.project-page-intro>p:last-child{max-width:760px;margin-top:28px;font-size:clamp(17px,2vw,23px);line-height:1.55;color:#465155}
.project-page-gallery{display:grid;gap:0;background:#f3f1ed}
.project-page-gallery img{display:block;width:100%;height:auto;max-width:100%;margin:0;object-fit:contain}
.project-contact{padding-block:72px}
.project-page .footer-main>a:first-child{font-size:clamp(24px,3vw,49px)}
.project-page :focus-visible{outline-color:var(--ink);outline-offset:4px}
@media(max-width:700px){.project-page-header{height:76px}.project-page-logo{width:100px;height:30px}.project-close{gap:22px;margin-left:20px}.project-page-intro{padding-block:52px 36px}.project-page-intro h1{font-size:clamp(46px,13vw,82px)}.project-page-intro>p:last-child{margin-top:20px;font-size:16px}.project-contact{padding-block:52px}}

/* Reveal masks need room for the overhang in tightly tracked first and last glyphs. */
.text-reveal-line{padding-inline:.1em;margin-inline:-.1em}

.studio-fiore-card:focus-visible{outline-color:var(--ink);outline-offset:5px}

.project-page-gallery img{cursor:zoom-in;user-select:none;-webkit-user-drag:none}
.project-image-viewer{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#fff;overflow:hidden}
.project-image-viewer::backdrop{background:rgba(7,22,27,.97)}
.project-image-viewer>img{display:block;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:56px;object-fit:contain}
.project-image-viewer-close{position:absolute;z-index:1;top:18px;right:22px;width:48px;height:48px;border:1px solid #ffffff80;background:#07161b;color:#fff;font:300 34px/1 Manrope,Arial,sans-serif;cursor:pointer}
.project-image-viewer-close:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:700px){.project-image-viewer>img{padding:58px 14px 20px}.project-image-viewer-close{top:10px;right:12px;width:42px;height:42px}}

.project-back-wrap{padding-block:22px 48px}
.project-back-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.04em}
.project-back-link span{font-size:20px;line-height:1;transition:transform .3s var(--ease)}
.project-back-link:hover span{transform:translateX(-4px)}
.project-contact .button{width:220px;min-width:220px}
.project-image-viewer-close{position:absolute;z-index:1;inset:0 0 auto;width:100%;height:68px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;border:0;background:#07161b;color:#fff;font:500 12px/1 Manrope,Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
.project-image-viewer-close span:last-child{font-size:34px;font-weight:300;line-height:1}
.project-image-viewer-close:focus-visible{outline:2px solid #fff;outline-offset:-4px}
@media(max-width:700px){.project-back-wrap{padding-block:18px 36px}.project-contact .button{width:220px;min-width:220px}.project-image-viewer-close{height:58px;padding-inline:22px}}

/* Center project artwork with generous desktop gutters. */
.project-page-gallery{width:calc(100% - clamp(48px,20vw,400px));max-width:1500px;margin-inline:auto}
@media(max-width:700px){.project-page-gallery{width:calc(100% - 32px)}}

/* Clip the rolling button label to a single visible line. */
.button-text{display:inline-block;height:1.2em;line-height:1.2;overflow:hidden;vertical-align:middle}
.button-label{display:block;height:1.2em;line-height:1.2;overflow:visible;vertical-align:middle}


/* Let the project close control sit at the left gutter; keep the X at the far right. */
.project-page-header .project-page-logo{display:none}
.project-page-header .project-close{margin-left:0}


/* Align project title and description to the gallery width. */
.project-page .project-page-intro{width:calc(100% - clamp(48px,20vw,400px));max-width:1500px;margin-inline:auto;padding-inline:0}
@media(max-width:700px){.project-page .project-page-intro{width:calc(100% - 32px)}}


/* Keep the contact CTA label still and centered while its arrow stays right-aligned. */
.contact-banner .button{justify-content:center}
.contact-banner .button .arrow{position:absolute;right:20px}
.contact-banner .button .button-label,.contact-banner .button:hover .button-label,.contact-banner .button:focus-visible .button-label{transform:none;transition:none}
.contact-banner .button .button-label:after{content:none}

.contact-banner .button-static-label{display:block;white-space:nowrap}
