/* TranscEngram — overseas site demo (framework only)
   VI tokens: teal / black / white / light gray. Old Ink #0E2A26 is NOT used. */
:root{
  --teal:var(--vi-brand);          /* VI primary */
  --teal-soft:var(--vi-n245);     /* tint for chips on white */
  --black:var(--vi-n0);         /* VI black */
  --ink:var(--vi-n11);           /* near-black surface */
  --white:var(--vi-n255);
  --gray-50:var(--vi-n245);       /* VI light gray (surfaces) */
  --gray-200:var(--vi-n217);      /* hairlines */
  --gray-300:var(--vi-n189);      /* outlines on light cards */
  --gray-400:var(--vi-n189);
  --gray-600:var(--vi-n92);      /* secondary text on white */
  --max:1280px;
  --pad-x:clamp(20px,4vw,56px);
  --sec-y:clamp(80px,10vw,144px);
  --radius-pill:999px;
  --font:"Jeko","Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}  /* v7 round1 fix-a: no horizontal page scroll on mobile */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font-family:var(--font);color:var(--black);background:var(--white);
  font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;line-height:1.5}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad-x)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--white);
  border-bottom:1px solid var(--gray-200)}
.nav{display:flex;align-items:center;gap:32px;height:72px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:19px;letter-spacing:-.01em}
/* .mark retired — use VI lockup images */
.nav-links{display:flex;gap:28px;list-style:none;margin:0 0 0 auto;padding:0;align-items:center}
.nav-links>li{position:relative}
.nav-links a{text-decoration:none;font-size:15px;color:var(--black)}
.nav-links a:hover,.nav-links a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:3px;text-underline-offset:8px}
.has-menu>a::after{content:" ▾";font-size:11px;color:var(--gray-600)}
.menu{position:absolute;top:100%;left:-16px;min-width:230px;list-style:none;margin:0;padding:10px 0;background:var(--white);
  border:1px solid var(--gray-200);display:none}
.menu a{display:block;padding:10px 16px}
.menu small{display:block;color:var(--gray-600);font-size:12px}
.has-menu:hover .menu,.has-menu:focus-within .menu{display:block}
.nav-toggle,.nav-burger{display:none}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:var(--radius-pill);
  font-weight:600;font-size:15px;text-decoration:none;border:2px solid var(--black);transition:.15s}
.btn-primary{background:var(--black);color:var(--white)}
.btn-primary:hover{background:var(--teal);color:var(--black)}
.btn-ghost{background:transparent;color:var(--black)}
.btn-ghost:hover{background:var(--black);color:var(--white)}
.on-dark .btn-primary{background:var(--teal);color:var(--black);border-color:var(--teal)}
.on-dark .btn-primary:hover{background:var(--white);border-color:var(--white)}
.on-dark .btn-ghost{color:var(--white);border-color:var(--white)}
.on-dark .btn-ghost:hover{background:var(--white);color:var(--black)}
.nav .btn{padding:10px 18px;font-size:14px}
.arrow::after{content:"→"}

/* ---------- Sections ---------- */
section,.section{position:relative;padding:var(--sec-y) 0}
.bg-teal{background:var(--teal);color:var(--black)}
.bg-black{background:var(--ink);color:var(--white)}
.bg-gray{background:var(--gray-50)}
.on-dark{color:var(--white)}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin:0 0 20px}
.on-dark .eyebrow{color:var(--teal)}
h1,h2,h3{letter-spacing:-.025em;line-height:1.05;margin:0}
h1{font-size:clamp(44px,6.4vw,88px);font-weight:700}
h2{font-size:clamp(34px,4.4vw,60px);font-weight:700;max-width:16ch}
h3{font-size:22px;font-weight:600;letter-spacing:-.01em;line-height:1.2}
.lead{font-size:clamp(18px,1.6vw,22px);max-width:40ch;margin:28px 0 0}
.muted{color:var(--gray-600)}
.on-dark .muted{color:var(--gray-400)}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:64px}
.sec-head p{margin:0;max-width:46ch}
.ph{color:var(--gray-600);font-style:italic}           /* placeholder copy */
.on-dark .ph{color:var(--gray-400)}
.footnote{font-size:12px;color:var(--gray-600);margin-top:28px}
.on-dark .footnote{color:var(--gray-400)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}

/* ---------- Owner badges (internal) ---------- */
.owner{position:absolute;top:16px;right:16px;z-index:5;font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.02em;padding:6px 10px;border-radius:var(--radius-pill);border:1px solid var(--black);white-space:nowrap}
.owner::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:0;background:currentColor}
.owner--intro{background:var(--teal);color:var(--black)}
.owner--market{background:var(--black);color:var(--white);border-color:var(--white)}
.owner--samples{background:var(--white);color:var(--black)}
.owner--docs{background:var(--gray-200);color:var(--black)}
.owner.inline{position:static;display:inline-block;margin:0 0 14px}
.card .owner{top:12px;right:12px}
body.hide-owners .owner{display:none}
.owner-toggle{position:fixed;left:16px;bottom:16px;z-index:60;font:600 11px/1 ui-monospace,Menlo,monospace;
  padding:8px 12px;border-radius:var(--radius-pill);border:1px solid var(--black);background:var(--white);cursor:pointer}

/* ---------- Hero ---------- */
.hero{padding:clamp(96px,12vw,168px) 0 clamp(80px,9vw,128px);overflow:hidden}
.hero .wrap{position:relative;z-index:2}
.hero h1{max-width:13ch}
/* review fix: graphic was 110% tall (~1000px wide) and covered the H1 at 1440px; keep it in the right column */
/* hero-graphic overridden in VI block */
@media (max-width:1320px){/* hero-graphic overridden in VI block */}
.hero-graphic path{stroke:var(--black)}
.page-hero{padding:clamp(80px,9vw,128px) 0 clamp(64px,7vw,96px);overflow:hidden}
.page-hero h1{font-size:clamp(40px,5.2vw,72px);max-width:16ch}

/* ---------- Image crops (from composite assets) ---------- */
.crop{background-repeat:no-repeat;background-color:var(--vi-n11);width:100%}
/* 2026-11-09 motion pass: playback.jpg replaced (1920×1080, letterboxed UI). Offsets recomputed so crops land
   inside the image panels (no topic labels / CN header / black bands). */
.crop-pb-ego{background-image:url(assets/playback.jpg);background-size:466% auto;background-position:49.6% 22.6%;aspect-ratio:412/230}
.crop-pb-pose{background-image:url(assets/playback.jpg);background-size:492.3% auto;background-position:49.7% 82.4%;aspect-ratio:390/228}
.crop-pb-mesh{background-image:url(assets/playback.jpg);background-size:349.1% auto;background-position:94.2% 52.2%;aspect-ratio:550/620}
.img-helmet{width:100%;aspect-ratio:1120/622;object-fit:cover;object-position:center bottom;background:var(--vi-n255)}
.img-fusion{width:100%;aspect-ratio:1920/975;object-fit:cover;object-position:top}
/* playback.jpg: show only the UI body (y 186–940 of 1080): drops letterbox bands + CN title/buttons row */
.img-playback{width:100%;aspect-ratio:1920/754;object-fit:cover;object-position:center 57%;background:var(--vi-n11)}

.figure{position:relative}
.figure figcaption,.cap{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;font-size:12px;color:var(--vi-n255);
  background:linear-gradient(to top,rgb(0 0 0 / .75),rgb(0 0 0 / 0))}
figure{margin:0}

/* ---------- Proof / KPI ---------- */
.triptych{display:grid;grid-template-columns:1.79fr 1.71fr .89fr;gap:12px;margin-bottom:72px}
.triptych .step{font:600 11px/1 ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-top:12px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--vi-n51)}
.kpi{padding:32px 24px 0 0;border-right:1px solid var(--vi-n51);margin-right:24px}
.kpi:last-child{border-right:0}
.kpi b{display:block;font-size:clamp(40px,4.6vw,68px);font-weight:700;letter-spacing:-.03em;color:var(--teal);line-height:1}
.kpi b small{font-size:.4em;font-weight:600;margin-left:6px;color:var(--white)}
.kpi span{display:block;margin-top:14px;font-size:15px}
.kpi em{display:block;font-style:normal;font-size:13px;color:var(--gray-400);margin-top:4px}

/* ---------- Capability map (replaces research-style ladder) ---------- */
.capmap{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cap-col{border:1.5px solid var(--black);border-radius:28px;padding:28px}
.cap-col.ego{background:var(--teal-soft)}
.cap-col.teleop{background:var(--teal)}
.cap-col .tag{margin-bottom:20px}
.cap-col.teleop .tag.fill{background:var(--black);border-color:var(--black);color:var(--white)}
.cap-col ol{list-style:none;margin:0;padding:0;counter-reset:cap}
.cap-col li{display:grid;grid-template-columns:40px 1fr;column-gap:8px;padding:16px 0;border-top:1.5px solid var(--black)}
.cap-col li::before{counter-increment:cap;content:"0" counter(cap);grid-row:span 2;font:600 13px/1.6 ui-monospace,Menlo,monospace}
.cap-col li b{font-size:19px;letter-spacing:-.01em}
.cap-col li span{font-size:15px;margin-top:4px}

/* headline metrics */
.metric-pair{display:flex;gap:40px;margin-top:28px}
.metric-pair b{display:block;font-size:clamp(44px,5vw,72px);font-weight:700;letter-spacing:-.03em;line-height:1}
.metric-pair span{display:block;margin-top:8px;font:600 13px/1 ui-monospace,Menlo,monospace;color:var(--gray-600)}
.spec tr.ours th,.spec tr.ours td{font-weight:700;color:var(--black);box-shadow:inset 0 -2px 0 var(--teal)}

/* ---------- Cards / grids ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{position:relative;border:1px solid var(--gray-200);background:var(--white);padding:32px;display:flex;flex-direction:column;gap:16px}
.bg-gray .card{border-color:var(--gray-200)}
.on-dark .card,.bg-black .card{background:var(--vi-n23);border-color:var(--vi-n51);color:var(--white)}
.card.feature{padding:0}
.card.feature .body{padding:32px;display:flex;flex-direction:column;gap:14px;flex:1}
.card h3{margin:0}
.card p{margin:0}
.card .link{margin-top:auto;font-weight:600;text-decoration:none}
.card .link:hover{text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:3px}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:5px 12px;border-radius:var(--radius-pill);border:1.5px solid currentColor;margin:0 6px 6px 0}
.tag.fill{background:var(--teal);border-color:var(--teal);color:var(--black)}
.tier .tier-n{font:600 12px/1 ui-monospace,Menlo,monospace;color:var(--gray-600)}
.tier ul,.list{margin:0;padding:0;list-style:none}
.tier li,.list li{padding:10px 0;border-top:1px solid var(--gray-200);font-size:15px}
.on-dark .list li{border-color:var(--vi-n51)}
.tree{font:13px/1.7 ui-monospace,Menlo,monospace;background:var(--ink);color:var(--vi-n217);padding:28px;margin:0;white-space:pre;overflow:auto}
.tree b{color:var(--teal);font-weight:600}

/* split media/text */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
.split.rev{grid-template-columns:.9fr 1.1fr}
.split.rev>:first-child{order:2}
.subsec{position:relative;padding-top:64px;margin-top:64px;border-top:1px solid var(--gray-200)}
.on-dark .subsec{border-color:var(--vi-n51)}

/* steps / timeline */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--black)}
.steps>div{padding:28px 28px 0 0}
.steps .w{font:600 13px/1 ui-monospace,Menlo,monospace;background:var(--teal);display:inline-block;padding:6px 10px;border-radius:var(--radius-pill)}
.qc{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;counter-reset:qc}
.qc li{list-style:none;border:1.5px solid currentColor;border-radius:var(--radius-pill);padding:12px 14px;font-size:13px;text-align:center}
.qc li::before{counter-increment:qc;content:counter(qc) " · ";color:var(--teal);font-weight:700}
.qc{padding:0;margin:0}

/* pillars */
.pillar{border-top:2px solid var(--black);padding-top:24px}
.on-dark .pillar{border-color:var(--teal)}
.pillar .num{font:600 13px/1 ui-monospace,Menlo,monospace;color:var(--gray-600)}
.pillar h3{margin:12px 0}
.chips{margin-top:16px}

/* spec table */
.spec{width:100%;border-collapse:collapse;font-size:15px}
.spec th,.spec td{text-align:left;padding:14px 0;border-top:1px solid var(--gray-200);vertical-align:top}
.spec th{width:38%;font-weight:600;color:var(--gray-600)}
.on-dark .spec th,.on-dark .spec td{border-color:var(--vi-n51)}

/* embed */
.embed{border:1px solid var(--gray-200);background:var(--white)}
.embed-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--gray-200);font:12px ui-monospace,Menlo,monospace;color:var(--gray-600)}
.embed-bar i{width:10px;height:10px;border-radius:50%;background:var(--gray-200);display:inline-block}
.embed-body{position:relative;display:block}
.page-hero .wrap{position:relative;z-index:2}

/* CTA band */
.cta-band h2{max-width:20ch}
.cta-band .mail{font-size:clamp(20px,2vw,28px);font-weight:600;text-decoration:none;border-bottom:3px solid var(--black)}

