/* Issues #2–#4: legible navigation and restrained interaction feedback. */
.site-header nav a{text-transform:uppercase;font-size:11px;letter-spacing:.1em}
.site-header nav a:after{height:2px;transform-origin:left;background:linear-gradient(90deg,transparent,var(--purple) 25%,var(--purple) 75%,transparent)}
.site-header nav a:before{content:'';position:absolute;inset:0 -9px;pointer-events:none;border-inline:1px solid #bda0f580;opacity:0;transform:scaleX(.85);transition:opacity 180ms var(--ease),transform 240ms var(--ease)}
.site-header nav a:hover:before,.site-header nav a:focus-visible:before{opacity:1;transform:scaleX(1)}
.privacy-content{max-width:800px}.privacy-content h1{font-size:clamp(42px,6vw,72px);margin-bottom:32px}.privacy-content h2{font-size:26px;margin-top:36px;margin-bottom:14px;letter-spacing:-.03em}.privacy-content p{font-size:15px;line-height:1.8;margin-bottom:16px;color:#c4bccf}.privacy-content a{text-decoration:underline;text-underline-offset:4px}.header-privacy-contact{font-size:12px}
@media(prefers-reduced-motion:no-preference){
 .scroll-reveal{transition:opacity 550ms var(--ease),transform 550ms var(--ease)}
 .scroll-reveal.is-pending{opacity:0;transform:translateY(18px)}
 .application-card.scroll-reveal{transition-delay:var(--reveal-delay,0ms)}
}
@media(prefers-reduced-motion:reduce){.scroll-reveal,.site-header nav a:before{transition:none}.scroll-reveal.is-pending{opacity:1;transform:none}.site-header nav a:before{transform:none}}

/* Consistent action typography, with section-specific entrance choreography. */
.button,.header-contact,.quiet-link,.full-specs summary,.scene-controls button{ text-transform:uppercase;letter-spacing:.055em }
@media(prefers-reduced-motion:no-preference){.scroll-reveal{transition:opacity 620ms var(--ease),transform 620ms var(--ease);transition-delay:var(--reveal-delay,0ms)}.scroll-reveal.is-pending{transform:translateY(22px)}}
@media(max-width:700px){.scene-controls button,.scene-controls #cloud-pause{font-size:9px;padding-inline:3px;letter-spacing:.025em}.button{letter-spacing:.035em}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{transition:none!important;transition-delay:0ms!important}.scroll-reveal.is-pending{opacity:1;transform:none}}
@media(max-width:360px){.scene-controls button,.scene-controls #cloud-pause{font-size:8px;padding-inline:2px;letter-spacing:0}}

/* Supporting content waits for its title's real completion event. */
.hero-aside,.perception-panel{animation:none}

/* Touch gestures remain native; the canvas never captures vertical scrolling. */
.perception-panel,#perception-cloud{touch-action:pan-y pinch-zoom}
.touch-guidance{display:none}
@media(max-width:700px){.touch-guidance{display:block;font-size:10px;line-height:1.6;color:#aaa2b8;margin-top:10px;max-width:100%}}
