/* ZGame Festival Wishes V2 — maker page. Loaded after premium.css. */
body[data-festival]{
  background:
    radial-gradient(circle at 7% 8%,color-mix(in srgb,var(--festival-primary) 14%,transparent),transparent 23%),
    radial-gradient(circle at 92% 14%,color-mix(in srgb,var(--festival-tertiary) 14%,transparent),transparent 24%),
    #fff9f6!important;
  color:var(--ink)!important;
}
body[data-festival] .page>.hero{
  width:100%!important;
  margin:0!important;
  padding:36px!important;
  border-radius:34px!important;
  background:linear-gradient(135deg,var(--festival-primary),var(--festival-secondary) 48%,var(--festival-tertiary))!important;
  color:#fff!important;
  box-shadow:0 22px 60px color-mix(in srgb,var(--festival-primary) 24%,transparent)!important;
}
body[data-festival] .page>.hero h1{color:#fff!important}
body[data-festival] .page>.hero p{color:rgba(255,255,255,.94)!important}
body[data-festival] .hero-preview{
  background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(255,255,255,.08))!important;
  border-color:rgba(255,255,255,.34)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22)!important;
}
body[data-festival] .mini-card{
  background:linear-gradient(145deg,rgba(22,13,38,.64),rgba(40,18,48,.34))!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.28)!important;
  box-shadow:0 20px 48px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.24)!important;
}
body[data-festival] .mini-card p{color:rgba(255,255,255,.88)!important}
body[data-festival] .mini-card .stamp{background:rgba(255,255,255,.16)!important;color:#fff!important;border:1px solid rgba(255,255,255,.24)!important}

/* Theme cards must look like real mini festival posters, not plain swatches. */
body[data-festival] .template-card{border-radius:20px!important;overflow:hidden!important;background:#fff!important;padding:9px!important}
body[data-festival] .template-preview{
  background:var(--preview-bg)!important;
  height:112px!important;
  border-radius:16px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30),0 8px 18px rgba(25,17,38,.12)!important;
  isolation:isolate;
}
body[data-festival] .template-preview::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border:0!important;
  border-radius:inherit!important;
  background:
    radial-gradient(circle at 14% 20%,rgba(255,255,255,.42) 0 3%,transparent 4%),
    radial-gradient(circle at 83% 72%,rgba(255,255,255,.25) 0 8%,transparent 9%),
    linear-gradient(145deg,rgba(255,255,255,.08),rgba(0,0,0,.12))!important;
  opacity:.88!important;
  z-index:0!important;
}
body[data-festival] .template-preview::after{
  content:'Happy ' attr(data-festival-label)!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  color:#fff!important;
  text-shadow:0 2px 7px rgba(0,0,0,.38)!important;
  font-size:.88rem!important;
  font-weight:700!important;
  z-index:2!important;
}
/* Current HTML has no data-festival-label; fall back to a clean visual title. */
body[data-festival] .template-preview:not([data-festival-label])::after{content:'Festival Wish'!important}
body[data-festival] .template-preview .festival-motif{z-index:3!important;font-size:1.55rem!important;opacity:1!important}
body[data-festival] .template-preview .festival-motif.a{left:9px!important;top:8px!important}
body[data-festival] .template-preview .festival-motif.b{right:8px!important;bottom:7px!important}

