
@property --beam-x-nsx {
  syntax: "<number>";
  initial-value: 0;
  inherits: true;
}

@property --beam-w-nsx {
  syntax: "<number>";
  initial-value: 1;
  inherits: true;
}

@property --beam-h-nsx {
  syntax: "<number>";
  initial-value: 1;
  inherits: true;
}

@property --beam-spike-nsx {
  syntax: "<number>";
  initial-value: 1;
  inherits: true;
}

@property --beam-spike2-nsx {
  syntax: "<number>";
  initial-value: 1;
  inherits: true;
}

@property --beam-edge-nsx {
  syntax: "<number>";
  initial-value: 1;
  inherits: true;
}

@property --beam-opacity-nsx {
  syntax: "<number>";
  initial-value: 0;
  inherits: true;
}

.nsx-beamclip {
  position: absolute;
  inset: 3px 3px 6px;
  border-radius: var(--beam-r, 30px);
  overflow: hidden;
  pointer-events: none;
  z-index: 2;
}

.nsx-beamclip[data-active] {
  animation:
    beam-travel-nsx 3.1s linear infinite,
    beam-edge-fade-nsx 3.1s linear infinite,
    beam-breathe-nsx 4.0s ease-in-out infinite,
    beam-spike-nsx 4.1s ease-in-out infinite,
    beam-spike2-nsx 5.3s ease-in-out infinite,
    beam-fade-in-nsx 0.6s ease forwards;
}

.nsx-beamclip[data-fading] {
  animation:
    beam-travel-nsx 3.1s linear infinite,
    beam-edge-fade-nsx 3.1s linear infinite,
    beam-breathe-nsx 4.0s ease-in-out infinite,
    beam-spike-nsx 4.1s ease-in-out infinite,
    beam-spike2-nsx 5.3s ease-in-out infinite,
    beam-fade-out-nsx 0.5s ease forwards;
}

.nsx-beamclip[data-active]::after,
.nsx-beamclip[data-fading]::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--beam-r, 30px);
  padding: 1px;
  clip-path: inset(0 round var(--beam-r, 30px));
  background: radial-gradient(
        ellipse calc(24px * var(--beam-w-nsx)) calc(28px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) calc(100% + 2px),
        rgba(255, 255, 255, 0.38) 0%,
        rgba(255, 255, 255, 0.12) 30%,
        transparent 65%
      ), radial-gradient(ellipse calc(36px * var(--beam-w-nsx)) calc(36px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) calc(100% + 2px), rgb(226, 188, 116), transparent),
       radial-gradient(ellipse calc(30px * var(--beam-w-nsx)) calc(32px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 39px) calc(100%), rgb(198, 202, 212), transparent),
       radial-gradient(ellipse calc(33px * var(--beam-w-nsx)) calc(28px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 36px) calc(100% + 2px), rgb(198, 202, 212), transparent),
       radial-gradient(ellipse calc(29px * var(--beam-w-nsx)) calc(34px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 54px) calc(100%), rgb(198, 202, 212), transparent),
       radial-gradient(ellipse calc(27px * var(--beam-w-nsx)) calc(30px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 51px) calc(100% - 1px), rgb(226, 188, 116), transparent),
       radial-gradient(ellipse calc(36px * var(--beam-w-nsx)) calc(24px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 21px) calc(100% + 1px), rgb(198, 202, 212), transparent),
       radial-gradient(ellipse calc(30px * var(--beam-w-nsx)) calc(22px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 21px) calc(100%), rgb(198, 202, 212), transparent),
       radial-gradient(ellipse calc(25px * var(--beam-w-nsx)) calc(28px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 66px) calc(100% + 1px), rgb(226, 188, 116), transparent),
       radial-gradient(ellipse calc(23px * var(--beam-w-nsx)) calc(30px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 66px) calc(100% - 1px), rgb(198, 202, 212), transparent);
  -webkit-mask:
    radial-gradient(
      ellipse calc(78px * var(--beam-w-nsx)) calc(60px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) 100%,
      white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%
    ),
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: source-in, xor;
  mask:
    radial-gradient(
      ellipse calc(78px * var(--beam-w-nsx)) calc(60px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) 100%,
      white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%
    ),
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask-composite: intersect, exclude;
  pointer-events: none;
  z-index: 2;
  opacity: calc(var(--beam-opacity-nsx) * var(--beam-edge-nsx) * 1.14 * var(--beam-stroke-opacity, 1) * var(--beam-strength, 1));
  animation: beam-hue-shift-nsx 12s ease-in-out infinite;
}

