/* Editorial type and motion layer. Falls back cleanly when the local font is unavailable. */
:root{font-family:"Aptos","Segoe UI Variable Text","Segoe UI",sans-serif;--font-display:"Aptos Display","Segoe UI Variable Display","Segoe UI",sans-serif;--font-mono:"Cascadia Code","SFMono-Regular",monospace}
body{letter-spacing:-.01em}.brand,h1,h2,h3,.download-card h3,.button,.header nav,.scenario-tabs button,.resource-list h3{font-family:var(--font-display)}
h1,h2{font-weight:680;letter-spacing:-.055em}h3{font-weight:650;letter-spacing:-.03em}.brand{font-weight:760;letter-spacing:-.06em}.header nav{font-weight:520;letter-spacing:-.015em}.button{letter-spacing:-.02em}.eyebrow,.micro,.shot-caption,.principles>span,.hero-foot,.ld-titlebar,.ld-toolbar small{font-family:var(--font-mono);font-weight:600}
.header nav a{position:relative;transition:color .25s ease}.header nav a:after{content:'';position:absolute;left:0;right:100%;bottom:-10px;height:2px;background:var(--accent);transition:right .28s cubic-bezier(.2,.8,.2,1)}.header nav a:hover:after,.header nav a[aria-current=true]:after{right:0}.header nav a[aria-current=true]{color:var(--text)}
@keyframes section-rise{from{opacity:0;transform:translateY(24px);filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}
.motion-ready .reveal{opacity:0;transform:translateY(24px)}.motion-ready .reveal.is-visible{animation:section-rise .8s cubic-bezier(.2,.75,.25,1) forwards}.motion-ready .reveal:nth-child(2){animation-delay:.07s}.motion-ready .reveal:nth-child(3){animation-delay:.14s}
.hero-copy{animation:section-rise .8s cubic-bezier(.2,.75,.25,1) both}.product-shot{animation:section-rise .9s .1s cubic-bezier(.2,.75,.25,1) both}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal,.hero-copy,.product-shot{animation:none!important;opacity:1;transform:none;filter:none}.header nav a:after{transition:none}}
