/* ============================================================
   VENTURA · BASE / PRIMITIVES
   Minimal element resets + brand helper classes shared across
   the system. Tokens are defined in colors/typography/spacing.
   ============================================================ */

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

body {
  margin: 0;
  font: var(--text-body-base);
  color: var(--text-body);
  background: var(--bg-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Brand helpers ------------------------------------------------ */

/* Iridescent gradient text (use sparingly — one accent per view) */
.ven-iris-text {
  background: var(--gradient-iris);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Spaced display caps — the brand's headline signature */
.ven-display-caps {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: var(--tracking-display);
  font-weight: var(--fw-medium);
}

.ven-eyebrow {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wordmark);
  font-weight: var(--fw-medium);
  font-size: var(--fs-2xs);
  color: var(--text-muted);
}

/* The orbit graphism — elliptical iridescent rings that slowly spin */
.ven-orbit {
  position: relative;
  border-radius: 50%;
}
.ven-orbit::before,
.ven-orbit::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid transparent;
  background: var(--gradient-iris) border-box;
  -webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0.9;
}
.ven-orbit::before { transform: rotate(0deg) scaleY(0.42); animation: ven-orbit-spin var(--dur-orbit) linear infinite; }
.ven-orbit::after  { transform: rotate(60deg) scaleY(0.42); animation: ven-orbit-spin calc(var(--dur-orbit) * 1.4) linear infinite reverse; }

@keyframes ven-orbit-spin { to { transform: rotate(360deg) scaleY(0.42); } }

@media (prefers-reduced-motion: reduce) {
  .ven-orbit::before, .ven-orbit::after { animation: none; }
}
