/* Diwali theme: diya lights, warm glow, fireworks canvas. Only exists while body.diwali is set (24 h, server controlled). */
#dw-fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2147483000;display:block}
#dw-lights{display:none}
body.diwali #dw-lights{display:block;position:fixed;left:0;right:0;top:0;z-index:2147482000;pointer-events:none;padding-top:env(safe-area-inset-top,0px)}
body.diwali #dw-glow{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60% 40% at 8% 100%,rgba(255,150,40,.20),transparent 70%),radial-gradient(60% 40% at 92% 100%,rgba(255,90,60,.16),transparent 70%),radial-gradient(70% 30% at 50% 0%,rgba(255,200,90,.10),transparent 70%)}
#dw-glow{display:none}
body.diwali #dw-glow{display:block}

/* string of diyas hanging from the top */
.dw-wire{position:relative;height:46px}
.dw-wire svg{position:absolute;left:0;top:0;width:100%;height:30px;overflow:visible}
.dw-wire path{fill:none;stroke:rgba(255,200,110,.55);stroke-width:1.2}
.dw-d{position:absolute;top:0;transform-origin:50% 0;font-size:22px;line-height:1;
  animation:dwSway 3.4s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(255,170,50,.9)) drop-shadow(0 0 14px rgba(255,120,20,.55))}
.dw-d::before{content:"";position:absolute;left:50%;top:-14px;width:1px;height:14px;background:rgba(255,200,110,.5)}
.dw-d i{font-style:normal;display:block;animation:dwFlick 1.3s ease-in-out infinite}
@keyframes dwSway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes dwFlick{0%,100%{opacity:1;filter:brightness(1.15)}25%{opacity:.86;filter:brightness(.95)}50%{opacity:1;filter:brightness(1.3)}75%{opacity:.9;filter:brightness(1)}}
.dw-bulb{position:absolute;top:0;width:7px;height:7px;border-radius:50%;animation:dwTw 1.6s ease-in-out infinite}
@keyframes dwTw{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

/* the offer banner gets a festive glow */
body.diwali .offer.dwoffer{border-color:rgba(255,200,90,.75);background:linear-gradient(135deg,rgba(255,170,40,.30),rgba(255,70,60,.26));box-shadow:0 0 0 1px rgba(255,200,90,.15),0 8px 30px -8px rgba(255,140,30,.55);position:relative;overflow:hidden}
body.diwali .offer.dwoffer::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-120%);animation:dwShine 3.2s ease-in-out infinite}
@keyframes dwShine{0%{transform:translateX(-120%)}60%,100%{transform:translateX(120%)}}
body.diwali .offer.dwoffer b::before{content:"🪔 "}
body.diwali .offtag.dwtag{background:linear-gradient(135deg,#ffd45a,#ff9a3c);color:#2a1200;box-shadow:0 0 10px rgba(255,170,50,.65)}
@media (prefers-reduced-motion:reduce){.dw-d,.dw-d i,.dw-bulb,.offer.dwoffer::after{animation:none!important}}