body[data-festival-effect="color"] .template-preview::before{
  background:
    radial-gradient(circle at 8% 18%,#ffd60a 0 7%,transparent 8%),
    radial-gradient(circle at 22% 83%,#22c55e 0 10%,transparent 11%),
    radial-gradient(circle at 86% 20%,#06b6d4 0 9%,transparent 10%),
    radial-gradient(circle at 74% 76%,#f72585 0 11%,transparent 12%),
    linear-gradient(145deg,rgba(255,255,255,.04),rgba(0,0,0,.14))!important;
}
body[data-festival-effect="lights"] .template-preview::before{background:radial-gradient(circle at 22% 76%,#ffd166 0 4%,rgba(255,209,102,.18) 5% 15%,transparent 16%),radial-gradient(circle at 82% 22%,#ffd166 0 3%,rgba(255,209,102,.17) 4% 14%,transparent 15%),linear-gradient(145deg,rgba(255,255,255,.04),rgba(0,0,0,.16))!important}
body[data-festival-effect="moon"] .template-preview::before{background:radial-gradient(circle at 80% 19%,#ffe8a3 0 9%,rgba(255,232,163,.12) 10% 21%,transparent 22%),radial-gradient(circle at 18% 30%,rgba(255,255,255,.8) 0 1.5%,transparent 2%),linear-gradient(145deg,rgba(255,255,255,.03),rgba(0,0,0,.13))!important}
body[data-festival-effect="snow"] .template-preview::before{background:radial-gradient(circle,rgba(255,255,255,.78) 0 1.5px,transparent 2px),linear-gradient(145deg,rgba(255,255,255,.04),rgba(0,0,0,.12))!important;background-size:22px 22px,auto!important}
body[data-festival-effect="fireworks"] .template-preview::before{background:radial-gradient(circle at 22% 24%,transparent 0 8%,rgba(255,220,90,.55) 8.5% 9.5%,transparent 10%),radial-gradient(circle at 80% 30%,transparent 0 7%,rgba(91,214,255,.58) 7.5% 8.5%,transparent 9%),linear-gradient(145deg,rgba(255,255,255,.03),rgba(0,0,0,.16))!important}
body[data-festival-effect="spooky"] .template-preview::before{background:radial-gradient(circle at 79% 16%,#ffb347 0 8%,rgba(255,179,71,.12) 9% 19%,transparent 20%),linear-gradient(145deg,rgba(107,33,168,.16),rgba(0,0,0,.16))!important}
body[data-festival-effect="kite"] .template-preview::before{background:linear-gradient(35deg,transparent 49%,rgba(255,255,255,.35) 50%,transparent 51%),linear-gradient(145deg,rgba(255,255,255,.04),rgba(0,0,0,.10))!important;background-size:42px 42px,auto!important}
body[data-festival-effect="harvest"] .template-preview::before{background:repeating-linear-gradient(75deg,rgba(255,234,156,.12) 0 2px,transparent 2px 15px),linear-gradient(145deg,rgba(255,255,255,.04),rgba(0,0,0,.10))!important}
body[data-festival-effect="hearts"] .template-preview::before{background:radial-gradient(circle at 20% 20%,rgba(255,190,215,.48),transparent 20%),radial-gradient(circle at 82% 75%,rgba(216,180,254,.42),transparent 22%),linear-gradient(145deg,rgba(255,255,255,.03),rgba(0,0,0,.10))!important}

body[data-festival] .theme-floral.template-preview,
body[data-festival] .theme-minimal.template-preview,
body[data-festival] .theme-pastel.template-preview,
body[data-festival] .theme-parchment.template-preview,
body[data-festival] .theme-tricolor.template-preview{filter:saturate(1.12) contrast(1.02)!important}
body[data-festival] .theme-floral.template-preview::after,
body[data-festival] .theme-minimal.template-preview::after,
body[data-festival] .theme-pastel.template-preview::after,
body[data-festival] .theme-parchment.template-preview::after,
body[data-festival] .theme-tricolor.template-preview::after{color:#2e2136!important;text-shadow:0 1px 8px rgba(255,255,255,.55)!important}
body[data-festival] .template-option input:checked+.template-card{border-color:var(--primary)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 16%,transparent),0 12px 26px rgba(32,22,48,.10)!important}
body[data-festival] .theme-caption{background:linear-gradient(135deg,color-mix(in srgb,var(--festival-soft) 78%,#fff),color-mix(in srgb,var(--festival-soft2) 68%,#fff))!important}

@media(max-width:620px){
  body[data-festival] .page>.hero{padding:24px 20px!important;border-radius:25px!important}
  body[data-festival] .template-preview{height:92px!important}
}
