:root{
  --bg:#060913;
  --surface:#0b1220;
  --surface2:#0e1730;
  --text:#e9efff;
  --muted:#a7b2d6;
  --line:rgba(255,255,255,.10);
  --line2:rgba(255,255,255,.14);

  --brand:#7c5cff;
  --brand2:#00d4ff;
  --good:#2ee59d;

  --shadow: 0 18px 60px rgba(0,0,0,.48);
  --shadow2: 0 10px 30px rgba(0,0,0,.35);
  --r: 18px;
  --r2: 28px;
  --max: 1140px;
}

*{ box-sizing:border-box }
html,body{ margin:0; padding:0 }
body{
  font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  color:var(--text);
  background:
    radial-gradient(900px 520px at 18% 0%, rgba(124,92,255,.22), transparent 55%),
    radial-gradient(900px 520px at 82% 8%, rgba(0,212,255,.14), transparent 55%),
    radial-gradient(900px 520px at 50% 95%, rgba(46,229,157,.10), transparent 55%),
    var(--bg);
}

a{ color:inherit; text-decoration:none }
.wrap{ max-width:var(--max); margin:0 auto; padding:0 20px }

::selection{ background: rgba(124,92,255,.35) }

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:60;
  backdrop-filter: blur(14px);
  background: linear-gradient(to bottom, rgba(6,9,19,.86), rgba(6,9,19,.40));
  border-bottom:1px solid var(--line);
}
.navinner{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:14px 0;
}
.brand{
  display:flex; align-items:center; gap:12px;
}
.brand img{ width:44px; height:44px }
.brandTitle{ display:flex; flex-direction:column; line-height:1.1 }
.brandTitle b{ font-size:14px; letter-spacing:.9px }
.brandTitle span{ font-size:12px; color:var(--muted); margin-top:4px }

.links{
  display:flex; gap:6px; align-items:center; flex-wrap:wrap;
  padding:6px; border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
}
.links a{
  font-size:13px; color:var(--muted);
  padding:9px 12px; border-radius:999px;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.links a:hover{ color:var(--text); background: rgba(255,255,255,.06) }
.links a.active{ color:var(--text); background: rgba(124,92,255,.18); border:1px solid rgba(124,92,255,.22) }

.cta{ display:flex; gap:10px; align-items:center }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:10px 14px; border-radius:14px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  font-size:13px; color:var(--text);
  transition: transform .15s ease, background .15s ease, border .15s ease, filter .15s ease;
  cursor:pointer;
}
.btn:hover{ transform: translateY(-1px); background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.18) }
.btn.primary{
  border:none;
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  color:#061022;
  font-weight:900;
  box-shadow: 0 18px 50px rgba(124,92,255,.20);
}
.btn.primary:hover{ filter: brightness(1.06) }
.btn.ghost{
  background: rgba(124,92,255,.10);
  border:1px solid rgba(124,92,255,.22);
}

.menuBtn{
  display:none;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
}
.menuBtn svg{ width:18px; height:18px; fill: var(--text) }

@media (max-width: 980px){
  .links{ display:none }
  .cta{ display:none }
  .menuBtn{ display:inline-flex; align-items:center; justify-content:center }
}

/* Mobile drawer */
.drawerBack{
  position:fixed; inset:0; z-index:80;
  background: rgba(0,0,0,.55);
  display:none;
}
.drawer{
  position:fixed; right:14px; top:64px; z-index:90;
  width:min(360px, calc(100% - 28px));
  border-radius: 20px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(11,18,32,.92);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow);
  padding:12px;
  display:none;
}
.drawer a{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 12px; border-radius:14px;
  color: var(--muted); font-size:14px;
}
.drawer a:hover{ background: rgba(255,255,255,.06); color: var(--text) }
.drawer .row{ display:flex; gap:10px; margin-top:10px }
.drawer .row a{ width:100%; justify-content:center }

