:root {
  --gold: #f8c84b;
  --gold-soft: #fff2ba;
  --pink: #ff79bd;
  --navy: #092b59;
}

body {
  background:
    radial-gradient(circle at 12% 14%, rgba(255, 225, 133, .14), transparent 20rem),
    radial-gradient(circle at 88% 32%, rgba(255, 122, 190, .09), transparent 24rem),
    #fffdf8;
}

.nav {
  border-bottom: 1px solid rgba(248, 200, 75, .38);
  box-shadow: 0 7px 26px rgba(8, 42, 79, .10);
}

.intro, .route, .prizes, .venue, .gallery, .info {
  position: relative;
  overflow: hidden;
}

.intro::before, .route::before, .prizes::before, .venue::before, .gallery::before, .info::before {
  content: '✦  ·  ✧      ✦       ·  ✧';
  position: absolute;
  top: 18px;
  left: 4%;
  z-index: 0;
  color: rgba(248, 190, 59, .62);
  font-size: 19px;
  letter-spacing: .65em;
  text-shadow: 0 0 12px rgba(255, 218, 99, .8);
  pointer-events: none;
  animation: luxury-twinkle 5.2s ease-in-out infinite alternate;
}

.intro::after, .route::after, .prizes::after, .venue::after, .gallery::after, .info::after {
  content: '✧';
  position: absolute;
  right: 5%;
  bottom: 20px;
  z-index: 0;
  color: var(--pink);
  font-size: 36px;
  text-shadow: 0 0 14px rgba(255, 101, 183, .85);
  pointer-events: none;
  animation: luxury-twinkle 3.7s 1s ease-in-out infinite alternate;
}

.intro > *, .route > *, .prizes > *, .venue > *, .gallery > *, .info > * { position: relative; z-index: 1; }

.intro { background: linear-gradient(135deg, #fffdf8 15%, #fff6d8 100%); }
.route { background: linear-gradient(135deg, #d9fbef, #eefcf7 58%, #d7f2fb); }
.gallery { background: linear-gradient(135deg, #e5fbf4, #f7fffb 54%, #e8f4ff); }
.info { background: linear-gradient(135deg, #fff0bc, #fffaf0 56%, #fce3f1); }

.intro h2, .route h2, .venue h2, .gallery h2, .info h2, .prizes h2 {
  text-shadow: 0 2px 0 #fff, 0 7px 20px rgba(25, 69, 111, .11);
}

.checkpoints .checkpoint {
  border: 1px solid rgba(248, 200, 75, .68);
  box-shadow: 0 8px 0 #9ccfbe, 0 17px 30px rgba(14, 91, 84, .13), inset 0 1px 0 rgba(255,255,255,.85);
}

.gallery-grid img {
  border: 2px solid rgba(255, 255, 255, .92);
  box-shadow: 0 10px 24px rgba(17,70,78,.12), 0 0 0 3px rgba(248, 200, 75, .35);
}

.venue img, .prizes > img {
  filter: saturate(1.06) contrast(1.02);
}

.entry-card {
  border: 1px solid rgba(248, 200, 75, .72);
  box-shadow: 0 14px 34px rgba(108,78,18,.18), 0 0 0 5px rgba(255,255,255,.68);
}

.entry-card h3::after {
  content: ' ✦';
  color: var(--pink);
  text-shadow: 0 0 10px rgba(255, 101, 183, .65);
}

.nav-button, .prizes a, .entry-card button {
  box-shadow: 0 5px 0 #08749b, 0 9px 18px rgba(0, 160, 178, .18);
}

footer {
  background: linear-gradient(110deg, #062b58, #0b4a80 55%, #14386d);
  box-shadow: inset 0 2px 0 rgba(248, 200, 75, .75);
}

@keyframes luxury-twinkle {
  0% { transform: translateY(0) scale(.85); opacity: .35; }
  55% { transform: translateY(-7px) scale(1.12); opacity: 1; }
  100% { transform: translateY(2px) scale(.92); opacity: .55; }
}

@media (max-width: 640px) {
  .intro::before, .route::before, .prizes::before, .venue::before, .gallery::before, .info::before { font-size: 13px; top: 12px; letter-spacing: .38em; }
  .intro::after, .route::after, .prizes::after, .venue::after, .gallery::after, .info::after { right: 4%; bottom: 12px; font-size: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  .intro::before, .route::before, .prizes::before, .venue::before, .gallery::before, .info::before,
  .intro::after, .route::after, .prizes::after, .venue::after, .gallery::after, .info::after { animation: none; }
}
