html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #FBFBFB;
  color: #4D4D4D;
  font-family: 'Montserrat', sans-serif;
}
/* Headings render in natural Sentence case — no global uppercase
   transform. Use Tailwind's `uppercase` class on a specific element
   only if you need a label/eyebrow style. */
h1:not(.heading-label) {
  font-size: clamp(42px, 5vw, 60px) !important;
  line-height: 1.08 !important;
}
h2:not(.heading-label) {
  font-size: clamp(34px, 4vw, 45px) !important;
  line-height: 1.12 !important;
}
h3:not(.heading-label) {
  font-size: clamp(27px, 3vw, 34px) !important;
  line-height: 1.16 !important;
}
h4:not(.heading-label) {
  font-size: clamp(22px, 2.4vw, 26px) !important;
  line-height: 1.2 !important;
}
h5:not(.heading-label) {
  font-size: clamp(18px, 2vw, 20px) !important;
  line-height: 1.25 !important;
}
h6:not(.heading-label) {
  font-size: 16px !important;
  line-height: 1.3 !important;
}
.heading-label {
  font-size: 14px;
  line-height: 1.4;
}
.noise:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .04;
  z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}
.glass-card {
  background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,255,255,.5));
  border: 1px solid rgba(0,0,0,.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.product-card:hover .product-overlay {
  opacity: 1;
  transform: translateY(0);
}
.product-card:hover .product-img {
  transform: scale(1.08);
}
img[src*="market-"] {
  transform: scale(1.06);
  transform-origin: center;
}
.scrollbar-hide::-webkit-scrollbar {
  display: none;
}
@media (max-width: 480px) {
  a.uppercase[class*="border"],
  button.uppercase[class*="border"] {
    font-size: 11px !important;
    letter-spacing: 0.06em !important;
    line-height: 1 !important;
    white-space: nowrap;
  }
}
@keyframes wipeReveal {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}
@keyframes glassWipe {
  from { transform: translateX(-120%); }
  to { transform: translateX(1100%); }
}
@keyframes textReveal {
  from { opacity: 0; transform: translateY(40px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes slideGlass {
  from { transform: translateX(-120%); opacity: 0; }
  to { transform: translateX(260%); opacity: 1; }
}