/* ---------- GLOBAL SECTIONS ---------- */
.section{ padding:44px 0 }
.kicker{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 12px; border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  color: var(--muted); font-size:13px;
}
.dot{
  width:9px; height:9px; border-radius:999px;
  background: var(--good);
  box-shadow: 0 0 0 4px rgba(46,229,157,.12);
}
h1{
  margin:14px 0 10px;
  font-size:46px; line-height:1.02; letter-spacing:-1px;
}
@media(max-width: 520px){ h1{ font-size:36px } }
h2{ margin:0 0 10px; font-size:24px; letter-spacing:-.3px }
p.lead{
  margin:0 0 18px;
  color: var(--muted);
  line-height:1.7;
  max-width: 70ch;
  font-size:16px;
}
hr.sep{
  border:none; height:1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
  margin: 26px 0;
}

/* ---------- CARDS ---------- */
.card{
  border:1px solid rgba(255,255,255,.10);
  border-radius: var(--r2);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow: var(--shadow2);
}
.card.pad{ padding:22px }
.grid{ display:grid; gap:18px }
.cols2{ grid-template-columns: 1.1fr .9fr }
@media(max-width: 980px){ .cols2{ grid-template-columns:1fr } }
.cols3{ grid-template-columns: repeat(3, 1fr) }
@media(max-width: 980px){ .cols3{ grid-template-columns:1fr } }

/* ---------- HERO ---------- */
.hero{ padding:58px 0 22px }
.heroCard{ padding:26px }
.heroTop{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap }
.heroTitle{
  margin:14px 0 10px;
  font-size:44px; line-height:1.03; letter-spacing:-1px;
}
@media(max-width: 520px){ .heroTitle{ font-size:34px } }
.sub{
  color: var(--muted);
  font-size:16px;
  line-height:1.7;
  max-width: 70ch;
}
.heroActions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:18px }

.chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px }
.chip{
  font-size:12px; color: var(--muted);
  padding:9px 10px; border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
}

.aside{ padding:18px; display:flex; flex-direction:column; gap:12px }
.stat{
  padding:16px;
  border-radius: var(--r);
  border:1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(14,23,48,.86), rgba(11,18,32,.76));
}
.stat b{ display:block; font-size:14px; margin-bottom:6px }
.stat p{ margin:0; color: var(--muted); font-size:13px; line-height:1.6 }

.glow{
  position:relative;
  overflow:hidden;
}
.glow::before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(600px 260px at 20% 0%, rgba(124,92,255,.22), transparent 55%),
              radial-gradient(600px 260px at 80% 0%, rgba(0,212,255,.16), transparent 55%);
  pointer-events:none;
  opacity:.75;
}

/* ---------- FEATURE / SERVICE CARDS ---------- */
.svc{
  padding:18px;
  border-radius: var(--r);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  transition: transform .18s ease, border .18s ease, background .18s ease;
}
.svc:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.045);
  border-color: rgba(255,255,255,.16);
}
.svcHead{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px }
.svc h3{ margin:0 0 6px; font-size:16px }
.svc p{ margin:0 0 12px; color: var(--muted); line-height:1.6; font-size:13px }
.svc ul{ margin:0; padding-left:18px; color: var(--muted); font-size:13px; line-height:1.7 }

.icon{
  width:34px; height:34px;
  border-radius: 14px;
  display:inline-flex; align-items:center; justify-content:center;
  background: rgba(124,92,255,.16);
  border:1px solid rgba(124,92,255,.25);
}
.icon svg{ width:18px; height:18px; fill: var(--text) }

/* ---------- PROCESS ---------- */
.process{ grid-template-columns: repeat(4,1fr) }
@media(max-width: 980px){ .process{ grid-template-columns:1fr } }
.step{
  padding:16px;
  border-radius: var(--r);
  border:1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}
.num{
  width:32px; height:32px; border-radius: 12px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(124,92,255,.18);
  border:1px solid rgba(124,92,255,.35);
  font-weight:900; font-size:13px;
}
.step h3{ margin:10px 0 6px; font-size:15px }
.step p{ margin:0; color: var(--muted); font-size:13px; line-height:1.6 }

