/* ============ Imman Quran — Animations & FX ============ */

/* ---- Reveal on scroll ---- */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.left{transform:translateX(-50px)}
.reveal.right{transform:translateX(50px)}
.reveal.left.in,.reveal.right.in{transform:none}
.reveal.zoom{transform:scale(.92)}
.reveal.zoom.in{transform:scale(1)}
.reveal-stagger > *{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}
.reveal-stagger.in > *{opacity:1;transform:none}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s}
.reveal-stagger.in > *:nth-child(2){transition-delay:.18s}
.reveal-stagger.in > *:nth-child(3){transition-delay:.32s}
.reveal-stagger.in > *:nth-child(4){transition-delay:.46s}
.reveal-stagger.in > *:nth-child(5){transition-delay:.6s}
.reveal-stagger.in > *:nth-child(6){transition-delay:.74s}

/* ---- Decorative shapes ---- */
.shape{position:absolute;pointer-events:none;opacity:.35;will-change:transform;z-index:1}
.shape.float-slow{animation:floatY 9s ease-in-out infinite}
.shape.float-fast{animation:floatY 5s ease-in-out infinite}
.shape.spin-slow{animation:spin 22s linear infinite}
.shape.spin-rev{animation:spin 30s linear infinite reverse}
.shape.pulse{animation:pulse 4s ease-in-out infinite}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-22px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.35}50%{transform:scale(1.08);opacity:.55}}

/* SVG arabesque shape utility */
.arabesque{
  width:120px;height:120px;
  background:no-repeat center/contain
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='none' stroke='%23FFD050' stroke-width='1.4'><polygon points='50,5 61,39 95,39 67,59 78,93 50,73 22,93 33,59 5,39 39,39'/><circle cx='50' cy='50' r='28'/><circle cx='50' cy='50' r='14'/></g></svg>");
}
.crescent{
  width:80px;height:80px;
  background:no-repeat center/contain
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><path d='M44 8 a26 26 0 1 0 0 48 a20 20 0 1 1 0 -48z' fill='%23FFD050' opacity='.85'/></svg>");
}
.dome{
  width:140px;height:140px;
  background:no-repeat center/contain
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'><g fill='none' stroke='%23FFD050' stroke-width='1.2' opacity='.9'><path d='M60 12 Q92 30 92 70 H28 Q28 30 60 12z'/><path d='M60 18 Q84 34 84 70 H36 Q36 34 60 18z'/><line x1='60' y1='4' x2='60' y2='14'/><circle cx='60' cy='4' r='2.5' fill='%23FFD050'/></g></svg>");
}
.dot-grid{
  width:120px;height:120px;
  background-image:radial-gradient(rgba(255,208,80,.6) 1.6px,transparent 1.6px);
  background-size:14px 14px
}

