/* Hofmann Engineering / Website v2 (2026-10-18). Basis: ChatGPT-Vorschau vom 13.10. (Look & Feel bleibt), Zeichen H01 "Dimension". */
@font-face{font-family:Host;src:url('assets/HostGrotesk.woff2') format('woff2');font-weight:300 800;font-display:swap}
:root{--paper:#f3f5f6;--white:#fff;--ink:#1d2126;--blue:#1b4bd9;--blue-dark-bg:#4a76ff;--alu:#e2e6ea;--muted:#89939c;--text-2:#64717c;--line:#d6dde2;--stage:#23272d;--pad:clamp(24px,5vw,96px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:40px}body{margin:0;overflow-x:clip;background:var(--paper);color:var(--ink);font:16px/1.5 Host,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01" 0}body.modal-open,body.menu-open{overflow:hidden}[hidden]{display:none!important}h1,h2,h3,p,figure,ul,dl,dd{margin:0}ul{padding:0;list-style:none}h1,h2,h3{font-weight:500;letter-spacing:-.06em;line-height:1.04;text-wrap:balance}p{text-wrap:pretty}button,input,select,textarea{font:inherit}button{border:0;background:none;color:inherit;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:6px}img{display:block;max-width:100%}svg{display:block}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:var(--ink);color:#fff;z-index:100}.skip:focus{top:10px}.blue{color:var(--blue)}.muted{color:var(--muted)}::selection{background:var(--blue);color:#fff}

/* Zeichen H01: Stege und Masspfeil getrennt einfaerbbar */
.mark{--h-bars:var(--ink);--h-arrow:var(--blue)}
.mark-light{--h-bars:#fff;--h-arrow:#fff}

/* V7 Mass nehmen: der Pfeil im Kopfzeichen laeuft beim Laden aus der Mitte an die Stege */
@property --arrow-s{syntax:'<number>';inherits:true;initial-value:1}
.h-arrow{transform:scaleX(var(--arrow-s));transform-box:fill-box;transform-origin:center}
.header .brand svg{animation:mass-nehmen .75s var(--ease) .35s both}
@keyframes mass-nehmen{from{--arrow-s:0}to{--arrow-s:1}}

/* Kopf */
.header{height:98px;margin:0 var(--pad);display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:.73em;white-space:nowrap;font-size:22px;letter-spacing:-.05em}.brand b{font-weight:700}.brand svg{height:1.4em;width:1.288em;flex-shrink:0}.desktop-nav{margin-left:auto;display:flex;gap:30px;font-size:13px}.desktop-nav a{padding:10px 0;position:relative}.desktop-nav a:after{content:'';position:absolute;height:1px;background:var(--blue);bottom:4px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}
.lang{display:flex;gap:2px;font-size:11px;letter-spacing:.06em;color:#7c8994}.lang a{padding:8px 5px;position:relative}.lang a[aria-current]{color:var(--ink);font-weight:650}.lang a[aria-current]:after{content:'';position:absolute;left:5px;right:5px;bottom:3px;height:1px;background:var(--blue)}.lang a:hover{color:var(--ink)}
.contact-nav{display:flex;align-items:center;gap:24px;font-size:12px;border-bottom:1px solid #b1bdc6;padding:10px 0;margin-left:6px}.contact-nav svg{width:16px;height:16px;transition:transform .4s var(--ease)}.contact-nav:hover svg{transform:translate(3px,-3px)}.menu-button{display:none}.mobile-nav{position:fixed;z-index:19;background:var(--paper);inset:86px 0 0;padding:40px var(--pad);overflow:auto}.mobile-nav>a{display:flex;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line);font-size:34px;letter-spacing:-.04em}.mobile-nav>a span{font-size:12px;color:var(--blue)}.mobile-nav>button,.mobile-nav>a.mobile-mail{font-size:25px;color:var(--blue);margin-top:32px;border:0;display:block}.mobile-nav .lang{margin-top:34px;font-size:14px}

/* Hero */
.hero{padding:48px var(--pad) 0}.hero-heading-row{display:grid;grid-template-columns:minmax(0,3.5fr) minmax(0,1fr);gap:5%;align-items:end;margin-bottom:44px}.eyebrow{font-size:10px;line-height:1.45;text-transform:uppercase;letter-spacing:.1em;font-weight:550;display:flex;gap:10px;align-items:center}.blue-dot{width:5px;height:5px;background:var(--blue);flex-shrink:0}.hero h1{font-size:clamp(46px,5.55vw,94px);margin-top:24px;font-weight:550;line-height:1.02;letter-spacing:-.065em}.hero h1>span{white-space:nowrap}.hero-intro{max-width:300px;padding-bottom:3px}.hero-intro p{font-size:14px;line-height:1.55;color:var(--text-2)}.underlink{display:inline-flex;align-items:center;gap:28px;font-size:12px;font-weight:550;border-bottom:1px solid #aab6c0;padding-bottom:8px;margin-top:25px;transition:border-color .3s}.underlink:hover{border-color:var(--ink)}.underlink svg{width:15px;height:15px;transition:transform .4s var(--ease)}.underlink:hover svg{transform:translate(4px,-4px)}

/* Buehne mit technischer Zeichnung von H01 */
.hero-stage{height:clamp(420px,42vw,680px);position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#30353d 0%,#262a31 46%,#1c2026 100%);isolation:isolate;color:#c2cbd5}
.stage-grid{position:absolute;inset:-60px 0;background-image:linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px),linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:center;transform:translate3d(0,var(--drift,0px),0);opacity:0;transition:opacity .8s var(--ease);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 78%)}
.drawn .stage-grid{opacity:1}
.drawing{position:absolute;inset:7% 4% 9%;width:92%;height:84%;overflow:visible;transform:translate3d(var(--tx,0px),var(--ty,0px),0);will-change:transform}
.drawing .thin{fill:none;stroke:#aab6c4;stroke-width:1}
.drawing .ext{stroke:#8d99a8;stroke-opacity:.7}
.drawing .center{stroke:#6f7c8b;stroke-dasharray:22 5 3 5}
.drawing .dim{fill:none;stroke:#c7d0da;stroke-width:1.1}
.drawing .tick{fill:#c7d0da}
.drawing .label{font:500 15px/1 Host,Arial,sans-serif;fill:#d6dde5;letter-spacing:.02em;font-feature-settings:"tnum" 1}
.drawing .label-small{font:500 11px/1 Host,Arial,sans-serif;fill:#8e9aa8;letter-spacing:.12em;text-transform:uppercase}
.drawing .bar-fill{fill:#e9edf1}
.drawing .bar-line{fill:none;stroke:#e9edf1;stroke-width:1.4}
.drawing .arrow{fill:var(--blue-dark-bg)}
.drawing .callout{fill:none;stroke:var(--blue-dark-bg);stroke-width:1.2}
.drawing .hot .label,.drawing .label.hot{fill:#fff}
.drawing .dimset{transition:opacity .4s}
.drawing .dimset.hot .dim{stroke:var(--blue-dark-bg)}.drawing .dimset.hot .tick{fill:var(--blue-dark-bg)}.drawing .dimset.hot .label{fill:#fff}
/* Aufbau der Zeichnung: erst Achsen, dann Konturen, dann Flaechen, dann Masspfeil, dann Bemassung */
.js .drawing .draw{stroke-dasharray:1;stroke-dashoffset:1}
.js .drawing .bar-fill,.js .drawing .center{opacity:0}
.js .drawing .arrow{transform:scaleX(0);transform-box:fill-box;transform-origin:center}
.js .drawing .tick,.js .drawing .label,.js .drawing .label-small{opacity:0}
.drawn .drawing .draw{stroke-dashoffset:0;transition:stroke-dashoffset .85s var(--ease) var(--d,0s)}
.drawn .drawing .bar-fill{opacity:1;transition:opacity .6s var(--ease) .8s}.drawn .drawing .center{opacity:1;transition:opacity .6s var(--ease) var(--d,0s)}
.drawn .drawing .arrow{transform:scaleX(1);transition:transform .7s var(--ease) 1s}
.drawn .drawing .tick,.drawn .drawing .label,.drawn .drawing .label-small{opacity:1;transition:opacity .5s var(--ease) var(--d,1.5s)}
.crosshair{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s}.crosshair:before,.crosshair:after{content:'';position:absolute;background:#7f9cff;opacity:.38}.crosshair:before{left:0;right:0;height:1px;top:var(--cy,50%)}.crosshair:after{top:0;bottom:0;width:1px;left:var(--cx,50%)}.crosshair i{position:absolute;left:var(--cx,50%);top:var(--cy,50%);width:11px;height:11px;margin:-5px 0 0 -5px;border:1px solid #a9bdff}
.stage-active .crosshair{opacity:1}.stage-active{cursor:crosshair}
.stage-corner{position:absolute;z-index:2;font-size:10px;letter-spacing:.04em;line-height:1.5;color:#c2cbd5;pointer-events:none;font-feature-settings:"tnum" 1}.top-left{top:24px;left:28px}.top-right{top:24px;right:28px;display:flex;align-items:center;gap:10px}.bottom-left{bottom:24px;left:28px}.bottom-right{bottom:24px;right:28px;color:#9eabb9;text-align:right}.scene-dot{height:4px;width:4px;border-radius:50%;background:#608dff}.readout{display:none}.stage-active .readout{display:inline}.stage-active .stage-note{display:none}
.hero-foot{display:flex;justify-content:space-between;gap:25px;padding:22px 0 28px;font-size:10px;color:#74808c;letter-spacing:.015em}.hero-foot a{display:flex;gap:30px;color:#394953}.hero-foot a span{display:inline-block;transition:transform .4s var(--ease)}.hero-foot a:hover span{transform:translateY(5px)}

/* Abschnittsbeschriftung als Masskette */
.section-pad{padding:100px var(--pad)}.section-label{display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;line-height:1.5}.section-label>span:first-child{color:var(--blue);white-space:nowrap}.section-label>span:last-child{color:#7c8994;text-align:right}
.dimline{flex:1;height:9px;position:relative;min-width:40px;color:#b9c3cc}.dimline:before{content:'';position:absolute;left:0;right:0;top:4px;height:1px;background:currentColor}.dimline i{position:absolute;top:0;width:0;height:0;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent}.dimline i:first-child{left:0;border-right:9px solid currentColor}.dimline i:last-child{right:0;border-left:9px solid currentColor}
.light-label .dimline{color:#4a5763}
.motion-ready .dimline{transform:scaleX(0);transition:transform 1.4s var(--ease) .25s}.motion-ready .is-visible .dimline{transform:scaleX(1)}

/* 01 Anspruch */
.intro{padding-top:86px;padding-bottom:110px}.intro-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:11%;margin-top:57px}.intro h2{font-size:clamp(35px,3.8vw,63px)}.intro-text{padding-top:3px}.large-copy{font-size:24px;line-height:1.25;letter-spacing:-.035em}.intro-text>.large-copy{margin-bottom:23px}.intro-text>p:not(.large-copy){font-size:15px;line-height:1.7;color:#65717c}.intro-text>p+p{margin-top:14px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:88px}.fact{border-top:1px solid var(--line);padding-top:24px}.fact-number{display:block;font-size:clamp(54px,5vw,84px);font-weight:400;letter-spacing:-.07em;line-height:.95;font-feature-settings:"tnum" 1}.fact-number sup{font-size:.3em;letter-spacing:0;vertical-align:top;position:relative;top:.5em;margin-left:6px;color:var(--blue)}.fact p{margin-top:18px;font-size:14px;line-height:1.55;color:var(--text-2);max-width:270px}

/* 02 Leistungen */
.dark{background:var(--ink);color:var(--paper)}.expertise{padding:48px var(--pad) 90px}.light-label>span:first-child{color:#a9c0ff}.light-label>span:last-child{color:#8c9aa7}.expertise-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:14%;align-items:end;margin:60px 0 70px}.expertise-heading h2{font-size:clamp(50px,5.8vw,97px)}.expertise-heading p{font-size:16px;line-height:1.6;color:#9eacb9;max-width:300px;padding-bottom:5px}.service{border-top:1px solid #44515c}.service:last-child{border-bottom:1px solid #44515c}.service summary{list-style:none;display:flex;align-items:center;gap:44px;padding:29px 0;cursor:pointer}.service summary::-webkit-details-marker{display:none}.service-index{width:24px;font-size:10px;color:#93a2b0;flex-shrink:0;font-feature-settings:"tnum" 1}.service h3{font-size:clamp(27px,3vw,47px);font-weight:450;letter-spacing:-.045em;transition:color .3s}.service[open] h3,.service summary:hover h3{color:#b3c8ff}.service-toggle{width:25px;height:25px;position:relative;margin-left:auto;flex-shrink:0}.service-toggle:before,.service-toggle:after{content:'';width:19px;height:1px;position:absolute;top:12px;left:3px;background:#d3dee8;transition:transform .35s var(--ease)}.service-toggle:after{transform:rotate(90deg)}.service[open] .service-toggle:after{transform:rotate(0)}.service-body{margin-left:68px;padding:0 55px 35px 0;display:grid;grid-template-columns:1.5fr 1fr;gap:24px 10%;font-size:15px;color:#a9b5c0}.service-body p{line-height:1.65;max-width:510px}.tags{display:flex;flex-wrap:wrap;align-content:start;gap:7px;padding-top:5px}.tags li{padding:6px 10px;border:1px solid #4c5a66;color:#bac6d1;font-size:10px}.service-link{grid-column:1;text-align:left;width:max-content;max-width:100%;font-size:12px;color:#edf3f8;border-bottom:1px solid #6d7b89;padding-bottom:6px}

/* Schwerpunkt Fluid */
.fluid-section{display:grid;grid-template-columns:1fr 1fr;gap:11%;align-items:center;padding-top:110px;padding-bottom:110px}.fluid-art{position:relative;aspect-ratio:1/1.03;overflow:hidden}.fluid-art>svg{width:100%;height:100%}.fluid-art path{stroke-width:1.25}.fluid-art .flow{stroke-dasharray:1;stroke-dashoffset:0}.motion-ready .fluid-art .flow{stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--ease) var(--d,0s)}.motion-ready .fluid-art.is-visible .flow{stroke-dashoffset:0}.fluid-art-note{display:flex;justify-content:space-between;gap:20px;position:absolute;bottom:5px;left:15px;right:15px;font-size:10px;color:#75818b}.fluid-copy h2{font-size:clamp(37px,3.5vw,61px);margin:28px 0 31px;letter-spacing:-.05em;line-height:1.06}.fluid-copy>.large-copy{font-size:22px;max-width:400px;margin-bottom:20px}.fluid-copy>p:not(.eyebrow):not(.large-copy){font-size:15px;line-height:1.65;max-width:440px;color:var(--text-2);margin-top:17px}

/* 03 Branchen */
.sectors{background:var(--white)}.sectors-head{display:grid;grid-template-columns:1.35fr 1fr;gap:11%;align-items:end;margin-top:57px}.sectors-head h2{font-size:clamp(40px,4.2vw,72px)}.sectors-head p{font-size:15px;line-height:1.65;color:var(--text-2);max-width:360px;padding-bottom:5px}.sector-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:64px;border-left:1px solid var(--line)}.sector{position:relative;padding:26px 26px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-top:1px solid var(--line);margin-top:-1px;min-height:228px;display:flex;flex-direction:column;transition:background .4s var(--ease)}.sector:before{content:'';position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}.sector:hover{background:#f7f9fa}.sector:hover:before{transform:scaleX(1)}.sector-index{font-size:10px;color:var(--blue);letter-spacing:.06em;font-feature-settings:"tnum" 1}.sector h3{font-size:24px;letter-spacing:-.045em;margin:auto 0 12px;padding-top:40px;line-height:1.1}.sector p{font-size:13px;line-height:1.55;color:var(--text-2)}

/* 04 Arbeitsweise */
.process{background:var(--paper)}.process-title{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-top:53px}.process-title h2{font-size:clamp(42px,4.2vw,72px)}.process-title>p{max-width:300px;font-size:15px;color:var(--text-2)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:65px}.step-number{display:flex;justify-content:space-between;align-items:center;font-size:58px;font-weight:400;line-height:1;letter-spacing:-.06em;color:#b7c1cb;border-bottom:1px solid var(--line);padding-bottom:27px;font-feature-settings:"tnum" 1}.step-number span{font-size:23px;color:var(--blue)}.process-grid h3{font-size:27px;margin:26px 0 16px}.process-grid p{font-size:14px;color:#66727e;line-height:1.6;max-width:300px}.person-line{display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);padding-top:28px;margin-top:70px}.person-monogram{width:54px;height:54px;display:grid;place-items:center;background:var(--white)}.person-monogram svg{width:21px;height:23px}.person-line strong{display:block;font-size:14px;font-weight:600}.person-line>div>span{font-size:11px;color:#788593}.text-action{display:inline-flex;gap:24px;align-items:center;font-size:13px;font-weight:550}.text-action svg{height:19px;width:19px;transition:transform .4s var(--ease)}.text-action:hover svg{transform:translate(4px,-4px)}.person-line .text-action{margin-left:auto}

/* Kontakt */
.contact-section{background:var(--blue);color:white;padding:50px var(--pad) 48px}.contact-top{display:flex;justify-content:space-between;align-items:center;gap:30px}.contact-top .eyebrow{color:#d0dcff}.contact-mark{width:31px;height:34px;opacity:.8;flex-shrink:0}.big-contact{display:flex;width:100%;align-items:center;justify-content:space-between;gap:30px;text-align:left;padding:48px 0 56px}.big-contact>span:first-child{font-size:clamp(66px,9.5vw,158px);font-weight:500;line-height:.95;letter-spacing:-.065em}.big-contact-arrow{display:grid;place-items:center;border:1px solid #94b0ff;border-radius:50%;width:clamp(80px,11vw,180px);aspect-ratio:1;flex-shrink:0;transition:transform .7s var(--ease),background .4s}.big-contact-arrow svg{width:42%;height:42%}.big-contact:hover .big-contact-arrow{transform:rotate(45deg);background:#ffffff12}.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:35px;border-top:1px solid #7595ed;padding-top:27px}.contact-bottom p{font-size:14px;line-height:1.55;color:#d4e0ff}.contact-links{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.contact-mail{font-size:14px;letter-spacing:-.01em;border-bottom:1px solid #9db7ff;padding-bottom:5px}.contact-small{font-size:12px;padding-bottom:7px;border-bottom:1px solid #9db7ff}

/* Fuss */
.footer{padding:36px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:35px}.footer .brand{font-size:20px}.footer-meta{font-size:11px;color:#6c7985;line-height:1.7}.footer-meta span{color:#95a0aa}.footer-actions{display:flex;align-items:center;gap:26px;font-size:11px}.footer-actions a:hover{color:var(--blue)}.footer .lang{font-size:10px}

/* Rechtsseiten */
.legal{padding:70px var(--pad) 110px;display:grid;grid-template-columns:1fr 2.2fr;gap:8%}.legal h1{font-size:clamp(44px,5vw,84px);font-weight:550;letter-spacing:-.065em}.legal-body{max-width:720px;font-size:15px;line-height:1.7;color:#3b4650}.legal-body h2{font-size:22px;letter-spacing:-.035em;margin:44px 0 12px;color:var(--ink)}.legal-body h2:first-child{margin-top:0}.legal-body p+p{margin-top:12px}.legal-body a{border-bottom:1px solid #aab6c0}.legal-body a:hover{border-color:var(--blue);color:var(--blue)}.legal-body dl{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:8px 28px;margin-top:4px}.legal-body dt{color:#7c8994;font-size:13px;padding-top:2px}.legal-body ul{margin-top:10px}.legal-body li{padding-left:18px;position:relative;margin-top:6px}.legal-body li:before{content:'';position:absolute;left:0;top:.75em;width:8px;height:1px;background:var(--blue)}.legal-note{font-size:12px;color:#7c8994;margin-top:44px}

/* Dialog */
dialog{border:0;background:var(--paper);color:var(--ink);padding:48px;max-width:570px;width:calc(100% - 32px);max-height:90svh;overflow:auto}dialog::backdrop{background:#0e141db8}.dialog-close{position:absolute;right:25px;top:17px;font-size:29px;color:#70818e}dialog h2{font-size:42px;margin:22px 0 28px}form label{display:block;font-size:11px;letter-spacing:.02em;margin-bottom:17px}input,select,textarea{display:block;width:100%;border:0;border-bottom:1px solid #b7c1cb;border-radius:0;background:transparent;padding:8px 0;color:var(--ink);font-size:14px;margin-top:3px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue)}.form-submit{background:var(--blue);color:white;padding:15px 18px;display:flex;justify-content:space-between;width:100%;font-size:14px;margin-top:25px;transition:background .25s}.form-submit:hover{background:#113bbc}.form-note{font-size:10px;color:#7a8590;line-height:1.5;margin-top:13px}.result-lead{font-size:15px;line-height:1.55;margin-bottom:16px}.result-mail{display:inline-block;font-size:14px;border-bottom:1px solid var(--blue);color:var(--blue);margin-bottom:18px}.copy-status{font-size:12px;margin-top:14px;color:var(--blue)}.edit-inquiry{font-size:12px;text-decoration:underline;margin-top:16px}

/* 404 */
.notfound{padding:90px var(--pad) 130px}.notfound h1{font-size:clamp(56px,8vw,130px);font-weight:550;letter-spacing:-.07em;margin:28px 0 24px}.notfound p{color:var(--text-2);max-width:420px}

/* Bewegung: Inhalte bleiben ohne JS sichtbar */
.reveal{opacity:1;transform:none}.line-mask{display:block;overflow:hidden;padding-bottom:.13em;margin-bottom:-.13em}.line-inner{display:block}.motion-ready .reveal{opacity:0;transform:translate3d(0,38px,0);transition:opacity .95s var(--ease) var(--delay,0ms),transform 1.15s var(--ease) var(--delay,0ms)}.motion-ready .reveal[data-reveal=right]{transform:translate3d(48px,16px,0)}.motion-ready .split-title.reveal,.motion-ready .section-label.reveal,.motion-ready .fluid-art.reveal{opacity:1;transform:none}.motion-ready .split-title .line-inner{transform:translate3d(0,108%,0);transition:transform 1.1s var(--ease) calc(var(--delay,0ms) + var(--line-delay,0ms))}.motion-ready .section-label>span{opacity:0;transition:opacity .9s var(--ease) .1s}.motion-ready .section-label.is-visible>span{opacity:1}.motion-ready .media-reveal{transform:translate3d(0,45px,0) scale(.98);transform-origin:center bottom;transition:opacity 1s var(--ease) var(--delay,0ms),transform 1.3s var(--ease) var(--delay,0ms)}.motion-ready .reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}.motion-ready .split-title.is-visible .line-inner{transform:translate3d(0,0,0)}.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--blue);z-index:80;transform:scaleX(var(--reading,0));transform-origin:left;pointer-events:none}

@media(min-width:1750px){:root{--pad:max(88px,calc((100vw - 1560px)/2))}.hero-stage{height:660px}.hero h1{font-size:94px}}
@media(max-width:1180px){.sector-grid{grid-template-columns:repeat(2,1fr)}.sector{min-height:200px}}
@media(max-width:1100px){.header{gap:22px}.desktop-nav{gap:20px;font-size:12px}.brand{font-size:20px}.contact-nav{gap:15px;margin-left:0}.hero-heading-row{gap:3%;grid-template-columns:minmax(0,3.2fr) minmax(0,1fr)}.hero h1{font-size:5.45vw}.hero-intro p{font-size:12px}.hero-intro .underlink{font-size:11px;gap:15px}.hero-stage{height:440px}.fluid-section{gap:7%}.fluid-copy h2{font-size:36px}.service-body{gap:7%}.process-grid{gap:30px}.facts{gap:30px}}
@media(max-width:1000px){.header{height:86px}.desktop-nav,.contact-nav,.header>.lang{display:none}.menu-button{display:block;margin-left:auto;width:40px;height:40px;padding:10px 3px}.menu-button span{display:block;height:1px;background:var(--ink);margin:7px 0;transition:transform .35s var(--ease)}.menu-button[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.legal{grid-template-columns:1fr;gap:40px}}
@media(max-width:760px){:root{--pad:24px}.header{height:78px}.header .brand{font-size:20px}.mobile-nav{top:78px}.mobile-nav>a{font-size:30px}.hero{padding-top:31px}.hero-heading-row{display:block;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:.075em;gap:8px}.hero .eyebrow{font-size:8px}.hero h1{font-size:clamp(41px,7.7vw,58px);line-height:1.06;letter-spacing:-.06em;margin-top:20px}.hero h1>span{white-space:normal}.hero-intro{display:flex;max-width:none;align-items:flex-end;gap:22px;margin-top:24px}.hero-intro p{max-width:260px;font-size:12px}.hero-intro .underlink{white-space:nowrap;flex-shrink:0;font-size:11px;gap:12px}.hero-stage{height:clamp(330px,92vw,460px)}.drawing{inset:12% 2% 13%;width:96%;height:75%}.stage-grid{background-size:80px 80px,80px 80px,16px 16px,16px 16px}.stage-corner{font-size:8px}.top-left{top:17px;left:17px}.top-right{top:17px;right:17px}.bottom-left{bottom:17px;left:17px}.bottom-right{bottom:17px;right:17px;max-width:110px}.hero-foot{font-size:8px;padding:18px 0 23px;gap:20px}.hero-foot>span{max-width:57%;line-height:1.5}.hero-foot a{gap:9px;max-width:35%;text-align:right;align-items:center}.section-pad{padding-top:65px;padding-bottom:65px}.section-label{font-size:9px;gap:12px}.section-label>span:last-child{max-width:40%}.dimline{min-width:24px}.intro{padding-top:49px;padding-bottom:65px}.intro-grid{grid-template-columns:1fr;gap:28px;margin-top:38px}.intro h2{font-size:clamp(34px,7.7vw,48px)}.intro-text>.large-copy{font-size:22px;max-width:330px;margin-bottom:17px}.intro-text>p:not(.large-copy){font-size:14px;max-width:430px}.facts{grid-template-columns:1fr;gap:0;margin-top:48px}.fact{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:baseline;padding:20px 0}.fact-number{font-size:46px}.fact p{margin-top:0;font-size:13px}.expertise{padding:33px var(--pad) 57px}.expertise-heading{display:block;margin:40px 0}.expertise-heading h2{font-size:50px}.expertise-heading p{font-size:13px;max-width:285px;margin-top:25px}.service summary{padding:24px 0;gap:13px}.service-index{font-size:9px;width:18px}.service h3{font-size:clamp(21px,4.8vw,31px);line-height:1.15}.service-toggle{width:20px}.service-body{margin-left:31px;padding:0 0 26px;grid-template-columns:1fr;gap:20px;font-size:13px}.tags li{font-size:9px}.service-link{font-size:11px}.fluid-section{grid-template-columns:1fr;gap:32px}.fluid-art{order:2;max-height:340px;max-width:450px;width:100%;justify-self:center;aspect-ratio:1.35}.fluid-art-note{left:0;right:0}.fluid-copy h2{font-size:clamp(37px,8vw,54px);margin:26px 0}.fluid-copy>.large-copy{font-size:22px}.fluid-copy>p:not(.eyebrow):not(.large-copy){font-size:14px}.sectors-head{grid-template-columns:1fr;gap:24px;margin-top:38px}.sectors-head p{font-size:14px}.sector-grid{grid-template-columns:1fr;margin-top:40px;border-left:0}.sector{border-right:0;min-height:0;padding:22px 0 24px;display:grid;grid-template-columns:34px 1fr;gap:4px 12px}.sector:before{left:0;right:0}.sector:hover{background:none}.sector-index{grid-row:1/3;padding-top:5px}.sector h3{padding-top:0;margin:0 0 6px;font-size:22px}.process-title{display:block;margin-top:39px}.process-title h2{font-size:43px}.process-title>p{font-size:14px;margin-top:26px;max-width:330px}.process-grid{grid-template-columns:1fr;gap:31px;margin-top:44px}.process-grid article{display:grid;grid-template-columns:58px 1fr;gap:0 23px;border-top:1px solid var(--line);padding-top:25px}.step-number{grid-row:1/3;font-size:42px;display:block;border:0;padding:0}.step-number span{display:none}.process-grid h3{font-size:24px;margin:0 0 12px}.process-grid p{font-size:13px}.person-line{margin-top:45px;gap:14px;flex-wrap:wrap}.person-line strong{font-size:13px}.person-line>div>span{font-size:10px}.person-line .text-action{margin:8px 0 0 68px;font-size:12px}.contact-section{padding:35px var(--pad) 38px}.contact-top .eyebrow{font-size:9px;max-width:250px}.contact-mark{width:24px;height:26px}.big-contact{padding:39px 0 44px;gap:15px}.big-contact>span:first-child{font-size:clamp(59px,13.5vw,95px)}.big-contact-arrow{width:70px}.contact-bottom{gap:25px;align-items:flex-start;flex-direction:column}.contact-bottom p{font-size:12px;max-width:260px}.contact-links{align-items:flex-start}.contact-mail{font-size:13px;word-break:break-all}.footer{display:grid;grid-template-columns:1fr;gap:20px;padding-top:30px;padding-bottom:34px}.footer .brand{font-size:19px}.footer-meta{font-size:10px}.footer-actions{flex-wrap:wrap;gap:16px 22px;font-size:11px}.legal{padding-top:40px;padding-bottom:70px}.legal-body{font-size:14px}.legal-body dl{grid-template-columns:1fr;gap:2px}.legal-body dd{margin-bottom:10px}dialog{padding:35px 25px}dialog h2{font-size:38px}.motion-ready .reveal{transform:translate3d(0,26px,0)}.motion-ready .reveal[data-reveal=right]{transform:translate3d(0,26px,0)}.motion-ready .reveal.is-visible{transform:translate3d(0,0,0)}}
@media(max-width:390px){.hero-intro{display:block}.hero-intro p{max-width:290px;font-size:13px}.hero-intro .underlink{margin-top:16px}.hero h1{font-size:40px}.header .brand{font-size:18px}.big-contact-arrow{width:53px}.big-contact>span:first-child{font-size:56px}.stage-corner.bottom-right{max-width:84px}.person-line>div>span{max-width:210px;display:block}.fact{grid-template-columns:92px 1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal,.motion-ready .split-title .line-inner,.motion-ready .section-label>span{opacity:1!important;transform:none!important}.motion-ready .dimline{transform:none!important}.js .drawing .draw{stroke-dashoffset:0!important}.js .drawing .bar-fill,.js .drawing .center,.js .drawing .tick,.js .drawing .label,.js .drawing .label-small{opacity:1!important}.js .drawing .arrow{transform:none!important}.stage-grid{opacity:1!important;transform:none!important}.motion-ready .fluid-art .flow{stroke-dashoffset:0!important}}
