/* Rishit Fine Arts — festival welcome banners (home page). */
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/playfair-display-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Noto Serif Bengali";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/noto-serif-bengali-bengali-600-normal.woff2) format("woff2");unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}
.fb{--f-display:"Playfair Display",Georgia,"Times New Roman",serif;--f-body:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-bn:"Noto Serif Bengali","Noto Sans Bengali","Nirmala UI","Vrinda",serif;--f-ur:"Noto Nastaliq Urdu","Noto Naskh Arabic","Segoe UI",serif}
/* the welcome screen hosts the banner */
.rfa-site-loader.has-fest{background:#0b0807!important;cursor:pointer;display:block}
.rfa-site-loader.has-fest .fbx{position:absolute;inset:0}
.fb-enter{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:5;display:grid;justify-items:center;gap:8px;pointer-events:none;
  font:400 12px/1 "Sora",system-ui,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,236,220,.82);animation:fbHint 1s 1.8s both}
.fb-enter i{display:block;width:min(220px,50vw);height:2px;background:rgba(214,178,96,.25);overflow:hidden;position:relative}
.fb-enter i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#c79a4e,#f3d999);transform-origin:left;animation:fbBar linear both;animation-duration:inherit}
@keyframes fbHint{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes fbBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:600px){.fb-enter{font-size:10px;letter-spacing:.18em}}
/* ===== banner (shared with the website) ===== */
.fb{position:relative;overflow:hidden;container-type:size;container-name:fb;background:#0b0807;color:#f6ecdc;isolation:isolate}
.fb-cv{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
.fb-frame{position:absolute;inset:1.6cqmin;border:1px solid rgba(214,178,96,.32);z-index:1;pointer-events:none}
.fb-c{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4cqh 16cqw 6cqh;gap:1.3cqh}
.fb-medal{position:relative;width:30cqh;aspect-ratio:1;border-radius:50%;background:#fff;display:grid;place-items:center;margin-bottom:2.4cqh;
  box-shadow:0 0 0 1.1cqh #8c6a3c,0 0 0 1.35cqh #c79a52,0 1.6cqh 5cqh rgba(0,0,0,.55),0 0 9cqh rgba(var(--fb-glow),.45)}
.fb-medal img{width:94%;height:94%;object-fit:contain}
.fb-ring{position:absolute;inset:-1.35cqh;border-radius:50%;border:.35cqh solid transparent;border-top-color:rgba(255,238,190,.9);opacity:0}
.fb-eye{font:500 1.7cqh/1 var(--f-body);letter-spacing:.42em;text-transform:uppercase;color:#d6b260;padding-left:.42em}
.fb-script{font:600 5cqh/1.35 var(--f-bn);color:#f3e2c2;text-shadow:0 0 2cqh rgba(var(--fb-glow),.55)}
.fb-script[lang="ur"]{font-family:var(--f-ur);font-size:5.4cqh;line-height:1.9}
.fb-title{margin:0;font:500 7.4cqh/1.12 var(--f-display);color:#f7eddc;text-wrap:balance;max-width:72cqw}
.fb-title em{font-style:italic;background:linear-gradient(100deg,#c79a4e,#f3d999 45%,#c79a4e 70%,#f3d999);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.fb-rule{display:flex;align-items:center;gap:1.4cqh;width:34cqh;margin:.6cqh 0}
.fb-rule::before,.fb-rule::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(214,178,96,.8))}
.fb-rule::after{transform:scaleX(-1)}
.fb-rule i{width:1.1cqh;height:1.1cqh;background:#d6b260;transform:rotate(45deg)}
.fb-line{margin:0;font:300 2.25cqh/1.5 var(--f-body);letter-spacing:.04em;color:#efe4d2;max-width:62cqw}
@container fb (max-aspect-ratio: 4/5){
  .fb-c{padding:8cqh 9cqw 22cqh;gap:1.3cqh;justify-content:center}
  .fb-medal{width:54cqw;margin-bottom:3cqh;box-shadow:0 0 0 1.9cqw #8c6a3c,0 0 0 2.3cqw #c79a52,0 2cqw 7cqw rgba(0,0,0,.55),0 0 14cqw rgba(var(--fb-glow),.45)}
  .fb-ring{inset:-2.3cqw;border-width:.7cqw}
  .fb-eye{font-size:2.7cqw}
  .fb-script{font-size:7cqw}
  .fb-script[lang="ur"]{font-size:7.6cqw}
  .fb-title{font-size:8.8cqw;max-width:86cqw}
  .fb-title em{display:block}
  .fb-rule{width:44cqw}
  .fb-line{font-size:3.7cqw;max-width:78cqw}
}
.fb.is-in .fb-medal{animation:fbMedal 1.2s cubic-bezier(.2,.8,.2,1) both}
.fb.is-in .fb-ring{animation:fbRing 2.2s .5s ease-out both}
.fb.is-in .fb-eye{animation:fbUp .9s .55s both}
.fb.is-in .fb-script{animation:fbUp .9s .7s both}
.fb.is-in .fb-title{animation:fbUp 1s .85s both}
.fb.is-in .fb-title em{animation:fbShine 5s 1.6s ease-in-out infinite}
.fb.is-in .fb-rule{animation:fbRule 1s 1.05s both}
.fb.is-in .fb-line{animation:fbUp 1s 1.2s both}
@keyframes fbMedal{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@keyframes fbRing{0%{opacity:0;transform:rotate(0)}30%{opacity:1}100%{opacity:0;transform:rotate(540deg)}}
@keyframes fbUp{from{opacity:0;transform:translateY(1.6cqh)}to{opacity:1;transform:none}}
@keyframes fbRule{from{opacity:0;transform:scaleX(.2)}to{opacity:1;transform:none}}
@keyframes fbShine{0%,100%{background-position:0 0}50%{background-position:100% 0}}
/* banners with a painting from the gallery: gilt frame, slow zoom, light sweep, credit */
.fb-art{position:absolute;z-index:2;left:4cqw;top:50%;transform:translateY(-50%);margin:0;width:42cqw;height:86cqh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4cqh}
.fb-art-frame{position:relative;overflow:hidden;max-width:100%;max-height:78cqh;padding:1.3cqh;background:linear-gradient(135deg,#fbeab0,#c8922c 18%,#f6db92 38%,#a8741d 58%,#f3d27f 78%,#b8862b);
  box-shadow:0 0 0 1px rgba(92,60,8,.6),0 2.4cqh 5cqh rgba(0,0,0,.55),0 0 7cqh rgba(var(--fb-glow),.5)}
.fb-art-frame img{display:block;max-width:calc(42cqw - 2.6cqh);max-height:calc(78cqh - 2.6cqh);width:auto;height:auto;border:.8cqh solid #fffaf0;box-sizing:border-box}
.fb-art-sheen{position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,250,230,.45) 50%,transparent 65%);transform:translateX(-130%);pointer-events:none}
.fb-art figcaption{font:400 1.6cqh/1.3 var(--f-body);letter-spacing:.08em;color:#ead9b8;text-align:center}
.fb-art figcaption b{font-weight:500;color:#fff3dc}
.fb.is-in .fb-art-frame img{animation:fbZoom 18s ease-in-out infinite alternate}
.fb.is-in .fb-art-sheen{animation:fbSheen 6s 2s ease-in-out infinite}
.fb.is-in .fb-art{animation:fbArt 1.4s cubic-bezier(.2,.8,.2,1) both}
@keyframes fbZoom{from{transform:scale(1)}to{transform:scale(1.06)}}
@keyframes fbSheen{0%{transform:translateX(-130%)}40%,100%{transform:translateX(130%)}}
@keyframes fbArt{from{opacity:0;transform:translateY(-46%) scale(.96)}to{opacity:1;transform:translateY(-50%)}}
@container fb (max-aspect-ratio: 4/5){
  .fb-art{left:50%;top:4cqh;transform:translateX(-50%);width:86cqw;height:44cqh;gap:1cqh}
  .fb-art-frame{max-height:40cqh;padding:1.6cqw}
  .fb-art-frame img{max-width:calc(86cqw - 3.2cqw);max-height:calc(40cqh - 3.2cqw);border-width:1.2cqw}
  .fb-art figcaption{font-size:2.6cqw}
  .fb.has-art .fb-c{padding-top:50cqh}
  @keyframes fbArt{from{opacity:0}to{opacity:1}}
}
/* banners with a figure: figure on the left, words on the right; on phones, figure on top */
.fb-fig{position:absolute;z-index:2;left:2cqw;bottom:-2cqh;height:min(98cqh,58cqw);aspect-ratio:400/480;filter:drop-shadow(0 2cqh 4cqh rgba(0,0,0,.45))}
.fb-fig svg{width:100%;height:100%;display:block;overflow:visible}
.fb.has-fig .fb-c{left:50cqw;padding:5cqh 7cqw 5cqh 2cqw;gap:1.1cqh}
.fb.has-fig .fb-medal{width:19cqh;margin-bottom:1.4cqh}
.fb.has-fig .fb-title{font-size:min(6.6cqh,4.4cqw);max-width:44cqw}
.fb.has-fig .fb-line{max-width:42cqw}
.fb-motto{margin-top:1.6cqh;padding-top:1.6cqh;border-top:1px solid rgba(214,178,96,.35);display:grid;gap:.6cqh;max-width:52cqw}
.fb-motto b{font:500 3cqh/1.2 var(--f-display);color:#f7eddc}
.fb-motto b em{font-style:italic;color:#e9c97f}
.fb-motto span{font:300 1.7cqh/1.4 var(--f-body);letter-spacing:.06em;color:#e6d8c2}
@container fb (max-aspect-ratio: 4/5){
  .fb-fig{left:50%;transform:translateX(-50%);top:3cqh;bottom:auto;height:44cqh}
  .fb.has-fig .fb-c{left:0;padding:47cqh 8cqw 12cqh;justify-content:flex-start;gap:1cqh}
  .fb.has-fig .fb-medal{display:none}
  .fb.has-fig .fb-title{font-size:8.4cqw;max-width:86cqw}
  .fb.has-fig .fb-line{max-width:80cqw}
  .fb-motto{max-width:84cqw}
  .fb-motto b{font-size:4.6cqw} .fb-motto span{font-size:2.9cqw}
}
.fb.is-in .fb-fig{animation:fbFig 1.4s cubic-bezier(.2,.8,.2,1) both}
.fb.is-in .fb-motto{animation:fbUp 1s 1.4s both}
@keyframes fbFig{from{opacity:0;transform:translateY(4cqh) scale(.96)}to{opacity:1}}
@container fb (max-aspect-ratio: 4/5){ @keyframes fbFig{from{opacity:0}to{opacity:1}} }
.fg-flame{animation:fgFlame 1.3s ease-in-out infinite}
.fg-twinkle>*{animation:fgTw 2.4s ease-in-out infinite}
.fg-wave{animation:fgWave 4s ease-in-out infinite}
.fg-splash>*{transform-box:fill-box;transform-origin:center;animation:fgSplash 3.6s ease-in-out infinite}
.fg-kite{animation:fgKite 3.4s ease-in-out infinite}
.fg-strings{animation:fgPulse 1.2s ease-in-out infinite}
.fg-thread{stroke-dasharray:6 6;animation:fgDash 1.2s linear infinite}
.fg-coins>*{animation:fgCoin 2.8s ease-in-out infinite}
.fg-rise{animation:fgRise 6s ease-in-out infinite alternate}
.fg-shimmer>*{animation:fgTw 2.2s ease-in-out infinite}
@keyframes fgFlame{0%,100%{transform:scale(1,1)}30%{transform:scale(.94,1.08)}60%{transform:scale(1.05,.95)}}
@keyframes fgTw{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes fgWave{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes fgSplash{0%,100%{transform:scale(.85);opacity:.35}50%{transform:scale(1.12);opacity:.7}}
@keyframes fgKite{0%,100%{transform:translate(0,0) rotate(-6deg)}50%{transform:translate(6px,-10px) rotate(6deg)}}
@keyframes fgDash{to{stroke-dashoffset:-24}}
@keyframes fgCoin{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes fgRise{from{transform:translateY(26px)}to{transform:translateY(-6px)}}
.fg-spin{animation:fgSpin 60s linear infinite}
.fg-pulse{animation:fgPulse 4s ease-in-out infinite}
.fg-sway{animation:fgSway 6s ease-in-out infinite}
.fg-swing{animation:fgSwing 3s ease-in-out infinite}
.fg-blink{animation:fgBlink 7s ease-in-out infinite}
.fg-glow{animation:fgGlow 2.6s ease-in-out infinite}
.fg-float{animation:fgFloat 5s ease-in-out infinite}
.fg-tongue{animation:fgTongue 4s ease-in-out infinite}
@keyframes fgSpin{to{transform:rotate(360deg)}}
@keyframes fgPulse{0%,100%{opacity:.75}50%{opacity:1}}
@keyframes fgSway{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg)}}
@keyframes fgSwing{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes fgBlink{0%,46%,50%,100%{transform:scaleY(1)}48%{transform:scaleY(.12)}}
@keyframes fgGlow{0%,100%{fill:#14100e}50%{fill:#c8141e}}
@keyframes fgFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes fgTongue{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.05)}}
@media (prefers-reduced-motion:reduce){.fb.is-in *,.fb [class^="fg-"]{animation:none!important}}

.fg-smoke{animation:fgSmoke 5s ease-in-out infinite}
.fg-dance{animation:fgDance 2.6s ease-in-out infinite}
.fg-arm{animation:fgArm 2.6s ease-in-out infinite}
.fg-dhak{animation:fgBeat .5s ease-in-out infinite}
.fg-stick{animation:fgStick .5s ease-in-out infinite}
.fg-plume{animation:fgSway 2s ease-in-out infinite}
.fg-twinkle-one{animation:fgTw 2.6s ease-in-out infinite}
.fg-burst{animation:fgBurst 2.8s ease-out infinite}
.fg-lightarm{animation:fgLight 3.2s ease-in-out infinite}
.fg-girl{animation:fgBreath 3.6s ease-in-out infinite}
.fg-kite2{animation:fgKite 3s ease-in-out infinite}
.fg-tug{animation:fgTug 1.6s ease-in-out infinite}
.fg-spool{animation:fgSpin 2s linear infinite}
.fg-string{stroke-dasharray:4 5;animation:fgDash 1.4s linear infinite}
@keyframes fgSmoke{0%{transform:translate(0,8px);opacity:.2}50%{opacity:1}100%{transform:translate(-6px,-14px);opacity:.25}}
@keyframes fgDance{0%,100%{transform:rotate(-2.2deg)}50%{transform:rotate(2.2deg)}}
@keyframes fgArm{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(12deg)}}
@keyframes fgBeat{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}
@keyframes fgStick{0%,100%{transform:rotate(0)}50%{transform:rotate(-16deg)}}
@keyframes fgBurst{0%{transform:scale(.2);opacity:0}25%{opacity:1}100%{transform:scale(1.15);opacity:0}}
@keyframes fgLight{0%,100%{transform:rotate(0)}50%{transform:rotate(-5deg)}}
@keyframes fgBreath{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.012)}}
@keyframes fgTug{0%,100%{transform:rotate(0)}50%{transform:rotate(-12deg)}}
.fg-balloon{animation:fgFloatUp 5s ease-in-out infinite}
.fg-beat{animation:fgBeat .5s ease-in-out infinite}
.fg-breath{animation:fgBreath 4s ease-in-out infinite}
.fg-draw{stroke-dasharray:600;animation:fgDrawLine 6s ease-in-out infinite}
.fg-fall{transform-box:fill-box;transform-origin:center;animation:fgFall 7s linear infinite}
.fg-gull{animation:fgGull 9s ease-in-out infinite}
.fg-hop{animation:fgHop 1.4s ease-in-out infinite}
.fg-march{animation:fgHop .9s ease-in-out infinite}
.fg-notes>*{animation:fgNote 3s ease-in-out infinite}
.fg-notes>*:nth-child(2){animation-delay:1s}.fg-notes>*:nth-child(3){animation-delay:2s}
.fg-pull{animation:fgPull 2.4s ease-in-out infinite}
.fg-snow>*{animation:fgSnow 8s linear infinite}
.fg-sound>*{animation:fgTw 1.6s ease-in-out infinite}
.fg-splash1{animation:fgSplash 3.6s ease-in-out infinite}
.fg-spray{animation:fgDash .8s linear infinite}
.fg-steps>*{animation:fgTw 3.2s ease-in-out infinite}
.fg-steps>*:nth-child(2){animation-delay:.8s}.fg-steps>*:nth-child(3){animation-delay:1.6s}.fg-steps>*:nth-child(4){animation-delay:2.4s}
.fg-throw{animation:fgThrow 2.2s ease-out infinite}
@keyframes fgFloatUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes fgDrawLine{0%{stroke-dashoffset:600}60%,100%{stroke-dashoffset:0}}
@keyframes fgFall{0%{transform:translate(0,-20px) rotate(0);opacity:0}10%{opacity:1}100%{transform:translate(20px,260px) rotate(300deg);opacity:0}}
@keyframes fgGull{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,-8px)}}
@keyframes fgHop{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes fgNote{0%{transform:translateY(8px);opacity:0}30%{opacity:1}100%{transform:translateY(-24px);opacity:0}}
@keyframes fgPull{0%,100%{transform:translateX(0) rotate(0)}50%{transform:translateX(-6px) rotate(-3deg)}}
@keyframes fgSnow{0%{transform:translateY(-30px);opacity:0}15%{opacity:1}100%{transform:translateY(140px);opacity:0}}
@keyframes fgThrow{0%{transform:translate(0,0) scale(.6);opacity:0}30%{opacity:1}100%{transform:translate(-40px,-30px) scale(1.4);opacity:0}}

.fg-aarti{animation:fgAarti 3s ease-in-out infinite}
.fg-fanout{animation:fgFan 4s ease-in-out infinite}
@keyframes fgAarti{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}
@keyframes fgFan{0%,100%{transform:scale(.94)}50%{transform:scale(1.04)}}
