:root{--ink:#20211f;--paper:#faf9f6;--line:#deddd7;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.9 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(28px,3.3vw,46px);line-height:1.65;letter-spacing:.12em}h3{font-size:24px;letter-spacing:.06em}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #9d7c43;outline-offset:6px}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:16px;background:white;z-index:100;padding:10px}.skip:focus{top:10px}.header{position:relative;height:102px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#fff;z-index:20;padding:12px 24px}.brand{font-family:var(--serif);font-size:clamp(22px,2.2vw,31px);letter-spacing:.18em;line-height:1.5}.header nav{display:flex;gap:38px;font-size:11px;letter-spacing:.12em;margin-top:7px}.header nav a{position:relative}.header nav a:after,.text-link:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}.header nav a:hover:after,.text-link:hover:after{transform:scaleX(1)}.header-contact{position:absolute;right:35px;top:35px;border:1px solid #858580;padding:7px 24px;font-size:11px;transition:background .3s,color .3s}.header-contact:hover{background:var(--ink);color:white}.menu-button,.mobile-contact{display:none}.hero{position:relative;height:calc(100svh - 102px);min-height:560px;max-height:1100px;overflow:hidden;background:#555}.hero-image{object-position:50% 52%;animation:hero-settle 1.5s ease-out both}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.12) 55%,rgba(0,0,0,.65) 100%);pointer-events:none}.hero-copy{position:absolute;z-index:1;bottom:13%;left:20px;right:20px;text-align:center;color:#fff}.hero h1{font-size:clamp(32px,4.8vw,68px);letter-spacing:.09em;line-height:1.6;margin-bottom:22px;text-shadow:0 2px 20px #0005}.button{display:inline-flex;align-items:center;justify-content:center;gap:36px;padding:12px 28px;border:1px solid currentColor;min-width:265px;letter-spacing:.12em;transition:background .3s,color .3s,transform .3s;background:transparent}.button span{transition:transform .3s}.button:hover span{transform:translateX(5px)}.light{color:#fff}.light:hover{background:#fff;color:var(--ink)}.scroll-cue{position:absolute;z-index:2;bottom:0;left:50%;transform:translateX(-50%);display:grid;justify-items:center;gap:8px;color:#fff;font-size:9px;letter-spacing:.25em}.scroll-cue i{width:1px;height:40px;background:#ffffff70;position:relative;overflow:hidden}.scroll-cue i:after{content:"";position:absolute;inset:0;background:white;animation:scroll-line 2.5s infinite}.section{padding:115px max(6vw,24px)}.eyebrow{font-size:10px;letter-spacing:.28em;line-height:1.5;margin-bottom:23px}.intro{text-align:center;padding-top:110px;padding-bottom:115px}.intro-text{margin:30px 0;line-height:2.5;letter-spacing:.06em}.text-link{position:relative;font-size:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.text-link span{margin-left:32px}.mobile-break{display:none}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:55px}.section-heading>p{color:#62635e;font-size:13px;line-height:2.3}.services{background:#eeede8}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-card{background:var(--paper);transition:transform .4s,box-shadow .4s}.service-card:hover,.service-card:focus-visible{transform:translateY(-7px);box-shadow:0 14px 30px #0000000c}.service-photo{height:280px;overflow:hidden}.service-photo img{transition:transform .65s;filter:saturate(.65)}.service-card:hover img{transform:scale(1.06)}.photo-one img{object-position:15% 50%}.photo-two img{object-position:74% 50%}.photo-three img{object-position:50% 15%}.card-copy{position:relative;padding:32px 28px 52px}.card-copy .eyebrow{font-size:9px;margin-bottom:14px}.card-copy h3{font-size:22px;margin-bottom:15px}.card-copy>p:last-of-type{color:#666760;font-size:12px;line-height:2.1}.card-arrow{position:absolute;bottom:20px;right:26px;font-size:20px}.approach{display:grid;grid-template-columns:1.1fr 1fr;background:#232622;color:#fff}.approach-image{min-height:800px;overflow:hidden}.approach-image img{object-position:28% 50%;filter:saturate(.3)}.approach-copy{padding:80px 12%}.approach-copy>p:not(.eyebrow){margin:25px 0 35px;color:#d2d2ca;line-height:2.2}.approach-item{border-top:1px solid #ffffff25;padding:22px 0}.approach-item h3{font-size:20px;margin-bottom:8px}.approach-item p{font-size:12px;color:#c2c4bb}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;list-style:none;margin:0;padding:0}.steps li{border-top:1px solid #a7a89e;padding-top:25px}.steps span{font-family:var(--serif);font-size:38px;color:#93948c}.steps h3{font-size:22px;margin:18px 0 14px}.steps p{color:#62635e;font-size:13px}.faq{display:grid;grid-template-columns:1fr 1.6fr;gap:55px;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;list-style:none;padding:26px 0;font-size:13px}summary::-webkit-details-marker{display:none}summary span{width:12px;height:12px;position:relative;flex-shrink:0}summary span:before,summary span:after{content:"";position:absolute;background:#555;left:0;top:5px;width:12px;height:1px}summary span:after{transform:rotate(90deg);transition:transform .3s}details[open] summary span:after{transform:rotate(0)}details>p{padding:0 28px 25px 0;font-size:13px;color:#666;line-height:2.2}.contact{position:relative;overflow:hidden;background:#20221f;text-align:center;color:white;padding-top:110px;padding-bottom:100px}.contact:before{content:"";position:absolute;width:520px;height:520px;border:1px solid #ffffff0c;border-radius:50%;top:-230px;right:-180px;animation:quiet-drift 12s ease-in-out infinite}.contact>div{position:relative}.contact h2{font-size:clamp(30px,3.6vw,50px)}.contact p:not(.eyebrow){margin:25px 0;color:#d2d3cc}.contact .button{margin-top:12px}.contact .demo-note{font-size:10px;letter-spacing:.03em;color:#a3a69d;margin-top:22px}.demo-feedback{font-size:12px}footer{text-align:center;padding:65px 24px 35px;background:#fff}.footer-links{display:flex;gap:30px;justify-content:center;font-size:11px;margin:26px 0}.sample-note{font-size:10px;color:#888;margin:25px 0 10px}small{font-size:9px;letter-spacing:.12em;color:#999}.floating-contact{position:fixed;z-index:30;right:24px;bottom:24px;background:var(--ink);color:#fff;padding:13px 22px;font-size:12px;box-shadow:0 5px 20px #0002}.floating-contact span{margin-left:25px}.js .reveal.pending{opacity:0;transform:translateY(25px)}.js .reveal{transition:opacity .8s,transform .8s}.js .service-card.reveal{transition:opacity .8s,transform .4s,box-shadow .4s}@keyframes hero-settle{from{transform:scale(1.04)}to{transform:scale(1)}}@keyframes scroll-line{0%{transform:translateY(-100%)}75%,100%{transform:translateY(100%)}}@keyframes quiet-drift{50%{transform:translate(-18px,22px)}}
@media(min-width:1600px){.section{padding-left:max(6vw,calc((100vw - 1400px)/2));padding-right:max(6vw,calc((100vw - 1400px)/2))}}
@media(max-width:1000px){.header-contact{right:20px;padding:7px 13px}.brand{font-size:25px}.service-photo{height:230px}.card-copy{padding:25px 20px 48px}.card-copy h3{font-size:19px}.approach-copy{padding:60px 9%}.approach-image{min-height:750px}.section{padding-top:85px;padding-bottom:85px}}
@media(max-width:760px){html{scroll-padding-top:78px}.header{height:78px;padding:0 55px 0 20px;align-items:center}.brand{font-size:21px;letter-spacing:.12em;white-space:nowrap}.header-contact{display:none}.menu-button{display:flex;position:absolute;right:16px;top:18px;width:40px;height:40px;flex-direction:column;justify-content:center;gap:6px;background:none;border:0;padding:8px}.menu-button span{display:block;height:1px;width:24px;background:var(--ink);transition:transform .3s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.header nav{display:none;position:absolute;top:78px;left:0;right:0;margin:0;background:#fff;padding:25px;flex-direction:column;gap:0;box-shadow:0 15px 25px #0001}.header nav.open{display:flex}.header nav a{padding:13px;border-bottom:1px solid var(--line)}.mobile-contact{display:block}.hero{height:calc(100svh - 78px);min-height:540px;max-height:980px}.hero-image{object-position:64% 50%}.hero-copy{bottom:15%;left:14px;right:14px}.hero h1{font-size:clamp(24px,6.5vw,38px);letter-spacing:.04em;margin-bottom:23px;white-space:nowrap}.button{min-width:230px;font-size:12px;padding:12px 24px;gap:30px}.section{padding:75px 24px}.eyebrow{font-size:9px;margin-bottom:18px}h2{font-size:30px;letter-spacing:.07em}.intro-text{font-size:12px;line-height:2.4;margin:25px 0}.mobile-break{display:block}.section-heading{display:block;margin-bottom:35px}.section-heading>p{margin-top:22px;font-size:12px}.service-grid{grid-template-columns:1fr;gap:25px}.service-photo{height:260px}.card-copy{padding:28px 26px 48px}.card-copy h3{font-size:24px}.card-copy>p:last-of-type{font-size:13px}.approach{grid-template-columns:1fr}.approach-image{min-height:0;height:380px}.approach-copy{padding:60px 28px}.approach-copy>p:not(.eyebrow){font-size:13px}.steps{grid-template-columns:1fr;gap:28px}.steps li{position:relative;padding-left:52px;padding-top:25px}.steps span{position:absolute;top:19px;left:0;font-size:28px}.steps h3{margin:0 0 12px;font-size:21px}.steps p{font-size:12px}.faq{grid-template-columns:1fr;gap:25px}summary{font-size:12px;padding:24px 0}.contact h2{font-size:32px}.contact p:not(.eyebrow){font-size:12px}.contact .demo-note{font-size:9px;max-width:260px;margin:22px auto}.contact:before{width:380px;height:380px}.footer-links{gap:23px}footer{padding-bottom:95px}.floating-contact{right:16px;bottom:max(16px,env(safe-area-inset-bottom));font-size:11px;padding:12px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal.pending{opacity:1;transform:none}}
