@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap');

:root{--graphite:#15191d;--ink:#23292f;--offwhite:#f5f4ef;--paper:#fffefa;--fog:#e8e9e4;--blue:#0d5ed7;--blue-deep:#073d8c;--acid:#b5e543;--muted:#69737b;--line:#c8cdc9;--width:78rem;color:var(--ink);background:var(--offwhite);font-family:Manrope,Arial,sans-serif;font-weight:500;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--offwhite)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--acid);outline-offset:4px}.skip{position:absolute;top:-5rem;left:1rem;padding:.8rem 1rem;background:var(--acid);z-index:10}.skip:focus{top:1rem}.utility{height:2rem;background:var(--graphite);color:#dbe0dc;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:0 max(1.25rem,calc((100% - var(--width))/2));font:400 .65rem/1 'DM Mono',monospace;letter-spacing:.04em}.utility p{margin:0}.utility a{text-decoration:underline;text-underline-offset:3px}.masthead{min-height:5.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line);padding:0 max(1.25rem,calc((100% - var(--width))/2));background:var(--paper)}.brand{display:flex;align-items:center;gap:.7rem;font-size:.82rem;font-weight:700;letter-spacing:-.04em;line-height:1.05}.brand-mark{width:2.45rem;height:2.45rem;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;background:var(--graphite)}.brand-mark i{display:block;background:var(--acid)}.brand-mark i:nth-child(2){background:var(--blue)}.brand-mark i:nth-child(3){background:#e9ece5}.masthead nav{display:flex;align-items:stretch;height:5.5rem}.masthead nav a{display:grid;place-items:center;padding:0 .85rem;border-left:1px solid transparent;font-size:.76rem;font-weight:700}.masthead nav a:hover,.masthead nav a[aria-current=page]{background:var(--fog);border-color:var(--line)}.masthead nav .nav-contact{margin-left:.7rem;padding:0 1.1rem;background:var(--blue);color:#fff}.masthead nav .nav-contact:hover{background:var(--blue-deep)}.menu{display:none;border:1px solid var(--graphite);padding:.58rem .8rem;background:transparent;font:500 .75rem 'DM Mono',monospace}.archive-note{margin:0;background:var(--acid);padding:.55rem max(1.25rem,calc((100% - var(--width))/2));font:500 .73rem 'DM Mono',monospace}.archive-note a{text-decoration:underline;text-underline-offset:3px}.hero{max-width:var(--width);margin:0 auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:calc(100vh - 7.5rem);padding:clamp(3rem,7vw,7rem) 0 0}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;padding:0 clamp(1.25rem,4vw,4.4rem) clamp(3rem,7vw,5.6rem) max(1.25rem,calc((100vw - var(--width))/2))}.kicker{margin:0 0:1rem;font:500 .67rem/1.35 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.07em;color:var(--blue-deep)}.hero h1,.page-hero h1,.section-intro h2,.photo-feature h2,.capability h2,.closing p,.archive-home h1{margin:0;letter-spacing:-.065em;font-weight:500;line-height:.95}.hero h1{font-size:clamp(3.8rem,6.6vw,6.7rem);max-width:9ch}.lead{font-size:clamp(1rem,1.35vw,1.23rem);line-height:1.55;color:#4d5961;max-width:46ch;margin:1.7rem 0 2rem}.actions{display:flex;flex-wrap:wrap;gap:1.15rem;align-items:center}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2.5rem;padding:.88rem 1rem;background:var(--blue);color:#fff;border:1px solid var(--blue);font-size:.79rem;font-weight:700;transition:background .2s ease,transform .2s ease}.button:hover{background:var(--blue-deep);transform:translateY(-2px)}.button span,.text-link span{font-size:1.1em}.text-link{font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:.3rem;text-decoration-color:var(--blue);text-decoration-thickness:2px}.text-link:hover{color:var(--blue-deep)}.hero-photo{margin:0;display:grid;grid-template-rows:1fr auto;min-height:32rem;background:var(--graphite);color:#fff}.hero-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) contrast(1.04)}figcaption{padding:.75rem 1rem;border-top:1px solid rgba(255,255,255,.35);font:400 .64rem 'DM Mono',monospace;letter-spacing:.04em}.hero-photo figcaption{background:var(--blue)}figcaption span{display:inline-block;width:2.6rem;color:var(--acid)}.statement{max-width:var(--width);margin:0 auto;padding:clamp(2.5rem,4vw,4.5rem) max(1.25rem,calc((100vw - var(--width))/2));border-top:1px solid var(--graphite);border-bottom:1px solid var(--graphite);display:grid;grid-template-columns:1.1fr .9fr;gap:3rem}.statement p{margin:0;max-width:22ch;font-size:clamp(1.5rem,2.5vw,2.35rem);line-height:1.1;letter-spacing:-.045em}.statement div{display:grid;grid-template-columns:repeat(2,1fr);align-content:start;gap:.65rem 1rem;font:500 .65rem 'DM Mono',monospace;text-transform:uppercase;color:var(--blue-deep)}.route,.systems,.industries{padding:clamp(4rem,8vw,7.5rem) max(1.25rem,calc((100% - var(--width))/2))}.route{background:var(--graphite);color:#fff}.section-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.65fr);gap:3rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4.5rem)}.section-intro h2{font-size:clamp(2.5rem,4.8vw,5rem);max-width:13ch}.section-intro p{margin:0;color:#59636b;max-width:35ch;font-size:1rem}.route .section-intro p{color:#c4cbca}.process{margin:0;padding:0;list-style:none;border-top:1px solid #657078;display:grid;grid-template-columns:repeat(4,1fr)}.process li{display:grid;gap:.8rem;padding:1rem 1.2rem 0;border-right:1px solid #657078;opacity:.45;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}.process li:first-child{border-left:1px solid #657078}.process li.seen{opacity:1;transform:none}.process li:nth-child(2){transition-delay:.12s}.process li:nth-child(3){transition-delay:.24s}.process li:nth-child(4){transition-delay:.36s}.process b{font:500 .66rem 'DM Mono',monospace;color:var(--acid)}.process span{font-size:1.35rem;letter-spacing:-.04em}.process small{font-size:.78rem;line-height:1.5;color:#b5bdbe}.systems{background:var(--fog)}.system-list{border-top:1px solid var(--graphite)}.system-link{min-height:5.6rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem;padding:1rem 0;border-bottom:1px solid var(--graphite);font-size:clamp(1.2rem,2.2vw,2rem);letter-spacing:-.04em;opacity:.5;transform:translateX(-10px);transition:background .2s ease,padding .2s ease,opacity .6s ease,transform .6s ease}.system-link.seen{opacity:1;transform:none}.system-link:hover{padding-left:1rem;padding-right:1rem;background:var(--acid)}.system-link i{font:400 1.2rem 'DM Mono',monospace;color:var(--blue)}.photo-feature,.capability{max-width:var(--width);margin:0 auto;display:grid;grid-template-columns:1fr 1fr}.photo-feature figure,.capability figure{margin:0;background:var(--graphite);color:#fff;opacity:.6;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}.photo-feature figure.seen,.capability figure.seen{opacity:1;transform:none}.photo-feature figure{order:2}.photo-feature img,.capability img{display:block;width:100%;height:100%;min-height:27rem;object-fit:cover}.photo-feature>div,.capability>div{padding:clamp(2.5rem,6vw,6rem);background:var(--blue);color:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.photo-feature h2,.capability h2{font-size:clamp(2.3rem,4vw,4.3rem);max-width:10ch}.photo-feature p,.capability p{font-size:1rem;line-height:1.6;max-width:37ch}.photo-feature .button{background:var(--acid);border-color:var(--acid);color:var(--graphite)}.photo-feature .button:hover{background:#d2f178}.capability>div{background:var(--paper);color:var(--ink)}.capability .text-link{margin-top:1rem}.capability figure{order:2}.capability figure figcaption{background:var(--graphite)}.industries{border-top:1px solid var(--graphite)}.card-grid,.page-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--graphite)}.card{display:flex;flex-direction:column;align-items:flex-start;min-height:16rem;padding:1.3rem 1.25rem;border-right:1px solid var(--graphite);border-bottom:1px solid var(--graphite);opacity:.5;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease,background .2s ease}.card:first-child{border-left:1px solid var(--graphite)}.card.seen{opacity:1;transform:none}.card:hover{background:var(--acid)}.card h3{margin:0;font-size:1.45rem;letter-spacing:-.045em;line-height:1.08}.card p{font-size:.86rem;line-height:1.55;max-width:38ch;color:#58646c}.card .text-link{margin-top:auto}.closing{background:var(--acid);padding:clamp(3.5rem,8vw,8rem) max(1.25rem,calc((100% - var(--width))/2));display:flex;justify-content:space-between;align-items:end;gap:2rem}.closing p{font-size:clamp(2.4rem,4.5vw,4.8rem);max-width:13ch}.closing .button{background:var(--graphite);border-color:var(--graphite)}.page-hero,.archive-home{max-width:var(--width);margin:0 auto;padding:clamp(4rem,9vw,9rem) max(1.25rem,calc((100vw - var(--width))/2)) clamp(3rem,5vw,5.5rem)}.page-hero h1,.archive-home h1{max-width:17ch;font-size:clamp(3rem,6vw,6.2rem)}.page-list{max-width:var(--width);margin:0 auto;border-top:1px solid var(--graphite);grid-template-columns:repeat(3,1fr)}.page-list .card:nth-child(n+4){border-top:0}.detail{max-width:var(--width);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:clamp(3rem,7vw,8rem);padding:0 max(1.25rem,calc((100vw - var(--width))/2)) clamp(4rem,8vw,8rem)}.article{display:grid;gap:3.5rem}.article section{position:relative;max-width:50rem;border-top:1px solid var(--line);padding:1.2rem 0 0 4rem}.article section>span{position:absolute;left:0;top:1.4rem;font:500 .68rem 'DM Mono',monospace;color:var(--blue)}.article h2{margin:0;font-size:clamp(1.7rem,3.2vw,3rem);letter-spacing:-.05em;line-height:1.05}.article p{margin:1rem 0 0;max-width:64ch;color:#4f5b63;font-size:1rem;line-height:1.65}.detail aside{border-top:2px solid var(--graphite);padding-top:1rem;align-self:start;position:sticky;top:1rem}.detail aside h2{margin:0 0:1rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.detail aside>a{display:block;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.84rem;font-weight:700}.detail aside>a:hover{color:var(--blue)}.detail aside hr{border:0;border-top:1px solid var(--line);margin:1.5rem 0}.detail aside p{font-size:.8rem;color:var(--muted)}.detail aside .button{font-size:.72rem;gap:1rem}.archive-home{min-height:58vh}.archive-home .lead{margin-bottom:2rem}footer{background:var(--graphite);color:#fff;padding:4rem max(1.25rem,calc((100% - var(--width))/2)) 1.5rem;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem}.footer-brand{color:#fff}.footer-brand .brand-mark{background:#fff}.footer-brand .brand-mark i:nth-child(3){background:var(--graphite)}footer p{max-width:28ch;color:#b7c0bf;font-size:.82rem;line-height:1.6}footer h2{margin:0 0:.8rem;color:var(--acid);font:500 .66rem 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em}footer a:not(.brand){display:block;width:max-content;max-width:100%;margin:.35rem 0;font-size:.8rem}footer a:not(.brand):hover{text-decoration:underline;text-underline-offset:.2rem}footer small{grid-column:1/-1;margin-top:1rem;padding-top:1rem;border-top:1px solid #4b5458;color:#a7b0af;font:400 .63rem 'DM Mono',monospace}
@media(max-width:840px){.masthead{position:relative}.menu{display:block}.masthead nav{display:none;position:absolute;top:5.5rem;left:0;right:0;height:auto;z-index:5;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--graphite)}.masthead nav.open{display:flex}.masthead nav a{display:block;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.masthead nav .nav-contact{margin:0;background:var(--blue);color:#fff}.hero{grid-template-columns:1fr;padding-top:0}.hero-copy{padding-top:4rem}.hero-photo{min-height:27rem;order:-1}.statement,.section-intro{grid-template-columns:1fr;gap:1.5rem}.process{grid-template-columns:repeat(2,1fr)}.process li:nth-child(3){border-left:1px solid #657078}.photo-feature,.capability{grid-template-columns:1fr}.photo-feature figure,.capability figure{order:0}.photo-feature>div,.capability>div{min-height:26rem}.page-list{grid-template-columns:repeat(2,1fr)}.detail{grid-template-columns:1fr}.detail aside{position:static;max-width:32rem}footer{grid-template-columns:1.3fr 1fr}.utility p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:540px){.utility{font-size:.58rem}.utility a{display:none}.masthead{min-height:4.7rem}.masthead nav{top:4.7rem}.hero-copy,.route,.systems,.industries,.page-hero,.archive-home,.detail{padding-left:1.25rem;padding-right:1.25rem}.hero-copy{padding-bottom:3rem}.hero h1{font-size:clamp(3.45rem,16vw,5rem)}.hero-photo{min-height:19rem}.statement{padding:2rem 1.25rem}.statement div{grid-template-columns:1fr}.process{grid-template-columns:1fr}.process li,.process li:nth-child(3){border-left:1px solid #657078;border-right:1px solid #657078}.photo-feature img,.capability img{min-height:18rem}.photo-feature>div,.capability>div{min-height:0}.card-grid,.page-list{grid-template-columns:1fr}.card{min-height:13rem;border-left:1px solid var(--graphite)}.closing{display:grid;align-items:start}.closing .button{width:100%}.detail .article section{padding-left:0}.article section>span{position:static;display:block;margin-bottom:.6rem}footer{grid-template-columns:1fr;gap:2rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Compact desktops and browser-zoom viewports: switch before text columns become unusably narrow. */
@media(min-width:841px) and (max-width:1100px){.masthead{position:relative}.menu{display:block}.masthead nav{display:none;position:absolute;top:5.5rem;left:0;right:0;height:auto;z-index:5;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--graphite)}.masthead nav.open{display:flex}.masthead nav a{display:block;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.masthead nav .nav-contact{margin:0;background:var(--blue);color:#fff}.hero{grid-template-columns:1fr;min-height:0;padding-top:0}.hero-copy{padding-top:clamp(3rem,6vw,4rem)}.hero-photo{min-height:clamp(23rem,42vw,29rem);order:-1}.statement,.section-intro{grid-template-columns:1fr;gap:1.5rem}.process{grid-template-columns:repeat(2,1fr)}.process li:nth-child(3){border-left:1px solid #657078}.photo-feature,.capability{grid-template-columns:1fr}.photo-feature figure,.capability figure{order:0}.photo-feature>div,.capability>div{min-height:0}.page-list{grid-template-columns:repeat(2,1fr)}.detail{grid-template-columns:1fr}.detail aside{position:static;max-width:32rem}footer{grid-template-columns:1.3fr 1fr}}
/* A browser zoom can preserve desktop media-query width while making a split hero physically unreadable. Compact desktop therefore prioritises a full-width proof image and a complete text measure. */
body{min-width:0}.page-hero h1,.article h2,.card h3,.system-link span{overflow-wrap:anywhere}
@media(min-width:1101px) and (max-width:1400px){.hero{grid-template-columns:minmax(0,1fr);min-height:0;padding-top:0}.hero-copy{max-width:48rem;padding-top:clamp(3rem,5vw,4.5rem);padding-right:max(1.25rem,calc((100vw - var(--width))/2))}.hero h1{font-size:clamp(3.4rem,5.5vw,5.8rem);max-width:10ch}.hero-photo{min-height:clamp(24rem,42vw,34rem)}.page-list{grid-template-columns:repeat(2,minmax(0,1fr))}.page-list .card:nth-child(odd){border-left:1px solid var(--graphite)}}
/* Preserve the flat IBM-inspired interaction language without animating layout. */
.system-link{transition:background .2s ease,opacity .6s ease,transform .6s ease}.system-link:hover{padding-left:0;padding-right:0}
/* These sections are already centered with a 78rem maximum. Past that width, using the viewport gutter again inside them crushes the reading column. */
@media(min-width:1249px){.hero-copy{padding-left:clamp(1.25rem,4vw,4.4rem)}.statement,.page-hero,.archive-home,.detail{padding-left:clamp(1.25rem,4vw,4.4rem);padding-right:clamp(1.25rem,4vw,4.4rem)}}
/* Let wide engineering workspaces use their available canvas while preserving a disciplined maximum line length. */
@media(min-width:1401px){.utility,.masthead,.archive-note,.route,.systems,.industries,.closing,footer{padding-left:max(1.25rem,calc((100% - 100rem)/2));padding-right:max(1.25rem,calc((100% - 100rem)/2))}.hero,.statement,.photo-feature,.capability,.page-hero,.archive-home,.page-list,.detail{max-width:min(calc(100% - 2.5rem),100rem)}.hero-copy{padding-left:clamp(2rem,5vw,6rem);padding-right:clamp(2rem,4vw,5rem)}.statement,.page-hero,.archive-home,.detail{padding-left:clamp(2rem,5vw,6rem);padding-right:clamp(2rem,5vw,6rem)}}
