html { scroll-behavior: auto; }

.h7 {
  position: relative;
  height: 100vh;
  height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
  overflow-anchor: none;
}

.h7 .stage {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: clamp(16px, 2.4vh, 26px);
  text-align: center;
  padding: calc(var(--nav-h) + 16px) 24px clamp(48px, 7vh, 88px);
}

.h7 .egg {
  position: relative;
  width: min(190px, 46vw, 24vh);
  aspect-ratio: 5 / 6;
}

.h7 .egg-halo {
  position: absolute;
  inset: -24%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(129,140,248,.36), rgba(103,232,249,.12) 48%, transparent 70%);
  filter: blur(30px);
  animation: h7-breathe 6s ease-in-out infinite;
}

@keyframes h7-breathe {
  0%, 100% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
}

.h7 .flash {
  position: absolute;
  inset: -35%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(190,220,255,.9), rgba(129,140,248,.3) 45%, transparent 70%);
  opacity: 0;
  pointer-events: none;
}

.h7 .shell {
  position: absolute;
  inset: 0;
  border-radius: 50% 50% 50% 50% / 58% 58% 42% 42%;
  background:
    radial-gradient(85% 68% at 32% 20%, rgba(160,188,255,.4), transparent 56%),
    radial-gradient(62% 46% at 68% 80%, rgba(103,232,249,.26), transparent 62%),
    radial-gradient(130% 115% at 50% 32%, #2a3480 0%, #151d59 46%, #0b1244 78%, #080e38 100%);
  box-shadow:
    inset 0 0 0 1.5px rgba(172,192,255,.3),
    inset -12px -18px 32px rgba(2,4,20,.72),
    inset 8px 12px 24px rgba(176,200,255,.14),
    0 0 80px rgba(99,102,241,.4),
    0 30px 58px -18px rgba(2,6,30,.92);
  transition: opacity .7s ease;
}

.h7 .egg.cracked .shell { opacity: .14; }

.h7 .crack {
  position: absolute;
  top: 14%;
  left: 50%;
  width: 58%;
  transform: translateX(-50%);
  overflow: visible;
  z-index: 2;
  pointer-events: none;
}

.h7 .crack polyline {
  stroke: rgba(202,220,255,.85);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 240;
  stroke-dashoffset: 240;
  filter: drop-shadow(0 0 6px rgba(129,140,248,.8));
}

.h7 .egg.cracked .crack polyline { animation: h7-crack .55s ease-out forwards; }

@keyframes h7-crack { to { stroke-dashoffset: 0; } }

.h7 .egg.cracked { animation: h7-shake .6s ease; }

@keyframes h7-shake {
  0% { transform: translateY(0) rotate(0); }
  15% { transform: translateY(0) rotate(2.5deg); }
  35% { transform: translateY(0) rotate(-2.5deg); }
  55% { transform: translateY(0) rotate(1.8deg); }
  75% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}

.h7 .logo {
  position: absolute;
  left: 50%;
  top: 57%;
  transform: translate(-50%, -50%) scale(.6);
  width: 62%;
  opacity: 0;
  z-index: 3;
  filter: drop-shadow(0 8px 20px rgba(2,6,30,.7));
}

.h7 .egg.cracked .logo {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  transition: opacity .5s ease .4s, transform .6s cubic-bezier(.22,.68,.32,1) .4s;
}

.h7 .eyebrow {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--aurora-1);
}

.h7 .title {
  font-family: var(--font-display);
  font-size: clamp(28px, 4.4vw, 54px);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.02em;
  color: var(--tx-1);
  max-width: 640px;
}

.h7 .title em {
  font-style: normal;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.h7 .cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14.5px;
  color: var(--tx-1);
  background: rgba(148,170,255,0.1);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  backdrop-filter: blur(8px);
  transition: transform .25s var(--ease-out), background .25s ease, box-shadow .25s ease;
}

.h7 .cta:hover {
  transform: translateY(-3px);
  background: rgba(148,170,255,0.16);
  box-shadow: inset 0 0 0 1px rgba(165,180,252,0.55);
}

.h7 [data-in] { opacity: 0; }
.home-program-cta { margin-top: 34px; }
.home-service-list { display: grid; grid-template-columns: 1fr 1fr; }
.home-service-actions { margin-top: 32px; }
.home-partners-cta { margin-top: 36px; }

@media (max-height: 720px) {
  .h7 .egg { width: min(150px, 40vw, 20vh); }
  .h7 .stage { gap: 14px; padding-top: calc(var(--nav-h) + 10px); }
  .h7 .title { font-size: clamp(24px, 3.8vw, 40px); }
}
