/* Small corrections layered over the original Webflow export. */
.wf-force-outline-none[tabindex="-1"]:focus {
  outline: none;
}

html,
body {
  min-height: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.main {
  box-sizing: border-box;
  min-height: 100vh;
  padding-bottom: 140px !important;
}

.line.bottom {
  bottom: 0 !important;
}

/* Use inset lines so hover/current states never change element dimensions. */
.navlink,
.navlink:hover,
.navlink.w--current,
.navlink.w--current:hover {
  border: 0 !important;
  margin-bottom: 0 !important;
}

.navlink {
  box-sizing: border-box;
  box-shadow: inset 0 0 0 #0000;
}

.navlink:hover,
.navlink.w--current,
.navlink.w--current:hover {
  box-shadow: inset 0 -2px 0 #000;
}

.navlink.work-disabled {
  cursor: default;
}

.menu-button {
  cursor: pointer;
}

.cv_iframe iframe {
  border: 0;
  display: block;
}

.navmenu {
  padding-top: 2px;
}

/* Mobile navigation keeps the original left-drawer layout. */
@media screen and (max-width: 991px) {
  body.site-nav-open {
    overflow: hidden;
  }

  .column.navbar {
    width: 31vw !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: visible !important;
    pointer-events: none;
  }

  .w-nav-overlay {
    display: contents !important;
  }

  .menu-button {
    pointer-events: auto;
  }

  .navmenu {
    box-sizing: border-box;
    display: flex !important;
    position: fixed !important;
    inset: 0 !important;
    width: 31vw !important;
    height: 100dvh;
    margin: 0 !important;
    padding: 176px 0 40px !important;
    overflow-y: auto;
    background: #fcfcfc !important;
    border-right: 2px solid #000;
    visibility: hidden;
    transform: translate3d(-100%, 0, 0) !important;
    transition:
      transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0s linear 280ms !important;
    pointer-events: none;
    will-change: transform;
  }

  .site-nav-open .navmenu {
    visibility: visible;
    transform: translate3d(0, 0, 0) !important;
    transition-delay: 0s !important;
    pointer-events: auto;
  }

  /* Keep the page's existing title divider continuous over the open drawer. */
  .line.top,
  .overlay {
    z-index: 101;
    pointer-events: none;
  }

  .navmenu .navslot {
    width: 100%;
  }

  @media (prefers-reduced-motion: reduce) {
    .navmenu {
      transition: none !important;
    }
  }
}

@media screen and (max-width: 767px) {
  .column.navbar,
  .navmenu {
    width: 61vw !important;
  }
}

/* Let the actual home-page content determine its height. */
body.home .column.theehundred,
body.home .column.eighthundred,
body.contact .column.theehundred.full {
  min-height: 0 !important;
}

/* Shared page effects previously embedded in every HTML file. */
canvas {
  z-index: -10 !important;
  opacity: 0.144 !important;
}

.navlink.w--current {
  border-bottom: 2px solid;
}

body {
  z-index: -1;
}
