/* QAVLA Motion & Interaction System v1.0
   Lightweight, dependency-free motion designed around the QAVLA dark/green SaaS visual language.
   Respects prefers-reduced-motion and avoids layout-affecting transforms where possible. */
:root{--qavla-green:#49f39b;--qavla-blue:#4c7dff;--qavla-cyan:#55e6ff;--motion-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:90px}
body{overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9997;opacity:0;transition:opacity .25s ease;background:radial-gradient(480px circle at var(--mx,50%) var(--my,50%),rgba(73,243,155,.065),transparent 60%)}
body.q-motion-cursor::before{opacity:1}
.q-scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--qavla-green),var(--qavla-cyan));z-index:10000;box-shadow:0 0 14px rgba(73,243,155,.7)}
.q-motion-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(1px);opacity:.22;mix-blend-mode:screen;animation:qOrbFloat 12s ease-in-out infinite}
.q-motion-orb--green{width:340px;height:340px;background:radial-gradient(circle,rgba(73,243,155,.34),transparent 68%)}
.q-motion-orb--blue{width:260px;height:260px;background:radial-gradient(circle,rgba(76,125,255,.28),transparent 68%);animation-delay:-4s}
.hero{position:relative;isolation:isolate;overflow:hidden}
.hero::before{content:"";position:absolute;width:680px;height:680px;right:-260px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(73,243,155,.12),transparent 68%);filter:blur(4px);z-index:-1;animation:qHeroPulse 8s ease-in-out infinite}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 38%,rgba(73,243,155,.045) 48%,transparent 58%);transform:translateX(-110%);animation:qScan 9s ease-in-out infinite;pointer-events:none}
.reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .8s var(--motion-ease),transform .8s var(--motion-ease);will-change:opacity,transform}
.reveal.is-visible{opacity:1;transform:none}
.reveal-scale{opacity:0;transform:scale(.96) translateY(12px);transition:opacity .75s var(--motion-ease),transform .75s var(--motion-ease)}
.reveal-scale.is-visible{opacity:1;transform:none}
.motion-stagger>*{opacity:0;transform:translateY(18px);transition:opacity .65s var(--motion-ease),transform .65s var(--motion-ease)}
.motion-stagger.is-visible>*{opacity:1;transform:none}
.motion-stagger.is-visible>*:nth-child(1){transition-delay:.03s}.motion-stagger.is-visible>*:nth-child(2){transition-delay:.08s}.motion-stagger.is-visible>*:nth-child(3){transition-delay:.13s}.motion-stagger.is-visible>*:nth-child(4){transition-delay:.18s}.motion-stagger.is-visible>*:nth-child(5){transition-delay:.23s}.motion-stagger.is-visible>*:nth-child(6){transition-delay:.28s}.motion-stagger.is-visible>*:nth-child(7){transition-delay:.33s}.motion-stagger.is-visible>*:nth-child(8){transition-delay:.38s}
.btn{position:relative;overflow:hidden;isolation:isolate;transform:translateZ(0);transition:transform .22s var(--motion-ease),box-shadow .22s ease,background .22s ease,border-color .22s ease}
.btn::after{content:"";position:absolute;inset:-2px -40%;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.35) 50%,transparent 62%);transform:translateX(-120%);transition:transform .7s ease;z-index:-1}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn-primary:hover{box-shadow:0 12px 32px rgba(73,243,155,.22)}
.btn-blue:hover{box-shadow:0 12px 32px rgba(76,125,255,.24)}
.card-tilt{transform-style:preserve-3d;transition:transform .25s ease,box-shadow .25s ease}
.card-tilt:hover{box-shadow:0 20px 50px rgba(6,16,22,.12)}
.dashboard{transform-style:preserve-3d;will-change:transform;transition:transform .18s ease-out,box-shadow .35s ease}
.dashboard:hover{box-shadow:0 32px 90px rgba(0,0,0,.34)}
.dashboard .chat{animation:qFloat 5s ease-in-out infinite}
.dashboard .stat{transition:transform .25s ease,background .25s ease,border-color .25s ease}
.dashboard .stat:hover{transform:translateY(-5px);border-color:rgba(73,243,155,.45);background:rgba(255,255,255,.08)}
.dash-sidebar .side-item{transition:background .2s ease,color .2s ease,transform .2s ease}
.dash-sidebar .side-item:hover{transform:translateX(4px);background:rgba(73,243,155,.08);color:#fff}
.engine-steps{position:relative}
.engine-steps::before{content:"";position:absolute;left:3%;right:3%;top:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(73,243,155,.35),transparent);pointer-events:none}
.step{position:relative;z-index:1;transition:transform .3s var(--motion-ease)}
.step:hover{transform:translateY(-8px)}
.step-icon{transition:transform .35s var(--motion-ease),box-shadow .35s ease,background .35s ease}
.step:hover .step-icon{transform:scale(1.08) rotate(-5deg);box-shadow:0 10px 30px rgba(73,243,155,.18);background:#d8fbea}
.step.is-active .step-icon{background:var(--qavla-green);box-shadow:0 0 0 7px rgba(73,243,155,.12),0 10px 30px rgba(73,243,155,.25);transform:scale(1.08)}
.step.is-active h3{color:#0c9d58}
.kpi,.stat,.price-card,.resource-card,.fact,.time-value,.roi-number,.author,.toc,.nap{transition:transform .28s var(--motion-ease),box-shadow .28s ease,border-color .28s ease}
.kpi:hover,.stat:hover,.resource-card:hover,.roi-number:hover,.author:hover,.toc:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(6,16,22,.10);border-color:rgba(73,243,155,.38)}
.price-card:hover{transform:translateY(-8px);box-shadow:0 24px 60px rgba(6,16,22,.13)}
.price-card.popular:hover{box-shadow:0 28px 70px rgba(17,150,86,.18)}
.fact{position:relative;overflow:hidden}.fact::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:35%;background:var(--qavla-green);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--motion-ease)}.fact:hover::after{transform:scaleX(1)}
.animated-number{font-variant-numeric:tabular-nums}
.chart svg polyline{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 1.7s var(--motion-ease)}
.chart.is-visible svg polyline{stroke-dashoffset:0}
.chart::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(73,243,155,.09),transparent);transform:translateX(-100%);animation:qChartScan 4.5s ease-in-out infinite;pointer-events:none}
.chat .metric,.chat p,.chat>div:last-child{animation:qChatIn .55s var(--motion-ease) both}
.chat p{animation-delay:.35s}.chat>div:last-child{animation-delay:.75s}
.media-card{transition:transform .4s var(--motion-ease),box-shadow .4s ease}.media-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(6,16,22,.18)}
.media-card::before{transition:transform .35s ease,border-color .35s ease}.media-card:hover::before{transform:scale(1.12);border-color:var(--qavla-green)}
.q-demo-modal{position:fixed;inset:0;display:grid;place-items:center;padding:22px;background:rgba(2,8,12,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:10001;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}
.q-demo-modal.is-open{opacity:1;visibility:visible}
.q-demo-dialog{width:min(920px,100%);background:#08141b;border:1px solid rgba(255,255,255,.12);border-radius:24px;box-shadow:0 35px 100px rgba(0,0,0,.45);color:#fff;overflow:hidden;transform:translateY(18px) scale(.97);transition:transform .45s var(--motion-ease)}
.q-demo-modal.is-open .q-demo-dialog{transform:none}
.q-demo-top{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.q-demo-close{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:transparent;color:#fff;font-size:20px;cursor:pointer}
.q-demo-body{padding:26px;display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.q-demo-chat{background:#0d202a;border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:18px}
.q-demo-bubble{max-width:80%;padding:12px 14px;border-radius:14px;margin:9px 0;font-size:14px;line-height:1.45;animation:qChatIn .45s var(--motion-ease) both}.q-demo-bubble.user{background:#1c303a;margin-left:auto}.q-demo-bubble.ai{background:#dffbed;color:#092117}.q-demo-pipeline{display:grid;gap:9px}.q-demo-stage{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:12px;background:#0d202a;border:1px solid rgba(255,255,255,.08);font-size:13px;transition:.25s ease}.q-demo-stage.is-on{border-color:rgba(73,243,155,.45);background:rgba(73,243,155,.08);box-shadow:0 0 30px rgba(73,243,155,.08)}.q-demo-dot{width:9px;height:9px;border-radius:50%;background:#5d6b72}.q-demo-stage.is-on .q-demo-dot{background:var(--qavla-green);box-shadow:0 0 12px rgba(73,243,155,.9)}
.q-toast{position:fixed;right:18px;bottom:18px;z-index:10002;max-width:360px;padding:13px 16px;border-radius:13px;background:#071017;color:#fff;border:1px solid rgba(73,243,155,.35);box-shadow:0 18px 50px rgba(0,0,0,.25);opacity:0;transform:translateY(12px);pointer-events:none;transition:.35s var(--motion-ease)}.q-toast.is-visible{opacity:1;transform:none}
.q-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--qavla-green);box-shadow:0 0 0 0 rgba(73,243,155,.7);animation:qPulse 2s infinite;margin-right:7px;vertical-align:middle}
@keyframes qOrbFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(25px,-18px,0)}}
@keyframes qHeroPulse{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.08);opacity:1}}
@keyframes qScan{0%,55%,100%{transform:translateX(-110%)}75%{transform:translateX(110%)}}
@keyframes qChartScan{0%,60%,100%{transform:translateX(-100%)}80%{transform:translateX(100%)}}
@keyframes qFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes qChatIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes qPulse{0%{box-shadow:0 0 0 0 rgba(73,243,155,.55)}70%{box-shadow:0 0 0 9px rgba(73,243,155,0)}100%{box-shadow:0 0 0 0 rgba(73,243,155,0)}}
@media(max-width:760px){.q-demo-body{grid-template-columns:1fr}.engine-steps::before{display:none}.q-motion-orb{display:none}}
@media(prefers-reduced-motion:reduce){body::before,.q-motion-orb,.hero::before,.hero::after,.dashboard .chat,.chat .metric,.chat p,.chat>div:last-child,.q-live-dot,.chart::after{animation:none!important}.reveal,.reveal-scale,.motion-stagger>*{opacity:1!important;transform:none!important;transition:none!important}.btn,.dashboard,.card-tilt,.step,.kpi,.stat,.price-card,.resource-card,.fact,.time-value,.roi-number,.author,.toc,.nap{transition:none!important}.chart svg polyline{stroke-dashoffset:0!important;transition:none!important}.q-demo-modal{backdrop-filter:none}}
@media(max-width:900px){.navlinks{position:absolute;left:14px;right:14px;top:68px;display:none!important;flex-direction:column;align-items:stretch;gap:0;padding:10px;background:rgba(5,13,18,.97);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.35);z-index:9999}.navlinks.is-open{display:flex!important}.navlinks a{padding:13px 14px;border-radius:10px}.navlinks a:hover{background:rgba(73,243,155,.08)}}
