/* Traceability only: existing palette, type and spacing. No hero or explorer selectors. */
.traceability { --trace-gap:clamp(28px,4vw,56px); --trace-space:clamp(48px,5vw,72px); color:var(--ink); }
.traceability.home-traceability,.traceability#traceability { display:block; }
.home-traceability { background:var(--site-soft); padding-block:var(--trace-space); }
.traceability .trace-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:var(--trace-gap); align-items:center; }
.traceability .trace-intro { grid-column:2; grid-row:1; }
.traceability .trace-demo { grid-column:1; grid-row:1; min-width:0; }
.traceability .trace-label { font-size:13px; color:var(--site-muted); margin:0 0 18px; }
.traceability .trace-intro h2 { font-size:clamp(30px,2.7vw,40px); line-height:1.12; letter-spacing:-.035em; margin:0 0 24px; }
.traceability .trace-intro p:not(.trace-label) { font-size:16px; line-height:1.65; }
.traceability .trace-credit { display:block; font-size:13px; margin-top:24px; color:var(--site-muted); }
.traceability .trace-credit a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.traceability .trace-brand { display:inline-block; vertical-align:middle; margin-left:8px; }
.traceability .trace-brand img { display:block; width:149px; height:50px; object-fit:contain; mix-blend-mode:multiply; }
.traceability .trace-tabs { display:flex; gap:24px; border-bottom:1px solid var(--site-rule); margin-bottom:20px; }
.traceability .trace-tabs[hidden] { display:none; }
.traceability .trace-tab { font:inherit; font-size:16px; color:var(--site-muted); border:0; border-bottom:2px solid transparent; padding:12px 2px; background:none; cursor:pointer; min-height:48px; }
.traceability .trace-tab[aria-selected=true] { border-color:var(--site-accent-text); color:var(--ink); font-weight:600; }
.traceability .trace-tab:hover { color:var(--site-accent-text); }
.traceability :focus-visible { outline:2px solid var(--site-accent-text); outline-offset:4px; }
.traceability .trace-panel h3 { font-size:21px; margin:0 0 16px; }
.traceability .trace-panel { margin:0 0 32px; min-width:0; }
.traceability .trace-media { margin:0; }
.traceability .trace-frame { display:grid; position:relative; aspect-ratio:var(--trace-ratio,2680/1540); background:var(--paper); border:1px solid var(--site-rule); overflow:hidden; }
.traceability .trace-placeholder { grid-area:1/1; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:24px; gap:12px; }
.traceability .trace-placeholder span { font-size:clamp(18px,2vw,25px); line-height:1.3; max-width:24ch; }
.traceability .trace-placeholder small { font-size:13px; color:var(--site-muted); }
.traceability .trace-frame img { grid-area:1/1; display:block; width:100%; height:100%; min-height:0; object-fit:contain; opacity:0; }
.traceability .trace-frame img.is-loaded { opacity:1; }
.traceability .trace-frame [hidden] { display:none; }
.traceability figcaption { font-size:14px; line-height:1.55; color:var(--site-muted); padding-top:16px; }
.traceability .trace-attribution { display:block; font-size:12px; margin-top:8px; }
.traceability .trace-enlarge { display:inline-flex; align-items:center; min-height:44px; font-size:13px; color:var(--site-accent-text); text-decoration:underline; text-underline-offset:4px; }
.traceability .trace-report { max-width:760px; }
.traceability .trace-process { list-style:none; margin:0; padding:0; }
.traceability .trace-process li { padding:18px 0; border-top:1px solid var(--site-rule); }
.traceability .trace-process h3 { font-size:20px; margin:0 0 8px; }
.traceability .trace-process p { margin:0; font-size:16px; }
.traceability .trace-about-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:var(--trace-gap); margin-top:32px; align-items:start; }
.traceability .trace-value { margin-top:32px; max-width:68ch; }
.traceability .trace-limit { font-size:14px; color:var(--site-muted); }
.inner-content #traceability { scroll-margin-top:118px; }
.inner-content .installation-record-note { margin-top:24px; padding-top:20px; border-top:1px solid var(--site-rule); }
.inner-content .installation-record-note h3 { font-size:18px; margin:0 0 10px; }
.inner-content .installation-record-note p { font-size:15px; line-height:1.6; }
.trace-dialog { width:min(1200px,94vw); max-height:94svh; padding:20px; border:1px solid var(--site-rule); background:var(--paper); color:var(--ink); }
.trace-dialog::backdrop { background:#101820cc; }
.trace-dialog button { display:block; margin:0 0 16px auto; padding:10px 16px; background:none; color:inherit; border:1px solid var(--site-rule); min-height:44px; cursor:pointer; }
.trace-dialog img { display:block; max-width:100%; height:auto; margin:auto; }
.trace-dialog p { font-size:13px; }
.trace-dialog :focus-visible { outline:2px solid var(--site-accent-text); outline-offset:4px; }
@media(min-width:900px) {
 .traceability.is-ready .trace-panels { display:grid; }
 .traceability.is-ready .trace-panel { grid-area:1/1; margin:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity 200ms var(--ease-out),visibility 0s 200ms; }
 .traceability.is-ready .trace-panel.is-active { opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
 .traceability.is-ready .trace-panel h3 { display:none; }
 .traceability .trace-demo .trace-frame { aspect-ratio:16/10; }
}
@media(max-width:899px) {
 .traceability .trace-layout,.traceability .trace-about-grid { grid-template-columns:1fr; }
 .traceability .trace-intro,.traceability .trace-demo { grid-column:auto; grid-row:auto; }
 .traceability .trace-intro { max-width:65ch; }
 .traceability .trace-tabs { display:none; }
 .traceability .trace-panel { border-top:1px solid var(--site-rule); padding-top:24px; }
 .traceability .trace-panel:last-child { margin-bottom:0; }
}
@media(prefers-reduced-motion:reduce) { .traceability.is-ready .trace-panel { transition:none; } }
.reduced .traceability.is-ready .trace-panel { transition:none; }
