:root{
	--ease-out:cubic-bezier(.22,1,.36,1);
	--reveal-delay:0ms;
}

/* CSS-only motion: these remain active even when JavaScript is unavailable. */
.hero-sequence>*{animation:dlc-rise .72s var(--ease-out) both}
.hero-sequence>*:nth-child(1){animation-delay:.05s}
.hero-sequence>*:nth-child(2){animation-delay:.13s}
.hero-sequence>*:nth-child(3){animation-delay:.21s}
.hero-sequence>*:nth-child(4){animation-delay:.29s}
.hero-sequence>*:nth-child(5){animation-delay:.37s}
.hero-visual-enter{animation:dlc-hero-card .85s var(--ease-out) .18s both}
.hero-visual-enter.home-proof{animation:dlc-hero-card .85s var(--ease-out) .18s both,dlc-card-float 6s ease-in-out 1.1s infinite}
.funnel-hero{background-size:150% 150%;animation:dlc-gradient 12s ease-in-out infinite alternate}
.hero-ambient{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.funnel-hero-grid{z-index:2}
.hero-orb{position:absolute;display:block;border:1px solid rgba(23,105,210,.2);border-radius:50%;background:rgba(255,255,255,.22);box-shadow:inset 0 0 28px rgba(58,145,233,.14),0 16px 38px rgba(27,91,155,.1)}
.hero-orb:nth-child(1){width:34px;height:34px;left:7%;top:20%;animation:dlc-float-a 7s ease-in-out infinite}
.hero-orb:nth-child(2){width:70px;height:70px;right:6%;top:16%;animation:dlc-float-b 10s ease-in-out infinite}
.hero-orb:nth-child(3){width:42px;height:42px;right:38%;bottom:8%;animation:dlc-float-a 9s ease-in-out -2s infinite}
.premium-cta{position:relative;isolation:isolate;overflow:hidden;animation:dlc-button-pulse 4s ease-in-out infinite}
.premium-cta::after{content:"";position:absolute;z-index:-1;inset:-80% -35%;background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.3) 50%,transparent 64%);transform:translateX(-75%) rotate(8deg);animation:dlc-shine 4.2s ease-in-out infinite}

/* Reveal is progressive enhancement. Elements are never hidden without JS. */
.js-effects .reveal-ready{
	opacity:0;
	transform:translate3d(0,34px,0);
	transition:opacity .65s var(--ease-out) var(--reveal-delay),transform .65s var(--ease-out) var(--reveal-delay);
}
.js-effects .reveal-ready.reveal-left{transform:translate3d(-42px,0,0)}
.js-effects .reveal-ready.reveal-right{transform:translate3d(42px,0,0)}
.js-effects .reveal-ready.reveal-scale{transform:scale(.94)}
.js-effects .reveal-ready.is-visible{opacity:1;transform:none}

