
/* =========================================================
   NEKRONEX MOTION V4
   Global visual layer
   ========================================================= */

:root{
  --nx-gold:#e4bf4d;
  --nx-purple:#9b6cff;
  --nx-cyan:#28d9ff;
  --nx-white:#f7f8ff;
  --nx-ink:#070910;
}

html{scroll-behavior:smooth}

body{
  opacity:1;
  transform:none;
  transition:
    opacity .52s ease,
    transform .72s cubic-bezier(.16,1,.3,1),
    filter .58s ease;
}

body.nx-entering{
  opacity:0;
  filter:blur(16px) brightness(.45) saturate(.7);
  transform:scale(1.018);
}

body.nx-ready{
  opacity:1;
  filter:none;
  transform:none;
}

html.nx-routing body{
  opacity:.02;
  filter:blur(18px) brightness(.2) saturate(.55);
  transform:scale(.985);
}

/* -------------------------
   flag icons (real SVGs — emoji flags don't render as
   pictures on Windows, they fall back to plain text)
   ------------------------- */

.nx-flag-icon{
  display:inline-block;
  width:18px;
  height:13px;
  border-radius:2px;
  object-fit:cover;
  box-shadow:0 0 0 1px rgba(255,255,255,.14);
  vertical-align:middle;
}

/* -------------------------
   pointer orb (removed — see js/motion.js, using the OS cursor now)
   ------------------------- */

/* -------------------------
   nebula field (behind the stars)
   ------------------------- */

.nx-nebula-field{
  position:fixed;
  inset:-10vw;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}

.nx-nebula-blob{
  position:absolute;
  width:52vw;
  height:52vw;
  max-width:780px;
  max-height:780px;
  border-radius:50%;
  filter:blur(40px);
  opacity:.34;
  mix-blend-mode:lighten;
  animation:nxNebulaDrift var(--nx-neb-dur,60s) ease-in-out var(--nx-neb-delay,0s) infinite alternate;
  will-change:transform;
}

