.elementor-14 .elementor-element.elementor-element-nwh00004 > .elementor-container{max-width:100px;}.elementor-14 .elementor-element.elementor-element-nwh00004{padding:0px 0px 0px 0px;}.elementor-14 .elementor-element.elementor-element-nwh00003:not(.elementor-motion-effects-element-type-background), .elementor-14 .elementor-element.elementor-element-nwh00003 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#05060a;}.elementor-14 .elementor-element.elementor-element-nwh00003 > .elementor-container{max-width:1340px;}.elementor-14 .elementor-element.elementor-element-nwh00003{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-14 .elementor-element.elementor-element-nwh00003 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-14 .elementor-element.elementor-element-nwh00002.elementor-column > .elementor-widget-wrap{justify-content:left;}.elementor-14 .elementor-element.elementor-element-nwh00002 > .elementor-element-populated{padding:0px 0px 0px 0px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS */@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&family=Newsreader:ital,wght@0,400;0,500;1,400;1,500&display=swap');

/* ---- dark page background (styles --bg) ---- */
body.page-id-0 { background: #05060a; color: #e6edf3; }
body.page-id-0 .elementor { position: relative; z-index: 3; }

/* ---- AURORA background layer (ported from styles.css .aurora) ---- */
body.page-id-0::before {
  content: ""; position: fixed; inset: -20%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 60% 40% at 20% 30%, rgba(124,92,255,0.35), transparent 70%),
    radial-gradient(ellipse 50% 50% at 80% 60%, rgba(95,212,255,0.25), transparent 70%),
    radial-gradient(ellipse 40% 30% at 50% 90%, rgba(255,79,154,0.15), transparent 70%);
  filter: blur(40px);
  animation: nwAuroraShift 18s ease-in-out infinite alternate;
}
/* ---- bg-grid layer (ported from styles.css .bg-grid) ---- */
body.page-id-0::after {
  content: ""; position: fixed; inset: 0; z-index: 1; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse at center, black 0%, transparent 80%);
  mask-image: radial-gradient(ellipse at center, black 0%, transparent 80%);
}
@keyframes nwAuroraShift {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-3%, 5%) scale(1.1); }
}

/* ---- frosted GLASS utility (ported from styles.css .glass). Apply .nw-glass
   to any widget/column via _css_classes. Hover lift + neon edge. ---- */
.nw-glass {
  background: rgba(12,16,28,0.55);
  -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.08); border-radius: 24px;
  position: relative; overflow: hidden;
  transition: transform .4s cubic-bezier(.2,.7,.2,1), border-color .3s ease, box-shadow .4s ease;
}
.nw-glass:hover {
  transform: translateY(-6px);
  border-color: rgba(95,212,255,0.35);
  box-shadow: 0 24px 60px rgba(95,212,255,0.12), 0 0 0 1px rgba(95,212,255,0.15);
}

/* ---- gradient text (ported from styles.css .grad). Apply .nw-grad to a
   heading; spans the neon -> violet -> pink sweep. ---- */
