/* ============================================================
   NEXYN Premium — Animations & Interactions
   nexyn-premium.css  |  v1.0  |  2026
   ============================================================ */

/* ── 0. PAGE TRANSITIONS (mobile app-like) ──────────────────── */
@media (max-width: 768px) {
  @keyframes nx-page-in {
    from { opacity: 0; }
    to   { opacity: 1; }
  }

  body {
    animation: nx-page-in 0.18s ease forwards;
  }

  body.nx-page-out {
    opacity: 0;
    transition: opacity 0.12s ease;
    pointer-events: none;
  }
}

/* ── 1. Smooth-scroll viewport wrapper ─────────────────────── */
html.nx-smooth {
  overflow: hidden;
  height: 100%;
}
html.nx-smooth body {
  overflow: hidden;
  height: 100%;
}
#nx-scroll-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow-y: scroll;
  overflow-x: hidden;
  /* Hide native scrollbar — keep it functional */
  scrollbar-width: thin;
  scrollbar-color: rgba(139,92,246,.35) transparent;
}
#nx-scroll-container::-webkit-scrollbar { width: 4px; }
#nx-scroll-container::-webkit-scrollbar-track { background: transparent; }
#nx-scroll-container::-webkit-scrollbar-thumb {
  background: rgba(139,92,246,.35);
  border-radius: 2px;
}

/* Virtual proxy that gives the page its natural height */
#nx-scroll-proxy {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  pointer-events: none;
  visibility: hidden;
}

/* ── 2. Mouse parallax — hero layers ───────────────────────── */
.nx-parallax-layer {
  will-change: transform;
  transition: transform 0.1s linear;
}

/* Hero text children get a subtle parallax */
.hero .hero-content,
.page-hero .hero-content {
  will-change: transform;
}

/* ── 2b. HERO H1 — CINEMATIC REVEAL ────────────────────────── */

/* Wrapper overflow:hidden pour chaque ligne */
.nx-h1-line {
  display: block;
  overflow: hidden;
  line-height: 1.12;
  padding-bottom: 0.06em; /* évite que les descentes soient coupées */
}

/* Chaque ligne part du bas et remonte */
.nx-h1-inner {
  display: inline-block;
  transform: translateY(115%);
  opacity: 0;
  transition:
    transform 1s cubic-bezier(0.16, 1, 0.3, 1),
    opacity   0.4s ease;
  will-change: transform, opacity;
}

.nx-h1-inner.nx-revealed {
  transform: translateY(0);
  opacity: 1;
}

/* Shimmer gradient one-pass sur "devient" */
@keyframes nx-grad-shimmer {
  0%   { background-position: 200% center; }
  100% { background-position: -100% center; }
}

.nx-h1-shimmer {
  background-image: linear-gradient(
    90deg,
    #6366F1 0%,
    #8B5CF6 20%,
    #c4b5fd 45%,
    #a78bfa 65%,
    #6366F1 100%
  ) !important;
  background-size: 300% auto !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: nx-grad-shimmer 1.8s cubic-bezier(0.25, 1, 0.5, 1) forwards !important;
}

/* "performance" scramble — police monospace temporaire pendant le decode */
.nx-scrambling {
  letter-spacing: 0.02em;
}

/* ── 3. Hover reveal — project cards ───────────────────────── */
/* Wrapper on .project-thumb must be position:relative */
.project-thumb {
  position: relative;
  overflow: hidden;
}

.nx-hover-reveal {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  background: linear-gradient(
    to top,
    rgba(2, 2, 8, 0.92) 0%,
    rgba(139, 92, 246, 0.45) 60%,
    transparent 100%
  );
  transform: translateY(100%);
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 10;
  border-radius: inherit;
}

.project-card:hover .nx-hover-reveal,
.project-card:focus-within .nx-hover-reveal {
  transform: translateY(0);
}

/* Result badge inside the reveal */
.nx-hr-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 20px;
  margin-bottom: 8px;
  width: fit-content;
}

