:root{
  --magenta:#D81B60; --magenta-deep:#9F0F46; --rose:#E91E63; --softpink:#FCE4EC; --gold:#FFD700; --ink:#3A1023; --cream:#FFFBF8;
}
html{scroll-behavior:smooth;}
body{font-family:'Manrope',sans-serif; color:var(--ink); background:var(--cream); overflow-x:hidden; position:relative;}
h1,h2,h3,h4,.font-display{font-family:'Fraunces',serif;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

/* ---------- Preloader ---------- */
#preloader{position:fixed; inset:0; z-index:9999; background:#FAFAFA; display:flex; align-items:center; justify-content:center; transition:opacity .7s ease, visibility .7s ease;}
#preloader.hide{opacity:0; visibility:hidden; pointer-events:none;}
.preloader-ring{transform:rotate(-90deg);}
.preloader-ring circle.track{stroke:#FCE4EC;}
.preloader-ring circle.progress{
  stroke:#D81B60; stroke-linecap:round;
  stroke-dasharray:339.3; stroke-dashoffset:339.3;
  animation:ringLoad 1.6s ease-in-out infinite;
}
@keyframes ringLoad{
  0%{stroke-dashoffset:339.3;}
  60%{stroke-dashoffset:20;}
  100%{stroke-dashoffset:339.3;}
}
#preloadPct{font-variant-numeric:tabular-nums;}

.knot{position:relative; display:inline-block;}

/* ---------- Nav ---------- */
#navbar{transition:background-color .4s ease, box-shadow .4s ease, backdrop-filter .4s ease;}
#navbar.scrolled{background-color:rgba(255,251,248,0.85); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 1px 0 rgba(216,27,96,0.08);}
.nav-link{position:relative;}
.nav-link::after{content:'';position:absolute; left:0; bottom:-4px; width:0; height:2px; background:var(--magenta); transition:width .3s ease;}
.nav-link:hover::after, .nav-link.active::after{width:100%;}
.nav-link.active{color:var(--magenta);}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- Cursor aura (hero only) ---------- */
#auraGlow{position:absolute; width:520px; height:520px; border-radius:50%; pointer-events:none; background:radial-gradient(circle, rgba(216,27,96,0.16) 0%, rgba(233,30,99,0.08) 40%, transparent 72%); transform:translate(-50%,-50%); transition:opacity .4s ease; will-change:transform; z-index:0;}

/* ---------- Animated mesh blobs ---------- */
.blob{animation:blobMove 14s ease-in-out infinite;}
.blob2{animation:blobMove 18s ease-in-out infinite reverse;}
@keyframes blobMove{
  0%,100%{transform:translate(0,0) scale(1);}
  33%{transform:translate(30px,-20px) scale(1.08);}
  66%{transform:translate(-20px,25px) scale(0.95);}
}

.hero-grid img{transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.hero-grid a:hover img{transform:scale(1.06);}
.float-badge{animation:floaty 5s ease-in-out infinite;}
.float-badge.delay{animation-delay:1.4s;}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

.gradient-text{
  background:linear-gradient(100deg, var(--magenta) 0%, var(--rose) 35%, var(--gold) 60%, var(--magenta) 100%);
  background-size:250% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shine 6s linear infinite;
}
@keyframes shine{ to { background-position: -250% center; } }

.swash{position:relative; white-space:nowrap;}
.swash svg{position:absolute; left:0; bottom:-6px; width:100%; height:14px;}

.scroll-cue{animation:cueBounce 2.2s ease-in-out infinite;}
@keyframes cueBounce{0%,100%{transform:translateY(0); opacity:.5;}50%{transform:translateY(8px); opacity:1;}}

.marquee-track{display:flex; width:max-content; animation:marquee 26s linear infinite;}
@keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
.marquee-wrap:hover .marquee-track{animation-play-state:paused;}

.activity-card{transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease; position:relative; overflow:hidden;}
.activity-card::before{content:''; position:absolute; inset:0; opacity:0; background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(216,27,96,0.10), transparent 60%); transition:opacity .4s ease; pointer-events:none;}
.activity-card:hover::before{opacity:1;}
.activity-card:hover{transform:translateY(-8px); box-shadow:0 24px 48px -20px rgba(216,27,96,0.35); border-color:var(--magenta);}
.team-card .avatar-ring{transition:transform .4s ease;}
.team-card:hover .avatar-ring{transform:scale(1.06) rotate(3deg);}

.magnetic{transition:transform .25s cubic-bezier(.2,.7,.2,1);}

.amount-btn.active{background:var(--magenta); color:#fff; border-color:var(--magenta);}
.amount-btn.active .amt-label{color:#FCE4EC;}

.ph-img{position:relative; background:linear-gradient(135deg,#FCE4EC 0%,#F7C6D9 100%);}
.ph-img img{width:100%; height:100%; object-fit:cover; display:block;}
.ph-tag{position:absolute; bottom:10px; left:10px; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; background:rgba(58,16,35,0.65); color:#fff; padding:4px 10px; border-radius:999px; backdrop-filter:blur(4px);}

#qrModal{transition:opacity .3s ease, visibility .3s ease;}
#qrModal.hidden-modal{opacity:0; visibility:hidden;}

::selection{background:var(--gold); color:var(--ink);}
a:focus-visible, button:focus-visible, input:focus-visible{outline:2px solid var(--magenta-deep); outline-offset:3px;}

/* ---------- Gallery (futuristic bento) ---------- */
.gallery-tab.active{background:var(--ink); color:#fff; border-color:var(--ink);}
.gallery-tile{position:relative; overflow:hidden; border-radius:1.5rem; cursor:pointer; isolation:isolate;}
.gallery-tile img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .5s ease;}
.gallery-tile::after{content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(135deg, rgba(255,215,0,0.7), rgba(216,27,96,0) 40%, rgba(233,30,99,0.6)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .4s ease; pointer-events:none;}
.gallery-tile:hover::after{opacity:1;}
.gallery-tile:hover img{transform:scale(1.08); filter:brightness(0.75) saturate(1.15);}
.gallery-tile .tile-overlay{position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:1.1rem; opacity:0; transform:translateY(10px); transition:opacity .4s ease, transform .4s ease; background:linear-gradient(to top, rgba(58,16,35,0.85), transparent 65%);}
.gallery-tile:hover .tile-overlay{opacity:1; transform:translateY(0);}
.gallery-tile .tile-scan{position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.15) 50%, transparent 100%); background-size:100% 220%; opacity:0; transition:opacity .3s ease;}
.gallery-tile:hover .tile-scan{opacity:1; animation:scan 1.4s ease-in-out infinite;}
@keyframes scan{0%{background-position:0 -120%;}100%{background-position:0 120%;}}
.gallery-fade{transition:opacity .35s ease, transform .35s ease;}
#galleryLightbox{transition:opacity .3s ease, visibility .3s ease;}
#galleryLightbox.hidden-modal{opacity:0; visibility:hidden;}

/* ---------- Leaderboard / Sakhi Circle ---------- */
.tier-badge{font-size:10px; font-weight:800; letter-spacing:.04em; padding:3px 10px; border-radius:999px; text-transform:uppercase;}
.tier-netri{background:linear-gradient(100deg,#FFD700,#D81B60); color:#fff;}
.tier-sanrakshak{background:#3A1023; color:#FFD700;}
.tier-sahayogi{background:#D81B60; color:#fff;}
.tier-sathi{background:#FCE4EC; color:#9F0F46;}
.leader-row{transition:background-color .3s ease, transform .3s ease;}
.leader-row:hover{background-color:#FCE4EC; transform:translateX(4px);}
.rank-medal{width:2rem; height:2rem; border-radius:9999px; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:.8rem;}

/* ---------- Anonymous toggle switch ---------- */
.switch{position:relative; display:inline-block; width:44px; height:24px; flex-shrink:0;}
.switch input{opacity:0; width:0; height:0;}
.switch .slider{position:absolute; cursor:pointer; inset:0; background-color:#FCE4EC; transition:.3s; border-radius:999px;}
.switch .slider::before{position:absolute; content:""; height:18px; width:18px; left:3px; bottom:3px; background-color:#fff; transition:.3s; border-radius:50%; box-shadow:0 1px 3px rgba(0,0,0,0.25);}
.switch input:checked + .slider{background-color:var(--magenta);}
.switch input:checked + .slider::before{transform:translateX(20px);}

/* ---------- Simple content page styles (About/Programs/Blog inner text) ---------- */
.prose-sakhi p{margin-bottom:1.1rem; line-height:1.75; color:rgba(58,16,35,0.75);}
.prose-sakhi h2{font-family:'Fraunces',serif; font-weight:600; font-size:1.6rem; margin-top:2rem; margin-bottom:0.75rem; color:var(--ink);}
.value-divider{height:1px; background:rgba(255,255,255,0.12);}
