/* Motion is decorative: content stays visible when JavaScript is unavailable. */
.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--blue);transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none}
.nav{position:sticky;top:0;z-index:20;background:rgba(244,243,237,.95);backdrop-filter:blur(16px)}
html{scroll-padding-top:130px}
.nav nav a{position:relative;padding:10px 0;transition:color .25s}
.nav nav a::after{content:'';position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.nav nav a:hover::after,.nav nav a[aria-current]::after{transform:scaleX(1)}
.nav nav a[aria-current]{color:var(--blue)}
.motion-toggle{position:fixed;right:18px;bottom:18px;z-index:25;border:1px solid #bac3b3;border-radius:30px;background:rgba(244,243,237,.96);color:var(--ink);padding:10px 15px;font-size:12px;box-shadow:0 4px 20px #17231f12;backdrop-filter:blur(10px)}
.button span,.nav-cta span,.text-link span{display:inline-block;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.button:hover span,.nav-cta:hover span,.text-link:hover span{transform:translate(3px,-3px)}
.image-button{transition:box-shadow .35s,transform .35s}.image-button:hover{transform:translateY(-4px);box-shadow:0 22px 45px #11231820}
.circle{transition:background .25s,transform .25s}.circle:hover{transform:scale(1.08)}
.tabs button{transition:color .25s,border-color .25s,background .25s}.tabs button:hover{background:#e6eade55}
.comparison article,.platform-grid article{transition:border-color .3s}.comparison article:hover,.platform-grid article:hover{border-color:var(--blue)}
.signal-grid{inset:-64px;animation:grid-drift 24s linear infinite}.evidence-tag{animation:note-float 6s ease-in-out infinite}.hero .dot{animation:signal-pulse 3s ease-in-out infinite}
@keyframes grid-drift{to{transform:translate(64px,64px)}}
@keyframes note-float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-7px) rotate(-2deg)}}
@keyframes signal-pulse{0%,100%{box-shadow:0 0 0 0 #1955ef00}50%{box-shadow:0 0 0 6px #1955ef16}}
dialog[open]{animation:viewer-enter .3s cubic-bezier(.2,.7,.2,1)}
@keyframes viewer-enter{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.motion-off,.motion-off *{scroll-behavior:auto!important}.motion-off *{animation-play-state:paused!important;transition:none!important}
@media(max-width:700px){html{scroll-padding-top:95px}.motion-toggle{right:12px;bottom:12px;font-size:12px;padding:9px 12px}.nav{backdrop-filter:blur(10px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.image-button:hover,.circle:hover,.button:hover,.button:hover span{transform:none}}
@media print{.reading-progress,.motion-toggle{display:none}.nav{position:static}*{animation:none!important}}
