:root {
  --vb-ink: #0b0d10;
  --vb-carbon: #101317;
  --vb-card: #171b20;
  --vb-card-raised: #1d2228;
  --vb-line: rgba(255, 255, 255, 0.11);
  --vb-muted: rgba(255, 255, 255, 0.68);
  --vb-gold: #d4a017;
  --vb-gold-bright: #f0c75e;
}

html {
  scroll-padding-top: 6rem;
}

body {
  background: var(--vb-ink);
  color: #f8fafc;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

a,
button,
input,
select {
  -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 2px solid var(--vb-gold-bright);
  outline-offset: 3px;
}

::selection {
  background: rgba(212, 160, 23, 0.34);
  color: #fff;
}

/* Home and interior pages share the same restrained, high-contrast shell. */
.home-page #root > nav,
.interior-page > header {
  background: rgba(11, 13, 16, 0.9);
  border-bottom-color: var(--vb-line);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.home-page #root > nav a,
.interior-page > header a {
  text-underline-offset: 0.22em;
}

.home-page #root > nav a:hover,
.interior-page > header a:hover {
  color: var(--vb-gold-bright);
}

.home-page #root > nav input,
.interior-page > header input {
  background: rgba(255, 255, 255, 0.065);
  border-color: rgba(255, 255, 255, 0.16);
}

.home-page #root > nav input:focus,
.interior-page > header input:focus {
  border-color: rgba(240, 199, 94, 0.75);
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.12);
}

.home-page section h2,
.home-page section h3,
.interior-page h1,
.interior-page h2,
.interior-page h3 {
  text-wrap: balance;
}

.home-page .product-card,
.interior-page .product-card {
  background: var(--vb-card);
  border-color: var(--vb-line);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
}

.home-page .product-card:hover,
.interior-page .product-card:hover {
  border-color: rgba(240, 199, 94, 0.62);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.25), 0 8px 24px rgba(212, 160, 23, 0.1);
}

.home-page .product-card > div[class*="aspect-square"],
.interior-page .product-card > div[class*="aspect-square"] {
  background: #12161b !important;
}

.home-page .product-card [style*="backdrop-filter"],
.home-page .product-card [style*="backdropFilter"] {
  display: none !important;
}

.home-page .product-card img,
.interior-page .product-card img {
  filter: drop-shadow(0 12px 16px rgba(0, 0, 0, 0.18));
}

.home-page #home-blog-notes,
.home-page #home-dtc-cta {
  isolation: isolate;
}

.home-page #home-blog-cta {
  border-color: rgba(212, 160, 23, 0.38) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.2);
}

.home-page #home-dtc-cta img {
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
}

.interior-page {
  background: var(--vb-ink);
}

.interior-page .interior-main {
  padding-bottom: 3rem;
}

.interior-page .interior-filter-bar input,
.interior-page .interior-filter-bar select {
  background: var(--vb-card);
  border-color: var(--vb-line);
  min-height: 46px;
}

.interior-page .interior-filter-bar select option {
  background: var(--vb-card);
  color: #fff;
}

.interior-page .interior-btn {
  min-height: 46px;
}

.interior-page .product-card > div:first-of-type {
  background: #12161b;
}

.interior-page .blog-featured,
.interior-page .blog-secondary-card,
.interior-page .blog-mag-card,
.interior-page .blog-side-card,
.interior-page .blog-don-cta {
  border-color: var(--vb-line);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
}

.interior-page .blog-featured-media img,
.interior-page .blog-secondary-media img,
.interior-page .blog-mag-media img {
  filter: saturate(0.92) contrast(1.04);
}

.interior-page .interior-footer a:focus-visible,
.interior-page .interior-social:focus-visible {
  outline-offset: 4px;
}

@media (max-width: 767px) {
  .home-page #root > nav input,
  .interior-page > header input {
    font-size: 16px;
  }

  .interior-page .interior-filter-bar {
    grid-template-columns: 1fr;
  }
}

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

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