/*
  base.css — Global Resets and Foundations
  ----------------------------------------
  Applies universal box model, base element defaults, and accessible text settings.
  Avoids layout-specific or visual-heavy styles.
*/

html,
body {
  overflow-x: hidden;
  margin: 0;
  padding: 0;
  width: 100%;
  scroll-behavior: smooth;
  background-color: #05070d;
  color: rgba(245, 247, 251, 0.92);
  font-family: 'Manrope', 'kodivo-font', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0;
}

body {
  position: relative;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    radial-gradient(
      circle at 50% 20%,
      rgba(255, 255, 255, 0.038),
      transparent 40%
    ),
    radial-gradient(
      circle at 50% 80%,
      rgba(108, 231, 255, 0.035),
      transparent 52%
    ),
    radial-gradient(
      circle at 18% 0%,
      rgba(122, 68, 192, 0.16),
      transparent 30%
    ),
    radial-gradient(
      circle at 76% 34%,
      rgba(108, 231, 255, 0.05),
      transparent 24%
    ),
    radial-gradient(
      circle at 22% 56%,
      rgba(122, 68, 192, 0.09),
      transparent 28%
    ),
    radial-gradient(
      circle at 68% 82%,
      rgba(108, 231, 255, 0.04),
      transparent 26%
    ),
    radial-gradient(
      circle at 88% 16%,
      rgba(108, 231, 255, 0.055),
      transparent 24%
    ),
    linear-gradient(180deg, #0b1018 0%, #070b12 52%, #05070d 100%);
  background-size:
    72px 72px,
    72px 72px,
    auto,
    auto,
    auto,
    auto,
    auto,
    auto,
    auto,
    auto;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img {
  max-width: 100%;
}

a {
  color: inherit;
}

.kodivo-page {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  animation: tono-page-enter 190ms cubic-bezier(0.4, 0, 0.2, 1) both;
}

body[data-tono-page-transition-state="exiting"] .kodivo-page,
body[data-tono-page-transition-state="exiting"] .back-to-top-container,
body[data-tono-page-transition-state="exiting"] .footer-container {
  opacity: 0.84;
  transition: opacity 60ms linear;
}

.kodivo-main {
  position: relative;
  z-index: 1;
}

.kodivo-main > div {
  position: relative;
}

@keyframes tono-page-enter {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

body[data-tono-motion-ready="true"] .tone-observe {
  opacity: 0;
  transform: translate3d(0, 28px, 0) scale(0.985);
  filter: blur(10px);
  transition:
    opacity 780ms cubic-bezier(0.4, 0, 0.2, 1),
    transform 960ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 960ms cubic-bezier(0.4, 0, 0.2, 1);
}

body[data-tono-motion-ready="true"] .tone-observe.is-tono-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: none;
}

.about-team-tabs__tab,
.contact-arc-cta__button,
.contact-form-panel__submit,
.pattern-card,
.pricing-overview__card {
  --pointer-x: 50%;
  --pointer-y: 50%;
  position: relative;
  overflow: hidden;
}

.about-team-tabs__tab::after,
.contact-arc-cta__button::after,
.contact-form-panel__submit::after,
.pattern-card::after,
.pricing-overview__card::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: radial-gradient(
    circle at var(--pointer-x) var(--pointer-y),
    rgba(255, 255, 255, 0.14),
    transparent 22rem
  );
  transition: opacity 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.about-team-tabs__tab.is-pointer-active::after,
.contact-arc-cta__button.is-pointer-active::after,
.contact-form-panel__submit.is-pointer-active::after,
.pattern-card.is-pointer-active::after,
.pricing-overview__card.is-pointer-active::after {
  opacity: 1;
}

.contact-section {
  padding-top: calc(1.5rem + clamp(3rem, 7.5vw, 6rem) / 2);
}

@media (min-width: 768px) {
  .contact-section {
    padding-top: calc(3rem + clamp(3rem, 7.5vw, 6rem) / 2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .kodivo-page {
    animation: none;
  }

  body[data-tono-page-transition-state="exiting"] .kodivo-page,
  body[data-tono-page-transition-state="exiting"] .back-to-top-container,
  body[data-tono-page-transition-state="exiting"] .footer-container {
    opacity: 1;
    transition: none;
  }
}
