:root{
  --bg: #06070f;
  --bg2: #0b0e1c;
  --card: rgba(255,255,255,0.045);
  --card-border: rgba(255,255,255,0.09);
  --overlay: rgba(255,255,255,0.06);
  --overlay-soft: rgba(255,255,255,0.04);
  --nav-bg: rgba(6,7,15,0.8);
  --grid-line: rgba(255,255,255,0.04);
  --text: #eef0ff;
  --muted: #9aa1c7;
  --c1: #7b5cff;
  --c2: #00e5ff;
  --c3: #ff5cae;
  --c4: #4dffb4;
  --grad: linear-gradient(120deg, var(--c1), var(--c2) 50%, var(--c3));
  color-scheme: dark;
}
html[data-theme="light"]{
  color-scheme: light;
  --bg: #f6f7fc;
  --bg2: #ffffff;
  --card: rgba(20,20,50,0.035);
  --card-border: rgba(20,20,50,0.1);
  --overlay: rgba(20,20,50,0.05);
  --overlay-soft: rgba(20,20,50,0.04);
  --nav-bg: rgba(255,255,255,0.78);
  --grid-line: rgba(20,20,50,0.05);
  --text: #14152a;
  --muted: #5c6180;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; max-width:100%; }
body{
  background: var(--bg);
  color: var(--text);
  font-family:'Poppins', sans-serif;
  overflow-x:hidden;
  max-width:100%;
  transition: background .4s ease, color .4s ease;
}
.text-muted{ color: var(--muted)!important; }
h1,h2,h3,h4,.brand{ font-family:'Space Grotesk', sans-serif; }
a{ text-decoration:none; }
::selection{ background: var(--c1); color:#fff; }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background: var(--bg); }
::-webkit-scrollbar-thumb{ background: var(--grad); border-radius:10px; }

.grad-text{
  background: var(--grad); background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation: gradShift 5s linear infinite;
}
@keyframes gradShift{ 0%{background-position:0% 50%;} 50%{background-position:100% 50%;} 100%{background-position:0% 50%;} }

/* background fx */
.bg-fx{ position:fixed; inset:0; z-index:-2; transition: background .4s ease; background:
    radial-gradient(circle at 15% 20%, rgba(123,92,255,0.25), transparent 40%),
    radial-gradient(circle at 85% 10%, rgba(0,229,255,0.18), transparent 35%),
    radial-gradient(circle at 50% 90%, rgba(255,92,174,0.18), transparent 40%),
    var(--bg);
}
html[data-theme="light"] .bg-fx{ background:
    radial-gradient(circle at 15% 20%, rgba(123,92,255,0.10), transparent 40%),
    radial-gradient(circle at 85% 10%, rgba(0,229,255,0.08), transparent 35%),
    radial-gradient(circle at 50% 90%, rgba(255,92,174,0.08), transparent 40%),
    var(--bg);
}
.grid-overlay{
  position:fixed; inset:0; z-index:-1; opacity:0.3;
  background-image: linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:42px 42px;
  mask-image: radial-gradient(circle at 50% 30%, black, transparent 75%);
}
.blob{ position:fixed; border-radius:50%; filter:blur(90px); opacity:0.55; z-index:-1; animation: float 16s ease-in-out infinite; transition: opacity .4s ease; }
.blob.b1{ width:420px; height:420px; background:var(--c1); top:-120px; left:-120px; }
.blob.b2{ width:380px; height:380px; background:var(--c2); top:40%; right:-160px; animation-delay:-4s; }
.blob.b3{ width:340px; height:340px; background:var(--c3); bottom:-140px; left:30%; animation-delay:-9s; }
@keyframes float{ 0%,100%{transform:translate(0,0) scale(1);} 33%{transform:translate(40px,-30px) scale(1.08);} 66%{transform:translate(-30px,25px) scale(0.95);} }
html[data-theme="light"] .blob{ opacity:0.18; }

.particles{ position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.particles span{ position:absolute; bottom:-10px; display:block; color:var(--c2); opacity:0.55; animation: rise linear infinite; font-family:'Space Grotesk', monospace; font-weight:700; }
@keyframes rise{ 0%{transform:translateY(0) rotate(0deg);opacity:0;} 10%{opacity:0.6;} 100%{transform:translateY(-110vh) translateX(20px) rotate(25deg); opacity:0;} }

/* navbar */
.navbar{ padding:18px 0; transition: all .35s ease; }
.navbar.scrolled{ background: var(--nav-bg)!important; backdrop-filter: blur(16px); padding:10px 0; border-bottom:1px solid var(--card-border); }
.navbar-brand{ display:flex; align-items:center; gap:12px; }
.brand-icon-wrap{
  width:46px; height:46px; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(123,92,255,0.3), rgba(0,229,255,0.18));
  border:1px solid rgba(123,92,255,0.4);
  box-shadow:0 0 16px rgba(123,92,255,0.4);
  animation: brandPulse 3s ease-in-out infinite;
  transition: transform .35s ease;
}
@keyframes brandPulse{ 0%,100%{ box-shadow:0 0 14px rgba(123,92,255,.4);} 50%{ box-shadow:0 0 22px rgba(0,229,255,.5);} }
.navbar-brand:hover .brand-icon-wrap{ transform:scale(1.08) rotate(-4deg); }
html[data-theme="light"] .brand-icon-wrap{ box-shadow:0 0 10px rgba(123,92,255,0.25); }
.brand-icon{ height:27px; width:auto; display:block; }
.brand-text{ display:flex; flex-direction:column; line-height:1; }
.brand-word{ font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:1.3rem; color:var(--text); white-space:nowrap; }
.brand-tagline{ font-family:'Manrope', sans-serif; font-weight:600; font-size:0.56rem; letter-spacing:2px; text-transform:uppercase; color:var(--c1); margin-top:3px; white-space:nowrap; }
.footer-brand .brand-icon-wrap{ width:42px; height:42px; border-radius:12px; }
.footer-brand .brand-icon{ height:24px; }
.footer-brand .brand-word{ font-size:1.2rem; }
@media (max-width:767.98px){
  #mainNav .brand-tagline{ display:none; }
}
@media (max-width:380px){
  #mainNav .brand-icon-wrap{ width:38px; height:38px; }
  #mainNav .brand-word{ font-size:1.1rem; }
}
.nav-link{ color: var(--muted)!important; font-weight:500; position:relative; margin:0 4px; font-size:0.92rem; }
.nav-link:hover, .nav-link:focus{ color: var(--text)!important; }
.nav-link::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--grad); transition:width .3s; }
.nav-link:hover::after{ width:100%; }
.nav-link.active{ color: var(--text)!important; }
.nav-link.active::after{ width:100%; }
.btn-gradient{
  background: var(--grad); background-size:200% auto; color:#0a0a12!important; font-weight:700; border:none; border-radius:50px; padding:11px 26px;
  transition: all .35s; box-shadow:0 8px 24px rgba(123,92,255,0.35);
}
.btn-gradient:hover{ background-position:100% center; transform:translateY(-2px); color:#0a0a12; box-shadow:0 12px 30px rgba(0,229,255,0.4); }
.btn-outline-grad{ border:1px solid var(--card-border); color:var(--text); border-radius:50px; padding:11px 26px; font-weight:600; transition: all .35s; background:transparent; }
.btn-outline-grad:hover{ background:var(--overlay); border-color:var(--c2); color:var(--text); transform:translateY(-2px); }
.navbar-toggler{ border:none; box-shadow:none!important; }
.navbar-toggler-icon{ filter: invert(1); }
html[data-theme="light"] .navbar-toggler-icon{ filter:none; }

@media (max-width: 991.98px){
  #navContent{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--bg2);
    border-bottom:1px solid var(--card-border);
    box-shadow:0 24px 40px rgba(0,0,0,0.35);
    padding:20px 24px 28px;
    max-height:calc(100vh - 70px);
    overflow-y:auto;
  }
  #navContent .nav-link{ padding:10px 0; font-size:1rem; }
  #navContent .btn-gradient{ display:flex; justify-content:center; }
}

