:root{--ink:#13233a;--ink-2:#2a3a52;--ink-soft:#4a5a70;--text:#1e2633;--paper:#fff;--mist:#f2f8fc;--mist-2:#e4f1fa;--sky:#a7d4f0;--sky-deep:#1f6c9e;--leaf:#39b34a;--leaf-deep:#1d7a2f;--signal:#fc4e51;--signal-deep:#d8353a;--line:#13233a24;--line-strong:#13233a52;--f-display:"Sora", "Segoe UI", system-ui, -apple-system, sans-serif;--f-body:"Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--gutter:clamp(16px, 4vw, 48px);--max:1240px;--sec:clamp(48px, 9vw, 128px);--ease:cubic-bezier(.22, 1, .36, 1);--ease-io:cubic-bezier(.65, 0, .35, 1);--z-compass:30;--z-masthead:40;--z-dock:50;--z-cookie:60;--z-overlay:80;--z-skip:100}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html:not(.motion){scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--text);font-family:var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-tap-highlight-color:#39b34a26;margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}img,svg{max-width:100%;display:block}img{height:auto}a{color:inherit}p{margin:0 0 1em}h1,h2,h3{font-weight:inherit;font-size:inherit;line-height:inherit;margin:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}:where(ul,ol)[role=list]{margin:0;padding:0;list-style:none}address{font-style:normal}:focus-visible{outline:2px solid var(--leaf);outline-offset:3px;border-radius:2px}.mono{font-family:var(--f-mono);letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:.8125rem}.wrap{width:100%;max-width:calc(var(--max) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.skip-link{color:#fff;z-index:var(--z-skip);background:#000;padding:8px 16px;position:absolute;top:-100%;left:0}.skip-link:focus{top:0}[id]{scroll-margin-top:124px}.display-2{font-family:var(--f-display);letter-spacing:-.025em;color:var(--ink);text-wrap:balance;font-size:clamp(2rem,1.4rem + 2.2vw,2.75rem);font-weight:500;line-height:1.08}.display-3{font-family:var(--f-display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance;font-size:clamp(1.5rem,1.2rem + 1vw,1.875rem);font-weight:400;line-height:1.2}.body-lg{font-family:var(--f-body);color:var(--text);max-width:62ch;margin-bottom:1.25em;font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem);line-height:1.65}.eyebrow-h{font-family:var(--f-display);color:var(--leaf-deep);margin-bottom:.6em;font-size:1.0625rem;font-weight:500}.bearing{color:var(--ink-soft);text-transform:uppercase;align-items:center;gap:.9em;margin-bottom:1.75rem;display:inline-flex}.bearing span{color:var(--ink);border:1px solid var(--line-strong);border-radius:2px;padding:.2em .55em}.bearing:after{content:"";background:repeating-linear-gradient(90deg, var(--line-strong) 0 1px, transparent 1px 6px) bottom / 100% 4px no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) bottom / 100% 1px no-repeat;width:48px;height:7px}.body-lg a,.about__body a,.founder__copy a:not(.tlink),.coverage__copy p a,.wrow__desc a,.hero__lead a{color:var(--leaf-deep);text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s}.body-lg a:hover,.about__body a:hover,.founder__copy a:not(.tlink):hover,.wrow__desc a:hover,.hero__lead a:hover{color:var(--ink)}.btn{min-width:120px;min-height:52px;font-family:var(--f-display);transition:background-color .25s var(--ease), color .25s, transform .2s var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:.75em;padding:0 1.5em;font-size:1rem;font-weight:500;text-decoration:none;display:inline-flex}.btn svg{width:20px;height:20px;transition:transform .3s var(--ease)}.btn:hover svg{transform:translate(4px)}.btn:active{transform:scale(.98)}.btn--ink{background:var(--ink);color:#fff}.btn--ink:hover{background:var(--leaf-deep)}.btn--signal{background:var(--ink);color:#fff;box-shadow:inset 0 -3px 0 var(--signal)}.btn--signal:hover{background:var(--ink-2)}.btn--light{color:var(--ink);background:#fff}.btn--light:hover{background:var(--sky)}.tlink{font-family:var(--f-display);color:var(--ink);background:linear-gradient(var(--signal), var(--signal)) 0 100% / 100% 1px no-repeat;transition:background-size .3s var(--ease), color .2s;padding-bottom:3px;font-weight:500;text-decoration:none}.tlink:hover{color:var(--signal-deep)}.chip{background:0 0;border:1px solid;border-radius:999px;align-items:center;gap:.5em;min-height:40px;padding:0 1em;font-size:.9375rem;transition:background-color .2s,color .2s;display:inline-flex}.tick{stroke:currentColor;stroke-width:1px;opacity:.45}.tick--major{stroke-width:1.6px;opacity:.9}.masthead{z-index:var(--z-masthead);position:sticky;top:0}.phonebar{background:var(--ink);color:#fff;font-size:.875rem}.phonebar__inner{justify-content:space-between;align-items:center;gap:1rem;min-height:38px;display:flex}.phonebar__lead{color:var(--sky);margin:0;font-size:.75rem}.phonebar__list{gap:clamp(1rem,2.5vw,2rem);display:flex}.phonebar a{color:#fff;align-items:center;gap:.5em;min-height:38px;text-decoration:none;display:inline-flex}.phonebar a:hover{color:var(--sky)}.phonebar__k{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--sky);font-size:.6875rem}.header{background:#fff;border-bottom:1px solid #0000;transition:border-color .3s,box-shadow .3s}.is-scrolled .header{border-color:var(--line);box-shadow:0 8px 24px -18px #13233a59}.header__inner{justify-content:space-between;align-items:center;gap:1rem;min-height:84px;display:flex}.header__logo img{width:clamp(140px,14vw,182px);height:auto}.header__nav ul{align-items:center;gap:clamp(.25rem,1.2vw,1rem);display:flex}.hlink{min-height:44px;font-family:var(--f-display);color:var(--ink);background:0 0;border:0;border-radius:999px;align-items:center;gap:.45em;padding:0 .75em;font-size:.9875rem;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.hlink:hover{background:var(--mist)}.hlink[aria-current=page]{color:var(--leaf-deep)}.hlink__count{color:var(--ink-soft);font-size:.6875rem}.dial-btn{border:1px solid var(--line-strong);min-height:48px;font-family:var(--f-display);color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:.6em;padding:0 1.1em 0 .45em;font-weight:500;transition:border-color .2s,background-color .2s;display:inline-flex}.dial-btn:hover{border-color:var(--ink);background:var(--mist)}.dial-btn__icon{width:38px;height:38px;transition:transform .6s var(--ease)}.dial-btn:hover .dial-btn__icon{transform:rotate(-48deg)}.hero{padding:clamp(32px,5vw,72px) 0 clamp(56px,8vw,112px);position:relative;overflow:hidden}.hero__grid-bg{pointer-events:none;background-image:linear-gradient(#1f6c9e12 1px,#0000 1px),linear-gradient(90deg,#1f6c9e12 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 80% at 72% 45%,#000 20%,#0000 75%);mask-image:radial-gradient(70% 80% at 72% 45%,#000 20%,#0000 75%)}.hero__inner{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(2rem,5vw,5rem);display:grid;position:relative}.hero__title{font-family:var(--f-display);letter-spacing:-.035em;color:var(--ink);margin-bottom:1.5rem;font-size:clamp(2.25rem,1.2rem + 3.6vw,4rem);font-weight:500;line-height:1.02}.hero__title .line{display:block}.hero__title em{color:var(--leaf-deep);font-style:normal;position:relative}.hero__title em:after{content:"";background:var(--sky);transform-origin:0;height:.07em;position:absolute;bottom:-.06em;left:0;right:0}.hero__lead{color:var(--ink-2);max-width:58ch;margin-bottom:2rem;font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem);line-height:1.65}.scale{border-top:1px solid var(--line-strong);grid-template-columns:repeat(3,auto);justify-content:start;max-width:600px;margin-bottom:2.25rem;display:grid}.scale__seg{font-family:var(--f-display);color:var(--ink);margin:0;padding:.9rem 1.5rem 0 0;font-size:.9375rem;font-weight:500;position:relative}.scale__tick{background:var(--ink);width:1px;height:10px;position:absolute;top:-5px;left:0}.scale__seg:first-child .scale__tick{background:var(--signal);width:2px}.hero__cta{flex-wrap:wrap;align-items:center;gap:1.25rem 2rem;display:flex}.lens{aspect-ratio:1;width:clamp(280px,36vw,500px);color:var(--ink);justify-self:center;margin:0;position:relative}.lens__ring{width:118%;max-width:none;height:118%;color:var(--ink);will-change:transform;position:absolute;inset:-9%}.lens__deg{font-family:var(--f-mono);fill:var(--ink-soft);letter-spacing:.05em;font-size:11px}.lens__glass{background:var(--mist-2);box-shadow:0 0 0 1px var(--line-strong), 0 30px 60px -30px #13233a73;border-radius:50%;position:absolute;inset:4%;overflow:hidden}.lens__glass img{object-fit:cover;object-position:62% 40%;width:100%;height:100%}.lens__cross{pointer-events:none;stroke:#fff;stroke-width:.15px;opacity:.55;mix-blend-mode:overlay;width:92%;height:92%;position:absolute;inset:4%}.lens__index{background:var(--signal);width:2px;height:9%;position:absolute;top:-7%;left:50%;transform:translate(-50%)}.lens__index:after{content:"";border:5px solid #0000;border-top:7px solid var(--signal);position:absolute;top:-6px;left:-4px}.lens__note{border:1px solid var(--line);border-left:2px solid var(--leaf);max-width:220px;color:var(--ink);background:#fff;padding:.85rem 1rem;font-size:.875rem;line-height:1.45;position:absolute;bottom:4%;left:-14%;box-shadow:0 16px 32px -24px #13233a80}.lens__note .mono{color:var(--ink-soft);margin-bottom:.25rem;font-size:.6875rem;display:block}.about{padding:var(--sec) 0;border-top:1px solid var(--line)}.about__grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem) clamp(1rem,2.5vw,2rem);display:grid}.about__title{grid-column:1/span 5;font-size:clamp(2.25rem,1.2rem + 3.2vw,3.75rem)}.about__body{grid-column:7/span 6}.about__body>p{color:var(--ink-soft);max-width:60ch}.about__img{grid-area:2/2/span 2/span 6;margin-top:clamp(-120px,-8vw,0px)}.about__dim{grid-area:3/8/auto/span 5;align-self:end}.frame{margin:0;position:relative}.frame__media{aspect-ratio:4/3;background:var(--mist-2);overflow:hidden}.frame__media img{object-fit:cover;width:100%;height:100%}.frame figcaption{color:var(--ink-soft);text-transform:uppercase;margin-top:.75rem;font-size:.75rem}.frame__mark{border:0 solid var(--ink);z-index:1;width:22px;height:22px;position:absolute}.frame__mark--tl{border-top-width:1.5px;border-left-width:1.5px;top:-10px;left:-10px}.frame__mark--br{border-bottom-width:1.5px;border-right-width:1.5px;bottom:20px;right:-10px}.dimension{color:var(--ink)}.dimension svg{fill:none;width:100%;height:24px;stroke:var(--signal);stroke-width:1.4px;vector-effect:non-scaling-stroke;overflow:visible}.dimension svg path{vector-effect:non-scaling-stroke}.dimension span{text-align:center;text-transform:uppercase;color:var(--ink-2);margin-top:.5rem;font-size:.75rem;display:block}.services{padding:var(--sec) 0;background:var(--mist);border-block:1px solid var(--line)}.services__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.services__aside{position:sticky;top:150px}.services__aside .display-3{max-width:16ch;margin-bottom:2rem}.sdial{aspect-ratio:1;width:min(100%,360px);color:var(--ink);position:relative}.sdial__svg{width:100%;height:100%;overflow:visible}.sdial__rim{fill:#fff;stroke:var(--line-strong)}.sdial__face{fill:var(--mist);stroke:var(--line)}.sdial__n{font-family:var(--f-mono);fill:var(--ink-soft);font-size:13px;transition:fill .3s}.sdial__n.is-on{fill:var(--signal-deep);font-weight:500}.sdial__needle{transform-box:view-box;transform-origin:0 0;transition:transform .9s var(--ease)}.sdial__needle line{stroke:var(--signal);stroke-width:2px;stroke-linecap:round}.sdial__centre{align-content:center;place-items:center;display:grid;position:absolute;inset:26%}.sdial__glyph{width:46%;color:var(--ink);opacity:0;transition:opacity .4s, transform .6s var(--ease);grid-area:1/1;transform:scale(.85)rotate(-20deg)}.sdial__glyph.is-on{opacity:1;transform:none}.sdial__count{color:var(--ink-soft);grid-area:2/1;margin:.6rem 0 0;font-size:.75rem}.glyph__leaf{stroke:var(--leaf-deep)}.glyph__signal{stroke:var(--signal-deep)}.srows{border-top:1px solid var(--line-strong)}.srow{border-bottom:1px solid var(--line-strong);grid-template-columns:72px minmax(0,1fr) 52px;align-items:start;gap:.75rem 1.5rem;padding:clamp(1.5rem,3vw,2.25rem) 0;display:grid;position:relative}.srow:before{content:"";background:var(--signal);transform-origin:0;width:100%;height:2px;transition:transform .6s var(--ease);position:absolute;top:-1px;left:0;transform:scaleX(0)}.srow.is-on:before{transform:scaleX(1)}.srow__glyph{display:none}.srow__n{color:var(--ink);gap:.15rem;margin:.35rem 0 0;display:grid}.srow__n span{color:var(--ink-soft);font-size:.6875rem}.srow__title{font-family:var(--f-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 .6rem;font-size:clamp(1.4rem,1.1rem + 1vw,1.875rem);font-weight:500;line-height:1.15}.srow__title a{background:linear-gradient(var(--ink), var(--ink)) 0 100% / 0 1px no-repeat;transition:background-size .4s var(--ease), color .2s;text-decoration:none}.srow__title a:hover{background-size:100% 1px}.srow__desc{color:var(--ink-2);max-width:54ch;margin:0;font-size:1.0625rem;line-height:1.6}.srow__go{border:1px solid var(--line-strong);width:52px;height:52px;color:var(--ink);transition:background-color .25s, color .25s, transform .5s var(--ease), border-color .25s;border-radius:50%;place-items:center;display:grid}.srow__go svg{width:20px}.srow:hover .srow__go,.srow.is-on .srow__go{background:var(--ink);border-color:var(--ink);color:#fff;transform:rotate(-45deg)}.founder{padding:var(--sec) 0 0}.founder__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(2rem,6vw,6rem);display:grid}.arch{grid-template-columns:minmax(0,1fr) 36px;gap:1rem;margin:0;display:grid;position:relative}.arch__media{aspect-ratio:3/4;background:var(--mist-2);border-radius:999px 999px 4px 4px;overflow:hidden}.arch__media img{object-fit:cover;width:100%;height:100%}.dimension--v{grid-template-rows:1fr auto;display:grid}.dimension--v svg{width:24px;height:100%}.dimension--v span{writing-mode:vertical-rl;background:var(--paper);margin:0;padding:.5rem 0;position:absolute;top:50%;right:0;transform:rotate(180deg)translateY(-50%)}.founder__copy .display-2{margin-bottom:1.25rem}.founder__copy>p{color:var(--ink-soft);max-width:60ch}.founder__link{margin-top:1.5rem}.quote{padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:var(--sec);margin-top:clamp(3rem,7vw,6rem);margin-bottom:0;position:relative}.quote:before{content:"";top:0;left:var(--gutter);right:var(--gutter);background:var(--line-strong);height:1px;position:absolute}.quote__mark{width:44px;fill:var(--sky);margin-bottom:1.5rem}.quote p{font-family:var(--f-display);letter-spacing:-.01em;color:var(--ink);max-width:48ch;margin-left:auto;margin-right:clamp(0px,6vw,80px);font-size:clamp(1.25rem,1rem + .9vw,1.75rem);font-weight:300;line-height:1.45}.quote footer{max-width:48ch;color:var(--leaf-deep);text-transform:uppercase;margin-left:auto;margin-right:clamp(0px,6vw,80px)}.work{padding:var(--sec) 0;background:var(--ink);color:#fff}.work .bearing{color:var(--sky)}.work .bearing span{color:#fff;border-color:#fff6}.work .bearing:after{background:repeating-linear-gradient(90deg,#fff6 0 1px,#0000 1px 6px) bottom/100% 4px no-repeat,linear-gradient(#fff6,#fff6) bottom/100% 1px no-repeat}.work__list{border-top:1px solid #ffffff38}.wrow{border-bottom:1px solid #ffffff38;grid-template-columns:140px minmax(0,1fr) clamp(180px,22vw,280px);align-items:center;gap:1.5rem clamp(1.5rem,4vw,4rem);padding:clamp(2rem,4vw,3rem) 0;display:grid}.wrow__ref{color:var(--sky);align-self:start;gap:.25rem;margin:0;padding-top:.5rem;display:grid}.wrow__ref span{color:#ffffffa6;text-transform:uppercase;font-size:.6875rem}.wrow__title{font-family:var(--f-display);letter-spacing:-.03em;text-wrap:balance;margin-bottom:.9rem;font-size:clamp(1.625rem,1.1rem + 2vw,2.75rem);font-weight:400;line-height:1.08}.wrow__desc{color:#ffffffd1;max-width:50ch;font-size:1.0625rem;line-height:1.6}.wrow__desc a{color:var(--sky)}.wrow__lens{aspect-ratio:1;box-shadow:0 0 0 1px #ffffff40, 0 0 0 10px var(--ink), 0 0 0 11px #a7d4f059;transition:transform .8s var(--ease);background:#1c304c;border-radius:50%;overflow:hidden}.wrow:hover .wrow__lens{transform:rotate(-4deg)scale(1.03)}.wrow__lens img{object-fit:cover;width:100%;height:100%}.wrow__lens--drawing{color:var(--ink);background:#f6f9fb;place-items:center;display:grid}.wrow__lens--drawing svg{width:82%}.draw-dim{stroke:var(--signal)}.approach{padding:var(--sec) 0 0}.approach__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.approach__head{position:sticky;top:150px}.approach__head .display-2{margin-bottom:1rem;font-size:clamp(2.25rem,1.2rem + 3.2vw,3.75rem)}.approach__intro{color:var(--ink-soft);max-width:32ch}.ruler{padding-left:72px;position:relative}.ruler:before{content:"";background:repeating-linear-gradient(180deg, var(--line-strong) 0 1px, transparent 1px 12px), linear-gradient(var(--ink), var(--ink)) right / 1px 100% no-repeat;width:12px;position:absolute;top:0;bottom:0;left:20px}.ruler__item{border-bottom:1px solid var(--line);align-items:center;min-height:92px;padding:1.5rem 0;display:flex;position:relative}.ruler__item:before{content:"";background:var(--ink);transform-origin:0;width:24px;height:2px;transition:background-color .3s, width .4s var(--ease);position:absolute;top:50%;left:-52px}.ruler__item:hover:before{background:var(--signal);width:36px}.ruler__mark{color:var(--ink-soft);font-size:.6875rem;position:absolute;top:calc(50% - 1.6em);left:-72px}.ruler__text{font-family:var(--f-display);letter-spacing:-.015em;color:var(--ink);font-size:clamp(1.25rem,1rem + .9vw,1.6875rem);font-weight:400;line-height:1.25}.band{margin:clamp(3rem,7vw,6rem) 0 0;position:relative}.band__media{background:var(--mist-2);height:clamp(260px,42vw,560px);overflow:hidden}.band__media img{object-fit:cover;object-position:50% 30%;width:100%;height:100%}.band__scale{pointer-events:none;background:repeating-linear-gradient(90deg,#ffffffd9 0 1px,#0000 1px 12px) bottom/100% 10px no-repeat,repeating-linear-gradient(90deg,#fff 0 2px,#0000 2px 120px) bottom/100% 22px no-repeat;height:26px;position:absolute;bottom:0;left:0;right:0}.coverage{padding:var(--sec) 0}.coverage__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(2rem,6vw,6rem);display:grid}.coverage__copy .display-2{margin-bottom:1.25rem}.coverage__copy>p:not(.body-lg):not(.bearing){color:var(--ink-soft)}.places{border-top:1px solid var(--line-strong);margin-top:1.5rem}.places a{border-bottom:1px solid var(--line);min-height:56px;font-family:var(--f-display);color:var(--ink);transition:padding .3s var(--ease), color .2s;justify-content:space-between;align-items:center;gap:1rem;font-size:1.125rem;text-decoration:none;display:flex}.places a .mono{color:var(--ink-soft);font-size:.75rem}.places a:hover,.places a:focus-visible,.places a.is-on{color:var(--leaf-deep);padding-left:.75rem}.plot{color:var(--ink);margin:0}.plot__svg{width:100%;height:auto;overflow:visible}.plot__ring{fill:none;stroke:var(--sky-deep);stroke-opacity:.35;stroke-dasharray:3 5}.plot__km{font-family:var(--f-mono);fill:var(--ink-soft);font-size:11px}.plot__n{font-family:var(--f-mono);fill:var(--signal-deep);font-size:13px}.plot__compass .tick{stroke:var(--ink)}.plot__needle{transform-box:view-box;transform-origin:0 0;transition:transform 1s var(--ease)}.plot__needle line{stroke:var(--signal);stroke-width:1.5px}.plot__pt{fill:var(--ink)}.plot__pt--page{fill:var(--leaf);stroke:#fff;stroke-width:2px}.plot__label{paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;font-family:var(--f-body);fill:var(--ink-soft);font-size:14px}.plot__label--page{font-family:var(--f-display);fill:var(--ink);font-size:16px;font-weight:500}.plot__label--base{font-family:var(--f-mono);fill:var(--ink);font-size:12px}.plot__base{fill:var(--signal)}.plot__base-ring{fill:none;stroke:var(--signal);stroke-opacity:.5}.plot a:hover .plot__label--page,.plot a:focus-visible .plot__label--page,.plot a.is-on .plot__label--page{fill:var(--leaf-deep)}.plot a:focus-visible{outline:none}.plot a:focus-visible .plot__pt--page{stroke:var(--signal);stroke-width:3px}.plot figcaption{text-align:center;color:var(--ink-soft);text-transform:uppercase;margin-top:1rem;font-size:.75rem}.contact{padding:var(--sec) 0;background:var(--ink);color:#fff;position:relative;overflow:hidden}.contact:before{content:"";aspect-ratio:1;background:repeating-conic-gradient(from 0deg, #a7d4f059 0 .25deg, transparent .25deg 3deg);pointer-events:none;border-radius:50%;width:900px;position:absolute;top:-260px;right:-380px;-webkit-mask:radial-gradient(circle,#0000 60%,#000 60.2% 64%,#0000 64.2%);mask:radial-gradient(circle,#0000 60%,#000 60.2% 64%,#0000 64.2%)}.contact .bearing{color:var(--sky)}.contact .bearing span{color:#fff;border-color:#fff6}.contact .bearing:after{background:repeating-linear-gradient(90deg,#fff6 0 1px,#0000 1px 6px) bottom/100% 4px no-repeat,linear-gradient(#fff6,#fff6) bottom/100% 1px no-repeat}.contact__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(2.5rem,6vw,6rem);display:grid;position:relative}.contact .eyebrow-h{color:var(--sky)}.contact .display-2{color:#fff;margin-bottom:1.25rem}.contact .body-lg{color:#ffffffd9}.contact .body-lg a{color:var(--sky)}.contact__call{font-family:var(--f-display);letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:.2em .5em;margin-top:2rem;font-size:clamp(1.5rem,1.1rem + 1.5vw,2.25rem);font-weight:400;line-height:1.25;display:flex}.contact__call .mono{width:100%;color:var(--sky);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.contact__call a{color:#fff;background:linear-gradient(var(--signal), var(--signal)) 0 100% / 100% 2px no-repeat;text-decoration:none}.contact__call a:hover{color:var(--sky)}.contact__or{color:#fff9;font-size:.6em}.contact__mail a{color:#ffffffd9}.contact__mail a:hover{color:#fff}.contact__form{color:var(--text);background:#fff;border-radius:4px;padding:clamp(1.5rem,3vw,2.5rem);position:relative;box-shadow:0 40px 80px -40px #0009}.contact__form:before{content:"";background:var(--signal);width:56px;height:3px;position:absolute;top:0;left:clamp(1.5rem,3vw,2.5rem)}.form__row{grid-template-columns:1fr 1fr;gap:0 1rem;display:grid}.form__field{margin-bottom:1.1rem}.form label{font-family:var(--f-display);color:var(--ink);margin-bottom:.4rem;font-size:.875rem;font-weight:500;display:block}.form label span{color:var(--signal-deep)}.form input,.form textarea{width:100%;font:inherit;color:var(--text);background:var(--mist);border:1px solid var(--line-strong);border-radius:3px;min-height:50px;padding:.8rem .9rem;font-size:1rem;transition:border-color .2s,background-color .2s,box-shadow .2s}.form textarea{resize:vertical;min-height:130px}.form input::placeholder,.form textarea::placeholder{color:#6b7686}.form input:focus-visible,.form textarea:focus-visible{border-color:var(--ink);background:#fff;outline:none;box-shadow:0 0 0 3px #39b34a59}.form [aria-invalid=true]{border-color:var(--signal-deep)}.form__hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form__error{color:var(--signal-deep);font-weight:500}.form__submit{width:100%}.form__submit:disabled{opacity:.7;cursor:progress}.recaptcha-notice{color:var(--ink-soft);margin:1rem 0 0;font-size:.8125rem;line-height:1.5}.footer{color:#ffffffd1;background:#0e1a2c;padding:clamp(3rem,6vw,5rem) 0 1.5rem;font-size:.9375rem}.footer__grid{grid-template-columns:1.4fr 1fr 1.2fr 1.3fr;gap:2.5rem;display:grid}.footer__plate{box-shadow:inset 0 -3px 0 var(--leaf);background:#fff;border-radius:4px;margin-bottom:1.25rem;padding:.9rem 1.1rem;display:inline-block}.footer__plate img{width:160px}.footer__about p{max-width:34ch}.footer__label,.footer__h{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sky);margin-bottom:1rem;font-size:.75rem}.footer__h{margin-top:1.5rem}.footer__contact .footer__h:first-child{margin-top:0}.footer__links li+li{margin-top:.15rem}.footer a{color:#ffffffe0;padding:.2rem 0;text-decoration:none;display:inline-block}.footer a:hover{color:#fff;text-underline-offset:3px;text-decoration:underline}.footer__base{color:#ffffffa6;border-top:1px solid #ffffff29;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:3rem;padding-top:1.5rem;font-size:.8125rem;display:flex}.footer__base p{max-width:80ch;margin:0}.footer__legal{text-align:center;color:#ffffff8c;margin:1.25rem 0 0;font-size:.75rem}.footer__legal a{color:#ffffffa6}.compass{z-index:var(--z-compass);width:72px;height:72px;color:var(--ink);opacity:0;transition:opacity .5s, transform .6s var(--ease);pointer-events:none;margin-top:-36px;display:none;position:fixed;top:50%;left:20px;transform:scale(.9)}.compass.is-on{opacity:1;pointer-events:auto;transform:none}.compass__svg{width:100%;height:100%}.compass__rim{fill:#ffffffeb;stroke:var(--line-strong)}.compass--dark .compass__rim{fill:#13233aeb;stroke:#ffffff59}.compass--dark{color:#fff}.compass__needle{transform-box:view-box;transform-origin:0 0;transition:transform .9s var(--ease)}.compass__needle line{stroke:var(--signal);stroke-width:2px;stroke-linecap:round}.compass__hub{fill:currentColor}.compass__list li{left:calc(50% + var(--x));top:calc(50% + var(--y));position:absolute;transform:translate(-50%,-50%)}.compass__list a{border-radius:50%;width:20px;height:20px;display:block;position:relative}.compass__list a:before{content:"";opacity:.35;background:currentColor;border-radius:50%;transition:opacity .2s,transform .2s;position:absolute;inset:7px}.compass__list a.is-on:before{opacity:1;background:var(--signal);transform:scale(1.3)}.compass__list a:hover:before{opacity:1}.compass__list a span{white-space:nowrap;font-family:var(--f-mono);background:var(--ink);color:#fff;opacity:0;pointer-events:none;border-radius:2px;padding:.3em .6em;font-size:.6875rem;transition:opacity .2s;position:absolute;top:50%;left:26px;translate:0 -50%}.compass__list a:hover span,.compass__list a:focus-visible span{opacity:1}.compass__read{white-space:nowrap;color:var(--ink-soft);margin:0;font-size:.6875rem;position:absolute;top:calc(100% + 18px);left:50%;translate:-50%}.compass__read span+span{display:none}.compass--dark .compass__read{color:var(--sky)}.compass__read span:first-child{color:var(--ink);font-size:.875rem}.compass--dark .compass__read span:first-child{color:#fff}.dial{z-index:var(--z-overlay);background:var(--ink);color:#fff;overscroll-behavior:contain;position:fixed;inset:0;overflow:hidden}.dial:not([hidden]){grid-template-rows:auto minmax(0,1fr);display:grid}.dial__top{z-index:2;justify-content:space-between;align-items:center;min-height:84px;display:flex;position:relative}.dial__title{color:var(--sky);text-transform:uppercase;gap:1rem;margin:0;display:flex}.dial__title span{color:#ffffff8c}.dial__close{min-height:48px;font-family:var(--f-display);background:0 0;border:1px solid #ffffff59;border-radius:999px;align-items:center;gap:.6rem;padding:0 1.1rem;transition:background-color .2s,color .2s;display:inline-flex}.dial__close svg{width:18px}.dial__close:hover{color:var(--ink);background:#fff}.dial__stage{padding-right:var(--gutter);grid-template-columns:minmax(0,1fr) minmax(300px,420px);min-height:0;display:grid;position:relative}.dial__wheel{touch-action:none;cursor:grab;user-select:none;--R:300px;--cx:20%;min-height:0;position:relative}.dial__wheel.is-dragging{cursor:grabbing}.dial__ring{width:calc(var(--R) * 2 * 500 / 470);height:calc(var(--R) * 2 * 500 / 470);left:calc(var(--cx) - var(--R) * 500 / 470);top:calc(50% - var(--R) * 500 / 470);max-width:none;color:var(--sky);position:absolute;overflow:visible}.dial__rim{fill:none;stroke:#a7d4f066}.dial__inner{fill:#ffffff08;stroke:#a7d4f02e}.dial__deg{font-family:var(--f-mono);fill:#ffffff80;font-size:15px}.garc{fill:none;stroke-width:6px;stroke-linecap:round}.garc--leaf{stroke:var(--leaf)}.garc--sky{stroke:var(--sky)}.garc--paper{stroke:#ffffffbf}.dial__needle{stroke:var(--signal);stroke-width:2.5px}.dial__hub{fill:var(--signal)}.dial__hub-ring{fill:none;stroke:#fff6}.dial__items{position:absolute;inset:0}.dial__item{left:var(--cx);will-change:transform, opacity;position:absolute;top:50%}.dial__item a{white-space:nowrap;color:#fff;transform-origin:0;border-radius:4px;align-items:baseline;gap:.9rem;padding:.35rem .75rem;text-decoration:none;display:flex;position:absolute;top:0;left:0;transform:translateY(-50%)}.dial__num{color:var(--sky);font-size:.8125rem}.dial__item[data-group=Services] .dial__num{color:#7fd58a}.dial__label{font-family:var(--f-display);letter-spacing:-.02em;font-size:clamp(1.625rem,1.1rem + 1.2vw,2.375rem);font-weight:400}.dial__item.is-active .dial__label{font-weight:500}.dial__item a:hover .dial__label,.dial__item a:focus-visible .dial__label{color:var(--sky)}.dial__item a:focus-visible{outline-color:var(--sky)}.dial__detail{background:var(--ink);box-shadow:-32px 0 32px -8px var(--ink);z-index:2;border-left:1px solid #ffffff2e;align-self:center;padding:1.5rem 0 1.5rem clamp(1rem,3vw,2.5rem);position:relative}.dial__meta{color:var(--sky);text-transform:uppercase;margin-bottom:1rem}.dial__name{font-family:var(--f-display);letter-spacing:-.025em;text-wrap:balance;margin-bottom:1rem;font-size:clamp(1.75rem,1.2rem + 1.4vw,2.5rem);line-height:1.1}.dial__blurb{color:#ffffffc7;max-width:40ch;margin-bottom:1.75rem}.dial__jump{flex-wrap:wrap;gap:.5rem;margin:2rem 0 1rem;display:flex}.dial__jump .chip{color:#ffffffd9;border-color:#ffffff59}.dial__jump .chip:hover,.dial__jump .chip.is-on{color:var(--ink);background:#fff;border-color:#fff}.chip--leaf.is-on{box-shadow:inset 0 -3px 0 var(--leaf)}.chip--sky.is-on{box-shadow:inset 0 -3px 0 var(--sky)}.dial__hint{color:#ffffff8c;font-size:.75rem}.dial__contact{flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.5rem;display:flex}.dial__contact a{color:#fff;border-bottom:1px solid #ffffff59;text-decoration:none}.dial__contact a:hover{border-color:var(--signal)}.dock{display:none}.sheet{z-index:var(--z-overlay);overscroll-behavior:contain;background:#fff;position:fixed;inset:0}.sheet:not([hidden]){flex-direction:column;display:flex}.sheet__head{padding:calc(14px + env(safe-area-inset-top)) var(--gutter) 10px;border-bottom:1px solid var(--line);background:var(--mist);flex:none}.sheet__dial{width:168px;color:var(--ink);margin:0 auto 8px;overflow:visible}.sheet__needle{stroke:var(--signal);stroke-width:2.5px;stroke-linecap:round}.sheet__hub{fill:var(--ink)}[data-sheet-needle]{transform-box:view-box;transform-origin:0 0;transition:transform .2s linear}.sheet__jump{justify-content:center;gap:6px;display:flex}.sheet__jump .chip{color:var(--ink);border-color:var(--line-strong);min-height:44px;padding:0 .85em;font-size:.875rem}.sheet__jump .chip.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}.sheet__jump .chip .mono{opacity:.7;font-size:.6875rem}.sheet__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px var(--gutter) 24px;flex:1;overflow-y:auto}.sheet__group{padding-top:18px}.sheet__label{color:var(--leaf-deep);text-transform:uppercase;margin:0 0 4px;font-size:.75rem}.sheet__group a{border-bottom:1px solid var(--line);min-height:54px;font-family:var(--f-display);color:var(--ink);align-items:baseline;gap:14px;padding:14px 0;font-size:1.1875rem;font-weight:500;line-height:1.25;text-decoration:none;display:flex}.sheet__group a .mono{color:var(--ink-soft);flex:none;width:18px;font-size:.6875rem;font-weight:400}.sheet__group a[aria-current=page]{color:var(--leaf-deep)}.sheet__foot{padding:10px var(--gutter) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;flex:none;align-items:center;gap:8px;display:flex}.sheet__close{background:var(--ink);color:#fff;min-height:52px;font-family:var(--f-display);border:0;border-radius:999px;align-items:center;gap:8px;padding:0 1.25rem;font-weight:500;display:inline-flex}.sheet__close svg{width:18px}.sheet__call{border:1px solid var(--line-strong);min-height:52px;color:var(--ink);font-family:var(--f-display);border-radius:999px;align-items:center;padding:0 1.1rem;font-weight:500;text-decoration:none;display:inline-flex}.cookie{z-index:var(--z-cookie);max-width:440px;color:var(--text);border:1px solid var(--line-strong);border-top:3px solid var(--ink);background:#fff;padding:1.25rem;font-size:.9375rem;position:fixed;bottom:24px;left:24px;box-shadow:0 24px 48px -24px #13233a80}.cookie[hidden]{display:none}.cookie p{margin-bottom:1rem}.cookie a{color:var(--leaf-deep)}.cookie__actions{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.cookie__btn{min-height:46px;font-family:var(--f-display);color:#fff;border:0;border-radius:999px;font-weight:500}.cookie__btn--reject{background:#6b7280}.cookie__btn--accept{background:var(--ink)}.cookie__btn:hover{filter:brightness(1.15)}.simple{padding:var(--sec) 0;min-height:60vh}.simple .display-2{margin-bottom:1rem}.simple__links{flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:2rem;display:flex}.motion [data-aperture]{clip-path:circle(0%);transition:clip-path 1.4s var(--ease)}.motion .arch__media[data-aperture]{clip-path:inset(100% 0 0 round 999px 999px 4px 4px)}.motion [data-aperture].is-in{clip-path:circle(75%)}.motion .arch__media[data-aperture].is-in{clip-path:inset(0 round 999px 999px 4px 4px)}.motion [data-wipe]{clip-path:inset(0 100% 0 0);transition:clip-path 1.4s var(--ease-io)}.motion [data-wipe] img{transition:transform 2s var(--ease);transform:scale(1.12)}.motion [data-wipe].is-in{clip-path:inset(0)}.motion [data-wipe].is-in img{transform:none}.motion [data-draw] path{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.6s var(--ease-io) .2s}.motion [data-draw].is-in path{stroke-dashoffset:0}.motion [data-draw-ring]{transition:opacity 1s}.motion .hero__title .line{clip-path:inset(0 0 -.2em)}.motion .hero__title .line>*,.motion .hero__title .line{animation:rise 1.1s var(--ease) both}.motion .hero__title .line:nth-child(2){animation-delay:.12s}.motion .hero__title em:after{animation:measure 1.2s var(--ease) .7s both}.motion .lens__ring{animation:dial-in 1.8s var(--ease) both}.motion .lens__glass img{animation:lens-focus 1.6s var(--ease) both}@keyframes lens-focus{0%{filter:blur(6px);transform:scale(1.14)}}.motion .scale__tick{animation:tick-in .6s var(--ease) both}.motion .scale__seg:nth-child(2) .scale__tick{animation-delay:.15s}.motion .scale__seg:nth-child(3) .scale__tick{animation-delay:.3s}@keyframes rise{0%{opacity:0;transform:translateY(.6em)}}@keyframes measure{0%{transform:scaleX(0)}}@keyframes dial-in{0%{opacity:0;rotate:-60deg}}@keyframes tick-in{0%{transform:scaleY(0)}}.motion .dial:not([hidden]){animation:.35s both fade}.motion .dial:not([hidden]) .dial__ring{animation:dial-in .9s var(--ease) both}.motion .sheet:not([hidden]){animation:sheet-up .4s var(--ease) both}@keyframes fade{0%{opacity:0}}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}@media (width>=1500px){.compass{display:block}}@media (width<=1023px){.hide-md{display:none!important}.hero__inner{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}.lens__note{left:-6%}.about__title,.about__body{grid-column:1/-1}.about__img{grid-area:auto/1/auto/span 8;margin-top:0}.about__dim{grid-area:auto/1/auto/-1}.footer__grid{grid-template-columns:1fr 1fr}.wrow{grid-template-columns:100px minmax(0,1fr) 200px}.dial__stage{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}}@media (width<=767px){body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.hide-sm{display:none!important}.phonebar__lead{display:none}.phonebar__inner{justify-content:flex-start}.header__inner{min-height:68px}.header__nav{display:none}.hero{padding-top:28px}.hero__inner{grid-template-columns:minmax(0,1fr)}.lens{justify-self:start;width:min(78vw,340px);margin:1.5rem 0 0 6vw}.lens__note{max-width:180px;font-size:.8125rem;bottom:-6%;left:auto;right:-4vw}.scale{border-top:0;border-left:1px solid var(--line-strong);grid-template-columns:1fr}.scale__seg{padding:.35rem 0 .35rem 1rem}.scale__tick{width:10px;height:1px;top:50%;left:-5px}.scale__seg:first-child .scale__tick{width:10px;height:2px}.about__img{grid-column:1/-1}.services__grid,.founder__grid,.approach__grid,.coverage__grid,.contact__grid{grid-template-columns:minmax(0,1fr)}.services__aside,.approach__head{position:static}.sdial{display:none}.services__aside .display-3{margin-bottom:.5rem}.srow{grid-template-columns:44px minmax(0,1fr);gap:.5rem 1rem}.srow__glyph{width:40px;color:var(--ink);grid-row:1/span 2;display:block}.srow__n,.srow__go{display:none}.arch{max-width:380px}.quote p,.quote footer{margin-left:0}.wrow{grid-template-columns:minmax(0,1fr) 96px;gap:1rem}.wrow__ref{grid-column:1/-1;gap:1rem;padding:0;display:flex}.wrow__lens{box-shadow:0 0 0 1px #ffffff40, 0 0 0 6px var(--ink), 0 0 0 7px #a7d4f059;grid-area:2/2;align-self:start}.wrow__body{grid-area:2/1}.ruler{padding-left:56px}.ruler:before{left:8px}.ruler__item:before{width:18px;left:-37px}.ruler__mark{left:-56px}.plot{margin-inline:-4px}.plot__label{font-size:17px}.plot__label--page{font-size:19px}.form__row{grid-template-columns:minmax(0,1fr)}.contact:before{width:560px;top:-200px;right:-320px}.footer__grid{grid-template-columns:minmax(0,1fr)}.dial{display:none!important}.dock{left:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:var(--z-dock);background:var(--ink);border-radius:999px;gap:4px;max-width:calc(100vw - 84px);padding:5px;display:flex;position:fixed;box-shadow:0 16px 36px -14px #13233ab3}.dock__btn{color:#fff;min-height:48px;font-family:var(--f-display);white-space:nowrap;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex}.dock__btn svg{width:20px;height:20px}.dock__btn--menu{padding-left:8px}.dock__btn--menu svg{width:32px;height:32px}.dock__btn--cta{color:var(--ink);box-shadow:inset 0 -2px 0 var(--signal);background:#fff}.cookie{left:12px;right:72px;bottom:calc(80px + env(safe-area-inset-bottom));padding:1rem;font-size:.875rem}}@media (width>=768px) and (width<=1023px) and (orientation:portrait){.dial__stage{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);padding:0 0 2rem}.dial__detail{padding:1.5rem var(--gutter) 0;box-shadow:0 -32px 32px -8px var(--ink);border-top:1px solid #ffffff2e;border-left:0;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:2rem;display:grid}.dial__detail>:not(.dial__jump):not(.btn){grid-column:1}.dial__detail>.btn{grid-area:1/2/span 3;align-self:center}.dial__jump,.dial__hint,.dial__contact{grid-column:1/-1}}@media (width<=380px){.dock__btn{padding:0 10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
