.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--bg: #fdfeff;--bg-alt: #f3f6fb;--text: #0b1220;--text-dim: #5b6478;--accent-a: #0a9fef;--accent-b: #5ad2ff;--accent-ink: #0b4a8c;--glow: rgba(10, 159, 239, .16);--hairline: rgba(15, 23, 42, .08)}*{box-sizing:border-box}html{scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}html.lenis.lenis-smooth{scroll-behavior:auto!important}html.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}html.lenis.lenis-stopped{overflow:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:Poppins,system-ui,sans-serif;line-height:1.5;overflow-x:hidden}.atmosphere{position:fixed;inset:0;z-index:3;pointer-events:none}.atmo-mesh{position:absolute;inset:-15%;mix-blend-mode:multiply;filter:blur(70px);will-change:transform}.atmo-mesh-a{background:radial-gradient(circle at 22% 28%,rgba(10,159,239,.07),transparent 46%),radial-gradient(circle at 78% 72%,rgba(90,210,255,.06),transparent 46%);animation:atmoDriftA 54s ease-in-out infinite alternate}.atmo-mesh-b{background:radial-gradient(circle at 50% 50%,rgba(90,210,255,.05),transparent 55%);animation:atmoDriftB 38s ease-in-out infinite alternate;opacity:.7}@keyframes atmoDriftA{0%{transform:translate(0) scale(1)}50%{transform:translate(-3%,2.5%) scale(1.06)}to{transform:translate(2.5%,-3%) scale(1)}}@keyframes atmoDriftB{0%{transform:translate(2%,-2%) scale(1.04)}50%{transform:translate(-2%,2%) scale(.98)}to{transform:translate(2%,-2%) scale(1.04)}}.atmo-grain{position:absolute;inset:0;opacity:.018;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}@media (prefers-reduced-motion: reduce){.atmo-mesh{animation:none}}a.cta,a.cta-ghost,a.nav-cta,a.service-cta,a.lp-cta{position:relative;overflow:hidden}.btn-ripple-el{position:absolute;width:10px;height:10px;border-radius:50%;background:#ffffff59;transform:translate(-50%,-50%) scale(0);pointer-events:none;animation:btnRipple .75s cubic-bezier(.16,1,.3,1) forwards}@keyframes btnRipple{to{transform:translate(-50%,-50%) scale(26);opacity:0}}h1,h2,h3{font-weight:800;text-transform:uppercase;letter-spacing:.02em;margin:0}p{margin:0}a{color:inherit}section{padding:8rem 1.5rem;max-width:1100px;margin:0 auto}@media (max-width: 640px){section{padding:4.5rem 1.25rem}}[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.2s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay, 0ms)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){[data-reveal]{opacity:1;transform:none;transition:none}}[data-line-reveal]{overflow:hidden;display:block}[data-line-reveal] .line-inner{display:block;transform:translateY(112%);filter:blur(6px);transition:transform 1.3s cubic-bezier(.16,1,.3,1),filter 1.3s cubic-bezier(.16,1,.3,1);transition-delay:var(--line-delay, 0ms)}[data-line-reveal].is-visible .line-inner{transform:translateY(0);filter:blur(0)}@media (prefers-reduced-motion: reduce){[data-line-reveal] .line-inner{transform:none;filter:none;transition:none}}[data-wipe-reveal]{clip-path:inset(0 0 0 100%);transform:scale(1.06);transition:clip-path 1.6s cubic-bezier(.16,1,.3,1),transform 2s cubic-bezier(.16,1,.3,1)}[data-wipe-reveal].is-visible{clip-path:inset(0 0 0 0%);transform:scale(1)}@media (prefers-reduced-motion: reduce){[data-wipe-reveal]{clip-path:none;transform:none;transition:none}}::view-transition-old(root){animation:fade-blur-out .6s cubic-bezier(.6,0,.4,1) forwards}::view-transition-new(root){animation:fade-blur-in .75s cubic-bezier(.16,1,.3,1) forwards}@keyframes fade-blur-out{0%{opacity:1;filter:blur(0);transform:scale(1)}to{opacity:0;filter:blur(6px);transform:scale(.98)}}@keyframes fade-blur-in{0%{opacity:0;filter:blur(6px);transform:scale(1.02)}to{opacity:1;filter:blur(0);transform:scale(1)}}@media (prefers-reduced-motion: reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
