:root {
  --bg: #0B0B0D;
  --fg: #F2F2F0;
  --accent: #2EE6A8;
  --muted: #8A8A8E;
  --font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --pad: clamp(1.5rem, 5vw, 4.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-rows: 1fr auto;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* ---------- Background stage ---------- */
.stage {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.iris {
  position: absolute;
  width: min(120vw, 760px);
  aspect-ratio: 1;
  right: 50%;
  top: 4%;
  transform: translateX(50%);
  opacity: .9;
}

.hero {
  position: absolute;
  inset: 0;
  background: url("assets/uc-hero.jpg") no-repeat;
  /* mobile: show the lens across the top */
  background-size: auto 62svh;
  background-size: auto 62vh;
  background-position: 78% top;
  transform-origin: 72% 30%;
  animation: breathe 18s ease-in-out infinite alternate;
}

.veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(11,11,13,0) 30%, rgba(11,11,13,.85) 58%, var(--bg) 72%);
}

@keyframes breathe {
  from { transform: scale(1); }
  to   { transform: scale(1.045); }
}

/* ---------- Content ---------- */
.content {
  position: relative;
  z-index: 1;
  align-self: end;
  padding: 0 var(--pad) clamp(2.5rem, 8vh, 5rem);
  max-width: 40rem;
}

.wordmark {
  margin: 0 0 clamp(2.5rem, 7vh, 4.5rem);
  font-weight: 500;
  font-size: .95rem;
  letter-spacing: .42em;
  color: var(--fg);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  margin: 0 0 1.25rem;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--accent);
}
.dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 0 rgba(46,230,168,.5);
  animation: pulse 3.2s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(46,230,168,.45); }
  50%      { box-shadow: 0 0 0 6px rgba(46,230,168,0); }
}

h1 {
  margin: 0 0 1.25rem;
  font-weight: 300;
  font-size: clamp(2.6rem, 9vw, 5.5rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}

.lede {
  margin: 0;
  max-width: 30rem;
  font-size: clamp(1rem, 1.6vw, 1.125rem);
  line-height: 1.6;
  color: #B4B4B8; /* lighter than --muted for body-text contrast (~9:1) */
}

.lede::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 1px;
  margin-bottom: 1.25rem;
  background: var(--accent);
}

.footer {
  position: relative;
  z-index: 1;
  padding: 1.25rem var(--pad) calc(1.5rem + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(242,242,240,.06);
}
.footer p {
  margin: 0;
  font-size: .72rem;
  letter-spacing: .14em;
  color: var(--muted);
}

/* ---------- Desktop: image full-bleed, lens right, copy left ---------- */
@media (min-width: 820px) {
  .hero {
    background-size: cover;
    background-position: 70% 30%;
  }
  .veil {
    background:
      linear-gradient(90deg, rgba(11,11,13,.92) 0%, rgba(11,11,13,.6) 38%, rgba(11,11,13,0) 62%),
      linear-gradient(0deg, rgba(11,11,13,.9) 0%, rgba(11,11,13,0) 30%);
  }
  .iris {
    width: min(70vw, 900px);
    right: -8vw;
    top: 50%;
    transform: translateY(-58%);
  }
  .content {
    align-self: center;
    padding-bottom: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero, .dot { animation: none; }
}