.premium-card{transition:transform .28s var(--ease-out),box-shadow .28s ease,border-color .28s ease}
.card-arrow,.service-row>b{transition:transform .25s var(--ease-out)}
@media(hover:hover) and (pointer:fine){
	.premium-card:hover{transform:translateY(-6px);border-color:rgba(23,105,210,.35);box-shadow:0 22px 50px rgba(20,63,105,.14)}
	.process-section .premium-card:hover{border-color:rgba(140,196,255,.38);background:#123d69}
	.service-row:hover>b{transform:translateX(5px)}
	.vantin-promo-card:hover{transform:translateY(-7px);box-shadow:0 30px 68px rgba(17,57,95,.24)}
}

.site-header.glass-header{transition:height .28s var(--ease-out),background-color .28s ease,box-shadow .28s ease}
.site-header.glass-header.is-scrolled{height:68px;background:rgba(255,255,255,.95);box-shadow:0 12px 34px rgba(20,52,84,.1)}

/* Infinite advertising cards. The duplicated sets make the loop seamless. */
.infinity-showcase{--marquee-gap:16px;position:relative;overflow:hidden;padding:34px 0 38px;border-bottom:1px solid #dfe8f1;background:linear-gradient(180deg,#f8fbff,#eef6ff)}
.infinity-showcase::before,.infinity-showcase::after{content:"";position:absolute;z-index:4;top:0;bottom:0;width:min(9vw,140px);pointer-events:none}
.infinity-showcase::before{left:0;background:linear-gradient(90deg,#f5faff,transparent)}
.infinity-showcase::after{right:0;background:linear-gradient(-90deg,#f5faff,transparent)}
.infinity-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}
.infinity-heading span{color:#1769d2;font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.infinity-heading strong{color:#173b5f;font-size:1rem}
.infinity-row,.infinity-track,.infinity-set{display:flex;width:max-content}
.infinity-row+.infinity-row{margin-top:14px}
.infinity-track{animation:dlc-marquee 32s linear infinite;will-change:transform}
.infinity-row.reverse .infinity-track{animation-name:dlc-marquee-reverse;animation-duration:37s}
.infinity-set{gap:var(--marquee-gap);padding-right:var(--marquee-gap)}
.infinity-card{position:relative;display:grid;width:330px;min-height:94px;padding:15px 17px;grid-template-columns:54px 1fr 24px;gap:13px;align-items:center;overflow:hidden;border:1px solid rgba(194,214,232,.9);border-radius:19px;background:#fff;box-shadow:0 12px 30px rgba(25,73,117,.08);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.infinity-card::after{content:"";position:absolute;right:-20%;bottom:-90%;width:75%;height:130px;border-radius:50%;background:var(--card-glow);filter:blur(24px);opacity:.25}
.infinity-card i{position:relative;z-index:1;display:grid;width:52px;height:52px;place-items:center;border-radius:15px;background:var(--card-color);color:#fff;font-size:.72rem;font-style:normal;font-weight:800;box-shadow:0 10px 22px var(--card-shadow)}
.infinity-card span{position:relative;z-index:1;display:grid;gap:4px}.infinity-card b{color:#173b5f;font-size:.9rem}.infinity-card small{color:#6a8196;font-size:.7rem;line-height:1.45}.infinity-card em{position:relative;z-index:1;color:var(--card-color);font-size:1.2rem;font-style:normal}
.infinity-showcase:hover .infinity-track{animation-play-state:paused}
.infinity-card:hover{transform:translateY(-4px);border-color:var(--card-color);box-shadow:0 18px 40px rgba(25,73,117,.16)}
.tone-blue{--card-color:#1769d2;--card-shadow:rgba(23,105,210,.26);--card-glow:#66aaff}.tone-gold{--card-color:#c78b25;--card-shadow:rgba(199,139,37,.25);--card-glow:#f0c36a}.tone-green{--card-color:#168765;--card-shadow:rgba(22,135,101,.24);--card-glow:#57d2aa}.tone-violet{--card-color:#7458d5;--card-shadow:rgba(116,88,213,.24);--card-glow:#ad96ff}.tone-cyan{--card-color:#1289a8;--card-shadow:rgba(18,137,168,.24);--card-glow:#62d2e7}.tone-red{--card-color:#c85661;--card-shadow:rgba(200,86,97,.24);--card-glow:#ff949e}

.motion-counter-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid #dfe8f1;border-radius:20px;overflow:hidden;background:#dfe8f1}
.motion-metrics{padding:34px 0}.motion-counter-strip article{padding:24px;background:#fff;text-align:center}.motion-counter-strip strong{display:block;color:#0d3157;font-size:clamp(1.75rem,3vw,2.6rem);line-height:1}.motion-counter-strip span{display:block;margin-top:8px;color:#657b8e;font-size:.82rem;font-weight:700}
.faq-section summary{display:flex;justify-content:space-between;gap:20px;align-items:center;list-style:none}.faq-section summary::-webkit-details-marker{display:none}.faq-section summary::after{content:"+";display:grid;width:28px;height:28px;place-items:center;flex:0 0 auto;border:1px solid #cfdeeb;border-radius:50%;color:#1769d2;font-size:1.2rem;transition:transform .25s ease,background-color .25s ease,color .25s ease}.faq-section details[open] summary::after{transform:rotate(45deg);background:#1769d2;color:#fff}
.scroll-top{position:fixed;z-index:121;right:20px;bottom:156px;display:grid;width:48px;height:48px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.4);border-radius:16px;background:#1769d2;color:#fff;box-shadow:0 16px 34px rgba(20,71,126,.26);opacity:0;pointer-events:none;transform:translateY(18px) scale(.9);transition:opacity .25s ease,transform .35s var(--ease-out),background-color .2s ease}.scroll-top.show{opacity:1;pointer-events:auto;transform:none;animation:dlc-scroll-nudge 2.6s ease-in-out infinite}.scroll-top svg{width:23px;height:23px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.scroll-top:hover{background:#0d4f9d;animation-play-state:paused;transform:translateY(-3px)}

@keyframes dlc-rise{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}
@keyframes dlc-hero-card{from{opacity:0;transform:translate3d(36px,0,0) scale(.97)}to{opacity:1;transform:none}}
@keyframes dlc-gradient{to{background-position:78% 36%}}
@keyframes dlc-float-a{50%{transform:translate3d(30px,-22px,0) rotate(100deg)}}
@keyframes dlc-float-b{50%{transform:translate3d(-38px,30px,0) scale(1.1)}}
@keyframes dlc-card-float{50%{transform:translate3d(0,-7px,0)}}
@keyframes dlc-button-pulse{50%{box-shadow:0 16px 38px rgba(23,105,210,.32)}}
@keyframes dlc-shine{0%,35%{transform:translateX(-75%) rotate(8deg)}65%,100%{transform:translateX(75%) rotate(8deg)}}
@keyframes dlc-marquee{to{transform:translate3d(-50%,0,0)}}
@keyframes dlc-marquee-reverse{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes dlc-scroll-nudge{0%,100%{box-shadow:0 16px 34px rgba(20,71,126,.26)}50%{transform:translateY(-4px);box-shadow:0 22px 42px rgba(20,71,126,.34)}}

[data-theme="dark"] .site-header.glass-header.is-scrolled{background:rgba(7,24,44,.96)}
[data-theme="dark"] .infinity-showcase{border-color:#29475f;background:linear-gradient(180deg,#081d31,#0b253d)}
[data-theme="dark"] .infinity-showcase::before{background:linear-gradient(90deg,#091f34,transparent)}
[data-theme="dark"] .infinity-showcase::after{background:linear-gradient(-90deg,#091f34,transparent)}
[data-theme="dark"] .infinity-heading strong,[data-theme="dark"] .infinity-card b{color:#edf6fd}
[data-theme="dark"] .infinity-card{border-color:#294b65;background:#0f2d45;box-shadow:0 14px 34px rgba(0,0,0,.18)}
[data-theme="dark"] .infinity-card small{color:#a9bfd0}

@media(max-width:760px){
	.js-effects .reveal-ready,.js-effects .reveal-ready.reveal-left,.js-effects .reveal-ready.reveal-right{transform:translate3d(0,22px,0)}
	.motion-counter-strip{grid-template-columns:1fr}
	.infinity-heading{align-items:flex-start;flex-direction:column;gap:4px}
	.infinity-card{width:280px;min-height:86px;grid-template-columns:46px 1fr 20px}.infinity-card i{width:44px;height:44px;border-radius:13px}
	.infinity-track{animation-duration:25s}.infinity-row.reverse .infinity-track{animation-duration:29s}
	.scroll-top{right:12px;bottom:127px;width:44px;height:44px;border-radius:14px}
}

@media(prefers-reduced-motion:reduce){
	.hero-sequence>*,.hero-visual-enter,.funnel-hero,.hero-orb,.home-proof,.premium-cta,.premium-cta::after{animation-duration:.001ms!important;animation-iteration-count:1!important}
	.js-effects .reveal-ready{opacity:1;transform:none;transition:none}
	.infinity-track{animation-duration:70s}
}