/* ---- Hero overhauled ---- */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse at 75% 25%,rgba(255,208,80,.25),transparent 55%),
    radial-gradient(ellipse at 0% 100%,rgba(28,142,90,.55),transparent 60%),
    linear-gradient(135deg,#08221a 0%,#0f3024 55%,#1C8E5A 100%);
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    repeating-linear-gradient(45deg,rgba(255,255,255,.025) 0 2px,transparent 2px 16px),
    radial-gradient(circle at center,transparent 60%,rgba(0,0,0,.35));
  pointer-events:none
}
.hero .container{position:relative;z-index:3}
.hero h1{
  background:linear-gradient(120deg,#fff 0%,#fff 50%,#ffd050 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero-arabic{
  display:block;font-family:var(--font-display);color:rgba(255,208,80,.85);
  font-size:1.4rem;margin-bottom:.7rem;letter-spacing:.05em;
  opacity:0;animation:fadeDown 1s .2s forwards
}
@keyframes fadeDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.hero .eyebrow,.hero h1,.hero p,.hero .cta-row{animation:rise 1s .4s both}
.hero .cta-row{animation-delay:.7s}
.hero p{animation-delay:.55s}
.hero h1{animation-delay:.4s}
.hero .eyebrow{animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

.hero-card{
  animation:floatCard 6s ease-in-out infinite, fadeInRight 1s .5s both;
  position:relative;
}
@keyframes floatCard{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
.hero-card::after{
  content:"";position:absolute;inset:-2px;border-radius:22px;
  background:linear-gradient(135deg,var(--gold),transparent 40%,var(--green) 100%);
  z-index:-1;filter:blur(14px);opacity:.5;
}

/* ---- Bismillah ribbon ---- */
.bismillah-ribbon{
  background:linear-gradient(90deg,#fff7e0 0%,#fffaee 50%,#fff7e0 100%);
  border-top:1px solid rgba(255,208,80,.5);border-bottom:1px solid rgba(255,208,80,.5);
  padding:1.6rem 0;text-align:center;position:relative;overflow:hidden
}
.bismillah-ribbon::before,.bismillah-ribbon::after{
  content:"";position:absolute;top:50%;width:120px;height:60px;transform:translateY(-50%);
  background:no-repeat center/contain
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 40'><g fill='none' stroke='%23FFD050' stroke-width='1.3'><path d='M2 20 Q30 2 60 20 T118 20'/><path d='M2 20 Q30 38 60 20 T118 20'/><circle cx='60' cy='20' r='3' fill='%23FFD050'/></g></svg>")
}
.bismillah-ribbon::before{left:0}
.bismillah-ribbon::after{right:0;transform:translateY(-50%) scaleX(-1)}
.bismillah-ribbon h3{
  font-family:var(--font-display);color:var(--green-dark);font-size:1.7rem;margin:0
}
.bismillah-ribbon p{color:var(--muted);margin:.3rem 0 0;font-size:.95rem}

/* ---- Marquee ---- */
.marquee{
  background:var(--dark);color:var(--gold);padding:1rem 0;overflow:hidden;
  border-top:3px solid var(--green);border-bottom:3px solid var(--green);
}
.marquee-track{display:flex;gap:3rem;white-space:nowrap;animation:scrollX 28s linear infinite;font-family:var(--font-display);font-size:1.3rem}
.marquee-track span{display:inline-flex;align-items:center;gap:1rem}
.marquee-track span::after{content:"\2756";color:var(--green);margin-left:3rem}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes scrollX{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---- Prayer times widget ---- */
.prayer-section{
  background:
    linear-gradient(rgba(15,48,36,.92),rgba(8,34,26,.95)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'><g fill='none' stroke='%23FFD050' stroke-width='.6' opacity='.4'><polygon points='80,10 100,60 150,60 110,90 125,140 80,110 35,140 50,90 10,60 60,60'/></g></svg>");
  color:#fff;padding:5rem 0
}
.prayer-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-top:2rem}
.prayer{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,208,80,.25);
  border-radius:16px;padding:1.5rem 1rem;text-align:center;
  transition:.35s;backdrop-filter:blur(6px);position:relative;overflow:hidden
}
.prayer::before{
  content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;
  background:radial-gradient(circle,rgba(255,208,80,.18),transparent 40%);
  opacity:0;transition:.4s
}
.prayer:hover{transform:translateY(-8px);border-color:var(--gold);background:rgba(255,208,80,.1)}
.prayer:hover::before{opacity:1}
.prayer .icon{font-size:1.6rem;color:var(--gold);margin-bottom:.6rem;display:block}
.prayer h4{font-family:var(--font-body);font-weight:600;color:#fff;margin:.3rem 0;font-size:1rem}
.prayer .time{font-family:var(--font-display);color:var(--gold);font-size:1.5rem}
.prayer.active{background:linear-gradient(135deg,var(--gold),#ffb800);border-color:transparent}
.prayer.active .icon,.prayer.active h4,.prayer.active .time{color:var(--dark)}
.prayer.active{animation:glow 2.4s ease-in-out infinite}
@keyframes glow{0%,100%{box-shadow:0 0 0 0 rgba(255,208,80,.6)}50%{box-shadow:0 0 0 14px rgba(255,208,80,0)}}

/* ---- Wave divider ---- */
.wave-divider{display:block;width:100%;height:80px}
.wave-top{margin-bottom:-1px}
.wave-bottom{margin-top:-1px;transform:rotate(180deg)}

/* ---- Course card tilt hover ---- */
.tilt-card{
  position:relative;
  transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s;
  animation:tiltFloat 7s ease-in-out infinite;
  will-change:transform
}
.tilt-card:hover{transform:perspective(900px) rotateX(2deg) rotateY(-3deg) translateY(-8px);box-shadow:0 30px 50px -20px rgba(20,40,30,.25)}

/* Glowing aurora ring behind the image */
.tilt-card::before{
  content:"";position:absolute;inset:-30px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle at 30% 30%,rgba(219,158,48,.55),transparent 55%),
             radial-gradient(circle at 70% 70%,rgba(28,142,90,.55),transparent 55%);
  filter:blur(40px);opacity:.85;
  animation:auroraPulse 6s ease-in-out infinite
}

/* Hero image — feathered edges + slow ken-burns zoom */
.tilt-card > img{
  width:100%;height:auto;display:block;
  border-radius:24px;
  -webkit-mask-image:radial-gradient(ellipse 95% 95% at center,#000 55%,rgba(0,0,0,.85) 72%,transparent 100%);
          mask-image:radial-gradient(ellipse 95% 95% at center,#000 55%,rgba(0,0,0,.85) 72%,transparent 100%);
  -webkit-mask-mode:alpha;mask-mode:alpha;
  animation:kenBurns 14s ease-in-out infinite alternate;
  transition:filter .4s
}
.tilt-card:hover > img{filter:saturate(1.15) contrast(1.05)}

/* Floating sparkles around the image */
.tilt-card::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:24px;
  background:
    radial-gradient(2px 2px at 12% 18%,rgba(255,235,180,.9),transparent 60%),
    radial-gradient(1.5px 1.5px at 85% 28%,rgba(255,235,180,.8),transparent 60%),
    radial-gradient(2.5px 2.5px at 22% 78%,rgba(255,235,180,.9),transparent 60%),
    radial-gradient(1.5px 1.5px at 78% 82%,rgba(255,235,180,.8),transparent 60%),
    radial-gradient(2px 2px at 50% 8%,rgba(255,235,180,.85),transparent 60%);
  animation:sparkleFade 4s ease-in-out infinite
}

@keyframes tiltFloat{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-14px) rotate(.4deg)}
}
@keyframes auroraPulse{
  0%,100%{transform:scale(1) rotate(0deg);opacity:.7}
  50%{transform:scale(1.08) rotate(8deg);opacity:1}
}
@keyframes kenBurns{
  0%{transform:scale(1) translate(0,0)}
  100%{transform:scale(1.08) translate(-1.5%,1%)}
}
@keyframes sparkleFade{
  0%,100%{opacity:.4}
  50%{opacity:1}
}

.card .thumb{position:relative}
.card .thumb::after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.45));opacity:0;transition:.35s
}
.card:hover .thumb::after{opacity:1}
.card .play-tag{
  position:absolute;left:1rem;bottom:1rem;color:#fff;font-size:.85rem;font-weight:600;
  display:flex;align-items:center;gap:.4rem;opacity:0;transform:translateY(10px);transition:.35s;z-index:2
}
.card:hover .play-tag{opacity:1;transform:none}
.card .play-tag i{width:30px;height:30px;border-radius:50%;background:var(--gold);color:var(--dark);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem}

/* ---- Feature icon spinning ring ---- */
.feature .icon{position:relative}
.feature .icon::after{
  content:"";position:absolute;inset:-8px;border:1.5px dashed var(--green);border-radius:50%;
  opacity:0;transition:.4s;animation:spin 14s linear infinite
}
.feature:hover .icon::after{opacity:.55;inset:-12px}

/* ---- Stats with gradient gold numbers ---- */
.stats .n{
  background:linear-gradient(135deg,#FFE282 0%,#FFD050 50%,#FFA500 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-size:3.4rem
}
.stat{position:relative;padding:1.5rem 1rem;border-radius:16px;transition:.35s}
.stat:hover{background:rgba(255,255,255,.04);transform:translateY(-6px)}
.stat .icon-bg{
  position:absolute;top:8px;right:14px;font-size:3rem;color:rgba(255,208,80,.08);
  font-family:var(--font-display)
}

/* ---- Testimonials carousel ---- */
.carousel{position:relative;overflow:hidden;padding:1rem 0}
.carousel-track{display:flex;gap:1.6rem;transition:transform .6s cubic-bezier(.4,.0,.2,1);will-change:transform}
.carousel-track > .t-card{flex:0 0 calc(33.333% - 1.07rem);min-width:0}
@media (max-width:992px){.carousel-track > .t-card{flex:0 0 calc(50% - .8rem)}}
@media (max-width:600px){.carousel-track > .t-card{flex:0 0 100%}}

.t-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:2rem 1.8rem;color:var(--dark);position:relative;
  display:flex;flex-direction:column;gap:1rem;transition:.35s
}
.t-card::before{
  content:"\f10d";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;top:1.2rem;right:1.4rem;font-size:2.2rem;color:var(--gold);opacity:.18
}
.t-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(0,0,0,.15);border-color:var(--gold)}
.t-stars{color:var(--gold);font-size:.85rem;letter-spacing:.15em}
.t-card p{color:#3a423d;font-size:.98rem;line-height:1.7;margin:0;font-style:italic;flex:1}
.t-author{display:flex;align-items:center;gap:.8rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}
.t-author img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.t-author strong{display:block;font-family:var(--font-display);color:var(--dark);font-size:1rem}
.t-author small{color:var(--muted);font-size:.8rem}

.carousel-nav{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}
.carousel-prev,.carousel-next{
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);
  background:transparent;color:#fff;cursor:pointer;transition:.25s;font-size:.9rem;
  display:inline-flex;align-items:center;justify-content:center
}
.carousel-prev:hover,.carousel-next:hover{background:var(--gold);color:var(--dark);border-color:var(--gold);transform:scale(1.08)}
.carousel-dots{display:flex;gap:.5rem}
.carousel-dots button{
  width:10px;height:10px;border-radius:50%;border:none;background:rgba(255,255,255,.25);
  cursor:pointer;padding:0;transition:.25s
}
.carousel-dots button.active{background:var(--gold);width:28px;border-radius:5px}

/* ---- CTA strip animated ---- */
.cta-strip{position:relative}
.cta-strip::before{
  content:"";position:absolute;left:-40px;bottom:-40px;width:180px;height:180px;border-radius:50%;
  background:rgba(255,208,80,.1);animation:pulse 5s ease-in-out infinite
}
.cta-strip .btn{position:relative;overflow:hidden}
.cta-strip .btn::after{
  content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.6) 50%,transparent 70%);
  transform:translateX(-100%);animation:shine 3s ease-in-out infinite
}
@keyframes shine{0%{transform:translateX(-100%)}40%,100%{transform:translateX(100%)}}