.nsx-beamclip[data-active]::before,
.nsx-beamclip[data-fading]::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--beam-r, 30px);
  background: radial-gradient(ellipse calc(33px * var(--beam-w-nsx)) calc(30px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) calc(100%), rgba(226, 188, 116, 0.48), transparent),
    radial-gradient(ellipse calc(24px * var(--beam-w-nsx)) calc(26px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 39px) calc(100% - 3px), rgba(198, 202, 212, 0.42), transparent),
    radial-gradient(ellipse calc(27px * var(--beam-w-nsx)) calc(24px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 36px) calc(100%), rgba(198, 202, 212, 0.48), transparent),
    radial-gradient(ellipse calc(23px * var(--beam-w-nsx)) calc(28px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 54px) calc(100% - 2px), rgba(198, 202, 212, 0.42), transparent),
    radial-gradient(ellipse calc(24px * var(--beam-w-nsx)) calc(24px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 51px) calc(100% - 1px), rgba(226, 188, 116, 0.50), transparent),
    radial-gradient(ellipse calc(30px * var(--beam-w-nsx)) calc(20px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 21px) calc(100%), rgba(198, 202, 212, 0.45), transparent),
    radial-gradient(ellipse calc(25px * var(--beam-w-nsx)) calc(18px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 21px) calc(100% - 2px), rgba(198, 202, 212, 0.40), transparent),
    radial-gradient(ellipse calc(21px * var(--beam-w-nsx)) calc(24px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% + 66px) calc(100%), rgba(226, 188, 116, 0.45), transparent),
    radial-gradient(ellipse calc(18px * var(--beam-w-nsx)) calc(26px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100% - 66px) calc(100% - 1px), rgba(198, 202, 212, 0.52), transparent);
  box-shadow: inset 0 0 9px 1px rgba(255, 255, 255, 0.1);
  -webkit-mask-image:
    radial-gradient(
      ellipse calc(78px * var(--beam-w-nsx)) calc(60px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) 100%,
      white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%
    ),
    linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),
    linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);
  -webkit-mask-composite: source-in, source-over;
  mask-image:
    radial-gradient(
      ellipse calc(78px * var(--beam-w-nsx)) calc(60px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) 100%,
      white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%
    ),
    linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),
    linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);
  mask-composite: intersect, add;
  pointer-events: none;
  z-index: 1;
  opacity: calc(var(--beam-opacity-nsx) * var(--beam-edge-nsx) * 0.70 * var(--beam-inner-opacity, 1) * var(--beam-strength, 1));
  clip-path: inset(0 round var(--beam-r, 30px));
  animation: beam-hue-shift-nsx 12s ease-in-out infinite;
}

.nsx-beamclip [data-beam-bloom] {
  display: none;
  position: absolute;
  inset: 0;
  border-radius: var(--beam-r, 30px);
  clip-path: inset(0 round var(--beam-r, 30px));
  padding: 0;
  -webkit-mask: radial-gradient(
    ellipse calc(84px * var(--beam-w-nsx)) calc(110px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) 100%,
    white 0%, rgba(255, 255, 255, 0.5) 35%, transparent 100%
  );
  -webkit-mask-composite: source-over;
  mask: radial-gradient(
    ellipse calc(84px * var(--beam-w-nsx)) calc(110px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) 100%,
    white 0%, rgba(255, 255, 255, 0.5) 35%, transparent 100%
  );
  mask-composite: add;
  background: radial-gradient(ellipse calc(0.8px * var(--beam-spike-nsx)) calc(92px * var(--beam-h-nsx)) at 8% calc(100% - 2px), rgb(226, 188, 116), rgb(226, 188, 116) 30%, transparent 88%),
       radial-gradient(ellipse calc(10px * var(--beam-spike2-nsx)) calc(35px * var(--beam-h-nsx)) at 22% calc(100% - 4px), rgba(198, 202, 212, 0.98), rgba(198, 202, 212, 0.49) 50%, transparent 95%),
       radial-gradient(ellipse calc(2px * (2 - var(--beam-spike-nsx))) calc(72px * var(--beam-h-nsx)) at 36% calc(100% - 3px), rgb(198, 202, 212), rgba(198, 202, 212, 1) 40%, transparent 90%),
       radial-gradient(ellipse calc(14px * var(--beam-spike2-nsx)) calc(28px * var(--beam-h-nsx)) at 50% calc(100% - 2px), rgba(226, 188, 116, 0.59), rgba(226, 188, 116, 0.29) 55%, transparent 96%),
       radial-gradient(ellipse calc(1.2px * (2 - var(--beam-spike2-nsx))) calc(85px * var(--beam-h-nsx)) at 64% calc(100% - 4px), rgb(198, 202, 212), rgba(198, 202, 212, 1) 35%, transparent 89%),
       radial-gradient(ellipse calc(7px * var(--beam-spike-nsx)) calc(45px * var(--beam-h-nsx)) at 78% calc(100% - 2px), rgba(198, 202, 212, 0.91), rgba(198, 202, 212, 0.45) 48%, transparent 94%),
       radial-gradient(ellipse calc(0.6px * (2 - var(--beam-spike-nsx))) calc(60px * var(--beam-h-nsx)) at 92% calc(100% - 3px), rgb(198, 202, 212), rgba(198, 202, 212, 1) 42%, transparent 91%),
       radial-gradient(ellipse calc(21px * var(--beam-spike-nsx)) calc(15px * var(--beam-spike2-nsx)) at calc(var(--beam-x-nsx) * 100%) calc(100% + 1px), rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.9) 20%, rgba(255, 255, 255, 0.5) 50%, transparent 100%),
       radial-gradient(ellipse calc(42px * var(--beam-w-nsx)) calc(40px * var(--beam-h-nsx)) at calc(var(--beam-x-nsx) * 100%) 100%, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.12) 25%, rgba(255, 255, 255, 0.03) 55%, transparent 80%);
  
  pointer-events: none;
  z-index: 3;
  opacity: 0;
}

