/* =========================================================================
   luishurtado.com — flat static rebuild (migrated out of Webflow, 2026-07-26)
   -------------------------------------------------------------------------
   1. FONTS       self-hosted Nunito + IBM Plex Mono + Font Awesome brands
   2. CORE        every rule the page actually uses, lifted 1:1 from the
                  Webflow stylesheet (2,680 rules in, 358 out) with the
                  framework class names renamed to plain ones
   3. BEHAVIOUR   what the Webflow runtime used to do inline: interactions,
                  slider, mobile nav, lightbox
   ========================================================================= */

/* ============================ 1. FONTS ================================== */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-mono-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/nunito-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/nunito-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('assets/fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('assets/fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'FA Brands';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/fa-brands-subset.woff2') format('woff2');
}

/* ============================ 2. CORE =================================== */
html {
  -webkit-text-size-adjust:100%;
  -ms-text-size-adjust:100%;
  font-family:sans-serif;
}
body {
  margin:0;
}
footer,
nav {
  display:block;
}
video {
  vertical-align:baseline;
  display:inline-block;
}
a {
  background-color:#0000;
}
a:active,
a:hover {
  outline:0;
}
strong {
  font-weight:700;
}
h1 {
  margin:.67em 0;
  font-size:2em;
}
img {
  border:0;
}
svg:not(:root) {
  overflow:hidden;
}
input,
textarea {
  color:inherit;
  font:inherit;
  margin:0;
}
input::-moz-focus-inner {
  border:0;
  padding:0;
}
input {
  line-height:normal;
}
textarea {
  overflow:auto;
}
@font-face{font-family:'site-icons';src:url(data:application/x-font-ttf;charset=utf-8;base64,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)format("truetype");font-weight:400;font-style:normal}
.icon {
  speak:none;
  font-variant:normal;
  text-transform:none;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-style:normal;
  font-weight:400;
  line-height:1;
  font-family:site-icons!important;
}
.icon-next:before {
  content:"";
}
.icon-prev:before {
  content:"";
}
.icon-menu:before {
  content:"";
}
* {
  box-sizing:border-box;
}
html {
  height:100%;
}
body {
  color:#333;
  background-color:#fff;
  min-height:100%;
  margin:0;
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:20px;
}
img {
  vertical-align:middle;
  max-width:100%;
  display:inline-block;
}
.inline-block {
  max-width:100%;
  display:inline-block;
}
.btn-base {
  color:#fff;
  line-height:inherit;
  cursor:pointer;
  background-color:#3898ec;
  border:0;
  border-radius:0;
  padding:9px 15px;
  text-decoration:none;
  display:inline-block;
}
input.btn-base {
  -webkit-appearance:button;
}
h1,
h2,
h3,
h4,
h5 {
  margin-bottom:10px;
  font-weight:700;
}
h1 {
  margin-top:20px;
  font-size:38px;
  line-height:44px;
}
h2 {
  margin-top:20px;
  font-size:32px;
  line-height:36px;
}
h3 {
  margin-top:20px;
  font-size:24px;
  line-height:30px;
}
h4 {
  margin-top:10px;
  font-size:18px;
  line-height:24px;
}
h5 {
  margin-top:10px;
  font-size:14px;
  line-height:20px;
}
p {
  margin-top:0;
  margin-bottom:10px;
}
ul {
  margin-top:0;
  margin-bottom:10px;
  padding-left:40px;
}
.form-wrap {
  margin:0 0 15px;
}
.form-success {
  text-align:center;
  background-color:#ddd;
  padding:20px;
  display:none;
}
.form-error {
  background-color:#ffdede;
  margin-top:10px;
  padding:10px;
  display:none;
}
.field-base {
  color:#333;
  vertical-align:middle;
  background-color:#fff;
  border:1px solid #ccc;
  width:100%;
  height:38px;
  margin-bottom:10px;
  padding:8px 12px;
  font-size:14px;
  line-height:1.42857;
  display:block;
}
.field-base::placeholder {
  color:#999;
}
.field-base:focus {
  border-color:#3898ec;
  outline:0;
}
textarea.field-base {
  height:auto;
}
.bg-video {
  color:#fff;
  height:500px;
  position:relative;
  overflow:hidden;
}
.bg-video>video {
  object-fit:cover;
  z-index:-100;
  background-position:50%;
  background-size:cover;
  width:100%;
  height:100%;
  margin:auto;
  position:absolute;
  inset:-100%;
}
.bg-video>video::-webkit-media-controls-start-playback-button {
  -webkit-appearance:none;
  display:none!important;
}
.slider {
  text-align:center;
  clear:both;
  -webkit-tap-highlight-color:#0000;
  tap-highlight-color:#0000;
  background:#ddd;
  height:300px;
  position:relative;
}
.slider-mask {
  z-index:1;
  white-space:nowrap;
  height:100%;
  display:block;
  position:relative;
  left:0;
  right:0;
  overflow:hidden;
}
.slide {
  vertical-align:top;
  white-space:normal;
  text-align:left;
  width:100%;
  height:100%;
  display:inline-block;
  position:relative;
}
.slider-nav {
  z-index:2;
  text-align:center;
  -webkit-tap-highlight-color:#0000;
  tap-highlight-color:#0000;
  height:40px;
  margin:auto;
  padding-top:10px;
  position:absolute;
  inset:auto 0 0;
}
.slider-nav.is-round>div {
  border-radius:100%;
}
.slider-dot {
  cursor:pointer;
  background-color:#fff6;
  width:1em;
  height:1em;
  margin:0 3px .5em;
  transition:background-color .1s,color .1s;
  display:inline-block;
  position:relative;
}
.slider-dot.is-active {
  background-color:#fff;
}
.slider-dot:focus {
  outline:none;
  box-shadow:0 0 0 2px #fff;
}
.slider-dot:focus.is-active {
  box-shadow:none;
}
.slider-prev,
.slider-next {
  cursor:pointer;
  color:#fff;
  -webkit-tap-highlight-color:#0000;
  tap-highlight-color:#0000;
  -webkit-user-select:none;
  user-select:none;
  width:80px;
  margin:auto;
  font-size:40px;
  position:absolute;
  inset:0;
  overflow:hidden;
}
.slider-prev .icon,
.slider-next .icon {
  position:absolute;
}
.slider-prev:focus,
.slider-next:focus {
  outline:0;
}
.slider-prev {
  z-index:3;
  right:auto;
}
.slider-next {
  z-index:4;
  left:auto;
}
.icon-prev,
.icon-next {
  width:1em;
  height:1em;
  margin:auto;
  inset:0;
}

