:root{
  --bg1: #061426;
  --bg2: #042034;
  --accent: #ffd166;
  --tree-green: #083416;
  --snow-color: rgba(255,255,255,0.9);
}

* { box-sizing: border-box; }
html,body { height:100%; margin:0; font-family: "Segoe UI", Roboto, system-ui, -apple-system, sans-serif; }

#xmas-wrap{
  position:relative;
  width:100%;
  min-height: 70vh;
  height:100vh;
  overflow:hidden;
background: linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 60%, #00121a 100%);
  color: #fff;
}

/* canvas covers entire viewport */
#snow-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:2;
}

/* stars */
#stars{
  position:absolute;
  inset:0;
  z-index:1;
  background-image: radial-gradient(circle at 10% 20%, rgba(255,255,255,0.65) 0.4px, transparent 0.6px),
                    radial-gradient(circle at 80% 30%, rgba(255,255,255,0.6) 0.6px, transparent 0.8px),
                    radial-gradient(circle at 40% 70%, rgba(255,255,255,0.55) 0.5px, transparent 0.7px);
  background-size: 100% 100%;
  opacity:0.6;
  filter: drop-shadow(0 0 6px rgba(255,255,255,0.05));
}

/* twinkle animation */
#stars::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.03), transparent 60%);
  animation: twinkle 6s infinite ease-in-out;
}
@keyframes twinkle{
  0%,100%{ opacity:0.15; transform:scale(1); }
  50%{ opacity:0.35; transform:scale(1.02); }
}

/* lights */
#lights{
  position:absolute;
  top:8vh;
  left: -5%;
  width:110%;
  height: 120px;
  z-index:6;
  pointer-events:none;
}
.light-bulb{
  position:absolute;
  width:14px;
  height:14px;
  border-radius:50%;
  transform-origin:center;
  box-shadow: 0 0 12px rgba(255,255,255,0.15);
  mix-blend-mode: screen;
}
.light-glow{
  position:absolute;
  width:30px;
  height:30px;
  border-radius:50%;
  filter: blur(8px);
  opacity:0.35;
  transform: translate(-8px,-8px);
}

/* ground & trees */
#ground{
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:22vh;
  z-index:5;
  pointer-events:none;
  background: linear-gradient(0deg, rgba(0,0,0,0.25), transparent);
  display:flex;
  align-items:flex-end;
  justify-content: center;
}

.tree{
  width:0;
  height:0;
  margin: 0 12px;
  border-left: 36px solid transparent;
  border-right: 36px solid transparent;
  border-bottom: 80px solid var(--tree-green);
  position:relative;
}
.tree::after{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-20px;
  width:12px;
  height:24px;
  background:#5b3a21;
  border-radius:2px;
}

/* ornaments/gifts */
#ornaments{
  position:absolute;
  bottom:18vh;
  left:0;
  width:100%;
  height:40vh;
  z-index:4;
  pointer-events:none;
}
.orn{
  position:absolute;
  width:36px;
  height:36px;
  border-radius:50%;
  background:linear-gradient(135deg,#ff6b6b,#ffca3a);
  box-shadow: 0 6px 12px rgba(0,0,0,0.35);
  transform-origin:center;
}

/* santa */
#santa{
  position:absolute;
  top:12vh;
  left:-25%;
  width:50%;
  max-width:520px;
  z-index:7;
  pointer-events:none;
}
.sleigh-svg { width:100%; height:auto; display:block; }

/* controls */
#xmas-controls{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:20;
  display:flex;
  gap:8px;
}
#xmas-controls button{
  background: rgba(0,0,0,0.45);
  border: 1px solid rgba(255,255,255,0.08);
  color:#fff;
  padding:8px 10px;
  border-radius:8px;
  cursor:pointer;
  backdrop-filter: blur(4px);
  font-size:14px;
}
#xmas-controls button[aria-pressed="true"]{
  box-shadow: 0 6px 18px rgba(0,0,0,0.35), 0 0 8px rgba(255,255,255,0.04) inset;
  transform: translateY(-1px);
}

.flyer2{
    display:none;
}

.festival-flyer{
    width:70%; 
    position:absolute;
    top:50%; 
    left:50%; 
    transform: translate(-50%, -50%);
}
.festival-flyer img{
    width:100%;
    opacity:.8;
}
@media (max-width:765px){ 
    
    .flyer1{
        display: none;
    }
    .flyer2{
        display:block;
    }
    .festival-flyer{
        width:79%;
        transform:translate(-50%, -70%);
    }
    
}

/* accessibility: prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  #stars::after, .light-bulb, .sleigh-svg, #snow-canvas { animation: none !important; transition: none !important; }
  #santa { transition:none; transform:none !important; left:5% !important; }
}

/* responsiveness tweaks */
@media (max-width:640px){
  #xmas-controls button { font-size:13px; padding:6px 8px; }
  .tree { border-left: 22px solid transparent; border-right: 22px solid transparent; border-bottom: 58px solid var(--tree-green); }
  .orn { width:28px; height:28px; }
}
