/* =================== ONE-PAGE HOME =================== */
section[id]{scroll-margin-top:70px}
.btn-glass{background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:50px;font-weight:600;transition:.3s}
.btn-glass:hover{background:#fff;color:var(--dark);transform:translateY(-3px)}

/* Hero */
.hero-zone{--nav-h:110px;position:relative;height:calc(100vh - var(--nav-h));height:calc(100svh - var(--nav-h));min-height:520px;max-height:880px;
  background:linear-gradient(120deg,#12142b,#2c2f5e,#3a2a6b,#12142b);background-size:300% 300%;animation:gshift 16s ease infinite;overflow:hidden}
@keyframes gshift{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.45;pointer-events:none;z-index:1;transition:transform .3s ease-out}
.blob.b1{width:340px;height:340px;background:var(--primary);left:-90px;top:30%;animation:drift 14s ease-in-out infinite}
.blob.b2{width:280px;height:280px;background:#7b5cff;right:8%;bottom:15%;animation:drift 18s ease-in-out infinite reverse}
.blob.b3{width:200px;height:200px;background:#ffb27d;right:30%;top:-60px;animation:drift 12s ease-in-out infinite}
@keyframes drift{50%{translate:40px -30px;scale:1.15}}
.hero-carousel{position:absolute;inset:0}
.hero-carousel .carousel,.hero-carousel .carousel-inner,.hero-carousel .carousel-item{position:absolute;inset:0;height:100%}
.home .hero-content{position:relative;height:100%;display:flex;align-items:center;z-index:3}
.home .hero-content .hero-title{font-size:clamp(1.8rem,4vw,3.4rem);margin-bottom:.8rem;text-shadow:0 4px 20px rgba(0,0,0,.35)}
.home .hero-content p{font-size:clamp(1rem,1.5vw,1.2rem);margin-bottom:1.4rem}
.home .hero-overlay{background:linear-gradient(90deg,rgba(18,20,43,.9),rgba(18,20,43,.4) 70%,rgba(18,20,43,.15))}
.home .hero-bg{inset:-2%}
.home .carousel-indicators{z-index:4;margin-bottom:1.4rem;justify-content:flex-start;margin-left:max(calc((100vw - 1140px)/2 + 12px),15px)}
.home .carousel-indicators [data-bs-target]{width:28px;height:4px;border-radius:4px}
.scroll-down{position:absolute;z-index:6;left:50%;bottom:14px;translate:-50% 0;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.1);animation:nudge 1.8s ease-in-out infinite}
.scroll-down:hover{background:var(--primary);color:#fff}
@keyframes nudge{50%{translate:-50% 8px}}

/* Floating stat tiles */
.hero-stats{position:absolute;z-index:5;right:max(calc((100vw - 1140px)/2 + 12px),15px);top:50%;transform:translateY(-50%);display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:14px}
.stat-glass{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.1rem;border-radius:18px;color:#fff;background:rgba(255,255,255,.13);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.28);box-shadow:0 14px 30px rgba(0,0,0,.25);opacity:0;animation:popIn .7s var(--d) cubic-bezier(.2,.9,.3,1.3) forwards,bob 5s calc(var(--d) + 1s) ease-in-out infinite}
.stat-glass:nth-child(even){animation-direction:normal,reverse}
.stat-glass i{font-size:1.7rem;color:#ffb27d}
.stat-glass b{display:block;font-size:1.45rem;line-height:1.1}
.stat-glass small{opacity:.85;font-size:.78rem}
@keyframes popIn{from{opacity:0;transform:scale(.6) translateY(30px)}to{opacity:1;transform:none}}
@keyframes bob{50%{translate:0 -8px}}

/* Sections */
.section-join{background:linear-gradient(135deg,#12142b,#3a2a6b 60%,#7a2e0a);position:relative;overflow:hidden}
.section-join::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:var(--primary);opacity:.25;filter:blur(80px);left:-120px;top:-100px}
.join-points li{margin:.6rem 0;font-size:1.05rem}.join-points i{color:#ffb27d;margin-right:.5rem}
.form-msg{margin-bottom:.8rem}
[data-more].loading{pointer-events:none;opacity:.7}
.item-modal{border:0;border-radius:24px;overflow:hidden}
.item-modal .detail-img{max-height:340px}
.nav-link.active,.dropdown-item.active{color:var(--primary)!important;background:transparent}
.main-nav .nav-link.active::after{transform:scaleX(1)}

@media(max-width:991px){
  .hero-zone{height:auto;max-height:none;min-height:0;display:flex;flex-direction:column}
  .hero-carousel{position:relative;inset:auto;display:flex;flex-direction:column}
  .hero-carousel .carousel{position:relative;inset:auto;height:420px}
  .hero-stats{position:relative;right:auto;top:auto;transform:none;grid-template-columns:repeat(4,1fr);gap:8px;padding:.8rem 12px;background:rgba(14,16,36,.6)}
  .stat-glass{flex-direction:column;text-align:center;gap:.1rem;padding:.55rem .3rem}
  .stat-glass i{font-size:1.1rem}.stat-glass b{font-size:1rem}.stat-glass small{font-size:.65rem}
  .home .carousel-indicators{margin-left:15px}
  .scroll-down{display:none}
}
@media(prefers-reduced-motion:reduce){.stat-glass{opacity:1}}
@media(max-width:575px){.feature-card{padding:1.1rem .9rem}.feature-card .ic{width:48px;height:48px;font-size:1.4rem;margin-bottom:.7rem}.feature-card h3{font-size:.95rem}.feature-card p{font-size:.8rem}.section{padding:3.2rem 0}.sec-head{margin-bottom:2rem}}

/* activity banner (auto-scroll) */
.actbn{padding:2.2rem 0 2rem;background:#fff;overflow:hidden}
.actbn-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.actbn-head h2{font-size:1.6rem;font-weight:800;margin:0}
.actbn-head p{margin:.2rem 0 0;color:#6b7280}
.actbn-viewport{overflow:hidden}
.actbn-track{display:flex;gap:1rem;width:max-content;animation:actbn-scroll var(--actbn-speed,40s) linear infinite}
.actbn-viewport:hover .actbn-track,.actbn-viewport:focus-within .actbn-track{animation-play-state:paused}
.actbn-item{position:relative;display:block;flex:0 0 auto;width:300px;height:190px;border-radius:14px;overflow:hidden;color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.15)}
.actbn-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.actbn-item:hover img{transform:scale(1.07)}
.actbn-cap{position:absolute;inset:auto 0 0 0;padding:2rem .9rem .8rem;background:linear-gradient(transparent,rgba(0,0,0,.8));display:flex;flex-direction:column;gap:.15rem}
.actbn-cap em{font-style:normal;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;opacity:.85}
.actbn-cap strong{font-size:1rem;line-height:1.25}
.actbn-cap small{opacity:.85}
@keyframes actbn-scroll{to{transform:translateX(calc(-50% - .5rem))}}
@media(max-width:575px){.actbn-item{width:240px;height:160px}}
@media(prefers-reduced-motion:reduce){.actbn-viewport{overflow-x:auto}.actbn-track{animation:none}}
