.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1);
}

.reveal.visible { opacity: 1; transform: none; }

/* The hero stays clean around its headline; its visual energy moves into the signal section. */
.hero-circuit {
  position: absolute;
  right: 2%; top: 23%; width: min(38vw, 470px); height: min(27vw, 320px);
  opacity: .55; pointer-events: none;
  background: linear-gradient(125deg, transparent 48%, rgba(0,240,255,.16) 49%, transparent 50%),
    linear-gradient(35deg, transparent 48%, rgba(157,77,255,.16) 49%, transparent 50%);
  background-size: 82px 82px;
  mask-image: radial-gradient(ellipse at center, black 18%, transparent 72%);
}
.hero-circuit:before,.hero-circuit:after { content:""; position:absolute; border:1px solid rgba(0,240,255,.22); transform:rotate(45deg); }
.hero-circuit:before { width:56%; aspect-ratio:1; right:10%; top:10%; box-shadow:0 0 35px rgba(0,240,255,.13); }
.hero-circuit:after { width:28%; aspect-ratio:1; right:31%; top:38%; border-color:rgba(157,77,255,.45); box-shadow:0 0 30px rgba(157,77,255,.28); }
.bento-grid { grid-template-columns:1.25fr 1fr 1fr 1fr; }
.bento h3 { font-size:24px; }
.bento-web { border-color:rgba(0,240,255,.36); background:linear-gradient(135deg,rgba(0,55,72,.35),rgba(8,8,18,.75)); }
.signal-orb { position:relative; inset:auto; right:auto; top:auto; width:min(36vw,410px); height:min(36vw,410px); flex:0 0 auto; }
.contact-phone { display:inline-flex; flex-direction:column; gap:7px; margin-top:30px; color:var(--cyan); font:700 20px Rajdhani, sans-serif; letter-spacing:.04em; text-decoration:none; text-shadow:0 0 12px rgba(0,240,255,.28); }
.contact-phone span { color:#78949b; font:9px 'Space Mono', monospace; letter-spacing:.12em; text-shadow:none; }
.contact-phone:hover { color:#fff; }
@media(max-width:760px) {
  .hero-circuit { width:70vw; height:50vw; right:-12%; top:8%; opacity:.28; }
  .bento-grid { grid-template-columns:1fr; }
  .signal-orb { position:absolute; width:230px; height:230px; right:2%; bottom:50px; }
}
