/* NeuroTrocity — shared base reset & tokens.
   Ventures import this, then layer their own visual identity on top. */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { display: block; max-width: 100%; }

a { color: inherit; }

h1, h2, h3, h4, p, figure { margin: 0; }

button {
  font: inherit;
  color: inherit;
  cursor: pointer;
}

:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* NeuroTrocity "nova" mark — animated variant.
   Wrap the nova-mark.svg content in an element with class "nova-mark" (any size via width/height on that element). */
.nova-mark { display: inline-block; }
.nova-mark .nova-spin {
  transform-origin: 100px 100px;
  animation: nova-spin 48s linear infinite;
}
.nova-mark .nova-core-ring {
  transform-origin: 100px 100px;
  animation: nova-breathe 3.6s ease-in-out infinite;
}
.nova-mark .nova-node {
  animation: nova-twinkle 2.8s ease-in-out infinite;
}
.nova-mark .nova-spark {
  animation: nova-twinkle 1.9s ease-in-out infinite;
}
.nova-mark .nova-node:nth-of-type(1) { animation-delay: 0s; }
.nova-mark .nova-node:nth-of-type(2) { animation-delay: .35s; }
.nova-mark .nova-node:nth-of-type(3) { animation-delay: .7s; }
.nova-mark .nova-node:nth-of-type(4) { animation-delay: 1.05s; }
.nova-mark .nova-node:nth-of-type(5) { animation-delay: 1.4s; }
.nova-mark .nova-node:nth-of-type(6) { animation-delay: 1.75s; }
.nova-mark .nova-node:nth-of-type(7) { animation-delay: 2.1s; }
.nova-mark .nova-node:nth-of-type(8) { animation-delay: 2.45s; }
.nova-mark .nova-spark:nth-of-type(1) { animation-delay: .2s; }
.nova-mark .nova-spark:nth-of-type(2) { animation-delay: .8s; }
.nova-mark .nova-spark:nth-of-type(3) { animation-delay: 1.3s; }
.nova-mark .nova-spark:nth-of-type(4) { animation-delay: 1.9s; }

@keyframes nova-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes nova-breathe {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.14); opacity: 1; }
}
@keyframes nova-twinkle {
  0%, 100% { opacity: 0.55; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.12); }
}
@media (prefers-reduced-motion: reduce) {
  .nova-mark .nova-spin, .nova-mark .nova-core-ring, .nova-mark .nova-node, .nova-mark .nova-spark {
    animation: none !important;
  }
}

/* Self-hosted brand faces (files live in /assets/fonts/). */
@font-face{font-family:"Manrope";font-weight:800;font-style:normal;font-display:swap;
  src:url("/assets/fonts/Manrope-ExtraBold.ttf") format("truetype")}
@font-face{font-family:"Manrope";font-weight:400;font-style:normal;font-display:swap;
  src:url("/assets/fonts/Manrope-Regular.ttf") format("truetype")}
@font-face{font-family:"Plex";font-weight:500;font-style:normal;font-display:swap;
  src:url("/assets/fonts/IBMPlexMono-Medium.ttf") format("truetype")}
