/*
 * Premium motion layer (all public pages except the standalone Diwali page).
 * Ideas adapted from big-type tickers, scroll-velocity marquees, word-rise headings, mesh backgrounds and soft cursors.
 * Everything here is progressive: no JS or reduced motion = the normal, fully visible page.
 */

/* ---------- smooth page-to-page fade (browsers that support cross-document view transitions) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: pm-vt-out .28s ease both; }
::view-transition-new(root) { animation: pm-vt-in .42s cubic-bezier(.2, .7, .2, 1) both; }
.sx-header { view-transition-name: sx-header; }
::view-transition-group(sx-header) { animation-duration: 0s; }
@keyframes pm-vt-out { to { opacity: 0; } }
@keyframes pm-vt-in { from { opacity: 0; transform: translateY(10px); } }

/* ---------- lenis helpers ---------- */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* ---------- reading progress (pages without the homepage bar) ---------- */
.pm-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1100; pointer-events: none; }
.pm-progress span { display: block; height: 100%; transform-origin: left; transform: scaleX(var(--p, 0)); background: linear-gradient(90deg, #129b2e, #2fc24a, #8be99b); box-shadow: 0 0 12px rgba(47, 194, 74, .6); }

/* ---------- word-rise headings ---------- */
.pm-words .pm-w { display: inline-block; opacity: 0; transform: translateY(.55em); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 45ms); will-change: transform, opacity; }
.pm-words.pm-in .pm-w { opacity: 1; transform: none; }

/* ---------- soft cursor follower (mouse devices only) ---------- */
.pm-cursor { position: fixed; left: 0; top: 0; z-index: 99990; width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 1.5px solid rgba(18, 155, 46, .55); border-radius: 50%; pointer-events: none; opacity: 0; transition: width .25s ease, height .25s ease, margin .25s ease, background-color .25s ease, border-color .25s ease, opacity .3s ease; will-change: transform; mix-blend-mode: multiply; }
.pm-cursor.is-on { opacity: 1; }
.pm-cursor.is-link { width: 64px; height: 64px; margin: -32px 0 0 -32px; background: rgba(47, 194, 74, .16); border-color: rgba(18, 155, 46, .8); }
.pm-cursor.is-dark { border-color: rgba(139, 233, 155, .8); mix-blend-mode: normal; }
.pm-dot { position: fixed; left: 0; top: 0; z-index: 99991; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #129b2e; pointer-events: none; opacity: 0; transition: opacity .3s ease; will-change: transform; }
.pm-dot.is-on { opacity: 1; }

/* ---------- big-type ticker band (speeds up with scroll) ---------- */
.pm-ticker { position: relative; overflow: hidden; padding: 30px 0; background: #070b08; border-top: 1px solid rgba(255, 255, 255, .08); border-bottom: 1px solid rgba(255, 255, 255, .08); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.pm-ticker.light { background: #fff; border-color: #e4eae6; }
.pm-ticker-track { display: flex; width: max-content; will-change: transform; }
.pm-ticker-row { display: flex; flex: none; align-items: center; gap: 44px; padding-right: 44px; }
.pm-ticker-row span { display: inline-flex; align-items: center; gap: 44px; font-family: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif; font-size: clamp(2rem, 5vw, 4rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1; white-space: nowrap; color: transparent; -webkit-text-stroke: 1.5px rgba(255, 255, 255, .55); transition: color .3s ease, -webkit-text-stroke-color .3s ease; }
.pm-ticker-row span:nth-child(even) { color: #fff; -webkit-text-stroke: 0; }
.pm-ticker-row span::after { content: "\2726"; font-size: .45em; color: #2fc24a; -webkit-text-stroke: 0; }
.pm-ticker.light .pm-ticker-row span { -webkit-text-stroke-color: rgba(7, 11, 8, .45); }
.pm-ticker.light .pm-ticker-row span:nth-child(even) { color: #070b08; }
.pm-ticker:hover .pm-ticker-row span:not(:nth-child(even)) { color: rgba(47, 194, 74, .18); -webkit-text-stroke-color: #2fc24a; }
.pm-ticker.no-js .pm-ticker-track { animation: pm-tick 38s linear infinite; }
@keyframes pm-tick { to { transform: translateX(-50%); } }

/* ---------- mesh drift on dark sections ---------- */
.hp .hx-dark::before { animation: pm-drift 18s ease-in-out infinite alternate; }
@keyframes pm-drift { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(-40px, 30px, 0) scale(1.12); } }

/* ---------- cta band: slow sheen ---------- */
.hp .abx-band, .hp .bl-promo { background-size: 160% 160%; animation: pm-sheen 14s ease-in-out infinite alternate; }
@keyframes pm-sheen { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }

/* ---------- hover polish shared by inner-page buttons ---------- */
.hp .hx-btn, .pg-btn, .pg-buy { will-change: transform; }

/* ---------- stat counters ---------- */
[data-pm-count] { font-variant-numeric: tabular-nums; }

@media (max-width: 767.98px) {
    .pm-ticker { padding: 22px 0; }
    .pm-ticker-row, .pm-ticker-row span { gap: 28px; }
    .pm-ticker-row { padding-right: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }
    .pm-words .pm-w { opacity: 1; transform: none; transition: none; }
    .pm-cursor, .pm-dot { display: none; }
    .hp .hx-dark::before, .hp .abx-band, .hp .bl-promo { animation: none; }
    .pm-ticker.no-js .pm-ticker-track { animation-duration: 90s; }
}
@media (hover: none), (pointer: coarse) {
    .pm-cursor, .pm-dot { display: none; }
}
