*,:before,:after{box-sizing:border-box}html,body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0;padding:0}ul[role=list],ol[role=list]{margin:0;padding:0;list-style:none}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}button,input,textarea,select{font:inherit}:where(p,li,td,th,label,dd,dt,figcaption) :where(a,strong):before{content:" "}:root{--font-display:"Baloo 2", sans-serif;--font-body:"Nunito Sans", sans-serif;--font-agency:"Poppins", sans-serif;--color-bg:#f0f8f4;--color-text:#111;--color-heading:#111;--color-accent:#00c7ba;--color-dark:#0e1612;--color-stone:#1f4a42;--color-on-accent:#111;--color-on-dark:#fff;--radius-pill:999px;--radius-card:1.75rem;--radius-hero:clamp(2rem, 5vw, 4.5rem);--shadow-soft:0 18px 40px -20px #0e161247;--space-section:clamp(4.5rem, 10vw, 7.5rem);--content:min(100% - 2rem, 72rem);--header-h:4.5rem}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body), system-ui, sans-serif;line-height:1.6}body.nav-open{overflow:hidden}h1,h2,h3,.about-name{color:var(--color-heading);font-family:var(--font-display), sans-serif;letter-spacing:-.02em;overflow-wrap:anywhere;text-wrap:balance;font-weight:700;line-height:1.12}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.skip-link{z-index:80;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-on-accent);padding:.65rem 1rem;text-decoration:none;position:absolute;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{z-index:40;height:var(--header-h);background:var(--color-bg);transition:box-shadow .35s;position:sticky;top:0}.site-header.is-scrolled{box-shadow:0 12px 28px -22px #0e161273}.site-header-inner{width:var(--content);justify-content:space-between;align-items:center;gap:1rem;height:100%;margin-inline:auto;display:flex}.brand{align-items:center;gap:.7rem;min-width:0;text-decoration:none;display:flex}.brand img{flex-shrink:0;width:3.5rem;height:3.5rem}.brand-name{color:var(--color-heading);font-family:var(--font-display), sans-serif;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:700;line-height:1.15;overflow:hidden}.nav-toggle{width:2.75rem;height:2.75rem;color:var(--color-heading);cursor:pointer;background:0 0;border:0;padding:0;display:none}.nav-toggle-bars{background:currentColor;width:1.35rem;height:2px;margin:0 auto;display:block;box-shadow:0 -6px,0 6px}.nav-toggle[aria-expanded=true] .nav-toggle-bars{box-shadow:none;background:0 0;position:relative}.nav-toggle[aria-expanded=true] .nav-toggle-bars:before,.nav-toggle[aria-expanded=true] .nav-toggle-bars:after{background:var(--color-heading);content:"";position:absolute;inset:0}.nav-toggle[aria-expanded=true] .nav-toggle-bars:before{transform:rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bars:after{transform:rotate(-45deg)}.site-nav{align-items:center;gap:1.75rem;display:flex}.site-nav a:not(.btn){color:var(--color-heading);font-size:.95rem;font-weight:500;text-decoration:none}.site-nav a:not(.btn):hover{text-underline-offset:.2em;text-decoration:underline}.btn-icon{flex-shrink:0;width:1.05rem;height:1.05rem;transition:transform .2s}.btn:hover .btn-icon{transform:translate(.12rem)}.btn{border-radius:var(--radius-pill);min-height:2.85rem;font-family:var(--font-body), system-ui, sans-serif;border:1.5px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.35rem;font-size:.95rem;font-weight:600;line-height:1.2;text-decoration:none;transition:transform .2s,background-color .2s,color .2s,border-color .2s;display:inline-flex}.btn:hover{transform:scale(1.03)}.btn-dark{background:var(--color-dark);color:var(--color-on-dark)}.btn-dark:hover{color:var(--color-on-dark);background:#1a2922}.btn-light{background:var(--color-bg);color:var(--color-text)}.btn-light:hover{color:var(--color-text);background:#fff}.btn-ghost{border-color:var(--color-on-dark);color:var(--color-on-dark);background:0 0}.btn-ghost:hover{color:var(--color-on-dark);background:#f0f8f41f}.btn-outline{color:var(--color-text);background:#ffffffb8;border-color:#0e161238}.btn-outline:hover{border-color:var(--color-dark);color:var(--color-text);background:#fff}.hero{width:min(100% - 2rem,88rem);margin-inline:auto;padding-block:.75rem 2rem}.hero-card{border-radius:var(--radius-hero);min-height:min(78vh,46rem);color:var(--color-text);background:#fff;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(1rem,3vw,3rem);padding:clamp(2rem,4vw,4rem);display:grid;position:relative;overflow:hidden}.hero-guide{fill:none;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-guide path{stroke:var(--color-accent);stroke-width:1px;stroke-opacity:.25;vector-effect:non-scaling-stroke}.hero-drawing{pointer-events:none;grid-area:1/2;min-width:0}.architectural-drawing{width:100%;height:auto;max-height:39rem;color:var(--color-stone);display:block;overflow:visible}.draft-grid-line{stroke:var(--color-stone);stroke-width:.6px;stroke-opacity:.065}.draft-hatch-line{stroke:var(--color-stone);stroke-width:.65px}.draft-guides{stroke:var(--color-stone);stroke-width:.6px;stroke-dasharray:12 3 2 3;stroke-opacity:.22}.draft-line{stroke:var(--color-stone);stroke-linecap:square;stroke-linejoin:miter}.draft-wall,.draft-cut{fill:url(#lm-section-hatch);stroke-width:1.8px}.draft-roof,.draft-ground{stroke-width:2.4px}.draft-slab{fill:url(#lm-section-hatch);stroke-width:1.4px}.draft-window{stroke-width:.9px}.draft-door,.draft-furniture,.draft-roof-detail,.draft-terrain{stroke:var(--color-stone);stroke-width:.75px;stroke-opacity:.72}.draft-extension .draft-line{stroke-width:.6px;stroke-opacity:.45}.draft-dimension .draft-line,.draft-ticks{stroke:var(--color-stone);stroke-width:.75px}.draft-values,.draft-levels text,.draft-section-mark text{fill:var(--color-stone);font-family:var(--font-body), sans-serif;stroke:none;font-size:12px;font-weight:600}.draft-labels{fill:var(--color-stone);font-family:var(--font-body), sans-serif;letter-spacing:.06em;font-size:9px;font-weight:600}.draft-labels>text:first-child{font-size:11px;font-weight:700}.draft-scale{stroke:var(--color-stone);stroke-width:.8px}.draft-section-mark>path{stroke:var(--color-accent);stroke-width:.9px;stroke-dasharray:14 3 2 3}.draft-section-mark .draft-section-arrow{stroke-width:1.5px;stroke-dasharray:none}.draft-levels>path{stroke:var(--color-stone);stroke-width:.75px}.draft-arrow{fill:var(--color-stone)}html.motion .hero-guide path{stroke-dasharray:1;stroke-dashoffset:1px;animation:2.1s cubic-bezier(.25,1,.5,1) both draft-draw}html.motion .hero-drawing .draft-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:draft-draw var(--draft-duration,1s) var(--draft-delay,0s) cubic-bezier(.25, 1, .5, 1) both}html.motion .hero-drawing .draft-wall,html.motion .hero-drawing .draft-cut,html.motion .hero-drawing .draft-slab{animation:draft-draw var(--draft-duration,1s) var(--draft-delay,0s) cubic-bezier(.25, 1, .5, 1) both, draft-fill .7s calc(var(--draft-delay,0s) + .7s) ease-out both}html.motion .draft-values,html.motion .draft-ticks,html.motion .draft-levels{animation:draft-note .6s calc(var(--draft-delay,0s) + .35s) ease-out both}@keyframes draft-draw{to{stroke-dashoffset:0}}@keyframes draft-fill{0%{fill-opacity:0}to{fill-opacity:1}}@keyframes draft-note{0%{opacity:0}to{opacity:1}}.hero .btn-ghost{border-color:var(--color-dark);color:var(--color-text)}.hero .btn-ghost:hover{color:var(--color-text);background:#0e16120f}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero-copy{z-index:1;text-align:left;grid-area:1/1;min-width:0;max-width:38rem;position:relative}.hero-copy h1{max-width:14ch;color:var(--color-heading);margin:0 0 1.25rem;font-size:clamp(2.45rem,5.5vw,4.8rem);font-weight:800}.hero-copy p{max-width:34rem;margin:0 0 1.75rem;font-size:1.05rem;line-height:1.55}.hero-card .hero-cta{justify-content:flex-start}@media (width<=900px){.hero-card{grid-template-columns:minmax(0,1fr);gap:1.25rem;padding:3rem 1.5rem 1.5rem}.hero-copy{text-align:center;max-width:38rem;margin-inline:auto}.hero-copy h1,.hero-copy p{margin-inline:auto}.hero-card .hero-cta{justify-content:center}.hero-drawing{grid-area:2/1;width:min(100%,36rem);margin-inline:auto}.architectural-drawing{max-height:none}.hero-guide{display:none}}.hero-cta{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.section{width:var(--content);padding-block:var(--space-section);margin-inline:auto}.section h2{margin:0 0 .75rem;font-size:clamp(2rem,4vw,3rem)}.section-lead{max-width:40rem;margin:0 0 2.5rem;font-size:1.15rem}.about-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}.about-photo{box-shadow:var(--shadow-soft);background:var(--color-dark);border-radius:48% 52% 42% 58%/42% 48% 52% 58%;overflow:hidden}.about-photo img{aspect-ratio:4/5;object-fit:cover;object-position:center 18%;transform-origin:50% 35%;width:100%;height:100%;transform:scale(1.06)}.about-name{margin:0 0 .35rem;font-size:clamp(1.8rem,3vw,2.4rem)}.about-role{margin:0 0 1.25rem;font-weight:500}.about-copy p{max-width:42rem;margin:0 0 1.1rem}.about-copy p+.about-list,.about-copy p+.btn{margin-top:.4rem}.about-list{max-width:42rem;margin:0 0 1.75rem;padding:0;list-style:none}.about-list li{margin:0 0 .7rem;padding-left:1.15rem;line-height:1.55;position:relative}.about-list li:before{background:var(--color-accent);content:"";border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.55em;left:0}.about-list strong{font-weight:700}.services-intro{margin-bottom:1.75rem}.services-stack{flex-direction:column;gap:18vh;padding-bottom:12vh;display:flex}.service-card{top:calc(var(--header-h) + 1rem);z-index:var(--stack-index);border-radius:var(--radius-card);background:#fff;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:stretch;height:min(78vh,36rem);display:grid;position:sticky;overflow:hidden;box-shadow:0 22px 48px -24px #0e161266,0 0 0 1px #0e16120a}.service-card:nth-child(2){background:var(--color-accent);color:var(--color-on-accent)}.service-card:nth-child(2) h3{color:var(--color-on-accent)}.service-card:nth-child(3){background:var(--color-dark);color:var(--color-on-dark)}.service-card:nth-child(3) h3{color:var(--color-on-dark)}.service-media{background:var(--color-stone);min-height:100%;overflow:hidden}.service-media img{object-fit:cover;object-position:center;width:100%;height:100%}.service-body{flex-direction:column;justify-content:flex-end;gap:.85rem;padding:clamp(1.5rem,3vw,2.4rem);display:flex}.service-index{font-family:var(--font-display), sans-serif;letter-spacing:-.04em;opacity:.35;margin:0 auto 0 0;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:700;line-height:1}.service-card h3{margin:0;font-size:clamp(1.55rem,2.6vw,2.1rem)}.service-card p{max-width:28rem;margin:0;line-height:1.55}.section-cta{margin-top:2.25rem}.why-section{background-color:var(--color-dark);width:100%;color:var(--color-on-dark);background-image:repeating-linear-gradient(135deg,#0000 0 48px,#00c7ba1f 48px 56px),radial-gradient(120% 80% at 12% 0,#00c7ba38,#0000 55%),radial-gradient(90% 70% at 100% 100%,#0e161280,#0000 50%);margin-top:1rem}.why-inner{width:var(--content);margin-inline:auto}.why-section h2,.why-section h3,.why-section .section-lead{color:var(--color-on-dark)}.why-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.75rem;max-width:none;display:grid}.why-item h3{margin:0 0 .5rem;font-size:clamp(1.5rem,2.5vw,2rem)}.why-item p{margin:0}.why-photo{border-radius:var(--radius-card);aspect-ratio:4/3;margin-bottom:1.25rem;overflow:hidden}.why-photo img{object-fit:cover;width:100%;height:100%}.contact-grid{grid-template-columns:minmax(16rem,.72fr) minmax(0,1.28fr);align-items:stretch;gap:clamp(1.75rem,4vw,3rem);display:grid}.contact-copy{flex-direction:column;justify-content:center;display:flex}.contact-copy .section-lead{margin-bottom:1.75rem}.contact-list{margin:0 0 1.5rem;padding:0;list-style:none}.contact-list li{margin:0 0 .85rem}.contact-list a{color:var(--color-heading);font-weight:500}.contact-zones{margin:0 0 1.75rem}.contact-cta{flex-wrap:wrap;gap:.75rem;display:flex}.contact-socials{flex-wrap:wrap;gap:.65rem;margin-top:1rem;display:flex}.social-icon-btn{width:2.75rem;height:2.75rem;color:var(--color-heading);background:#fff;border:1.5px solid #0e161229;border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition:transform .2s,background-color .2s,border-color .2s;display:inline-flex}.social-icon-btn:hover{border-color:var(--color-accent);background:var(--color-bg);transform:scale(1.05)}.social-icon-btn .btn-icon{width:1.15rem;height:1.15rem}.map-frame{border-radius:var(--radius-card);height:100%;min-height:28rem;box-shadow:var(--shadow-soft);background:#fff;overflow:hidden}.map-frame iframe{border:0;width:100%;max-width:100%;height:100%;min-height:28rem;display:block}.site-footer{background:var(--color-dark);color:var(--color-on-dark);padding:3.5rem 0 2.5rem}.footer-inner{width:var(--content);grid-template-columns:1.2fr .8fr 1fr .8fr;gap:2.5rem 2rem;margin-inline:auto;display:grid}.footer-brand .brand img{width:3.25rem;height:3.25rem}.footer-brand p,.site-footer address{margin:.7rem 0 0;font-style:normal}.footer-col h2{color:var(--color-on-dark);letter-spacing:0;margin:0 0 .85rem;font-size:1rem}.footer-col ul{text-align:left;margin:0;padding:0;list-style:none}.footer-col li{text-align:left}.footer-col li+li{margin-top:.55rem}.site-footer a{color:var(--color-on-dark)}.footer-bottom{width:var(--content);border-top:1px solid #f0f8f42e;margin:2.25rem auto 0;padding-top:1.5rem}.agency-credit{color:var(--color-on-dark);text-decoration:none}.agency-name{font-family:var(--font-agency), sans-serif;font-weight:700}.legal-page{width:min(100% - 2rem,48rem);padding-block:calc(var(--header-h) + 2.5rem) 5rem;margin-inline:auto}.legal-prose h1,.legal-page h1{color:var(--color-heading);font-family:var(--font-display), sans-serif;margin:0 0 1.25rem;font-size:2rem;line-height:1.2}.legal-prose h2,.legal-page h2{color:var(--color-heading);font-family:var(--font-display), sans-serif;margin:2rem 0 .75rem;font-size:1.35rem;line-height:1.25}.legal-prose p,.legal-prose li,.legal-page p,.legal-page li{margin:0 0 1rem;line-height:1.65}.legal-prose a,.legal-page a{color:var(--color-accent)}.legal-prose .tech-list,.legal-page .tech-list{margin:0 0 1rem;padding:0;list-style:none}.legal-prose .tech-list li,.legal-page .tech-list li{border-top:1px solid #11111129;margin:0 0 1rem;padding:.9rem 0 0}.legal-prose .tech-list p,.legal-page .tech-list p{margin:0 0 .35rem}.page-404 .btn{margin-top:.5rem}@media (width<=1100px){.footer-inner{grid-template-columns:1fr 1fr}}@media (width<=900px){.nav-toggle{z-index:60;justify-content:center;align-items:center;display:inline-flex}.site-nav{z-index:50;background:var(--color-bg);visibility:hidden;flex-direction:column;justify-content:center;gap:1.4rem;padding:5rem 1.5rem 2rem;transition:transform .4s cubic-bezier(.22,1,.36,1),visibility .4s;display:flex;position:fixed;inset:0;transform:translate(100%)}.site-nav.is-open{visibility:visible;transform:none}.site-nav a:not(.btn){font-family:var(--font-display), sans-serif;font-size:1.8rem;font-weight:700}.site-nav .btn{width:fit-content}.about-grid,.contact-grid,.footer-inner,.why-list{grid-template-columns:1fr}.service-card{top:calc(var(--header-h) + .75rem);grid-template-columns:1fr;height:min(74vh,34rem)}.services-stack{gap:14vh;padding-bottom:8vh}.service-media{min-height:42%}.service-body{justify-content:flex-end;padding:1.35rem 1.25rem 1.5rem}.service-index{font-size:2.1rem}.map-frame,.map-frame iframe{min-height:20rem}.hero-card{padding:2.75rem 1.25rem 1.25rem}.hero-copy{max-width:22rem}.hero-copy h1,.hero-copy p{text-shadow:none}.hero-cta{z-index:2;position:relative}}html.motion [data-reveal].will-reveal:not(.is-visible){opacity:0;transform:translateY(1.1rem)}html.motion [data-reveal].is-visible{opacity:1;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:none}html.motion [data-reveal-delay="1"].is-visible{transition-delay:80ms}html.motion [data-reveal-delay="2"].is-visible{transition-delay:.16s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.btn-icon,.site-nav,.site-header{transition:none}.btn:hover,.btn:hover .btn-icon{transform:none}html.motion .hero-guide path,html.motion .hero-card .hero-drawing *{opacity:1;fill-opacity:1;stroke-dashoffset:0;animation:none}html.motion [data-reveal].will-reveal:not(.is-visible),html.motion [data-reveal].is-visible{opacity:1;transition:none;transform:none}}
