/* ===== Homepage-only styles ===== */

body.cosmic{background:var(--ink);}

#warpCanvas{
  position:fixed; inset:0; z-index:-2;
  pointer-events:none;
}
.scanline-overlay{
  position:fixed; inset:0; z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at center, transparent 30%, rgba(6,5,15,0.85) 95%),
    repeating-linear-gradient(0deg, rgba(217,115,139,0.015) 0px, rgba(217,115,139,0.015) 1px, transparent 1px, transparent 4px);
}

/* ---- Hero ---- */
.hero{
  position:relative;
  background:var(--ink);
  overflow:hidden;
  padding:110px 0 130px;
}
.hero-glow{
  position:absolute; inset:0; z-index:0; pointer-events:none;
}
.hero-glow span{
  position:absolute;
  width:520px; height:520px;
  border-radius:50%;
  filter:blur(90px);
  opacity:0.35;
}
.hero-glow span.g1{
  top:-160px; left:-100px;
  background:radial-gradient(circle, var(--purple-mid), transparent 70%);
  animation:drift1 16s ease-in-out infinite;
}
.hero-glow span.g2{
  bottom:-220px; right:-120px;
  background:radial-gradient(circle, var(--pink), transparent 70%);
  opacity:0.22;
  animation:drift2 20s ease-in-out infinite;
}
@keyframes drift1{
  0%,100%{transform:translate(0,0);}
  50%{transform:translate(40px,50px);}
}
@keyframes drift2{
  0%,100%{transform:translate(0,0);}
  50%{transform:translate(-50px,-30px);}
}
@media (prefers-reduced-motion:reduce){
  .hero-glow span{animation:none;}
}

#heroCanvas{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  opacity:0.55;
}

.hero-inner{
  position:relative; z-index:1;
  max-width:760px;
}
.hero-tag{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'JetBrains Mono',monospace;
  font-size:12.5px; letter-spacing:1px; text-transform:uppercase;
  color:var(--pink);
  background:rgba(217,115,139,0.06);
  border:1px solid var(--line-dark);
  padding:7px 16px; border-radius:100px;
  margin-bottom:26px;
  opacity:0; animation:rise .7s ease forwards;
}
.hero h1{
  font-size:clamp(36px,5.4vw,58px);
  margin-bottom:22px;
  opacity:0; animation:rise .7s ease .1s forwards;
  background:linear-gradient(100deg, var(--white) 30%, var(--glow) 55%, var(--pink) 70%, var(--white) 90%);
  background-size:250% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:rise .7s ease .1s forwards, gradientPan 9s linear infinite 1.2s;
}
@keyframes gradientPan{
  0%{background-position:0% center;}
  100%{background-position:250% center;}
}
@media (prefers-reduced-motion:reduce){
  .hero h1{animation:rise .7s ease .1s forwards; background-position:0% center;}
}
.hero p.lead{
  font-size:18px;
  color:var(--ink-text-secondary);
  max-width:560px;
  margin-bottom:36px;
  opacity:0; animation:rise .7s ease .2s forwards;
}
.hero-ctas{
  display:flex; gap:14px; flex-wrap:wrap;
  opacity:0; animation:rise .7s ease .3s forwards;
}
@keyframes rise{
  from{opacity:0; transform:translateY(14px);}
  to{opacity:1; transform:translateY(0);}
}

/* ---- Trust bar (telemetry matrix) ---- */
.trust-bar{
  background:rgba(23,16,41,0.55);
  backdrop-filter:blur(16px);
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
}
.trust-bar .wrap{
  display:flex; flex-wrap:wrap; gap:16px;
  justify-content:space-between;
  padding:34px 32px;
}
.trust-item{
  display:flex; align-items:baseline; gap:10px;
  padding:10px 16px;
  border-radius:8px;
  border:1px solid transparent;
  transition:border-color .2s ease, transform .2s ease;
}
.trust-item:hover{border-color:var(--pink); transform:translateY(-2px);}
.trust-item .num{
  font-family:'Orbitron',sans-serif; font-weight:700;
  font-size:22px; color:var(--white);
}
.trust-item .label{font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:0.5px; text-transform:uppercase; color:var(--text-muted);}

/* ---- Section shell (home is uniformly dark now — force light text everywhere) ---- */
.section{padding:100px 0;}
.section-head{max-width:600px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3.4vw,38px); color:var(--white); margin-bottom:14px;}
.section-head p{font-size:16.5px; color:var(--ink-text-secondary);}
.section.on-dark{background:rgba(23,16,41,0.4); backdrop-filter:blur(10px);}

