:root{
  --paper:#F5F3EE;
  --paper-2:#EDE9E2;
  --graphite:#403D39;
  --walnut:#766257;
  --muted:#6B655E;
  --rule:#C9C1B5;
  --line:#E2DDD4;
  --sans:"Avenir","Avenir Next","Nunito Sans",sans-serif;
  --serif:"Cormorant Garamond",Georgia,serif;
  --voice:"Times New Roman",Times,serif;
  --gutter:clamp(16px,4vw,48px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--graphite);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:var(--graphite)}
a:hover{color:var(--walnut)}
p{text-wrap:pretty}
h1,h2,h3{text-wrap:balance}
:focus-visible{outline:2px solid var(--walnut);outline-offset:3px}

.wrap{max-width:1280px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.label{font-family:var(--sans);font-weight:300;font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.body{font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.7}
.serif{font-family:var(--serif);font-weight:600}
.voice{font-family:var(--voice);font-style:italic;font-weight:400}
.accent{color:var(--walnut)}
.muted{color:var(--muted)}
.m0{margin:0}

.site-header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.site-header.static{position:relative}
.nav{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between;padding-top:18px;padding-bottom:18px}
.logo{display:block;text-decoration:none}
.logo img{height:40px;width:auto}
.nav-links{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center}
.nav-links a{text-decoration:none}
.nav-links a[aria-current="page"]{border-bottom:1px solid var(--graphite);padding-bottom:4px}
.btn-outline{border:1px solid var(--graphite);padding:12px 20px;text-decoration:none;display:inline-block}
.btn-outline:hover{background:var(--graphite);color:var(--paper)}
.btn-solid{display:inline-block;background:var(--graphite);color:var(--paper);padding:16px 28px;text-decoration:none;border:0}
.btn-solid:hover{background:var(--walnut);color:var(--paper)}
.btn-light{display:inline-block;background:var(--paper);color:var(--graphite);padding:18px 32px;text-decoration:none;border:0;cursor:pointer;min-height:44px}
.btn-light:hover{background:#fff;color:var(--graphite)}
.dark a.btn-light,.dark .btn-light{color:var(--graphite)}
.dark a.btn-light:hover,.dark .btn-light:hover{color:var(--graphite);background:#fff}

.hero{position:relative;isolation:isolate;min-height:min(86vh,820px);display:flex;align-items:flex-start;overflow:hidden;background:#C9BFB0}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 75%}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(245,243,238,.4) 0%,rgba(245,243,238,.15) 32%,rgba(245,243,238,0) 55%)}
.hero-copy{position:relative;width:100%;padding-top:clamp(48px,9vh,110px);display:flex;flex-direction:column;gap:18px}
.hero h1{font-family:"Arial Black","Archivo Black","Helvetica Neue",Arial,sans-serif;font-weight:900;letter-spacing:.02em;mix-blend-mode:multiply;color:#8C7769;margin:0;font-size:clamp(48px,6.6vw,100px);line-height:1.08}
.hero .voice{margin:0;font-size:clamp(20px,2.2vw,28px)}

.statement{padding:160px var(--gutter);text-align:center}
.statement .voice{margin:0 auto;max-width:880px;font-size:clamp(30px,3.6vw,48px);line-height:1.3}
.doors{display:flex;flex-wrap:wrap;gap:48px;padding-bottom:160px}
.door{flex:1 1 420px;display:flex;flex-direction:column;gap:20px;text-decoration:none}
.door .img{aspect-ratio:3840/3080;overflow:hidden;background:var(--paper-2)}
.door img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
a.door:hover img{transform:scale(1.03)}
.door h2{margin:0;font-size:36px;line-height:1.15}
.link-u{text-decoration:underline;text-underline-offset:6px}

.work{padding-bottom:160px}
.work-head{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:flex-end;justify-content:space-between;padding-bottom:40px}
.work-head h2{margin:0;font-size:48px}
.filters{display:flex;gap:28px}
.filters[hidden]{display:none}
.filters button{font:inherit;letter-spacing:inherit;text-transform:inherit;background:none;border:0;border-bottom:1px solid transparent;color:var(--muted);padding:12px 0;min-height:44px;cursor:pointer}
.filters button[aria-pressed="true"]{border-bottom-color:var(--graphite);color:var(--graphite)}
.strip{display:flex;gap:24px;overflow-x:auto;padding:0 var(--gutter) 24px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.strip figure{flex:0 0 auto;margin:0;scroll-snap-align:start}
.strip img{height:clamp(320px,52vh,560px);width:auto;object-fit:cover;background:var(--paper-2)}
.strip figure[hidden]{display:none}
.strip-hint{padding-top:8px}

.about{background:var(--paper-2)}
.about-in{display:flex;flex-wrap:wrap;gap:64px;align-items:stretch;padding-top:160px;padding-bottom:160px}
.about-photo{flex:1 1 380px;max-width:480px}
.about-photo img{width:100%;height:auto}
.about-text{flex:999 1 480px;min-width:0;display:flex;flex-direction:column;gap:24px}
.about-text h2{margin:0;font-size:clamp(36px,4vw,56px);line-height:1.1}
.about-text .body{margin:0;max-width:620px}
.pull{margin:16px 0 0;max-width:620px;font-size:24px;line-height:1.5;padding-top:28px;border-top:1px solid var(--rule)}

.process{padding-top:140px;padding-bottom:140px}
.process ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:40px 80px}
.process li{display:flex;flex-direction:column;align-items:center;gap:16px}
.num-xl{font-family:var(--serif);font-weight:600;font-size:56px;line-height:1;color:var(--walnut)}
.step-xl{font-size:18px;letter-spacing:.2em}

.dark{background:var(--graphite);color:var(--paper)}
.dark a{color:var(--paper)}
.start-in{display:flex;flex-wrap:wrap;gap:64px;padding-top:140px;padding-bottom:140px}
.start-intro{flex:1 1 340px;display:flex;flex-direction:column;gap:20px}
.start-intro h2{margin:0;font-size:clamp(40px,4.5vw,60px);line-height:1.05}
.form-area{flex:999 1 520px;min-width:0}

.wix-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}
.field{display:flex;flex-direction:column;gap:8px;color:#E6E0D6}
.field.full{grid-column:1/-1}
.field label,.field legend{font-family:var(--sans);font-weight:300;font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.field .req{color:#D9D1C5}
.field input,.field textarea,.field select{font-family:var(--sans);font-weight:300;font-size:16px;color:var(--paper);background:transparent;border:0;border-bottom:1px solid #A69E92;padding:10px 0;border-radius:0;width:100%}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--paper)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-bottom-color:#F0B9A8}
.field fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.choices{display:flex;flex-wrap:wrap;gap:12px 28px}
.choice{display:flex;align-items:center;gap:10px;font-size:16px;text-transform:none;letter-spacing:0;min-height:44px;cursor:pointer}
.choice input{width:18px;height:18px;accent-color:var(--paper);margin:0}
.help{font-size:14px;line-height:1.5;color:#CFC7BB;margin:0}
.err{font-size:14px;color:#F0B9A8;margin:0;min-height:0}
.form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.form-error{grid-column:1/-1;color:#F0B9A8;margin:0}
.thanks{font-family:var(--voice);font-style:italic;font-size:clamp(24px,2.6vw,32px);line-height:1.4;margin:0}
.skeleton{height:420px;border:1px dashed #6f6a63}
@media (max-width:640px){.wix-form{grid-template-columns:minmax(0,1fr)}}

.page-intro{display:flex;flex-wrap:wrap;gap:64px;align-items:flex-end;align-items:last baseline;padding-top:120px;padding-bottom:96px}
.page-intro h1{margin:0;font-size:clamp(44px,6vw,84px);line-height:1.04}
.page-intro .lead{flex:1 1 340px;margin:0;max-width:420px}
.page-intro .head{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:24px}
.wide-img{width:calc(100% - 2 * var(--gutter));max-width:1280px;margin:0 auto;aspect-ratio:1936/1296;overflow:hidden;background:transparent}
.wide-img img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.sec-head{display:flex;flex-wrap:wrap;gap:24px 64px;align-items:flex-end;justify-content:space-between;margin-bottom:64px}
.sec-head h2{margin:0;font-size:clamp(36px,4vw,56px);line-height:1.1;max-width:640px}
.sec-head > p{margin:0;max-width:460px}
.situations{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:24px}
.card{background:var(--paper-2);padding:48px;display:flex;flex-direction:column;gap:16px}
.card h3{margin:0;font-size:32px;line-height:1.15}
.card .body{margin:0}
.steps{display:flex;flex-wrap:wrap;gap:48px;list-style:none;margin:0;padding:0}
.steps > li{flex:1 1 280px;display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--rule);padding-top:28px}
.steps h3{margin:0;font-size:28px}
.steps .body{margin:0;text-wrap:balance}
.num-lg{font-family:var(--serif);font-weight:600;font-size:44px;line-height:1;color:var(--walnut)}
.quote-band{display:flex;flex-wrap:wrap;gap:48px 96px;align-items:center;padding-top:160px;padding-bottom:160px}
.quote-band > .voice{flex:1 1 420px;margin:0;font-size:clamp(30px,3.4vw,46px);line-height:1.3}
.quote-band > div{flex:1 1 420px;display:flex;flex-direction:column;gap:20px}
.cta-band{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between;padding-top:120px;padding-bottom:120px}
.cta-band h2{margin:0;font-size:clamp(36px,4vw,56px);line-height:1.1;max-width:720px}
.cols{display:flex;flex-wrap:wrap;gap:56px;padding-top:140px;padding-bottom:140px}
.col{flex:1 1 320px;display:flex;flex-direction:column;gap:18px}
.col h2{margin:0;font-size:32px;line-height:1.15}
.dash{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.dash li{padding-left:20px;position:relative}
.dash li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--walnut)}
.partner-hero{display:flex;flex-wrap:wrap;gap:64px;align-items:center;padding-top:120px;padding-bottom:120px}
.partner-hero .head{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:24px}
.partner-hero h1{margin:0;font-size:clamp(44px,6vw,80px);line-height:1.04}
.partner-hero .img{flex:1 1 360px;height:480px;overflow:hidden;background:var(--paper-2)}
.partner-hero .img img{width:100%;height:100%;object-fit:cover}

.site-footer .wrap{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:center;padding-top:48px;padding-bottom:48px}
.site-footer .links{display:flex;flex-wrap:wrap;gap:12px 28px}
.site-footer a{text-decoration:none}
.site-footer img{height:32px;width:auto}

.fade{opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1s ease}
.fade.in{opacity:1;transform:none}
.hero-copy{animation:rise 1.2s ease-out both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .fade{opacity:1;transform:none;transition:none}
  .hero-copy{animation:none}
  html{scroll-behavior:auto}
  .door img{transition:none}
}
.line{display:block}
@media (max-width:700px){.line{display:inline}}
@media (min-width:900px){.about-photo{display:flex}.about-photo img{height:100%;min-height:100%;object-fit:cover;object-position:center 20%}}
.hero .voice{color:var(--walnut)}
.hero .accent-word{color:var(--graphite)}

/* mobile pass v1 */
section[id]{scroll-margin-top:96px}
@media (max-width:700px){
  :root{--gutter:20px}
  .body{font-size:16px}
  .label{letter-spacing:.18em}
  /* header: logo + button on one row, three links evenly below */
  .nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;row-gap:12px;column-gap:0;padding-top:12px;padding-bottom:12px}
  .nav .logo{grid-column:1;grid-row:1}
  .logo img{height:30px}
  .nav-links{display:contents}
  .nav .btn-outline{grid-column:2 / 4;grid-row:1;justify-self:end;padding:4px 11px;line-height:1.5;font-size:11px;letter-spacing:.14em;white-space:nowrap}
  .nav-links a:nth-child(1){grid-column:1;grid-row:2;justify-self:start}
  .nav-links a:nth-child(2){grid-column:2;grid-row:2;justify-self:center}
  .nav-links a:nth-child(3){grid-column:3;grid-row:2;justify-self:end}
  .nav-links a{font-size:11px}
  /* hero */
  .hero{min-height:82vh}
  .hero-copy{padding-top:36px;gap:12px}
  .hero .label{font-size:11px;max-width:none;line-height:1.8;text-align:left}
  .hero-label span{display:block}
  .hero-label .dot{display:none}
  .hero h1{font-size:clamp(30px,9vw,36px)}
  .hero .voice{font-size:20px;max-width:320px}
  /* home sections */
  .statement{padding:88px var(--gutter)}
  .statement .voice{font-size:28px}
  .doors{gap:56px;padding-bottom:88px}
  .door{gap:14px}
  .door h2{font-size:28px}
  .work{padding-bottom:88px}
  .work-head{padding-bottom:24px}
  .work-head h2{font-size:36px}
  .strip{gap:12px}
  .strip img{height:380px}
  .about-in{gap:36px;padding-top:88px;padding-bottom:88px}
  .about-photo{max-width:none}
  .about-text{gap:18px}
  .about-text h2{font-size:34px}
  .pull{font-size:21px;margin-top:8px;padding-top:24px}
  .process{padding-top:88px;padding-bottom:88px}
  .process ol{display:grid;justify-content:center;gap:20px}
  .process li{flex-direction:row;align-items:center;gap:20px}
  .num-xl{font-size:40px;min-width:52px}
  .step-xl{font-size:15px}
  .start-in{gap:36px;padding-top:88px;padding-bottom:88px}
  .start-intro h2{font-size:36px}
  /* footer */
  .site-footer .wrap{flex-direction:column;align-items:flex-start;gap:20px;padding-top:40px;padding-bottom:40px}
  /* commercial */
  .page-intro{gap:20px;padding-top:56px;padding-bottom:40px}
  .page-intro h1{font-size:42px}
  .page-intro .lead{max-width:none}
  main section.wrap[style*="padding-top:160px"]{padding-top:88px!important}
  main section.wrap[style*="padding-top:140px"]{padding-top:88px!important;padding-bottom:88px!important}
  main section.work[style*="padding-top:160px"]{padding-top:88px!important}
  .sec-head{gap:16px;margin-bottom:32px}
  .sec-head h2{font-size:34px}
  .situations{gap:16px}
  .card{padding:28px 24px;gap:10px}
  .card h3{font-size:26px}
  .steps{gap:36px}
  .steps > li{gap:12px;padding-top:22px}
  .steps h3{font-size:24px}
  .num-lg{font-size:36px}
  .quote-band{gap:24px;padding-top:88px;padding-bottom:88px}
  .quote-band > .voice{font-size:30px}
  .cta-band{gap:28px;padding-top:80px;padding-bottom:80px}
  .cta-band h2{font-size:30px}
  /* partner pages */
  .partner-hero{gap:32px;padding-top:48px;padding-bottom:64px}
  .partner-hero h1{font-size:40px}
  .partner-hero .img{flex-basis:100%;height:auto;aspect-ratio:4/3}
  .cols{gap:48px;padding-top:88px;padding-bottom:88px}
  .col h2{font-size:28px}
}

/* mobile header reveal */
@media (max-width:700px){
  .site-header:not(.static){position:fixed;left:0;right:0;top:0}
  .site-header:not(.static) ~ main{padding-top:55px}
  .site-header:not(.static) .nav{row-gap:0;transition:row-gap 1s cubic-bezier(.25,.1,.25,1) .1s}
  .site-header.show-links .nav{row-gap:10px;transition:row-gap 1s cubic-bezier(.25,.1,.25,1)}
  .site-header .nav-links a:not(.btn-outline){display:block;max-height:0;overflow:hidden;opacity:0;transition:max-height 1s cubic-bezier(.25,.1,.25,1) .1s,opacity .6s ease}
  .site-header.show-links .nav-links a:not(.btn-outline){max-height:28px;opacity:1;transition:max-height 1s cubic-bezier(.25,.1,.25,1),opacity 1.1s ease .35s}
}
@keyframes navIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.site-header .nav,.site-header .nav-links a{transition:none!important}}

/* mobile footer */
@media (max-width:700px){
  .site-footer .wrap:has(.links){padding-top:32px;padding-bottom:32px}
  .site-footer .wrap:has(.links) > img,
  .site-footer .wrap:has(.links) > span.label{display:none}
  .site-footer .links a[href^="mailto"]{display:none}
  .site-footer .links{width:100%;justify-content:space-between;gap:12px}
  .site-footer .links a{padding:10px 0}
}
.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}