/* Start custom CSS for html, class: .elementor-element-d07aafa *//* =====================================================================
   BASE / SHARED
   ===================================================================== */

:root{
  --ink:#0a0a0b;
  --charcoal:#151517;
  --panel:#1c1c1f;
  --panel-2:#232326;
  --line:#2a2a2e;
  --line-soft:#232327;
  --volt:#c6ff3d;
  --volt-dim:#9fd92e;
  --volt-soft:rgba(198,255,61,.1);
  --paper:#f5f5f2;
  --grey:#9a9a9f;
  --grey-dim:#6b6b70;
  --radius:2px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ===== Global Reset ===== */

*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  margin:0 !important;
  padding:0 !important;
  scroll-behavior:smooth;
  width:100%;
}

body{
  margin:0 !important;
  padding:0 !important;
  width:100%;
  min-height:100%;
  background:var(--ink);
  color:var(--paper);
  font-family:'Archivo',sans-serif;
  overflow-x:hidden;
}

::selection{
  background:var(--volt);
  color:var(--ink);
}

img{
  max-width:100%;
}

a{
  color:inherit;
  text-decoration:none;
}


/* =====================================================================
   WORDPRESS / THEME SPACING RESET
   ===================================================================== */

/*
   WordPress themes and page builders sometimes add default
   margin/padding around the main page wrappers.
*/

#page,
.site,
.site-content,
.site-main,
main,
.wp-site-blocks,
.wp-block-group,
.entry-content{
  margin-top:0 !important;
}

#page,
.site,
.site-content,
.site-main,
main,
.wp-site-blocks{
  padding-top:0 !important;
}

/* Prevent WordPress block spacing from creating unwanted gaps */
.wp-site-blocks > :first-child{
  margin-top:0 !important;
}

.wp-site-blocks > :last-child{
  margin-bottom:0 !important;
}


/* =====================================================================
   TYPOGRAPHY
   ===================================================================== */

.display{
  font-family:'Anton',sans-serif;
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.01em;
  line-height:.92;
}

.mono{
  font-family:'JetBrains Mono',monospace;
  letter-spacing:.04em;
}

.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--volt);
  display:flex;
  align-items:center;
  gap:.6rem;
}

.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:var(--volt);
  display:inline-block;
  flex-shrink:0;
}

.text-grey{
  color:var(--grey);
}

.text-grey-dim{
  color:var(--grey-dim);
}

.section-lede{
  color:var(--grey);
  line-height:1.7;
  max-width:56ch;
}

.placeholder-tag{
  color:var(--volt-dim);
}


/* =====================================================================
   FOCUS
   ===================================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline:2px solid var(--volt);
  outline-offset:3px;
}


/* =====================================================================
   SCROLLBAR
   ===================================================================== */

::-webkit-scrollbar{
  width:10px;
}

::-webkit-scrollbar-track{
  background:var(--ink);
}

::-webkit-scrollbar-thumb{
  background:var(--line);
}


/* =====================================================================
   CONTAINER
   ===================================================================== */

.container-xl{
  max-width:1320px;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:clamp(20px,4vw,56px);
  padding-right:clamp(20px,4vw,56px);
  width:100%;
}


/* =====================================================================
   REVEAL ON SCROLL
   ===================================================================== */

.reveal{
  opacity:1;
  transform:none;
  transition:
    opacity .7s ease,
    transform .7s ease;
}

.reveal.pre{
  opacity:0;
  transform:translateY(28px);
}

.reveal.pre.in{
  opacity:1;
  transform:none;
}

.reveal-delay-1.in{
  transition-delay:.08s;
}

.reveal-delay-2.in{
  transition-delay:.16s;
}

.reveal-delay-3.in{
  transition-delay:.24s;
}


/* =====================================================================
   REDUCED MOTION
   ===================================================================== */

@media (prefers-reduced-motion:reduce){

  html{
    scroll-behavior:auto;
  }

  .reveal,
  .reveal.pre{
    opacity:1;
    transform:none;
    transition:none;
  }

  .a11y-btn img.spin{
    animation:none;
  }

  .pulse-dot{
    animation:none;
  }

  .loader-mark img{
    animation:none;
  }

  .loader-mark .loader-bar::after{
    animation:none;
  }
}


/* =====================================================================
   LOADER
   ===================================================================== */

#loader{
  position:fixed;
  inset:0;
  background:var(--ink);
  z-index:9999;

  display:flex;
  align-items:center;
  justify-content:center;

  transition:
    opacity .6s ease,
    visibility .6s ease;
}

#loader.hide{
  opacity:0;
  visibility:hidden;
}

.loader-mark{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}

.loader-mark img{
  height:34px;
  width:auto;
  animation:loaderFade 1.4s ease-in-out infinite;
}

