:root{--ink:#15201d;--forest:#17231f;--forest2:#1d2a26;--paper:#f2f0e9;--paper2:#e6e3db;--rust:#a5573b;--email-accent:#6f301f;--email-accent-light:#efb69d;--muted:#68716c;--line:rgba(21,32,29,.18);--pad:clamp(24px,5.7vw,96px);--label:190px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.55;overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit}button{font:inherit}em,i{font-style:normal}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}.site-header{height:94px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;position:fixed;inset:0 0 auto;z-index:40;color:#fff;border-bottom:1px solid rgba(255,255,255,.18);transition:background .3s,height .3s}.site-header.scrolled{height:78px;background:rgba(23,35,31,.95);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;text-decoration:none;white-space:nowrap}.brand-primary{font-size:27px;font-weight:600;letter-spacing:.21em}.brand-rule{width:1px;height:38px;background:currentColor;opacity:.4;margin:0 16px 0 10px}.brand-secondary{font-size:12px;letter-spacing:.21em;line-height:1.1}.brand-secondary small{display:block;font-size:6px;letter-spacing:.18em;opacity:.6;margin-top:7px}.desktop-nav{display:flex;align-items:center;gap:clamp(20px,2.3vw,38px)}.desktop-nav a{font-size:11px;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;position:relative;padding:12px 0}.desktop-nav a:after{content:"";height:1px;background:var(--rust);position:absolute;left:0;right:100%;bottom:5px;transition:.25s}.desktop-nav a:hover:after,.desktop-nav a.active:after{right:0}.menu-toggle{display:none;width:36px;border:0;background:none;padding:6px}.menu-toggle span{height:1px;background:#fff;display:block;margin:7px 0}.mobile-menu{position:fixed;inset:0;z-index:80;background:var(--forest);color:#fff;display:flex;flex-direction:column;padding:100px var(--pad) 36px;transform:translateX(100%);transition:transform .35s}.mobile-menu.open{transform:none}.menu-close{position:absolute;right:22px;top:16px;border:0;background:none;color:#fff;font-size:42px;font-weight:200}.mobile-menu nav{display:flex;flex-direction:column}.mobile-menu nav a{font-size:clamp(27px,9vw,44px);font-weight:300;text-decoration:none;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.16)}.mobile-menu nav span{font-size:9px;letter-spacing:.16em;color:#9ea9a3;display:inline-block;width:44px}.mobile-email{color:var(--email-accent-light);margin-top:auto;text-decoration:none;font-size:16px;letter-spacing:.05em}.hero{height:100svh;min-height:700px;background:var(--forest);color:#f6f4ed;position:relative;overflow:hidden;display:flex;align-items:center}.technical-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:88px 88px;mask-image:linear-gradient(90deg,transparent 0,#000 30%,#000 100%)}.parcel-map{position:absolute;width:min(61vw,950px);height:86%;right:-4vw;top:9%;opacity:.43}.parcel-map g{fill:none;stroke:#91a097;stroke-width:1}.parcel-map circle{fill:var(--rust);stroke:none}.coordinate{position:absolute;font-size:7px;letter-spacing:.18em;color:#77837d}.coord-a{right:42%;top:21%}.coord-b{right:8%;bottom:17%;transform:rotate(90deg)}.hero-copy{position:relative;z-index:2;margin:72px var(--pad) 0;width:min(900px,72vw)}.eyebrow,.overline{font-size:9px;letter-spacing:.22em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:15px;margin-bottom:35px}.eyebrow span{width:44px;height:1px;background:var(--rust)}.hero h1{font-size:clamp(52px,6.7vw,108px);line-height:.98;letter-spacing:-.05em;max-width:1050px;margin-bottom:35px}.hero-copy>p:not(.eyebrow){font-size:16px;color:#b9c0bc;max-width:610px}.line-link{display:inline-flex;gap:55px;align-items:center;text-decoration:none;text-transform:uppercase;letter-spacing:.17em;font-size:10px;border-bottom:1px solid;padding:13px 0;margin-top:20px}.line-link b{font-size:18px;font-weight:300}.hero-scale{position:absolute;z-index:3;right:var(--pad);bottom:40px;display:flex;align-items:center;gap:14px;font-size:7px;letter-spacing:.2em}.hero-scale i{width:75px;height:1px;background:#829089}.section{padding:135px var(--pad);display:grid;grid-template-columns:var(--label) minmax(0,1fr);gap:50px;position:relative}.section-index{display:flex;gap:13px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;padding-top:9px}.section-index span{font-size:13px;color:#7e8782;letter-spacing:.04em}.section-index p{margin:0}.section-main h2{font-size:clamp(43px,5vw,78px);line-height:1.03;letter-spacing:-.045em;max-width:1040px}.overline{color:var(--rust);margin-bottom:30px}.copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin:55px 0 75px;max-width:980px}.copy-grid p{font-size:17px;color:#59625e;margin:0}.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.facts>div{padding:29px 18px 0 0}.facts>div+div{border-left:1px solid var(--line);padding-left:28px}.facts small,.team-grid small,.contact-details small{display:block;font-size:8px;letter-spacing:.18em;color:#78807c;margin-bottom:10px}.facts strong{font-size:18px;font-weight:400}.services{background:var(--paper2)}.section-heading{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:65px}.section-heading p{max-width:390px;color:#626b67;margin-bottom:6px}.service-list{border-top:1px solid var(--line)}.service-list article{display:grid;grid-template-columns:75px minmax(250px,.8fr) 1fr;gap:25px;padding:29px 0;border-bottom:1px solid var(--line);align-items:start}.service-list article>span{color:var(--rust);font-size:12px}.service-list h3{font-size:clamp(21px,2.1vw,32px);line-height:1.15;margin:0}.service-list p{color:#626b67;max-width:530px;margin:0}.responsibility{max-width:930px;margin:58px 0 0;padding:24px 0 0 31px;border-top:1px solid var(--line);position:relative;color:#5e6763}.responsibility:before{content:"!";position:absolute;left:0;color:var(--rust);font-size:13px}.process{background:var(--forest);color:#f3f1eb;padding-top:145px;padding-bottom:150px}.section-index.light span{color:#89958f}.process-intro{display:grid;grid-template-columns:1fr 280px;gap:40px;align-items:end}.process-intro .overline{grid-column:1/-1;margin-bottom:-12px}.process-intro h2{max-width:760px}.process-intro>p:last-child{color:#abb4af;margin-bottom:8px}.process-line{height:45px;border-bottom:1px solid rgba(255,255,255,.22);display:grid;grid-template-columns:repeat(6,1fr);margin-top:70px}.process-line i{position:relative}.process-line i:after{content:"";position:absolute;left:0;bottom:-5px;width:9px;height:9px;background:var(--rust);border-radius:50%}.process-grid{display:grid;grid-template-columns:repeat(3,1fr)}.process-grid article{padding:33px 38px 55px 0;min-height:330px;border-bottom:1px solid rgba(255,255,255,.17)}.process-grid article:nth-child(3n+2),.process-grid article:nth-child(3n+3){border-left:1px solid rgba(255,255,255,.17);padding-left:30px}.process-grid article>span{font-size:38px;font-weight:300;letter-spacing:-.04em;color:#a9b4ae}.process-grid h3{font-size:12px;font-weight:600;letter-spacing:.13em;margin:42px 0 18px}.process-grid p{color:#aeb7b2;font-size:13px;max-width:390px}.team{background:#d6d1c6}.team-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:20px}.team-grid article{padding:36px 30px 50px 0;min-height:250px}.team-grid article+article{border-left:1px solid var(--line);padding-left:38px}.team-grid article>span{font-size:9px;letter-spacing:.17em;color:var(--rust)}.team-grid h3{font-size:clamp(30px,3.3vw,50px);letter-spacing:-.04em;margin:72px 0 5px}.team-grid p{font-size:14px;margin-bottom:28px}.faq-list{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{list-style:none;display:grid;grid-template-columns:60px 1fr 30px;align-items:center;gap:15px;padding:28px 0;cursor:pointer}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-size:10px;color:var(--rust)}.faq summary b{font-size:clamp(18px,2vw,27px);font-weight:400}.faq summary i{font-size:22px;transition:.25s}.faq details[open] summary i{transform:rotate(45deg)}.faq details>p{max-width:840px;margin:0 0 32px 75px;color:#5c6561}.contact{background:#b2b7ad;padding-top:145px;padding-bottom:140px}.contact-main .contact-question{font-size:13px;letter-spacing:.04em;margin-bottom:22px}.contact-main h2{max-width:850px}.email-link{color:var(--email-accent);font-weight:500;display:flex;align-items:center;justify-content:space-between;max-width:880px;text-decoration:none;font-size:clamp(27px,4vw,58px);letter-spacing:-.035em;border-bottom:1px solid;padding:25px 0 18px;margin:40px 0 78px}.email-link:focus-visible{outline:2px solid currentColor;outline-offset:6px}.email-link b{font-size:33px;font-weight:300;transition:transform .25s}.email-link:hover b,.map-link:hover span{transform:translate(5px,-5px)}.contact-details{display:grid;grid-template-columns:1fr 1fr 240px;gap:35px;border-top:1px solid var(--line);padding-top:27px}.contact-details p{margin:0}.map-link{align-self:start;text-decoration:none;font-size:9px;letter-spacing:.17em;display:flex;justify-content:space-between;border-bottom:1px solid;padding-bottom:14px}.map-link span{font-size:16px;transition:.25s}footer{min-height:190px;background:#101815;color:#fff;padding:45px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:50px}footer .brand-primary{font-size:22px}footer .brand-rule{height:30px}footer .brand-secondary{font-size:9px}footer nav{display:flex;gap:22px}footer nav a,footer>div>a{font-size:9px;text-transform:uppercase;letter-spacing:.14em;text-decoration:none}footer>div>a[href^="mailto:"]{color:var(--email-accent-light)}footer>div{display:flex;flex-direction:column;gap:16px;text-align:right}footer small{font-size:8px;color:#7d8781}.reveal{opacity:1;transform:none}.reveal.visible{animation:reveal .7s ease both}@keyframes reveal{from{opacity:.01;transform:translateY(18px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal.visible{animation:none}*{transition:none!important}}
@media(max-width:1100px){:root{--label:125px}.desktop-nav{display:none}.menu-toggle{display:block}.service-list article{grid-template-columns:55px 1fr}.service-list article p{grid-column:2}.process-grid{grid-template-columns:1fr 1fr}.process-grid article:nth-child(3n+2),.process-grid article:nth-child(3n+3){border-left:0;padding-left:0}.process-grid article:nth-child(even){border-left:1px solid rgba(255,255,255,.17);padding-left:30px}.process-line{display:none}footer nav{display:none}}
@media(max-width:720px){:root{--pad:21px}.site-header{height:76px}.site-header.scrolled{height:68px}.brand-primary{font-size:20px}.brand-rule{height:30px;margin:0 11px 0 5px}.brand-secondary{font-size:9px}.brand-secondary small{font-size:5px}.hero{min-height:690px}.technical-grid{background-size:54px 54px}.parcel-map{width:120vw;height:64%;right:-42%;top:25%;opacity:.27}.hero-copy{width:auto;margin-top:42px}.eyebrow{font-size:7px;letter-spacing:.15em;margin-bottom:28px}.hero h1{font-size:clamp(43px,12.7vw,61px);line-height:1.01;letter-spacing:-.045em}.hero-copy>p:not(.eyebrow){font-size:14px;max-width:91%}.hero-scale{bottom:25px}.section{padding:88px var(--pad);display:block}.section-index{margin-bottom:48px}.section-main h2{font-size:clamp(39px,11vw,52px)}.copy-grid,.section-heading,.process-intro{display:block}.copy-grid{margin:38px 0 55px}.copy-grid p+p{margin-top:22px}.facts{display:block}.facts>div,.facts>div+div{border-left:0;border-bottom:1px solid var(--line);padding:20px 0}.section-heading{margin-bottom:42px}.section-heading p{margin-top:25px}.service-list article{display:grid;grid-template-columns:37px 1fr;padding:24px 0}.service-list article p{grid-column:2}.responsibility{padding-left:27px}.process{padding-top:95px}.process-intro .overline{margin-bottom:25px}.process-intro>p:last-child{margin-top:25px}.process-grid{display:block;border-left:1px solid rgba(255,255,255,.22);margin-left:6px;margin-top:55px}.process-grid article,.process-grid article:nth-child(even){border-left:0;padding:0 0 50px 28px;min-height:0;position:relative}.process-grid article:before{content:"";position:absolute;left:-5px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--rust)}.process-grid article>span{font-size:28px}.process-grid h3{margin:16px 0 12px}.team-grid{display:block}.team-grid article,.team-grid article+article{border-left:0;border-bottom:1px solid var(--line);padding:28px 0 35px;min-height:0}.team-grid h3{margin-top:52px}.faq summary{grid-template-columns:34px 1fr 22px;padding:23px 0}.faq details>p{margin:0 0 28px 49px}.contact{padding-bottom:95px}.email-link{font-size:clamp(25px,8.8vw,40px);margin-bottom:58px}.contact-details{grid-template-columns:1fr;gap:30px}.map-link{margin-top:12px}footer{align-items:flex-start;flex-direction:column;padding:58px var(--pad)}footer>div{text-align:left}}
@media(max-width:380px){.hero h1{font-size:41px}.faq summary{grid-template-columns:28px 1fr 20px}.faq details>p{margin-left:43px}}
.legal-page{min-height:100vh;padding:160px var(--pad) 100px;max-width:1050px}.legal-page h1{font-size:clamp(48px,7vw,94px);line-height:1;letter-spacing:-.05em;margin-bottom:75px}.legal-page h2{font-size:24px;margin:42px 0 12px}.legal-page>p:not(.overline){max-width:720px;color:#59625e}.legal-page .line-link{margin-top:55px}@media(max-width:720px){.legal-page{padding-top:125px}.legal-page h1{margin-bottom:55px}}

/* Interactive territory-plan segment */
.hero .parcel-map{opacity:.20}
.hero-copy{z-index:4;width:min(690px,48vw)}
.hero h1{font-size:clamp(50px,5.35vw,82px);line-height:1;max-width:690px;text-wrap:balance}
.hero-scale{z-index:5}
.planning-segment{--activation:0;position:absolute;z-index:3;right:4.5vw;top:17%;width:min(39vw,610px);aspect-ratio:1.24;overflow:hidden;border:1px solid rgba(197,207,201,.23);background:rgba(18,29,25,.46);clip-path:polygon(7% 0,100% 5%,96% 92%,13% 100%,0 69%);isolation:isolate;filter:saturate(calc(.12 + var(--activation)*.88));transition:filter .9s ease,background .9s ease}
.planning-segment:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 42%),radial-gradient(circle at 29% 72%,rgba(114,139,113,calc(var(--activation)*.24)),transparent 38%);opacity:calc(.45 + var(--activation)*.55);transition:opacity .9s}
.planning-segment:hover,.planning-segment.is-active{--activation:1;background:rgba(20,33,28,.72)}
.plan-meta{position:absolute;z-index:2;left:9%;right:7%;top:8%;display:flex;justify-content:space-between;color:#8d9992;font-size:6px;letter-spacing:.18em}
.urban-plan{position:absolute;inset:8% 1% 0;width:98%;height:91%;transform:translate(var(--plan-x,0),var(--plan-y,0)) scale(1.015);transition:transform .45s cubic-bezier(.2,.7,.2,1)}.urban-plan *{vector-effect:non-scaling-stroke}#plan-grid path{fill:none;stroke:rgba(174,188,179,.07);stroke-width:.7}.contours{fill:none;stroke:#a89980;stroke-width:.7;opacity:.24}.existing{fill:none;stroke:#9da7a1;stroke-width:.85;opacity:.58}.existing path:nth-child(n+4){stroke-dasharray:3 4}.site-boundary{fill:none;stroke:#e5e8e3;stroke-width:2.2;stroke-dasharray:7 3;stroke-dashoffset:0}.future{opacity:calc(.09 + var(--activation)*.91);transition:opacity 1.05s ease}.zone{stroke:#18231f;stroke-width:1}.residential{fill:#c5b829;opacity:.72}.green-space{fill:#4f9a72;stroke:#8ab195;stroke-width:.8;opacity:.78}.restriction{stroke:#bd5e4a;stroke-width:1.2;opacity:.78}#red-hatch path{stroke:#c96654;stroke-width:2}#build-grid path{fill:none;stroke:#26342f;stroke-width:.65}.street{fill:none;stroke:#c9c3b5;stroke-width:21;opacity:.96}.street-edge{fill:none;stroke:#17231f;stroke-width:1.15;stroke-dasharray:7 3}.street-minor{fill:none;stroke:#b7b3a8;stroke-width:10;opacity:.9}.parcel-lines{fill:none;stroke:#26342f;stroke-width:.85}.buildings path{fill:#ae573f;stroke:#e3a38d;stroke-width:1;opacity:.92}.build-zones{stroke:#17231f;stroke-width:.8;opacity:.65}.trees{fill:#5e8e68;stroke:#b6cab9;stroke-width:.8}.dimensions{fill:none;stroke:#aeb7b1;stroke-width:.65;opacity:.8}.dimensions text,.road-labels text,.north text{fill:#c4cbc7;stroke:none;font:600 7px Arial,sans-serif;letter-spacing:.08em;text-anchor:middle}.regulations{fill:none;stroke:#d7dbd7;stroke-width:.75}.regulations text{fill:#e1e4e0;stroke:none;font:600 7px Arial,sans-serif;text-anchor:middle}.regulations .parcel-no{font-size:10px}.road-labels text{font-size:5.5px;letter-spacing:.1em}.north{fill:none;stroke:#d4d9d5;stroke-width:1}.plan-points{fill:var(--rust)}
.planning-segment:hover .site-boundary,.planning-segment.is-active .site-boundary{animation:trace-boundary 3.5s linear infinite}.planning-segment:hover .buildings path,.planning-segment.is-active .buildings path{animation:raise-building .75s ease both}.planning-segment:hover .buildings path:nth-child(2),.planning-segment.is-active .buildings path:nth-child(2){animation-delay:.08s}.planning-segment:hover .buildings path:nth-child(3),.planning-segment.is-active .buildings path:nth-child(3){animation-delay:.16s}.planning-segment:hover .buildings path:nth-child(4),.planning-segment.is-active .buildings path:nth-child(4){animation-delay:.24s}.planning-segment:hover .buildings path:nth-child(5),.planning-segment.is-active .buildings path:nth-child(5){animation-delay:.32s}.planning-segment:hover .buildings path:nth-child(6),.planning-segment.is-active .buildings path:nth-child(6){animation-delay:.4s}
.plan-key{position:absolute;left:10%;bottom:8%;display:flex;align-items:center;gap:8px;color:#96a199;font-size:6px;letter-spacing:.16em;opacity:calc(.35 + var(--activation)*.65)}.plan-key i{width:15px;height:5px;background:var(--rust)}
@keyframes trace-boundary{to{stroke-dashoffset:-44}}@keyframes raise-building{from{opacity:0;transform:translateY(7px)}to{opacity:.9;transform:none}}
@media(max-width:1100px) and (min-width:721px){.hero-copy{width:min(590px,53vw)}.hero h1{font-size:clamp(48px,5.8vw,66px)}.planning-segment{right:-2vw;width:45vw;top:23%}}
@media(max-width:720px){.hero{height:auto;min-height:980px;align-items:flex-start}.hero .parcel-map{height:54%;top:44%;opacity:.17}.hero-copy{width:auto;margin:145px var(--pad) 0;padding-right:4px}.hero h1{font-size:clamp(42px,12.1vw,58px);max-width:640px}.planning-segment{top:auto;right:-8%;bottom:48px;width:94vw;max-width:610px}.plan-meta{font-size:5px}.hero-scale{right:auto;left:var(--pad);bottom:24px}.coord-a{display:none}.coord-b{right:4%;bottom:22%;z-index:4}}
@media(prefers-reduced-motion:reduce){.site-boundary,.buildings path{animation:none!important}}

/* 2026-09-03 content-alignment refinements */
.plan-meta{justify-content:flex-end}
.services .section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:end}
.services .section-heading h2{max-width:760px;text-wrap:balance}
.service-list article{grid-template-columns:75px minmax(280px,.8fr) minmax(0,1fr);column-gap:clamp(24px,3vw,52px)}
.service-list h3{text-wrap:balance}
.service-list p{text-wrap:pretty}
.process-intro{display:block}
.process-intro .overline{margin-bottom:30px}
.process-intro h2{max-width:none;white-space:nowrap;font-size:clamp(36px,4.35vw,68px);margin-bottom:30px}
.process-intro>p:last-child{max-width:520px;margin:0 0 0 auto;color:#abb4af}
.process-grid article{display:grid;grid-template-rows:auto minmax(72px,auto) 1fr;align-content:start}
.process-grid h3{margin:42px 0 18px;text-wrap:balance}
.process-grid p{margin:0;text-wrap:pretty}
.team .section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,390px);align-items:start}
.team .section-heading h2{max-width:760px;text-wrap:balance;margin-bottom:0}
.team .section-heading p{margin-top:10px}
.address-link{text-decoration:none;display:inline-block;border-bottom:1px solid transparent;transition:border-color .25s}
.address-link:hover,.address-link:focus-visible{border-bottom-color:currentColor}
@media(max-width:1100px){
  .service-list article{grid-template-columns:55px minmax(0,1fr)}
  .service-list article p{grid-column:2}
  .process-grid article{grid-template-rows:auto minmax(58px,auto) 1fr}
}
@media(max-width:720px){
  .services .section-heading,.team .section-heading{display:block}
  .services .section-heading h2,.team .section-heading h2{text-wrap:balance}
  .service-list article{grid-template-columns:37px minmax(0,1fr);gap:10px 18px}
  .process-intro h2{font-size:clamp(18px,5.65vw,25px);letter-spacing:-.035em;white-space:nowrap;margin-bottom:24px}
  .process-intro>p:last-child{margin:0;max-width:500px}
  .process-grid article,.process-grid article:nth-child(even){display:block}
  .process-grid h3{margin:16px 0 12px}
  .team .section-heading p{margin-top:25px}
}
