/* ============================================================
   PlannedReady — Apple-grade craft layer (additive)
   Typography ramp · choreographed reveals · section rhythm · materials
   ============================================================ */
:root {
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --reveal-dur: 1s;
}

/* ---------- Typography ramp (restrained, precise) ---------- */
.t-eyebrow {
  font-size: clamp(0.72rem, 1.4vw, 0.82rem);
  font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--aqua);
}
.t-display {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2.6rem, 8vw, 6rem);
  line-height: 1.02; letter-spacing: -0.035em;
}
.t-h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 5.2vw, 3.6rem);
  line-height: 1.05; letter-spacing: -0.03em;
}
.t-h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.5rem, 3.4vw, 2.3rem); letter-spacing: -0.02em; line-height: 1.1; }
.t-lead {
  font-size: clamp(1.06rem, 2.1vw, 1.45rem);
  line-height: 1.5; color: var(--text-soft); max-width: 40ch;
  letter-spacing: -0.01em;
}
.t-stat {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2.8rem, 9vw, 6.5rem); line-height: 0.95; letter-spacing: -0.04em;
  background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.measure { max-width: 62ch; }
.center { text-align: center; margin-inline: auto; }

/* ---------- Section rhythm — one idea per viewport ---------- */
.section-xl { padding-block: clamp(96px, 16vh, 220px); position: relative; }

/* ---------- Choreographed reveals ---------- */
[data-rv] {
  opacity: 0;
  transform: translateY(34px);
  filter: blur(8px);
  transition:
    opacity var(--reveal-dur) var(--ease-out-expo),
    transform var(--reveal-dur) var(--ease-out-expo),
    filter var(--reveal-dur) var(--ease-out-expo);
  transition-delay: var(--rv-delay, 0ms);
  will-change: opacity, transform, filter;
}
[data-rv="left"] { transform: translateX(-44px); }
[data-rv="right"] { transform: translateX(44px); }
[data-rv="scale"] { transform: scale(0.94); }
[data-rv].in { opacity: 1; transform: none; filter: none; }

/* ---------- Material: premium glass + sheen ---------- */
.glass-xl {
  background: linear-gradient(160deg, rgba(20,30,60,0.66), rgba(12,18,40,0.5));
  border: 1px solid var(--glass-border);
  border-radius: var(--r-xl);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  box-shadow: 0 40px 100px -40px rgba(0,0,0,0.9), inset 0 1px 0 rgba(255,255,255,0.06);
  position: relative; overflow: hidden;
}
.glass-xl::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(120% 90% at 0% 0%, rgba(127,243,255,0.10), transparent 50%);
}

/* big number + small label spec row (Apple tech-specs feel) */
.bignum { display: flex; flex-direction: column; gap: 6px; }
.bignum b { font-family: var(--font-display); font-weight: 800; font-size: clamp(2rem, 5vw, 3.2rem); letter-spacing: -0.03em; color: var(--text); }
.bignum span { color: var(--text-muted); font-size: 0.92rem; }

@media (prefers-reduced-motion: reduce) {
  [data-rv] { opacity: 1 !important; transform: none !important; filter: none !important; }
}