.loader-mark .loader-bar{
  width:120px;
  height:1px;
  background:var(--line);
  position:relative;
  overflow:hidden;
}

.loader-mark .loader-bar::after{
  content:"";
  position:absolute;
  top:0;
  left:-40%;
  height:100%;
  width:40%;
  background:var(--volt);
  animation:loaderSweep 1.1s ease-in-out infinite;
}

@keyframes loaderFade{
  0%,100%{
    opacity:.55;
  }

  50%{
    opacity:1;
  }
}

@keyframes loaderSweep{
  0%{
    left:-40%;
  }

  100%{
    left:100%;
  }
}


/* =====================================================================
   NAVBAR
   ===================================================================== */

.nvc-nav{

  /* Position */
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;

  /* Full width */
  width:100% !important;

  /* Remove unwanted spacing */
  margin:0 !important;
  padding:0 !important;

  /* Layer */
  z-index:10000;

  /* Size */
  min-height:84px;

  /* Layout */
  display:flex;
  align-items:center;

  /* Design */
  background:#0a0a0b;
  border-bottom:1px solid var(--line);

  /* Animation */
  transition:
    min-height .35s ease,
    box-shadow .35s ease;
}


/* ===== Scrolled Navbar ===== */

.nvc-nav.scrolled{
  min-height:68px;

  box-shadow:
    0 8px 24px rgba(0,0,0,.35);
}


/* ===== Navbar Container ===== */

.nvc-nav .container-xl{

  display:flex;
  align-items:center;

  min-height:inherit;

  width:100%;

  margin-top:0 !important;
  margin-bottom:0 !important;

  padding-top:14px;
  padding-bottom:14px;
}


/* =====================================================================
   BRAND / LOGO
   ===================================================================== */

.nvc-nav .brand-mark{
  display:flex;
  align-items:center;

  min-height:36px;

  flex-shrink:0;

  margin:0;
  padding:0;

  transition:
    transform .3s ease,
    filter .3s ease;
}

.nvc-nav .brand-mark:hover{
  filter:
    drop-shadow(
      0 0 10px
      rgba(198,255,61,.35)
    );
}

.nvc-nav .brand-mark img{
  height:clamp(26px,2.6vw,34px);
  width:auto;

  max-width:200px;

  display:block;

  object-fit:contain;

  transition:
    height .35s ease;
}


/* =====================================================================
   NAVIGATION LINKS
   ===================================================================== */

.nvc-nav .nav-link{
  font-family:'JetBrains Mono',monospace;

  font-size:.72rem;

  letter-spacing:.12em;

  text-transform:uppercase;

  color:var(--grey);

  margin:0 12px;

  position:relative;

  padding:8px 0 !important;

  line-height:1.2;

  white-space:nowrap;

  transition:
    color .2s ease;
}


/* ===== Link underline ===== */

.nvc-nav .nav-link::after{
  content:"";

  position:absolute;

  left:0;
  bottom:2px;

  height:1px;
  width:0;

  background:var(--volt);

  transition:
    width .25s ease;
}


/* ===== Hover / Active ===== */

.nvc-nav .nav-link:hover,
.nvc-nav .nav-link.active{
  color:var(--paper);
}

.nvc-nav .nav-link:hover::after,
.nvc-nav .nav-link.active::after{
  width:100%;
}

.nvc-nav .nav-link.active{
  color:var(--volt);
}


/* =====================================================================
   LISTINGS DROPDOWN
   ===================================================================== */

.nvc-nav .nav-item.dropdown{
  position:relative;
}

.nvc-nav .dropdown-toggle::after{
  display:none;
}

.nvc-nav .dropdown-toggle .fa-chevron-down{
  font-size:.62rem;

  margin-left:6px;

  position:relative;
  top:-1px;

  transition:
    transform .25s ease;
}

.nvc-nav
.dropdown-toggle[aria-expanded="true"]
.fa-chevron-down{
  transform:rotate(180deg);
  color:var(--volt);
}


/* ===== Dropdown ===== */

.nvc-nav .dropdown-menu{
  background:var(--charcoal);

  border:1px solid var(--line);

  border-radius:var(--radius);

  padding:8px;

  margin-top:14px;

  min-width:220px;

  box-shadow:
    0 16px 40px rgba(0,0,0,.45);
}

.nvc-nav .dropdown-menu .dropdown-item{
  font-family:'JetBrains Mono',monospace;

  font-size:.72rem;

  letter-spacing:.08em;

  text-transform:uppercase;

  color:var(--grey);

  padding:11px 14px;

  border-radius:var(--radius);

  transition:
    background .2s ease,
    color .2s ease;
}

