:root{
  --bg:#FFFDF9; --bg2:#FBF8F2; --surface:#FFFFFF; --surface2:#F7F4FC;
  --stroke:rgba(26,21,35,.08); --stroke2:rgba(26,21,35,.14);
  --text:#1A1523; --muted:#6E6880; --dim:#9B95AB;
  --p1:#7C5CFF; --p2:#4D9FFF; --mint:#2EC4A6; --gold:#F4B03E; --pink:#F15BB5; --coral:#FF7A59;
  --grad:linear-gradient(120deg,#7C5CFF,#4D9FFF);
  --shadow:0 20px 60px rgba(124,92,255,.14);
  --card-shadow:0 6px 30px rgba(26,21,35,.06);
  --radius:22px;
}
[data-theme="dark"]{
  --bg:#0C0B12; --bg2:#100F18; --surface:#16141F; --surface2:#1C1928;
  --stroke:rgba(255,255,255,.08); --stroke2:rgba(255,255,255,.14);
  --text:#F0EEF7; --muted:#A29DB5; --dim:#6B6780;
  --shadow:0 20px 60px rgba(124,92,255,.25);
  --card-shadow:0 6px 30px rgba(0,0,0,.35);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;line-height:1.6;overflow-x:hidden;transition:background .4s,color .4s}
h1,h2,h3{font-family:Sora,sans-serif}
a{color:inherit;text-decoration:none}
section{padding:130px 24px;position:relative}
.wrap{max-width:1120px;margin:0 auto}
.eyebrow{font-size:13px;letter-spacing:.15em;text-transform:uppercase;color:var(--p1);font-weight:700;margin-bottom:16px}
.h2{font-size:clamp(34px,5vw,58px);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:18px}
.sub{color:var(--muted);max-width:620px;font-size:18px}
/* living gradient headings */
.live-grad{background:linear-gradient(110deg,#7C5CFF,#4D9FFF,#2EC4A6,#7C5CFF);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradshift 8s ease-in-out infinite}
@keyframes gradshift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.btn{display:inline-flex;align-items:center;gap:10px;border-radius:16px;font-weight:700;cursor:pointer;border:none;transition:.25s;font-family:Inter;position:relative}
.btn-primary{background:var(--grad);color:#fff;padding:16px 30px;font-size:16px;box-shadow:0 10px 34px rgba(124,92,255,.35)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(124,92,255,.5)}
.btn-ghost{background:transparent;border:1.5px solid var(--stroke2);color:var(--text);padding:14px 24px;font-size:15px}
.btn-ghost:hover{border-color:var(--p1)}
/* download hover swap */
.dl .sub-a,.dl .sub-b{display:block;font-size:11px;font-weight:500;opacity:.85;line-height:1.25;text-align:left;transition:.25s}
.dl .sub-b{display:none}
.dl:hover .sub-a{display:none}
.dl:hover .sub-b{display:block}
.dl .big{font-size:16px;line-height:1.2;text-align:left}

/* ---------- ATMOSPHERE ---------- */
.atmo{position:fixed;inset:0;z-index:-3;pointer-events:none;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(100px);opacity:.5}
.blob.y{width:640px;height:640px;background:#FFE9B0;top:-180px;right:-140px;animation:blobdrift 26s ease-in-out infinite}
.blob.l{width:560px;height:560px;background:#E4DCFF;bottom:-160px;left:-160px;animation:blobdrift 32s ease-in-out infinite reverse}
.blob.m{width:420px;height:420px;background:#DFF3EC;top:38%;left:52%;opacity:.35;animation:blobdrift 40s ease-in-out infinite}
@keyframes blobdrift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-60px,40px) scale(1.08)}66%{transform:translate(50px,-30px) scale(.95)}}
[data-theme="dark"] .blob.y{background:#3a2f10}
[data-theme="dark"] .blob.l{background:#241a4d}
[data-theme="dark"] .blob.m{background:#0f2e28}
.dots{position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:radial-gradient(var(--stroke2) 1px,transparent 1px);background-size:26px 26px;opacity:.55;
mask-image:linear-gradient(180deg,transparent 0%,transparent 18%,#000 45%,#000 70%,transparent 100%)}
.noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}
.particle{position:fixed;width:5px;height:5px;border-radius:50%;background:var(--p1);opacity:.12;pointer-events:none;z-index:-1;transition:opacity .5s,transform .5s,box-shadow .5s}
.particle.awake{opacity:.7;transform:scale(1.7);box-shadow:0 0 14px var(--p1)}

/* ---------- NAV ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--stroke)}
.nav-in{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:28px;padding:14px 24px}
.logo{display:flex;align-items:center;gap:10px;font-family:Sora;font-weight:800;font-size:19px}
.nav-links{display:flex;gap:26px;font-size:14.5px;font-weight:500;color:var(--muted)}
.nav-links a:hover{color:var(--text)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.theme-toggle{width:42px;height:42px;border-radius:12px;border:1.5px solid var(--stroke2);background:var(--surface);cursor:pointer;font-size:17px;display:flex;align-items:center;justify-content:center;transition:.25s}
.theme-toggle:hover{border-color:var(--p1)}
@media(max-width:820px){.nav-links{display:none}}

/* ---------- HERO ---------- */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:150px 24px 80px;position:relative}
.hero h1{font-size:clamp(46px,7.4vw,94px);font-weight:800;letter-spacing:-.035em;line-height:1.04}
.morph-line{display:block;min-height:1.15em}
.morph{display:inline-block;transition:opacity .45s,transform .45s,color .45s}
.morph.out{opacity:0;transform:translateY(20px)}
.hero p.lead{color:var(--muted);font-size:clamp(17px,2vw,21px);max-width:620px;margin:28px auto 42px}
.hero-note{font-size:14px;color:var(--dim);margin-top:18px}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:var(--dim);font-size:13px;animation:hint 3s ease-in-out infinite}
@keyframes hint{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-10px)}}

/* ---------- DEMO ---------- */
.demo-sec{padding-top:20px}
.demo-stage{max-width:980px;margin:0 auto}
.demo-window{background:var(--surface);border:1px solid var(--stroke);border-radius:26px;box-shadow:var(--shadow);overflow:hidden;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.demo-window.z1{transform:scale(1.02) translateY(-6px)}
.demo-window.z2{transform:scale(1.04) translate(-10px,-4px)}
.demo-window.z3{transform:scale(1.028) translate(8px,-8px)}
.demo-bar{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--stroke);background:var(--surface2)}
.demo-bar i{width:11px;height:11px;border-radius:50%}
.demo-bar .t{margin-left:10px;font-size:13px;color:var(--muted);font-weight:600}
.demo-live{margin-left:auto;font-size:12px;font-weight:700;color:#E4483E;display:flex;align-items:center;gap:6px}
.demo-live::before{content:"";width:8px;height:8px;border-radius:50%;background:#E4483E;animation:blinkdot 1.4s infinite}
@keyframes blinkdot{50%{opacity:.25}}
.demo-body{display:grid;grid-template-columns:1fr 1.15fr;min-height:430px}
@media(max-width:820px){.demo-body{grid-template-columns:1fr}}
.demo-left{padding:30px;border-right:1px solid var(--stroke);display:flex;flex-direction:column;gap:18px}
@media(max-width:820px){.demo-left{border-right:none;border-bottom:1px solid var(--stroke)}}
.demo-right{padding:30px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(160deg,color-mix(in srgb,var(--p1) 5%,transparent),transparent)}
.status-pill{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;padding:8px 16px;border-radius:999px;align-self:flex-start;transition:.4s}
.st-listen{background:color-mix(in srgb,var(--mint) 12%,transparent);color:var(--mint)}
.st-think{background:color-mix(in srgb,var(--p1) 10%,transparent);color:var(--p1)}
.st-answer{background:color-mix(in srgb,var(--pink) 10%,transparent);color:var(--pink)}
.wave{display:flex;gap:4px;align-items:flex-end;height:30px}
.wave i{width:4px;background:var(--mint);border-radius:2px;animation:wv 1s ease-in-out infinite}
.wave.quiet i{animation-play-state:paused;height:6px!important}
@keyframes wv{0%,100%{height:6px}50%{height:26px}}
.q-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-weight:700}
.q-text{font-family:Sora;font-size:clamp(18px,2.2vw,23px);font-weight:700;line-height:1.35;min-height:96px}
.caret{border-right:3px solid var(--p1);animation:blinkdot 1s infinite}
.search-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:38px}
.s-chip{font-size:12.5px;padding:6px 12px;border-radius:999px;background:var(--surface2);border:1px solid var(--stroke);color:var(--muted);opacity:0;transform:translateY(8px);transition:.4s}
.s-chip.on{opacity:1;transform:none}
.pet-mini{width:74px;height:74px;margin-bottom:14px}
.a-card{background:var(--surface);border:1.5px solid color-mix(in srgb,var(--p1) 28%,transparent);border-radius:18px;padding:22px;box-shadow:var(--card-shadow);opacity:0;transform:translateY(14px);transition:.6s}
.a-card.on{opacity:1;transform:none}
.a-card h4{font-size:13px;color:var(--p1);margin-bottom:10px;font-family:Inter;font-weight:700}
.a-text{font-size:15px;line-height:1.65;min-height:120px}
.a-refs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ref{font-size:12px;padding:5px 11px;border-radius:8px;background:var(--surface2);border:1px solid var(--stroke);color:var(--muted);font-weight:600}
.demo-progress{display:flex;gap:8px;justify-content:center;margin-top:24px}
.demo-progress i{width:34px;height:5px;border-radius:3px;background:var(--stroke2);position:relative;overflow:hidden}
.demo-progress i.done{background:var(--p1)}
.demo-progress i.active::after{content:"";position:absolute;inset:0;background:var(--grad);animation:fillbar 10s linear forwards}
@keyframes fillbar{from{width:0}to{width:100%}}

/* ---------- KNOWLEDGE ENGINE DIAGRAM ---------- */
.engine-stage{max-width:1040px;margin:50px auto 0}
.engine-stage svg{width:100%;height:auto;display:block}
.eng-doc{opacity:0;animation:docin .8s forwards}
@keyframes docin{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
.eng-out{opacity:0;transition:opacity .7s,transform .7s;transform:translateX(18px) scale(.95)}
.eng-out.on{opacity:1;transform:none}
.core-glow{animation:corepulse 3s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes corepulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.07)}}
.core-rays .ray{transform-origin:center;transform-box:fill-box;animation:coreray 3s ease-in-out infinite}
@keyframes coreray{0%,100%{opacity:.85}50%{opacity:1}}
.eng-path{stroke-dasharray:5 9;animation:flowdash 2.6s linear infinite}
@keyframes flowdash{to{stroke-dashoffset:-140}}
.eng-status{font-family:Sora;font-weight:700}

/* ---------- ORBIT (platforms) ---------- */
.orbit-stage{position:relative;width:min(560px,90vw);height:min(560px,90vw);margin:60px auto 0}
.orbit-ring{position:absolute;inset:0;border:1.5px dashed var(--stroke2);border-radius:50%}
.orbit-ring.r2{inset:70px}
.orbit-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}
.orbit-center svg{width:150px;height:150px;transition:transform .4s}
.orbit-center.pulse svg{transform:scale(1.14)}
.orbiter{position:absolute;top:50%;left:50%;width:0;height:0;animation:orbit linear infinite}
@keyframes orbit{to{transform:rotate(360deg)}}
.orbiter .o-badge{position:absolute;transform:translate(-50%,-50%);background:var(--surface);border:1.5px solid var(--stroke);border-radius:14px;padding:10px 18px;font-weight:700;font-size:14px;box-shadow:var(--card-shadow);white-space:nowrap;animation:counter linear infinite;transition:.4s}
@keyframes counter{to{transform:translate(-50%,-50%) rotate(-360deg)}}
.o-badge.lit{border-color:var(--p1);color:var(--p1);box-shadow:0 0 24px rgba(124,92,255,.35)}
.orbit-answer{position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);background:var(--surface);border:1.5px solid color-mix(in srgb,var(--p1) 30%,transparent);border-radius:14px;padding:10px 18px;font-size:13.5px;font-weight:600;box-shadow:var(--card-shadow);opacity:0;transition:.5s;white-space:nowrap}
.orbit-answer.on{opacity:1;transform:translateX(-50%) translateY(-6px)}

/* ---------- FEATURE STORIES ---------- */
.fstory{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;max-width:1040px;margin:0 auto 130px}
.fstory:last-child{margin-bottom:0}
@media(max-width:820px){.fstory{grid-template-columns:1fr;gap:34px}}
.fstory.flip .fs-visual{order:-1}
@media(max-width:820px){.fstory.flip .fs-visual{order:0}}
.fstory h3{font-size:clamp(26px,3.2vw,38px);font-weight:800;letter-spacing:-.02em;margin-bottom:14px;line-height:1.15}
.fstory p{color:var(--muted);font-size:16.5px}
.fs-visual{background:var(--surface);border:1px solid var(--stroke);border-radius:24px;padding:34px;box-shadow:var(--card-shadow);min-height:250px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.score-ring{width:150px;height:150px;margin:0 auto}
.mini-line{font-size:13.5px;color:var(--muted);display:flex;gap:8px}
.mini-line::before{content:"✓";color:var(--mint);font-weight:700}

/* ---------- REVIEWS ---------- */
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track{display:flex;gap:18px;width:max-content;animation:scrollx 65s linear infinite;padding:12px 0}
.track.rev{animation-direction:reverse;animation-duration:75s}
.marquee:hover .track{animation-play-state:paused}
@keyframes scrollx{to{transform:translateX(-50%)}}
.rev-card{width:330px;flex-shrink:0;padding:24px;border-radius:20px;background:var(--surface);border:1px solid var(--stroke);box-shadow:var(--card-shadow)}
.rev-card p{font-size:14px;margin-bottom:16px}
.rev-meta{display:flex;align-items:center;gap:10px}
.avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff}
.rev-meta b{font-size:13.5px;display:block}
.rev-meta span{font-size:12px;color:var(--dim)}
.stars{color:var(--gold);font-size:13px;letter-spacing:2px;margin-bottom:10px}
.placeholder-tag{text-align:center;font-size:12.5px;color:var(--dim);margin-top:20px}

/* ---------- COMPARISON ---------- */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:860px;margin:44px auto 0}
@media(max-width:700px){.vs{grid-template-columns:1fr}}
.vs-col{padding:34px;border-radius:var(--radius);text-align:left;box-shadow:var(--card-shadow)}
.vs-col.us{background:linear-gradient(160deg,color-mix(in srgb,var(--p1) 9%,var(--surface)),var(--surface));border:1.5px solid color-mix(in srgb,var(--p1) 35%,transparent)}
.vs-col.them{background:var(--surface);border:1px solid var(--stroke)}
.vs-col h3{font-size:20px;margin-bottom:16px}
.vs-col li{list-style:none;padding:9px 0;font-size:14.5px;border-bottom:1px solid var(--stroke);display:flex;gap:10px}
.vs-col li:last-child{border:none}
.them li{color:var(--muted)}
.vs-note{text-align:center;font-size:12.5px;color:var(--dim);max-width:620px;margin:26px auto 0}

