/* Aurax Dot Repel Field v8
   White-section decoration only. Hero sections are intentionally excluded. */
:root{
  --aurax-motion:#043fb1;
  --aurax-motion-rgb:4,63,177;
}
.hero .aurax-dot-scene,
.services-page-hero .aurax-dot-scene,
.wd-hero .aurax-dot-scene,
.sd-hero .aurax-dot-scene,
.about-hero .aurax-dot-scene,
.contact-hero .aurax-dot-scene,
.projects-hero .aurax-dot-scene{display:none!important}

.aurax-dot-section{
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
}
.aurax-dot-section > .wrap,
.aurax-dot-section > .container,
.aurax-dot-section > [class*="inner"]{
  position:relative;
  z-index:2;
}
.aurax-dot-scene{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}

/* Free particles */
.aurax-dot{
  --dot-size:5px;
  position:absolute;
  left:0;
  top:0;
  width:var(--dot-size);
  height:var(--dot-size);
  border-radius:50%;
  background:var(--aurax-motion);
  opacity:var(--dot-opacity,.34);
  box-shadow:0 0 0 3px rgba(var(--aurax-motion-rgb),.025);
  transform:translate3d(var(--x,0),var(--y,0),0) scale(var(--scale,1));
  will-change:transform;
}
.aurax-dot[data-size="s"]{--dot-size:3px}
.aurax-dot[data-size="m"]{--dot-size:5px}
.aurax-dot[data-size="l"]{--dot-size:7px}
.aurax-dot[data-tone="soft"]{--dot-opacity:.22}
.aurax-dot[data-tone="mid"]{--dot-opacity:.36}
.aurax-dot[data-tone="clear"]{--dot-opacity:.54}

/* Outlined boxes containing dot matrices */
.aurax-dot-box{
  --box-w:104px;
  --box-h:76px;
  position:absolute;
  left:0;
  top:0;
  width:var(--box-w);
  height:var(--box-h);
  border:1px solid rgba(var(--aurax-motion-rgb),.24);
  border-radius:18px;
  background:rgba(255,255,255,.52);
  box-shadow:0 12px 30px rgba(var(--aurax-motion-rgb),.045), inset 0 0 0 1px rgba(255,255,255,.55);
  backdrop-filter:blur(2px);
  transform:translate3d(var(--x,0),var(--y,0),0) rotate(var(--rot,0deg));
  will-change:transform;
}
.aurax-dot-box::before{
  content:"";
  position:absolute;
  inset:17px;
  background-image:radial-gradient(circle,rgba(var(--aurax-motion-rgb),.62) 0 2px,transparent 2.4px);
  background-size:17px 17px;
  background-position:center;
  opacity:.72;
}
.aurax-dot-box::after{
  content:"";
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  right:10px;
  top:10px;
  background:rgba(var(--aurax-motion-rgb),.48);
  box-shadow:-12px 0 0 rgba(var(--aurax-motion-rgb),.18);
}
.aurax-dot-box[data-variant="small"]{--box-w:82px;--box-h:62px;border-radius:15px}
.aurax-dot-box[data-variant="wide"]{--box-w:138px;--box-h:66px;border-radius:18px}
.aurax-dot-box[data-tone="soft"]{opacity:.54}
.aurax-dot-box[data-tone="mid"]{opacity:.72}
.aurax-dot-box[data-tone="clear"]{opacity:.9}

/* A very light local glow makes the field readable on pure white. */
.aurax-dot-scene::before,
.aurax-dot-scene::after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(var(--aurax-motion-rgb),.065),rgba(var(--aurax-motion-rgb),0) 70%);
  filter:blur(8px);
  opacity:.72;
}
.aurax-dot-scene::before{left:-110px;top:18%}
.aurax-dot-scene::after{right:-120px;bottom:10%}

@media(max-width:980px){
  .aurax-dot{opacity:.85}
  .aurax-dot-box{opacity:.68}
}
@media(max-width:760px){
  .aurax-dot:nth-of-type(n+34){display:none}
  .aurax-dot-box:nth-of-type(n+6){display:none}
  .aurax-dot-box{transform:scale(.86)}
}
@media(prefers-reduced-motion:reduce){
  .aurax-dot,.aurax-dot-box{will-change:auto!important}
}
