:root{--card-surface:#f5f2eb;--card-border:#d6ccba;--card-shadow:0 8px 26px #695a3f0d;--entrance-distance:180px;--ease:cubic-bezier(.25,0,.2,1);--ease-fade:cubic-bezier(.37,0,.63,1)}
.header-signature{display:inline-flex;align-items:center;letter-spacing:0;line-height:1}
.brand-mark{width:48px;height:37px;overflow:visible}
.site-header{gap:14px}
.menu-toggle{min-height:40px;padding:11px 16px;gap:13px;border-radius:999px;border-color:#d9d3c680;background:#faf9f6e8;backdrop-filter:blur(16px);box-shadow:0 3px 18px #101b2510;transition:background .3s,box-shadow .3s}
.menu-toggle:hover{background:#fff;box-shadow:0 5px 24px #101b2526}
.menu-lines{width:17px;height:7px}
.hero{min-height:max(800px,100svh);max-height:none}
.hero-sculpture{width:54%;max-width:740px;max-height:calc(100% - 110px);bottom:0;mask-image:linear-gradient(#000 0%,#000 54%,#000f 61%,#000c 69%,#0007 78%,#0002 87%,transparent 95%,transparent 100%)}
.hero-left{top:53%;width:23%}
.hero-right{top:49%;width:23%;border:0}
.nav-dialog{inset:78px var(--gutter) auto auto;width:430px;max-width:calc(100% - 32px);height:auto;max-height:calc(100dvh - 104px);margin:0;padding:25px 29px 24px;border:1px solid #d1c5ae65;border-radius:14px;background:#fcfaf5;box-shadow:0 30px 100px #0003}
.nav-dialog::backdrop{background:#06111c65;backdrop-filter:blur(7px)}
.nav-dialog .wordmark{font-size:23px}
.nav-dialog .close-button{min-height:30px;font-size:7px;gap:12px;color:#8b816d}
.nav-dialog .close-button>span{font-size:24px}
.nav-dialog .main-nav{margin:24px 0 22px}
.nav-dialog .main-nav>a{padding:11px 0;gap:21px;transition:padding .3s,color .3s}
.nav-dialog .main-nav>a:hover{padding-left:7px}
.nav-dialog .main-nav>a>span{font-size:42px;line-height:1.12}
.nav-dialog .main-nav i{font-size:25px}
.scene-transition{position:relative;isolation:isolate;height:clamp(420px,42vw,720px);overflow:hidden;margin:-1px 0;background:linear-gradient(in oklab,#fff 0%,color-mix(in oklab,#fff 99.14%,#3187c8) 10%,color-mix(in oklab,#fff 94.21%,#3187c8) 20%,color-mix(in oklab,#fff 83.69%,#3187c8) 30%,color-mix(in oklab,#fff 68.26%,#3187c8) 40%,color-mix(in oklab,#fff 50%,#3187c8) 50%,color-mix(in oklab,#fff 31.74%,#3187c8) 60%,color-mix(in oklab,#fff 16.31%,#3187c8) 70%,color-mix(in oklab,#fff 5.79%,#3187c8) 80%,color-mix(in oklab,#fff .86%,#3187c8) 90%,#3187c8 100%)}
.scene-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.services{background:#fff;color:#111;padding-bottom:72px}
.services-heading{display:flex;flex-direction:column;align-items:center;gap:24px;max-width:1050px;margin:0 auto 46px;text-align:center}
.services-heading .serif-heading{max-width:100%;text-wrap:balance}
.services-heading>p{align-self:center;max-width:610px;padding:0;color:#716b60;font-size:14px;line-height:1.85;text-wrap:pretty}
.service-card{background:var(--card-surface);color:#111;border:1px solid var(--card-border);border-radius:7px;box-shadow:var(--card-shadow)}
.service-panels{padding-top:30px}
.service-tabs-label{margin:0 0 13px;font-size:10px;letter-spacing:.04em;color:#817765}
.service-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-bottom-color:#e5dfd3;padding-bottom:25px}
.service-tabs button{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:52px;padding:12px 9px;font-size:11px;line-height:1.4;white-space:normal;border:1px solid #d8cebb;border-radius:7px;background:#faf8f3;color:#544c3e;box-shadow:0 2px 3px #4e402707;transition:background .3s,color .3s,border-color .3s,box-shadow .3s,translate .3s}
.service-tabs button[aria-selected=true]{background:#25231f;border-color:#25231f;color:#fff;box-shadow:inset 0 -3px #c29a50,0 4px 10px #28201318}
.service-tabs button:hover:not([aria-selected=true]){background:#f3ecd9;border-color:#ad8a48;color:#111;translate:0 -3px;box-shadow:0 5px 12px #4e402714}
.service-tabs button:focus-visible{outline:2px solid #a77b2f;outline-offset:4px}
.service-panel h3{font-size:clamp(34px,3.3vw,53px)}
.service-panel h3 span{color:#9c7936}
.service-panel>p{font-size:12px;color:#6c6b61}
.service-panel ul{font-size:11px;color:#4e5149}
.service-panel li:before{color:#a17a2f}
.service-panel>.button-line{background:#111;color:#fff;border-color:#111}
.service-panel>.button-line:hover{background:#302b23;border-color:#b68a35}
.service-visual{background:var(--card-surface);border:1px solid var(--card-border);border-radius:7px;box-shadow:var(--card-shadow)}
.service-visual:before{display:none}
.visual-bottom{color:#8c8069}
.service-preview{box-shadow:0 20px 33px #66593524}
.projects{position:relative;isolation:isolate;overflow:hidden;background:#fff;color:#111;border:0;min-height:1100px;padding-top:82px;padding-bottom:55px}
.projects-heading{margin:0 0 72px;color:#111;text-shadow:none}
.projects-heading .serif-heading{font-size:clamp(62px,6.4vw,102px)}
.projects-heading em{color:#b68a35}
.projects-heading>p{font-size:13px;line-height:1.85;color:#777164;text-shadow:none}
.gallery{max-width:1120px}
.gallery-toolbar{justify-content:flex-end;margin:0;color:#7c725e;border-color:#ded7c8;text-shadow:none}
.gallery-navigation .arrow-button{background:transparent;border-color:#d3cbbb;color:#3c3a31}
.gallery-navigation .arrow-button:hover{background:#f4efe3;border-color:#b68a35}
.project-stage{width:100%;margin:0;background:var(--card-surface);border:1px solid var(--card-border);border-radius:6px;box-shadow:var(--card-shadow);backdrop-filter:none}
.projects .project-scene{background:none;padding:42px 5%;gap:7%;grid-template-columns:1.65fr 1fr}
.project-watermark{display:none}
.projects .project-scene>img{border-width:3px;box-shadow:0 16px 27px #6256371a}
.project-scene figcaption{padding-bottom:8px}
.project-scene figcaption>p{font-size:12px;line-height:1.8;color:#6f7064}
.project-scene strong{font-size:clamp(30px,3vw,48px)}
.project-chapters{margin:20px 0 0}
.project-thumb{background:var(--card-surface);border-color:var(--card-border);border-radius:5px;box-shadow:var(--card-shadow);backdrop-filter:none}
.project-thumb.is-active{background:#f8f0dc;border-color:#b68a35}
.project-thumb:hover{background:#f5efe2}
.contact{--sky-trim:64px;background:#07141e}
.contact:before{content:"";position:absolute;left:0;right:0;top:0;height:460px;z-index:0;background:linear-gradient(#3187c8 0%,#3187c8fd 10%,#3187c8f0 20%,#3187c8d5 30%,#3187c8ae 40%,#3187c880 50%,#3187c851 60%,#3187c82a 70%,#3187c80f 80%,#3187c802 90%,#3187c800 100%);pointer-events:none}
.mountain-background{height:100%;object-fit:cover;object-position:69% 50%;z-index:auto;transform:scale(1.045);transform-origin:69% 50%;animation:none}
.mountain-weather{top:calc(-1 * var(--sky-trim));height:1100px;z-index:-3;overflow:hidden;mask-image:linear-gradient(#000 0%,#000 74%,transparent 100%)}
.mountain-shade{z-index:-1;background:linear-gradient(90deg,#1644661c,transparent 65%),linear-gradient(0deg,#07141e 0%,#07141ef5 12%,#07141ea6 24%,transparent 44%)}
.contact-content{position:relative;z-index:1;min-height:calc(920px - var(--sky-trim))}
.contact .serif-heading{line-height:1.14;letter-spacing:-.018em;text-shadow:0 3px 18px #17477855}
.contact-content>.serif-heading{margin-top:calc(128px - var(--sky-trim))}
.contact-intro{text-shadow:0 1px 9px #143f6e99}
.site-footer{background:linear-gradient(transparent,#07141e 80%)}
.reveal{opacity:1;translate:none;filter:none;transition:none}
.reveal.is-armed{opacity:0}
.reveal.has-entered{animation:content-arrive 1.6s var(--ease) both}
.about-info-card,.about-visual-card,.service-card,.service-visual,.gallery{--entrance-distance:204px}
.reveal.is-fading-in{animation:content-fade 1.1s var(--ease-fade) both}
.hero-wordmark,.hero-copy{animation:none}
.hero-wordmark.is-intro-pending,.hero-copy.is-intro-pending{opacity:0;translate:0 var(--entrance-distance)}
.hero-wordmark.has-entered,.hero-copy.has-entered{animation:hero-arrive 1.9s var(--ease) both}
.hero-left.has-entered{animation-delay:.16s}
.hero-right.has-entered{animation-delay:.3s}
@keyframes content-arrive{from{opacity:0;translate:0 var(--entrance-distance)}to{opacity:1;translate:0}}
@keyframes content-fade{from{opacity:0;translate:0}to{opacity:1;translate:0}}
@keyframes hero-arrive{from{opacity:0;translate:0 var(--entrance-distance)}to{opacity:1;translate:0}}
.service-panel{translate:0 96px;transition:opacity .8s var(--ease),visibility .8s,translate 1.25s var(--ease)}
.service-panel.is-active{translate:0}
.service-preview{translate:0 110px;transition:opacity .8s var(--ease),visibility .8s,translate 1.35s var(--ease)}
.service-preview.is-active{translate:0}
.project-scene>img,.project-scene figcaption{translate:0 100px;transition:translate 1.35s var(--ease)}
.project-scene.is-active>img,.project-scene.is-active figcaption{translate:0}
.button:hover>span{translate:6px -6px}
.hero-left .button .hero-button-arrow{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;line-height:1;margin-right:5px;translate:0}
.hero-button-arrow>svg{display:block;width:21px;height:21px}
.hero-left .button:hover>.hero-button-arrow{translate:-2px 0}
.button,.button>span,.menu-toggle,.nav-dialog .main-nav>a,.main-nav>a,.service-tabs button,.service-panel,.service-preview,.arrow-button,.project-scene,.project-thumb,.project-scene>img,.project-scene figcaption{transition-timing-function:var(--ease)}
@media(min-width:1800px){
 .hero-sculpture{max-width:840px}
 .projects{min-height:1200px}
}
@media(max-width:1100px){
 .hero-sculpture{width:53%;max-height:calc(100% - 110px);bottom:0}
 .hero-left{width:23%;top:51%}
 .hero-right{width:23%;top:49%}
 .service-panel>p{font-size:11px}
 .service-panel ul{font-size:10px}
 .service-panel h3{font-size:38px}
 .project-scene figcaption>p{font-size:11px}
 .projects{min-height:1030px}
 .projects .project-scene{padding:35px 4%}
}
@media(max-width:800px){
 .hero{min-height:940px}
 .hero-sculpture{width:68%;max-width:550px;bottom:100px;max-height:calc(100% - 150px)}
 .hero-left{top:35%;width:29%}
 .hero-right{top:auto;bottom:36px;width:43%;padding:0;border:0}
 .hero-right .hero-description{max-width:155px}
 .projects{min-height:0}
 .projects-heading{margin-bottom:60px}
 .projects-heading .serif-heading{font-size:72px}
 .projects .project-scene{grid-template-columns:1.4fr 1fr;gap:5%}
 .project-scene figcaption>p{font-size:10px}
 .contact-content{min-height:calc(900px - var(--sky-trim))}
}
@media(max-width:540px){
 :root{--entrance-distance:128px}
 .about-info-card,.about-visual-card,.service-card,.service-visual,.gallery{--entrance-distance:148px}
 .contact{--sky-trim:36px}
 .brand-mark{width:40px;height:32px}
 .site-header{gap:8px}
 .menu-toggle{top:22px;padding:10px 13px;min-height:36px}
 .menu-toggle>span:first-child{font-size:7px}
 .menu-lines{width:15px;height:6px}
 .hero{min-height:0;padding-bottom:30px}
 .hero-sculpture{top:126px;bottom:auto;width:94%;max-height:none;max-width:none}
 .hero-left{top:auto;width:100%;padding-top:calc(142px + 118vw);grid-template-columns:1fr}
 .hero-left h2{font-size:28px;line-height:1.13;max-width:290px}
 .hero-left h2 br:first-child{display:initial}
 .hero-left h2 br:nth-child(2){display:none}
 .hero-left .button{justify-self:start;margin-top:23px;min-width:200px;padding:15px 18px;font-size:9px}
 .hero-right{top:auto;bottom:auto;width:100%;margin-top:29px;padding:0;border:0}
 .hero-right .hero-description{max-width:none}
 .hero-wordmark{top:102px}
 .nav-dialog{inset:72px 16px auto auto;width:calc(100% - 32px);padding:23px 25px;max-height:calc(100dvh - 92px);border-radius:12px}
 .nav-dialog .wordmark{font-size:22px}
 .nav-dialog .main-nav{margin:20px 0}
 .nav-dialog .main-nav>a{padding:10px 0;gap:18px}
 .nav-dialog .main-nav>a>span{font-size:38px}
 .nav-dialog .close-button{font-size:6px}
 .scene-transition{height:420px}
 .contact:before{height:380px}
 .service-tabs{gap:6px;padding-bottom:21px}
 .service-tabs button{font-size:10px;padding:10px 5px;min-height:54px}
 .service-panel h3{font-size:35px}
 .service-panel>p{font-size:11px}
 .service-panel ul{font-size:10px}
 .services-heading{gap:20px;margin-bottom:34px}
 .services-heading>p{font-size:12px;max-width:340px}
 .services{padding-bottom:58px}
 .projects{padding-top:52px;padding-bottom:40px}
 .projects-heading{margin:0 0 55px}
 .projects-heading .serif-heading{font-size:clamp(46px,12vw,65px)}
 .projects-heading>p{font-size:11px;max-width:320px;margin-inline:auto}
 .projects .project-scene{grid-template-columns:1fr;padding:29px 6% 25px;gap:23px}
 .project-scene figcaption{padding:0}
 .project-scene figcaption>p{font-size:11px}
 .project-chapters{margin-top:15px;padding-bottom:9px}
 .contact-content>.serif-heading{margin-top:calc(112px - var(--sky-trim))}
 .mountain-weather{height:1000px}
 .mountain-shade{background:linear-gradient(90deg,#0b518031,transparent),linear-gradient(0deg,#07141e 0%,#07141ef7 24%,#07141e88 36%,transparent 54%)}
 .contact-content{min-height:calc(900px - var(--sky-trim));padding-bottom:160px}
 .contact .serif-heading{font-size:clamp(49px,13vw,69px)}
}
@media(max-width:360px){
 .hero-left h2{font-size:26px}
 .hero-left .button{min-width:190px}
 .nav-dialog .main-nav>a>span{font-size:34px}
}
@media(prefers-reduced-motion:reduce){
 .reveal,.reveal.is-armed{opacity:1;translate:none;filter:none}
 .service-panel,.service-preview,.project-scene>img,.project-scene figcaption{translate:none;transition:none}
}