/* forms */
.form{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.form label{display:flex;flex-direction:column;gap:8px;font-weight:600;font-size:14px}
.form label.full{grid-column:1/-1}
.form input,.form select,.form textarea{font:inherit;font-weight:400;padding:14px 16px;border:1.5px solid var(--black);border-radius:14px;background:var(--white)}
.form textarea{min-height:120px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--teal);outline-offset:1px}
.form .why{font-weight:400;font-size:12px;color:var(--gray-600)}
.form .check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}

/* ---------- Footer ---------- */
.site-footer{background:var(--black);color:var(--white);padding:96px 0 40px;position:relative}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:40px}
.foot-grid h4{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin:0 0 16px}
.foot-grid ul{list-style:none;padding:0;margin:0}
.foot-grid li{margin:0 0 10px}
.foot-grid a{text-decoration:none;color:var(--vi-n217);font-size:15px}
.foot-grid a:hover{color:var(--teal)}
.foot-brand{display:flex;align-items:center;margin-bottom:16px}
.foot-brand{display:flex;align-items:center;gap:12px}
.foot-mail{display:inline-block;margin-top:20px;font-size:18px;color:var(--white)!important;border-bottom:2px solid var(--teal)}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:80px;padding-top:24px;border-top:1px solid var(--vi-n23);font-size:13px;color:var(--gray-400)}
.foot-bottom a{color:var(--gray-400);text-decoration:none;margin-left:20px}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .qc{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr 1fr}
  .foot-grid>div:first-child{grid-column:1/-1}
}
@media (max-width:900px){
  .nav-burger{display:block;margin-left:auto;cursor:pointer;font-size:14px;font-weight:600;border:1.5px solid var(--vi-n0);border-radius:999px;padding:8px 14px}
  .nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:var(--vi-n255);flex-direction:column;align-items:flex-start;
    padding:16px var(--pad-x) 28px;border-bottom:1px solid var(--gray-200);gap:14px}
  .nav-toggle:checked~.nav-links{display:flex}
  .menu{position:static;display:block;border:0;padding:4px 0 0 12px}
  .has-menu>a::after{content:""}
  .nav>.btn{display:none}
  .sec-head,.split,.split.rev,.grid-2,.grid-3,.capmap{grid-template-columns:1fr}
  .split.rev>:first-child{order:0}
  .grid-4,.kpis{grid-template-columns:1fr 1fr}
  .kpi{border-right:0;margin-right:0;padding-right:0}
  .triptych{grid-template-columns:1fr}  /* v7 P0-7: 03 · Deliver no longer hidden; stack 1-col × 3 */
  .steps{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  /* hero-graphic overridden in VI block */
  .owner{font-size:10px}
}
@media (max-width:560px){
  .qc{grid-template-columns:1fr 1fr}
  .grid-4,.kpis,.triptych{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}


/* === VI logo lockups (1.01–1.12): never typeset brand name with web fonts === */
.brand{display:flex;align-items:center;gap:0;text-decoration:none}
.brand-logo{display:block;height:40px;width:auto;max-width:none}
.brand-logo--on-dark{/* white lockup */}
.brand-logo--on-light{/* use logo_lockup_black.png or logo_lockup_color.png */}
.foot-brand{display:flex;align-items:center;margin-bottom:16px}
.foot-brand .brand-logo{height:44px}
/* VI lockups: IMG ONLY — never background-image + img (causes ghosting). */
.site-header .brand,.foot-brand{background-image:none!important;background:none!important}
.site-header .brand-logo{height:40px;width:auto;max-width:none;opacity:1}
.foot-brand .brand-logo{height:48px;width:auto;max-width:none;opacity:1}
@media (max-width:560px){.site-header .brand-logo{height:36px;width:auto}}
/* EN 1.09 lockup is wider than the bilingual mark. On narrow nav, scale it uniformly
   and keep Menu / lang-switch from shrinking (otherwise 中文 wraps and overlaps the wordmark). */
@media (max-width:479px){
  html[lang="en"] .nav{gap:12px}
  html[lang="en"] .nav-burger{margin-left:8px;flex-shrink:0}
  html[lang="en"] .lang-switch{flex-shrink:0}
  html[lang="en"] .site-header .brand{min-width:0;flex:0 1 auto}
  html[lang="en"] .site-header .brand-logo{width:auto;height:auto;max-height:36px;max-width:100%;object-fit:contain}
}
/* hero_mark_white.png is an opaque white box with a dashed-outline, cropped mark (VI 1.12 prohibited: outline/altered mark).
   Hidden until a full white mark (VI 1.04 white-on-teal) with transparent bg is supplied. */
.hero-graphic{display:none}
.hero .wrap{position:relative;z-index:1}

/* ===== Muscle metrics (2026-11-09) ===== */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--vi-n51)}
.stat{padding:36px 28px 36px 0;border-bottom:1px solid var(--vi-n51)}
.stat:not(:nth-child(3n)){border-right:1px solid var(--vi-n51);margin-right:28px}
.stat b{display:block;font-size:clamp(48px,5.6vw,84px);font-weight:700;letter-spacing:-.035em;line-height:.95;color:var(--teal)}
.stat b small{font-size:.38em;font-weight:600;letter-spacing:-.01em;margin-left:4px;color:var(--white)}
.stat h3{margin:18px 0 8px;font-size:19px}
.stat p{margin:0;font:500 13px/1.5 ui-monospace,Menlo,monospace;color:var(--gray-400)}
.stats.light{border-color:var(--gray-200)}
.stats.light .stat{border-color:var(--gray-200)}
.stats.light .stat b{color:var(--black)}
.stats.light .stat b small{color:var(--gray-600)}
.stats.light .stat p{color:var(--gray-600)}

/* vs matrix */
.vs{width:100%;border-collapse:collapse;font-size:15px}
.vs th,.vs td{text-align:left;padding:16px 18px;border-top:1px solid var(--vi-n51);vertical-align:top}
.vs thead th{font:600 12px/1 ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-400);border-top:0}
.vs thead th.us{color:var(--black);background:var(--teal)}
.vs tbody th{font-weight:600;color:var(--gray-400);width:22%}
.vs td.us{background:rgb(40 231 197 / .10);color:var(--white);font-weight:600;box-shadow:inset 3px 0 0 var(--teal)}
.vs td.them{color:var(--gray-400)}
.vs-note{font-size:12px;color:var(--gray-400);margin-top:16px}

/* chart crop: shows only the plot area of a rendered chart PNG */
.chart-crop{overflow:hidden;background:var(--vi-n255);border:1px solid var(--gray-200)}
.chart-crop img{width:100%;height:auto}
.chart-crop--hand{aspect-ratio:2000/560}
.chart-crop--hand img{margin-top:-8.25%}
.chart-cap{font-size:13px;color:var(--gray-600);margin-top:12px}

/* bar rows */
.bars{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.bar{display:grid;grid-template-columns:150px 1fr 70px;align-items:center;gap:12px;font-size:14px}
.bar i{display:block;height:14px;background:var(--gray-200);border-radius:2px}
.bar.us{font-weight:700}
.bar.us i{background:var(--teal);box-shadow:inset 0 0 0 1.5px var(--black)}
.bar span:last-child{font:600 13px/1 ui-monospace,Menlo,monospace;text-align:right}

/* hardware gallery */
.hw{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px}
.hw figure{background:var(--vi-n0);position:relative;overflow:hidden}
.hw img{width:100%;aspect-ratio:16/9;object-fit:cover}
.hw .wide{grid-column:1/-1}
.hw .wide img{aspect-ratio:1280/770;object-fit:cover;object-position:bottom}
.hw figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 14px 10px;font-size:12px;color:var(--vi-n255);background:linear-gradient(to top,rgb(0 0 0 / .8),rgb(0 0 0 / 0))}
.img-mesh{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 60%;background:var(--vi-n11)}

@media (max-width:900px){
  .stats{grid-template-columns:1fr 1fr}
  .stat,.stat:not(:nth-child(3n)){border-right:0;margin-right:0;padding-right:16px}
  .hw{grid-template-columns:1fr 1fr}
  .bar{grid-template-columns:110px 1fr 60px}
  .vs th,.vs td{padding:12px 10px;font-size:14px}
}
@media (max-width:560px){.stats,.hw{grid-template-columns:1fr}}

/* ===== Motion density (2026-11-09) — muted autoplay loop playsinline MP4 tiles ===== */
.motion{position:relative;overflow:hidden;background:var(--vi-n11);aspect-ratio:16/9;margin:0}
#sea-bases .motion{background:var(--vi-n245)}
.motion-vid{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:var(--vi-n11)}
.motion--tall{aspect-ratio:16/9}
.motion--square{aspect-ratio:16/9}
.motion--wide{aspect-ratio:16/9}
.motion--ui .motion-vid{object-position:right center}  /* keeps camera grid, trims the device-info sidebar */
.motion figcaption,.motion .cap{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 10px;font-size:12px;color:var(--vi-n255);
  background:linear-gradient(to top,rgb(0 0 0 / .7),rgb(0 0 0 / 0));pointer-events:none}
.motion .live{position:absolute;top:12px;left:12px;z-index:2;font:600 10px/1 ui-monospace,Menlo,monospace;letter-spacing:.1em;
  text-transform:uppercase;color:var(--black);background:var(--teal);padding:5px 8px;border-radius:var(--radius-pill)}
.motion-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.motion-row.two{grid-template-columns:1.25fr 1fr}
.motion-row.two-eq{grid-template-columns:1fr 1fr}
.motion-row+.motion-row{margin-top:12px}
.motion-row .motion{aspect-ratio:16/9;height:auto;min-height:0}
.motion-row.fixed .motion{aspect-ratio:16/9;height:auto;min-height:0}
.motion-row .motion.motion--16x9,.motion-row.fixed .motion.motion--16x9{aspect-ratio:16/9;height:auto;min-height:0}

/* Hero motion strip (teal hero) */
.hero-motion{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-top:64px}
.hero-motion .motion{border:2px solid var(--black)}
.hero-motion .stack{display:grid;grid-template-rows:1fr 1fr;gap:12px}
.hero-motion .stack .motion{aspect-ratio:auto;min-height:0}
.hero-motion>.motion{aspect-ratio:16/9}

/* image still tiles that sit next to motion */
.still{position:relative;overflow:hidden;background:var(--vi-n11);margin:0}
.still{aspect-ratio:16/9}.still img{width:100%;height:100%;object-fit:cover}
.still figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 10px;font-size:12px;color:var(--vi-n255);
  background:linear-gradient(to top,rgb(0 0 0 / .7),rgb(0 0 0 / 0))}
.still--robot-grid{aspect-ratio:1873/912}
.still--robot-grid img{object-position:center 100%}   /* 1873×939 source: crops the burned-in caption strip at the top */

.media-block{margin-top:32px}
.media-note{font-size:12px;color:var(--gray-600);margin-top:12px}
.on-dark .media-note{color:var(--gray-400)}

@media (max-width:900px){
  .motion-row,.motion-row.two,.motion-row.two-eq,.hero-motion{grid-template-columns:1fr}
  .hero-motion .stack{grid-template-rows:none;grid-template-columns:1fr 1fr}
  .hero-motion .stack .motion{aspect-ratio:960/464}
  .motion-row .motion{min-height:0;aspect-ratio:16/9;height:auto}
  .motion-row .motion.motion--16x9{aspect-ratio:16/9}
}
@media (max-width:560px){.hero-motion .stack{grid-template-columns:1fr}}


/* ===== V4 16:9 density ===== */
.motion--16x9{aspect-ratio:16/9}
.motion--bleed{width:100%}
.motion-hero{margin-top:48px}
.motion-hero .motion{aspect-ratio:16/9;border:2px solid var(--black)}
.motion-row.wide{grid-template-columns:repeat(3,1fr)}
.motion-row.wide .motion{min-height:0;aspect-ratio:16/9}
.sample-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sample-card{border:1px solid var(--gray-200);background:var(--vi-n255);display:flex;flex-direction:column;overflow:hidden}
.sample-card .motion,.sample-card .still{aspect-ratio:16/9;margin:0}
.sample-card .body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px}
.sample-card h3{margin:0;font-size:18px}
.sample-card p{margin:0;font-size:14px;color:var(--gray-600)}
.social{display:flex;gap:12px;margin-top:16px;align-items:center}
.social a{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:1.5px solid var(--vi-n51);border-radius:50%;color:var(--vi-n255);text-decoration:none}
.social a:hover{border-color:var(--teal);color:var(--teal)}
.social svg{width:16px;height:16px;fill:currentColor}
.brand-logo{height:40px;width:auto;object-fit:contain}
.form .why{font-size:11px;line-height:1.3;max-height:2.6em;overflow:hidden}
.infra-gallery{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin-top:40px}
.infra-gallery .motion,.infra-gallery .still{aspect-ratio:16/9;margin:0}
.infra-gallery .stack{display:grid;gap:12px}
.eagle-band{margin-top:48px}
.eagle-band .motion{aspect-ratio:16/9;margin-top:24px}
@media (max-width:900px){
  .sample-grid,.infra-gallery{grid-template-columns:1fr}
}

