/* =============================================
   AINNA BIO-DIGITAL — Computational Life Sciences Laboratory
   Namespace: .ainna-bio-digital-page / .bd-*
   ============================================= */
.ainna-bio-digital-page {
  --bd-black: #080c14;
  --bd-navy: #0a0f1a;
  --bd-navy-2: #0e1525;
  --bd-graphite: #111827;
  --bd-graphite-2: #1a2234;
  --bd-titanium: #243044;
  --bd-lab-white: #f0f4f8;
  --bd-cyan: #00d4ff;
  --bd-cyan-soft: rgba(0,212,255,0.10);
  --bd-teal: #00bfa5;
  --bd-teal-soft: rgba(0,191,165,0.10);
  --bd-violet: #7c4dff;
  --bd-violet-soft: rgba(124,77,255,0.10);
  --bd-amber: #ff9100;
  --bd-amber-soft: rgba(255,145,0,0.10);
  --bd-red: #ff1744;
  --bd-red-soft: rgba(255,23,68,0.10);
  --bd-green: #00e676;
  --bd-green-soft: rgba(0,230,118,0.10);
  --bd-text: #e2e8f0;
  --bd-text-2: #b0bcd0;
  --bd-muted: #7a8aa0;
  --bd-muted-2: #5a6878;
  --bd-line: rgba(255,255,255,0.06);
  --bd-line-2: rgba(255,255,255,0.03);
  --bd-card: rgba(8,12,20,0.95);
  --bd-card-2: rgba(14,21,37,0.92);
  --bd-grad: linear-gradient(135deg, #00d4ff 0%, #7c4dff 100%);
  --bd-grad-bio: linear-gradient(135deg, #00bfa5 0%, #00d4ff 50%, #7c4dff 100%);
  --bd-r: 10px;
  --bd-r-2: 6px;
  --bd-shadow: 0 2px 16px rgba(0,0,0,0.45);
  font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  font-size: 15px; line-height: 1.6; color: var(--bd-text);
  background: var(--bd-black); -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility; overflow-x: hidden; padding-top: 56px;
}
/* ── Light Theme ── */
html[data-theme="light"] .ainna-bio-digital-page,
html[data-theme="day"] .ainna-bio-digital-page {
  --bd-black: #f5f7fa;
  --bd-navy: #e8ecf1;
  --bd-navy-2: #dee3ea;
  --bd-graphite: #d5dbe3;
  --bd-graphite-2: #c8d0da;
  --bd-titanium: #b8c2ce;
  --bd-lab-white: #ffffff;
  --bd-cyan: #0099cc;
  --bd-cyan-soft: rgba(0,153,204,0.10);
  --bd-teal: #00897b;
  --bd-teal-soft: rgba(0,137,123,0.10);
  --bd-violet: #6a3de8;
  --bd-violet-soft: rgba(106,61,232,0.10);
  --bd-amber: #e67a00;
  --bd-amber-soft: rgba(230,122,0,0.10);
  --bd-red: #d32f2f;
  --bd-red-soft: rgba(211,47,47,0.10);
  --bd-green: #00a865;
  --bd-green-soft: rgba(0,168,101,0.10);
  --bd-text: #1a1a2e;
  --bd-text-2: #3d4a5c;
  --bd-muted: #6b7a8d;
  --bd-muted-2: #8a99aa;
  --bd-line: rgba(0,0,0,0.08);
  --bd-line-2: rgba(0,0,0,0.04);
  --bd-card: rgba(255,255,255,0.95);
  --bd-card-2: rgba(240,244,248,0.92);
  --bd-shadow: 0 2px 16px rgba(0,0,0,0.10);
  background: #f5f7fa;
  color: #1a1a2e;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-sticky {
  background: rgba(245,247,250,0.94);
  border-bottom-color: rgba(0,0,0,0.08);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-sticky a {
  color: #3d4a5c;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-sticky a:hover {
  color: #0099cc;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-hero-shade {
  background: linear-gradient(180deg, rgba(245,247,250,0.3), rgba(245,247,250,0.7) 46%, rgba(245,247,250,0.95));
}
html[data-theme="light"] .ainna-bio-digital-page .bd-card {
  background: rgba(255,255,255,0.95);
  border-color: rgba(0,0,0,0.08);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-stat-value {
  color: #1a1a2e;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-stat-label {
  color: #6b7a8d;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-section-title {
  color: #1a1a2e;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-section-sub {
  color: #3d4a5c;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-arch-step {
  background: rgba(255,255,255,0.95);
  border-color: rgba(0,0,0,0.08);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-arch-step-title {
  color: #1a1a2e;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-arch-step-desc {
  color: #3d4a5c;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-footer {
  background: #e8ecf1;
  border-top-color: rgba(0,0,0,0.08);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-footer a {
  color: #3d4a5c;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-footer a:hover {
  color: #0099cc;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-burger {
  color: #1a1a2e;
  border-color: rgba(0,0,0,0.12);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-mobile-menu {
  background: rgba(245,247,250,0.98);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-mobile-menu a {
  color: #1a1a2e;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-mobile-menu a:hover {
  background: rgba(0,0,0,0.04);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-mobile-backdrop {
  background: rgba(0,0,0,0.3);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-disclaimer {
  color: #8a99aa;
  border-top-color: rgba(0,0,0,0.08);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-note {
  color: #6b7a8d;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-sub {
  color: #3d4a5c;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-btn-ghost {
  color: #3d4a5c;
  border-color: rgba(0,0,0,0.08);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-btn-ghost:hover {
  background: rgba(0,0,0,0.04);
  color: #1a1a2e;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-btn-outline {
  color: #0099cc;
  border-color: #0099cc;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-btn-outline:hover {
  background: rgba(0,153,204,0.10);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-hero-grid {
  background-image:
    linear-gradient(rgba(0,0,0,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,0.04) 1px, transparent 1px);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-hero-video iframe {
  filter: brightness(0.9) saturate(0.8) contrast(1.0);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-hero-shade {
  background:
    linear-gradient(180deg, rgba(245,247,250,0.2), rgba(245,247,250,0.5) 46%, rgba(245,247,250,0.95)),
    radial-gradient(ellipse 80% 60% at 50% 40%, rgba(0,153,204,0.04) 0%, transparent 70%);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-cta-section {
  background: linear-gradient(135deg, #e8ecf1, #dee3ea);
}
html[data-theme="light"] .ainna-bio-digital-page .bd-cta-section .bd-section-title {
  color: #1a1a2e;
}
html[data-theme="light"] .ainna-bio-digital-page .bd-cta-section .bd-section-sub {
  color: #3d4a5c;
}

.ainna-bio-digital-page * { box-sizing: border-box; }
.ainna-bio-digital-page img { max-width: 100%; height: auto; display: block; }
.ainna-bio-digital-page a { color: var(--bd-cyan); text-decoration: none; }
.ainna-bio-digital-page a:hover { text-decoration: underline; }

/* ── Typography ── */
.bd-kicker { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--bd-cyan); margin-bottom: 10px; }
.bd-kicker::before { content: ''; width: 20px; height: 2px; background: var(--bd-cyan); border-radius: 1px; }
.bd-kicker--teal { color: var(--bd-teal); } .bd-kicker--teal::before { background: var(--bd-teal); }
.bd-kicker--violet { color: var(--bd-violet); } .bd-kicker--violet::before { background: var(--bd-violet); }
.bd-kicker--amber { color: var(--bd-amber); } .bd-kicker--amber::before { background: var(--bd-amber); }
.bd-kicker--red { color: var(--bd-red); } .bd-kicker--red::before { background: var(--bd-red); }
.bd-kicker--green { color: var(--bd-green); } .bd-kicker--green::before { background: var(--bd-green); }
.bd-h1 { font-size: clamp(28px,4.5vw,52px); font-weight: 800; line-height: 1.12; margin: 0 0 16px; letter-spacing: -0.02em; }
.bd-h2 { font-size: clamp(22px,3vw,32px); font-weight: 700; line-height: 1.2; margin: 0 0 12px; letter-spacing: -0.01em; }
.bd-h3 { font-size: 18px; font-weight: 600; margin: 0 0 10px; }
.bd-sub { font-size: 16px; color: var(--bd-text-2); margin: 0 0 8px; line-height: 1.55; max-width: 680px; }
.bd-note { font-size: 12.5px; color: var(--bd-muted); line-height: 1.55; max-width: 620px; margin-top: 10px; }
.bd-disclaimer { font-size: 11.5px; color: var(--bd-muted-2); border-top: 1px solid var(--bd-line); padding-top: 12px; margin-top: 16px; line-height: 1.5; }
.bd-accent { color: var(--bd-cyan); }
.bd-accent-grad { background: var(--bd-grad); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* ── Buttons ── */
.bd-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 22px; border-radius: var(--bd-r-2); border: 1px solid transparent; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s; text-decoration: none; }
.bd-btn:focus-visible { outline: 2px solid var(--bd-cyan); outline-offset: 2px; }
.bd-btn-primary { background: var(--bd-grad); color: #fff; }
.bd-btn-primary:hover { box-shadow: 0 4px 18px rgba(0,212,255,0.3); text-decoration: none; }
.bd-btn-outline { background: transparent; color: var(--bd-cyan); border-color: var(--bd-cyan); }
.bd-btn-outline:hover { background: var(--bd-cyan-soft); text-decoration: none; }
.bd-btn-sm { padding: 7px 14px; font-size: 12px; }
.bd-btn-ghost { background: transparent; color: var(--bd-text-2); border-color: var(--bd-line); }
.bd-btn-ghost:hover { background: var(--bd-line-2); color: var(--bd-text); }
.bd-btn-ghost.bd-on { background: var(--bd-cyan-soft); color: var(--bd-cyan); border-color: var(--bd-cyan); }
.bd-btn-teal { background: var(--bd-teal-soft); color: var(--bd-teal); border-color: rgba(0,191,165,0.3); }
.bd-btn-amber { background: var(--bd-amber-soft); color: var(--bd-amber); border-color: rgba(255,145,0,0.3); }
.bd-btn-red { background: var(--bd-red-soft); color: var(--bd-red); border-color: rgba(255,23,68,0.3); }
.bd-btn-green { background: var(--bd-green-soft); color: var(--bd-green); border-color: rgba(0,230,118,0.3); }
.bd-btn-violet { background: var(--bd-violet-soft); color: var(--bd-violet); border-color: rgba(124,77,255,0.3); }

/* ── Chips ── */
.bd-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 20px; border: 1px solid var(--bd-line); background: var(--bd-card-2); color: var(--bd-text-2); font-size: 12px; font-weight: 500; cursor: pointer; transition: all 0.2s; user-select: none; }
.bd-chip:hover { background: var(--bd-graphite-2); border-color: rgba(255,255,255,0.12); }
.bd-chip.bd-on { background: var(--bd-cyan-soft); color: var(--bd-cyan); border-color: var(--bd-cyan); }
.bd-chip.bd-on-teal { background: var(--bd-teal-soft); color: var(--bd-teal); border-color: var(--bd-teal); }

/* ── Cards ── */
.bd-card { background: var(--bd-card); border: 1px solid var(--bd-line); border-radius: var(--bd-r); padding: 20px; transition: border-color 0.25s, box-shadow 0.25s; }
.bd-card:hover { border-color: rgba(255,255,255,0.1); box-shadow: var(--bd-shadow); }
.bd-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }

/* ── Layout ── */
.bd-section { padding: 72px 5%; max-width: 1200px; margin: 0 auto; }
.bd-section--wide { max-width: 1400px; }
.bd-section--narrow { max-width: 860px; }
.bd-divider { border: none; border-top: 1px solid var(--bd-line); margin: 0; }
.bd-sim-label { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bd-green); background: var(--bd-green-soft); padding: 4px 10px; border-radius: 20px; margin-bottom: 12px; }
.bd-sim-label::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--bd-green); animation: bd-blink 1.6s infinite; }
@keyframes bd-blink { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }
.bd-global-disclaimer { background: var(--bd-amber-soft); border: 1px solid rgba(255,145,0,0.2); border-radius: var(--bd-r-2); padding: 14px 18px; margin-bottom: 32px; font-size: 12.5px; color: var(--bd-amber); line-height: 1.55; }

/* ── Skip Link ── */
.bd-skip { position: absolute; left: -9999px; top: 0; background: var(--bd-cyan); color: #000; padding: 8px 16px; z-index: 1000; font-weight: 600; border-radius: 0 0 6px 0; }
.bd-skip:focus { left: 0; }

/* ── Sticky Nav ── */
.bd-sticky { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 12px 4%; background: rgba(8,12,20,0.85); backdrop-filter: blur(14px); border-bottom: 1px solid transparent; transition: background 0.3s, border-color 0.3s, padding 0.3s; }
.bd-sticky.bd-solid { background: rgba(8,12,20,0.97); border-bottom-color: var(--bd-line); padding: 8px 4%; }
.bd-sticky-brand { font-size: 15px; font-weight: 800; color: var(--bd-text); text-decoration: none; letter-spacing: -0.01em; }
.bd-sticky-brand span { color: var(--bd-cyan); margin-left: 4px; }
.bd-sticky-nav { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.bd-sticky-nav::-webkit-scrollbar { display: none; }
.bd-sticky-nav a { font-size: 12px; color: var(--bd-muted); text-decoration: none; padding: 6px 10px; border-radius: 4px; white-space: nowrap; transition: color 0.2s, background 0.2s; }
.bd-sticky-nav a:hover { color: var(--bd-text); background: var(--bd-line-2); text-decoration: none; }
.bd-sticky-nav a.bd-active { color: var(--bd-cyan); background: var(--bd-cyan-soft); }
.bd-sticky-right { display: flex; align-items: center; gap: 10px; }
.bd-burger { display: none; background: none; border: none; color: var(--bd-text); font-size: 22px; cursor: pointer; padding: 4px 8px; }

/* ── Mobile Menu ── */
.bd-mobile-menu { display: none; position: fixed; top: 0; right: -280px; width: 270px; height: 100vh; background: var(--bd-navy); border-left: 1px solid var(--bd-line); z-index: 200; padding: 60px 20px 20px; overflow-y: auto; transition: right 0.3s ease; }
.bd-mobile-menu.bd-open { right: 0; }
.bd-mobile-menu a { display: block; padding: 10px 0; color: var(--bd-text-2); font-size: 14px; text-decoration: none; border-bottom: 1px solid var(--bd-line-2); }
.bd-mobile-menu a:hover { color: var(--bd-cyan); text-decoration: none; }
.bd-mobile-close { position: absolute; top: 14px; right: 14px; background: none; border: none; color: var(--bd-text); font-size: 24px; cursor: pointer; }
.bd-mobile-menu-backdrop { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: -1; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; }
.bd-mobile-menu.bd-open .bd-mobile-menu-backdrop { opacity: 1; pointer-events: auto; }

/* ── Hero ── */
.bd-hero { position: relative; min-height: 82vh; display: flex; align-items: center; justify-content: center; text-align: center; padding: 100px 5% 50px; overflow: hidden; }
.bd-hero-bg { position: absolute; inset: 0; z-index: 0; }
.bd-hero-canvas-wrap { position: absolute; inset: 0; }
.bd-hero-canvas-wrap canvas { width: 100%; height: 100%; }
.bd-hero-content { position: relative; z-index: 2; max-width: 720px; }
.bd-hero-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 16px; border-radius: 20px; border: 1px solid rgba(0,212,255,0.25); background: rgba(0,212,255,0.08); color: var(--bd-cyan); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 20px; }
.bd-hero h1 { font-size: clamp(30px,5vw,56px); font-weight: 800; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.025em; }
.bd-hero p { font-size: 17px; color: var(--bd-text-2); line-height: 1.6; max-width: 580px; margin: 0 auto 28px; }
.bd-hero-status { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 28px; }
.bd-hero-status-item { font-size: 11px; display: flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 20px; background: var(--bd-card-2); border: 1px solid var(--bd-line); }
.bd-hero-status-dot { width: 6px; height: 6px; border-radius: 50%; }
.bd-hero-buttons { display: flex; justify-content: center; gap: 12px; margin-top: 24px; flex-wrap: wrap; }

/* ── Section Header ── */
.bd-section-head { margin-bottom: 36px; }

/* ── Research Universe ── */
.bd-universe-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.bd-universe-card { background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); padding: 16px; cursor: pointer; transition: border-color 0.25s, transform 0.2s; text-align: center; }
.bd-universe-card:hover { border-color: rgba(0,212,255,0.3); transform: translateY(-2px); }
.bd-universe-card.bd-active { border-color: var(--bd-cyan); background: rgba(0,212,255,0.05); }
.bd-universe-icon { font-size: 24px; margin-bottom: 8px; }
.bd-universe-name { font-size: 13px; font-weight: 600; }
.bd-universe-detail { margin-top: 16px; padding: 18px; background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); }
.bd-universe-detail h4 { margin: 0 0 10px; font-size: 15px; }
.bd-universe-detail-row { display: flex; gap: 8px; margin-bottom: 6px; font-size: 12.5px; }
.bd-universe-detail-label { color: var(--bd-muted); min-width: 120px; }
.bd-universe-detail-val { color: var(--bd-text-2); }

/* ── Interactive Demos ── */
.bd-demo { background: var(--bd-card); border: 1px solid var(--bd-line); border-radius: var(--bd-r); padding: 24px; margin: 24px 0; position: relative; overflow: hidden; }
.bd-demo-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; gap: 10px; }
.bd-demo-title { font-size: 15px; font-weight: 600; }
.bd-demo-controls { display: flex; gap: 8px; flex-wrap: wrap; }

/* ── Router Demo ── */
.bd-router-output { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.bd-router-step { display: flex; align-items: flex-start; gap: 12px; padding: 10px 14px; background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); font-size: 13px; opacity: 0; transform: translateY(8px); transition: opacity 0.3s, transform 0.3s; }
.bd-router-step.bd-show { opacity: 1; transform: translateY(0); }
.bd-router-step-num { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.bd-router-step-label { color: var(--bd-muted); min-width: 140px; font-size: 12px; }
.bd-router-step-val { color: var(--bd-text); font-weight: 500; }

/* ── Pipeline Demo ── */
.bd-pipeline-stages { display: flex; flex-direction: column; gap: 0; margin: 16px 0; }
.bd-pipeline-stage { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--bd-card-2); border: 1px solid var(--bd-line); font-size: 13px; transition: border-color 0.3s, background 0.3s; }
.bd-pipeline-stage:first-child { border-radius: var(--bd-r-2) var(--bd-r-2) 0 0; }
.bd-pipeline-stage:last-child { border-radius: 0 0 var(--bd-r-2) var(--bd-r-2); }
.bd-pipeline-stage + .bd-pipeline-stage { border-top: none; }
.bd-pipeline-stage.bd-stage-active { border-color: var(--bd-cyan); background: rgba(0,212,255,0.04); }
.bd-pipeline-stage.bd-stage-done { border-color: var(--bd-green); background: rgba(0,230,118,0.04); }
.bd-pipeline-stage.bd-stage-fail { border-color: var(--bd-red); background: rgba(255,23,68,0.04); }
.bd-pipeline-stage-icon { width: 28px; text-align: center; flex-shrink: 0; }
.bd-pipeline-stage-name { flex: 1; font-weight: 500; }
.bd-pipeline-stage-status { font-size: 11px; font-weight: 600; }

/* ── Sequence Explorer ── */
.bd-sequence-track { font-family: 'SF Mono', 'Fira Code', monospace; font-size: 13px; letter-spacing: 2px; padding: 10px 14px; background: var(--bd-black); border: 1px solid var(--bd-line-2); border-radius: var(--bd-r-2); overflow-x: auto; white-space: nowrap; line-height: 1.8; }
.bd-seq-match { color: var(--bd-green); }
.bd-seq-mismatch { color: var(--bd-red); font-weight: 700; }
.bd-seq-gap { color: var(--bd-muted-2); }
.bd-seq-info { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; font-size: 12px; color: var(--bd-muted); }
.bd-seq-info span { display: flex; align-items: center; gap: 4px; }
.bd-seq-bar { height: 6px; border-radius: 3px; background: var(--bd-line); overflow: hidden; margin-top: 12px; }
.bd-seq-bar-fill { height: 100%; border-radius: 3px; transition: width 0.4s; }

/* ── Quality Lab ── */
.bd-quality-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.bd-quality-metric { background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); padding: 14px; text-align: center; }
.bd-quality-metric-val { font-size: 22px; font-weight: 700; }
.bd-quality-metric-label { font-size: 11px; color: var(--bd-muted); margin-top: 2px; }
.bd-quality-result { margin-top: 16px; padding: 14px; border-radius: var(--bd-r-2); border: 1px solid; font-size: 13px; font-weight: 600; text-align: center; }

/* ── Provenance / Traceability ── */
.bd-trace-chain { display: flex; flex-direction: column; gap: 0; margin: 16px 0; }
.bd-trace-node { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--bd-card-2); border: 1px solid var(--bd-line); position: relative; font-size: 13px; transition: border-color 0.3s, background 0.3s; }
.bd-trace-node:first-child { border-radius: var(--bd-r-2) var(--bd-r-2) 0 0; }
.bd-trace-node:last-child { border-radius: 0 0 var(--bd-r-2) var(--bd-r-2); }
.bd-trace-node + .bd-trace-node { border-top: none; }
.bd-trace-node.bd-trace-ok { border-left: 3px solid var(--bd-green); }
.bd-trace-node.bd-trace-warn { border-left: 3px solid var(--bd-amber); }
.bd-trace-node.bd-trace-fail { border-left: 3px solid var(--bd-red); }
.bd-trace-icon { width: 24px; text-align: center; flex-shrink: 0; }
.bd-trace-label { flex: 1; }
.bd-trace-status { font-size: 11px; font-weight: 600; }

/* ── Microbial Explorer ── */
.bd-micro-bars { display: flex; flex-direction: column; gap: 6px; margin: 16px 0; }
.bd-micro-bar { display: flex; align-items: center; gap: 10px; font-size: 12px; }
.bd-micro-bar-name { min-width: 100px; color: var(--bd-text-2); text-align: right; }
.bd-micro-bar-track { flex: 1; height: 16px; background: var(--bd-line-2); border-radius: 3px; overflow: hidden; }
.bd-micro-bar-fill { height: 100%; border-radius: 3px; transition: width 0.5s; display: flex; align-items: center; padding-left: 6px; font-size: 10px; font-weight: 600; color: #000; }

/* ── Literature / Evidence ── */
.bd-evidence-list { display: flex; flex-direction: column; gap: 10px; }
.bd-evidence-item { display: flex; gap: 12px; padding: 12px; background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); font-size: 12.5px; }
.bd-evidence-type { padding: 3px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.bd-evidence-body { flex: 1; }
.bd-evidence-title { font-weight: 600; margin-bottom: 3px; }
.bd-evidence-meta { color: var(--bd-muted); font-size: 11px; }

/* ── Statistics Lab ── */
.bd-stat-chart { width: 100%; height: 200px; background: var(--bd-black); border-radius: var(--bd-r-2); border: 1px solid var(--bd-line-2); }
.bd-stat-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-top: 16px; }
.bd-stat-metric { background: var(--bd-card-2); border-radius: var(--bd-r-2); padding: 12px; text-align: center; }
.bd-stat-metric-val { font-size: 20px; font-weight: 700; }
.bd-stat-metric-label { font-size: 11px; color: var(--bd-muted); margin-top: 2px; }

/* ── Reproducibility ── */
.bd-repro-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin: 16px 0; }
.bd-repro-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); font-size: 12.5px; cursor: pointer; transition: border-color 0.2s; }
.bd-repro-item:hover { border-color: rgba(255,255,255,0.12); }
.bd-repro-item.bd-missing { opacity: 0.5; border-style: dashed; }
.bd-repro-check { width: 18px; height: 18px; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; }

/* ── Digital Twin ── */
.bd-twin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.bd-twin-panel { background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); padding: 14px; }
.bd-twin-panel-title { font-size: 12px; font-weight: 600; color: var(--bd-text-2); margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.bd-twin-val { font-size: 18px; font-weight: 700; }
.bd-twin-bar { height: 4px; border-radius: 2px; background: var(--bd-line); margin-top: 8px; overflow: hidden; }
.bd-twin-bar-fill { height: 100%; border-radius: 2px; transition: width 0.4s; }

/* ── Validation Layers ── */
.bd-val-stack { display: flex; flex-direction: column; gap: 0; margin: 16px 0; }
.bd-val-layer { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 1px solid var(--bd-line); background: var(--bd-card-2); font-size: 13px; transition: border-color 0.3s, background 0.3s; }
.bd-val-layer:first-child { border-radius: var(--bd-r-2) var(--bd-r-2) 0 0; }
.bd-val-layer:last-child { border-radius: 0 0 var(--bd-r-2) var(--bd-r-2); }
.bd-val-layer + .bd-val-layer { border-top: none; }
.bd-val-layer.bd-val-pass { border-left: 3px solid var(--bd-green); }
.bd-val-layer.bd-val-warn { border-left: 3px solid var(--bd-amber); }
.bd-val-layer.bd-val-fail { border-left: 3px solid var(--bd-red); }
.bd-val-layer.bd-val-block { border-left: 3px solid var(--bd-red); background: rgba(255,23,68,0.04); }
.bd-val-check { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; }
.bd-val-name { flex: 1; font-weight: 500; }
.bd-val-status { font-size: 11px; font-weight: 600; }

/* ── Governance Flow ── */
.bd-gov-flow { display: flex; flex-direction: column; gap: 0; margin: 16px 0; }
.bd-gov-step { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--bd-card-2); border: 1px solid var(--bd-line); font-size: 13px; transition: all 0.3s; }
.bd-gov-step:first-child { border-radius: var(--bd-r-2) var(--bd-r-2) 0 0; }
.bd-gov-step:last-child { border-radius: 0 0 var(--bd-r-2) var(--bd-r-2); }
.bd-gov-step + .bd-gov-step { border-top: none; }
.bd-gov-step.bd-gov-active { border-color: var(--bd-cyan); background: rgba(0,212,255,0.04); }
.bd-gov-step.bd-gov-done { border-color: var(--bd-green); }
.bd-gov-step.bd-gov-blocked { border-color: var(--bd-red); background: rgba(255,23,68,0.04); }
.bd-gov-icon { width: 24px; text-align: center; flex-shrink: 0; }
.bd-gov-label { flex: 1; }
.bd-gov-status { font-size: 11px; font-weight: 600; }

/* ── Operations Console ── */
.bd-console-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 16px; }
.bd-console-metric { background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); padding: 14px; text-align: center; }
.bd-console-metric-val { font-size: 24px; font-weight: 700; }
.bd-console-metric-label { font-size: 11px; color: var(--bd-muted); margin-top: 2px; }
.bd-console-log { max-height: 200px; overflow-y: auto; font-family: 'SF Mono', 'Fira Code', monospace; font-size: 11px; background: var(--bd-black); border: 1px solid var(--bd-line-2); border-radius: var(--bd-r-2); padding: 12px; }
.bd-console-log div { padding: 2px 0; border-bottom: 1px solid var(--bd-line-2); }
.bd-log-info { color: var(--bd-cyan); }
.bd-log-success { color: var(--bd-green); }
.bd-log-warn { color: var(--bd-amber); }
.bd-log-error { color: var(--bd-red); }

/* ── Architecture ── */
.bd-arch-layers { display: flex; flex-direction: column; gap: 14px; margin: 24px 0; }
.bd-arch-layer { padding: 18px; background: var(--bd-card-2); border: 1px solid var(--bd-line); border-radius: var(--bd-r-2); cursor: pointer; transition: border-color 0.25s; }
.bd-arch-layer:hover { border-color: rgba(0,212,255,0.25); }
.bd-arch-layer.bd-open { border-color: var(--bd-cyan); }
.bd-arch-layer-title { font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.bd-arch-layer-body { display: none; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--bd-line); }
.bd-arch-layer.bd-open .bd-arch-layer-body { display: block; }
.bd-arch-item { display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 12.5px; color: var(--bd-text-2); }
.bd-arch-item::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--bd-cyan); flex-shrink: 0; }