.nsx-beamclip[data-active] [data-beam-bloom],
.nsx-beamclip[data-fading] [data-beam-bloom] {
  display: block;
  opacity: calc(var(--beam-opacity-nsx) * var(--beam-edge-nsx) * 0.80 * var(--beam-bloom-opacity, 1) * var(--beam-strength, 1));
  animation: beam-hue-shift-bloom-nsx 8s ease-in-out infinite;
}

@keyframes beam-travel-nsx {
  0%   { --beam-x-nsx: 0.06;  --beam-w-nsx: 0.75; }
  10%  { --beam-x-nsx: 0.15;  --beam-w-nsx: 1.2; }
  20%  { --beam-x-nsx: 0.25;  --beam-w-nsx: 1.65; }
  30%  { --beam-x-nsx: 0.35;  --beam-w-nsx: 1.95; }
  40%  { --beam-x-nsx: 0.44;  --beam-w-nsx: 2.175; }
  50%  { --beam-x-nsx: 0.5;   --beam-w-nsx: 2.25; }
  60%  { --beam-x-nsx: 0.56;  --beam-w-nsx: 2.175; }
  70%  { --beam-x-nsx: 0.65;  --beam-w-nsx: 1.95; }
  80%  { --beam-x-nsx: 0.75;  --beam-w-nsx: 1.65; }
  90%  { --beam-x-nsx: 0.85;  --beam-w-nsx: 1.2; }
  100% { --beam-x-nsx: 0.94;  --beam-w-nsx: 0.75; }
}

@keyframes beam-edge-fade-nsx {
  0%    { --beam-edge-nsx: 0; }
  12.5% { --beam-edge-nsx: 0; }
  32.5% { --beam-edge-nsx: 1; }
  67.5% { --beam-edge-nsx: 1; }
  87.5% { --beam-edge-nsx: 0; }
  100%  { --beam-edge-nsx: 0; }
}

@keyframes beam-breathe-nsx {
  0%, 100% { --beam-h-nsx: 0.8; }
  25%      { --beam-h-nsx: 1.25; }
  55%      { --beam-h-nsx: 0.85; }
  80%      { --beam-h-nsx: 1.3; }
}

@keyframes beam-spike-nsx {
  0%   { --beam-spike-nsx: 0.8; }
  25%  { --beam-spike-nsx: 1.3; }
  50%  { --beam-spike-nsx: 0.9; }
  75%  { --beam-spike-nsx: 1.4; }
  100% { --beam-spike-nsx: 0.8; }
}

@keyframes beam-spike2-nsx {
  0%   { --beam-spike2-nsx: 1.2; }
  25%  { --beam-spike2-nsx: 0.7; }
  50%  { --beam-spike2-nsx: 1.4; }
  75%  { --beam-spike2-nsx: 0.8; }
  100% { --beam-spike2-nsx: 1.2; }
}

@keyframes beam-fade-in-nsx {
  to { --beam-opacity-nsx: 1; }
}

@keyframes beam-fade-out-nsx {
  from { --beam-opacity-nsx: 1; }
  to { --beam-opacity-nsx: 0; }
}

@keyframes beam-hue-shift-nsx {
  0% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - 6deg)) brightness(1.30) saturate(1.20); }
  50% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) + 6deg)) brightness(1.30) saturate(1.20); }
  100% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - 6deg)) brightness(1.30) saturate(1.20); }
}

@keyframes beam-hue-shift-bloom-nsx {
  0% { filter: blur(8px) hue-rotate(calc(var(--beam-hue-base, 0deg) - 10deg)) brightness(1.30) saturate(1.20); }
  50% { filter: blur(8px) hue-rotate(calc(var(--beam-hue-base, 0deg) + 10deg)) brightness(1.30) saturate(1.20); }
  100% { filter: blur(8px) hue-rotate(calc(var(--beam-hue-base, 0deg) - 10deg)) brightness(1.30) saturate(1.20); }
}