.nw-grad, .nw-grad .elementor-heading-title {
  background: linear-gradient(135deg, #5fd4ff 0%, #7c5cff 50%, #ff4f9a 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  background-size: 200% 200%; animation: nwGradShift 8s ease infinite;
}
@keyframes nwGradShift {
  0%,100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* ---- eyebrow accent line (matches .section-eyebrow ::before) ---- */
body.page-id-0 .elementor-widget-heading .elementor-heading-title { position: relative; }


/* Tight section header spacing. */
body.page-id-0 .elementor-widget-heading:has(+ .elementor-widget-divider) {
  margin-block-end: 2px !important; margin-bottom: 2px !important;
}
body.page-id-0 .elementor-widget-heading:has(+ .elementor-widget-divider) .elementor-heading-title {
  margin: 0 !important; padding: 0 !important; line-height: 1.15 !important;
}
body.page-id-0 .elementor-widget-divider {
  margin-block-start: 0 !important; margin-block-end: 6px !important;
  margin-top: 0 !important; margin-bottom: 6px !important;
}
body.page-id-0 .elementor-widget-divider .elementor-divider-separator {
  margin-inline: auto !important; margin-left: auto !important; margin-right: auto !important;
}
body.page-id-0 .elementor-widget-divider + .elementor-widget-heading {
  margin-block-start: 0 !important; margin-top: 0 !important;
  margin-block-end: 10px !important; margin-bottom: 10px !important;
}
body.page-id-0 .elementor-widget-divider + .elementor-widget-heading .elementor-heading-title {
  margin: 0 !important; padding: 0 !important; line-height: 1.1 !important;
}
body.page-id-0 .elementor-widget-divider + .elementor-widget-heading + .elementor-widget-text-editor {
  margin-block-start: 4px !important; margin-top: 4px !important;
}


body.page-id-0 .elementor-widget-text-editor a,
body.page-id-0 .elementor-widget-text-editor a:link,
body.page-id-0 .elementor-widget-text-editor a:visited,
body.page-id-0 .elementor-widget-text-editor a:hover { color: #5fd4ff; }


.elementor-invisible{opacity:1 !important;visibility:visible !important;}
/* scroll-in reveal driven by the footer IntersectionObserver script (cross-browser).
   Content is VISIBLE by default; JS adds .nw-pre (hide) ONLY to below-fold elements
   then .nw-in (reveal) as they scroll in — so it can never leave content blank. */
.nw-anim{transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1);}
@media (prefers-reduced-motion:no-preference){
  .nw-anim.nw-pre{opacity:0;transform:translateY(38px);}
}
.nw-anim.nw-in{opacity:1;transform:none;}
/* modern box hover (apply class .nw-box to cards/columns) */
.nw-box{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,border-color .3s ease;}
.nw-box:hover{transform:translateY(-7px);box-shadow:0 24px 46px rgba(95,212,255,.14);}

header.site-header, #site-header { display:none !important; }
/* sticky sitewide — ONLY the header location is sticky (a 2nd sticky on
   #nw-header fought it and caused a scroll flash) */
.elementor-location-header { position:sticky !important; top:0; z-index:1000; }
#nw-header { position:relative; z-index:1000;
  background:rgba(7,9,14,0.88);
  -webkit-backdrop-filter:blur(16px) saturate(180%); backdrop-filter:blur(16px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,0.08); transition:box-shadow .25s ease, background .25s ease; }
#nw-header.nw-shrink { background:rgba(5,6,10,0.96); box-shadow:0 6px 22px rgba(0,0,0,0.5); }
#nw-header .elementor-widget-html, #nw-header .elementor-widget-container { width:100%; }
#nw-header .nw-hdrbar { display:flex; align-items:center; gap:30px; max-width:1340px; margin:0 auto; padding:14px 36px; position:relative; transition:padding .25s ease; }
#nw-header.nw-shrink .nw-hdrbar { padding-top:9px; padding-bottom:9px; }
#nw-header.nw-shrink .nw-hlogo img { height:30px; }
#nw-header .nw-hlogo { flex:0 0 auto; line-height:0; display:block; }
#nw-header .nw-hlogo img { height:36px; width:auto; display:block; transition:transform .4s cubic-bezier(.2,.7,.2,1), height .25s ease; }
#nw-header .nw-hlogo:hover img { transform:translateY(-2px); }
#nw-header .nw-hlogo-text { font-family:Newsreader; font-size:22px; font-weight:600; color:#e6edf3; white-space:nowrap; }
#nw-header .nw-hmenu { margin-left:auto; display:flex; align-items:center; gap:28px; }
#nw-header .nw-hnav { display:flex; align-items:center; gap:28px; }
#nw-header .nw-hnav a { font-family:JetBrains Mono; font-size:13px; font-weight:500; color:#9aa3b2; text-decoration:none; white-space:nowrap; position:relative; padding:6px 0; transition:color .3s ease; }
#nw-header .nw-hnav a::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:linear-gradient(90deg,#5fd4ff,#7c5cff); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
#nw-header .nw-hnav a:hover { color:#e6edf3; }
#nw-header .nw-hnav a:hover::after { transform:scaleX(1); }
#nw-header .nw-hcta { flex:0 0 auto; font-family:JetBrains Mono; font-size:13px; padding:8px 16px; border-radius:9999px; border:1px solid rgba(95,212,255,0.4); color:#5fd4ff; background:rgba(95,212,255,0.06); text-decoration:none; white-space:nowrap; transition:background .3s ease, color .3s ease, box-shadow .3s ease; }
#nw-header .nw-hcta:hover { background:#5fd4ff; color:#05060a; box-shadow:0 0 24px rgba(95,212,255,0.5); }
/* hamburger — hidden on desktop, animates to an X when open */
#nw-header .nw-hburger { display:none; flex:0 0 auto; margin-left:auto; background:none; border:0; cursor:pointer; padding:9px; }
#nw-header .nw-hburger span { display:block; width:26px; height:2px; background:#e6edf3; margin:5px 0; border-radius:2px; transition:transform .3s ease, opacity .2s ease; }
#nw-header.nw-menu-open .nw-hburger span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
#nw-header.nw-menu-open .nw-hburger span:nth-child(2) { opacity:0; }
#nw-header.nw-menu-open .nw-hburger span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
@media (max-width:1100px) { #nw-header .nw-hmenu { gap:18px; } #nw-header .nw-hnav { gap:18px; } #nw-header .nw-hdrbar { gap:18px; padding:14px 24px; } }
/* MOBILE: hamburger toggles a full-width dropdown panel holding nav + CTA */
@media (max-width:980px) {
  #nw-header .nw-hburger { display:block; }
  #nw-header .nw-hmenu { display:none; position:absolute; top:100%; left:0; right:0; margin:0; flex-direction:column; align-items:stretch; gap:0; background:rgba(5,6,10,0.96); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 16px 34px rgba(0,0,0,0.5); padding:6px 0 18px; border-top:1px solid rgba(255,255,255,0.08); }
  #nw-header.nw-menu-open .nw-hmenu { display:flex; }
  #nw-header .nw-hnav { flex-direction:column; align-items:stretch; gap:0; width:100%; }
  #nw-header .nw-hnav a { padding:14px 28px; border-bottom:1px solid rgba(255,255,255,0.06); font-size:15px; }
  #nw-header .nw-hcta { margin:16px 28px 0; text-align:center; }
}/* End custom CSS */