/* Sitewide 3D system for Vyncus Lim public pages. Progressive + accessible. */
body.spatial-ready{isolation:isolate}
body.spatial-ready .site-3d-world{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.68;transition:opacity .4s}
body.spatial-ready.spatial-off .site-3d-world{opacity:0}
body.spatial-ready>main,body.spatial-ready>.footer,body.spatial-ready>footer,body.spatial-ready>main.wrap{position:relative;z-index:1}
body.spatial-ready>.nav-wrap,body.spatial-ready>.site-header,body.spatial-ready>.jx-nav{z-index:81}
body.spatial-ready .site-3d-controls{position:fixed;z-index:95;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}
body.spatial-ready .site-3d-toggle{display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 16px;border:1px solid rgba(242,195,105,.45);border-radius:999px;background:rgba(10,20,32,.94);color:#ffdfa9;box-shadow:0 12px 38px rgba(0,0,0,.38);backdrop-filter:blur(14px);cursor:pointer;font:700 11px Manrope,'DM Sans',system-ui,sans-serif}
body.spatial-ready .site-3d-toggle:hover{background:rgba(32,53,72,.98)}
body.spatial-ready .site-3d-toggle:focus-visible{outline:3px solid #ffdfad;outline-offset:3px}
body.spatial-ready .site-3d-indicator{width:8px;height:8px;border-radius:50%;background:#f2c369;box-shadow:0 0 12px rgba(242,195,105,.7)}
body.spatial-ready.spatial-off .site-3d-indicator{background:#8895a5;box-shadow:none}
body.spatial-ready.lightbox-open .site-3d-controls{display:none}
body.spatial-ready.spatial-on .spatial-zone{position:relative;transform-style:preserve-3d;perspective:1450px}
body.spatial-ready.spatial-on .spatial-zone:not(.immersive-universe):not(.ticker)::before{content:"";position:absolute;inset:1% -3%;z-index:0;pointer-events:none;background:radial-gradient(ellipse 25% 30% at 90% 16%,rgba(128,190,236,.06),transparent),radial-gradient(ellipse 25% 25% at 6% 83%,rgba(242,195,105,.04),transparent)}
body.spatial-ready.spatial-on :is(.hero,.page-hero,.jx-hero){isolation:isolate}
body.spatial-ready.spatial-on :is(.hero,.page-hero) h1{text-shadow:0 13px 39px rgba(0,0,0,.3),2px 3px rgba(151,190,216,.035)}
body.spatial-ready.spatial-on .page-hero::after{content:"";position:absolute;z-index:-1;pointer-events:none;right:7%;top:10%;width:min(22vw,270px);aspect-ratio:1;border-radius:26%;border:1px solid rgba(242,195,105,.18);transform:perspective(950px) rotateX(54deg) rotateY(-28deg) rotateZ(24deg);box-shadow:30px 26px 0 -1px rgba(134,177,208,.055),66px 52px 0 -2px rgba(242,195,105,.035);background:linear-gradient(145deg,rgba(126,181,218,.09),transparent)}
body.spatial-ready.spatial-on .spatial-card{position:relative;transform-style:preserve-3d;backface-visibility:hidden;transition:transform .32s cubic-bezier(.2,.65,.2,1),box-shadow .32s,border-color .32s}
body.spatial-ready.spatial-on .spatial-card.spatial-tilt{transform:perspective(1100px) rotateX(var(--spatial-rx,0deg)) rotateY(var(--spatial-ry,0deg)) translate3d(0,-5px,20px);box-shadow:0 32px 68px rgba(0,0,0,.25),0 0 0 1px rgba(242,195,105,.08);z-index:3}
body.spatial-ready.spatial-on .spatial-card.spatial-tilt::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(400px circle at var(--spatial-x,50%) var(--spatial-y,50%),rgba(234,244,255,.11),transparent 65%)}
body.spatial-ready.spatial-on :is(.brand-mark,.brand .mark,.jx-nav-name){transform:perspective(700px) rotateX(7deg) rotateY(-12deg);box-shadow:0 6px 0 rgba(242,195,105,.12),0 16px 25px rgba(0,0,0,.24)}
body.spatial-ready.spatial-on :is(.section-heading h2,.chapter h2,.classification-heading h2,.cred-group-header h2,.section-top h2){text-shadow:0 10px 37px rgba(0,0,0,.17)}
body.spatial-ready.spatial-on :is(.story-layout,.credential-gallery,.project-grid,.plans,.moments-grid,.result-feature-grid){perspective:1500px}
body.spatial-ready.spatial-on :is(.contact-inner,.contact-panel,.estimate-panel,.estimate-result,.classification-grid>div,.now-grid>div,.signal-strip){box-shadow:0 28px 78px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.035);transform-style:preserve-3d}
body.spatial-ready.spatial-on .hero-preview{transform:perspective(1200px) rotateY(-7deg) rotateX(4deg)}
body.spatial-ready.spatial-on .hero-preview.spatial-tilt{transform:perspective(1200px) rotateX(var(--spatial-rx,0deg)) rotateY(var(--spatial-ry,0deg)) translateZ(15px)}
body.spatial-ready.spatial-on .plan.highlight{box-shadow:0 26px 65px rgba(0,0,0,.3),0 0 32px rgba(242,195,105,.08)}
body.spatial-ready.spatial-on .jx-hero-photo-shell{transform-style:preserve-3d;filter:drop-shadow(15px 28px 27px rgba(0,0,0,.24))}
body.spatial-ready.spatial-on .jx-hero-photo-shell.spatial-tilt{transform:perspective(1100px) rotateX(var(--spatial-rx,0deg)) rotateY(var(--spatial-ry,0deg)) translateZ(15px)}
body.spatial-ready.spatial-on .friends-contact .card{box-shadow:0 30px 90px rgba(0,0,0,.48),8px 10px 0 rgba(154,193,216,.035)}
body.spatial-ready.spatial-on .friends-contact .top .mark{transform:perspective(650px) rotateY(-18deg) rotateX(12deg);box-shadow:8px 9px 0 rgba(255,255,255,.05)}
@media(max-width:900px){body.spatial-ready .site-3d-world{opacity:.52}body.spatial-ready.spatial-on .hero-preview{transform:none}body.spatial-ready.spatial-on .page-hero::after{opacity:.48}}
@media(max-width:620px){body.spatial-ready .site-3d-world{opacity:.36}body.spatial-ready .site-3d-controls{right:10px;bottom:10px}body.spatial-ready .site-3d-toggle{min-height:40px;padding:9px 12px;font-size:10px}body.spatial-ready.spatial-on .page-hero::after{width:130px;right:1%;opacity:.25}body.spatial-ready.spatial-on .spatial-card.spatial-tilt,body.spatial-ready.spatial-on .jx-hero-photo-shell.spatial-tilt{transform:none}}
@media(hover:none),(pointer:coarse){body.spatial-ready.spatial-on .spatial-card.spatial-tilt,body.spatial-ready.spatial-on .hero-preview{transform:none}}
@media(prefers-reduced-motion:reduce){body.spatial-ready .site-3d-world{opacity:.13;transition:none}body.spatial-ready.spatial-on .spatial-card,body.spatial-ready.spatial-on .spatial-card.spatial-tilt,body.spatial-ready.spatial-on .hero-preview,body.spatial-ready.spatial-on .jx-hero-photo-shell{transform:none!important;transition:none!important}}