@media screen and (max-width:767px) {
  .nav-brand {
    padding-left:10px;
  }
}
.navbar {
  z-index:1000;
  background:#ddd;
  position:relative;
}
.navbar:before,
.navbar:after {
  content:" ";
  grid-area:1/1/2/2;
  display:table;
}
.navbar:after {
  clear:both;
}
.nav-brand {
  float:left;
  color:#333;
  text-decoration:none;
  position:relative;
}
.nav-item {
  vertical-align:top;
  color:#222;
  text-align:left;
  margin-left:auto;
  margin-right:auto;
  padding:20px;
  text-decoration:none;
  display:inline-block;
  position:relative;
}
.nav-menu {
  float:right;
  position:relative;
}
.nav-overlay {
  width:100%;
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  overflow:hidden;
}
.nav-toggle {
  float:right;
  cursor:pointer;
  -webkit-tap-highlight-color:#0000;
  tap-highlight-color:#0000;
  -webkit-user-select:none;
  user-select:none;
  padding:18px;
  font-size:24px;
  display:none;
  position:relative;
}
.nav-toggle:focus {
  outline:0;
}

@media screen and (max-width:991px) {
  .navbar .nav-menu {
    display:none;
  }
  .navbar .nav-toggle {
    display:block;
  }
}

@media screen and (max-width:767px) {
  .nav-brand {
    padding-left:10px;
  }
}
@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
:root {
  --neutral--80:#1c1c2b;
  --neutral--10:#f9f9f9;
  --neutral--20:#d0d0d5;
  --primary--60:#1479fb;
  --neutral--50:#57576b;
  --primary--50:#368bf9;
  --primary--70:#126bdc;
  --primary--80:#105ebd;
  --warning--60:#e6a91d;
  --warning--100:#543c0b;
  --primary--100:#0b437f;
  --neutral--100:#0b0b0f;
  --neutral--30:#a8a8b2;
  --secondary--70:#d40000;
  --neutral--40:#7f7f8e;
  --primary--20:#9bc3f1;
  --error--60:#e05048;
  --neutral--60:#2e2e47;
  --neutral--5:#ffffff26;
  --primary--40:#589ef6;
  --primary--10:#bdd5ef;
  --neutral--90:#14141d;
  --secondary--60:red;
  --secondary--80:#a00;
  --neutral--70:#252539;
  --secondary--20:#ff5e5e;
  --secondary--10:#ff7676;
  --success--20:#92f39f;
  --success--10:#b1f2b9;
  --success--80:#10a724;
  --warning--30:#eecb7d;
  --warning--10:#f4e2bd;
  --warning--90:#79570f;
  --error--20:#eca19e;
  --error--10:#efb5b4;
  --error--70:#bd433d;
  --info--20:#c8dff9;
  --info--10:#d7e7f7;
  --info--70:#7da9df;
  --primary--30:#79b0f4;
  --success--60:#16f937;
  --info--60:#8ebfff;
  --info--30:#bad7fa;
  --error--30:#e98d89;
  --success--30:#73f585;
  --primary--90:#0d519e;
  --secondary--30:#ff4747;
  --secondary--40:#ff2f2f;
  --secondary--50:#ff1818;
  --secondary--90:#7f0000;
  --secondary--100:#540000;
  --success--40:#54f66b;
  --success--50:#35f851;
  --success--70:#13d02e;
  --success--90:#0c7d1b;
  --success--100:#095411;
  --warning--20:#f1d79d;
  --warning--40:#ecc05d;
  --warning--50:#e9b43d;
  --warning--70:#c28e19;
  --warning--80:#9d7214;
  --error--40:#e67873;
  --error--50:#e3645e;
  --error--80:#9a3732;
  --error--90:#772a27;
  --error--100:#541d1c;
  --info--40:#abcffc;
  --info--50:#abcffc;
  --info--80:#6c92bf;
  --info--90:#5a7c9f;
  --info--100:#49657f;
}
.grid {
  grid-row-gap:16px;
  grid-column-gap:16px;
  grid-template-rows:auto auto;
  grid-template-columns:1fr 1fr;
  grid-auto-columns:1fr;
  display:grid;
}
body {
  background-color:var(--neutral--80);
  color:var(--neutral--10);
  letter-spacing:-.011em;
  font-family:Nunito,sans-serif;
  font-size:1rem;
  font-weight:400;
  line-height:1.75;
}
h1 {
  letter-spacing:-.022em;
  margin-top:0;
  margin-bottom:1.5rem;
  font-size:2.75rem;
  font-weight:600;
  line-height:1.25;
}
h2 {
  letter-spacing:-.021px;
  margin-top:1.5rem;
  margin-bottom:1.25rem;
  font-size:2.25rem;
  font-weight:600;
  line-height:1.25;
}
h3 {
  letter-spacing:-.019px;
  margin-top:1.5rem;
  margin-bottom:1rem;
  font-size:1.75rem;
  font-weight:600;
  line-height:1.25;
}
h4 {
  letter-spacing:-.017em;
  margin-top:1.5rem;
  margin-bottom:1rem;
  font-size:1.5rem;
  font-weight:600;
  line-height:1.25;
}
h5 {
  letter-spacing:-.014em;
  margin-top:1rem;
  margin-bottom:.5rem;
  font-size:1.125rem;
  font-weight:600;
  line-height:1.5;
}
p {
  color:var(--neutral--20);
  margin-bottom:1.5rem;
}
a {
  color:var(--primary--60);
  text-decoration:none;
}
ul {
  color:var(--neutral--20);
  margin-bottom:0;
  padding-left:2rem;
}
li {
  margin-bottom:.25rem;
}
img {
  display:inline-block;
}
strong {
  font-weight:600;
}
.container {
  max-width:1248px;
  margin-left:auto;
  margin-right:auto;
  padding-left:24px;
  padding-right:24px;
}
.container.container-navbar {
  justify-content:space-between;
  align-items:center;
  padding-top:12px;
  padding-bottom:12px;
  display:flex;
}
.heading.l {
  letter-spacing:-.022em;
  margin-top:0;
  margin-bottom:1.5rem;
  font-size:2.75rem;
  font-weight:700;
  line-height:1.25;
}
.heading.xs {
  letter-spacing:-.019em;
  margin-top:0;
  margin-bottom:1rem;
  font-size:1.75rem;
  font-weight:700;
  line-height:1.25;
}
.heading.s {
  letter-spacing:-.017em;
  margin-top:0;
  margin-bottom:1rem;
  font-size:1.5rem;
  font-weight:700;
  line-height:1.25;
}
.heading.xs {
  color:var(--primary--50);
  letter-spacing:-.014em;
  margin-top:0;
  margin-bottom:.5rem;
  font-family:Nunito,sans-serif;
  font-size:1.125rem;
  font-weight:800;
  line-height:1.5;
}
.heading.xs:hover {
  color:var(--neutral--10);
}
.heading.xxs {
  letter-spacing:-.011em;
  margin-top:0;
  margin-bottom:.5rem;
  font-size:1rem;
  font-weight:800;
  line-height:1.5;
}
.heading.hero-title-centered.mono-sub-nav {
  letter-spacing:2px;
}
.body-text {
  color:var(--neutral--10);
  margin-top:0;
  font-weight:600;
}
.body-text.m {
  letter-spacing:-.011em;
}
.body-text.m.c-t-neutral-10 {
  font-weight:600;
}
.body-text.m.bold {
  font-weight:700;
}
.body-text.m.italic {
  font-style:italic;
}
.body-text.m.s-m-l-12 {
  font-weight:600;
}
.body-text.xs {
  letter-spacing:.05em;
  font-size:.75rem;
  line-height:1.8;
}
.section-title {
  width:50%;
  margin-bottom:48px;
}
.section-title.centered {
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}
.wrapper-m {
  padding-top:64px;
  padding-bottom:64px;
}
.l-g-3-col {
  grid-column-gap:24px;
  grid-row-gap:24px;
  grid-template-rows:auto;
  grid-template-columns:1fr 1fr 1fr;
  grid-auto-columns:1fr;
  display:grid;
}
.button {
  background-color:var(--primary--60);
  color:var(--neutral--10);
  text-align:center;
  border-radius:4px;
  align-items:center;
  padding:4px 12px;
  font-weight:600;
  text-decoration:none;
  transition:background-color .25s;
  position:relative;
}
.button:hover {
  background-color:var(--warning--60);
  color:var(--warning--100);
}
.button:active {
  background-color:var(--primary--50);
  color:var(--neutral--80);
}
.button:focus {
  box-shadow:0 0 0 1px var(--primary--100);
}
.button.medium {
  background-color:var(--primary--80);
  border-radius:6px;
  padding:8px 12px;
}
.button.medium:hover {
  background-color:var(--primary--60);
  box-shadow:none;
  color:var(--neutral--100);
}
.button.medium:active {
  background-color:var(--secondary--70);
  color:var(--neutral--10);
}
.button.medium:focus {
  background-color:var(--neutral--10);
  box-shadow:none;
  color:var(--primary--70);
}
.button.medium.form-button {
  background-color:var(--error--60);
  letter-spacing:0;
  width:100%;
  margin-bottom:12px;
  padding:18px 16px;
  font-size:1.33rem;
  font-weight:700;
}
.button.medium.form-button:hover {
  background-color:var(--warning--60);
  color:var(--neutral--60);
}
.button.mono-sub-nav {
  letter-spacing:2px;
}
.input {
  border:1px solid var(--neutral--40);
  background-color:var(--neutral--10);
  border-radius:6px;
  margin-bottom:4px;
  font-size:1rem;
  font-weight:400;
}
.input:hover {
  border-color:var(--primary--40);
}
.input:active {
  border-color:var(--primary--50);
}
.input:focus {
  border-color:var(--primary--60);
  background-color:var(--neutral--10);
}
.input::placeholder {
  color:var(--neutral--70);
}
.input.medium {
  background-color:var(--neutral--10);
  border-width:0;
  height:44px;
  margin-bottom:12px;
  font-weight:700;
  box-shadow:0 1px 3px #00000014;
}
.input.medium:hover,
.input.medium:focus {
  background-color:#fff;
}
.input.textarea {
  border-width:0;
  min-height:96px;
  margin-bottom:12px;
  font-weight:700;
  box-shadow:0 1px 3px #00000008;
}
.input.textarea:hover,
.input.textarea:focus {
  background-color:#fff;
}
.section {
  background-image:url(assets/img/noise.png);
  background-position:0 0;
  background-size:320px;
}
.section.c-b-neutral-70 {
  background-image:url(assets/img/noise.png),linear-gradient(#252539f5,#252539f5);
  background-position:0 0,0 0;
  background-size:320px,auto;
}
.tagline {
  background-color:var(--warning--60);
  color:var(--neutral--70);
  letter-spacing:0;
  border-radius:6px;
  margin-bottom:1.25rem;
  padding-left:16px;
  padding-right:16px;
  font-size:.875rem;
  font-weight:700;
  line-height:28px;
  display:inline-block;
}
.card {
  color:var(--neutral--100);
  border:0 #0000;
  border-radius:0;
  flex-direction:column;
  text-decoration:none;
  transition:color .25s,border-color .25s;
  display:flex;
}
.card:focus {
  color:var(--primary--60);
}
.card-image {
  border-radius:18px;
  margin-bottom:24px;
}
.card-text-wrapper {
  flex-direction:column;
  flex:1;
  justify-content:space-between;
  display:flex;
}
.navbar-01 {
  z-index:9999;
  border-top:2px solid var(--neutral--80);
  border-bottom:1px solid var(--neutral--50);
  background-color:var(--neutral--60);
  background-image:url(assets/img/noise.png);
  background-position:0 0;
  background-size:320px;
  position:fixed;
  inset:0% 0% auto;
}
.navbar-menu {
  align-items:center;
  display:flex;
}
.nav-link {
  color:var(--neutral--30);
  border-radius:6px;
  padding:8px 16px;
  font-size:1rem;
  font-weight:700;
  text-decoration:none;
}
.nav-link:hover {
  color:var(--neutral--10);
}
.nav-link:active {
  color:var(--warning--60);
  border:0 #0000;
  border-radius:4px;
}
.brand-logo {
  margin-right:24px;
}
.footer-logo {
  padding-bottom:0;
}
.footer-top-2 {
  justify-content:space-between;
  align-items:center;
  display:flex;
}
.footer-bottom-2 {
  color:var(--neutral--80);
  justify-content:space-between;
  align-items:center;
  margin-top:32px;
  padding-top:24px;
  padding-bottom:24px;
  display:flex;
}
.footer-bottom-2.color-inverse {
  border-top-color:var(--neutral--90);
  color:var(--neutral--70);
}
.footer-2 {
  border-top:1px solid var(--neutral--40);
  background-color:var(--neutral--10);
  text-align:left;
  align-items:flex-start;
  padding-top:32px;
}
.footer-2.dark {
  border-top-color:var(--neutral--90);
  background-color:var(--neutral--60);
}
.sm-icons-wrapper {
  align-self:center;
  height:24px;
  display:flex;
}
.footer-menu-wrapper {
  align-items:center;
  display:flex;
}
.s-p-y-32 {
  padding-top:32px;
  padding-bottom:32px;
}
.s-p-t-64 {
  padding-top:64px;
}
.s-m-l-12 {
  margin-left:12px;
}
.s-m-r-24 {
  margin-right:24px;
}
.s-m-t-48 {
  margin-top:48px;
}
.c-b-neutral-70 {
  background-color:var(--neutral--70);
}
.c-b-primary-50 {
  background-color:var(--primary--50);
}
.c-b-secondary-80 {
  background-color:var(--secondary--80);
}
.c-b-success-70 {
  background-color:var(--success--70);
}
.c-t-neutral-10 {
  color:var(--neutral--10);
}
.c-t-neutral-30 {
  color:var(--neutral--30);
}
.c-t-neutral-90 {
  color:var(--neutral--90);
}
.c-t-primary-30 {
  color:var(--primary--30);
}
.c-t-primary-50 {
  color:var(--primary--50);
}
.c-t-primary-60 {
  color:var(--primary--60);
}
.hero-title-centered {
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}
.testimonial-box {
  background-color:var(--neutral--5);
  border-radius:6px;
  flex-direction:column;
  justify-content:space-between;
  padding:48px;
  display:flex;
}
.long-content-center {
  max-width:800px;
  margin-left:auto;
  margin-right:auto;
}
.brand-logo-image {
  height:3rem;
}
.testimonials-section {
  background-image:url(assets/img/noise.png);
  background-position:0 0;
  background-size:320px;
  overflow:hidden;
}
.contact-section.c-b-neutral-70 {
  background-image:url(assets/img/noise.png);
  background-position:0 0;
  background-size:125px;
}
.lightbox-centered {
  justify-content:center;
  align-items:flex-start;
  margin-left:auto;
  margin-right:auto;
  display:flex;
}
.avatar {
  object-fit:cover;
  border-radius:50%;
  width:64px;
  height:64px;
}
.avatar.large {
  border:2px none var(--neutral--10);
  box-shadow:0 0 0 2px var(--primary--60);
  width:56px;
  height:56px;
}
.avatar-wrapper.horizontal {
  align-items:center;
  display:flex;
}
.avatar-label-text {
  margin-left:1rem;
}
.testimonials-slider {
  background-color:#0000;
  justify-content:flex-start;
  align-items:center;
  height:100%;
  display:flex;
}
.slide-nav {
  display:none;
}
.testimonials-mask {
  align-self:stretch;
  max-width:580px;
  overflow:visible;
}
.testimonials-slide {
  margin-right:24px;
}
.slider-left-arrow {
  background-color:var(--primary--60);
  border-radius:100%;
  width:56px;
  min-width:56px;
  height:56px;
  min-height:56px;
  left:20px;
}
.slider-left-arrow:hover {
  background-color:var(--neutral--10);
  color:var(--primary--60);
}
.slider-arrow-icon {
  font-size:1.5rem;
}
.slider-right-arrow {
  background-color:var(--primary--60);
  border-radius:100%;
  width:56px;
  min-width:56px;
  height:56px;
  min-height:56px;
  right:20px;
}
.slider-right-arrow:hover {
  background-color:var(--neutral--10);
  outline-color:var(--primary--60);
  color:var(--primary--60);
}
.button-content-wrapper {
  justify-content:center;
  align-items:center;
  padding-left:24px;
  padding-right:24px;
  display:flex;
}
.about-card-image {
  border-radius:18px;
  width:100%;
  margin:24px auto 6px;
  display:block;
}
.about-sub-title {
  color:var(--neutral--10);
  letter-spacing:.2px;
  margin-top:0;
  margin-bottom:0;
  margin-left:12px;
  font-family:Nunito,sans-serif;
  font-size:.9rem;
  font-weight:700;
}
.about-sub-company {
  color:var(--primary--50);
  letter-spacing:.01em;
  margin-bottom:0;
  margin-left:12px;
  font-family:IBM Plex Mono,sans-serif;
  font-size:.75rem;
  font-weight:500;
}
.about-sub-category {
  color:var(--neutral--20);
  letter-spacing:.01em;
  margin-bottom:1rem;
  margin-left:12px;
  font-family:IBM Plex Mono,sans-serif;
  font-size:.75rem;
  font-weight:700;
}
.logos-grid {
  grid-column-gap:0px;
  grid-row-gap:0px;
  grid-template-rows:auto auto auto;
  grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-auto-columns:1fr;
  grid-auto-flow:row;
}
.about-logos-mouseover {
  width:100%;
}
.about-logos-mouseover.maxh-60px {
  max-height:60px;
}
.about-logos-mouseover.maxh-50px {
  max-height:50px;
}
.about-logos-mouseover.maxh-80px {
  max-height:80px;
}
.footer-social-icon {
  color:var(--neutral--30);
  letter-spacing:0;
  margin-top:0;
  margin-left:12px;
  margin-right:12px;
  padding-right:0;
  font-family:'FA Brands',sans-serif;
  font-size:1.255rem;
  font-weight:400;
  line-height:1;
  text-decoration:none;
}
.footer-social-icon:hover {
  color:var(--primary--60);
  text-decoration:none;
}
.footer-social-icon-link {
  text-decoration:none;
}
.footer-subcopy {
  font-size:.8rem;
  font-weight:700;
}
.footer-subcopy.c-t-neutral-30 {
  letter-spacing:.01em;
  font-size:.7rem;
  font-weight:800;
}
.type-bold-white-modifier {
  color:var(--neutral--10);
  font-weight:700;
}
.progress-bar {
  z-index:9999;
  background-color:var(--secondary--60);
  perspective-origin:50%;
  transform-origin:0%;
  width:100%;
  height:2px;
  margin-top:0;
  position:fixed;
  inset:0% 0% auto;
}
.mono-sub-nav {
  letter-spacing:4px;
  margin-bottom:.5rem;
  font-family:IBM Plex Mono,sans-serif;
  font-size:.66rem;
}
.process-container {
  grid-column-gap:16px;
  grid-row-gap:16px;
  grid-template-rows:auto auto auto auto auto auto auto;
  grid-template-columns:1fr .25fr 1fr;
  grid-auto-columns:1fr;
  grid-auto-flow:dense;
  display:grid;
}
.process-timeline-wrapper {
  position:relative;
}
.process-step {
  align-self:flex-start;
}
.success-message {
  background-color:var(--success--60);
  color:var(--neutral--60);
  border-radius:12px;
  font-size:1.25rem;
  font-weight:600;
}
.error-message {
  background-color:var(--warning--60);
  color:var(--neutral--90);
  border-radius:6px;
  font-weight:600;
}
.great-for-sidebar {
  grid-column-gap:16px;
  grid-row-gap:16px;
  text-align:left;
  grid-template-rows:auto;
  grid-template-columns:1fr 1fr 1fr;
  grid-auto-columns:1fr;
  justify-items:center;
  width:33vw;
  display:grid;
}
.process-timeline-progress {
  background-color:#1479fb;
  width:10px;
  height:10vh;
  position:absolute;
  inset:0%;
}
.process-timeline {
  background-color:var(--neutral--90);
  width:10px;
  height:100%;
}
.logo-section {
  border-top:2px solid var(--primary--60);
  border-bottom:2px solid var(--primary--60);
  margin-left:auto;
  margin-right:auto;
}
.bio-headshot {
  border:4px solid var(--primary--70);
  border-radius:400px;
  width:8vw;
  margin-left:auto;
  margin-right:auto;
}
.bio-headshot.lightbox-centered {
  margin-top:0;
}
.list-greatfor {
  font-family:IBM Plex Mono,sans-serif;
  font-size:.5rem;
  font-weight:600;
}
.great-for-list-item {
  color:var(--neutral--30);
  letter-spacing:.05em;
  font-family:IBM Plex Mono,sans-serif;
  font-size:.8rem;
  font-weight:500;
  transition:color .4s;
}
.great-for-list-item:hover {
  color:var(--neutral--10);
}
.list-item {
  color:var(--primary--30);
}
.hero-copy {
  color:#fff;
  text-align:center;
  letter-spacing:.02em;
  font-size:3rem;
  font-weight:700;
  transition:color .2s;
}
.starterpack-r-btn {
  border:3px solid var(--secondary--60);
  color:var(--neutral--10);
  border-radius:12px;
  padding-top:12px;
  padding-bottom:12px;
  transition:background-color .2s,border-color .2s;
}
.starterpack-r-btn:hover {
  border-color:var(--secondary--60);
  background-color:var(--secondary--60);
}
.starterpack-g-btn {
  border:3px solid var(--success--70);
  color:var(--neutral--10);
  background-color:#0000;
  border-radius:12px;
  padding-top:12px;
  padding-bottom:12px;
  transition:border-color .2s,border-color .2s;
}
.starterpack-g-btn:hover {
  border-color:var(--success--70);
  background-color:var(--success--70);
}
.starterpack-b-btn {
  border:3px solid var(--primary--70);
  color:var(--neutral--10);
  background-color:#0000;
  border-radius:12px;
  padding-top:12px;
  padding-bottom:12px;
  transition:background-color .2s;
}
.starterpack-b-btn:hover {
  border-color:var(--primary--70);
  background-color:var(--primary--70);
}
.hero-copy---subheader {
  color:var(--primary--60);
  margin-top:-1.5rem;
  font-size:1.25rem;
  font-weight:700;
}
.services-btn-text {
  font-size:1.2rem;
  font-weight:700;
  display:inline-block;
}
.hero-btn-subnav {
  width:33vw;
  margin-bottom:33px;
  margin-left:auto;
  margin-right:auto;
}
.website-slider {
  background-color:#0000;
  justify-content:flex-start;
  align-items:center;
  width:100%;
  height:100%;
  margin-bottom:20px;
  display:flex;
  overflow:hidden;
}
.website-slide {
  margin-right:24px;
}
.website-mask {
  align-self:stretch;
  max-width:220px;
  overflow:visible;
}
.solopreneur-clients-grid {
  grid-template-rows:auto;
  grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;
  align-items:center;
}
.nav-button {
  border:2px solid var(--warning--60);
  color:var(--warning--60);
  letter-spacing:0;
  background-color:#0000;
  border-radius:6px;
  font-size:.8rem;
  font-weight:700;
  transition:background-color .2s;
}
.nav-button:hover {
  background-color:var(--warning--60);
  color:var(--neutral--60);
}
.bg-video-container {
  background-image:url(assets/img/noise.png),linear-gradient(#14141dd9,#14141dd9);
  background-position:0 0,0 0;
  background-size:320px,auto;
  height:80vh;
}
.container-center-h-v {
  justify-content:center;
  align-items:center;
  margin-left:auto;
  margin-right:auto;
  padding-left:24px;
  padding-right:24px;
  position:relative;
  top:50%;
  transform:translateY(-50%);
}
.contact-center {
  width:33vw;
  margin-left:auto;
  margin-right:auto;
}

@media screen and (min-width:1920px) {
  .bio-headshot {
    width:6vw;
  }
  .hero-copy {
    font-size:4rem;
  }
  .bg-video-container {
    background-image:url(assets/img/noise.png),linear-gradient(#14141dd9,#14141dd9);
    background-position:0 0,0 0;
    background-size:320px,auto;
  }
}

@media screen and (max-width:991px) {
  .container {
    padding-left:24px;
    padding-right:24px;
  }
  .container.container-navbar {
    padding-top:0;
    padding-bottom:0;
  }
  .section-title {
    width:100%;
    margin-bottom:32px;
  }
  .section-title.centered {
    width:75%;
  }
  .l-g-3-col {
    grid-column-gap:16px;
    grid-row-gap:16px;
  }
  .button.medium {
    font-size:16px;
  }
  .input {
    font-size:16px;
  }
  .navbar-menu {
    background-color:var(--neutral--80);
    text-align:center;
    padding-bottom:16px;
    padding-left:16px;
    padding-right:16px;
    box-shadow:0 4px 4px #00000030;
  }
  .nav-link {
    text-align:center;
    padding-top:10px;
    padding-bottom:10px;
  }
  .brand-logo {
    margin-right:0;
    padding-left:0;
  }
  .footer-logo.s-m-r-24.st-m-0 {
    align-self:center;
  }
  .footer-top-2,
  .footer-bottom-2 {
    flex-direction:column;
  }
  .footer-2 {
    padding-bottom:32px;
    padding-left:20px;
    padding-right:20px;
  }
  .footer-menu-wrapper {
    flex-direction:column;
    align-self:stretch;
    align-items:stretch;
  }
  .st-m-0 {
    margin:0;
  }
  .hero-title-centered {
    width:100%;
  }
  .testimonial-box {
    padding:32px;
  }
  .footer-navigation {
    flex-direction:column;
    margin-top:24px;
    margin-bottom:24px;
    display:flex;
  }
  .slider-left-arrow {
    left:8px;
  }
  .slider-right-arrow {
    right:20px;
  }
  .about-card-image {
    border-radius:18px;
  }
  .logos-grid {
    grid-column-gap:0px;
    grid-row-gap:0px;
    grid-template-rows:auto auto auto auto;
    grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;
  }
  .great-for-sidebar {
    width:80vw;
  }
  .bio-headshot {
    width:20vw;
  }
  .services-btn-text {
    font-size:1rem;
  }
  .hero-btn-subnav {
    width:66vw;
  }
  .website-mask {
    max-width:29vw;
  }
  .bg-video-container {
    height:60vh;
  }
  .container-center-h-v {
    padding-left:24px;
    padding-right:24px;
  }
  .contact-center {
    width:66vw;
  }
}

@media screen and (max-width:767px) {
  h3,
  h4 {
    margin-top:16px;
    margin-bottom:8px;
  }
  h5 {
    margin-top:12px;
    margin-bottom:4px;
  }
  .container {
    padding-left:16px;
    padding-right:16px;
  }
  .container.container-navbar {
    padding-top:0;
    padding-bottom:0;
  }
  .heading.l {
    margin-bottom:12px;
  }
  .section-title,
  .section-title.centered {
    width:100%;
  }
  .l-g-3-col {
    grid-row-gap:32px;
    grid-template-rows:auto;
    grid-template-columns:1fr 1fr 1fr;
  }
  .footer-logo {
    padding-left:0;
  }
  .footer-top-2 {
    flex-direction:column;
  }
  .footer-2 {
    padding:32px 0;
  }
  .footer-menu-wrapper {
    flex-direction:column;
    align-items:stretch;
  }
  .footer-navigation {
    margin-top:24px;
  }
  .testimonials-mask {
    max-width:80%;
  }
  .slider-left-arrow {
    left:5px;
  }
  .slider-right-arrow {
    right:7px;
  }
  .about-card-image {
    border-radius:12px;
  }
  .about-sub-category {
    margin-bottom:0;
  }
  .logos-grid {
    grid-column-gap:0px;
    grid-row-gap:0px;
    grid-template-rows:auto auto auto auto;
    grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;
  }
  .process-container {
    grid-template-columns:1fr .25fr;
  }
  .great-for-list-item {
    font-size:.7rem;
  }
  .hero-copy {
    font-size:2rem;
  }
  .hero-copy---subheader {
    font-size:1rem;
  }
  .hero-btn-subnav {
    width:88vw;
  }
  .website-mask {
    max-width:44vw;
  }
  .solopreneur-clients-grid {
    grid-template-rows:auto auto;
    grid-template-columns:1fr 1fr 1fr;
    margin-bottom:24px;
  }
  .container-center-h-v {
    padding-left:16px;
    padding-right:16px;
  }
  .contact-center {
    width:90vw;
  }
}

@media screen and (max-width:479px) {
  .l-g-3-col {
    grid-template-columns:1fr;
  }
  .button.medium {
    align-self:stretch;
  }
  .button.medium.form-button {
    margin-top:4px;
  }
  .input.medium {
    margin-bottom:.5rem;
  }
  .nav-link {
    padding-left:10px;
    padding-right:10px;
  }
  .footer-logo {
    padding-left:0;
  }
  .footer-top-2 {
    align-items:stretch;
  }
  .footer-bottom-2 {
    text-align:center;
    flex-direction:column;
    margin-top:24px;
    padding-top:16px;
    padding-bottom:16px;
  }
  .footer-bottom-2.color-inverse {
    color:var(--neutral--70);
  }
  .footer-2 {
    text-align:left;
    padding-left:0;
    padding-right:0;
  }
  .sm-icons-wrapper {
    justify-content:center;
  }
  .footer-menu-wrapper {
    align-items:center;
  }
  .brand-logo-image {
    height:3rem;
  }
  .avatar.large {
    width:48px;
    height:48px;
  }
  .avatar-wrapper.horizontal {
    align-items:center;
  }
  .footer-navigation {
    align-self:stretch;
    align-items:stretch;
    margin-top:24px;
  }
  .testimonials-slide {
    width:290px;
  }
  .button-content-wrapper {
    justify-content:center;
  }
  .about-card-image {
    border-radius:6px;
  }
  .about-sub-category {
    color:var(--neutral--30);
  }
  .logos-grid {
    grid-column-gap:0px;
    grid-row-gap:0px;
    grid-template-rows:auto auto auto auto;
    grid-template-columns:1fr 1fr 1fr 1fr;
  }
  .process-container {
    grid-template-columns:1fr;
    grid-auto-columns:.25fr;
  }
  .great-for-sidebar {
    width:90vw;
    margin-left:12px;
  }
  .bio-headshot {
    width:40vw;
  }
  .bio-headshot.lightbox-centered {
    width:33vw;
  }
  .list-greatfor {
    padding-left:0;
  }
  .great-for-list-item {
    font-size:.6rem;
  }
  .services-btn-text {
    font-size:.8rem;
  }
  .website-mask {
    max-width:100vw;
    overflow:hidden;
  }
  .bg-video-container {
    height:66vh;
  }
  .contact-center {
    width:92vw;
  }
}
#exp-ycdb {
  grid-area:4/3/5/4;
  align-self:start;
}
#exp-uncharted {
  grid-area:2/3/3/4;
  align-self:start;
}
#exp-timeline {
  grid-area:1/2/8/3;
  justify-self:center;
}
#exp-aws {
  grid-area:5/1/6/2;
  align-self:start;
}
#exp-cod {
  grid-area:3/1/4/2;
  align-self:start;
}
#exp-hulu {
  grid-area:6/3/7/4;
  align-self:start;
}