/* ---- Gallery strip ---- */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;margin-top:2rem}
.gallery a{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:12px;position:relative}
.gallery img{width:100%;height:100%;object-fit:cover;transition:.5s}
.gallery a:hover img{transform:scale(1.12)}
.gallery a::after{
  content:"\f00e";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(28,142,90,.85);color:#fff;opacity:0;transition:.3s;font-size:1.4rem
}
.gallery a:hover::after{opacity:1}

/* ---- Section title underline animation ---- */
.section-head h2{position:relative;display:inline-block;padding-bottom:.6rem}
.section-head h2::after{
  content:"";position:absolute;left:50%;bottom:0;width:0;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--green));border-radius:2px;
  transform:translateX(-50%);transition:width 1s .3s
}
.reveal.in .section-head h2::after,.section-head.reveal.in h2::after{width:80px}

/* ---- Responsive tweaks ---- */
@media (max-width:992px){
  .prayer-grid{grid-template-columns:repeat(3,1fr)}
  .gallery{grid-template-columns:repeat(3,1fr)}
  .t-track > *{flex:0 0 calc(50% - .8rem)}
}
@media (max-width:600px){
  .prayer-grid{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .t-track > *{flex:0 0 100%}
  .marquee-track{font-size:1rem;gap:2rem}
  .shape{display:none}
  .shape.keep-mobile{display:block;opacity:.18}
}

/* Respect reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal{opacity:1;transform:none}
}
