/* Interactive laboratory: dark optical stage, warm paper, orange signals. */
.lab-hero { position:relative; isolation:isolate; overflow:hidden; background:#102720; color:#edf3e7; }
.lab-hero::before { content:''; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at 76% 38%,#315146 0,transparent 48%),linear-gradient(115deg,#10221d,#102720 60%,#1d342b); }
.lab-hero-grain { position:absolute; inset:0; pointer-events:none; opacity:.09; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.5' d='M0 0h160v160H0z'/%3E%3C/svg%3E"); }
.lab-hero-inner { position:relative; display:grid; grid-template-columns:1.08fr 1fr; column-gap:30px; padding-top:54px; }
.lab-hero-copy { position:relative; z-index:3; align-self:center; padding-bottom:38px; transform:translate3d(0,var(--copy-shift,0px),0); }
.lab-eyebrow { display:flex; align-items:center; gap:10px; font:10px/1.5 monospace; letter-spacing:.15em; color:#c2d0c3; margin-bottom:30px; }
.lab-eyebrow i { width:6px;height:6px;border-radius:50%;background:#ef8d38;box-shadow:0 0 0 5px #ed87331a; }
.lab-hero h1 { font-size:clamp(45px,5.6vw,80px);font-weight:500;line-height:1.055;letter-spacing:-.065em;margin:0 0 27px;color:#f0f3e8; }
.lab-hero h1 em { font-family:Georgia,serif;color:#ffa356;font-weight:400;letter-spacing:-.065em; }
.lab-hero-copy>p { color:#b4c5b9;font-size:15px;line-height:1.8;margin:0 0 30px; }
.lab-hero-actions { display:flex;align-items:center;justify-content:flex-start;gap:26px;flex-wrap:wrap; }
.lab-hero-actions .btn { border-radius:3px;padding:15px 21px;font-size:13px;box-shadow:none;gap:26px;background:#f6923d;color:#15241b;border:1px solid #f6923d; }
.lab-hero-actions .btn:hover { background:#ffae64;transform:translateY(-3px);box-shadow:0 8px 28px #ef7f1b24; }
.lab-hero-actions .btn span { transition:transform .3s; }.lab-hero-actions .btn:hover span { transform:translate(3px,-3px); }
.lab-secondary { color:#e8eee4;display:flex;gap:18px;font-size:12px;padding:12px 0;border-bottom:1px solid #b7c3b343; }
.lab-secondary:hover { color:#ffa356; }
.lab-signature { margin-top:55px;display:flex;flex-direction:column;gap:7px;font:10px monospace;letter-spacing:.16em;color:#c9d2c4; }
.lab-signature span { font:11px/1.5 var(--font-body,'Inter',sans-serif);letter-spacing:0;color:#94aa9b; }
.lab-display { position:relative;min-width:0;height:550px;align-self:center; }
.lab-display-grid { position:absolute;inset:0 0 60px;background-image:linear-gradient(#b7d1c30b 1px,transparent 1px),linear-gradient(90deg,#b7d1c30b 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse,#000,transparent 72%); }
.lab-display::before,.lab-display::after { content:'+';position:absolute;font:18px monospace;color:#99b5a74d; }.lab-display::before { top:40px;left:8px; }.lab-display::after { bottom:92px;right:0; }
.lab-orbit { position:absolute;pointer-events:none;left:50%;top:43%;width:95%;height:32%;border:1px solid #bcd7c82a;border-radius:50%;transform:translate(-50%,-50%) rotate(calc(-28deg + var(--orbit-rotation,0deg))); }
.lab-orbit::before { content:'';position:absolute;left:20%;top:3%;width:6px;height:6px;border-radius:50%;background:#e9a161;box-shadow:0 0 15px #eca67066; }
.lab-orbit-two { width:89%;height:65%;border-style:dashed;border-color:#c1d8c815;transform:translate(-50%,-50%) rotate(calc(38deg - var(--orbit-rotation,0deg))); }
.lab-orbit-two::before { background:#a6cab6;width:3px;height:3px; }
.lab-scene-number { position:absolute;right:6px;top:9px;font:10px monospace;letter-spacing:.1em;color:#839f8e; }
.lab-vial-stage { position:absolute;inset:0 0 57px;outline-offset:-5px;cursor:grab;touch-action:pan-y;z-index:2; }
.lab-vial-stage.is-dragging { cursor:grabbing; }.lab-vial-stage canvas { display:block;width:100%;height:100%; }
.lab-vial-poster { position:absolute;inset:0;z-index:2;display:block;overflow:hidden;pointer-events:none;transition:opacity .18s ease; }
/* The 3D camera keeps a fixed vertical field of view as the stage width changes.
   Scale its first-frame capture by height too, instead of stretching the vial. */
.lab-vial-poster img { position:absolute;top:0;left:50%;display:block;width:auto;height:100%;max-width:none;transform:translateX(-50%); }
.lab-vial-stage.is-ready .lab-vial-poster { opacity:0; }
.lab-vial-stage:not(.is-ready) { cursor:default; }.lab-vial-stage:not(.is-ready)>canvas { display:none; }
.lab-callout { position:absolute;z-index:3;display:flex;align-items:center;gap:10px;font-size:11px;color:#d7e3d8;pointer-events:none; }
.lab-callout small { display:block;font-size:9px;color:#9fb4a6;margin-top:5px; }
.lab-callout-rule { width:36px;height:1px;background:#b3cab960;position:relative; }.lab-callout-rule::before { content:'';position:absolute;width:4px;height:4px;border:1px solid #b3cab9;border-radius:50%;top:-2px; }
.lab-callout-cap { right:0;top:105px;transform:translateY(calc(-1 * var(--callout-spread,0px))); }
.lab-callout-glass { left:0;bottom:145px;transform:translateY(var(--callout-spread,0px)); }.lab-callout-glass .lab-callout-rule::before { right:0; }
.lab-object-caption { position:absolute;bottom:91px;left:50%;transform:translateX(-50%);text-align:center;display:flex;flex-direction:column;gap:6px;white-space:nowrap;pointer-events:none; }
.lab-object-caption>span:first-child { font:9px monospace;letter-spacing:.22em;color:#94b3a1; }.lab-object-caption>span:last-child { font-size:14px;letter-spacing:-.01em;color:#e0eadf; }
.lab-vial-controls { position:absolute;bottom:33px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:12px;z-index:5; }.lab-vial-controls[hidden] { display:none; }
.lab-vial-controls button { display:flex;align-items:center;gap:7px;background:transparent;border:0;color:#b3c4b8;font:10px 'Inter',sans-serif;padding:9px 11px;cursor:pointer;border-radius:30px;transition:background .2s,color .2s; }
.lab-vial-controls button:hover { color:#fff;background:#ffffff0c; }.lab-vial-controls button[aria-pressed=true] { background:#e1eadb;color:#142b20; }
.lab-finish-switch { display:flex;border:1px solid #b8cabc36;border-radius:30px;padding:3px; }.lab-finish-switch i { width:10px;height:10px;border-radius:50%;border:1px solid #819587; }.swatch-clear { background:#e2eae3; }.swatch-amber { background:#a7601a; }
.lab-vial-controls #lab-cap-toggle { border:1px solid #b8cabc36;border-radius:30px;padding:12px; }
.lab-interaction-hint { position:absolute;bottom:3px;width:100%;display:flex;justify-content:center;gap:17px;color:#8fa897;font-size:9px; }.lab-interaction-hint span:last-child { opacity:.72; }
.lab-hero-footer { grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #b6caba2c;margin-top:18px;padding:27px 0;gap:16px; }
.lab-scroll-cue { display:flex;align-items:center;gap:12px;font:9px monospace;letter-spacing:.12em;color:#c2d1c4; }
.lab-scroll-track { height:28px;width:14px;border:1px solid #a5bea15c;border-radius:12px;position:relative;overflow:hidden; }.lab-scroll-track i { position:absolute;width:2px;height:6px;background:#efa35f;left:5px;top:5px;animation:lab-scroll-dot 2s ease-in-out infinite; }
@keyframes lab-scroll-dot { 0%,100% { transform:translateY(0);opacity:.4; } 50% { transform:translateY(9px);opacity:1; } }
.lab-hero-footer p { margin:0;font-size:10px;color:#a4b8a9; }.lab-hero-footer p strong { font-size:17px;font-weight:500;color:#eef2e8;margin-right:5px; }.lab-hero-footer p>span { margin:0 20px;color:#61806c; }
.lab-motion-toggle { display:none;color:#c2d1c4;background:none;border:0;cursor:pointer;font-size:10px;padding:9px 0;gap:12px; }.lab-motion-ready .lab-motion-toggle { display:flex; }
.lab-motion-toggle:hover { color:#ffaf6d; }.motion-paused .lab-scroll-track i { animation:none; }
.lab-range-ribbon { background:var(--surface-apricot);color:var(--text-main);overflow:hidden;border-bottom:1px solid var(--border-color);padding:20px 0; }
.lab-range-track { display:flex;align-items:center;width:max-content;will-change:transform;font-size:clamp(20px,2.6vw,34px);line-height:1;letter-spacing:-.04em;font-weight:500;animation:lab-marquee 38s linear infinite;animation-play-state:paused; }
.lab-range-group { display:flex;align-items:center;gap:38px;padding-right:38px;flex-shrink:0;min-width:100vw; }
.lab-range-track i { color:#ba6730;font-size:32px;font-style:normal; }
.lab-range-track.is-visible { animation-play-state:running; }
.lab-motion-paused .lab-range-track { animation-play-state:paused; }
@keyframes lab-marquee { to { transform:translate3d(-50%,0,0); } }
.lab-navigator-section { padding:110px 0;background:var(--surface-mist);scroll-margin-top:85px; }
.lab-navigator-section>.container { display:grid;grid-template-columns:.9fr 1.2fr;gap:90px;align-items:start; }
.lab-nav-header { position:sticky;top:140px; }.lab-nav-header .section-kicker { color:var(--brand-orange-text);font:10px monospace;letter-spacing:.15em; }
.lab-nav-header .section-title { font-size:clamp(32px,3.9vw,52px);line-height:1.1;margin:23px 0; }.lab-nav-header .section-subtitle { line-height:1.8;margin-bottom:34px; }
.workflow-readout { border-top:1px solid var(--border-color);padding-top:20px;font:10px/1.5 monospace;color:var(--text-muted); }
.workflow-grid { display:flex;flex-direction:column;border-top:1px solid var(--border-color);gap:0; }
.workflow-grid .workflow-card { position:relative;padding:28px 36px 28px 67px!important;min-height:156px;border:0;border-bottom:1px solid var(--border-color);transition:background .35s,color .3s,transform .35s; }
.workflow-grid .workflow-index { position:absolute;left:18px;top:30px;margin:0;color:var(--text-muted);font:11px monospace; }
.workflow-grid .workflow-card strong { font-size:21px;font-weight:500;letter-spacing:-.035em;margin-bottom:12px; }.workflow-grid .workflow-card span:last-child { font-size:12px;line-height:1.75;max-width:340px; }
.workflow-grid .workflow-card::after { content:'↗';display:block;position:absolute;right:19px;top:25px;background:none;width:auto;height:auto;font-size:21px;opacity:.4;transform:none; }
.workflow-grid .workflow-card.workflow-current { background:#dfe8d8;color:#24362a; }.workflow-grid .workflow-card.workflow-current span { color:#53624f; }
.workflow-grid .workflow-card:hover,.workflow-grid .workflow-card:focus-visible { background:var(--surface-apricot);color:var(--text-main);transform:translateX(5px); }.workflow-grid .workflow-card:hover span,.workflow-grid .workflow-card:focus-visible span { color:var(--text-muted); }
[data-theme=dark] .workflow-grid .workflow-card.workflow-current { background:#2d4234;color:#f3f3e8; }[data-theme=dark] .workflow-grid .workflow-card.workflow-current span { color:#c4d0c2; }
.categories-grid { perspective:1200px; }
.categories-grid .category-card { transition:transform .32s ease,background .25s;transform-origin:center;position:relative; }
.categories-grid .category-card.reveal.active { transform:rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); }
.categories-grid .category-card::after { content:attr(data-sequence);position:absolute;right:12px;top:11px;color:#7e887f;font:10px monospace;letter-spacing:.04em;pointer-events:none; }
.categories-grid .category-photo { border-radius:7px;transition:box-shadow .3s; }.categories-grid .category-card:hover .category-photo { box-shadow:0 15px 35px #18392714; }
.categories-grid .category-link { position:relative; }.categories-grid .category-link::after { content:'';position:absolute;height:2px;bottom:-1px;left:0;width:100%;background:#e68735;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1); }.categories-grid .category-card:hover .category-link::after { transform:scaleX(1); }
.lab-motion-paused .category-card { --card-shift:0px!important;--card-rx:0deg!important;--card-ry:0deg!important; }
.lab-motion-paused .reveal { transition:none!important; }
@media(min-width:1450px) { .lab-display { height:620px; }.lab-hero-inner { padding-top:65px; } }
@media(max-width:1050px) { .lab-hero-inner { gap:12px; }.lab-display { height:510px; }.lab-hero h1 { font-size:clamp(42px,5.5vw,62px); }.lab-hero-copy>p { font-size:13px; }.lab-hero-actions { gap:18px; }.lab-hero-actions .btn { padding:13px 16px;gap:15px; }.lab-signature { margin-top:40px; }.lab-callout-rule { width:18px; }.lab-callout { font-size:9px; }.lab-callout small { font-size:8px; }.lab-callout-cap { right:-2px;top:82px; }.lab-callout-glass { left:-5px;bottom:155px; }.lab-navigator-section>.container { gap:35px; }.lab-navigator-section { padding:80px 0; } }
@media(max-width:720px) { .lab-hero-inner { display:flex;flex-direction:column;padding-top:38px; }.lab-hero-copy { align-self:stretch;padding:0; }.lab-eyebrow { font-size:9px;margin-bottom:23px; }.lab-hero h1 { font-size:clamp(44px,8.6vw,62px);margin-bottom:22px; }.lab-hero-copy>p { font-size:13px;margin-bottom:23px; }.lab-hero-actions { gap:24px; }.lab-secondary { font-size:11px; }.lab-signature { display:none; }.lab-display { align-self:stretch;height:465px;margin-top:12px; }.lab-vial-stage { inset:0 0 57px; }.lab-callout-cap { right:4%;top:95px; }.lab-callout-glass { left:4%;bottom:160px; }.lab-callout { font-size:10px; }.lab-callout small { font-size:9px; }.lab-hero-footer { width:100%;margin-top:14px;padding:20px 0; }.lab-hero-footer p { display:none; }.lab-range-ribbon { padding:18px 0; }.lab-navigator-section>.container { grid-template-columns:1fr;gap:24px; }.lab-nav-header { position:static; }.lab-nav-header .section-title { max-width:340px;font-size:40px; }.lab-nav-header .section-subtitle { margin-bottom:20px; }.workflow-readout { display:none; }.lab-navigator-section { padding:60px 0; }.workflow-grid .workflow-card { min-height:147px; }.lab-hero-copy { transform:none; } }
@media(prefers-reduced-motion:reduce) { .lab-scroll-track i { animation:none; }.lab-hero-copy,.lab-callout,.lab-orbit,.lab-range-track,.categories-grid .category-card { transition:none!important; }.lab-hero-copy,.lab-callout { transform:none!important; }.categories-grid .category-card.reveal.active { transform:none; } }

/* Supporting copy remains legible at laptop and phone widths. */
.lab-hero-copy>p { font-size:18px;line-height:1.75;color:#c5d3c8; }
.workflow-grid .workflow-card span:last-child { font-size:15px;line-height:1.7;max-width:390px; }
.lab-secondary { font-size:14px; }
.lab-signature { font-size:12px; }
.lab-interaction-hint { font-size:11px; }
.lab-vial-controls button { font-size:12px; }
.lab-hero-footer p { font-size:12px; }
@media(max-width:720px) {
  .lab-hero-copy>p { font-size:16px; }
  .lab-hero-actions { gap:12px; }
  .lab-secondary { font-size:13px;gap:10px; }
  .lab-interaction-hint { font-size:10px;gap:12px; }
}
@media(max-width:720px) {
  .lab-vial-controls { gap:8px; }
  .lab-vial-controls button { min-height:44px; }
}
