@font-face{font-family:AnticDidone;src:url('assets/antic-didone.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:PetitFormal;src:url('assets/petit-formal-script.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Jost;src:url('assets/jost.woff2') format('woff2');font-display:swap}

:root{--ink:#142d26;--forest:#294b3b;--mist:#eef0e9;--accent:#c4ac86;--white:#fcfcf8;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--mist);color:var(--ink);font:17px/1.65 Jost,sans-serif}
::selection{background:var(--accent);color:var(--ink)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:6px}
img{display:block;width:100%;height:100%;object-fit:cover}
figure,h1,h2,h3,p{margin:0}
h1,h2,h3{font:400 3rem/1.05 AnticDidone,serif;letter-spacing:-.025em;text-wrap:balance}
h2{font-size:clamp(52px,6vw,90px)}
em{font-weight:400}
p+p{margin-top:20px}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:30;pointer-events:none}
.header{position:absolute;top:0;left:0;right:0;z-index:10;height:112px;padding:0 5%;display:flex;justify-content:space-between;align-items:center;color:white;border-bottom:1px solid #ffffff38}
.logo{font:43px/.8 AnticDidone,serif;letter-spacing:-1.6px}
.logo span{display:block;font:10px Jost,sans-serif;letter-spacing:5px;text-align:center;margin-top:13px}
.header nav{display:flex;align-items:center;gap:36px;font-size:14px}
.header nav>a{position:relative}
.header nav>a:after{content:'';position:absolute;bottom:-6px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.header nav>a:hover:after{transform:scaleX(1)}
.nav-contact{border:1px solid #fff8;border-radius:100px;padding:12px 22px;margin-left:20px}
.nav-contact span{margin-left:25px}
.header nav>.nav-contact:after{display:none}
.menu{display:none}
.hero{height:100svh;min-height:780px;max-height:1250px;position:relative;color:white;overflow:hidden;background:#142d26}
.hero-backdrops,.hero-shade{position:absolute;inset:0}
.hero-background{position:absolute;inset:0;opacity:0;transform:scale(1.065);transition:opacity 1s ease,transform 1.8s var(--ease);object-position:center 67%}
.hero-background.active{opacity:1;transform:scale(1)}
.hero-background[data-scene="2"]{object-position:center 66%}
.hero-shade{background:linear-gradient(180deg,#091d17a6 0%,#183b2e55 35%,#183b2e55 65%,#091d17cc 100%)}
.hero-top{position:absolute;top:146px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px}
.hero-copy{position:absolute;top:49%;left:0;width:100%;transform:translateY(-50%);text-align:center;padding:0 20px}
.hero-copy h1{font-size:clamp(72px,7vw,96px);line-height:1.03;letter-spacing:-.03em;text-shadow:0 2px 40px #091d1755}
.hero-line{display:block}
.hero-line em{font-size:1em}
.hero-copy p{margin:25px 0 30px;font-size:17px;text-shadow:0 2px 10px #0009;line-height:1.6}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:var(--ink);color:var(--white);border:1px solid transparent;padding:19px 26px;font-size:14px;cursor:pointer;border-radius:3px;transition:background .25s,transform .25s var(--ease),color .25s}
.button span{font-size:22px;line-height:1;transition:transform .25s var(--ease)}
.button:hover span{transform:translate(3px,-3px)}
.button:active{transform:scale(.98)}
.hero-cta{background:var(--mist);color:var(--ink);border-radius:100px;padding:16px 24px}
.hero-cta:hover{background:white}
.hero-bottom{position:absolute;bottom:35px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;gap:20px}
.scroll-cue{display:flex;gap:16px;align-items:center;font-size:9px;letter-spacing:1.5px}
.scroll-line{height:43px;width:1px;background:#fff5;position:relative;overflow:hidden}
.scroll-line:after{content:'';position:absolute;inset:0;background:white;transform:translateY(-100%);animation:scroll-line 2.4s ease infinite}
.scene-picker{display:flex;gap:24px}
.scene-picker button{background:none;border:0;color:#fff;cursor:pointer;font-size:12px;padding:10px 0;position:relative;opacity:.7}
.scene-picker button:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.scene-picker button.active{opacity:1}
.scene-picker button.active:after{transform:scaleX(1)}
.scene-count{font-size:12px;letter-spacing:2px}
.section{padding:120px 8%}
.eyebrow{font-size:11px;letter-spacing:2px}
.chapter-label{font-size:14px;display:block;margin-bottom:25px}
.approach{position:relative;padding-top:120px;padding-bottom:100px;overflow:hidden}
.approach-heading{text-align:center;position:relative;z-index:2;pointer-events:none}
.approach-heading .eyebrow{margin-bottom:25px}
.approach h2{font-size:clamp(62px,6.8vw,96px);line-height:1.02}
.photo-composition{position:relative;height:440px;max-width:1050px;margin:-75px auto 0;perspective:1000px}
.print{position:absolute;background:#fcfcf8;padding:11px 11px 0;box-shadow:0 18px 55px #142d2620;width:26%;transform:rotate(var(--rotation));transition:box-shadow .5s var(--ease);will-change:transform}
.print img{height:280px}
.print figcaption{font:19px AnticDidone,serif;padding:12px 5px 15px}
.print-one{left:0;top:-85px;--rotation:-12deg}
.print-two{left:37%;top:125px;--rotation:7deg;width:25%;z-index:3}
.print-two img{height:230px}
.print-three{right:0;top:-85px;--rotation:12deg}
.composition-note{position:absolute;left:8%;top:320px;font:25px/1.2 AnticDidone,serif;transform:rotate(-8deg)}
.composition-note em{font-size:29px}
.approach-bottom{margin:85px auto 0;max-width:1070px;display:grid;grid-template-columns:1fr 1.1fr;gap:15%;align-items:start}
.approach-lead{font:46px/1.05 AnticDidone,serif}
.approach-bottom>div{font-size:16px}
.text-link{display:inline-flex;gap:28px;align-items:center;border-bottom:1px solid currentColor;padding:0 0 7px;margin-top:24px;font-size:14px}
.text-link span{transition:transform .25s}
.text-link:hover span{transform:translate(3px,-3px)}
.design-story{background:var(--ink);color:var(--mist);display:grid;grid-template-columns:1.05fr 1fr;gap:10%;align-items:center;padding-top:115px;padding-bottom:115px}
.story-photo{height:690px;position:relative;overflow:hidden;border-radius:45% 45% 0 0}
.story-photo img{object-position:60% center}
.vertical-label{position:absolute;bottom:25px;left:24px;font-size:10px;letter-spacing:2px;color:white;text-shadow:0 2px 8px #000}
.story-copy h2{font-size:clamp(55px,5vw,78px)}
.story-copy>p{font-size:16px;color:#d8e0d5;margin:30px 0}
.principle{padding:17px 0;border-top:1px solid #eef0e935;display:grid;grid-template-columns:.8fr 1fr;gap:20px}
.principle span{font:25px/1.15 AnticDidone,serif}
.principle p{font-size:14px;color:#d8e0d5;line-height:1.65}
.services{background:var(--accent);padding-top:100px;padding-bottom:115px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:55px}
.section-heading h2{font-size:clamp(56px,5.5vw,82px)}
.section-heading>p{font-size:16px;max-width:320px}
.service-list details{border-top:1px solid #142d2660;transition:background .25s}
.service-list details:last-child{border-bottom:1px solid #142d2660}
.service-list summary{display:flex;align-items:center;gap:30px;padding:29px 0;cursor:pointer;list-style:none}
.service-list summary::-webkit-details-marker{display:none}
.service-name{font:clamp(30px,3.7vw,56px)/1.1 AnticDidone,serif;flex:1}
.service-kind{font-size:10px;letter-spacing:1.3px}
.service-toggle{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid #142d2680;border-radius:50%;font-size:26px;transition:transform .35s var(--ease),background .25s}
.service-list details[open] .service-toggle{transform:rotate(45deg);background:var(--ink);color:var(--accent)}
.service-detail{max-width:630px;margin-left:34%;padding-bottom:34px}
.service-detail p{font-size:16px}
.service-detail p+p{font-size:13px;opacity:.8}
.service-detail .text-link{margin-top:18px}
.social{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:970px;background:var(--forest);color:var(--mist);overflow:hidden}
.social-photo{position:relative;min-height:100%;overflow:hidden}
.social-photo img{position:absolute;inset:0;object-position:50%;filter:brightness(.7)}
.social-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#091d17cc)}
.social-photo-copy{position:absolute;bottom:70px;left:12%;right:8%;z-index:1;color:white}
.social-photo-copy>.eyebrow{font-size:10px}
.social-photo-copy>p:last-child{font:clamp(44px,4.7vw,72px)/1.05 AnticDidone,serif;margin-top:25px}
.social-content{position:relative;z-index:1;padding:65px 12% 65px 11%}
.social-content>.chapter-label{max-width:250px;color:#dce4d9;font-size:13px}
.stat{font:clamp(92px,9.5vw,146px)/1 AnticDidone,serif;letter-spacing:-.045em;margin:38px 0 0}
.stat>span:last-child{font-size:.72em}
.stat-label{font-size:9px;letter-spacing:1.7px;margin:10px 0 45px}
.social-content h2{font-size:clamp(47px,4.1vw,66px);margin-bottom:26px}
.social-content>p:not(.stat-label){font-size:16px;color:#dce4d9}
.social-links{margin-top:33px}
.social-links a{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #eef0e955;padding:19px 0}
.social-links a:last-child{border-bottom:1px solid #eef0e955}
.social-links strong{font-size:22px;font-weight:400}
.social-links small{display:block;font-size:12px;color:#dce4d9;margin-top:3px}
.social-links a>span:last-child{font-size:27px;transition:transform .3s}
.social-links a:hover>span:last-child{transform:translate(3px,-3px)}
.process{background:var(--mist);padding-top:100px;padding-bottom:110px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:5%}
.steps article{border-top:1px solid #142d2650;padding-top:22px;position:relative}
.step-number{font-size:11px;letter-spacing:1.4px}
.steps h3{font-size:36px;margin:22px 0 17px}
.steps p{font-size:16px}
.contact{background:var(--ink);color:var(--mist);display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:110px;padding-bottom:110px}
.contact-copy h2{font-size:clamp(66px,7vw,96px);line-height:1.01;margin:35px 0}
.contact-copy h2 em{color:var(--accent)}
.contact-copy>p{font-size:16px;max-width:370px;color:#dce4d9}
.contact-copy .chapter-label{font-size:13px}
.email{display:inline-block;font-size:18px;margin-top:30px;border-bottom:1px solid #eef0e970;overflow-wrap:anywhere}
.contact-copy>.text-link{font-size:12px;margin-top:17px}
form{align-self:center;background:#eef0e90b;padding:36px 32px;border:1px solid #eef0e930;transform:none}
form h3{font-size:40px;margin-bottom:25px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
label{display:block;font-size:13px;margin-bottom:22px}
label>span{opacity:.7}
input,textarea,select{display:block;width:100%;min-width:0;border:0;border-bottom:1px solid #eef0e960;border-radius:0;background:transparent;padding:12px 0;font-size:14px;color:var(--mist)}
input::placeholder,textarea::placeholder{color:#6b7567;opacity:1}
select option{background:var(--ink);color:var(--mist)}
select{min-height:49px}
textarea{resize:vertical;min-height:100px}
form .button{background:var(--accent);color:var(--ink);width:100%;margin-top:7px;gap:15px;font-size:13px}
form .button:hover{background:#d8c6a7}
.form-note{font-size:11px;margin-top:12px;color:#596555}
#form-status{font-size:13px;margin-top:12px}
footer{padding:55px 5% 25px;background:var(--accent);overflow:hidden}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-bottom:50px}
.footer-top p{font-size:14px}
.footer-top>div>a{display:block;font-size:14px;margin:7px 0}
.footer-wordmark{font:clamp(75px,16.5vw,270px)/.9 AnticDidone,serif;letter-spacing:-.045em;white-space:nowrap;padding:15px 0 50px}
.footer-wordmark>span{font:25px Jost,sans-serif;vertical-align:top;display:inline-block;margin:12px 0 0 10px}
.footer-bottom{border-top:1px solid #142d2650;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:12px}
.footer-bottom>span:nth-child(2){font-size:9px;letter-spacing:1.5px}
.skip{position:absolute;top:-100px;left:20px;z-index:30;padding:10px;background:white;color:var(--ink)}
.skip:focus{top:15px}

@keyframes scroll-line{0%{transform:translateY(-100%)}
65%,100%{transform:translateY(100%)}
}
@keyframes hero-entry{from{opacity:0;transform:translateY(45px)}
to{opacity:1;transform:translateY(0)}
}
@keyframes image-entry{from{transform:scale(1.08)}
to{transform:scale(1)}
}

@media(prefers-reduced-motion:no-preference){.hero-line{animation:hero-entry 1.2s var(--ease) both}
.hero-line:nth-child(2){animation-delay:.12s}
.hero-copy p{animation:hero-entry 1.1s .25s var(--ease) both}
.hero-copy .button{animation:hero-entry 1.1s .35s var(--ease) both}
.hero-background:first-child{animation:image-entry 2s var(--ease)}
}

@media(hover:hover) and (pointer:fine){.print:hover{box-shadow:0 30px 70px #142d2635;z-index:4}
.service-list summary:hover .service-name{transform:translateX(9px)}
.service-name{transition:transform .35s var(--ease)}
}

@media(min-width:1600px){.section{padding-left:max(8%,calc((100vw - 1400px)/2));padding-right:max(8%,calc((100vw - 1400px)/2))}
.hero-copy h1{font-size:96px}
.photo-composition{margin-top:-40px}
}

@media(max-width:1100px){.header nav{gap:20px}
.nav-contact{margin-left:0}
.section{padding-left:6%;padding-right:6%}
.photo-composition{margin-top:-10px}
.print-one,.print-three{top:0}
.print img{height:230px}
.print-two img{height:210px}
.print-two{top:135px}
.composition-note{top:320px;font-size:22px}
.approach-bottom{margin-top:55px;gap:10%}
.design-story{gap:7%}
.story-photo{height:630px}
.principle{grid-template-columns:1fr;gap:6px}
.social{min-height:1030px}
.social-content{padding:60px 10%}
.contact{gap:6%}
form{padding:30px 22px}
.contact-copy h2{font-size:80px}
.hero-bottom .scene-count{display:none}
}

@media(max-width:760px){body{font-size:16px}
.header{height:90px;padding:0 6%}
.logo{font-size:34px}
.logo span{font-size:9px;margin-top:10px}
.menu{display:flex;gap:22px;align-items:center;padding:10px 0;border:0;background:none;color:white;font-size:14px}
.menu span{font-size:23px}
.header nav{display:none;position:absolute;top:90px;left:0;right:0;background:var(--ink);padding:25px 6% 35px;gap:24px;align-items:stretch}
.header nav.open{display:flex;flex-direction:column}
.nav-contact{align-self:start}
.hero{height:100svh;min-height:720px;max-height:1000px}
.hero-top{top:118px;left:6%;right:6%;font-size:9px;letter-spacing:1.6px}
.hero-top span:last-child{display:none}
.hero-copy{top:45%;padding:0 5%}
.hero-copy h1{font-size:clamp(60px,12vw,90px);line-height:1.08}
.hero-copy p{font-size:16px;margin:24px 0}
.hero-cta{font-size:12px;gap:20px;padding:15px 19px}
.hero-background{object-position:53% center}
.hero-bottom{bottom:24px;left:6%;right:6%;display:flex;flex-direction:column;align-items:stretch;gap:24px}
.scroll-cue{font-size:8px;letter-spacing:1.5px;align-self:center}
.scroll-line{height:30px}
.scene-picker{justify-content:space-between;gap:15px;border-top:1px solid #ffffff4d;padding-top:14px}
.scene-picker button{font-size:11px}
.section{padding:75px 6%}
.approach-heading{text-align:left}
.approach-heading .eyebrow{font-size:10px}
.approach h2{font-size:clamp(55px,10vw,76px)}
.photo-composition{height:370px;margin:35px -1% 0}
.print{width:43%;padding:7px 7px 0}
.print img{height:190px}
.print figcaption{font-size:15px;padding:10px 2px}
.print-one{left:1%;top:0;--rotation:-8deg}
.print-three{right:1%;top:30px;--rotation:9deg}
.print-two{left:28%;top:115px;width:43%;--rotation:2deg}
.print-two img{height:190px}
.composition-note{display:none}
.approach-bottom{margin-top:35px;display:block}
.approach-lead{font-size:40px;margin-bottom:28px}
.approach-bottom>div{font-size:16px}
.design-story{grid-template-columns:1fr;gap:45px}
.story-photo{height:500px;max-width:420px;width:100%;margin:auto}
.story-copy h2{font-size:60px}
.principle{grid-template-columns:.85fr 1.15fr;gap:20px}
.principle span{font-size:25px}
.principle p{font-size:14px}
.chapter-label{font-size:13px;margin-bottom:22px}
.section-heading{display:block;margin-bottom:35px}
.section-heading h2{font-size:60px}
.section-heading>p{margin-top:25px}
.service-list summary{gap:15px;padding:24px 0}
.service-name{font-size:31px}
.service-kind{display:none}
.service-toggle{flex-shrink:0;width:33px;height:33px;font-size:22px}
.service-detail{margin:0;padding-bottom:28px}
.service-detail p{font-size:15px}
.social{grid-template-columns:1fr;min-height:0}
.social-photo{min-height:500px}
.social-photo-copy{bottom:40px;left:6%}
.social-photo-copy>p:last-child{font-size:54px}
.social-content{padding:58px 6% 65px}
.social-content>.chapter-label{max-width:none}
.stat{font-size:136px;margin-top:30px}
.stat-label{font-size:9px}
.social-content h2{font-size:59px}
.social-links small{font-size:12px}
.steps{grid-template-columns:1fr;gap:32px}
.steps h3{margin-top:18px}
.contact{grid-template-columns:1fr;gap:48px}
.contact-copy h2{font-size:80px}
.contact-copy>p{max-width:none}
.contact-copy>.text-link{font-size:12px}
.email{font-size:17px}
form{padding:30px 23px;transform:rotate(0)}
.form-row{grid-template-columns:1fr;gap:0}
input,select,textarea{font-size:16px}
form .button{font-size:12px;padding:16px 17px}
.footer-top{flex-wrap:wrap;align-items:start;gap:30px;padding-bottom:30px}
.footer-top p{font-size:13px}
.footer-top>div>a{font-size:13px}
.footer-wordmark{font-size:16.1vw;padding:20px 0 35px}
.footer-wordmark>span{font-size:12px;margin:0 0 0 4px}
.footer-bottom{flex-wrap:wrap;gap:10px;font-size:11px}
.footer-bottom>span:nth-child(2){display:none}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}
.hero-background{transform:none!important}
.print{will-change:auto}
}

/* The same photographic direction, with room for practical information. */
.hero-category{display:block;font:12px/1.5 Jost,sans-serif;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px}
.footer-nav{display:flex;flex-wrap:wrap;gap:15px 30px;border-top:1px solid #142d2640;padding:24px 0;font-size:13px}
.footer-nav a:hover,.legal-copy a,.faq-followup a{ text-decoration:underline;text-underline-offset:4px}
.footer-nav button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.interior .header{position:relative;color:var(--ink);border-bottom:1px solid #142d2630}
.interior .nav-contact{border-color:#142d2670}
.page-hero{padding-top:55px;padding-bottom:80px}
.page-hero.with-photo{display:grid;grid-template-columns:1.2fr .8fr;gap:9%;align-items:center}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;line-height:1.5;margin-bottom:58px;opacity:.8}
.page-hero .eyebrow{margin-bottom:24px}
.page-hero h1{font-size:clamp(58px,6.3vw,92px);line-height:1.02;max-width:1000px}
.page-intro{max-width:650px;margin-top:28px;font-size:18px}
.page-hero-photo{height:530px;position:relative;transform:rotate(3deg);background:var(--white);padding:12px 12px 40px;box-shadow:0 18px 45px #142d2615}
.page-hero-photo img{height:100%;border-radius:45% 45% 0 0}
.page-hero-photo figcaption{font:21px AnticDidone,serif;margin-top:8px}
.page-body{padding-top:70px;background:var(--white)}
.editorial-split{display:grid;grid-template-columns:1fr 1.1fr;gap:12%}
.editorial-split h2{font-size:clamp(46px,4.5vw,65px)}
.editorial-split h3{font-size:32px;margin-top:38px}
.feature-list{list-style:none;margin:20px 0 28px;padding:0}
.feature-list li{border-bottom:1px solid #142d2630;padding:14px 0}
.feature-list li:before{content:'↗';margin-right:15px}
.related-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:55px;font-size:14px;border-top:1px solid #142d2640;padding-top:24px}
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.service-card{display:flex;flex-direction:column;gap:25px;padding:32px 24px;background:var(--mist);transition:transform .3s var(--ease),background .3s}
.service-card:nth-child(2){background:var(--accent)}
.service-card h2{font-size:44px}
.service-card p{font-size:15px}
.service-card .text-link{margin-top:auto;align-self:start}
.service-card:hover{transform:translateY(-6px)}
.scope-note{display:grid;grid-template-columns:1fr 1fr;gap:25px 10%;margin-top:85px;padding-top:40px;border-top:1px solid #142d2640}
.scope-note h2{font-size:50px;grid-row:span 2}
.scope-note .text-link{justify-self:start;margin-top:0}
.page-cta{text-align:center;background:var(--accent)}
.page-cta h2{margin:25px 0 35px;font-size:clamp(55px,6vw,85px)}
.page-proof{background:var(--ink);color:var(--mist)}
.proof-split{display:grid;grid-template-columns:.8fr 1fr;gap:12%;align-items:start;margin-top:40px}
.proof-number{font:clamp(90px,12vw,165px)/1 AnticDidone,serif;letter-spacing:-6px}
.proof-split h2{font-size:clamp(48px,4.5vw,66px);margin-bottom:30px}
.proof-split p+p{font-size:13px;opacity:.8}
.proof-split .related-links{border-color:#eef0e950}
.faq-list details{border-top:1px solid #142d2640;padding:0}
.faq-list details:last-child{border-bottom:1px solid #142d2640}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;font:30px/1.2 AnticDidone,serif;padding:25px 0;cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font:24px Jost,sans-serif;flex-shrink:0;transition:transform .25s}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{max-width:780px;padding:0 0 28px;font-size:16px}
.faq-followup{margin-top:35px}
.homepage-faq{background:var(--mist)}
.faq-page{padding-top:25px}
.legal-page .page-hero{padding-bottom:45px}
.legal-copy{padding-top:45px;background:var(--white);padding-left:max(8%,calc((100% - 850px)/2));padding-right:max(8%,calc((100% - 850px)/2))}
.legal-copy h2{font-size:35px;margin:45px 0 18px}
.legal-copy h2:first-child{margin-top:0}
.legal-copy p{font-size:16px}
.consent-panel{position:fixed;z-index:50;bottom:18px;right:18px;max-width:470px;padding:25px;background:var(--white);color:var(--ink);border:1px solid #142d2640;box-shadow:0 10px 45px #142d2630}
.consent-panel[hidden]{display:none}
.consent-panel h2{font-size:30px}
.consent-panel p{font-size:13px;margin:12px 0}
.consent-actions{display:flex;gap:12px;flex-wrap:wrap}
.consent-actions button{padding:10px 16px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:13px;cursor:pointer}
.consent-actions button:last-child{background:var(--ink);color:white}

@media(max-width:1000px){.service-cards{grid-template-columns:1fr}
.service-card h2{max-width:700px}
.page-hero.with-photo{gap:5%}
.page-hero-photo{height:420px}
.service-card:hover{transform:none}
}

@media(max-width:760px){.interior .header{height:85px}
.interior .header nav{background:var(--ink);color:var(--mist)}
.interior .menu{color:var(--ink)}
.page-hero{padding-top:30px;padding-bottom:60px}
.page-hero.with-photo,.editorial-split,.scope-note,.proof-split{grid-template-columns:1fr;gap:35px}
.page-hero h1{font-size:58px;overflow-wrap:break-word}
.page-hero .breadcrumbs{margin-bottom:35px;font-size:10px}
.page-intro{font-size:16px}
.page-hero-photo{height:400px;max-width:380px;width:90%;margin:20px auto 0}
.page-body{padding-top:50px}
.editorial-split h2,.scope-note h2{font-size:46px}
.proof-number{font-size:110px}
.proof-split h2{font-size:50px}
.faq-list summary{font-size:26px}
.legal-copy{padding-left:6%;padding-right:6%}
.hero-category{font-size:10px;letter-spacing:1.4px}
.footer-nav{gap:15px 23px}
.consent-panel{left:12px;right:12px;bottom:12px;padding:20px}
}

.location-links{display:grid;grid-template-columns:1fr 1fr;gap:0 60px}
.location-links a{border-top:1px solid #142d2640;padding:35px 0;display:flex;flex-direction:column;gap:12px}
.location-links h2{font-size:58px}
.location-links span{font-size:13px}
.location-links a:hover span{text-decoration:underline}
.home-locations{background:var(--white)}
.home-locations h2{margin:25px 0}
.home-locations p{max-width:620px}
@media(max-width:760px){.location-links{grid-template-columns:1fr}
.location-links h2{font-size:48px}
}

.page-category{display:block;font:12px/1.6 Jost,sans-serif;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:24px}


/* Pacific Northwest: deep fir, forest canopy, fog white, and weathered cedar. */
:root{--line:#142d2626;--muted:#5d6a5b;--focus:#294b3b}

.button{border-radius:6px;font-size:15px;min-height:50px;justify-content:center;gap:12px}

.button:hover{background:var(--forest);color:var(--white)}

.hero-cta{background:var(--accent);color:var(--ink);border-radius:100px;padding:17px 30px}

.hero-cta:hover{background:#d8c6a7;color:var(--ink)}

.hero-copy h1 em{color:#e9e5d9}

.header nav,.text-link{font-size:15px}

.hero-top,.eyebrow,.hero-category,.page-category,.step-number,.stat-label,.service-kind{font-size:12px;letter-spacing:1.5px}

.hero-top{line-height:1.5}

.scene-picker button{font-size:14px;min-height:44px}

.scroll-cue{font-size:12px;letter-spacing:1px}

.services{background:var(--white)}

.service-list details[open]{background:var(--mist)}

.service-list summary,.service-detail{padding-left:22px;padding-right:22px}

.service-kind{max-width:180px;text-align:right}

.service-list details[open] .service-toggle{color:var(--white)}

.social{background:var(--forest);color:var(--white)}

.social-content>.chapter-label,.social-content>p:not(.stat-label),.social-links small{color:#e5ebe0}

.stat{color:var(--accent)}

.social-links strong{font-size:clamp(20px,2vw,25px)}

.social-links small{font-size:14px}

.social-links a{min-height:88px}

.social-links a:hover{color:var(--accent)}

.design-story{background:var(--ink);color:var(--white)}

.process{background:var(--mist)}

.homepage-faq{background:#dce2d7}

.home-locations{background:var(--white)}

.service-card{border:1px solid var(--line);border-radius:8px;background:var(--mist)}

.service-card:nth-child(2){background:var(--forest);color:var(--white)}

.service-card:nth-child(3){background:#e0d7c7}

.page-cta{background:var(--forest);color:var(--white)}

.page-cta .button{background:var(--accent);color:var(--ink)}

.page-cta .button:hover{background:#d8c6a7}

.page-proof{color:var(--white)}

.proof-number{color:var(--accent)}

.contact{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(40px,6vw,90px);align-items:start;color:var(--white)}

.contact-copy{padding-top:18px;min-width:0}

.contact-copy h2{font-size:clamp(56px,6vw,88px);margin:28px 0;line-height:1.05}

.contact-copy>.text-link{font-size:14px;display:table;line-height:1.6}

.contact-copy .email{font-size:clamp(16px,1.5vw,19px)}

#inquiry-form{align-self:start;min-width:0;width:100%;margin:0;padding:clamp(26px,3.2vw,46px);transform:none;background:var(--white);color:var(--ink);border:1px solid #fff;border-radius:12px;box-shadow:0 24px 64px #081a1338}

#inquiry-form h3{font-size:42px;margin:0 0 28px}

#inquiry-form .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}

#inquiry-form label{font-size:14px;line-height:1.5;margin:0 0 22px;min-width:0}

#inquiry-form label>span{opacity:1;color:var(--muted)}

#inquiry-form input,#inquiry-form textarea,#inquiry-form select{width:100%;margin-top:9px;padding:13px 14px;border:1px solid #a5b09f;border-radius:5px;background:#f0f2ec;color:var(--ink);font-size:16px;line-height:1.5;min-height:52px;box-shadow:none}

#inquiry-form input::placeholder,#inquiry-form textarea::placeholder{color:#596555}

#inquiry-form select{padding-right:28px}

#inquiry-form select option{background:var(--white);color:var(--ink)}

#inquiry-form textarea{min-height:145px}

#inquiry-form :is(input,select,textarea):focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-color:var(--focus);background:white}

#inquiry-form .button{background:var(--forest);color:white;font-size:15px;margin-top:0;min-height:54px}

#inquiry-form .button:hover{background:#1e392c}

#inquiry-form .button:disabled{opacity:.65;cursor:not-allowed}

#inquiry-form .form-note{font-size:13px;line-height:1.6;color:var(--muted);margin-top:16px}

#inquiry-form .form-note a{text-decoration:underline;text-underline-offset:3px}

#form-status{font-size:14px;line-height:1.6}

#form-status:empty{display:none}

footer{background:var(--forest);color:var(--white)}

.footer-wordmark{color:var(--accent)}

.footer-nav,.footer-bottom{border-color:#ffffff40}

.footer-nav,.footer-top>div>a,.footer-bottom{font-size:14px}

.footer-bottom>span:nth-child(2){font-size:12px;letter-spacing:1px}

.footer-nav a:hover{color:var(--accent)}

.consent-panel{border-radius:10px}

.consent-panel p,.consent-actions button{font-size:14px}

.consent-actions button{min-height:44px;border-radius:4px}

.consent-actions button:last-child{background:var(--forest);border-color:var(--forest)}

@media(max-width:1000px){.contact{gap:36px;grid-template-columns:1fr}
.contact-copy{max-width:700px;padding:0}
.contact-copy h2{font-size:clamp(56px,8vw,80px)}
#inquiry-form{max-width:760px}
.contact-copy>p{max-width:600px}
}

@media(max-width:760px){.hero-top,.hero-category,.eyebrow,.stat-label{font-size:12px}
.hero-top{top:115px}
.hero-copy h1{font-size:clamp(56px,12vw,86px)}
.hero-copy{top:46%}
.hero-cta{font-size:14px}
.scroll-cue{font-size:11px}
.scene-picker{gap:10px}
.scene-picker button{font-size:12px}
.section-heading h2,.story-copy h2,.social-content h2{font-size:clamp(44px,11vw,60px)}
.contact{gap:38px}
#inquiry-form{padding:28px 22px}
#inquiry-form h3{font-size:36px}
#inquiry-form .form-row{grid-template-columns:1fr;gap:0}
.service-list summary,.service-detail{padding-left:12px;padding-right:12px}
.service-name{font-size:clamp(27px,6.5vw,34px)}
.contact-copy>.text-link{max-width:100%}
.footer-top p,.footer-top>div>a{font-size:14px}
.footer-bottom{font-size:13px}
.interior .header nav{top:85px}
.page-hero-photo{transform:rotate(2deg)}
}


.hero-shade{background:linear-gradient(180deg,#091d17a6 0%,#112c2266 40%,#112c2259 65%,#091d17cc 100%)}
.hero-copy h1 em{color:var(--white)}

/* Antic Didone sets the editorial voice; Petit Formal Script supplies the personal accents. */
h1,h2,h3{line-height:1.14;letter-spacing:-.035em;font-weight:400}
h1 em,h2 em,.approach-lead em,.composition-note em,.social-photo-copy em{font-family:PetitFormal,cursive;font-size:.72em;font-style:normal;line-height:1.6;letter-spacing:-.045em;font-weight:400}
.hero-copy h1{font-size:clamp(62px,6.2vw,90px);line-height:1.18;letter-spacing:-.045em}
.hero-line em{font-size:.72em;line-height:1.65;display:inline-block}
.logo{font-size:35px;letter-spacing:-1.7px;line-height:1}
.logo span{margin-top:8px}
.approach h2{font-size:clamp(52px,5.7vw,82px);line-height:1.14}
.approach-lead{font-size:40px;line-height:1.18}
.story-copy h2{font-size:clamp(44px,4.3vw,64px);line-height:1.18}
.section-heading h2{font-size:clamp(46px,4.8vw,70px)}
.social-content h2{font-size:clamp(39px,3.5vw,54px);line-height:1.2}
.contact-copy h2{font-size:clamp(44px,4.5vw,66px);line-height:1.2}
.contact-copy h2 em{display:inline-block;margin-top:10px}
#inquiry-form h3{font-size:34px;line-height:1.25}
.service-name{font-size:clamp(28px,3.2vw,46px);line-height:1.2}
.page-hero h1{font-size:clamp(44px,5.3vw,76px);line-height:1.18}
.page-hero h1 em{display:inline-block}
.page-hero-photo figcaption,.print figcaption{font-size:17px;line-height:1.3}
.page-hero-photo{padding-bottom:44px}
.service-card h2{font-size:36px;line-height:1.2}
.steps h3{font-size:30px;line-height:1.2}
.faq-list summary{font-size:26px;line-height:1.3}
.footer-wordmark{font-size:15vw;letter-spacing:-.055em;line-height:1.1}
@media(max-width:1000px){.contact-copy h2{font-size:clamp(44px,7vw,66px)}}
@media(max-width:760px){.logo{font-size:28px}.hero-copy h1{font-size:clamp(43px,10.4vw,70px)}.hero-line em{font-size:.72em}.hero-copy{top:46%}.hero-copy p{margin-top:16px}.approach h2{font-size:clamp(38px,9.5vw,60px)}.section-heading h2,.story-copy h2,.social-content h2{font-size:clamp(38px,9.5vw,56px)}.contact-copy h2{font-size:clamp(39px,10vw,60px)}.page-hero h1{font-size:clamp(36px,9.5vw,58px)}.service-name{font-size:clamp(23px,5.6vw,32px)}.service-card h2{font-size:32px}#inquiry-form h3{font-size:28px}.faq-list summary{font-size:23px}.print figcaption{font-size:13px}.footer-wordmark{font-size:14.8vw}.social-photo-copy>p:last-child{font-size:44px}.location-links h2{font-size:40px}}
