/* Festival theme: banner, jhandiyan, balloon, chitra, toran, kone ki sajawat, halka rang, emoji effect. Print me kuch nahi dikhta. */
.fest-banner{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 30%,rgba(255,255,255,.22),transparent 42%),linear-gradient(100deg,var(--fest-a),var(--fest-b));color:#fff;font-family:Poppins,Arial,sans-serif;box-shadow:inset 0 -2px 0 rgba(255,255,255,.35);animation:festIn .5s ease}
.fest-bunting{position:absolute;top:0;left:0;right:0;height:12px;background-size:105px 12px!important;z-index:2;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='20'%3E%3Cpath d='M0 1h150' stroke='%23fff' stroke-width='1.5'/%3E%3Cpath d='M2 1h22L13 18z' fill='%23f43f5e'/%3E%3Cpath d='M27 1h22L38 18z' fill='%23facc15'/%3E%3Cpath d='M52 1h22L63 18z' fill='%2338bdf8'/%3E%3Cpath d='M77 1h22L88 18z' fill='%23a78bfa'/%3E%3Cpath d='M102 1h22l-11 17z' fill='%2334d399'/%3E%3Cpath d='M127 1h22l-11 17z' fill='%23fb923c'/%3E%3C/svg%3E") repeat-x top left}
.fest-bg{position:absolute;left:-20px;top:50%;width:160px;height:160px;margin-top:-80px;opacity:.14;pointer-events:none;animation:festSpin 60s linear infinite}
.fest-sky{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.fest-balloon{position:absolute;bottom:-50px;width:18px;height:23px;border-radius:50% 50% 48% 48%;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.75),transparent 34%),var(--c);box-shadow:inset -3px -4px 6px rgba(0,0,0,.18);animation:festLift linear infinite}
.fest-balloon::before{content:'';position:absolute;left:50%;bottom:-4px;margin-left:-3px;border:3px solid transparent;border-bottom:5px solid var(--c)}
.fest-balloon::after{content:'';position:absolute;left:50%;top:100%;width:1px;height:16px;margin-top:3px;background:rgba(255,255,255,.75)}
.fest-star{position:absolute;width:12px;height:12px;background:#fde68a;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:festTwinkle ease-in-out infinite}
.fest-row{position:relative;z-index:3;display:flex;align-items:center;gap:12px;padding:13px 46px 4px 16px;min-height:60px}
.fest-art{width:44px;height:44px;flex:none;background:#fff;border-radius:50%;padding:4px;border:2px solid #fde68a;box-shadow:0 3px 12px rgba(0,0,0,.3);animation:festPulse 2.4s ease-in-out infinite}
.fest-text{min-width:0;line-height:1.25;flex:1;max-width:760px}
.fest-text b{display:block;font-size:16px;font-weight:700;color:#fffbeb;text-shadow:0 2px 3px rgba(0,0,0,.4)}
.fest-text span{display:inline;font-size:13px;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.fest-text .fest-chip{display:inline-block;margin:0 6px 0 0;padding:0 9px;border-radius:99px;background:#fde68a;color:#78350f;font-size:11.5px;font-weight:700;text-shadow:none}
.fest-fade{animation:festIn .4s ease}
.fest-lights{position:absolute;left:0;right:0;height:30px;overflow:hidden;pointer-events:none;z-index:2}
.fest-lights span{position:absolute;inset:0;background-repeat:repeat-x}
.fest-lights .on1{animation:festBlink 1.1s ease-in-out infinite alternate}
.fest-lights .on2{animation:festBlink 1.1s ease-in-out infinite alternate-reverse}
.fest-lights.under{top:100%}
.fest-lights.pagetop{position:fixed;top:0;z-index:19}
.fest-lights.top{top:0;border-radius:inherit}
.fest-scene{display:flex;align-items:center;gap:10px;margin-left:auto;flex:none}
.fest-scene img{width:42px;height:42px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.35));animation:festFloat 3.2s ease-in-out infinite}
.fest-scene img:nth-child(2){width:48px;height:48px;animation-delay:.5s}
.fest-scene img:nth-child(3){animation-delay:1s}
.fest-x{position:absolute;top:14px;right:10px;z-index:4;width:26px;height:26px;border:0;border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font-size:17px;line-height:1;cursor:pointer}
.fest-x:hover,.fest-x:focus-visible{background:rgba(0,0,0,.6)}
.fest-toran{position:relative;z-index:3;display:flex;justify-content:space-around;gap:6px;overflow:hidden;white-space:nowrap;padding:0 0 1px;background:rgba(0,0,0,.2);font-size:12px;line-height:1.3}
.fest-toran i{font-style:normal;animation:festSwing 2.6s ease-in-out infinite alternate;transform-origin:50% 0}
.fest-toran i:nth-child(even){animation-delay:.5s}
html.fest-on .topbar{border-bottom:3px solid var(--fest-a)}
html.fest-on .content{background-image:linear-gradient(180deg,var(--fest-tint),transparent 320px)}
html.fest-on .sidebar{border-right-color:var(--fest-a)}
.fest-corner{position:fixed;bottom:-18px;width:150px;height:150px;opacity:.2;pointer-events:none;z-index:1}
.fest-corner.l{left:calc(var(--side,0px) - 18px)}
.fest-corner.r{right:-18px;transform:scaleX(-1)}
.fest-fall{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:20}
.fest-fall i{position:absolute;font-style:normal;opacity:.9;animation-timing-function:linear;animation-fill-mode:forwards}
.fest-fall.fall i{top:-40px;animation-name:festFall}
.fest-fall.rise i{bottom:-40px;animation-name:festRise}
.fest-fall.burst i{opacity:0;animation-name:festBurst;animation-timing-function:ease-out}
@keyframes festBlink{from{opacity:0}to{opacity:1}}
@keyframes festIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes festPulse{50%{transform:scale(1.07)}}
@keyframes festFloat{50%{transform:translateY(-3px) rotate(3deg)}}
@keyframes festSpin{to{transform:rotate(360deg)}}
@keyframes festLift{from{transform:translateY(0)}to{transform:translateY(-170px)}}
@keyframes festTwinkle{50%{opacity:.15;transform:scale(.5)}}
@keyframes festSwing{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}
@keyframes festFall{to{transform:translateY(calc(100vh + 80px)) rotate(300deg);opacity:.25}}
@keyframes festRise{to{transform:translateY(calc(-100vh - 80px)) rotate(-40deg);opacity:.2}}
@keyframes festBurst{0%{opacity:0;transform:scale(.2)}35%{opacity:1;transform:scale(2.2)}100%{opacity:0;transform:scale(3)}}
@media (max-width:1180px){.fest-scene img:nth-child(3){display:none}}
@media (max-width:1100px){.fest-corner{display:none}}
@media (max-width:760px){.fest-scene{display:none}}
@media (max-width:600px){.fest-row{gap:8px;padding:12px 38px 3px 8px;min-height:52px}.fest-art{width:36px;height:36px;padding:3px}.fest-text b{font-size:14px}.fest-text span{font-size:11.5px}.fest-bg{width:110px;height:110px;margin-top:-55px}.fest-x{top:12px;right:6px}}
@media (prefers-reduced-motion:reduce){.fest-banner,.fest-art,.fest-toran i,.fest-fade,.fest-scene img,.fest-bg,.fest-balloon,.fest-star,.fest-lights span{animation:none}.fest-balloon{bottom:10px}.fest-fall{display:none}}
@media print{.fest-banner,.fest-fall,.fest-corner,.fest-lights{display:none!important}html.fest-on .topbar{border-bottom:0}html.fest-on .content{background-image:none}}
