.projects {
  padding-bottom: 0;
}
.projects .project {
  padding: 12rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}
@media (max-width: 1099px) {
  .projects .project {
    padding: 8rem 2rem;
  }
}
.projects .project h3 {
  font-size: 5rem;
  letter-spacing: -3px;
}
.projects .project .meta p {
  max-width: 50rem;
}
.projects .project .container--grid {
  max-width: 160rem;
  margin: 0 auto;
}
@media screen and (min-width: 1000px) {
  .projects .project .container--grid {
    display: grid;
    grid-template-columns: 1fr 3fr;
    gap: 2rem;
  }
}
.projects .project .shots {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 120rem;
}
@media screen and (max-width: 970px) {
  .projects .project .shots {
    grid-template-columns: 1fr;
  }
}
.projects .project .shots .shot {
  position: relative;
  aspect-ratio: 1.385/1;
  overflow: hidden;
}
.projects .project .shots .shot .shot__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.25s ease-out;
  will-change: transform;
}
.projects .project .shots .shot span {
  background: white;
  color: black;
  padding: 0.5rem 1rem;
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
  text-transform: uppercase;
  font-size: 1rem;
  letter-spacing: 1px;
}
.projects .project--flow {
  background: linear-gradient(120deg, rgb(49, 52, 62) 0%, rgb(25, 25, 35) 100%);
  color: white;
}
.projects .project--flow .shots .shot span {
  background: #ee5b5b;
  color: #fff;
}
.projects .project--stella {
  background: linear-gradient(120deg, rgb(74, 96, 106) 0%, rgb(42, 55, 62) 100%);
  color: white;
}
.projects .project--stella .shots .shot--1, .projects .project--stella .shots .shot--2 {
  aspect-ratio: 1.223/1;
}
.projects .project--stella .shots .shot--3, .projects .project--stella .shots .shot--4 {
  aspect-ratio: 1.524/1;
}
.projects .project--stella .shots .shot span {
  background: #a9cd7a;
}
.projects .project--sitecompass {
  background: linear-gradient(120deg, rgb(1, 82, 86) 0%, rgb(1, 25, 28) 100%);
  color: white;
}
.projects .project--sitecompass .shots .shot {
  aspect-ratio: 1.276/1;
}
.projects .project--sitecompass .shots .shot span {
  background-color: #d5e8b1;
}
.projects .project--thinkladder {
  background: linear-gradient(120deg, rgb(233, 241, 248) 0%, rgb(191, 196, 201) 100%);
  color: black;
}
.projects .project--thinkladder .shots .shot--1 {
  aspect-ratio: 3.588/1;
  grid-column: span 2;
}
@media screen and (max-width: 970px) {
  .projects .project--thinkladder .shots .shot--1 {
    grid-column: span 1;
  }
}
.projects .project--thinkladder .shots .shot--2, .projects .project--thinkladder .shots .shot--3 {
  aspect-ratio: 1.803/1;
}
.projects .project--thinkladder .shots .shot span {
  background: #acb5bb;
  color: #fff;
}
.projects ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 1.2rem;
  text-transform: uppercase;
  margin-bottom: 4rem;
}
.projects ul li {
  padding: 0.5rem 1.5rem;
  background: #222;
  color: white;
  margin: 0.5rem 0.5rem 0.5rem 0;
  border-radius: 1rem;
  display: inline-block;
}

.projects-carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
}

.project {
  flex: 0 0 100%;
  scroll-snap-align: start;
  width: 100vw;
  overflow-y: auto;
}

.projects-carousel::-webkit-scrollbar {
  display: none;
}

.projects-carousel {
  -ms-overflow-style: none; /* IE/Edge */
  scrollbar-width: none; /* Firefox */
}