/* TeleOp deploy sequence */
.deploy-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}
.deploy-steps .step{margin:0}
.deploy-steps .step .motion{aspect-ratio:16/9;border:2px solid var(--black)}
.deploy-steps .n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--teal);color:var(--black);font-weight:700;font-size:13px;margin-bottom:10px}
.deploy-steps figcaption{font-size:13px;margin-top:8px;font-weight:600}
@media (max-width:900px){.deploy-steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.deploy-steps{grid-template-columns:1fr}}

html.hide-owners .owner,html.hide-owners .owner-toggle{display:none!important}

/* ===== ROUND1B: one figure per sample card ===== */
.sample-card>figure~figure{display:none!important}

/* ===== ROUND1B: DATASET / formats section (review P1-1) ===== */
.formats{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.fmt-list{display:flex;flex-direction:column}
.fmt-row{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:24px 0;border-top:1px solid var(--vi-n51)}
.fmt-row:last-child{border-bottom:1px solid var(--vi-n51)}
.fmt-i{font:600 13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--teal);letter-spacing:.06em}
.fmt-row h3{font:600 20px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.01em;margin:0 0 6px;color:var(--white)}
.fmt-row p{margin:0;font-size:14px;color:var(--gray-400);max-width:42ch}
.batch-strip{margin-top:32px;border-left:3px solid var(--teal);padding:20px 24px;background:var(--vi-n23);color:var(--white);font-size:15px}
.batch-strip b{color:var(--teal);font-weight:600}
.tree-panel{background:var(--vi-n23);border:1px solid var(--vi-n51);border-top:3px solid var(--teal);height:100%;display:flex;flex-direction:column}
.tree-panel .embed-bar{background:transparent;border-color:var(--vi-n51);color:var(--gray-400);padding:12px 16px}
.tree-panel .embed-bar i{background:var(--vi-n51)}
.tree-panel .embed-bar .dots i:first-child{background:var(--teal)}
.tree-panel .tree{background:transparent;color:var(--vi-n217);padding:24px;border:0;flex:1;margin:0;overflow:auto}
.tree .c{color:var(--vi-n118)}
@media (max-width:900px){
  .formats{grid-template-columns:1fr}
  .fmt-row{grid-template-columns:40px 1fr;gap:12px}
  .tree-panel .tree{overflow-x:auto;white-space:pre}
}

/* ===== ROUND1B: language switch + CJK typography ===== */
.lang-switch{display:flex;align-items:center;gap:6px;font-size:14px;margin-left:8px}
.lang-switch button{font:inherit;background:none;border:0;padding:4px 2px;cursor:pointer;color:var(--gray-600)}
.lang-switch button[aria-pressed="true"]{color:var(--black);font-weight:700;text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:3px;text-underline-offset:6px}
@media (max-width:900px){.lang-switch{margin-left:auto}.nav-burger{margin-left:12px}}
:lang(zh){--font:"Jeko","Inter","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",sans-serif}
:lang(zh) h1,:lang(zh) h2,:lang(zh) h3{letter-spacing:0;line-height:1.2}
:lang(zh){overflow-wrap:anywhere;line-break:strict}
:lang(zh) h1,:lang(zh) h2{word-break:keep-all;line-break:strict;text-wrap:balance;overflow-wrap:anywhere}
@media (max-width:600px){:lang(zh) h1,:lang(zh) h2{word-break:normal}}
:lang(zh) h2{max-width:18em}
:lang(zh) .page-hero h1{max-width:16em}
:lang(zh) .lead{max-width:30em}
:lang(zh) .eyebrow{letter-spacing:.08em}
p:empty,h1:empty,h2:empty,h3:empty,li:empty,small:empty,figcaption:empty,span.live:empty{display:none}
:lang(zh) h2{text-wrap:balance}

/* ===== ROUND1B: SEA section (infrastructure.html#sea-bases) ===== */
/* v7 P0-1: absolute fill so SEA photos never collapse to a black 0-height box */
.motion{position:relative}
.motion > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.sea-lead{border:2px solid var(--black)}
.sea-sites{display:grid;gap:32px}
.sea-site .eyebrow{margin-bottom:8px}
.sea-m{display:block;font-size:clamp(48px,5.6vw,84px);font-weight:700;letter-spacing:-.035em;line-height:.95;margin-bottom:12px}
.stats--4{grid-template-columns:repeat(4,1fr)}
.stats--4 .stat:not(:nth-child(3n)){border-right:0;margin-right:0}
.stats--4 .stat:not(:last-child){border-right:1px solid var(--gray-200);margin-right:28px}
.sea-scenes{margin-top:20px}
/* v7 P0-2: 1 big 16:9 + a column of 3 small 16:9 (3fr/1fr keeps both columns the same height, no empty cell) */
.sea-stations{display:grid;grid-template-columns:3fr 1fr;grid-template-rows:repeat(3,auto);gap:12px;margin-top:48px}
.sea-stations .big{grid-row:1/4;aspect-ratio:auto;height:auto}
.sea-stations .motion{border:2px solid var(--black)}
@media (max-width:900px){
  .stats--4{grid-template-columns:1fr 1fr}
  .stats--4 .stat{border-right:0!important;margin-right:0!important}
  .sea-stations{grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto}
  .sea-stations .big{grid-column:1/-1;grid-row:auto;aspect-ratio:16/9}
}
@media (max-width:560px){.stats--4,.sea-stations{grid-template-columns:1fr}}

/* ===== v7 ROUND1 FIX-A ===== */
/* code trees / pre never push the page wider than the viewport */
.tree,.tree-panel .tree,pre{max-width:100%;overflow-x:auto}
/* stat units stay glued to their number */
.stat b,.kpi b{white-space:nowrap}
.stat b small,.kpi b small{white-space:nowrap;font-size:.45em}
/* cross-embodiment / UI tiles fill their 16:9 frame (sources re-exported without letterbox) */
.sample-card .motion-vid,.motion--ui .motion-vid{object-fit:cover}
/* social icons on light cards (contact): visible outline + glyph */
.card .social a{border-color:var(--gray-300);color:var(--black)}
.card .social a:hover{border-color:var(--teal);color:var(--teal)}
.on-dark .card .social a,.bg-black .card .social a{border-color:var(--vi-n51);color:var(--vi-n255)}
.on-dark .card .social a:hover,.bg-black .card .social a:hover{border-color:var(--teal);color:var(--teal)}
/* SEA stations: 2-tile variant (big + one small, equal-height 16:9 pair, no empty cells) */
.sea-stations--2{grid-template-columns:1fr 1fr;grid-template-rows:auto}
.sea-stations--2 .big{grid-row:auto;grid-column:auto;aspect-ratio:16/9}
@media (max-width:560px){.sea-stations--2{grid-template-columns:1fr}}

/* ===== v7 ROUND2 FIX-A: global mobile overflow guard ===== */
html,body{max-width:100%;overflow-x:clip}
img,video,svg,canvas,iframe{max-width:100%;height:auto}
.wrap>*,[class*="grid"]>*,.fmt-row>*,.formats>*{min-width:0}
h1,h2,h3,h4,p,li,td,th,.chip,.tag,.stat small,.stat p{overflow-wrap:anywhere}
.code-scroll,.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.code-scroll pre{margin:0;font-size:12px;white-space:pre}
.table-scroll table{min-width:560px}
@media (max-width:720px){
  .fmt-row{grid-template-columns:32px minmax(0,1fr)!important}
  .fmt-row h3{font-size:15px;overflow-wrap:anywhere}
  .formats{grid-template-columns:1fr!important}
  .bench-chart,.bench-chart svg{width:100%!important;min-width:0}
}
/* nowrap is scoped to the stat number only; labels under stats wrap */
.stat,.kpi,.stat h3,.stat p,.kpi>span,.kpi em{white-space:normal}

/* ===== v7 ROUND2 FIX-C: vision band (about + index) ===== */
#vision .sec-head p+p{margin-top:16px}
.vision-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--vi-n51)}
.vision-kpi{padding:28px 24px 0 0;margin-right:24px;border-right:1px solid var(--vi-n51)}
.vision-kpi:last-child{border-right:0;margin-right:0}
.vision-kpi .n{display:block;font:600 12px/1 ui-monospace,Menlo,monospace;color:var(--teal);letter-spacing:.08em}
.vision-kpi b{display:block;margin-top:14px;font-size:clamp(20px,1.9vw,26px);font-weight:700;letter-spacing:-.015em;line-height:1.2}
.vision-kpi em{display:block;margin-top:6px;font-style:normal;font-size:13px;color:var(--gray-400)}
.vision-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:40px}
.vision-mosaic>figure{aspect-ratio:16/9;margin:0}
@media (max-width:900px){
  .vision-kpis{grid-template-columns:1fr 1fr;row-gap:28px}
  .vision-kpi{border-right:0;margin-right:0}
}
@media (max-width:560px){.vision-mosaic{grid-template-columns:1fr}}

/* ===== v7 ROUND2 FIX-D: about #benchmarks mobile overflow (.split / .bars / .table-scroll) ===== */
.wrap{max-width:min(var(--max),100%);overflow-x:clip}
.split>*,.split>div{min-width:0;max-width:100%}
.bars,.bar,.chart-crop,.chart-crop img{max-width:100%}
.bar>*{min-width:0}
.table-scroll{width:100%;max-width:100%;overflow-x:auto}
@media (max-width:720px){
  .split{grid-template-columns:1fr!important;display:grid;gap:28px}
  .table-scroll table{min-width:480px}
  .bars{width:100%}
}

/* ===== v7 ROUND2 FIX-D (pass 2) ===== */
.split>*,.split>div{min-width:0;max-width:100%}
.bars,.bar,.chart-crop,.chart-crop img{max-width:100%}
.table-scroll{width:100%;max-width:100%;overflow-x:auto}
/* .wrap{max-width:100%} intentionally NOT added: it would override --max (1280px) and uncap the desktop container.
   .wrap{max-width:min(var(--max),100%)} above already gives the same mobile guarantee. */
@media (max-width:720px){
  .split{flex-wrap:wrap}
  .split>*{flex:1 1 100%;max-width:100%}
  .table-scroll table{min-width:480px}
  .bars{width:100%}
}

/* ===== V8 product split: full 16:9 hero media on dark product heroes ===== */
.page-hero .motion-hero .motion{aspect-ratio:16/9;width:100%}
.bg-black .motion-hero .motion{border-color:var(--vi-n51)}
.page-hero .hero-strong{font-weight:700;letter-spacing:-.02em;font-size:clamp(44px,5.8vw,80px)}
.nav-links .menu a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:3px;text-underline-offset:6px}

/* ===== V9 EngramEgo dataset cases ===== */
.ego-cases-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
.ego-case{margin:0;min-width:0}
.ego-case .motion{margin:0;border:2px solid var(--black);border-radius:0}
.ego-case-cap{display:flex;flex-direction:column;gap:2px;padding:10px 2px 0;min-width:0}
.ego-case-scene{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-600);font-weight:600}
.ego-case-cap b{font-size:14px;font-weight:650;letter-spacing:-.01em;line-height:1.3;overflow-wrap:anywhere}
@media (hover:hover){
  .ego-case .motion{transition:transform .2s ease}
  .ego-case:hover .motion{transform:scale(1.02)}
}
@media (max-width:1199px){.ego-cases-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:899px){.ego-cases-grid{grid-template-columns:1fr 1fr;gap:12px}}
@media (max-width:600px){
  .ego-cases-grid{grid-template-columns:1fr 1fr;gap:10px}
  .ego-case-scene{font-size:10px;letter-spacing:.06em}
  .ego-case-cap b{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .ego-case:hover .motion{transform:none}
}

@media (max-width:600px){
  :lang(zh) #dataset-cases h2{word-break:keep-all;line-break:strict;overflow-wrap:normal;text-wrap:balance}
}

/* ===== V10 Reconstruction + compact Ego hero / playback ===== */
.page-hero--compact{padding-top:72px;padding-bottom:56px}
.page-hero--compact .lead{max-width:52ch}
.ego-playback{margin:0;border:2px solid var(--black)}
.ego-playback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.rec-stat{margin:28px 0 8px;font-weight:650;letter-spacing:-.01em}
.rec-caps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 24px;margin:32px 0 8px}
.rec-cap h3{margin:0 0 8px;font-size:16px;letter-spacing:-.015em}
.rec-cap p{margin:0;color:var(--gray-700);font-size:14px;line-height:1.5}
.rec-metrics{margin:0 0 24px;max-width:72ch}
.rec-metrics p{margin:0 0 8px}
.rec-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.rec-trio .motion, .rec-caps + .motion-row .motion{border:2px solid var(--black)}
@media (max-width:899px){
  .rec-caps{grid-template-columns:1fr 1fr}
  .rec-trio{grid-template-columns:1fr}
}
@media (max-width:600px){
  .rec-caps{grid-template-columns:1fr;gap:18px}
  :lang(zh) #scene h2, :lang(zh) #ego-recon h2, :lang(zh) .page-hero--compact h1{
    word-break:keep-all;line-break:strict;overflow-wrap:normal;text-wrap:balance
  }
}

