@font-face{font-family:'Vend Sans';src:url('../assets/fonts/vendsans.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
:root{--ink:#080c17;--blue:#0848d8;--blue-dark:#0635a5;--coral:#ff8268;--surface:#fafafa;--wash:#f2f6fb;--muted:#535e72;--line:#cbd3df;--white:#fff;--radius:6px;--display:'Vend Sans',sans-serif;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;scrollbar-color:var(--blue) var(--wash)}
body{margin:0;background:var(--surface);color:var(--ink);font:400 17px/1.55 var(--display);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
::selection{background:var(--coral);color:var(--ink)}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
button,input,textarea,select{font:inherit;caret-color:var(--blue)}:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}
.page-width{width:100%;max-width:1600px;margin-inline:auto;padding-inline:clamp(20px,3.33vw,64px)}
.icon-definitions{position:absolute;overflow:hidden;pointer-events:none}.icon{width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.skip-link{position:fixed;top:-100px;left:16px;z-index:30;background:var(--ink);color:var(--white);padding:12px 20px}.skip-link:focus{top:12px}
.site-header{display:flex;align-items:center;gap:48px;padding-block:14px 16px;min-height:72px}
.brand-link{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;min-height:44px}.brand-link img{width:36px}
.site-header nav{display:flex;gap:40px;margin-left:auto}.site-header nav a{display:flex;align-items:center;min-height:44px;text-decoration:none;font-size:15px;font-weight:600}
.site-header nav a:hover{color:var(--blue);text-decoration:underline}
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:44px;border-radius:999px;background:var(--coral);color:var(--ink);padding:10px 32px;text-decoration:none;font-size:15px;font-weight:600;transition:background-color .2s ease-out}
.button:hover{background:#ff9c87}.header-action{min-width:230px}
.brand-line{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:9%;align-items:stretch;margin-bottom:56px}
.wordmark{width:100%;height:auto;max-height:280px;object-fit:contain;object-position:left center}
.brand-notes{display:flex;flex-direction:column;justify-content:center;padding:14px 0 0 8px;max-width:155px;color:var(--muted);font-size:11px;line-height:1.6;font-weight:600;letter-spacing:.16em;text-transform:uppercase}

.intro{display:grid;grid-template-columns:minmax(0,30%) minmax(0,1fr);gap:3%;padding-bottom:32px}
.intro-copy{display:flex;flex-direction:column;align-items:flex-start;padding-top:56px}
h1{font-size:clamp(30px,2.72vw,43px);font-weight:800;line-height:1.1;letter-spacing:-.025em;max-width:18ch}
.intro-copy>p:not(.regional-note){margin-top:32px;max-width:37ch;color:var(--muted);font-size:17px;line-height:1.45}
.regional-note{display:none;margin-top:auto;padding-top:36px;max-width:36ch;color:var(--muted);font-size:11px;line-height:1.6;font-weight:600;text-transform:uppercase;letter-spacing:.16em}
.regional-note::before{content:'';display:block;width:44px;height:2px;background:var(--coral);margin-bottom:14px}
.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:clamp(128px,11.25vw,180px) clamp(108px,9.05vw,144px) clamp(118px,9.75vw,156px);gap:5px;min-width:0}
.tile{position:relative;min-width:0;overflow:hidden;border-radius:var(--radius)}
a.tile{text-decoration:none;display:flex;align-items:flex-end;font-size:16px;font-weight:600;line-height:1.2;isolation:isolate;transition:background-color .2s ease-out,color .2s ease-out}
a.tile>.capability-icon{position:absolute;top:48%;left:22%;color:var(--blue);width:27px;height:27px}
a.tile>span{position:relative;padding:0 28px 28px 22%;z-index:1}.tile-arrow{position:absolute;bottom:25px;right:24px;width:22px;z-index:1}
a.tile:hover .tile-arrow{stroke-width:2.4}a.tile:focus-visible{outline:3px solid var(--ink);outline-offset:-4px}
.tile-data{grid-column:1/4;grid-row:1;background:var(--blue)}
.tile-data::before{content:'';position:absolute;inset:22px 0 0;background:var(--surface);border-radius:120px 0 0 0;z-index:-1}
.shape{background:var(--blue);pointer-events:none}.shape-leaf{grid-column:4/6;grid-row:1;border-top-right-radius:90px}
.photo{background:var(--wash)}.photo img{width:100%;height:100%;object-fit:cover}
.photo-architecture{grid-column:6/8;grid-row:1}.photo-coast{grid-column:8/10;grid-row:1}.shape-column{grid-column:10/11;grid-row:1;border-top-right-radius:90px}
.shape-window{grid-column:11/13;grid-row:1;background:var(--surface);border:1px solid var(--blue);border-top-right-radius:80px}.shape-window::before{content:"";position:absolute;left:0;bottom:0;width:60%;height:55%;background:var(--blue);border-top-right-radius:100%}
.shape-quarter{grid-column:1/4;grid-row:2;border-bottom-left-radius:90px}
.tile-automation{grid-column:4/7;grid-row:2;background:var(--surface);border:1px solid var(--line);border-top-right-radius:100px}
a.tile-automation>.capability-icon,a.tile-ai>.capability-icon{top:30%;left:18%}
a.tile-automation>span,a.tile-ai>span{padding-left:18%;padding-bottom:22px}
.shape-double{grid-column:7/10;grid-row:2;background:var(--surface)}
.shape-double::before,.shape-double::after{content:'';position:absolute;top:0;bottom:0;width:50%;background:var(--blue);border-top-right-radius:100%}
.shape-double::after{left:50%}.tile-ai{grid-column:10/13;grid-row:2;background:var(--coral);border-top-left-radius:100px}
.tile-ai .tile-arrow,.tile-automation .tile-arrow{bottom:20px}
.shape-rhythm{grid-column:1/4;grid-row:3;background:var(--surface)}
.shape-rhythm::before{content:'';position:absolute;top:0;bottom:0;width:50%;background:var(--blue);border-bottom-left-radius:100%}
.shape-rhythm::after{content:'';position:absolute;left:53%;top:0;bottom:0;width:47%;background:var(--blue);border-top-right-radius:100%}
.tile-note{grid-column:4/7;grid-row:3;background:var(--surface);border-top-right-radius:100px}
.tile-note p{position:relative;margin:38px 0 0 20%;font-size:10px;font-weight:600;line-height:1.65;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.tile-note p::before{content:'';width:30px;height:1px;display:block;background:var(--muted);margin-bottom:12px}
.shape-rise{grid-column:7/10;grid-row:3;background:var(--surface)}.shape-rise::before{content:'';position:absolute;inset:0;background:var(--blue);border-top-left-radius:100%}
.tile-action{grid-column:10/13;grid-row:3;background:var(--ink);color:var(--white)}
a.tile-action>span{padding-left:22px;padding-bottom:24px}.tile-action .tile-arrow{right:24px;bottom:24px}
.tile-data:hover::before,.tile-automation:hover{background:var(--wash)}.tile-ai:hover{background:#ff9c87}.tile-action:hover{background:var(--blue-dark)}
.services-band{background:var(--wash);padding-block:48px 44px}
.services{display:grid;grid-template-columns:30% repeat(3,minmax(0,1fr));gap:3%}
.section-intro h2{font-size:clamp(38px,3.7vw,56px);line-height:.98;font-weight:850;letter-spacing:-.025em;max-width:10ch}
.section-intro>p{margin-top:30px;font-size:11px;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);max-width:30ch}
.section-intro>p::before{content:'';display:block;width:48px;height:4px;background:var(--coral);margin-bottom:16px}
.services article{padding-left:clamp(18px,2.2vw,32px);border-left:1px solid var(--line);scroll-margin-top:32px}
.service-icon{color:var(--blue);width:29px;height:29px;margin-bottom:20px}
.services h3{font-size:22px;line-height:1.06;font-weight:750;letter-spacing:-.02em;max-width:14ch;margin-bottom:16px}
.services article>p{font-size:15px;line-height:1.45;color:var(--muted);max-width:28ch}
details{margin-top:20px}summary{cursor:pointer;display:flex;gap:12px;align-items:center;justify-content:space-between;min-height:44px;font-size:15px;font-weight:600;list-style:none}
summary::-webkit-details-marker{display:none}summary:hover{color:var(--blue);text-decoration:underline;text-underline-offset:5px}
summary .icon{width:19px;height:19px;transition:rotate .2s ease-out}details[open] summary .icon{rotate:90deg}
details>p{font-size:15px;line-height:1.5;margin-top:12px;max-width:29ch;color:var(--muted)}
.about{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-block:88px 96px}
.about h2{font-size:clamp(34px,3.35vw,52px);line-height:1.05;letter-spacing:-.025em;font-weight:800;max-width:16ch}
.about-heading>img{width:110px;margin-top:36px}.about-copy{max-width:54ch}.about-copy>p+p{margin-top:24px}
.about-copy>p:not(.stage){color:var(--muted)}.about-copy strong{color:var(--ink);font-weight:650}
.stage{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;padding-top:8px}
.stage-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);margin-right:4px}
.contact{background:var(--ink);color:var(--white);padding-block:64px 72px}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}
.contact h2{font-size:clamp(34px,3.1vw,48px);font-weight:750;line-height:1.08;max-width:15ch;letter-spacing:-.02em}
.site-contact{max-width:48ch;color:#d9e4ff;padding-top:8px}.site-contact a{color:var(--white);display:inline-flex;align-items:center;gap:12px;min-height:44px;overflow-wrap:anywhere;margin-top:16px}
.contact :focus-visible{outline-color:var(--coral)}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:32px 40px}
.site-footer>img{width:175px}.site-footer p{font-size:13px;color:var(--muted)}
.site-footer>a{display:flex;align-items:center;gap:12px;min-height:44px;font-size:14px;text-decoration:none}
.site-footer>a:hover{color:var(--blue);text-decoration:underline}.site-footer>a .icon{width:18px;height:18px;rotate:-90deg}
@media(min-width:1600px){.brand-line{gap:120px}.opening{padding-top:8px}.intro-copy{padding-top:64px}}
@media(max-width:1050px){.tile-automation .tile-arrow,.tile-action .tile-arrow{display:none}.site-header{gap:24px}.site-header nav{gap:24px}.header-action{min-width:200px;padding-inline:20px}.brand-line{grid-template-columns:minmax(0,1fr) 135px;gap:7%}.brand-notes{font-size:10px}.intro-copy{padding-top:28px}h1{font-size:32px}.intro-copy>p:not(.regional-note){font-size:15px;margin-top:24px}.mosaic{grid-template-rows:132px 116px 126px}.tile-arrow{right:12px;width:18px}a.tile>span{padding-left:16px;padding-right:22px;font-size:14px}a.tile-automation>span,a.tile-ai>span{padding-left:16px}.tile-note p{font-size:9px}.services h3{font-size:19px}.services article{padding-left:16px}.services article>p,summary,details>p{font-size:14px}.section-intro h2{font-size:42px}}
@media(max-width:900px){.services-band{padding-block:36px 40px}.services{grid-template-columns:1fr;gap:0}.section-intro{margin-bottom:28px}.section-intro h2{font-size:46px;max-width:12ch}.section-intro>p{margin-top:18px;font-size:10px;max-width:none}.section-intro>p::before{margin-bottom:12px}.services article{border-left:0;border-top:1px solid var(--line);padding:24px 0 8px;display:grid;grid-template-columns:32px 1fr;gap:8px 16px}.service-icon{grid-column:1;grid-row:1;width:25px;height:25px;margin:0}.services h3{grid-column:2;font-size:24px;max-width:none;margin:0;line-height:1.15}.services article>p{grid-column:2;font-size:16px;max-width:48ch}.services details{grid-column:2;margin-top:4px}summary,details>p{font-size:15px}}
@media(max-width:760px){.page-width{padding-inline:24px}.site-header{flex-wrap:wrap;gap:8px 20px;padding-block:16px 12px}.site-header nav{gap:20px;margin-left:auto}.site-header nav a{font-size:13px}.header-action{display:none}.brand-line{grid-template-columns:1fr;gap:0;margin-top:12px;margin-bottom:24px}.brand-notes{display:none}.wordmark{width:100%;max-height:none}.intro{grid-template-columns:1fr;gap:28px;padding-bottom:32px}.intro-copy{padding-top:0}.intro-copy h1{font-size:36px;max-width:19ch;line-height:1.08}.intro-copy>p:not(.regional-note){font-size:16px;max-width:49ch;margin-top:20px}.regional-note{display:block;margin-top:0;padding-top:20px;max-width:none;font-size:10px}.regional-note::before{margin-bottom:10px}.mosaic{grid-template-rows:clamp(100px,21vw,154px) clamp(100px,20vw,148px) clamp(105px,20vw,148px);gap:4px}.tile-data{grid-column:1/5}.shape-leaf{display:none}.photo-architecture{grid-column:5/8}.photo-coast{grid-column:8/11}.shape-column{grid-column:11/13}.shape-window{display:none}.tile-data::before{inset:16px 0 0;border-radius:90px 0 0 0}a.tile>.capability-icon{top:39%;left:20%;width:23px;height:23px}a.tile>span{padding-left:20%;padding-bottom:16px;font-size:14px}.tile-arrow{bottom:14px;right:10px;width:18px}.shape-quarter{grid-column:1/3}.tile-automation{grid-column:3/8;border-top-right-radius:80px}.shape-double{grid-column:8/9}.tile-ai{grid-column:9/13;border-top-left-radius:70px}a.tile-automation>.capability-icon,a.tile-ai>.capability-icon{top:22%;left:20%}a.tile-automation>span,a.tile-ai>span{padding-left:20%;padding-bottom:16px}.shape-rhythm{grid-column:1/5}.tile-note{grid-column:5/8}.tile-note p{font-size:8px;line-height:1.5;letter-spacing:.13em;margin:19px 0 0 14%}.tile-note p::before{margin-bottom:7px;width:20px}.shape-rise{grid-column:8/9}.tile-action{grid-column:9/13}a.tile-action>span{padding-left:14px;padding-bottom:17px;font-size:13px}.tile-action .tile-arrow{right:9px;bottom:14px;width:17px}.about{grid-template-columns:1fr;gap:28px;padding-block:48px 56px}.about h2{font-size:38px;max-width:17ch}.about-heading>img{width:74px;margin-top:24px}.about-copy{max-width:60ch}.contact{padding-block:44px 48px}.contact-inner{grid-template-columns:1fr;gap:24px}.contact h2{font-size:36px;max-width:19ch}.site-contact{padding-top:0}.site-footer{flex-wrap:wrap;gap:20px;padding-block:28px}.site-footer>img{width:160px}.site-footer p{font-size:12px}.site-footer>a{font-size:13px}}
@media(max-width:420px){.page-width{padding-inline:20px}.site-header{gap:4px 16px}.site-header nav{margin-left:auto;gap:24px}.site-header nav a{font-size:14px}.brand-line{margin-top:10px}.intro-copy h1{font-size:32px;max-width:18ch}.mosaic{grid-template-rows:105px 102px 105px}.tile-arrow{right:8px;width:16px}.tile-data .tile-arrow{bottom:14px}a.tile-automation>span{font-size:13px}.tile-automation .tile-arrow,.tile-ai .tile-arrow{right:8px}.tile-note{grid-column:5/9}.shape-rise{display:none}.tile-action{grid-column:9/13}a.tile-action>span{font-size:12px;padding-left:10px}.tile-action .tile-arrow{display:none}.section-intro h2{font-size:42px}.services h3{font-size:22px}.about h2{font-size:34px}.contact h2{font-size:33px}.site-footer p,.site-footer>a{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
@media print{.skip-link,.header-action,.mosaic,.site-footer>a{display:none}.intro,.services,.about,.contact-inner{display:block}.intro-copy{padding:0}.services article{margin-top:24px}.contact{background:var(--white);color:var(--ink)}.site-contact{color:var(--ink)}.brand-notes{display:none}}

@media(min-width:761px) and (max-width:1050px){a.tile-data>.capability-icon{display:none}}

@media(max-width:760px){.tile-note p{display:none}.tile-note::before{content:"";position:absolute;inset:0;background:var(--blue);border-bottom-left-radius:100%}}
