:root{
  --paper:#f3f0e8;
  --paper-2:#e9e4d7;
  --ink:#11171a;
  --ink-soft:#3f4749;
  --muted:#5a6265;
  --line:#cec8ba;
  --line-soft:#dcd6c9;
  --accent:#e04e21;
  --accent-light:#f08a52;
  --accent-ink:#b03a13;
  --bone:#f3f0e8;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --sans:"Helvetica Neue",Helvetica,Arial,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.lang-zh{font-family:"PingFang SC","Noto Sans CJK SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif}
::selection{background:var(--accent);color:var(--paper)}
a{color:inherit;text-decoration:none}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
svg{display:block}
p,h1,h2,h3{margin:0}
img,svg{max-width:100%}
address{font-style:normal}
.shell{width:min(100% - 96px,1280px);margin-inline:auto}
.section{padding-block:120px}
section[id]{scroll-margin-top:86px}
.micro{font-family:var(--mono);font-size:10px;line-height:1.4;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.skip-link{position:absolute;left:12px;top:-100px;z-index:100;background:var(--ink);color:var(--paper);padding:11px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.1em}
.skip-link:focus{top:12px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(243,240,232,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-inner{height:70px;display:flex;align-items:center;gap:36px}
.brand{display:inline-flex;align-items:center;gap:11px;flex-shrink:0}
.brand-mark{width:30px;height:30px;color:var(--ink)}
.brand-mark .dot{fill:var(--accent)}
.brand-type strong{display:block;font-size:15px;line-height:1;font-weight:700;letter-spacing:.18em}
.brand-type span{display:block;font-size:9px;line-height:1;letter-spacing:.28em;color:var(--muted);margin-top:5px}
.nav-main{display:flex;gap:26px;margin-left:auto}
.nav-main a{position:relative;font-size:12.5px;font-weight:500;padding-block:6px;white-space:nowrap}
.nav-main a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-main a:hover:after{transform:scaleX(1)}
.header-right{display:flex;align-items:center;gap:20px}
.lang{display:flex;align-items:center;gap:10px;padding-left:18px;border-left:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.06em}
.lang a{color:var(--muted);padding-block:4px;border-bottom:1px solid transparent}
.lang a:hover{color:var(--ink)}
.lang a[aria-current=page]{color:var(--ink);border-color:var(--accent)}
.header-cta{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--ink);padding:9px 13px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;transition:background .2s,color .2s;white-space:nowrap}
.header-cta svg{width:12px;height:12px}
.header-cta:hover{background:var(--ink);color:var(--paper)}
.mobile-nav{display:none}

/* ---------- hero ---------- */
.hero{padding-top:56px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(340px,.78fr);grid-template-areas:"copy visual" "facts visual";gap:0 64px;align-items:start}
.hero-copy{grid-area:copy}
.hero-visual{grid-area:visual;align-self:start}
.hero-facts{grid-area:facts}
.hero-copy{padding-top:4px}
.hero-eyebrow{display:flex;align-items:center;gap:11px}
.hero-eyebrow .dot{width:6px;height:6px;background:var(--accent);flex:none}
.hero-eyebrow .micro{color:var(--ink-soft)}
.hero-title{margin:24px 0 0;font-size:clamp(40px,3.7vw,50px);line-height:1.02;letter-spacing:-.045em;font-weight:600}
.hero-line{display:block}
.hero-line:first-child{color:var(--accent-ink)}
.hero-lead{max-width:640px;margin-top:24px;font-size:17px;line-height:1.68;color:var(--ink-soft)}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:28px}
.btn-primary{display:inline-flex;align-items:center;gap:16px;background:var(--ink);color:var(--paper);padding:14px 19px;font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;transition:background .2s}
.btn-primary svg{width:14px;height:14px}
.btn-primary:hover{background:var(--accent-ink)}
.text-link{display:inline-flex;align-items:center;gap:11px;font-size:12.5px;font-weight:500;border-bottom:1px solid var(--line);padding-bottom:5px;transition:border-color .2s}
.text-link svg{width:14px;height:14px}
.text-link:hover{border-color:var(--accent)}
.hero-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin:36px 0 0;border-top:1px solid var(--ink);padding:0}
.hero-facts>div{padding:11px 0;border-bottom:1px solid var(--line-soft)}
.hero-facts dt{font-family:var(--mono);font-size:9px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}
.hero-facts dd{margin:5px 0 0;font-size:12.5px;line-height:1.5}
.hero-visual{margin:0;position:relative;grid-area:visual;align-self:start}
.hero-collage{display:grid;grid-template-rows:repeat(3,1fr);gap:2px;aspect-ratio:4/5;overflow:hidden;background:var(--ink);border:1px solid var(--ink)}
.collage-panel{position:relative;display:block;min-height:0;overflow:hidden;background:var(--ink)}
.collage-panel img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.8) contrast(1.04);transition:transform .5s}
.collage-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,15,18,.82),rgba(9,15,18,.12) 62%,rgba(9,15,18,.55))}
.collage-panel:hover img{transform:scale(1.035)}
.collage-label{position:absolute;left:12px;bottom:10px;z-index:2;color:var(--bone);font-size:13px;line-height:1.2;font-weight:500;letter-spacing:-.01em}
.collage-label i{font-family:var(--mono);font-size:8px;font-style:normal;letter-spacing:.08em;color:var(--accent-light);margin-right:8px}
.hero-visual figcaption{margin-top:9px;padding-top:8px;border-top:1px solid var(--line);font-size:11px;line-height:1.5;color:var(--muted)}