:lang(zh) #scene h2, :lang(zh) #ego-recon h2, :lang(zh) #playback h2, :lang(zh) #dataset-cases h2, :lang(zh) .page-hero--compact h1{
  word-break:keep-all;line-break:strict;overflow-wrap:normal;text-wrap:balance
}
#scene .motion figcaption, #ego-recon .motion figcaption, #playback .motion figcaption{
  position:static;color:inherit;padding:8px 2px 0;background:none
}

/* infra cd motion tiles */
.grid-4 .motion{aspect-ratio:16/9;margin:0}
.grid-4 .motion .motion-vid{width:100%;height:100%;object-fit:cover}

.motion--ui figcaption{background:linear-gradient(to top,rgb(0 0 0 / .82),rgb(0 0 0 / .35) 55%,rgb(0 0 0 / 0))}
/* teleop hero slogan: three beats, do not split ZH phrases */
.page-hero .hero-strong--slogan{line-height:1.12;max-width:24ch;overflow-wrap:normal;word-break:normal;hyphens:manual}
.page-hero .hero-strong--slogan .hero-beat{white-space:nowrap}
:lang(zh) .page-hero .hero-strong--slogan{max-width:12em;word-break:keep-all;line-break:strict;overflow-wrap:normal;text-wrap:pretty}
@media (max-width:720px){
  .page-hero .hero-strong--slogan{max-width:none}
  .page-hero .hero-strong--slogan .hero-beat{white-space:normal}
  :lang(en) .page-hero .hero-strong--slogan{font-size:clamp(32px,8.4vw,48px)}
}


/* ===== v11 group A (index / about / contact) ===== */

/* Product + proof doorway cards: larger product names */
.v11-doors .card.feature h3{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.02em}
.v11-doors .card.feature .motion{margin:0}

/* About #focus: heading + three pillars stacked beside one video */
.v11-stack{display:flex;flex-direction:column;gap:32px;min-width:0}
.v11-stack>h2{margin-bottom:8px}
.v11-stack .pillar h3{margin:0 0 10px}
.v11-stack .pillar p{margin:0}
.v11-sticky{position:sticky;top:96px}

@media (max-width:720px){
  .v11-stack{gap:24px}
  .v11-sticky{position:static}
  .v11-doors{grid-template-columns:1fr}
}

/* ===== v11 group B: teleop.html + ego.html ===== */

/* Ego hero: text left, 16:9 video right */
.v11-hero-split{align-items:center;gap:48px}
.v11-hero-split>*{min-width:0}
.v11-hero-split .hero-strong{font-size:clamp(36px,4.4vw,60px);max-width:14ch}
:lang(zh) .v11-hero-split .hero-strong{max-width:12em}
.v11-hero-split .motion{aspect-ratio:16/9;width:100%;margin:0;border:2px solid var(--vi-n51)}

/* Ego hardware: two stills side by side, live interface full width below */
.hw.v11-hw2{grid-template-columns:1fr 1fr}

/* TeleOp #scenes: text + 16:9 video on black */
.v11-scenes{align-items:center}
.v11-scenes>*{min-width:0}
.v11-scenes h2{margin-top:8px}
.v11-scenes .lead{margin-top:16px;max-width:46ch}
.v11-scenes .cta-row{margin-top:28px}
.v11-scenes .motion{aspect-ratio:16/9;width:100%;margin:0;border:2px solid var(--vi-n51)}

@media (max-width:720px){
  .v11-hero-split,.v11-scenes{grid-template-columns:1fr!important;gap:28px}
  .v11-hero-split .hero-strong{max-width:none;font-size:clamp(32px,8.4vw,44px)}
  .hw.v11-hw2{grid-template-columns:1fr}
}

/* ===== v11 group C — reconstruction.html + quality.html ===== */

/* Reconstruction hero: text + 16:9 video side by side */
.v11-rec-hero .split{align-items:center}
.v11-rec-hero .hero-strong{font-size:clamp(34px,4.2vw,60px);max-width:18ch}
:lang(zh) .v11-rec-hero .hero-strong{max-width:13em}
.v11-rec-hero .motion{border:2px solid var(--vi-n51)}

/* Shared helpers */
.v11-sub{margin:10px 0 24px}
.v11-top{align-items:start}
.v11-gap{margin-top:32px}
.v11-rec .metric-pair{flex-wrap:wrap;gap:24px 40px}
.v11-rec .metric-pair span{line-height:1.4;max-width:24ch}
.v11-rec .footnote{max-width:60ch}

/* Quality: numbered production rows (text + two screen recordings) */
.v11-qa-rows{list-style:none;margin:0;padding:0;counter-reset:v11qa}
.v11-qa-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:48px;align-items:start;padding:40px 0;border-top:1px solid var(--gray-200)}
.v11-qa-row:first-child{border-top:2px solid var(--black)}
.v11-qa-row>*{min-width:0}
.v11-qa-text h3{margin:0 0 16px}
.v11-qa-text h3::before{counter-increment:v11qa;content:"0" counter(v11qa);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-right:12px;border-radius:999px;background:var(--teal);color:var(--black);font:700 13px/1 ui-monospace,Menlo,monospace;vertical-align:middle}
.v11-qa-row .motion-row{margin:0}

/* Quality: tiers beside a feature video */
.v11-tiers{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px;align-items:start}
.v11-tiers>.motion{border:2px solid var(--black);position:sticky;top:96px}
.v11-tier-stack{display:grid;gap:12px}
.v11-tier-stack .card{padding:22px 24px;gap:10px}
.v11-tier-stack .tier li{padding:8px 0;font-size:14px}

/* Quality: dark formats panel inside a white section */
.v11-fmt-panel{margin-top:64px;background:var(--ink);color:var(--white);padding:clamp(24px,4vw,56px)}
.v11-fmt-panel h2{color:var(--white)}
.v11-fmt-panel .sec-head{margin-bottom:40px}
.v11-fmt-panel .sec-head p{color:var(--gray-400)}
.v11-fmt-panel .fmt-row{grid-template-columns:minmax(0,1fr)}
.v11-fmt-panel .batch-strip{margin-bottom:0}

#qc .split a{font-weight:600;text-decoration-color:var(--teal);text-decoration-thickness:2px}

@media (max-width:900px){
  .v11-qa-row{grid-template-columns:minmax(0,1fr);gap:24px}
}
@media (max-width:720px){
  .v11-rec-hero .split,.v11-tiers,.v11-qa-row{grid-template-columns:minmax(0,1fr);gap:24px}
  .v11-tiers>.motion{position:static}
  .v11-qa-row .motion-row.two-eq{grid-template-columns:minmax(0,1fr)}
  .v11-fmt-panel{margin-left:0;margin-right:0}
  .v11-fmt-panel .fmt-row{grid-template-columns:minmax(0,1fr)!important}
  .v11-rec .metric-pair b{font-size:40px}
}

/* v11 polish */
.ego-cases-grid{grid-template-columns:repeat(3,1fr)}
@media (max-width:899px){.ego-cases-grid{grid-template-columns:1fr 1fr}}
.deploy-steps figcaption{font-size:18px;margin-top:10px;font-weight:700}
.deploy-steps .n{width:34px;height:34px;font-size:15px}
.cta-band h2{text-wrap:balance}
html[lang="zh-CN"] .cta-band h2{max-width:none}
/* v11 nav: six items + lang + CTA, never wrap mid-word; collapse to Menu ≤1280px */
.nav-links>li>a,.nav>.btn,.lang-switch,.lang-switch button{white-space:nowrap}
.nav{gap:24px}
.nav-links{gap:24px}
@media (max-width:1080px){
  .nav-burger{display:block;margin-left:auto;cursor:pointer;font-size:14px;font-weight:600;border:1.5px solid var(--vi-n0);border-radius:999px;padding:8px 14px}
  .nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:var(--vi-n255);flex-direction:column;align-items:flex-start;padding:16px var(--pad-x) 28px;border-bottom:1px solid var(--gray-200);gap:14px;max-height:calc(100vh - 72px);overflow:auto}
  .nav-toggle:checked~.nav-links{display:flex}
  .menu{position:static;display:block;border:0;padding:4px 0 0 12px}
  .has-menu>a::after{content:""}
  .lang-switch{margin-left:12px}
}
.nav-links{gap:18px;flex-shrink:0}
.nav-links>li>a{font-size:14px}
.lang-switch,.nav>.btn{flex-shrink:0}

/* Shared navigation and editorial layout */
.site-header .nav { overflow:visible; max-width:1440px; gap:24px; }
.site-header .brand { flex:none; }
.site-header .brand-logo { max-width:170px; object-fit:contain; }
.site-header .nav-links { gap:clamp(14px,2vw,28px); }
.site-header .nav a, .site-header .nav button, .lang-switch { white-space:nowrap; }
.site-header .nav-burger { font-family:inherit; background:white; color:var(--ink); }
.site-header .lang-switch { margin-left:0; flex:none; }
.site-header .nav .btn { flex:none; }
.site-header .menu { z-index:10; min-width:220px; }
.site-header .menu small { white-space:normal; }
.site-header .nav-mobile-cta { display:none; }
:focus-visible { outline:3px solid var(--vi-n118); outline-offset:4px; }
section[id],main [id] { scroll-margin-top:82px; }
@media (max-width:1080px) {
  .site-header .nav { justify-content:flex-start; gap:16px; }
  .site-header .nav-burger { display:block; margin-left:auto; padding:8px 15px; font-size:14px; font-weight:600; border-radius:99px; border:1px solid var(--ink); cursor:pointer; }
  .site-header .nav-links { display:none; flex-direction:column;align-items:stretch;position:absolute;top:100%;right:0;left:0;gap:0;padding:8px var(--pad-x) 18px;background:white;overflow:auto;max-height:calc(100dvh - 72px);border-bottom:1px solid var(--gray-200); }
  .site-header .nav.open .nav-links { display:flex; }
  .site-header .nav-links>li>a { display:block;padding:8px 0;font-weight:600; }
  .site-header .nav-links .menu { position:static;display:block;border:0;padding:0 0 5px 12px;min-width:0; }
  .site-header .menu a { padding:4px 0;font-size:14px; }
  .site-header .menu small { display:none; }
  .site-header .has-menu>a::after { content:none; }
  .site-header .nav>.btn { display:none; }
  .site-header .nav-mobile-cta { display:block; }
  .site-header .lang-switch { margin-left:0; }
}
@media (max-width:480px) {
  .site-header .nav { height:62px;gap:12px; }
  .site-header .brand-logo { height:31px;max-width:127px; }
  .site-header .nav-burger { font-size:13px;padding:7px 12px; }
  .site-header .lang-switch { gap:4px;font-size:13px; }
  .site-header .nav-links { max-height:calc(100dvh - 62px); }
  section[id],main [id] { scroll-margin-top:68px; }
}
.site-header .nav-burger[aria-expanded="true"] { background:var(--ink);color:white; }
.homepage { background:var(--vi-n11); }
.home-main { background:var(--vi-n11);color:var(--vi-n245); }
.home-hero { display:grid;align-items:center;padding:clamp(58px,7.4vh,92px) 0;min-height:calc(100svh - 145px); }
.home-layout { width:100%;max-width:1440px;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(34px,4.7vw,75px);align-items:center; }
.home-kicker { margin:0 0 23px;font-size:15px;letter-spacing:.035em;font-weight:600;color:var(--vi-n189); }
.home-copy h1, :lang(zh) .home-copy h1 { margin:0;max-width:100%;font-size:clamp(52px,5.4vw,86px);line-height:1.01;letter-spacing:-.055em;overflow-wrap:normal;font-weight:650; }
.home-copy h1 span { display:block;color:var(--teal);margin-bottom:4px; }
:lang(zh) .home-copy h1 { font-size:clamp(48px,4.4vw,70px);letter-spacing:-.055em;line-height:1.13; }
:lang(zh) .home-copy h1 span { letter-spacing:-.04em;font-size:1.19em; }
.home-intro { margin:25px 0 0;max-width:42ch;color:var(--vi-n217);font-size:clamp(16px,1.3vw,19px);line-height:1.55; }
:lang(zh) .home-intro { max-width:28em;line-height:1.72; }
.home-actions { margin-top:32px;display:flex;gap:24px;align-items:center;flex-wrap:wrap; }
.home-primary { border-color:var(--teal);background:var(--teal);color:var(--vi-n23); }
.home-primary:hover { border-color:white;background:white; }
.home-secondary { text-decoration:none;font-weight:600;font-size:15px;border-bottom:1px solid var(--vi-n153);padding-block:4px; }
.home-secondary:hover { color:var(--teal); }
.home-gallery { min-width:0; }
.home-selector { display:flex;border-bottom:1px solid var(--vi-n77);align-items:stretch;gap:clamp(12px,2.3vw,32px);margin-bottom:16px; }
.home-selector button { appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer;padding:8px 0 13px;color:var(--vi-n189);font:600 clamp(12px,1.07vw,15px)/1.35 var(--font); }
.home-selector button[aria-pressed="true"] { color:var(--teal);border-bottom-color:var(--teal); }
.home-selector button:hover { color:white; }
.home-panel { margin:0; }
.home-panel[hidden] { display:none; }
.home-media { aspect-ratio:16 / 10;position:relative;overflow:hidden;background:var(--vi-n23);border-radius:3px; }
.home-film { position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover; }
#demo-recon .home-film { object-fit:contain; }
.home-panel figcaption { display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-top:13px;color:var(--vi-n189);font-size:13px;line-height:1.5;min-height:3.15em; }
.home-panel figcaption span { max-width:45ch; }
.home-detail { color:var(--vi-n245);text-decoration:none;font-weight:600;white-space:nowrap; }
.home-detail::after { content:" ↗";color:var(--teal); }
.home-detail:hover { text-decoration:underline; }
.te-footer { padding:30px 0;background:var(--vi-n23);color:var(--vi-n217);border-top:1px solid var(--vi-n51); }
.te-footer .wrap { display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;max-width:1440px; }
.te-footer .foot-brand { margin:0; }
.te-footer .brand-logo { height:34px;width:auto;max-width:152px; }
.te-footer nav,.te-footer .foot-contact { display:flex;gap:10px 20px;align-items:center;flex-wrap:wrap; }
.te-footer a { font-size:14px;line-height:1.6;text-decoration:none; }
.te-footer a:hover {color:white;text-decoration:underline;}
.te-footer .copyright {font-size:12px;color:var(--vi-n153);}
.homepage .te-footer { padding:16px 0;background:var(--vi-n11); }
.homepage .te-footer .foot-brand {display:none;}
.ego-playback .ego-player {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--vi-n23);}
.form-send-hint {margin:10px 0 0;font-size:13px;color:var(--gray-600);}
:lang(zh) .page-hero--compact h1, :lang(zh) #dataset-cases h2, :lang(zh) #scene h2, :lang(zh) #ego-recon h2, :lang(zh) #playback h2 { word-break:normal;overflow-wrap:break-word;line-break:strict; }
.eyebrow,.live,.vs thead th,.foot-grid h4,.ego-case-scene {text-transform:none;}
@media(max-width:880px) {
  .home-hero {min-height:0;padding:46px 0 38px;}
  .home-layout {grid-template-columns:1fr;gap:32px;}
  .home-copy h1,:lang(zh) .home-copy h1 {font-size:clamp(44px,7vw,65px);}
  .home-copy h1 span {display:inline;margin-right:.20em;}
  .home-intro,:lang(zh) .home-intro {max-width:60ch;margin-top:16px;}
  .home-kicker {margin-bottom:14px;}
  .home-actions {margin-top:21px;}
  .home-media {aspect-ratio:16 / 9;}
}
@media(max-width:560px) {
  .home-hero {padding:32px 0 22px;}
  .home-layout {gap:24px;}
  .home-copy h1,:lang(zh) .home-copy h1 {font-size:clamp(40px,9.8vw,54px);}
  .home-copy h1 span {display:block;margin-bottom:2px;}
  .home-intro {font-size:15px;line-height:1.5;}
  .home-kicker {font-size:13px;margin-bottom:11px;}
  .home-primary {padding:10px 17px;font-size:14px;}
  .home-selector {gap:18px;margin-bottom:10px;}
  .home-selector button {font-size:12px;padding:6px 0 9px;}
  .home-panel figcaption {font-size:12px;gap:7px;flex-wrap:wrap;min-height:0;}
  .te-footer {padding:22px 0;}
  .te-footer .wrap {gap:12px;}
  .te-footer .foot-contact,.te-footer nav {gap:8px 14px;}
  .te-footer a {font-size:12px;}
}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto!important;}}

