:root{--ink:#17191b;--graphite:#22262a;--muted:#5c6268;--line:#d9dde1;--soft:#f2f4f6;--blue:#3488e1;--blue-dark:#1467bd;--shell:min(1160px,calc(100% - 2rem))}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:clamp(1rem,.96rem + .18vw,1.125rem);line-height:1.7}img{display:block;max-width:100%}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}button,a{-webkit-tap-highlight-color:transparent}.shell{width:var(--shell);margin-inline:auto}.skip{position:fixed;left:1rem;top:-5rem;z-index:100;background:#fff;padding:.7rem 1rem}.skip:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{height:92px;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:20}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:1rem;text-decoration:none;font-weight:720;font-size:.92rem;line-height:1.2}.brand img{width:76px;height:76px;object-fit:contain}.brand small{display:block;color:var(--muted);font-size:.72rem;font-weight:600;margin-top:.25rem}.menu-toggle{width:48px;height:48px;border:1px solid var(--line);background:#fff;display:grid;place-content:center;gap:5px}.menu-toggle i{display:block;width:22px;height:2px;background:var(--ink)}#main-nav{display:none;position:absolute;left:0;right:0;top:92px;background:#fff;border-bottom:1px solid var(--line);padding:1rem}#main-nav.open{display:grid}#main-nav a{padding:.8rem;text-decoration:none;font-weight:650;border-bottom:1px solid var(--line)}#main-nav a[aria-current=page],#main-nav a:hover{color:var(--blue-dark)}
.dark{background:var(--graphite);color:#fff}.hero{min-height:calc(100vh - 92px);display:grid;align-items:center;padding:clamp(4rem,8vw,7rem) 0}.hero-grid{display:grid;gap:clamp(2rem,5vw,5rem)}.eyebrow{color:var(--blue-dark);font-weight:750;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;margin:0 0 1.1rem}.eyebrow.light{color:#72b4f5}.hero h1,.page-intro h1,.project-hero h1,.not-found h1{font-size:clamp(3rem,11vw,7.1rem);line-height:.9;letter-spacing:-.055em;margin:0;max-width:9ch}.hero h1 em{font-style:normal;color:#61aaf2}.lead{font-size:clamp(1.1rem,1rem + .55vw,1.45rem);line-height:1.5;max-width:40rem;color:#d7dce0;margin:2rem 0}.hero-logo-panel{display:grid;place-items:center;align-self:center;min-height:300px;padding:0}.hero-logo-panel img{width:min(100%,340px);height:auto;filter:invert(1)}.actions{display:flex;flex-wrap:wrap;gap:.75rem}.btn{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.7rem 1.2rem;border:1px solid #fff;text-decoration:none;font-weight:750}.btn.primary{background:var(--blue);border-color:var(--blue);color:#07131f}.btn.primary:hover{background:#66adf2}.btn.ghost:hover{background:#fff;color:var(--ink)}
.section{padding:clamp(4rem,8vw,7rem) 0}.soft{background:var(--soft)}h2{font-size:clamp(2rem,1.45rem + 2.1vw,3.7rem);line-height:1.08;letter-spacing:-.04em;margin:.3rem 0 1.4rem}h3{line-height:1.25}.split,.prose-grid{display:grid;gap:2rem}.section-copy{max-width:none}.section-copy h2{max-width:15ch}.section-copy .lead,.section-copy>p:not(.eyebrow){max-width:62ch}.section-copy .btn{margin-top:.75rem}.dark-text{color:var(--ink);margin-top:0}.text-link{font-weight:750;color:var(--blue-dark)}
.competence-grid,.steps{display:grid;margin-top:2.5rem;border-top:1px solid var(--line)}.competence-grid article,.steps article{padding:1.5rem 0;border-bottom:1px solid var(--line)}.competence-grid span,.steps span,.service-grid>article>span{color:var(--blue-dark);font-weight:800;font-size:.8rem}.competence-grid h3,.steps h3{font-size:1.3rem}.competence-grid p,.steps p{color:var(--muted);margin-bottom:0}.section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem}
.cards{display:grid;gap:2rem;margin-top:2.5rem}.project-card{border-top:3px solid var(--ink);background:#fff;min-width:0}.card-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#dfe3e6}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.card-image:hover img{transform:scale(1.02)}.card-copy{padding:1.35rem 0}.card-copy h2,.card-copy h3{font-size:1.45rem;margin:.4rem 0}.card-copy h2 a,.card-copy h3 a{text-decoration:none}.card-copy p:not(.eyebrow){color:var(--muted)}
.cta{padding:clamp(3.5rem,7vw,6rem) 0}.cta p{color:#c8cdd1}.site-footer{background:#151719;color:#d1d5d8;padding:3.5rem 0;font-size:.92rem}.footer-grid{display:grid;gap:2.5rem}.footer-brand{display:flex;align-items:center;gap:1.3rem}.footer-brand img{width:104px;height:104px;object-fit:contain;filter:invert(1);opacity:.94}.footer-brand span{color:#9da4aa}.footer-contact,.footer-links{display:flex;flex-direction:column;justify-content:center;gap:.25rem}.footer-contact>span{color:#818990;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem}.site-footer a{color:#fff}.copyright{color:#8d949a;margin-top:.65rem}
.page-intro,.project-hero{padding:clamp(4rem,9vw,8rem) 0}.page-intro h1,.project-hero h1{max-width:14ch;font-size:clamp(2.7rem,8vw,6.2rem)}.page-intro .lead,.project-hero .lead{margin-bottom:0}.prose{max-width:66ch}.prose p:first-child{font-size:1.2em;color:var(--ink)}.service-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.service-grid article{background:#fff;padding:1.5rem}.service-grid h2{font-size:1.55rem;letter-spacing:-.025em}.service-grid ul{padding-left:1.2rem;color:var(--muted)}.archive{margin-top:0}.back{display:inline-block;margin-bottom:3rem;color:#c8d0d6}
.gallery{columns:1;column-gap:1rem;margin-top:3rem}.gallery-item{display:block;width:100%;margin:0 0 1rem;break-inside:avoid;overflow:hidden;background:var(--soft)}.gallery-item img{width:100%;height:auto}.project-nav{display:flex;justify-content:space-between;gap:1rem;padding-bottom:5rem;font-weight:750}.contact-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.contact-grid article{padding:1.5rem;background:#fff}.contact-grid address{font-style:normal;font-size:1.15rem;margin:1rem 0}.contact-link small{display:block;color:var(--muted)}.contact-link a{font-size:clamp(1.15rem,4.5vw,1.5rem);font-weight:750}.hours div{padding:1rem 0;border-bottom:1px solid var(--line)}.hours dt{font-weight:750}.hours dd{margin:0;color:var(--muted)}.legal{max-width:780px}.legal h2{font-size:1.5rem;margin-top:2.5rem;letter-spacing:-.02em}.not-found{min-height:calc(100vh - 92px);display:grid;align-items:center;padding:5rem 0}.not-found h1{max-width:11ch}.not-found .lead{max-width:33rem}:focus-visible{outline:3px solid #76b8fa;outline-offset:3px}
@media(min-width:720px){.menu-toggle{display:none}#main-nav{display:flex;position:static;border:0;padding:0;gap:2rem}#main-nav a{padding:.5rem 0;border:0}.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:center}.split,.prose-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start}.competence-grid{grid-template-columns:repeat(2,1fr)}.competence-grid article:nth-child(odd){padding-right:2rem;border-right:1px solid var(--line)}.competence-grid article:nth-child(even){padding-left:2rem}.cards{grid-template-columns:repeat(3,1fr)}.archive{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(3,1fr)}.steps article{padding-right:2rem}.service-grid{grid-template-columns:repeat(2,1fr)}.gallery{columns:2}.contact-grid,.footer-grid{grid-template-columns:1.5fr .85fr .65fr;align-items:center}.contact-grid article,.service-grid article{padding:2rem}.footer-contact,.footer-links{align-items:flex-start}}
@media(min-width:1080px){.archive{grid-template-columns:repeat(3,minmax(0,1fr))}.service-grid{grid-template-columns:repeat(3,1fr)}.gallery{columns:3}}
@media(max-width:719px){.hero-logo-panel{min-height:0;padding:2rem 0 0}.hero-logo-panel img{width:220px}.footer-brand{align-items:flex-start}.footer-brand img{width:82px;height:82px}.footer-contact,.footer-links{padding-left:calc(82px + 1.3rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card-image img{transition:none}}