/* ---------- AI STACK ---------- */
.stack{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-top:50px}

/* ---------- BUILT FOR REAL WORK ---------- */
.realwork-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:56px;max-width:1000px;margin-left:auto;margin-right:auto}
.rw-tile{background:var(--surface);border:1px solid var(--stroke);border-radius:20px;padding:32px 20px;text-align:center;box-shadow:var(--card-shadow);transition:.3s}
.rw-tile:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.rw-num{font-family:Sora,sans-serif;font-weight:800;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.02em;line-height:1}
.rw-label{margin-top:10px;font-size:14px;font-weight:600;color:var(--muted);line-height:1.4}
.rw-note{font-size:11.5px;color:var(--dim);font-weight:500}
@media(max-width:900px){.realwork-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.realwork-grid{grid-template-columns:1fr}}
.stack-logo{font-family:Sora;font-weight:800;font-size:clamp(22px,3vw,32px);color:var(--dim);padding:18px 30px;border-radius:18px;cursor:default;transition:.35s;position:relative;text-align:center}
.stack-logo span{display:block;font-family:Inter;font-size:12.5px;font-weight:600;color:var(--p1);opacity:0;max-height:0;overflow:hidden;transition:.35s;letter-spacing:.06em}
.stack-logo:hover{color:var(--text);background:var(--surface);box-shadow:var(--card-shadow);transform:translateY(-4px)}
.stack-logo:hover span{opacity:1;max-height:24px;margin-top:4px}
.stack-note{text-align:center;font-size:12.5px;color:var(--dim);margin-top:34px}

