/* A single brain/heart sculpture in the existing Neurolove logo colours. */
.nl-system { position: relative; margin: 0; min-width: 0; }
.nl-system-visual { position: relative; width: 100%; aspect-ratio: 1; touch-action: pan-y; }
.nl-system-camera { width: 100%; transform-origin: 50% 50%; }
.nl-system-svg { display: block; width: 100%; height: auto; overflow: hidden; }
.nl-fusion-art { stroke-linecap: round; stroke-linejoin: round; }
.nl-fusion-surface { opacity: .055; stroke: none; }
.nl-fusion-contour { stroke-width: .8; }
.nl-fusion-rim { stroke-width: 1.7; opacity: .9; }
.nl-fusion-folds { stroke-width: 1.8; }
.nl-fusion-meridian { stroke-width: .7; opacity: .52; }
.nl-fusion-signal { stroke: var(--ink); stroke-width: 1.8; stroke-dasharray: 7 113; opacity: 0; }
.nl-fusion-neuron { fill: var(--ink); stroke: var(--surface-0); stroke-width: 1; opacity: .65; }
.nl-fusion-bridge { stroke-width: .8; opacity: .26; }
.nl-fusion-union { fill: var(--signal); }
.nl-system-pause-mark { stroke: var(--ink-muted); stroke-width: 2; stroke-linecap: round; opacity: 0; }
.nl-system[data-paused] .nl-system-pause-mark { opacity: 1; }
.nl-system-motion-toggle {
  position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0;
  border-radius: var(--radius-md); background: transparent; cursor: pointer; touch-action: pan-y;
}
.nl-system-motion-toggle[hidden] { display: none; }
.nl-system-motion-toggle:focus-visible { outline: 2px solid var(--accent-text); outline-offset: -4px; }
.nl-hero:has(.nl-system) { align-items: center; }
.nl-hero:has(.nl-system) .nl-hero-copy .nl-lead { hyphens: none; text-wrap: pretty; }
.nl-hero:has(.nl-system) .nl-hero-copy > .nl-status { margin: 0; }
.nl-hero:has(.nl-system) .nl-hero-copy > .nl-status .nl-dot-live { animation: none; }

/* Every technology stays visible. Local logos replace the clipped, duplicated ticker. */
.nl-strip:has(.nl-tech-logo) { overflow: visible; mask-image: none; -webkit-mask-image: none; }
.nl-strip-track:has(.nl-tech-logo) {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  width: auto; max-width: 1280px; margin: 0 auto; padding: 0 24px;
  gap: 28px 32px; list-style: none; text-transform: none; letter-spacing: 0; white-space: normal;
  font: 400 14px/1.5 var(--font-sans); color: var(--ink-2);
}
.nl-strip-item:has(.nl-tech-logo) { gap: 12px; min-width: 0; }
.nl-strip-item:has(.nl-tech-logo)::after { display: none; }
.nl-tech-logo { display: block; flex: 0 0 28px; width: 28px; height: 28px; object-fit: contain; }
@media (min-width: 1024px) {
  .nl-hero:has(.nl-system) { gap: var(--space-7); grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
  .nl-system-visual { width: calc(100% + 48px); margin-inline: -24px; }
}
@media (max-width: 1023px) {
  .nl-hero-aside:has(.nl-system) { width: 100%; max-width: 520px; justify-self: center; }
  .nl-system-visual { max-width: 480px; margin-inline: auto; }
  .nl-strip-track:has(.nl-tech-logo) { gap: 24px; font-size: 13px; }
}
@media (max-width: 767px) {
  .nl-container > .nl-hero:has(.nl-system) { padding-top: var(--space-7); gap: var(--space-5); }
  .nl-hero:has(.nl-system) .nl-hero-copy { gap: var(--space-5); }
  .nl-system-visual { max-width: 360px; }
  .nl-strip-track:has(.nl-tech-logo) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
}
/* Preserve the first-screen header fit between mobile navigation breakpoints. */
@media (min-width: 768px) and (max-width: 1023px) {
  .nl-topbar-wrap .nl-topbar, .nl-topbar .nl-nav { gap: var(--space-3); }
}
@media (max-width: 379px) { .nl-topbar-cta > .nl-btn { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .nl-system *, .nl-system *::before, .nl-system *::after { animation: none; transition: none; }
  .nl-system-motion-toggle, .nl-system-pause-mark, .nl-fusion-signal { display: none; }
}
