*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #04101f; color: #eaf2ff; font-family: 'IBM Plex Sans', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
::selection { background: var(--accent, #3dd2ec); color: #04101f; }
a { color: inherit; text-decoration: none; }

:root {
  --accent: #3dd2ec;
  --accent2: #9a8cff;
}

@keyframes rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes spinr { to { transform: rotate(-360deg); } }
@keyframes pulse { 0%,100% { opacity: .55; transform: scale(1); } 50% { opacity: 1; transform: scale(1.04); } }
@keyframes gridmove { from { background-position: 0 0; } to { background-position: 0 -56px; } }

@media (max-width: 860px) {
  .nav-links { display: none !important; }
  .two-col { grid-template-columns: 1fr !important; }
  .priv-grid { grid-template-columns: 1fr !important; }
  .priv-toc { display: none !important; }
}
@media (max-width: 760px) {
  .hero-grid { grid-template-columns: 1fr !important; }
  .hero-visual { display: none !important; }
  .platform-grid { grid-template-columns: 1fr !important; }
  .services-grid { grid-template-columns: 1fr 1fr !important; }
  .future-grid { grid-template-columns: 1fr 1fr !important; }
  .contact-grid { grid-template-columns: 1fr !important; }
  .about-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 500px) {
  .services-grid { grid-template-columns: 1fr !important; }
  .future-grid { grid-template-columns: 1fr !important; }
}

/* Chat panel */
.chat-panel {
  display: none;
  flex-direction: column;
  width: 376px;
  max-width: calc(100vw - 40px);
  height: 520px;
  max-height: calc(100vh - 130px);
  border-radius: 18px;
  overflow: hidden;
  background: #06182f;
  border: 1px solid rgba(120,160,220,0.2);
  box-shadow: 0 24px 64px rgba(0,0,0,0.55);
}
.chat-panel.open { display: flex; }

/* Nav hover */
.nav-links a:hover { color: #fff; }
footer a:hover { color: #fff; }
