/* ---------- Reset & Base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
:root{
  --bg:#06070a;
  --bg-soft:#0b0d12;
  --surface:#11131a;
  --surface-2:#161922;
  --border:rgba(255,255,255,0.08);
  --text:#f3f4f6;
  --text-dim:#9aa0ad;
  --text-dim2:#666c7a;
  --accent:#7c5cff;
  --accent-2:#ff5c9d;
  --accent-3:#3ad6c0;
  --grad: linear-gradient(135deg,var(--accent),var(--accent-2));
  --radius:18px;
  --maxw:1180px;
  font-size:16px;
}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Manrope',system-ui,sans-serif;
  line-height:1.5;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Bricolage Grotesque','Manrope',sans-serif;font-weight:700;letter-spacing:-0.02em;line-height:1.1}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* background ambience */
.bg-glow{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(600px 500px at 15% 10%, rgba(124,92,255,0.18), transparent 60%),
    radial-gradient(700px 600px at 85% 25%, rgba(255,92,157,0.14), transparent 60%),
    radial-gradient(800px 700px at 50% 95%, rgba(58,214,192,0.10), transparent 60%);
}
.noise{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.025;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
main,header,footer{position:relative;z-index:2}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:999px;font-weight:600;font-size:0.95rem;
  border:1px solid var(--border);cursor:pointer;transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--grad);color:#fff;border:none;box-shadow:0 8px 30px -8px rgba(124,92,255,0.6)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px -8px rgba(124,92,255,0.8)}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{background:rgba(255,255,255,0.06);transform:translateY(-2px)}
.btn-small{padding:10px 20px;font-size:0.88rem}
.btn-full{width:100%}

/* ---------- Nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(6,7,10,0.55);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, background .3s ease;
}
.nav.scrolled{border-color:var(--border);background:rgba(6,7,10,0.85)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.logo{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.3rem;letter-spacing:-0.02em}
.logo span{color:var(--accent)}
.nav-links{display:flex;gap:32px;flex:1;justify-content:center}
.nav-links a{font-size:0.92rem;color:var(--text-dim);transition:color .2s}
.nav-links a:hover{color:var(--text)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{width:22px;height:2px;background:var(--text);border-radius:2px}
.nav-mobile{display:none;flex-direction:column;gap:18px;padding:20px 24px 28px;background:rgba(6,7,10,0.96);border-bottom:1px solid var(--border)}
.nav-mobile a{font-size:1rem;color:var(--text-dim)}
.nav-mobile.open{display:flex}

@media (max-width:860px){
  .nav-links{display:none}
  .nav-inner .btn-small{display:none}
  .nav-toggle{display:flex}
}

/* ---------- Hero ---------- */
.hero{padding:170px 0 0;text-align:center;position:relative}
.hero-inner{display:flex;flex-direction:column;align-items:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;border-radius:999px;border:1px solid var(--border);
  background:var(--surface);color:var(--text-dim);font-size:0.85rem;margin-bottom:28px;
}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--accent-3);box-shadow:0 0 12px var(--accent-3)}
.hero h1{font-size:clamp(2.4rem,6vw,4.6rem);max-width:900px;margin-bottom:26px}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{max-width:620px;color:var(--text-dim);font-size:1.15rem;margin-bottom:38px}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-bottom:64px}
.hero-stats{display:flex;gap:48px;flex-wrap:wrap;justify-content:center;margin-bottom:80px}
.stat{display:flex;flex-direction:column;align-items:center;gap:4px}
.stat strong{font-family:'Bricolage Grotesque',sans-serif;font-size:2.2rem;font-weight:800}
.stat span{color:var(--text-dim2);font-size:0.85rem}

.hero-marquee{
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    padding:18px 0;
    overflow:hidden;
    background:var(--surface);
}

.marquee-track{
    display:flex;
    width:max-content;
    animation:marquee 20s linear infinite;
}

.marquee-group{
    display:flex;
    gap:60px;
    padding-right:60px;
    flex-shrink:0;
    font-family:'Bricolage Grotesque',sans-serif;
    font-weight:700;
    font-size:1.1rem;
    color:var(--text-dim2);
    letter-spacing:0.04em;
}

@keyframes marquee{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
}

/* ---------- Section Head ---------- */
.section-head{max-width:680px;margin:0 auto 60px;text-align:center}
.tag{
  display:inline-block;padding:6px 14px;border-radius:999px;
  background:var(--surface);border:1px solid var(--border);
  color:var(--accent-3);font-size:0.78rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:18px;
}
.section-head h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:16px}
.section-head p{color:var(--text-dim);font-size:1.05rem}

section{padding:110px 0}

/* ---------- Services ---------- */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.service-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:36px 30px;transition:transform .3s ease, border-color .3s ease, background .3s ease;
}
.service-card:hover{transform:translateY(-6px);border-color:rgba(124,92,255,0.4);background:var(--surface-2)}
.service-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:54px;height:54px;border-radius:14px;margin-bottom:24px;
  border:1px solid var(--border);background:var(--surface-2);
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:0.95rem;
  letter-spacing:0.02em;color:var(--accent-3);
}
.service-card h3{font-size:1.3rem;margin-bottom:12px}
.service-card p{color:var(--text-dim);font-size:0.95rem;margin-bottom:20px}
.service-card ul li{
  position:relative;padding-left:20px;font-size:0.88rem;color:var(--text-dim);margin-bottom:8px;
}
.service-card ul li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--accent-3)}