.theme-toggle{
  width:42px; height:42px; border-radius:50%; background:var(--card); border:1px solid var(--card-border); color:var(--text);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition: all .35s; font-size:1rem; flex-shrink:0;
}
.theme-toggle:hover{ border-color:var(--c2); transform:rotate(20deg) scale(1.08); }
.theme-toggle .fa-sun{ color:#ffc94d; display:none; }
.theme-toggle .fa-moon{ color:var(--c2); display:inline-block; }
html[data-theme="light"] .theme-toggle .fa-sun{ display:inline-block; }
html[data-theme="light"] .theme-toggle .fa-moon{ display:none; }

/* hero */
.hero{ min-height:100vh; display:flex; align-items:center; padding-top:110px; padding-bottom:60px; }
.badge-pill{ display:inline-flex; align-items:center; gap:8px; padding:8px 18px; border-radius:50px; background:var(--card); border:1px solid var(--card-border); font-size:0.82rem; color:var(--c2); margin-bottom:24px; }
.hero h1{ font-size:clamp(2.2rem,5vw,3.8rem); font-weight:800; line-height:1.1; margin-bottom:20px; }
.type-line{ font-size:clamp(1.05rem,2vw,1.4rem); font-weight:600; color:var(--c4); min-height:2em; margin-bottom:16px; }
.type-line .cursor{ display:inline-block; width:3px; background:var(--c4); margin-left:3px; animation: blink .9s step-end infinite; }
@keyframes blink{ 50%{opacity:0;} }
.hero p.lead{ color:var(--muted); font-size:1.05rem; max-width:520px; margin-bottom:30px; }
.hero-stats .num{ font-size:1.8rem; font-weight:800; }
.hero-stats .lbl{ color:var(--muted); font-size:0.82rem; }

.orbit-wrap{ position:relative; width:100%; max-width:420px; height:420px; margin:0 auto; }
.core{
  position:absolute; top:50%; left:50%; width:140px; height:140px; transform:translate(-50%,-50%); border-radius:32px;
  background:var(--grad); background-size:200% 200%; animation: gradShift 6s linear infinite, pulse 3s ease-in-out infinite;
  display:flex; align-items:center; justify-content:center; font-size:2.8rem; color:#0a0a12; box-shadow:0 0 80px rgba(123,92,255,0.5);
}
@keyframes pulse{ 0%,100%{box-shadow:0 0 60px rgba(123,92,255,.45);} 50%{box-shadow:0 0 100px rgba(0,229,255,.55);} }
.ring{ position:absolute; top:50%; left:50%; border:1px dashed rgba(255,255,255,0.18); border-radius:50%; transform:translate(-50%,-50%); }
.ring1{ width:400px; height:400px; animation: spin 22s linear infinite; }
.ring2{ width:300px; height:300px; animation: spin 16s linear infinite reverse; }
@keyframes spin{ from{transform:translate(-50%,-50%) rotate(0deg);} to{transform:translate(-50%,-50%) rotate(360deg);} }
.tech-chip{
  position:absolute; width:62px; height:62px; border-radius:18px; background:var(--card); border:1px solid var(--card-border);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; animation: chipFloat 5s ease-in-out infinite;
}
@keyframes chipFloat{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-14px);} }
.tc1{ top:0; left:50%; margin-left:-31px; }
.tc2{ top:18%; right:-6px; animation-delay:.6s; }
.tc3{ bottom:14%; right:0; animation-delay:1.2s; }
.tc4{ bottom:-4px; left:36%; animation-delay:1.8s; }
.tc5{ top:20%; left:-10px; animation-delay:2.4s; }
.tc6{ bottom:18%; left:-6px; animation-delay:3s; }

