/* ===== VASTU 3D COMPASS SECTION ===== */

#vastu-sec{background:linear-gradient(135deg,var(--bg-dark),var(--bg2));padding:110px 5%;position:relative;overflow:hidden}
#vastu-sec::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.vastu-wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
/* 3D Compass */
.compass-scene{display:flex;align-items:center;justify-content:center;height:480px;perspective:900px}
.compass-3d{width:380px;height:380px;position:relative;transform-style:preserve-3d;animation:compassAnim 7s ease-in-out infinite;transition:transform .3s ease}
@keyframes compassAnim{0%,100%{transform:rotateX(15deg) rotateY(0)}25%{transform:rotateX(12deg) rotateY(9deg)}50%{transform:rotateX(18deg) rotateY(0)}75%{transform:rotateX(11deg) rotateY(-9deg)}}
.c-ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center}
.c-ring:nth-child(1){animation:spinRing 22s linear infinite}
.c-ring:nth-child(2){inset:36px;border-color:rgba(37,99,255,.22);animation:spinRing 15s linear infinite reverse}
.c-ring:nth-child(3){inset:76px;border-color:rgba(255,255,255,.35);animation:spinRing 9s linear infinite}
@keyframes spinRing{to{transform:rotate(360deg)}}
.c-line{position:absolute;top:50%;left:50%;width:1px;height:50%;transform-origin:50% 100%;background:linear-gradient(to top,rgba(255,255,255,.18),transparent)}
.c-center{position:absolute;width:100px;height:100px;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(37,99,168,.25),transparent);border:1.5px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 50px rgba(37,99,168,.2),inset 0 0 30px rgba(37,99,168,.08)}
.c-star{font-size:38px;animation:spinRing 10s linear infinite;display:block}
.c-needle{position:absolute;top:50%;left:50%;width:2px;height:60px;transform:translate(-50%,-100%) rotate(48deg);transform-origin:50% 100%;background:linear-gradient(to top,rgba(255,255,255,.9),transparent);border-radius:1px}
.dir-lbl{position:absolute;font-family:'Poppins',sans-serif;font-size:12px;font-weight:700;letter-spacing:2px;color:rgba(255,255,255,.8)}
.dN{top:-22px;left:50%;transform:translateX(-50%)}
.dS{bottom:-22px;left:50%;transform:translateX(-50%)}
.dE{right:-22px;top:50%;transform:translateY(-50%)}
.dW{left:-22px;top:50%;transform:translateY(-50%)}
.dNE,.dNW,.dSE,.dSW{font-size:9px;color:rgba(255,255,255,.4)}
.dNE{top:5%;right:5%}.dNW{top:5%;left:5%}.dSE{bottom:5%;right:5%}.dSW{bottom:5%;left:5%}
/* vastu elements */
.ve-list{display:flex;flex-direction:column;gap:18px}
.ve-item{display:flex;align-items:flex-start;gap:16px;padding:18px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);transition:all .3s;cursor:pointer}
.ve-item:hover{border-color:rgba(255,255,255,.25);transform:translateX(6px);background:rgba(255,255,255,.06)}
.ve-ico{width:50px;height:50px;border-radius:13px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:21px}
.ve-ico.fire{background:rgba(255,100,50,.12);border:1px solid rgba(255,100,50,.18)}
.ve-ico.water{background:rgba(37,99,255,.12);border:1px solid rgba(37,99,255,.18)}
.ve-ico.earth{background:rgba(100,180,60,.12);border:1px solid rgba(100,180,60,.18)}
.ve-ico.air{background:rgba(180,220,255,.08);border:1px solid rgba(180,220,255,.12)}
.ve-ico.space{background:rgba(147,197,253,.1);border:1px solid rgba(147,197,253,.2)}
.ve-title{font-family:'Poppins',sans-serif;font-size:1.05rem;font-weight:700;color:var(--white);margin-bottom:4px}
.ve-desc{font-size:12.5px;color:rgba(210,225,255,.55);line-height:1.65;font-weight:300}
.ve-dir{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--blue-mid);margin-top:5px}
.vastu-sec-tag{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(200,220,255,.8);margin-bottom:14px}
.vastu-sec-tag::before,.vastu-sec-tag::after{content:'';width:22px;height:2px;background:rgba(255,255,255,.4);opacity:.4}
.vastu-h2{font-family:'Poppins',sans-serif;font-size:clamp(2rem,3.5vw,3rem);font-weight:700;color:var(--white);margin-bottom:14px;line-height:1.2}
.vastu-h2 em{font-style:normal;color:#93c5fd}
.vastu-p{font-size:15px;font-weight:300;color:rgba(210,225,255,.7);line-height:1.82;max-width:520px;margin-bottom:32px}


/* ===== CHAKRA 3D SECTION BG ===== */

.chakra-bg-section{position:relative;overflow:hidden}
#chakraCanvas{position:absolute;inset:0;width:100%!important;height:100%!important;pointer-events:none;opacity:.18}
.chakra-bg-content{position:relative;z-index:2}


/* ===== VASTU AMBIENT ANIMATIONS ===== */

.vastu-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(80px);animation:orbFloat ease-in-out infinite alternate}
@keyframes orbFloat{0%{transform:translate(0,0) scale(1)}100%{transform:translate(30px,-20px) scale(1.15)}}
.vastu-geo-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.vastu-geo-bg svg{position:absolute;opacity:.04;animation:geoRotate linear infinite}
@keyframes geoRotate{to{transform:rotate(360deg)}}

/* Marquee strip */
.marquee-strip{background:var(--blue);padding:12px 0;overflow:hidden;position:relative}
.marquee-track{display:flex;animation:marquee 30s linear infinite;white-space:nowrap;width:max-content}
.marquee-track:hover{animation-play-state:paused}
.marquee-item{display:inline-flex;align-items:center;gap:8px;padding:0 32px;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.7)}
.marquee-dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.3);flex-shrink:0}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
