/* CIRCULOVIVO — Design tokens v0.12 */
:root {
  --black-violet: #080611;
  --deep-purple: #1A103D;
  --midnight-indigo: #15133A;
  --ultramarine-violet: #2E2A86;
  --signal-purple: #6F4FEF;
  --bright-purple: #8D76F4;
  --aurora-green: #00B978;
  --aurora-action: #04cf87;
  --aurora-soft: #69E6B1;
  --aurora-deep: #008D5D;
  --ink: #11131A;
  --ink-soft: #566072;
  --mist: #F7F8FB;
  --cloud: #EEF2F7;
  --fog: #E5EAF1;
  --slate-tint: #CBD4E0;
  --white: #FFFFFF;
  --line: rgba(247,248,251,.14);
  --line-dark: rgba(17,19,26,.12);
  --shadow: 0 28px 90px rgba(0,0,0,.34);
  --shadow-light: 0 24px 80px rgba(8,6,17,.08);
  --radius-pill: 999px;
  --radius-card: 28px;
  --radius-panel: 42px;
  --max: 1180px;
  --font-display: "Red Hat Display", system-ui, sans-serif;
  --font-text: "Red Hat Text", system-ui, sans-serif;
  --font-mono: "Red Hat Mono", ui-monospace, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body, button, input, textarea, select { font-family: var(--font-text); }
.cv-mono {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: .2em;
  font-weight: 500;
  font-size: 15px;
}
.cv-display {
  font-family: var(--font-display);
  font-weight: 200;
  letter-spacing: -.045em;
  line-height: 1.01;
}
.cv-mark {
  border-radius: 50%;
  background: conic-gradient(from 215deg, var(--signal-purple), var(--bright-purple) 24%, var(--aurora-soft) 42%, var(--aurora-green) 68%, var(--aurora-deep) 83%, var(--signal-purple));
  -webkit-mask: radial-gradient(circle at center, transparent 0 34%, #000 35% 100%);
  mask: radial-gradient(circle at center, transparent 0 34%, #000 35% 100%);
}
.cv-button-primary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 20px;
  border-radius:999px;
  border:1px solid transparent;
  background:var(--aurora-action);
  color:var(--black-violet);
  font-weight:700;
  font-size:.94rem;
  line-height:1;
  letter-spacing:0;
  box-shadow:none;
}
.cv-button-secondary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 20px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.055);
  color:#fff;
  font-weight:700;
  font-size:.94rem;
  line-height:1;
  letter-spacing:0;
}
.cv-living-line {
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(141,118,244,.94) 0%, rgba(111,79,239,.92) 24%, rgba(105,230,177,.90) 68%, rgba(105,230,177,0) 100%);
}
