body {
  background-color: #f4f4f2;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* --- Menu Fullscreen --- */
#fullscreen-menu {
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1);
}
#fullscreen-menu.is-open {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/* Animação dos links do menu */
.menu-link-wrapper {
  overflow: hidden;
}
.menu-link-item {
  transform: translateY(100%);
  transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1);
}
#fullscreen-menu.is-open .menu-link-item {
  transform: translateY(0);
}

/* --- Noise Overlay (Textura) --- */
.noise-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.4'/%3E%3C/svg%3E");
  opacity: 0.08;
  pointer-events: none;
  z-index: 9998;
}

/* --- Marquee Animation --- */
.marquee-container {
  overflow: hidden;
  white-space: nowrap;
}
.marquee-content {
  display: inline-block;
  animation: marquee 30s linear infinite;
}
@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* --- Floating CTA Button --- */
.floating-cta {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 9990;
  transform: scale(0);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.floating-cta.visible {
  transform: scale(1);
}
.circular-text {
  animation: rotate 10s linear infinite;
}
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* --- Utilitários --- */
.display-text {
  line-height: 1;
}
.line-wrapper {
  overflow: hidden;
}
.stroke-text {
  -webkit-text-stroke: 1px #0a0a0a;
}

.link-underline {
  position: relative;
  text-decoration: none;
}
.link-underline::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: 0;
  left: 0;
  background-color: currentColor;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.3s ease-in-out;
}
.link-underline:hover::before {
  visibility: visible;
  transform: scaleX(1);
}
