@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--paper:#f7f8f3;--ink:#242b29;--muted:#727970;--blue:#3156df;--line:#dce0d7;--green:#e7ecdf}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #718bed;outline-offset:5px}.wrap{max-width:1280px;width:calc(100% - 112px);margin:auto}header{height:100px;border-bottom:1px solid var(--line)}.nav{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;font:800 23px/.95 'Manrope',sans-serif;letter-spacing:1.1px}.brand small{display:block;font:600 8px/1 sans-serif;letter-spacing:3.35px;margin-top:7px}.brand-icon{display:flex;align-items:center;justify-content:center;color:var(--blue);font-size:43px;font-style:italic;letter-spacing:-7px;margin-right:8px;transform:skew(-7deg)}nav{display:flex;gap:35px;font-size:13px}nav a:hover{color:var(--blue)}.nav-cta{font-size:13px;border:1px solid #bdc3b8;padding:11px 18px;border-radius:4px;display:flex;gap:28px}.nav-cta:hover{background:var(--green)}.hero{display:grid;grid-template-columns:1fr 1.08fr;gap:42px;align-items:center;padding-top:65px;padding-bottom:58px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.6px;margin:0 0 22px;display:flex;align-items:center;gap:9px}.status-dot{display:inline-block;height:6px;width:6px;background:var(--blue);border-radius:50%;flex:none}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:'Manrope',Arial,sans-serif}h1{font-size:clamp(40px,4.2vw,62px);font-weight:500;line-height:1.13;letter-spacing:-2.6px;margin-bottom:24px}h1 em{font-style:normal;color:var(--blue)}.hero-intro{font-size:14px;line-height:1.85;color:#6b726c;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:25px}.button{border:0;color:white;background:var(--blue);padding:14px 21px;border-radius:3px;font-size:12px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;transition:background .2s}.button:hover{background:#2240b6}.button span{font-size:18px}.text-link{display:inline-flex;align-items:center;gap:24px;font-size:12px;font-weight:600}.text-link:hover{color:var(--blue)}.hero-trust{display:flex;align-items:center;gap:8px;font-size:10px;margin-top:37px;color:#5a625a}.german-flag{width:17px;height:11px;background:linear-gradient(#252626 0 33%,#ba524b 33% 66%,#d5ae5c 66%);display:inline-block;border-radius:1px}.divider{height:14px;width:1px;background:#cbd1c5;margin:0 11px}.sw{font-weight:700;font-style:italic;color:#8b5247}.hero-visual{background:#e9ede3;border:1px solid #d9e0d2;border-radius:5px;position:relative;overflow:hidden}.visual-top,.visual-bottom{display:flex;justify-content:space-between;font:8px/1.5 monospace;letter-spacing:1px;padding:20px 23px;color:#6f7c6a}.visual-top{position:absolute;top:0;left:0;right:0}.visual-bottom{position:relative}.visual-bottom i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#718268;margin-right:7px}.cad{display:block;width:100%;height:auto}.hero-visual>.cad{padding:33px 5px 5px}.trust-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.trust-strip>.wrap{min-height:75px;display:flex;justify-content:space-between;align-items:center;gap:20px}.trust-strip span{font-size:8px;letter-spacing:1.4px;color:#848a80}.trust-strip p{font-size:12px;margin:0}.trust-strip b{color:#a0aa98;font-weight:400}.services,.approach,.contact{padding-top:86px;padding-bottom:86px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:35px}.section-heading h2{margin:0}h2{font-size:37px;line-height:1.23;letter-spacing:-1.5px;font-weight:500}.section-heading>p{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:4px}.section-heading .eyebrow{margin-bottom:14px;color:var(--muted)}.service-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #cbd3c4;margin-bottom:29px}.service-tabs button{display:flex;gap:14px;padding:18px 0;color:#737c6e;background:transparent;border:0;border-bottom:2px solid transparent;font-size:12px;text-align:left;white-space:nowrap}.service-tabs button span{font:9px monospace;opacity:.65;align-self:center}.service-tabs button[aria-selected=true]{color:var(--blue);border-bottom-color:var(--blue)}.service-panel{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:5px;overflow:hidden}.service-art{background:#e9ede4;position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;overflow:hidden}.service-art svg{width:87%;max-height:350px;transition:transform .5s}.service-art[data-view="1"] svg{transform:rotate(-5deg) scale(.95)}.service-art[data-view="2"] svg{filter:grayscale(1);transform:scale(.9)}.service-art[data-view="3"] svg{transform:rotate(5deg) scale(1.04)}.art-caption{font:8px monospace;letter-spacing:1.2px;color:#7c8973;padding:14px}.service-copy{padding:35px 40px 22px}.service-copy .eyebrow{color:var(--muted);font-size:9px;margin-bottom:14px}.service-copy h3{font-weight:500;font-size:31px;letter-spacing:-1px;margin-bottom:15px}.service-copy h4{font-size:14px;font-weight:500;margin-bottom:10px}.service-copy>p:not(.eyebrow){color:var(--muted);font-size:12px;max-width:360px}.tags{display:flex;gap:6px;flex-wrap:wrap;margin:23px 0}.tags span{border:1px solid #d9dfd2;border-radius:3px;padding:4px 8px;font-size:9px;color:#70796a}.service-copy>.text-link{color:var(--blue)}.carousel-controls{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:17px;border-top:1px solid var(--line);font:10px monospace}.carousel-controls span span{color:#9aa092}.carousel-controls button{background:none;border:1px solid #d2d8ca;border-radius:50%;width:29px;height:29px;margin-left:7px}.carousel-controls button:hover{background:var(--green)}.portfolio{padding:70px 0 80px;background:#edf0e8;border-block:1px solid var(--line)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.project-card{text-align:left;border:0;background:none;padding:0;color:inherit}.project-image{background:#e2e8da;position:relative;overflow:hidden;border-radius:4px;margin-bottom:22px;border:1px solid #d4ddcc}.project-image svg{height:250px;transition:transform .4s}.project-card:hover svg{transform:scale(1.07)}.project-1{background:#dde4df}.project-1 svg{transform:rotateY(180deg);filter:grayscale(.4)}.project-1:hover svg{transform:rotateY(180deg) scale(1.07)}.project-2{background:#e9ebe2}.project-2 svg{filter:grayscale(1);opacity:.75}.project-open{position:absolute;bottom:14px;right:14px;background:#f7f8f3;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.project-card .eyebrow{font-size:8px;margin-bottom:10px;color:#7b8574}.project-card h3{font-size:17px;font-weight:500;letter-spacing:-.5px;margin-bottom:7px}.project-card>p:last-of-type{font-size:10px;color:#85907f;display:flex;justify-content:space-between}.approach{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-bottom:1px solid var(--line)}.approach>div>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:390px}.made{font-size:11px;display:flex;gap:10px;align-items:center;margin-top:28px}.steps>div{display:flex;gap:24px;padding:21px 0;border-bottom:1px solid var(--line);align-items:flex-start;font-size:18px}.steps>div:first-child{padding-top:0}.steps>div>span{font:11px monospace;color:var(--blue);margin-top:8px}.steps article{flex:1}.steps h3{font-size:18px;font-weight:500;margin-bottom:7px}.steps p{font-size:12px;color:var(--muted);margin:0;max-width:350px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:85px}.contact h2{font-size:42px}.contact>div>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:350px}.email{display:inline-flex;gap:35px;align-items:center;margin-top:13px;font-size:20px;letter-spacing:-.5px;border-bottom:1px solid #bac5ae;padding-bottom:6px}.contact-note{font-size:10px;display:flex;gap:8px;align-items:center;margin-top:45px;color:#7e8877}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:11px;margin-bottom:15px}label>span{color:#9aa08f}input,textarea,select{display:block;width:100%;border:1px solid #d3dacb;background:#fbfcf8;border-radius:3px;padding:11px 12px;font-size:12px;color:var(--ink);margin-top:6px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#a0a699}.form-note{font-size:10px;color:var(--muted);line-height:1.8}.contact form>.button{width:100%}#form-status{font-size:12px;color:var(--blue);margin-top:10px}footer{padding:35px 0 28px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}footer .brand{font-size:18px}footer .brand-icon{font-size:32px}footer .brand small{font-size:6px;letter-spacing:2.7px}footer p{font-size:10px;color:var(--muted);margin:15px 0 0}footer a:not(.brand){font-size:11px}.top{align-self:flex-end}dialog{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:50px;max-width:580px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#1e2b24aa;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:15px;top:10px;background:none;border:0;font-size:28px}.detail-hero{padding-top:40px;padding-bottom:60px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:45px}.detail-grid p:not(.eyebrow){color:var(--muted);max-width:460px}.detail-grid h3{font-weight:500}.deliverables{padding:65px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:70px}.deliverables p{color:var(--muted)}.deliverables>div:last-child>p{border-bottom:1px solid var(--line);padding:14px 0;display:flex;gap:20px;font-size:14px}.deliverables p span{color:var(--blue);font:12px monospace}.deliverables small{color:var(--muted)}.detail-cta{background:var(--green);padding:40px;margin-bottom:60px;display:flex;align-items:center;justify-content:space-between;gap:40px}.detail-cta h2{font-size:28px;margin:0;max-width:500px}.skip{position:fixed;top:-100px;background:white;z-index:20;padding:15px}.skip:focus{top:0}@media(min-width:1500px){.hero{padding-block:85px}.hero h1{font-size:65px}}@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{gap:25px}.hero-actions{gap:15px}.hero-actions .button{gap:15px}.hero-actions .text-link{font-size:11px;gap:8px}h1{font-size:45px}.service-tabs button{font-size:10px;gap:7px}.service-copy{padding:28px}.contact{gap:45px}.project-image svg{height:210px}}@media(max-width:760px){.wrap{width:calc(100% - 40px)}header{height:80px}.brand{font-size:20px}.brand-icon{font-size:35px}.brand small{font-size:7px}nav{display:none}.nav-cta{font-size:10px;padding:9px 11px;gap:12px}.hero{grid-template-columns:1fr;padding-top:42px;padding-bottom:35px;gap:35px}h1{font-size:49px;letter-spacing:-2px}.hero-intro{font-size:14px}.hero-actions{gap:25px}.hero-trust{margin-top:25px}.hero-visual{max-width:600px}.trust-strip>.wrap{display:flex;flex-wrap:wrap;justify-content:center;padding-block:18px;gap:9px 15px}.trust-strip span{width:100%;text-align:center}.trust-strip p{font-size:9px}.trust-strip b{font-size:10px}.services,.approach,.contact{padding-block:55px}.section-heading{display:block}.section-heading>p{margin:18px 0 0}h2{font-size:31px}.service-tabs{grid-template-columns:1fr 1fr;gap:0 14px}.service-tabs button{font-size:11px;padding:13px 0}.service-panel{grid-template-columns:1fr}.service-art svg{max-height:280px;width:85%}.service-copy{padding:28px}.portfolio{padding:50px 0}.project-grid{grid-template-columns:1fr;gap:27px}.project-image svg{height:auto;max-height:290px}.project-card h3{font-size:20px}.approach,.contact{grid-template-columns:1fr;gap:35px}.contact h2{font-size:35px}.contact-note{margin-top:25px}.steps>div:first-child{padding-top:10px}footer{flex-wrap:wrap;gap:25px}.top{display:none}dialog{padding:40px 25px}.detail-grid,.deliverables{grid-template-columns:1fr;gap:30px}.detail-grid h1{font-size:44px}.detail-cta{padding:25px;display:block}.detail-cta h2{margin-bottom:24px}.detail-hero{padding-top:25px}.deliverables{padding-block:40px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Readable content sizes and contrast across desktop and mobile. */
:root{--muted:#535d50}
body{font-size:16px;line-height:1.7}
.hero-intro,.section-heading>p,.service-copy>p:not(.eyebrow),.approach>div>p:not(.eyebrow),.steps p,.contact>div>p:not(.eyebrow),.deliverables>div:last-child>p{font-size:16px;line-height:1.8;color:var(--muted)}
.hero-intro{font-size:17px}
.service-copy>p:not(.eyebrow),.steps p,.contact>div>p:not(.eyebrow){max-width:42ch}
.eyebrow,.section-heading .eyebrow,.service-copy .eyebrow,.project-card .eyebrow{font-size:12px;letter-spacing:1.3px;color:var(--muted)}
.service-copy h4{font-size:18px;line-height:1.5}
.project-card h3,.steps h3{font-size:21px;line-height:1.45}
nav,.nav-cta,.button,.text-link,.hero-actions .text-link{font-size:15px}
.hero-actions{flex-wrap:wrap;gap:18px 25px}
.hero-trust,.made,.contact-note,.project-card>p:last-of-type,footer p,footer a:not(.brand),.form-note,.deliverables small{font-size:14px;color:var(--muted)}
.hero-trust{flex-wrap:wrap;row-gap:10px}
.trust-strip span{font-size:11px;color:var(--muted)}
.trust-strip p{font-size:14px}
.trust-strip>.wrap{flex-wrap:wrap;padding-block:20px;gap:15px}
.service-tabs button{font-size:15px;font-weight:500;color:var(--muted);white-space:normal;line-height:1.5;align-items:center;padding-right:12px}
.service-tabs button span{font-size:12px;opacity:1}
.tags span{font-size:13px;color:var(--muted);padding:5px 9px}
.carousel-controls{font-size:13px}
.carousel-controls span span{color:var(--muted)}
.carousel-controls button{width:40px;height:40px;font-size:18px}
.visual-top,.visual-bottom,.art-caption{font-size:10px;color:#52634b;letter-spacing:.6px}
label{font-size:15px;font-weight:500}
label>span{color:var(--muted)}
input,textarea,select{font-size:16px;line-height:1.5;font-weight:400}
input::placeholder,textarea::placeholder{color:#626b5b;opacity:1}
#form-status{font-size:14px}
@media(max-width:1100px){.service-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}}
@media(max-width:760px){.nav-cta{font-size:13px;gap:10px}.hero-actions{gap:18px}.hero-trust{font-size:13px;gap:7px}.hero-trust .divider{margin-inline:3px}.trust-strip p{font-size:14px}.trust-strip b{display:none}.trust-strip>.wrap{align-items:center;flex-direction:column;gap:8px}.service-tabs button{font-size:14px}.form-row{grid-template-columns:1fr;gap:0}.visual-top,.visual-bottom{gap:12px;flex-wrap:wrap}.contact-note{font-size:14px}}

/* Language links stay visible at every screen size. */
.nav{gap:22px}.language-switch{display:flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap;margin-left:auto}.language-switch a{padding:9px 0;color:var(--muted)}.language-switch a[aria-current="page"]{color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:5px}.language-switch span{color:var(--muted)}.nav nav{gap:24px;margin-left:auto}.nav-cta{flex-shrink:0}.service-tabs button{overflow-wrap:anywhere}.project-card h3{overflow-wrap:anywhere}
@media(max-width:1100px){.nav nav{gap:16px}.nav{gap:15px}.nav-cta{font-size:13px;padding-inline:12px;gap:12px}.language-switch{font-size:13px}}
@media(max-width:900px){.nav nav{display:none}}
@media(max-width:600px){header{height:auto;min-height:112px}.nav{display:grid;grid-template-columns:1fr auto;padding-block:15px;gap:10px 15px}.nav .brand{grid-column:1;grid-row:1}.language-switch{grid-column:2;grid-row:1;margin:0;font-size:13px}.nav-cta{grid-column:1/-1;justify-self:end;padding:6px 10px}.hero h1{font-size:clamp(37px,10.5vw,49px)}.service-copy{padding:25px}.visual-top{position:relative;padding-bottom:0}.hero-visual>.cad{padding-top:10px}}

.language-switch a{display:inline-flex;align-items:center;gap:6px}
.language-flag{display:inline-block;flex:none;width:18px;height:12px;border-radius:1px;box-shadow:0 0 0 1px #242b291a;overflow:hidden}
.flag-de{background:linear-gradient(#202020 0 33.333%,#c9363e 33.333% 66.666%,#e6b83e 66.666%)}

/* Supplied transparent logo: fit the visible artwork without altering the image. */
.brand{--logo-width:190px;position:relative;display:block;flex:none;width:var(--logo-width);height:calc(var(--logo-width) * 322 / 906);overflow:hidden;mix-blend-mode:normal}
.brand-image{position:absolute;display:block;width:calc(var(--logo-width) * 960 / 906);height:auto;max-width:none;top:calc(var(--logo-width) * -109 / 906);left:calc(var(--logo-width) * -27 / 906)}
footer .brand{--logo-width:165px}
@media(max-width:600px){.nav .brand{--logo-width:160px}}

/* Service navigation is centered on either side of the illustration. */
.service-art .carousel-controls{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);justify-content:space-between;gap:8px;margin:0;padding:0 16px;border:0;pointer-events:none}
.service-art .carousel-controls button{margin-left:0;flex-shrink:0;background:var(--paper);pointer-events:auto}
.service-art .carousel-controls button:hover{background:var(--green)}

/* Company pages and navigation. */
header{height:auto;min-height:100px}.nav{flex-wrap:wrap;padding-block:16px}.nav nav{gap:18px;font-size:14px}.nav nav a{white-space:nowrap}
footer{flex-wrap:wrap;gap:28px}.footer-links{display:flex;flex-wrap:wrap;gap:16px}.footer-links a{color:var(--ink)!important}
.company-hero{padding-block:75px 55px}.company-hero h1{color:var(--blue)}.company-hero h2{max-width:760px}.company-hero>p:not(.eyebrow){max-width:720px;color:var(--muted);font-size:18px}
.jobs{padding-bottom:65px}.job-count,.job-index{font:14px monospace;color:var(--blue)}.job-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.job-card{border:1px solid var(--line);padding:34px;background:#fbfcf8;border-radius:5px;display:flex;flex-direction:column}.job-card h3{font-size:28px;font-weight:500;margin:14px 0 10px;letter-spacing:-.8px}.job-card h4{font-size:15px;margin:12px 0 6px}.job-card p{color:var(--muted)}.job-card .job-intro{font-size:18px;color:var(--ink)}.job-card .text-link{margin-top:auto;padding-top:20px;color:var(--blue)}.application-note{max-width:800px;margin-top:30px;color:var(--muted);font-size:14px}
.legal-notice{padding:24px;border-left:3px solid var(--blue);background:var(--green);max-width:800px}.legal-notice p{margin:8px 0 0}.legal-details{padding-bottom:70px}.legal-details dl{max-width:800px}.legal-details dt{font-weight:600;margin-top:24px}.legal-details dd{margin:6px 0 0;padding-bottom:20px;border-bottom:1px solid var(--line);color:var(--muted)}.legal-details dd p{margin:8px 0 0}.legal-details a{overflow-wrap:anywhere;text-decoration:underline}
@media(max-width:1200px){.nav nav{order:4;width:100%;justify-content:center;margin:0}.nav-cta{margin-left:auto}.language-switch{margin-left:auto}}
@media(max-width:900px){.nav nav{display:flex;flex-wrap:wrap}}
@media(max-width:600px){.nav nav{grid-column:1/-1;grid-row:3;gap:10px 18px;justify-content:flex-start}.company-hero{padding-block:45px 30px}.company-hero h1{font-size:44px}.company-hero h2{font-size:28px}.job-grid{grid-template-columns:1fr}.job-card{padding:24px}.job-card h3{font-size:25px}.footer-links{width:100%}}

/* Shared social icons in the header and footer. */
.social-links{display:flex;align-items:center;gap:6px;flex-shrink:0}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;color:var(--ink)}
a.social-icon:hover{color:var(--blue);border-color:var(--blue);background:var(--green)}
.social-icon svg{display:block}.software-name{white-space:nowrap}
@media(max-width:600px){.nav .social-links{grid-column:1/-1;grid-row:2;justify-self:end}.nav{gap:8px 15px}}
.eoat-visual{background:radial-gradient(ellipse at 50% 40%,#f5f7f2,#e5ebe1);min-width:0}.eoat-heading{display:flex;justify-content:space-between;gap:12px;padding:22px 24px 0;font:10px/1.5 monospace;letter-spacing:1px;color:#52634b}.eoat-stage{height:350px;position:relative;background-image:linear-gradient(#61766009 1px,transparent 1px),linear-gradient(90deg,#61766009 1px,transparent 1px);background-size:28px 28px}.eoat-stage canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y;outline-offset:-5px}.eoat-stage canvas.is-dragging{cursor:grabbing}.eoat-stage canvas:focus-visible{outline:2px solid var(--blue)}.eoat-stage-note{position:absolute;left:24px;bottom:10px;font:9px monospace;letter-spacing:1.2px;color:#65715f;pointer-events:none}.eoat-fallback{text-align:center;font-size:12px}.eoat-fallback svg{height:290px;max-width:100%}.eoat-caption{display:flex;justify-content:space-between;align-items:center;padding:16px 24px 18px;gap:15px}.eoat-caption h2{font-size:25px;letter-spacing:-.8px;margin:0 0 4px}.eoat-caption p{font-size:12px;color:#5c695d;margin:0}.eoat-badge{border:1px solid #bfcab8;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font:11px monospace}.eoat-controls{border-top:1px solid #cfd8c8;padding:16px 24px;background:#f5f7f080}.eoat-grip{display:flex;align-items:center;gap:14px}.eoat-grip label{font-size:12px;white-space:nowrap;margin:0}.eoat-grip input{flex:1;min-width:50px;width:100%;padding:0;margin:0;accent-color:var(--blue);cursor:pointer;height:22px}.eoat-grip output{font:11px monospace;min-width:34px;text-align:right}.eoat-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.eoat-toolbar p{font-size:10px;color:#5c695d;margin:0;max-width:210px}.eoat-toolbar>div{display:flex;gap:6px}.eoat-toolbar button{border:1px solid #c8d1c2;background:#f7f8f3;border-radius:4px;padding:5px 10px;min-width:32px;min-height:32px;font-size:12px;color:var(--ink)}.eoat-toolbar button:hover{border-color:var(--blue);color:var(--blue)}.eoat-visual [hidden]{display:none!important}@media(max-width:1100px){.eoat-heading{font-size:9px;padding-inline:18px}.eoat-stage{height:310px}.eoat-controls,.eoat-caption{padding-inline:18px}.eoat-toolbar{align-items:flex-start}}@media(max-width:760px){.eoat-stage{height:340px}}@media(max-width:380px){.eoat-stage{height:290px}.eoat-caption h2{font-size:22px}.eoat-toolbar{flex-wrap:wrap}.eoat-heading{letter-spacing:.3px}}

/* Scroll-driven CAD assembly study. */
.eoat-scroll-track.is-interactive{position:relative}.eoat-scroll-track.is-interactive>.hero{position:sticky;padding-top:28px;padding-bottom:28px}.eoat-visual{background:linear-gradient(160deg,#f8fafc 0%,#e5ebf3 60%,#d6e0ed 100%);border-color:#bdc8d6;border-radius:5px;box-shadow:0 16px 40px #24364f0b}.eoat-heading{padding:12px 16px;background:#f7f8fa;color:#465267;align-items:center;font-size:9px;letter-spacing:.5px;border-bottom:1px solid #cdd5df}.eoat-heading>span:first-child{display:flex;align-items:center;gap:8px}.cad-mark{background:#b32f31;color:white;font:bold italic 15px Georgia;padding:2px 6px;border-radius:3px}.cad-ribbon{display:flex;justify-content:space-between;gap:8px;padding:7px 16px;background:#edf0f4;border-bottom:1px solid #cbd4de;color:#596575;font:10px/1.5 monospace}.eoat-stage{height:340px;background-image:linear-gradient(#6b819a08 1px,transparent 1px),linear-gradient(90deg,#6b819a08 1px,transparent 1px)}.eoat-stage-note{color:#5d6e83;font-size:9px;left:16px}.eoat-caption{padding:12px 18px}.eoat-caption h2{font-size:24px}.eoat-caption p{font-size:11px;color:#596575}.eoat-badge{border-color:#aebccc;color:#55657b}.eoat-controls{background:#f5f7fa;border-top-color:#c8d2de;padding:12px 18px}.eoat-grip input{accent-color:#b32f31}.eoat-toolbar{margin-top:8px}.eoat-toolbar p{color:#586779;font-size:10px}.eoat-toolbar button{background:#fff;border-color:#c8d2de;min-height:32px}.eoat-toolbar button:hover{color:#b32f31;border-color:#b32f31}.eoat-parts{display:flex;flex-wrap:wrap;gap:5px 14px;padding:10px 18px;border-top:1px solid #c8d2de;background:#edf1f6;font:9px/1.7 monospace;color:#536176}.eoat-parts span{white-space:nowrap}@media(max-width:1100px){.eoat-stage{height:300px}.eoat-caption h2{font-size:21px}.eoat-toolbar{flex-wrap:wrap}.eoat-toolbar>div{margin-left:auto}}@media(max-width:760px){.eoat-scroll-track.is-interactive>.hero{padding-top:36px;padding-bottom:16px}.eoat-stage{height:300px}.eoat-heading{font-size:8px}.eoat-caption h2{font-size:23px}.eoat-parts{font-size:9px}.cad-ribbon{font-size:9px}}@media(max-height:700px) and (min-width:761px){.eoat-stage{height:240px}.eoat-caption{padding-block:8px}.eoat-scroll-track.is-interactive>.hero{padding-block:12px}}

.eoat-grip input{accent-color:var(--blue);height:30px}.cad-mark{background:#168cb9}.eoat-timeline{display:flex;justify-content:space-between;margin:5px 0 12px;font:10px monospace;color:#5a6e83}.eoat-toolbar button:hover{color:#168cb9;border-color:#168cb9}.eoat-stage{background-color:#dfe8f0}.eoat-caption p{max-width:330px}

/* Distinct service illustrations share a consistent responsive frame. */
.service-image{display:block;width:100%;height:auto;object-fit:contain}.service-art .service-image{width:100%;max-height:350px}.detail-grid .service-image{aspect-ratio:640/470}@media(max-width:760px){.service-art .service-image{max-height:280px}}

/* Six services fit in three columns, with room for longer names. */
.service-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}.service-tabs button{min-width:0;white-space:normal;overflow-wrap:normal;align-items:center}@media(max-width:760px){.service-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}}


/* Company name uses the same typography as the hero headline. */
.hero-blue-h{color:var(--blue)}.hero-company-line{font:inherit;letter-spacing:inherit}

.hero h1 em{color:#000}

/* Engineering workflow page. */
.approach-process-link{margin-top:26px}.workflow-hero{padding-block:48px 34px}.workflow-hero>.text-link{margin-bottom:36px;color:var(--muted)}.workflow-hero h1{max-width:900px;margin-bottom:20px}.workflow-intro{font-size:18px;color:var(--muted);max-width:65ch}.workflow-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:30px}.workflow-nav a{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:5px;font-size:14px;line-height:1.5;background:#eef1e9}.workflow-nav a:hover{border-color:var(--blue);color:var(--blue)}.workflow-nav span{font:12px/1.7 monospace;color:var(--blue);flex:none}.workflow-stage{padding:40px 0;border-top:1px solid var(--line);scroll-margin-top:25px}.workflow-stage-header{display:grid;grid-template-columns:75px minmax(0,1fr);gap:22px}.workflow-number{font:500 42px/1.2 Manrope,Arial,sans-serif;letter-spacing:-2px;color:var(--blue)}.workflow-stage-header .eyebrow{margin-bottom:9px}.workflow-stage-header h2{font-size:30px;max-width:900px;margin-bottom:18px}.workflow-stage-header p:last-child{font-size:16px;color:var(--muted);max-width:85ch;margin-bottom:0}.workflow-package{margin:26px 0 0 97px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fbfcf8}.workflow-package h3{padding:17px 20px;margin:0;font-size:17px;font-weight:600;background:#edf1e7;border-bottom:1px solid var(--line);letter-spacing:-.3px}.workflow-table-scroll{overflow-x:auto}.workflow-package table{border-collapse:collapse;width:100%;min-width:620px;text-align:left;font-size:14px}.workflow-package th,.workflow-package td{padding:16px 20px;vertical-align:top;border-bottom:1px solid var(--line)}.workflow-package thead th{font-size:12px;font-weight:600;color:var(--muted)}.workflow-package tbody th{width:25%;font-weight:600}.workflow-package tbody td:nth-child(2){color:var(--muted);width:53%}.workflow-package tr:last-child th,.workflow-package tr:last-child td{border-bottom:0}.workflow-file{font:12px/1.7 monospace;color:var(--blue);white-space:nowrap}.workflow-scope{margin:8px 0 45px;color:var(--muted);font-size:13px}@media(max-width:900px){.workflow-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-package{margin-left:0}}@media(max-width:600px){.workflow-hero{padding-block:30px}.workflow-hero h1{font-size:40px}.workflow-nav{grid-template-columns:1fr}.workflow-stage{padding-block:30px}.workflow-stage-header{grid-template-columns:42px minmax(0,1fr);gap:14px}.workflow-number{font-size:30px}.workflow-stage-header h2{font-size:25px}.workflow-package h3{padding:16px}.workflow-intro{font-size:16px}}

.contact-privacy{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:13px;line-height:1.8;color:var(--muted)}
.form-honeypot{display:none!important}

.contact-privacy-link{display:inline-flex;align-items:center;gap:12px;margin-top:10px;font-size:13px;color:var(--blue);text-decoration:underline;text-underline-offset:4px}.privacy-policy{min-height:55vh}.privacy-policy>p:last-child{max-width:72ch;font-size:17px;line-height:1.9;color:var(--muted)}

/* Readable privacy policy sections and controller details. */
.privacy-policy{min-height:0;padding-bottom:30px}.privacy-content{padding-bottom:70px}.privacy-content>section{max-width:900px;padding:32px 0;border-top:1px solid var(--line)}.privacy-content h2{font-size:28px;line-height:1.35;margin-bottom:24px;letter-spacing:-.8px}.privacy-content h3{font-size:18px;line-height:1.5;font-weight:600;margin:24px 0 12px;letter-spacing:-.3px}.privacy-content p,.privacy-content li{font-size:16px;line-height:1.9;color:var(--muted)}.privacy-content ul{padding-left:24px;margin:12px 0 22px}.privacy-controller{font-style:normal;border-left:3px solid var(--blue);padding:16px 22px;background:#edf1e7;border-radius:0 5px 5px 0}.privacy-controller p{margin:0}.privacy-controller p+p{margin-top:12px}.privacy-controller a{color:var(--blue);overflow-wrap:anywhere}.privacy-controller a:hover{text-decoration:underline}@media(max-width:600px){.privacy-content h2{font-size:24px}.privacy-content>section{padding-block:26px}.privacy-controller{padding:14px 16px}}

/* Fixed drafting gear rotates with page scroll without intercepting input. */
body{isolation:isolate}.scroll-gear{position:fixed;top:var(--gear-top,20%);right:-75px;width:clamp(220px,25vw,360px);transform:translateY(-50%);z-index:-1;pointer-events:none;opacity:.17}.scroll-gear img{display:block;width:100%;height:auto;transform:rotate(var(--gear-angle,0deg));will-change:transform}@media(max-width:760px){.scroll-gear{width:220px;right:-94px;opacity:.12}}@media(prefers-reduced-motion:reduce){.scroll-gear img{transform:none;will-change:auto}}

.analytics-consent{position:fixed;bottom:20px;left:20px;right:20px;max-width:620px;margin-left:auto;padding:24px;background:#fff;color:#172a35;border:1px solid #ccd3d8;box-shadow:0 8px 40px #172a3533;z-index:1000;max-height:85vh;overflow:auto}.analytics-consent[hidden]{display:none}.analytics-consent h2{font-size:22px;margin:0 0 12px}.analytics-consent p{font-size:15px;line-height:1.6;margin:0 0 12px}.analytics-consent a{text-decoration:underline;font-size:14px}.analytics-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.analytics-actions button{flex:1;min-width:170px;padding:12px 16px;border:1px solid var(--blue);background:white;color:var(--blue);cursor:pointer;font:inherit}.analytics-settings{background:none;border:0;text-decoration:underline;cursor:pointer;color:inherit;font:inherit;padding:8px 0}.analytics-consent button:focus-visible,.analytics-settings:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

.footer-links .analytics-settings{color:var(--ink);font-style:normal;text-decoration:none;padding:0;line-height:inherit}
.footer-links .analytics-settings:hover{color:var(--blue)}
.footer-copyright{flex:0 0 100%;margin:0;text-align:center;font-size:10px;color:var(--muted)}

.services-overview-hero{padding-bottom:35px}
.services-overview-hero h1{max-width:850px}
.services-overview-intro{max-width:640px;font-size:16px;line-height:1.8;color:var(--muted)}
.services-overview-pitch{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:42px;align-items:center;max-width:1020px;margin-top:15px}
.services-overview-pitch .services-overview-intro{margin:0}
.services-overview-cta{display:flex;flex-direction:column;gap:13px;padding:22px 24px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:5px;background:#edf1e7;color:var(--ink);text-decoration:none;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.services-overview-cta:hover{background:#e5ebdc;border-color:#bdc9b6;border-left-color:var(--blue);transform:translateY(-2px)}
.services-overview-cta:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.services-overview-cta-label{font:10px/1.5 monospace;letter-spacing:.8px;color:var(--muted);text-transform:uppercase}
.services-overview-cta strong{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:17px;font-weight:600;line-height:1.4}
.services-overview-cta strong span{color:var(--blue);font-size:20px;transition:transform .2s ease}
.services-overview-cta:hover strong span{transform:translate(2px,-2px)}
.services-directory{padding-bottom:85px}
.services-directory .section-heading{margin-bottom:25px}
.services-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.services-directory-card{min-height:245px;display:flex;flex-direction:column;padding:23px;border:1px solid var(--line);border-radius:5px;background:#fbfcf8}
.services-directory-card .service-index{font:9px/1.5 monospace;letter-spacing:1px;color:var(--blue)}
.services-directory-card h3{font-size:22px;line-height:1.35;font-weight:500;letter-spacing:-.4px;margin:18px 0 9px}
.services-directory-card p{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:18px;flex:1}
.services-directory-card .text-link{gap:10px;color:var(--blue)}
@media(max-width:900px){.services-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.services-overview-hero{padding-block:55px 30px}}
@media(max-width:760px){.services-overview-pitch{grid-template-columns:1fr;gap:22px;margin-top:10px}.services-overview-cta{max-width:420px}}
@media(max-width:600px){.services-directory-grid{grid-template-columns:1fr}.services-directory-card{min-height:215px;padding:21px}.services-directory{padding-bottom:55px}.services-overview-intro{font-size:14px}}

/* Full-width CAD art fades into the site canvas behind the hero copy. */
.hero-banner{position:relative;width:100%;aspect-ratio:2172/724;overflow:hidden;background:var(--paper)}
.hero-banner::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#f7f8f3c9 0%,#f7f8f396 25%,#f7f8f34d 48%,#f7f8f314 66%,transparent 82%)}
.hero-banner-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-banner-track{display:flex;width:100%;height:100%;transform:translateX(calc(var(--hero-slide,0)*-100%));transition:transform .72s cubic-bezier(.22,.61,.36,1)}
.hero-banner-image{position:relative;flex:0 0 100%;display:block;width:100%;height:100%;object-fit:cover}
.hero-banner-content{position:absolute;inset:0;z-index:2;max-width:1280px;width:calc(100% - 112px);margin:0 auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.hero-banner .eyebrow{margin-bottom:16px;color:#56635d}
.hero-banner h1{max-width:580px;margin-bottom:16px;color:var(--ink);font-size:clamp(38px,4.2vw,60px);line-height:1.08;letter-spacing:-2.2px}
.hero-banner .hero-intro{max-width:440px;margin-bottom:24px;color:#626b65;font-size:15px;line-height:1.7}
.hero-banner .hero-brand-accent{color:#3155de}
.hero-banner .hero-actions{gap:18px}
.hero-banner-controls{position:absolute;right:clamp(22px,5vw,72px);bottom:clamp(18px,4vw,48px);z-index:3;display:flex;align-items:center;gap:10px}
.hero-banner-controls>button,.hero-banner-dots button{display:grid;place-items:center;min-width:38px;height:38px;padding:0;border:1px solid #445b6240;border-radius:50%;background:#f7f8f3d9;color:var(--ink);font:inherit;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.hero-banner-controls>button:hover,.hero-banner-dots button:hover{background:#fff;transform:translateY(-1px)}
.hero-banner-dots{display:flex;align-items:center;gap:7px}
.hero-banner-dots button{min-width:9px;width:9px;height:9px;border:0;background:#526b6b70}
.hero-banner-dots button[aria-current="true"]{width:25px;border-radius:8px;background:#4c8498}
.hero-banner-controls button:focus-visible{outline:2px solid #3d849d;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.hero-banner-track{transition:none}.hero-banner-controls>button,.hero-banner-dots button{transition:none}}
.eoat-service{width:100%;min-width:0;border:0;border-radius:0;box-shadow:none}
.eoat-service[hidden]{display:none!important}
.service-art>#service-image[hidden],.service-art>.art-caption[hidden]{display:none!important}
.service-art>#eoat-service .eoat-stage{height:310px}
.service-art>#eoat-service .eoat-stage-note{z-index:1;left:18px;top:14px;bottom:auto;font-size:8px;color:#586b82}
.eoat-fea-legend{display:flex;align-items:center;gap:7px;flex:none;font:8px/1 monospace;letter-spacing:.6px;color:#627184}
.eoat-fea-legend i{display:block;width:72px;height:7px;border-radius:5px;background:linear-gradient(90deg,#da4e42,#d8e2e8,#3156df)}
.eoat-caption [data-eoat-mode="fea"]{margin-bottom:4px}
.eoat-caption p[data-eoat-mode="fea"]{font-size:9px;line-height:1.5;color:#596779}
.service-art[data-active-service="0"] .carousel-controls,.service-art[data-active-service="3"] .carousel-controls{position:static;transform:none;justify-content:flex-end;gap:8px;margin:0;padding:9px 18px 14px;border-top:1px solid var(--line);pointer-events:auto}
@media(max-width:760px){.service-art>#eoat-service .eoat-stage{height:300px}}
@media(max-width:760px){.eoat-service[data-mode="fea"] .eoat-caption{display:block}.eoat-service[data-mode="fea"] .eoat-caption h2{font-size:21px}.eoat-service[data-mode="fea"] .eoat-fea-legend{margin-top:9px}}
@media(max-width:1100px){.hero-banner-content{width:calc(100% - 64px)}}
@media(max-width:760px){.hero-banner{aspect-ratio:auto;display:flex;flex-direction:column}.hero-banner::before{display:none}.hero-banner-media{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:3/1}.hero-banner-track{height:100%}.hero-banner-image{height:100%;aspect-ratio:3/1;object-fit:cover}.hero-banner-controls{right:14px;bottom:auto;top:12px;gap:6px}.hero-banner-controls>button{min-width:32px;height:32px}.hero-banner-dots{gap:5px}.hero-banner-dots button{min-width:7px;width:7px;height:7px}.hero-banner-dots button[aria-current="true"]{width:18px}.hero-banner-content{position:relative;inset:auto;width:calc(100% - 40px);max-width:none;margin:0 auto;padding:26px 0 32px}.hero-banner h1{font-size:clamp(36px,8vw,48px);letter-spacing:-1.8px}.hero-banner .hero-intro{font-size:14px}}
@media(max-width:600px){.hero-banner .hero-actions{gap:12px;flex-wrap:wrap}.hero-banner .hero-actions .button{gap:14px;padding:12px 15px}}

/* Keep the main navigation visible while scrolling. */
html{scroll-padding-top:110px}
header{position:sticky;top:0;z-index:100;background:var(--paper)}

.hero-banner .hero-intro{font-size:clamp(20px,1.8vw,24px);line-height:1.4}
.hero-banner .hero-brand-word{font-weight:700}
@media(max-width:760px){.hero-banner .hero-intro{font-size:18px}}

.hero-banner-track{will-change:transform;transition:transform 1s cubic-bezier(.22,.61,.36,1)}
.hero-banner-controls>[data-hero-toggle]{font-size:12px;font-weight:700}
.hero-banner.is-entering .hero-banner-content>.eyebrow,
.hero-banner.is-entering .hero-banner-content>h1,
.hero-banner.is-entering .hero-banner-content>.hero-intro{animation:hero-text-from-top 1.15s cubic-bezier(.2,.7,.25,1) both}
.hero-banner.is-entering .hero-banner-content>.eyebrow{animation-delay:.12s}
.hero-banner.is-entering .hero-banner-content>h1{animation-delay:.3s}
.hero-banner.is-entering .hero-banner-content>.hero-intro{animation-delay:.48s}
.hero-banner.is-entering .hero-banner-content>.hero-actions{animation:hero-text-from-bottom 1.15s cubic-bezier(.2,.7,.25,1) .58s both}
@keyframes hero-text-from-top{from{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-text-from-bottom{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero-banner-track{transition:none;will-change:auto}.hero-banner.is-entering .hero-banner-content>.eyebrow,.hero-banner.is-entering .hero-banner-content>h1,.hero-banner.is-entering .hero-banner-content>.hero-intro,.hero-banner.is-entering .hero-banner-content>.hero-actions{animation:none}}
