/* Cinematic motion layer */
html,body { width:100%; max-width:100%; overflow-x:visible!important; overscroll-behavior-x:auto; }
body { touch-action:auto; position:relative; }
main,section,header,footer { max-width:100%; min-width:0; }
img,svg,canvas { max-width:100%; }
body.motion-ready { --pointer-x:50%; --pointer-y:50%; }
/* GSAP owns visibility once the motion layer is active; prevents double-hidden empty sections. */
body.motion-ready .reveal { opacity:1; transform:none; transition:none; }
.motion-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:1; opacity:.42; pointer-events:none; mix-blend-mode:screen; }
.hero-copy,.scroll-cue,.hero-number { z-index:3; }
.hero:after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:radial-gradient(450px circle at var(--pointer-x) var(--pointer-y),rgba(184,150,58,.12),transparent 60%); }
.cursor-dot,.cursor-ring { position:fixed; top:0; left:0; z-index:1000; pointer-events:none; border-radius:50%; opacity:0; }
.cursor-dot { width:5px; height:5px; margin:-2.5px; background:#d8bd72; }
.cursor-ring { width:34px; height:34px; margin:-17px; border:1px solid rgba(216,189,114,.7); transition:width .22s,height .22s,margin .22s,background .22s,border-color .22s; }
body.cursor-visible .cursor-dot,body.cursor-visible .cursor-ring { opacity:1; }
body.cursor-active .cursor-ring { width:56px; height:56px; margin:-28px; background:rgba(184,150,58,.13); border-color:#d8bd72; }
.hero h1,.intro h2,.services h2,.projects-head h2,.promise h2,.footer-top h2 { transform-origin:right center; }
.section-tag { position:relative; overflow:hidden; }
.section-tag:after { content:""; position:absolute; top:0; right:0; height:1px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:right; }
.motion-ready .project-card { transform-style:preserve-3d; perspective:900px; }
.motion-ready .project-card img { transform:scale(1.13); will-change:transform; }
.motion-ready .metric strong { display:inline-block; will-change:transform; }
.motion-ready .service { will-change:transform,opacity; }
.motion-ready .gallery-item { will-change:transform,opacity,clip-path; }
.motion-ready .gallery-item img { will-change:filter,transform; }
.motion-ready .ksa-map { will-change:transform; }
.motion-ready .geo-regions path { transform-box:fill-box; transform-origin:center; }
.motion-ready .promise-mark { will-change:transform; }
.motion-ready footer { position:relative; overflow:hidden; }
.motion-ready footer:before { content:""; position:absolute; inset:0; background:linear-gradient(115deg,transparent 25%,rgba(184,150,58,.08),transparent 70%); transform:translateX(-120%); }
@media(pointer:coarse),(max-width:900px){.cursor-dot,.cursor-ring{display:none}.hero:after{display:none}.motion-canvas{opacity:.25}}
@media(max-width:900px){
  .hero,.intro,.vision-mission,.advantages,.metrics,.services,.projects-head,.project-grid,.promise,header,footer{width:100%;max-width:100vw;overflow-x:hidden;overflow-x:clip}
  .map-journey{width:100%;max-width:100vw;overflow:visible}
  .map-sticky,.project-cover{width:100%;max-width:100vw;overflow:hidden}
  .map-sticky{height:100svh}
  .project-cover-layer{display:none}
  .mobile-cover{display:block;position:absolute;inset:0;background-position:center;background-size:cover;backface-visibility:hidden;transform:translateZ(0);will-change:transform;contain:strict}
  .mobile-cover-base{z-index:1}
  .mobile-cover-next{z-index:2;transform:translate3d(0,100%,0)}
  .ksa-map.geo-regions{overflow:hidden;max-width:94vw}
  .project-panel{max-width:calc(100vw - 48px)}
  .project-panel{min-height:168px;contain:layout paint}
  .geo-regions path,.geo-regions path.active{filter:none;transition:none}
  .project-panel .meta{max-width:100%;flex-wrap:wrap}
  .hero-copy,.intro-body,.advantages-copy,.services-head{max-width:100%}
}
@media(prefers-reduced-motion:reduce){.motion-canvas,.cursor-dot,.cursor-ring{display:none!important}.motion-ready .project-card img{transform:none}.motion-ready .gallery-item,.motion-ready .gallery-item img{clip-path:none!important;transform:none!important;filter:none!important;opacity:1!important}}
