.reveal { opacity: 0; transform: translateY(22px); transition: opacity .72s ease, transform .72s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.hero-visual { animation: slow-drift 18s ease-in-out infinite alternate; }
.console-panel { transition: transform .26s ease, border-color .26s ease, background .26s ease; }
.product-console:hover .code-panel { transform: translate3d(-4px, -4px, 0); }
.product-console:hover .status-panel { transform: translate3d(4px, -6px, 0); }
.product-console:hover .command-panel { transform: translate3d(0, 4px, 0); }
.console-flow b { background-size: 220% 100%; animation: flow-sweep 3.8s linear infinite; }
.console-flow b:nth-child(2) { animation-delay: -1.2s; }
.console-flow b:nth-child(3) { animation-delay: -2.1s; }
.signal-bars i { animation: signal-rise 2.8s ease-in-out infinite; transform-origin: bottom; }
.signal-bars i:nth-child(2) { animation-delay: -.5s; }
.signal-bars i:nth-child(3) { animation-delay: -1s; }
.signal-bars i:nth-child(4) { animation-delay: -1.5s; }
.timeline-play.is-playing { background: var(--lime); color: #071006; }
.timeline-play.is-playing + ol .active:before { animation: pulse-dot 1.2s ease-in-out infinite; }
.magnetic { position: relative; overflow: hidden; }
.magnetic:after { content: ""; position: absolute; inset: -40% -20%; opacity: 0; background: linear-gradient(110deg, transparent 38%, rgba(255,255,255,.5), transparent 62%); transform: translateX(-80%); transition: opacity .2s ease; }
.magnetic:hover:after { opacity: .82; animation: sheen .9s ease; }
.showcase-stack span, .workflow-board div, .contact-list a { transition: transform .24s ease, border-color .24s ease, background .24s ease; }
.showcase-stack span:hover, .contact-list a:hover { transform: translateY(-4px); border-color: var(--line-strong); background: rgba(215,255,100,.055); }
.workflow-board div:hover { transform: translateX(8px); border-color: rgba(57,217,255,.36); background: rgba(57,217,255,.06); }
.site-header.nav-open .nav-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.site-header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
.site-header.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.nav-toggle span { transition: transform .2s ease, opacity .2s ease; }
@keyframes flow-sweep { from { background-position: 0 50%; } to { background-position: 200% 50%; } }
@keyframes slow-drift { from { transform: scale(1.015) translateX(0); } to { transform: scale(1.04) translateX(-14px); } }
@keyframes pulse-dot { 0%, 100% { box-shadow: 0 0 18px rgba(215,255,100,.55); } 50% { box-shadow: 0 0 38px rgba(215,255,100,.9); } }
@keyframes signal-rise { 0%, 100% { transform: scaleY(.72); opacity: .62; } 50% { transform: scaleY(1); opacity: .96; } }
@keyframes sheen { from { transform: translateX(-80%); } to { transform: translateX(80%); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