@media screen and (max-width:767px) {
  #exp-ycdb {
    grid-area:4/1/5/2;
  }
  #exp-uncharted {
    grid-area:1/1/2/2;
  }
  #exp-hulu {
    grid-area:6/1/7/2;
  }
}

@media screen and (max-width:479px) {
  #exp-ycdb {
    grid-area:3/1/4/2;
    align-self:start;
  }
  #exp-uncharted {
    grid-area:1/1/2/2;
    align-self:start;
  }
  #exp-cod {
    grid-area:4/1/5/2;
  }
  #exp-hulu {
    grid-area:6/1/7/2;
  }
}

/* ========================= 3. BEHAVIOUR ================================= */
/* =========================================================================
   SITE BEHAVIOUR
   Rules below replace things the Webflow runtime used to do with inline
   styles (IX2 interactions, the slider, the nav, the lightbox). Values were
   measured off the live Webflow site so the result matches it 1:1.
   ========================================================================= */

/* --- root type size ------------------------------------------------------
   Pinned at every breakpoint, as the Webflow build did. It matters because
   this layout mixes rem type with vw-sized boxes (.great-for-sidebar,
   .contact-center): if the root size floated with a reader's browser default
   while those boxes didn't, the text would overflow them. Browser zoom still
   scales everything, so resizing is unaffected.                             */