/* ── Use Cases ── */
.bd-usecase-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.bd-usecase-card { background: var(--bd-card); border: 1px solid var(--bd-line); border-radius: var(--bd-r); padding: 20px; transition: border-color 0.25s, transform 0.2s; cursor: default; }
.bd-usecase-card:hover { border-color: rgba(0,212,255,0.3); transform: translateY(-2px); }
.bd-usecase-icon { font-size: 28px; margin-bottom: 12px; }
.bd-usecase-card b { font-size: 15px; font-weight: 600; margin: 0 0 6px; display: block; }
.bd-usecase-card p { font-size: 13px; color: var(--bd-text-2); margin: 0; line-height: 1.5; }
.bd-usecase-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.bd-usecase-tag { font-size: 10px; padding: 3px 8px; border-radius: 10px; background: var(--bd-line); color: var(--bd-muted); }

/* ── CTA ── */
.bd-cta { text-align: center; padding: 80px 5%; background: linear-gradient(180deg, var(--bd-black) 0%, rgba(0,212,255,0.03) 100%); }
.bd-cta h2 { font-size: clamp(24px,3.5vw,38px); font-weight: 800; margin: 0 0 16px; }
.bd-cta p { font-size: 16px; color: var(--bd-text-2); max-width: 560px; margin: 0 auto 28px; }
.bd-cta-buttons { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

/* ── Slider ── */
.bd-slider-group label { font-size: 12px; font-weight: 600; color: var(--bd-text-2); display: flex; justify-content: space-between; margin-bottom: 6px; }
.bd-slider-group label span { color: var(--bd-cyan); font-weight: 700; }
.bd-slider { width: 100%; -webkit-appearance: none; appearance: none; height: 6px; border-radius: 3px; background: var(--bd-navy-2); outline: none; }
.bd-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--bd-cyan); cursor: pointer; border: 2px solid var(--bd-black); }
.bd-slider::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--bd-cyan); cursor: pointer; border: 2px solid var(--bd-black); }

/* ── Scroll Reveal ── */
.bd-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.bd-reveal.bd-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .bd-reveal { opacity: 1; transform: none; transition: none; }
  .bd-hero-canvas-wrap canvas { animation: none !important; }
  .bd-sim-label::before { animation: none; }
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .bd-sticky-nav { display: none; }
  .bd-burger { display: block; }
  .bd-mobile-menu { display: block; }
  .bd-hero { min-height: 70vh; }
}
@media (max-width: 600px) {
  .bd-section { padding: 48px 4%; }
  .bd-hero { min-height: 65vh; padding: 80px 4% 30px; }
  .bd-card-grid { grid-template-columns: 1fr; }
  .bd-usecase-grid { grid-template-columns: 1fr; }
}
