:root{--ink:#1d1d1f;--muted:#747478;--bg:#f5f5f7;--accent:#0066cc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #0071e3;outline-offset:6px}button{font:inherit}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:0}.header{height:68px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 max(6vw,calc((100vw - 1200px)/2));background:rgba(250,250,252,.86);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom:1px solid #00000009}.brand{font-size:24px;font-weight:750;letter-spacing:-1px;white-space:nowrap}.brand span,.footer-brand span{font-weight:400}.brand b{color:var(--accent);margin-left:6px}nav{display:flex;gap:34px;align-items:center;font-size:13px}nav a{transition:color .2s}nav a:hover,nav a[aria-current]{color:var(--accent)}.nav-phone{border-left:1px solid #d7d7dc;padding-left:28px}.menu-toggle{display:none}h1,h2,h3,p,figure{margin:0}h1,h2,h3{letter-spacing:-.055em;line-height:1.06}h1{font-size:clamp(52px,7.8vw,108px);font-weight:700}h1 span,h2>span{color:var(--muted)}.eyebrow{font-size:11px;font-weight:650;letter-spacing:.16em;margin-bottom:25px;line-height:1.5}h2{font-size:clamp(38px,5vw,66px)}h3{font-size:30px}.hero{text-align:center;padding:86px 20px 64px}.intro{font-size:21px;line-height:1.5;color:var(--muted);margin:26px auto 30px}.actions{display:flex;justify-content:center;align-items:center;gap:28px}.button{background:#0071e3;color:#fff;display:inline-flex;gap:20px;align-items:center;border-radius:999px;padding:15px 25px;font-size:15px;transition:background .2s,transform .2s}.button:hover{background:#0077ed;transform:translateY(-2px)}.text-link,.dark-link,.map-link{color:var(--accent);font-size:16px}.photo-section{padding:0 4vw 40px}.photo-frame{position:relative;overflow:hidden;height:680px;max-height:85vh;border-radius:30px;background:#203629;isolation:isolate}.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 58%;transform:scale(1.12);will-change:transform}.photo-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#06130e9c,transparent 80%);z-index:0}.photo-copy{position:absolute;top:16%;left:7%;color:white;z-index:1}.photo-copy h2{font-size:clamp(42px,6vw,80px)}figcaption{position:absolute;bottom:18px;right:24px;font-size:10px;color:white;z-index:1;text-shadow:0 1px 4px black}.section{max-width:1200px;margin:auto;padding:100px 30px}.teasers{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px}.teasers>a{background:var(--bg);padding:50px 40px;min-height:330px;border-radius:26px;transition:transform .4s,box-shadow .4s}.teasers>a:hover{transform:translateY(-6px);box-shadow:0 18px 45px #0000000a}.teasers span{font-size:10px;letter-spacing:.12em;font-weight:600}.teasers h3{font-size:38px;margin:35px 0 20px}.teasers p{color:var(--muted);font-size:17px;line-height:1.6;max-width:340px}.teasers b{display:block;margin-top:28px;font-size:14px;font-weight:500;color:var(--accent)}.closing{text-align:center;padding-top:80px;padding-bottom:110px}.closing .button{margin-top:34px}.section-heading{display:flex;gap:70px;align-items:flex-end;margin-bottom:55px}.section-heading>p{max-width:390px;color:var(--muted);font-size:19px;line-height:1.6}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.service{padding:38px;background:var(--bg);border-radius:24px;scroll-margin-top:95px}.number{color:var(--muted);font-size:13px;display:block;margin-bottom:30px}.service h3{margin-bottom:22px}.service p{font-size:17px;color:var(--muted);line-height:1.65}.service a{display:inline-block;margin-top:30px;color:var(--accent);font-size:15px}.service-dsps{grid-column:1/-1}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px}.about-lead{font-size:25px;margin-top:30px}.muted{color:var(--muted);margin-top:8px}.large-copy{font-size:28px;line-height:1.35;margin-bottom:25px;letter-spacing:-.025em}.about-content>p:not(.large-copy){font-size:18px;color:var(--muted);line-height:1.7}.facts{display:flex;gap:40px;border-top:1px solid #ddd;margin-top:40px;padding-top:30px}.facts strong,.facts span{display:block}.facts strong{font-size:25px}.facts span{margin-top:10px;font-size:13px;color:var(--muted)}.preparation{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid #e5e5e7}.preparation>div>p:not(.eyebrow){color:var(--muted);font-size:18px;line-height:1.6;margin:25px 0}.preparation ol{list-style:none;padding:0;margin:0}.preparation li{display:flex;gap:25px;padding:25px 0;border-bottom:1px solid #e5e5e7}.preparation li>span{color:var(--muted);font-size:13px}.preparation h3{font-size:22px;letter-spacing:-.03em;margin-bottom:10px}.preparation li p{color:var(--muted);font-size:16px;line-height:1.5}.contact-top{display:flex;justify-content:space-between;align-items:center;gap:35px}.contact-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-top:75px}.label{display:block;font-size:10px;letter-spacing:.14em;color:var(--muted);margin-bottom:20px}.big-phone{font-size:clamp(26px,3vw,40px);letter-spacing:-.04em;display:block}.email{display:block;color:var(--accent);font-size:19px;margin-top:15px}.contact-grid p,.contact-grid address{font-size:15px;line-height:1.8;margin-bottom:20px;font-style:normal}.contact-main p{margin-top:22px}footer{background:var(--bg);display:flex;align-items:center;justify-content:space-between;gap:25px;padding:35px 6vw;color:var(--muted);font-size:12px;line-height:1.7}.footer-brand{font-size:22px;color:var(--ink);font-weight:700}footer small{font-size:10px}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@media(min-width:1600px){.photo-section{max-width:1600px;margin:auto}}@media(max-width:760px){.header{height:60px;padding:0 22px}.menu-toggle{display:block;background:none;border:0;font-size:14px;padding:12px}nav{display:none;position:absolute;top:60px;left:0;right:0;background:#fafafc;align-items:stretch;padding:25px;gap:0;border-bottom:1px solid #ddd}nav.open{display:flex;flex-direction:column}nav a{font-size:21px;padding:15px 0}.nav-phone{border-left:0;padding-left:0}.hero{padding:60px 20px 44px}h1{font-size:clamp(44px,10vw,70px)}.intro{font-size:17px}.actions{gap:20px;flex-wrap:wrap}.button{font-size:14px;padding:14px 22px}.text-link{font-size:14px}.photo-section{padding:0 14px 20px}.photo-frame{height:520px;max-height:75vh;border-radius:22px}.photo-frame img{object-position:62% 58%}.photo-copy{top:12%;left:8%}.photo-copy h2{font-size:43px}.photo-copy .eyebrow{font-size:9px}figcaption{left:18px;right:auto;font-size:8px}.section{padding:65px 24px}.teasers,.service-grid,.about,.preparation,.contact-grid{grid-template-columns:1fr;gap:22px}.teasers>a{padding:34px 28px}.teasers h3{font-size:34px}.section-heading{display:block}.section-heading>p{margin-top:28px;font-size:17px}.service{padding:30px}.service-dsps{grid-column:auto}.about-content{margin-top:20px}.facts{gap:28px}.facts strong{font-size:23px}.contact-top{display:block}.contact-top .button{margin-top:30px}.contact-grid{margin-top:45px;gap:32px}.big-phone{font-size:38px}footer{align-items:flex-start;flex-direction:column;padding:30px 24px}.closing h2{font-size:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}.photo-frame img{transform:none!important}}

/* Frosted navigation and reversible photo motion. */
.header{background:rgba(250,250,252,.66);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);transition:background .35s ease,box-shadow .35s ease,backdrop-filter .35s ease}
.header.scrolled{background:rgba(250,250,252,.84);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);box-shadow:0 3px 24px #00000008}
.reveal{filter:blur(5px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1),filter .85s ease}
.reveal.visible{filter:blur(0)}
.reveal:focus-within{opacity:1;transform:none;filter:none}
@media(hover:hover) and (pointer:fine){.teasers>a.visible:hover{transform:translateY(-6px)}}
@media(max-width:760px){.reveal{filter:blur(3px);transform:translateY(18px)}.reveal.visible{filter:none;transform:none}nav{background:rgba(250,250,252,.97)}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.header,.header.scrolled{background:#fafafc}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;filter:none}.photo-frame img{transform:none!important;filter:none!important}}

.scroll-mist{filter:blur(var(--mist-blur,0px));opacity:var(--mist-opacity,1)}
.scroll-mist.reveal:not(.visible){opacity:0;filter:blur(5px)}
.scroll-mist:focus-within{filter:none!important;opacity:1!important}
.photo-frame:before{content:"";position:absolute;inset:0;background:white;opacity:var(--photo-fog,0);z-index:1;pointer-events:none}
.photo-copy,figcaption{z-index:2}
.contact-form{margin-top:48px;max-width:800px;padding:36px;background:var(--bg);border-radius:26px;scroll-margin-top:100px}
.contact-form h3{margin-bottom:24px}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-field{display:flex;flex-direction:column;gap:9px;font-size:16px}.form-wide{grid-column:1/-1}.contact-form input,.contact-form textarea{font:inherit;width:100%;padding:15px;border:1px solid #c7c7cc;border-radius:12px;background:white;color:var(--ink)}.contact-form textarea{resize:vertical;min-height:160px}.contact-form input:focus,.contact-form textarea:focus{outline:3px solid #0071e340;border-color:#0071e3}.contact-form .button{border:0;cursor:pointer;margin-top:24px}.contact-form .button:disabled{opacity:.55;cursor:wait}.form-note,.form-status{font-size:15px;line-height:1.6;margin-top:20px;color:#515155}.form-status[data-state=error]{color:#a42620}.form-status[data-state=success]{color:#176437}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:760px){.contact-form{padding:24px}.form-fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.scroll-mist{filter:none!important;opacity:1!important}.photo-frame:before{opacity:0!important}}
.scroll-mist.reveal.visible{filter:blur(var(--mist-blur,0px));opacity:var(--mist-opacity,1)}
@media(prefers-reduced-motion:reduce){.scroll-mist.reveal.visible{filter:none!important;opacity:1!important}}
/* Vector surveying scene: static drawing remains visible without JavaScript. */
.cad-frame{height:auto;max-height:none;background:#0c141d;color:#fff;padding:48px 48px 22px;--photo-fog:0}
.cad-frame:after{display:none}.cad-frame:before{background:#b9c5cc;z-index:3}
.cad-heading{position:relative;z-index:4;pointer-events:none}.cad-heading .eyebrow{color:#e6c66f;margin-bottom:18px}.cad-heading h2{font-size:clamp(36px,4.5vw,62px)}
.cad-visual{width:100%;max-width:1000px;margin:-120px -30px -20px auto;transform-origin:60% 55%;will-change:transform;position:relative}
.cad-svg{width:100%;height:auto;display:block;overflow:visible}.cad-svg text{stroke:none}.cad-point path{opacity:.7}.cad-camera{transform-origin:50% 50%}
.cad-bottom{position:relative;z-index:4;display:flex;justify-content:space-between;gap:16px;align-items:center}.cad-bottom figcaption{position:static;font-size:12px;color:#adbac7;text-shadow:none}
.cad-toggle{border:1px solid #81909d;border-radius:99px;background:#17212c;color:#eff2f5;font-size:13px;padding:11px 17px;cursor:pointer}.cad-toggle:hover{background:#293846}.cad-toggle[hidden]{display:none}
.cad-animated .cad-camera{animation:cad-camera 16s ease-in-out infinite}
.cad-animated .cad-point{animation:cad-point 16s ease-in-out infinite;animation-delay:var(--point-delay);animation-fill-mode:both}
.cad-animated .cad-parcels path{stroke-dasharray:1;animation:cad-parcel 16s ease-in-out infinite}
.cad-animated .cad-house path{stroke-dasharray:1;animation:cad-house 16s ease-in-out infinite}
.cad-animated .cad-details{animation:cad-details 16s ease-in-out infinite}
.cad-animated .cad-rays{animation:cad-rays 16s ease-in-out infinite}
.cad-animated .cad-camera,.cad-animated .cad-point,.cad-animated .cad-parcels path,.cad-animated .cad-house path,.cad-animated .cad-details,.cad-animated .cad-rays{animation-play-state:paused}
.cad-playing .cad-camera,.cad-playing .cad-point,.cad-playing .cad-parcels path,.cad-playing .cad-house path,.cad-playing .cad-details,.cad-playing .cad-rays{animation-play-state:running}
@keyframes cad-camera{0%,100%{transform:scale(.97) translate(0,0)}60%,88%{transform:scale(1.035) translate(-8px,-4px)}}
@keyframes cad-point{0%,2%{opacity:0}10%,80%{opacity:1}92%,100%{opacity:0}}
@keyframes cad-parcel{0%,17%{stroke-dashoffset:1;opacity:0}20%{opacity:1}48%,86%{stroke-dashoffset:0;opacity:1}96%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes cad-house{0%,40%{stroke-dashoffset:1;opacity:0}43%{opacity:1}66%,86%{stroke-dashoffset:0;opacity:1}96%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes cad-details{0%,60%{opacity:0}72%,86%{opacity:1}96%,100%{opacity:0}}
@keyframes cad-rays{0%{opacity:0}8%,22%{opacity:.4}45%,100%{opacity:0}}
@media(max-width:1050px){.cad-visual{margin:-20px auto 0}.cad-heading h2 br{display:none}}
@media(max-width:760px){.cad-frame{padding:30px 16px 20px}.cad-heading{padding:0 10px}.cad-heading .eyebrow{font-size:10px}.cad-heading h2{font-size:34px}.cad-visual{width:140%;max-width:none;margin:0 -20% 0}.cad-bottom{align-items:flex-start;flex-direction:column;gap:12px;padding:0 10px}.cad-toggle{font-size:14px}.cad-context{opacity:.5}.cad-details text{font-size:18px}.cad-points text{font-size:18px}}
@media(prefers-reduced-motion:reduce){.cad-visual{transform:none!important;filter:none!important}.cad-animated *{animation:none!important}.cad-parcels path,.cad-house path{stroke-dashoffset:0!important}.cad-point,.cad-details{opacity:1!important}.cad-rays{opacity:.2!important}}
/* Shared light/dark palette across all four pages. */
:root{color-scheme:light;--page:#fff;--muted:#68686e;--line:#d7d7dc;--field:#fff;--note:#515155;--header:rgba(250,250,252,.66);--header-scrolled:rgba(250,250,252,.88);--nav:#fafafc;--error:#a42620;--success:#176437;--focus:#0071e3}
:root[data-theme="dark"]{color-scheme:dark;--page:#111114;--ink:#f5f5f7;--muted:#aaaab3;--bg:#1e1e24;--accent:#78baff;--line:#41414b;--field:#17171d;--note:#bdbdc7;--header:rgba(22,22,28,.72);--header-scrolled:rgba(22,22,28,.92);--nav:#1b1b22;--error:#ffaaa4;--success:#8ddbb0;--focus:#92caff}
body{background:var(--page)}
.header{gap:24px;background:var(--header);border-bottom-color:var(--line)}.header.scrolled{background:var(--header-scrolled)}
.header nav{margin-left:auto}.brand{flex-shrink:0}.menu-toggle{color:var(--ink)}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;padding:10px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink);cursor:pointer;transition:background .2s,transform .2s}
.theme-toggle[hidden]{display:none}.theme-toggle:hover{background:var(--field);transform:rotate(12deg)}.theme-toggle svg{width:22px;height:22px}.theme-sun{display:none}
[data-theme="dark"] .theme-moon{display:none}[data-theme="dark"] .theme-sun{display:block}
.skip{background:var(--page);color:var(--ink)}.nav-phone,.facts,.preparation,.preparation li{border-color:var(--line)}
.contact-form input,.contact-form textarea{background:var(--field);border-color:var(--line);color:var(--ink)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted);opacity:1}
.form-note,.form-status{color:var(--note)}.form-status[data-state="error"]{color:var(--error)}.form-status[data-state="success"]{color:var(--success)}
a:focus-visible,button:focus-visible{outline-color:var(--focus)}.contact-form input:focus,.contact-form textarea:focus{outline-color:var(--focus);border-color:var(--focus)}
[data-theme="dark"] .cad-frame:before{background:#536477}[data-theme="dark"] .teasers>a:hover{box-shadow:0 18px 45px #0005}
@media(max-width:980px){.header{height:60px;padding:0 20px;gap:10px}.brand{margin-right:auto}.menu-toggle{display:block;background:none;border:0;font-size:14px;padding:12px;min-height:44px}.header nav{display:none;position:absolute;top:60px;left:0;right:0;background:var(--nav);align-items:stretch;padding:25px;gap:0;border-bottom:1px solid var(--line);margin:0}.header nav.open{display:flex;flex-direction:column}.header nav a{font-size:21px;padding:15px 0}.header .nav-phone{border-left:0;padding-left:0}.theme-toggle{order:3}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.header,.header.scrolled{background:var(--nav)}}
@media(prefers-reduced-motion:reduce){.theme-toggle:hover{transform:none}}