html {
  font-size: 16px;
}
@media (max-width: 991px) {
  html {
    font-size: 16px;
  }
}
@media (max-width: 767px) {
  html {
    font-size: 16px;
  }
}
@media (max-width: 479px) {
  html {
    font-size: 16px;
  }
}

/* --- in-page navigation --------------------------------------------------
   Every nav link is an anchor. The Webflow build teleported to the target and
   left the section's top edge underneath the fixed navbar; these two lines
   glide there instead and stop clear of the bar. --nav-h is measured in
   main.js, so it stays right at every breakpoint; the fallback is the desktop
   height for the case where JS never runs. Reduced-motion readers get the
   instant jump back, at the bottom of this file.                            */
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-h, 75px);
}

/* --- text selection -----------------------------------------------------
   Gold highlight on dark ink, same as the Webflow build. The two rules stay
   separate on purpose: browsers drop a whole selector list when one part of
   it is unrecognised, so pairing them would lose the highlight in Firefox.  */
::-moz-selection {
  background: #e6a91d;
  color: #23232d;
}
::selection {
  background: #e6a91d;
  color: #23232d;
}

/* --- text rendering ------------------------------------------------------
   Thinner glyph rendering on macOS/Safari, matching the Webflow build.
   No effect on Windows or Android.                                         */