/* ---------- PRICING ---------- */
.priceGrid{ grid-template-columns: repeat(3, 1fr) }
@media(max-width: 980px){ .priceGrid{ grid-template-columns: 1fr } }

.price{
  padding:20px;
  border-radius: var(--r2);
  border:1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(11,18,32,.78), rgba(11,18,32,.58));
  box-shadow: var(--shadow2);
}
.price.featured{
  border-color: rgba(0,212,255,.28);
  box-shadow: 0 18px 60px rgba(0,212,255,.10), var(--shadow2);
  position:relative;
}
.badge{
  display:inline-flex; align-items:center;
  padding:6px 10px; border-radius: 999px;
  font-size:12px; font-weight:800;
  background: rgba(0,212,255,.14);
  border:1px solid rgba(0,212,255,.24);
  color: var(--text);
}
.price h3{ margin:10px 0 6px; font-size:16px }
.price .small{ color: var(--muted); font-size:13px; line-height:1.6; margin:0 0 12px }
.price .value{ font-size:28px; font-weight:1000; margin:0 0 10px }
.price ul{ margin:0; padding-left:18px; color: var(--muted); font-size:13px; line-height:1.7 }
.price .row{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap }

/* ---------- TESTIMONIALS ---------- */
.quote{
  padding:18px;
  border-radius: var(--r);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.quote p{ margin:0 0 10px; color: var(--muted); line-height:1.7; font-size:14px }
.quote b{ font-size:13px }
.quote span{ display:block; color: var(--muted); font-size:12px; margin-top:4px }

/* ---------- FAQ ---------- */
.faq .item{
  border:1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  overflow:hidden;
  background: rgba(255,255,255,.03);
}
.faq button{
  width:100%;
  background: transparent;
  border:none;
  color: var(--text);
  text-align:left;
  padding:14px 14px;
  font-size:14px;
  display:flex; align-items:center; justify-content:space-between;
  cursor:pointer;
}
.faq button span{ color: var(--muted); font-size:12px }
.faq .body{
  padding:0 14px 14px 14px;
  color: var(--muted);
  font-size:13px;
  line-height:1.7;
  display:none;
}
.faq .item.open .body{ display:block }

/* ---------- CONTACT ---------- */
.split{ grid-template-columns: 1fr 1fr; align-items:start }
@media(max-width: 980px){ .split{ grid-template-columns:1fr } }

.form{ display:grid; gap:12px; margin-top:10px }
input, textarea{
  width:100%;
  padding:12px 12px;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  color: var(--text);
  outline:none;
}
input::placeholder, textarea::placeholder{ color: rgba(167,178,214,.78) }
textarea{ min-height:120px; resize:vertical }
.fine{ margin-top:10px; color: var(--muted); font-size:12px; line-height:1.5 }

/* ---------- FOOTER / TOAST ---------- */
.footer{
  padding:28px 0 44px;
  border-top:1px solid var(--line);
  color: var(--muted);
  font-size:13px;
}
.footerRow{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap }
.tinyLinks{ display:flex; gap:14px; flex-wrap:wrap }
.tinyLinks a:hover{ color: var(--text) }

.toast{
  position:fixed; left:50%; bottom:24px; transform:translateX(-50%);
  padding:12px 14px;
  border-radius:14px;
  background: rgba(11,18,32,.92);
  border:1px solid rgba(255,255,255,.12);
  color: var(--text);
  font-size:13px;
  box-shadow: var(--shadow);
  display:none;
}

/* ---------- REVEAL ANIMATION (SAFE) ---------- */
/* Default: content is visible */
.reveal{ opacity:1; transform:none; }

/* Only animate when JS is confirmed loaded */
.js .reveal{ opacity:0; transform: translateY(10px); transition: opacity .5s ease, transform .5s ease; }
.js .reveal.show{ opacity:1; transform: translateY(0); }
