:root {
  --purple:#8577ba;
  --purple-dark:#6e5bba;
  --ink:#565656;
  --body:#707070;
  --light:#f4f4f4;
  --content:1140px
}
@font-face {
  font-family:"Font Awesome Solid";
  src:url("assets/fa-solid-900.woff2") format("woff2");
  font-weight:900;
  font-style:normal;
  font-display:block
}
@font-face {
  font-family:"Font Awesome Brands";
  src:url("assets/fa-brands-400.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:block
}
.fa {
  display:inline-block;
  font-family:"Font Awesome Solid";
  font-style:normal;
  font-weight:900;
  line-height:1
}
.fa-cog:before { content:"\f013" }
.fa-refresh:before { content:"\f021" }
.fa-indent:before { content:"\f03c" }
.fa-random:before { content:"\f074" }
.fa-comment:before { content:"\f075" }
.fa-tachometer:before { content:"\f0e4" }
.fa-dedent:before { content:"\f03b" }
.fa-tasks:before { content:"\f0ae" }
.fa-signal:before { content:"\f012" }
.fa-group:before { content:"\f0c0" }
.fa-coffee:before { content:"\f0f4" }
.fa-cutlery:before { content:"\f0f5" }
.fa-suitcase:before { content:"\f0f1" }
.fa-briefcase:before { content:"\f0b1" }
.fa-comments-o:before { content:"\f0e6" }
.fa-globe:before { content:"\f0ac" }
.fa-phone-square:before { content:"\f098" }
.fa-envelope:before { content:"\f0e0" }
.fa-angle-double-up:before { content:"\f102" }
.fa-angle-left:before { content:"\f104" }
.fa-angle-right:before { content:"\f105" }
.fa-times:before { content:"\f00d" }
.fa-instagram,.fa-linkedin-square,.fa-linkedin-in {
  font-family:"Font Awesome Brands";
  font-weight:400
}
.fa-instagram:before { content:"\f16d" }
.fa-linkedin-square:before { content:"\f08c" }
.fa-linkedin-in:before { content:"\f0e1" }
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:72px
}
body {
  margin:0;
  color:var(--body);
  font:400 14px/1.85 Raleway,"Helvetica Neue",Arial,sans-serif;
  opacity:1;
  transition:opacity .45s ease-in-out
}
html.wf-loading body {
  opacity:0
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
.container {
  width:min(var(--content),calc(100% - 48px));
  margin-inline:auto
}
.site-header {
  position:fixed;
  z-index:20;
  inset:0 0 auto;
  height:60px;
  padding:0 max(34px,calc((100vw - var(--content))/2));
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#333;
  transform:translateY(-105%);
  transition:transform .35s ease,background .2s
}
.site-header.visible {
  transform:translateY(0)
}
.brand img {
  display:block;
  width:174px;
  height:60px;
  object-fit:contain
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:32px
}
.site-header nav a {
  font:500 12px/1 Roboto,"Open Sans",Arial,sans-serif;
  letter-spacing:.04em;
  color:white;
  text-transform:uppercase;
  transition:color .2s
}
.site-header nav a:hover {
  color:var(--purple)
}
.menu-toggle {
  display:none
}
.hero {
  height:100svh;
  position:relative;
  background:#fff url("assets/slide-1.jpg") center top/cover no-repeat
}
.hero-logo {
  position:absolute;
  top:min(311px,51.833vw,34.22svh);
  left:50%;
  transform:translateX(-50%);
  width:min(600px,100vw,66.667svh);
  height:auto;
}
.section {
  padding:100px 0
}
.section-title {
  margin:0 auto 34px;
  color:#565656;
  text-align:center;
  font-size:36px;
  font-weight:600;
  line-height:45px;
  text-transform:uppercase
}
.section-title em {
  color:var(--purple);
  font-style:normal
}
.lead {
  max-width:1140px;
  margin:0 auto;
  color:#969696;
  text-align:center;
  font-size:18px;
  line-height:1.7
}
.about .section-title {
  margin-bottom:24px
}
.about {
  padding-bottom:112px
}
.three-values {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin:105px auto 0;
  max-width:1140px;
  text-align:center
}
.three-values article {
  padding:0 15px
}
.line-icon {
  color:var(--purple);
  font-size:32px;
  line-height:1
}
.three-values h3 {
  margin:12px 0 0;
  color:#222;
  font-size:15px;
  font-weight:600;
  line-height:21px;
  letter-spacing:.03em
}
.three-values p {
  margin:18px 0 0;
  color:#707070;
  line-height:1.7
}
.quote-band {
  padding:74px 24px;
  display:grid;
  place-items:center;
  text-align:center;
  background:#222 url("assets/facts-parallax.jpg") center/cover no-repeat;
  background-attachment:fixed
}
.quote-band blockquote {
  max-width:960px;
  margin:0;
  color:#fff;
  font-size:18px;
  font-weight:500;
  line-height:30px
}
.quote-band cite {
  display:block;
  font-size:18px;
  font-style:normal
}
.mission {
  padding:100px 0 153px
}
.mission .lead {
  margin-bottom:110px
}
.principles {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:53px 30px
}
.principles article {
  display:flex;
  gap:24px
}
.principles b {
  flex:none;
  color:var(--purple);
  font-size:32px;
  line-height:1.2
}
.principles .fa {
  flex:none;
  width:24px;
  color:var(--purple);
  font-size:30px;
  line-height:1.2;
  text-align:center
}
.principles h3 {
  margin:0 0 8px;
  color:#565656;
  font:700 14px/26px Roboto,Arial,sans-serif
}
.principles article:nth-child(2) h3 {
  max-width:195px
}
.principles p {
  margin:0;
  color:#707070;
  line-height:1.7
}
.facts {
  padding:100px 0 119px;
  background:#262626 url("assets/testimonials-parallax.jpg") center/cover no-repeat;
  background-attachment:fixed;
  color:white
}
.facts .section-title {
  color:#fff;
  margin-bottom:116px
}
.counters {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  text-align:center
}
.counter {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  text-align:left
}
.counter-icon {
  font-size:42px;
  line-height:42px;
  color:#fff
}
.counter strong {
  font:700 36px/40px Roboto,Arial,sans-serif;
  color:var(--purple)
}
.counter-copy {
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.counter-copy span {
  margin-top:-6px;
  color:#fff;
  font-size:15px
}
.partner {
  text-align:center;
  padding-block:120px
}
.partner .section-title {
  margin-bottom:38px
}
.partner img {
  display:block;
  object-fit:contain;
  margin:0 auto 60px
}
.partner .lead {
  font-size:18px
}
.testimonials {
  padding-block:100px;
  background:#222 url("assets/pricing-parallax.jpg") center/cover no-repeat;
  background-attachment:fixed;
  color:#fff
}
.testimonials .section-title {
  color:#fff;
  margin-bottom:80px
}
.testimonial-track {
  max-width:960px;
  margin:auto;
  min-height:195px;
  display:grid;
  place-items:center;
  text-align:center
}
.testimonial-controls {
  margin-top:17px
}
.testimonial {
  animation:fade .3s ease
}
.testimonial blockquote {
  margin:0 0 22px;
  font-size:18px;
  line-height:1.75
}
.testimonial cite {
  font-style:normal;
  color:#fff
}
.testimonial-controls {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px
}
.testimonial-arrow {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #ffffffb5;
  border-radius:50%;
  background:transparent;
  color:#fff;
  font-size:14px;
  cursor:pointer;
  transition:background .2s,color .2s,border-color .2s
}
.testimonial-arrow:hover {
  border-color:var(--purple);
  background:var(--purple);
  color:#fff
}
.dots {
  display:flex;
  gap:10px
}
.dots button {
  width:10px;
  height:10px;
  padding:0;
  border:1px solid white;
  border-radius:50%;
  background:transparent
}
.dots button.active {
  background:var(--purple);
  border-color:var(--purple)
}
@keyframes fade {
  from {
    opacity:0
  }
  to {
    opacity:1
  }
}
.team {
  padding:100px 0 60px
}
.team .section-title {
  margin-bottom:20px
}
.team-grid {
  position:relative;
  margin-bottom:100px
}
.team-card {
  position:absolute;
  top:0;
  left:0;
  background:#fff;
  text-align:center
}
.team-card img {
  display:block;
  width:100%;
  object-fit:cover;
  filter:grayscale(1);
  transition:filter .3s
}
.team-card:hover img {
  filter:grayscale(0)
}
.team-copy {
  padding:30px;
  border-width:0 1px 1px;
  border-style:solid;
  border-color:transparent #e5e5e5 #e5e5e5
}
.team-copy h3 {
  margin:0;
  color:#111;
  font:800 15px/1.7 "Open Sans",Arial,sans-serif;
  text-transform:uppercase
}
.team-copy .role {
  display:block;
  color:#444;
  font:400 12px/14px "Open Sans",Arial,sans-serif;
  text-transform:uppercase
}
.team-spacer {
  display:block;
  height:5px
}
.team-divider {
  display:block;
  width:55px;
  height:7px;
  margin:13px auto 0;
  border-top:2px solid #111
}
.team-copy p {
  margin:5px 0 0;
  text-align:center;
  color:#555;
  font:400 13px/22px "Open Sans",Arial,sans-serif
}
.team-linkedin {
  display:inline-grid;
  width:30px;
  height:30px;
  margin:25px 5px 0;
  place-items:center;
  border:2px solid #fff;
  border-radius:50%;
  color:#111;
  font-size:17px;
  transition:color .2s
}
.team-linkedin:hover {
  color:var(--purple)
}
.careers {
  padding:60px 0 120px
}
.careers .section-title {
  margin-bottom:20px;
  text-transform:none
}
.center {
  text-align:center
}
.job-button {
  display:block;
  width:160px;
  height:80px;
  margin:40px auto 0;
  border:0;
  border-radius:4px;
  background:var(--purple);
  color:white;
  cursor:pointer;
  transition:background .2s
}
.job-button:hover {
  background:#9e5ea5
}
.social {
  padding:70px 24px;
  background:#333;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  text-align:center
}
.social a {
  color:#fff;
  font:700 14px/26px Roboto,Arial,sans-serif;
  letter-spacing:.04em
}
.social a:hover {
  color:var(--purple)
}
.social .fa {
  display:block;
  margin-bottom:20px;
  font-size:42px;
  line-height:1
}
.contact {
  padding:50px 0;
  background:#f4f4f4
}
.contact .section-title {
  margin-bottom:28px
}
.contact address {
  text-align:center;
  font-style:normal;
  line-height:2
}
.contact address p {
  margin:0
}
.contact address a:hover {
  color:var(--purple)
}
footer {
  padding:12px 16px;
  background:#222;
  color:#ccc;
  text-align:center;
  font-size:12px
}
footer a {
  color:var(--purple)
}
footer span {
  padding-inline:12px
}
.job-dialog {
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:#9e5ea5;
  color:#fff;
  box-shadow:none;
  overflow:hidden;
  opacity:0;
  transform:scale(.012);
  transform-origin:var(--origin-x,50%) var(--origin-y,50%);
  border-radius:50%;
  transition:transform .65s cubic-bezier(.7,0,.2,1),opacity .28s ease,border-radius .65s ease
}
.job-dialog.is-open {
  opacity:1;
  transform:scale(1);
  border-radius:0
}
.job-dialog.is-closing {
  opacity:0;
  transform:scale(.012);
  border-radius:50%
}
.job-dialog::backdrop {
  background:transparent
}
.dialog-content {
  height:100%;
  overflow:auto;
  padding:20px 24px 50px;
  opacity:0;
  transition:opacity .2s ease
}
.job-dialog.is-open .dialog-content {
  opacity:1;
  transition-delay:.25s
}
.job-dialog.is-closing .dialog-content {
  opacity:0;
  transition-delay:0s
}
.dialog-content h2 {
  margin:1em auto;
  text-align:center;
  font-size:18px;
  font-weight:300
}
.dialog-content p {
  max-width:700px;
  margin:50px auto 0;
  color:white;
  font-size:16px;
  line-height:26px
}
.dialog-close {
  position:absolute;
  z-index:1;
  top:15px;
  right:30px;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  font-size:18px;
  line-height:18px;
  cursor:pointer
}
.apply-link {
  display:block;
  width:max-content;
  margin:30px auto 0;
  padding:10px 22px;
  border:1px solid #fff;
  border-radius:3px
}
.back-top {
  position:fixed;
  right:28px;
  bottom:27px;
  z-index:12;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  background:#c5c5c5;
  color:#222;
  border-radius:2px;
  font-size:15px;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s
}
.back-top.visible {
  opacity:1;
  pointer-events:auto
}
*:focus-visible {
  outline:3px solid #40c8d3;
  outline-offset:3px
}
@media(max-width:900px) {
  .site-header {
    padding-inline:24px
  }
  .site-header nav {
    gap:18px
  }
  .principles {
    grid-template-columns:repeat(4,1fr)
  }
  .section-title {
    font-size:32px
  }
}
@media(max-width:640px) {
  .container {
    width:min(100% - 36px,var(--content))
  }
  .hero-logo {
    width:min(100vw,66.667svh)
  }
  .section-title {
    font-size:36px;
    line-height:45px
  }
  .three-values {
    grid-template-columns:1fr;
    gap:70px;
    margin-top:105px
  }
  .three-values article {
    display:block
  }
  .three-values h3 {
    margin:20px 0 0
  }
  .quote-band {
    background-attachment:scroll
  }
  .quote-band blockquote {
    font-size:18px
  }
  .principles {
    grid-template-columns:1fr;
    width:calc(100% - 54px);
    margin-inline:auto;
    gap:28px
  }
  .mission .lead {
    max-width:300px
  }
  .principles article:nth-child(2) h3 {
    max-width:none
  }
  .principles h3 {
    margin-bottom:10px
  }
  .principles p {
    margin-bottom:10px;
    line-height:26px
  }
  .principles article:nth-child(5) {
    margin-top:10px
  }
  .facts,.testimonials {
    background-attachment:scroll
  }
  .counters {
    grid-template-columns:repeat(2,1fr);
    gap:34px 12px
  }
  .counter strong {
    font-size:31px
  }
  .testimonial-track {
    min-height:290px
  }
  .testimonial blockquote {
    font-size:16px
  }
  .back-top {
    right:12px;
    bottom:12px
  }
}
@media(max-width:767px) {
  .mission {
    padding-bottom:129px
  }
  .mission .lead {
    margin-bottom:107px
  }
  .facts {
    padding-bottom:117px
  }
  .facts .container {
    width:min(300px,calc(100% - 36px))
  }
  .facts .section-title {
    max-width:280px;
    margin-bottom:120px
  }
  .principles {
    grid-template-columns:1fr;
    gap:28px
  }
  .counters {
    grid-template-columns:1fr;
    gap:38px
  }
  .counter {
    width:min(100%,230px);
    margin-inline:auto;
    justify-content:flex-start;
    gap:30px
  }
  .site-header {
    height:60px;
    padding-inline:16px
  }
  .brand img {
    width:174px;
    height:60px
  }
  .menu-toggle {
    display:grid;
    gap:5px;
    padding:10px;
    border:0;
    background:none
  }
  .menu-toggle span {
    display:block;
    width:24px;
    height:2px;
    background:#fff
  }
  .site-header nav {
    position:absolute;
    inset:60px 0 auto;
    display:none;
    padding:8px 24px 18px;
    background:#333;
    align-items:stretch;
    flex-direction:column;
    gap:0
  }
  .site-header nav.open {
    display:flex
  }
  .site-header nav a {
    padding:14px 0;
    border-bottom:1px solid #ffffff1b
  }
}
@media(max-width:480px) {
  .team-grid {
    grid-template-columns:1fr;
    gap:20px
  }
}
@media(hover:none) and (pointer:coarse) {
  .quote-band,.facts,.testimonials {
    background-attachment:scroll
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }
}
.testimonial-author {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  color:var(--purple)
}
.testimonial-author img {
  width:80px;
  height:80px;
  border-radius:50%;
  object-fit:cover
}
.testimonial-author span {
  color:#fff
}
.testimonial-author .author-name {
  color:var(--purple);
  font-weight:400
}
.dots button.active {
  background:#fff;
  border-color:#fff
}