.nvc-nav .dropdown-menu .dropdown-item:hover,
.nvc-nav .dropdown-menu .dropdown-item:focus{
  background:var(--volt-soft);
  color:var(--volt);
}

.nvc-nav .dropdown-menu .dropdown-divider{
  border-color:var(--line);
  margin:6px 4px;
}


/* =====================================================================
   BUTTONS
   ===================================================================== */

.btn-volt{
  background:var(--volt);

  color:var(--ink) !important;

  font-family:'JetBrains Mono',monospace;

  font-size:.74rem;

  letter-spacing:.12em;

  text-transform:uppercase;

  padding:13px 26px;

  border-radius:var(--radius);

  border:1px solid var(--volt);

  line-height:1;

  transition:
    background .2s ease,
    color .2s ease,
    transform .2s ease;

  display:inline-flex;

  align-items:center;

  gap:.5rem;

  white-space:nowrap;
}

.btn-volt:hover{
  background:transparent;

  color:var(--volt) !important;

  transform:translateY(-2px);
}


/* ===== Outline Button ===== */

.btn-outline-volt{
  background:transparent;

  color:var(--paper) !important;

  font-family:'JetBrains Mono',monospace;

  font-size:.74rem;

  letter-spacing:.12em;

  text-transform:uppercase;

  padding:13px 26px;

  border-radius:var(--radius);

  border:1px solid var(--line);

  line-height:1;

  transition:
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;

  display:inline-flex;

  align-items:center;

  gap:.5rem;

  white-space:nowrap;
}

.btn-outline-volt:hover{
  border-color:var(--volt);

  color:var(--volt) !important;

  transform:translateY(-2px);
}


/* =====================================================================
   MOBILE NAVIGATION BUTTON
   ===================================================================== */

.navbar-toggler{
  border:none;

  padding:4px 6px;

  flex-shrink:0;

  background:transparent;
}

.navbar-toggler:focus{
  box-shadow:none;
}

.navbar-toggler .bar{
  display:block;

  width:26px;

  height:2px;

  background:var(--paper);

  margin:5px 0;

  transition:.3s;
}

.navbar-toggler[aria-expanded="true"]
.bar:nth-child(1){
  transform:
    translateY(7px)
    rotate(45deg);
}

.navbar-toggler[aria-expanded="true"]
.bar:nth-child(2){
  opacity:0;
}

.navbar-toggler[aria-expanded="true"]
.bar:nth-child(3){
  transform:
    translateY(-7px)
    rotate(-45deg);
}


/* =====================================================================
   DESKTOP RESPONSIVE
   ===================================================================== */

@media (max-width:1200px){

  .nvc-nav .nav-link{
    margin:0 9px;
    font-size:.68rem;
  }

}


/* =====================================================================
   TABLET / MOBILE
   ===================================================================== */

@media (max-width:991.98px){

  .nvc-nav{
    min-height:72px;
  }

  .nvc-nav .container-xl{
    padding-top:12px;
    padding-bottom:12px;

    flex-wrap:wrap;
  }


  /* Mobile menu */

  #navCollapse{

    background:var(--ink);

    margin-top:16px;

    padding:20px 6px;

    border-top:1px solid var(--line);

    width:100%;
  }


  .nvc-nav .nav-link{

    margin:0;

    padding:12px 0 !important;

    border-bottom:1px solid var(--line);
  }


  /* Mobile dropdown */

  .nvc-nav .dropdown-menu{

    background:transparent;

    border:none;

    box-shadow:none;

    padding:0 0 0 14px;

    margin-top:6px;
  }

  .nvc-nav .dropdown-menu .dropdown-item{

    color:var(--grey-dim);

    padding:8px 0;
  }

}


/* =====================================================================
   WORDPRESS ADMIN BAR
   ===================================================================== */

/*
   Keeps navbar at the very top even when logged into WordPress.
*/

body.admin-bar .nvc-nav{
  top:0 !important;
}


/* =====================================================================
   FINAL NAVBAR GAP PROTECTION
   ===================================================================== */

/*
   Prevent theme/page-builder wrappers from creating visible
   white/empty space immediately around the fixed navbar.
*/

.nvc-nav,
.nvc-nav *,
.nvc-nav::before,
.nvc-nav::after{
  box-sizing:border-box;
}

.nvc-nav + *{
  margin-top:0;
}


/* =====================================================================
   MOBILE FINAL RESET
   ===================================================================== */

@media (max-width:767.98px){

  html,
  body{
    margin:0 !important;
    padding:0 !important;
  }

  .nvc-nav{
    margin:0 !important;
    padding:0 !important;
  }

  .nvc-nav .container-xl{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }

}


/* =====================================================================
   END
   ===================================================================== *//* End custom CSS */