/* Color variants */
.nx-hr-badge.violet {
  background: rgba(139, 92, 246, 0.22);
  color: #c4b5fd;
  border: 1px solid rgba(139, 92, 246, 0.4);
}
.nx-hr-badge.gold {
  background: rgba(245, 158, 11, 0.18);
  color: #fcd34d;
  border: 1px solid rgba(245, 158, 11, 0.35);
}
.nx-hr-badge.teal {
  background: rgba(20, 184, 166, 0.18);
  color: #5eead4;
  border: 1px solid rgba(20, 184, 166, 0.35);
}
.nx-hr-badge.rose {
  background: rgba(244, 63, 94, 0.18);
  color: #fda4af;
  border: 1px solid rgba(244, 63, 94, 0.35);
}

.nx-hr-val {
  font-size: 1.5rem;
  font-weight: 800;
  color: #ffffff;
  line-height: 1.1;
  margin-bottom: 2px;
}

.nx-hr-label {
  font-size: 0.78rem;
  color: rgba(226, 232, 240, 0.75);
  font-weight: 500;
}

/* ── 4. Stagger — grid children ────────────────────────────── */
/* Applied via JS — we just define the base transition */
.nx-stagger-child {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.nx-stagger-child.nx-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── 5. General performance hints ──────────────────────────── */
.hero,
.page-hero {
  isolation: isolate; /* Create stacking context */
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  .nx-hover-reveal {
    transform: translateY(0) !important;
    background: rgba(2, 2, 8, 0.82);
  }
  .nx-stagger-child {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .nx-parallax-layer,
  .hero .hero-content,
  .page-hero .hero-content {
    will-change: auto;
    transform: none !important;
  }
}


/* ── 6. Page-hero — gradient background (replaces video) ───── */
.page-hero {
  background: radial-gradient(ellipse 110% 70% at 50% -10%, #120d2a 0%, #060414 50%, #020208 100%) !important;
}
.nx-page-orbs {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.nx-page-orb-1 {
  position: absolute;
  top: -100px;
  left: -80px;
  width: 560px;
  height: 560px;
  background: radial-gradient(circle, rgba(139,92,246,.22) 0%, transparent 65%);
  border-radius: 50%;
  animation: nx-orb-float 9s ease-in-out infinite alternate;
}
.nx-page-orb-2 {
  position: absolute;
  top: -60px;
  right: -100px;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(99,102,241,.16) 0%, transparent 65%);
  border-radius: 50%;
  animation: nx-orb-float 12s ease-in-out infinite alternate-reverse;
}
@keyframes nx-orb-float {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(30px, 20px) scale(1.08); }
}

/* ── 7. Mobile Responsive — corrections globales ───────────── */

/* --- 768px : layout hero + nav --- */
@media (max-width: 768px) {

  /* BUG PRINCIPAL : hero est display:flex sans flex-direction:column
     → les stats s'affichaient à CÔTÉ du contenu */
  .hero {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding-top: 80px !important;
    padding-bottom: 0 !important;
    height: auto !important;
    min-height: 100svh !important;
  }

  .hero-content {
    padding: 0 20px !important;
    width: 100% !important;
  }

  /* Stats bar : pleine largeur sous le contenu */
  .hero-stats-bar {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    padding: 0 16px 28px !important;
    margin-top: 20px !important;
  }

  .hero-stats-inner {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .h-stat {
    padding: 18px 14px !important;
  }

  /* Cacher les indicators (points de slide) sur mobile */
  .hero-indicators {
    display: none !important;
  }

  /* Nav padding réduit */
  .nav-inner {
    padding: 0 16px !important;
  }

  /* Page hero */
  .page-hero {
    padding: 96px 20px 48px !important;
  }
}

/* --- 480px : typographie + CTAs --- */
@media (max-width: 480px) {

  /* H1 hero */
  .hero h1 {
    font-size: clamp(1.8rem, 9vw, 2.8rem) !important;
    max-width: 100% !important;
    margin-bottom: 16px !important;
    line-height: 1.1 !important;
  }

  /* Eyebrow */
  .hero-eyebrow {
    font-size: .68rem !important;
    letter-spacing: .07em !important;
    padding: 4px 10px !important;
    margin-bottom: 18px !important;
  }

  /* Subtitle */
  .hero-sub {
    font-size: .92rem !important;
    max-width: 100% !important;
    margin-bottom: 28px !important;
  }

  /* CTAs : empilés verticalement */
  .hero-ctas {
    flex-direction: column !important;
    width: 100% !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
  }

  .btn-large,
  .hero-ctas .btn-primary,
  .hero-ctas .btn-ghost {
    width: 100% !important;
    justify-content: center !important;
    padding: 14px 20px !important;
  }

  /* Stats cards */
  .h-stat {
    padding: 14px 10px !important;
  }

  .h-stat-num {
    font-size: 1.35rem !important;
  }

  .h-stat-label,
  .h-stat-note {
    font-size: .67rem !important;
  }

  /* Sections padding réduit */
  .section {
    padding: 56px 16px !important;
  }

  /* Proof bar : stack vertical */
  .proof-bar {
    flex-direction: column !important;
  }

  .proof-item:not(:last-child) {
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.07) !important;
  }
}

/* ── 8. Bottom App Navigation ───────────────────────────────── */
@media (max-width: 768px) {

  /* ── Barre de navigation type app ── */
  .nx-app-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9900;
    display: flex;
    align-items: stretch;
    background: rgba(6, 4, 20, 0.96);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-top: 1px solid rgba(139, 92, 246, 0.18);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    box-shadow: 0 -4px 40px rgba(0, 0, 0, 0.5),
                0 -1px 0 rgba(139, 92, 246, 0.12);
  }

  .nx-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 10px 4px 11px;
    color: rgba(226, 232, 240, 0.38);
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    position: relative;
  }

  .nx-tab i {
    font-size: 1.1rem;
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
                filter 0.25s ease;
    display: block;
  }

  /* Ligne active au dessus */
  .nx-tab::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    width: 24px;
    height: 2px;
    background: linear-gradient(90deg, #8B5CF6, #6366F1);
    border-radius: 0 0 2px 2px;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  }

  .nx-tab.active {
    color: #a78bfa;
  }

  .nx-tab.active::before {
    transform: translateX(-50%) scaleX(1);
  }

  .nx-tab.active i {
    transform: translateY(-2px) scale(1.15);
    filter: drop-shadow(0 0 8px rgba(139, 92, 246, 0.65));
  }

  /* Onglet Contact — accent violet */
  .nx-tab[data-page="contact"] {
    color: rgba(167, 139, 250, 0.55);
  }

  .nx-tab[data-page="contact"].active,
  .nx-tab[data-page="contact"]:active {
    color: #a78bfa;
  }

  /* Feedback tactile au tap */
  .nx-tab:active {
    transform: scale(0.91);
    color: #a78bfa;
  }

  /* ── Body padding pour ne pas cacher le contenu ── */
  body {
    padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* ── Mob-sticky (Audit gratuit) au dessus de la tab bar ── */
  .mob-sticky {
    bottom: calc(62px + env(safe-area-inset-bottom, 0px)) !important;
    padding-bottom: 10px !important;
  }

  /* ── Footer padding ── */
  footer, .footer {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Desktop : cacher la tab bar ── */
@media (min-width: 769px) {
  .nx-app-nav {
    display: none !important;
  }
}

/* ── 9. Touch feedback global ───────────────────────────────── */
@media (pointer: coarse) {
  a, button {
    -webkit-tap-highlight-color: transparent;
  }
  .btn-primary:active,
  .btn-ghost:active,
  .btn-secondary:active,
  .nav-cta:active {
    transform: scale(0.95) !important;
    opacity: 0.88 !important;
    transition: transform 0.1s, opacity 0.1s !important;
  }
  .service-card:active,
  .pricing-card:active,
  .team-card:active {
    transform: scale(0.98) !important;
    transition: transform 0.1s !important;
  }
}

/* ── 10. Touch devices — disable parallax effects ───────────── */
@media (pointer: coarse) {
  .nx-hover-reveal {
    transform: translateY(0);
    background: linear-gradient(
      to top,
      rgba(2, 2, 8, 0.88) 0%,
      rgba(139, 92, 246, 0.3) 50%,
      transparent 100%
    );
  }
}

/* ════════════════════════════════════════════════════════════
   11. NXFOOTER — Footer glassmorphism
   ════════════════════════════════════════════════════════════ */
.nxfooter {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 24px 24px 32px;
  z-index: 10;
  margin-top: 0;
}
.nxfooter-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.nxfooter-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
}
.nxfooter-blob-1 {
  top: -80px; left: 25%;
  width: 288px; height: 288px;
  background: rgba(139,92,246,.15);
}
.nxfooter-blob-2 {
  bottom: -48px; right: 25%;
  width: 320px; height: 320px;
  background: rgba(99,102,241,.15);
}
.nxfooter-glass {
  position: relative;
  z-index: 1;
  max-width: 1120px;
  margin: 0 auto;
  padding: 40px 32px;
  border-radius: 16px;
  backdrop-filter: blur(3px) saturate(180%);
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  display: flex;
  flex-wrap: wrap;
  gap: 48px;
  justify-content: space-between;
  align-items: flex-start;
}
.nxfooter-brand {
  flex: 0 0 260px;
  max-width: 300px;
}
.nxfooter-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  margin-bottom: 20px;
}
.nxfooter-logo img {
  width: 32px; height: 32px;
  object-fit: contain;
}
.nxfooter-logo span {
  font-size: 1.2rem;
  font-weight: 800;
  background: linear-gradient(135deg, #fff 60%, #8B5CF6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: .04em;
}
.nxfooter-brand > p {
  font-size: .88rem;
  color: rgba(148,163,184,.7);
  line-height: 1.7;
  margin-bottom: 24px;
}
.nxfooter-socials { display: flex; gap: 10px; }
.nxfooter-social {
  width: 36px; height: 36px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center;
  color: rgba(148,163,184,.6);
  font-size: .82rem;
  text-decoration: none;
  transition: all .2s;
}
.nxfooter-social:hover {
  border-color: #8B5CF6;
  color: #8B5CF6;
  background: rgba(139,92,246,.1);
}
.nxfooter-nav {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
  flex: 1;
  justify-content: flex-end;
}
.nxfooter-col { min-width: 130px; }
.nxfooter-col-title {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #8B5CF6;
  margin-bottom: 16px;
  margin-top: 0;
}
.nxfooter-col ul {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.nxfooter-col ul a {
  font-size: .88rem;
  color: rgba(148,163,184,.7);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color .2s;
}
.nxfooter-col ul a:hover { color: #e2e8f0; }
.nxfooter-col ul a i {
  color: #8B5CF6;
  font-size: .78rem;
  flex-shrink: 0;
  width: 14px;
}
.nxfooter-bottom {
  position: relative;
  z-index: 1;
  max-width: 1120px;
  margin: 20px auto 0;
  padding: 20px 8px 0;
  border-top: 1px solid rgba(255,255,255,.06);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: .78rem;
  color: rgba(148,163,184,.45);
}
.nxfooter-bottom a {
  color: rgba(148,163,184,.45);
  text-decoration: none;
  transition: color .2s;
}
.nxfooter-bottom a:hover { color: rgba(148,163,184,.8); }
@media (max-width: 900px) {
  .nxfooter-glass {
    flex-direction: column;
    gap: 32px;
    padding: 28px 20px;
  }
  .nxfooter-brand { max-width: 100%; flex: none; }
  .nxfooter-nav { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .nxfooter { padding: 16px 12px 24px; }
  .nxfooter-nav { gap: 24px; }
  .nxfooter-col { min-width: 100px; }
  .nxfooter-bottom {
    flex-direction: column;
    text-align: center;
    gap: 6px;
  }
}

/* ============================================================
   11. RGPD COOKIE BANNER
   ============================================================ */
#nx-cookie-banner {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(120px);
  width: calc(100% - 48px);
  max-width: 780px;
  z-index: 9999;
  opacity: 0;
  transition: transform .4s cubic-bezier(.22,1,.36,1), opacity .4s ease;
  pointer-events: none;
}
#nx-cookie-banner.nx-cookie-visible {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.nx-cookie-inner {
  background: rgba(13,11,32,.96);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(139,92,246,.35);
  border-radius: 16px;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 20px;
  box-shadow: 0 8px 40px rgba(0,0,0,.5), 0 0 0 1px rgba(139,92,246,.1);
}
.nx-cookie-text {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}
.nx-cookie-icon { font-size: 1.3rem; flex-shrink: 0; }
.nx-cookie-text p {
  font-size: .82rem;
  color: rgba(209,213,219,.85);
  line-height: 1.5;
  margin: 0;
}
.nx-cookie-text a {
  color: #a78bfa;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.nx-cookie-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.nx-cookie-btn {
  padding: 8px 18px;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: opacity .2s, transform .2s;
}
.nx-cookie-btn:hover { opacity: .85; transform: translateY(-1px); }
.nx-cookie-refuse {
  background: rgba(255,255,255,.08);
  color: #d1d5db;
}
.nx-cookie-accept {
  background: #8B5CF6;
  color: #fff;
}
@media (max-width: 600px) {
  .nx-cookie-inner { flex-direction: column; align-items: flex-start; }
  .nx-cookie-actions { width: 100%; }
  .nx-cookie-btn { flex: 1; text-align: center; }
}

/* ============================================================
   12. NXNAV — Navigation globale
   ============================================================ */
.nxnav{position:fixed;top:0;left:0;right:0;z-index:1000;transition:top .35s ease,background .35s ease,border-radius .35s ease,box-shadow .35s ease,backdrop-filter .35s ease,border .35s ease;}
.nxnav.scrolled{top:12px;left:50%;right:auto;width:calc(100% - 32px);max-width:1152px;transform:translateX(-50%);border-radius:18px;backdrop-filter:blur(22px) saturate(180%);border:2px solid transparent;background:linear-gradient(rgba(9,7,28,.78),rgba(9,7,28,.78)) padding-box,linear-gradient(135deg,#8B5CF6 0%,#6366F1 50%,#8B5CF6 100%) border-box;box-shadow:0 8px 40px rgba(0,0,0,.45),0 0 20px rgba(139,92,246,.15);}
.nxnav-inner{display:flex;align-items:center;height:64px;padding:0 24px;max-width:1152px;margin:0 auto;transition:height .35s ease;}
.nxnav.scrolled .nxnav-inner{height:68px;}
.nxnav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;}
.nxnav-logo-img{height:22px;width:auto;display:block;}
.nxnav-links{display:flex;align-items:center;gap:4px;flex:1;margin-left:24px;}
.nxnav-link{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;font-size:.88rem;font-weight:500;color:rgba(209,213,219,1);text-decoration:none;position:relative;transition:color .2s;}
.nxnav-link::after{content:'';position:absolute;left:12px;right:12px;bottom:4px;height:1.5px;background:#8B5CF6;transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
.nxnav-link:hover{color:#fff;}
.nxnav-link:hover::after{transform:scaleX(1);}
.nxnav-mega{position:relative;}
.nxnav-chevron{transition:transform .25s;margin-left:2px;vertical-align:middle;}
.nxnav-mega:hover .nxnav-chevron{transform:rotate(180deg);}
.nxnav-mega-drop{position:absolute;top:calc(100% + 14px);left:-24px;width:540px;background:rgba(9,7,28,.97);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:4px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .22s,visibility .22s,transform .22s;z-index:200;box-shadow:0 24px 60px rgba(0,0,0,.5);}
.nxnav-mega:hover .nxnav-mega-drop{opacity:1;visibility:visible;transform:translateY(0);}
.nxnav-nm-item{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border-radius:12px;text-decoration:none;transition:background .18s;}
.nxnav-nm-item:hover{background:rgba(139,92,246,.12);}
.nxnav-nm-icon{width:36px;height:36px;border-radius:8px;background:rgba(139,92,246,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#a78bfa;font-size:.9rem;}
.nxnav-nm-texts{display:flex;flex-direction:column;gap:2px;}
.nxnav-nm-title{font-size:.88rem;font-weight:600;color:#e2e8f0;}
.nxnav-nm-sub{font-size:.76rem;color:rgba(148,163,184,.7);}
.nxnav-nm-footer{grid-column:1/-1;display:flex;gap:8px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06);margin-top:4px;}
.nxnav-nm-footer a{flex:1;text-align:center;padding:8px 12px;border-radius:8px;font-size:.82rem;font-weight:500;text-decoration:none;transition:background .18s,color .18s;color:#a78bfa;background:rgba(139,92,246,.1);}
.nxnav-nm-footer a:hover{background:rgba(139,92,246,.2);color:#c4b5fd;}
.nxnav-cta{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:50px;font-size:.88rem;font-weight:600;color:#fff;text-decoration:none;background:#7C3AED;border:1px solid rgba(139,92,246,.4);transition:background .2s,box-shadow .2s,transform .2s;white-space:nowrap;margin-left:16px;flex-shrink:0;}
.nxnav-cta:hover{background:#6D28D9;box-shadow:0 4px 20px rgba(124,58,237,.4);transform:translateY(-1px);}
.nxnav-burger{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:4px;margin-left:8px;flex-shrink:0;line-height:0;}
.nxnav-bar{transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .25s ease;transform-box:fill-box;transform-origin:center;}
.nxnav-burger.open .nxnav-bar-1{transform:translateY(6px) rotate(45deg);}
.nxnav-burger.open .nxnav-bar-2{opacity:0;transform:scaleX(0);}
.nxnav-burger.open .nxnav-bar-3{transform:translateY(-6px) rotate(-45deg);}
.nxnav-overlay{display:flex;position:fixed;inset:0;background:rgba(2,2,8,.98);z-index:999;flex-direction:column;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility .35s ease;}
.nxnav-overlay.open{opacity:1;visibility:visible;pointer-events:auto;}
.nxnav-overlay-close{position:absolute;top:24px;right:24px;background:none;border:none;color:#fff;cursor:pointer;padding:8px;border-radius:8px;transition:background .2s,opacity .3s ease;line-height:0;opacity:0;}
.nxnav-overlay.open .nxnav-overlay-close{opacity:1;transition-delay:.2s;}
.nxnav-overlay-close:hover{background:rgba(255,255,255,.06);}
.nxnav-overlay-links{display:flex;flex-direction:column;gap:4px;width:100%;max-width:400px;padding:32px;}
.nxnav-overlay-links a{font-size:1.6rem;font-weight:700;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none;display:block;opacity:0;transform:translateY(20px);transition:color .2s,padding-left .2s,opacity .35s ease,transform .35s ease;}
.nxnav-overlay.open .nxnav-overlay-links a{opacity:1;transform:translateY(0);}
.nxnav-overlay.open .nxnav-overlay-links a:nth-child(1){transition-delay:.08s;}
.nxnav-overlay.open .nxnav-overlay-links a:nth-child(2){transition-delay:.14s;}
.nxnav-overlay.open .nxnav-overlay-links a:nth-child(3){transition-delay:.20s;}
.nxnav-overlay.open .nxnav-overlay-links a:nth-child(4){transition-delay:.26s;}
.nxnav-overlay.open .nxnav-overlay-links a:nth-child(5){transition-delay:.32s;}
.nxnav-overlay.open .nxnav-overlay-links a:nth-child(6){transition-delay:.38s;}
.nxnav-overlay-links a:hover{color:#a78bfa;padding-left:8px;}
.nxnav-overlay-cta{color:#8B5CF6 !important;border-bottom:none !important;margin-top:16px;}
@media(max-width:768px){
  .nxnav-links,.nxnav-cta{display:none;}
  .nxnav-burger{display:flex;}
  .nxnav.scrolled{width:calc(100% - 24px);top:12px;}
}
