/* Shared foundation layer for every MarketFTW page. */

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1000;
  padding: 10px 16px;
  border-radius: 8px;
  background: #f5f5f5;
  color: #0d0d0d;
  font: 600 14px/1.2 'DM Sans', sans-serif;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform 0.2s ease;
}

.keyboard-navigation .skip-link:focus {
  transform: translateY(0);
}

:focus-visible {
  outline: 2px solid #00e5ff;
  outline-offset: 4px;
}

main {
  display: block;
}

img,
video,
svg,
picture {
  -webkit-user-drag: none;
  user-drag: none;
}

.media-protected,
.pillar-graphic,
.about-media-frame,
.project-media-horizontal,
.vertical-carousel {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

.pillar-graphic img,
.about-media-frame video,
.project-media-horizontal video,
.vertical-slide video {
  pointer-events: none;
}

@media (min-width: 901px) {
  body > nav {
    height: 72px !important;
    padding-inline: max(1.5rem, calc((100vw - var(--max-w, 1100px)) / 2)) !important;
    background: rgba(11, 12, 14, 0.88) !important;
    border-bottom: 1px solid transparent !important;
    box-shadow: none !important;
  }

  body > nav.scrolled {
    height: 60px !important;
    background: rgba(11, 12, 14, 0.96) !important;
    border-bottom-color: rgba(247, 247, 245, 0.08) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
  }

  body > nav .nav-logo {
    font-size: 24px !important;
    letter-spacing: 2px !important;
  }

  body > nav.scrolled .nav-logo {
    font-size: 20px !important;
    letter-spacing: 1.5px !important;
  }

  .scroll-progress {
    top: 72px !important;
    z-index: 99 !important;
  }

  body.nav-scrolled .scroll-progress {
    top: 60px !important;
  }
}

@media (max-width: 900px) {
  body > nav {
    z-index: 130 !important;
    height: 78px !important;
    margin: 0 !important;
    width: 100% !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(247, 247, 245, 0.095) !important;
    border-radius: 0 !important;
    background:
      radial-gradient(circle at 88% 0%, rgba(255, 90, 31, 0.1), transparent 32%),
      linear-gradient(180deg, rgba(12, 13, 16, 0.98), rgba(8, 9, 11, 0.96)) !important;
    box-shadow:
      0 12px 34px rgba(0, 0, 0, 0.28),
      inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
  }

  body > nav.scrolled {
    height: 68px !important;
    background:
      linear-gradient(180deg, rgba(9, 10, 12, 0.99), rgba(7, 8, 10, 0.98)) !important;
  }

  .scroll-progress {
    top: 78px !important;
    left: 0 !important;
    height: 2px !important;
    max-width: 100vw !important;
    z-index: 129 !important;
    border-radius: 0 999px 999px 0 !important;
    background: linear-gradient(90deg, #ff5a1f, #ff8a3d) !important;
    box-shadow: 0 0 14px rgba(255, 90, 31, 0.42) !important;
  }

  body.nav-scrolled .scroll-progress {
    top: 68px !important;
  }

  .nav-mobile-btn {
    width: 46px !important;
    height: 46px !important;
    border: 1px solid rgba(255, 90, 31, 0.18) !important;
    border-radius: 16px !important;
    background:
      radial-gradient(circle at 50% 20%, rgba(255, 90, 31, 0.16), transparent 58%),
      rgba(255, 255, 255, 0.035) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
  }

  .nav-mobile-btn.open {
    background: rgba(255, 90, 31, 0.12) !important;
    border-color: rgba(255, 90, 31, 0.34) !important;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.05),
      0 0 26px rgba(255, 90, 31, 0.16) !important;
  }

  .hamburger-icon {
    width: 24px !important;
    height: 20px !important;
    transform: none !important;
  }

  .hamburger-icon span {
    height: 2px !important;
    background: #f7f7f5 !important;
    box-shadow: 0 0 10px rgba(255, 90, 31, 0.18) !important;
  }

  .nav-mobile-btn.open .hamburger-icon span {
    background: #ff5a1f !important;
  }

  .nav-mobile-btn.open .hamburger-icon span:nth-child(1) {
    top: 9px !important;
    transform: rotate(45deg) !important;
  }

  .nav-mobile-btn.open .hamburger-icon span:nth-child(2) {
    opacity: 0 !important;
    transform: translateX(8px) !important;
  }

  .nav-mobile-btn.open .hamburger-icon span:nth-child(3) {
    top: 9px !important;
    transform: rotate(-45deg) !important;
  }

  body.menu-open > nav {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 150 !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.menu-open .scroll-progress {
    z-index: 149 !important;
  }

  .mobile-menu {
    z-index: 120 !important;
    padding: 104px 1.25rem 1.25rem !important;
    background:
      radial-gradient(circle at 88% 6%, rgba(255, 90, 31, 0.11), transparent 34%),
      radial-gradient(circle at 0% 96%, rgba(255, 90, 31, 0.055), transparent 38%),
      #0b0c0e !important;
  }

  .mobile-menu::before {
    opacity: 0.08 !important;
    background: radial-gradient(circle, #ff5a1f 0%, transparent 70%) !important;
  }

  .mobile-menu::after {
    opacity: 0.06 !important;
    background: radial-gradient(circle, #c93e08 0%, transparent 70%) !important;
  }

  .mobile-menu-eyebrow {
    width: fit-content !important;
    padding: 8px 12px !important;
    border: 1px solid rgba(255, 90, 31, 0.18) !important;
    border-radius: 999px !important;
    background: rgba(255, 90, 31, 0.045) !important;
    color: #ff6b2c !important;
    font-family: 'Satoshi', 'Inter', system-ui, sans-serif !important;
    letter-spacing: 0.18em !important;
  }

  .mobile-menu-nav {
    gap: 6px !important;
  }

  .mobile-menu-nav a {
    width: 100% !important;
    padding: 15px 4px !important;
    border-bottom: 1px solid rgba(247, 247, 245, 0.06) !important;
    border-radius: 12px !important;
    background: transparent !important;
    outline: none !important;
    box-shadow: none !important;
    font-family: 'Satoshi', 'Inter', system-ui, sans-serif !important;
    font-size: clamp(31px, 9vw, 48px) !important;
    font-weight: 800 !important;
    letter-spacing: -0.04em !important;
    text-transform: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .mobile-menu-nav a .num {
    min-width: 28px !important;
    font-family: 'Inter', system-ui, sans-serif !important;
    font-size: 11px !important;
    color: #ff5a1f !important;
    opacity: 0.85 !important;
    letter-spacing: 0.12em !important;
  }

  .mobile-menu-nav a:hover,
  .mobile-menu-nav a:active {
    background: transparent !important;
    color: #ff6b2c !important;
  }

  .mobile-menu-nav a:focus {
    background: transparent !important;
    outline: none !important;
    box-shadow: none !important;
  }

  .keyboard-navigation .mobile-menu-nav a:focus-visible {
    color: #ff6b2c !important;
    outline: 1px solid rgba(255, 90, 31, 0.42) !important;
    outline-offset: 8px !important;
    border-radius: 14px !important;
  }

  .mobile-menu-nav a[aria-current='page'],
  .mobile-menu-nav a.current {
    color: #f7f7f5 !important;
  }

  .mobile-menu-nav a[aria-current='page'] .num,
  .mobile-menu-nav a.current .num {
    opacity: 1 !important;
  }

  .mobile-menu-footer {
    border-top-color: rgba(255, 90, 31, 0.18) !important;
    padding-top: 1.35rem !important;
    margin-top: 1.35rem !important;
  }

  .mobile-menu-cta {
    color: #0b0c0e !important;
    background: #ff5a1f !important;
    font-weight: 800 !important;
    box-shadow: 0 12px 28px rgba(255, 90, 31, 0.16) !important;
  }
}

.social-link-disabled {
  color: rgba(245, 245, 245, 0.38);
  cursor: default;
  font-size: 13px;
}

.mobile-menu-contact .social-link-disabled {
  font-size: 14px;
}

[inert] {
  pointer-events: none;
  user-select: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
