/* Homepage — hero Jupiter & cybersecurity effects */

.tw-hero {
  padding: 64px 0 80px;
  position: relative;
  overflow: hidden;
}

.tw-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 70% 40%, rgba(232, 168, 72, 0.14), transparent 48%),
    radial-gradient(circle at 20% 80%, rgba(180, 100, 40, 0.08), transparent 42%);
  pointer-events: none;
}

.tw-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  position: relative;
}

.tw-hero-copy h1 {
  margin: 0 0 16px;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--tw-text) 30%, var(--tw-primary));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tw-hero-lead {
  margin: 0 0 28px;
  color: var(--tw-muted);
  font-size: 1.05rem;
  max-width: 480px;
}

.tw-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 36px; }

.tw-hero-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
}
.tw-hero-stats li { display: flex; flex-direction: column; gap: 2px; }
.tw-hero-stats strong { font-size: 1.25rem; color: var(--tw-primary); font-family: var(--tw-mono); }
.tw-hero-stats span { font-size: 0.75rem; color: var(--tw-subtle); text-transform: uppercase; letter-spacing: 0.06em; }

/* Live Jupiter scene */
.tw-jupiter-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 380px;
  position: relative;
}

.tw-jupiter-canvas {
  display: block;
  width: min(100%, 380px);
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  filter: drop-shadow(0 0 48px rgba(232, 140, 48, 0.35)) drop-shadow(0 0 120px rgba(200, 110, 30, 0.15));
}

.tw-jupiter-canvas.is-static {
  filter: drop-shadow(0 0 48px rgba(232, 140, 48, 0.35)) drop-shadow(0 0 120px rgba(200, 110, 30, 0.15));
}

.tw-hero-stats.is-loading strong {
  opacity: 0.35;
  animation: tw-shimmer 1.4s ease infinite;
  background: linear-gradient(90deg, rgba(0,212,255,0.2), rgba(0,212,255,0.45), rgba(0,212,255,0.2));
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.tw-hero-stats-note {
  margin: 10px 0 0;
  font-size: 0.75rem;
  color: var(--tw-subtle);
}
.tw-stats-band-head { text-align: center; margin-bottom: 28px; }
.tw-stats-band-title { margin: 0; font-size: 1.35rem; }
.tw-stats-band.is-loading .tw-stat strong { opacity: 0.4; }
.tw-stats-band.is-live .tw-stat strong { color: var(--tw-accent); }

.tw-card-service a { display: inline-block; margin-top: 12px; font-size: 0.875rem; font-weight: 600; }

@media (max-width: 900px) {
  .tw-hero-grid { grid-template-columns: 1fr; }
  .tw-jupiter-stage { order: -1; min-height: 280px; }
  .tw-jupiter-canvas { width: 280px; }
}