/* ---------- FAQ ---------- */
.faq{max-width:740px;margin:40px auto 0}
details{border:1px solid var(--stroke);border-radius:16px;background:var(--surface);margin-bottom:12px;box-shadow:var(--card-shadow)}
summary{padding:20px 24px;cursor:pointer;font-weight:700;font-size:15.5px;list-style:none;display:flex;justify-content:space-between;font-family:Sora}
summary::after{content:"+";font-size:20px;color:var(--dim);transition:.25s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 24px 20px;font-size:14.5px;color:var(--muted)}

/* ---------- CLOSER / FOOTER ---------- */
.closer{text-align:center;padding:160px 24px}
.closer h2{font-size:clamp(34px,5.4vw,62px);font-weight:800;letter-spacing:-.03em;line-height:1.1;max-width:860px;margin:0 auto 44px}
footer{border-top:1px solid var(--stroke);padding:70px 24px 44px;background:var(--bg2)}
.foot{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px}
@media(max-width:800px){.foot{grid-template-columns:1fr 1fr}}
.foot h4{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:14px}
.foot a{display:block;font-size:14px;color:var(--muted);padding:5px 0}
.foot a:hover{color:var(--text)}
.foot-bottom{max-width:1120px;margin:44px auto 0;padding-top:26px;border-top:1px solid var(--stroke);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--dim)}
.reveal{opacity:0;transform:translateY(34px);transition:.9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.story{max-width:880px;margin:0 auto;text-align:center}

/* ---------- HERO LOAD SEQUENCE ---------- */
@keyframes riseIn{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
.hero h1{animation:riseIn .9s .1s cubic-bezier(.2,.7,.2,1) both}
.hero .clarity{animation:riseIn .9s .3s cubic-bezier(.2,.7,.2,1) both}
.hero p.lead{animation:riseIn .9s .45s cubic-bezier(.2,.7,.2,1) both}
.hero .cta-row{animation:riseIn .9s .6s cubic-bezier(.2,.7,.2,1) both}
.hero .hero-live{animation:riseIn 1s .75s cubic-bezier(.2,.7,.2,1) both}
.clarity{font-family:Sora;font-weight:700;font-size:clamp(17px,2.2vw,24px);margin-top:18px}
.hero-live{display:flex;align-items:center;gap:26px;margin-top:44px;flex-wrap:wrap;justify-content:center}
.hero-pet-wrap{width:110px;height:110px;animation:floaty 5s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero-pet-wrap .ray{transform-origin:center;transform-box:fill-box;animation:heroray 3.4s ease-in-out infinite}

/* ---------- PET FACE (squircle badge, shared across all pages) ---------- */
svg.eyes,svg[id$="-pet"]{filter:drop-shadow(0 3px 3px rgba(0,0,0,.25))}
.pet-ring{transition:stroke .3s}
.pet-eyes{transition:transform .4s ease}
.pet-eyes ellipse{transition:ry .1s ease}
.pet-face[data-state="thinking"] .pet-ring{animation:ringpulse 1.4s ease-in-out infinite}
.pet-face[data-state="answering"] .pet-ring{animation:ringpulse2 .8s ease-in-out infinite}
@keyframes ringpulse{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes ringpulse2{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.pet-face[data-state="thinking"]{transform-origin:44px 44px;animation:headtilt 2.6s ease-in-out infinite}
@keyframes headtilt{0%,50%,100%{transform:rotate(0deg)}25%{transform:rotate(6deg)}}
.pet-face[data-state="answering"] .pet-mouth{animation:talk .5s ease-in-out infinite}
@keyframes talk{0%,100%{d:path("M32 58 Q44 68 56 58")}50%{d:path("M34 58 Q44 74 54 58")}}
.pet-face[data-state="answering"] .pet-nose{animation:nosebounce .5s ease-in-out infinite}
@keyframes nosebounce{0%,100%{transform:translateY(0)}50%{transform:translateY(1.5px)}}
.pet-ripple{animation:ripple 2.4s ease-out infinite;transform-origin:44px 44px;pointer-events:none}
.pet-ripple.r2{animation-delay:1.2s}
@keyframes ripple{0%{transform:scale(.75);opacity:.6}100%{transform:scale(1.35);opacity:0}}

/* ---------- SCROLL COMPANION (cycles Nova → Buddy → Luna → Echo → Atlas) ---------- */
#scroll-companion{position:fixed;right:26px;bottom:26px;width:64px;height:64px;z-index:60;opacity:0;transform:translateY(20px) scale(.8);pointer-events:none;transition:opacity .4s,transform .4s}
#scroll-companion.show{opacity:1;transform:translateY(0) scale(1);animation:compbob 3.4s ease-in-out infinite}
#scroll-companion.swap svg{opacity:0;transform:scale(.6) rotate(-8deg)}
#scroll-companion svg{width:100%;height:100%;transition:opacity .22s,transform .22s;filter:drop-shadow(0 6px 14px rgba(0,0,0,.18))}
@keyframes compbob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1)}}
@media(max-width:640px){#scroll-companion{width:52px;height:52px;right:16px;bottom:16px}}
@keyframes heroray{0%,100%{opacity:.85}50%{opacity:1}}
.hero-doc{font-size:13px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--stroke);border-radius:12px;padding:8px 14px;box-shadow:var(--card-shadow);animation:floaty 6s ease-in-out infinite}

/* ---------- MENU DROPDOWN ---------- */
.menu-wrap{position:relative}
.menu-btn{display:flex;align-items:center;gap:8px;padding:11px 18px;border-radius:12px;border:1.5px solid var(--stroke2);background:var(--surface);font-weight:700;font-size:14px;cursor:pointer;transition:.25s}
.menu-btn:hover{border-color:var(--p1)}
.menu-dd{position:absolute;top:calc(100% + 10px);right:0;background:var(--surface);border:1px solid var(--stroke);border-radius:16px;box-shadow:var(--shadow);padding:10px;min-width:220px;display:none;z-index:200}
.menu-wrap.open .menu-dd{display:block;animation:riseIn .25s both}
.menu-dd a{display:block;padding:11px 16px;border-radius:10px;font-size:14px;font-weight:600;color:var(--muted)}
.menu-dd a:hover{background:var(--surface2);color:var(--text)}

/* ---------- NARRATIVE ---------- */
.narr{max-width:800px;margin:0 auto;text-align:center}
.narr h2{font-size:clamp(26px,3.6vw,42px);font-weight:800;letter-spacing:-.02em;line-height:1.25}
.scatter{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:34px 0}
.scatter span{font-family:Sora;font-weight:700;font-size:clamp(15px,1.8vw,20px);color:var(--dim);background:var(--surface);border:1px solid var(--stroke);border-radius:12px;padding:10px 20px;box-shadow:var(--card-shadow);opacity:0;transform:translateY(16px) rotate(-2deg);transition:.6s}
.narr.in .scatter span{opacity:1;transform:none}
.narr.in .scatter span:nth-child(2){transition-delay:.12s}.narr.in .scatter span:nth-child(3){transition-delay:.24s}
.narr.in .scatter span:nth-child(4){transition-delay:.36s}.narr.in .scatter span:nth-child(5){transition-delay:.48s}
.narr.in .scatter span:nth-child(6){transition-delay:.6s}.narr.in .scatter span:nth-child(7){transition-delay:.72s}

/* ---------- DIFFUSION WORD REVEAL ---------- */
.w{display:inline-block;opacity:0;filter:blur(8px);animation:wordin .6s forwards}
@keyframes wordin{to{opacity:1;filter:blur(0)}}

/* ---------- CARD BORDER GLOW ---------- */
.glowb{position:relative}
.glowb::before{content:"";position:absolute;inset:-1.5px;border-radius:inherit;padding:1.5px;
background:conic-gradient(from var(--ga,0deg),transparent 0 70%,var(--p1) 82%,#4D9FFF 90%,transparent 100%);
-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
opacity:0;transition:opacity .3s;pointer-events:none}
.glowb:hover::before{opacity:1;animation:gspin 1.6s linear infinite}
@keyframes gspin{to{--ga:360deg}}
@property --ga{syntax:"<angle>";initial-value:0deg;inherits:false}

/* ---------- MOUSE ENERGY TRAIL ---------- */
#trail{position:fixed;inset:0;z-index:50;pointer-events:none}

/* ---------- ENGINE ALIVE ---------- */
.engine-stage.hot .eng-path{opacity:1;stroke-width:3;filter:drop-shadow(0 0 6px rgba(124,92,255,.6))}
.eng-caption{text-align:center;font-size:13.5px;color:var(--p1);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:18px}
.core-orbit{transform-origin:520px 280px;animation:orbitspin 9s linear infinite}
@keyframes orbitspin{to{transform:rotate(360deg)}}

/* ---------- LOGO STYLES ---------- */
.o-badge img{height:22px;width:auto;display:block}
.stack-logo img{height:38px;width:auto;display:block;margin:0 auto;filter:grayscale(1);opacity:.75;transition:.35s}
.stack-logo:hover img{filter:none;opacity:1;transform:scale(1.08)}
.stack-logo{animation:floaty 7s ease-in-out infinite}
.stack-logo:nth-child(2){animation-delay:1.2s}.stack-logo:nth-child(3){animation-delay:2.4s}
.stack-logo:nth-child(4){animation-delay:3.6s}.stack-logo:nth-child(5){animation-delay:4.8s}
.supported{display:flex;gap:40px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:56px}
.supported img{height:44px;width:auto;filter:grayscale(.4);opacity:.85;transition:.3s}
.supported img:hover{filter:none;opacity:1;transform:translateY(-3px)}
.logo-tile{background:#fff;border-radius:14px;padding:10px 16px;box-shadow:var(--card-shadow)}

/* ---------- NAMED COMPARISON TABLE ---------- */
.comp-table{max-width:920px;margin:56px auto 0;overflow-x:auto;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--surface);box-shadow:var(--card-shadow)}
.comp-table table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.comp-table th,.comp-table td{padding:14px 18px;text-align:center;border-bottom:1px solid var(--stroke)}
.comp-table th:first-child,.comp-table td:first-child{text-align:left;font-weight:600}
.comp-table thead th{font-family:Sora;font-size:13.5px}
.comp-table .hl{background:color-mix(in srgb,var(--p1) 7%,transparent);font-weight:700}
.comp-table tr:last-child td{border-bottom:none}
.comp-note{text-align:center;font-size:12px;color:var(--dim);max-width:640px;margin:20px auto 0}
