/* BEAM EDGE MOTION SYSTEM (css). Additive only; every selector is namespaced beam-*. */
.beam-orb-layer,.beam-motion-canvas{position:fixed;left:0;top:0;width:100%;height:100%;pointer-events:none;touch-action:pan-y;visibility:hidden}
.beam-orb-layer{z-index:1;overflow:hidden}
.beam-motion-canvas{z-index:2}
.beam-motion-ready .beam-orb-layer,.beam-motion-ready .beam-motion-canvas,.beam-motion-ready .beam-motion-cue{visibility:visible}
.beam-orb{position:absolute;left:0;top:0;border-radius:50%;opacity:0;pointer-events:none;will-change:transform,opacity;
 background:radial-gradient(circle,var(--c,rgba(80,100,240,.9)) 0,rgba(0,0,0,0) 68%)}

/* scroll cue: thin line + dot (decorative) */
.beam-motion-cue{position:fixed;right:7px;top:50%;width:2px;height:96px;margin-top:-48px;z-index:3;pointer-events:none;visibility:hidden;
 background:linear-gradient(rgba(130,140,200,0),rgba(130,140,200,.35),rgba(130,140,200,0))}
.beam-motion-cue i{position:absolute;left:-2px;top:0;width:6px;height:6px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px rgba(251,178,0,.18);will-change:transform}

/* one-time load sweep */
.beam-motion-sweep{position:fixed;left:0;top:34%;width:60vw;height:2px;z-index:3;pointer-events:none;opacity:0;
 background:linear-gradient(90deg,rgba(251,178,0,0),rgba(251,178,0,.9),rgba(242,82,0,0))}

/* card inner spotlight (follows touch / cursor); no layout or content change */
.card{position:relative}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s ease;
 background:radial-gradient(170px circle at var(--beam-mx,50%) var(--beam-my,50%),rgba(80,110,240,.12),rgba(80,110,240,0) 70%)}
.info .card::before{background:radial-gradient(170px circle at var(--beam-mx,50%) var(--beam-my,50%),rgba(255,255,255,.10),rgba(255,255,255,0) 70%)}
.card.beam-spot-on::before{opacity:1;transition-duration:.2s}

/* optional text proximity glow (off by default; data-beam-glow) */
[data-beam-glow]{text-shadow:0 0 calc(var(--beam-glow,0)*16px) rgba(251,178,0,calc(var(--beam-glow,0)*.7))}

@media (prefers-reduced-motion:reduce){.card::before,.beam-motion-cue,.beam-motion-sweep{display:none}}

/* ambient CSS drift (motion.css) also rests while the user is not scrolling/touching */
html.beam-motion-ready:not(.beam-awake) .cover::before{animation-play-state:paused}

/* keep the enquiry form above the glow layers so the fields are never washed out */
.form{position:relative;z-index:3}