.code-float{
  position:absolute; font-family:'Space Grotesk', monospace; font-weight:700; font-size:0.85rem; color: var(--c2);
  background: var(--card); border:1px solid var(--card-border); padding:6px 12px; border-radius:10px; opacity:0.85;
  animation: chipFloat 6s ease-in-out infinite; pointer-events:none; z-index:2;
}
.cf1{ top:6%; left:-6%; animation-delay:0.4s; color:var(--c4); }
.cf2{ top:70%; right:-8%; animation-delay:1.6s; color:var(--c3); }
.cf3{ bottom:4%; left:4%; animation-delay:2.8s; color:var(--c1); }
.cf4{ top:38%; right:-10%; animation-delay:3.6s; color:var(--c2); }

section{ padding:100px 0; position:relative; }
.eyebrow{ color:var(--c2); font-weight:700; letter-spacing:3px; font-size:0.78rem; text-transform:uppercase; display:block; margin-bottom:12px; }
.section-head p.lead-sm{ color:var(--muted); max-width:600px; margin:0 auto; }

/* page header (inner pages) */
.page-header{ padding-top:150px; padding-bottom:50px; text-align:center; }
.page-header h1{ font-size:clamp(2rem,4.5vw,3rem); font-weight:800; margin-bottom:14px; }
.page-header p{ color:var(--muted); max-width:640px; margin:0 auto; font-size:1.02rem; }
.breadcrumb-chip{ display:inline-flex; gap:8px; align-items:center; color:var(--muted); font-size:0.85rem; margin-bottom:18px; }
.breadcrumb-chip a{ color:var(--c2); }
.service-area-chip{ font-size:0.78rem; padding:6px 14px; border-radius:50px; background:var(--overlay); color:var(--muted); border:1px solid var(--card-border); margin:4px; display:inline-block; }