@media (max-width: 1099px) {
  .projects-carousel {
    display: block; /* stack vertically */
    overflow: visible;
    scroll-snap-type: none;
  }
  .project {
    flex: none;
    width: auto;
    scroll-snap-align: none;
  }
}
.carousel-nav__outer {
  background-color: #f3f3f3;
  padding: 1rem;
  background: linear-gradient(rgb(230, 230, 230) 0%, rgb(240, 240, 240) 100%);
}
@media (max-width: 1099px) {
  .carousel-nav__outer {
    display: none;
  }
}
.carousel-nav .carousel-btn {
  border: 1px solid #fff;
  padding: 1rem 2rem;
  text-transform: uppercase;
  color: black;
  border-radius: 10rem;
}
.carousel-nav .carousel-tile-btn {
  background: #f3f3f3;
  border: 1px solid #d7d7d7;
  border-radius: 1rem;
  height: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
  padding: 1rem 2rem 1rem 0rem;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.025);
  overflow: hidden;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 1.2rem;
}
.carousel-nav .carousel-tile-btn:hover {
  box-shadow: none;
  background: white;
}
.carousel-nav .carousel-tile-btn.active {
  background: #fff;
}
.carousel-nav .carousel-tile-btn:before {
  content: "";
  display: block;
  width: 4rem;
  height: 4rem;
  background: #ddd;
  background: #fff;
  background-image: url(../images/icon-stella.png) no-repeat center center;
  background-size: 80%;
  background-repeat: no-repeat;
  background-position: center;
}
.carousel-nav .carousel-tile-btn--stella:before {
  background-image: url(../images/icon-stella.png);
}
.carousel-nav .carousel-tile-btn--sitecompass:before {
  background-image: url(../images/icon-sitecompass.png);
}
.carousel-nav .carousel-tile-btn--thinkladder:before {
  background-image: url(../images/icon-think.png);
}
.carousel-nav .carousel-tile-btn--flow:before {
  background-image: url(../images/icon-flow.png);
}
.carousel-nav--tiles {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.login {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background: #fff;
  background: linear-gradient(34deg, rgb(255, 255, 255) 0%, rgb(160, 160, 160) 100%);
}
.login h1 {
  margin-top: 0;
  letter-spacing: -6px;
  font-size: 10rem;
}
.login h4 {
  margin-bottom: 2rem;
}
.login form {
  text-align: center;
  padding-bottom: 10rem;
}
.login .passcode-boxes {
  margin-bottom: 2rem;
}
.login input[type=text] {
  font-size: 3rem;
  padding: 1rem;
  width: 2rem;
  border: none;
  border-radius: 4px;
  height: 4rem;
  text-align: center;
}
.login .error {
  margin-top: 1rem;
  background: #d10000;
  color: white;
}

.btn {
  font-size: 2rem;
  padding: 1.5rem 2rem;
  background: #eee;
  color: #111;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 600;
  font-size: 1.6rem;
  border: none;
  border-radius: 4px;
  text-decoration: none;
  transition: all 0.3s;
  border: 1px solid white;
}
.btn:hover {
  background: #222;
  border-color: #eee;
  color: #fff;
}

html {
  scroll-behavior: smooth;
  font-size: 10px;
}

body {
  background: #fff;
  background: linear-gradient(34deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 75%, rgb(160, 160, 160) 100%);
  color: #111;
  font-size: 1.6rem;
  font-family: "Saira Semi Condensed", sans-serif;
  font-weight: 400;
  font-style: normal;
  margin: 0;
}
@media screen and (max-width: 1120px) {
  body {
    background: linear-gradient(34deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 75%, rgb(214, 214, 214) 100%);
  }
}

.container {
  padding: 0 2rem;
  max-width: 160rem;
  margin: 0 auto;
}

a, a:active, a:visited {
  color: black;
  background: white;
  display: inline-block;
  padding: 0px 2px;
}

h1 {
  font-style: normal;
  font-size: 14rem;
  line-height: 0.8;
  text-transform: uppercase;
  letter-spacing: -7px;
  margin-top: 13rem;
  margin-bottom: 4rem;
}
@media screen and (max-width: 1120px) {
  h1 {
    margin-top: 5rem;
    font-size: 12rem;
    letter-spacing: -4px;
  }
}
@media screen and (max-width: 780px) {
  h1 {
    font-size: 8rem;
    letter-spacing: -2px;
  }
}
@media screen and (max-width: 500px) {
  h1 {
    font-size: 6rem;
    letter-spacing: -2px;
  }
}

h2 {
  font-size: 7rem;
  margin: 0;
  line-height: 1;
  letter-spacing: -3px;
  text-transform: uppercase;
}
@media screen and (max-width: 600px) {
  h2 {
    font-size: 4rem;
    letter-spacing: -1.5px;
  }
}

h3 {
  font-size: 3rem;
  margin: 0;
  line-height: 1;
  letter-spacing: -2px;
  text-transform: uppercase;
}

h4 {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 1rem;
  font-weight: 200;
}

h5 {
  font-weight: 600;
  font-size: 2rem;
  margin-bottom: 1rem;
}

.intro {
  font-size: 2.4rem;
  line-height: 1.25;
  max-width: 90rem;
  margin-bottom: 4rem;
}

section {
  padding-top: 10rem;
  padding-bottom: 10rem;
}
section hgroup {
  margin-bottom: 4rem;
}

.box-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  max-width: 160rem;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.box-list li {
  transition: all 0.5s;
}
.box-list a {
  color: #111;
}
.box-list strong {
  display: block;
  border-bottom: 1px solid #ddd;
  font-size: 3rem;
  padding: 0 1rem;
}
.box-list span {
  display: block;
  padding: 1rem;
}

#about {
  background: #e8e8e8;
  background: linear-gradient(0deg, #c4c4c4, transparent);
}
#about h3 {
  border-bottom: 1px solid #cbcbcb;
  padding-bottom: 2rem;
}

.skills {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  -moz-column-gap: 2rem;
       column-gap: 2rem;
  row-gap: 2rem;
}
.skills .skill {
  padding: 2rem;
  background: #f3f3f3;
  display: flex;
  flex-direction: column;
  transform: translateY(2rem);
  transition: transform 0.5s;
}
.skills .skill h3 {
  text-transform: none;
  font-size: 2.4rem;
  letter-spacing: -1px;
}
.skills .skill:hover {
  transform: translateY(-2rem);
}

.cols {
  display: grid;
  gap: 6rem;
}
.cols.cols--3 {
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
.cols.cols--4 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

footer {
  background: #292929;
  color: #fff;
  text-align: center;
  padding: 4rem;
}/*# sourceMappingURL=style.css.map */