/* HeliosLabs — static site stylesheet */
:root{
  --background:#fbfaff;
  --foreground:#1a1330;
  --muted:#5c5573;
  --primary:#5b2bd6;
  --primary-glow:#8a5cff;
  --pink:#ec4899;
  --teal:#14b8a6;
  --amber:#f59e0b;
  --coral:#fb7156;
  --border:rgba(20,10,40,.10);
  --radius:14px;
  --shadow-elegant:0 20px 50px -20px rgba(91,43,214,.35);
  --gradient-hero:linear-gradient(125deg,#5b2bd6 0%,#a23cd6 45%,#fb7156 100%);
  --gradient-rainbow:linear-gradient(90deg,var(--primary),var(--pink),var(--coral),var(--amber),var(--teal));
  --gradient-mesh:
    radial-gradient(at 10% 10%, rgba(236,72,153,.08) 0, transparent 50%),
    radial-gradient(at 90% 20%, rgba(20,184,166,.08) 0, transparent 50%),
    radial-gradient(at 50% 90%, rgba(245,158,11,.08) 0, transparent 50%);
  --gradient-purple:linear-gradient(135deg,#0f0720 0%,#2e1065 40%,#5b2bd6 100%);
  --gradient-lavender: linear-gradient(135deg, #e6e9ff 0%, #f5f0ff 50%, #e6e9ff 100%);
  --glass-bg:rgba(255,255,255,.6);
}
.bg-blobs{position:fixed;inset:0;z-index:-10;overflow:hidden;pointer-events:none}
.blob{position:absolute;width:600px;height:600px;border-radius:50%;filter:blur(100px);opacity:.18;animation:blob-float 25s infinite alternate ease-in-out}
.blob-1{top:-100px;left:-100px;background:var(--primary)}
.blob-2{top:40%;right:-100px;background:var(--pink);animation-delay:-7s}
.blob-3{bottom:-100px;left:20%;background:var(--teal);animation-delay:-14s}
@keyframes blob-float{0%{transform:translate(0,0) scale(1)}100%{transform:translate(60px,80px) scale(1.15)}}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--gradient-lavender);
  background-attachment:fixed;
  color:var(--foreground);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Sora','Inter',sans-serif;letter-spacing:-.04em;line-height:1.05;margin:0}
h1{font-size:clamp(2.8rem,6vw,4.8rem);font-weight:800;letter-spacing:-.05em}
h2{font-size:clamp(2rem,4vw,3.2rem);font-weight:700;margin-bottom:.6rem}
h3{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}
.gradient-text{background:linear-gradient(90deg, #5b2bd6, #d946ef, #e11d48);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
p{margin:.5rem 0}
.container{max-width:1180px;margin:0 auto;padding:0 1.5rem}

/* Glassmorphism + pop utilities */
.glass{
  background:rgba(255,255,255,0.6) !important;
  border:1px solid rgba(0,0,0,0.06);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  box-shadow:0 8px 32px 0 rgba(91,43,214,0.06), inset 0 1px 0 rgba(255,255,255,0.8);
  border-radius:20px;
}
.card-pop{position:relative;overflow:hidden;transition:transform .1s ease,box-shadow .5s ease,border-color .5s ease;will-change:transform}
.card-pop:hover{
  border-color:rgba(91,43,214,0.4);
  box-shadow:0 35px 70px -15px rgba(91,43,214,0.2), 0 10px 25px -10px rgba(236,72,153,0.15);
  z-index:10;
}
.card-pop::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(400px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255,255,255,0.15), transparent 40%);
  z-index:2;pointer-events:none;opacity:0;transition:opacity .5s;
}
.card-pop:hover::before{opacity:1}
.card-pop::after{
  content:'';
  position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
  transition:left .6s;z-index:3;
}
.card-pop:hover::after{left:100%}

/* Reveal Animations */
.reveal{opacity:0;transform:translateY(40px);transition:all 1s cubic-bezier(0.22, 1, 0.36, 1);will-change:transform, opacity}
.reveal.active{opacity:1;transform:translateY(0)}

.reveal-left{opacity:0;transform:translateX(-40px);transition:all 1s cubic-bezier(0.22, 1, 0.36, 1);will-change:transform, opacity}
.reveal-left.active{opacity:1;transform:translateX(0)}

.reveal-right{opacity:0;transform:translateX(40px);transition:all 1s cubic-bezier(0.22, 1, 0.36, 1);will-change:transform, opacity}
.reveal-right.active{opacity:1;transform:translateX(0)}

.reveal-scale{opacity:0;transform:scale(0.92);transition:all 1s cubic-bezier(0.22, 1, 0.36, 1);will-change:transform, opacity}
.reveal-scale.active{opacity:1;transform:scale(1)}

.reveal-stagger > *{opacity:0;transform:translateY(30px);transition:all 0.8s cubic-bezier(0.22, 1, 0.36, 1);will-change:transform, opacity}
.reveal-stagger.active > *{opacity:1;transform:translateY(0)}
.reveal-stagger.active > *:nth-child(1){transition-delay:0.1s}
.reveal-stagger.active > *:nth-child(2){transition-delay:0.2s}
.reveal-stagger.active > *:nth-child(3){transition-delay:0.3s}
.reveal-stagger.active > *:nth-child(4){transition-delay:0.4s}
.reveal-stagger.active > *:nth-child(5){transition-delay:0.5s}
.reveal-stagger.active > *:nth-child(6){transition-delay:0.6s}

/* WhatsApp Float */
.whatsapp-float{
  position:fixed;bottom:2.5rem;right:2.5rem;z-index:100;
  height:60px;padding:0 1.6rem;
  display:flex;align-items:center;gap:.8rem;
  background:#25d366;
  border:2px solid rgba(255,255,255,0.4);
  border-radius:999px;
  text-decoration:none;color:#042f15;
  box-shadow:0 15px 45px rgba(37,211,102,0.4);
  transition:all 0.4s cubic-bezier(0.17,1.2,.3,1);
  animation:wa-pulse 2.5s infinite;
}
@keyframes wa-pulse{0%,100%{transform:scale(1);box-shadow:0 15px 45px rgba(37,211,102,0.4)}50%{transform:scale(1.05);box-shadow:0 20px 60px rgba(37,211,102,0.6)}}
.whatsapp-float:hover{
  transform:scale(1.1) translateY(-8px) !important;
  background:#128c7e;
  color:white;
  box-shadow:0 25px 50px rgba(37,211,102,0.6);
}
.wa-icon{font-size:1.8rem}
.wa-label{font-weight:700;font-size:1.1rem;white-space:nowrap;display:inline-block}
@media(max-width:480px){
  .whatsapp-float{width:60px;padding:0;justify-content:center}
  .wa-label{display:none}
}

/* Header */
.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.5rem;gap:1rem}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700}
.brand img{width:32px;height:32px;border-radius:8px}
.nav-links{display:flex;gap:1.4rem}
.nav-links a{font-size:.92rem;font-weight:500;color:var(--muted)}
.nav-links a:hover,.nav-links a.active{color:var(--primary)}
@media(max-width:680px){.nav-links{display:none}}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;border-radius:10px;font-size:.9rem;font-weight:600;transition:.2s;border:none;cursor:pointer}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-glow)}
.btn-light{background:#fff;color:var(--primary);box-shadow:var(--shadow-elegant)}
.btn-light:hover{background:#f5f3ff}
.btn-ghost{background:rgba(91,43,214,.05);color:var(--primary);border:1px solid rgba(91,43,214,.15);backdrop-filter:blur(10px);transition:all 0.3s ease;}
.btn-ghost:hover{background:rgba(91,43,214,.15);border-color:var(--primary);}

/* Hero */
.hero{
  position:relative;overflow:hidden;color:var(--foreground);
  border-bottom:1px solid var(--border);
}
.hero-bg{display:none}
.hero-overlay{display:none}
.hero-inner{padding:4.5rem 1.5rem 6rem;max-width:1180px}
.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:999px;background:rgba(91,43,214,.05);border:1px solid rgba(91,43,214,.1);color:var(--primary);font-size:.78rem;font-weight:600}
.badge-pill{padding:.4rem 1rem;border-radius:999px;background:rgba(91,43,214,.05);border:1px solid rgba(91,43,214,.1);color:var(--muted);font-size:.85rem;font-weight:500;transition:.3s}
.badge-pill:hover{color:var(--primary);background:rgba(91,43,214,.1);border-color:var(--primary)}

.hero h1{margin-top:1.4rem;color:var(--foreground);max-width:18ch}
.hero-sub{margin-top:1.4rem;max-width:60ch;color:var(--muted);font-size:1.1rem}
.hero-cta{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem}

/* Rotating word */
.word-wrap{display:inline-block;min-width:14ch}
.word-cycle{
  display:inline-block;
  background:linear-gradient(90deg, #5b2bd6 0%, #d946ef 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:word-rotate 2.2s ease-in-out both;
}
@keyframes word-rotate{
  0%{opacity:0;transform:translateY(20px) rotateX(-40deg)}
  20%,80%{opacity:1;transform:translateY(0) rotateX(0)}
  100%{opacity:0;transform:translateY(-20px) rotateX(40deg)}
}

/* Stats */
.stats{position:relative;padding:3.5rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.rainbow-strip{display:none}
.rainbow-strip.top{top:0}
.rainbow-strip.bottom{bottom:0;opacity:.6}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
@media(min-width:760px){.stats-grid{grid-template-columns:repeat(4,1fr)}}
.stat{padding:1.5rem;text-align:center}
.stat-v{font-family:'Sora',sans-serif;font-size:2.4rem;font-weight:800;margin-top:.8rem}
.stat-l{font-size:.85rem;color:var(--muted);font-weight:500}

/* Color helpers */
.primary{color:var(--primary)}.pink{color:var(--pink)}.teal{color:var(--teal)}.amber{color:var(--amber)}.coral{color:var(--coral)}
.icon-pill{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:16px;font-size:1.1rem}
.icon-pill.primary{background:rgba(91,43,214,.12);color:var(--primary)}
.icon-pill.pink{background:rgba(236,72,153,.15);color:var(--pink)}
.icon-pill.teal{background:rgba(20,184,166,.15);color:var(--teal)}
.icon-pill.amber{background:rgba(245,158,11,.2);color:#a16207}
.icon-pill.coral{background:rgba(251,113,86,.15);color:var(--coral)}

/* Float anim */
@keyframes float-slow{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.float-slow{animation:float-slow 5s ease-in-out infinite}

/* Sections */
.section{padding:3.5rem 1.5rem}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin:0}
.lead{color:var(--muted);max-width:60ch;margin-top:.75rem}
.center{text-align:center;margin:0 auto;max-width:600px}
.center .lead{margin-left:auto;margin-right:auto}

.grid-2, .grid-3, .grid-4{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-top:2.5rem}
@media(min-width:680px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}
.card{padding:1.6rem}
.card h3{margin-top:.9rem}
.card p{color:var(--muted);font-size:.92rem;margin-top:.4rem}

/* Why */
.why{padding:3.5rem 0}
.why-grid{display:grid;gap:3rem;grid-template-columns:1fr}
@media(min-width:980px){.why-grid{grid-template-columns:1fr 1fr;align-items:center}}
.check-list{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:.6rem;color:var(--foreground);font-size:.95rem}
.trust-stack{display:grid;gap:1rem}
.row{display:flex;align-items:center;gap:.75rem}

/* Tech Marquee */
.tech-marquee-wrap{padding:2rem 0;overflow:hidden}
.marquee-viewport{display:flex;padding:1rem 0}
.marquee-track{display:flex;gap:1.5rem;animation:marquee 40s linear infinite}
.tech-pill{padding:.75rem 1.5rem;white-space:nowrap;font-weight:700;font-size:1rem}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* Brand Colors for Tech */
.tech-pill:nth-child(8n+1) span{color:#61DAFB} /* React */
.tech-pill:nth-child(8n+2) span{color:#000}    /* Next.js */
.tech-pill:nth-child(8n+3) span{color:#3178C6} /* TS */
.tech-pill:nth-child(8n+4) span{color:#339933} /* Node */
.tech-pill:nth-child(8n+5) span{color:#FF9900} /* AWS */
.tech-pill:nth-child(8n+6) span{color:#336791} /* PG */
.tech-pill:nth-child(8n+7) span{color:#38B2AC} /* Tailwind */
.tech-pill:nth-child(8n+8) span{color:#F24E1E} /* Figma */

/* Testimonials Slider v2 */
.testimonial-container{position:relative;max-width:1280px;margin:0 auto;padding:0 3rem}
@media(max-width:768px){.testimonial-container{padding:0 1rem}}
.testimonial-viewport{overflow:hidden;margin-top:2rem;padding:1.5rem 0 3rem}
@media(max-width:768px){.testimonial-viewport{padding:1.5rem 0 3rem}}
.testimonial-track{display:flex;gap:2rem;transition:transform .8s cubic-bezier(.16,1,.3,1);will-change:transform}
.testimonial-card{flex:0 0 100%;width:100%;text-align:center;padding:3rem 2rem;position:relative}
@media(max-width:768px){.testimonial-card{padding:2rem 1.25rem}}
@media(min-width:760px){.testimonial-card{flex:0 0 calc(50% - 1rem)}}
@media(min-width:1100px){.testimonial-card{flex:0 0 calc(33.333% - 1.333rem)}}

.quote-badge{
  position:absolute;top:0;right:0;
  width:55px;height:55px;
  background:var(--primary);color:white;
  display:flex;align-items:center;justify-content:center;
  font-family:'Sora',sans-serif;font-size:1.8rem;font-weight:800;
  border-bottom-left-radius:30px;
  transform:rotate(180deg);line-height:0;padding-bottom:12px;
  z-index:5;
}
.card-inner{display:flex;flex-direction:column;align-items:center}
.avatar-wrap{width:70px;height:70px;border-radius:50%;overflow:hidden;border:3px solid white;box-shadow:0 10px 20px rgba(0,0,0,0.1);margin-bottom:1.2rem}
.avatar{width:100%;height:100%;object-fit:cover}
.role{font-size:.85rem;color:var(--muted);margin-bottom:1rem}
blockquote{margin:1.2rem 0 0;font-size:.98rem;line-height:1.7;color:var(--foreground);font-style:italic}

/* Slider Controls */
.slider-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  background:white;border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;cursor:pointer;z-index:10;
  transition:.3s;box-shadow:0 4px 12px rgba(0,0,0,0.05);
}
.slider-btn:hover{background:var(--primary);color:white;border-color:var(--primary)}
.slider-btn.prev{left:2rem}.slider-btn.next{right:2rem}
@media(max-width:768px){.slider-btn.prev{left:0}.slider-btn.next{right:0}}

.slider-dots{display:flex;justify-content:center;gap:.6rem;margin-top:1rem}
.dot{width:8px;height:8px;border-radius:50%;background:rgba(0,0,0,0.2);cursor:pointer;transition:.3s}
.dot.active{background:var(--primary);transform:scale(1.3)}

/* CTA */
.cta-wrap{padding:0 1.5rem 3.5rem}
.cta{
  max-width:1080px;margin:0 auto;
  padding:5rem 2rem;text-align:center;
  color:var(--foreground);
}
.cta h2{color:var(--foreground);font-size:clamp(2rem,4vw,3rem)}
.cta p{color:var(--muted);max-width:55ch;margin:1.2rem auto 2.5rem;font-size:1.1rem}

/* Page hero */
.page-hero{
  padding:4rem 0 3rem;
  color:var(--foreground);
  border-bottom:1px solid var(--border);
}
.page-hero h1{margin-top:.6rem;font-size:clamp(2rem,4vw,3.4rem);color:var(--foreground)}
.page-hero .eyebrow{color:var(--primary)}
.page-hero .lead{color:var(--muted)}

/* Contact */
.contact-grid{display:grid;gap:1.5rem;grid-template-columns:1fr;margin-top:2rem}
@media(min-width:880px){.contact-grid{grid-template-columns:1.2fr 1fr}}
.form{display:grid;gap:.9rem;padding:0}
.form label{display:grid;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--foreground)}
.form input,.form textarea{width:100%;min-width:0;font:inherit;padding:.7rem .85rem;border-radius:10px;border:1px solid var(--border);background:#fff;outline:none;transition:.2s}
.form input:focus,.form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,43,214,.25)}
.muted{color:var(--muted);font-size:.85rem}
.contact-info{display:grid;gap:1rem;align-content:start}

/* Footer */
.site-footer{
  border-top:1px solid var(--border);padding:3.5rem 0;margin-top:4rem;
}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-size:.88rem;color:var(--muted)}
.foot .brand img{width:26px;height:26px}
.foot-links{display:flex;gap:1.2rem}
.foot-links a:hover{color:var(--primary)}

/* MOBILE RESPONSIVE NAVIGATION & PORTRAIT ADJUSTMENTS */
.mobile-menu-toggle {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  z-index: 110;
  position: relative;
}
.hamburger-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--foreground);
  margin: 5px 0;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.mobile-nav-drawer {
  position: fixed;
  inset: 0;
  background: rgba(251, 250, 255, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  z-index: 105;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
}
.mobile-nav-drawer.active {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.mobile-nav-link {
  font-family: 'Sora', sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--foreground);
  transition: color 0.3s ease;
}
.mobile-nav-link:hover, .mobile-nav-link.active {
  color: var(--primary);
}

/* Hamburger animations */
.mobile-menu-toggle.active .hamburger-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.mobile-menu-toggle.active .hamburger-bar:nth-child(2) {
  opacity: 0;
}
.mobile-menu-toggle.active .hamburger-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Portrait Tilted Frame overrides */
.portrait-frame {
  position: relative;
  z-index: 2;
  background: #ffffff;
  padding: 1rem 1rem 1.25rem 1rem;
  border-radius: 28px;
  box-shadow: 0 35px 70px rgba(15, 14, 38, 0.08);
  border: 1px solid rgba(0,0,0,0.03);
  transform: rotate(-3.5deg);
  transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  cursor: pointer;
}
.portrait-frame:hover {
  transform: rotate(0deg) scale(1.03);
  box-shadow: 0 45px 85px rgba(91, 43, 214, 0.12);
}

/* Responsive Overrides */
@media (max-width: 768px) {
  .mobile-menu-toggle {
    display: block;
  }
  .header-cta {
    display: none !important;
  }
  .slider-btn {
    display: none !important;
  }
  .portrait-frame {
    transform: rotate(0deg) !important;
  }
  .portrait-frame:hover {
    transform: scale(1.02) !important;
  }
  .hero-image-col {
    padding: 1rem 0 !important;
    margin: 0 auto !important;
    max-width: 450px !important;
  }
}
@media (max-width: 680px) {
  .nav-links {
    display: none !important;
  }
}

.contact-card {
  padding: 2.5rem;
}
@media (max-width: 768px) {
  .contact-card {
    padding: 1.5rem !important;
  }
}
