/* Native adaptations of Aceternity Aurora Background and Magic UI
   Shimmer Button / Magic Card, discovered through 21st.dev.
   Original authors, source links, and MIT notices: ../THIRD-PARTY.md. */

.aurora-background{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none;contain:paint;mask-image:radial-gradient(ellipse at 50% 0%,#000 7%,transparent 72%)}
.aurora-layer{--aurora:repeating-linear-gradient(105deg,#005fe5 10%,#4c8ae0 15%,#01337a 20%,#a9cdff 25%,#0046a9 30%);--dark-gradient:repeating-linear-gradient(105deg,#000 0%,#000 7%,transparent 10%,transparent 12%,#000 16%);position:absolute;inset:-10px;background-image:var(--dark-gradient),var(--aurora);background-size:300%,200%;background-position:50% 50%,50% 50%;filter:blur(14px);opacity:.24;transform:translateZ(0)}
.aurora-layer:after{content:'';position:absolute;inset:0;background-image:var(--dark-gradient),var(--aurora);background-size:200%,100%;mix-blend-mode:difference;animation:aurora-stream 45s linear infinite;will-change:background-position}
.hero:before{opacity:.6;filter:blur(38px)}
.contact-section .aurora-background{mask-image:radial-gradient(ellipse at 50% 100%,#000 0%,transparent 72%)}
.contact-section .aurora-layer{opacity:.15;transform:rotate(180deg)}
@keyframes aurora-stream{from{background-position:50% 50%,50% 50%}to{background-position:350% 50%,350% 50%}}

/* Original Shimmer Button perimeter choreography, preserved in native CSS. */
.button-shimmer{--spread:90deg;--speed:3s;--shimmer-color:#d4e6ff;--cut:1px;--shimmer-bg:var(--accent);overflow:hidden;z-index:0;border-color:#7fb4ff44;box-shadow:0 0 26px #005fe525,0 8px 28px #005fe517}
.button-shimmer>.shimmer-frame{position:absolute;inset:0;container-type:size;pointer-events:none;z-index:-2;filter:blur(1px);transform:none!important}
.shimmer-spark{position:absolute;inset:0;height:100cqh;aspect-ratio:1;animation:shimmer-slide var(--speed) ease-in-out infinite alternate}
.shimmer-orbit{position:absolute;inset:-100%;background:conic-gradient(from calc(270deg - var(--spread)*.5),transparent 0,var(--shimmer-color) var(--spread),transparent var(--spread));animation:spin-around calc(var(--speed)*2) linear infinite}
.button-shimmer:after{content:'';position:absolute;inset:var(--cut);background:var(--shimmer-bg);border-radius:inherit;z-index:-1;box-shadow:inset 0 -8px 10px #ffffff17;transition:background .25s,box-shadow .25s;pointer-events:none}
.button-shimmer:hover{--shimmer-bg:#3786f4;box-shadow:0 0 35px #005fe54d,0 12px 32px #005fe522}
.button-shimmer:hover:after{box-shadow:inset 0 -6px 10px #ffffff30}
@keyframes shimmer-slide{to{transform:translate(calc(100cqw - 100%),0)}}
@keyframes spin-around{0%{transform:translateZ(0) rotate(0)}15%,35%{transform:translateZ(0) rotate(90deg)}65%,85%{transform:translateZ(0) rotate(270deg)}100%{transform:translateZ(0) rotate(360deg)}}

/* Magic Card: one shared cursor coordinate drives the border and surface. */
.magic-card{--mouse-x:-400px;--mouse-y:-400px;--card-bg:#10141a;--card-line:#293444;--card-glow:#005fe510;position:relative;isolation:isolate;border:1px solid transparent;background:linear-gradient(var(--card-bg),var(--card-bg)) padding-box,radial-gradient(300px circle at var(--mouse-x) var(--mouse-y),#62a3ff,#005fe540 35%,var(--card-line) 100%) border-box;transition:transform .3s,box-shadow .3s}
.magic-card:before{content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;background:radial-gradient(330px circle at var(--mouse-x) var(--mouse-y),var(--card-glow),transparent 100%);opacity:0;transition:opacity .35s;z-index:1}
.magic-card:hover:before,.magic-card:focus-within:before{opacity:1}
.magic-card .service-body,.magic-card .service-visual{position:relative;z-index:2}
.magic-card:focus-within{--mouse-x:50%;--mouse-y:50%;box-shadow:0 0 30px #005fe50d}
.demo-shell.magic-card{--card-bg:#101419;--card-line:#313e50;--card-glow:#005fe508}
.demo-shell.magic-card:before{z-index:0}.demo-shell.magic-card>div{position:relative;z-index:1}

/* A compact, moving selection indicator clarifies the active demo. */
.demo-tabs{position:relative;isolation:isolate}
.demo-tabs:before{content:'';position:absolute;left:var(--tab-x,0px);top:0;width:var(--tab-width,110px);height:100%;background:#005fe518;border:1px solid #005fe54d;border-radius:999px;z-index:-1;transition:left .35s cubic-bezier(.2,.8,.2,1),width .35s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 17px #005fe509;opacity:var(--tab-ready,0)}
.demo-tabs[data-enhanced] button[aria-pressed=true]{background:transparent;border-color:transparent;box-shadow:none}
.demo-workspace.is-switching{animation:demo-in .3s ease both}
@keyframes demo-in{from{opacity:.45;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}

.effects-paused .aurora-layer:after,.effects-paused .shimmer-spark,.effects-paused .shimmer-orbit,.effect-outside .aurora-layer:after{animation-play-state:paused}
@media(hover:none){.magic-card{--mouse-x:50%;--mouse-y:0px}.magic-card:before{opacity:.6}.aurora-layer{opacity:.16;filter:blur(18px)}.button-shimmer .shimmer-spark{animation-duration:4.5s}.button-shimmer .shimmer-orbit{animation-duration:9s}}
@media(prefers-reduced-motion:reduce){.aurora-layer:after,.shimmer-spark,.shimmer-orbit{animation:none!important}.aurora-layer{opacity:.11}.magic-card{--mouse-x:50%;--mouse-y:0px}.demo-tabs:before{transition:none}.demo-workspace.is-switching{animation:none}.button-shimmer:hover{transform:none}}