.nx-nebula-blue{background:radial-gradient(circle,var(--blue,#2d8cff),transparent 62%)}
.nx-nebula-purple{background:radial-gradient(circle,var(--purple,#a16bff),transparent 62%)}
.nx-nebula-cyan{background:radial-gradient(circle,var(--cyan,#22d6ff),transparent 62%)}
.nx-nebula-gold{background:radial-gradient(circle,var(--gold,#d4af37),transparent 62%)}
.nx-nebula-green{background:radial-gradient(circle,var(--green,#9cff00),transparent 65%);opacity:.20}
.nx-nebula-red{background:radial-gradient(circle,var(--red,#ff3547),transparent 62%);opacity:.22}

@keyframes nxNebulaDrift{
  0%{transform:translate(0,0) scale(1)}
  50%{transform:translate(6vw,-4vw) scale(1.12)}
  100%{transform:translate(-5vw,5vw) scale(.94)}
}

@media (prefers-reduced-motion: reduce){
  .nx-nebula-blob{animation-duration:140s!important}
}

@media (max-width:720px){
  .nx-nebula-blob{width:70vw;height:70vw;filter:blur(42px)}
}

/* -------------------------
   particle canvas
   ------------------------- */

.nx-visual-canvas{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  pointer-events:none!important;
  z-index:1!important;
  opacity:.92!important;
  mix-blend-mode:screen;
}

.site-header,
main,
.site-footer{
  position:relative;
  z-index:3;
}

/* -------------------------
   portal
   ------------------------- */

.nx-page-transition{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  z-index:200000;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  overflow:hidden;
  background:
    radial-gradient(circle at center,rgba(255,140,44,.10),rgba(4,4,10,.88) 42%,rgba(2,2,5,.99) 100%);
  transition:opacity .22s ease,visibility .22s ease;
}

.nx-page-transition.active{
  opacity:1;
  visibility:visible;
}

.nx-portal-aura{
  width:min(44vw,650px);
  aspect-ratio:1;
  border-radius:50%;
  background:
    radial-gradient(circle,
      rgba(255,248,224,.98) 0 1%,
      rgba(255,213,140,.8) 3%,
      rgba(255,160,60,.46) 8%,
      rgba(230,110,30,.28) 15%,
      rgba(212,175,55,.16) 27%,
      transparent 64%);
  filter:blur(1px);
  transform:scale(.04);
  box-shadow:
    0 0 40px rgba(255,160,70,.85),
    0 0 110px rgba(230,110,30,.5),
    0 0 220px rgba(212,175,55,.28);
}

.nx-page-transition.active .nx-portal-aura{
  animation:nxPortalCore 1400ms cubic-bezier(.16,1,.3,1) forwards;
}

.nx-portal-ring{
  position:absolute;
  width:min(34vw,520px);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(255,196,130,.48);
  box-shadow:
    inset 0 0 36px rgba(255,140,50,.28),
    0 0 36px rgba(212,175,55,.34);
  opacity:0;
}

.nx-ring-a{
  transform:scale(.15) rotate(0deg);
}

.nx-ring-b{
  width:min(24vw,360px);
  border-style:dashed;
  border-color:rgba(212,175,55,.32);
  transform:scale(.1) rotate(90deg);
}

.nx-page-transition.active .nx-ring-a{
  animation:nxRingIn 1.4s cubic-bezier(.16,1,.3,1) .08s forwards;
}

.nx-page-transition.active .nx-ring-b{
  animation:nxRingIn2 1.35s cubic-bezier(.16,1,.3,1) .16s forwards;
}

.nx-portal-core{
  position:absolute;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#fff6ec;
  box-shadow:
    0 0 10px #fff6ec,
    0 0 26px rgba(255,150,80,.95),
    0 0 70px rgba(255,70,20,.95);
  opacity:0;
}

.nx-page-transition.active .nx-portal-core{
  animation:nxCoreFlash 1.3s ease forwards;
}

.nx-portal-caption{
  position:absolute;
  bottom:9vh;
  color:rgba(255,225,205,.72);
  font-size:10px;
  letter-spacing:.42em;
  text-transform:uppercase;
  opacity:0;
}

.nx-page-transition.active .nx-portal-caption{
  animation:nxCaption .6s ease .35s forwards;
}

@keyframes nxPortalCore{
  0%{transform:scale(.03);opacity:0}
  25%{opacity:1}
  68%{transform:scale(1.08);opacity:1}
  100%{transform:scale(1.75);opacity:0}
}

@keyframes nxRingIn{
  0%{opacity:0;transform:scale(.12) rotate(0)}
  25%{opacity:1}
  100%{opacity:.12;transform:scale(1.75) rotate(230deg)}
}

@keyframes nxRingIn2{
  0%{opacity:0;transform:scale(.08) rotate(90deg)}
  25%{opacity:.9}
  100%{opacity:0;transform:scale(1.9) rotate(-120deg)}
}

@keyframes nxCoreFlash{
  0%{opacity:0;transform:scale(.1)}
  30%{opacity:1;transform:scale(1.2)}
  100%{opacity:0;transform:scale(8)}
}

@keyframes nxCaption{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

/* -------------------------
   energy sparks
   ------------------------- */

.nx-energy-spark{
  position:fixed;
  left:0;
  top:0;
  width:var(--size,3px);
  height:var(--size,3px);
  border-radius:50%;
  background:#fff;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 18px rgba(176,121,255,.9),
    0 0 28px rgba(127,68,255,.65);
  pointer-events:none;
  z-index:200010;
  animation:nxSpark var(--dur,600ms) cubic-bezier(.16,1,.3,1) forwards;
}

@keyframes nxSpark{
  0%{opacity:0;transform:translate3d(var(--x1),var(--y1),0) scale(.2)}
  12%{opacity:1}
  75%{opacity:.9}
  100%{opacity:0;transform:translate3d(var(--x2),var(--y2),0) scale(0)}
}

.nx-energy-pulse{
  position:fixed;
  width:10px;
  height:10px;
  margin:-5px 0 0 -5px;
  border-radius:50%;
  border:1px solid rgba(226,207,255,.72);
  box-shadow:
    0 0 20px rgba(174,119,255,.7),
    0 0 46px rgba(137,77,255,.42);
  pointer-events:none;
  z-index:200005;
  animation:nxPulse .62s cubic-bezier(.16,1,.3,1) forwards;
}

@keyframes nxPulse{
  0%{opacity:.95;transform:scale(.25)}
  100%{opacity:0;transform:scale(8.5)}
}

/* -------------------------
   buttons
   ------------------------- */

.button,
.cta-nav{
  position:relative;
  isolation:isolate;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-height:42px;
  gap:8px;
  padding:11px 18px!important;
  border-radius:12px!important;
  border:1px solid rgba(255,255,255,.14)!important;
  color:#f8f8ff!important;
  background:rgba(15,18,27,.82)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 8px 26px rgba(0,0,0,.25);
  overflow:hidden;
  transition:
    transform .28s cubic-bezier(.16,1,.3,1),
    border-color .28s ease,
    box-shadow .28s ease,
    color .28s ease,
    background .28s ease;
}

.button::before,
.cta-nav::before{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-1;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.28) 48%,transparent 72%);
  transform:translateX(-130%);
  transition:transform .72s cubic-bezier(.16,1,.3,1);
}

.button::after,
.cta-nav::after{
  content:"";
  position:absolute;
  inset:1px;
  z-index:-1;
  border-radius:10px;
  background:radial-gradient(circle at var(--bx,50%) var(--by,50%),rgba(182,134,255,.24),transparent 48%);
  opacity:.45;
}

.button:hover,
.cta-nav:hover{
  transform:translateY(-3px);
  border-color:rgba(206,181,255,.5)!important;
  box-shadow:
    0 12px 34px rgba(0,0,0,.42),
    0 0 0 1px rgba(164,108,255,.13),
    0 0 34px rgba(155,108,255,.20);
}

.button:hover::before,
.cta-nav:hover::before{
  transform:translateX(130%);
}

.button-primary{
  border-color:rgba(229,193,73,.7)!important;
  background:
    linear-gradient(135deg,rgba(223,189,74,.98),rgba(190,148,39,.92))!important;
  color:#0a0b0f!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    0 8px 30px rgba(212,175,55,.17),
    0 0 0 1px rgba(212,175,55,.12);
  text-shadow:none;
}

.button-primary:hover{
  border-color:#f4db81!important;
  box-shadow:
    0 14px 38px rgba(0,0,0,.45),
    0 0 42px rgba(212,175,55,.28);
}

.button-secondary{
  border-color:rgba(164,108,255,.48)!important;
  background:
    linear-gradient(135deg,rgba(72,45,112,.55),rgba(17,15,28,.94))!important;
  color:#efe6ff!important;
}

.hero-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px!important;
  margin-top:26px;
}

.nx-ripple-v4{
  position:absolute;
  width:14px;
  height:14px;
  border-radius:50%;
  background:rgba(255,255,255,.3);
  pointer-events:none;
  transform:translate(-50%,-50%) scale(0);
  animation:nxRipple4 .68s cubic-bezier(.16,1,.3,1) forwards;
}

@keyframes nxRipple4{
  to{opacity:0;transform:translate(-50%,-50%) scale(15)}
}

/* -------------------------
   language / nav dropdowns
   ------------------------- */

.lang .lang-menu,
.nav-menu-group .nav-menu-panel{
  opacity:0;
  visibility:hidden;
  transform:translateY(-10px) scale(.97);
  transform-origin:top center;
  transition:
    opacity .28s ease,
    visibility .28s ease,
    transform .42s cubic-bezier(.16,1,.3,1);
  overflow:hidden;
}

.lang.open .lang-menu,
.nav-menu-group.open .nav-menu-panel{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}

.lang-menu,
.nav-menu-panel{
  box-shadow:
    0 22px 70px rgba(0,0,0,.52),
    0 0 40px rgba(130,78,230,.14)!important;
  backdrop-filter:blur(18px);
}

.lang-menu button,
.nav-menu-panel a{
  position:relative;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease;
}

.lang-menu button:hover,
.nav-menu-panel a:hover{
  transform:translateX(4px);
  background:rgba(176,128,255,.10)!important;
  color:#fff!important;
}

.lang-menu button[aria-current="true"]{
  color:#fff!important;
  background:rgba(212,175,55,.10)!important;
}

/* -------------------------
   select + lists
   ------------------------- */

select{
  appearance:auto;
  color:#f3f4fa!important;
  background:#0a0d13!important;
  border:1px solid rgba(178,132,255,.24)!important;
  border-radius:11px!important;
  min-height:40px;
  transition:
    border-color .22s ease,
    box-shadow .22s ease,
    transform .22s ease;
}

select:focus,
select:hover{
  border-color:rgba(185,139,255,.62)!important;
  box-shadow:0 0 0 3px rgba(143,91,255,.10),0 0 28px rgba(143,91,255,.16);
}

.nx-select-pulse{
  animation:nxSelectPulse .42s ease;
}

@keyframes nxSelectPulse{
  50%{transform:translateY(-2px);box-shadow:0 0 0 4px rgba(173,123,255,.10),0 0 34px rgba(173,123,255,.20)}
}

/* -------------------------
   card motion
   ------------------------- */

.nx-card-v4{
  position:relative;
  transform:
    perspective(1200px)
    rotateX(var(--rx,0deg))
    rotateY(var(--ry,0deg));
  transition:
    transform .30s cubic-bezier(.16,1,.3,1),
    box-shadow .30s ease,
    border-color .30s ease;
}

.nx-card-v4::after{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(
      circle at var(--mx,50%) var(--my,50%),
      rgba(207,176,255,.14),
      transparent 32%
    );
  opacity:.75;
  transition:opacity .25s ease;
}

/* -------------------------
   .nx-cta-glow
   Used on primary CTA buttons across the whole site but had
   zero CSS anywhere (v4 bug) — buttons rendered with no glow
   at all. Breathing halo + a light sweep on hover.
   ------------------------- */

.nx-cta-glow{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  /* Static base glow — no animation on box-shadow itself (that forces
     a full repaint every frame). The "breathing" is done by fading a
     second, brighter pre-rendered glow layer in and out via opacity,
     which is compositor-only and effectively free. */
  box-shadow:
    0 0 0 1px rgba(212,175,55,.4),
    0 0 20px rgba(212,175,55,.4),
    0 0 46px rgba(212,175,55,.2);
}

.nx-cta-glow::after{
  content:"";
  position:absolute;
  inset:-6px;
  z-index:-2;
  border-radius:inherit;
  box-shadow:
    0 0 0 1px rgba(212,175,55,.55),
    0 0 30px rgba(212,175,55,.55),
    0 0 62px rgba(212,175,55,.3);
  opacity:0;
  animation:nxCtaBreatheOpacity 2.6s ease-in-out infinite;
}

.nx-cta-glow::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.35) 50%,transparent 80%);
  transform:translateX(-120%);
  transition:transform .6s ease;
}

.nx-cta-glow:hover::before{
  transform:translateX(120%);
}

.nx-cta-glow:hover{
  box-shadow:
    0 0 0 1px rgba(212,175,55,.55),
    0 0 26px rgba(212,175,55,.55),
    0 0 60px rgba(212,175,55,.3);
}

@keyframes nxCtaBreatheOpacity{
  0%,100%{opacity:0}
  50%{opacity:1}
}

/* nx-cta-glow intentionally keeps animating regardless of the OS
   reduced-motion hint — see the note near line ~872. */

/* -------------------------
   liquid burst (panel open effect)
   ------------------------- */

.nx-liquid-burst{
  position:fixed;
  z-index:190000;
  width:0;height:0;
  pointer-events:none;
}

.nx-liquid-blob{
  position:absolute;
  left:0;top:0;
  width:14px;height:14px;
  margin:-7px 0 0 -7px;
  border-radius:42% 58% 63% 37%/45% 42% 58% 55%;
  background:
    radial-gradient(circle at 32% 30%,rgba(255,255,255,.9),transparent 60%),
    linear-gradient(135deg,var(--gold,#d4af37),var(--purple,#a16bff));
  box-shadow:0 0 16px rgba(212,175,55,.55),0 0 32px rgba(161,107,255,.35);
  opacity:0;
  transform:translate(0,0) scale(0);
  animation:nxLiquidPop var(--bd,600ms) cubic-bezier(.2,1.6,.3,1) forwards;
}

@keyframes nxLiquidPop{
  0%{opacity:0;transform:translate(0,0) scale(0)}
  22%{opacity:1;transform:translate(calc(var(--bx) * .35),calc(var(--by) * .35)) scale(var(--bs))}
  70%{opacity:.85}
  100%{opacity:0;transform:translate(var(--bx),var(--by)) scale(0.15)}
}

@media (prefers-reduced-motion: reduce){
  .nx-liquid-blob{animation-duration:250ms!important}
}

/* -------------------------
   live blink dot + icon glow
   (new in v5, inspired by reference)
   ------------------------- */

.eyebrow,.premium-live-badge,.kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.nx-live-dot{
  position:relative;
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  flex:none;
}

.nx-live-dot::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
  border:1px solid rgba(228,191,77,.55);
  opacity:0;
  animation:nxLiveBlink 1.8s ease-in-out infinite;
}

@keyframes nxLiveBlink{
  0%{opacity:.7;transform:scale(.3)}
  70%,100%{opacity:0;transform:scale(1)}
}

.nx-icon-glow{
  position:relative;
  display:inline-block;
}

.nx-icon-glow::after{
  content:"";
  position:absolute;
  inset:-30%;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle,currentColor,transparent 68%);
  opacity:0;
  filter:blur(7px);
  animation:nxIconBreatheOpacity 3.2s ease-in-out infinite;
}

@keyframes nxIconBreatheOpacity{
  0%,100%{opacity:0}
  50%{opacity:.55}
}

/* -------------------------
   reveal
   ------------------------- */

.reveal,
[data-reveal],
.nx-reveal{
  opacity:0;
  transform:translateY(26px);
  filter:blur(5px);
  transition:
    opacity .72s ease var(--reveal-delay,0ms),
    transform .82s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),
    filter .72s ease var(--reveal-delay,0ms);
}

.reveal.visible,
.nx-visible{
  opacity:1;
  transform:none;
  filter:none;
}

/* -------------------------
   FAQ
   ------------------------- */

.faq-q{
  transition:
    background .24s ease,
    border-color .24s ease,
    transform .24s ease;
}

.faq-q:hover{
  transform:translateX(3px);
  border-color:rgba(191,148,255,.35)!important;
  background:rgba(147,96,237,.07)!important;
}

.faq-item.open .faq-q{
  border-color:rgba(202,166,255,.42)!important;
  box-shadow:0 0 28px rgba(143,88,255,.10);
}

/* -------------------------
   support
   ------------------------- */

.nx-support-widget{
  position:relative;
  z-index:100000;
}

.nx-support-backdrop{
  position:fixed;
  inset:0;
  background:rgba(2,3,8,.66);
  backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  transition:opacity .28s ease,visibility .28s ease;
}

.nx-support-widget.is-open .nx-support-backdrop{
  opacity:1;
  visibility:visible;
}

.nx-support-panel{
  transform-origin:bottom right;
}

/* -------------------------
   privacy card
   ------------------------- */

.nx-cookie-banner{
  position:fixed!important;
  right:22px!important;
  left:auto!important;
  bottom:22px!important;
  top:auto!important;
  width:min(450px,calc(100vw - 44px))!important;
  min-height:86px;
  z-index:2147483000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px;
  padding:15px 16px!important;
  border:1px solid rgba(212,175,55,.32)!important;
  border-radius:18px!important;
  background:
    linear-gradient(145deg,rgba(14,16,23,.98),rgba(6,8,13,.96))!important;
  box-shadow:
    0 26px 80px rgba(0,0,0,.58),
    0 0 0 1px rgba(255,255,255,.025),
    0 0 34px rgba(145,96,255,.12)!important;
  backdrop-filter:blur(20px)!important;
  animation:nxCookieInBottom .58s cubic-bezier(.16,1,.3,1) both!important;
}

.nx-cookie-banner.is-closing{
  animation:nxCookieOutBottom .34s ease forwards!important;
}

.nx-cookie-banner>div:first-child{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}

.nx-cookie-banner strong{
  font-size:11px!important;
  line-height:1.35;
}

.nx-cookie-banner p{
  margin:4px 0 0!important;
  font-size:9px!important;
  line-height:1.5;
  color:#8e96a6!important;
}

.nx-cookie-banner>div:last-child{
  display:flex;
  gap:8px;
  flex:0 0 auto;
}

.nx-cookie-banner button{
  min-height:40px;
  padding:8px 11px;
  border-radius:10px;
  font-size:9px;
  border:1px solid rgba(255,255,255,.10);
}

.nx-cookie-secondary{
  background:rgba(255,255,255,.025)!important;
  color:#d7dae4!important;
}

.nx-cookie-primary{
  background:linear-gradient(135deg,#f0d66b,#d4af37)!important;
  color:#0a0b0f!important;
  font-weight:900;
}

@keyframes nxCookieInBottom{
  from{opacity:0;transform:translateY(25px) scale(.97);filter:blur(5px)}
  to{opacity:1;transform:none;filter:none}
}

@keyframes nxCookieOutBottom{
  to{opacity:0;transform:translateY(18px) scale(.97);filter:blur(4px)}
}

/* -------------------------
   audio / progress
   ------------------------- */

.nx-audio-control{
  position:fixed!important;
  left:18px!important;
  bottom:17px!important;
  z-index:180000!important;
  min-height:31px;
  padding:0 10px;
  border-radius:11px;
  border:1px solid rgba(181,135,255,.28);
  background:rgba(7,8,13,.78);
  color:#ddd8ea;
  display:flex;
  align-items:center;
  gap:6px;
  font-size:8px;
  backdrop-filter:blur(12px);
  box-shadow:0 10px 28px rgba(0,0,0,.35);
}

.nx-audio-control span{
  color:#d4b2ff;
  font-size:11px;
}

.nx-audio-control small{
  letter-spacing:.16em;
  font-size:7px;
}

.nx-scroll-progress-v4{
  position:fixed;
  left:0;
  bottom:0;
  height:2px;
  width:0;
  z-index:2147483001;
  background:linear-gradient(90deg,#b98cff,#56d9ff,#f0cf5c);
  box-shadow:0 0 16px rgba(170,118,255,.72);
  pointer-events:none;
}

/* -------------------------
   responsive
   ------------------------- */

@media (max-width:900px){
  .nx-cursor-orb,.nx-cursor-halo{display:none}
}

@media (max-width:700px){
  .nx-cookie-banner{
    right:12px!important;
    bottom:12px!important;
    width:calc(100vw - 24px)!important;
    flex-direction:column;
    align-items:stretch!important;
  }

  .nx-cookie-banner>div:last-child{
    width:100%;
  }

  .nx-cookie-banner button{
    flex:1;
  }

  .hero-actions .button{
    width:100%;
  }

  .nx-portal-aura{
    width:72vw;
  }

  .nx-portal-ring{
    width:56vw;
  }
}

@media (prefers-reduced-motion:reduce){
  /* By deliberate choice, NEKRONEX keeps full visual effects (particles,
     cursor orb, portal transition, glow/blink) regardless of the OS-level
     reduced-motion hint — same behavior as the reference sites this
     design is inspired by. The only thing this block still guards
     against is the page getting stuck mid-animation if something
     stalls, which is a robustness net, not a motion-reduction feature. */
  body.nx-entering{
    transition:opacity .3s ease;
  }
}

/* =========================================================
   NEKRONEX PREMIUM LIVE
   ========================================================= */

.premium-live-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:30px;
}

.premium-live-card{
  position:relative;
  overflow:hidden;
  padding:25px;
  border:1px solid rgba(212,175,55,.18);
  border-radius:22px;
  background:
    radial-gradient(circle at 80% 0,rgba(231,195,78,.10),transparent 42%),
    linear-gradient(145deg,rgba(17,18,20,.98),rgba(8,9,12,.98));
  box-shadow:0 20px 70px rgba(0,0,0,.28);
}

.premium-live-card.featured{
  border-color:rgba(212,175,55,.55);
  box-shadow:
    0 24px 90px rgba(0,0,0,.42),
    0 0 45px rgba(212,175,55,.10);
}

.premium-live-card::before{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-110px;
  top:-110px;
  border-radius:50%;
  background:rgba(212,175,55,.10);
  filter:blur(30px);
  pointer-events:none;
}

.premium-live-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.premium-live-name{
  font-size:14px;
  font-weight:900;
  letter-spacing:.02em;
}

.premium-live-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid rgba(109,231,161,.20);
  background:rgba(109,231,161,.07);
  color:#9cf1bf;
  font-size:7px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.premium-live-price{
  margin:18px 0 3px;
  font-size:42px;
  line-height:1;
  letter-spacing:-.05em;
  font-weight:900;
  color:#f3d86b;
}

.premium-live-price span{
  font-size:12px;
  color:#858b97;
  font-weight:700;
  letter-spacing:0;
}

.premium-live-description{
  min-height:44px;
  color:#9299a7;
  font-size:10px;
  line-height:1.6;
}

.premium-live-card .button{
  width:100%;
  margin-top:18px;
}

.premium-live-note{
  margin-top:19px;
  padding:13px 14px;
  border-left:2px solid rgba(212,175,55,.52);
  background:rgba(212,175,55,.045);
  color:#979eac;
  border-radius:0 12px 12px 0;
  font-size:9px;
  line-height:1.65;
}

.premium-live-hero{
  position:relative;
  overflow:hidden;
  padding:52px;
  border:1px solid rgba(212,175,55,.22);
  border-radius:30px;
  background:
    radial-gradient(circle at 12% 10%,rgba(212,175,55,.15),transparent 30%),
    radial-gradient(circle at 90% 80%,rgba(155,108,255,.09),transparent 32%),
    linear-gradient(135deg,#10110e,#08090b 60%,#111009);
}

.premium-live-hero::after{
  content:"";
  position:absolute;
  inset:auto -10% -55% 20%;
  height:260px;
  background:radial-gradient(circle,rgba(212,175,55,.12),transparent 68%);
  filter:blur(30px);
  pointer-events:none;
}

.premium-live-kicker{
  color:#e4c552;
  font-size:8px;
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.premium-live-title{
  max-width:860px;
  margin:12px 0 13px;
  font-size:clamp(42px,6vw,76px);
  line-height:.96;
  letter-spacing:-.06em;
}

.premium-live-subtitle{
  max-width:740px;
  color:#a7aeba;
  font-size:14px;
  line-height:1.8;
}

@media (max-width:900px){
  .premium-live-grid{grid-template-columns:1fr}
  .premium-live-hero{padding:30px}
}


/* =========================================================
   NEKRONEX V14 SURGERY OVERRIDES
   These are deliberately additive. Existing layout remains intact.
   ========================================================= */

/* ---------- Cursor overrides removed — OS cursor is used now ---------- */

/* ---------- Legacy full-viewport nebula (removed) ----------
   This used to run a blurred, animated, edge-to-edge gradient behind
   EVERY page via body::before (filter: blur(24px), constantly
   repainting) plus a scanline texture via body::after — both fixed,
   full-viewport, and running forever regardless of what page you're
   on. It's now fully redundant with the lighter .nx-nebula-field
   blobs (small blurred circles, not a full-screen filter), so it's
   removed rather than kept duplicated. This alone was likely the
   single heaviest thing running on every page. */

/* ---------- Cookies: bottom-left, always over content ---------- */

.nx-cookie-banner {
  position: fixed !important;
  left: 22px !important;
  right: auto !important;
  bottom: calc(22px + env(safe-area-inset-bottom)) !important;
  top: auto !important;
  z-index: 201000 !important;
  width: min(570px, calc(100vw - 44px)) !important;
  box-sizing: border-box;
  border-radius: 18px !important;
  backdrop-filter: blur(22px) saturate(135%);
  box-shadow:
    0 24px 80px rgba(0,0,0,.64),
    0 0 28px rgba(212,175,55,.07);
}

/* ---------- Support: bottom-right, never overlaps cookie ---------- */

.nx-support-widget {
  position: fixed !important;
  right: 22px !important;
  left: auto !important;
  bottom: calc(22px + env(safe-area-inset-bottom)) !important;
  top: auto !important;
  z-index: 202000 !important;
}

.nx-support-widget .nx-support-panel {
  z-index: 202100 !important;
}

/* ---------- Language menu: always above decorative layers ---------- */

.site-header,
.lang {
  position: relative !important;
  z-index: 203000 !important;
}

.lang-menu,
.nx-language-menu {
  z-index: 203100 !important;
}

/* ---------- Cards get alive without geometry shifts ---------- */

.nx-card-v4,
.product-card,
.feature,
.plan,
.premium-live-card {
  transition:
    transform .38s cubic-bezier(.16,1,.3,1),
    box-shadow .38s ease,
    border-color .38s ease,
    filter .38s ease;
}

.nx-card-v4:hover,
.product-card:hover,
.feature:hover,
.plan:hover,
.premium-live-card:hover {
  filter: brightness(1.035);
  box-shadow:
    0 0 28px rgba(155,108,255,.13),
    inset 0 0 20px rgba(255,255,255,.02);
}

@media (max-width: 720px) {
  .nx-cursor-aura,
  .nx-cursor-halo,
  .nx-cursor-orb {
    display: none !important;
  }

  .nx-cookie-banner {
    left: 14px !important;
    right: auto !important;
    bottom: calc(88px + env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 28px) !important;
  }

  .nx-support-widget {
    right: 14px !important;
    bottom: calc(14px + env(safe-area-inset-bottom)) !important;
  }
}



/* =========================================================
   NEKRONEX V15 SURGICAL FIX
   SUPPORT WIDGET + COOKIE STACKING
   ========================================================= */

/* The widget itself must never occupy document flow. */
.nx-support-widget {
  position: fixed !important;
  inset: auto 20px 20px auto !important;
  width: auto !important;
  height: auto !important;
  z-index: 2147482000 !important;
  pointer-events: none !important;
}

/* Only the actual launcher/panel can receive pointer input. */
.nx-support-launcher,
.nx-support-panel,
.nx-support-backdrop {
  pointer-events: auto;
}

.nx-support-launcher {
  position: fixed !important;
  right: 20px !important;
  bottom: 20px !important;
  width: 58px !important;
  height: 58px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border-radius: 18px !important;
  border: 1px solid rgba(155,108,255,.48) !important;
  background:
    radial-gradient(circle at 50% 45%, rgba(155,108,255,.20), transparent 58%),
    rgba(7,8,14,.94) !important;
  color: #f7f3ff !important;
  box-shadow:
    0 18px 55px rgba(0,0,0,.60),
    0 0 24px rgba(155,108,255,.20),
    inset 0 0 22px rgba(155,108,255,.05) !important;
  overflow: visible !important;
  transition:
    transform .28s cubic-bezier(.16,1,.3,1),
    border-color .28s ease,
    box-shadow .28s ease !important;
}

.nx-support-launcher:hover {
  transform: translateY(-2px) scale(1.035) !important;
  border-color: rgba(210,180,255,.82) !important;
  box-shadow:
    0 22px 62px rgba(0,0,0,.64),
    0 0 34px rgba(155,108,255,.34),
    inset 0 0 28px rgba(155,108,255,.08) !important;
}

.nx-support-launcher-icon {
  position: relative !important;
  z-index: 2 !important;
  width: 35px !important;
  height: 35px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 12px !important;
  background:
    linear-gradient(135deg, rgba(244,214,107,.94), rgba(168,111,255,.88)) !important;
  color: #0a0a0e !important;
  font-size: 15px !important;
  box-shadow:
    0 0 14px rgba(244,214,107,.23),
    0 0 28px rgba(168,111,255,.24) !important;
}

.nx-support-launcher-label {
  position: absolute !important;
  left: 50% !important;
  top: calc(100% + 5px) !important;
  transform: translateX(-50%) !important;
  white-space: nowrap !important;
  font-size: 7px !important;
  letter-spacing: .28em !important;
  color: rgba(221,214,234,.74) !important;
  pointer-events: none !important;
}

.nx-support-launcher-ring {
  position: absolute !important;
  inset: -7px !important;
  border-radius: 24px !important;
  border: 1px solid rgba(155,108,255,.34) !important;
  opacity: .70 !important;
  animation: nxV15SupportRing 3.4s ease-in-out infinite !important;
  pointer-events: none !important;
}

@keyframes nxV15SupportRing {
  0%,100% { transform: scale(.96); opacity: .36; }
  50% { transform: scale(1.05); opacity: .82; }
}

/* Closed panel state is completely removed from layout and hit testing. */
.nx-support-panel {
  position: fixed !important;
  right: 20px !important;
  bottom: 92px !important;
  width: min(470px, calc(100vw - 40px)) !important;
  max-height: min(720px, calc(100vh - 132px)) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
  padding: 22px !important;
  border: 1px solid rgba(165,126,238,.26) !important;
  border-radius: 22px !important;
  background:
    linear-gradient(145deg, rgba(10,11,18,.985), rgba(6,7,12,.975)) !important;
  box-shadow:
    0 30px 90px rgba(0,0,0,.70),
    0 0 34px rgba(155,108,255,.13),
    inset 0 0 32px rgba(255,255,255,.015) !important;
  backdrop-filter: blur(24px) saturate(135%) !important;

  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(18px) scale(.965) !important;
  transform-origin: bottom right !important;

  transition:
    opacity .34s ease,
    visibility .34s ease,
    transform .48s cubic-bezier(.16,1,.3,1) !important;
}

.nx-support-widget.is-open .nx-support-panel {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) scale(1) !important;
}

.nx-support-panel::-webkit-scrollbar {
  width: 7px;
}

.nx-support-panel::-webkit-scrollbar-track {
  background: rgba(255,255,255,.02);
  border-radius: 8px;
}

.nx-support-panel::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(212,175,55,.55), rgba(155,108,255,.55));
  border-radius: 8px;
}

/* Backdrop must sit behind the panel and above the page only while open. */
.nx-support-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: -1 !important;
  background: rgba(2,3,8,.58) !important;
  backdrop-filter: blur(4px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition:
    opacity .30s ease,
    visibility .30s ease !important;
}

.nx-support-widget.is-open .nx-support-backdrop {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Support header */
.nx-support-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
  margin-bottom: 16px !important;
}

.nx-support-brand {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0 !important;
}

.nx-support-brand > div:last-child {
  min-width: 0 !important;
}

.nx-support-orb {
  flex: 0 0 42px !important;
  width: 42px !important;
  height: 42px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 14px !important;
  background:
    linear-gradient(135deg, rgba(244,214,107,.95), rgba(168,111,255,.90)) !important;
  color: #0a0a0e !important;
  font-size: 18px !important;
  box-shadow:
    0 0 18px rgba(244,214,107,.17),
    0 0 28px rgba(168,111,255,.17) !important;
}

.nx-support-eyebrow {
  display: block !important;
  margin-bottom: 4px !important;
  font-size: 8px !important;
  line-height: 1.2 !important;
  letter-spacing: .20em !important;
  color: rgba(228,191,77,.86) !important;
}

.nx-support-brand strong {
  display: block !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  color: #f8f7fb !important;
}

.nx-support-brand small {
  display: block !important;
  margin-top: 4px !important;
  font-size: 10px !important;
  line-height: 1.45 !important;
  color: #8e95a7 !important;
}

.nx-support-close {
  flex: 0 0 auto !important;
  width: 38px !important;
  height: 38px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.025) !important;
  color: #d5d8e1 !important;
  font-size: 21px !important;
  line-height: 1 !important;
  transition: .24s ease !important;
}

.nx-support-close:hover {
  transform: rotate(6deg) scale(1.04) !important;
  border-color: rgba(155,108,255,.38) !important;
  color: #fff !important;
}

/* Online state */
.nx-support-status {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin-bottom: 18px !important;
  padding: 9px 11px !important;
  border: 1px solid rgba(255,255,255,.055) !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.018) !important;
  font-size: 8px !important;
  letter-spacing: .14em !important;
  color: #7f8797 !important;
}

.nx-support-status i {
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: #7ff0a3 !important;
  box-shadow: 0 0 9px rgba(127,240,163,.75) !important;
  animation: nxV15Online 1.8s ease-in-out infinite !important;
}

@keyframes nxV15Online {
  0%,100% { opacity: .46; transform: scale(.86); }
  50% { opacity: 1; transform: scale(1.12); }
}

/* Sections and selectable categories */
.nx-support-form {
  display: grid !important;
  gap: 13px !important;
}

.nx-support-section-title {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  margin-top: 4px !important;
  font-size: 10px !important;
  color: #aeb4c4 !important;
}

.nx-support-section-title > span:first-child {
  color: #d4af37 !important;
  font-size: 9px !important;
  letter-spacing: .08em !important;
}

.nx-support-categories {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: 8px !important;
}

.nx-support-category {
  min-width: 0 !important;
  padding: 11px 12px !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.018) !important;
  color: #bec4d1 !important;
  text-align: left !important;
  font-size: 10px !important;
  transition:
    transform .24s ease,
    border-color .24s ease,
    box-shadow .24s ease,
    background .24s ease !important;
}

.nx-support-category:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(155,108,255,.34) !important;
  box-shadow: 0 0 18px rgba(155,108,255,.10) !important;
}

.nx-support-category.active {
  border-color: rgba(212,175,55,.42) !important;
  background: linear-gradient(
    135deg,
    rgba(212,175,55,.09),
    rgba(155,108,255,.07)
  ) !important;
  color: #fff !important;
  box-shadow:
    0 0 22px rgba(212,175,55,.07),
    inset 0 0 18px rgba(255,255,255,.02) !important;
}

.nx-support-templates {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
}

.nx-support-template {
  max-width: 100% !important;
  padding: 9px 11px !important;
  border: 1px solid rgba(212,175,55,.18) !important;
  border-radius: 999px !important;
  background: rgba(212,175,55,.025) !important;
  color: #bab3c8 !important;
  font-size: 9px !important;
  text-align: left !important;
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease !important;
}

.nx-support-template:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(212,175,55,.42) !important;
  box-shadow: 0 0 16px rgba(212,175,55,.08) !important;
}

/* Form fields */
.nx-support-fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: 11px !important;
}

.nx-support-fields label {
  display: grid !important;
  gap: 6px !important;
  min-width: 0 !important;
  color: #9ca4b4 !important;
  font-size: 9px !important;
}

.nx-support-fields label.wide {
  grid-column: 1 / -1 !important;
}

.nx-support-fields input,
.nx-support-fields textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(255,255,255,.075) !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.015) !important;
  color: #eef0f5 !important;
  padding: 11px 12px !important;
  outline: none !important;
  font: inherit !important;
  font-size: 10px !important;
  transition:
    border-color .24s ease,
    box-shadow .24s ease,
    background .24s ease !important;
}

.nx-support-fields textarea {
  min-height: 112px !important;
  resize: vertical !important;
}

.nx-support-fields input:focus,
.nx-support-fields textarea:focus {
  border-color: rgba(155,108,255,.42) !important;
  background: rgba(155,108,255,.025) !important;
  box-shadow:
    0 0 0 3px rgba(155,108,255,.055),
    0 0 20px rgba(155,108,255,.07) !important;
}

.nx-support-fields input::placeholder,
.nx-support-fields textarea::placeholder {
  color: #666d7b !important;
}

/* Actions */
.nx-support-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 9px !important;
  margin-top: 4px !important;
}

.nx-support-secondary,
.nx-support-primary {
  min-height: 43px !important;
  border-radius: 12px !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  transition:
    transform .24s ease,
    border-color .24s ease,
    box-shadow .24s ease !important;
}

.nx-support-secondary {
  border: 1px solid rgba(255,255,255,.07) !important;
  background: rgba(255,255,255,.018) !important;
  color: #c8cbd5 !important;
}

.nx-support-primary {
  border: 1px solid rgba(212,175,55,.25) !important;
  background:
    linear-gradient(135deg,#d8b64b,#a87eff) !important;
  color: #0a0a0f !important;
  box-shadow:
    0 0 22px rgba(212,175,55,.11),
    0 0 28px rgba(168,126,255,.09) !important;
}

.nx-support-secondary:hover,
.nx-support-primary:hover {
  transform: translateY(-1px) !important;
}

.nx-support-primary:hover {
  box-shadow:
    0 0 28px rgba(212,175,55,.18),
    0 0 36px rgba(168,126,255,.15) !important;
}

/* Validation/result message */
.nx-support-status-msg {
  margin: 0 !important;
  padding: 10px 11px !important;
  border-radius: 11px !important;
  font-size: 9px !important;
  line-height: 1.55 !important;
}

.nx-support-status-msg.error {
  border: 1px solid rgba(255,90,115,.22) !important;
  background: rgba(255,90,115,.05) !important;
  color: #ff9cad !important;
}

.nx-support-status-msg.success {
  border: 1px solid rgba(127,240,163,.20) !important;
  background: rgba(127,240,163,.04) !important;
  color: #a8f4bf !important;
}

/* Cookies: no flow participation and left side only. */
.nx-cookie-banner {
  position: fixed !important;
  left: 20px !important;
  right: auto !important;
  bottom: 20px !important;
  top: auto !important;
  z-index: 2147482500 !important;
  width: min(520px, calc(100vw - 40px)) !important;
  max-width: calc(100vw - 40px) !important;
  box-sizing: border-box !important;
}

/* Keep the support launcher on the opposite side of the cookie card. */
@media (min-width: 721px) {
  .nx-cookie-banner {
    max-height: 130px !important;
  }
}

/* Compact but usable mobile stacking. */
@media (max-width: 720px) {
  .nx-support-widget {
    right: 14px !important;
    bottom: calc(14px + env(safe-area-inset-bottom)) !important;
  }

  .nx-support-launcher {
    right: 14px !important;
    bottom: calc(14px + env(safe-area-inset-bottom)) !important;
  }

  .nx-support-panel {
    right: 14px !important;
    bottom: calc(86px + env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 28px) !important;
    max-height: calc(100vh - 108px - env(safe-area-inset-bottom)) !important;
    padding: 18px !important;
    border-radius: 18px !important;
  }

  .nx-support-categories {
    grid-template-columns: 1fr !important;
  }

  .nx-support-fields {
    grid-template-columns: 1fr !important;
  }

  .nx-support-fields label.wide {
    grid-column: auto !important;
  }

  .nx-cookie-banner {
    left: 14px !important;
    bottom: calc(88px + env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
  }
}
