:root { --ink:#202124; --muted:#62676d; --line:#dfe2e5; --accent:#0050c8; --accent-dark:#003b91; --bg:#fff; --soft:#f4f5f6; --soft-blue:#eef3f9; --dark:#202124; --radius:4px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.65 Arial,Helvetica,sans-serif; }
body,button,input,select,textarea { font-family:Arial,Helvetica,sans-serif; letter-spacing:0; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font-size:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; color:inherit; }
button:disabled { cursor:wait; opacity:.5; }
img { max-width:100%; display:block; }
svg { width:20px; height:20px; flex-shrink:0; stroke-width:1.6; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.18; font-weight:600; }
h1 { font-size:46px; }
h2 { font-size:32px; margin-bottom:20px; }
h3 { font-size:20px; }
p { color:var(--muted); }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.container { width:min(1400px,calc(100% - 96px)); margin:0 auto; }
.section { padding-top:80px; padding-bottom:80px; }
.compact { padding-top:20px; }
.soft-band { background:var(--soft); }
.feature-band { background:#f7f8fa; }
.section-header { max-width:750px; margin-bottom:38px; }
.section-header p { margin-bottom:0; }
.section-label,.product-type { font-size:12px; color:var(--muted); margin-bottom:16px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; border:1px solid var(--accent); border-radius:var(--radius); background:var(--accent); color:#fff; padding:12px 20px; font-size:14px; font-weight:600; line-height:1.4; white-space:nowrap; min-height:46px; transition:background .18s,border-color .18s; }
.button:hover { background:#1946b0; border-color:#1946b0; }
.button.secondary { color:var(--ink); background:transparent; border-color:#aeb6c0; }
.button.secondary:hover { background:#e8edf4; }
.button.light { background:#fff; border-color:#fff; color:#202124; }
.button.light:hover { background:#edf1f7; }
.button.small { padding:10px 15px; min-height:40px; font-size:12px; }
.text-link { display:inline-flex; align-items:center; gap:12px; border:0; background:none; padding:0; color:var(--accent); font-size:14px; font-weight:600; }
.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.icon-button { display:inline-grid; place-items:center; width:40px; height:40px; flex-shrink:0; border:1px solid transparent; border-radius:4px; background:transparent; }
.icon-button:hover { background:#edf0f5; border-color:#dfe2e5; }
.skip-link { position:fixed; left:16px; top:8px; padding:10px 16px; z-index:200; background:#fff; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.site-header { position:sticky; top:0; z-index:30; background:#fffffff5; border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.nav { min-height:76px; padding:0 32px; display:flex; justify-content:space-between; align-items:center; gap:22px; max-width:1680px; margin:auto; }
.brand { display:inline-flex; align-items:center; gap:10px; color:#202124; font-size:14px; font-weight:700; white-space:nowrap; }
.brand img { width:34px; height:34px; object-fit:contain; filter:invert(1); }
.desktop-nav { display:flex; align-items:center; gap:26px; font-size:13px; }
.desktop-nav > a,.nav-menu > summary { padding:24px 0; color:#4d5662; }
.desktop-nav .active,.desktop-nav > a:hover,.nav-menu > summary:hover { color:var(--accent); }
.nav-menu { position:relative; }
.nav-menu summary { list-style:none; display:flex; align-items:center; gap:5px; cursor:pointer; }
.nav-menu summary::-webkit-details-marker { display:none; }
.nav-menu summary svg { width:13px; height:13px; }
.nav-actions { display:flex; align-items:center; gap:10px; }
.language-picker { display:flex; align-items:center; gap:4px; flex-shrink:0; }
.language-picker svg { width:18px; height:18px; color:var(--muted); }
.language-picker select { width:65px; height:40px; padding:0 4px; border:0; border-radius:4px; background:transparent; color:var(--ink); font-size:13px; cursor:pointer; }
.language-picker select:hover { background:var(--soft); }
.menu-panel .menu-child { padding-left:28px; margin-left:11px; border-left:1px solid var(--line); font-size:12px; color:var(--muted); }
html[lang="zh-CN"] body,html[lang="zh-CN"] button,html[lang="zh-CN"] input,html[lang="zh-CN"] select,html[lang="zh-CN"] textarea { font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif; }
.menu-panel { position:absolute; top:100%; left:-20px; width:300px; padding:12px; border:1px solid var(--line); border-radius:6px; background:#fff; box-shadow:0 12px 30px #20212418; }
.menu-panel a { display:flex; justify-content:space-between; align-items:center; padding:11px; border-radius:3px; }
.menu-panel a:hover { background:var(--soft); color:var(--accent); }
.menu-panel a:first-child { color:var(--accent); margin-bottom:5px; }
.mobile-menu-button { display:none; }
.mobile-nav { padding:10px 24px 20px; max-height:calc(100dvh - 76px); overflow:auto; border-top:1px solid var(--line); }
.mobile-nav a { display:flex; justify-content:space-between; padding:12px 0; }
.mobile-products-label { display:block; padding:12px 0 4px; font-weight:600; }
.mobile-subnav { padding-left:16px; border-left:1px solid var(--line); }
.mobile-subnav a { padding:8px 0; font-size:13px; }
.mobile-subnav .mobile-child { margin-left:14px; color:var(--muted); }
.home-hero { position:relative; isolation:isolate; min-height:530px; display:flex; align-items:center; color:#fff; overflow:hidden; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 46%; z-index:-2; }
.hero-shade { position:absolute; inset:0; background:#050d1d65; z-index:-1; }
.hero-content { padding-top:70px; padding-bottom:70px; }
.hero-content h1 { max-width:1060px; font-size:54px; line-height:1.13; margin-bottom:24px; color:#fff; text-shadow:0 2px 12px #0004; }
.hero-content h1 span { color:#fff; }
.hero-content p { max-width:520px; color:#fff; font-size:17px; text-shadow:0 1px 8px #0008; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:stretch; }
.category-card { border:1px solid var(--line); border-radius:6px; padding:28px 24px; min-width:0; min-height:390px; background:#fff; display:grid; grid-template-rows:auto minmax(78px,auto) minmax(76px,auto) 1fr auto; transition:border-color .2s,transform .2s; }
.category-card:hover { border-color:#829bd6; transform:translateY(-3px); }
.category-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:34px; color:var(--accent); }
.category-top svg { width:28px; height:28px; }
.category-count { font-size:12px; font-family:monospace; color:#78818e; }
.category-card h3 { font-size:20px; min-height:72px; margin-bottom:16px; overflow-wrap:anywhere; }
.category-card h3 a:hover { color:var(--accent); }
.category-card p { font-size:13px; margin-bottom:12px; }
.category-card ul { list-style:none; padding:0; margin:0 0 24px; font-size:13px; color:#525d6c; }
.category-card li { padding:3px 0; }
.category-card .text-link { margin-top:auto; font-size:12px; }
.product-framework { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:32px; align-items:end; margin-bottom:38px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.product-framework > div { max-width:780px; }
.product-framework h2 { margin-bottom:12px; }
.product-framework p { margin-bottom:0; }
.product-framework .button { align-self:end; }
.carousel-controls { display:none; justify-content:space-between; align-items:center; margin-top:16px; font-size:12px; color:var(--muted); }
.carousel-controls > div { display:flex; gap:4px; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.product-card { overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#fff; }
.product-image { display:block; width:100%; aspect-ratio:1.5; background:#f4f5f6; overflow:hidden; padding:18px; border:0; }
.product-image img { width:100%; height:100%; object-fit:contain; transition:transform .4s; }
.product-image:hover img { transform:scale(1.03); }
.original-preview { background:#edf0f6; }
.original-preview img { filter:none; }
.product-card-copy { padding:28px; }
.product-card-copy h3 { font-size:23px; margin-bottom:12px; }
.product-card-copy p { font-size:13px; }
.product-type { color:var(--accent); }
.collection-link { margin-top:28px; }
.capability-list { border-top:1px solid var(--line); }
.capability-list > a { display:grid; grid-template-columns:48px minmax(200px,.85fr) minmax(260px,1.2fr) 24px; gap:28px; align-items:center; padding:26px 4px; border-bottom:1px solid var(--line); }
.capability-list > a:hover { color:var(--accent); background:#f7f9fc; }
.capability-list h3 { margin:0; font-size:22px; }
.capability-list p { margin:0; font-size:14px; }
.row-number { color:#7b8490; font-family:monospace; font-size:12px; }
.application-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 40px; }
.application-grid > a { position:relative; padding:30px 30px 30px 0; border-top:1px solid #cfd5de; }
.application-grid h3,.application-grid h2 { font-size:21px; margin-bottom:12px; }
.application-grid p { font-size:14px; margin-bottom:0; }
.application-grid > a > svg { position:absolute; right:2px; top:31px; color:var(--accent); }
.application-grid > a:hover h3,.application-grid > a:hover h2 { color:var(--accent); }
.process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; gap:38px; padding:0; margin:38px 0 0; }
.process li { border-top:2px solid var(--line); padding-top:20px; }
.process li > span { font:12px monospace; color:var(--accent); }
.process h3 { font-size:23px; margin:20px 0 14px; }
.process p { font-size:14px; margin:0; }
.about-strip { display:grid; grid-template-columns:1.5fr 1fr; gap:90px; align-items:center; }
.about-strip > div:last-child { display:grid; gap:22px; }
.about-strip p { max-width:620px; margin:0; }
.rfq-band { padding:70px 0; border-top:1px solid var(--line); }
.rfq-band .container { position:relative; padding-right:280px; }
.rfq-band h2 { font-size:32px; }
.rfq-band p { margin-bottom:0; }
.rfq-band .button { position:absolute; right:0; top:24px; }
.page-heading { padding-top:38px; padding-bottom:50px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:6px 11px; align-items:center; font-size:12px; color:var(--muted); margin-bottom:36px; }
.breadcrumbs a:hover { color:var(--accent); }
.breadcrumbs > span[aria-current] { color:#293344; }
.page-heading h1 { max-width:1080px; margin-bottom:22px; }
.page-heading > p { max-width:700px; margin:0; font-size:17px; }
.category-detail { display:grid; grid-template-columns:1.3fr 1fr; gap:90px; align-items:start; }
.scope-list { margin-top:30px; }
.scope-list > div { display:grid; grid-template-columns:35px 1fr; gap:12px; align-items:start; padding:22px 0; border-top:1px solid var(--line); }
.scope-list h3 { margin:0; font-size:20px; }
.scope-list > div > span { font:12px monospace; color:#78818e; margin-top:5px; }
.scope-description { grid-column:2; margin:7px 0 0; max-width:58ch; color:var(--muted); font-size:14px; line-height:1.6; }
.scope-list .text-link { grid-column:2; margin-top:8px; }
.scope-groups { display:grid; gap:42px; }
.scope-group + .scope-group { padding-top:6px; }
.scope-group .section-label { margin-bottom:0; }
.requirements { border-left:2px solid var(--accent); padding-left:30px; }
.requirements h2 { font-size:25px; }
.requirements ul { padding-left:18px; margin:20px 0 30px; color:var(--muted); }
.requirements li { padding:6px 0; }
.related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:30px; }
.related-link strong { color:var(--ink); font-size:16px; font-weight:600; }
.related-link { display:flex; gap:20px; align-items:center; justify-content:space-between; border-top:1px solid var(--line); padding:22px 0; color:var(--accent); }
.related-link:hover { text-decoration:underline; text-underline-offset:4px; }
.product-subnav { display:flex; flex-wrap:wrap; gap:16px 36px; padding:16px 0; border-top:1px solid var(--line); }
.product-subnav a { display:inline-flex; align-items:center; gap:8px; font-size:13px; }
.product-subnav a:hover { color:var(--accent); }
.product-context { display:flex; flex-wrap:wrap; gap:8px 28px; padding-top:22px; padding-bottom:8px; color:var(--muted); font-size:12px; }
.product-context span + span { position:relative; }
.product-context span + span::before { content:""; position:absolute; left:-15px; top:50%; width:1px; height:14px; background:var(--line); transform:translateY(-50%); }
.alternative-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:center; }
.alternative-layout > .product-image { aspect-ratio:1.1; border-radius:6px; }
.alternative-layout h2 { font-size:36px; }
.alternative-layout .text-link { margin-top:24px; }
.alternative-layout > div > .text-link { display:flex; }
.alternative-layout p { max-width:570px; }
.detail-specs { margin:28px 0; }
.detail-specs > div { display:grid; grid-template-columns:1fr 1.4fr; gap:20px; padding:13px 0; border-bottom:1px solid var(--line); font-size:13px; }
.detail-specs dt { color:var(--muted); }
.detail-specs dd { margin:0; }
.spec-table { width:100%; border-collapse:collapse; font-size:14px; }
.spec-table caption { text-align:left; margin-bottom:18px; font-weight:600; font-size:17px; }
.spec-table th,.spec-table td { text-align:left; padding:15px 6px; border-bottom:1px solid var(--line); vertical-align:top; }
.spec-table th { width:45%; font-weight:400; color:var(--muted); }
.question-list { margin:30px 0; }
.question-list p { display:flex; align-items:start; gap:16px; padding:10px 0; }
.question-list svg { color:var(--accent); margin-top:3px; }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.resource-grid article { border-top:2px solid var(--line); padding-top:25px; }
.resource-grid h2 { font-size:25px; }
.resource-grid h2 a:hover { color:var(--accent); }
.resource-grid p { font-size:14px; }
.resource-grid .text-link { margin-top:15px; }
.faq { max-width:950px; }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:23px 0; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq p { padding-bottom:10px; }
.article-layout { display:grid; grid-template-columns:280px minmax(0,720px); gap:80px; }
.article-toc { position:sticky; top:112px; }
.article-toc h2 { font-size:17px; }
.article-toc a { display:block; font-size:13px; padding:10px 0; color:var(--muted); }
.article-toc a:hover { color:var(--accent); }
.article-toc .text-link { display:flex; color:var(--accent); margin-top:22px; }
.article-body section { margin-bottom:48px; scroll-margin-top:115px; }
.article-body h2 { font-size:28px; }
.article-body p { line-height:1.85; }
.article-body { min-width:0; }
.published-content-heading { display:grid; grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); gap:48px; align-items:center; max-width:1280px; padding-top:46px; padding-bottom:48px; }
.published-content-heading > div { min-width:0; }
.published-content-heading h1 { max-width:15ch; overflow-wrap:normal; word-break:normal; }
.published-content-heading > div > p:not(.section-label) { max-width:52ch; line-height:1.65; }
.published-content-cover { margin:0; min-width:0; border:1px solid var(--line); background:#fff; }
.published-content-cover img { display:block; width:100%; height:auto; object-fit:contain; }
.published-content-cover img[src$=".svg"] { aspect-ratio:auto; }
.published-content-layout { grid-template-columns:minmax(190px,240px) minmax(0,800px); gap:clamp(40px,5vw,80px); align-items:start; padding-top:32px; }
.published-content-layout .article-toc { border-top:2px solid var(--line); padding-top:20px; }
.published-content-layout .article-toc h2 { margin-bottom:12px; }
.published-content-layout .article-toc a { padding:9px 0; line-height:1.5; }
.published-content-layout .article-body > section:first-child h2 { margin-top:0; }
.published-related { margin-top:55px; padding-top:28px; border-top:1px solid var(--line); }
.published-related h2 { font-size:23px; }
@media (max-width:900px) {
  .published-content-heading { grid-template-columns:1fr; gap:28px; padding-top:30px; padding-bottom:26px; }
  .published-content-heading h1 { max-width:20ch; }
  .published-content-cover { width:min(100%,760px); }
  .published-content-layout { display:block; padding-top:14px; }
  .published-content-layout .article-toc { display:none; }
}
.guide-checkpoints { padding-left:22px; margin:20px 0; color:var(--muted); }
.guide-checkpoints li { padding-left:5px; margin:12px 0; line-height:1.8; }
.guide-table-scroll { max-width:100%; overflow-x:auto; margin:26px 0; }
.guide-table-scroll:focus-visible { outline:2px solid #4a78b0; outline-offset:4px; }
.guide-table-scroll table { width:100%; min-width:540px; border-collapse:collapse; font-size:14px; line-height:1.7; }
.guide-table-scroll caption { text-align:left; font-weight:600; color:#263d57; padding:0 0 12px; }
.guide-table-scroll th,.guide-table-scroll td { text-align:left; vertical-align:top; padding:15px 16px; border-bottom:1px solid var(--line); }
.guide-table-scroll thead th { background:#edf2f7; color:#263d57; font-weight:600; }
.guide-table-scroll tbody th { width:24%; font-weight:600; color:#263d57; }
.guide-table-scroll td { color:var(--muted); }
.guide-worked-example { margin:26px 0; padding:23px 26px; border-left:3px solid #4a78b0; background:#f1f5f9; }
.guide-worked-example h3 { margin:0 0 10px; font-size:18px; color:#263d57; }
.guide-worked-example p { margin:0; font-size:15px; }
.guide-faq details > .text-link { display:inline-flex; margin:0 20px 18px; font-size:14px; }
.guide-drawing-note { margin-top:42px; padding:28px 0 0; border-top:1px solid var(--line); max-width:800px; }
.guide-drawing-note h2 { display:flex; gap:12px; align-items:center; font-size:23px; }
.guide-drawing-note h2 svg { flex-shrink:0; width:22px; height:22px; }
.guide-drawing-note p { line-height:1.8; }
@media(min-width:901px) { .article-toc { max-height:calc(100dvh - 140px); overflow-y:auto; padding-right:12px; } }
@media(max-width:600px) { .guide-worked-example { padding:20px; } .guide-table-scroll th,.guide-table-scroll td { padding:12px; } }
.quality-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:35px; }
.quality-grid article { border-top:1px solid var(--line); padding-top:24px; }
.quality-grid svg { color:var(--accent); width:28px; height:28px; margin-bottom:35px; }
.quality-grid h2 { font-size:23px; }
.quality-grid p { font-size:14px; }
.plain-list { padding-left:18px; color:var(--muted); }
.plain-list li { padding:5px 0; }
.about-story { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-story img { width:100%; height:500px; object-fit:cover; border-radius:6px; }
.about-story h2 { font-size:38px; }
/* Company introduction: centred copy with a readable measure in both languages. */
body:not(.home-glass) .about-company { padding-block:64px; text-align:center; }
.about-company-intro,.about-company-sections { max-width:840px; margin-inline:auto; }
body:not(.home-glass) .about-company-intro h2 { font-size:clamp(24px,2.6vw,36px); line-height:1.35; margin:0 0 20px; text-wrap:balance; }
body:not(.home-glass) .about-company p { font-size:16px; line-height:1.85; margin:0; }
body:not(.home-glass) .about-company .about-company-statement { font-size:20px; color:var(--ink); margin-bottom:20px; }
.about-company-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:920px; margin:44px auto 48px; padding-block:30px; border-block:1px solid var(--line); gap:24px; }
.about-company-metrics > div { display:flex; flex-direction:column; gap:10px; min-width:0; }
.about-company-metrics dt { color:var(--muted); font-size:14px; line-height:1.5; }
.about-company-metrics dd { order:-1; margin:0; color:var(--accent); font-size:clamp(32px,4vw,52px); line-height:1.1; font-weight:500; font-variant-numeric:tabular-nums; }
.about-company-sections { display:grid; gap:32px; }
.about-company-sections h3 { font-size:21px; line-height:1.4; margin:0 0 12px; color:var(--ink); }
@media(max-width:600px) {
 body:not(.home-glass) .about-company { padding-block:40px; }
 .about-company-metrics { gap:14px; margin-block:30px; padding-block:24px; }
 .about-company-metrics dt { font-size:12px; }
 .about-company-metrics dd { font-size:30px; }
 body:not(.home-glass) .about-company p { font-size:15px; }
}
@media(max-width:380px) { .about-company-metrics { grid-template-columns:1fr; gap:24px; } }
.email-link { color:var(--accent); overflow-wrap:anywhere; }
.rfq-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,.8fr); gap:80px; align-items:start; }
.about-hero { position:relative; width:100vw; max-width:none; aspect-ratio:3024 / 1296; margin:28px 0 0 calc(50% - 50vw); overflow:hidden; background:#0b1725; }
.about-hero > img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.about-hero::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(3,12,22,.92) 0%,rgba(3,12,22,.78) 25%,rgba(3,12,22,.34) 48%,rgba(3,12,22,.03) 76%); }
.about-hero-overlay { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:center; max-width:570px; padding:clamp(32px,6vw,84px); color:#fff; }
.about-hero-overlay .breadcrumbs { position:absolute; top:26px; left:clamp(32px,6vw,84px); color:rgba(255,255,255,.7); }
.about-hero-overlay .breadcrumbs a { color:inherit; }
.about-hero-overlay .section-label { margin-bottom:20px; color:rgba(255,255,255,.68); }
.about-hero-overlay h1 { margin:0 0 28px; color:#fff; font-size:clamp(34px,4.2vw,62px); font-weight:400; line-height:1.05; letter-spacing:-.045em; }
.about-hero-tagline { display:flex; flex-direction:column; gap:0; margin:0 0 24px; color:#fff; font-size:clamp(25px,3vw,42px); line-height:1.08; letter-spacing:-.035em; }
.about-hero-description { max-width:48ch; margin:0; color:rgba(255,255,255,.78); font-size:15px; line-height:1.75; }
.about-hero-link { display:inline-flex; align-items:center; gap:9px; width:max-content; margin-top:28px; padding-bottom:5px; color:#fff; border-bottom:1px solid rgba(255,255,255,.55); font-size:14px; }
.about-hero-link:hover { color:#fff; border-color:#fff; }
.about-hero-link svg { width:15px; height:15px; }
@media (max-width:800px) {
 .about-hero { aspect-ratio:auto; min-height:680px; margin-top:18px; }
 .about-hero > img { height:680px; object-position:62% center; }
 .about-hero::after { background:linear-gradient(90deg,rgba(3,12,22,.94),rgba(3,12,22,.7) 62%,rgba(3,12,22,.22)); }
 .about-hero-overlay { justify-content:flex-end; padding:32px 24px 42px; }
 .about-hero-overlay .breadcrumbs { top:20px; left:24px; }
}
.partner-section { padding-top:34px; padding-bottom:34px; }
.partner-card { position:relative; min-height:430px; max-width:1240px; margin:0 auto; padding:clamp(72px,10vw,150px) 24px; overflow:hidden; border-radius:36px; background:#fff; box-shadow:0 0 0 .5px rgba(0,0,0,.05),0 4px 30px rgba(0,0,0,.08); }
.partner-content { display:flex; flex-direction:column; align-items:center; text-align:center; }
.partner-content h2 { margin:0 0 42px; color:#0d212c; font-size:clamp(48px,7vw,80px); font-weight:400; line-height:1.1; letter-spacing:-.055em; }
.partner-cta { display:inline-flex; align-items:center; gap:12px; padding:8px 12px 8px 8px; border-radius:999px; color:#fff; background:#051a24; box-shadow:0 1px 2px rgba(5,26,36,.1),0 4px 4px rgba(5,26,36,.09),0 9px 6px rgba(5,26,36,.05),inset 0 2px 8px rgba(255,255,255,.18); transition:background-color .2s ease,transform .2s ease; }
.partner-cta:hover { color:#fff; background:#0d212c; transform:translateY(-1px); }
.partner-cta img { width:40px; height:40px; padding:7px; border-radius:50%; object-fit:contain; background:#fff; }
.partner-cta span { font-size:14px; white-space:nowrap; }
.partner-cta svg { width:17px; height:17px; }
@media (prefers-reduced-motion: reduce) { .partner-cta { transition:none; } }
fieldset { margin:0 0 35px; padding:0; border:0; }
legend { font-size:24px; font-weight:600; margin-bottom:23px; padding:0; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-grid label { display:block; font-size:13px; color:#3b4552; }
.form-grid label > span { color:#9b2525; }
.form-grid input,.form-grid textarea,.form-grid select { display:block; width:100%; min-height:46px; border:1px solid #aeb6c0; border-radius:4px; padding:11px 12px; margin-top:7px; background:#fff; color:#202124; }
.form-grid textarea { resize:vertical; }
.form-grid input::placeholder { color:#667181; font-size:12px; }
.form-grid input[type=file] { padding:10px; font-size:12px; }
.form-grid small { display:block; margin-top:10px; color:var(--muted); font-size:12px; }
.full-width { grid-column:1 / -1; }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.form-note { font-size:12px; }
.form-status { color:#255d45; font-size:13px; margin:20px 0 0; }
.rfq-sidebar { position:sticky; top:115px; padding-left:30px; border-left:1px solid var(--line); }
.rfq-sidebar h2 { font-size:24px; }
.rfq-sidebar p { font-size:14px; }
.rfq-sidebar h3 { margin-top:35px; font-size:16px; }
.rfq-sidebar > a { display:flex; align-items:center; gap:8px; margin-bottom:15px; color:var(--accent); font-size:13px; }
.inquiry-review { margin-top:30px; padding:25px 0; border-top:1px solid var(--line); }
.inquiry-review pre { white-space:pre-wrap; overflow-wrap:anywhere; font:13px/1.65 monospace; background:var(--soft); padding:20px; }
.inquiry-review .button { margin:10px 8px 10px 0; }
.inquiry-review p { font-size:12px; }
.site-footer { background:#f4f5f6; border-top:1px solid var(--line); padding-top:60px; font-size:13px; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1.2fr 1fr .9fr; gap:50px; padding-bottom:55px; }
.footer-grid .brand { margin-bottom:22px; }
.footer-grid h3 { font-size:14px; margin-bottom:22px; }
.footer-grid > div > a:not(.brand) { display:block; margin-bottom:12px; color:var(--muted); }
.footer-grid > div > a:hover { color:var(--accent); }
.footer-bottom { padding-top:22px; padding-bottom:22px; display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
dialog { border:1px solid var(--line); border-radius:6px; padding:24px; box-shadow:0 25px 80px #151e2f30; color:var(--ink); }
dialog::backdrop { background:#101a2b70; backdrop-filter:blur(3px); }
.search-dialog { width:min(720px,calc(100vw - 32px)); max-height:80dvh; }
.dialog-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.dialog-header h2 { margin:0; font-size:23px; }
.search-field { display:flex; gap:14px; align-items:center; border:1px solid #aeb6c0; padding:8px 14px; border-radius:4px; }
.search-field input { border:0; background:none; width:100%; min-height:36px; min-width:0; color:var(--ink); outline:none; }
.search-field:focus-within { outline:2px solid var(--accent); outline-offset:3px; }
.search-results { margin-top:18px; }
.search-results > a { display:block; padding:14px 4px; border-bottom:1px solid var(--line); }
.search-results > a:hover { background:var(--soft); }
.search-results h3 { font-size:17px; margin-bottom:7px; }
.search-results p { font-size:12px; margin:0; }
.search-results > p { padding:15px 4px; }
.search-results small { display:block; color:var(--accent); font-size:11px; margin-bottom:5px; text-transform:capitalize; }
.image-dialog { width:min(1050px,calc(100vw - 30px)); max-height:90dvh; }
.fullsize-art { overflow:auto; max-height:68dvh; background:#edf0f6; }
.fullsize-art img { width:1600px; max-width:none; }
.image-zoom { aspect-ratio:1.1; border-radius:6px; cursor:zoom-in; }
.technical-note { color:#626b64; font-size:12px; line-height:1.65; }

/* The original vector viewer keeps its geometry and compact moving magnifier. */
.intro { display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.65fr); gap:48px; align-items:center; margin:0; padding:66px max(4vw,calc((100vw - 1520px)/2)) 64px; scroll-margin-top:78px; background:#f4f5f6; color:#202124; }
.intro h2 { font-size:54px; line-height:1.06; }
.intro h2 span { color:#62676d; }
.intro-copy > p { max-width:390px; font-size:14px; color:#626b64; }
.intro-copy .section-label { font-size:12px; }
.intro-copy .technical-note { font-size:11px; margin-top:24px; }
.disc-specs { display:flex; flex-wrap:wrap; gap:28px; margin:32px 0; }
.disc-specs dt { font-size:11px; color:#626b64; margin-bottom:8px; }
.disc-specs dd { margin:0; font-size:23px; }
.disc-specs dd small { font-size:12px; }
.disc-specs div:last-child { flex-basis:100%; }
.disc-specs div:last-child dd { font-size:16px; }
.inspection-toggle { background:transparent; border:0; border-bottom:1px solid #a7b0ba; padding:0 0 10px; color:#0050c8; font:inherit; font-size:13px; cursor:pointer; display:inline-flex; align-items:center; gap:18px; }
.intro-copy .text-link { display:flex; margin-top:24px; color:#0050c8; font-size:13px; }
.encoder-showcase { position:relative; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:12px; align-items:center; }
.encoder-surface { width:100%; aspect-ratio:1; position:relative; touch-action:pan-y; border-radius:50%; cursor:crosshair; }
.encoder-poster,.encoder-canvas { position:absolute; inset:0; display:block; width:100%; height:100%; }
.encoder-poster { object-fit:contain; transition:opacity .18s ease; }
.encoder-canvas { z-index:1; }
.encoder-surface[data-render-ready="true"] .encoder-poster { opacity:0; }
.home-glass .encoder-final-poster { opacity:0; }
.home-glass .encoder-surface[data-process-ready="true"] .encoder-final-poster { opacity:1; }
.home-glass .encoder-surface[data-process-ready="true"] .encoder-start-poster { opacity:0; }
.home-glass .encoder-surface[data-render-ready="true"] .encoder-final-poster { opacity:0; }
.encoder-caption { display:flex; justify-content:space-between; gap:16px; margin:0 4% 14px; color:#626b64; font-size:11px; }
.encoder-caption span:first-child { color:#0050c8; font-size:15px; }
.micro-detail { position:absolute; z-index:40; width:46%; max-width:410px; min-width:240px; pointer-events:none; border:1px solid #dfe2e5; border-radius:6px; background:#ffffff; overflow:hidden; opacity:0; visibility:hidden; transition:opacity .12s ease; box-shadow:0 8px 24px #20212424; line-height:1.2; }
.micro-detail.is-open { opacity:1; visibility:visible; }
.micro-detail.is-pinned { pointer-events:auto; }
.micro-header,.micro-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#4f6055; }
.micro-header { padding:3px 10px; height:30px; border-bottom:1px solid #dde0d6; font-size:11px; }
.micro-header strong { margin-left:6px; font:500 11px monospace; color:#0050c8; }
.micro-footer { height:22px; padding:3px 10px; font-size:9px; border-top:1px solid #dde0d6; }
.micro-footer span:empty { display:none; }
.micro-canvas { display:block; width:100%; height:105px; cursor:grab; touch-action:none; }
.micro-canvas.is-dragging { cursor:grabbing; }
.inspection-close { color:#4f6055; border:0; background:transparent; width:28px; height:26px; display:grid; place-items:center; }
.inspection-close svg { width:17px; height:17px; }
.scan-controls { display:none; }
.micro-detail.is-pinned .scan-controls { display:grid; grid-template-columns:1fr 1fr; padding:7px 10px 9px; gap:12px; }
.scan-controls label { display:grid; gap:4px; min-width:0; font-size:9px; color:#4f6055; }
.scan-controls label > span { display:flex; justify-content:space-between; gap:10px; }
.scan-controls output { font-family:monospace; }
.scan-controls input { width:100%; min-height:16px; margin:0; accent-color:#0050c8; cursor:pointer; }
.micro-detail:not(.is-pinned) .inspection-close { visibility:hidden; }
.encoder-status { position:absolute; inset:35% 12% auto; text-align:center; font-size:12px; color:#4f6055; }
.intro :focus-visible { outline:2px solid #0050c8; outline-offset:4px; }
@media (min-width:1680px) { .home-hero { min-height:580px; } }
@media (max-width:1200px) { .desktop-nav { gap:18px; }.nav { padding:0 24px; gap:15px; }.brand { font-size:12px; }.category-card { padding:24px 19px; }.category-card h3 { font-size:20px; }.container { width:calc(100% - 64px); } }
@media (max-width:1060px) {
  .desktop-nav { display:none; }.mobile-menu-button { display:inline-grid; }.nav { min-height:70px; }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.category-card h3 { min-height:52px; }.product-framework { gap:24px; }
  .category-detail { gap:45px; }.alternative-layout { gap:40px; }.rfq-layout { gap:40px; grid-template-columns:1.8fr 1fr; }
  .intro { grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr); gap:22px; padding-left:28px; padding-right:28px; }.intro h2 { font-size:40px; }
  .footer-grid { gap:26px; }.capability-list > a { gap:20px; }.quality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .article-layout { gap:40px; grid-template-columns:230px 1fr; }
}
@media (max-width:800px) {
  .container { width:calc(100% - 40px); }.section { padding-top:55px; padding-bottom:55px; }.compact { padding-top:10px; }
  h1 { font-size:34px; } h2 { font-size:28px; }.nav { padding:0 20px; }.brand img { width:30px; height:30px; }
  .hero-content h1 { font-size:42px; }.home-hero { min-height:510px; }.hero-content { padding-top:60px; padding-bottom:60px; }.hero-content p { max-width:450px; font-size:16px; }
  .category-carousel .category-grid { display:flex; gap:15px; overflow:auto; scroll-snap-type:x mandatory; padding:4px 0 12px; scrollbar-width:none; }.category-carousel .category-grid::-webkit-scrollbar { display:none; }.category-carousel .category-card { flex:0 0 76%; scroll-snap-align:start; }.carousel-controls { display:flex; }
  .category-top { margin-bottom:30px; }.category-card h3 { font-size:23px; min-height:54px; }.category-card p { font-size:14px; }.product-framework { grid-template-columns:1fr; gap:20px; margin-bottom:28px; }.product-framework .button { justify-self:start; }
  .product-grid { gap:20px; }.product-card-copy { padding:22px; }.product-card-copy h3 { font-size:20px; }.product-image { aspect-ratio:1.2; padding:10px; }
  .capability-list > a { grid-template-columns:30px 1fr 24px; gap:12px; padding:22px 0; }.capability-list h3 { font-size:20px; }.capability-list p { grid-column:2; grid-row:2; }.capability-list > a > svg { grid-column:3; grid-row:1; }
  .application-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }.process { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
  .about-strip,.category-detail,.alternative-layout,.about-story,.rfq-layout { grid-template-columns:1fr; gap:35px; }.about-story img { height:380px; }.about-story h2 { font-size:32px; }
  .rfq-band { padding:50px 0; }.rfq-band .container { padding-right:0; }.rfq-band .button { position:static; margin-top:22px; }.rfq-band h2 { font-size:28px; }
  .page-heading { padding-top:25px; padding-bottom:35px; }.page-heading h1 { font-size:36px; }.page-heading > p { font-size:16px; }.breadcrumbs { margin-bottom:25px; }
  .requirements { padding-left:22px; }.related-grid { grid-template-columns:1fr; gap:0; }.resource-grid { grid-template-columns:1fr; gap:35px; }
  .article-layout { grid-template-columns:1fr; gap:30px; }.article-toc { position:static; }.article-body h2 { font-size:25px; }
  .rfq-sidebar { position:static; }.footer-grid { grid-template-columns:1.2fr 1fr; gap:40px; }.footer-bottom { flex-direction:column; gap:6px; }
  .intro { grid-template-columns:1fr; gap:28px; padding:54px 20px; }.intro h2 { font-size:40px; }.intro-copy > p { max-width:550px; }.disc-specs div:last-child { flex-basis:auto; }
  .encoder-showcase { width:100%; max-width:720px; margin:auto; }.micro-detail { width:260px; min-width:0; max-width:calc(100vw - 24px); }.micro-canvas { height:120px; }.scan-controls input { min-height:26px; }
}

/* Homepage flow: position the business first, then connect products, process,
   applications, examples and inspection. */
.home-hero-v2 { min-height:610px; display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,.9fr); gap:50px; align-items:center; padding:90px max(5vw,calc((100vw - 1440px)/2)); background:radial-gradient(circle at 70% 50%,#202833 0%,#0d1118 34%,#070707 70%); color:#f4f4f0; }
.home-hero-v2-copy { max-width:760px; }
.home-hero-v2 h1 { margin:24px 0 26px; font-size:clamp(42px,5.7vw,82px); line-height:1.02; letter-spacing:-.06em; color:#f4f4f0; }
.home-hero-v2 h1 em { color:#8f969f; font-style:normal; }
.home-hero-v2-lead { max-width:590px; color:#b3bac3; font-size:17px; line-height:1.6; }
.home-hero-v2 .eyebrow { color:#0050c8; }
.home-hero-v2 .hero-actions { margin-top:30px; }
.home-hero-v2 .button { border-radius:4px; }
.home-hero-v2 .button.light { color:#111; }
.home-hero-v2-visual { min-width:0; }
.home-hero-v2-visual .encoder-showcase { width:min(100%,580px); margin:auto; }
.home-hero-v2-visual .encoder-surface { filter:drop-shadow(0 26px 30px #0009); transition:transform .24s ease,filter .24s ease; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .home-hero-v2-visual .encoder-surface:hover { transform:translateY(-6px); filter:drop-shadow(0 32px 34px #000b); }
}
.home-hero-v2-visual .encoder-caption,.home-hero-v2-visual .encoder-caption span:first-child { color:#aeb6c0; }
.hero-inspection-controls { width:min(100%,580px); margin:14px auto 0; padding:0 4%; }
.hero-inspection-controls .inspection-toggle { color:#0050c8; border-color:#8da4bf; }
.hero-inspection-controls p { margin:12px 0 0; color:#aeb6c0; font-size:12px; }
.home-hero-v2-visual .encoder-status { color:#d4ddd7; }
.hero-visual-ring { width:min(100%,580px); aspect-ratio:1; margin:auto; border-radius:50%; padding:0; filter:drop-shadow(0 26px 30px #0009); }
.hero-visual-ring img { width:100%; height:100%; object-fit:contain;  }
.hero-visual-note { display:flex; justify-content:space-between; gap:18px; width:min(100%,580px); margin:16px auto 0; font:11px 'DM Mono',monospace; color:#8d959e; }
.home-intent { background:#fff; color:#202124; }
.home-intent .section-header,.home-process .section-header,.home-cases .section-header { max-width:850px; }
.home-intent-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:48px; border-top:1px solid var(--line); }
.home-intent-grid a { position:relative; display:block; padding:26px 42px 25px 0; border-bottom:1px solid var(--line); }
.home-intent-grid a + a { padding-left:32px; border-left:1px solid var(--line); }
.home-intent-grid span,.home-card-number,.home-process-list li > span { color:var(--accent); font:12px 'DM Mono',monospace; }
.home-intent-grid h3 { margin:28px 0 10px; }
.home-intent-grid p { margin:0; max-width:270px; font-size:14px; }
.home-intent-grid svg { position:absolute; right:0; top:28px; color:var(--accent); }
.home-make-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.home-make-grid article { background:#fff; border:1px solid var(--line); padding:28px; min-height:330px; display:flex; flex-direction:column; }
.home-make-grid h3 { margin:32px 0 10px; }
.home-make-grid h4 { margin:12px 0 6px; font-size:14px; font-weight:600; }
.home-make-grid h4 + p { margin-bottom:28px; }
.home-product-links { display:flex; flex-wrap:wrap; gap:16px 28px; margin-top:auto; }
.home-make-grid p { font-size:14px; }
.home-make-grid ul { list-style:none; padding:0; margin:6px 0 24px; color:#4f5966; font-size:13px; }
.home-make-grid li { padding:4px 0; }
.home-make-grid .text-link { margin-top:auto; }
.home-process { background:#fff; color:#202124; }
.home-process-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 34px; list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.home-process-list li { padding:24px 0 30px; border-bottom:1px solid var(--line); }
.home-process-list h3 { margin:22px 0 8px; }
.home-process-list p { margin:0; font-size:14px; }
.home-applications .application-grid { margin-top:10px; }
.home-cases { background:#fff; color:#202124; }
.home-case-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:22px; }
.home-quality { background:#0c1015; color:#f4f4f0; }
.home-quality p { color:#aeb6c0; }
.home-quality-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.home-quality h2 { color:#f4f4f0; }
.home-quality .section-label { color:#0050c8; }
.home-quality .button.secondary { color:#f4f4f0; border-color:#68727d; margin-top:18px; }
.home-quality-list { border-top:1px solid #ffffff20; }
.home-quality-list > div { display:grid; grid-template-columns:42px 1fr; gap:10px 16px; padding:20px 0; border-bottom:1px solid #ffffff20; }
.home-quality-list span { color:#0050c8; font:12px 'DM Mono',monospace; }
.home-quality-list strong { font-size:17px; }
.home-quality-list p { grid-column:2; margin:0; font-size:13px; }
.home-about { display:grid; grid-template-columns:1fr auto; gap:60px; align-items:end; background:#fff; color:#202124; }
.home-about h2 { max-width:720px; }
.home-about p { max-width:700px; }
.home-about > div:last-child { display:grid; gap:18px; }
@media (max-width:900px) {
  .home-hero-v2 { grid-template-columns:1fr; padding-top:68px; padding-bottom:68px; }
  .home-hero-v2-visual { max-width:560px; width:100%; }
  .home-intent-grid,.home-make-grid,.home-process-list,.home-case-links { grid-template-columns:1fr; }
  .home-intent-grid a + a { padding-left:0; border-left:0; }
  .home-intent-grid a { padding-right:34px; }
  .home-quality-grid,.home-about { grid-template-columns:1fr; gap:35px; }
  .home-about > div:last-child { justify-self:start; }
}
@media (max-width:520px) {
  .nav { gap:8px; padding:0 12px; }.brand { font-size:11px; gap:5px; }.brand img { width:26px; height:26px; }.nav-actions { gap:1px; }.nav-actions .button { font-size:11px; padding:10px; }.nav-actions .button svg { display:none; }.nav-actions .icon-button { width:34px; }
  .language-picker { gap:0; }.language-picker > svg { display:none; }.language-picker select { width:58px; font-size:12px; }
  .nav-actions .nav-quote { width:34px; height:34px; min-height:34px; padding:0; }.nav-quote .quote-label { display:none; }.nav-actions .nav-quote svg { display:block; width:18px; height:18px; }
  .hero-content h1 { font-size:34px; }.hero-content h1 br { display:none; }.hero-content h1 span { display:block; margin-top:10px; }.home-hero { min-height:470px; }.hero-content { padding-top:46px; padding-bottom:46px; }.hero-actions .button { padding:12px 14px; font-size:12px; }.hero-actions { gap:10px; }
  .category-grid:not([data-category-track]) { grid-template-columns:1fr; }.category-carousel .category-card { flex-basis:85%; }.category-card { min-height:0; grid-template-rows:auto auto auto 1fr auto; }.category-card h3 { min-height:0; }.product-grid { grid-template-columns:1fr; }.product-image { aspect-ratio:1.4; }
  .application-grid { grid-template-columns:1fr; }.application-grid > a { padding-top:24px; padding-bottom:24px; }.application-grid > a > svg { top:25px; }
  .process { gap:26px 20px; }.process h3 { font-size:21px; }.process p { font-size:13px; }.quality-grid { grid-template-columns:1fr; gap:24px; }.quality-grid svg { margin-bottom:15px; }
  .form-grid { grid-template-columns:1fr; }.form-actions { align-items:stretch; flex-direction:column; }.form-actions .text-link { justify-content:center; padding:10px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:30px 20px; }.footer-grid > div:first-child { grid-column:1 / -1; }.footer-grid h3 { margin-bottom:15px; }
  .product-subnav { gap:10px 20px; }.alternative-layout h2 { font-size:30px; }.spec-table { font-size:13px; }.detail-specs > div { gap:10px; }
  .search-dialog { padding:18px; }.search-field input { font-size:13px; }.search-field { padding:7px 10px; gap:8px; }.page-heading h1 { font-size:32px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }

/* Restored dark homepage presentation from the previous local version. */
.home-dark { background:#fff; color:var(--ink); }
.home-dark .site-header { background:linear-gradient(180deg,rgba(7,7,7,.98),rgba(7,7,7,.82)); border-bottom-color:rgba(255,255,255,.12); }
.home-dark .site-header .brand { color:#f4f4f0; }
.home-dark .site-header .brand img { filter:grayscale(1) brightness(2); }

.home-dark .desktop-nav > a,.home-dark .nav-menu summary { color:#b8b9bc; }
.home-dark .desktop-nav > a:hover,.home-dark .desktop-nav > a.active,.home-dark .nav-menu summary:hover,.home-dark .nav-menu summary.active { color:#0050c8; }
.home-dark .language-picker,.home-dark .language-picker select { color:#d7d8d2; }
.home-dark .language-picker select { background:#070707; border-color:rgba(255,255,255,.18); }
.home-dark .nav-actions .icon-button { color:#f4f4f0; }
.home-dark .nav-quote { background:#0050c8; color:#111; }
.legacy-home-hero,.legacy-product-stage { background:radial-gradient(circle at 50% 30%,#24262b 0%,#0c0d10 31%,#070707 66%); }
.legacy-home-hero { min-height:500px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:96px 20px 84px; }
.legacy-eyebrow { font:500 10px 'DM Mono',monospace; letter-spacing:.19em; color:#0050c8; }
.legacy-home-hero h1 { color:#f4f4f0; font-size:clamp(58px,9.2vw,130px); line-height:.94; letter-spacing:-.075em; margin:24px 0; }
.legacy-home-hero h1 em { color:#888b91; font-style:normal; }
.legacy-hero-copy { max-width:430px; color:#aaaab0; font-size:15px; line-height:1.55; margin:0 auto 28px; }
.legacy-hero-cta { display:inline-flex; align-items:center; gap:8px; border:1px solid #e9e9e5; background:#f4f4f0; color:#111; border-radius:999px; padding:13px 20px; font-size:12px; }
.legacy-hero-cta svg { width:15px; }
.legacy-product-stage { position:relative; overflow:hidden; max-width:none; padding:38px max(24px,5vw) 84px; }
.legacy-stage-glow { position:absolute; width:800px; height:340px; left:50%; top:110px; transform:translateX(-50%); background:radial-gradient(ellipse,rgba(110,125,150,.34),transparent 64%); filter:blur(30px); pointer-events:none; }
.legacy-carousel { position:relative; display:flex; align-items:center; gap:18px; max-width:1220px; margin:auto; }
.legacy-cards { width:100%; min-height:410px; display:flex; align-items:center; justify-content:center; perspective:1200px; position:relative; }
.legacy-card { position:absolute; width:min(31vw,300px); aspect-ratio:.72; border-radius:15px; overflow:hidden; padding:22px; display:flex; flex-direction:column; justify-content:space-between; background:linear-gradient(155deg,#202124,#111214 54%,#0f1012); border:1px solid rgba(255,255,255,.22); box-shadow:0 20px 55px rgba(0,0,0,.42); transition:transform .75s cubic-bezier(.2,.8,.2,1),opacity .75s ease,filter .75s ease; color:#f4f4f0; }
.legacy-card:nth-child(2) { background:linear-gradient(155deg,#123a6b,#0f1b31 55%,#111214); }
.legacy-card:nth-child(3) { background:linear-gradient(155deg,#6b727a,#343a42 55%,#121416); }
.legacy-card:nth-child(4) { background:linear-gradient(155deg,#203b66,#202124 55%,#111214); }
.legacy-card::before { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(145deg,rgba(7,10,12,.12),rgba(7,10,12,.2) 35%,rgba(7,10,12,.82) 100%); pointer-events:none; }
.legacy-card > * { position:relative; z-index:2; }
.legacy-card img { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; transform:rotate(180deg) scale(1.015); opacity:.92; }
.legacy-card-number { font:11px 'DM Mono',monospace; letter-spacing:.08em; }
.legacy-card h2 { font-size:clamp(20px,2.2vw,28px); line-height:1.03; letter-spacing:-.05em; margin:0; }
.legacy-card p { margin:10px 0 0; font-size:11px; color:rgba(255,255,255,.7); }
.legacy-arrow { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:#fff; cursor:pointer; z-index:2; }
.legacy-arrow:hover { background:#fff; color:#111; }
.legacy-stage-footer { display:grid; grid-template-columns:120px 1fr 170px; align-items:center; gap:20px; max-width:1220px; margin:24px auto 0; font:11px 'DM Mono',monospace; color:#8a8c91; }
.legacy-stage-footer strong { color:#f4f4f0; font-size:18px; }
.legacy-progress { height:1px; background:linear-gradient(90deg,#0050c8 25%,rgba(255,255,255,.14) 25%); }
.legacy-stage-footer svg { width:15px; vertical-align:middle; color:#0050c8; }
.legacy-intro { display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr); gap:60px; align-items:center; padding:100px max(5vw,calc((100vw - 1200px)/2)); background:#0b0b0c; border-top:1px solid rgba(255,255,255,.12); }
.legacy-section-number { display:block; font:11px 'DM Mono',monospace; color:#0050c8; margin-bottom:30px; }
.legacy-intro h2 { color:#f4f4f0; font-size:clamp(40px,5.2vw,76px); line-height:.98; letter-spacing:-.065em; margin:0 0 26px; }
.legacy-intro h2 em { color:#888b91; font-style:normal; }
.legacy-intro p { max-width:440px; color:#97989e; line-height:1.7; font-size:15px; }
.legacy-text-link { display:inline-flex; align-items:center; gap:12px; margin-top:20px; color:#0050c8; font-size:13px; }
.legacy-text-link svg { width:15px; }
.legacy-disc-panel { min-width:0; text-align:center; color:#8f9298; font:11px 'DM Mono',monospace; }
.legacy-disc-ring { width:min(100%,620px); aspect-ratio:1; margin:auto; border-radius:50%; background:#0b0b0c; box-shadow:0 0 0 1px rgba(255,255,255,.12),0 25px 70px rgba(0,0,0,.52); overflow:hidden; }
.legacy-disc-ring img { width:100%; height:100%; object-fit:contain; filter:invert(1) brightness(.85) contrast(1.2); opacity:.88; }
.legacy-disc-panel > span { display:block; margin-top:15px; }
.home-dark .legacy-intro + .section { background:#fff; color:#24272d; }
@media (max-width:800px) {
  .legacy-home-hero { min-height:450px; padding:80px 20px 68px; }
  .legacy-home-hero h1 { font-size:clamp(48px,14vw,72px); }
  .legacy-product-stage { padding-left:16px; padding-right:16px; }
  .legacy-cards { min-height:360px; }
  .legacy-card { width:56vw; }
  .legacy-card:not(.is-active) { pointer-events:none; }
  .legacy-stage-footer { grid-template-columns:80px 1fr; }
  .legacy-stage-footer > span:last-child { display:none; }
  .legacy-intro { grid-template-columns:1fr; gap:34px; padding:72px 24px 84px; }
  .legacy-disc-ring { width:min(100%,560px); }
}

.home-dark .mobile-nav { color:#f4f4f0; }
.home-dark .menu-panel { color:var(--ink); }
.home-dark .nav-actions .icon-button:hover { background:#30363d; }
.home-quality .button.secondary:hover { background:#28333f; }

/* Reference-led glass studio Home. Existing product pages retain their theme. */
.home-glass { --u:min(100vw / 1280,100svh / 960); --ink:#07162d; --muted:#52617a; --accent:#0050c8; background:#eef3f9; color:var(--ink); }
.home-glass .site-header { position:absolute; inset:0 0 auto; background:none; border:0; backdrop-filter:none; }
.home-glass .nav { min-height:0; max-width:none; padding:calc(43 * var(--u)) 5.5vw; gap:24px; }
.home-glass .brand { color:#101e35; font-size:clamp(12px,calc(20 * var(--u)),20px); letter-spacing:-.035em; }
.home-glass .brand img { width:calc(37 * var(--u)); height:calc(37 * var(--u)); filter:invert(1); }
.home-glass .desktop-nav { position:absolute; left:50%; transform:translateX(-50%); gap:28px; padding:0 30px; height:calc(66 * var(--u)); min-height:52px; border-radius:999px; background:#ffffffa8; border:1px solid #ffffffd9; box-shadow:0 0 0 1px #91a7c330,0 4px 16px #36516b06; backdrop-filter:blur(24px); }
.home-glass .desktop-nav > a,.home-glass .nav-menu > summary { color:#283950; font-size:14px; font-weight:500; padding:18px 0; }
.home-glass .desktop-nav > a.active { color:#102039; }
.home-glass .desktop-nav > a.active::after { content:''; display:block; height:1px; background:#71849d; }
.home-glass .nav-actions { margin-left:auto; gap:12px; }
.home-glass .language-picker > svg { display:none; }
.home-glass .language-picker select { width:60px; color:#304967; font-size:12px; }
.home-glass .nav-quote { border-radius:999px; background:#101e35; border:0; padding:9px 10px 9px 25px; min-height:56px; gap:18px; font-size:14px; font-weight:400; }
.home-glass .nav-quote svg { width:36px; height:36px; padding:9px; border-radius:50%; background:#3b506b; }
.home-glass .menu-panel { top:calc(100% + 6px); border-color:#ffffffbf; border-radius:18px; background:#f7faff; backdrop-filter:blur(28px); box-shadow:0 16px 45px #31466318; }
.home-glass .mobile-nav { margin:0 5.5vw; background:#f8fbff; border:1px solid #fff; border-radius:20px; box-shadow:0 15px 40px #34496218; backdrop-filter:blur(25px); }
.glass-home { position:relative; isolation:isolate; height:100svh; min-height:640px; overflow:clip; }
.glass-studio { position:absolute; inset:0; z-index:-1; overflow:hidden; background:radial-gradient(ellipse at 62% 33%,#fff 0%,#f5f8fc 30%,transparent 65%),linear-gradient(155deg,#eef3f9 2%,#eff4fa 45%,#dfe8f2 100%); }
.studio-light { position:absolute; width:88%; height:150%; top:-30%; left:38%; transform:rotate(-29deg); border-left:1px solid #fff8; background:linear-gradient(90deg,#c9d9ea29,#fff9 4%,#fff0 22%,#fff2 65%,#c7d6e733); filter:blur(3px); }
.studio-caustic { position:absolute; width:58%; height:22%; left:39%; top:63%; transform:rotate(-20deg); border-radius:50%; background:radial-gradient(ellipse,transparent 38%,#a9bfd83b 46%,#fff9 50%,transparent 58%); filter:blur(20px); }
.glass-copy { position:absolute; z-index:3; top:calc(50% - 185 * var(--u)); left:6.1vw; pointer-events:none; }
.glass-copy .eyebrow { font-size:calc(15 * var(--u)); font-weight:500; letter-spacing:.015em; color:#53617a; margin:0 0 calc(29 * var(--u)); }
.glass-copy h1 { font-size:calc(88 * var(--u)); font-weight:400; line-height:1.02; letter-spacing:-.055em; margin:0 0 calc(30 * var(--u)); color:#07162d; }
.glass-copy h1 span { display:block; }
.glass-lead { max-width:calc(470 * var(--u)); font-size:calc(18 * var(--u)); color:#52617a; line-height:1.5; margin-bottom:calc(26 * var(--u)); }
.glass-explore { pointer-events:auto; display:inline-flex; align-items:center; gap:16px; font-size:calc(19 * var(--u)); color:#182a44; }
.round-icon { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; border-radius:50%; background:#fff; box-shadow:0 7px 20px #274b720b; }
.round-icon svg { width:19px; height:19px; }
.glass-disc.home-hero-v2-visual { position:absolute; z-index:2; left:42%; top:calc(50% - 365 * var(--u)); width:min(62vw,calc(720 * var(--u))); max-width:none; }
.glass-disc .encoder-showcase { width:100%; max-width:none; display:block; }
.glass-disc .encoder-caption { display:none; }
.glass-disc .encoder-surface { filter:drop-shadow(16px 32px 26px #6d87a623); }
.glass-disc .encoder-surface:hover { filter:drop-shadow(18px 38px 30px #6d87a62c); }
.glass-disc .micro-detail { z-index:10; min-width:260px; width:290px; max-width:calc(100vw - 24px); }
.glass-disc:has(.micro-detail.is-open) { z-index:6; }
.glass-disc .encoder-status { color:#344f70; }
.glass-inspect { position:absolute; left:18%; bottom:calc(-25 * var(--u)); }
.glass-inspect .inspection-toggle { color:#3b5b80; border:0; font-size:12px; gap:12px; padding:10px; }
.glass-inspect p { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.glass-product-panel { position:absolute; z-index:4; right:5.5vw; top:calc(50% - 35 * var(--u)); width:calc(280 * var(--u)); min-width:220px; padding:calc(28 * var(--u)); border-radius:calc(28 * var(--u)); border:1px solid #ffffffbf; background:linear-gradient(135deg,#ffffff85,#ffffff35); backdrop-filter:blur(28px) saturate(108%); box-shadow:inset 1px 1px 0 #ffffff90,0 18px 40px #1c345c09; }
.glass-panel-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:18px; }
.glass-panel-heading h2 { font-size:calc(24 * var(--u)); font-weight:500; letter-spacing:-.035em; margin:0; line-height:1.12; }
.glass-panel-heading > svg { width:45px; height:45px; padding:12px; border-radius:50%; background:#ffffffb3; box-shadow:0 0 26px 10px #ffffff4d; }
.glass-product-panel nav { display:grid; }
.glass-product-panel nav a { display:flex; gap:12px; justify-content:space-between; align-items:center; min-height:38px; padding:8px 0; color:#4d6380; font-size:calc(14 * var(--u)); line-height:1.3; }
.glass-product-panel nav a:hover { color:#07162d; }
.glass-product-panel nav svg { width:14px; height:14px; }
.glass-bottom { position:absolute; left:6.1vw; right:5.5vw; bottom:calc(65 * var(--u)); display:flex; align-items:center; justify-content:space-between; gap:30px; }
.glass-dimensions { display:flex; gap:calc(39 * var(--u)); align-items:center; margin:0; }
.glass-dimensions > div { display:flex; flex-direction:row-reverse; align-items:center; gap:calc(20 * var(--u)); }
.glass-dimensions dt { font-size:calc(17 * var(--u)); line-height:1.3; color:#536b86; max-width:100px; }
.glass-dimensions dd { margin:0; white-space:nowrap; font-size:calc(91 * var(--u)); letter-spacing:-.055em; font-weight:300; line-height:1; }
.glass-dimensions dd span { font-size:calc(19 * var(--u)); margin-left:8px; letter-spacing:-.03em; }
.dimension-divider { display:block; height:calc(65 * var(--u)); width:1px; background:#b8c5d5; transform:rotate(18deg); }
.glass-meet { display:flex; align-items:center; gap:16px; border:1px solid #ffffffcf; border-radius:999px; padding:10px 12px; background:#ffffff57; backdrop-filter:blur(28px); box-shadow:0 0 0 1px #91a7c319,0 8px 22px #1c345c05; color:#203957; font-size:14px; }
.glass-meet img { width:52px; height:52px; object-fit:contain; }
.glass-meet .round-icon { background:#1a2b45; color:white; margin-left:10px; }
html[lang="zh-CN"] .glass-copy h1 { font-size:calc(85 * var(--u)); letter-spacing:-.055em; }
/* Initial states for the one-time reference entrance. Animations release all
   properties afterward so navigation positioning and hover effects stay native. */
@media (prefers-reduced-motion:no-preference) {
  html.home-entrance-pre .home-glass :is(.site-header .brand,.desktop-nav,.nav-actions,.glass-copy .eyebrow,.glass-explore,.glass-product-panel,.process-playback,.glass-meet,.glass-inspect) { opacity:0; }
}
@media (prefers-reduced-motion:no-preference) {
 .glass-explore .round-icon,.glass-meet,.home-glass .nav-quote { transition:transform .25s ease; }
 .glass-explore:hover .round-icon,.glass-meet:hover,.home-glass .nav-quote:hover { transform:translateY(-3px); }
}
@media (max-width:1100px) {
 .home-glass .nav { padding:28px 5vw; }.home-glass .desktop-nav { gap:20px; padding:0 22px; }
 .home-glass .nav-quote { min-height:46px; font-size:12px; padding-left:18px; gap:12px; }
 .home-glass .nav-quote svg { width:30px; height:30px; padding:7px; }
 .glass-copy h1 { font-size:calc(80 * var(--u)); }.glass-product-panel { right:4vw; }
 .glass-dimensions { gap:22px; }.glass-dimensions dd { font-size:calc(78 * var(--u)); }
 .glass-dimensions dt { font-size:14px; max-width:75px; }.glass-meet { gap:8px; font-size:12px; }.glass-meet img { width:42px; height:42px; }
}
@media (max-width:800px), (max-aspect-ratio:4/5) {
 .home-glass { --u:1px; }.home-glass .site-header { position:absolute; }.home-glass .nav { padding:22px 24px; }
 .home-glass .desktop-nav { display:none; }.home-glass .mobile-menu-button { display:grid; background:#ffffff9e; border:1px solid #fff; border-radius:50%; }
 .home-glass .brand { font-size:14px; }.home-glass .brand img { width:30px; height:30px; }.home-glass .nav-actions { gap:6px; }.home-glass .nav-quote { display:none; }
 .glass-home { min-height:100svh; height:auto; padding:112px 26px 28px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-content:start; gap:24px 18px; overflow:clip; }
 .glass-copy { position:relative; top:auto; left:auto; grid-column:1/-1; }.glass-copy .eyebrow { font-size:11px; margin-bottom:18px; letter-spacing:.04em; }
 .glass-copy h1,html[lang="zh-CN"] .glass-copy h1 { font-size:clamp(38px,6.9vw,64px); line-height:1.04; margin-bottom:18px; }
 .glass-lead { font-size:14px; max-width:400px; margin-bottom:16px; }.glass-explore { font-size:15px; gap:12px; }.glass-explore .round-icon { width:38px; height:38px; }
 .glass-disc.home-hero-v2-visual { position:relative; top:auto; left:auto; grid-column:1/-1; width:min(100%,400px); justify-self:center; margin:-12px 0 18px; }
 .glass-inspect { bottom:-18px; left:50%; transform:translateX(-50%); white-space:nowrap; }
 .glass-product-panel { position:relative; top:auto; right:auto; grid-column:1/-1; width:100%; min-width:0; padding:18px 20px; border-radius:24px; display:grid; grid-template-columns:1fr 1.6fr; gap:20px; }
 .glass-panel-heading { margin:0; }.glass-panel-heading h2 { font-size:23px; }.glass-panel-heading > svg { display:none; }.glass-product-panel nav a { font-size:13px; min-height:34px; padding:6px 0; }
 .glass-bottom { position:relative; left:auto; right:auto; bottom:auto; grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; }
 .glass-dimensions { gap:24px; }.glass-dimensions > div { flex-direction:column-reverse; align-items:flex-start; gap:5px; }.glass-dimensions dd { font-size:52px; }.glass-dimensions dt { font-size:12px; max-width:none; }.glass-dimensions dd span { font-size:14px; }.dimension-divider { height:48px; }
 .glass-meet { padding:8px; font-size:12px; }.glass-meet img { width:36px; height:36px; }.glass-meet .round-icon { width:36px; height:36px; margin-left:0; }
 .studio-caustic { top:43%; left:16%; width:85%; }.studio-light { left:22%; }
}
@media (max-width:440px) {
 .home-glass .nav { padding:18px 20px; }.glass-home { padding:100px 20px 24px; gap:20px 12px; }
 .glass-disc.home-hero-v2-visual { width:88%; max-width:310px; margin:-10px 0 18px; }
 .glass-product-panel { grid-template-columns:1fr; gap:12px; padding:18px; }.glass-panel-heading h2 { font-size:18px; }.glass-panel-heading h2 br { display:none; }
 .glass-product-panel nav { grid-template-columns:1fr 1fr; gap:4px 18px; }.glass-product-panel nav a { font-size:12px; }
 .glass-bottom { gap:20px; }.glass-dimensions { width:100%; justify-content:space-between; gap:15px; }.glass-dimensions > div { flex-direction:row-reverse; align-items:center; gap:12px; }.glass-dimensions dd { font-size:45px; }.glass-dimensions dt { max-width:65px; }.glass-meet { width:100%; justify-content:space-between; }
}
@media (prefers-reduced-transparency:reduce) { .home-glass .desktop-nav,.glass-product-panel,.glass-meet { background:#f2f6fc; backdrop-filter:none; } }
.process-canvas { position:absolute; z-index:2; inset:0; width:100%; height:100%; pointer-events:none; }
.process-playback { width:min(64%,650px); }
.process-playback-top { display:flex; align-items:center; gap:18px; margin-bottom:16px; }
.process-caption { font-size:14px; color:#354b68; margin:0; }
.process-play-toggle { flex-shrink:0; display:grid; place-items:center; width:32px; height:32px; border:1px solid #ffffffcf; background:#ffffff7d; border-radius:50%; }
.process-play-toggle svg { width:13px; height:13px; }
.process-stages { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:15px; }
.process-stages button { --progress:0; position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:0 0 15px; background:transparent; border:0; color:#566982; font-size:12px; text-align:left; }
.process-stage-number { font:11px monospace; color:#71839c; }
.process-stages button[aria-current] { color:#10243e; font-weight:600; }
.process-stages i { position:absolute; left:0; right:0; bottom:0; height:2px; background:#b7c7da43; overflow:hidden; }
.process-stages i::after { content:''; display:block; height:100%; background:#4a78b0; transform:scaleX(var(--progress)); transform-origin:left; }
.process-note { font-size:10px; color:#64758d; margin:12px 0 0; max-width:590px; }
@media (max-width:1100px) and (min-width:801px) { .glass-bottom { bottom:35px; }.process-playback { width:62%; }.process-stages { gap:10px; }.process-caption { font-size:12px; }.glass-inspect { bottom:0; } }
@media (max-width:800px), (max-aspect-ratio:4/5) { .process-playback { width:100%; }.glass-bottom { gap:22px; }.process-playback-top { margin-bottom:12px; }.process-caption { font-size:12px; }.process-stages { gap:7px; }.process-stages button { font-size:10px; line-height:1.15; }.process-stage-number { font-size:9px; }.glass-meet { margin-left:auto; } }

@media (max-width:800px), (max-aspect-ratio:4/5) { .home-glass [data-search-open] { display:none; } }

/* Product specification tables: preserve column readability on narrow screens. */
.published-specifications h2 { margin-bottom:24px; }
.spec-scroll { overflow-x:auto; margin:28px 0; overscroll-behavior-x:contain; }
.spec-scroll:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.spec-scroll .spec-table { min-width:540px; }
.spec-scroll .spec-table th { width:auto; }
.spec-scroll .spec-table thead th { font-weight:600; color:inherit; }
.spec-scroll .spec-table caption { color:inherit; }
.laser-writing-capability .section-header { max-width:920px; }
.laser-writing-table { min-width:900px; }
.laser-writing-table th:first-child { width:34%; }
.laser-writing-capability-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; margin-top:46px; }
.laser-writing-capability-grid h3 { margin-bottom:18px; font-size:22px; }
.laser-writing-capability-grid p { max-width:62ch; font-size:14px; }
.laser-writing-feature-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; padding:0; margin:0; list-style:none; }
.laser-writing-feature-list li { display:flex; flex-direction:column; gap:3px; padding:14px 0; border-top:1px solid var(--line); font-size:13px; }
.laser-writing-feature-list strong { font-weight:500; color:var(--ink); }
.laser-writing-feature-list span { color:var(--muted); }
.laser-writing-note { display:flex; gap:18px; align-items:flex-start; margin-top:42px; padding:18px 20px; border:1px solid #dfe2e5; border-left:3px solid var(--accent); background:#f4f5f6; font-size:13px; }
.laser-writing-note strong { white-space:nowrap; font-weight:500; color:var(--ink); }
.laser-writing-note span { color:var(--muted); }
.laser-writing-product h3 { margin-top:30px; margin-bottom:12px; font-size:21px; }
.laser-writing-product .plain-list { margin-top:0; }
.laser-writing-product .technical-note { font-size:12px; line-height:1.6; }
.equipment-showcase .section-header { max-width:900px; }
.equipment-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:34px; }
.equipment-card { min-width:0; border-top:1px solid var(--line); padding-top:18px; }
.equipment-card figure,.equipment-feature figure { margin:0; }
.equipment-card figure { background:#f4f5f6; }
.equipment-card img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.equipment-card figcaption,.equipment-feature figcaption { padding:10px 12px 12px; color:var(--muted); font-size:12px; line-height:1.45; }
.equipment-card h3 { margin:24px 0 10px; font-size:21px; }
.equipment-card p { max-width:60ch; color:var(--muted); font-size:14px; line-height:1.75; }
.equipment-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; padding:0; margin:18px 0 0; list-style:none; }
.equipment-facts li { padding:11px 0; border-top:1px solid var(--line); color:var(--ink); font-size:13px; line-height:1.5; }
.equipment-feature { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr); gap:48px; align-items:start; margin-top:34px; }
.equipment-feature figure { background:#f4f5f6; }
.equipment-feature img { display:block; width:100%; aspect-ratio:16 / 10; object-fit:cover; }
.equipment-feature h3 { margin:0 0 16px; font-size:22px; }
.equipment-feature .equipment-facts { grid-template-columns:1fr; margin-top:0; }
.equipment-feature .technical-note { margin-top:24px; color:var(--muted); font-size:13px; line-height:1.7; }
.equipment-note { max-width:900px; margin:30px 0 0; padding:16px 18px; border-left:3px solid var(--accent); background:#f4f5f6; color:var(--muted); font-size:13px; line-height:1.7; }
@media (max-width:800px) {
 .laser-writing-capability-grid { grid-template-columns:1fr; gap:28px; margin-top:34px; }
 .laser-writing-feature-list { grid-template-columns:1fr; }
 .laser-writing-note { flex-direction:column; gap:6px; }
 .equipment-grid,.equipment-feature { grid-template-columns:1fr; gap:26px; }
 .equipment-facts { grid-template-columns:1fr; }
 .equipment-feature { gap:24px; }
}

/* Category pages: system-level selection guidance sits between the product
   cards and the detailed product pages. */
.category-editorial .section-label { margin-bottom:12px; }
.editorial-compare-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 28px; margin-top:28px; }
.editorial-compare-grid article { min-width:0; padding:20px 0 4px; border-top:1px solid var(--line); }
.editorial-compare-grid article h3 { margin:0 0 10px; font-size:16px; line-height:1.3; color:var(--ink); }
.editorial-compare-grid article p { margin:0 0 18px; font-size:13px; line-height:1.65; color:var(--muted); }
.editorial-compare-grid .text-link { font-size:12px; }
.category-editorial.faq .container { max-width:1280px; }
.category-editorial.faq details { border-bottom:1px solid var(--line); }
.photomask-category-hero { display:grid; grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr); gap:clamp(28px,5vw,76px); align-items:center; padding-top:28px; padding-bottom:28px; }
.photomask-category-hero figure { margin:0; aspect-ratio:3 / 4; max-width:300px; overflow:hidden; border-radius:18px; background:#07150d; box-shadow:none; }
.photomask-category-hero figure img { width:100%; height:100%; object-fit:cover; display:block; }
.photomask-category-hero figcaption { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.photomask-category-hero h2 { margin:0 0 16px; max-width:12em; font-size:clamp(30px,4vw,58px); line-height:1.06; letter-spacing:-.045em; font-weight:500; }
.photomask-category-hero p:not(.section-label) { max-width:60ch; color:var(--muted); line-height:1.7; }
@media (max-width:700px) { .photomask-category-hero { grid-template-columns:1fr; gap:22px; padding-top:10px; } .photomask-category-hero figure { max-width:none; width:min(100%,360px); } }
@media (max-width:900px) { .editorial-compare-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; } }
@media (max-width:560px) { .editorial-compare-grid { grid-template-columns:1fr; } }

/* Optical product catalogue: compact editorial hierarchy with material-led imagery.
   Variance 4 / motion 3 / density 6. Native CSS, existing site components. */
:root { --ink:#202124; --muted:#62676d; --line:#dfe2e5; --accent:#0050c8; --accent-dark:#003b91; --bg:#fff; --soft:#f4f5f6; --soft-blue:#eef3f9; }
body:not(.home-glass) { background:var(--bg); }
body:not(.home-glass) .container { width:min(1280px,calc(100% - 64px)); }
body:not(.home-glass) .section { padding-top:42px; padding-bottom:42px; }
body:not(.home-glass) .compact { padding-top:8px; }
body:not(.home-glass) h2 { font-size:27px; margin-bottom:16px; }
body:not(.home-glass) p { line-height:1.6; }
body:not(.home-glass) .page-heading { padding-top:26px; padding-bottom:30px; }
body:not(.home-glass) .page-heading h1 { font-size:clamp(30px,3.1vw,43px); line-height:1.12; letter-spacing:-.035em; max-width:970px; margin-bottom:16px; }
body:not(.home-glass) .page-heading > p { max-width:810px; font-size:15px; }
body:not(.home-glass) .breadcrumbs { margin-bottom:23px; }
body:not(.home-glass) .category-detail { grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr); gap:46px; }
body:not(.home-glass) .section-header { margin-bottom:22px; }
.button { background:var(--accent); border-color:var(--accent); transition:background .18s,transform .18s; }
.button:hover { background:#1a2b45; border-color:#1a2b45; }
.button:active { transform:translateY(1px); }
.button.secondary { background:#fff; border-color:#bdc9c5; }
.button.secondary:hover { background:#eef3f9; border-color:#6d7e94; }
.catalog-intro { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:18px; border-top:1px solid var(--line); padding-top:20px; }
.catalog-intro h2,.catalog-intro p { margin:0; }
.catalog-intro p { font-size:13px; }
.category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
/* All-products overview: six equal image entrances, followed by application routes. */
.pattern-category-intro { display:block; }
.pattern-category-intro h2,.pattern-category-definition h2 { font-size:28px; margin:0 0 18px; }
.pattern-category-intro p,.pattern-category-definition p { font-size:16px; line-height:1.85; max-width:820px; }
.pattern-category-group { padding-top:28px; padding-bottom:36px; }
.pattern-category-group > h2 { font-size:26px; margin-bottom:26px; }
.pattern-family-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 40px; }
.pattern-family-card { display:grid; grid-template-columns:clamp(180px,15vw,200px) minmax(0,1fr); align-items:center; gap:24px; min-width:0; }
.pattern-family-copy { min-width:0; }
.pattern-family-image { display:grid; place-items:center; width:100%; aspect-ratio:1; background:#fff; border-radius:8px; overflow:hidden; }
.pattern-family-image img { display:block; width:100%; height:100%; object-fit:contain; }
.pattern-family-card h3 { margin:0 0 10px; font-size:21px; line-height:1.45; }
.pattern-family-card h3 a { display:inline-block; color:#003b91; }
.pattern-family-card p { margin:0; font-size:15px; line-height:1.75; color:#596575; }
.pattern-family-card:has(.pattern-family-image:is(:hover,:focus-visible)) h3 a { color:#0050c8; }
.pattern-exposure-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; margin-top:30px; }
.pattern-exposure-grid article { padding-top:24px; border-top:1px solid #d6dfe9; }
.pattern-exposure-grid h3 { font-size:22px; }
.pattern-exposure-grid p { font-size:15px; line-height:1.8; }
.pattern-category-drawing { border-top:1px solid var(--line); }
.pattern-category-drawing p { max-width:820px; }
.custom-pattern-overview > p { max-width:900px; line-height:1.85; }
.custom-pattern-image-note { font-size:13px; color:#697585; }
.custom-pattern-explanation { padding-top:0; }
.custom-pattern-explanation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 44px; }
.custom-pattern-explanation-grid article:first-child { grid-column:1 / -1; }
.custom-pattern-explanation-grid article:first-child p { max-width:900px; }
.custom-pattern-explanation-grid h2 { font-size:24px; }
.custom-pattern-explanation-grid p { font-size:15px; line-height:1.85; }
.custom-pattern-option-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:28px; }
.custom-pattern-option-grid.has-pattern-images { grid-template-columns:repeat(3,minmax(0,1fr)); }
.custom-pattern-option-grid article { min-width:0; }
.custom-pattern-option-grid h3 { font-size:20px; }
.custom-pattern-option-grid p { font-size:15px; line-height:1.8; }
.custom-pattern-option-image { aspect-ratio:1; background:#fff; margin-bottom:20px; }
.custom-pattern-option-image img { display:block; width:100%; height:100%; object-fit:contain; }
.custom-pattern-table-scroll { max-width:100%; overflow-x:auto; margin-bottom:24px; }
.custom-pattern-table-scroll table { width:100%; min-width:520px; }
.custom-pattern-table-scroll th { width:25%; }
.custom-pattern-table-scroll ul { margin:0; padding-left:20px; }
.custom-pattern-table-scroll li + li { margin-top:5px; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .pattern-family-card:has(.pattern-family-image:hover) h3 a { animation:navigation-lift .36s ease-out both; }
}
@media(min-width:901px) and (max-width:1100px) {
 .pattern-family-grid { column-gap:28px; }
 .pattern-family-card { grid-template-columns:180px minmax(0,1fr); gap:18px; }
 .pattern-family-card h3 { font-size:19px; }
}
@media(max-width:900px) {
 .pattern-family-grid { grid-template-columns:1fr; gap:28px; }
 .pattern-family-card { grid-template-columns:180px minmax(0,1fr); }
 .custom-pattern-explanation-grid,.custom-pattern-option-grid.has-pattern-images { grid-template-columns:1fr; }
 .custom-pattern-option-image { max-width:400px; }
}
@media(max-width:600px) {
 .pattern-exposure-grid,.custom-pattern-option-grid { grid-template-columns:1fr; gap:26px; }
 .pattern-family-grid { gap:26px; }
 .pattern-family-card { grid-template-columns:120px minmax(0,1fr); gap:18px; align-items:start; }
 .pattern-family-card h3 { font-size:18px; }
 .pattern-family-card p { font-size:14px; }
}
@media(max-width:360px) { .pattern-family-card { grid-template-columns:104px minmax(0,1fr); gap:14px; } }
.products-overview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 28px; }
.products-overview-card { min-width:0; }
.products-overview-image { display:block; aspect-ratio:1; overflow:hidden; border-radius:8px; background:#f2f4f6; }
.products-overview-image img { display:block; width:100%; height:100%; object-fit:contain; }
.products-overview-card h2 { min-height:2.9em; margin:19px 0 10px; font-size:22px; line-height:1.45; letter-spacing:-.015em; }
.products-overview-card h2 a { display:inline-block; color:#003b91; }
.products-overview-card p { margin:0; max-width:36em; font-size:15px; line-height:1.75; color:#596575; }
.products-overview-card:has(.products-overview-image:is(:hover,:focus-visible)) h2 a { color:#0050c8; }
.products-overview-custom { margin:40px 0 0; padding-top:24px; border-top:1px solid var(--line); font-size:14px; color:#596575; }
.products-overview-custom a { color:#263d57; }
.products-by-application { background:#f5f7fa; }
.products-by-application h2 { margin:0 0 12px; font-size:28px; }
.products-by-application-intro { margin:0 0 32px; font-size:15px; color:#596575; }
.products-application-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin-bottom:30px; }
.products-application-grid > a { display:block; padding-top:22px; border-top:1px solid #d5dee8; }
.products-application-grid svg { width:24px; height:24px; margin-bottom:16px; color:#003b91; stroke-width:1.5; }
.products-application-grid h3 { margin:0 0 8px; font-size:18px; line-height:1.5; color:#003b91; }
.products-application-grid p { margin:0; font-size:14px; line-height:1.7; color:#596575; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .products-overview-card:has(.products-overview-image:hover) h2 a { animation:navigation-lift .36s ease-out both; }
}
@media(max-width:900px) {
 .products-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 22px; }
 .products-application-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .products-overview-grid { gap:28px 16px; }
 .products-overview-card h2 { font-size:18px; margin-top:14px; }
 .products-overview-card p { font-size:14px; }
 .products-by-application h2 { font-size:25px; }
}
@media(max-width:420px) {
 .products-overview-grid { grid-template-columns:1fr; }
 .products-overview-card h2 { min-height:0; }
 .products-application-grid { grid-template-columns:1fr; gap:24px; }
}
.catalog-card { min-width:0; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:8px; transition:border-color .2s,box-shadow .2s; }
.category-card.catalog-card { padding:0; display:block; min-height:0; }
.catalog-card:hover { transform:none; border-color:#a1aaa2; box-shadow:none; }
.catalog-image { display:block; aspect-ratio:1.6; overflow:hidden; background:#e3e9e5; }
.catalog-image img { width:100%; height:100%; object-fit:contain; padding:12px; background:#f4f5f6; transition:transform .35s cubic-bezier(.22,.61,.36,1); }
.catalog-image:hover img,.catalog-image:focus-visible img { transform:scale(1.045); }
.catalog-image img[src*="encoder-"] { object-fit:contain; padding:12px; background:#f4f5f6; }
.catalog-copy { padding:20px 20px 18px; border-top:1px solid #ffffff70; }
.catalog-copy h3,.category-card.catalog-card h3 { font-size:20px; line-height:1.22; letter-spacing:-.02em; margin:0 0 10px; min-height:0; overflow-wrap:normal; }
.catalog-copy h3 a:hover { color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.catalog-copy p,.category-card.catalog-card p { font-size:13px; margin:0; }
.catalog-layout { display:grid; grid-template-columns:minmax(0,1fr) 245px; gap:32px; align-items:start; }
.catalog-layout > div { min-width:0; }
.catalog-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.catalog-product-grid .catalog-copy { padding:16px; }
.catalog-product-grid .catalog-copy h3 { font-size:18px; }
.absolute-code-range { grid-template-columns:minmax(0,1fr) minmax(0,1.55fr) minmax(0,1fr) minmax(0,1.55fr) minmax(0,1fr); gap:18px; align-items:start; }
.absolute-code-range .catalog-card:nth-child(1) { grid-column:2; }
.absolute-code-range .catalog-card:nth-child(2) { grid-column:4; }
.absolute-code-range .catalog-image { aspect-ratio:auto; height:auto; background:#eef1ed; }
.absolute-code-range .catalog-image img { display:block; width:100%; height:auto; object-fit:contain; padding:0; }
.absolute-code-range .catalog-card { overflow:visible; background:transparent; border:0; border-radius:0; }
.absolute-code-range .catalog-expand { margin-top:14px; }
.absolute-code-range .catalog-expand summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:0 0 12px; border-bottom:1px solid var(--line); cursor:pointer; list-style:none; font-size:18px; line-height:1.3; font-weight:600; color:#202124; }
.absolute-code-range .catalog-expand summary::-webkit-details-marker { display:none; }
.absolute-code-range .catalog-expand summary:hover { color:var(--accent); }
.catalog-expand-icon { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border:1px solid #c9d2dc; border-radius:50%; color:#003b91; font-size:22px; font-weight:400; line-height:1; transition:transform .2s ease,background .2s ease,color .2s ease; }
.catalog-expand summary:hover .catalog-expand-icon { background:#eef3f9; }
.catalog-expand[open] .catalog-expand-icon { transform:rotate(45deg); background:#eef3f9; }
.catalog-expand-panel { padding-top:12px; }
.catalog-expand-panel p { margin:0; color:var(--muted); font-size:13px; line-height:1.7; }
.catalog-group-heading { font-size:21px !important; margin-bottom:18px !important; }
.scope-groups { gap:30px; }
.catalog-requirements { position:sticky; top:102px; border:1px solid #dfe2e5; border-top:3px solid var(--accent); background:#eef3f9; border-radius:6px; padding:22px 20px; }
.catalog-requirements h2 { font-size:20px !important; }
.catalog-requirements ul { font-size:13px; padding-left:17px; margin:12px 0 20px; }
.catalog-requirements li { padding:5px 0; }
.catalog-requirements .button { width:100%; }
.catalog-requirements .related-link { font-size:13px; gap:10px; padding:16px 0 0; margin-top:17px; }
.feature-catalog-scope { display:grid; gap:38px; }
.feature-catalog-group { min-width:0; }
.feature-catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
/* Reference layout: one portrait image, small top-left label and bottom-left copy. */
.feature-catalog-card { position:relative; min-width:0; color:#fff; transform:translate3d(0,0,0); }
.catalog-entrance-pre .feature-catalog-card,.feature-catalog-card.is-pending { opacity:0; }
.feature-catalog-media { position:relative; display:flex; flex-direction:column; justify-content:space-between; gap:64px; width:100%; min-height:100%; aspect-ratio:3 / 4; padding:16px; overflow:hidden; border-radius:16px; background:#08150c; }
.feature-catalog-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feature-catalog-shade { display:none; }
.feature-catalog-title { position:relative; display:flex; align-items:flex-start; gap:6px; z-index:2; margin:0; padding:4px 10px; color:#fff; font-size:14px; line-height:1.4; font-weight:500; letter-spacing:0; overflow-wrap:break-word; }
.feature-catalog-title svg { width:16px; height:16px; margin-top:2px; flex-shrink:0; }
.blank-catalog-scope .photomask-minimal-card .feature-catalog-media { min-height:0; aspect-ratio:auto; gap:0; padding:0; border-radius:0; background:#fff; }
.blank-catalog-scope .photomask-minimal-card .feature-catalog-media img { position:static; display:block; width:100%; height:auto; aspect-ratio:765 / 1024; object-fit:contain; }
.blank-catalog-scope .photomask-minimal-card .feature-catalog-title { order:1; min-height:48px; padding:13px 0 5px; color:#202124; font-size:15px; font-weight:600; }
.feature-catalog-description { position:relative; z-index:2; display:block; margin:0; color:rgba(255,255,255,.9); font-size:14px; line-height:1.6; }
.feature-catalog-media:focus-visible { outline:3px solid #4a78b0; outline-offset:3px; }
/* Supplied patterned-glass references are square 900 x 900 assets. Keep the full artwork visible. */
.reticle-image-catalog .feature-catalog-grid,
.reticle-image-group .feature-catalog-grid,
.micro-pattern-catalog .feature-catalog-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
/* Reset inherited min-height:100% so a card cannot stretch its square image. */
.reticle-image-catalog .feature-catalog-grid,
.reticle-image-group .feature-catalog-grid,
.micro-pattern-catalog .feature-catalog-grid { align-items:start; }
.reticle-image-catalog .feature-catalog-media,
.reticle-image-group .feature-catalog-media,
.micro-pattern-catalog .feature-catalog-media { display:block; width:100%; height:auto; min-height:0; aspect-ratio:1 / 1; padding:0; border-radius:0; background:#fff; }
.reticle-image-catalog .feature-catalog-media img,
.reticle-image-group .feature-catalog-media img,
.micro-pattern-catalog .feature-catalog-media img { position:static; display:block; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:contain; background:#fff; }
.reticle-image-card { min-height:0; align-self:start; aspect-ratio:1 / 1; background:#fff; border:0; border-radius:0; box-shadow:none; }
.reticle-image-card:focus-within { outline:2px solid var(--accent); outline-offset:3px; }
.reticle-editorial-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.reticle-editorial-grid p,.reticle-editorial-grid li { font-size:15px; color:var(--muted); line-height:1.7; }
.reticle-editorial-grid ul { padding-left:20px; }
.reticle-editorial-grid li + li { margin-top:12px; }
@media (max-width:800px) { .reticle-editorial-grid { grid-template-columns:1fr; gap:20px; } }
.reticle-detail-page .detail-product-figure img { aspect-ratio:1 / 1; object-fit:contain; padding:12px; background:#f4f5f6; }
.reticle-detail-page .detail-product-figure { max-width:620px; }
/* Round discs and long scales need an uncropped product view. */
.encoder-catalog-scope .feature-catalog-media {
 aspect-ratio:auto;
 min-height:0;
 padding:0;
 gap:0;
 justify-content:flex-start;
 background:#f4f5f6;
}
.encoder-catalog-scope .feature-catalog-title {
 order:-1;
 min-height:68px;
 align-items:center;
 padding:14px 18px;
 background:#202124;
}
.encoder-catalog-scope .feature-catalog-media img {
 position:static;
 display:block;
 width:100%;
 height:auto;
 aspect-ratio:1;
 object-fit:contain;
 padding:12px;
}
.encoder-catalog-scope .feature-catalog-shade { display:none; }
.encoder-catalog-scope .encoder-photo-card .feature-catalog-media { aspect-ratio:765 / 1024; }
.encoder-catalog-scope .encoder-photo-card .feature-catalog-media img { aspect-ratio:765 / 1024; padding:0; }
.encoder-catalog-scope .encoder-photo-card .feature-catalog-title {
 position:absolute;
 top:0;
 left:0;
 right:0;
 min-height:0;
 padding:18px;
 background:none;
}
.encoder-catalog-scope .encoder-photo-card .feature-catalog-shade { display:none; }

/* A second selection dimension, separate from incremental/absolute encoding. */
.encoder-optical-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.encoder-optical-grid article { min-width:0; display:flex; flex-direction:column; border-block:1px solid var(--line); padding:24px 0; }
.encoder-optical-grid h3 { margin:0 0 16px; font-size:22px; line-height:1.3; }
.encoder-optical-grid p,.encoder-optical-grid .plain-list { font-size:14px; line-height:1.7; }
.encoder-optical-grid .plain-list { padding-left:18px; margin:0 0 24px; }
.encoder-mode-products { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:auto; }
.encoder-mode-products a { font-size:13px; font-weight:500; text-decoration:underline; text-underline-offset:4px; }
.encoder-mode-products a:hover { color:var(--accent); }
.encoder-optical-modes,.encoder-optical-grid article { scroll-margin-top:100px; }
@media (max-width:700px) { .encoder-optical-grid { grid-template-columns:1fr; gap:24px; } }
@media (prefers-reduced-motion:reduce) {
 .catalog-entrance-pre .feature-catalog-card,.feature-catalog-card.is-pending { opacity:1; }
 .feature-catalog-card,.feature-catalog-card img { animation:none !important; transition:none !important; transform:none !important; }
}
.illustration-note { color:#606b66; font-size:12px; margin:16px 0 0; }
.family-switcher { display:flex; flex-wrap:wrap; gap:8px; padding:0 0 20px; border-bottom:1px solid var(--line); }
.family-switcher a { font-size:12px; line-height:1.45; padding:8px 11px; border:1px solid var(--line); border-radius:4px; background:#fff; transition:background .16s; }
.family-switcher a:hover { background:#eef3f9; }
.family-switcher [aria-current="page"] { background:#202124; color:#fff; border-color:#202124; }
.product-overview { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:40px; align-items:center; }
.detail-product-figure { margin:0; min-width:0; }
.detail-product-figure img { width:100%; height:auto; aspect-ratio:800/520; object-fit:contain; border-radius:8px; border:1px solid var(--line); background:#f4f5f6; }
.detail-product-figure img[src$="substrate-main.webp"],.detail-product-figure img[src$="blank-main.webp"],.detail-product-figure img[src$="plate-main.webp"] { width:min(100%,480px); aspect-ratio:765/1024; margin-inline:auto; background:#101718; }
.detail-product-figure figcaption { color:var(--muted); font-size:12px; margin-top:9px; }
.product-overview > div > p { font-size:14px; }
.detail-spec-link { margin:16px 0 0; display:flex; width:fit-content; }
body:not(.home-glass) .spec-table th,body:not(.home-glass) .spec-table td { padding:11px 12px; }
body:not(.home-glass) .spec-table thead { background:#eef3f9; }
body:not(.home-glass) .spec-table tbody tr:nth-child(even) { background:#f8fafc; }
body:not(.home-glass) .spec-table { background:#fff; }
body:not(.home-glass) .spec-scroll { margin:20px 0 28px; }
body:not(.home-glass) .spec-table caption { margin-bottom:12px; }
body:not(.home-glass) .section.soft-band.faq { max-width:none; }
body:not(.home-glass) .faq .container { max-width:920px; }
body:not(.home-glass) .feature-band { background:#eef3f9; border-block:1px solid #d5deea; }
body:not(.home-glass) .product-card-copy { padding:20px; }
body:not(.home-glass) .rfq-band { padding:38px 0; background:#eef3f9; }
body:not(.home-glass) .site-footer { padding-top:40px; padding-bottom:20px; background:#f4f5f6; border-top:1px solid #dfe2e5; }
body:not(.home-glass) .footer-grid { gap:30px; }
/* One frosted header across the site. Blur sits behind readable solid text. */
.site-header,.home-glass .site-header { z-index:40; background:rgba(255,255,255,.88); border-bottom:1px solid rgba(201,210,220,.72); box-shadow:0 2px 16px #2021240a; backdrop-filter:blur(24px) saturate(150%); -webkit-backdrop-filter:blur(24px) saturate(150%); }
.nav,.home-glass .nav { min-height:76px; max-width:1480px; padding:0 24px; margin:auto; gap:18px; }
.brand,.home-glass .brand { font-size:14px; letter-spacing:0; color:#202124; }
.brand img,.home-glass .brand img { width:32px; height:32px; }
.desktop-nav,.home-glass .desktop-nav { position:static; transform:none; height:auto; min-height:0; padding:0; gap:19px; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.desktop-nav > a,.nav-menu > summary,.home-glass .desktop-nav > a,.home-glass .nav-menu > summary { display:flex; align-items:center; padding:26px 0; font-size:13px; font-weight:500; color:#202124; position:relative; white-space:nowrap; }
.desktop-nav > a.active,.home-glass .desktop-nav > a.active,.desktop-nav .active { color:#4a78b0; }
.home-glass .desktop-nav > a.active::after { display:none; }
.nav-actions,.home-glass .nav-actions { gap:6px; margin-left:0; }
.home-glass .nav-quote,.nav-quote { background:#263d57; border:1px solid #263d57; border-radius:5px; min-height:40px; padding:9px 13px; gap:8px; font-size:12px; color:#fff; }
.home-glass .nav-quote:hover,.nav-quote:hover { background:#1a2b45; border-color:#1a2b45; }
.home-glass .nav-quote svg,.nav-quote svg { width:17px; height:17px; padding:0; background:none; border-radius:0; }
.menu-panel,.home-glass .menu-panel { width:365px; max-width:calc(100vw - 40px); top:100%; left:-18px; border-radius:7px; background:rgba(250,252,247,.96); border:1px solid #cfd9d1; backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); box-shadow:0 12px 32px #1a33221a; }
.menu-panel a { font-size:13px; }
.mobile-nav,.home-glass .mobile-nav { margin:0; border:0; border-top:1px solid var(--line); border-radius:0; background:#f4f5f6; box-shadow:none; }
@keyframes navigation-lift { 0% { transform:translateY(0); } 45% { transform:translateY(-4px); } 75% { transform:translateY(1px); } 100% { transform:translateY(-1px); } }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .desktop-nav > a:hover,.nav-menu > summary:hover { animation:navigation-lift .36s ease-out both; color:#4a78b0; }
}

/* v1.2 product directory: one restrained, image-led format across every family. */
.uniform-product-catalog .feature-catalog-grid,
.product-directory .uniform-product-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:22px;
}
.uniform-product-card { min-width:0; }
.uniform-product-card .feature-catalog-media {
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:0;
  width:100%;
  min-height:0;
  aspect-ratio:auto;
  padding:0;
  border-radius:0;
  background:#fff;
  overflow:hidden;
}
.uniform-product-card .feature-catalog-media img {
  position:static;
  order:1;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1 / 1;
  padding:0;
  object-fit:contain;
  background:#f4f5f6;
}
.uniform-product-card .feature-catalog-title {
  position:static;
  order:2;
  display:flex;
  align-items:center;
  width:100%;
  min-height:64px;
  margin:0;
  padding:12px 14px;
  color:#263d57;
  background:#f4f5f6;
  font-size:14px;
  font-weight:500;
  line-height:1.45;
  letter-spacing:0;
}
.uniform-product-card .feature-catalog-title span { transform:none; }
.uniform-product-card-long .feature-catalog-media img { object-fit:contain; }
.product-directory { padding-top:28px; }
.product-pagination {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-top:44px;
  padding-top:24px;
  border-top:1px solid #dfe4e8;
}
.product-page-numbers { display:flex; align-items:center; gap:7px; }
.product-page-number,.product-page-arrow {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  color:#263d57;
  border:1px solid #d7dde2;
  background:#fff;
  text-decoration:none;
  font-size:15px;
  font-weight:600;
  letter-spacing:0;
}
.product-page-number:is(:hover,:focus-visible),.product-page-arrow:is(:hover,:focus-visible) { color:#0050c8; border-color:#0050c8; }
.product-page-number.is-current { color:#fff; border-color:#263d57; background:#263d57; }
.product-page-arrow svg { width:17px; height:17px; }
.product-page-arrow.is-disabled { visibility:hidden; }

/* v1 detail opening: crop portrait source photos to the useful square field so
   the product fills the frame; long scales keep their complete proportions. */
.v1-product-layout .target-hero-media {
  width:min(100%,455px);
  aspect-ratio:1 / 1;
  justify-self:center;
  overflow:hidden;
  background:#f4f5f6;
}
.v1-product-layout .target-hero-media img {
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  aspect-ratio:1 / 1;
  object-fit:cover;
  object-position:center;
}
.v1-product-layout.v1-long-product .target-hero-media img { object-fit:contain; }
.v1-product-layout .target-hero-heading h2,
.v1-product-layout .target-hero-heading p { letter-spacing:0; }

@media (max-width:1180px) {
  .uniform-product-catalog .feature-catalog-grid,
  .product-directory .uniform-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .v1-product-layout .target-hero-media { width:min(100%,420px); }
}
@media (max-width:430px) {
  .uniform-product-catalog .feature-catalog-grid,
  .product-directory .uniform-product-grid { grid-template-columns:1fr; }
  .product-pagination { gap:10px; }
  .product-page-number,.product-page-arrow { width:38px; height:38px; }
}
@media (min-width:1061px) { .desktop-nav,.home-glass .desktop-nav { display:flex; }.mobile-menu-button,.home-glass .mobile-menu-button { display:none; } }
@media (max-width:1180px) and (min-width:1061px) {
 .desktop-nav,.home-glass .desktop-nav { gap:13px; }.nav,.home-glass .nav { gap:12px; padding-inline:20px; }
 .brand,.home-glass .brand { font-size:12px; }.nav-actions .language-picker > svg { display:none; }
 .nav-quote,.home-glass .nav-quote { padding-inline:10px; }
}
@media (max-width:1060px) {
 .desktop-nav,.home-glass .desktop-nav { display:none; }.mobile-menu-button,.home-glass .mobile-menu-button { display:inline-grid; border-radius:5px; }
 .nav,.home-glass .nav { min-height:68px; padding:0 24px; }.nav-actions,.home-glass .nav-actions { margin-left:auto; }
 .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalog-layout { grid-template-columns:minmax(0,1fr) 225px; gap:24px; }
 .catalog-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .feature-catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .reticle-image-catalog .feature-catalog-grid,
 .reticle-image-group .feature-catalog-grid,
 .micro-pattern-catalog .feature-catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:800px) {
 body:not(.home-glass) .container { width:calc(100% - 36px); }
 body:not(.home-glass) .section { padding-block:30px; }
 body:not(.home-glass) .compact { padding-top:8px; }
 body:not(.home-glass) .category-detail,.product-overview,.catalog-layout { grid-template-columns:1fr; gap:24px; }
 .catalog-requirements { position:static; }.catalog-intro { align-items:start; flex-direction:column; gap:7px; }
 .category-grid,.catalog-product-grid { gap:14px; }.catalog-copy { padding:16px; }
 .feature-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
 .reticle-image-catalog .feature-catalog-grid,
 .reticle-image-group .feature-catalog-grid,
 .micro-pattern-catalog .feature-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
 .photomask-feature-heading { grid-template-columns:1fr; gap:8px; }
 .photomask-feature-collection .feature-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
 .photomask-category-layout .catalog-requirements { grid-template-columns:1fr; gap:0; padding:22px; }
 .photomask-category-layout .catalog-requirements h2,.photomask-category-layout .catalog-requirements ul,.photomask-category-layout .catalog-requirements .button,.photomask-category-layout .catalog-requirements .related-link { grid-column:1; grid-row:auto; }
 .photomask-category-layout .catalog-requirements ul { grid-template-columns:1fr; margin-bottom:16px; }
 .photomask-category-layout .catalog-requirements .button { width:fit-content; }
 .catalog-copy h3,.category-card.catalog-card h3 { font-size:18px; }
 .absolute-code-range { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .absolute-code-range .catalog-card:nth-child(1),.absolute-code-range .catalog-card:nth-child(2) { grid-column:auto; }
 .absolute-code-range .catalog-expand { margin-top:12px; }
 .nav,.home-glass .nav { padding-inline:18px; }.home-glass .nav-quote { display:none; }
 .family-switcher a { font-size:11px; }.catalog-image { aspect-ratio:1.4; }
 .catalog-group-heading { font-size:20px !important; }
 .product-overview { gap:20px; }.catalog-copy p { font-size:13px; }
}
@media (max-width:520px) {
 .category-grid,.catalog-product-grid { grid-template-columns:1fr; }
 .feature-catalog-grid { grid-template-columns:1fr; }
 .reticle-image-catalog .feature-catalog-grid,
 .reticle-image-group .feature-catalog-grid,
 .micro-pattern-catalog .feature-catalog-grid { grid-template-columns:1fr; }
 .photomask-feature-collection .feature-catalog-grid { grid-template-columns:1fr; }
 .catalog-image { aspect-ratio:1.8; }.catalog-copy h3,.category-card.catalog-card h3 { font-size:21px; }
 .absolute-code-range { grid-template-columns:1fr; }
 .brand,.home-glass .brand { font-size:12px; }.nav-actions { gap:2px; }
 .nav-quote { display:none; }
}
@media (prefers-reduced-motion:reduce) {
 .catalog-image img,.catalog-card,.feature-catalog-card,.desktop-nav > a,.nav-menu > summary,.button { animation:none !important; transition:none !important; transform:none !important; filter:none !important; }
}
@media (prefers-reduced-transparency:reduce) {
 .site-header,.home-glass .site-header,.menu-panel,.home-glass .menu-panel { background:#f4f5f6; backdrop-filter:none; -webkit-backdrop-filter:none; }
}
@supports not (backdrop-filter:blur(1px)) {
 .site-header,.home-glass .site-header { background:#f4f5f6; }
}
/* Home adopts the catalogue palette while the manufacturing animation stays the focal point. */
.home-glass { --ink:#202124; --muted:#62676d; --accent:#263d57; background:#f4f5f6; }
.home-glass .glass-studio { background:radial-gradient(ellipse at 62% 30%,#fff 0%,#f7f9fb 30%,transparent 68%),linear-gradient(145deg,#eef3f9 2%,#f4f5f6 48%,#e8edf3 100%); }
.home-glass .glass-copy h1 { color:#202124; }
.home-glass .glass-lead,.home-glass .glass-copy .eyebrow { color:#62676d; }
.home-glass .glass-explore { color:#263d57; }
.home-glass .glass-explore .round-icon { background:#263d57; color:#fff; }
.home-glass .glass-product-panel { background:linear-gradient(135deg,#ffffffcf,#f0f2dfb8); border-color:#fff; }
.home-glass .glass-product-panel nav a { color:#3f5368; }
.home-glass .glass-product-panel nav a:hover { color:#263d57; }
@media (prefers-reduced-transparency:reduce) { .home-glass .glass-product-panel { background:#f2f4e9; backdrop-filter:none; } }
/* Detailed product catalogue: explicit hierarchy, readable editorial content. */
.collection-intro { max-width:880px; margin:0 0 28px; }
.collection-intro h2 { margin:0 0 12px; }
.collection-intro p,.family-guidance { color:var(--muted); line-height:1.75; font-size:15px; }
.family-guidance { margin:0 0 28px; padding-left:17px; border-left:3px solid #263d57; }
.catalog-copy .range-count { color:#263d57; font-size:12px; font-weight:600; margin:18px 0 9px; }
.catalog-child-links { list-style:none; padding:0; margin:0; display:grid; gap:7px; }
.catalog-child-links a { font-size:13px; color:#244d78; text-decoration:underline; text-decoration-color:#c6d0dc; text-underline-offset:3px; }
.catalog-child-links a:hover { color:#4a78b0; text-decoration-color:currentColor; }
.product-section-nav { display:flex; flex-wrap:wrap; gap:10px 24px; padding:0 0 18px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.product-section-nav a { font-size:13px; color:#264b75; text-decoration:underline; text-underline-offset:5px; }
#overview,#configuration,#inspection,#questions { scroll-margin-top:105px; }
.editorial-copy h3 { font-size:18px; margin:24px 0 10px; }
.editorial-copy p { line-height:1.8; }
.comparison-scroll { overflow-x:auto; border:1px solid #dfe2e5; border-radius:6px; }
.comparison-scroll:focus-visible { outline:2px solid #263d57; outline-offset:4px; }
body:not(.home-glass) .pattern-comparison { margin:0; }
body:not(.home-glass) .pattern-comparison th { width:27%; color:#203957; font-weight:600; }
body:not(.home-glass) .pattern-comparison td { line-height:1.7; }
.pattern-comparison a { text-decoration:underline; text-underline-offset:4px; text-decoration-color:#a7b5c4; }
@media (max-width:800px) {
 .product-section-nav { gap:14px 20px; margin-bottom:20px; }
 .collection-intro { margin-bottom:22px; }
 body:not(.home-glass) .pattern-comparison th { width:34%; }
 body:not(.home-glass) .pattern-comparison th,body:not(.home-glass) .pattern-comparison td { font-size:13px; padding:12px 10px; overflow-wrap:anywhere; }
}

/* Application catalogue and product-to-use-case links. */
.application-group { margin:0 0 42px; }
.application-group > h2 { font-size:26px; margin:0 0 16px; }
.application-product-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.application-product-links article { padding:17px 18px; border:1px solid var(--line); background:#fff; border-radius:6px; }
.application-product-links .related-link { padding:0 0 10px; border:0; font-size:15px; }
.application-product-links article p { color:var(--muted); margin:0; font-size:13px; line-height:1.6; }
.product-context-link { margin:0 auto 22px; max-width:var(--content-width,1200px); padding:0 20px; }
.product-context-link .text-link { font-size:13px; }
.product-applications .related-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.product-applications .related-link { min-height:56px; }
@media (max-width:800px) {
 .application-product-links,.product-applications .related-grid { grid-template-columns:1fr; }
 .application-group > h2 { font-size:22px; }
 .product-context-link { padding-inline:18px; }
}

/* Case-study inspired image and copy layout for application references. */
.application-case-section { padding-top:20px; }
.application-case-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); gap:48px; align-items:center; }
.application-case-media { display:block; overflow:hidden; border-radius:16px; background:#f4f5f6; line-height:0; }
.application-case-media img { display:block; width:100%; height:auto; border-radius:inherit; object-fit:contain; }
.application-case-copy { min-width:0; padding:8px 0; }
.application-case-copy .section-label { margin-bottom:12px; }
.application-case-copy h2 { margin:0 0 14px; font-size:30px; line-height:1.2; }
.application-case-copy > p:not(.section-label) { max-width:44ch; color:var(--muted); line-height:1.75; }
.application-case-copy .text-link { margin-top:22px; }
@media (max-width:800px) {
 .application-case-layout { grid-template-columns:1fr; gap:26px; }
 .application-case-copy h2 { font-size:25px; }
}

/* Shared rounded image treatment for capability equipment references. */
.equipment-card figure,
.equipment-feature figure { overflow:hidden; border-radius:16px; }
.equipment-card img,
.equipment-feature img { border-radius:inherit; }
.equipment-feature-single { align-items:center; }
.equipment-feature-single > div { min-width:0; }
.equipment-feature-single > div > p { max-width:60ch; color:var(--muted); font-size:14px; line-height:1.75; }

/* Homepage navigation: one shared frosted-glass frame that lets the studio
   background remain visible behind the controls. */
.home-glass .site-header {
  background:transparent;
  border-bottom:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.home-glass .nav {
  max-width:1480px;
  min-height:0;
  padding:12px 24px;
  gap:18px;
}
.home-glass .desktop-nav {
  position:static;
  transform:none;
  display:flex;
  align-items:center;
  gap:20px;
  min-height:58px;
  padding:0 24px;
  border:1px solid rgba(255,255,255,.68);
  border-radius:18px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.62),rgba(255,255,255,.28)),
    rgba(221,233,225,.36);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.78),
    0 14px 34px rgba(42,70,58,.12);
  backdrop-filter:blur(24px) saturate(145%);
  -webkit-backdrop-filter:blur(24px) saturate(145%);
}
.home-glass .desktop-nav > a,
.home-glass .nav-menu > summary {
  padding:18px 0;
}
.home-glass .glass-product-panel {
  width:clamp(290px,calc(340 * var(--u)),390px);
}
.home-glass .glass-product-panel nav a {
  min-height:34px;
  padding:7px 0;
  font-size:clamp(12px,calc(14 * var(--u)),15px);
}
@media (max-width:1060px) {
  .home-glass .site-header { background:transparent; }
  .home-glass .desktop-nav { display:none; }
  .home-glass .nav { padding:10px 18px; }
  .home-glass .mobile-menu-button {
    background:
      linear-gradient(135deg,rgba(255,255,255,.64),rgba(255,255,255,.3)),
      rgba(221,233,225,.38);
    border:1px solid rgba(255,255,255,.72);
    box-shadow:0 10px 26px rgba(42,70,58,.12);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
  }
}
@media (min-width:1061px) {
  .home-glass .desktop-nav { display:flex; }
}
@media (prefers-reduced-transparency:reduce) {
  .home-glass .desktop-nav,
  .home-glass .mobile-menu-button {
    background:#f2f6f0;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

/* The playback control belongs to the process timeline, after the final
   stage, so the animation no longer has a separate caption row above it. */
.home-glass .process-stages {
  grid-template-columns:repeat(5,minmax(0,1fr)) 34px;
  align-items:end;
}
.home-glass .process-stages > .process-play-toggle {
  position:static;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  min-height:32px;
  margin:0 0 8px;
  padding:0;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(255,255,255,.5);
  color:#354b68;
}
.home-glass .process-stages > .process-play-toggle i {
  position:static;
  width:13px;
  height:13px;
  display:block;
  overflow:visible;
  background:none;
}
.home-glass .process-stages > .process-play-toggle::after { display:none; }
@media (max-width:800px), (max-aspect-ratio:4/5) {
  .home-glass .process-stages { grid-template-columns:repeat(5,minmax(0,1fr)) 32px; }
  .home-glass .process-stages > .process-play-toggle { margin-bottom:7px; }
}

/* Four-card substrate product display adapted from the supplied Features
   reference. The cards link directly to the detailed specification sections. */
.substrate-features { background:#f5f1e9; padding:70px 0 82px; }
.substrate-feature-container { width:min(90%,1440px); margin:0 auto; }
.substrate-feature-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:30px; --reveal-delay:0s; }
.substrate-feature-heading > div { max-width:760px; }
.substrate-feature-heading h2 { margin:0 0 12px; color:#13241b; font-size:clamp(28px,4vw,48px); line-height:1.08; letter-spacing:-.045em; font-weight:500; }
.substrate-feature-heading p { max-width:720px; margin:0; color:#5d6962; font-size:16px; line-height:1.65; }
.substrate-quote { display:inline-flex; align-items:center; gap:12px; flex:0 0 auto; padding:12px 16px; border-radius:12px; background:#13241b; color:#fff; font-size:13px; font-weight:600; transition:background .2s ease,transform .2s ease; }
.substrate-quote:hover { background:#294332; transform:translateY(-2px); }
.substrate-quote svg { width:16px; height:16px; }
.substrate-feature-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.substrate-feature-card { position:relative; display:flex; flex-direction:column; min-width:0; aspect-ratio:3/4; overflow:hidden; padding:18px; border-radius:18px; background:#13241b; color:#fff; isolation:isolate; box-shadow:none; transition:transform .25s ease,box-shadow .25s ease; }
.substrate-feature-card:hover { transform:translateY(-5px); box-shadow:none; }
.substrate-feature-card > img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; opacity:1; transition:transform .5s ease; }
.substrate-feature-card:hover > img { transform:scale(1.05); }
.substrate-feature-card::after { content:none; }
.substrate-feature-card h3 { position:relative; z-index:1; display:flex; align-items:center; gap:8px; margin:0; color:#fff; font-size:15px; line-height:1.25; font-weight:600; }
.substrate-feature-card h3 svg:first-child { width:17px; height:17px; flex:0 0 17px; }
.substrate-feature-card > p { position:relative; z-index:1; margin:auto 0 0; color:rgba(255,255,255,.82); font-size:14px; line-height:1.55; }
.substrate-material-card { background:#e7dfd4; color:#26372b; }
.substrate-material-card::after { content:none; }
.substrate-material-card h3 { color:#26372b; }
.substrate-material-card h3 svg { color:#526746; }
.substrate-material-list { position:relative; z-index:1; display:flex; flex:1; flex-direction:column; justify-content:center; gap:12px; margin-top:18px; padding:14px; border-radius:14px; background:#f4f0e9; }
.substrate-material-list div { display:grid; gap:3px; padding-bottom:11px; border-bottom:1px solid #d9d0c4; }
.substrate-material-list strong { color:#26372b; font-size:14px; }
.substrate-material-list span { color:#667267; font-size:12px; line-height:1.4; }
.substrate-material-list p { margin:auto 0 0; color:#667267; font-size:12px; line-height:1.5; }
.substrate-illustration-note { margin:16px 0 0; color:#798179; font-size:12px; }
@keyframes substrate-feature-in { from { opacity:0; transform:translateY(22px); filter:blur(5px); } to { opacity:1; transform:none; filter:none; } }
@media (prefers-reduced-motion:no-preference) {
 .substrate-feature-heading,.substrate-feature-card { animation:substrate-feature-in .7s cubic-bezier(.25,.1,.25,1) var(--reveal-delay,0s) both; }
}
@media (max-width:1100px) {
 .substrate-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
 .substrate-features { padding:54px 0 64px; }
 .substrate-feature-container { width:calc(100% - 36px); }
 .substrate-feature-heading { align-items:start; flex-direction:column; margin-bottom:22px; }
 .substrate-feature-heading h2 { font-size:34px; }
 .substrate-feature-heading p { font-size:14px; }
 .substrate-feature-grid { grid-template-columns:1fr; gap:12px; }
 .substrate-feature-card { aspect-ratio:1.18; }
}

/* Precision glass detail preview: Benefits layout, backed by the original specs. */
.substrate-benefits { padding:64px 0 72px; background:#f4f6fa; color:#111; }
.substrate-benefits-layout { width:min(1600px,90%); margin:auto; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:48px; align-items:stretch; }
.substrate-benefits-copy,.substrate-benefits-story { min-width:0; }
.substrate-benefits-copy { display:flex; flex-direction:column; }
.substrate-benefits-heading { display:flex; align-items:flex-end; gap:20px; margin-bottom:28px; }
body:not(.home-glass) .substrate-benefits-heading h2 { flex:1; min-width:0; margin:0; }
.substrate-benefits-heading .substrate-benefits-pills { flex:0 1 auto; justify-content:flex-end; margin:0; gap:8px; }
.substrate-benefits-heading .substrate-benefits-pills > span { white-space:nowrap; }
.substrate-benefits-specs { margin-top:auto; }
.substrate-benefits-specs details:last-child { margin-bottom:0; }
.substrate-benefits-eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 26px; color:#222; font-size:14px; font-weight:500; letter-spacing:.035em; }
.substrate-benefits-eyebrow > span[aria-hidden] { width:8px; height:8px; border-radius:50%; background:#3b82f6; }
.substrate-benefits-copy h2 { max-width:10em; font-size:clamp(32px,3.9vw,64px); line-height:1.08; font-weight:500; letter-spacing:-.045em; margin:0 0 28px; text-wrap:balance; }
.substrate-benefits-pills { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:32px; }
.substrate-benefits-pills > span { display:inline-flex; align-items:center; gap:9px; padding:10px 18px; background:#fff; border-radius:999px; color:#343b43; font-size:13px; box-shadow:0 2px 8px #0000000a; }
.substrate-benefits-pills svg { width:18px; height:18px; }
.substrate-benefits-spec-label { margin:0 0 12px; font-size:14px; font-weight:500; color:#59616b; }
.substrate-benefits-specs details { border:0; border-radius:24px; overflow:hidden; margin:0 0 8px; }
.substrate-benefits-specs details[open] { background:#fff; box-shadow:0 4px 24px #00000008; }
.substrate-benefits-specs details:not([open]):hover { background:#00000005; }
.substrate-benefits-specs summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:24px; font-size:19px; line-height:1.35; font-weight:500; cursor:pointer; list-style:none; }
.substrate-benefits-specs summary::-webkit-details-marker { display:none; }
.substrate-benefits-toggle { display:grid; place-items:center; flex:none; width:24px; height:24px; }
.substrate-benefits-toggle svg { grid-area:1/1; width:20px; height:20px; }
.substrate-benefits-toggle [data-lucide="minus"],.substrate-benefits-toggle .lucide-minus { display:none; }
.substrate-benefits-specs details[open] .lucide-plus,.substrate-benefits-specs details[open] [data-lucide="plus"] { display:none; }
.substrate-benefits-specs details[open] .lucide-minus,.substrate-benefits-specs details[open] [data-lucide="minus"] { display:block; }
.substrate-benefits-panel { padding:0 24px 22px; }
.substrate-benefits-panel table { width:100%; border-collapse:collapse; font-size:13px; line-height:1.5; }
.substrate-benefits-panel th,.substrate-benefits-panel td { padding:9px 0; vertical-align:top; text-align:left; border-bottom:1px solid #eef0f3; }
.substrate-benefits-panel th { width:47%; padding-right:16px; font-weight:400; color:#5a626d; }
.substrate-benefits-panel td { color:#222; overflow-wrap:anywhere; }
.substrate-benefits-panel tr:last-child th,.substrate-benefits-panel tr:last-child td { border:0; }
.substrate-benefits .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.substrate-benefits-showcase { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:24px; padding:28px; min-height:590px; border-radius:40px; background:#fff; box-shadow:none; }
.substrate-benefits-story { display:flex; flex-direction:column; justify-content:space-between; gap:40px; padding:10px 0; }
.substrate-benefits-story .substrate-benefits-eyebrow { font-size:12px; gap:8px; margin-bottom:20px; letter-spacing:.02em; }
.substrate-benefits-story .substrate-benefits-eyebrow svg { color:#4a78b0; flex:none; }
.substrate-benefits-intro { font-size:16px; line-height:1.65; color:#646a73; margin-bottom:0; }
.substrate-benefits-story h3 { font-size:clamp(26px,2.7vw,42px); line-height:1.13; font-weight:500; letter-spacing:-.035em; margin:0 0 24px; text-wrap:balance; }
.substrate-benefits-quote { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 20px; border-radius:999px; background:#111; color:#fff; font-size:14px; font-weight:500; }
.substrate-benefits-quote:hover { background:#303030; }
.substrate-benefits-media { min-width:0; position:relative; border-radius:30px; overflow:hidden; background:#111719; min-height:530px; }
.substrate-benefits-media > img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:50% 50%; }
.substrate-benefits-badge { position:absolute; right:16px; top:20px; display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:999px; background:#fff; color:#111; box-shadow:none; font-size:12px; }
.substrate-benefits-badge svg { width:16px; height:16px; }
.substrate-benefits-metric { position:absolute; left:16px; bottom:20px; width:min(185px,calc(100% - 32px)); overflow:hidden; border-radius:24px; background:#fff; box-shadow:none; }
.substrate-benefits-metric > div { padding:18px 18px 16px; }
.substrate-benefits-metric > div > span { display:block; font-size:12px; line-height:1.4; color:#626b76; margin-bottom:8px; }
.substrate-benefits-metric strong { display:block; font-size:40px; line-height:1.1; font-weight:500; letter-spacing:-.04em; }
.substrate-benefits-metric small { font-size:24px; }
.substrate-benefits-metric p { margin:0; display:flex; gap:9px; align-items:center; background:#3585a5; color:#fff; padding:12px 18px; font-size:12px; }
@supports (interpolate-size:allow-keywords) {
 .substrate-benefits-specs details { interpolate-size:allow-keywords; }
 .substrate-benefits-specs details::details-content { height:0; overflow:hidden; opacity:0; transition:height .28s ease,opacity .22s ease,content-visibility .28s allow-discrete; }
 .substrate-benefits-specs details[open]::details-content { height:auto; opacity:1; }
}
@media (min-width:1600px) { .substrate-benefits-showcase { padding:40px; gap:32px; } }
@media (min-width:1024px) and (max-width:1279px) {
 .substrate-benefits-heading .substrate-benefits-pills { flex-direction:column; align-items:flex-end; }
 .substrate-benefits-layout { gap:28px; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
 .substrate-benefits-showcase { grid-template-columns:1fr; padding:24px; }
 .substrate-benefits-story { gap:24px; }.substrate-benefits-media { min-height:400px; }
}
@media (max-width:1023px) {
 .substrate-benefits-layout { grid-template-columns:1fr; gap:32px; }
 .substrate-benefits { padding:36px 0 48px; }
 .substrate-benefits-copy h2 { font-size:clamp(32px,6vw,52px); max-width:14em; }
 .substrate-benefits-showcase { min-height:540px; }.substrate-benefits-media { min-height:490px; }
}
@media (max-width:600px) {
 .substrate-benefits-heading { flex-wrap:wrap; align-items:flex-start; gap:16px; }
 body:not(.home-glass) .substrate-benefits-heading h2 { flex-basis:100%; }
 .substrate-benefits-heading .substrate-benefits-pills { justify-content:flex-start; }
 .substrate-benefits-layout { width:calc(100% - 36px); }
 .substrate-benefits-showcase { grid-template-columns:1fr; border-radius:28px; padding:20px; gap:24px; }
 .substrate-benefits-story { gap:24px; }.substrate-benefits-media { min-height:420px; }
 .substrate-benefits-specs summary { padding:20px; font-size:17px; }.substrate-benefits-panel { padding:0 20px 18px; }
 .substrate-benefits-pills { gap:8px; }.substrate-benefits-pills > span { padding:9px 14px; }
}

/* Timeline and finished-pattern inspection share one bottom alignment line. */
.home-glass .glass-bottom {
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 align-items:end;
 gap:clamp(16px,2vw,32px);
 z-index:4;
}
.home-glass .glass-bottom .process-playback { width:100%; min-width:0; }
.home-glass .glass-bottom .glass-inspect {
 position:static; transform:none; white-space:nowrap;
}
.home-glass .glass-bottom .glass-inspect .inspection-toggle { padding:10px 0 0; }
.home-glass .glass-bottom .glass-product-panel {
 position:relative; top:auto; right:auto; width:100%; min-width:0;
}
@media (max-width:800px), (max-aspect-ratio:4/5) {
 .home-glass .glass-bottom { grid-template-columns:minmax(0,1fr); gap:22px; }
 .home-glass .glass-bottom .glass-inspect { justify-self:center; }
 .home-glass .glass-bottom .glass-product-panel { grid-column:1; }
}

/* Keep the supplied glass scale product images complete in the overview. */
.linear-scale-range .catalog-image { aspect-ratio:3 / 4; }
.linear-scale-range .catalog-image img { object-fit:contain; padding:0; background:#171919; }

/* Rotary disc families and absolute code options share one desktop row. */
@media (min-width:1024px) {
 .encoder-catalog-scope .feature-catalog-group:first-child .feature-catalog-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (min-width:801px) and (max-width:1023px) {
 .encoder-catalog-scope .feature-catalog-group:first-child .feature-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Shared editorial hierarchy: process directory, practical guides and acceptance. */
.mobile-nav .mobile-quality-link { padding:6px 0 12px 16px; font-size:13px; color:var(--muted); }
.capability-stage { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:64px; padding:36px 0; border-top:1px solid var(--line); }
.stage-heading { display:flex; align-items:flex-start; gap:14px; }
.stage-heading > svg { margin-top:3px; color:var(--accent); width:24px; height:24px; }
.stage-heading h2 { font-size:25px; line-height:1.3; margin-bottom:16px; }
.capability-stage header > p { max-width:36ch; margin-bottom:0; }
.capability-stage-links > a { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding:22px 0; border-bottom:1px solid var(--line); }
.capability-stage-links > a:first-child { padding-top:0; }
.capability-stage-links > a:last-child { border-bottom:0; padding-bottom:0; }
.capability-stage-links h3 { font-size:21px; margin:0 0 8px; line-height:1.35; }
.capability-stage-links p { font-size:14px; margin:0; max-width:70ch; }
.capability-stage-links a > svg { margin-top:4px; color:var(--accent); }
.capability-stage-links a:hover h3,.guide-entry:hover h2 { color:var(--accent); }
.capability-body > .section:first-child { padding-top:20px; }
.process-editorial { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 64px; }
.process-editorial article { min-width:0; border-top:1px solid var(--line); padding-top:24px; }
.process-editorial h2 { display:flex; align-items:flex-start; gap:14px; font-size:24px; line-height:1.35; margin-bottom:18px; }
.process-editorial h2 > svg { color:var(--accent); margin-top:5px; }
.process-editorial p { margin-bottom:0; max-width:70ch; line-height:1.8; }
.process-editorial .text-link { margin-top:24px; }
.equipment-card img,.equipment-feature img {
  /* Keep each supplied equipment photograph at its native aspect ratio. */
  display:block;
  width:100%;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  object-fit:contain;
  background:#f3f4f1;
}
.equipment-card figure,.equipment-feature figure { height:auto; min-height:0; background:#f3f4f1; line-height:0; }
.equipment-card h3 { line-height:1.35; }
.guide-directory { border-top:1px solid var(--line); }
.guide-feature-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:30px; align-items:stretch; }
@property --guide-x1 { syntax:'<percentage>'; inherits:false; initial-value:8%; }
@property --guide-y1 { syntax:'<percentage>'; inherits:false; initial-value:8%; }
@property --guide-x2 { syntax:'<percentage>'; inherits:false; initial-value:92%; }
@property --guide-y2 { syntax:'<percentage>'; inherits:false; initial-value:12%; }
@property --guide-x3 { syntax:'<percentage>'; inherits:false; initial-value:10%; }
@property --guide-y3 { syntax:'<percentage>'; inherits:false; initial-value:92%; }
@property --guide-x4 { syntax:'<percentage>'; inherits:false; initial-value:88%; }
@property --guide-y4 { syntax:'<percentage>'; inherits:false; initial-value:88%; }
@property --guide-size1 { syntax:'<percentage>'; inherits:false; initial-value:52%; }
@property --guide-size2 { syntax:'<percentage>'; inherits:false; initial-value:54%; }
@property --guide-size3 { syntax:'<percentage>'; inherits:false; initial-value:55%; }
@property --guide-size4 { syntax:'<percentage>'; inherits:false; initial-value:52%; }
.guide-feature {
  min-height:310px;
  padding:48px 46px;
  border-radius:24px;
  background-color:#ff8e53;
  background-image:
    radial-gradient(circle at var(--guide-x1) var(--guide-y1),#fff1aa 0,transparent var(--guide-size1)),
    radial-gradient(circle at var(--guide-x2) var(--guide-y2),#ff4b2b 0,transparent var(--guide-size2)),
    radial-gradient(circle at var(--guide-x3) var(--guide-y3),#8aff8a 0,transparent var(--guide-size3)),
    radial-gradient(circle at var(--guide-x4) var(--guide-y4),#ffd000 0,transparent var(--guide-size4)),
    linear-gradient(135deg,#ffd76a,#f0432c 70%);
  color:#fff;
  box-shadow:0 10px 30px rgba(32,52,45,.08);
  animation:guide-gradient-one 8s ease-in-out infinite,guide-gradient-two 10s ease-in-out infinite,guide-gradient-size 7s ease-in-out infinite;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}
.guide-feature .section-label { color:rgba(255,255,255,.86); }
.guide-feature h2 { max-width:19ch; margin-bottom:16px; font-size:clamp(29px,3vw,44px); line-height:1.1; font-weight:400; letter-spacing:-.03em; }
.guide-feature p { max-width:52ch; color:rgba(255,255,255,.88); }
.guide-feature .button { margin-top:16px; background:#202124; border-color:#202124; color:#fff; border-radius:10px; box-shadow:0 10px 20px rgba(0,0,0,.24); }
.guide-feature .button:hover { background:#11151b; border-color:#11151b; transform:translateY(-2px); }
.guide-faq { padding:8px 0 0; }
.guide-faq h2 { margin-bottom:18px; font-size:25px; }
.guide-faq details { margin-bottom:10px; border:1px solid #ececec; border-radius:10px; background:#fff; box-shadow:0 2px 8px rgba(32,36,43,.03); }
.guide-faq details[open] { border-color:#e3e3e3; box-shadow:0 4px 12px rgba(32,36,43,.06); }
.guide-faq summary { display:flex; justify-content:space-between; gap:20px; padding:18px 20px; cursor:pointer; list-style:none; font-size:14px; }
.guide-faq summary::-webkit-details-marker { display:none; }
.guide-faq summary svg { width:17px; height:17px; color:#202124; }
.guide-faq p { padding:0 20px 18px; margin:0; font-size:14px; line-height:1.7; }
@keyframes guide-gradient-one { 0%,100% { --guide-x1:8%; --guide-y1:8%; --guide-x2:92%; --guide-y2:12%; } 50% { --guide-x1:42%; --guide-y1:42%; --guide-x2:70%; --guide-y2:70%; } }
@keyframes guide-gradient-two { 0%,100% { --guide-x3:10%; --guide-y3:92%; --guide-x4:88%; --guide-y4:88%; } 50% { --guide-x3:58%; --guide-y3:68%; --guide-x4:44%; --guide-y4:30%; } }
@keyframes guide-gradient-size { 0%,100% { --guide-size1:48%; --guide-size2:50%; --guide-size3:50%; --guide-size4:48%; } 50% { --guide-size1:78%; --guide-size2:82%; --guide-size3:76%; --guide-size4:80%; } }
@media (prefers-reduced-motion:reduce) { .guide-feature { animation:none; } }
.guide-entry { display:grid; grid-template-columns:28px minmax(0,1fr); gap:26px; align-items:start; border-bottom:1px solid var(--line); padding:30px 0; }
.guide-entry > svg { margin-top:4px; color:var(--accent); }
.guide-entry h2 { font-size:24px; margin-bottom:10px; line-height:1.35; }
.guide-entry p { margin:0; max-width:75ch; }
.guide-download { margin-top:28px; }
.article-toc { align-self:start; }
.article-body > section + section { margin-top:38px; padding-top:30px; border-top:1px solid var(--line); }
.article-body p { line-height:1.85; }
.acceptance-table-wrap { overflow-x:auto; }
.quality-page-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.82fr); gap:44px; align-items:center; }
.quality-page-heading > div { min-width:0; padding-top:22px; }
.quality-page-heading > div p { max-width:560px; }
.quality-hero { width:100%; max-width:500px; margin:0 0 0 auto; overflow:hidden; background:#f4f5f6; }
.quality-hero img { display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:cover; }
.acceptance-table { width:100%; border-collapse:collapse; text-align:left; font-size:15px; }
.acceptance-table th,.acceptance-table td { padding:22px 24px 22px 0; vertical-align:top; border-bottom:1px solid var(--line); }
.acceptance-table thead th { font-size:13px; color:var(--muted); font-weight:500; padding-top:0; }
.acceptance-table tbody th { width:20%; font-weight:600; }
.acceptance-table td:nth-child(2) { width:28%; }
.acceptance-table td:last-child { padding-right:0; color:var(--muted); }
@media(max-width:900px) {
 .capability-stage { grid-template-columns:1fr; gap:28px; }
 .capability-stage header > p { max-width:70ch; }
 .process-editorial { gap:32px; }
}
@media(max-width:640px) {
 .quality-page-heading { grid-template-columns:1fr; gap:28px; }
 .quality-page-heading > div { padding-top:0; }
 .quality-hero { max-width:none; margin:0; }
 .process-editorial { grid-template-columns:1fr; }
 .process-editorial h2,.stage-heading h2,.guide-entry h2 { font-size:21px; }
 .guide-entry { gap:14px; grid-template-columns:20px minmax(0,1fr); }
 .acceptance-table { min-width:640px; }
 .capability-stage { padding:28px 0; }
}
/* Align FAQ content to the surrounding page while keeping answers readable. */
body:not(.home-glass) .faq > .container { max-width:1280px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); column-gap:48px; }
body:not(.home-glass) .faq > .container > h2 { grid-column:1; grid-row:1 / span 20; }
body:not(.home-glass) .faq > .container > details { grid-column:2; min-width:0; }
body:not(.home-glass) .stage-heading h2 { font-size:25px; line-height:1.3; }
body:not(.home-glass) .process-editorial h2,body:not(.home-glass) .guide-entry h2 { font-size:24px; line-height:1.35; }
body:not(.home-glass) .process-editorial p { line-height:1.8; }
body:not(.home-glass) .capability-body > .section:first-child { padding-top:8px; }
@media(max-width:700px) {
 .guide-feature-layout { grid-template-columns:1fr; gap:28px; }
 .guide-feature { padding:30px 24px; }
 body:not(.home-glass) .faq > .container { display:block; }
 body:not(.home-glass) .stage-heading h2,body:not(.home-glass) .process-editorial h2,body:not(.home-glass) .guide-entry h2 { font-size:21px; }
}

/* Final brand sizing overrides after the homepage theme rules. */
.brand { gap:0; }
.brand img,.home-glass .brand img { width:94px; height:42px; object-fit:contain; filter:none; }
.brand span { display:none; }
.footer-grid .brand img { width:118px; height:56px; }
.about-hero::after { background:rgba(3,12,22,.62); }
.about-hero-overlay { left:0; right:0; max-width:1160px; margin:auto; align-items:center; text-align:center; padding:clamp(28px,4vw,64px); }
.about-hero-overlay .section-label { color:#0050c8; font-size:clamp(18px,1.4vw,24px); font-weight:600; letter-spacing:.1em; margin:0 0 22px; }
.about-hero-overlay h1 { max-width:15em; margin:0 0 28px; font-size:clamp(38px,4.4vw,76px); line-height:1.2; font-weight:500; letter-spacing:-.025em; text-wrap:balance; }
html[lang^="zh"] .about-hero-overlay h1 { max-width:13em; letter-spacing:0; }
body:not(.home-glass) .about-hero-description { max-width:42em; margin:0; font-size:clamp(17px,1.4vw,23px); line-height:1.75; color:rgba(255,255,255,.9); text-wrap:pretty; }
body:not(.home-glass) .about-hero-capabilities { max-width:48em; margin:24px 0 0; color:#0050c8; font-size:clamp(16px,1.15vw,20px); line-height:1.7; letter-spacing:.035em; text-wrap:balance; }
@media (min-width:761px) and (max-width:1200px) { .about-hero { min-height:520px; } .about-hero > img { position:absolute; inset:0; } }
@media (max-width:800px) {
  .brand img,.home-glass .brand img { width:82px; height:36px; }
  .footer-grid .brand img { width:108px; height:50px; }
  .about-hero::after { background:rgba(3,12,22,.68); }
  .about-hero-overlay { justify-content:center; padding:32px 24px 42px; }
  .about-hero-overlay .section-label { margin-bottom:18px; }
  .about-hero-overlay h1 { margin-bottom:22px; }
  body:not(.home-glass) .about-hero-capabilities { max-width:24em; margin-top:22px; }
}

.home-dark .site-header .brand img { filter:grayscale(1) brightness(2); }

/* Final homepage alignment: logo, hero copy and first process stage share a rail. */
.home-glass { --home-content-inset:6.1vw; }
.home-glass .site-header .nav {
  width:100%;
  max-width:none;
  margin-inline:0;
  padding-inline:var(--home-content-inset);
}
.home-glass .site-header .brand { flex-shrink:0; }
.home-glass .site-header .brand img { object-position:left center; }
.home-glass .glass-copy,
.home-glass .glass-bottom { left:var(--home-content-inset); }
@media (max-width:800px), (max-aspect-ratio:4/5) {
  .home-glass { --home-content-inset:26px; }
  .home-glass .glass-home { padding-inline:var(--home-content-inset); }
  .home-glass .glass-copy,
  .home-glass .glass-bottom { left:auto; }
}
@media (max-width:440px) {
  .home-glass { --home-content-inset:20px; }
}

/* Optical alignment for Arial's different F and T side bearings. */
html[lang="en"] .home-glass .glass-copy h1 > span:first-child {
  position:relative;
  left:-.07em;
}
html[lang="en"] .home-glass .glass-copy h1 > span:nth-child(2) {
  position:relative;
  left:-.015em;
}

/* Reference palette and CTA, scoped to the existing glass-studio homepage.
   Preserve the composition and process animation (variance 4, motion 6, density 3). */
.home-glass {
  --ink:#020c21;
  --muted:#59627e;
  --accent:#0050c8;
  --home-cta:#202124;
  --home-cta-knob:#0050c8;
  background:#eef3f9;
  color:var(--ink);
}
.home-glass .glass-studio {
  background:radial-gradient(ellipse at 50% 38%,#fff 0%,#f5f8fc 30%,transparent 68%),
    linear-gradient(145deg,#eef3f9 2%,#eff4fa 48%,#dfe8f2 100%);
}
.home-glass .glass-copy h1,.home-glass .glass-panel-heading h2 { color:var(--ink); }
.home-glass .glass-copy .eyebrow,.home-glass .glass-lead { color:var(--muted); }
.home-glass .desktop-nav {
  border-color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.78);
  box-shadow:0 0 0 1px rgba(120,145,180,.2),0 2px 10px rgba(28,52,92,.05);
}
.home-glass .desktop-nav > a,.home-glass .nav-menu > summary,
.home-glass .desktop-nav .active { color:#202940; }
.home-glass .desktop-nav > a:hover,.home-glass .nav-menu > summary:hover,
.home-glass .desktop-nav > a.active { color:var(--accent); }
.home-glass .menu-panel,.home-glass .mobile-nav { background:rgba(247,250,255,.97); border-color:#d5dde7; }
.home-glass .menu-panel a:hover { background:#eef3f9; }
.home-glass .glass-product-panel {
  background:linear-gradient(135deg,rgba(255,255,255,.44),rgba(255,255,255,.16));
  border-color:rgba(255,255,255,.6);
}
.home-glass .glass-product-panel nav a { color:#536b86; }
.home-glass .glass-product-panel nav a:hover { color:var(--accent); }
.home-glass .process-stages button,.home-glass .inspection-toggle { color:#536b86; }
.home-glass .process-stages button[aria-current] { color:var(--ink); }
.home-glass .process-stages i { background:#d8e2ee; }
.home-glass .process-stages i::after { background:var(--accent); }
.home-glass .nav-actions .nav-quote {
  display:inline-flex;
  width:auto;
  height:clamp(48px,calc(70 * var(--u)),64px);
  min-height:48px;
  padding:8px 9px 8px 24px;
  gap:20px;
  border:0;
  border-radius:999px;
  background:var(--home-cta);
  color:#fff;
  font-size:clamp(13px,calc(17.5 * var(--u)),16px);
  font-weight:400;
  letter-spacing:-.025em;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(11,26,50,.18);
}
.home-glass .nav-quote .quote-label { display:inline; color:#fff; }
.home-glass .nav-quote .quote-knob {
  display:grid;
  place-items:center;
  flex:none;
  width:clamp(32px,calc(49 * var(--u)),46px);
  height:clamp(32px,calc(49 * var(--u)),46px);
  border-radius:50%;
  background:var(--home-cta-knob);
}
.home-glass .nav-quote .quote-knob svg {
  display:block;
  width:18px;
  height:18px;
  padding:0;
  border-radius:0;
  background:none;
  color:#fff;
  stroke-width:1.9;
}
.home-glass .nav-actions .nav-quote:hover { background:#1a2b45; }
.home-glass .nav-actions .nav-quote:active { transform:scale(.98); }
/* Enlarge the copy 1.5x and the disc 1.2x; reserve a gap before the disc. */
@media (min-width:801px) and (min-aspect-ratio:4/5) {
  .home-glass {
    --home-copy-width:40.5vw;
    --home-disc-size:min(48vw,calc(768 * var(--u)));
    --home-copy-disc-gap:clamp(16px,1.5vw,28px);
  }
  .home-glass .glass-disc.home-hero-v2-visual {
    left:max(61.8%,calc(var(--home-content-inset) + var(--home-copy-width) + var(--home-copy-disc-gap) + var(--home-disc-size) / 2));
    top:50%;
    width:var(--home-disc-size);
    transform:translate(-50%,-50%);
  }
  .home-glass .glass-copy { width:var(--home-copy-width); }
  .home-glass .glass-copy .eyebrow { font-size:calc(22.5 * var(--u)); margin-bottom:calc(43.5 * var(--u)); }
  .home-glass .glass-copy h1 { font-size:min(calc(132 * var(--u)),6.45vw); margin-bottom:calc(45 * var(--u)); }
  html[lang="zh-CN"] .home-glass .glass-copy h1 { font-size:min(calc(127.5 * var(--u)),4.8vw); }
  .home-glass .glass-lead { max-width:100%; font-size:calc(27 * var(--u)); margin-bottom:calc(39 * var(--u)); }
}
@media (max-width:800px), (max-aspect-ratio:4/5) {
  .home-glass .glass-disc.home-hero-v2-visual {
    position:relative;
    left:auto;
    top:auto;
    width:min(100%,480px);
    transform:none;
    justify-self:center;
  }
}
@media (max-width:440px) {
  .home-glass .nav-actions { gap:2px; }
  .home-glass .nav-actions .nav-quote { height:44px; min-height:44px; padding:6px 6px 6px 14px; gap:10px; font-size:12px; }
  .home-glass .nav-quote .quote-knob { width:32px; height:32px; }
  .home-glass .nav-actions .language-picker select { width:46px; }
  .home-glass .nav-actions > .icon-button { width:30px; }
}
@media (max-width:390px) {
  .home-glass .nav-actions .nav-quote .quote-label { display:none; }
  .home-glass .nav-actions .nav-quote { width:44px; padding:6px; gap:0; }
}
@media (prefers-reduced-transparency:reduce) {
  .home-glass .desktop-nav,.home-glass .menu-panel,.home-glass .mobile-nav,
  .home-glass .glass-product-panel { background:#f4f7fb; backdrop-filter:none; }
}

/* Make room for the reference CTA before the desktop navigation gets cramped. */
@media (max-width:1240px) {
  .home-glass .desktop-nav { display:none; }
  .home-glass .mobile-menu-button { display:inline-grid; }
  .home-glass .nav-actions { margin-left:auto; }
}

/* On narrow screens the enlarged copy and disc stack within the viewport. */
@media (max-width:800px), (max-aspect-ratio:4/5) {
  .home-glass .glass-copy .eyebrow { font-size:16.5px; margin-bottom:27px; }
  .home-glass .glass-copy h1 {
    font-size:min(clamp(57px,10.35vw,96px),calc((100vw - 2 * var(--home-content-inset)) / 5.25));
    margin-bottom:27px;
  }
  html[lang="zh-CN"] .home-glass .glass-copy h1 {
    font-size:min(clamp(57px,10.35vw,96px),calc((100vw - 2 * var(--home-content-inset)) / 7));
  }
  .home-glass .glass-lead { font-size:21px; max-width:600px; margin-bottom:24px; }
  .home-glass .glass-disc.home-hero-v2-visual { max-width:100%; }
}

/* Floor-plane shadows: a broad cast shadow and a tighter contact shadow.
   Both sit behind the product and never intercept inspection gestures. */
.home-glass .glass-disc.home-hero-v2-visual::before,
.home-glass .glass-disc.home-hero-v2-visual::after {
  content:'';
  position:absolute;
  z-index:-1;
  pointer-events:none;
  border-radius:50%;
}
.home-glass .glass-disc.home-hero-v2-visual::before {
  left:8%;
  bottom:-7%;
  width:94%;
  height:30%;
  transform:rotate(-12deg);
  background:radial-gradient(ellipse at 44% 46%,rgba(37,54,76,.29) 0%,rgba(63,81,105,.18) 30%,rgba(99,118,144,.06) 53%,transparent 73%);
  filter:blur(clamp(12px,1.7vw,28px));
}
.home-glass .glass-disc.home-hero-v2-visual::after {
  left:24%;
  bottom:-1%;
  width:60%;
  height:10%;
  transform:rotate(-8deg);
  background:radial-gradient(ellipse,rgba(32,48,68,.23) 0%,rgba(64,83,108,.1) 38%,transparent 72%);
  filter:blur(clamp(6px,.8vw,12px));
}
.home-glass .glass-disc .encoder-surface,
.home-glass .glass-disc .encoder-surface:hover {
  filter:drop-shadow(8px 16px 22px rgba(58,79,104,.14));
}

/* Product-family project invitation: centered copy and an editorial quotation. */
.category-partnership {
  padding:clamp(64px,7vw,112px) 0;
  background:#fff;
  color:#172438;
  text-align:center;
}
.category-partnership .container { max-width:1120px; }
.category-partnership-intro { max-width:960px; margin:0 auto; }
.category-partnership-intro h2 {
  max-width:880px;
  margin:0 auto 26px;
  font-size:clamp(26px,2.5vw,38px);
  line-height:1.35;
  text-wrap:balance;
}
.category-partnership-intro p {
  margin:0 auto 32px;
  color:#596575;
  font-size:16px;
  line-height:1.85;
  text-wrap:pretty;
}
.category-partnership-intro strong { color:#344f70; font-weight:500; }
.category-partnership .category-partnership-cta {
  padding:13px 23px;
  border:1px solid #0f1b31;
  border-radius:4px;
  background:#0f1b31;
  color:#fff;
}
.category-partnership .category-partnership-cta:hover { background:#304764; border-color:#304764; }
.category-partnership .category-partnership-cta:focus-visible { outline:3px solid #4a78b0; outline-offset:5px; }
.category-partnership-quote { max-width:830px; margin:64px auto 0; }
.category-partnership-mark {
  display:block;
  height:48px;
  color:#8793a3;
  font:700 76px/1 Arial,Helvetica,sans-serif;
}
.category-partnership-sample { margin:12px 0 18px; font-size:12px; color:#697585; }
.category-partnership-quote blockquote { margin:0; padding:0; border:0; }
.category-partnership-quote blockquote p { margin:0; color:#283548; font-size:18px; line-height:1.8; text-wrap:pretty; }
.category-partnership-quote figcaption { display:grid; gap:4px; margin-top:26px; }
.category-partnership-person { color:#172438; font-size:16px; font-weight:600; }
.category-partnership-role { color:#697585; font-size:13px; }
.category-partnership-resources { padding-top:44px; padding-bottom:44px; }
.category-partnership-resources h2 { font-size:22px; }
@media (max-width:640px) {
  .category-partnership .container { width:calc(100% - 40px); }
  .category-partnership-intro p { font-size:15px; line-height:1.8; }
  .category-partnership-quote { margin-top:48px; }
  .category-partnership-quote blockquote p { font-size:16px; }
}

/* Compact homepage product launcher; expand upward without shifting the hero. */
.home-product-dock {
  position:absolute;
  right:5.5vw;
  bottom:clamp(115px,15vh,160px);
  z-index:7;
  width:max-content;
  color:#0f1b31;
}
.home-product-dock > summary {
  display:flex;
  align-items:center;
  gap:18px;
  min-height:48px;
  padding:7px 8px 7px 20px;
  border:1px solid #ffffffdc;
  border-radius:999px;
  background:#edf3fae8;
  box-shadow:0 6px 20px #223c5810;
  font-size:14px;
  font-weight:500;
  list-style:none;
  cursor:pointer;
}
.home-product-dock > summary::-webkit-details-marker { display:none; }
.home-product-dock > summary::marker { content:''; }
.home-product-dock > summary > svg { width:32px; height:32px; padding:7px; background:#fff9; border-radius:50%; }
.home-product-dock[open] > summary { background:#fff; }
.home-product-dock > summary:focus-visible,
.home-product-popover a:focus-visible { outline:2px solid #4a78b0; outline-offset:4px; }
.home-product-popover {
  position:absolute;
  right:0;
  bottom:calc(100% + 10px);
  width:min(248px,calc(100vw - 32px));
  padding:18px 20px 16px;
  border:1px solid #d9e1ea;
  border-radius:12px;
  background:#f7fafd;
  box-shadow:0 14px 32px #1c345c1a;
  transform-origin:bottom right;
}
/* Keep a continuous hover area between the launcher and its links. */
.home-product-popover::after { content:''; position:absolute; top:100%; right:0; left:0; height:12px; }
.home-product-dock[open] .home-product-popover { animation:home-product-expand .24s cubic-bezier(.16,1,.3,1) both; }
.home-product-popover-heading { display:block; margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid #dfe6ee; }
.home-product-popover-heading h2 { margin:0; color:#0f1b31; font-size:17px; font-weight:600; line-height:1.25; letter-spacing:0; }
.home-product-popover-heading > svg { display:none; }
.home-product-popover nav { display:grid; grid-template-columns:1fr; gap:0; }
.home-product-popover nav a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:34px; padding:6px 0; color:#536b86; font-size:14px; line-height:1.35; }
.home-product-popover nav a:hover { color:#0f1b31; }
.home-product-popover nav svg { width:14px; height:14px; }
@keyframes home-product-expand { from { opacity:0; transform:translateY(8px) scale(.86); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width:800px), (max-aspect-ratio:4/5) {
  .home-product-dock { position:relative; right:auto; bottom:auto; grid-column:1/-1; justify-self:end; }
  .home-product-popover nav a { min-height:44px; }
}
@media (prefers-reduced-motion:reduce) {
  .home-product-dock[open] .home-product-popover { animation:none; }
}
@media (prefers-reduced-transparency:reduce) { .home-product-popover { background:#f7fafd; } }

/* Imaging targets: one square representative per family, variants inside. */
.target-family-card.reticle-image-card { aspect-ratio:auto; }
.target-family-card h3 { margin:16px 0 0; font-size:17px; line-height:1.4; font-weight:500; color:#172438; }
.target-family-card h3 a:hover { color:#4a78b0; }
.target-family-hero { max-width:620px; margin:0 auto 48px; }
.target-family-hero img,.target-variant img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; border-radius:0; box-shadow:none; filter:none; }
.target-family-copy { max-width:840px; margin:0 auto; }
.target-family-copy h3 { margin-top:28px; }
.target-family-copy .button { margin-top:12px; }
.target-family-explanation { max-width:840px; margin:48px auto 0; display:grid; gap:32px; }
.target-family-explanation h2 { margin-bottom:16px; font-size:24px; }
.target-family-explanation p { margin:0; line-height:1.85; }
.target-family-formats .section-header { max-width:880px; }
.target-variant-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 28px; }
.target-variant { scroll-margin-top:120px; min-width:0; }
.target-variant > a { display:block; }
.target-variant-copy { padding-top:18px; }
.target-variant h3 { margin-bottom:8px; font-size:18px; line-height:1.4; }
.target-variant-copy p { margin-bottom:10px; font-size:16px; }
.target-variant-copy .target-variant-format { color:#233b59; font-weight:600; }
.target-variant-copy .text-link { font-size:13px; }
.checkerboard-product .checkerboard-materials { padding-top:54px; }
.checkerboard-product-hero .substrate-benefits-media { background:#cfd2d9; }
.checkerboard-product-hero .substrate-benefits-media > img { width:100%; height:100%; inset:0; object-fit:cover; }
.checkerboard-product .star-use-grid article { border-top:0; padding-top:0; }
.checkerboard-product .star-labels li { display:block; }
.checkerboard-materials .star-section-intro { max-width:820px; }
.checkerboard-material-list { display:grid; gap:12px; }
.checkerboard-material { background:#f1f5f7; }
.checkerboard-material > summary { display:flex; align-items:center; justify-content:space-between; gap:22px; min-height:92px; padding:20px 26px; cursor:pointer; list-style:none; }
.checkerboard-material > summary::-webkit-details-marker { display:none; }
.checkerboard-material > summary strong { display:block; font-size:21px; font-weight:600; line-height:1.3; color:#182b3c; }
.checkerboard-material > summary small { display:block; margin-top:5px; font-size:15px; font-weight:400; line-height:1.5; color:#455b6c; }
.checkerboard-material > summary svg { width:19px; height:19px; flex:none; transition:transform .2s ease; }
.checkerboard-material[open] > summary svg { transform:rotate(180deg); }
.checkerboard-material > .star-table-scroll { margin:0; padding:0 26px 26px; }
.checkerboard-material .star-table-scroll table { min-width:520px; }
.checkerboard-material .star-table-scroll caption { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.checkerboard-material .star-table-scroll th,.checkerboard-material .star-table-scroll td { padding:13px 18px; font-size:15px; line-height:1.5; overflow-wrap:anywhere; }
.checkerboard-material .star-table-scroll th:first-child { width:33%; }
.checkerboard-material-note { display:grid; grid-template-columns:minmax(190px,.36fr) minmax(0,1fr); gap:28px; margin-top:40px; align-items:start; }
.checkerboard-material-note h3 { margin:0; font-size:22px; line-height:1.35; }
.checkerboard-material-note p { margin:0; max-width:68ch; font-size:17px; }
.checkerboard-mobile-label { display:none; }
.checkerboard-other-materials { margin-top:38px; max-width:850px; }
.checkerboard-other-materials h3 { margin:0 0 10px; font-size:21px; }
.checkerboard-other-materials p { margin:0; font-size:17px; }
@media (max-width:620px) {
 .checkerboard-product .star-use-grid article { display:block; }
 .checkerboard-product .star-use-grid article h3 { margin-bottom:10px; }
 .checkerboard-product .star-use-grid article p { margin:0; }
 .checkerboard-material > summary { min-height:82px; padding:18px 16px; }
 .checkerboard-material > summary strong { font-size:19px; }
 .checkerboard-material > summary small { font-size:14px; }
 .checkerboard-material > .star-table-scroll { padding:0 12px 18px; }
 .checkerboard-material .star-table-scroll th,.checkerboard-material .star-table-scroll td { padding:12px; font-size:14px; }
 .checkerboard-material .star-table-scroll table { min-width:0; width:100%; table-layout:fixed; }
 .checkerboard-material .star-table-scroll th:first-child { width:39%; }
 .checkerboard-product #specification .star-table-scroll table,.checkerboard-product #pattern-comparison .star-table-scroll table { min-width:0; }
 .checkerboard-product #specification .star-table-scroll thead,.checkerboard-product #pattern-comparison .star-table-scroll thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
 .checkerboard-product #specification .star-table-scroll tr,.checkerboard-product #pattern-comparison .star-table-scroll tr { display:block; padding:16px 0; }
 .checkerboard-product #specification .star-table-scroll tr + tr,.checkerboard-product #pattern-comparison .star-table-scroll tr + tr { border-top:1px solid #d9e2e9; }
 .checkerboard-product #specification .star-table-scroll th,.checkerboard-product #specification .star-table-scroll td,.checkerboard-product #pattern-comparison .star-table-scroll th,.checkerboard-product #pattern-comparison .star-table-scroll td { display:block; width:100%; padding:5px 12px; }
 .checkerboard-product #specification .star-table-scroll .checkerboard-mobile-label,.checkerboard-product #pattern-comparison .star-table-scroll .checkerboard-mobile-label { display:block; margin-bottom:3px; color:#526879; font-size:13px; font-weight:600; }
 .checkerboard-material-note { grid-template-columns:1fr; gap:12px; }
}
.target-reading { max-width:850px; margin-top:48px; }
.target-reading h3 { font-size:18px; margin-bottom:12px; }
.target-reading p,.target-reading li { font-size:14px; }
.target-reading ul { padding-left:20px; }
.target-reading li + li { margin-top:8px; }
.target-reading a { color:#355a83; text-decoration:underline; text-underline-offset:4px; }
@media (max-width:900px) { .target-variant-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:540px) {
 .target-variant-grid { grid-template-columns:minmax(0,1fr); gap:36px; }
 .target-family-card h3 { font-size:15px; }
 .target-family-hero { margin-bottom:32px; }
 .target-family-explanation { margin-top:36px; }
}

/* Readable technical guidance inside the USAF product page. */
.target-guide-list { padding-left:24px; margin:18px 0 0; color:var(--muted); }
.target-guide-list li { padding-left:4px; line-height:1.8; }
.target-guide-list li + li { margin-top:12px; }
.target-guide-table-scroll { overflow-x:auto; margin-top:24px; }
.target-guide-table { width:100%; min-width:480px; font-variant-numeric:tabular-nums; }
.target-guide-table caption { text-align:left; padding-bottom:14px; color:var(--ink); font-weight:600; }
.target-guide-table th,.target-guide-table td { text-align:left; }
.target-family-explanation article[id] { scroll-margin-top:120px; }

/* Product explanations and application narratives share a readable editorial grid. */
.knowledge-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 40px; }
.knowledge-grid > article { min-width:0; }
.knowledge-grid h2 { font-size:24px; line-height:1.3; padding-bottom:12px; border-bottom:1px solid #d5d8d7; }
.knowledge-grid p { line-height:1.8; }
.application-references { margin-top:32px; padding-top:18px; border-top:1px solid #d5d8d7; max-width:850px; }
.application-references summary { cursor:pointer; font-size:15px; }
.application-references p,.application-references li { font-size:13px; line-height:1.7; }
.application-references a { text-decoration:underline; text-underline-offset:3px; }
.product-applications .application-product-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:760px) {
 .knowledge-grid,.product-applications .application-product-links { grid-template-columns:1fr; gap:24px; }
}
.product-datasheet .reticle-detail-page .product-overview { display:block; }
.product-datasheet .reticle-detail-page .detail-product-figure { width:min(100%,520px); margin:0 auto 32px; }
.product-datasheet .reticle-detail-page .detail-product-figure img { display:block; width:100%; height:auto; padding:0; background:#fff; object-fit:contain; }
.product-datasheet .reticle-detail-page .editorial-copy { max-width:840px; margin-inline:auto; }

/* Application directory: supplied photographs above the name, shared 4:3 slots. */
.application-index-grid { gap:34px 32px; }
.application-index-grid > a { min-width:0; padding:0 0 24px; border-top:0; border-bottom:1px solid #d5d8d7; }
.application-index-media { display:block; width:100%; aspect-ratio:4 / 3; overflow:hidden; border-radius:12px; background:#fff; }
.application-index-media img { display:block; width:100%; height:100%; object-fit:contain; box-shadow:none; }
.application-scene-media { display:block; min-width:0; aspect-ratio:4 / 3; overflow:hidden; border-radius:12px; background:#fff; }
.application-scene-media img { display:block; width:100%; height:100%; object-fit:contain; box-shadow:none; }
/* Application detail: original product illustration beside the explanation, navigation below. */
body:not(.home-glass) .application-detail .container { width:min(1600px,90%); }
.application-overview-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:48px; align-items:start; }
.application-overview-copy { min-width:0; }
.application-overview-copy > p { max-width:none; }
body:not(.home-glass) .application-overview-copy > h2 { font-size:22px; line-height:1.35; margin-bottom:12px; }
.application-overview-copy > p:last-child { margin-bottom:0; }
.application-overview-copy > h2:not(:first-child) { margin-top:28px; }
.application-overview-figure { min-width:0; width:100%; max-width:320px; margin:0; justify-self:start; }
.application-overview-media { display:flex; justify-content:flex-start; align-items:flex-start; width:100%; background:transparent; }
.application-overview-media img { display:block; width:auto; height:auto; max-width:100%; max-height:390px; object-fit:contain; border-radius:0; box-shadow:none; }
.application-overview-figure figcaption { margin-top:14px; text-align:left; }
.application-overview-figure figcaption h3 { margin:0; color:var(--ink); font-size:17px; line-height:1.4; }
.application-overview-empty { aspect-ratio:4 / 3; }
.application-related-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:48px; align-items:start; }
.application-related-products,.application-related-links { min-width:0; }
.application-related-products .application-product-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 32px; }
.application-related-links { padding-left:32px; border-left:1px solid var(--line); }
.application-related-links .related-grid,.application-related-links .application-product-links { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
@media (max-width:800px) {
 .application-overview-grid,.application-related-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
 .application-overview-figure { grid-row:1; justify-self:center; }
 .application-overview-media { justify-content:center; }
 .application-overview-media img { max-height:320px; }
 .application-overview-figure figcaption { text-align:center; }
 .application-overview-empty { display:none; }
 .application-related-links { padding:26px 0 0; border-left:0; border-top:1px solid var(--line); }
}
@media (max-width:520px) {
 body:not(.home-glass) .application-detail .container { width:calc(100% - 36px); }
 .application-related-products .application-product-links { grid-template-columns:minmax(0,1fr); }
}
.application-index-copy { padding:20px 0 0; }
.application-index-grid > a:focus-visible { outline:2px solid var(--accent); outline-offset:6px; }
@media (max-width:800px) { .application-index-grid { gap:28px 24px; } }
@media (max-width:520px) { .application-index-grid { gap:28px; } .application-index-copy { padding-top:18px; } }
/* Product family tiles: one name at the top; the complete supplied image below. */
.feature-catalog-scope .reticle-image-card .feature-catalog-media {
 display:flex; flex-direction:column; gap:0; aspect-ratio:auto; padding:0; background:#fff;
}
.feature-catalog-scope .reticle-image-card .feature-catalog-title {
 order:-1; flex:none; min-height:64px; align-items:center; width:100%;
 padding:12px 14px; margin:0; color:#263d57; background:#f4f5f6;
 font-size:14px; font-weight:500; line-height:1.45;
}
.feature-catalog-scope .reticle-image-card .feature-catalog-media img {
 position:static; display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; padding:0;
}
@media (prefers-reduced-motion:no-preference) {
 .feature-catalog-scope .reticle-image-card .feature-catalog-media:hover .feature-catalog-title span { animation:navigation-lift .36s ease-out both; }
}
.feature-catalog-scope .reticle-image-card .feature-catalog-media:hover .feature-catalog-title { color:#4a78b0; }

/* Reticle family: crop the source artwork into a square and place the product
   name in a separate band below it. Micro-patterned glass keeps its heading
   above the image as requested for that family. */
.reticle-image-catalog .reticle-image-card,
.micro-pattern-catalog .reticle-image-card { aspect-ratio:auto; }
.reticle-image-catalog .reticle-image-card .feature-catalog-media {
 display:flex; flex-direction:column; justify-content:flex-start; aspect-ratio:auto; gap:0; padding:0; overflow:hidden; background:#fff;
}
.micro-pattern-catalog .reticle-image-card .feature-catalog-media {
 display:flex; flex-direction:column; justify-content:flex-start; aspect-ratio:auto; gap:0; padding:0; overflow:hidden; background:#fff;
}
.reticle-image-catalog .reticle-image-card .feature-catalog-media img {
 order:1; display:block; position:static; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover; padding:0; background:#fff;
}
.micro-pattern-catalog .reticle-image-card .feature-catalog-media img {
 order:1; display:block; position:static; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover; padding:0; background:#fff;
}
.reticle-image-catalog .reticle-image-card .feature-catalog-title {
 order:2; flex:none; min-height:64px; align-items:center; width:100%; margin:0; padding:12px 14px; color:#263d57; background:#f4f5f6; font-size:14px; font-weight:500; line-height:1.45;
}
.micro-pattern-catalog .reticle-image-card .feature-catalog-title {
 order:2; flex:none; min-height:64px; align-items:center; width:100%; margin:0; padding:12px 14px; color:#263d57; background:#fff; font-size:14px; font-weight:500; line-height:1.45;
}

/* Product photographs lead these detail pages; selection information follows the image. */
.target-product-layout { padding:22px 0 36px; background:#f7f7f5; }
.target-hero-layout,.target-hero-specs { width:min(1600px,90%); margin-inline:auto; }
.target-hero-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,50%); max-width:1296px; gap:clamp(36px,5vw,88px); align-items:center; }
.target-hero-copy,.target-hero-heading { min-width:0; text-align:left; }
.target-hero-heading h2 { max-width:12em; margin:0 0 22px; font-size:clamp(35px,3.5vw,55px); line-height:1.15; font-weight:500; color:#181a1b; text-wrap:balance; }
.target-hero-heading p { max-width:46ch; margin:0; font-size:17px; line-height:1.65; color:#505657; text-align:left; }
.target-hero-media { min-width:0; margin:0; display:grid; justify-items:center; align-content:center; }
.target-hero-media img { display:block; width:auto; max-width:min(100%,455px); max-height:455px; height:auto; object-fit:contain; background:transparent; }
.target-hero-media figcaption { justify-self:start; margin-top:8px; font-size:12px; }
.target-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; margin-top:28px; }
.target-hero-actions .substrate-benefits-quote { min-width:185px; width:auto; min-height:48px; }
.target-hero-spec-link { display:inline-flex; align-items:center; gap:8px; padding:10px 0; color:#202525; font-size:15px; font-weight:500; text-decoration:underline; text-underline-offset:5px; }
.target-hero-spec-link svg { width:16px; height:16px; }
.target-hero-specs { margin-top:52px; padding-top:22px; border-top:1px solid #cfd3d0; scroll-margin-top:110px; }
.target-hero-specs > h3 { margin:0 0 12px; color:#1c2223; font-size:22px; font-weight:500; }
.target-hero-spec-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 38px; }
.target-hero-spec-grid details { min-width:0; border-bottom:1px solid #d9ddda; }
.target-hero-spec-grid summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 0; font-size:17px; line-height:1.4; font-weight:500; cursor:pointer; list-style:none; }
.target-hero-spec-grid summary::-webkit-details-marker { display:none; }
.target-hero-spec-grid details[open] .lucide-plus,.target-hero-spec-grid details[open] [data-lucide="plus"] { display:none; }
.target-hero-spec-grid details:not([open]) .lucide-minus,.target-hero-spec-grid details:not([open]) [data-lucide="minus"] { display:none; }
.target-hero-spec-grid .substrate-benefits-panel { padding:0 0 22px; }
.target-hero-spec-grid .blank-spec-content { max-width:100%; overflow-x:auto; }
.target-hero-spec-grid .blank-spec-content p,.target-hero-spec-grid .blank-spec-content li { font-size:14px; line-height:1.65; }
.target-product-lower-choices { padding-top:48px; padding-bottom:56px; }
.target-product-lower-choices h2 { margin:0 0 22px; font-size:clamp(24px,2.2vw,34px); letter-spacing:-.03em; }
.target-product-lower-choices-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 28px; }
.target-product-lower-choices-grid details { border:0; border-radius:20px; overflow:hidden; margin:0; }
.target-product-lower-choices-grid details[open] { background:#fff; box-shadow:0 4px 24px #00000008; }
.target-product-lower-choices-grid summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 24px; font-size:18px; line-height:1.35; font-weight:500; cursor:pointer; list-style:none; }
.target-product-lower-choices-grid summary::-webkit-details-marker { display:none; }
.target-product-lower-choices-grid .substrate-benefits-panel { padding:0 24px 20px; }
@media (max-width:1023px) {
 .target-hero-layout { gap:20px 28px; }
 .target-hero-heading h2 { font-size:clamp(32px,4vw,46px); }
 .target-product-lower-choices-grid { grid-template-columns:1fr; gap:4px; }
}
@media (max-width:700px) {
 .target-product-layout { padding:28px 0 38px; }
 .target-hero-layout,.target-hero-specs { width:calc(100% - 36px); }
 .target-hero-layout { grid-template-columns:1fr; gap:22px; }
 .target-hero-heading h2 { margin-bottom:12px; font-size:clamp(30px,7vw,40px); }
 .target-hero-heading p { font-size:15px; }
 .target-hero-media { width:100%; }
 .target-hero-media img { max-width:100%; max-height:none; }
 .target-hero-actions { gap:12px 20px; margin-top:22px; }
 .target-hero-specs { margin-top:38px; }
 .target-hero-spec-grid { grid-template-columns:1fr; }
 .target-hero-spec-grid summary { font-size:16px; }
}
@media (max-width:520px) {
 .target-product-lower-choices { padding-top:32px; padding-bottom:40px; }
}

/* DM code target: a readable product sheet with ordinary text and tables. */
.dm-product { color:#1a2022; background:#fff; }
.dm-shell { width:min(1480px,90%); margin-inline:auto; }
body:has(.dm-product) #main > .page-heading.container { width:min(1480px,90%); }
.dm-hero { padding:20px 0 24px; background:#f7f7f5; }
.dm-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,50%); max-width:1296px; gap:clamp(36px,5vw,88px); align-items:center; }
.dm-hero-grid > div { min-width:0; text-align:left; }
.dm-hero h2 { max-width:14em; margin:0 0 24px; font-size:clamp(32px,3.4vw,51px); line-height:1.16; font-weight:500; }
.dm-hero p { max-width:48ch; margin:0; font-size:18px; line-height:1.7; color:#303839; text-align:left; }
.dm-hero figure { margin:0; min-width:0; justify-self:center; }
.dm-hero img { display:block; width:min(100%,clamp(320px,31vw,450px)); height:auto; object-fit:contain; }
.dm-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px 28px; margin-top:32px; }
.dm-actions .button { min-height:48px; border-radius:3px; background:#171b1c; color:#fff; }
.dm-actions .text-link { font-size:16px; }
.dm-section { padding-block:56px 64px; scroll-margin-top:110px; }
.dm-section > h2 { margin:0 0 26px; font-size:clamp(24px,2vw,32px); line-height:1.25; font-weight:500; }
.dm-prose { width:100%; max-width:1050px; min-width:0; }
.dm-prose > p,.dm-prose > div { max-width:none; }
.dm-prose p { margin:0 0 18px; font-size:17px; line-height:1.75; color:#303839; }
.dm-prose > div + div { margin-top:28px; }
.dm-prose h3 { margin:0 0 8px; font-size:20px; line-height:1.35; font-weight:600; }
.dm-prose .button { display:inline-flex; margin-top:10px; border-radius:3px; background:#171b1c; color:#fff; }
.dm-section:is(#advantages,#applications) .dm-prose { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 64px; max-width:none; }
.dm-section:is(#advantages,#applications) .dm-prose > div + div { margin-top:0; }
.dm-table-scroll { width:min(100%,1120px); min-width:0; overflow-x:auto; margin-top:30px; }
.dm-table-scroll table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:15px; line-height:1.55; }
.dm-table-scroll caption { padding-bottom:12px; text-align:left; font-size:21px; font-weight:600; }
.dm-table-scroll th,.dm-table-scroll td { padding:12px 14px; vertical-align:middle; text-align:center; border:1px solid #dce0dd; overflow-wrap:anywhere; }
.dm-table-scroll th { width:30%; color:#273134; font-weight:600; background:#f5f6f4; }
.dm-table-scroll td { color:#303839; }
.dm-related { display:flex; flex-wrap:wrap; gap:14px 32px; }
.dm-related a { color:#0050c8; font-size:17px; font-weight:600; }
@media (max-width:600px) {
 body:has(.dm-product) .site-header.reference-header.inner-page-header .header-context-inner { overflow:hidden; }
 body:has(.dm-product) .header-context-inner > [aria-current] { min-width:0; overflow:hidden; text-overflow:ellipsis; }
}
@media (max-width:900px) {
 .dm-hero-grid { grid-template-columns:1fr; gap:26px; }
 .dm-hero p { text-align:left; }
 .dm-hero figure { justify-self:start; width:100%; }
 .dm-hero img { width:100%; max-width:540px; }
 .dm-section:is(#advantages,#applications) .dm-prose { grid-template-columns:1fr; gap:28px; }
}
@media (max-width:800px) {
 .dm-section { padding-block:40px 46px; }
 .dm-section > h2 { margin-bottom:20px; }
 .dm-table-scroll { margin-top:24px; }
}
@media (max-width:520px) {
 .dm-shell { width:calc(100% - 36px); }
 .dm-hero { padding:28px 0 38px; }
 .dm-hero h2 { font-size:30px; margin-bottom:16px; }
 .dm-hero p,.dm-prose p { font-size:16px; }
 .dm-table-scroll table { font-size:14px; }
 .dm-table-scroll th { width:39%; }
 .dm-table-scroll th,.dm-table-scroll td { padding:11px 9px; }
 .dm-table-scroll caption { font-size:18px; }
}

/* Keep all five product questions beside the complete, bounded artwork. */
.reticle-hero-overview { display:grid !important; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:48px; align-items:start; }
.reticle-hero-overview .editorial-copy { max-width:none !important; margin:0 !important; }
.reticle-hero-overview .detail-product-figure { width:100% !important; max-width:500px !important; margin:0 !important; justify-self:end; }
.reticle-hero-overview .detail-product-figure img { display:block; width:100%; margin-inline:auto; aspect-ratio:1 / 1; object-fit:contain; padding:0; background:#fff; }
@media (max-width:900px) {
 .reticle-hero-overview { grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:28px; }
}
@media (max-width:700px) {
 .reticle-hero-overview { grid-template-columns:1fr !important; gap:24px; }
 .reticle-hero-overview .detail-product-figure { order:-1; max-width:360px !important; justify-self:center; }
}

/* Keep the image-led product families in the same order as calibration targets. */
.reticle-image-catalog .reticle-image-card .feature-catalog-title,
.micro-pattern-catalog .reticle-image-card .feature-catalog-title { order:2; background:#f4f5f6; }
.reticle-image-catalog .reticle-image-card .feature-catalog-media img,
.micro-pattern-catalog .reticle-image-card .feature-catalog-media img { order:1; object-fit:cover; }

/* Calibration family: a square product image first, with its name below. */
.calibration-image-catalog .reticle-image-card .feature-catalog-media {
 display:flex; flex-direction:column; aspect-ratio:auto; padding:0; overflow:hidden; background:#fff;
}
.calibration-image-catalog .reticle-image-card .feature-catalog-media img {
 order:1; position:static; display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; padding:0;
}
.calibration-image-catalog .reticle-image-card .feature-catalog-title {
 order:2; flex:none; width:100%; min-height:64px; margin:0; padding:12px 14px;
 align-items:center; color:#263d57; background:#f4f5f6; font-size:14px; font-weight:500; line-height:1.45;
}
.negative-dot-landing .dot-hero-art img { object-fit:cover; }
.negative-dot-landing .dot-technical-table { max-width:100%; }
.halcon-landing .dot-geometry .dot-technical-table { margin-top:28px; }
.halcon-landing .dot-geometry { background:#f4f7f9; color:#14242d; }
.halcon-landing .dot-geometry .dot-section-head { display:block; margin-bottom:0; }
.halcon-landing .dot-geometry .dot-section-head h2 { max-width:none; margin-bottom:16px; }
.halcon-landing .dot-geometry .dot-section-head p { max-width:72ch; color:#253c4a; }
.halcon-landing .dot-geometry .dot-technical-table th,
.halcon-landing .dot-geometry .dot-technical-table td { color:#14242d; }
.halcon-landing .halcon-pattern-copy { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; margin-top:34px; }
.halcon-landing .halcon-pattern-copy p { max-width:58ch; color:#14242d; }
.halcon-landing .halcon-workflow-note { max-width:86ch; margin-top:42px; color:#253c4a; }
.halcon-landing .halcon-material-extra { max-width:86ch; margin-top:28px; }
.halcon-landing .halcon-comparison .dot-technical-table th { width:auto; }
.halcon-landing .halcon-comparison .dot-technical-table td { width:36%; }
.halcon-landing .halcon-comparison .dot-technical-table thead th { background:#e9f0f4; }
/* HALCON hexagonal target: a light technical sheet around the supplied plate image. */
.hex-landing { color:#14242d; }
.hex-hero .dot-hero-art img { object-fit:cover; }
.hex-intro { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:72px; padding-block:105px; }
.hex-intro h2 { max-width:20ch; }
.hex-intro p { max-width:64ch; font-size:20px; line-height:1.6; }
.hex-intro p + p { margin-top:22px; }
.hex-layout-band { padding-block:86px 98px; background:#e9f0f4; }
.hex-layout-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:end; gap:60px; margin-bottom:30px; }
.hex-layout-head h2 { max-width:none; margin:0; }
.hex-layout-head p { max-width:55ch; }
.hex-layout-control { display:grid; grid-template-columns:max-content max-content minmax(0,1fr); }
.hex-layout-control input { position:absolute; width:1px; height:1px; opacity:0; }
.hex-layout-control label { display:block; padding:12px 24px; font-weight:600; cursor:pointer; }
.hex-layout-control input:focus-visible + label { outline:3px solid #0050c8; outline-offset:2px; }
.hex-layout-control input:checked + label { background:#fff; }
.hex-layout-stage { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); align-items:center; gap:65px; min-height:330px; padding:38px 62px; background:#fff; }
.hex-dot-field { display:grid; grid-template-columns:repeat(7,18px); justify-content:center; gap:20px 25px; overflow:hidden; }
.hex-dot-field span { width:18px; height:18px; border-radius:50%; background:#0050c8; transition:transform .35s ease; }
#hex-layout-hex:checked ~ .hex-layout-stage .hex-dot-field span:nth-child(n+8):nth-child(-n+14),
#hex-layout-hex:checked ~ .hex-layout-stage .hex-dot-field span:nth-child(n+22):nth-child(-n+28),
#hex-layout-hex:checked ~ .hex-layout-stage .hex-dot-field span:nth-child(n+36):nth-child(-n+42) { transform:translateX(21px); }
.hex-layout-copy p { max-width:40ch; font-size:21px; line-height:1.5; }
.hex-square-copy { display:none; }
#hex-layout-square:checked ~ .hex-layout-stage .hex-square-copy { display:block; }
#hex-layout-square:checked ~ .hex-layout-stage .hex-hex-copy { display:none; }
.hex-finder { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:80px; padding-block:105px; }
.hex-finder h2 { max-width:22ch; }
.hex-finder p { max-width:61ch; font-size:18px; line-height:1.65; }
.hex-finder p + p { margin-top:22px; }
.hex-finder figure { margin:0; height:430px; overflow:hidden; background:#e9f0f4; }
.hex-finder img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.55); }
.hex-file-band { padding-block:94px 105px; background:#f4f7f9; }
.hex-file-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:70px; align-items:end; margin-bottom:48px; }
.hex-file-intro h2 { max-width:25ch; margin:0; }
.hex-file-intro p { max-width:55ch; font-size:18px; line-height:1.6; }
.hex-file-columns { display:grid; grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr); gap:36px; }
.hex-file-columns h3,.hex-workflow h3 { margin:0 0 18px; font-size:23px; }
.hex-file-columns .dot-technical-table { overflow:visible; }
.hex-file-columns .dot-technical-table th { width:27%; }
.hex-workflow { margin-top:70px; }
.hex-workflow > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px; }
.hex-workflow h4 { margin:0 0 12px; font-size:19px; }
.hex-workflow p { font-size:17px; line-height:1.6; }
.hex-section-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:60px; align-items:end; margin-bottom:40px; }
.hex-section-head h2 { max-width:none; margin:0; }
.hex-section-head p { max-width:60ch; font-size:18px; }
.hex-technical .negative-material-note { font-weight:600; }
.hex-close { padding-block:90px; background:#e9f0f4; }
.hex-close .dot-shell { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:90px; }
.hex-close h2 { max-width:22ch; }
.hex-close p { max-width:52ch; margin-bottom:25px; font-size:18px; }
.hex-close h3 { margin-bottom:18px; font-size:21px; }
.hex-close a:not(.dot-action) { display:block; padding-block:8px; color:#0050c8; font-weight:600; }
@media (max-width:900px) {
 .hex-intro,.hex-finder { grid-template-columns:1fr; gap:32px; padding-block:70px; }
 .hex-layout-head,.hex-file-intro,.hex-section-head,.hex-close .dot-shell { grid-template-columns:1fr; gap:20px; }
 .hex-file-columns { grid-template-columns:1fr; }
 .hex-workflow > div { gap:25px; }
}
@media (min-width:901px) and (max-width:1160px) {
 .hex-file-columns { grid-template-columns:1fr; }
}
@media (max-width:600px) {
 .hex-intro,.hex-finder { padding-block:60px; }
 .hex-intro p { font-size:18px; }
 .hex-layout-band,.hex-file-band,.hex-close { padding-block:62px; }
 .hex-layout-control { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hex-layout-control label { padding:12px 14px; font-size:15px; text-align:center; }
 .hex-layout-stage { grid-template-columns:1fr; gap:30px; min-height:0; padding:36px 18px; }
 .hex-dot-field { grid-template-columns:repeat(7,13px); gap:14px 17px; }
 .hex-dot-field span { width:13px; height:13px; }
 #hex-layout-hex:checked ~ .hex-layout-stage .hex-dot-field span:nth-child(n+8):nth-child(-n+14),
 #hex-layout-hex:checked ~ .hex-layout-stage .hex-dot-field span:nth-child(n+22):nth-child(-n+28),
 #hex-layout-hex:checked ~ .hex-layout-stage .hex-dot-field span:nth-child(n+36):nth-child(-n+42) { transform:translateX(14px); }
 .hex-layout-copy p { font-size:18px; }
 .hex-finder figure { height:320px; }
 .hex-file-columns .dot-technical-table { overflow-x:auto; }
 .hex-file-columns .dot-technical-table th,.hex-file-columns .dot-technical-table td { overflow-wrap:anywhere; }
 .hex-workflow { margin-top:48px; }
 .hex-workflow > div { grid-template-columns:1fr; gap:26px; }
}
@media (prefers-reduced-motion:reduce) { .hex-dot-field span { transition:none; } }
/* OpenCV checkerboard: one physical grid connects the examples and specifications. */
.opencv-hero .dot-hero-art img { object-fit:cover; }
.opencv-intro { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:80px; align-items:center; padding-block:96px; }
.opencv-intro p { font-size:19px; line-height:1.65; }
.opencv-intro p + p { margin-top:22px; }
.opencv-example { padding:40px; background:#e9f0f4; }
.opencv-example h3 { margin:0 0 22px; font-size:23px; }
.opencv-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; background:#fff; }
.opencv-comparison > div { min-width:0; padding:18px 10px; text-align:center; }
.opencv-comparison h4 { margin:0 0 24px; font-size:17px; line-height:1.3; white-space:nowrap; }
.opencv-comparison strong { display:block; font-size:clamp(28px,2.7vw,40px); line-height:1.15; color:#0050c8; white-space:nowrap; }
.opencv-intro .opencv-comparison p { margin:14px 0 2px; font-size:15px; line-height:1.4; }
.opencv-comparison span { display:block; font-size:13px; white-space:nowrap; }
.opencv-workflow { padding-block:90px 108px; background:#f4f7f9; }
.opencv-workflow-head { margin-bottom:42px; }
.opencv-workflow-head h2 { max-width:none; margin:0 0 18px; }
.opencv-workflow-head p { max-width:90ch; font-size:18px; }
.opencv-workflow-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:70px; align-items:start; }
.opencv-workflow-grid figure { position:sticky; top:115px; margin:0; height:510px; overflow:hidden; }
.opencv-workflow-grid img { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.35); }
.opencv-workflow-steps article { padding:25px 0; border-bottom:1px solid #cad5dc; }
.opencv-workflow-steps article:first-child { padding-top:0; }
.opencv-workflow-steps h3 { margin:0 0 12px; font-size:23px; }
.opencv-workflow-steps p { font-size:18px; line-height:1.65; }
.opencv-design { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:75px; padding-block:95px; }
.opencv-design > div { display:grid; grid-template-columns:1fr 1fr; gap:35px 45px; }
.opencv-design h3 { margin:0 0 10px; font-size:21px; }
.opencv-design p { font-size:17px; line-height:1.65; }
.opencv-model { padding-block:90px 100px; background:#e9f0f4; }
.opencv-model h2 { max-width:none; margin-bottom:35px; }
.opencv-model-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:45px; }
.opencv-model h3 { margin:0 0 14px; font-size:22px; }
.opencv-model p { font-size:17px; line-height:1.65; }
.opencv-technical { background:#fff; }
.opencv-aluminium { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:75px; padding-top:48px; }
.opencv-aluminium h3 { margin:0; font-size:22px; }
.opencv-aluminium p { font-size:17px; line-height:1.65; }
@media (max-width:900px) {
 .opencv-intro,.opencv-workflow-grid,.opencv-design,.opencv-aluminium { grid-template-columns:1fr; gap:32px; }
 .opencv-intro,.opencv-workflow,.opencv-design { padding-block:65px; }
 .opencv-workflow-grid figure { position:static; height:auto; aspect-ratio:1.5; }
 .opencv-model-grid { gap:24px; }
}
@media (max-width:600px) {
 .opencv-example { padding:22px; }
 .opencv-comparison { gap:10px; }
 .opencv-comparison > div { padding-inline:5px; }
 .opencv-comparison strong { font-size:32px; }
 .opencv-design > div { grid-template-columns:1fr; gap:24px; }
 .opencv-workflow-grid figure { aspect-ratio:1; }
 .opencv-workflow-steps h3 { font-size:21px; }
 .opencv-model { padding-block:60px; }
 .opencv-model-grid { grid-template-columns:1fr; gap:30px; }
}
@media (max-width:700px) { .halcon-landing .halcon-pattern-copy { grid-template-columns:1fr; gap:20px; } }
.negative-spec-link { margin-top:24px !important; }
.negative-spec-link a { color:var(--dot-blue); font-weight:600; }
.negative-dot-landing .negative-technical-primary { padding:26px; background:#e9f0f4; }
.negative-dot-landing .negative-technical-primary h3 { margin:0 0 18px; font-size:22px; line-height:1.25; }
.negative-dot-landing .negative-material-note { margin:0 0 18px; font-weight:600; color:#253c4a; }
.negative-dot-landing .dot-technical-groups details[open] { padding-bottom:2px; }
@media (max-width:520px) {
 .negative-dot-landing .negative-technical-primary { padding:18px 12px; }
 .negative-dot-landing .negative-technical-primary h3 { padding-inline:6px; font-size:20px; }
}

/* One product menu level, with a single expandable calibration family. */
.product-workspace { display:grid; grid-template-columns:326px minmax(0,1fr); width:min(1640px,100%); margin-inline:auto; }
.product-workspace-content { min-width:0; }
.product-tree-sidebar { min-width:0; padding:30px 18px 40px 24px; border-right:1px solid #e4e8ec; background:#fff; }
.product-tree-panel { position:sticky; top:112px; max-height:calc(100vh - 130px); overflow:auto; scrollbar-width:thin; }
.product-tree-panel > summary { display:none; }
.product-tree-panel nav { display:block; }
.product-tree-panel a { text-decoration:none; }
.product-tree-all { display:block; margin:0 0 10px; padding:12px 14px 13px; color:#0050c8; font-size:16px; font-weight:700; border-bottom:1px solid #dfe4ea; }
.product-tree-item,.product-tree-calibration-row { position:relative; display:flex; align-items:center; min-height:48px; }
.product-tree-item { padding:10px 14px; color:#202124; font-size:16px; font-weight:600; line-height:1.4; border-bottom:1px solid #edf0f3; transition:color .16s ease,background .16s ease; }
.product-tree-item:hover,.product-tree-calibration-link:hover { color:#0050c8; background:#f7f9fb; }
.product-tree-item.is-current,.product-tree-calibration.is-current > .product-tree-calibration-row .product-tree-calibration-link { color:#0050c8; font-weight:600; }
.product-tree-item.is-current::before,.product-tree-calibration.is-current > .product-tree-calibration-row::before { content:""; position:absolute; top:9px; bottom:9px; left:0; width:2px; background:#0050c8; }
.product-tree-calibration-row { gap:4px; border-bottom:1px solid #edf0f3; }
.product-tree-item.is-current,.product-tree-calibration.is-current > .product-tree-calibration-row { background:#eef4fb; }
.product-tree-calibration-link { flex:1; min-width:0; padding:10px 0 10px 14px; color:#202124; font-size:16px; font-weight:600; line-height:1.4; }
.product-tree-toggle { display:grid; place-items:center; flex:none; width:42px; height:42px; padding:0; border:0; background:transparent; color:#4b5661; cursor:pointer; }
.product-tree-toggle:hover,.product-tree-toggle:focus-visible { color:#0050c8; }
.product-tree-toggle svg { width:17px; height:17px; transition:transform .25s ease; }
.product-tree-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.product-tree-children { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .26s ease,opacity .18s ease; }
.product-tree-children[aria-hidden="false"] { grid-template-rows:1fr; opacity:1; }
.product-tree-children-inner { min-height:0; overflow:hidden; padding:3px 0 5px 14px; border-left:1px solid #dfe4ea; }
.product-tree-children a { display:block; padding:9px 14px; color:#56626d; font-size:15px; line-height:1.4; transition:color .16s ease,background .16s ease; }
.product-tree-children a:hover,.product-tree-children a:focus-visible { color:#0050c8; }
.product-tree-overview { font-weight:600; }
.product-tree-children a.is-current { color:#0050c8; background:#eef4fb; font-weight:600; }
.product-tree-children a.is-current::before { content:""; display:inline-block; width:5px; height:5px; margin:0 8px 2px 0; border-radius:50%; background:#0050c8; }
.product-tree-item:focus-visible,.product-tree-calibration-link:focus-visible,.product-tree-toggle:focus-visible,.product-tree-children a:focus-visible { outline:2px solid #0050c8; outline-offset:-2px; }
.product-workspace .catalog-layout { display:block; }
.product-workspace .feature-catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.product-workspace .catalog-requirements { position:static; display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; margin-top:48px; padding:30px 0 0; border:0; border-top:1px solid #dfe2e5; border-radius:0; background:#fff; }
.product-workspace .catalog-requirements h2 { width:100%; margin:0; }
.product-workspace .catalog-requirements .button { width:auto; }
.product-workspace .catalog-requirements .related-link { width:auto; margin:0; padding:0; border:0; }
.product-workspace .feature-catalog-group { scroll-margin-top:125px; }
@media (max-width:1180px) {
 .product-workspace { grid-template-columns:280px minmax(0,1fr); }
 .product-tree-sidebar { padding-inline:12px; }
 .product-workspace .feature-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
 .product-workspace { display:block; }
 .product-tree-sidebar { padding:0 18px; border:0; }
 .product-tree-panel { position:static; max-height:none; overflow:visible; border-bottom:1px solid #dfe2e5; }
 .product-tree-panel > summary { display:flex; justify-content:space-between; align-items:center; padding:14px 4px; color:#202124; font-size:15px; font-weight:600; cursor:pointer; list-style:none; }
 .product-tree-panel > summary::-webkit-details-marker { display:none; }
 .product-tree-panel > summary svg { width:17px; height:17px; transition:transform .2s ease; }
 .product-tree-panel[open] > summary svg { transform:rotate(180deg); }
 .product-tree-panel:not([open]) > nav { display:none; }
 .product-tree-panel nav { max-height:min(62dvh,560px); overflow-y:auto; overscroll-behavior:contain; padding-bottom:14px; }
 .product-workspace .catalog-requirements { gap:16px; }
}
@media (max-width:600px) {
 .product-workspace .feature-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
 .product-workspace .catalog-requirements { display:block; }
 .product-workspace .catalog-requirements .button { margin:16px 0; }
 .product-workspace .catalog-requirements .related-link { padding:8px 0; }
}
@media (max-width:430px) {
 .product-workspace .feature-catalog-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
 .product-tree-children,.product-tree-toggle svg,.product-tree-panel > summary svg { transition:none; }
}

/* Larger reading scale for the guide directory and technical articles. */
body[data-page="resources"] #main { font-size:18px; line-height:1.75; }
body[data-page="resources"] #main .page-heading h1 { font-size:clamp(36px,3.6vw,50px); line-height:1.2; }
body[data-page="resources"] #main .page-heading > p,
body[data-page="resources"] #main .guide-feature p,
body[data-page="resources"] #main .guide-entry p,
body[data-page="resources"] #main .guide-faq p,
body[data-page="resources"] #main .article-body p,
body[data-page="resources"] #main .article-body li { font-size:18px; line-height:1.8; }
body[data-page="resources"] #main .guide-feature h2 { font-size:clamp(34px,3.4vw,48px); line-height:1.18; }
body[data-page="resources"] #main .guide-faq h2,
body[data-page="resources"] #main .guide-entry h2,
body[data-page="resources"] #main .article-body h2 { font-size:29px; line-height:1.35; }
body[data-page="resources"] #main .article-body h3 { font-size:23px; line-height:1.4; }
body[data-page="resources"] #main .guide-faq summary { font-size:18px; line-height:1.5; padding:20px 22px; }
body[data-page="resources"] #main .text-link,
body[data-page="resources"] #main .button,
body[data-page="resources"] #main .related-link,
body[data-page="resources"] #main .article-toc a,
body[data-page="resources"] #main .guide-table-scroll table { font-size:17px; }
body[data-page="resources"] #main .guide-feature .section-label { font-size:14px; }
@media(max-width:600px) {
 body[data-page="resources"] #main .guide-faq h2,
 body[data-page="resources"] #main .guide-entry h2,
 body[data-page="resources"] #main .article-body h2 { font-size:25px; }
 body[data-page="resources"] #main .guide-faq summary { padding:18px; }
 body[data-page="resources"] #main .button { white-space:normal; text-align:center; }
}
/* Product selection content: answer the buying question before the catalogue. */
.product-buying-guide .section-header { max-width: 760px; margin-inline: auto; text-align: center; }
.buying-guide-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 2.5rem; background: var(--line, #dbe4ed); border: 1px solid var(--line, #dbe4ed); }
.buying-guide-grid article { background: #fff; padding: 1.4rem 1.25rem 1.6rem; }
.buying-guide-grid h3 { display: flex; align-items: center; gap: .55rem; margin: 0 0 .7rem; font-size: 1rem; }
.buying-guide-grid h3 svg { width: 1.1rem; height: 1.1rem; color: var(--accent, #0050c8); flex: 0 0 auto; }
.buying-guide-grid p { margin: 0; color: var(--muted, #536171); line-height: 1.65; font-size: .93rem; }
.buying-guide-table { margin-top: 2.2rem; overflow-x: auto; }
.buying-guide-table h3, .buying-guide-faq h3 { margin: 0 0 1rem; font-size: 1.15rem; }
.buying-guide-table table { width: 100%; min-width: 680px; border-collapse: collapse; background: #fff; }
.buying-guide-table th, .buying-guide-table td { padding: .85rem 1rem; border: 1px solid var(--line, #dbe4ed); text-align: left; vertical-align: top; line-height: 1.55; }
.buying-guide-table th { width: 25%; font-weight: 600; }
.buying-guide-faq { max-width: 900px; margin: 2.25rem auto 0; }
.buying-guide-faq details { border-top: 1px solid var(--line, #dbe4ed); padding: .9rem 0; }
.buying-guide-faq details:last-child { border-bottom: 1px solid var(--line, #dbe4ed); }
.buying-guide-faq summary { cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; font-weight: 600; }
.buying-guide-faq summary svg { width: 1rem; height: 1rem; flex: 0 0 auto; color: var(--accent, #0050c8); }
.buying-guide-faq p { max-width: 75ch; margin: .7rem 0 0; color: var(--muted, #536171); line-height: 1.7; }
@media (max-width: 900px) { .buying-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .buying-guide-grid { grid-template-columns: 1fr; } .buying-guide-table table { min-width: 560px; } }

/* Compact explanatory diagrams; captions remain readable at mobile widths. */
.measurement-diagram{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}
.measurement-diagram-panel{padding:20px;background:#f3f6f9;border:1px solid #dae3ed;border-radius:12px;min-width:0}
.measurement-diagram-panel svg{display:block;width:100%;height:auto;fill:none;stroke:#243f61;stroke-width:2}
.measurement-diagram-panel svg .glass{fill:#e3edf5;stroke:#9eb5c9}
.measurement-diagram-panel svg .solid{fill:#243f61;stroke:none}
.measurement-diagram-panel svg .clear{fill:white;stroke:none}
.measurement-diagram-panel svg .datum{stroke:#427caf;stroke-width:2.5}
.measurement-diagram-panel svg .film{stroke:#243f61;stroke-width:7}
.measurement-diagram-panel h3{font-size:1.05rem;margin:16px 0 8px}
.measurement-diagram-panel p{font-size:.95rem;line-height:1.7;margin:0}
@media(max-width:620px){.measurement-diagram{grid-template-columns:1fr}.measurement-diagram-panel{padding:16px}}
/* Encoder product summaries keep technical derivations in linked articles. */
.encoder-reading-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.encoder-reading-columns h3 { margin: 0 0 12px; font-size: 20px; line-height: 1.4; }
.encoder-reading-columns p { max-width: 60ch; font-size: 16px; line-height: 1.8; }
.encoder-topic-link { display: inline-block; max-width: 100%; margin-top: 12px; font-size: 16px; line-height: 1.6; }
.encoder-reading-followup { margin: 24px 0 0; }
@media (max-width: 760px) {
 .encoder-reading-columns { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

/* Compact, product-specific reticle explanations with optional deeper reading. */
.reticle-application-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem}
.reticle-application-grid article{padding-top:1.2rem;border-top:1px solid var(--line,#dce3eb)}
.reticle-application-grid h3{margin:0 0 .65rem}
.reticle-application-grid p{margin:0 0 1rem}
.reticle-topic-link{display:block;width:fit-content;margin:.7rem 0 1rem;line-height:1.5}
@media(max-width:700px){.reticle-application-grid{grid-template-columns:1fr;gap:1.5rem}}

/* Dot-array product: the glass plate and its coordinate layout set the page rhythm. */
.dot-landing { --dot-ink:#14242d; --dot-blue:#0050c8; --dot-soft:#edf3f7; color:var(--dot-ink); font-size:17px; line-height:1.6; }
.dot-landing * { box-sizing:border-box; }
.dot-landing .dot-shell { width:min(1280px,calc(100% - 64px)); margin-inline:auto; }
.dot-landing section[id] { scroll-margin-top:155px; }
.dot-landing h1,.dot-landing h2,.dot-landing h3 { color:inherit; letter-spacing:0; }
.dot-landing h2 { font-size:36px; line-height:1.15; max-width:18ch; margin:0 0 20px; }
.dot-landing p { margin:0; max-width:68ch; }
.dot-landing a { text-underline-offset:4px; }
.dot-landing a:focus-visible,.dot-landing summary:focus-visible,.dot-landing label:focus-visible { outline:3px solid var(--dot-blue); outline-offset:4px; }
.dot-hero { background:var(--dot-soft); }
.dot-hero-grid { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); align-items:center; min-height:390px; gap:36px; }
.dot-hero-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:20px 0; text-align:left; }
.dot-hero h1 { font-size:46px; line-height:1.08; max-width:20ch; margin:0 0 20px; font-weight:650; }
.dot-hero-copy > p { font-size:19px; line-height:1.55; max-width:45ch; margin-bottom:20px; text-align:left; }
.dot-action { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:13px 24px; color:white !important; background:var(--dot-blue); font-weight:600; text-decoration:none; transition:background-color .2s,transform .2s; }
.dot-action:hover { background:#003b96; transform:translateY(-2px); }
.dot-secondary { display:inline-block; margin-top:16px; color:var(--dot-ink); font-size:16px; font-weight:600; }
.dot-hero-art { position:relative; width:min(100%,390px); min-width:0; min-height:0; aspect-ratio:1; justify-self:center; margin:0; overflow:hidden; }
.dot-hero-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.dot-subnav { display:flex; gap:30px; overflow-x:auto; padding-block:20px; white-space:nowrap; }
.dot-subnav a { color:var(--dot-ink); font-size:15px; font-weight:600; text-decoration:none; }
.dot-subnav a:hover { color:var(--dot-blue); }
.dot-intro { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); gap:90px; padding-block:110px; }
.dot-intro > div:first-child p { font-size:21px; line-height:1.55; }
.dot-intro-aside { align-self:end; padding:28px 32px; background:var(--dot-soft); }
.dot-intro-aside p { font-size:16px; }
.dot-intro-aside a,.dot-spec-grid a { display:inline-block; margin-top:20px; font-size:16px; color:var(--dot-blue); font-weight:600; }
.dot-advantages { padding-block:85px 90px; background:#e9f0f4; }
.dot-advantage-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; margin-top:36px; }
.dot-advantage-grid h3 { margin:0 0 12px; font-size:22px; line-height:1.25; }
.dot-advantage-grid p { font-size:17px; line-height:1.65; }
.dot-geometry { padding-block:90px 100px; background:#102b3d; color:#fff; }
.dot-section-head { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:40px; }
.dot-section-head h2 { margin-bottom:0; }
.dot-section-head p { max-width:42ch; }
.dot-geometry .dot-section-head p { color:#e4edf3; }
.dot-pattern-switch { display:grid; grid-template-columns:max-content max-content minmax(0,1fr); align-items:center; gap:0 10px; }
.dot-pattern-switch input { position:absolute; opacity:0; width:1px; height:1px; }
.dot-pattern-switch label { padding:12px 20px; cursor:pointer; color:#e4edf3; font-size:16px; }
.dot-pattern-switch #dot-regular:checked + label,.dot-pattern-switch #dot-staggered:checked + label { background:#fff; color:#102b3d; }
.dot-pattern-switch input:focus-visible + label { outline:3px solid #fff; outline-offset:3px; }
.dot-pattern-stage { display:grid; grid-column:1/-1; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); align-items:center; gap:60px; min-height:340px; margin-top:24px; padding:38px 54px; background:#183b52; }
.dot-pattern-visual { display:grid; grid-template-columns:repeat(6,1fr); justify-items:center; gap:24px; max-width:450px; padding:26px; }
.dot-pattern-visual span { width:17px; height:17px; border-radius:50%; background:#fff; transition:transform .3s; }
#dot-staggered:checked ~ .dot-pattern-stage .dot-pattern-visual span:nth-child(n+7):nth-child(-n+12),
#dot-staggered:checked ~ .dot-pattern-stage .dot-pattern-visual span:nth-child(n+19):nth-child(-n+24) { transform:translateX(16px); }
.dot-pattern-copy p { font-size:20px; line-height:1.5; color:#fff; }
.dot-staggered-copy { display:none; }
#dot-staggered:checked ~ .dot-pattern-stage .dot-staggered-copy { display:block; }
#dot-staggered:checked ~ .dot-pattern-stage .dot-regular-copy { display:none; }
.dot-pattern-copy dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:35px 0 0; }
.dot-pattern-copy dt { font-size:15px; color:#c8dbe7; }
.dot-pattern-copy dd { margin:2px 0 0; font-size:16px; font-weight:600; }
.dot-formats { padding-block:108px 118px; }
.dot-format-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:56px 42px; align-items:start; }
.dot-format { margin:0; min-width:0; }
.dot-format:nth-child(2) { padding-top:115px; }
.dot-format:nth-child(3) { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,.55fr) minmax(0,.45fr); align-items:center; gap:48px; max-width:980px; margin-inline:auto; }
.dot-format img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; display:block; background:#f0f4f7; }
.dot-format:nth-child(3) img { max-width:500px; }
.dot-format figcaption { padding-top:22px; }
.dot-format figcaption > span { display:block; margin-bottom:8px; font-size:15px; color:#405567; }
.dot-format h3 { font-size:27px; line-height:1.2; margin:0 0 10px; }
.dot-format p { font-size:16px; line-height:1.6; }
.dot-materials { padding-block:96px 110px; }
.dot-material-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:35px; }
.dot-material-grid h3 { margin:0 0 14px; font-size:23px; line-height:1.2; }
.dot-material-grid p { font-size:16px; line-height:1.65; }
.dot-specification { padding-block:100px; background:var(--dot-soft); }
.dot-spec-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:90px; align-items:start; }
.dot-spec-grid > div:first-child p { font-size:19px; }
.dot-spec-list { display:grid; gap:26px; }
.dot-spec-list p { display:grid; grid-template-columns:160px 1fr; gap:20px; font-size:17px; line-height:1.55; }
.dot-spec-list strong { font-size:18px; }
.dot-technical { padding-block:96px 108px; background:#fff; }
.dot-technical-groups { display:grid; gap:12px; }
.dot-technical-groups details { background:#f4f7f9; }
.dot-technical-groups summary { cursor:pointer; padding:20px 26px; font-size:20px; font-weight:600; line-height:1.4; }
.dot-technical-groups summary::marker { color:var(--dot-blue); }
.dot-technical-body { padding:0 26px 26px; }
.dot-technical-body > p { margin-bottom:20px; font-size:17px; }
.dot-technical-table { overflow-x:auto; }
.dot-technical-table table { width:100%; border-collapse:collapse; background:#fff; }
.dot-technical-table tr:nth-child(even) { background:#e9f0f4; }
.dot-technical-table th,.dot-technical-table td { padding:13px 18px; text-align:left; vertical-align:top; font-size:16px; line-height:1.5; }
.dot-technical-table th { width:34%; font-weight:600; }
.dot-applications { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:90px; padding-block:110px; }
.dot-applications > div { display:grid; gap:28px; }
.dot-applications p { display:grid; grid-template-columns:210px 1fr; gap:26px; }
.dot-applications strong { font-size:18px; }
.dot-questions { padding-block:72px; background:#f5f7f9; }
.dot-question-grid { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); align-items:start; gap:72px; }
.dot-question-grid details { margin-bottom:18px; padding:18px 22px; background:#fff; }
.dot-question-grid details:last-child { margin-bottom:0; }
.dot-question-grid summary { cursor:pointer; font-size:18px; font-weight:600; line-height:1.4; }
.dot-question-grid details p { padding-top:18px; font-size:16px; }
.dot-close { padding-block:90px; background:#102b3d; color:#fff; }
.dot-close-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:90px; }
.dot-close p { max-width:55ch; margin-bottom:27px; font-size:18px; color:#e4edf3; }
.dot-close h3 { font-size:20px; margin:0 0 20px; }
.dot-close-grid > div:last-child a { display:block; padding-block:9px; color:#e4edf3; font-size:16px; }
@media (max-width:900px) {
 .dot-landing .dot-shell { width:calc(100% - 40px); }
 .dot-hero-grid { grid-template-columns:1fr; gap:0; min-height:0; padding-block:0 22px; }
 .dot-hero-copy { padding:40px 0 30px; }
 .dot-hero h1 { max-width:18ch; font-size:42px; }
 .dot-hero-art { width:100%; min-height:0; aspect-ratio:1; }
 .dot-intro,.dot-spec-grid,.dot-question-grid,.dot-close-grid { grid-template-columns:1fr; gap:35px; }
 .dot-intro,.dot-formats,.dot-materials,.dot-applications { padding-block:70px; }
 .dot-material-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .dot-intro-aside { max-width:620px; }
 .dot-advantage-grid { gap:25px; }
 .dot-section-head { display:block; }
 .dot-section-head h2 { margin-bottom:18px; }
 .dot-pattern-stage { gap:25px; padding:26px; }
 .dot-applications { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:600px) {
 .dot-landing .dot-shell { width:calc(100% - 32px); }
 .dot-hero-copy { padding:26px 0 24px; }
 .dot-hero h1 { font-size:34px; margin-bottom:18px; }
 .dot-hero-copy > p { font-size:17px; margin-bottom:18px; }
 .dot-action { min-height:50px; }
 .dot-secondary { margin-top:14px; }
 .dot-subnav { flex-wrap:wrap; gap:10px 20px; overflow:visible; padding-block:15px; white-space:normal; }
 .dot-landing h2 { font-size:29px; }
 .dot-intro,.dot-formats,.dot-materials,.dot-applications { padding-block:58px; }
 .dot-material-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
 .dot-intro > div:first-child p { font-size:18px; }
 .dot-intro-aside { padding:22px; }
 .dot-advantages { padding-block:58px; }
 .dot-advantage-grid { grid-template-columns:minmax(0,1fr); gap:26px; margin-top:28px; }
 .dot-advantage-grid h3 { font-size:20px; }
 .dot-advantage-grid p { font-size:16px; }
 .dot-geometry,.dot-specification,.dot-technical,.dot-questions,.dot-close { padding-block:60px; }
 .dot-pattern-switch { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
 .dot-pattern-switch label { padding:10px 13px; font-size:14px; }
 .dot-pattern-stage { grid-template-columns:minmax(0,1fr); min-width:0; gap:15px; padding:16px; }
 .dot-pattern-visual { width:100%; max-width:100%; min-width:0; gap:13px; padding:16px; }
 .dot-pattern-visual span { width:14px; height:14px; }
 .dot-pattern-copy p { font-size:17px; }
 .dot-pattern-copy dl { gap:10px; margin-top:22px; }
 .dot-pattern-copy dt,.dot-pattern-copy dd { font-size:13px; }
 .dot-format-grid { display:block; }
 .dot-format,.dot-format:nth-child(2),.dot-format:nth-child(3) { display:block; padding:0; margin:0 0 46px; }
 .dot-format:nth-child(3) { margin-bottom:0; }
 .dot-format h3 { font-size:23px; }
 .dot-spec-list p,.dot-applications p { display:block; }
 .dot-spec-list strong,.dot-applications strong { display:block; margin-bottom:6px; }
 .dot-technical-groups summary { padding:18px; font-size:18px; }
 .dot-technical-body { padding:0 12px 16px; }
 .dot-technical-table th,.dot-technical-table td { padding:12px 10px; font-size:14px; }
 .dot-technical-table th { width:40%; }
}
@media (prefers-reduced-motion:reduce) { .dot-action,.dot-pattern-visual span { transition:none; } }

.negative-checkerboard-hero .dot-hero-art img { object-fit:cover; }
.positive-checkerboard-hero .dot-hero-grid { min-height:0; }
.positive-checkerboard-hero .dot-hero-art { min-height:0; aspect-ratio:1; }
.positive-checkerboard-hero .dot-hero-art img { object-fit:contain; }
.checkerboard-hero .dot-hero-grid { min-height:0; }
.checkerboard-hero .dot-hero-art { min-height:0; aspect-ratio:1; }
.checkerboard-hero .dot-hero-art img { object-fit:contain; }
.checkerboard-landing h2 { max-width:24ch; }
.checkerboard-landing .dot-technical-table th { width:34%; }
.checkerboard-formats { padding-block:88px; }
.checkerboard-format-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 32px; margin-top:36px; }
.checkerboard-format-grid figure { margin:0; min-width:0; }
.checkerboard-format-image { overflow:hidden; }
.checkerboard-format-image img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; transition:transform .35s ease; }
.checkerboard-format-grid figure:hover img { transform:scale(1.035); }
.checkerboard-format-grid figcaption { padding-top:20px; }
.checkerboard-format-grid h3 { font-size:22px; line-height:1.3; margin:0 0 8px; }
.checkerboard-format-grid .checkerboard-format-size { margin-bottom:10px; font-weight:600; }
@media(max-width:900px) {
 .checkerboard-format-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .checkerboard-hero h1 { font-size:32px; max-width:none; }
 .checkerboard-landing .dot-technical-table th { width:39%; }
 .checkerboard-landing .dot-technical-table td { overflow-wrap:anywhere; }
 .checkerboard-format-grid { grid-template-columns:1fr; gap:36px; }
 .checkerboard-formats { padding-block:56px; }
}
@media(prefers-reduced-motion:reduce) {
 .checkerboard-format-image img { transition:none; }
 .checkerboard-format-grid figure:hover img { transform:none; }
}
.negative-checkerboard-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,.8fr); gap:64px; padding-block:78px 86px; }
.negative-checkerboard-intro p { font-size:18px; line-height:1.65; }
.negative-checkerboard-intro dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 26px; align-self:start; margin:0; }
.negative-checkerboard-intro dl div { padding:15px 0; border-bottom:1px solid #dce5eb; }
.negative-checkerboard-intro dt { color:#556773; font-size:14px; }
.negative-checkerboard-intro dd { margin:5px 0 0; font-size:17px; font-weight:600; }
.negative-checkerboard-technical { padding-top:76px; }
.negative-checkerboard-technical .dot-technical-groups details { background:#eef3f7; }
.negative-checkerboard-technical .dot-technical-body > p { max-width:75ch; }
.negative-checkerboard-geometry { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(290px,.9fr); gap:64px; padding-block:96px; }
.negative-checkerboard-geometry > div:first-child p + p { margin-top:22px; }
.negative-checkerboard-points { display:grid; align-content:start; gap:30px; }
.negative-checkerboard-points h3,.negative-checkerboard-material-grid h3 { margin:0 0 10px; font-size:21px; line-height:1.3; }
.negative-checkerboard-materials { padding-block:88px; background:#edf3f7; }
.negative-checkerboard-material-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px; margin-top:36px; }
.negative-checkerboard-order { display:flex; align-items:center; justify-content:space-between; gap:45px; padding-block:72px; }
.negative-checkerboard-order .dot-action { flex:none; }
.negative-checkerboard-related { padding-block:72px 88px; }
.negative-checkerboard-related > div { display:flex; flex-wrap:wrap; gap:14px 34px; }
.negative-checkerboard-related a { color:#0050c8; font-weight:600; }
@media (max-width:900px) {
 .negative-checkerboard-intro,.negative-checkerboard-geometry { grid-template-columns:1fr; gap:32px; }
 .negative-checkerboard-material-grid { grid-template-columns:1fr 1fr; gap:28px; }
}
@media (max-width:600px) {
 .negative-checkerboard-intro,.negative-checkerboard-geometry { padding-block:52px; }
 .negative-checkerboard-intro dl { grid-template-columns:1fr 1fr; gap:0 14px; }
 .negative-checkerboard-intro dd { font-size:15px; }
 .negative-checkerboard-materials { padding-block:58px; }
 .negative-checkerboard-material-grid { grid-template-columns:1fr; }
 .negative-checkerboard-order { display:block; padding-block:56px; }
 .negative-checkerboard-order .dot-action { margin-top:25px; }
 .negative-checkerboard-related { padding-block:52px; }
 .negative-checkerboard-related > div { display:grid; gap:14px; }
}

/* Keep the page title and context link on the same grid as the wide product hero. */
body[data-page="products"] #main > .page-heading:has(~ .substrate-benefits),
body[data-page="products"] #main > .product-context-link:has(+ .substrate-benefits) {
 width:min(1600px,90%);
 max-width:none;
 margin-inline:auto;
}
body[data-page="products"] #main > .product-context-link:has(+ .substrate-benefits) { padding-inline:0; }

/* Product thumbnails respond as images; their labels and card geometry stay fixed. */
.target-variant-media,.custom-pattern-option-image { overflow:hidden; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 :is(.product-card,.catalog-card,.feature-catalog-card,.products-overview-card,.pattern-family-card,.application-component-card,.target-variant,.custom-pattern-option-grid article) :is(.product-image,.catalog-image,.feature-catalog-media,.products-overview-image,.pattern-family-image,.application-component-image,.target-variant-media,.custom-pattern-option-image) img {
  transition:transform .34s cubic-bezier(.22,.61,.36,1);
  transform-origin:center;
 }
 :is(.product-card,.catalog-card,.feature-catalog-card,.products-overview-card,.pattern-family-card,.application-component-card,.target-variant,.custom-pattern-option-grid article):is(:hover,:focus-within) :is(.product-image,.catalog-image,.feature-catalog-media,.products-overview-image,.pattern-family-image,.application-component-image,.target-variant-media,.custom-pattern-option-image) img {
  transform:scale(1.025);
 }
}

/* Product image review: a compact first view with an immediately usable inquiry link. */
.reticle-product-page .reticle-hero-overview {
  grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
  align-items:center;
  gap:48px;
}
.reticle-product-page .reticle-hero-overview .detail-product-figure {
  max-width:360px !important;
  justify-self:center;
}
.reticle-product-page .reticle-hero-overview .detail-product-figure img {
  width:100%; height:auto; max-height:360px; aspect-ratio:auto; object-fit:contain;
  border:0; border-radius:0;
}
.reticle-product-page .reticle-hero-overview .editorial-copy > p {
  font-size:18px; line-height:1.7; color:var(--ink,#202124); text-align:left; max-width:60ch;
}
.reticle-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px 28px; margin-top:24px; }
.reticle-product-page .reticle-selection .product-choice-questions { max-width:none; }
.reticle-product-page :is(.product-choice-questions p,.target-variant-copy p) { font-size:16px; line-height:1.7; text-align:left; }
.reticle-product-page .category-detail :is(p,li) { font-size:16px; line-height:1.7; }
.product-context-link { width:min(1280px,calc(100% - 64px)); max-width:none; padding-inline:0; }
body:has(.reticle-product-page) .page-heading > p:empty { display:none; }
body:has(.reticle-product-page) .page-heading { padding-bottom:12px; }
.reticle-product-page .target-variant-media { background:#fff; }
.reticle-product-page .target-variant-media img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
@media(min-width:901px) {
  .reticle-product-page .target-variant-grid:has(> .target-variant:first-child:nth-last-child(2)),
  .reticle-product-page .target-variant-grid:has(> .target-variant:first-child:nth-last-child(4)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* html already reserves 90px for the sticky navigation. */
#reticle-specification { scroll-margin-top:24px; }
.category-project-brief .category-partnership-intro { text-align:left; max-width:800px; }
.category-project-brief .category-partnership-intro h2 { margin-left:0; }
.category-project-brief .category-partnership-intro p { color:var(--ink,#202124); }
@media(max-width:800px) { .product-context-link { width:calc(100% - 36px); } }
@media(max-width:760px) {
  .reticle-product-page .reticle-hero-overview { grid-template-columns:1fr; gap:24px; }
  .reticle-product-page .reticle-hero-overview .detail-product-figure { order:-1; max-width:280px !important; }
  .reticle-product-page .reticle-hero-overview .editorial-copy > p { font-size:18px; }
}

/* Shared editorial content follows the established v1 reading width. */
.editorial-notes{padding-block:48px}.editorial-notes h2{margin:0 0 22px}.editorial-prose{max-width:1000px}.editorial-prose p{max-width:none;text-align:left}.editorial-prose h3{font-size:clamp(19px,2vw,24px);line-height:1.35;margin:30px 0 12px}.editorial-reading{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px}.editorial-reading a{color:var(--blue,#005eb8);text-decoration:underline;text-underline-offset:4px}@media(max-width:600px){.editorial-notes{padding-block:32px}.editorial-reading{display:grid;gap:16px}}

.editorial-figure{margin:32px 0 0;max-width:900px}.editorial-figure img{display:block;width:100%;height:auto}.editorial-figure figcaption{margin-top:14px;font-size:15px;line-height:1.5}