* {
  -webkit-font-smoothing: antialiased;
}

/* --- image sizing -------------------------------------------------------
   Every <img> carries its intrinsic width/height so the browser can reserve
   the box before the file arrives (no layout shift). Those attributes arrive
   as presentational hints — a literal used width and height — so both go back
   to auto here, and the attributes serve only to reserve the aspect ratio.
   Rules that set a size on a class (.brand-logo-image, .card-image, .avatar)
   still win on specificity and are unaffected.                             */
img {
  width: auto;
  height: auto;
}

/* --- skip link (keyboard a11y; not present on the Webflow build) -------- */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  padding: 12px 20px;
  background-color: var(--primary--60);
  color: var(--neutral--10);
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus {
  left: 0;
}

/* --- buttons that used to be divs -------------------------------------- */
.nav-toggle,
.slider-prev,
.slider-next {
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  font-family: inherit;
  padding: 0;
}
.nav-toggle {
  padding: 18px;
  background-color: #0000;
  color: inherit;
}

/* --- hero background video --------------------------------------------- */
.hero-video {
  object-fit: cover;
  z-index: -100;
  background-position: 50%;
  background-size: cover;
  width: 100%;
  height: 100%;
  margin: auto;
  position: absolute;
  inset: -100%;
}

/* --- client / brand logos (was an IX2 hover interaction) ---------------- */
.about-logos-mouseover {
  opacity: .2;
  filter: saturate(0%);
  transition: opacity .2s ease, filter .2s ease;
}
.lightbox-link:hover .about-logos-mouseover,
.lightbox-link:focus-visible .about-logos-mouseover {
  opacity: 1;
  filter: saturate(100%);
}

