/* Transparent decorations sit around the existing website, without layout space. */
.ez-diwali { position:fixed; inset:var(--ez-diwali-header-height,120px) 0 0; z-index:45; overflow:hidden; pointer-events:none; background:none; border:0; margin:0; padding:0; }
.ez-diwali[hidden],.ez-diwali [hidden] { display:none!important; }
.ez-diwali-effects,.ez-diwali-inner { position:absolute; inset:0; pointer-events:none; }
.ez-diwali-diya { position:absolute; left:14px; bottom:20px; width:74px; height:70px; overflow:visible; filter:drop-shadow(0 0 12px #ffbb5866); }
.ez-diwali-diya-right { left:auto; right:14px; }
.ez-diwali-flame { transform-origin:50px 44px; animation:ez-diwali-glow 2.3s ease-in-out infinite; }
.ez-diwali-diya-right .ez-diwali-flame { animation-delay:-1.1s; }
.ez-diwali-firework { position:absolute; top:22%; left:2%; width:3px; height:3px; border-radius:50%; color:#f2bd4f; filter:drop-shadow(0 0 4px currentColor); }
.ez-diwali-firework-1 { left:98%; top:40%; color:#ef8a59; }
.ez-diwali-firework-2 { left:3%; top:70%; color:#efc95f; }
.ez-diwali-firework-3 { left:97%; top:80%; color:#df8eac; }
.ez-diwali-firework::before { content:""; position:absolute; left:1px; bottom:0; width:2px; height:30px; background:linear-gradient(transparent,currentColor); border-radius:50%; box-shadow:0 0 4px currentColor; animation:ez-diwali-launch 5.6s ease-out infinite; animation-delay:var(--delay); opacity:0; }
.ez-diwali-firework i { position:absolute; transform:rotate(var(--angle)); width:1px; height:1px; }
.ez-diwali-firework i::after { content:""; position:absolute; width:3px; height:13px; border-radius:50%; background:linear-gradient(#fff8dc,currentColor); box-shadow:0 0 5px currentColor; opacity:0; animation:ez-diwali-burst 5.6s ease-out infinite; animation-delay:var(--delay); }
.ez-diwali-spark { position:absolute; left:var(--x); bottom:-12px; color:#e9bd59; font:12px/1 Georgia,serif; text-shadow:0 0 5px #e7a13e88; opacity:0; animation:ez-diwali-drift 7.5s linear infinite; animation-delay:var(--delay); }
.ez-diwali[data-paused="true"] *,.ez-diwali[data-paused="true"] *::before,.ez-diwali[data-paused="true"] *::after { animation-play-state:paused!important; }
@keyframes ez-diwali-glow { 50% { transform:scale(.94,1.06); opacity:.8; } }
@keyframes ez-diwali-launch {
  0% { opacity:0; transform:translateY(105px) scaleY(.5); }
  10% { opacity:1; }
  18% { opacity:0; transform:translateY(0) scaleY(1); }
  100% { opacity:0; transform:translateY(0); }
}
@keyframes ez-diwali-burst {
  0%,18% { opacity:0; transform:translateY(0) scale(.3); }
  23% { opacity:.82; transform:translateY(-6px) scale(.9); }
  48% { opacity:0; transform:translateY(-72px) scale(.45); }
  100% { opacity:0; transform:translateY(-72px) scale(.45); }
}
@keyframes ez-diwali-drift {
  0% { opacity:0; transform:translate(0,0) rotate(0); }
  20%,65% { opacity:.65; }
  100% { opacity:0; transform:translate(var(--drift),-190px) rotate(110deg); }
}

@media(max-width:600px) {
 .ez-diwali-diya { width:43px; height:44px; left:5px; bottom:10px; }
 .ez-diwali-diya-right { left:auto; right:5px; }
 .ez-diwali-firework-2,.ez-diwali-firework-3 { display:none; }
 .ez-diwali-firework { opacity:.85; filter:drop-shadow(0 0 4px currentColor); }
}
@media(prefers-reduced-motion:reduce) {
 .ez-diwali *,.ez-diwali *::before,.ez-diwali *::after { animation:none!important; }
 .ez-diwali-effects { display:none; }
}
@media print { .ez-diwali { display:none!important; } }

/* Small festive ornaments frame the logo without replacing the brand artwork. */
.ez-festive-logo { position:relative; display:inline-block; flex-shrink:0; vertical-align:middle; isolation:isolate; }
.ez-festive-logo-art { position:absolute; inset:0; overflow:visible; pointer-events:none; }
.ez-festive-logo-arc { position:absolute; top:-7px; left:10%; width:78%; height:12px; border-top:1px solid #dba14d; border-radius:50%; opacity:.8; }
.ez-festive-logo-lights { position:absolute; top:-10px; left:13%; display:flex; justify-content:space-between; width:72%; }
.ez-festive-logo-lights i { display:block; width:5px; height:5px; border-radius:50%; background:#ffd477; box-shadow:0 0 4px 1px #ffb52e,0 0 8px 2px #ffb52e88; animation:ez-festive-logo-light 1.8s ease-in-out infinite; animation-delay:calc(var(--logo-light) * -.24s); }
.ez-festive-logo-lights i:nth-child(even) { background:#ff8d5b; box-shadow:0 0 4px 1px #ff713d,0 0 8px 2px #ff713d77; }
.ez-festive-logo-star { position:absolute; color:#e9ae46; font:15px/1 Georgia,serif; text-shadow:0 0 7px #ffcb6377; animation:ez-festive-logo-sparkle 2s ease-in-out infinite; }
.ez-festive-logo-star-one { top:-11px; left:0; }
.ez-festive-logo-star-two { top:-6px; right:-7px; font-size:10px; animation-delay:-1s; }
.ez-festive-logo .ez-festive-logo-diya { position:absolute; right:-13px; bottom:-11px; display:block; width:30px; height:30px; max-width:none; filter:drop-shadow(0 0 5px #e8a14377); animation:ez-festive-logo-diya-glow 2.6s ease-in-out infinite; }
.ez-festive-logo-flame { transform-origin:27px 29px; animation:ez-festive-logo-flicker 1.25s ease-in-out infinite; }
@keyframes ez-festive-logo-flicker { 0%,100% { transform:rotate(-2deg) scale(.96,1.04); opacity:.92; } 50% { transform:rotate(2deg) scale(1.04,.96); opacity:1; } }
@keyframes ez-festive-logo-light { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.35; transform:scale(.7); } }
@keyframes ez-festive-logo-sparkle { 0%,100% { opacity:.35; transform:scale(.75) rotate(0); } 50% { opacity:1; transform:scale(1.15) rotate(18deg); } }
@keyframes ez-festive-logo-diya-glow { 0%,100% { filter:drop-shadow(0 0 4px #e8a14366); } 50% { filter:drop-shadow(0 0 10px #ffb63cbb); } }
@media(max-width:600px) {
 .ez-festive-logo .ez-festive-logo-diya { width:25px; height:25px; right:-9px; bottom:-9px; }
 .ez-festive-logo-star-one { font-size:12px; top:-9px; }
}
@media(prefers-reduced-motion:reduce) { .ez-festive-logo-flame,.ez-festive-logo-diya,.ez-festive-logo-star,.ez-festive-logo-lights i { animation:none; } }
@media print { .ez-festive-logo-art { display:none; } }