/* marquee */
.marquee-sec{ padding:40px 0; border-top:1px solid var(--card-border); border-bottom:1px solid var(--card-border); overflow:hidden; }
.marquee-track{ display:flex; gap:60px; width:max-content; animation: scrollLeft 26s linear infinite; }
.marquee-track span{ display:flex; align-items:center; gap:10px; font-weight:600; color:var(--muted); white-space:nowrap; }
.marquee-track span i{ color:var(--c2); font-size:1.3rem; }
@keyframes scrollLeft{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* cards */
.glass-card{ background:var(--card); border:1px solid var(--card-border); border-radius:20px; padding:34px 28px; height:100%; transition:all .4s cubic-bezier(.2,.8,.2,1); position:relative; overflow:hidden; }
.glass-card::before{ content:''; position:absolute; inset:0; background:var(--grad); opacity:0; transition:opacity .4s; z-index:0; }
.glass-card:hover{ transform:translateY(-10px); border-color:transparent; box-shadow:0 25px 50px rgba(0,0,0,.45); }
.glass-card:hover::before{ opacity:0.12; }
.glass-card > *{ position:relative; z-index:1; }
.icon-box{ width:60px; height:60px; border-radius:16px; background:var(--overlay); display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:20px; transition:all .4s; }
.glass-card:hover .icon-box{ background:var(--grad); transform:rotate(-8deg) scale(1.08); }
.icon-box i{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.glass-card:hover .icon-box i{ color:#0a0a12; -webkit-text-fill-color:#0a0a12; }
.glass-card h3{ font-size:1.2rem; font-weight:700; margin-bottom:10px; }
.glass-card p{ color:var(--muted); font-size:0.92rem; line-height:1.7; }
.tag-chip{ font-size:0.72rem; padding:4px 11px; border-radius:50px; background:var(--overlay); color:var(--c2); border:1px solid var(--card-border); margin:3px; display:inline-block; }

/* case studies (portfolio) */
.case-card{ background:var(--card); border:1px solid var(--card-border); border-radius:20px; overflow:hidden; transition:all .4s; height:100%; }
.case-card:hover{ transform:translateY(-8px); box-shadow:0 25px 50px rgba(0,0,0,.4); border-color:var(--c2); }
.case-cover{ height:160px; display:flex; align-items:center; justify-content:center; font-size:2.6rem; color:#fff; }
.case-cover.cc1{ background:linear-gradient(135deg,#7b5cff,#00e5ff); }
.case-cover.cc2{ background:linear-gradient(135deg,#ff5cae,#7b5cff); }
.case-cover.cc3{ background:linear-gradient(135deg,#00e5ff,#4dffb4); }
.case-cover.cc4{ background:linear-gradient(135deg,#4dffb4,#7b5cff); }
.case-cover.cc5{ background:linear-gradient(135deg,#ff5cae,#00e5ff); }
.case-cover.cc6{ background:linear-gradient(135deg,#7b5cff,#ff5cae); }
.case-cover.cc7{ background:linear-gradient(135deg,#00e5ff,#7b5cff); }
.case-body .demo-tag{ color:#ffc94d; }
.case-body{ padding:26px; }
.case-body h3{ margin:0 0 10px; font-size:1.25rem; font-weight:700; }
.case-body p{ color:var(--muted); font-size:0.92rem; line-height:1.7; }

/* blog */
.blog-card{ background:var(--card); border:1px solid var(--card-border); border-radius:20px; overflow:hidden; transition:all .4s; height:100%; }
.blog-card:hover{ transform:translateY(-8px); border-color:var(--c1); box-shadow:0 25px 50px rgba(0,0,0,.4); }
.blog-cover{ height:180px; display:flex; align-items:center; justify-content:center; font-size:2.4rem; color:#fff; }
.blog-body{ padding:24px; }
.blog-meta{ font-size:0.78rem; color:var(--c2); text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-bottom:10px; }
.blog-body h3{ font-size:1.15rem; font-weight:700; margin-bottom:10px; }
.blog-body p{ color:var(--muted); font-size:0.9rem; line-height:1.7; margin-bottom:16px; }
.blog-read{ color:var(--c2); font-weight:600; font-size:0.88rem; }
.blog-post-body{ font-size:1.02rem; line-height:1.9; color:var(--muted); }
.blog-post-body h2{ color:var(--text); font-size:1.5rem; margin:36px 0 16px; }
.blog-post-body p{ margin-bottom:20px; }

/* tech stack items */
.stack-cat{ font-size:1rem; font-weight:700; color:var(--text); margin-bottom:20px; display:flex; align-items:center; gap:10px; }
.stack-cat i{ color:var(--c2); }
.stack-item{ background:var(--card); border:1px solid var(--card-border); border-radius:16px; padding:24px 14px; text-align:center; transition:all .35s; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.stack-item:hover{ transform:translateY(-8px) scale(1.04); border-color:var(--c2); box-shadow:0 15px 35px rgba(0,229,255,0.18); }
.stack-item i{ font-size:2rem; margin-bottom:10px; display:block; }
.stack-item span{ font-size:0.82rem; color:var(--muted); font-weight:500; }
.stack-item:hover span{ color:var(--text); }
@media (min-width: 992px){
  .col-lg-2-4{ flex:0 0 auto; width:20%; }
}

/* stats band */
.stats-band{ background:var(--card); border:1px solid var(--card-border); border-radius:20px; padding:50px 20px; }
.stats-band .big-num{ font-size:2.6rem; font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stats-band .cap{ color:var(--muted); font-size:0.88rem; margin-top:6px; }

/* process */
.proc-num{ width:72px; height:72px; margin:0 auto 18px; border-radius:50%; background:var(--bg2); border:2px solid var(--card-border); display:flex; align-items:center; justify-content:center; font-size:1.5rem; font-weight:800; transition:all .4s; }
.proc-step:hover .proc-num{ background:var(--grad); color:#0a0a12; border-color:transparent; transform:scale(1.1); }
.proc-step h4{ font-size:1rem; margin-bottom:6px; }
.proc-step p{ color:var(--muted); font-size:0.85rem; }

/* testimonials */
.testi-card{ background:var(--card); border:1px solid var(--card-border); border-radius:20px; padding:30px; height:100%; transition:all .4s; }
.testi-card:hover{ transform:translateY(-6px); border-color:var(--c1); }
.stars{ color:#ffc94d; margin-bottom:14px; }
.avatar{ width:44px; height:44px; border-radius:50%; background:var(--grad); display:flex; align-items:center; justify-content:center; font-weight:700; color:#0a0a12; }

/* faq accordion */
.accordion-item{ background:var(--card); border:1px solid var(--card-border); border-radius:16px!important; margin-bottom:16px; overflow:hidden; }
.accordion-button{ background:transparent!important; color:var(--text)!important; font-weight:600; font-size:0.98rem; box-shadow:none!important; padding:20px 24px; }
.accordion-button::after{ filter: invert(1) brightness(2); }
html[data-theme="light"] .accordion-button::after{ filter:none; }
.accordion-button:not(.collapsed){ color:var(--c2)!important; }
.accordion-body{ color:var(--muted); font-size:0.9rem; line-height:1.75; padding:0 24px 22px; }

/* cta */
.cta-band{ border-radius:26px; padding:64px 40px; text-align:center; position:relative; overflow:hidden; background:linear-gradient(135deg, rgba(123,92,255,0.25), rgba(0,229,255,0.15)); border:1px solid var(--card-border); }

/* contact */
.info-icon{ width:48px; height:48px; border-radius:14px; background:var(--card); border:1px solid var(--card-border); display:flex; align-items:center; justify-content:center; font-size:1.15rem; color:var(--c2); flex-shrink:0; }
.info-item a, .info-item p{ color:var(--muted); font-size:0.9rem; }
.social-row a{ width:42px; height:42px; border-radius:12px; background:var(--card); border:1px solid var(--card-border); display:flex; align-items:center; justify-content:center; transition:all .35s; color:var(--text); }
.social-row a:hover{ background:var(--grad); color:#0a0a12; transform:translateY(-4px); }
.contact-form{ background:var(--card); border:1px solid var(--card-border); border-radius:20px; padding:34px; }
.form-control, .form-select{ background:var(--overlay-soft)!important; border:1px solid var(--card-border)!important; color:var(--text)!important; border-radius:12px!important; padding:12px 16px!important; }
.form-control::placeholder{ color:#6b7299; }
.form-control:focus, .form-select:focus{ border-color:var(--c2)!important; box-shadow:0 0 0 3px rgba(0,229,255,0.15)!important; }
.form-label{ color:var(--muted); font-size:0.82rem; }

.custom-select{ position:relative; }
.custom-select-btn{ text-align:left; display:flex; align-items:center; justify-content:space-between; cursor:pointer; }
.custom-select-btn::after{ margin-left:auto; }
.custom-select .dropdown-menu{
  background:var(--bg2); border:1px solid var(--card-border); border-radius:12px; padding:8px;
  box-shadow:0 20px 40px rgba(0,0,0,0.35); margin-top:6px;
}
.custom-select .dropdown-item{ color:var(--text); border-radius:8px; padding:9px 14px; font-size:0.92rem; transition:all .2s; }
.custom-select .dropdown-item:hover, .custom-select .dropdown-item:focus{ background:var(--overlay); color:var(--text); }
.custom-select .dropdown-item.active{ background:var(--grad); color:#0a0a12; }

.map-frame{ border-radius:20px; overflow:hidden; border:1px solid var(--card-border); }
.map-frame iframe{ width:100%; height:360px; border:0; display:block; }
html[data-theme="dark"] .map-frame iframe{ filter: invert(0.92) hue-rotate(180deg) brightness(0.95) contrast(0.9); }

footer{ padding:56px 0 26px; border-top:1px solid var(--card-border); }
footer p{ color:var(--muted); font-size:0.88rem; }
footer h5{ font-size:0.95rem; margin-bottom:16px; }
footer ul{ list-style:none; padding:0; }
footer ul li{ margin-bottom:10px; }
footer ul li a{ color:var(--muted); font-size:0.88rem; transition:color .3s; }
footer ul li a:hover{ color:var(--c2); }
.footer-bottom{ border-top:1px solid var(--card-border); padding-top:22px; margin-top:36px; color:var(--muted); font-size:0.82rem; }

.back-top{
  position:fixed; bottom:28px; right:28px; width:48px; height:48px; border-radius:50%; background:var(--grad); color:#0a0a12;
  display:flex; align-items:center; justify-content:center; font-size:1.05rem; cursor:pointer; z-index:99; opacity:0; pointer-events:none; transition:all .4s; box-shadow:0 10px 25px rgba(123,92,255,0.4);
}
.back-top.show{ opacity:1; pointer-events:auto; }
.back-top:hover{ transform:translateY(-5px); }

.whatsapp-fab{
  position:fixed; bottom:28px; left:28px; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.6rem; z-index:99; text-decoration:none;
  box-shadow:0 10px 25px rgba(37,211,102,0.45); animation: waPulse 2.4s ease-in-out infinite; transition: transform .3s;
}
.whatsapp-fab:hover{ transform:scale(1.08); color:#fff; }
@keyframes waPulse{ 0%,100%{ box-shadow:0 10px 25px rgba(37,211,102,0.45);} 50%{ box-shadow:0 10px 34px rgba(37,211,102,0.7);} }

@media (max-width: 767px){
  section{ padding:70px 0; }
  .hero{ padding-top:100px; text-align:center; }
  .hero p.lead{ margin-inline:auto; }
  .code-float{ display:none; }
  .orbit-wrap{ max-width:320px; height:320px; }
  .ring1{ width:300px; height:300px; }
  .ring2{ width:220px; height:220px; }
  .core{ width:110px; height:110px; font-size:2.2rem; }
  .tech-chip{ width:52px; height:52px; font-size:1.2rem; }
}