/* --- reading progress bar (was an IX2 scroll interaction) --------------- */
.progress-bar {
  transform: scaleX(0);
  will-change: transform;
}

/* --- experience timeline fill (was an IX2 scroll interaction) ----------- */
.process-timeline-progress {
  height: 0%;
}

/* --- inline-block runs --------------------------------------------------
   The Webflow build shipped minified HTML, so inline-block siblings had no
   whitespace between them. The slides are indented for readability here, so
   the mask's own text nodes are zeroed out instead — same rendering. (The
   footer nav solves the same problem by keeping its links adjacent in the
   markup, because there the parent's strut affects the line box height.)   */
.slider-mask {
  font-size: 0;
}
.slider-mask > .slide {
  font-size: 1rem;
  line-height: 1.75;
}

/* --- sliders ------------------------------------------------------------ */
.slider-mask {
  --slide-x: 0px;
}
.slide {
  transform: translateX(var(--slide-x));
  transition: transform .5s ease;
}
[data-easing="ease-in-out"] .slide {
  transition-timing-function: ease-in-out;
}
.slider-prev[hidden],
.slider-next[hidden] {
  display: none;
}

/* --- mobile navigation -------------------------------------------------- */
.nav-overlay {
  display: none;
}
.navbar.is-open .nav-overlay {
  display: block;
}
.navbar.is-open .nav-menu {
  transform: translateY(0);
  transition: transform .4s ease;
}
.nav-overlay .nav-menu {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: translateY(-100%);
  transition: transform .4s ease;
}
.menu-button.c-t-neutral-30.is-open {
  background-color: var(--neutral--80);
}
@media screen and (max-width: 991px) {
  /* The Webflow dropdown was padded on three sides only, so the Contact
     button's border sat flush against the panel's top edge. Match the
     bottom padding. */
  .nav-menu {
    padding-top: 16px;
  }
}

