/* Home hero — "dive" into the black hole (template: Dive 320vh, sticky Stage 100vh, dive length 220vh) */
.dive { position: relative; width: 100%; height: 320vh; }
.dive__stage { position: sticky; top: 0; height: 100vh; overflow: clip; width: 100%; }
.dive__hole { position: absolute; inset: 0; }
.dive__scrim-top { position: absolute; top: 0; left: 0; right: 0; height: 30%; background: linear-gradient(#110f0d99 0%, #110f0d00 100%); pointer-events: none; }
.dive__scrim { position: absolute; bottom: 0; left: 0; right: 0; height: 48%; background: linear-gradient(#110f0d00 0%, #110f0db8 70%, #110f0de6 100%); pointer-events: none; }
.dive__content { position: absolute; inset: 0; padding: 40px 32px 150px; display: flex; flex-direction: column; justify-content: space-between; align-items: center; will-change: opacity, transform, filter; }
.dive__top, .dive__bottom { position: relative; z-index: 1; width: 100%; max-width: 1216px; display: flex; }
.dive__bottom { justify-content: space-between; align-items: flex-end; }
.dive__h { white-space: pre; transform-origin: 50% 100%; will-change: transform; }
.dive__h--2 { text-align: right; }
.dive__copy { width: 380px; display: flex; flex-direction: column; gap: 28px; }
.dive__actions { display: flex; align-items: center; gap: 12px; }

/* load appear (Framer appear: opacity .001 → 1, y → 0, spring) */
[data-hero-appear] { opacity: 0.001; transform: translateY(var(--y, 32px)); }
.is-ready [data-hero-appear] { opacity: 1; transform: none; transition: opacity var(--dur, 1s) var(--spring) var(--d, 0s), transform var(--dur, 1s) var(--spring) var(--d, 0s); }

/* scroll cue */
.scue { position: absolute; z-index: 3; left: 50%; bottom: 20px; transform: translateX(-50%); display: inline-flex; flex-direction: column; align-items: center; gap: 10px; padding: 6px 10px; color: var(--muted); transition: opacity 0.2s ease; }
@media (hover: hover) and (pointer: fine) { .scue:hover { opacity: 0.8; } }
.scue__label { font: 500 12px var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text); text-shadow: 0 1px 12px rgba(0, 0, 0, 0.8); }
.scue__line { position: relative; width: 1px; height: 44px; background: rgba(250, 250, 249, 0.18); overflow: hidden; }
.scue__line span { position: absolute; left: -1px; width: 3px; height: 14px; border-radius: 2px; background: #ff6a1f; box-shadow: 0 0 12px #ff6a1f; animation: scFall 1.8s cubic-bezier(0.77, 0, 0.175, 1) infinite; }
@keyframes scFall { 0% { transform: translateY(-16px); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(46px); opacity: 0; } }

/* past the horizon */
.dive__past { position: absolute; inset: 0; padding: 0 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; text-align: center; opacity: 0; pointer-events: none; will-change: opacity, transform, filter; }
.dive__past .t-h2 { max-width: 880px; }
.dive__past .t-lead { max-width: 560px; }

/* dive gauge (right edge) */
.gauge { position: absolute; top: 0; bottom: 0; right: 0; width: 180px; pointer-events: none; user-select: none; opacity: 0.001; transform: translateX(16px); }
.is-ready .gauge { opacity: 1; transform: none; transition: opacity 1s var(--spring) 0.9s, transform 1s var(--spring) 0.9s; }
.gauge__in { position: absolute; inset: 0; }
.gauge__ticks { position: absolute; top: 8%; bottom: 8%; right: 0; width: 14px; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; }
.gauge__ticks i { display: block; height: 1px; width: 5px; background: rgba(201, 197, 187, 0.28); }
.gauge__ticks i.m5 { width: 9px; } .gauge__ticks i.m10 { width: 14px; }
.gauge__mark { position: absolute; top: 8%; right: 0; display: flex; flex-direction: row-reverse; align-items: center; gap: 8px; transform: translateY(-50%); white-space: nowrap; }
.gauge__line { width: 22px; height: 1.5px; background: #efe2d3; }
.gauge__txt { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font: 400 12px var(--f-mono); }
.gauge__label { letter-spacing: 0.04em; color: rgba(201, 197, 187, 0.62); }
.gauge__val { color: #efe2d3; font-variant-numeric: tabular-nums; }
.gauge__val sub { font-size: 0.7em; }

@media (max-width: 1199.98px) {
  .dive__scrim { height: 70%; background: linear-gradient(#110f0d00 0%, #110f0dd9 32%, #110f0df2 100%); }
  .dive__content { padding: 32px 24px 140px; }
  .dive__bottom { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 36px; }
  .dive__h--2 { text-align: left; }
}
@media (max-width: 809.98px) {
  .dive__scrim { height: 72%; background: linear-gradient(#110f0d00 0%, #110f0de0 30%, #110f0df5 100%); }
  .dive__content { padding: 24px 16px 116px; }
  .dive__bottom { gap: 28px; }
  .dive__copy { width: 100%; }
  .dive__actions { flex-wrap: wrap; }
  .dive__past { padding: 0 16px; }
  .scue, .gauge { display: none; }
}
