/* Norvex Studio — Shared Styles */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:#09090b;color:#fafafa;overflow-x:hidden;font-family:"Inter",sans-serif;-webkit-font-smoothing:antialiased}
.glass-panel{background:rgba(24,24,27,.4);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08)}
.font-serif{font-family:"Playfair Display",serif}
.text-gradient{background:linear-gradient(180deg,#fff 0%,#a1a1aa 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.dot-grid-bg{background-image:radial-gradient(circle,rgba(255,255,255,.04)1px,transparent 1px);background-size:24px 24px}
@property --angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.gradient-border-card{position:relative;background:rgba(14,14,16,.85);border:none}
.gradient-border-card::before{content:'';position:absolute;inset:-1px;border-radius:inherit;background:conic-gradient(from var(--angle),transparent 40%,rgba(147,197,253,.4)50%,transparent 60%);z-index:-1;animation:rotate-border 6s linear infinite}
.gradient-border-card::after{content:'';position:absolute;inset:1px;border-radius:inherit;background:rgba(14,14,16,.95);z-index:-1}
@keyframes rotate-border{to{--angle:360deg}}
.magnetic-card{position:relative;overflow:hidden}
.magnetic-card::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(800px circle at var(--mouse-x,50%)var(--mouse-y,50%),rgba(147,197,253,.25),transparent 50%);z-index:0;pointer-events:none;transition:opacity .5s,transform .5s;opacity:0;transform:scale(.95)}
.magnetic-card:hover::before{opacity:1;transform:scale(1)}
.reveal-up{transition:opacity .1s}
.service-card{transition:transform .45s ease,border-color .45s ease}
.service-card:hover{transform:translateY(-6px);border-color:rgba(147,197,253,.5)}
.tech-icon{transition:all .3s ease}
.tech-icon:hover{transform:translateY(-4px);filter:drop-shadow(0 0 12px rgba(147,197,253,.4))}
#noise-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}
#aurora-bg{position:fixed;inset:-20%;pointer-events:none;z-index:0;opacity:.6;filter:blur(40px) saturate(115%);background:radial-gradient(circle at 12% 18%,rgba(147,197,253,.24),transparent 40%),radial-gradient(circle at 85% 15%,rgba(79,70,229,.12),transparent 42%),radial-gradient(circle at 50% 70%,rgba(34,197,94,.08),transparent 45%),radial-gradient(circle at 70% 85%,rgba(147,197,253,.14),transparent 40%);animation:auroraDrift 28s ease-in-out infinite alternate}
@keyframes auroraDrift{0%{transform:translate3d(-2%,-1%,0)scale(1)}50%{transform:translate3d(2%,1.5%,0)scale(1.06)}100%{transform:translate3d(-1%,2%,0)scale(1.02)}}
.contact-card{position:fixed;bottom:2rem;right:2rem;z-index:90;width:fit-content;height:fit-content;background:rgba(255,255,255,.03);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.05);border-radius:35px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:12px;gap:12px;box-shadow:0 20px 40px rgba(0,0,0,.5);transition:all .3s ease}
.socialContainer{width:48px;height:48px;border-radius:24px;background:rgba(255,255,255,.05);display:flex;flex-direction:row;align-items:center;justify-content:flex-end;overflow:hidden;transition:width .4s cubic-bezier(.4,0,.2,1),background-color .3s,transform .3s;text-decoration:none}
.socialSvgWrap{min-width:48px;max-width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.socialText{max-width:0;opacity:0;white-space:nowrap;font-size:14px;font-weight:600;color:white;font-family:"Inter",sans-serif;transition:max-width .4s cubic-bezier(.4,0,.2,1),opacity .3s,padding .4s;display:flex;align-items:center;justify-content:flex-end;overflow:hidden;padding-right:0}
.containerOne:hover{background-color:#25d366;width:200px;transform:scale(1.05)}
.containerOne:hover .socialText{max-width:155px;opacity:1;padding-right:12px;padding-left:18px}
.containerTwo:hover{background-color:#ea4335;width:260px;transform:scale(1.05)}
.containerTwo:hover .socialText{max-width:215px;opacity:1;padding-right:12px;padding-left:18px}
.containerThree:hover{background-color:#007aff;width:200px;transform:scale(1.05)}
.containerThree:hover .socialText{max-width:155px;opacity:1;padding-right:12px;padding-left:18px}
.socialSvg{width:24px;height:24px}
.socialSvg path{fill:rgb(255,255,255)}
.socialContainer:active{transform:scale(.95)}
.faq-hint{border:1px solid rgba(147,197,253,.2);background:rgba(147,197,253,.07);color:#dbeafe;border-radius:999px;padding:6px 12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-family:"Inter",sans-serif;font-weight:700}
.proof-card{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);transition:all .5s ease;position:relative;overflow:hidden}
.proof-card:hover{background:rgba(255,255,255,.04);border-color:rgba(147,197,253,.2);transform:translateY(-5px);box-shadow:0 20px 40px -20px rgba(0,0,0,.5)}
.elevated-card{transition:transform .45s ease,border-color .45s ease,box-shadow .45s ease,background-color .45s ease}
.elevated-card:hover{transform:translateY(-6px);border-color:rgba(147,197,253,.5);background-color:rgba(255,255,255,.05);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,rgba(147,197,253,.3),transparent);transform:translateX(-50%)}
.timeline-progress{position:absolute;left:50%;top:0;width:1px;background:#93c5fd;transform:translateX(-50%);box-shadow:0 0 10px rgba(147,197,253,.5);height:0;transition:height .1s linear}
.timeline-dot{position:absolute;left:50%;width:12px;height:12px;border-radius:50%;background:#09090b;border:2px solid #93c5fd;transform:translateX(-50%);z-index:10;box-shadow:0 0 10px rgba(147,197,253,.4)}
.marquee-track{display:flex;width:max-content;animation:marquee-scroll 25s linear infinite}
@keyframes marquee-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
