/* TVK Labs — Next-generation deep-tech design system
   Purpose: precision research laboratory interface, not generic SaaS marketing.
   This layer is progressive: semantic content remains readable without it. */

:root {
  --labs-bg: #06080d;
  --labs-bg-2: #0a0d14;
  --labs-bg-3: #0d121b;
  --labs-panel: rgba(255,255,255,.035);
  --labs-panel-strong: rgba(255,255,255,.055);
  --labs-line: rgba(164,190,255,.12);
  --labs-line-strong: rgba(164,190,255,.22);
  --labs-text: #f4f7ff;
  --labs-text-soft: #b5bfd1;
  --labs-muted: #7f8ca3;
  --labs-cyan: #5ce1ff;
  --labs-blue: #4a7dff;
  --labs-violet: #8b63ff;
  --labs-magenta: #d56cff;
  --labs-amber: #f3b85c;
  --labs-danger: #ff6b7a;
  --labs-radius: 18px;
  --labs-radius-lg: 28px;
  --labs-shadow: 0 24px 80px rgba(0,0,0,.38);
}

html { background: var(--labs-bg); }
body {
  color: var(--labs-text);
  background:
    radial-gradient(circle at 14% 0%, rgba(74,125,255,.12), transparent 28rem),
    radial-gradient(circle at 86% 8%, rgba(139,99,255,.09), transparent 30rem),
    linear-gradient(180deg, #07090f 0%, #080b12 45%, #06080d 100%);
  font-family: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
}
body::before {
  background:
    linear-gradient(rgba(119,152,217,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(119,152,217,.035) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.72), transparent 82%);
  opacity: .65;
}

::selection { background: rgba(92,225,255,.24); color: #fff; }

.container { width: min(1320px, calc(100% - 56px)); }

/* Header */
.site-header {
  background: rgba(6,8,13,.72);
  border-bottom: 1px solid rgba(164,190,255,.10);
  backdrop-filter: blur(22px) saturate(1.25);
}
.nav { min-height: 76px; }
.brand { color: var(--labs-text); }
.brand em { color: var(--labs-muted); }
.brand-mark {
  width: 46px !important;
  height: 46px !important;
  border-radius: 13px !important;
  border: 1px solid rgba(92,225,255,.2) !important;
  box-shadow: 0 0 0 1px rgba(74,125,255,.06), 0 10px 35px rgba(0,0,0,.35) !important;
  overflow: hidden;
  background: #081019 !important;
}
.brand-logo { width: 100%; height: 100%; object-fit: cover; }
.desktop-nav { color: var(--labs-muted); }
.desktop-nav a:not(.nav-cta) { border: 1px solid transparent; }
.desktop-nav a:not(.nav-cta):hover {
  color: var(--labs-text);
  background: rgba(255,255,255,.035);
  border-color: var(--labs-line);
}
.nav-cta {
  color: #061018;
  background: linear-gradient(135deg, var(--labs-cyan), #8af0ff 60%, #d8fbff);
  border: 1px solid rgba(255,255,255,.32);
  box-shadow: 0 10px 32px rgba(92,225,255,.14);
}
.nav-cta:hover { background: linear-gradient(135deg, #8beaff, #c6f8ff); }
.language-select,
.mobile-toggle {
  color: var(--labs-text);
  background: rgba(255,255,255,.035);
  border-color: var(--labs-line);
}
.mobile-toggle span { background: var(--labs-text); }
.mobile-menu {
  background: rgba(6,8,13,.98);
  border-color: var(--labs-line);
}
.mobile-menu a,
.mobile-menu label {
  color: var(--labs-text);
  background: rgba(255,255,255,.03);
  border-color: var(--labs-line);
}

/* Hero */
.lab-hero {
  min-height: min(920px, calc(100svh - 76px));
  background:
    radial-gradient(circle at 77% 42%, rgba(92,225,255,.08), transparent 25rem),
    radial-gradient(circle at 72% 52%, rgba(139,99,255,.10), transparent 34rem),
    linear-gradient(145deg, #05070b 0%, #09101a 47%, #080b13 100%);
  border-bottom: 1px solid var(--labs-line);
}
.hero-grid-bg {
  opacity: .72;
  background-image:
    linear-gradient(rgba(92,225,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(92,225,255,.035) 1px, transparent 1px),
    radial-gradient(circle at 50% 50%, rgba(92,225,255,.06) 0 1px, transparent 1.5px);
  background-size: 52px 52px, 52px 52px, 18px 18px;
  mask-image: radial-gradient(ellipse 85% 72% at 68% 44%, #000 16%, transparent 78%);
}
.lab-hero::before,
.lab-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.lab-hero::before {
  width: min(58vw, 760px);
  aspect-ratio: 1;
  right: -14%;
  top: -22%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74,125,255,.10), transparent 64%);
  filter: blur(20px);
}
.lab-hero::after {
  inset: auto 0 0;
  height: 180px;
  background: linear-gradient(to top, rgba(6,8,13,.95), transparent);
}
.hero-inner {
  grid-template-columns: minmax(0, 1.04fr) minmax(430px, .96fr);
  gap: clamp(34px, 6vw, 88px);
  padding: clamp(76px, 10vh, 124px) 0 clamp(92px, 12vh, 148px);
  z-index: 2;
}
.hero-content { position: relative; z-index: 4; }
.eyebrow {
  color: #c9d4e8;
  background: rgba(255,255,255,.025);
  border-color: var(--labs-line);
  border-radius: 8px;
  letter-spacing: .12em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}
.pulse {
  background: var(--labs-cyan);
  box-shadow: 0 0 0 4px rgba(92,225,255,.08), 0 0 18px rgba(92,225,255,.55);
}
.hero-content h1 {
  max-width: 850px;
  margin: 30px 0 22px;
  font-size: clamp(3.05rem, 6.8vw, 6.65rem);
  line-height: .91;
  letter-spacing: -.055em;
  font-weight: 650;
  text-wrap: balance;
  background: linear-gradient(118deg, #ffffff 8%, #dce7ff 48%, #9eb8ee 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero-subtitle {
  max-width: 680px;
  color: #d7e0f0;
  font-size: clamp(1.18rem, 2vw, 1.55rem);
  line-height: 1.38;
  font-weight: 500;
}
.hero-domains {
  max-width: 720px;
  color: #8795ae;
  font-size: .8rem;
  line-height: 1.9;
  letter-spacing: .035em;
}
.actions { margin-top: 38px; gap: 10px; }
.btn {
  min-height: 50px;
  border-radius: 11px;
  color: #dce7fb;
  background: rgba(255,255,255,.035);
  border-color: var(--labs-line);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.btn:hover {
  transform: translateY(-2px);
  border-color: rgba(92,225,255,.35);
  background: rgba(92,225,255,.055);
  box-shadow: 0 10px 32px rgba(0,0,0,.18);
}
.btn.primary {
  color: #061018;
  background: linear-gradient(135deg, var(--labs-cyan), #a4f2ff);
  border: 1px solid rgba(255,255,255,.36);
  box-shadow: 0 12px 36px rgba(92,225,255,.13);
}
.hero-preflight { opacity: .78; }

/* Signature laboratory core */
.hero-lab-visual {
  min-height: 570px;
  isolation: isolate;
  perspective: 1200px;
}
.hero-lab-visual::before {
  content: "TVK LABS / RESEARCH CORE";
  position: absolute;
  top: 7%;
  right: 8%;
  font: 500 .64rem/1 "IBM Plex Mono", monospace;
  letter-spacing: .17em;
  color: rgba(164,190,255,.48);
}
.hero-lab-visual::after {
  content: "INTELLIGENCE  •  TRUST  •  SYSTEMS";
  position: absolute;
  bottom: 7%;
  left: 8%;
  font: 500 .58rem/1 "IBM Plex Mono", monospace;
  letter-spacing: .13em;
  color: rgba(164,190,255,.35);
}
.lab-ring {
  border: 0;
  box-shadow: inset 0 0 0 1px rgba(143,177,255,.16);
}
.lab-ring::before,
.lab-ring::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.lab-ring::before {
  inset: -1px;
  background: conic-gradient(from 0deg, transparent 0 17%, rgba(92,225,255,.92) 20%, transparent 23% 49%, rgba(139,99,255,.72) 53%, transparent 57% 82%, rgba(213,108,255,.7) 85%, transparent 88%);
  padding: 1px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter: drop-shadow(0 0 8px rgba(92,225,255,.2));
}
.lab-ring::after {
  width: 7px;
  height: 7px;
  left: 50%;
  top: -3px;
  background: var(--labs-cyan);
  box-shadow: 0 0 18px rgba(92,225,255,.8), 0 0 0 4px rgba(92,225,255,.06);
}
.lab-ring-1 {
  width: min(500px, 88%);
  height: min(500px, 88%);
  animation: labs-orbit 44s linear infinite;
}
.lab-ring-2 {
  width: min(406px, 72%);
  height: min(406px, 72%);
  animation: labs-orbit 31s linear infinite reverse;
}
.lab-ring-2::before { transform: rotate(83deg); opacity: .75; }
.lab-ring-3 {
  width: min(314px, 57%);
  height: min(314px, 57%);
  animation: labs-orbit 23s linear infinite;
}
.lab-ring-3::before { transform: rotate(164deg); opacity: .62; }

.lab-core {
  width: 220px !important;
  height: 220px !important;
  border-radius: 50% !important;
  padding: 18px;
  overflow: visible !important;
  background:
    radial-gradient(circle at 50% 42%, rgba(92,225,255,.10), transparent 42%),
    rgba(7,12,20,.92) !important;
  border: 1px solid rgba(144,188,255,.22) !important;
  box-shadow:
    0 0 0 9px rgba(92,225,255,.018),
    0 0 0 22px rgba(74,125,255,.018),
    0 34px 110px rgba(0,0,0,.55),
    0 0 80px rgba(92,225,255,.08),
    inset 0 0 42px rgba(75,125,255,.06) !important;
}
.lab-core::before,
.lab-core::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.lab-core::before {
  inset: -34px;
  border: 1px solid rgba(92,225,255,.09);
  background: repeating-conic-gradient(from 0deg, rgba(92,225,255,.26) 0 .6deg, transparent .6deg 12deg);
  -webkit-mask: radial-gradient(transparent 68%, #000 69% 71%, transparent 72%);
  mask: radial-gradient(transparent 68%, #000 69% 71%, transparent 72%);
  animation: labs-orbit 65s linear infinite reverse;
}
.lab-core::after {
  inset: -10px;
  border: 1px dashed rgba(164,190,255,.13);
  animation: labs-orbit 34s linear infinite;
}
.lab-core-logo {
  position: relative;
  z-index: 4;
  width: 100% !important;
  height: 100% !important;
  border-radius: 50%;
  object-fit: cover !important;
  filter: saturate(1.08) brightness(1.02) hue-rotate(0deg) drop-shadow(0 0 18px rgba(92,225,255,.16));
  animation: labs-logo-spectrum 16s ease-in-out infinite;
  transform: translateZ(0);
}
.lab-scan {
  z-index: 5;
  width: 72%;
  height: 1px;
  left: 14%;
  background: linear-gradient(90deg, transparent, rgba(92,225,255,.12), rgba(92,225,255,.9), rgba(139,99,255,.35), transparent);
  box-shadow: 0 0 18px rgba(92,225,255,.25);
  animation: labs-scan 9s cubic-bezier(.45,0,.2,1) infinite;
}

@keyframes labs-orbit { to { transform: rotate(360deg); } }
@keyframes labs-logo-spectrum {
  0%,100% { filter: saturate(1.08) brightness(1.02) hue-rotate(0deg) drop-shadow(0 0 18px rgba(92,225,255,.16)); }
  24% { filter: saturate(1.18) brightness(1.05) hue-rotate(22deg) drop-shadow(0 0 22px rgba(74,125,255,.22)); }
  52% { filter: saturate(1.22) brightness(1.04) hue-rotate(56deg) drop-shadow(0 0 24px rgba(139,99,255,.22)); }
  76% { filter: saturate(1.16) brightness(1.03) hue-rotate(88deg) drop-shadow(0 0 22px rgba(213,108,255,.18)); }
}
@keyframes labs-scan {
  0%, 11% { top: 23%; opacity: 0; }
  18% { opacity: .9; }
  52% { top: 76%; opacity: .9; }
  61%, 100% { top: 76%; opacity: 0; }
}

/* Global section architecture */
.section {
  position: relative;
  padding: clamp(86px, 10vw, 132px) 0;
  color: var(--labs-text);
  background: transparent !important;
  border-top: 1px solid rgba(164,190,255,.07);
}
.section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 12% 0%, rgba(74,125,255,.035), transparent 28rem);
}
.section-head { max-width: 840px; margin-bottom: 54px; position: relative; }
.section-head.centered { max-width: 860px; }
.kicker {
  color: var(--labs-cyan);
  font-size: .68rem;
  letter-spacing: .18em;
}
h2 {
  color: var(--labs-text);
  font-size: clamp(2.15rem, 4.6vw, 4rem);
  line-height: 1;
  letter-spacing: -.045em;
  font-weight: 650;
}
.section-text { color: var(--labs-text-soft); font-size: 1.02rem; }

/* Innovation engine — make it read as a process, not decoration */
.engine-flow {
  position: relative;
  padding: 34px 16px 24px;
  border: 1px solid var(--labs-line);
  border-radius: var(--labs-radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  box-shadow: var(--labs-shadow);
}
.engine-stage { animation: none !important; }
.engine-stage h3 { color: var(--labs-text); }
.engine-stage p { color: var(--labs-muted); }
.engine-node {
  background: #09111b;
  border-color: var(--labs-line-strong);
  box-shadow: inset 0 0 26px rgba(74,125,255,.05);
}
.engine-pulse {
  background: var(--labs-cyan);
  box-shadow: 0 0 20px rgba(92,225,255,.42);
}
.engine-arrow span { background: linear-gradient(90deg, rgba(164,190,255,.14), rgba(92,225,255,.55)); }
.engine-arrow span::after { border-left-color: rgba(92,225,255,.7); }

/* Domain cards */
.domain-grid { gap: 14px; }
.domain-card {
  background: linear-gradient(150deg, rgba(255,255,255,.038), rgba(255,255,255,.018));
  border-color: var(--labs-line) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
  transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.domain-card:hover,
.domain-card.is-open {
  transform: translateY(-3px);
  border-color: rgba(92,225,255,.26) !important;
  background: linear-gradient(150deg, rgba(92,225,255,.045), rgba(139,99,255,.025));
  box-shadow: 0 18px 52px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.035);
}
.domain-trigger { color: var(--labs-text); }
.domain-info strong { color: var(--labs-text); }
.domain-info span,
.domain-panel,
.domain-panel li { color: var(--labs-muted); }
.domain-icon { border-color: rgba(92,225,255,.3) !important; background: rgba(92,225,255,.06) !important; }
.domain-chevron { border-color: var(--labs-cyan) !important; }

/* Canonical portfolio */
.section-labs-portfolio { background: linear-gradient(180deg, rgba(74,125,255,.025), transparent 38%) !important; }
.labs-portfolio-groups { gap: 34px !important; }
.labs-portfolio-group {
  padding: 24px;
  border: 1px solid var(--labs-line);
  border-radius: var(--labs-radius-lg);
  background: rgba(255,255,255,.018);
}
.labs-portfolio-group-head { border-bottom: 1px solid var(--labs-line); padding-bottom: 18px; margin-bottom: 18px; }
.labs-portfolio-group-head h3 { color: var(--labs-text) !important; }
.labs-portfolio-group-head span { color: var(--labs-muted) !important; }
.labs-portfolio-card {
  position: relative;
  min-height: 210px;
  background: linear-gradient(150deg, rgba(255,255,255,.035), rgba(255,255,255,.015)) !important;
  border-color: var(--labs-line) !important;
  overflow: hidden;
}
.labs-portfolio-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(92,225,255,.5), transparent);
  opacity: 0;
  transition: opacity .2s ease;
}
.labs-portfolio-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(92,225,255,.28) !important;
  box-shadow: 0 18px 52px rgba(0,0,0,.28);
}
.labs-portfolio-card:hover::before { opacity: 1; }
.labs-portfolio-card strong { color: var(--labs-text) !important; }
.labs-portfolio-card p { color: var(--labs-muted) !important; }
.labs-portfolio-relation { color: var(--labs-cyan) !important; background: rgba(92,225,255,.06) !important; border-color: rgba(92,225,255,.14) !important; }
.labs-portfolio-link { color: #b9d6ff !important; }

/* Constellation becomes technical topology */
.constellation-wrap {
  min-height: 620px;
  border: 1px solid var(--labs-line);
  border-radius: var(--labs-radius-lg);
  background:
    radial-gradient(circle at center, rgba(92,225,255,.055), transparent 28%),
    linear-gradient(rgba(164,190,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(164,190,255,.025) 1px, transparent 1px),
    rgba(255,255,255,.012);
  background-size: auto, 40px 40px, 40px 40px, auto;
  box-shadow: var(--labs-shadow);
}
.constellation-ring { border-color: rgba(92,225,255,.12) !important; }
.constellation-center {
  color: var(--labs-text) !important;
  background: #09111b !important;
  border-color: rgba(92,225,255,.24) !important;
  box-shadow: 0 0 45px rgba(92,225,255,.08) !important;
}
.constellation-node { color: var(--labs-text-soft) !important; }
.constellation-dot { box-shadow: 0 0 16px currentColor; }
.constellation-label { background: rgba(6,8,13,.86) !important; border: 1px solid var(--labs-line); padding: 5px 8px; border-radius: 7px; }
.constellation-legend { color: var(--labs-muted); }

/* Pipeline */
.pipeline-track {
  border: 1px solid var(--labs-line);
  border-radius: var(--labs-radius-lg);
  background: rgba(255,255,255,.018);
  padding: 34px 28px;
}
.pipeline-progress { background: rgba(164,190,255,.10) !important; }
.pipeline-fill { background: linear-gradient(90deg, var(--labs-blue), var(--labs-cyan), var(--labs-violet)) !important; box-shadow: 0 0 18px rgba(92,225,255,.18); }
.pipeline-stage { color: var(--labs-text-soft); }
.pipeline-stage h3 { color: var(--labs-text); }
.pipeline-stage p { color: var(--labs-muted); }
.pipeline-marker { background: #09111b !important; border-color: var(--labs-line-strong) !important; color: var(--labs-muted) !important; }
.pipeline-stage.is-active .pipeline-marker { color: #041018 !important; background: var(--labs-cyan) !important; border-color: var(--labs-cyan) !important; box-shadow: 0 0 28px rgba(92,225,255,.24); }

/* Showcase / research operations / gallery */
.showcase-grid,
.command-grid,
.gallery-grid { gap: 14px; }
.showcase-panel,
.command-panel,
.prototype-card,
.roadmap-phase,
.preflight-pillar,
.corporate-block {
  color: var(--labs-text);
  background: linear-gradient(150deg, rgba(255,255,255,.036), rgba(255,255,255,.014)) !important;
  border-color: var(--labs-line) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
.showcase-panel:hover,
.command-panel:hover,
.prototype-card:hover,
.roadmap-phase:hover {
  border-color: rgba(92,225,255,.24) !important;
  transform: translateY(-3px);
  box-shadow: 0 18px 52px rgba(0,0,0,.22);
}
.showcase-panel h3,
.command-panel h3,
.prototype-card h3,
.roadmap-phase h3 { color: var(--labs-text); }
.showcase-panel p,
.command-panel p,
.prototype-card p,
.roadmap-phase li span { color: var(--labs-muted); }
.prototype-badge,
.command-status {
  color: var(--labs-cyan) !important;
  background: rgba(92,225,255,.06) !important;
  border-color: rgba(92,225,255,.14) !important;
}
.prototype-link { color: #bad7ff !important; }

/* Network */
.network-map-wrap {
  background: #081019 !important;
  border-color: var(--labs-line) !important;
  box-shadow: var(--labs-shadow);
}
.world-map { opacity: .72; filter: saturate(.6) brightness(.82) hue-rotate(155deg); }
.map-node .map-pulse { background: var(--labs-cyan) !important; box-shadow: 0 0 0 5px rgba(92,225,255,.08), 0 0 18px rgba(92,225,255,.38) !important; }
.map-info { color: var(--labs-text); background: rgba(6,8,13,.88) !important; border-color: var(--labs-line) !important; backdrop-filter: blur(16px); }
.map-info span,
.map-info em,
.network-legend { color: var(--labs-muted); }

/* Ecosystem */
.ecosystem-stack {
  border: 1px solid var(--labs-line);
  border-radius: var(--labs-radius-lg);
  background: rgba(255,255,255,.016);
  padding: 18px;
}
.ecosystem-layer {
  color: var(--labs-text);
  background: rgba(255,255,255,.025) !important;
  border-color: var(--labs-line) !important;
}
.ecosystem-layer:hover { border-color: rgba(92,225,255,.28) !important; background: rgba(92,225,255,.035) !important; }
.ecosystem-layer span { color: var(--labs-muted); }

/* Assurance */
.preflight-panel {
  background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(92,225,255,.015)) !important;
  border-color: var(--labs-line) !important;
  box-shadow: var(--labs-shadow);
}
.preflight-panel-content h3 { color: var(--labs-text); }
.preflight-panel-content p,
.preflight-pillar p { color: var(--labs-muted); }
.preflight-badge { color: var(--labs-text) !important; background: rgba(255,255,255,.025) !important; border-color: var(--labs-line) !important; }
.preflight-badge-copy span { color: var(--labs-muted) !important; }
.preflight-verify-link { color: var(--labs-cyan) !important; }

/* Contact */
.section-contact { background: radial-gradient(circle at 18% 50%, rgba(74,125,255,.04), transparent 28rem) !important; }
.email-list a { color: #c8dbff !important; border-color: var(--labs-line) !important; background: rgba(255,255,255,.02) !important; }
.section-contact form {
  border: 1px solid var(--labs-line);
  border-radius: var(--labs-radius-lg);
  padding: 24px;
  background: rgba(255,255,255,.018);
}
.section-contact input,
.section-contact textarea {
  color: var(--labs-text) !important;
  background: rgba(255,255,255,.028) !important;
  border-color: var(--labs-line) !important;
}
.section-contact input::placeholder,
.section-contact textarea::placeholder { color: #68758c; }
.section-contact button {
  color: #061018 !important;
  background: linear-gradient(135deg, var(--labs-cyan), #b2f5ff) !important;
  border: 0 !important;
}

/* Footer */
.footer {
  color: var(--labs-text-soft);
  background: #05070b !important;
  border-top: 1px solid var(--labs-line) !important;
}
.footer-row { border-color: var(--labs-line) !important; }
.footer-links { color: var(--labs-muted); }
.footer-brand {
  width: 44px !important;
  height: 44px !important;
  border-radius: 12px !important;
  overflow: hidden;
  border: 1px solid var(--labs-line);
}

/* Corporate sub-pages inherit the same lab shell */
.corporate-hero {
  background: radial-gradient(circle at 80% 18%, rgba(92,225,255,.055), transparent 28rem) !important;
}
.corporate-hero h1 { color: var(--labs-text); }
.corporate-lead { color: var(--labs-text-soft) !important; }

/* Focus and accessibility */
a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--labs-cyan) !important;
  outline-offset: 3px;
}

/* Responsive */
@media (max-width: 1120px) {
  .desktop-nav { display: none !important; }
  .mobile-toggle { display: flex !important; }
  .hero-inner { grid-template-columns: 1fr 430px; gap: 26px; }
  .hero-content h1 { font-size: clamp(3rem, 7vw, 5.3rem); }
}

@media (max-width: 920px) {
  .container { width: min(100% - 36px, 760px); }
  .hero-inner { grid-template-columns: 1fr; padding-top: 72px; }
  .hero-lab-visual { min-height: 470px; order: 2; }
  .hero-content { order: 1; }
  .domain-grid { grid-template-columns: 1fr !important; }
  .labs-portfolio-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .constellation-wrap { min-height: 520px; }
}

@media (max-width: 640px) {
  .container { width: min(100% - 28px, 540px); }
  .nav { min-height: 68px; }
  .brand-text { font-size: .82rem; }
  .brand-mark { width: 40px !important; height: 40px !important; }
  .lab-hero { min-height: auto; }
  .hero-inner { padding: 62px 0 92px; }
  .hero-content h1 { font-size: clamp(2.75rem, 13.5vw, 4.25rem); }
  .hero-subtitle { font-size: 1.08rem; }
  .hero-domains { font-size: .72rem; line-height: 1.7; }
  .actions { display: grid; grid-template-columns: 1fr; }
  .btn { width: 100%; }
  .hero-lab-visual { min-height: 390px; }
  .hero-lab-visual::before,
  .hero-lab-visual::after { font-size: .49rem; }
  .lab-ring-1 { width: 330px; height: 330px; }
  .lab-ring-2 { width: 270px; height: 270px; }
  .lab-ring-3 { width: 215px; height: 215px; }
  .lab-core { width: 168px !important; height: 168px !important; padding: 13px; }
  .section { padding: 76px 0; }
  h2 { font-size: clamp(2rem, 10vw, 2.85rem); }
  .labs-portfolio-grid { grid-template-columns: 1fr !important; }
  .labs-portfolio-group { padding: 16px; }
  .constellation-wrap { min-height: 440px; overflow: hidden; }
  .pipeline-track { padding: 24px 16px; }
}

/* Reduced motion: all meaning remains visible */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .lab-core-logo { filter: saturate(1.08) brightness(1.02) !important; }
}
