/* Page structure: containers, section rhythm, headings, scroll reveal */

.container { width: 100%; max-width: calc(var(--maxw) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section-y); position: relative; }
.section--tight { padding-block: clamp(3rem, 6vw, 5rem); }

.section__head { display: grid; gap: 1.25rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); max-width: 46rem; }
.section__head--center { margin-inline: auto; text-align: center; justify-items: center; }
.kicker { font-family: var(--font-display); font-size: var(--fs-small); font-weight: 500; color: var(--teal-600); letter-spacing: 0; display: inline-flex; align-items: center; gap: .6rem; }
.kicker::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: currentColor; opacity: .7; }
.on-night .kicker { color: var(--mint-300); }

.on-night { background: var(--night); color: var(--night-text); }
.on-night .lead, .on-night .small { color: var(--night-soft); }

/* Soft brand glows, same wash as the launch film */
.glow { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.glow::before { content: ""; position: absolute; border-radius: 50%; filter: blur(70px); opacity: .75; }
.glow::before { width: 46vw; height: 46vw; max-width: 760px; max-height: 760px; right: -12%; top: -22%; background: radial-gradient(circle, var(--mint-200), transparent 68%); }
.section > .container { position: relative; z-index: 1; }

/* Scroll reveal. Content is always legible; motion is only a settle. */
.js [data-reveal] { opacity: .35; transform: translateY(14px); transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out); transition-delay: var(--d, 0ms); }
.js [data-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js [data-reveal] { opacity: 1; transform: none; } }
