/* Peru living layer — toppchoklad2 */
:root {
  --cacao: #100807;
  --cacao-2: #1a100e;
  --terracotta: #b24a32;
  --andean: #7a1f2a;
  --gold: #e0c078;
  --gold-2: #f6e6b8;
  --line: rgba(224, 192, 120, 0.32);
}

body {
  background:
    radial-gradient(1200px 800px at 12% 8%, rgba(178, 74, 50, 0.22), transparent 55%),
    radial-gradient(900px 700px at 88% 92%, rgba(122, 31, 42, 0.28), transparent 50%),
    #100807;
}

.world {
  position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
}
.world-sky {
  position: absolute; inset: -20%;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(224,192,120,.16), transparent 42%),
    radial-gradient(ellipse at 80% 70%, rgba(178,74,50,.18), transparent 46%),
    radial-gradient(ellipse at 50% 110%, rgba(20,8,6,.9), transparent 55%);
  animation: sky-breathe 22s ease-in-out infinite alternate;
}
@keyframes sky-breathe {
  from { transform: scale(1) translate(0, 0); filter: hue-rotate(0deg); }
  to { transform: scale(1.12) translate(-3%, 2%); filter: hue-rotate(12deg); }
}
.world-fog {
  position: absolute; inset: -12%;
  background: url("images/ceremony.jpg") center/cover no-repeat;
  opacity: 0.14;
  mix-blend-mode: soft-light;
  animation: ken-pan 48s ease-in-out infinite alternate;
  filter: saturate(1.15) contrast(1.05);
}
.world-textile {
  position: absolute; inset: 0;
  opacity: 0.11;
  background-image:
    repeating-linear-gradient(90deg,
      transparent 0 18px,
      rgba(224,192,120,.35) 18px 20px,
      transparent 20px 34px,
      rgba(178,74,50,.45) 34px 36px,
      transparent 36px 52px,
      rgba(122,31,42,.4) 52px 54px);
  background-size: 220px 100%;
  animation: textile-roll 48s linear infinite;
  mix-blend-mode: overlay;
}
@keyframes textile-roll {
  from { background-position: 0 0; }
  to { background-position: -220px 0; }
}
.world-chakanas {
  position: absolute; inset: -10%;
  opacity: 0.07;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'><path fill='none' stroke='%23e0c078' stroke-width='1.4' d='M56 18h28v14h14v14h14v28h-14v14h-14v14H56v-14H42V74H28V46h14V32h14z'/></svg>");
  background-size: 180px 180px;
  animation: chakana-drift 90s linear infinite;
}
@keyframes chakana-drift {
  from { transform: translate(0,0) rotate(0deg); }
  to { transform: translate(-90px, -90px) rotate(8deg); }
}
#world {
  position: absolute; inset: 0; width: 100%; height: 100%;
}

.nav {
  background: linear-gradient(to bottom, rgba(16,8,7,.9), rgba(16,8,7,.2) 75%, transparent);
  border-bottom: 1px solid transparent;
}
.nav::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--terracotta), var(--gold), var(--terracotta), transparent);
  background-size: 220% 100%;
  animation: goldline 10s linear infinite;
}
@keyframes goldline {
  from { background-position: 0 0; }
  to { background-position: 220% 0; }
}

h1 span, .sig, .brand-mark em {
  animation: gold-glow 5.5s ease-in-out infinite alternate;
}
@keyframes gold-glow {
  from { text-shadow: 0 0 0 rgba(224,192,120,0); }
  to { text-shadow: 0 0 22px rgba(224,192,120,.45); }
}

.kicker {
  color: var(--gold);
  animation: kicker-pulse 4.8s ease-in-out infinite;
}
@keyframes kicker-pulse {
  0%,100% { letter-spacing: 0.42em; opacity: .85; }
  50% { letter-spacing: 0.5em; opacity: 1; }
}

.slide img {
  animation: ken-pan 28s ease-in-out infinite alternate !important;
}
.slide:nth-child(2) img { animation-duration: 34s !important; animation-delay: -6s !important; }
.slide:nth-child(3) img { animation-duration: 31s !important; animation-delay: -11s !important; }
.slide:nth-child(4) img { animation-duration: 40s !important; animation-delay: -4s !important; }
.slide:nth-child(5) img { animation-duration: 26s !important; animation-delay: -9s !important; }

@keyframes ken-pan {
  from { transform: scale(1.06) translate3d(-2.2%, -1.4%, 0); }
  to { transform: scale(1.18) translate3d(2.6%, 2.2%, 0); }
}

.flavor img {
  width: 112% !important; height: 112% !important;
  object-position: center;
  animation: ken-pan 24s ease-in-out infinite alternate;
}
.flavor:nth-child(2) img { animation-duration: 29s; animation-delay: -8s; }
.flavor:nth-child(3) img { animation-duration: 32s; animation-delay: -3s; }
.flavor:hover img {
  animation: none;
  transform: scale(1.14) rotate(-1.2deg);
}