/* ---------- practice index ---------- */
.practice-index{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:0 28px;margin-top:72px}
.index-label{grid-column:1/-1;padding-bottom:10px;border-bottom:1px solid var(--ink);color:var(--accent-ink)}
.index-card{position:relative;display:block;min-height:215px;padding:18px 0 30px;border-top:1px solid var(--line);transition:border-color .2s}
.index-card:hover{border-top-color:var(--accent)}
.index-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.index-no{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--accent-ink)}
.index-tag{font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:4px 6px}
.index-title{display:block;margin-top:16px;font-size:24px;line-height:1.15;font-weight:600;letter-spacing:-.02em}
.index-text{display:block;max-width:330px;margin-top:8px;padding-right:22px;font-size:13.5px;line-height:1.6;color:var(--muted)}
.index-arrow{position:absolute;right:0;bottom:26px}
.index-arrow svg{width:17px;height:17px;transition:transform .2s}
.index-card:hover .index-arrow svg{transform:translateX(4px)}
.index-featured{min-height:250px;padding:22px 24px;border-top:0;color:var(--bone);background:linear-gradient(90deg,rgba(10,16,19,.96) 0%,rgba(10,16,19,.86) 52%,rgba(10,16,19,.38) 100%),url("media/signal-texture.svg") 68% 42%/cover;overflow:hidden}
.index-featured:hover{border-top-color:transparent}
.index-featured .index-top{justify-content:flex-start;gap:12px}
.index-featured .index-no{color:var(--accent-light)}
.index-featured .index-tag{color:var(--bone);border-color:rgba(243,240,232,.35)}
.index-featured .index-title{max-width:340px;font-size:28px}
.index-featured .index-text{max-width:350px;color:#c3cccd}
.index-featured .index-arrow{color:var(--bone)}
.index-featured .index-arrow svg{width:20px;height:20px}

/* ---------- shared section headings ---------- */
h1,h2{overflow-wrap:break-word}
body.lang-de h1{hyphens:manual}
body.lang-de h2{hyphens:auto;-webkit-hyphens:auto}
h2{font-size:clamp(38px,4vw,56px);line-height:1.04;letter-spacing:-.035em;font-weight:600}
.practice-main,.practice-aside,.company-copy,.hero-line,.method-head>div,.contact-side{min-width:0}
.practice-main h2{max-width:820px}
.practice-lead{max-width:720px;margin-top:26px;font-size:17px;line-height:1.7;color:var(--muted)}

/* ---------- practice layout ---------- */
.practice{border-top:1px solid var(--line-soft)}
.practice-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:96px}
.practice-aside{position:sticky;top:104px;align-self:start}
.practice-id{display:flex;align-items:baseline;gap:12px;border-top:1px solid var(--ink);padding-top:14px}
.practice-no{font-family:var(--mono);font-size:12px;line-height:1;color:var(--accent-ink)}
.practice-label{font-family:var(--mono);font-size:10.5px;line-height:1.3;letter-spacing:.12em;text-transform:uppercase}
.practice-meta{margin:26px 0 0}
.practice-meta>div{border-top:1px solid var(--line-soft);padding:12px 0}
.practice-meta dt{color:var(--accent-ink)}
.practice-meta dd{margin:6px 0 0;font-size:13px;line-height:1.55;color:var(--ink-soft)}
.aside-link{display:inline-flex;align-items:center;gap:10px;margin-top:26px;padding-bottom:4px;font-size:12.5px;font-weight:500;border-bottom:1px solid var(--ink)}
.aside-link svg{width:14px;height:14px}

