:root {
  --purple-ink: #6248e8;
  --purple-deep: #2d1d68;
  --ink: #17131f;
  --paper: #fbfaf7;
  --glass: rgba(255, 255, 255, 0.78);
  --premium-shadow: 0 30px 90px rgba(37, 25, 70, 0.12);
}

body {
  background:
    radial-gradient(circle at 12% 5%, rgba(130, 109, 252, 0.08), transparent 28rem),
    radial-gradient(circle at 92% 18%, rgba(255, 248, 151, 0.18), transparent 30rem),
    var(--paper);
  color: #464149;
  text-rendering: optimizeLegibility;
}

.announcement {
  background: linear-gradient(90deg, #17131f, #2d1d68 55%, #17131f);
  letter-spacing: 0.01em;
}

.site-header {
  background: rgba(251, 250, 247, 0.82);
  border-bottom-color: rgba(74, 72, 75, 0.09);
  box-shadow: 0 10px 40px rgba(24, 18, 38, 0.035);
}

.site-header.scrolled {
  background: rgba(255, 255, 255, 0.93);
  box-shadow: 0 12px 45px rgba(24, 18, 38, 0.08);
}

.logo span {
  letter-spacing: -0.055em;
}

.nav a,
.link {
  position: relative;
}

.nav a::after,
.link::after {
  content: "";
  position: absolute;
  height: 2px;
  left: 0;
  right: 100%;
  bottom: -8px;
  border-radius: 99px;
  background: var(--purple);
  transition: right 0.25s ease;
}

.nav a:hover::after,
.nav a:focus-visible::after,
.link:hover::after,
.link:focus-visible::after {
  right: 0;
}

.btn {
  box-shadow: 0 12px 28px rgba(98, 72, 232, 0.2);
}

.btn:hover {
  box-shadow: 0 18px 38px rgba(98, 72, 232, 0.3);
}

.hero {
  min-height: min(850px, calc(100vh - 120px));
  isolation: isolate;
}

.hero-copy {
  position: relative;
}

.hero-copy::before {
  content: "VINTRA / 2026";
  position: absolute;
  left: 8vw;
  top: 48px;
  color: rgba(74, 72, 75, 0.42);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
}

.hero h1 {
  text-wrap: balance;
}

.hero h1 em {
  background: linear-gradient(135deg, var(--purple), var(--purple-ink));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-art {
  background:
    linear-gradient(rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0)),
    var(--lav);
}

.violet-orbit {
  background:
    radial-gradient(circle at 35% 28%, rgba(255, 255, 255, 0.23), transparent 25%),
    linear-gradient(145deg, #967fff, #6548ec);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 40px 100px rgba(89, 63, 204, 0.3);
}

.photo {
  border: 1px solid rgba(255, 255, 255, 0.75);
  box-shadow: 0 30px 80px rgba(42, 28, 83, 0.25);
  transition: transform 0.55s cubic-bezier(.2,.8,.2,1), box-shadow 0.55s ease;
}

.hero-art:hover .photo.p1 {
  transform: rotate(-7deg) translateY(-7px);
}

.hero-art:hover .photo.p2 {
  transform: rotate(8deg) translateY(7px);
}

.floating-note {
  border: 1px solid rgba(74, 72, 75, 0.1);
  box-shadow: 0 18px 50px rgba(42, 28, 83, 0.18);
}

.proof {
  padding: 13px 18px;
  border: 1px solid rgba(74, 72, 75, 0.1);
  background: rgba(255, 255, 255, 0.62);
  border-radius: 999px;
  backdrop-filter: blur(10px);
}

.value-band {
  padding: clamp(76px, 9vw, 132px) 8vw;
  color: white;
  background:
    radial-gradient(circle at 100% 0, rgba(255, 248, 151, 0.2), transparent 36rem),
    linear-gradient(135deg, #17131f, #2d1d68 72%, #463097);
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 8vw;
  position: relative;
  overflow: hidden;
}

.value-band::after {
  content: "";
  position: absolute;
  width: 380px;
  height: 380px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 50%;
  right: -120px;
  bottom: -190px;
  box-shadow: 0 0 0 42px rgba(255, 255, 255, 0.025), 0 0 0 86px rgba(255, 255, 255, 0.02);
}

.value-band h2 {
  color: white;
  font: 600 clamp(42px, 5vw, 72px)/0.98 var(--serif);
  letter-spacing: -0.045em;
  margin: 0;
  max-width: 9ch;
}

.value-band-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.value-band-grid article {
  min-height: 260px;
  padding: 28px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
}

.value-band-grid span {
  color: var(--cream);
  font-size: 12px;
  font-weight: 700;
}

.value-band-grid h3 {
  margin: auto 0 12px;
  color: white;
  font: 600 26px/1.05 var(--serif);
}

.value-band-grid p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
}

.value-band-note {
  grid-column: 2;
  color: var(--cream);
  font-size: 13px;
  font-weight: 700;
  margin: 8px 0 0;
}

.feature {
  border: 1px solid rgba(74, 72, 75, 0.08);
  box-shadow: 0 22px 70px rgba(34, 24, 59, 0.07);
}

.editorial-grid figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(14, 10, 20, 0.34));
  pointer-events: none;
}

