:root{--ink:#101e24;--muted:#53636a;--paper:#f9faf9;--line:#d6dfe0;--accent:#cbf16f;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #457608;outline-offset:5px}.wrap{max-width:1240px;margin:auto;padding-left:48px;padding-right:48px}.header{height:104px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:800;letter-spacing:.08em}.brand-mark{font-size:35px;font-weight:900;letter-spacing:-.16em;line-height:1}.brand-mark span{color:#64872c;margin-right:6px}nav{display:flex;align-items:center;gap:30px;font-size:14px}nav a:hover{text-decoration:underline;text-underline-offset:6px}.nav-cta{border:1px solid var(--ink);padding:9px 17px}.menu-toggle{display:none}.hero{min-height:645px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:60px;padding-top:50px;padding-bottom:68px}.eyebrow{font:12px var(--mono);font-weight:600;letter-spacing:.13em;margin:0 0 26px}h1{font-size:clamp(48px,5.8vw,77px);line-height:1.03;letter-spacing:-.055em;margin:0 0 27px;font-weight:500}h1 em{font-style:normal;color:#597923}.intro{font-size:19px;max-width:430px;color:var(--muted);line-height:1.6;margin-bottom:28px}.button{display:inline-block;border:0;padding:15px 24px;font-size:14px;font-weight:700;transition:background .15s,transform .15s}.button:hover{transform:translateY(-2px)}.primary{background:var(--ink);color:white}.primary:hover,.dark:hover{background:#2c424c}.hero-note{font-size:13px;color:var(--muted);margin-top:24px}.architecture{background:var(--ink);color:#e9efed;padding:26px 28px 0;box-shadow:16px 16px 0 #e9edeb;position:relative}.diagram-top{display:flex;justify-content:space-between;gap:12px;font:10px var(--mono);letter-spacing:.05em;color:#a7b9bd;padding-bottom:28px;border-bottom:1px solid #34464e}.signal-label{text-align:center;font:12px var(--mono);margin-top:32px;color:#b0c0c2}.wire.vertical{width:1px;height:28px;background:#9aafaf;margin:auto}.node{border:1px solid #5c727b;padding:19px;display:flex;flex-direction:column;gap:4px;position:relative;background:#172a32}.node strong{font-size:24px;letter-spacing:-.025em;font-weight:500}.node span:not(.node-index):not(.node-tag){font-size:12px;color:#bfd0d2}.node-index{font:10px var(--mono);color:#aabcbd}.node.vcu{border-color:var(--accent);display:flex;flex-direction:row;align-items:center;gap:16px}.node.vcu>div{display:flex;flex-direction:column;flex:1}.node.vcu strong{color:var(--accent);font-size:35px}.node-tag{font:9px var(--mono);color:var(--accent);writing-mode:vertical-rl;letter-spacing:.12em}.split-wires{height:44px;width:52%;margin:auto;border-left:1px solid #819b9e;border-right:1px solid #819b9e;background:linear-gradient(#819b9e,#819b9e) center 50%/100% 1px no-repeat;position:relative}.split-wires:before{content:"";position:absolute;width:1px;height:22px;background:#819b9e;left:50%;top:0}.node-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.node-pair .node{min-height:135px}.diagram-bottom{display:flex;justify-content:space-around;font:10px var(--mono);color:#a6bbbd;margin:16px 0 35px;gap:10px}.diagram-caption{border-top:1px solid #34464e;padding:19px 0;display:flex;gap:16px;align-items:center;font-size:12px;color:#bfd0d2}.cross{font-size:22px;color:var(--accent)}.discipline-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.discipline-strip>div{display:flex;justify-content:space-between;padding-top:19px;padding-bottom:19px;gap:20px}.discipline-strip span{font:12px var(--mono);color:var(--muted)}.section{padding-top:90px;padding-bottom:90px}.section-heading{margin-bottom:43px;max-width:620px}h2{font-size:clamp(32px,3.8vw,49px);line-height:1.13;letter-spacing:-.04em;font-weight:500;margin:0 0 22px}.section-heading>p:last-child{font-size:18px;color:var(--muted);max-width:520px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.service{border-top:2px solid var(--ink);padding-top:21px}.service-number{font:13px var(--mono);color:#65872c}h3{font-size:23px;line-height:1.3;letter-spacing:-.025em;font-weight:500;margin:16px 0}.service-intro{color:var(--muted);min-height:52px}.service ul{padding:0;list-style:none;margin:27px 0;font-size:14px;min-height:140px}.service li{padding:5px 0}.service li:before{content:"+";font-family:var(--mono);margin-right:10px;color:#64872c}.deliverable{padding-top:19px;border-top:1px solid var(--line);font:11px var(--mono);color:var(--muted)}.deliverable span{display:block;font:14px/1.6 Arial,Helvetica,sans-serif;color:var(--ink);margin-top:9px}.approach{background:var(--ink);color:#f4f7f6}.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.approach .eyebrow{color:var(--accent)}.approach-intro{color:#bbc9cd;font-size:18px}.approach-footnote{font-size:14px;color:#a4b9c0;margin-top:40px;max-width:340px}.process{list-style:none;padding:0;margin:0}.process li{display:flex;gap:28px;border-top:1px solid #3b4e55;padding:19px 0}.process li>span{font:13px var(--mono);color:var(--accent);margin-top:5px}.process h3{margin:0 0 9px;font-size:23px}.process p{color:#bccbce;font-size:15px;margin:0}.locations{display:grid;grid-template-columns:1fr 1fr;gap:60px}.locations article{display:flex;gap:26px;border-top:1px solid var(--line);padding-top:30px}.location-code{font:42px var(--mono);color:#668330;line-height:1.3}.locations h3{margin:0 0 10px}.locations p{color:var(--muted);margin:0}.project-section{background:#e9efdf}.engagements{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.engagements h3{font-size:21px}.engagements p{color:#48584c;font-size:15px}.brief-row{border-top:1px solid #bac9af;margin-top:40px;padding-top:25px;display:flex;align-items:center;justify-content:space-between;gap:35px}.brief-row h3{margin:0 0 6px}.brief-row p{margin:0;color:#48584c;font-size:14px}.dark{background:var(--ink);color:white;white-space:nowrap}.footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:37px;padding-bottom:37px}.footer p,.footer>a:last-child{font-size:12px;color:var(--muted)}.skip-link{position:absolute;top:-100px;left:15px;background:white;padding:15px;z-index:10}.skip-link:focus{top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1450px){.hero{min-height:700px}}@media(max-width:1000px){.wrap{padding-left:30px;padding-right:30px}.hero{gap:30px}.architecture{padding:20px 18px 0}.node{padding:13px}.node strong{font-size:20px}.approach-grid{gap:50px}.service-grid{gap:23px}.service ul{min-height:180px}}
@media(max-width:720px){.wrap{padding-left:24px;padding-right:24px}.header{height:82px}.menu-toggle{display:block;background:none;border:1px solid var(--line);padding:8px 12px;font-size:14px}.header nav{display:none;position:absolute;top:75px;left:0;right:0;background:var(--paper);padding:24px;z-index:5;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:20px}.header nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:35px;padding-bottom:45px;gap:35px}.hero h1{font-size:clamp(48px,12vw,72px)}.hero-note{display:none}.intro{font-size:18px}.architecture{max-width:510px;width:100%;box-shadow:8px 8px 0 #e9edeb}.diagram-top{font-size:10px}.node-pair .node{min-height:110px}.node strong{font-size:23px}.discipline-strip>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.discipline-strip span{font-size:11px}.section{padding-top:60px;padding-bottom:60px}.eyebrow{margin-bottom:21px}.service-grid,.approach-grid,.locations,.engagements{grid-template-columns:1fr;gap:35px}.service-intro,.service ul{min-height:0}.service ul{margin:20px 0}.service h3{font-size:26px}.service .deliverable{margin-bottom:5px}.section-heading{margin-bottom:33px}.approach-footnote{margin-top:25px}.locations{gap:30px}.locations article{gap:22px}.engagements{gap:13px}.brief-row{flex-direction:column;align-items:flex-start;gap:24px}.footer{flex-wrap:wrap;gap:15px}.footer p{width:100%;order:3}.footer>a:last-child{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}