/* ---------- Work ---------- */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.work-card{
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--surface);
  transition:transform .3s ease;
}
.work-card:hover{transform:translateY(-6px)}
.work-visual{
  height:200px;display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.work-visual--placeholder{
  background:var(--surface-2);
  border:1px dashed var(--border);
  transition:border-color .25s ease, background .25s ease;
}
.work-card:hover .work-visual--placeholder{border-color:var(--accent);background:var(--surface)}
.work-visual--placeholder span{
  font-family:'Manrope',sans-serif;font-weight:600;font-size:0.85rem;
  color:var(--text-dim2);letter-spacing:0.01em;
}
.work-media{width:100%;height:100%;object-fit:cover;display:block}
.work-info{padding:20px 22px}
.work-info h4{font-size:1.02rem;margin-bottom:6px}
.work-info p{color:var(--text-dim2);font-size:0.85rem}

/* ---------- Process ---------- */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.process-step{position:relative;padding:30px 24px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}
.step-num{
  display:inline-block;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.6rem;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px;
}
.process-step h3{font-size:1.08rem;margin-bottom:10px}
.process-step p{color:var(--text-dim);font-size:0.9rem}

/* ---------- Pricing ---------- */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.price-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:38px 32px;display:flex;flex-direction:column;position:relative;
}
.price-card h3{font-size:1.2rem;margin-bottom:14px}
.price{font-family:'Bricolage Grotesque',sans-serif;font-size:2.4rem;font-weight:800;margin-bottom:6px}
.price span{font-size:1rem;color:var(--text-dim2);font-weight:500}
.price-sub{color:var(--text-dim);font-size:0.88rem;margin-bottom:24px}
.price-card ul{margin-bottom:28px;flex:1}
.price-card ul li{position:relative;padding-left:22px;font-size:0.9rem;color:var(--text-dim);margin-bottom:10px}
.price-card ul li::before{content:"✓";position:absolute;left:0;color:var(--accent-3);font-weight:700}
.price-featured{border-color:var(--accent);background:linear-gradient(180deg,rgba(124,92,255,0.08),var(--surface));transform:scale(1.02)}
.price-badge{
  position:absolute;top:-14px;left:32px;background:var(--grad);color:#fff;
  font-size:0.75rem;font-weight:700;padding:6px 14px;border-radius:999px;letter-spacing:0.03em;
}

/* ---------- Testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px 28px}
.testi-card p{font-size:0.95rem;color:var(--text-dim);line-height:1.6}
.testi-card footer{color:var(--text-dim2);font-size:0.85rem;font-weight:600}
.testi-title{font-size:1.08rem;margin-bottom:12px}

/* ---------- FAQ ---------- */
.faq-list{max-width:760px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{
  width:100%;text-align:left;background:none;border:none;color:var(--text);
  font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;font-weight:600;padding:22px 0;
  display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:16px;
}
.faq-q span{font-size:1.4rem;color:var(--accent);transition:transform .3s ease;flex-shrink:0}
.faq-item.open .faq-q span{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a p{color:var(--text-dim);font-size:0.93rem;padding-bottom:22px;line-height:1.6}

/* ---------- CTA / Contact ---------- */
.cta-inner{display:block}
.contact-form{
  max-width:640px;margin:0 auto;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:36px;display:flex;flex-direction:column;gap:18px;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
input,textarea{
  width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;
  padding:14px 16px;color:var(--text);font-family:inherit;font-size:0.95rem;resize:none;
  transition:border-color .2s ease;
}
input::placeholder,textarea::placeholder{color:var(--text-dim2)}
input:focus,textarea:focus{outline:none;border-color:var(--accent)}
.form-note{text-align:center;font-size:0.88rem;color:var(--accent-3);min-height:1.2em}

/* ---------- Footer ---------- */
.footer{border-top:1px solid var(--border);padding:60px 0 36px}
.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px;align-items:flex-start}
.footer-inner p{color:var(--text-dim2);font-size:0.88rem;margin-top:10px;max-width:280px}
.footer-inner p a{color:var(--text-dim2);transition:color .2s}
.footer-inner p a:hover{color:var(--text)}
.footer-links{display:flex;gap:26px;flex-wrap:wrap}
.footer-links a{color:var(--text-dim);font-size:0.9rem}
.footer-links a:hover{color:var(--text)}
.footer-copy{width:100%;color:var(--text-dim2);font-size:0.8rem;margin-top:30px;border-top:1px solid var(--border);padding-top:24px}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease}
.reveal.in{opacity:1;transform:translateY(0)}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .service-grid,.work-grid,.process-grid,.pricing-grid,.testi-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .hero{padding-top:140px}
  .service-grid,.work-grid,.process-grid,.pricing-grid,.testi-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .hero-stats{gap:30px}
  .price-featured{transform:none}
  section{padding:80px 0}
}
