.site-shell {
  min-height: 100vh;
  overflow-x: clip;
}

.section {
  padding: var(--space-7) 0;
}

.container {
  width: var(--container-width);
  margin: 0 auto;
}

.grid-12 {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--grid-gutter);
}

/* ── Hero Background ── */
.hero-wrap {
  position: relative;
  background: linear-gradient(135deg, var(--bg-start) 0%, var(--bg-end) 50%, #0c1a3a 100%);
  isolation: isolate;
  overflow: hidden;
}

/* Animated mesh gradient blobs */
.hero-wrap::before,
.hero-wrap::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  filter: blur(80px);
  opacity: 0.5;
  z-index: -1;
  animation: meshFloat 12s ease-in-out infinite alternate;
}

.hero-wrap::before {
  width: 500px;
  height: 500px;
  top: -80px;
  left: -120px;
  background: radial-gradient(circle, rgba(139, 92, 246, 0.35), rgba(59, 130, 246, 0.2));
}

.hero-wrap::after {
  width: 600px;
  height: 600px;
  right: -5%;
  top: 40px;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.3), rgba(96, 165, 250, 0.15));
  animation-delay: -6s;
}

@keyframes meshFloat {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(30px, -20px) scale(1.08); }
}

/* ── Hero Grid ── */
.hero-grid {
  min-height: calc(100vh - 140px);
  align-items: center;
}

.hero-copy {
  grid-column: span 6;
}

.hero-scene-col {
  grid-column: span 6;
}

/* ── Grid Systems ── */
.features-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--grid-gutter);
}

.faculty-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--grid-gutter);
}

.about-grid,
.events-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--grid-gutter);
  align-items: stretch;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}
