/* V315 — visible festival atmosphere. Full-page decorative layer; never captures input. */
.ct-festival-atmosphere{position:fixed!important;inset:0!important;width:100vw;height:100vh;z-index:2147483000;pointer-events:none!important;overflow:hidden!important;display:block!important;opacity:1!important;contain:strict!important}
.ct-festival-atmosphere:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.08),transparent 34%);pointer-events:none}
.ct-fa-particle{position:absolute!important;left:var(--x);top:var(--y);display:flex!important;align-items:center;justify-content:center;width:28px;height:28px;font-size:22px;line-height:1;pointer-events:none!important;will-change:transform,opacity;animation-duration:var(--d);animation-delay:var(--delay);animation-iteration-count:infinite;animation-timing-function:ease-in-out;filter:drop-shadow(0 3px 8px rgba(0,0,0,.25));}
.ct-fa-diya{font-size:28px;animation-name:ct315Diya}.ct-fa-diya:after{content:"";position:absolute;width:9px;height:15px;border-radius:60% 40% 60% 40%;background:#fff4a8;box-shadow:0 0 18px 7px #ff9d24;top:-3px;left:10px;animation:ct315Flame .45s infinite alternate}
.ct-fa-powder{font-size:30px;animation-name:ct315Powder;text-shadow:0 0 16px currentColor}.ct-fa-powder:nth-child(4n){color:#ff3b8d}.ct-fa-powder:nth-child(4n+1){color:#18d6a0}.ct-fa-powder:nth-child(4n+2){color:#ffd21c}.ct-fa-powder:nth-child(4n+3){color:#6b6cff}
.ct-fa-splash{width:12px;height:12px;border-radius:50%;background:currentColor;box-shadow:16px -11px 0 currentColor,-14px 9px 0 currentColor,23px 12px 0 currentColor;animation-name:ct315Splash}
.ct-fa-garba{font-size:26px;animation-name:ct315Orbit}.ct-fa-spark{font-size:24px;color:#ffd45a;text-shadow:0 0 14px #ff9b21;animation-name:ct315Spark}.ct-fa-ribbon{font-size:25px;animation-name:ct315Ribbon}.ct-fa-feather{font-size:29px;animation-name:ct315Feather}.ct-fa-petal,.ct-fa-flower{font-size:25px;animation-name:ct315Petal}.ct-fa-lantern{font-size:30px;animation-name:ct315Lantern}.ct-fa-snow{font-size:24px;color:#fff;text-shadow:0 0 10px #fff;animation-name:ct315Snow;animation-timing-function:linear}.ct-fa-firework{font-size:26px;color:#ffd54f;text-shadow:0 0 16px #ffd54f;animation-name:ct315Firework}.ct-fa-confetti{font-size:25px;animation-name:ct315Confetti}.ct-fa-heart{font-size:27px;color:#ff4f87;text-shadow:0 0 16px #ff4f87;animation-name:ct315Heart}.ct-fa-tricolor{font-size:25px;animation-name:ct315Float}.ct-fa-kite{font-size:29px;animation-name:ct315Kite}.ct-fa-rain{font-size:26px;color:#5fcfff;text-shadow:0 0 10px #5fcfff;animation-name:ct315Rain;animation-timing-function:linear}
.ct-fa-diwali:after{content:"";position:absolute;left:0;right:0;top:9%;height:5px;background:repeating-linear-gradient(90deg,#ffd45c 0 8px,transparent 8px 42px);box-shadow:0 0 14px #ffad28;opacity:.8;animation:ct315Lights 1s infinite alternate}
.ct-fa-holi:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 25%,rgba(255,0,128,.18),transparent 17%),radial-gradient(circle at 82% 30%,rgba(0,220,170,.2),transparent 18%),radial-gradient(circle at 55% 75%,rgba(255,205,0,.16),transparent 18%);animation:ct315Wash 3s ease-in-out infinite}
.ct-fa-christmas:after{content:"";position:absolute;left:0;right:0;top:7%;height:5px;background:repeating-linear-gradient(90deg,#e44 0 8px,#fff 8px 16px,#2d8b57 16px 24px);box-shadow:0 0 15px rgba(255,255,255,.7)}
.ct-fa-newyear:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 25%,rgba(255,80,80,.2),transparent 12%),radial-gradient(circle at 75% 35%,rgba(80,180,255,.2),transparent 12%),radial-gradient(circle at 50% 65%,rgba(255,220,80,.2),transparent 12%);animation:ct315Wash 2s infinite}
.ct-fa-subtle .ct-fa-particle{opacity:.45}.ct-fa-reduced .ct-fa-particle{animation:none!important}.ct-fa-mobile-off .ct-festival-atmosphere{display:none!important}@media(min-width:768px){.ct-fa-desktop-off .ct-festival-atmosphere{display:none!important}}
@media(max-width:767px){.ct-fa-particle{font-size:18px;width:22px;height:22px}.ct-fa-diya{font-size:23px}.ct-fa-powder{font-size:24px}.ct-fa-diwali:after{top:8%}}
@keyframes ct315Flame{to{transform:translateY(-5px) scale(.72) rotate(-10deg);opacity:.55}}@keyframes ct315Diya{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-18px) rotate(5deg)}}@keyframes ct315Lights{to{opacity:1;filter:brightness(1.7)}}@keyframes ct315Powder{0%{transform:translate(-60px,45px) scale(.2);opacity:0}18%{opacity:1}70%{transform:translate(90px,-70px) scale(1.5);opacity:.9}100%{transform:translate(180px,30px) scale(.15);opacity:0}}@keyframes ct315Splash{50%{transform:translate(30px,-30px) scale(1.7);opacity:.3}}@keyframes ct315Orbit{50%{transform:translate(38px,-32px) rotate(180deg) scale(1.4);opacity:.25}}@keyframes ct315Spark{50%{transform:scale(2.8) rotate(45deg);opacity:.25}}@keyframes ct315Ribbon{50%{transform:translate(55px,30px) rotate(20deg);opacity:.25}}@keyframes ct315Feather{50%{transform:translate(28px,-40px) rotate(35deg)}}@keyframes ct315Petal{50%{transform:translate(30px,45px) rotate(180deg);opacity:.25}}@keyframes ct315Lantern{50%{transform:translateY(-30px) scale(1.15);filter:brightness(1.45)}}@keyframes ct315Snow{to{transform:translate(45px,115vh) rotate(300deg);opacity:.1}}@keyframes ct315Firework{0%{transform:scale(.2);opacity:0}35%{transform:scale(1.3);opacity:1}100%{transform:scale(5);opacity:0}}@keyframes ct315Confetti{50%{transform:translate(35px,75px) rotate(260deg);opacity:.25}}@keyframes ct315Heart{50%{transform:translateY(-45px) scale(1.35);opacity:.2}}@keyframes ct315Float{50%{transform:translate(35px,-30px) rotate(25deg);opacity:.25}}@keyframes ct315Kite{50%{transform:translate(50px,-60px) rotate(120deg)}}@keyframes ct315Rain{to{transform:translate(-35px,115vh);opacity:0}}@keyframes ct315Wash{50%{transform:scale(1.08);opacity:1}}
/* V316 scope hardening: never show Diwali assets outside the Diwali recipe. */
.ct-festival-atmosphere:not(.ct-fa-diwali) .ct-fa-diya{display:none!important}
.ct-festival-atmosphere:not(.ct-fa-holi) .ct-fa-powder{display:none!important}
.ct-festival-atmosphere:not(.ct-fa-christmas) .ct-fa-snow{display:none!important}
.ct-festival-atmosphere:not(.ct-fa-newyear) .ct-fa-firework{display:none!important}
.ct-festival-atmosphere:not(.ct-fa-valentines) .ct-fa-heart{display:none!important}
.ct-festival-atmosphere:not(.ct-fa-patriotic):not(.ct-fa-independence):not(.ct-fa-republic_day) .ct-fa-tricolor{display:none!important}
.ct-fa-wedding .ct-fa-petal{font-size:27px;color:#f3a4b8;text-shadow:0 0 14px #f0a0b7}
.ct-fa-patriotic .ct-fa-tricolor{font-size:24px}
.ct-fa-summer .ct-fa-sun{font-size:30px;color:#ffd45a;text-shadow:0 0 20px #ff9f1c;animation:ct316Sun 3s ease-in-out infinite}
@keyframes ct316Sun{50%{transform:translate(28px,-35px) rotate(180deg) scale(1.25);opacity:.35}}