.card-media img {
  animation: idle-float 7.5s ease-in-out infinite alternate;
}
.card:nth-child(2n) .card-media img { animation-duration: 8.6s; animation-delay: -2s; }
.card:nth-child(3n) .card-media img { animation-duration: 9.4s; animation-delay: -4s; }
@keyframes idle-float {
  from { transform: translateY(0) rotate(-1.2deg) scale(1.02); }
  to { transform: translateY(-10px) rotate(1.6deg) scale(1.06); }
}
.card:hover .card-media img {
  animation: prod-bob 1.35s ease-in-out infinite;
}

.ken {
  overflow: hidden; border-radius: 24px;
}
.ken img, .presence > img, .about-photos img {
  animation: ken-pan 36s ease-in-out infinite alternate;
}
.about-photos img:nth-child(2) { animation-duration: 28s; animation-delay: -7s; }
.about-photos img:nth-child(3) { animation-duration: 42s; animation-delay: -12s; }

.gift-stage {
  background-image: none;
}
.gift-stage .gift-bg {
  position: absolute; inset: -8%;
  background: url("images/gift-explode.jpg") center/cover;
  animation: ken-pan 40s ease-in-out infinite alternate;
  z-index: 0;
}
.gift-stage::before {
  content: "";
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    repeating-linear-gradient(90deg, transparent 0 28px, rgba(224,192,120,.08) 28px 30px),
    repeating-linear-gradient(0deg, transparent 0 28px, rgba(178,74,50,.07) 28px 30px);
  animation: textile-roll 36s linear infinite;
}

.marquee {
  background: linear-gradient(90deg, #1a0c0a, #2a1410 40%, #1a0c0a);
}
.marquee.peru {
  border-top: 0;
  background: #1c0d0b;
}
.marquee.peru .marquee-track {
  color: #e8c9a0;
  animation-duration: 42s;
  animation-direction: reverse;
}

.ritual-card {
  position: relative; overflow: hidden;
  animation: card-breathe 8s ease-in-out infinite alternate;
}
.ritual-card:nth-child(2) { animation-delay: -2s; }
.ritual-card:nth-child(3) { animation-delay: -4s; }
.ritual-card:nth-child(4) { animation-delay: -6s; }
@keyframes card-breathe {
  from { transform: translateY(0); border-color: rgba(224,192,120,.28); }
  to { transform: translateY(-6px); border-color: rgba(178,74,50,.55); }
}
.ritual-card::after {
  content: "";
  position: absolute; inset: auto 0 0; height: 2px;
  background: linear-gradient(90deg, var(--terracotta), var(--gold), var(--terracotta));
  background-size: 200% 100%;
  animation: goldline 8s linear infinite;
}

.andean-band {
  height: 10px;
  background: repeating-linear-gradient(90deg,
    #7a1f2a 0 18px,
    #e0c078 18px 22px,
    #b24a32 22px 40px,
    #1a100e 40px 46px,
    #e0c078 46px 50px);
  background-size: 160px 100%;
  animation: textile-roll 18s linear infinite;
}

.follow a.ig {
  display: inline-block;
  animation: gold-glow 4s ease-in-out infinite alternate, idle-float 6s ease-in-out infinite alternate;
}

footer {
  position: relative;
  background: linear-gradient(180deg, transparent, rgba(122,31,42,.12));
}

.cursor-glow {
  position: fixed; width: 180px; height: 180px; border-radius: 50%;
  pointer-events: none; z-index: 40;
  background: radial-gradient(circle, rgba(224,192,120,.18), transparent 68%);
  transform: translate(-50%, -50%);
  mix-blend-mode: screen;
}

video { max-width: 100%; display: block; }
.slide video {
  width: 100%; height: 100%; object-fit: cover;
}
.flavor video {
  width: 112%; height: 112%; object-fit: cover;
}
.card-media video {
  width: 100%; height: 100%; object-fit: contain; padding: 10px;
  animation: idle-float 7.5s ease-in-out infinite alternate;
}
.presence video, .about-photos video {
  width: 100%; object-fit: cover; border-radius: 18px;
}
.presence video { height: 520px; border-radius: 24px; }
.about-photos video { height: 260px; }
.about-photos video.tall { grid-column: 1 / -1; height: 340px; object-position: top; }
video.gift-bg, .gift-bg {
  position: absolute; inset: -8%; width: 116%; height: 116%;
  object-fit: cover; z-index: 0; pointer-events: none;
}
.world-fog-vid {
  position: absolute; inset: -12%; width: 124%; height: 124%;
  object-fit: cover; opacity: 0.18; mix-blend-mode: soft-light; pointer-events: none;
}
video.big-gift, .big-gift {
  width: min(260px, 70vw); margin: 20px auto 24px;
}

@media (max-width: 640px) {
  .about-photos video, .presence video { height: 280px; }
}

@media (prefers-reduced-motion: reduce) {
  .world-sky, .world-fog, .world-textile, .world-chakanas,
  .flavor img, .card-media img, .ken img, .presence > img, .about-photos img,
  .gift-stage .gift-bg, .kicker, .nav::after, .ritual-card { animation: none !important; }
}
