:root { --motion-instant: 1ms; --motion-fast: 160ms; --motion-normal: 240ms; --motion-slow: 420ms; --motion-ease: cubic-bezier(.2,.7,.2,1); --live-up: #16d7aa; --live-down: #ff4d00; }
main :where(h1,h2,h3,h4) { text-wrap: balance; }
main :where(.page-heading h1,.home-hero h1,.asset-header h1,.marketing-hero-copy h1) { line-height: .9; letter-spacing: -.055em; }
.marketing-hero-copy h1 { font-size: clamp(3.4rem,8.4vw,8.8rem); line-height: .84; }
.page-heading h1 { font-size: clamp(2.7rem,5.6vw,5.8rem); }
.marketing-hero-lead,.page-heading > p:not(.eyebrow) { max-width: 68ch; line-height: 1.48; }
[data-live-value],.live-value { transition: color var(--motion-normal) var(--motion-ease),transform var(--motion-normal) var(--motion-ease); }
.live-value--up { color: var(--live-up) !important; animation: live-value-settle var(--motion-slow) var(--motion-ease) both; }
.live-value--down { color: var(--live-down) !important; animation: live-value-settle var(--motion-slow) var(--motion-ease) both; }
.live-value--neutral { animation: live-value-settle var(--motion-slow) var(--motion-ease) both; }
@keyframes live-value-settle { 0% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
.live-refreshing .status-dot { animation: live-status 1.2s var(--motion-ease) infinite; }
@keyframes live-status { 50% { opacity: .45; transform: scale(.78); } }
@media (prefers-reduced-motion: reduce) { .live-value--up,.live-value--down,.live-value--neutral,.live-refreshing .status-dot { animation: none !important; } [data-live-value],.live-value { transition: none !important; } }