/* software + robotics intro layouts */
.software-intro,.robotics-intro{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:44px;align-items:start}
.intro-copy h2{max-width:640px}
.software-intro .practice-lead,.robotics-intro .practice-lead{max-width:620px}
.system-panel,.servo-panel{margin:0;background:var(--ink);color:var(--bone);border:1px solid var(--ink)}
.panel-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid #2c3539}
.panel-bar .micro{color:#9aa5a6}
.panel-code{font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:#8d999a}
.system-panel img,.servo-panel img{display:block;width:100%;height:auto}
.system-panel figcaption,.servo-panel figcaption{padding:12px 14px;border-top:1px solid #2c3539;font-size:11px;line-height:1.6;color:#aab4b5}
.servo-legend{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;list-style:none;margin:0;padding:11px 14px;border-top:1px solid #2c3539}
.servo-legend li{display:flex;gap:7px;padding:3px 0;font-size:10.5px;line-height:1.4;color:#c3cccd}
.servo-legend li span{flex:none;font-family:var(--mono);font-size:8.5px;color:var(--accent-light);padding-top:1px}

.groups-label{display:block;margin-top:56px;padding-bottom:13px;border-bottom:1px solid var(--ink);color:var(--accent-ink)}
.service-group{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:26px 0;border-bottom:1px solid var(--line-soft)}
.service-group h3{font-size:16px;line-height:1.4;font-weight:600}
.service-group p{max-width:560px;font-size:14.5px;line-height:1.7;color:var(--muted)}

/* ---------- dark ADAS section ---------- */
.section-dark{background:var(--ink);color:var(--bone)}
.section-dark .practice-id{border-top-color:var(--bone)}
.section-dark .practice-no{color:var(--accent)}
.section-dark .practice-label{color:var(--bone)}
.section-dark .practice-meta>div{border-top-color:#2c3539}
.section-dark .practice-meta dt{color:#9aa5a6}
.section-dark .practice-meta dd{color:#b8c1c2}
.section-dark .aside-link{border-color:var(--bone)}
.section-dark h2{color:var(--bone)}
.section-dark .practice-lead{color:#b8c1c2}
.section-dark .micro{color:#9aa5a6}

/* review panel */
.review-panel{margin-top:64px;border:1px solid #2c3539;background:#0d1518;color:var(--bone)}
.review-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 16px;border-bottom:1px solid #2c3539;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#9aa5a6}
.review-bar-left{display:flex;align-items:center;gap:12px}
.review-dot{width:6px;height:6px;background:var(--accent);flex:none}
.review-id{color:var(--bone);letter-spacing:.08em}
.review-kind{border:1px solid #3b4a50;color:var(--accent-light);padding:4px 6px;font-size:8px;letter-spacing:.08em}
.review-demo{font-family:var(--mono);font-size:7.5px;letter-spacing:.1em;color:#b8c1c2;border:1px solid var(--line);padding:3px 5px;text-transform:uppercase}
.review-status{color:#6fd3c6;border:1px solid #2f4a4a;padding:4px 7px;font-size:8.5px}
.review-body{display:grid;grid-template-columns:1.55fr 1fr;min-height:380px}
.review-video{position:relative;min-height:380px;overflow:hidden;border-right:1px solid #2c3539;background:#000}
.review-still{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:contain;display:block}
.review-video-media{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;display:block;background:#000}
.review-chips{position:absolute;left:14px;top:14px;z-index:3;display:flex;gap:6px;flex-wrap:wrap}
.review-chips span{background:rgba(8,14,17,.78);border:1px solid rgba(243,240,232,.22);padding:5px 7px;font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--bone)}
.review-side{display:flex;flex-direction:column;gap:8px;padding:18px 20px}
.review-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 0 11px;border-top:1px solid #2c3539;border-bottom:1px solid #2c3539}
.review-compare span{display:block;font-family:var(--mono);font-size:7px;letter-spacing:.07em;text-transform:uppercase;color:#8d999a;line-height:1.3}
.review-compare b{display:inline-block;margin-top:4px;font-size:22px;line-height:1;font-weight:600;color:var(--bone);letter-spacing:-.03em}
.review-compare small{font-family:var(--mono);font-size:8px;color:#8d999a;margin-left:3px;letter-spacing:.03em}
.review-compare .over b{color:var(--accent-light)}
.review-compare .over small{color:var(--accent-light)}
.review-conf{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:8px;letter-spacing:.05em;color:#8d999a;padding:1px 0}
.review-conf b{font-size:11px;color:var(--bone);font-weight:500}
.review-record{display:grid;gap:3px;border-top:1px solid #2c3539;padding-top:7px}
.review-record div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.review-record span{flex:none;font-family:var(--mono);font-size:7px;letter-spacing:.07em;text-transform:uppercase;color:#8d999a}
.review-record b{font-weight:500;font-size:10px;line-height:1.4;color:#d7dedf;text-align:right}
.review-chips span.over{color:var(--accent-light);border-color:var(--accent)}

.signal-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:#9aa5a6}
.signal-head b{font-size:12px;font-weight:500;letter-spacing:0;color:var(--bone)}
.signal-chart{display:block;width:100%;height:52px}
.panel-label{margin-top:8px;color:#9aa5a6}
.review-labels{display:flex;flex-wrap:wrap;gap:6px}
.review-labels span{padding:5px 7px;border:1px solid #394549;font-size:10.5px;line-height:1.3;color:#c7d0d1}
.review-labels span:first-child{border-color:var(--accent);color:var(--accent-light)}
.review-scenario{display:flex;flex-wrap:wrap;gap:6px}
.review-scenario span{font-size:10.5px;line-height:1.3;color:#c7d0d1;border-bottom:1px solid #394549;padding:2px 0}
.review-scenario span+span:before{content:"·";margin-right:6px;color:#5b6769}
.review-qc{display:flex;align-items:center;gap:7px;margin-top:2px;font-size:10.5px;line-height:1.4;color:#c7d0d1}
.review-qc i{width:6px;height:6px;border-radius:50%;background:#6fd3c6;flex:none}
.review-foot{display:grid;grid-template-columns:1.25fr .75fr;border-top:1px solid #2c3539}
.review-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:16px 20px;border-right:1px solid #2c3539}
.review-timeline div{position:relative;padding-top:12px}
.review-timeline div:before{content:"";position:absolute;top:0;left:0;width:5px;height:5px;background:var(--accent)}
.review-timeline span{display:block;font-family:var(--mono);font-size:8.5px;line-height:1.4;color:#8d999a}
.review-timeline b{display:block;margin-top:4px;font-size:11px;line-height:1.4;font-weight:500;color:var(--bone)}
.review-caption{padding:16px 20px;font-size:11.5px;line-height:1.6;color:#9aa5a6}

/* flywheel */
.flywheel{margin-top:64px;border-top:1px solid #2c3539;padding-top:26px}
.flywheel-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px}
.flywheel-note{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:#8d999a}
.flywheel-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;list-style:none;margin:40px 0 0;padding:0}
.flywheel-steps li{padding:0 26px;border-left:1px solid #2c3539}
.flywheel-steps li:first-child{padding-left:0;border-left:0}
.step-no{display:block;font-family:var(--mono);font-size:10px;line-height:1;letter-spacing:.1em;color:var(--accent-ink)}
.section-dark .step-no{color:var(--accent)}
.flywheel-steps h3{margin-top:12px;font-size:19px;line-height:1.3;font-weight:600;letter-spacing:-.01em}
.flywheel-steps p{margin-top:12px;font-size:13px;line-height:1.65;color:#a5b0b1}

/* map + capabilities */
.compliance{margin-top:44px;border:1px solid #2c3539;background:#101a1e}
.compliance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:24px 26px 0}
.compliance-title .micro{color:var(--accent-light)}
.compliance-title h3{margin-top:8px;font-size:clamp(24px,2vw,30px);line-height:1.1;letter-spacing:-.035em;font-weight:600;color:var(--bone);max-width:640px}
.compliance-gate{flex:none;border:1px solid var(--accent);color:var(--accent-light);font-family:var(--mono);font-size:8px;line-height:1.4;letter-spacing:.1em;padding:7px 9px;text-transform:uppercase;max-width:200px}
.compliance-body{padding:12px 26px 0;max-width:880px;font-size:12.5px;line-height:1.7;color:#b8c1c2}
.compliance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:22px;border-top:1px solid #2c3539}
.compliance-item{padding:18px 20px 22px;border-right:1px solid #2c3539;min-width:0}
.compliance-item:last-child{border-right:0}
.compliance-item .no{font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:var(--accent-light)}
.compliance-item h4{margin-top:6px;font-size:13px;line-height:1.25;font-weight:600;color:var(--bone)}
.compliance-item p{margin-top:7px;font-size:11px;line-height:1.55;color:#9aa5a6}
.compliance-note{margin:0;padding:0 26px 18px;font-family:var(--mono);font-size:8px;line-height:1.6;letter-spacing:.02em;color:#8d999a}
.adas-lower{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:start;margin-top:64px}
.map-panel{margin:0;border:1px solid #2c3539;background:#0b1215}
.map-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid #2c3539}
.map-title{font-size:13.5px;line-height:1.4;color:var(--bone);text-align:right}
.map-image img{display:block;width:100%;height:auto}
.map-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:11px 16px;border-top:1px solid #2c3539;font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:#9aa5a6}
.map-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c);margin-right:5px}
.map-caption{padding:0 16px 14px;font-size:11.5px;line-height:1.6;color:#9aa5a6}
.adas-scope .cap-list{grid-template-columns:1fr;margin-top:14px}
.cap-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px;list-style:none;margin:16px 0 0;padding:0}
.cap-list li{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid #2c3539;font-size:14px;line-height:1.5;color:#d3dada}
.cap-list li:before{content:"+";font-family:var(--mono);color:var(--accent)}

/* ---------- robotics ---------- */
.section-tint{background:var(--paper-2);border-block:1px solid var(--line-soft)}
.block-label{display:block;padding-bottom:12px;border-bottom:1px solid var(--ink);color:var(--accent-ink)}
.component-block{margin-top:56px}
.component-table{width:100%;border-collapse:collapse}
.component-table th{padding:13px 24px 11px 0;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:9.5px;line-height:1.4;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-align:left;color:var(--muted)}
.component-table td{padding:18px 24px 18px 0;border-bottom:1px solid #c9c2b3;vertical-align:top;font-size:13.5px;line-height:1.6;color:var(--muted)}
.component-table td:first-child{width:27%;font-size:15px;font-weight:600;line-height:1.45;color:var(--ink)}
.component-table td:nth-child(2){width:40%}
.component-table td:last-child{padding-right:0}
.component-table tr:hover td{background:#f1ede3}
.supply-block{margin-top:56px}
.supply-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;list-style:none;margin:0;padding:0}
.supply-steps li{padding-top:18px;border-top:1px solid var(--line)}
.supply-steps h3{margin-top:10px;font-size:16px;line-height:1.35;font-weight:600}
.supply-steps p{margin-top:8px;font-size:13px;line-height:1.65;color:var(--muted)}

/* ---------- method ---------- */
.method{border-top:1px solid var(--line-soft)}
.method-head{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end}
.method-head>div>.micro{display:block;margin-bottom:18px;color:var(--accent-ink)}
.method-head p{max-width:480px;margin-bottom:4px;font-size:16px;line-height:1.7;color:var(--muted)}
.method-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;list-style:none;margin:78px 0 0;padding:0}
.method-steps li{padding-top:20px;border-top:2px solid var(--ink)}
.method-steps h3{margin-top:14px;font-size:24px;line-height:1.2;font-weight:600;letter-spacing:-.02em}
.method-steps p{max-width:320px;margin-top:10px;font-size:14px;line-height:1.7;color:var(--muted)}

/* ---------- company ---------- */
.company{border-top:1px solid var(--line-soft)}
.company-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:96px;align-items:start}
.company-copy>.micro{display:block;margin-bottom:18px;color:var(--accent-ink)}
.company-copy h2{max-width:640px}
.company-copy>p{max-width:640px;margin-top:26px;font-size:16.5px;line-height:1.72;color:var(--muted)}
.company-details{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin:44px 0 0;padding:0;border-top:1px solid var(--ink)}
.company-details>div{padding:15px 0;border-bottom:1px solid var(--line-soft)}
.company-details>div:last-child{grid-column:1/-1}
.company-details dt{color:var(--accent-ink)}
.company-details dd{margin:7px 0 0;font-size:13.5px;line-height:1.6}
.company-details a{border-bottom:1px solid var(--accent)}
.locator{position:relative;height:500px;overflow:hidden;background:var(--ink);color:var(--bone)}
.locator-map{position:absolute;inset:0;width:100%;height:100%}
.locator-info{position:absolute;left:28px;right:28px;bottom:26px}
.locator-info .micro{color:#9aa5a6}
.locator-info strong{display:block;margin-top:10px;font-family:var(--mono);font-size:12px;line-height:1.6;font-weight:500;letter-spacing:.08em}
.locator-info>span:last-child{margin-top:8px;font-size:12px;line-height:1.6;color:#aab4b5}

/* ---------- contact ---------- */
.contact{background:var(--accent);color:var(--ink);padding-block:92px}
.contact .micro{color:#1c0d07}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end}
.contact h2{max-width:620px}
.contact-side p{max-width:440px;margin-bottom:26px;font-size:16px;line-height:1.7;color:#1c0d07}
.contact-button{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 20px;background:var(--ink);color:var(--paper);padding:16px 20px;transition:background .2s}
.contact-button:hover{background:#000}
.contact-button span{grid-column:1;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#aeb8b9}
.contact-button strong{grid-column:1;font-size:17px;line-height:1.4;font-weight:500}
.contact-button svg{grid-column:2;grid-row:1/3;width:18px;height:18px}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:var(--bone);padding-top:56px}
.footer-main{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;align-items:start;padding-bottom:48px}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand .brand-mark{width:34px;height:34px;color:var(--bone)}
.footer-brand strong{display:block;font-size:13px;line-height:1;letter-spacing:.16em}
.footer-brand span{display:block;margin-top:6px;font-size:10px;line-height:1;letter-spacing:.2em;color:#8d999a}
.footer-line{font-size:12px;line-height:1.6;color:#aab4b5}
.footer-contact{text-align:right;font-size:12px;line-height:1.6;color:#8d999a}
.footer-contact a{display:block;width:fit-content;margin-left:auto;margin-bottom:8px;padding-bottom:3px;border-bottom:1px solid #3b4447;color:var(--bone)}
.footer-base{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #2c3539;padding-block:22px 26px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:#8d999a}
.footer-lang{display:flex;gap:14px}
.footer-lang a:hover,.footer-lang a[aria-current=page]{color:var(--bone)}

/* ---------- Chinese typography ---------- */
body.lang-zh h1{letter-spacing:-.01em;line-height:1.16}
body.lang-zh h2{letter-spacing:-.01em;line-height:1.2}
body.lang-zh .hero-lead{line-height:1.85}
body.lang-zh .practice-lead{line-height:1.85}
body.lang-zh .micro{letter-spacing:.1em}
body.lang-zh .brand-type strong{letter-spacing:.14em}
body.lang-zh .hero-line:last-child{letter-spacing:0}
body.lang-de .robotics-intro h2{hyphens:manual}

/* ---------- responsive ---------- */
@media(max-width:1300px){
  .software-intro,.robotics-intro{grid-template-columns:minmax(0,1fr) 360px;gap:38px}
}
@media(max-width:1180px){
  .software-intro,.robotics-intro{grid-template-columns:minmax(0,1fr) 340px;gap:36px}
}
@media(max-width:1080px){
  .shell{width:min(100% - 64px,1280px)}
  .practice-grid{grid-template-columns:240px minmax(0,1fr);gap:56px}
  .hero-grid{grid-template-columns:minmax(0,1fr) 340px;gap:44px}
  .nav-main{gap:18px}
  .company-grid{grid-template-columns:minmax(0,1fr) 360px;gap:56px}
}
@media(max-width:980px){
  .nav-main{display:none}
  .mobile-nav{display:flex;gap:26px;margin-top:-1px;padding:11px 0 12px;border-top:1px solid var(--line);overflow-x:auto;white-space:nowrap}
  .mobile-nav a{font-size:12px;font-weight:500}
  .header-inner{height:64px}
  .site-header{position:static}
  section[id]{scroll-margin-top:0}
  .hero{padding-top:44px}
  .hero-grid{grid-template-columns:1fr;grid-template-areas:"copy" "visual" "facts";gap:44px}
  .hero-title{font-size:clamp(40px,6.2vw,52px)}
  .hero-visual{max-width:620px}
  .hero-facts{margin-top:0}
  .hero-collage{aspect-ratio:16/13}
  .practice-index{grid-template-columns:1fr;gap:0;margin-top:56px}
  .index-card{border-top:1px solid var(--line-soft);padding:18px 0 24px;min-height:0}
  .index-card:first-of-type{border-top-color:var(--ink)}
  .index-featured{min-height:230px;padding:22px;margin-bottom:2px}
  .index-text{max-width:560px}
  .index-arrow{bottom:20px}
  .section{padding-block:88px}
  .practice-grid{grid-template-columns:minmax(0,1fr);gap:38px}
  .practice-aside{position:static}
  .practice-meta{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin-top:22px}
  .practice-meta>div:first-child{border-top:1px solid var(--line-soft)}
  .software-intro,.robotics-intro{grid-template-columns:minmax(0,1fr)}
  .software-intro .practice-lead,.robotics-intro .practice-lead{max-width:720px}
  .system-panel,.servo-panel{max-width:520px}
  .groups-label{margin-top:44px}
  .service-group{grid-template-columns:1fr;gap:8px}
  .review-panel{margin-top:48px}
  .review-body{grid-template-columns:1fr;min-height:0}
  .review-video{min-height:0;aspect-ratio:2/1;border-right:0;border-bottom:1px solid #2c3539}
  .compliance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compliance-item:nth-child(2){border-right:0}
  .compliance-item:nth-child(1),.compliance-item:nth-child(2){border-bottom:1px solid #2c3539}
  .review-side{padding:18px 16px}
  .review-foot{grid-template-columns:1fr}
  .review-timeline{border-right:0;border-bottom:1px solid #2c3539}
  .flywheel{margin-top:56px}
  .flywheel-steps{grid-template-columns:1fr 1fr;gap:36px 0}
  .flywheel-steps li:nth-child(3){padding-left:0;border-left:0}
  .adas-lower{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:56px}
  .cap-list{grid-template-columns:1fr}
  .adas-scope .cap-list{margin-top:12px}
  .method-head{grid-template-columns:1fr;gap:24px}
  .method-steps{grid-template-columns:1fr;gap:28px;margin-top:48px}
  .company-grid{grid-template-columns:minmax(0,1fr);gap:44px}
  .locator{height:380px}
  .contact-grid{grid-template-columns:1fr;gap:36px}
  .footer-main{grid-template-columns:1fr 1fr;gap:32px}
  .footer-line{grid-column:1/-1;order:3}
  .footer-contact{text-align:left}
  .footer-contact a{margin-left:0}
}
@media(max-width:600px){
  .shell{width:calc(100% - 40px)}
  .header-inner{height:60px;gap:16px}
  .brand-mark{width:26px;height:26px}
  .brand-type strong{font-size:13px}
  .brand-type span{font-size:8px;letter-spacing:.24em}
  .lang{gap:8px;padding-left:0;border-left:0}
  .header-cta{display:none}
  .mobile-nav{gap:14px;padding-top:10px}
  .mobile-nav a{font-size:10.5px}
  .hero{padding-top:34px}
  .hero-title{font-size:clamp(34px,9.6vw,44px);line-height:1.04}
  .hero-lead{font-size:15.5px}
  .hero-actions{align-items:flex-start;flex-direction:column;gap:18px}
  .hero-collage{aspect-ratio:4/5}
  .collage-label{font-size:11.5px;left:10px;bottom:8px}
  .collage-label i{font-size:7px;margin-right:6px}
  .hero-facts{grid-template-columns:1fr;margin-top:30px}
  .hero-facts>div{padding:9px 0}
  .hero-facts dd{margin-top:3px}
  .practice-index{margin-top:44px}
  .index-featured{min-height:220px;padding:18px}
  .index-title{font-size:22px}
  .index-featured .index-title{font-size:24px}
  .section{padding-block:70px}
  .practice h2,.method h2,.company h2,.contact h2{font-size:34px}
  .practice-meta{grid-template-columns:1fr}
  .review-bar{font-size:8px;flex-wrap:wrap;gap:6px 10px;padding:10px 12px}
  .review-bar-left{flex-wrap:wrap;gap:6px 8px;min-width:0}
  .review-video{min-height:0;aspect-ratio:2/1}
  .compliance-head{flex-wrap:wrap;gap:12px;padding:20px 18px 0}
  .compliance-gate{max-width:none}
  .compliance-body{padding:12px 18px 0;font-size:12px}
  .compliance-grid{grid-template-columns:1fr;margin-top:18px}
  .compliance-item,.compliance-item:nth-child(2){border-right:0;border-bottom:1px solid #2c3539;padding:15px 18px}
  .compliance-item:last-child{border-bottom:0}
  .compliance-note{padding:0 18px 16px}
  .compliance-title h3{font-size:24px}
  .review-play{width:42px;height:42px}
  .review-timeline{grid-template-columns:1fr 1fr;gap:12px}
  .review-caption{padding:14px 16px}
  .flywheel-steps{grid-template-columns:1fr;gap:0}
  .flywheel-steps li{padding:18px 0 22px;border-left:0;border-top:1px solid #2c3539}
  .flywheel-steps li:first-child{border-top:0;padding-top:0}
  .flywheel-head{flex-direction:column;align-items:flex-start;gap:8px}
  .flywheel-note{font-size:8.5px;letter-spacing:.08em}
  .map-head{flex-direction:column;align-items:flex-start;gap:4px}
  .map-title{text-align:left}
  .component-table thead{display:none}
  .component-table tr{display:block;padding:15px 0;border-bottom:1px solid #c9c2b3}
  .component-table td{display:block;width:auto;padding:0;border:0}
  .component-table td:first-child{width:auto;margin-bottom:5px;font-size:16px}
  .component-table td:nth-child(2){width:auto}
  .component-table td[data-label]:before{content:attr(data-label) " · ";font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#8a8171}
  .supply-steps{grid-template-columns:1fr;gap:0}
  .supply-steps li{padding:16px 0;border-top:1px solid var(--line)}
  .company-details{grid-template-columns:1fr}
  .locator{height:320px}
  .contact{padding-block:64px}
  .contact-button{padding:14px 16px}
  .contact-button strong{font-size:14px}
  .footer-main{grid-template-columns:1fr;gap:26px;padding-bottom:32px}
  .footer-base{flex-direction:column;align-items:flex-start;gap:12px;padding-block:20px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .review-video-media{display:none}
  *,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
