:root { --gear-color:#7c8971; }
:root[data-theme="dark"] { --gear-color:#b0bd9d; }
.lab-page .journal-shell { min-height:100svh; display:flex; flex-direction:column; }
.lab-page main { display:grid; place-items:center; flex:1; }
.lab-landing { text-align:center; width:100%; padding:52px 0 64px; }
.lab-landing>.eyebrow { margin:0 0 32px; }
.gear-stage { position:relative; width:clamp(220px,30vw,320px); aspect-ratio:1; margin:0 auto 30px; display:grid; place-items:center; }
.lab-status { display:flex; align-items:center; justify-content:center; gap:8px; margin:0 0 14px; font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); }
.lab-status span { width:5px; height:5px; border-radius:50%; background:var(--gear-color); }
.lab-landing h1 { margin:0 0 20px; font:400 clamp(44px,6vw,72px)/1.1 Georgia,'Times New Roman',serif; letter-spacing:-.05em; }
.lab-description { margin:0; font-size:16px; line-height:1.8; color:var(--muted); }
@media(max-width:600px) { .lab-landing { padding:36px 0 42px; } .lab-landing>.eyebrow { margin-bottom:24px; } .gear-stage { margin-bottom:24px; } }

.harmonic-drive { display:block; width:100%; height:100%; }
.drive-guide { fill:none; stroke:var(--line); stroke-width:1; }
.drive-guide-dashed { stroke-dasharray:3 4; }
.drive-ring { fill:var(--gear-color); }
.drive-bolts { fill:var(--paper); }
.drive-flex { fill:var(--accent); }
.drive-race { fill:none; stroke:var(--line); stroke-width:9; }
.drive-cam { fill:var(--panel); stroke:var(--gear-color); stroke-width:1.4; }
.drive-bearings { fill:var(--paper); stroke:var(--gear-color); stroke-width:1; }
.drive-spoke { fill:none; stroke:var(--gear-color); stroke-width:2; }
.drive-hub { fill:var(--paper); stroke:var(--gear-color); stroke-width:2; }
.drive-shaft { fill:var(--gear-color); }
.drive-marker { fill:var(--paper); }
