/* Xorvin motion system: subtle movement conveys live customer operations. */
.site-header {
  position: sticky;
  top: 0;
  transition: background .25s ease, box-shadow .25s ease, backdrop-filter .25s ease;
}
.site-header.is-scrolled {
  background: rgba(6, 18, 27, .82);
  backdrop-filter: blur(15px);
  box-shadow: 0 1px 0 rgba(148, 190, 227, .13);
}
.site-header.is-scrolled .nav { height: 70px; }
.nav { transition: height .25s ease; }

.pulse { animation: status-pulse 2.6s ease-out infinite; }
.brand-logo { transition: transform .25s ease, filter .25s ease; }
.brand:hover .brand-logo { transform: scale(1.035); filter: drop-shadow(0 0 8px rgba(92, 154, 205, .3)); }
.nav-links a:not(.nav-cta) { position: relative; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #d0e2f2; outline-offset: 3px; }
.nav-links a:not(.nav-cta)::after { content: ''; position: absolute; height: 1px; left: 0; right: 0; bottom: -5px; background: #94bee3; transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.nav-links a:not(.nav-cta):hover::after, .nav-links a:not(.nav-cta):focus-visible::after { transform: scaleX(1); transform-origin: left; }

.button-primary, .nav-cta { position: relative; overflow: hidden; isolation: isolate; }
.button-primary::before, .nav-cta::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(115deg, transparent 22%, rgba(255, 255, 255, .34) 45%, transparent 64%); transform: translateX(-120%); transition: transform .55s ease; }
.button-primary:hover::before, .nav-cta:hover::before { transform: translateX(120%); }
.button, .nav-cta, .tab, .scenario, .problem-card, .price-card, .proof-list > div, .flow-step > div, .security-checks div { transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease, color .22s ease; }
.problem-card:hover, .price-card:hover { transform: translateY(-6px); border-color: rgba(148, 190, 227, .5); box-shadow: 0 16px 34px rgba(0, 0, 0, .18); }
.flow-step:hover > div { transform: translateX(7px); border-color: rgba(148, 190, 227, .52); }
.proof-list > div:hover { transform: translateX(7px); }
.security-checks div:hover { transform: translateX(5px); }
.tab:not(.active):hover { transform: translateY(-2px); }
.scenario:hover { transform: translateX(4px); }

.hero-product { animation: hero-ambient 8s ease-in-out infinite; }
.chat-window { animation: conversation-float 6.5s ease-in-out infinite; }
.dashboard-window { animation: dashboard-float 7.5s ease-in-out infinite .5s; }
.floating-card { animation: status-float 4.5s ease-in-out infinite; }
.orbit-one { animation: orbit-turn 28s linear infinite; }
.orbit-two { animation: orbit-turn 40s linear infinite reverse; }
.connected i, .green-dot { animation: connection-beacon 2s ease-in-out infinite; }
.bars i { transform-origin: bottom; animation: metric-rise .7s ease both; }
.bars i:nth-child(2) { animation-delay: .08s; }.bars i:nth-child(3) { animation-delay: .16s; }.bars i:nth-child(4) { animation-delay: .24s; }.bars i:nth-child(5) { animation-delay: .32s; }.bars i:nth-child(6) { animation-delay: .4s; }.bars i:nth-child(7) { animation-delay: .48s; }

.industry-panel.panel-enter { animation: panel-arrive .42s cubic-bezier(.2, .7, .2, 1); }
.demo-chat.is-updating .demo-bubble.customer { animation: message-arrive .32s ease; }
.demo-chat.is-updating .demo-bubble.agent { animation: agent-arrive .45s ease .08s both; }
.demo-chat.is-updating .workflow-result { animation: result-arrive .48s cubic-bezier(.2, .9, .2, 1) .15s both; }
.demo-chat.is-updating .intent b { animation: status-pop .38s ease .04s both; }
.faq details { transition: background .2s ease, border-color .2s ease; }
.faq details[open] { background: rgba(148, 190, 227, .05); border-color: rgba(148, 190, 227, .35); }
.audit { background-size: 180% 180%; animation: gradient-shift 14s ease infinite; }
.audit-form { transition: transform .25s ease, box-shadow .25s ease; }
.audit-form:focus-within { transform: translateY(-4px); box-shadow: 0 25px 56px rgba(26, 49, 69, .24); }

@keyframes status-pulse { 0%, 100% { box-shadow: 0 0 0 4px rgba(71, 120, 161, .18); } 50% { box-shadow: 0 0 0 8px rgba(71, 120, 161, 0); } }
@keyframes hero-ambient { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes conversation-float { 0%, 100% { transform: translateY(0) rotate(-2.3deg); } 50% { transform: translateY(-10px) rotate(-1.5deg); } }
@keyframes dashboard-float { 0%, 100% { transform: translateY(0) rotate(2.2deg); } 50% { transform: translateY(9px) rotate(1.5deg); } }
@keyframes status-float { 0%, 100% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-7px) rotate(2deg); } }
@keyframes orbit-turn { to { rotate: 360deg; } }
@keyframes connection-beacon { 0%, 100% { opacity: 1; } 50% { opacity: .42; } }
@keyframes metric-rise { from { transform: scaleY(.2); opacity: .35; } to { transform: scaleY(1); opacity: 1; } }
@keyframes panel-arrive { from { opacity: .35; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes message-arrive { from { opacity: .25; transform: translateX(-12px); } to { opacity: 1; transform: translateX(0); } }
@keyframes agent-arrive { from { opacity: .25; transform: translateX(12px); } to { opacity: 1; transform: translateX(0); } }
@keyframes result-arrive { from { opacity: .25; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes status-pop { from { opacity: .3; transform: scale(.86); } to { opacity: 1; transform: scale(1); } }
@keyframes gradient-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

@media (max-width: 650px) {
  .site-header.is-scrolled .nav { height: 62px; }
  .site-header.is-scrolled .nav-links { top: 62px; }
  .problem-card:hover, .price-card:hover, .flow-step:hover > div, .proof-list > div:hover, .security-checks div:hover, .scenario:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