.owner,.owner-toggle{display:none!important}
.phrase{display:inline-block;white-space:nowrap}.rd-volume{margin:36px 0 0;border-block:1px solid var(--vi-n217);padding:21px 0;display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:24px;align-items:center}.rd-volume strong{display:block;font-size:clamp(30px,3.25vw,46px);line-height:1.1;letter-spacing:-.05em;font-weight:650}.rd-volume span,.rd-volume p{font-size:14px;color:var(--vi-n77);margin:5px 0 0}.rd-volume p{max-width:36ch}@media(max-width:650px){.rd-volume{grid-template-columns:1fr 1fr;gap:12px}.rd-volume p{grid-column:1/-1;max-width:none}}



/* Company */
.company-page [id] { scroll-margin-top: 90px; }
.company-page section { padding: clamp(50px, 6.4vw, 90px) 0; }
.company-page .company-intro { background: var(--vi-n245); }
.company-intro-layout { display: grid; align-items: center; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); gap: clamp(32px, 5.4vw, 82px); }
.company-page .eyebrow { color: var(--vi-n77); margin: 0 0 22px; }
.company-intro h1 { font-size: clamp(42px, 4.9vw, 70px); max-width: 15ch; line-height: 1.03; letter-spacing: -.045em; }
.company-lead { margin: 24px 0 0; max-width: 49ch; color: var(--vi-n77); font-size: clamp(17px, 1.36vw, 20px); line-height: 1.56; }
.company-hero-figure img { width: 100%; height: auto; border-radius: 5px; }
.company-hero-figure figcaption { margin-top: 11px; color: var(--vi-n92); font-size: 13px; line-height: 1.48; }
.company-page h2 { max-width: none; font-size: clamp(32px, 3.4vw, 49px); line-height: 1.13; letter-spacing: -.035em; margin-bottom: clamp(26px, 3.0vw, 40px); }
.company-publications { border-bottom: 1px solid var(--gray-200); }
.company-publication { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px; align-items: center; padding: 24px 0; border-top: 1px solid var(--gray-200); }
.company-publication .company-venue { margin: 0 0 6px; color: var(--vi-n92); font-size: 13px; letter-spacing: .025em; font-weight: 600; }
.company-publication h3, .company-people h3 { font-size: clamp(23px, 2.1vw, 29px); line-height: 1.24; }
.company-publication h3 a, .company-related a { text-decoration: none; }
.company-publication h3 a:hover, .company-related a:hover { text-decoration: underline; text-underline-offset: 4px; }
.company-link-arrow { color: var(--vi-n92); margin-inline-start: .4em; font-size: .84em; }
.company-publication > p { max-width: 58ch; margin: 0; line-height: 1.6; color: var(--vi-n77); }
.company-related { margin-top: 24px; }
.company-related a { font-size: 15px; font-weight: 600; color: var(--vi-n77); }
.company-team { background: var(--vi-n245); }
.company-people { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(26px, 4vw, 64px); }
.company-people article { border-top: 1px solid var(--vi-n189); padding-top: 21px; }
.company-person-role { font-weight: 600; color: var(--vi-n77); font-size: 14px; margin: 8px 0 0; }
.company-person-focus { font-size: 16px; line-height: 1.55; max-width: 35ch; margin: 12px 0 0; color: var(--vi-n77); }
:lang(zh) .company-intro h1 { max-width: 10.5em; letter-spacing: -.036em; line-height: 1.16; }
@media(max-width: 800px) {
  .company-intro-layout { grid-template-columns: 1fr; gap: 28px; }
  .company-intro h1 { max-width: 19ch; }
  .company-hero-figure { max-width: 620px; }
  .company-publication { gap: 22px; }
}
@media(max-width: 640px) {
  .company-page section { padding: 44px 0; }
  .company-page .eyebrow { margin-bottom: 14px; }
  .company-intro h1 { font-size: clamp(36px, 7.5vw, 46px); }
  .company-lead { margin-top: 18px; }
  .company-publication { grid-template-columns: 1fr; gap: 10px; padding: 21px 0; }
  .company-people { grid-template-columns: 1fr; gap: 20px; }
  .company-people article { padding-top: 17px; }
  .company-person-focus { margin-top: 7px; max-width: none; }
}



/* Shared layout for product selection, sample delivery and reconstruction demonstrations. */
:is(.rec-page,.product-index,.data-page) .rd-section{
  padding-block:clamp(56px,6.8vw,104px);
}
:is(.rec-page,.product-index,.data-page) [id]{
  scroll-margin-top:96px;
}
:is(.rec-page,.product-index,.data-page) .rd-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.86fr);
  align-items:end;
  gap:clamp(24px,5vw,78px);
  margin-bottom:clamp(28px,3.5vw,52px);
}
:is(.rec-page,.product-index,.data-page) .rd-head p{
  margin:0;
  max-width:56ch;
  line-height:1.6;
}
:is(.rec-page,.product-index,.data-page) :is(h1,h2,h3){
  text-wrap:balance;
  overflow-wrap:break-word;
}
:is(.product-index,.data-page) .rd-head h1,.rec-page .rd-hero h1{
  max-width:20ch;
  font-size:clamp(40px,5.2vw,72px);
  line-height:1.08;
}
:is(.product-index,.data-page) .eyebrow{margin-bottom:14px}
:is(.rec-page,.product-index,.data-page) .rd-link{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  width:fit-content;
  font-size:15px;
  font-weight:650;
  text-decoration:underline;
  text-decoration-color:var(--gray-300);
  text-underline-offset:.32em;
}
:is(.rec-page,.product-index,.data-page) .rd-link::after{content:"→"}
:is(.rec-page,.product-index,.data-page) .rd-link:hover{ text-decoration-color:currentColor }
:is(.rec-page,.data-page) .rd-jumps{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:22px}
:is(.rec-page,.data-page) .rd-jumps a[href^="#"]::after{content:"↓"}
:is(.rec-page,.product-index,.data-page) .rd-endrow{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 28px;
  justify-content:space-between;
  margin-top:28px;
  padding-top:20px;
  border-top:1px solid var(--gray-300);
}
:is(.rec-page,.product-index,.data-page) .rd-endrow p{margin:0}
.rec-page .rd-hero{padding-block:clamp(48px,5.8vw,88px)}
.rec-page .rd-hero h1{max-width:15ch}
.rec-page .rd-hero .lead{font-size:clamp(16px,1.35vw,20px);margin-top:20px;max-width:44ch}
.rec-page .rd-split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,4.4vw,68px);align-items:center}
.rec-page .rd-two,.rec-page .rd-three{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.rec-page .rd-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.rec-page .rd-figure{display:flex;flex-direction:column;gap:9px;margin:0}
.rec-page .rd-figure img,.rec-page .rd-figure video,.data-page .rd-sample video,.product-index .rd-product img{
  display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--ink);
}
.rec-page .rd-figure figcaption{position:static;color:var(--gray-600);margin:0;padding:0;background:none;font-size:14px;line-height:1.5}
.rec-page .on-dark .rd-figure figcaption{color:var(--vi-n189)}
.rec-page .rd-unit{border-top:1px solid var(--gray-200);padding-top:clamp(28px,3.6vw,52px)}
.rec-page .rd-unit+.rd-unit{margin-top:clamp(42px,5vw,72px)}
.rec-page .rd-copy{margin-bottom:20px;max-width:76ch}
.rec-page .rd-copy p,.rec-page .rd-body p{margin:10px 0 0;line-height:1.65}
.rec-page .rd-body .rd-note{margin-top:22px;padding-left:16px;border-left:3px solid var(--teal);font-size:14px}
.rec-page .rd-detail{width:fit-content;max-width:70ch;margin-top:20px;font-size:14px}
.rec-page .rd-detail summary{cursor:pointer;font-weight:650;text-decoration:underline;text-underline-offset:.25em}
.rec-page .rd-detail p{margin:12px 0 0}
.product-index .rd-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,32px)}
.product-index .rd-product{display:flex;flex-direction:column;border:1px solid var(--gray-200);background:white}
.product-index .rd-product img{object-fit:cover}
.product-index .rd-product-copy{display:flex;align-items:flex-start;flex-direction:column;flex:1;padding:clamp(16px,2vw,28px)}
.product-index .rd-product h2,.data-page .rd-sample h2{font-size:clamp(21px,2.1vw,30px);max-width:none}
.product-index .rd-product p{margin:12px 0 20px;color:var(--vi-n77)}
.product-index .rd-product a{margin-top:auto}
.data-page .rd-samples,.data-page .rd-delivery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.data-page .rd-sample h2{margin:14px 0 6px}
.data-page .rd-sample p{margin:0;max-width:58ch;color:var(--vi-n77)}
.data-page .rd-anchor{display:block;height:0}
.data-page .rd-delivery{gap:clamp(32px,7vw,108px)}
.data-page .rd-delivery dl{margin:16px 0 0}
.data-page .rd-delivery dl>div{border-top:1px solid var(--vi-n77);padding:16px 0}
.data-page .rd-delivery dt{color:var(--teal);font-weight:650}
.data-page .rd-delivery dd{margin:5px 0 0;color:var(--vi-n189);max-width:52ch}
@media(max-width:820px){
  :is(.rec-page,.product-index,.data-page) .rd-head,.rec-page .rd-split{grid-template-columns:1fr;gap:18px}
  .rec-page .rd-hero .rd-split{gap:28px}
  .rec-page .rd-hero h1{max-width:20ch}
  .product-index .rd-products{grid-template-columns:1fr}
  .product-index .rd-product{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center}
}
@media(max-width:600px){
  .rec-page .rd-two,.rec-page .rd-three,.data-page .rd-samples,.data-page .rd-delivery,.product-index .rd-product{grid-template-columns:minmax(0,1fr)}
  .rec-page .rd-two,.rec-page .rd-three{gap:18px}
  .product-index .rd-products{gap:22px}
  :is(.rec-page,.product-index,.data-page) [id]{scroll-margin-top:84px}
  :is(.rec-page,.product-index,.data-page) .rd-head h1,.rec-page .rd-hero h1{font-size:clamp(32px,8.4vw,48px);max-width:100%}
  :lang(zh) .rec-page :is(#scene,#ego-recon) h2,:lang(zh) :is(.rec-page,.product-index,.data-page) :is(h1,h2){
    max-width:100%;word-break:normal;line-break:strict;overflow-wrap:anywhere;text-wrap:balance;
  }
}
.te-footer nav,.te-footer .foot-contact {column-gap:18px}.te-footer [data-motion-preference]{background:none;border:none;color:inherit;cursor:pointer;padding:0;font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px}.te-footer .foot-brand{flex:none}.te-footer .foot-contact .copyright{white-space:nowrap}
#sea-bases .eyebrow,#sea-bases .live{text-transform:uppercase}