.editorial-grid figcaption {
  z-index: 1;
  box-shadow: 0 8px 24px rgba(15, 10, 24, 0.15);
}

.trust-strip {
  background:
    radial-gradient(circle at 15% 10%, rgba(130, 109, 252, 0.28), transparent 30rem),
    var(--ink);
}

.trust-points article {
  background: rgba(255, 255, 255, 0.035);
}

.page-hero,
.legal-hero {
  background:
    radial-gradient(circle at 85% 0, rgba(255, 248, 151, 0.25), transparent 28rem),
    linear-gradient(135deg, #f8f5ff, var(--paper));
}

.content-cards article,
.legal-body > div {
  box-shadow: 0 22px 70px rgba(34, 24, 59, 0.055);
}

.legal-body > div {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(74, 72, 75, 0.08);
  border-radius: 28px;
  padding: clamp(28px, 5vw, 62px);
}

.legal-body section {
  border-bottom: 1px solid rgba(74, 72, 75, 0.09);
  padding-bottom: 42px;
}

.legal-body section:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.legal-body p,
.legal-body li {
  color: #5f5962;
}

.legal-body strong {
  color: var(--ink);
}

@media (max-width: 1040px) {
  .value-band {
    grid-template-columns: 1fr;
  }

  .value-band h2 {
    max-width: 14ch;
  }

  .value-band-note {
    grid-column: 1;
  }
}

@media (max-width: 760px) {
  .hero-copy::before {
    top: 34px;
    left: 7vw;
  }

  .proof {
    border-radius: 20px;
    flex-wrap: wrap;
  }

  .value-band-grid {
    grid-template-columns: 1fr;
  }

  .value-band-grid article {
    min-height: 190px;
  }

  .legal-body > div {
    border-radius: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .photo,
  .nav a::after,
  .link::after {
    transition: none;
  }

  .hero-art:hover .photo.p1 {
    transform: rotate(-5deg);
  }

  .hero-art:hover .photo.p2 {
    transform: rotate(6deg);
  }
}

.footer-social{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
.footer-social a{color:#c9c5ca;text-decoration:none;font-size:14px;font-weight:600}
.footer-social a:hover{color:#fff;text-decoration:underline}

.fee-table-wrap{max-width:1000px;margin:0 auto;padding:0 2vw}
.fee-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:20px;overflow:hidden}
.fee-table caption{caption-side:top;text-align:left;font-size:13px;color:var(--muted);padding:0 4px 16px;margin:0}
.fee-table th,.fee-table td{padding:18px 20px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;font-size:16px}
.fee-table thead th{font:700 12px var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:var(--lav)}
.fee-table tbody th{font:600 19px var(--serif);color:var(--black);white-space:nowrap}
.fee-table tbody tr:last-child th,.fee-table tbody tr:last-child td{border-bottom:0}
.fee-table tr.is-vintra{background:rgba(130,109,252,.07)}
.fee-table tr.is-vintra td strong{color:var(--purple);font-size:20px}
.fee-table-note{max-width:1000px;margin:24px auto 0;padding:0 2vw;font-size:14px;color:#6a656b}
@media(max-width:700px){.fee-table th,.fee-table td{padding:14px 12px;font-size:14px}.fee-table tbody th{font-size:16px;white-space:normal}}

.campus-prose{max-width:820px;margin:0 auto;padding:0 2vw;font-size:19px;line-height:1.65}
.campus-prose p{margin:0 0 26px}
@media(max-width:700px){.campus-prose{font-size:17px}}

/* v2.css sets the purple campus hero, but premium.css loads after it and its
   .page-hero background rule was winning — leaving white text on a near-white
   gradient. Re-assert the campus variant here so it survives the cascade. */
.page-hero.campus-page-hero{
  background:
    radial-gradient(circle at 88% 0, rgba(255,248,151,.22), transparent 30rem),
    linear-gradient(135deg,#6f5ce8,#826DFC 58%,#9b8bff);
  color:#fff;
}
.page-hero.campus-page-hero h1{color:#fff}
.page-hero.campus-page-hero .lede{color:#f1edff}
.page-hero.campus-page-hero .eyebrow{color:var(--cream)}
.page-hero.campus-page-hero strong{color:var(--cream)}
.page-hero.campus-page-hero .campus-disclosure{border-color:rgba(255,255,255,.45);color:#efeaff}
.page-hero.campus-page-hero .btn{background:#fff;color:var(--black)}
.page-hero.campus-page-hero .btn:hover{box-shadow:0 12px 28px rgba(0,0,0,.22)}
