/* Homepage layouts and project slider. */
.page-home{--front-bg:#fafaf8;--front-soft:#eeefeb;--front-line:#d9dcd5;--front-ink:#222722;--front-muted:#626a61;background:var(--front-bg)}
.page-home main{color:var(--front-ink)}
.page-home main h2{font-size:clamp(2rem,3.1vw,3.1rem);line-height:1.18;letter-spacing:-.045em;font-weight:500;text-wrap:balance}
.front-label{font-size:.75rem;letter-spacing:.095em;line-height:1.6;font-weight:600;color:var(--front-muted);margin:0 0 23px}
.front-label>span{margin:0 10px;color:#a5aaa1}
.front-section{padding:88px var(--page)}
.front-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:38px}
.front-section-head>p{font-size:1rem;line-height:1.75;color:var(--front-muted);max-width:345px;margin:0}
.front-button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--red);color:#fff;padding:17px 22px;font-size:.875rem;font-weight:600;min-height:56px}
.front-button>span{font-size:1.5rem;line-height:1}
.front-text-link{display:inline-flex;align-items:center;gap:25px;min-height:44px;border-bottom:1px solid #8d958a;padding:9px 0;font-size:.875rem;font-weight:600;line-height:1.5;flex-shrink:0}
.front-text-link>span{font-size:1.45rem;line-height:1;color:var(--red)}
.front-profile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8vw}
.front-profile-title .front-text-link{margin-top:29px}
.front-profile-copy{padding-top:33px;max-width:610px}
.front-profile-copy>p{font-size:1rem;line-height:1.9;color:var(--front-muted);margin:0 0 22px}
.front-profile-copy>p.front-lead{font-size:1.4rem;line-height:1.55;letter-spacing:-.025em;color:var(--front-ink)}
.front-profile-facts{margin:30px 0 0;border-top:1px solid var(--front-line)}
.front-profile-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:22px;padding:15px 0;border-bottom:1px solid var(--front-line);font-size:.875rem;line-height:1.6}
.front-profile-facts dt{color:var(--front-muted)}
.front-profile-facts dd{margin:0;text-align:right;font-weight:500}
.front-projects{background:var(--front-soft);border-top:1px solid var(--front-line);border-bottom:1px solid var(--front-line);scroll-margin-top:15px}
.front-project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.front-project{min-width:0}
.front-project>a{display:flex;flex-direction:column;height:100%}
.front-project-image{position:relative;display:block;aspect-ratio:4/4.3;background:#d9ded3;overflow:hidden}
.front-project-image>img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transition:transform .4s var(--ease-out)}
.front-project-image>span{position:absolute;left:12px;bottom:12px;background:var(--front-bg);padding:7px 11px;font-size:.75rem;line-height:1.5}
.front-project-place{font-size:.75rem;color:var(--front-muted);margin-top:20px;line-height:1.5}
.front-project-name{font-size:clamp(1.1rem,1.5vw,1.5rem);font-weight:500;letter-spacing:-.025em;line-height:1.35;margin:9px 0 20px}
.front-project-open{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;line-height:1.5;border-top:1px solid #c8cec1;padding-top:15px;margin-top:auto;gap:20px}
.front-project-open>span{font-size:1.3rem;color:var(--red)}
.front-services{background:var(--front-bg)}
.front-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--front-line)}
.front-service{display:grid;grid-template-columns:28px minmax(0,1fr) 24px;gap:22px;padding:36px 32px;min-width:0}
.front-service:nth-child(odd){border-right:1px solid var(--front-line)}
.front-service:nth-child(-n+2){border-bottom:1px solid var(--front-line)}
.front-service-number{font-size:.75rem;color:var(--red);font-variant-numeric:tabular-nums;line-height:1.7;padding-top:4px}
.front-service>span:last-child{color:var(--red);font-size:1.6rem;line-height:1.2}
.front-service>div{display:flex;flex-direction:column;min-width:0}
.front-service h3{font-size:1.35rem;font-weight:500;letter-spacing:-.025em;line-height:1.3;margin:0 0 15px}
.front-service p{font-size:1rem;line-height:1.8;color:var(--front-muted);margin:0 0 26px;max-width:440px}
.front-service-reference{display:block;margin-top:auto;font-size:.8125rem;line-height:1.7;color:var(--front-muted);border-top:1px solid var(--front-line);padding-top:18px}
.front-service-reference small{display:block;font-size:.75rem;line-height:1.5;letter-spacing:.055em;margin-bottom:7px;color:#444e42}
.front-practice{display:grid;grid-template-columns:1fr 1fr;background:#222722;color:#fff}
.front-practice>figure{position:relative;margin:0;min-height:620px;overflow:hidden}
.front-practice>figure>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.front-practice>figure:after{content:"";position:absolute;inset:70% 0 0;background:linear-gradient(transparent,#0008)}
.front-practice figcaption{position:absolute;bottom:25px;left:var(--page);right:25px;z-index:1;font-size:.75rem;line-height:1.6}
.front-practice-copy{padding:72px var(--page) 72px 64px;min-width:0}
.front-practice .front-label{color:#b9c1b5}
.front-practice-copy>p:not(.front-label){font-size:1rem;line-height:1.85;color:#c6cfc1;margin:26px 0 30px;max-width:450px}
.front-practice-copy>ul{list-style:none;margin:0;padding:0;border-top:1px solid #ffffff29}
.front-practice-copy li{padding:19px 0;border-bottom:1px solid #ffffff29}
.front-practice-copy li>strong{display:block;font-size:1rem;line-height:1.5;font-weight:500;margin-bottom:6px}
.front-practice-copy li>span{font-size:.875rem;line-height:1.7;color:#bfc8b9;display:block}
.front-practice .front-text-link{margin-top:28px;color:#fff;border-color:#8b9683}
.front-practice .front-text-link>span{color:#f0766e}
.front-references .reference-brands{margin:0 0 35px;border-top:1px solid var(--front-line);border-bottom:1px solid var(--front-line);padding:39px 0}
.front-reference-table{width:100%;border-collapse:collapse;text-align:left}
.front-reference-table caption{text-align:left;font-size:.875rem;margin-bottom:22px;color:var(--front-muted)}
.front-reference-table th,.front-reference-table td{border-bottom:1px solid var(--front-line);padding:20px 20px 20px 0;vertical-align:top;font-size:.9375rem;line-height:1.7}
.front-reference-table thead th{font-size:.75rem;color:var(--front-muted);font-weight:500;padding-top:0;padding-bottom:13px}
.front-reference-table tbody th{font-weight:500;width:34%}
.front-reference-table td{color:var(--front-muted)}
.front-reference-table tr>:last-child{text-align:right;padding-right:0;white-space:nowrap}
.front-contact{background:var(--front-soft);display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;border-top:1px solid var(--front-line)}
.front-contact>div>p:not(.front-label){font-size:1rem;line-height:1.8;color:var(--front-muted);margin:22px 0 28px;max-width:390px}
.front-contact-links{align-self:center;border-top:1px solid #c9d0c3}
.front-contact-links>a{display:grid;grid-template-columns:minmax(0,1fr) 30px;column-gap:20px;row-gap:8px;padding:23px 0;border-bottom:1px solid #c9d0c3;align-items:center}
.front-contact-links small{grid-column:1/-1;font-size:.75rem;line-height:1.5;color:var(--front-muted);letter-spacing:.05em}
.front-contact-links>a>span:nth-child(2){font-size:clamp(1.25rem,2.1vw,2rem);font-weight:500;line-height:1.4;letter-spacing:-.035em;overflow-wrap:anywhere}
.front-contact-links>a>span:last-child{font-size:1.65rem;color:var(--red)}
.front-contact-links>p{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:.875rem;line-height:1.5;margin:23px 0 0;color:var(--front-muted)}
.front-contact-links>p>strong{font-weight:500;color:var(--front-ink)}

@media(hover:hover) and (pointer:fine){.front-button:hover{background:#b52821}.front-service:hover{background:#f1f3ee}.front-project>a:hover img{transform:scale(1.025)}}
@media(max-width:1100px){.front-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px}.front-project-image{aspect-ratio:4/3}.front-project-name{font-size:1.4rem}.front-service{gap:15px;padding:30px 24px;grid-template-columns:23px minmax(0,1fr) 20px}.front-practice-copy{padding:58px 40px}.front-profile{gap:6vw}.front-section-head{gap:30px}}
@media(max-width:800px){.front-profile{gap:36px}.front-profile-copy{padding-top:15px}.front-profile-copy>p.front-lead{font-size:1.2rem}.front-service{grid-template-columns:1fr 20px;gap:15px}.front-service-number{grid-column:1/-1}.front-service>div{grid-column:1}.front-service>span:last-child{grid-column:2;grid-row:2}.front-service>div{display:flex;flex-direction:column;min-width:0}
.front-service h3{font-size:1.2rem}.front-service p{font-size:.9375rem}.front-practice{grid-template-columns:1fr}.front-practice>figure{min-height:470px}.front-practice>figure>img{object-position:50% 38%}.front-practice-copy{padding:55px var(--page)}.front-practice-copy>p:not(.front-label){max-width:none}.front-practice-copy>ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.front-practice-copy li{border:0}.front-contact{gap:35px}.front-contact-links>a>span:nth-child(2){font-size:1.2rem}}
@media(max-width:700px){.front-section{padding:55px var(--page)}.front-label>span{margin:0 5px}.front-profile{grid-template-columns:1fr;gap:28px}.front-profile-title .front-text-link{margin-top:22px}.front-profile-copy{padding:0}.front-profile-copy>p.front-lead{font-size:1.3rem}.front-profile-facts>div{font-size:.8125rem}.front-section-head{display:block;margin-bottom:30px}.front-section-head>.front-text-link{margin-top:20px}.front-section-head>p{margin-top:20px;max-width:none}.page-home main h2{font-size:clamp(1.8rem,7vw,2.6rem);line-height:1.2;letter-spacing:-.04em}.front-label{margin-bottom:19px}.front-project-grid{grid-template-columns:1fr;gap:35px}.front-project-image{aspect-ratio:4/3}.front-project-name{font-size:1.4rem;margin:8px 0 19px}.front-project-place{margin-top:17px}.front-project-open{padding-top:13px}.front-service-grid{grid-template-columns:1fr}.front-service{padding:26px 23px;grid-template-columns:1fr 22px;gap:18px}.front-service:nth-child(odd){border-right:0}.front-service:not(:last-child){border-bottom:1px solid var(--front-line)}.front-service>div{display:flex;flex-direction:column;min-width:0}
.front-service h3{font-size:1.35rem}.front-service p{font-size:1rem;line-height:1.8}.front-service-reference{font-size:.8125rem}.front-practice>figure{min-height:390px}.front-practice-copy{padding:48px var(--page)}.front-practice-copy>ul{display:block}.front-practice-copy li{border-bottom:1px solid #ffffff29;padding:19px 0}.front-practice-copy li>span{font-size:.9375rem}.front-practice figcaption{font-size:.75rem}.front-references .reference-brands{margin-bottom:29px;padding:30px 0}.front-reference-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.front-reference-table,.front-reference-table tbody{display:block}.front-reference-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 18px;border-bottom:1px solid var(--front-line);padding:18px 0}.front-reference-table th,.front-reference-table td{display:block;width:auto!important;border:0;padding:0;font-size:.875rem;line-height:1.7}.front-reference-table th{font-size:1rem;grid-column:1;grid-row:1}.front-reference-table td:nth-child(2){grid-column:1/-1;grid-row:2}.front-reference-table tr>:last-child{grid-column:2;grid-row:1;font-size:.8125rem;padding-top:3px}.front-reference-table caption{display:block;margin-bottom:12px}.front-contact{grid-template-columns:1fr;gap:35px}.front-contact-links>a>span:nth-child(2){font-size:clamp(1.25rem,5.3vw,1.75rem)}.front-contact-links>p{font-size:.8125rem;gap:15px}}
@media(max-width:370px){.front-profile-facts>div{gap:15px}.front-service{padding-left:19px;padding-right:19px}.front-contact-links>a{column-gap:12px}}
@media(prefers-reduced-motion:reduce){.front-project-image>img{transition:none}.front-project>a:hover img{transform:none}}

/* Full-width project slider: static company message, changing project photography. */
.masthead{color:#fff;background:#1b1b1b;touch-action:pan-y}
.masthead-stage{position:relative;isolation:isolate;min-height:640px;height:clamp(640px,calc(100svh - 240px),820px);overflow:hidden}
.masthead-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 650ms var(--ease-out)}
.masthead-slide.is-active{opacity:1;pointer-events:auto;z-index:1}
.masthead-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,15,17,.82) 0%,rgba(9,15,17,.48) 43%,rgba(9,15,17,.08) 78%),linear-gradient(0deg,rgba(9,15,17,.78),transparent 38%);pointer-events:none}
.masthead-photo{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position);max-width:none}
.masthead-content{position:relative;z-index:2;padding:76px var(--page) 175px;pointer-events:none}
.masthead-content a{pointer-events:auto}
.masthead-eyebrow{display:flex;gap:13px;align-items:center;font-size:.75rem;line-height:1.7;letter-spacing:.1em;color:#f3f3ef;margin:0 0 28px}
.masthead-eyebrow>span{width:28px;height:2px;background:#f06056;flex-shrink:0}
.masthead h1{font-size:clamp(3.3rem,5.45vw,6rem);line-height:1.11;letter-spacing:-.045em;font-weight:500;max-width:1050px;color:#fff;text-shadow:0 2px 20px #0002}
.masthead-description{font-size:1.125rem;line-height:1.8;color:#f0f0ed;margin:25px 0 29px}
.masthead-actions{display:flex;align-items:center;gap:35px}
.masthead-about{font-size:.875rem;font-weight:500;display:flex;gap:22px;align-items:center;min-height:48px;border-bottom:1px solid #ffffff65}
.masthead-about>span{font-size:1.35rem}
.masthead-project{position:absolute;bottom:39px;left:var(--page);right:340px;z-index:2}
.masthead-project>span{display:block;font-size:.75rem;line-height:1.6;letter-spacing:.075em;color:#e0e1de;margin-bottom:8px}
.masthead-project>a{display:inline-flex;align-items:center;gap:25px;font-size:1.125rem;line-height:1.4;min-height:30px}
.masthead-project>a>span{font-size:1.3rem;color:#f1f1ed}
.masthead-controls{position:absolute;right:var(--page);bottom:36px;z-index:3;display:flex;gap:10px;align-items:center}
.masthead-count{display:flex;gap:12px;align-items:baseline;font-size:.875rem;margin-right:18px;font-variant-numeric:tabular-nums;color:#d9dcda}
.masthead-count strong{font-size:1.25rem;font-weight:500;color:#fff}
.masthead-controls button{width:48px;height:48px;padding:13px;background:#10151724;border:1px solid #ffffff80;border-radius:0;display:grid;place-items:center;transition:background .18s ease}
.masthead-controls svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.masthead-controls .masthead-pause{border-color:transparent;margin-left:5px}
.masthead .play-icon{display:none}
.masthead.is-paused .play-icon{display:block}
.masthead.is-paused .pause-icon{display:none}
.masthead-selector{padding:0 var(--page);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#202221}
.masthead-selector button{position:relative;display:flex;align-items:center;text-align:left;gap:22px;background:none;border:0;border-right:1px solid #ffffff1f;color:#c3c8c3;padding:27px 30px;min-width:0;min-height:92px}
.masthead-selector button:first-child{border-left:1px solid #ffffff1f}
.masthead-selector button:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease-out)}
.masthead-selector button[aria-current="true"]{color:#fff;background:#ffffff06}
.masthead-selector button[aria-current="true"]:after{transform:scaleX(1)}
.masthead-selector button>span:first-child{font-size:.75rem;color:#bec3bd;font-variant-numeric:tabular-nums}
.masthead-selector button>strong{font-size:.9375rem;line-height:1.5;font-weight:500}
.masthead-selector button>span:last-child{font-size:1.35rem;margin-left:auto}
.masthead-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:-1px}
.masthead [hidden]{display:none}
.masthead.is-manual .masthead-slide{transition-duration:280ms}
.masthead.is-instant .masthead-slide,.masthead.is-instant .masthead-selector button:after{transition:none}
.masthead a:focus-visible,.masthead button:focus-visible{outline-color:#fff;outline-offset:4px}
.hero-held .masthead-content{opacity:0;transform:translateY(16px)}
.masthead-content{transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
@media(hover:hover) and (pointer:fine){.masthead-controls button:hover{background:#ffffff24}.masthead-selector button:hover{color:#fff;background:#ffffff0b}.masthead-about:hover{border-color:#fff}}
@media(min-width:1600px){.masthead-stage{min-height:720px}.masthead-content{padding-top:100px}}
@media(max-width:1100px){.masthead-content{padding-top:66px}.masthead-selector button{padding:24px 20px;gap:15px}.masthead-selector button>span:last-child{display:none}.masthead h1{font-size:clamp(3rem,6.1vw,4.5rem)}}
@media(max-width:800px){.masthead-stage{height:650px;min-height:0}.masthead-content{padding-top:61px}.masthead h1{font-size:clamp(2.7rem,6.4vw,3.8rem)}.masthead-project{right:300px}.masthead-project>a{font-size:1rem}.masthead-selector button{padding:22px 14px;gap:12px}.masthead-selector button>strong{font-size:.8125rem}.masthead-controls{gap:7px}.masthead-count{margin-right:8px}}
@media(max-width:600px){.masthead-stage{height:auto;min-height:650px}.masthead-content{padding:52px var(--page) 215px}.masthead-eyebrow{font-size:.75rem;letter-spacing:.04em;gap:10px;margin-bottom:27px}.masthead-eyebrow>span{width:18px}.masthead h1{font-size:clamp(2.2rem,8vw,3rem);line-height:1.16;letter-spacing:-.045em}.masthead-description{font-size:1rem;line-height:1.75;margin:24px 0 27px}.masthead-actions{align-items:flex-start;flex-direction:column;gap:18px}.masthead .front-button{font-size:.875rem;padding:16px 20px;gap:30px;min-height:54px}.masthead-about{min-height:37px}.masthead-slide:after{background:linear-gradient(90deg,#0b1215bf,#0b12154a),linear-gradient(0deg,#0b1215ed,transparent 65%)}.masthead-photo{object-position:60% 35%}.masthead-project{left:var(--page);right:var(--page);bottom:100px}.masthead-project>span{font-size:.75rem;margin-bottom:4px}.masthead-project>a{font-size:1.125rem}.masthead-controls{left:var(--page);right:var(--page);bottom:24px;gap:9px}.masthead-count{margin-right:auto}.masthead-controls button{width:44px;height:44px;padding:11px}.masthead-selector{padding:0 var(--page);gap:12px}.masthead-selector button{padding:19px 0;min-height:65px;gap:10px;border-right:0;justify-content:flex-start}.masthead-selector button:first-child{border-left:0}.masthead-selector button>strong{font-size:.75rem}.masthead-selector button>span:first-child{display:none}.masthead-selector button[aria-current="true"]{background:none}.masthead-selector button:after{height:2px}.masthead-selector button:last-child>strong{max-width:116px}}
@media(max-width:370px){.masthead-stage{min-height:665px}.masthead-eyebrow{font-size:.75rem;letter-spacing:0}.masthead h1{font-size:2.08rem}.masthead-selector{gap:10px}.masthead-selector button>strong{font-size:.75rem}.masthead-project>a{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.masthead-slide,.masthead-content,.masthead-selector button:after{transition:none}.hero-held .masthead-content{transform:none}}