/* Brand entrance and full recordings */
.homepage .lobby-page {background:var(--vi-n23);color:var(--vi-n255);}
.homepage .lobby-hero {position:relative;isolation:isolate;min-height:520px;height:calc(100svh - 140px);max-height:1000px;padding:0;display:flex;align-items:flex-end;overflow:hidden;}
.lobby-photo,.lobby-scrim {position:absolute;inset:0;width:100%;height:100%;z-index:-2;}
.lobby-photo {max-width:none;object-fit:cover;object-position:44% 51%;}
.lobby-scrim {z-index:-1;background:linear-gradient(90deg,rgb(11 11 11 / .02) 0%,rgb(11 11 11 / .02) 39%,rgb(11 11 11 / .43) 70%,rgb(11 11 11 / .64) 100%),linear-gradient(0deg,rgb(11 11 11 / .53),transparent 63%);}
.lobby-container{width:100%;padding:0 clamp(30px,5.1vw,100px) clamp(38px,6.2vh,82px);margin:0 auto;max-width:1900px;}
.lobby-message{width:44%;max-width:680px;margin-left:auto;}
.lobby-kicker{font-size:14px;line-height:1;margin:0 0 16px;color:var(--teal);font-weight:650;letter-spacing:.055em;}
.lobby-message h1,.lobby-message:lang(zh) h1{max-width:none;font:650 clamp(41px,4vw,74px)/1.05 var(--font);letter-spacing:-.043em;color:var(--vi-n255);text-wrap:balance;margin:0;word-break:normal;overflow-wrap:normal;}
:lang(zh) .lobby-message h1{font-size:clamp(42px,3.65vw,66px);line-height:1.14;letter-spacing:-.045em;max-width:8.8em;}
.lobby-description{font-size:clamp(16px,1.35vw,22px);line-height:1.55;color:var(--vi-n245);margin:18px 0 0;max-width:44ch;}
.lobby-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:26px;}
.lobby-company{color:white;text-decoration:none;border-bottom:1px solid var(--vi-n217);font-size:15px;font-weight:600;padding:4px 0;}
.lobby-company:hover{color:var(--teal);border-color:var(--teal);}
.factory-size{margin:22px 0 0;color:var(--teal);line-height:1;}
.factory-size strong{font-size:clamp(44px,5vw,82px);letter-spacing:-.055em;font-weight:650;}
.factory-size span{font-size:clamp(19px,1.8vw,29px);font-weight:550;}
.factory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,28px);}
.factory-grid .full-recording,.field-hero .full-recording{margin:0;}
.factory-grid figcaption,.field-hero .full-recording figcaption{font-size:14px;line-height:1.45;margin:9px 0 0;}
.field-page .full-recording video,.rec-page .full-recording video{display:block;width:100%;height:auto;aspect-ratio:var(--native-ratio,16/9);object-fit:contain;max-height:none;position:static;background:var(--vi-n23);}
.field-page .factory-tasks .rd-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,4vw,60px);align-items:end;margin-bottom:32px;}
.field-page .factory-tasks h2{max-width:16ch;}
.field-page .factory-tasks .rd-head p{margin:0;max-width:55ch;}
.rec-page .full-recording{width:100%;margin:0;}
.rec-page .rd-detail.full-detail{width:100%;max-width:100%;border-top:1px solid var(--gray-200);padding-top:14px;}
.rec-page .full-detail[open] summary{margin-bottom:16px;}
.rec-page .full-detail video{max-width:100%;}
.rec-page .rd-unit .rd-note{margin:22px 0 12px;padding:4px 0 4px 16px;border-left:3px solid var(--teal);font-size:15px;line-height:1.6;}
.film-chapters{display:flex;gap:8px 12px;flex-wrap:wrap;margin:13px 0 22px;}
.film-chapters button{color:var(--ink);background:var(--vi-n255);border:1px solid var(--vi-n217);border-radius:99px;font:600 13px/1.2 var(--font);padding:8px 13px;cursor:pointer;}
.film-chapters button:hover,.film-chapters button:focus-visible{background:var(--teal-soft);border-color:var(--vi-n92);}
@media(max-width:850px) {
  .lobby-message{width:48%;}
  .lobby-message h1{font-size:clamp(30px,4.8vw,45px);}
  :lang(zh) .lobby-message h1{font-size:clamp(32px,4.8vw,47px);}
  .lobby-container{padding:0 28px 36px;}
  .lobby-description{font-size:16px;}
  .factory-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:620px) {
  .homepage .lobby-hero{height:auto;min-height:0;max-height:none;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:var(--vi-n23);}
  .lobby-photo{display:block;position:relative;inset:auto;z-index:0;object-position:19% center;object-fit:cover;width:100%;height:clamp(245px,42svh,380px);flex:0 0 auto;}
  .lobby-scrim{display:none;}
  .lobby-container{width:100%;padding:clamp(24px,4.4svh,40px) var(--pad-x) 32px;}
  .lobby-message{margin:0;width:100%;max-width:34rem;}
  .lobby-kicker{margin:0 0 12px;font-size:12px;}
  .lobby-message h1{font-size:clamp(32px,8vw,44px);line-height:1.1;}
  :lang(zh) .lobby-message h1{font-size:clamp(34px,8.5vw,44px);line-height:1.16;}
  .lobby-description{margin-top:13px;font-size:15px;}
  .lobby-actions{margin-top:20px;gap:12px 20px;}
  .factory-grid,.field-page .factory-tasks .rd-head{grid-template-columns:1fr;}
}

.product-index .rd-product video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:var(--vi-n23);}



/* Company story */
.about-story .company-intro {
  background: var(--vi-n245);
}
.about-story .company-intro-layout {
  grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
  gap: clamp(28px, 4.8vw, 68px);
}
.about-story .company-intro h1 {
  font-size: clamp(40px, 4.45vw, 67px);
  max-width: 17ch;
  text-wrap: balance;
}
.about-story .company-intro .company-lead { font-size: clamp(16px, 1.22vw, 19px); }
:lang(zh) .about-story .company-intro h1 { max-width: 9em; }
.about-story .about-office {
  margin: 0;
  overflow: hidden;
  border-radius: 6px;
  background: var(--vi-n51);
}
.about-story .about-office img {
  width: 100%;
  height: auto;
  aspect-ratio: 1.46;
  object-fit: cover;
  object-position: 30% center;
}
.about-story .about-actions, .about-story .about-source-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
}
.about-story .about-actions { margin-top: 26px; }
.about-story .btn { padding: 11px 18px; font-size: 14px; gap: 5px; }
.about-story .about-arrow { font-size: .92em; margin-inline-start: .4em; }
.about-story .about-text-link, .about-story .about-person-link { text-decoration: none; }
.about-story .about-text-link {
  color: var(--vi-n77);
  line-height: 1.55;
  font-size: 15px;
  font-weight: 600;
}
.about-story .about-text-link:hover, .about-story .about-person-link:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.about-story .about-team { background: var(--vi-n255); }
.about-story .about-founder {
  display: grid;
  grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr);
  gap: clamp(27px, 5vw, 76px);
  align-items: center;
}
.about-story .about-founder-picture {
  max-width: 340px;
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  background: var(--vi-n23);
}
.about-story .about-founder-picture img {
  width: 100%;
  aspect-ratio: .88;
  height: auto;
  object-fit: cover;
  object-position: 50% 18%;
}
.about-story .about-role {
  color: var(--vi-n92);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 600;
  margin: 0;
}
.about-story .about-founder h3 {
  margin: 5px 0 14px;
  font-size: clamp(34px, 4.2vw, 55px);
  line-height: 1.12;
  letter-spacing: -.03em;
}
.about-story .about-copy {
  max-width: 65ch;
  color: var(--vi-n77);
  font-size: 16px;
  line-height: 1.65;
  margin: 0;
}
.about-story .about-honors {
  list-style-type: disc;
  margin: 19px 0 18px;
  padding-inline-start: 19px;
}
.about-story .about-honors li {
  padding-inline-start: 3px;
  margin: 6px 0;
  font-size: 15px;
  line-height: 1.53;
}
.about-story .about-honors li::marker { color: var(--vi-n92); }
.about-story .about-source-links .about-text-link { font-size: 13px; }
.about-story .about-researchers {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 4vw, 52px);
  margin-top: clamp(28px, 4.5vw, 54px);
}
.about-story .about-researcher {
  border-top: 1px solid var(--vi-n217);
  display: grid;
  grid-template-columns: clamp(78px, 8.7vw, 113px) minmax(0, 1fr);
  column-gap: clamp(16px, 2vw, 26px);
  padding-top: clamp(18px, 2.2vw, 29px);
  align-items: start;
}
.about-story .about-researcher img {
  width: 100%;
  height: auto;
  aspect-ratio: .83;
  object-fit: cover;
  object-position: 50% 14%;
  border-radius: 3px;
}
.about-story .about-researcher h3 { font-size: clamp(21px, 1.9vw, 28px); }
.about-story .about-person-link .about-arrow { font-size: .68em; color: var(--vi-n92); }
.about-story .about-researcher .about-role { margin: 5px 0 8px; font-size: 13px; }
.about-story .about-researcher .about-copy { font-size: 15px; }
.about-story .about-method { color: white; background: var(--vi-n23); }
.about-story .about-method-intro, .about-story .about-outlook {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  column-gap: clamp(28px, 5vw, 80px);
  align-items: start;
}
.about-story .about-method h2 { margin: 0; max-width: 15ch; text-wrap: balance; }
.about-story .about-method p {
  margin: 0;
  color: var(--vi-n217);
  line-height: 1.65;
  font-size: clamp(16px, 1.24vw, 18px);
}
.about-story .about-loop {
  list-style: none;
  margin: clamp(28px, 4vw, 50px) 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 2.9vw, 42px);
}
.about-story .about-loop li { position: relative; padding-top: 15px; border-top: 1px solid var(--vi-n118); }
.about-story .about-loop li::before {
  content: '';
  position: absolute;
  top: -3px;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--vi-brand);
}
.about-story .about-loop h3 { color: var(--vi-n217); font-size: clamp(19px, 1.8vw, 25px); margin: 0 0 8px; }
.about-story .about-loop p { font-size: 15px; }
.about-story .about-outlook { border-top: 1px solid var(--vi-n77); padding-top: clamp(23px, 3vw, 35px); }
.about-story .about-outlook h3 { font-size: clamp(23px, 2.25vw, 31px); line-height: 1.24; text-wrap: balance; }
.about-story .about-publications-top {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: clamp(25px, 3.4vw, 43px);
}
.about-story .about-publications-top h2 { margin-bottom: 12px; }
.about-story .about-publications-top .btn { flex: none; }
.about-story .company-publication h3 { line-height: 1.3; }
.about-story .company-publication .about-arrow { color: var(--vi-n92); font-size: .68em; }
@media (max-width: 850px) {
  .about-story .company-intro-layout { grid-template-columns: 1fr; }
  .about-story .about-office { max-width: 680px; }
  .about-story .about-office img { aspect-ratio: 1.78; }
  .about-story .about-founder { grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 26px; }
  .about-story .about-researchers { gap: 24px; }
  .about-story .about-researcher { grid-template-columns: 72px minmax(0,1fr); column-gap: 15px; }
  .about-story .about-loop { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 30px; }
}
@media (max-width: 620px) {
  .about-story .company-intro h1 { font-size: clamp(35px, 7.4vw, 46px); }
  .about-story .about-founder { display: block; }
  .about-story .about-founder-picture { width: min(67%, 235px); margin-bottom: 19px; }
  .about-story .about-founder-picture img { aspect-ratio: 1.05; }
  .about-story .about-honors { margin: 14px 0; }
  .about-story .about-researchers { grid-template-columns: 1fr; gap: 22px; }
  .about-story .about-researcher { grid-template-columns: min(22%, 90px) minmax(0, 1fr); }
  .about-story .about-method-intro, .about-story .about-outlook { grid-template-columns: 1fr; gap: 14px; }
  .about-story .about-method h2 { max-width: 18ch; }
  .about-story .about-loop { gap: 20px; }
  .about-story .about-publications-top { display: grid; justify-items: start; }
  .about-story .about-actions { gap: 12px 18px; }
}
@media (max-width: 360px) {
  .about-story .about-loop { grid-template-columns: 1fr; }
}



