@import url("./base.css");

.hero{position:relative;min-height:900px;display:flex;align-items:center;overflow:hidden;padding:125px 0 70px;color:#fff;background:linear-gradient(135deg,#08745a,#04372b)}
.hero-bg,.hero-shade{position:absolute;inset:0}.hero-bg{background:radial-gradient(circle at 18% 24%,rgba(255,255,255,.9) 0 3px,transparent 4px),radial-gradient(circle at 82% 17%,rgba(255,255,255,.7) 0 2px,transparent 3px)}
.hero-shade{background:linear-gradient(90deg,rgba(4,38,29,.96),rgba(4,38,29,.78) 55%,rgba(4,38,29,.22))}.hero-content{position:relative;z-index:2}
.eyebrow,.section-kicker{margin:0 0 .7rem;color:var(--red);font-size:.8rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.hero .eyebrow{color:var(--yellow)}
.hero h1,.section-copy h2,.section-heading h2,.cta-inner h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.04em}.hero h1{max-width:780px;margin:0;font-size:clamp(3.2rem,7.4vw,6.8rem);line-height:.92;text-shadow:0 8px 30px rgba(0,0,0,.25)}.hero h1 span{color:var(--yellow)}
.hero-lead{max-width:690px;font-size:clamp(1.05rem,2vw,1.3rem);color:rgba(255,255,255,.9)}
.hero-facts{display:grid;grid-template-columns:repeat(4,1fr);max-width:930px;margin-top:2rem;overflow:hidden;border:1px solid rgba(255,255,255,.25);border-radius:18px;background:rgba(255,255,255,.12);backdrop-filter:blur(10px)}.hero-facts>div{padding:1rem;display:grid;grid-template-columns:auto 1fr;column-gap:.55rem;align-items:center;border-right:1px solid rgba(255,255,255,.18)}.hero-facts>div:last-child{border:0}.fact-icon{grid-row:1/span 2;font-size:1.4rem}.hero-facts strong,.hero-facts small{display:block}.hero-facts small{color:rgba(255,255,255,.7)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.5rem}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:.75rem 1.35rem;border:2px solid transparent;border-radius:14px;text-decoration:none;font-weight:900;transition:.2s}.button:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.16)}.button-primary{background:var(--yellow);color:var(--green-dark)}.button-light{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.08);color:#fff}.button-dark{background:var(--green-dark);color:#fff}
.countdown-card{max-width:600px;margin-top:1.7rem;padding:1rem 1.2rem;border-radius:16px;background:rgba(255,213,0,.96);color:var(--green-dark);box-shadow:var(--shadow)}.countdown-card>p{margin:0 0 .35rem;font-size:.8rem;font-weight:900;text-transform:uppercase}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.countdown span{display:flex;align-items:baseline;gap:.25rem}.countdown strong{font-size:1.65rem}.countdown small{font-size:.75rem}
.split-grid,.region-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}.section-copy h2,.section-heading h2,.cta-inner h2{margin:0;color:var(--green-dark);font-size:clamp(2.2rem,5vw,4.3rem);line-height:1.05}.section-copy p{font-size:1.05rem;color:var(--muted)}
.wood-note{position:relative;min-height:310px;padding:4rem 2.3rem;display:grid;place-content:center;text-align:center;color:#fff7e8;border:10px solid #703b18;border-radius:14px;background:repeating-linear-gradient(3deg,#b86c31 0 8px,#a55a27 9px 12px,#c37a3e 13px 21px);box-shadow:0 22px 0 #613015,var(--shadow);transform:rotate(1.5deg)}.wood-note p{margin:0;font-family:Georgia,serif;font-style:italic;font-size:1.5rem}.wood-note strong{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.2rem);line-height:.95;text-transform:uppercase}.wood-note small{font-weight:900;text-transform:uppercase}.wood-nail{position:absolute;top:16px;width:14px;aspect-ratio:1;border-radius:50%;background:#aaa}.wood-nail-left{left:18px}.wood-nail-right{right:18px}
.program-section{background-color:var(--green-dark);color:#fff}.section-heading{max-width:800px;margin:0 auto 3.2rem;text-align:center}.program-section .section-kicker{color:var(--yellow)}.program-section .section-heading h2{color:#fff}.section-heading>p:last-child{color:var(--muted)}.program-section .section-heading>p:last-child{color:rgba(255,255,255,.7)}
.timeline{position:relative;max-width:940px;margin:auto;padding:0;list-style:none}.timeline:before{content:"";position:absolute;left:103px;top:18px;bottom:18px;width:4px;background:rgba(255,213,0,.38)}.timeline-item{position:relative;display:grid;grid-template-columns:100px 1fr;gap:2rem;margin-bottom:1rem}.timeline-item time{padding-top:1.5rem;color:var(--yellow);font-size:1.35rem;font-weight:900;text-align:right}.timeline-item>div{position:relative;padding:1.25rem 1.5rem;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.07)}.timeline-item>div:before{content:"";position:absolute;left:-2.5rem;top:1.7rem;width:14px;aspect-ratio:1;border:4px solid var(--green-dark);border-radius:50%;background:var(--yellow)}.timeline-item h3{margin:.15rem 0;color:#fff;font-family:Georgia,serif;font-size:1.5rem}.timeline-item p{margin:0;color:rgba(255,255,255,.68)}.program-tag{color:var(--yellow);font-size:.75rem;font-weight:900;text-transform:uppercase}.timeline-highlight>div{background:var(--red);border-color:transparent}.program-note{max-width:940px;margin:1.6rem auto 0;color:rgba(255,255,255,.58);font-size:.85rem}
.experiences-section{background:linear-gradient(180deg,#fffaf0,#fff1c8)}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.experience-card{padding:1.5rem;border-radius:22px;background:#fff;box-shadow:0 10px 30px rgba(6,53,40,.1)}.experience-card>span{font-size:2.2rem}.experience-card h3{margin:.5rem 0;color:var(--green-dark);font-family:Georgia,serif}.experience-card p{margin:0;color:var(--muted)}
.lineup-section{background:#fff}.lineup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.artist-card{position:relative;min-height:390px;overflow:hidden;border-radius:22px;background:var(--green-dark);box-shadow:var(--shadow)}.artist-symbol{display:grid;place-items:center;min-height:245px;background:linear-gradient(145deg,var(--yellow),#ffb900);color:var(--green);font-family:Georgia,serif;font-size:clamp(3rem,8vw,6rem);font-weight:900;letter-spacing:-.08em;text-shadow:3px 3px 0 rgba(255,255,255,.55)}.artist-card>div:last-child{position:absolute;inset:auto 1.2rem 1.2rem;color:#fff}.artist-card span{display:inline-block;padding:.25rem .6rem;border-radius:999px;background:var(--yellow);color:var(--green-dark);font-weight:900;font-size:.8rem}.artist-card h3{margin:.5rem 0 .1rem;font-family:Georgia,serif;font-size:1.45rem}.artist-card p{margin:0;color:rgba(255,255,255,.7)}.artist-featured{grid-column:span 2;grid-row:span 2;min-height:796px}.artist-featured .artist-symbol{min-height:620px;background:linear-gradient(145deg,var(--red),#a60009);color:#fff}.artist-featured h3{font-size:2.2rem}
.region-section{background:var(--blue)}.region-visual{position:relative;min-height:460px;overflow:hidden;border:10px solid #fff;border-radius:35px;background:linear-gradient(#a8e4f5 0 58%,#5db2d4 58%);box-shadow:var(--shadow)}.sun{position:absolute;width:170px;aspect-ratio:1;top:44px;right:58px;border-radius:50%;background:#fff2a8}.mountain{position:absolute;width:100%;height:55%;bottom:35%;clip-path:polygon(0 100%,19% 42%,32% 72%,52% 17%,70% 67%,84% 30%,100% 100%)}.mountain-back{background:#4d8e3b;opacity:.72}.mountain-front{bottom:22%;background:#286c37;transform:translateX(8%) scale(1.1)}.lake{position:absolute;inset:auto 0 0;height:34%;background:#3b9bc6}.wood-sign{position:absolute;left:50%;bottom:48px;transform:translateX(-50%) rotate(-2deg);width:min(80%,390px);padding:1.1rem;text-align:center;color:#fff7e8;border:6px solid #6b3515;background:repeating-linear-gradient(4deg,#b86c31 0 9px,#9f5523 10px 12px);box-shadow:0 12px 0 #613015}.wood-sign span,.wood-sign strong{display:block}.wood-sign span{font-family:Georgia,serif;font-size:2rem}.wood-sign strong{font-size:.78rem;text-transform:uppercase}
.info-layout{display:grid;grid-template-columns:1fr .85fr;gap:1.5rem}.info-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.info-card{display:flex;gap:1rem;min-height:170px;padding:1.4rem;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(6,53,40,.08)}.info-card>span{flex:0 0 48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--yellow);font-size:1.35rem}.info-card h3{margin:.1rem 0;color:var(--green-dark);font-family:Georgia,serif}.info-card p{margin:0;color:var(--muted)}.map-card{display:flex;flex-direction:column;overflow:hidden;min-height:355px;border-radius:24px;background:var(--green-dark);box-shadow:var(--shadow)}.map-pattern{flex:1;display:grid;place-content:center;padding:2rem;text-align:center;color:#fff;background:radial-gradient(circle at 20% 30%,var(--yellow) 0 7px,transparent 8px),linear-gradient(145deg,transparent 47%,rgba(255,255,255,.12) 48% 51%,transparent 52%),var(--green)}.map-pattern:before{content:"📍";font-size:3rem}.map-pattern span{color:var(--yellow);font-weight:900;text-transform:uppercase}.map-pattern strong{font-family:Georgia,serif;font-size:2rem}.map-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.2rem;background:#fff}.text-link{font-weight:900;text-decoration:none}
.cta-section{padding:4.5rem 0;background:var(--yellow)}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-inner>div{max-width:760px}.site-footer{padding:4rem 0 1.5rem;background:#061f17;color:#fff}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}.footer-brand{display:flex;align-items:center;gap:.85rem}.footer-brand strong,.footer-brand small{display:block}.footer-brand small{color:rgba(255,255,255,.55)}.site-footer h2{margin:0 0 .65rem;color:var(--yellow);font-size:.84rem;text-transform:uppercase}.site-footer a{display:block;margin:.32rem 0;color:rgba(255,255,255,.72);text-decoration:none}.footer-bottom{display:flex;justify-content:space-between;gap:2rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.52);font-size:.78rem}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1000px){.hero-facts{grid-template-columns:repeat(2,1fr)}.lineup-grid{grid-template-columns:repeat(3,1fr)}.artist-featured{grid-column:span 2;grid-row:span 1;min-height:480px}.artist-featured .artist-symbol{min-height:300px}.info-layout{grid-template-columns:1fr}}
@media(max-width:820px){.menu-button{display:block}.main-nav{position:absolute;left:1rem;right:1rem;top:calc(100% + .5rem);display:grid;padding:.7rem;border-radius:16px;background:#fff;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.2s}.main-nav.is-open{opacity:1;visibility:visible;transform:none}.split-grid,.region-grid{grid-template-columns:1fr}.experience-grid,.lineup-grid{grid-template-columns:repeat(2,1fr)}.artist-featured{grid-column:span 2}.cta-inner{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:560px){.container{width:min(calc(100% - 1.25rem),var(--max))}.hero{min-height:970px;padding-top:100px}.hero h1{font-size:clamp(3rem,15vw,4.7rem)}.hero-facts,.experience-grid,.lineup-grid,.info-cards{grid-template-columns:1fr}.hero-facts>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.hero-actions .button{width:100%}.timeline:before{left:17px}.timeline-item{grid-template-columns:1fr;gap:.3rem;padding-left:42px}.timeline-item time{text-align:left;padding-top:0}.timeline-item>div:before{left:-2.13rem}.artist-featured{grid-column:auto;min-height:430px}.artist-featured .artist-symbol{min-height:245px}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}}

/* Interactive program cards */
.timeline {
  max-width: 1120px;
}

.timeline::before {
  left: 116px;
  top: 44px;
  bottom: 44px;
  width: 3px;
  background: linear-gradient(180deg, rgba(255, 212, 0, .2), rgba(255, 212, 0, .9), rgba(255, 212, 0, .2));
  box-shadow: 0 0 16px rgba(255, 212, 0, .16);
}

.timeline-item {
  grid-template-columns: 96px minmax(0, 1fr);
  column-gap: 40px;
  align-items: start;
  margin-bottom: 1.35rem;
}

.timeline-item::before {
  content: "";
  position: absolute;
  left: 116px;
  top: 46px;
  z-index: 4;
  width: 16px;
  aspect-ratio: 1;
  border: 4px solid #083b2e;
  border-radius: 50%;
  background: #ffd400;
  box-shadow: 0 0 0 2px rgba(255, 212, 0, .2), 0 0 18px rgba(255, 212, 0, .42);
  transform: translateX(-50%);
}

.timeline-item time {
  padding-top: 34px;
  color: #ffd400;
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
  text-align: right;
  white-space: nowrap;
  text-shadow: 0 0 18px rgba(255, 212, 0, .22);
}

.program-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  min-height: 170px;
  padding: 32px 38px;
  border: 1px solid rgba(255, 224, 92, .55);
  border-radius: 24px;
  background:
    radial-gradient(circle at 7% 0%, rgba(255, 212, 0, .1), transparent 30%),
    linear-gradient(135deg, rgba(28, 77, 59, .88), rgba(7, 53, 42, .94));
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 18px 38px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .1);
  transition: transform 350ms cubic-bezier(.22, 1, .36, 1), border-color 350ms ease, box-shadow 350ms ease, background 350ms ease;
}

.program-card::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 1;
  padding: 1.5px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(110deg, rgba(255, 229, 95, .95), rgba(255, 229, 95, .15) 28%, rgba(255, 255, 255, .05) 55%, rgba(255, 212, 0, .7));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: .65;
  transition: opacity 350ms ease;
}

.program-card::after {
  content: "";
  position: absolute;
  top: -90%;
  left: -45%;
  z-index: 1;
  width: 20%;
  height: 280%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 242, 171, .08), rgba(255, 255, 255, .2), transparent);
  transform: rotate(18deg);
  transition: left 900ms ease;
}

.program-card__content {
  position: relative;
  z-index: 2;
}

.program-card__category {
  display: block;
  margin-bottom: 18px;
  color: #ffd400;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.program-card .program-card__title {
  margin: 0 0 14px;
  color: #fffdf7;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  line-height: 1.05;
}

.program-card .program-card__description {
  margin: 0;
  color: #c6d0cb;
  font-size: 1.05rem;
  line-height: 1.5;
}

.program-card__spark {
  position: absolute;
  right: 4%;
  bottom: 14%;
  z-index: 1;
  width: 180px;
  height: 70px;
  pointer-events: none;
  border-bottom: 1px solid rgba(255, 212, 0, .28);
  border-radius: 0 0 100% 0;
  opacity: .45;
  transform: rotate(-8deg);
  transition: opacity 350ms ease, transform 350ms ease;
}

.program-card__spark::before {
  content: "✦";
  position: absolute;
  right: 6%;
  bottom: -13px;
  color: #ffe35a;
  font-size: 25px;
  filter: drop-shadow(0 0 5px rgba(255, 212, 0, .85)) drop-shadow(0 0 12px rgba(255, 212, 0, .45));
  animation: sparkPulse 2.8s ease-in-out infinite;
}

.program-card:hover {
  transform: translateY(-7px) scale(1.01);
  border-color: rgba(255, 229, 92, .95);
  box-shadow: 0 28px 55px rgba(0, 0, 0, .32), 0 0 35px rgba(255, 212, 0, .13), inset 0 1px 0 rgba(255, 255, 255, .15);
}

.program-card:hover::before {
  opacity: 1;
}

.program-card:hover::after {
  left: 125%;
}

.program-card:hover .program-card__spark {
  opacity: .9;
  transform: rotate(-8deg) scale(1.08);
}

.reveal-card {
  opacity: 0;
  transform: translateY(42px) scale(.98);
  transition: opacity 700ms ease, transform 700ms cubic-bezier(.22, 1, .36, 1);
}

.reveal-card.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

@keyframes sparkPulse {
  0%, 100% { transform: scale(.9) rotate(0deg); opacity: .65; }
  50% { transform: scale(1.18) rotate(12deg); opacity: 1; }
}

@media (max-width: 560px) {
  .timeline::before {
    left: 17px;
  }

  .timeline-item {
    grid-template-columns: 1fr;
    gap: .5rem;
    padding-left: 42px;
  }

  .timeline-item::before {
    left: 17px;
    top: 18px;
  }

  .timeline-item time {
    padding-top: 0;
    text-align: left;
  }

  .program-card {
    min-height: 155px;
    padding: 26px 22px;
    border-radius: 20px;
  }

  .program-card__spark {
    right: 1%;
    width: 120px;
  }
}

@media (hover: none) {
  .program-card:hover {
    transform: none;
    border-color: rgba(255, 224, 92, .55);
    box-shadow: 0 18px 38px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .1);
  }

  .program-card:hover::after {
    left: -45%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .program-card,
  .program-card::after,
  .program-card__spark,
  .program-card__spark::before,
  .reveal-card {
    animation: none;
    transition: none;
  }

  .reveal-card {
    opacity: 1;
    transform: none;
  }
}
