/* Mobile containment and older Safari compatibility layer. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

main,
header,
footer,
section,
aside,
nav {
  max-width: 100%;
}

.container {
  width: calc(100% - 40px);
  max-width: 1180px;
}

.nav-wrap {
  width: calc(100% - 40px);
  max-width: 1400px;
}

.hero-grid > *,
.module-grid > *,
.video-card > *,
.token-grid > *,
.partner-card > *,
.footer-grid > *,
.roadmap-grid > *,
.hero-visual,
.visual-card,
.market-card,
.partner-banner,
.module-card,
.module-copy {
  min-width: 0;
  max-width: 100%;
}

.hero-visual,
.visual-card,
.dashboard-image,
.module-card > img,
.market-card > img,
.partner-banner img,
.strip-inner img,
.module-frame,
.video-frame,
.video-frame iframe {
  width: 100%;
  max-width: 100%;
}

.contract-box,
.contract-box code,
.button,
.lead,
.section-heading,
.section-heading p {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 760px) {
  .container,
  .nav-wrap {
    width: calc(100% - 28px);
  }

  .nav-wrap {
    gap: 8px;
  }

  .site-header .brand {
    gap: 6px;
    min-width: 0;
    font-size: 14px;
  }

  .site-header .brand img {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  .nav-actions {
    flex: none;
    gap: 6px;
  }

  .hero-grid,
  .hero-copy,
  .hero-visual {
    width: 100%;
  }

  .visual-card {
    padding: 8px;
    border-radius: 22px;
  }

  .dashboard-image {
    max-height: 330px;
    border-radius: 16px;
    object-fit: cover;
    object-position: left top;
  }

  .token-float {
    left: auto;
    right: auto;
    width: calc(100% - 24px);
    max-width: 360px;
  }

  .strip-inner img {
    width: auto;
    max-width: min(260px, 100%);
    margin: 0 auto;
  }

  .module-card > img {
    height: 200px;
    object-fit: cover;
  }

  .module-copy {
    padding: 19px;
  }

  .module-frame {
    height: 70vh;
    min-height: 480px;
  }

  .video-card,
  .partner-card {
    width: 100%;
    padding: 18px;
  }

  .video-frame {
    min-height: 0;
    height: auto;
    padding-bottom: 56.25%;
  }

  .market-card {
    padding: 16px;
  }

  .market-card > img {
    max-height: 210px;
    object-fit: cover;
  }

  .partner-banner {
    padding: 16px;
  }

  .ticker,
  .ticker-window {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  .container,
  .nav-wrap {
    width: calc(100% - 20px);
  }

  .site-header .brand > span {
    display: none;
  }

  .site-header .brand img {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  .hero h1 {
    font-size: 36px;
  }

  .module-card > img {
    height: 170px;
  }
}