/* ---- Core services ---- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.service-card{
  background:var(--white);
  border:1px solid var(--line-light);
  border-radius:var(--radius);
  padding:32px 28px;
  transition:border-color .2s ease, transform .2s ease;
}
.service-card:hover{border-color:var(--pink); transform:translateY(-4px); box-shadow:0 16px 36px rgba(217,115,139,0.22);}
.service-card .icon{
  width:56px; height:56px;
  color:var(--pink);
  margin-bottom:20px;
}
.service-card .icon svg{width:100%; height:100%;}
.service-card h3{font-size:19px; color:var(--purple); margin-bottom:10px;}
.service-card p{font-size:14.5px; color:#615A78;}

@media (max-width:900px){
  .services-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .services-grid{grid-template-columns:1fr;}
}

/* ---- Digital services strip ---- */
.digital-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.digital-item{
  display:flex; align-items:center; gap:16px;
  padding:22px 22px;
  background:rgba(23,16,41,0.5);
  backdrop-filter:blur(12px);
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  transition:border-color .2s ease, transform .2s ease;
}
.digital-item:hover{border-color:var(--pink); transform:translateY(-3px);}
.digital-item .icon{width:38px; height:38px; color:var(--glow); flex-shrink:0;}
.digital-item .icon svg{width:100%; height:100%;}
.digital-item h4{font-size:15.5px; color:var(--white); font-weight:500; margin-bottom:4px;}
.digital-item p{font-size:13.5px; color:var(--text-muted);}

@media (max-width:800px){
  .digital-strip{grid-template-columns:1fr;}
}

/* ---- About teaser ---- */
.about-teaser{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
}
.about-teaser .stat-row{
  display:flex; gap:36px; margin-top:32px;
}
.about-teaser .stat-row .num{
  font-family:'Space Grotesk',sans-serif; font-weight:600;
  font-size:30px; color:var(--pink);
}
.about-teaser .stat-row .label{font-size:13.5px; color:var(--text-muted);}
.about-visual{
  background:radial-gradient(circle at center, #1E1440 0%, #0c0e1f 100%);
  border:1px solid var(--line-dark);
  border-radius:20px;
  aspect-ratio:1/0.9;
  position:relative;
  overflow:hidden;
  box-shadow:0 20px 45px rgba(0,0,0,0.4);
}
#radarCanvas{width:100%; height:100%; display:block;}

@media (max-width:900px){
  .about-teaser{grid-template-columns:1fr; gap:40px;}
  .about-visual{order:-1;}
}

/* ---- Industries ---- */
.industries-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.industry-card{
  text-align:center;
  padding:30px 16px;
  background:rgba(23,16,41,0.5);
  backdrop-filter:blur(12px);
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.industry-card:hover{border-color:var(--pink); transform:translateY(-4px); box-shadow:0 12px 28px rgba(217,115,139,0.2);}
.industry-card .icon{
  width:44px; height:44px; margin:0 auto 14px;
  color:var(--glow);
}
.industry-card .icon svg{width:100%; height:100%;}
.industry-card p{font-size:14.5px; color:var(--white); font-weight:500;}

@media (max-width:800px){
  .industries-grid{grid-template-columns:1fr 1fr;}
}

/* ---- CTA band ---- */
.cta-band{
  background:linear-gradient(135deg, rgba(24,19,53,0.92), rgba(43,23,62,0.92) 50%, rgba(19,18,44,0.92));
  border:1px solid var(--pink);
  border-radius:24px;
  padding:64px 56px;
  display:flex; align-items:center; justify-content:space-between;
  gap:32px; flex-wrap:wrap;
  box-shadow:0 20px 50px rgba(217,115,139,0.15);
  backdrop-filter:blur(14px);
}
.cta-band h2{color:var(--white); font-size:clamp(24px,3vw,32px); max-width:480px;}
.cta-band p{color:var(--ink-text-secondary); margin-top:10px; font-size:15px;}

@media (max-width:700px){
  .cta-band{flex-direction:column; align-items:flex-start; padding:44px 28px;}
}

/* ---- Scroll reveal (homepage-specific stagger; base .reveal/.in-view live in styles.css) ---- */
.services-grid .reveal:nth-child(2){transition-delay:.06s;}
.services-grid .reveal:nth-child(3){transition-delay:.12s;}
.services-grid .reveal:nth-child(4){transition-delay:.18s;}
.services-grid .reveal:nth-child(5){transition-delay:.24s;}
.services-grid .reveal:nth-child(6){transition-delay:.3s;}

.digital-strip .reveal:nth-child(2){transition-delay:.08s;}
.digital-strip .reveal:nth-child(3){transition-delay:.16s;}

.industries-grid .reveal:nth-child(2){transition-delay:.06s;}
.industries-grid .reveal:nth-child(3){transition-delay:.12s;}
.industries-grid .reveal:nth-child(4){transition-delay:.18s;}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}

/* ---- Trust bar count-up ---- */
.trust-item .num{font-variant-numeric:tabular-nums;}

/* ---- About network graphic ---- */
.about-visual .net-line{
  stroke-dasharray:6 5;
  animation:dashMove 3.5s linear infinite;
}
.about-visual .net-node{
  animation:nodePulse 2.6s ease-in-out infinite;
  transform-origin:center;
}
.about-visual .net-node:nth-of-type(2){animation-delay:.4s;}
.about-visual .net-node:nth-of-type(3){animation-delay:.8s;}
.about-visual .net-node:nth-of-type(4){animation-delay:1.2s;}
@keyframes dashMove{to{stroke-dashoffset:-33;}}
@keyframes nodePulse{
  0%,100%{opacity:1; transform:scale(1);}
  50%{opacity:0.55; transform:scale(1.6);}
}
@media (prefers-reduced-motion:reduce){
  .about-visual .net-line{animation:none;}
  .about-visual .net-node{animation:none;}
}
