/* Brutalist Future — Golden Hour */
@keyframes gradient-shift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.bg-animated-gradient {
  background: linear-gradient(120deg, #1A0F00, #D4A017, #F0C040, #1A0F00);
  background-size: 300% 300%;
  animation: gradient-shift 14s ease infinite;
}

@keyframes float-shape {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(-30px) rotate(15deg); }
}
.float-shape { animation: float-shape 9s ease-in-out infinite; }

@keyframes slide-up {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes scale-in {
  from { opacity: 0; transform: scale(.9); }
  to   { opacity: 1; transform: scale(1); }
}
.reveal { opacity: 0; }
.reveal.in-view.anim-slide  { animation: slide-up .8s ease forwards; }
.reveal.in-view.anim-fade   { animation: fade-in  1s ease forwards; }
.reveal.in-view.anim-scale  { animation: scale-in .7s ease forwards; }

.parallax-bg { will-change: transform; }

.faq-item .faq-body {
  max-height: 0; overflow: hidden;
  transition: max-height .5s ease;
}
.faq-item.open .faq-body { max-height: 600px; }

/* Floating labels */
.field { position: relative; }
.field input, .field textarea, .field select {
  width: 100%; background: transparent;
  border: 3px solid #FFF8E1; color: #FFF8E1;
  padding: 22px 14px 10px; outline: none;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.field textarea { min-height: 130px; resize: vertical; }
.field label {
  position: absolute; left: 14px; top: 18px;
  color: #F0C040; pointer-events: none;
  transition: all .2s ease; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  font-size: .85rem;
}
.field input:focus, .field textarea:focus, .field select:focus {
  border-color: #D4A017;
  box-shadow: 0 0 0 4px rgba(212,160,23,.25);
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,
.field textarea:not(:placeholder-shown) + label,
.field select:focus + label,
.field select:valid + label {
  top: 4px; font-size: .65rem; color: #D4A017;
}

/* Nav underline */
.nav-link { position: relative; }
.nav-link::after {
  content: ""; position: absolute; left: 0; bottom: -6px;
  width: 0; height: 4px; background: #D4A017;
  transition: width .3s ease;
}
.nav-link:hover::after, .nav-link.active::after { width: 100%; }

/* Cart drawer */
.drawer { transform: translateX(100%); transition: transform .35s ease; }
.drawer.open { transform: translateX(0); }

/* Brutalist shadow */
.brut-shadow { box-shadow: 8px 8px 0 0 #D4A017; }
.brut-shadow-accent { box-shadow: 10px 10px 0 0 #FFE169; }

/* Marquee */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.marquee-track { animation: marquee 30s linear infinite; }