/* --- lightbox (ported from the Webflow lightbox styles) ----------------- */
.lb-backdrop {
  cursor: auto;
  letter-spacing: normal;
  text-indent: 0;
  text-shadow: none;
  text-transform: none;
  visibility: visible;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  overflow-wrap: normal;
  color: #fff;
  text-align: center;
  z-index: 2000;
  opacity: 0;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  background: #000000e6;
  outline: 0;
  font-family: Helvetica Neue, Helvetica, Ubuntu, Segoe UI, Verdana, sans-serif;
  font-size: 17px;
  font-style: normal;
  font-weight: 300;
  line-height: 1.2;
  position: fixed;
  inset: 0;
  /* closed: faded out AND inert, so it never swallows clicks on the page */
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s, visibility 0s .3s;
}
.lb-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .3s;
}
.lb-backdrop,
.lb-container {
  -webkit-overflow-scrolling: touch;
  height: 100%;
  overflow: auto;
}
.lb-content {
  height: 96vh;
  margin-top: 2vh;
  position: relative;
  overflow: hidden;
}
.lb-view {
  width: 100vw;
  height: 96vh;
  position: absolute;
}
.lb-view:before {
  content: "";
  height: 96vh;
}
.lb-frame,
.lb-view:before {
  vertical-align: middle;
  display: inline-block;
}
.lb-figure {
  margin: 0;
  position: relative;
}
.lb-img {
  width: auto;
  max-width: none;
  height: auto;
}
.lb-image {
  float: none;
  max-width: 96vw;
  max-height: 96vh;
  display: block;
}
.lb-embed {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  border: 0;
}
.lb-control {
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  cursor: pointer;
  background-color: #0000;
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: 24px;
  width: 4em;
  transition: all .3s;
  position: absolute;
  top: 0;
}
.lb-left {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg==");
  opacity: .5;
  bottom: 0;
  left: 0;
}
.lb-right {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+");
  opacity: .5;
  bottom: 0;
  right: 0;
}
.lb-close {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4=");
  background-size: 18px;
  height: 2.6em;
  opacity: .8;
  right: 0;
}
.lb-control:hover {
  opacity: 1;
}
.lb-control[hidden] {
  display: none;
}
.lb-noscroll {
  overflow: hidden;
}

/* --- honour reduced-motion preferences ---------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .slide,
  .nav-overlay .nav-menu,
  .about-logos-mouseover,
  .lb-backdrop {
    transition-duration: .01ms !important;
  }
  .hero-video {
    display: none;
  }
}