/* Visible figures use the original aspect ratio and colors. */
figure.motion > figcaption,figure.motion > .live { pointer-events:none; }
.page-hero figure.motion:not(.tn-film):not(.ego-film-caption):focus-within > figcaption,.page-hero figure.motion:not(.tn-film):not(.ego-film-caption):hover > figcaption { opacity:0; }
#flow .motion--ui video,#qc .motion--ui video,.page-hero .motion--ui video { object-fit:contain;object-position:center; }
#flow .motion--ui,#qc .motion--ui {background:var(--vi-n23)}
#delivery .v11-tiers {display:block}
#delivery .v11-tier-stack {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#delivery .v11-tier-stack > .tier {min-width:0}
@media(max-width:760px){#delivery .v11-tier-stack{grid-template-columns:1fr}}
.product-index .rd-product-copy{display:flex;flex-direction:column;align-items:flex-start}
.product-index .rd-product-copy .rd-link{margin-top:auto}
.product-index .rd-product-copy p{margin-bottom:22px}
.lobby-photo{object-position:19% 50%}
.v11-qa-row figure.motion:has(video){aspect-ratio:auto;height:auto;align-self:start;overflow:visible;background:transparent;border:0}
.v11-qa-row figure.motion > video{aspect-ratio:16/9;height:auto;object-fit:contain;background:var(--vi-n23)}
.v11-qa-row figure.motion > figcaption,.v11-qa-row figure.motion:hover > figcaption,.v11-qa-row figure.motion:focus-within > figcaption{position:static;display:block;background:transparent;color:var(--gray-600);font-size:13px;line-height:1.45;padding:7px 0 0;opacity:1}
@media(min-width:701px){.homepage .lobby-hero{height:calc(100svh - 72px);max-height:1250px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(hover:none){figure.motion > figcaption{pointer-events:none}}



.ego-release .ego-film-caption {aspect-ratio:auto;background:transparent;overflow:visible}
.ego-release .ego-film-caption video {width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center}
.ego-release .ego-film-caption figcaption {position:static;padding:8px 0 0;background:none;color:inherit;font:inherit;font-size:13px;line-height:1.45}
.ego-release .ego-playback img {object-fit:contain}
.ego-release .ego-case .motion-vid {object-fit:contain}
.ego-release .ego-case:hover .motion {transform:none}
@media (max-width:580px){.ego-release #dataset-cases .ego-cases-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ego-release .ego-case-cap b{line-height:1.4}}

.ego-release .ego-title-unit {display:inline-block;white-space:nowrap}
.ego-release .ego-play {position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;border:0;color:white;background:transparent;cursor:pointer}
.ego-release .ego-play[hidden] {display:none}
.ego-release .ego-play:focus-visible {outline:3px solid var(--vi-brand);outline-offset:-4px}
.ego-release .ego-play-icon {position:absolute;right:10px;bottom:9px;width:29px;height:29px;display:grid;place-items:center;border:1px solid rgb(255 255 255 / 0.651);border-radius:50%;background:rgb(23 23 23 / 0.8392)}
.ego-release .ego-play-icon::after {content:"";width:0;height:0;margin-left:2px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid white}
@media(pointer:fine){.ego-release .ego-play:hover .ego-play-icon{background:var(--vi-n23);border-color:white}}


.rec-v11 .rec-live{margin:0;min-width:0}
.rec-v11 .rec-live video{display:block;width:100%;max-width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--vi-n23)}
.rec-v11 .rec-live--hands video{aspect-ratio:884/580}
.rec-v11 .rec-live--tile video{aspect-ratio:16/10}
.rec-v11 .rec-live--body video{background:var(--vi-n23)}
.rec-v11 .rec-environment video{aspect-ratio:2.34}
.rec-v11 .rec-live figcaption{position:static;color:var(--gray-600,var(--vi-n92));background:none;margin:8px 0 0;padding:0;line-height:1.45;font-size:14px}
.rec-v11 .on-dark .rec-live figcaption{color:var(--vi-n217)}
.rec-v11 .rec-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;margin-top:24px}
.rec-v11 .rec-study{font-size:15px;line-height:1.6;margin:14px 0 0}
.rec-v11 .rec-expand{margin-top:22px;border-top:1px solid var(--vi-n217);padding-top:14px}
.rec-v11 .rec-expand summary{cursor:pointer;font-size:15px;font-weight:650;line-height:1.5;width:fit-content}
.rec-v11 .rec-expand summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.rec-v11 .rec-expand[open]>.rec-live,.rec-v11 .rec-expand[open]>.rec-pair{margin:16px 0 0}
.rec-v11 .rec-benchmark{border:0;padding:0;margin-top:18px}
.rec-v11 .rec-benchmark .footnote{margin-top:12px;font-size:13px;line-height:1.55}
.rec-v11 .rec-scene-gallery{margin-top:24px}
.rec-v11 #scene .cta-row{margin-top:36px}
@media(max-width:720px){.rec-v11 .rec-pair{grid-template-columns:minmax(0,1fr);gap:22px}.rec-v11 .rec-trio{grid-template-columns:minmax(0,1fr);gap:22px}.rec-v11 .rec-live--tile video{aspect-ratio:auto;height:auto}.rec-v11 .rec-live figcaption{font-size:13px}}


.rec-v11 .v11-rec .metric-pair span{max-width:34ch;line-height:1.45}

/* Keep the footage and the native video controls clear of captions. */
.tn-film.motion {
  aspect-ratio: auto !important;
  background: transparent;
  align-self: start;
}
.tn-film.motion > video.motion-vid {
  display: block;
  position: static;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: var(--vi-n23);
}
.tn-film.motion > figcaption {
  position: static;
  display: block;
  padding: 8px 0 0;
  color: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  background: none;
}
.tn-film.motion .live { pointer-events: none; }
.tn-film.motion:has(video[src*="robot_flower"]) > video,
.tn-film.motion:has(video[src*="robot_pour"]) > video {
  object-fit: contain;
  object-position: center;
}
.tn-setup-film { margin-top: 24px; }
.tn-setup-film summary { width: fit-content; cursor: pointer; font-weight: 650; text-decoration: underline; text-underline-offset: 4px; }
.tn-setup-film[open] summary { margin-bottom: 14px; }
.tn-setup-film .tn-film { max-width: 850px; }
@media (prefers-reduced-motion: reduce) { .tn-film { scroll-behavior: auto; } }



.site-header a.current-section {text-decoration:underline;text-decoration-color:var(--teal);text-underline-offset:.42em;}
/* Research leadership */
.faculty .about-founder {grid-template-columns:minmax(240px,.73fr) minmax(0,1.47fr);align-items:center}
.faculty .about-founder-picture {max-width:365px;background:var(--vi-n245)}
.about-story .faculty .about-founder-picture img,.faculty .faculty-heading img {display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:50% 35%}
.faculty .faculty-prose p+p {margin-top:.65em}
.faculty .about-source-links {display:flex;align-items:center;flex-wrap:wrap;gap:9px 22px}
.faculty .about-researchers {margin-top:clamp(36px,5vw,64px);gap:clamp(24px,4.1vw,60px)}
.faculty .faculty-colleague {border-top:1px solid var(--vi-n217);padding-top:clamp(20px,2.2vw,32px);display:flex;flex-direction:column;min-width:0}
.faculty .faculty-heading {display:grid;grid-template-columns:clamp(122px,12.3vw,172px) minmax(0,1fr);align-items:center;gap:clamp(16px,2vw,28px);margin-bottom:20px}
.faculty .faculty-heading img {border-radius:4px}
.faculty .faculty-heading h3 {font-size:clamp(25px,2.25vw,36px);line-height:1.1;letter-spacing:-.03em;margin:7px 0 12px}
.faculty .faculty-heading .about-text-link {font-size:13px}
.faculty .faculty-byline {padding-top:18px;margin-top:auto}
.faculty .faculty-credit {font-size:12px;line-height:1.5;color:var(--vi-n92);margin:30px 0 0}
@media(max-width:850px){.faculty .about-founder {grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.faculty .faculty-heading {grid-template-columns:108px minmax(0,1fr);gap:14px}.faculty .about-researchers {gap:24px}}
@media(max-width:650px){.faculty .about-founder {display:block}.faculty .about-founder-picture {width:min(76%,280px);margin-bottom:20px}.faculty .about-researchers{grid-template-columns:1fr;gap:28px}.faculty .faculty-heading{grid-template-columns:112px minmax(0,1fr);gap:17px;margin-bottom:15px}.faculty .faculty-heading h3{margin:5px 0 9px}.faculty .faculty-byline{padding-top:13px}.faculty .faculty-credit{margin-top:23px}}


:root{--media-radius:clamp(10px,1vw,16px)}
main :is(h1,h2,h3){text-wrap:balance}
main :is(.lead,.sec-head p,.rd-head p,.v11-sub,.about-copy){text-wrap:pretty}
.product-index .rd-product{border-radius:var(--media-radius);overflow:hidden}
main .tn-film.motion,main .rec-live{background:transparent}
main .tn-film.motion > video,main .rec-live > video,
#flow .motion--ui video,#qc .motion--ui video,.page-hero .motion--ui video{border-radius:var(--media-radius)}
main figure.motion:not(.tn-film):has(>img),main figure.still,.ego-release .ego-case .motion{border-radius:var(--media-radius);overflow:hidden}
main .tn-film.motion > figcaption,main .rec-live > figcaption{pointer-events:none}
.faculty .about-founder-picture,.faculty .faculty-heading img{border-radius:var(--media-radius)}
main video:fullscreen{border-radius:0!important;object-fit:contain}
main video:focus-visible{outline:3px solid var(--vi-n118);outline-offset:2px}
main .cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px 36px;flex-wrap:wrap}
main .cta-band h2{margin:0;max-width:19em;font-size:clamp(27px,3vw,46px)}
main .cta-band .cta-row{margin:0;gap:14px 25px!important;align-items:center}
main .cta-band .mail{font-size:clamp(15px,1.2vw,18px);border-bottom-width:1px}
.contact-page{background:var(--vi-n245)}
.contact-page .contact-section{padding-block:clamp(40px,6vw,86px)}
.contact-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(32px,6vw,88px);align-items:start}
.contact-intro{padding-block:clamp(4px,2vw,24px)}
.contact-intro h1{font-size:clamp(44px,5.8vw,82px);line-height:1.07;max-width:none}
.contact-intro .lead{font-size:clamp(18px,1.6vw,23px);max-width:32ch;margin:23px 0 26px;line-height:1.52}
.contact-address{font-size:clamp(17px,1.5vw,22px);font-weight:600;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;text-decoration-color:var(--vi-n153)}
.contact-address span{color:var(--vi-n77)}
.contact-form{padding:clamp(20px,2.7vw,36px);border:1px solid var(--vi-n217);border-radius:18px;background:var(--vi-n255);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.contact-page .form .full{grid-column:1/-1}
.contact-form h2{font-size:clamp(23px,2vw,29px);line-height:1.2;letter-spacing:-.025em;margin:0 0 5px}
.contact-page .contact-form :is(input:not([type="checkbox"]),select,textarea){width:100%;min-width:0;border:1px solid var(--vi-n189);border-radius:8px;padding:10px 12px;min-height:43px}
.contact-page .contact-form textarea{min-height:108px}
.contact-page .contact-form .check{display:flex;flex-direction:row;align-items:start;gap:9px;font-weight:400;line-height:1.5}
.contact-page .contact-form .check input{width:16px;height:16px;min-width:16px;min-height:16px;margin:3px 0 0;padding:0;accent-color:var(--vi-n92)}
.contact-form .check a{text-decoration:underline;text-underline-offset:2px}
.contact-details{padding:12px 0;border-block:1px solid var(--vi-n217)}
.contact-details summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--vi-n77);width:fit-content}
.contact-detail-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:14px}
.contact-detail-fields p{margin:0;color:var(--vi-n92);font-size:13px;line-height:1.5}
.contact-send{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap}
.contact-send p{font-size:12px;color:var(--vi-n92);max-width:27ch;margin:0;line-height:1.5}
@media(max-width:760px){.contact-layout{grid-template-columns:1fr;gap:24px}.contact-intro{padding:0}.contact-intro .lead{max-width:38ch;margin:14px 0 13px}.contact-form{padding:20px}.contact-page .contact-section{padding-block:36px 44px}}
@media(max-width:540px){.contact-form,.contact-detail-fields{grid-template-columns:1fr}.contact-send p{max-width:none}.contact-page .contact-form{padding:18px}.contact-intro h1{font-size:43px}.contact-page .contact-layout{gap:20px}.contact-form .check{font-size:13px}}


