@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/sora-semibold.ttf') format('truetype')}
:root{--bg:#efeee9;--ink:#282c2b;--accent:#c67c54;--line:color-mix(in srgb,var(--ink) 21%,transparent);--muted:color-mix(in srgb,var(--ink) 73%,var(--bg));--font:'Manrope',sans-serif;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h2,h3{font-weight:500;line-height:1.06;letter-spacing:-.055em}h2{font-size:clamp(44px,6.1vw,91px)}p{max-width:52ch}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:#202826}[hidden]{display:none!important}.wrap{padding-left:7vw;padding-right:7vw}.accent{color:var(--accent)}.mono,.eyebrow,.service-index{font-family:var(--mono);font-size:12px;line-height:1.5;letter-spacing:.06em}.eyebrow{text-transform:uppercase;margin-bottom:28px}.skip{position:fixed;top:-100px;left:20px;padding:15px;background:#f1eee7;color:#282c2b;z-index:100}.skip:focus{top:15px}.header{height:90px;position:absolute;top:0;left:0;right:0;z-index:50;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;color:#282c2b;border-bottom:1px solid #d5d5cf}.brand{display:flex;align-items:center;gap:5px}.brand img{width:57px;height:57px;mix-blend-mode:multiply;object-fit:contain}.brand>span{font-size:32px;letter-spacing:-.07em;font-weight:600}.brand-period{color:#ab6642}nav{display:flex;align-items:center;gap:35px;font-size:14px}nav a:not(.nav-cta){position:relative}nav a:not(.nav-cta):after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover:after{transform:scaleX(1)}.nav-cta{border:1px solid #b9bcb4;border-radius:99px;padding:11px 20px;display:flex;gap:24px;align-items:center}.nav-cta span{font-size:20px;transition:transform .3s}.nav-cta:hover span{transform:translate(3px,-3px)}.menu-toggle{display:none}
.hero{height:250svh;position:relative;color:#282c2b;--hero-progress:0}.hero-pin{height:100svh;position:sticky;top:0;overflow:hidden;background:#efeee9}.hero-heading{position:absolute;z-index:3;left:6vw;top:140px;will-change:transform}.hero-heading .eyebrow{font-size:12px;margin-bottom:21px;color:#68716c}h1{font-size:clamp(64px,8.65vw,144px);font-weight:500;line-height:1.01;letter-spacing:-.075em}.headline-line{display:block;overflow:hidden;padding:0 0 .08em}.headline-line>span{display:block}.hero-aside{position:absolute;z-index:4;top:170px;right:7vw;width:230px}.hero-aside p{font-size:17px;line-height:1.6;color:#59635e}.hero-cta{margin-top:24px;display:flex;align-items:center;gap:17px;font-size:14px}.hero-cta span{width:43px;height:43px;display:grid;place-items:center;background:#282c2b;color:#f1eee7;border-radius:50%;font-size:22px;transition:transform .3s}.hero-cta:hover span{transform:rotate(45deg)}.hero-media{position:absolute;inset:25% 0 0;z-index:1;pointer-events:none;will-change:transform}.hero-media img,.hero-media video{position:absolute;width:100%;height:100%;object-fit:contain;object-position:50% 65%;mix-blend-mode:multiply}.hero-media video{opacity:0;transition:opacity .18s}.hero-media video.painted{opacity:1}.hero-bottom{position:absolute;z-index:5;bottom:30px;left:6vw;right:6vw;display:flex;align-items:center;gap:35px;font-size:13px}.hero-bottom>a{margin-left:auto}.hero-bottom>a span{margin-left:20px}.build-progress{height:1px;width:180px;background:#c1c4bd;overflow:hidden}.build-progress i{display:block;width:100%;height:100%;background:#945739;transform:scaleX(var(--hero-progress));transform-origin:left}.hero-side-note{position:absolute;bottom:155px;left:2vw;font:10px var(--mono);letter-spacing:.12em;writing-mode:vertical-rl;transform:rotate(180deg);color:#7a827c}.statement{height:180svh;position:relative}.statement-pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;padding:9vw 10vw;overflow:hidden}.statement h2{font-size:clamp(47px,6.2vw,94px);max-width:17ch;position:relative;z-index:2;line-height:1.15}.word-reveal .word{color:color-mix(in srgb,var(--ink) 34%,var(--bg));transition:color .1s}.word-reveal .word.lit{color:var(--ink)}.statement .eyebrow{position:relative;z-index:2;color:var(--muted)}.statement-foot{display:flex;justify-content:space-between;gap:30px;position:relative;z-index:2;margin-top:45px;font-size:14px;color:var(--muted)}.statement-ghost{position:absolute;bottom:-1vw;left:15vw;white-space:nowrap;font-size:20vw;font-weight:700;letter-spacing:-.075em;line-height:1;color:color-mix(in srgb,var(--ink) 4%,transparent);pointer-events:none}.services{padding-top:110px;overflow:clip}.section-lead{padding-bottom:50px}.section-lead h2{max-width:13ch}.service{position:relative;min-height:750px;display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:9vw;padding:120px 7vw 150px}.service-backword{position:absolute;left:2vw;top:20px;font-size:clamp(100px,19vw,310px);font-weight:700;letter-spacing:-.075em;line-height:1;color:color-mix(in srgb,var(--ink) 9%,transparent);white-space:nowrap;z-index:0;pointer-events:none}.service-image{position:relative;z-index:1;aspect-ratio:1.05;overflow:hidden}.service-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}.image-caption{position:absolute;bottom:15px;left:17px;background:#282c2bc9;color:#fff;padding:4px 8px;font:10px var(--mono);letter-spacing:.025em}.service-content{position:relative;z-index:3}.service-index{display:block;color:var(--muted);margin-bottom:28px}.service h3{font-size:clamp(42px,5.5vw,80px);margin-left:-13vw;max-width:13ch;text-shadow:0 2px 22px #20282625}.service-content p{color:var(--muted);font-size:16px;max-width:32ch;margin-top:32px}.service-link{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:22px 0 14px;max-width:300px;font-size:14px}.service-link span{font-size:22px;transition:transform .3s}.service-link:hover span{transform:translate(4px,-4px)}.service-roof{grid-template-columns:1fr 1.25fr}.service-roof .service-image{grid-column:2;grid-row:1}.service-roof .service-content{grid-column:1;grid-row:1}.service-roof h3{margin-left:0;margin-right:-14vw;max-width:15ch}.service-roof .service-backword{left:auto;right:-2vw}.service-roof .service-image{aspect-ratio:1.12}.service-solar .service-image{aspect-ratio:1.22}.workforce{display:grid;grid-template-columns:1.4fr 1fr;gap:8vw;padding-top:50px;padding-bottom:140px;border-bottom:1px solid var(--line)}.workforce h3{font-size:clamp(43px,5.8vw,86px)}.workforce-body{align-self:end}.workforce-body p{font-size:17px;color:var(--muted);max-width:34ch}.workforce-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:14px}.workforce-cta span{font-size:28px}
.material-break{min-height:100svh;display:grid;place-items:center;position:relative;padding:150px 5vw;overflow:clip}.material-photo{width:42vw;height:66svh;position:relative;overflow:hidden}.material-photo img{width:100%;height:120%;object-fit:cover;position:absolute;top:-10%}.material-break h2{position:absolute;inset:0;display:flex;justify-content:center;flex-direction:column;gap:2vw;pointer-events:none;font-size:clamp(60px,11.5vw,180px);line-height:1;letter-spacing:-.075em}.material-break h2 span:first-child{margin-left:7vw}.material-break h2 span:last-child{text-align:right;margin-right:6vw;color:var(--ink);-webkit-text-stroke:1px var(--ink)}.projects{padding-top:110px;padding-bottom:140px}.projects-heading{margin-bottom:55px}.section-description{margin-top:28px;color:var(--muted);font-size:16px}.project-filters{border-top:1px solid var(--line);display:flex;gap:30px;padding-top:20px;margin-bottom:45px}.project-filters button{font-size:14px;padding:8px 0;border:0;background:none;color:var(--muted)}.project-filters button[aria-pressed=true]{color:var(--ink);border-bottom:2px solid var(--accent)}.project-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:90px 8vw;align-items:start}.project-small{margin-top:160px}.project-wide{grid-column:1/3;width:70%;margin-left:auto}.project button{position:relative;width:100%;display:block;border:0;padding:0;background:none;text-align:left;overflow:hidden}.project-img{display:block;overflow:hidden}.project img{width:100%;aspect-ratio:1.3;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.project-tall img{aspect-ratio:3/4}.project-wide img{aspect-ratio:1.8}.project button:hover img{transform:scale(1.05)}.project-open{position:absolute;bottom:20px;right:20px;padding:11px 17px;border-radius:40px;color:#282c2b;background:#efeee9;font-size:13px;transform:translateY(80px);transition:transform .35s}.project button:hover .project-open,.project button:focus-visible .project-open{transform:none}.project figcaption{padding-top:20px}.project figcaption .mono{color:var(--muted)}.project h3{font-size:clamp(23px,2.5vw,37px);margin-top:10px;letter-spacing:-.045em}.project-grid.filtered .project{grid-column:auto;margin:0;width:100%;transform:none!important}.project-grid.filtered .project img{aspect-ratio:1.2}.prototype-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:45px;max-width:65ch}.about{padding-top:110px;padding-bottom:100px;display:grid;grid-template-columns:1fr 1.25fr;gap:6vw;align-items:center;overflow:clip}.about-mark{font-size:38vw;letter-spacing:-.08em;line-height:1;color:color-mix(in srgb,var(--ink) 13%,transparent)}.about-copy h2{font-size:clamp(40px,5.3vw,78px)}.about-copy>p:not(.eyebrow){margin-top:30px;color:var(--muted);max-width:42ch}.about dl{margin:35px 0 0;font-size:14px}.about dl div{padding:13px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px}.about dt{color:var(--muted)}.about dd{margin:0}.process{padding-top:80px;padding-bottom:130px}.process h2{font-size:clamp(40px,5vw,72px)}.process ol{list-style:none;padding:0;margin:65px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.process li{border-top:1px solid var(--line);padding-top:22px}.process li>span{font:12px var(--mono);color:var(--muted)}.process h3{font-size:26px;margin:22px 0 15px}.process li p{font-size:15px;max-width:30ch;color:var(--muted)}.contact{padding-top:130px;padding-bottom:110px;display:grid;grid-template-columns:1fr 1fr;gap:12vw}.contact-heading h2{font-size:clamp(53px,7vw,106px)}.contact-heading>p:not(.eyebrow){margin-top:30px;color:var(--muted)}.contact-heading .prototype-note{margin-top:70px;max-width:37ch}.form-panel{padding-top:20px;min-width:0}.form-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:30px}.form-top h3{font-size:24px;letter-spacing:-.03em}.form-top h3:focus{outline:none}form label{display:block;font-size:13px;margin-bottom:26px;color:var(--muted)}form input,form textarea,form select{width:100%;display:block;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:11px 0;font-size:16px}form textarea{resize:vertical}form input::placeholder,form textarea::placeholder{color:var(--muted);opacity:.75}form select option{color:#282c2b;background:#efeee9}.file-label{position:relative;border:1px dashed var(--line);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:8px}.file-label span{font-size:12px;white-space:nowrap}.file-label input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-label:focus-within{outline:2px solid var(--accent)}.file-info{font-size:12px;color:var(--muted);overflow-wrap:anywhere;margin-bottom:12px}.form-submit{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:#d49a72;color:#252b2a;padding:20px 23px;font-size:15px;margin-top:30px;transition:background .2s,transform .2s}.form-submit:hover{background:#e2b38f}.form-submit:active{transform:scale(.985)}.form-submit>span:last-child{font-size:24px;line-height:1}.text-button{display:block;border:0;background:none;padding:12px 0;text-decoration:underline;text-underline-offset:6px;font-size:13px}.success-mark{color:var(--accent);font-size:45px}#form-result h3{font-size:34px;margin:20px 0}#form-result>p{font-size:15px;color:var(--muted)}#summary{font-size:14px;overflow-wrap:anywhere}#summary div{border-top:1px solid var(--line);padding:12px 0}#summary dt{font-size:12px;color:var(--muted)}#summary dd{margin:5px 0 0;white-space:pre-wrap}.download{display:block;border:1px solid var(--line);padding:14px 20px;background:none;margin-top:25px}#form-error{font-size:13px;color:#f0ae8b}#form-review{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;color:var(--muted)}footer{padding:30px 5vw 30px}.footer-brand{display:flex;gap:2.5vw;align-items:baseline;font-size:clamp(65px,14vw,230px);letter-spacing:-.085em;line-height:1.2;font-weight:500}.footer-brand>span:first-child{font-weight:800}.footer-brand .up{font-size:.4em;margin-left:auto;letter-spacing:0}.footer-info{border-top:1px solid var(--line);margin-top:55px;padding-top:25px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}dialog{border:0;padding:0;margin:auto;width:min(950px,92vw);max-height:90svh;background:#efeee9;color:#282c2b;overflow:auto}dialog::backdrop{background:#141c1bc7;backdrop-filter:blur(8px)}dialog>img{width:100%;height:48svh;object-fit:cover}.dialog-close{position:sticky;float:right;top:14px;z-index:2;display:grid;place-items:center;width:100px;height:46px;margin:14px 14px -60px 0;padding:6px 18px;overflow:hidden;background:#efeee9;color:#282c2b;border:0;border-radius:24px;outline:none;box-shadow:none;transition:background .45s ease,transform .55s cubic-bezier(.22,1,.36,1)}.dialog-close-label,.dialog-close svg{grid-area:1/1;pointer-events:none;transition:opacity .35s ease,filter .5s ease,transform .6s cubic-bezier(.22,1,.36,1)}.dialog-close-label{font-size:16px;line-height:1;opacity:1;transform:translateY(0);filter:blur(0)}.dialog-close svg{width:32px;height:32px;opacity:0;transform:translateY(16px) rotate(-90deg) scale(.5);filter:blur(3px)}.dialog-close:focus-visible{outline:none;box-shadow:none;background:#d8d8d0}.dialog-close:hover{background:#f7f5ef;transform:translateY(-2px) scale(1.04)}.dialog-close:hover .dialog-close-label{opacity:0;filter:blur(3px);transform:translateY(-16px) scale(.9)}.dialog-close:hover svg{opacity:1;filter:blur(0);transform:translateY(0) rotate(0) scale(1)}.dialog-close:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){.dialog-close,.dialog-close-label,.dialog-close svg{transition:none}.dialog-close:hover,.dialog-close:active,.dialog-close-label,.dialog-close svg,.dialog-close:hover .dialog-close-label,.dialog-close:hover svg{transform:none;filter:none}}.dialog-content{padding:40px 7%}.dialog-content h2{font-size:clamp(33px,4.5vw,65px);margin:20px 0}.dialog-content>p{font-size:16px}.dialog-content .prototype-note{font-size:12px;margin-top:20px}.dialog-content>a{display:inline-block;margin-top:25px;padding-bottom:8px;border-bottom:1px solid #ab6642;font-size:14px}.reveal-line{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}.reveal-line>span{display:block;will-change:transform}.motion-ready [data-parallax]{will-change:transform}
@media(min-width:1650px){.wrap{padding-left:max(7vw,calc((100vw - 1430px)/2));padding-right:max(7vw,calc((100vw - 1430px)/2))}.hero-heading{left:max(6vw,calc((100vw - 1600px)/2))}}
@media(max-width:1000px){nav{gap:22px}.hero-aside{right:5vw;width:185px;top:160px}.hero-aside p{font-size:15px}h1{font-size:9vw}.hero-heading{left:5vw}.service{gap:7vw;min-height:650px;padding-top:100px;padding-bottom:110px}.service h3{font-size:5.8vw}.contact{gap:7vw}.service-content p{font-size:15px}.project-grid{gap:60px 6vw}}
@media(max-width:700px){html{scroll-padding-top:75px}.header{height:75px;padding:0 5vw}.brand img{width:44px;height:44px}.brand>span{font-size:27px}.menu-toggle{display:flex;gap:15px;align-items:center;border:0;background:none;padding:15px 0;font-size:13px}.menu-toggle span{font-size:21px}nav{display:none;position:absolute;top:75px;left:0;right:0;background:#efeee9;padding:25px 6vw 35px;border-bottom:1px solid #c1c4bd;box-shadow:0 20px 30px #282c2b12}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:23px}.nav-cta{justify-content:space-between;max-width:260px}.hero{height:205svh}.hero-heading{top:113px;left:6vw;right:5vw}.hero-heading .eyebrow{font-size:11px;margin-bottom:15px}h1{font-size:12.3vw;line-height:1.05;letter-spacing:-.065em}.hero-aside{left:6vw;top:calc(113px + 32vw);width:auto;right:6vw;display:flex;align-items:center;gap:20px;justify-content:space-between}.hero-aside p{font-size:12px;line-height:1.65}.hero-cta{font-size:11px;gap:10px;margin-top:0}.hero-cta span{width:32px;height:32px;font-size:18px}.hero-media{inset:36% -19% 4%}.hero-media img,.hero-media video{object-fit:contain;object-position:center}.hero-bottom{left:6vw;right:6vw;bottom:22px;gap:15px;flex-wrap:wrap}.hero-bottom .mono{font-size:10px}.build-progress{width:80px}.hero-bottom>a{font-size:11px}.hero-bottom>a span{margin-left:6px}.hero-side-note{display:none}.statement{height:155svh}.statement-pin{padding:20vw 7vw}.statement h2{font-size:clamp(39px,9vw,62px);line-height:1.2}.statement .eyebrow{font-size:10px;margin-bottom:30px}.statement-foot{margin-top:30px;font-size:12px}.statement-foot .mono{font-size:10px}.statement-ghost{font-size:26vw;bottom:8vh;left:7vw}.services{padding-top:60px}.section-lead{padding-bottom:10px}.wrap{padding-left:6vw;padding-right:6vw}h2{font-size:clamp(42px,10vw,65px)}.eyebrow{font-size:11px;margin-bottom:20px}.service{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:100px 6vw 65px;min-height:0}.service-backword{font-size:24vw;top:30px;left:2vw}.service-image{width:87%;aspect-ratio:1.08;align-self:flex-start}.service-content{align-self:flex-end;width:80%;margin-top:-35px}.service h3,.service-roof h3{font-size:10.5vw;max-width:13ch;margin-left:0;margin-right:0;text-shadow:0 2px 18px #1c252540}.service-index{font-size:10px;margin-bottom:16px;background:var(--bg);width:max-content;padding:3px 7px;margin-left:-7px}.service-content p{font-size:15px;margin-top:23px;max-width:32ch}.service-link{font-size:13px;padding-top:17px}.service-roof .service-image{align-self:flex-end;aspect-ratio:1.12}.service-roof .service-content{align-self:flex-start}.service-roof .service-backword{left:-8vw;right:auto}.service-solar .service-image{aspect-ratio:1.15}.image-caption{font-size:8px;bottom:12px;left:12px}.workforce{grid-template-columns:1fr;gap:30px;padding-top:25px;padding-bottom:70px}.workforce h3{font-size:11vw}.workforce-body p{font-size:15px}.workforce-cta{font-size:13px}.material-break{min-height:75svh;padding:70px 5vw}.material-photo{width:65vw;height:46svh}.material-break h2{font-size:15vw;gap:8vw}.material-break h2 span:first-child{margin-left:4vw}.material-break h2 span:last-child{margin-right:3vw}.projects{padding-top:65px;padding-bottom:65px}.projects-heading{margin-bottom:30px}.section-description{font-size:14px;margin-top:24px}.project-filters{gap:24px;padding-top:15px;margin-bottom:28px}.project-filters button{font-size:12px}.project-grid{grid-template-columns:1fr;gap:38px}.project-small{margin-top:0}.project-wide{grid-column:auto;width:100%}.project-tall img{aspect-ratio:4/5}.project img,.project-wide img{aspect-ratio:1.2}.project-open{transform:none;bottom:13px;right:13px;font-size:11px;padding:9px 13px}.project h3{font-size:26px}.project .mono{font-size:10px}.prototype-note{font-size:11px;margin-top:30px}.about{grid-template-columns:1fr;gap:0;padding-top:70px;padding-bottom:45px;position:relative}.about-mark{position:absolute;right:-2vw;top:5vw;font-size:62vw}.about-copy{position:relative;z-index:2}.about-copy h2{font-size:11vw}.about-copy>p:not(.eyebrow){font-size:15px;max-width:34ch}.about dl{font-size:12px}.process{padding-top:35px;padding-bottom:70px}.process h2{font-size:10vw}.process ol{grid-template-columns:1fr;gap:27px;margin-top:35px}.process li{display:grid;grid-template-columns:35px 1fr;gap:0 12px}.process li>span{grid-row:span 2;font-size:11px}.process h3{margin:0 0 12px;font-size:23px}.process li p{font-size:14px;max-width:34ch}.contact{grid-template-columns:1fr;gap:35px;padding-top:80px;padding-bottom:65px}.contact-heading h2{font-size:16vw}.contact-heading>p:not(.eyebrow){font-size:15px;margin-top:22px}.contact-heading .prototype-note{font-size:11px;margin-top:30px;max-width:42ch}.form-panel{padding-top:0}.form-top h3{font-size:23px}.form-top .mono{font-size:10px}form label{font-size:12px}.file-info{font-size:11px}.footer-brand{font-size:15vw}.footer-info{flex-direction:column;gap:9px;margin-top:30px;font-size:11px}.dialog-content{padding:28px 7%}.dialog-content>p{font-size:14px}dialog>img{height:35svh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero{height:100svh}.hero-pin{position:relative}.hero-heading,.hero-aside,.hero-media,[data-parallax],.reveal-line>span{transform:none!important}.statement{height:auto;min-height:85svh}.statement-pin{position:relative;height:auto;min-height:85svh}.word-reveal .word{color:var(--ink)!important}.project-open{transform:none}.hero-media video{display:none}}
/* Single composited frame: no transparent poster/video stack. */
.hero-media canvas{position:absolute;width:100%;height:100%;object-fit:contain;object-position:50% 65%;opacity:0;mix-blend-mode:multiply}.hero-media canvas.painted{opacity:1}.hero-media img{mix-blend-mode:multiply}
.arrow-icon{display:inline-block;width:22px;height:22px;vertical-align:middle;flex:none}
.service-link>span,.workforce-cta>span,.hero-cta>span,.nav-cta>span,.form-submit>span:last-child{position:relative;isolation:isolate;display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:transparent;color:inherit;transform:none}
.service-link>span:before,.workforce-cta>span:before,.hero-cta>span:before,.nav-cta>span:before,.form-submit>span:last-child:before{content:'';position:absolute;inset:0;border:1px solid currentColor;border-radius:50%;opacity:.45;z-index:-1;transform:translate(-3px,3px);transition:transform .35s}
.service-link>span:after,.workforce-cta>span:after,.hero-cta>span:after,.nav-cta>span:after,.form-submit>span:last-child:after{content:'';position:absolute;inset:0;border-radius:50%;background:#c67c54;opacity:.2;z-index:-1;transform:translate(2px,-2px);transition:transform .35s}
a:hover>span:has(.arrow-icon):before,button:hover>span:has(.arrow-icon):before{transform:translate(-5px,5px)}
a:hover>span:has(.arrow-icon):after,button:hover>span:has(.arrow-icon):after{transform:translate(4px,-4px)}
.hero-cta:hover span,.service-link:hover span,.nav-cta:hover span{transform:none}.project-open .arrow-icon{width:18px;height:18px;margin-left:5px}.hero-bottom .arrow-icon{width:17px;height:17px}.footer-brand .up .arrow-icon{width:48px;height:48px}
@media(max-width:700px){
.hero-pin{display:flex;flex-direction:column;padding:100px 6vw 24px;height:100svh;min-height:660px;gap:0}
.hero-heading{position:relative;inset:auto;flex:none;width:100%}.hero-heading .eyebrow{font-size:12px;margin-bottom:14px}h1{font-size:11.6vw;line-height:1.08}
.hero-aside{position:relative;inset:auto;width:100%;flex:none;margin-top:18px;gap:14px;align-items:center}.hero-aside p{font-size:14px;line-height:1.5}.hero-cta{font-size:12px;gap:10px;max-width:48%}.hero-cta>span{width:36px;height:36px;flex-basis:36px}
.hero-media{position:relative;inset:auto;flex:1;min-height:200px;width:calc(100% + 12vw);margin:10px -6vw 0}.hero-media img,.hero-media canvas{object-fit:contain;object-position:center}
.hero-bottom{position:relative;inset:auto;flex:none;width:100%;padding-top:15px;gap:12px}.hero-bottom .mono{font-size:11px}.hero-bottom>a{font-size:12px}.build-progress{width:55px}
.service-content p,.workforce-body p{font-size:16px}.service-link,.workforce-cta{font-size:14px}.service-index,.image-caption{font-size:12px}.service-link>span,.workforce-cta>span{width:38px;height:38px;flex-basis:38px}
}
@media(prefers-reduced-motion:reduce){.hero-media canvas{display:none}}
.brand img{width:164px;height:auto;max-height:70px;object-fit:contain;mix-blend-mode:normal}.footer-brand{align-items:center;gap:5vw}.footer-brand>img{width:min(650px,72vw);height:auto;filter:brightness(0) invert(94%) sepia(6%) saturate(160%)}
@media(max-width:700px){.brand img{width:135px;height:auto;max-height:58px}.hero-pin{min-height:0;padding-top:95px}.hero-media{min-height:120px}.footer-brand>img{width:72vw}.footer-brand .up .arrow-icon{width:30px;height:30px}}
@media(max-width:700px) and (max-height:650px){.hero-pin{padding-top:85px;padding-bottom:16px}.hero-heading h1{font-size:10.5vw}.hero-aside{margin-top:12px}.hero-media{min-height:80px}.hero-bottom{padding-top:8px}}
/* One continuous opening composition. */
.header{border-bottom:0;height:96px;padding-left:5vw;padding-right:6vw}.brand{margin-left:-9px}.brand img{width:175px;max-height:74px}.hero-heading{top:155px}.hero-aside{top:175px}.hero-aside p{max-width:13ch;font-size:19px;line-height:1.45}.hero-media{isolation:isolate;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 16%,#000 80%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 16%,#000 80%,transparent 100%)}
.menu-toggle>span{display:block;transition:transform .35s cubic-bezier(.22,1,.36,1)}.menu-toggle[aria-expanded=true]>span{transform:rotate(45deg)}
/* Lower sections keep their own readable foreground through the blend. */
.about,.process{--bg:#d8d7cf;--ink:#282c2b;--muted:#59605b;--line:#b0b3a9;background:var(--bg);color:var(--ink)}
.contact,footer{--bg:#252b2a;--ink:#f1eee7;--muted:#c1c3ba;--line:#535b57;color:var(--ink);background:var(--bg)}
.process{padding-bottom:65px}.contact{position:relative;padding-top:230px;background:linear-gradient(to bottom,#d8d7cf 0%,#d3d3cb 15px,#bdc0b6 40px,#8f968c 70px,#5e6860 105px,#39433d 140px,#252b2a 180px);background-repeat:no-repeat;background-color:#252b2a;background-size:100% 180px}.contact-heading .eyebrow{color:#b8c0b5}.contact-heading h2{line-height:1.09}.contact-heading .prototype-note{color:#b8bdb5}
@media(max-width:700px){
.header{height:76px;padding-left:6vw;padding-right:6vw}.brand img{width:146px;max-height:64px}.menu-toggle{font-size:14px;gap:12px}nav{top:76px}
.hero-pin{padding-top:108px;padding-bottom:22px}.hero-heading{top:auto}.hero-heading h1{font-size:12vw;line-height:1.05;letter-spacing:-.065em}.headline-line{padding-bottom:.06em}.hero-aside{top:auto;margin-top:22px;align-items:center;gap:20px}.hero-aside p{font-size:15px;line-height:1.45;max-width:14ch}.hero-cta{font-size:13px;max-width:none;gap:10px}.hero-cta>span{width:35px;height:35px;flex-basis:35px}.hero-media{width:calc(100% + 24vw);margin:0 -12vw;min-height:140px}.hero-media img,.hero-media canvas{object-fit:contain;transform:scale(1.13);transform-origin:50% 55%}.hero-bottom{padding-top:6px}.hero-bottom .mono{font-size:11px}.hero-bottom>a{font-size:12px}
.process{padding-bottom:30px}.contact{padding-top:155px;background-size:100% 120px;background-image:linear-gradient(to bottom,#d8d7cf 0%,#c8cbc1 15%,#9aa297 35%,#657164 57%,#39453b 78%,#252b2a 100%)}.contact-heading h2{font-size:14.5vw;line-height:1.08}.contact-heading>p:not(.eyebrow):not(.prototype-note){font-size:16px}.process li p{font-size:16px}.contact-heading .eyebrow{font-size:12px;margin-bottom:20px}
}
@media(max-width:700px) and (max-height:650px){.hero-pin{padding-top:90px;padding-bottom:15px}.hero-heading h1{font-size:11vw}.hero-aside{margin-top:15px}.hero-aside p{font-size:14px}.hero-media{min-height:85px}.hero-bottom{padding-top:4px}}
@media(prefers-reduced-motion:reduce){.hero-media img{transform:none}}
/* Full viewport film, with copy over the same scene. */
.hero{height:280svh;--hero-exit:0;color:#f1eee7}.hero-pin{display:block;height:100svh;min-height:0;padding:0;background:#292f2e;isolation:isolate}.hero-media{position:absolute;inset:0;width:100%;height:100%;margin:0;min-height:0;z-index:0;mask-image:none;-webkit-mask-image:none;opacity:calc(1 - var(--hero-exit))}.hero-media img,.hero-media canvas{width:100%;height:100%;object-fit:cover;object-position:50% 55%;transform:none;mix-blend-mode:normal}.hero-pin:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(15,22,21,.58),rgba(15,22,21,.16) 48%,rgba(15,22,21,.1) 65%,rgba(15,22,21,.68));opacity:calc(1 - var(--hero-exit))}
.header{color:#f1eee7}.header .brand img{filter:brightness(0) invert(94%) sepia(6%) saturate(160%)}.header .nav-cta{border-color:#ffffff55}.hero-heading{position:absolute;top:23%;left:6vw;right:5vw;z-index:3;opacity:calc(1 - var(--hero-exit));text-shadow:0 2px 24px #0d171c30}.hero-heading h1{font-size:clamp(65px,8.6vw,144px);line-height:1.03;max-width:12ch}.hero-heading .accent{color:#e1ad89}.hero-aside{position:absolute;top:auto;bottom:12%;left:6vw;right:6vw;width:auto;display:flex;justify-content:space-between;align-items:end;z-index:3;margin:0;opacity:calc(1 - var(--hero-exit))}.hero-aside p{max-width:17ch;color:#f1eee7;font-size:20px}.hero-cta{font-size:15px;margin:0;gap:18px}.hero-bottom{position:absolute;left:6vw;right:6vw;bottom:28px;width:auto;padding:0;z-index:3;opacity:calc(1 - var(--hero-exit));color:#f1eee7}.build-progress{background:#ffffff45}.build-progress i{background:#e1ad89}.hero-side-note{color:#f1eee7;z-index:3;opacity:calc(1 - var(--hero-exit))}
/* Restore scroll-controlled tones without a fixed gradient strip. */
.about,.process,.contact,footer{--bg:inherit;--ink:inherit;--muted:inherit;--line:inherit;background:transparent;color:inherit;transition:color .2s ease}.contact{padding-top:115px;background-image:none;background-size:auto}.process{padding-bottom:65px}.contact-heading .eyebrow,.contact-heading .prototype-note{color:var(--muted)}body{transition:color .2s ease}.service-content p,.workforce-body p,.process li p,.contact-heading p{transition:color .2s ease}
@media(max-width:700px){.hero{height:255svh}.hero-pin{display:block;padding:0;min-height:0;height:100svh}.hero-heading{position:absolute;top:24%;left:6vw;right:6vw;width:auto}.hero-heading h1{font-size:12.5vw;line-height:1.06}.hero-media{position:absolute;inset:0;width:100%;height:100%;margin:0;min-height:0}.hero-media img,.hero-media canvas{object-fit:cover;object-position:51% 50%;transform:none}.hero-aside{position:absolute;top:auto;bottom:15%;left:6vw;right:6vw;width:auto;margin:0;align-items:center;gap:18px}.hero-aside p{font-size:16px;max-width:13ch}.hero-cta{font-size:13px;gap:12px;max-width:52%}.hero-bottom{position:absolute;bottom:28px;left:6vw;right:6vw;padding:0;width:auto}.header nav{color:#282c2b}.contact{padding-top:65px;background:none}.process{padding-bottom:35px}}
@media(prefers-reduced-motion:reduce){.hero{height:100svh}.hero-pin{position:relative}.hero-media,.hero-heading,.hero-aside,.hero-bottom,.hero-pin:after{opacity:1}}
/* Fit the complete landscape scene inside a portrait phone viewport. */
@media(max-width:700px){
.hero-media{background:#e7e5e2}
.hero-media img,.hero-media canvas{object-fit:contain;object-position:50% 58%;transform:none;width:100%;height:100%}
}
/* Light continuous scene; the frame itself has feathered edges. */
.header{position:fixed;top:0;height:84px;color:#282c2b;background:rgba(239,238,233,.93);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid #282c2b0d}.header .brand img{filter:none}.header .nav-cta{border-color:#282c2b35}.header nav{color:#282c2b}
.hero{color:#282c2b}.hero-pin{background:var(--bg)}.hero-pin:after{display:none}.hero-heading{top:22%;text-shadow:none}.hero-heading .accent{color:#b7754f}.hero-aside p{color:#49534e}.hero-bottom,.hero-side-note{color:#282c2b}.hero-bottom{justify-content:center}.hero-bottom>a{margin:0;display:grid;place-items:center;width:44px;height:44px}.hero-bottom>a span{margin:0}.hero-bottom .arrow-icon{width:24px;height:24px}
.hero-media{position:absolute;inset:auto;top:56%;left:50%;width:min(100%,1400px);height:auto;aspect-ratio:16/9;min-height:0;margin:0;background:transparent;transform:translate(-50%,-50%)!important;mix-blend-mode:multiply;isolation:auto;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%)}.hero-media img,.hero-media canvas{width:100%;height:100%;object-fit:contain;object-position:center;transform:none;mix-blend-mode:normal}
@media(max-width:700px){.header{height:76px}.header nav{top:76px}.hero-heading{top:23%;left:6vw;right:6vw}.hero-heading h1{font-size:12vw}.hero-media{inset:auto;left:50%;top:55%;width:100%;height:auto;min-height:0;margin:0;aspect-ratio:16/9;background:transparent;transform:translate(-50%,-50%)!important}.hero-media img,.hero-media canvas{object-fit:contain;object-position:center;transform:none}.hero-aside{bottom:13%}.hero-bottom{bottom:22px}.hero-side-note{display:none}}
@media(max-width:700px) and (max-height:650px){.hero-heading{top:22%}.hero-heading h1{font-size:10.8vw}.hero-media{top:56%}.hero-aside{bottom:12%}.hero-bottom{bottom:9px}}
/* Centered brand and one full-screen navigation at every viewport. */
.header{height:84px;display:flex;justify-content:center;padding:0 6vw;border:0;box-shadow:none;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate;color:var(--ink)}
.header:before{content:'';position:absolute;inset:0 0 -28px;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,var(--bg) 55%,transparent);opacity:.95}
.header .brand{position:relative;margin:0;z-index:3;flex:none}.header .brand img{width:154px;height:auto;max-height:70px;transition:filter .4s ease}.tone-dark .header .brand img,.header.menu-open .brand img{filter:brightness(0) invert(94%) sepia(6%) saturate(160%)}
.header .menu-toggle{display:grid;place-items:center;position:absolute;right:5vw;top:20px;width:44px;height:44px;padding:6px;border:0;background:none;color:var(--ink);z-index:3;transition:color .45s ease}
.menu-toggle svg{width:32px;height:32px;overflow:visible}.menu-line{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;transform-origin:16px 16px;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .25s ease}
.menu-toggle[aria-expanded=true]{color:#d69c74}.menu-toggle[aria-expanded=true] .line-top{transform:rotate(45deg) translateY(7px)}.menu-toggle[aria-expanded=true] .line-middle{opacity:0;transform:scaleX(.3)}.menu-toggle[aria-expanded=true] .line-bottom{transform:rotate(-45deg) translateY(-7px)}
.header #navigation{position:fixed;inset:0;top:0;width:100%;height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:22px;padding:110px 12vw 70px;background:#292f2e;color:#f1eee7;border:0;box-shadow:none;z-index:2;overflow:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;clip-path:inset(0 0 100% 0);pointer-events:none;transition:clip-path .65s cubic-bezier(.76,0,.24,1),opacity .4s ease,visibility 0s .65s}
.header #navigation.open{visibility:visible;opacity:1;clip-path:inset(0);pointer-events:auto;transition:clip-path .65s cubic-bezier(.76,0,.24,1),opacity .4s ease,visibility 0s}
.header #navigation>a{font-size:clamp(32px,5.6vw,76px);font-weight:500;letter-spacing:-.045em;line-height:1.18;transform:translateY(28px);opacity:0;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .4s ease;color:#f1eee7}
.header #navigation.open>a{transform:none;opacity:1;transition-delay:.16s}.header #navigation.open>a:nth-child(2){transition-delay:.22s}.header #navigation.open>a:nth-child(3){transition-delay:.28s}.header #navigation.open>a:nth-child(4){transition-delay:.34s}
.header #navigation .nav-cta{border:0;border-top:1px solid #ffffff30;border-radius:0;margin-top:20px;padding:24px 0 0;max-width:none;width:auto;gap:35px;font-size:clamp(21px,3vw,38px);color:#d69c74}
html.menu-is-open,html.menu-is-open body{overflow:hidden}.header.menu-open:before{opacity:0}
@media(max-width:700px){.header{height:76px}.header .brand img{width:142px;max-height:64px}.header .menu-toggle{right:4vw;top:16px}.header #navigation{padding:100px 8vw 65px;gap:24px}.header #navigation>a{font-size:clamp(31px,9vw,48px)}.header #navigation .nav-cta{font-size:23px;gap:24px;margin-top:18px}}
@media(prefers-reduced-motion:reduce){.header #navigation,.header #navigation>a,.menu-line{transition:none!important}}
/* Floating navigation has no hard divider or blur. */
.header,.header.menu-open{background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.header:after{display:none!important}
.service-solar h3{font-size:clamp(36px,4.7vw,70px)}.hero-aside p{max-width:19ch}.contact-heading h2{font-size:clamp(46px,6vw,90px)}
@media(max-width:700px){.service-solar h3{font-size:9vw}.hero-aside p{max-width:17ch}.contact-heading h2{font-size:12.5vw}.hero-heading h1{font-size:12vw}}
/* Let the next content enter before the completed scene fades away. */
.statement{height:auto;min-height:90svh}.statement-pin{position:relative;height:auto;min-height:90svh;padding:90px 10vw}.statement-ghost{bottom:0}.services{padding-top:65px}
@media(max-width:700px){.statement{height:auto;min-height:78svh}.statement-pin{position:relative;height:auto;min-height:78svh;padding:72px 7vw}.statement h2{font-size:clamp(34px,8.6vw,52px)}.statement-ghost{bottom:1vh}.services{padding-top:35px}.section-lead{padding-bottom:0}}
/* Explicit parallax layers: photograph, oversized type, readable copy. */
.service{isolation:isolate}.service-image{z-index:1}.service-backword{z-index:2;color:color-mix(in srgb,var(--ink) 24%,transparent)}.service-content{z-index:3}.service-content .reveal-line{overflow:visible}.service-content h3{position:relative;z-index:1}.material-break{isolation:isolate}.material-photo{z-index:0}.material-break h2{z-index:2}
/* Centered service index: upright heavy type and an upright handwritten hover face. */
.service-explorer{padding:100px 2vw 110px;overflow:clip;position:relative;isolation:isolate}.service-explorer>h2{font-size:20px;text-align:center;letter-spacing:-.025em;margin-bottom:45px;font-weight:600}.explorer-stage{position:relative;max-width:1700px;margin:auto}.explorer-list{position:relative;z-index:2;list-style:none;padding:0;margin:0;display:flex;align-items:center;flex-direction:column;gap:0}.explorer-list li{padding:9px 0;max-width:100%}.explorer-tab{display:block;text-align:center;position:relative;outline-offset:8px}.explorer-type{position:relative;display:block;font-family:'Sora',var(--font);font-size:clamp(45px,6.65vw,113px);font-weight:600;font-style:normal;letter-spacing:-.05em;line-height:1.06}.type-plain{display:block;transition:opacity .16s}.type-alternate{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);white-space:nowrap;font-family:'Kalam',cursive;font-size:1.08em;font-style:normal;letter-spacing:-.05em;line-height:1.1;opacity:0;transition:opacity .16s}.explorer-tab.is-active .type-plain{opacity:0}.explorer-tab.is-active .type-alternate{opacity:1}.explorer-panels{pointer-events:none;position:absolute;inset:0;z-index:1}.explorer-panel{position:absolute;inset:0;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}.explorer-panel.active{visibility:visible;opacity:1;transition:opacity .2s}.explorer-card{position:absolute;width:15%;aspect-ratio:2/3;overflow:hidden;border-radius:8px;border:2px solid var(--ink);transform:scale(.88);transition:transform .35s cubic-bezier(.22,1,.36,1);background:#d8d7cf}.explorer-card img{width:100%;height:100%;object-fit:cover}.card-1{left:1.5%;top:8%;--card-angle:6deg}.card-2{right:1.5%;top:0;--card-angle:12deg}.card-3{left:-1%;bottom:0;--card-angle:-13deg}.card-4{right:0;bottom:-5%;--card-angle:-5deg}.card-3 img{object-position:20%}.card-4 img{object-position:80%}.explorer-panel.active .explorer-card{transform:rotate(var(--card-angle)) scale(1)}
@media(max-width:700px){.service-explorer{padding:65px 3vw 70px}.service-explorer>h2{font-size:17px;margin-bottom:32px}.explorer-list li{padding:9px 0}.explorer-type{font-size:clamp(28px,7.5vw,53px);letter-spacing:-.04em}.explorer-stage{padding-bottom:170px}.explorer-panels{top:auto;bottom:0;height:135px}.explorer-card{width:22%;height:125px;aspect-ratio:auto;border-radius:5px;border-width:1px}.card-1{left:3%;top:3px}.card-2{right:27%;top:0}.card-3{left:27%;bottom:0}.card-4{right:3%;bottom:0}}
@media(prefers-reduced-motion:reduce){.type-plain,.type-alternate,.explorer-panel,.explorer-card{transition:none}}
/* Edge-to-edge canvas, with the complete source frame fitted by the renderer. */
.hero-media{inset:0!important;top:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none;aspect-ratio:auto;margin:0;transform:none!important;mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none;background:#e7e5e2}.hero-media canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;mix-blend-mode:normal}.hero-media img{position:absolute;inset:0;object-fit:contain;object-position:center;width:100%;height:100%;mix-blend-mode:normal}.hero-side-note{display:none}
@media(max-width:700px){.hero-media img{object-position:50% 55%}}
/* Exterior construction and interior fit-out share one continuous scroll canvas. */
.hero{height:560svh;--opening-copy:1}.hero-heading,.hero-aside{opacity:calc(var(--opening-copy) * (1 - var(--hero-exit)));transition:opacity .12s linear}.hero.inside-house .hero-heading,.hero.inside-house .hero-aside{pointer-events:none}.header.over-film:not(.menu-open) .brand img{filter:none}.header.over-film.film-logo-light:not(.menu-open) .brand img{filter:brightness(0) invert(94%) sepia(6%) saturate(160%)}.header.over-film:not(.menu-open) .menu-toggle{color:#282c2b}.header.over-film.film-menu-light:not(.menu-open) .menu-toggle{color:#f1eee7}
@media(max-width:700px){.hero{height:510svh}}
@media(prefers-reduced-motion:reduce){.hero{height:100svh}.hero-heading,.hero-aside{opacity:1;transition:none}}
/* Coordinated service row expansion and floating image motion. */
.explorer-list li{padding:9px 0;transition:padding .55s cubic-bezier(.22,1,.36,1)}.explorer-list li.is-active{padding:25px 0}.explorer-type .type-plain{transition:opacity .23s ease,transform .5s cubic-bezier(.22,1,.36,1);transform:scale(1)}.explorer-type .type-alternate{font-family:var(--font);font-size:1.01em;font-weight:400;font-style:normal;letter-spacing:-.065em;line-height:1.1;transform:translate(-50%,-50%) scale(.96);transition:opacity .25s ease,transform .55s cubic-bezier(.22,1,.36,1)}.explorer-tab.is-active .type-plain{transform:scale(.97)}.explorer-tab.is-active .type-alternate{transform:translate(-50%,-50%) scale(1)}
.explorer-panels{height:0;top:0;bottom:auto;transform:translate3d(var(--preview-x,0px),var(--preview-y,0px),0);will-change:transform}.explorer-panel{inset:0;height:0;visibility:hidden;opacity:0;transition:opacity .24s ease,visibility 0s .52s}.explorer-panel.active{visibility:visible;opacity:1;transition:opacity .32s ease,visibility 0s}.explorer-card{width:clamp(110px,14vw,235px);top:auto;bottom:auto;--enter-x:40px;transform:translate3d(var(--enter-x),12px,0) rotate(0) scale(.55);opacity:0;border:0;box-shadow:0 6px 22px #11191412;transition:transform .65s cubic-bezier(.16,1,.3,1),opacity .25s ease;will-change:transform}.card-1{left:2%;bottom:25px;--card-angle:-8deg}.card-2{right:2%;bottom:45px;--card-angle:9deg;--enter-x:-40px}.card-3{left:0;top:24px;--card-angle:7deg}.card-4{right:0;top:43px;--card-angle:-6deg;--enter-x:-40px}.explorer-panel.active .explorer-card{opacity:1;transform:translate3d(0,0,0) rotate(var(--card-angle)) scale(1)}.explorer-panel.active .card-2{transition-delay:30ms}.explorer-panel.active .card-3{transition-delay:50ms}.explorer-panel.active .card-4{transition-delay:75ms}
@media(max-width:700px),(hover:none){.explorer-stage{padding-bottom:175px}.explorer-panels{top:auto;bottom:0;height:135px;transform:none;will-change:auto}.explorer-panel{height:135px}.explorer-list li.is-active{padding:17px 0}.explorer-card{width:22%;height:125px;max-width:none}.card-1{left:3%;top:3px;bottom:auto}.card-2{right:27%;top:0;bottom:auto}.card-3{left:27%;top:auto;bottom:0}.card-4{right:3%;top:auto;bottom:0}}
@media(prefers-reduced-motion:reduce){.explorer-list li,.explorer-type>span,.explorer-panel,.explorer-card{transition:none!important}.explorer-panels{will-change:auto}}

/* Story typography: retain the site's typeface and palette, animate letters only. */
.story-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hero-heading{top:20%;width:auto;opacity:calc(1 - var(--hero-exit));transition:none;pointer-events:none;transform:none!important}
.story-chapter[hidden]{display:none}
.story-title{font-size:clamp(48px,6.3vw,106px);font-weight:500;line-height:1.07;letter-spacing:-.065em;margin:0}
.story-title>span{display:block;overflow:visible}
.story-word{display:inline-block;white-space:nowrap}
.story-word i{display:inline-block;font-style:normal;transform-origin:50% 80%;will-change:transform,opacity}
.story-description{font-size:clamp(14px,1.25vw,19px);line-height:1.5;letter-spacing:-.015em;margin-top:22px;max-width:36ch}
.hero-aside{opacity:calc(var(--story-aside,1) * (1 - var(--hero-exit)));transition:none;transform:none!important}
@media(max-width:700px){.hero-heading{top:23%}.story-title{font-size:9.1vw;line-height:1.12}.story-description{font-size:14px;max-width:29ch;margin-top:17px}}
@media(prefers-reduced-motion:reduce){.story-word i{transform:none!important;opacity:1!important;will-change:auto}.hero-heading,.hero-aside{opacity:1}}

/* Reversible right-to-left word travel; hover styling stays independent. */
.service-explorer{overflow-x:clip}
.explorer-tab{will-change:transform}
@media(prefers-reduced-motion:reduce){.explorer-tab{transform:none!important;will-change:auto}}

/* A compact, architectural title scale with clear space below the navigation. */
.hero-heading{top:clamp(125px,22vh,230px);left:6vw;right:6vw}
.story-title{font-family:"Helvetica Neue",Arial,sans-serif;font-weight:500;font-size:clamp(44px,4.9vw,82px);line-height:1.08;letter-spacing:-.045em;max-width:17ch}
.story-description{font-size:clamp(14px,1.05vw,17px);line-height:1.55;max-width:33ch;margin-top:23px}
.story-chapter{position:absolute;top:0;left:0;width:100%}
.hero-media{opacity:calc(1 - var(--hero-exit));transition:none}
@media(max-width:700px){.hero-heading{top:clamp(115px,23svh,190px)}.story-title{font-size:10.2vw;max-width:18ch;letter-spacing:-.045em}.story-description{font-size:14px;max-width:29ch;margin-top:18px}}
@media(max-height:600px) and (min-width:701px){.hero-heading{top:108px}.story-title{font-size:clamp(36px,4.5vw,58px)}.story-description{margin-top:13px}}
/* Let the next section enter while the film dissolves, avoiding an empty handoff. */
.hero{margin-bottom:-25svh}.statement{z-index:2}
@media(prefers-reduced-motion:reduce){.hero{margin-bottom:0}.story-chapter{position:relative}.hero-media{opacity:1}}

/* Architectural cut plane into the construction sequence; text remains above it. */
.hero-media .stage-reveal{position:absolute;inset:auto;z-index:2;max-width:none;pointer-events:none;opacity:0;object-fit:fill;mix-blend-mode:normal;transform:none!important}
@media(max-width:700px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.hero-media .stage-reveal{display:none}}

/* Floating previews cross the section boundary without being cropped or covered. */
.service-explorer{overflow:visible;z-index:3}
.explorer-list{overflow:visible}
.explorer-panels{overflow:visible}
.material-break{z-index:0}
/* Quiet, full-screen navigation: one surface, clear type, restrained motion. */
.header #navigation{display:flex;justify-content:flex-start;align-items:stretch;gap:0;padding:clamp(116px,18dvh,190px) 10vw clamp(30px,7dvh,74px);background:#262e2c;color:#f1eee7;overflow:auto;opacity:1;transition:clip-path .46s cubic-bezier(.65,0,.35,1) .12s,visibility 0s .58s}
.header #navigation.open{transition:clip-path .58s cubic-bezier(.65,0,.35,1),visibility 0s}
.header #navigation.closing{pointer-events:auto}
.menu-toggle svg{transition:transform .35s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){.menu-toggle:hover svg{transform:scale(.9)}}
.menu-toggle:active svg{transform:scale(.84)}
.menu-main{width:100%;max-width:1400px;margin:auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:8vw;align-items:center}
.menu-links{width:100%;display:flex;flex-direction:column;gap:clamp(12px,2.2dvh,26px)}
.header #navigation .menu-link{display:block;width:fit-content;max-width:100%;padding:5px 0;opacity:0;transform:translateY(18px);transition:transform .25s cubic-bezier(.4,0,.6,1),opacity .2s ease;transition-delay:calc((3 - var(--menu-order)) * .025s)}
.header #navigation.open .menu-link{opacity:1;transform:none;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .4s ease;transition-delay:calc(.12s + var(--menu-order) * .045s)}
.menu-label{display:block;width:fit-content;font-size:clamp(44px,5.6vw,88px);font-weight:500;line-height:1.14;letter-spacing:-.05em;transition:opacity .35s ease,color .35s ease}
.menu-label{overflow:hidden;line-height:1.24}
.menu-label-track{display:block;position:relative;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.menu-label-track>span{display:block;white-space:nowrap;padding-block:.06em;clip-path:inset(0)}
.menu-label-track>span+span{position:absolute;top:100%;left:0}
.header #navigation .menu-link.is-selected .menu-label-track{transform:translateY(-100%)}
.menu-links.has-selection .menu-link:not(.is-selected) .menu-label{opacity:.45}
.menu-preview{width:100%;max-width:380px;justify-self:end;opacity:0;transform:translateY(18px);transition:opacity .2s ease,transform .3s cubic-bezier(.4,0,.6,1);pointer-events:none}
.header #navigation.open .menu-preview{opacity:1;transform:none;transition:opacity .5s ease .2s,transform .6s cubic-bezier(.22,1,.36,1) .16s}
.menu-preview-drift{transform:translate(var(--preview-x,0px),var(--preview-y,0px));transition:transform .75s cubic-bezier(.22,1,.36,1)}
.menu-preview-images{position:relative;width:100%;aspect-ratio:4/5;max-height:49dvh;overflow:hidden;background:#303835}
.menu-preview-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:translateY(20px) scale(1.035);transition:opacity .5s ease,transform .75s cubic-bezier(.22,1,.36,1)}
.menu-preview-image.is-current{opacity:1;transform:none}
.menu-preview figcaption{margin-top:14px;color:#929b95;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}
.header #navigation a:after{display:none}
.menu-bottom{width:100%;max-width:1400px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:clamp(35px,8dvh,90px) auto 0;opacity:0;transform:translateY(16px);transition:opacity .18s ease,transform .25s cubic-bezier(.4,0,.6,1)}
.header #navigation.open .menu-bottom{opacity:1;transform:none;transition:opacity .4s ease .3s,transform .5s cubic-bezier(.22,1,.36,1) .3s}
.menu-enquiry{font-size:20px;font-weight:500;letter-spacing:-.025em}.menu-email{font-size:15px;color:#b8bdb7}
.menu-bottom a{transition:color .3s ease,transform .4s cubic-bezier(.22,1,.36,1)}
.header.menu-open .menu-toggle{color:#f1eee7}
.header #navigation a:focus-visible{outline:none;color:#d69c74;text-decoration:underline;text-underline-offset:8px}
.header #navigation .menu-link:focus-visible{color:#f1eee7;text-decoration:none}
.header #navigation .menu-link:focus-visible .menu-label{color:#f1eee7}
@media(hover:hover) and (pointer:fine){
 .menu-link:hover .menu-label{color:#f1eee7}
 .menu-bottom a:hover{color:#d69c74;transform:translateY(-2px)}
}
@media(max-width:700px){
 .header #navigation{padding:120px 8vw 40px}
 .menu-links{gap:23px}.header #navigation .menu-link{display:block;padding:6px 0}
 .menu-main{display:block}.menu-preview{display:none}.menu-label-track{transform:none!important}.menu-label{font-size:clamp(37px,10vw,60px)}
 .menu-link:active .menu-label{opacity:.65;transform:translateY(2px)}
 .menu-bottom{margin-top:56px;align-items:flex-start;flex-direction:column;gap:14px}.menu-enquiry{font-size:19px}.menu-email{font-size:14px}
}
@media(max-height:600px){
 .header #navigation{padding-top:96px;padding-bottom:24px}.menu-links{gap:8px}.menu-label{font-size:clamp(28px,6dvh,44px)}.menu-bottom{margin-top:24px;flex-direction:row;align-items:center}.menu-enquiry{font-size:17px}
}
@media(prefers-reduced-motion:reduce){
 .header #navigation,.header #navigation .menu-link,.menu-label,.menu-bottom,.menu-bottom a,.menu-toggle svg{transition:none!important;transform:none!important}
}

@media(hover:none),(pointer:coarse){.menu-main{display:block}.menu-preview{display:none}.menu-label-track{transform:none!important}.menu-link:active .menu-label{opacity:.65}}
@media(prefers-reduced-motion:reduce){.menu-preview,.menu-preview-drift,.menu-preview-image,.menu-label-track{transition:none!important;transform:none!important}.menu-label-track>span+span{display:none}.menu-link.is-selected .menu-label{color:#f1eee7}}

/* Letter-by-letter reading plane over two independent typographic depth layers. */
.statement{height:175svh;min-height:0;--statement-accent:#96552f}
.tone-dark .statement{--statement-accent:#dfa77f}
.statement-pin{position:sticky;top:0;height:100svh;min-height:700px;padding:110px 8vw 76px;isolation:isolate}
.statement h2{max-width:19ch;font-size:clamp(42px,5.7vw,88px);line-height:1.15;letter-spacing:-.055em}
.statement-word{display:inline-block;white-space:nowrap;position:relative}
.statement-letter{--letter-progress:0;color:color-mix(in srgb,var(--ink) calc(var(--letter-progress) * 100%),color-mix(in srgb,var(--ink) 22%,var(--bg)))}
.statement-keyword{color:var(--statement-accent)}
.statement-keyword .statement-letter{color:color-mix(in srgb,var(--statement-accent) calc(var(--letter-progress) * 100%),color-mix(in srgb,var(--ink) 22%,var(--bg)))}
.statement-keyword:after{content:'';position:absolute;left:0;right:0;bottom:.025em;height:2px;background:var(--statement-accent);opacity:.55;transform:scaleX(var(--keyword-progress,0));transform-origin:left}
.statement-foot{margin-top:38px;font-size:13px}




@media(max-width:700px){
 .statement{height:170svh}
 .statement-pin{height:100svh;min-height:620px;padding:105px 7vw 74px}
 .statement h2{font-size:clamp(32px,8.5vw,52px);line-height:1.2;max-width:19ch}
 .statement .eyebrow{font-size:10px;margin-bottom:26px}
 .statement-foot{gap:16px;font-size:11px;margin-top:32px}
 .statement-foot .mono{font-size:9px;white-space:nowrap}


}
@media(max-height:650px) and (min-width:701px){
 .statement{height:190svh}.statement-pin{min-height:540px;padding-top:95px;padding-bottom:45px}
 .statement h2{font-size:clamp(35px,5vw,56px);max-width:23ch}
 .statement .eyebrow{margin-bottom:18px}.statement-foot{margin-top:22px}
}
@media(prefers-reduced-motion:reduce){
 .statement{height:auto}.statement-pin{position:relative;height:auto;min-height:90svh}
 .statement-letter{color:var(--ink)}.statement-keyword .statement-letter{color:var(--statement-accent)}
 .statement-keyword:after{transform:none}
}

/* Direct contact remains useful while the enquiry form is a prototype. */
.contact-direct{margin-top:38px;width:100%}
.contact-email,.contact-phone{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:19px 0;border-top:1px solid var(--line)}
.contact-label{grid-column:1/-1;font-size:12px;color:var(--muted)}
.contact-email>span:not(.contact-label),.contact-phone>span:not(.contact-label){font-size:clamp(21px,2.2vw,31px);letter-spacing:-.035em;line-height:1.3}
.contact-email .arrow-icon{width:23px;height:23px;align-self:center;transition:transform .2s}
.contact-email:hover .arrow-icon{transform:translate(3px,-3px)}
.contact-email:hover>span:not(.contact-label){text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.contact-phone small{grid-column:1/-1;font-size:11px;color:var(--muted)}
.contact-whatsapp{display:flex;align-items:center;gap:12px;width:100%;margin-top:8px;padding:16px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:default;opacity:1}
.contact-whatsapp svg{width:25px;height:25px;flex:none;color:inherit}
.contact-whatsapp small{margin-left:auto;font-size:11px;color:var(--muted)}
.contact-heading .prototype-note{margin-top:28px}
.footer-info{flex-wrap:wrap}.footer-info a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){.contact-direct{margin-top:28px}.contact-email>span:not(.contact-label),.contact-phone>span:not(.contact-label){font-size:25px}.contact-whatsapp{padding:14px;gap:10px}}
@media(prefers-reduced-motion:reduce){.contact-email .arrow-icon{transition:none}}

/* Equal contact columns, with their primary actions sharing a baseline. */
.contact{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8vw;row-gap:22px;align-items:stretch}
.contact-heading{display:flex;flex-direction:column;min-width:0}
.contact-direct{margin-top:auto;padding-top:38px}
.contact .form-panel{padding-top:0;display:flex;flex-direction:column}
.contact #enquiry{display:flex;flex-direction:column;flex:1;min-width:0}
.contact #enquiry[hidden]{display:none}
.contact .form-submit{margin-top:auto;min-height:76px;padding:17px 22px}
.contact #form-error{margin-bottom:18px}
.contact .contact-note{grid-column:2;margin:0;max-width:45ch;font-size:12px;line-height:1.7}
.contact-whatsapp{min-height:76px;margin-top:12px;padding:18px 22px;border-color:#8f705b;background:#35332e;color:#f1eee7;border-radius:3px}
.contact-whatsapp small{color:#d2c1b4}
.contact-whatsapp,.contact .form-submit,.contact .download{position:relative;isolation:isolate;overflow:hidden;transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s,border-color .4s,color .35s,background .35s}
.contact-whatsapp:before,.contact .form-submit:before,.contact .download:before{content:'';position:absolute;inset:0;z-index:-1;background:#d49a72;transform:translateX(-102%);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.contact .form-submit:before{background:#e7b894}
.contact-whatsapp>svg{transition:transform .45s cubic-bezier(.22,1,.36,1)}
.contact-whatsapp small{transition:color .35s}
.contact .form-submit .arrow-icon,.contact .download .arrow-icon{transition:transform .45s cubic-bezier(.22,1,.36,1)}
.contact .text-button{width:fit-content;transition:color .3s,transform .35s,text-underline-offset .35s;text-decoration-thickness:1px}
.contact .file-label{transition:border-color .3s,background .3s;overflow:hidden}
.contact .file-label span{transition:transform .35s,color .35s}
.contact-whatsapp:focus-visible,.contact .form-submit:focus-visible,.contact .download:focus-visible,.contact .text-button:focus-visible{outline:2px solid #e7b894;outline-offset:5px}
.contact .form-submit:focus-visible:before,.contact .download:focus-visible:before{transform:translateX(0)}
.contact .download:focus-visible{color:#252b2a}
.contact .file-label:focus-within{border-color:#d49a72;background:#d49a7210}
@media(hover:hover) and (pointer:fine){
 .contact-whatsapp:hover,.contact .form-submit:hover,.contact .download:hover{transform:translateY(-2px);box-shadow:0 8px 20px #11181624}
 .contact-whatsapp:hover:before,.contact .form-submit:hover:before,.contact .download:hover:before{transform:translateX(0)}
 .contact-whatsapp:hover,.contact .download:hover{color:#252b2a;border-color:#d49a72}
 .contact-whatsapp:hover small{color:#49463d}
 .contact-whatsapp:hover>svg{transform:translateY(-1px) rotate(-8deg)}
 .contact .form-submit:hover .arrow-icon{transform:translate(3px,-3px)}
 .contact .download:hover .arrow-icon{transform:translateY(3px)}
 .contact .text-button:hover{color:#e7b894;transform:translateX(3px);text-underline-offset:9px}
 .contact .file-label:hover{border-color:#d49a72;background:#d49a7210}
 .contact .file-label:hover span{transform:translateX(-3px);color:#e7b894}
}
.contact .form-submit:active,.contact .download:active{transform:translateY(0) scale(.99);box-shadow:none}
@media(max-width:700px){
 .contact{grid-template-columns:minmax(0,1fr);row-gap:36px}
 .contact-direct{margin-top:0;padding-top:28px}
 .contact-whatsapp{padding:16px;gap:10px;min-height:76px}
 .contact .contact-note{grid-column:1;margin-top:-14px;font-size:11px}
 .contact .form-submit{min-height:70px}
}
@media(prefers-reduced-motion:reduce){
 .contact-whatsapp,.contact-whatsapp>svg,.contact-whatsapp small,.contact-whatsapp:before,.contact .form-submit,.contact .form-submit:before,.contact .form-submit .arrow-icon,.contact .download,.contact .download:before,.contact .download .arrow-icon,.contact .text-button,.contact .file-label,.contact .file-label span{transition:none!important}
 .contact-whatsapp:hover,.contact-whatsapp:hover>svg,.contact .form-submit:hover,.contact .form-submit:hover .arrow-icon,.contact .download:hover,.contact .download:hover .arrow-icon,.contact .text-button:hover,.contact .file-label:hover span{transform:none}
}


/* Architectural process sheets: vertical scrolling places each sheet from right to left. */
.process{position:relative;isolation:isolate;padding:50px 0 40px}
.process-pin{padding:0 7vw}
.process h2{font-size:clamp(36px,4.3vw,64px);line-height:1.06}
.process ol{display:flex;flex-direction:column;gap:24px;margin:32px 0 0;padding:0;list-style:none}
.process li{--step:0;--card-ink:#282c2b;--card-muted:#59605b;--card-accent:#a36442;position:relative;display:flex;flex-direction:column;gap:26px;min-width:0;margin:0;padding:30px 36px 24px;border:1px solid #282c2b21;border-radius:8px;background:#efeee9;color:var(--card-ink);box-shadow:0 10px 30px #282c2b0b}
.process li:nth-child(2){--step:1;background:#d5d6cd}
.process li:nth-child(3){--step:2;--card-ink:#f1eee7;--card-muted:#c1c6bc;--card-accent:#d49a72;background:#303a35}
.process-card-top{display:flex;align-items:center;gap:20px;font:13px var(--mono);color:var(--card-muted)}
.process-number{font-size:22px;line-height:1;color:var(--card-accent)}
.process-card-rule{height:1px;flex:1;background:currentColor;opacity:.24}
.process-total{font-size:11px}
.process-card-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(160px,.8fr);align-items:center;gap:40px;flex:1;min-height:0}
.process h3{margin:0;font-size:clamp(29px,3.5vw,48px);line-height:1.12;max-width:20ch}
.process li p{margin:22px 0 0;font-size:clamp(16px,1.55vw,20px);line-height:1.6;color:var(--card-muted);max-width:40ch}
.process-diagram{width:100%;max-width:230px;max-height:100%;justify-self:end;stroke:var(--card-ink);stroke-width:1.2;stroke-linecap:square;stroke-linejoin:miter;opacity:.75}
.process-diagram .diagram-accent{stroke:var(--card-accent);stroke-width:2}
.process-diagram .diagram-guide{stroke-dasharray:3 5;opacity:.5;stroke-width:.8}
.process-card-foot{padding-top:16px;border-top:1px solid color-mix(in srgb,var(--card-ink) 15%,transparent);font:11px var(--mono);color:var(--card-muted);line-height:1.5}
.motion-ready .process{height:280svh;padding:0}
.motion-ready .process-pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;gap:28px;padding:105px 7vw 42px;overflow:clip}
.motion-ready .process ol{position:relative;display:block;flex:none;height:clamp(320px,47svh,440px);margin:0;--stack-gap:18px}
.motion-ready .process li{position:absolute;inset:0 auto 0 calc(var(--step)*var(--stack-gap));width:calc(100% - var(--stack-gap)*2);z-index:calc(1 + var(--step));transform-origin:left center;will-change:transform}
.motion-ready .process li:not(:first-child){transform:translateX(110vw)}
@media(max-width:700px){
 .process-pin{padding:0 6vw}
 .process h2{font-size:clamp(33px,8.8vw,44px)}
 .process li{padding:24px 23px 22px;gap:22px}
 .process-card-body{display:block;position:relative}
 .process h3{font-size:clamp(26px,7vw,34px);max-width:18ch}
 .process li p{font-size:15px;line-height:1.65;margin-top:20px;max-width:30ch}
 .process-diagram{position:absolute;right:0;bottom:-4px;width:76px;height:79px;opacity:.23;pointer-events:none}
 .process-card-copy{position:relative;z-index:1}
 .process-card-foot{font-size:9px;padding-top:15px}
 .motion-ready .process{height:290svh}
 .motion-ready .process-pin{padding:96px 6vw 32px;gap:24px}
 .motion-ready .process ol{height:clamp(370px,54svh,460px);--stack-gap:11px}
}
@media(prefers-reduced-motion:reduce),(max-height:600px){
 .motion-ready .process{height:auto;padding:50px 0}
 .motion-ready .process-pin{position:relative;height:auto;display:block;overflow:visible;padding:0 7vw}
 .motion-ready .process ol{display:flex;height:auto;margin-top:32px;gap:22px}
 .motion-ready .process li{position:relative;inset:auto;width:100%;transform:none!important;will-change:auto}
 .process-card-body{min-height:180px}
}

/* Shared row tracks align both contact dividers and both actions. */
.contact-intro>p:not(.eyebrow){margin-top:30px;color:var(--muted)}
@media(min-width:701px){
 @supports(grid-template-rows:subgrid){
  .contact{grid-template-rows:repeat(7,auto);row-gap:0}
  .contact-heading,.contact .form-panel,.contact #enquiry{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:1/7;row-gap:0}
  .contact-heading{grid-column:1}.contact .form-panel{grid-column:2}
  .contact-intro{grid-row:1/3;padding-bottom:32px}
  .contact-direct{display:contents}
  .contact-email{grid-row:3;align-content:center}
  .contact-phone{grid-row:4;align-content:start}
  .contact-whatsapp{grid-row:6;margin:0;min-height:76px;align-self:stretch}
  .contact .form-top{grid-row:1;margin:0 0 30px;align-self:start}
  .contact #step-one{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:2/5;row-gap:0}
  .contact .form-fields{grid-row:1;display:flex;flex-direction:column}
  .contact .form-fields>label:last-child{margin-bottom:0;display:flex;flex-direction:column;flex:1}
  .contact .form-fields textarea{border-bottom:0;flex:1;min-height:110px}
  .contact .form-upload{grid-row:2;border-top:1px solid var(--line);padding:19px 0;display:flex;align-items:center}
  .contact .form-upload .file-label{width:100%;margin:0}
  .contact .form-files{grid-row:3;border-top:1px solid var(--line);padding:19px 0}
  .contact #file-names:empty{display:none}
  .contact #step-two{grid-row:2/5}
  .contact #form-error{grid-row:5;margin:0;padding:12px 0}
  .contact #form-error:empty{display:none}
  .contact .form-submit{grid-row:6;align-self:stretch;margin:0;min-height:76px}
  .contact #form-result{grid-row:1/7;min-width:0}
  .contact .contact-note{grid-row:7;grid-column:2;margin:22px 0 0}
 }
}
@media(max-width:700px){.contact-intro>p:not(.eyebrow){margin-top:22px;font-size:15px}}

/* The page edge, rather than an inset list, is the service text's only crop. */
body{overflow-x:clip}
.service-explorer{overflow-x:clip;overflow-y:visible}
/* Give the outlined letters breathing room; fade the entire drawing at its boundaries. */






/* Restrained sheet edges retain a full-height hit area and a small numeric index. */
.process li{padding:0;gap:0;border-radius:2px;box-shadow:0 6px 18px #282c2b06}
.process-card-content{display:flex;flex-direction:column;flex:1;min-height:0;padding:30px 36px 24px;gap:26px}
.process-spine,.process-picker{display:none}
.motion-ready .process ol{--stack-gap:44px}
.motion-ready .process-card-content{padding-left:76px}
.motion-ready .process-spine{position:absolute;inset:0 auto 0 0;width:44px;border:0;border-radius:2px 0 0 2px;background:transparent;color:var(--card-muted);display:flex;align-items:flex-start;justify-content:center;padding:28px 0;font:500 12px var(--font);font-variant-numeric:tabular-nums;transition:color .25s}
.process-spine:after{content:'';position:absolute;top:53px;left:16px;width:12px;height:1px;background:var(--card-accent);transform:scaleX(0);transition:transform .25s}
.process-spine:hover,.process-spine:focus-visible{color:var(--card-accent)}
.process-spine:hover:after,.process-spine:focus-visible:after{transform:scaleX(1)}
.process-spine:focus-visible{outline-offset:-4px}
.motion-ready .process-number{display:none}
.process li.is-front{box-shadow:0 8px 24px #282c2b0a}
@media(max-width:700px){
 .process-card-content,.motion-ready .process-card-content{padding:24px 23px 22px;gap:22px}
 .motion-ready .process ol{--stack-gap:9px}
 .motion-ready .process-spine{display:none}
 .motion-ready .process-number{display:block}
 .motion-ready .process-picker{display:flex;gap:7px;margin:-3px 0 -7px}
 .process-picker button{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px;border:0;border-bottom:1px solid #282c2b26;border-radius:0;background:transparent;font:500 11px var(--font);color:#626762;transition:border-color .25s,color .25s,transform .25s}
 .process-picker button[aria-pressed=true]{border-bottom-color:#a36442;color:#282c2b}
 .process-picker button:hover{transform:translateY(-3px)}
 .motion-ready .process-pin{gap:20px}
}
@media(prefers-reduced-motion:reduce),(max-height:600px){
 .motion-ready .process-spine,.motion-ready .process-picker{display:none}
 .motion-ready .process-card-content{padding-left:36px}
 .motion-ready .process-number{display:block}
}
@media(prefers-reduced-motion:reduce){.process-spine,.process-spine>span,.process-picker button{transition:none}}

.contact .form-submit:disabled{cursor:wait;opacity:.7;transform:none}
#form-result[data-delivery]:not([data-delivery=sent]) .success-mark{color:var(--accent);border-color:var(--accent)}
#form-result .download{margin:24px 10px 0 0;display:inline-flex;align-items:center;gap:12px}
#form-result #summary{margin-top:32px}

#form-title,#form-result{scroll-margin-top:110px}




@media(max-width:700px){.process-diagram{width:110px;height:115px}}

/* Keep the original two-face service interaction at a slightly smaller scale. */
.explorer-type{font-size:clamp(40px,6vw,102px)}
@media(max-width:700px){.explorer-type{font-size:clamp(26px,7vw,49px)}}

/* A staggered field of service names moves in alternating directions behind the copy. */
.statement-depth{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;user-select:none;-webkit-mask-image:linear-gradient(transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(transparent,#000 8%,#000 92%,transparent)}
.statement-band{position:absolute;display:block;white-space:nowrap;left:-12vw;top:-2%;font-family:'Sora',var(--font);font-size:clamp(64px,min(11.5vw,13.5svh),190px);font-weight:600;line-height:1.2;letter-spacing:-.02em;color:color-mix(in srgb,var(--ink) 2.6%,transparent);filter:blur(.65px);will-change:transform}
.statement-band:nth-child(2){top:15.5%;left:-37vw}
.statement-band:nth-child(3){top:33%;left:-7vw}
.statement-band:nth-child(4){top:50.5%;left:-26vw}
.statement-band:nth-child(5){top:68%;left:-48vw}
.statement-band:nth-child(6){top:85.5%;left:-15vw}
@media(max-width:700px){.statement-band{font-size:clamp(72px,min(23vw,13.5svh),140px);letter-spacing:-.02em;color:color-mix(in srgb,var(--ink) 2.4%,transparent);filter:blur(.5px)}}
@media(prefers-reduced-motion:reduce){.statement-band{transform:none!important;will-change:auto}}

/* Keep the floating header transparent without altering the content beneath it. */
.header:before,.header:after{display:none!important}

/* Project filters keep their selected state while responding to hover and focus. */
.project-filters button{position:relative;border-bottom:2px solid transparent;transition:color .25s ease,transform .3s cubic-bezier(.22,1,.36,1)}
.project-filters button:after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.project-filters button[aria-pressed=true]{border-bottom-color:transparent}
.project-filters button[aria-pressed=true]:after,.project-filters button:hover:after,.project-filters button:focus-visible:after{transform:scaleX(1)}
.project-filters button:hover,.project-filters button:focus-visible{color:var(--ink);transform:translateY(-3px)}
.project-filters button:active{transform:translateY(-1px)}
@media(prefers-reduced-motion:reduce){.project-filters button,.project-filters button:after{transition:none}.project-filters button:hover,.project-filters button:focus-visible{transform:none}}

/* Keep popup controls within the neutral palette. */
.dialog-content>a{border-bottom-color:#282c2b}.dialog-content>a:focus-visible{outline-color:#282c2b}

@media(max-width:700px){.contact>.contact-direct{margin:16px 0 0;padding-top:0;min-width:0}}

/* Restrained project actions: fixed fine-line arrows and a subtle label response. */
#dialog-contact{display:inline-flex;align-items:center;gap:14px;transition:color .35s ease,border-color .35s ease}
.project-open{display:inline-flex;align-items:center;gap:12px;transition:transform .5s cubic-bezier(.22,1,.36,1),background .4s ease}
.project-action-label{display:inline-block;transition:transform .45s cubic-bezier(.22,1,.36,1)}
#dialog-contact .arrow-icon,.project-open .arrow-icon{width:16px;height:16px;margin:0;transform:none;transition:none}
#dialog-contact .arrow-icon path,.project-open .arrow-icon path{stroke-width:1.25}
#dialog-contact:focus-visible .project-action-label,.project button:focus-visible .project-action-label{transform:translateX(2px)}
@media(hover:hover) and (pointer:fine){
 #dialog-contact:hover{color:#59605b;border-bottom-color:#8c918b}
 #dialog-contact:hover .project-action-label,.project button:hover .project-action-label{transform:translateX(2px)}
 .project button:hover .project-open{transform:none;background:#e2e3dc}
}
@media(prefers-reduced-motion:reduce){
 #dialog-contact,.project-open,.project-action-label{transition:none}
 #dialog-contact:is(:hover,:focus-visible) .project-action-label,.project button:is(:hover,:focus-visible) .project-action-label{transform:none}
}

/* Action labels carry the interaction without decorative arrow icons. */
.hero-cta>span[aria-hidden=true]:empty,.form-submit>span[aria-hidden=true]:empty{display:none}
.hero-cta{transition:opacity .35s ease}
.hero-cta:hover{opacity:.65}
.contact .form-submit{justify-content:center}
.contact .form-submit #submit-label{transition:transform .4s cubic-bezier(.22,1,.36,1)}
.contact .form-submit:hover #submit-label{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.hero-cta,.contact .form-submit #submit-label{transition:none}.contact .form-submit:hover #submit-label{transform:none}}

/* The scroll cue eases downward on hover and keyboard focus. */
.hero-bottom .arrow-icon{transition:transform .55s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){.hero-bottom>a:hover .arrow-icon{transform:translateY(6px)}}
.hero-bottom>a:focus-visible .arrow-icon{transform:translateY(6px)}
@media(prefers-reduced-motion:reduce){.hero-bottom>a .arrow-icon{transition:none;transform:none}}

/* Quiet, shared feedback for the site's primary interactions. */
:root{--interaction-ease:cubic-bezier(.22,1,.36,1);--interaction-time:.5s}
.header .brand img{transition:filter .4s ease,transform var(--interaction-time) var(--interaction-ease)}
.header .brand:after{content:attr(data-hover-label);position:absolute;top:calc(100% - 9px);left:50%;font:500 11px/1.4 var(--font);letter-spacing:.02em;white-space:nowrap;color:inherit;opacity:0;transform:translate(-50%,4px);pointer-events:none;transition:opacity .3s ease,transform var(--interaction-time) var(--interaction-ease)}
.header .brand:focus-visible img{transform:translateY(-2px) scale(1.02)}
.header .brand:focus-visible:after{opacity:1;transform:translate(-50%,0)}
.service-page .detail-cta{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 22px;gap:0;border:0;border-radius:5px;background:#282c2b;color:#f1eee7;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;box-shadow:none;opacity:1;transition:transform var(--interaction-time) var(--interaction-ease),background .3s ease,color .3s ease}
.service-page .detail-cta:before{display:none}
#dialog-contact .project-action-label,.service-page .detail-cta-label{transform:none!important}
.service-page .detail-cta:focus-visible{outline:2px solid #69736d;outline-offset:4px;background:#424b46;color:#f1eee7}
.project img{transition:transform .75s var(--interaction-ease)}
.project-open{transform:none;transition:transform var(--interaction-time) var(--interaction-ease),background .3s ease}
.project button:focus-visible img{transform:scale(1.025)}
.project button:focus-visible .project-open{transform:translateY(-4px);background:#fffef8}
.project button .project-action-label{transform:none!important}
.contact-email{position:relative}
.contact-email>span:not(.contact-label){transition:transform var(--interaction-time) var(--interaction-ease),color .3s ease}
.contact-email:after{content:var(--cms-email-label,'Kirjuta meile');position:absolute;top:21px;right:0;font:500 11px/1.4 var(--font);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .3s ease,transform var(--interaction-time) var(--interaction-ease)}
.contact-email:focus-visible>span:not(.contact-label){transform:translateX(3px);color:#fffef8;text-decoration:none}
.contact-email:focus-visible:after{opacity:1;transform:none}
.footer-info a{display:inline-block;transition:transform var(--interaction-time) var(--interaction-ease),color .3s ease}
.footer-info a:focus-visible{color:#fffef8;transform:translateX(3px)}
@media(hover:hover) and (pointer:fine){
 .header .brand:hover img{transform:translateY(-2px) scale(1.02)}
 .header .brand:hover:after{opacity:1;transform:translate(-50%,0)}
 .service-page .detail-cta:hover{background:#424b46;color:#f1eee7;transform:translateY(-2px);opacity:1;box-shadow:none}
 .project button:hover img{transform:scale(1.025)}
 .project button:hover .project-open{transform:translateY(-4px);background:#fffef8}
 .contact-email:hover>span:not(.contact-label){transform:translateX(3px);color:#fffef8;text-decoration:none}
 .contact-email:hover:after{opacity:1;transform:none}
 .footer-info a:hover{transform:translateX(3px);color:#fffef8}
}
.service-page .detail-cta:active{transform:translateY(0) scale(.985)}
@media(hover:none),(pointer:coarse){.header .brand:after,.contact-email:after{display:none}.project button:hover img{transform:none}}
@media(max-width:700px){.service-page .detail-cta{min-height:48px}}
@media(prefers-reduced-motion:reduce){
 .header .brand img,.header .brand:after,.hero-cta,#dialog-contact,.service-page .detail-cta,.project img,.project-open,.contact-email>span,.contact-email:after,.footer-info a{transition:none!important}
 .header .brand:is(:hover,:focus-visible) img,.hero-cta:is(:hover,:focus-visible,:active),#dialog-contact:is(:hover,:focus-visible,:active),.service-page .detail-cta:is(:hover,:focus-visible,:active),.project button:is(:hover,:focus-visible) img,.project button:is(:hover,:focus-visible) .project-open,.contact-email:is(:hover,:focus-visible)>span,.footer-info a:is(:hover,:focus-visible){transform:none}
}

/* Logo navigation behaves as one non-selectable control. */
.brand,.brand:after,.brand img,.footer-brand,.footer-brand img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.brand,.footer-brand{cursor:pointer}
.brand img,.footer-brand img{pointer-events:none}

/* A quiet return-to-start cue, scoped to the footer logo. */
.footer-brand{position:relative;width:fit-content;max-width:100%}
.footer-brand>img{transform-origin:center;transition:transform var(--interaction-time) var(--interaction-ease)}
.footer-brand:after{content:attr(aria-label);position:absolute;left:50%;bottom:4%;color:inherit;font:500 12px/1.4 var(--font);letter-spacing:.01em;white-space:nowrap;opacity:0;transform:translate(-50%,5px);pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .3s ease,transform var(--interaction-time) var(--interaction-ease)}
.footer-brand:focus-visible>img{transform:translateY(-4px) scale(1.01)}
.footer-brand:focus-visible:after{opacity:1;transform:translate(-50%,0)}
@media(hover:hover) and (pointer:fine){
 .footer-brand:hover>img{transform:translateY(-4px) scale(1.01)}
 .footer-brand:hover:after{opacity:1;transform:translate(-50%,0)}
}
@media(hover:none),(pointer:coarse){.footer-brand:after{opacity:.8;transform:translate(-50%,0)}}
@media(prefers-reduced-motion:reduce){
 .footer-brand>img,.footer-brand:after{transition:none}
 .footer-brand:is(:hover,:focus-visible)>img{transform:none}
}

/* Small pointer hints keep the quote links visually light. */
#dialog-contact{border:0;padding:8px 0;color:#282c2b;background:none}
.hero-cta,#dialog-contact,.detail-cta{position:relative;overflow:visible;-webkit-user-select:none;user-select:none}
.hero-cta:after,#dialog-contact:after,.detail-cta:after{content:var(--cms-click-label,'Klõpsa');position:absolute;left:var(--hint-x,50%);top:var(--hint-y,0px);z-index:2;padding:5px 9px;border-radius:20px;background:#d8d7cf;color:#282c2b;font:500 11px/1.3 var(--font);letter-spacing:0;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(calc(-100% - 5px)) scale(.94);transform-origin:bottom left;transition:opacity .2s ease,transform .3s var(--interaction-ease),visibility .2s}
@media(hover:hover) and (pointer:fine){
 .hero-cta:hover{opacity:1}
 .hero-cta:hover:after,#dialog-contact:hover:after,.detail-cta:hover:after{opacity:1;visibility:visible;transform:translateY(calc(-100% - 10px)) scale(1)}
}
#dialog-contact:focus-visible{outline:2px solid #69736d;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.hero-cta:after,#dialog-contact:after,.detail-cta:after{transition:none;transform:translateY(calc(-100% - 10px))}}

/* Focus stays on the field baseline instead of drawing an orange rectangle. */
.contact input:not([type=file]),.contact textarea,.contact select{caret-color:#f1eee7;transition:border-color .25s ease,box-shadow .25s ease}
.contact input:not([type=file]):focus,.contact textarea:focus,.contact select:focus{outline:none;border-bottom-color:#f1eee7;box-shadow:0 1px 0 #f1eee7}
.contact form label:focus-within{color:#f1eee7}
.contact .file-label:focus-within{outline:none;border-color:#f1eee7;background:#f1eee709;box-shadow:inset 0 0 0 1px #f1eee7}
@media(prefers-reduced-motion:reduce){.contact input,.contact textarea,.contact select{transition:none}}

/* Privacy information stays beside the form before any email is prepared. */
.form-privacy{font-size:12px;line-height:1.6;color:var(--muted);margin-top:8px}
.form-privacy a{text-decoration:underline;text-underline-offset:3px;transition:color .25s}
.form-privacy a:is(:hover,:focus-visible){color:var(--ink)}
.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}

/* Touch: scroll selects the type and pictures; the first tap opens the service. */
@media(max-width:700px),(hover:none){
 .explorer-stage{padding-bottom:175px}
 .explorer-panels{display:block}
 .explorer-list li,.explorer-list li.is-active{padding:9px 0;transition:none}
 .explorer-tab{min-height:44px;display:flex;align-items:center;justify-content:center;transform-origin:center;touch-action:pan-y;transition:none}
 .explorer-tab:focus-visible{transform:none!important}
}
@media(prefers-reduced-motion:reduce){.explorer-tab{transform:none!important;opacity:1!important}}
