/* Lyne motion layer: subtle reveals + CTA hovers. Loaded on every page by lyne_v2_out(). */
:root{--ly-ease:cubic-bezier(.2,.7,.2,1)}

/* Scroll progress hairline */
.ly-prog{position:fixed;top:0;left:0;height:2px;width:100%;background:#2323E6;transform-origin:0 50%;transform:scaleX(0);z-index:999;pointer-events:none}

/* Buttons: sheen sweep, lift, arrow nudge */
.btn,.nav-cta{position:relative;overflow:hidden;transition:transform .25s var(--ly-ease),box-shadow .25s var(--ly-ease),background-color .25s}
.btn::after,.nav-cta::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ly-ease);pointer-events:none}
.btn:hover,.nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 0 -4px rgba(35,35,230,.25)}
.btn.dark:hover{box-shadow:0 8px 0 -4px rgba(17,17,17,.2)}
.btn:hover::after,.nav-cta:hover::after{transform:translateX(120%)}
.btn:active,.nav-cta:active{transform:translateY(0) scale(.98);transition-duration:.08s}
.ly-arr{display:inline-block;transition:transform .3s var(--ly-ease)}
.btn:hover .ly-arr,.nav-cta:hover .ly-arr{transform:translate(3px,-3px)}
.btn:focus-visible,.nav-cta:focus-visible{outline:2px solid #2323E6;outline-offset:3px}

/* Nav links: underline slides in from the left */
.nav-links a,.nav a:not(.btn):not(.nav-cta){background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-size:0 1px;background-repeat:no-repeat;transition:background-size .3s var(--ly-ease)}
.nav-links a:hover,.nav a:not(.btn):not(.nav-cta):hover{background-size:100% 1px}

/* Reveal on scroll (only once JS has tagged the page) */
.ly-m .ly-r{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ly-ease),transform .8s var(--ly-ease);transition-delay:var(--ly-d,0s)}
.ly-m .ly-r.ly-in{opacity:1;transform:none}

/* Hero headline: words rise one by one */
.ly-m .ly-w{display:inline-block;opacity:0;transform:translateY(.35em);transition:opacity .7s var(--ly-ease),transform .7s var(--ly-ease);transition-delay:var(--ly-d,0s)}
.ly-m .ly-go .ly-w{opacity:1;transform:none}
.hero h1 i.blue{background:linear-gradient(#2323E6,#2323E6) 0 92%/0 3px no-repeat;transition:background-size 1s var(--ly-ease) 1.1s}
.ly-m .ly-go i.blue{background-size:100% 3px}

/* Proof card: timeline line draws, draft lines arrive in order */
.ly-m .card .tl-line{transform-origin:50% 0;transform:scaleY(0);transition:transform .9s var(--ly-ease) .3s}
.ly-m .card.ly-in .tl-line{transform:none}
.ly-m .card .ly-row{opacity:0;transform:translateX(-8px);transition:opacity .6s var(--ly-ease),transform .6s var(--ly-ease);transition-delay:var(--ly-d,0s)}
.ly-m .card.ly-in .ly-row{opacity:1;transform:none}
.tl-step.on{position:relative}
.tl-step.on::before{content:"";position:absolute;left:-14px;top:50%;width:6px;height:6px;margin-top:-3px;background:#2323E6;border-radius:50%;animation:ly-pulse 2.4s ease-out infinite}
@keyframes ly-pulse{0%{box-shadow:0 0 0 0 rgba(35,35,230,.45)}70%,100%{box-shadow:0 0 0 8px rgba(35,35,230,0)}}

/* Terminal: blinking cursor, live dot */
.term pre::after{content:"▍";color:#7CFFB2;animation:ly-blink 1.1s steps(1) infinite;margin-left:2px}
@keyframes ly-blink{50%{opacity:0}}
.term-hd .ok,.term-hd .warn{animation:ly-breathe 2.6s ease-in-out infinite}
@keyframes ly-breathe{50%{opacity:.55}}

/* Agent cards + steps + table: quiet hover feedback */
.agent-dark .badge{transition:transform .4s var(--ly-ease)}
.agent:hover .agent-dark .badge{transform:rotate(-6deg) scale(1.06)}
.step{transition:transform .35s var(--ly-ease)}
.step .step-n{transition:color .3s,transform .35s var(--ly-ease);display:inline-block}
.step:hover{transform:translateX(6px)}
.step:hover .step-n{color:#2323E6}
.tr:not(.th){transition:background-color .25s}
.tr:not(.th):hover{background-color:rgba(35,35,230,.04)}
.tr:not(.th):hover .new{color:#2323E6;transition:color .25s}

/* Final CTA: the blue word gets underlined when it scrolls in */
.final h2 i.blue{background:linear-gradient(#2323E6,#2323E6) 0 92%/0 4px no-repeat;transition:background-size 1s var(--ly-ease) .5s}
.final.ly-in h2 i.blue,.ly-m .final .ly-in i.blue{background-size:100% 4px}

/* Blog rows + images */
.body img{transition:transform .5s var(--ly-ease)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .ly-m .ly-r,.ly-m .ly-w,.ly-m .card .ly-row,.ly-m .card .tl-line{opacity:1!important;transform:none!important}
  .ly-prog{display:none}
}
@media (hover:none){
  .btn:hover,.nav-cta:hover,.step:hover{transform:none}
}
.lp-row .lp-arrow{display:inline-block;transition:transform .3s var(--ly-ease),color .3s}
.lp-row:hover .lp-arrow{transform:translateX(6px);color:#2323E6}
.lp-row .lp-title{transition:color .3s}
.lp-row:hover .lp-title{color:#2323E6}
