:root{--purple:#ff8a4c;--green:#c8f36a;--paper:#f5f1ea}

/* Warm editorial palette: no neon gradient or AI-purple glow. */
.hero-visual:before{width:150px;height:150px;left:58%;top:18%;background:#ff8a4c;filter:none;opacity:.22;animation:shape-drift 8s ease-in-out infinite alternate}
.feature-card-large{background:#ff8a4c}
.feature-card-large p{color:#fff2e8}
.node-icon.sanity-icon{background:#ff8a4c;color:var(--ink)}
.sync-node{animation:node-float 5s ease-in-out infinite}
.node-sanity{animation-delay:-1.7s}.node-blog{animation-delay:-3.2s}
.node-sanity{animation-name:node-float-center}
.orbit-one{animation:orbit-breathe 7s ease-in-out infinite}.orbit-two{animation:orbit-breathe 5s ease-in-out infinite reverse}
.sync-line:before{background:repeating-linear-gradient(90deg,transparent 0 7px,var(--green) 7px 12px,transparent 12px 18px);height:1px;border:0;animation:signal-flow 1.1s linear infinite}
.sync-line{animation:label-pulse 2.5s ease-in-out infinite}.line-b{animation-delay:-.8s}.line-c{animation-delay:-1.5s}
.feature-card{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}.feature-card:hover{transform:translateY(-8px) rotate(-.4deg);box-shadow:0 18px 35px #17141f18}
.feature-icon{display:grid;width:58px;height:58px;place-items:center;border:1px solid currentColor;border-radius:16px;font-family:var(--mono);font-size:28px;line-height:1;transform:none!important;animation:icon-pulse 2.8s ease-in-out infinite}.feature-card:nth-child(2) .feature-icon{animation-delay:-.8s}.feature-card:nth-child(3) .feature-icon{animation-delay:-1.6s}.feature-card:nth-child(4) .feature-icon{animation-delay:-2.3s}.feature-card-large .feature-icon{margin-top:auto}
.flow-item{transition:padding .3s ease,background .3s ease}.flow-item:hover{padding-left:15px;background:#ffffff08}.flow-arrow{transition:transform .3s ease;color:var(--green)}.flow-item:hover .flow-arrow{transform:translate(6px,-4px)}
.button-primary span,.nav-github span{display:inline-block;transition:transform .25s ease}.button-primary:hover span,.nav-github:hover span{transform:translate(4px,-4px)}
.install-step{transition:transform .3s ease}.install-step:hover{transform:translateX(8px)}
.terminal{animation:terminal-in 1s both;animation-delay:.25s}.terminal .command{animation:cursor-pulse 1.8s steps(2,end) infinite}
.brand-mark i{transition:height .3s ease,background .3s ease}.brand:hover .brand-mark i:nth-child(1){height:25px}.brand:hover .brand-mark i:nth-child(2){height:14px}.brand:hover .brand-mark i:nth-child(3){height:21px}
.install-step code{color:#c95c23;background:#fff0e6}.terminal .command{color:#ff9a68}.mini-map b{color:#d8662b}
@keyframes node-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes node-float-center{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-10px)}}
@keyframes shape-drift{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(-35px,38px) rotate(18deg)}}
@keyframes orbit-breathe{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.8}50%{transform:translate(-50%,-50%) scale(1.045);opacity:1}}
@keyframes signal-flow{to{background-position:18px 0}}
@keyframes label-pulse{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes icon-blink{0%,70%,100%{transform:translateY(0)}80%{transform:translateY(-5px) rotate(4deg)}}
@keyframes icon-pulse{0%,100%{opacity:.78;box-shadow:0 0 0 0 currentColor}50%{opacity:1;box-shadow:0 0 0 7px transparent}}
@keyframes terminal-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes cursor-pulse{0%,45%{opacity:1}46%,100%{opacity:.45}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

.motion-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible}.route{fill:none;stroke:#c8f36a66;stroke-width:1.5;stroke-dasharray:7 11;animation:route-dash 2.8s linear infinite}.route-two{animation-delay:-.8s}.route-three{animation-delay:-1.7s}.route-dot{fill:#c8f36a;filter:drop-shadow(0 0 6px #c8f36a)}.sync-line{display:none}.sync-node{z-index:2}.node-icon{position:relative;box-shadow:0 0 0 0 #c8f36a66;animation:node-ping 3s ease-out infinite}.node-sanity .node-icon{animation-delay:-1s}.node-blog .node-icon{animation-delay:-2s}
.feature-card{animation:card-rise .7s both}.feature-card:nth-child(1){animation-delay:.1s}.feature-card:nth-child(2){animation-delay:.22s}.feature-card:nth-child(3){animation-delay:.34s}.feature-card:nth-child(4){animation-delay:.46s}
.reveal-on-scroll{opacity:0!important;animation-play-state:paused!important}.reveal-on-scroll.is-visible{opacity:1!important;animation-play-state:running!important}
@keyframes route-dash{to{stroke-dashoffset:-72}}@keyframes node-ping{0%{box-shadow:0 0 0 0 #c8f36a66}55%,100%{box-shadow:0 0 0 18px transparent}}@keyframes card-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* Page-wide MG rhythm: every section enters as a designed sequence. */
.site-header{animation:header-reveal .8s both}.hero-copy .eyebrow{animation:slide-in .65s both}.hero-copy h1{animation:headline-in .9s .1s both}.hero-copy .hero-lead{animation:slide-in .7s .24s both}.hero-copy .hero-actions{animation:slide-in .7s .36s both}.hero-copy .hero-meta{animation:slide-in .7s .48s both}.hero-visual{animation:visual-reveal 1s .16s both}.trust-strip{animation:strip-reveal .8s .25s both}.trust-strip span{animation:word-in .65s both}.trust-strip span:nth-child(2){animation-delay:.08s}.trust-strip span:nth-child(3){animation-delay:.16s}.trust-strip span:nth-child(4){animation-delay:.24s}.trust-strip span:nth-child(5){animation-delay:.32s}
.feature-section .section-heading{animation:section-reveal .8s both}.workflow-section .section-heading{animation:section-reveal .8s both}.install-section>.section-heading{animation:section-reveal .8s both}.flow-item{animation:flow-in .7s both}.flow-item:nth-child(1){animation-delay:.12s}.flow-item:nth-child(2){animation-delay:.26s}.flow-item:nth-child(3){animation-delay:.4s}.install-step{animation:step-in .7s both}.install-step:nth-child(1){animation-delay:.12s}.install-step:nth-child(2){animation-delay:.25s}.install-step:nth-child(3){animation-delay:.38s}.install-cta{animation:cta-in .8s .35s both}.site-footer{animation:footer-in .8s both}
.visual-caption{animation:caption-in .8s 1s both}.pulse,.live-dot{animation:dot-pulse 1.8s ease-in-out infinite}.eyebrow{position:relative}.eyebrow:after{content:'';display:inline-block;width:32px;height:1px;margin:0 0 3px 10px;background:currentColor;transform-origin:left;animation:eyebrow-line .8s .5s both}
@keyframes header-reveal{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}@keyframes slide-in{from{opacity:0;transform:translateX(-22px)}to{opacity:1;transform:none}}@keyframes headline-in{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(18px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes visual-reveal{from{opacity:0;clip-path:inset(0 0 0 100%);transform:translateX(28px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes strip-reveal{from{opacity:0;clip-path:inset(0 50%)}to{opacity:1;clip-path:inset(0)}}@keyframes word-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes section-reveal{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes flow-in{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}}@keyframes step-in{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:none}}@keyframes cta-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes footer-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes caption-in{from{opacity:0;letter-spacing:.3em}to{opacity:1;letter-spacing:.1em}}@keyframes dot-pulse{0%,100%{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.22)}}@keyframes eyebrow-line{from{width:0;opacity:0}to{width:32px;opacity:1}}