/* The company headline wraps at meaningful phrases in Chinese. */
.about-story .company-intro h1 {max-width:18ch;text-wrap:balance}
:lang(zh) .about-story .company-intro h1 {max-width:100%;line-height:1.12}
.about-story .company-title-phrase {display:inline-block;white-space:nowrap}
.about-story .company-lead,.about-story .about-copy,.about-story .about-method-intro p,.about-story .about-outlook p {text-wrap:pretty}
.about-story .about-office,.about-story .about-founder-picture,.about-story .faculty-portrait {border-radius:12px}
.about-story .about-method h2 {text-wrap:balance}
:lang(zh) .about-story .about-method h2 {word-break:keep-all}
@media(max-width:650px){.about-story .about-office,.about-story .about-founder-picture,.about-story .faculty-portrait{border-radius:8px}}


.about-story .company-lead {text-wrap:balance}
@media(min-width:851px){:lang(zh) .about-story .company-intro h1{font-size:clamp(38px,4.25vw,62px)}}

/* Quality control: recordings, checks and deliverables. */
.quality-pipeline .qa-intro{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:clamp(32px,5vw,78px)}
.quality-pipeline .qa-intro h1{font-size:clamp(40px,4.4vw,67px);line-height:1.1;letter-spacing:-.04em;max-width:14ch;text-wrap:balance;margin-bottom:18px}
.quality-pipeline .qa-intro .lead{margin-top:0;font-size:clamp(16px,1.45vw,20px);max-width:44ch}
.quality-pipeline .qa-intro .cta-row{margin-top:24px}
.quality-pipeline > :is(#flow,#qc,#delivery){padding-block:clamp(42px,6vw,82px)}
.quality-pipeline h1 span,.quality-pipeline #flow h2 span{display:inline-block;white-space:nowrap}
.quality-pipeline h2,.quality-pipeline h3{text-wrap:balance}
.quality-pipeline #flow .sec-head{margin-bottom:clamp(25px,3.6vw,48px);gap:clamp(16px,3vw,42px)}
.quality-pipeline .v11-qa-row{padding-block:clamp(22px,2.7vw,38px);gap:clamp(24px,3vw,42px)}
.quality-pipeline figure.motion.qa-film{display:block;height:auto;aspect-ratio:auto;min-width:0;margin:0;align-self:start;overflow:visible;background:transparent;border:0;border-radius:0}
.quality-pipeline :is(#flow,#qc) figure.motion.qa-film{background:transparent}
.quality-pipeline .qa-screen{position:relative;overflow:hidden;border-radius:14px;isolation:isolate;aspect-ratio:16/9;background:var(--vi-n23)}
.quality-pipeline .qa-intro .qa-screen{aspect-ratio:1524/560}
.quality-pipeline .qa-screen > video.motion-vid{position:static;display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.quality-pipeline .qa-film > figcaption,.quality-pipeline .qa-film:hover > figcaption,.quality-pipeline .qa-film:focus-within > figcaption{position:static;display:block;padding:8px 1px 0;color:var(--vi-n92);background:transparent;font-size:13px;line-height:1.45;opacity:1}
.quality-pipeline .on-dark .qa-film > figcaption{color:var(--vi-n189)}
.quality-pipeline .qa-section-heading{margin-bottom:clamp(23px,2.8vw,37px)}
.quality-pipeline .qa-accept{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(26px,4vw,60px);align-items:center}
.quality-pipeline .qa-checklist{margin:0}
.quality-pipeline .qa-checklist>div{border-top:1px solid var(--vi-n217);padding:12px 0 14px}
.quality-pipeline .qa-checklist dt{font-weight:650;line-height:1.4}
.quality-pipeline .qa-checklist dd{margin:4px 0 0;line-height:1.55}
.quality-pipeline .qa-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.quality-pipeline .qa-tiers .card{padding:clamp(18px,2.2vw,28px);border-radius:15px;gap:8px}
.quality-pipeline .qa-tiers .card h3{margin:0}
.quality-pipeline .qa-tiers .card p{line-height:1.55;margin:0;color:var(--vi-n77)}
.quality-pipeline :is(.list li,.qa-checklist dd,.qa-tiers p,.lead,.sec-head>p){text-wrap:pretty}
.quality-pipeline .v11-fmt-panel{margin-top:clamp(24px,3.4vw,49px);padding:clamp(22px,3.2vw,46px);border-radius:18px}
.quality-pipeline .tree-panel{overflow:hidden;border-radius:10px}
.quality-pipeline .v11-fmt-panel .formats>*{min-width:0}
.quality-pipeline .v11-fmt-panel h2{font-size:clamp(24px,2.6vw,37px)}
@media(max-width:760px){.quality-pipeline .qa-intro,.quality-pipeline .qa-accept,.quality-pipeline .qa-tiers{grid-template-columns:minmax(0,1fr)}.quality-pipeline .qa-intro{gap:24px}.quality-pipeline .qa-intro h1{font-size:clamp(34px,7.7vw,49px);max-width:18ch}.quality-pipeline .qa-accept{gap:18px}.quality-pipeline .qa-tiers{gap:10px}.quality-pipeline .qa-screen{border-radius:12px}}


/* EngramEgo sample playback, gallery and hardware. */
.ego-release #ego .subsec:first-child {margin-top:0;padding-top:0;border-top:0}
.ego-release #ego .sec-head {align-items:end;gap:clamp(16px,3vw,42px);margin-bottom:clamp(20px,2.3vw,32px)}
.ego-release #ego .sec-head h2 {max-width:none;text-wrap:balance}
.ego-release #ego .sec-head>p {text-wrap:pretty}
.ego-release .ego-inline-sample {margin:0}
.ego-release .ego-inline-sample video {display:block;width:100%;height:auto;aspect-ratio:1680/784;object-fit:contain;background:var(--vi-n23);border-radius:14px}
.ego-release .ego-inline-sample figcaption {padding:10px 0 0;display:flex;align-items:baseline;justify-content:space-between;gap:5px 20px;flex-wrap:wrap;color:var(--gray-600);font-size:14px}
.ego-release .ego-inline-sample figcaption a {font-weight:600;color:var(--vi-n77);text-underline-offset:3px}
.ego-release .ego-case .motion {border:0;border-radius:12px;overflow:hidden;isolation:isolate;background:var(--vi-n23)}
.ego-release .ego-case .motion-vid {border-radius:inherit}
.ego-release .ego-case .motion:focus-within {outline:2px solid var(--vi-n92);outline-offset:2px}
.ego-release .ego-case .ego-play {border-radius:inherit}
.ego-release .ego-case .ego-play-icon {width:34px;height:34px}
.ego-release .ego-hardware-block .ego-kit-photos {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2.1vw,28px)}
.ego-release .ego-kit-photos figure {margin:0}
.ego-release .ego-kit-photos img {display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:12px;background:var(--vi-n245)}
.ego-release .ego-kit-photos figcaption {margin-top:8px;color:var(--gray-600);font-size:14px}
.ego-release .ego-spec-pair {margin-top:clamp(24px,3.5vw,48px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4.5vw,68px);align-items:start}
.ego-release .ego-spec-panel h3 {margin:0 0 10px;font-size:clamp(20px,2.1vw,28px)}
.ego-release .ego-spec-panel .spec {width:100%;margin:0}
.ego-release .ego-spec-panel .spec :is(th,td) {padding-block:11px;line-height:1.45;vertical-align:top}
.ego-release .ego-spec-panel .spec th {width:30%;padding-right:12px}
.ego-release .ego-spec-panel .spec td{text-wrap:pretty}
.ego-release .ego-interface{margin-top:18px;border-top:1px solid var(--gray-200);padding:13px 0 0}
.ego-release .ego-interface summary{width:fit-content;cursor:pointer;font-weight:600;font-size:14px;line-height:1.6;color:var(--vi-n77)}
.ego-release .ego-interface figure{margin:13px 0 0;max-width:900px}
.ego-release .ego-interface video{display:block;width:100%;height:auto;aspect-ratio:1440/904;object-fit:contain;border-radius:12px;background:var(--vi-n23)}
.ego-release .ego-interface figcaption{margin-top:6px;color:var(--gray-600);font-size:13px}
.ego-release .ego-film-caption,.ego-release .ego-film-caption video {border-radius:12px;overflow:hidden}
@media (max-width:700px){
 .ego-release .ego-spec-pair{grid-template-columns:1fr;gap:24px}
 .ego-release .ego-hardware-block .ego-kit-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
 .ego-release .ego-kit-photos figure:first-child{grid-column:1 / -1}
 .ego-release .ego-inline-sample figcaption,.ego-release .ego-kit-photos figcaption{font-size:12px}
 .ego-release .ego-case .motion,.ego-release .ego-inline-sample video,.ego-release .ego-kit-photos img{border-radius:10px}
}

/* Homepage product overview */
.homepage .product-index {
  background: var(--vi-n255);
  color: var(--ink);
  padding-block: clamp(56px, 6.5vw, 94px);
}
.product-index .rd-head > h2 {
  max-width: 16ch;
  margin: 0;
  font-size: clamp(40px, 4.9vw, 68px);
  line-height: 1.08;
  letter-spacing: -.045em;
}
:lang(zh) .product-index .rd-head > h2 {
  max-width: none;
  font-size: clamp(36px, 4.35vw, 62px);
  line-height: 1.16;
  letter-spacing: -.035em;
  word-break: normal;
}
.product-index .rd-head p {font-size:clamp(16px,1.25vw,19px);color:var(--vi-n77);}
.product-index .rd-product h3 {
  font-size: clamp(23px, 2vw, 30px);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -.035em;
  margin: 0;
}
.product-index .rd-product-copy p {line-height:1.62;}
.product-index .rd-product .rd-link {text-decoration:none;line-height:1.4;border-bottom:1px solid var(--vi-n189);padding-bottom:2px;}
.product-index .rd-link:focus-visible,.product-index .rd-link:hover {border-color:var(--vi-n118);color:var(--vi-n77);}
.facility-photo {margin:0;}
.facility-photo img {width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--media-radius);}
.facility-photo figcaption {margin:10px 0 0;color:var(--vi-n217);font-size:14px;}

/* Product overview link and its adjacent submenu control */
.site-header .has-menu {display:flex;align-items:center;}
.site-header .has-menu > a::after {content:none;}
.product-toggle {
  min-height:34px;width:26px;padding:0;border:0;cursor:pointer;
  color:var(--vi-n77);background:transparent;border-radius:5px;
  display:grid;place-items:center;
}
.product-toggle::after {
  content:'';width:6px;height:6px;border:solid currentColor;
  border-width:0 1.5px 1.5px 0;transform:translateY(-2px) rotate(45deg);
}
.product-toggle[aria-expanded="true"]::after {transform:translateY(2px) rotate(225deg);}
.product-toggle:focus-visible,.product-toggle:hover {background:var(--vi-n245);}
.site-header .has-menu .menu {display:none;}
.site-header .has-menu.expanded .menu {display:block;}
.site-header .nav-links a[aria-current="location"],.site-header .nav-links a.current-section {
  text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:3px;text-underline-offset:8px;
}
@media (min-width:1081px) {
  .site-header .nav {gap:clamp(12px,1.6vw,24px);}
  .site-header .nav-links {gap:clamp(12px,1.45vw,24px);}
  .site-header .menu {padding:7px;border-radius:12px;box-shadow:0 14px 40px rgb(23 23 23 / 0.1098);}
  .site-header .menu a {padding:10px 12px;border-radius:7px;font-weight:600;}
  .site-header .menu a:hover,.site-header .menu a:focus-visible {background:var(--vi-n245);text-decoration:none;}
  .site-header .menu small {font-weight:400;line-height:1.5;}
}
@media (max-width:1080px) {
  .site-header .has-menu {display:grid;grid-template-columns:minmax(0,1fr) 44px;}
  .site-header .has-menu .menu {grid-column:1/-1;padding:0 0 8px 16px;}
  .site-header .has-menu .menu a {padding:7px 0;}
  .product-toggle {width:44px;min-height:36px;}
}
@media (min-width:901px) {
  .product-index .rd-head {
    min-block-size:clamp(86.4px,10.584vw,146.88px);
    align-items:center;
  }
  .product-index .rd-product-copy p {min-block-size:4lh;}
}

/* Header and touch navigation */
.site-header .nav-links a[aria-current],
.site-header .nav-links a.current-section {
  font-weight: 650;
}
.site-header .product-toggle {
  min-width: 30px;
}

@media (max-width: 1080px) {
  .site-header .nav-burger,
  .site-header .lang-switch button,
  .site-header .product-toggle {
    min-height: 44px;
  }
  .site-header .lang-switch button {
    min-width: 34px;
  }
  .site-header .nav-links > li > a,
  .site-header .has-menu .menu a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 44px;
  }
}
@media (max-width: 560px) {
  .site-header .nav {
    gap: 10px;
  }
  .site-header .lang-switch {
    gap: 1px;
  }
  html[lang="en"] .site-header .brand-logo {
    width: 150px;
    height: auto;
    max-width: 100%;
  }
  html[lang="en"] .site-header .nav-burger {
    margin-inline-start: auto;
  }
}

.network-intro .network-phrase { display:inline-block; white-space:nowrap; }
@media (min-width:1000px) {
  .network-intro h1, :lang(zh) .network-intro h1 {max-width:100%;font-size:clamp(44px,4.1vw,60px);line-height:1.18;}
  .network-intro .lead, :lang(zh) .network-intro .lead {max-width:60ch;min-block-size:2lh;}
}
