@charset "UTF-8";
:root {
  --dark: #0a0a0b;
  --dark-alt: #1D1D20;
  --grey: #747481;
  --light: #fefffe;
  --accent: #f18e04;
  --accent-light: #f7bb68;
  --accent-alt: #8BBF9F;
  --font1: "Montserrat Alternates", sans-serif;
  --font2: "adobe-garamond-pro", serif;
  --marginlr: 2em;
  --margintb: 2em;
  --maxwidth: 1200px;
  --scrollbarwidth: 4px;
}

html {
  font-size: 62.5%;
}
html ::-webkit-scrollbar {
  width: var(--scrollbarwidth);
  height: var(--scrollbarwidth);
}
html ::-webkit-scrollbar-track {
  background: var(--dark);
}
html ::-webkit-scrollbar-thumb {
  background: var(--light);
}
html ::-webkit-scrollbar-corner {
  background: var(--dark);
}

body {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: var(--font1);
  background-color: var(--dark);
}
body h1 {
  font-size: 5rem;
  font-family: var(--font1);
  color: var(--light);
  margin: 0;
}
body h2 {
  font-size: 3.8rem;
  font-family: var(--font1);
  color: var(--light);
  font-weight: 600;
  margin: 0;
}
body h3 {
  font-size: 2.5rem;
  font-family: var(--font1);
  color: var(--light);
  font-weight: 300;
  margin: 0;
}
body h4, body h5 {
  margin: 0;
}
body p {
  font-size: 1.6rem;
  line-height: 2.4rem;
  font-family: var(--font2);
  color: var(--light);
  font-weight: 400;
  font-style: normal;
  margin: 0;
}

.loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: var(--dark);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 5em;
  align-items: center;
  justify-content: center;
  opacity: 1;
}
.loader .logo-container {
  width: 11em;
  display: flex;
  align-items: center;
  justify-content: center;
}
.loader .logo-container svg {
  width: 100%;
  aspect-ratio: 1/1;
  transform: rotate(0deg);
  animation: rotate-logo 2s ease infinite;
  transition: width 200ms ease;
}
.loader .logo-container svg path, .loader .logo-container svg polyline, .loader .logo-container svg rect {
  fill: none;
  stroke: var(--accent);
  stroke-width: 400px;
}
.loader .logo-container svg rect {
  stroke: var(--dark);
}
.loader .logo-container svg .outer-line {
  stroke-dasharray: 6199;
  stroke-dashoffset: 0;
  animation: draw-outer-line 2s ease-in-out infinite;
}
.loader .logo-container svg .inner-curve {
  stroke-linecap: round;
  stroke-dasharray: 5454.4267578125;
  stroke-dashoffset: 0;
  animation: draw-inner-curve 2s ease-in-out infinite;
}
@keyframes draw-outer-line {
  0% {
    stroke-dashoffset: 6199;
  }
  60% {
    stroke-dashoffset: 0;
  }
}
@keyframes draw-inner-curve {
  0% {
    stroke-dashoffset: 5454.4267578125;
  }
  60% {
    stroke-dashoffset: 0;
  }
}
@keyframes rotate-logo {
  70% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-180deg);
  }
}
.loader .loader-dbs {
  color: var(--light);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1em;
  margin: 0;
}
.loader .loader-dbs h5 {
  font-family: var(--font2);
  font-weight: 700;
  font-style: normal;
  font-size: 2.4rem;
  margin: 0;
}
.loader .loader-dbs h6 {
  font-family: var(--font2);
  font-weight: 400;
  font-style: italic;
  font-size: 2.4rem;
  margin: 0;
}

.loader.loaded {
  opacity: 0;
  pointer-events: none;
}

main {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20em;
}

nav-header {
  visibility: hidden;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100vw;
  background: var(--dark);
  z-index: 999;
  text-align: center;
  transform: translateX(100%);
  transition: transform 500ms ease;
  transition-delay: 250ms;
}
nav-header ul {
  list-style-type: none;
  position: absolute;
  padding: 0;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  height: 50%;
  display: flex;
  flex-direction: column;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
nav-header ul a {
  text-decoration: none;
  color: var(--light);
  display: block;
  text-transform: capitalize;
  font-size: 2.8rem;
  width: 100%;
  padding: calc((50vh - 136px) / 8) 0;
}
nav-header .close {
  float: right;
  margin: 2em;
  width: 2.5em;
  padding: 2.5em;
  cursor: pointer;
  transform: rotate(180deg);
  transition: all 250ms ease-out;
  transition-delay: 0ms;
}

.js-ready nav-header {
  visibility: visible;
}

.open-nav {
  visibility: visible;
  transform: translateX(0%);
  transition: transform 500ms ease-out;
  transition-delay: 0ms;
}
.open-nav .close {
  transform: rotate(0deg);
  transition: all 500ms ease-out;
  transition-delay: 250ms;
}

.preload nav-header {
  transform: translateX(100%) !important;
  transition: none !important;
}

.header-wrapper {
  background-color: var(--dark);
  width: 100%;
  height: 7.5em;
}

header {
  margin: var(--margintb) var(--marginlr);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
header .short-logo svg {
  background-color: transparent;
  height: 5em;
  fill: var(--light);
}
header .short-logo-home svg {
  fill: var(--dark);
}
header .menu {
  height: 2.5em;
  padding: 2.5em;
  padding-right: 0;
  cursor: pointer;
}

footer {
  background-color: var(--dark);
  bottom: 0;
  padding: 0;
}
footer .contact-cta-wrapper {
  margin: 0 0 6em 0;
  padding: 3em 0 4em 0;
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  align-items: center;
  background-color: var(--accent-alt);
}
footer .contact-cta-wrapper h3 {
  color: var(--light);
  font-weight: 500;
}
footer .footer-grid {
  margin: var(--margintb) var(--marginlr);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5em;
}
footer .footer-grid .long-logo svg {
  height: 5em;
  margin: 0 0 2em 0;
  padding: 2em;
}
footer .footer-grid nav-footer {
  display: flex;
  flex-direction: column;
  gap: 2.5em;
  align-items: center;
  grid-area: left;
}
footer .footer-grid nav-footer ul {
  list-style-type: none;
  display: flex;
  flex-direction: row;
  gap: 2.5em;
  margin: 0;
  padding: 0;
}
footer .footer-grid nav-footer a {
  text-decoration: none;
  color: var(--light);
  text-transform: capitalize;
  font-size: 1.5rem;
  position: relative;
  transition: color 300ms ease;
}
footer .footer-grid nav-footer .active {
  color: var(--accent-alt);
}
footer .footer-grid .social-btns-container-footer {
  display: flex;
  gap: 1.5em;
}
footer .footer-grid .social-btns-container-footer .social-btns {
  box-sizing: border-box;
  width: 3.5em;
  height: 3.5em;
  border-radius: 0.5em;
  padding: 0.5em;
  transition: transform 800ms ease;
}
footer .footer-grid .social-btns-container-footer svg {
  fill: var(--light);
}
footer .footer-grid .my-email {
  text-decoration: none;
  color: var(--light);
  font-size: 1.5rem;
  font-family: var(--font1);
  margin: 0;
  padding-top: 0;
  transition: color 300ms ease;
}
footer .footer-grid p {
  color: var(--grey);
  font-size: 1.2rem;
  font-family: var(--font2);
  padding-top: 3em;
}

.full-bleed {
  box-shadow: 0 0 0 100vmax var(--accent-alt);
  -webkit-clip-path: inset(0 -100vmax);
          clip-path: inset(0 -100vmax);
}

section.hero {
  margin: 10em var(--marginlr) 0 var(--marginlr);
  height: calc(100vh - 10em - 7.5em - 2em);
  min-height: calc(800px - 10em - 7.5em - 2em);
}
section.hero .hero-text {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 7em;
}
section.hero .hero-text h1 {
  max-width: 8em;
}
section.hero .hero-text .hero-dbs {
  display: flex;
  align-items: center;
  gap: 1.3em;
  margin: 0;
}
section.hero .hero-text .hero-dbs h5 {
  font-family: var(--font2);
  font-weight: 700;
  font-style: normal;
  font-size: 3.8rem;
  color: var(--light);
  margin: 0;
}
section.hero .hero-text .hero-dbs h6 {
  font-family: var(--font2);
  font-weight: 400;
  font-style: italic;
  font-size: 3.8rem;
  color: var(--light);
  margin: 0;
  padding-right: 0.1em;
}
section.hero .cta-btns {
  margin-top: 10em;
  cursor: pointer;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
section.hero .hero-graphics video {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100vw - 6px);
  height: 100vh;
  min-height: 800px;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: -1;
}
section.hero .hero-graphics img {
  display: none;
}

.cta-btns {
  display: flex;
  position: relative;
}
.cta-btns .primary-cta {
  color: var(--dark);
  background-color: var(--light);
  font-family: var(--font1);
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  border-radius: 1.9em;
  padding: 1em 2em;
  transition: transform 800ms ease, background-color 250ms ease, color 250ms ease;
}
.cta-btns .secondary-cta {
  color: var(--light);
  background-color: transparent;
  font-family: var(--font1);
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  border-radius: 1.9em;
  border-style: solid;
  border-width: 2px;
  border-color: var(--accent);
  padding: 1em 2em;
  position: relative;
  overflow: hidden;
}
.cta-btns .secondary-cta::before {
  content: "";
  position: absolute;
  width: 0%;
  height: 100%;
  background-color: var(--accent);
  top: 0;
  left: 0;
  z-index: -1;
  transition: width 500ms;
}
.cta-btns .secondary-cta:active:before {
  transition: width 150ms;
}

.footer-cta-line {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.footer-cta-line .footer-cta {
  color: var(--dark);
  font-family: var(--font1);
  font-size: 1.5rem;
  font-weight: 500;
  text-decoration: none;
  border-style: none;
  transition: all 250ms ease;
}
.footer-cta-line .btn-line {
  height: 0;
  border-bottom: solid 2px var(--light);
}

#scrolltopBtn {
  display: none;
  width: 4em;
  aspect-ratio: 1/1;
  position: fixed;
  bottom: 20px;
  right: 0.1em;
  z-index: 99;
  background-color: transparent;
  fill-opacity: 0.5;
  border: none;
  outline: none;
  cursor: pointer;
  box-sizing: content-box;
  transition: all 300ms ease-in-out;
}
#scrolltopBtn svg {
  fill: var(--light);
}
#scrolltopBtn :hover {
  fill: var(--accent);
  fill-opacity: 1;
}

section.about {
  margin: 0 var(--marginlr) 0 calc(var(--marginlr) - var(--scrollbarwidth));
  position: relative;
}
section.about h1 {
  position: absolute;
  left: 0;
  top: -0.7em;
  margin: 0;
  z-index: 1;
}
section.about .about-img-txt {
  position: relative;
  margin-bottom: 50px;
  width: 90vw;
}
section.about .about-img-txt .about-img {
  background-image: linear-gradient(0deg, hsla(0, 0%, 35.29%, 0) 0%, hsla(0, 0%, 34.53%, 0.034375) 16.36%, hsla(0, 0%, 32.42%, 0.125) 33.34%, hsla(0, 0%, 29.18%, 0.253125) 50.1%, hsla(0, 0%, 24.96%, 0.4) 65.75%, hsla(0, 0%, 19.85%, 0.546875) 79.43%, hsla(0, 0%, 13.95%, 0.675) 90.28%, hsla(0, 0%, 7.32%, 0.765625) 97.43%, hsla(0, 0%, 0%, 0.8) 100%), url(/Assets/Images/photo-about-me-wales-2024.jpg);
  width: 90%;
  aspect-ratio: 1/1;
  max-width: 500px;
  max-height: 500px;
  background-position: center;
  background-size: cover;
  z-index: -1;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  filter: grayscale(100%);
  transition: filter 0.5s;
}
section.about .about-img-txt .about-img:hover {
  filter: grayscale(0%);
}
section.about .about-img-txt .quote-container {
  position: absolute;
  left: 0;
  bottom: -1.6em;
  margin: 0;
  z-index: 1;
  max-width: 550px;
  background: linear-gradient(0deg, rgb(10, 10, 11) 25%, rgba(10, 10, 11, 0.4) 90%, rgba(10, 10, 11, 0) 100%);
}
section.about .about-img-txt .quote-container .quote {
  margin-left: 1em;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
  font-family: var(--font1);
  font-weight: 200;
  font-style: normal;
  font-size: 2.5rem;
  color: var(--light);
  line-height: unset;
}
section.about .about-img-txt .quote-container .quote-mark {
  margin: 0;
  position: absolute;
  font-family: var(--font1);
  font-weight: 500;
  font-style: normal;
  font-size: 5rem;
  color: var(--accent);
}
section.about .about-img-txt .quote-container .open-quote {
  left: 2px;
  transform: translateY(0.1em);
}
section.about .about-img-txt .quote-container .close-quote {
  transform: translateY(-0.2em);
}
section.about h2 {
  position: relative;
  margin-top: 50px;
  margin-bottom: 50px;
  z-index: 1;
  font-family: var(--font1);
  font-weight: 500;
  font-style: normal;
  color: var(--light);
}
section.about h2 span {
  color: var(--dark);
}
section.about .design-discipline {
  padding: 0 0 0 3px;
  background-color: var(--accent);
  letter-spacing: -1px;
}
section.about .design-discipline::before {
  content: "​";
  content: "​"/"Product";
  alt: "Product";
  white-space: break-spaces;
  will-change: content;
  animation: typed-0 12.06s linear 1s infinite forwards;
}
section.about .design-discipline::after {
  content: "​";
  position: relative;
  display: inline-block;
  padding-right: 2px;
  border-right: 5px solid #0a0a0b;
  white-space: nowrap;
  animation: typed-0-caret 0.75s linear 1s infinite forwards;
}
@keyframes typed-0 {
  0%, 0.8281873964% {
    content: "​P";
    content: "​P"/"Product";
    alt: "Product";
  }
  0.8291873964%, 1.6573747927% {
    content: "​Pr";
    content: "​Pr"/"Product";
    alt: "Product";
  }
  1.6583747927%, 2.4865621891% {
    content: "​Pro";
    content: "​Pro"/"Product";
    alt: "Product";
  }
  2.4875621891%, 3.3157495854% {
    content: "​Prod";
    content: "​Prod"/"Product";
    alt: "Product";
  }
  3.3167495854%, 4.1449369818% {
    content: "​Produ";
    content: "​Produ"/"Product";
    alt: "Product";
  }
  4.1459369818%, 4.9741243781% {
    content: "​Produc";
    content: "​Produc"/"Product";
    alt: "Product";
  }
  4.9751243781%, 23.0504096186% {
    content: "​Product";
    content: "​Product"/"Product";
    alt: "Product";
  }
  23.0514096186%, 23.7137595357% {
    content: "​Produc";
    content: "​Produc"/"Product";
    alt: "Product";
  }
  23.7147595357%, 24.3771094527% {
    content: "​Produ";
    content: "​Produ"/"Product";
    alt: "Product";
  }
  24.3781094527%, 25.0404593698% {
    content: "​Prod";
    content: "​Prod"/"Product";
    alt: "Product";
  }
  25.0414593698%, 25.7038092869% {
    content: "​Pro";
    content: "​Pro"/"Product";
    alt: "Product";
  }
  25.7048092869%, 26.367159204% {
    content: "​Pr";
    content: "​Pr"/"Product";
    alt: "Product";
  }
  26.368159204%, 27.0305091211% {
    content: "​P";
    content: "​P"/"Product";
    alt: "Product";
  }
  27.0315091211%, 35.3223830846% {
    content: "​";
    content: "​"/"Product";
    alt: "Product";
  }
  35.3233830846%, 36.1515704809% {
    content: "​G";
    content: "​G"/"Product";
    alt: "Product";
  }
  36.1525704809%, 36.9807578773% {
    content: "​Gr";
    content: "​Gr"/"Product";
    alt: "Product";
  }
  36.9817578773%, 37.8099452736% {
    content: "​Gra";
    content: "​Gra"/"Product";
    alt: "Product";
  }
  37.8109452736%, 38.63913267% {
    content: "​Grap";
    content: "​Grap"/"Product";
    alt: "Product";
  }
  38.64013267%, 39.4683200663% {
    content: "​Graph";
    content: "​Graph"/"Product";
    alt: "Product";
  }
  39.4693200663%, 40.2975074627% {
    content: "​Graphi";
    content: "​Graphi"/"Product";
    alt: "Product";
  }
  40.2985074627%, 58.3737927032% {
    content: "​Graphic";
    content: "​Graphic"/"Product";
    alt: "Product";
  }
  58.3747927032%, 59.0371426202% {
    content: "​Graphi";
    content: "​Graphi"/"Product";
    alt: "Product";
  }
  59.0381426202%, 59.7004925373% {
    content: "​Graph";
    content: "​Graph"/"Product";
    alt: "Product";
  }
  59.7014925373%, 60.3638424544% {
    content: "​Grap";
    content: "​Grap"/"Product";
    alt: "Product";
  }
  60.3648424544%, 61.0271923715% {
    content: "​Gra";
    content: "​Gra"/"Product";
    alt: "Product";
  }
  61.0281923715%, 61.6905422886% {
    content: "​Gr";
    content: "​Gr"/"Product";
    alt: "Product";
  }
  61.6915422886%, 62.3538922056% {
    content: "​G";
    content: "​G"/"Product";
    alt: "Product";
  }
  62.3548922056%, 70.6457661692% {
    content: "​";
    content: "​"/"Product";
    alt: "Product";
  }
  70.6467661692%, 71.4749535655% {
    content: "​W";
    content: "​W"/"Product";
    alt: "Product";
  }
  71.4759535655%, 72.3041409619% {
    content: "​We";
    content: "​We"/"Product";
    alt: "Product";
  }
  72.3051409619%, 90.3804262023% {
    content: "​Web";
    content: "​Web"/"Product";
    alt: "Product";
  }
  90.3814262023%, 91.0437761194% {
    content: "​We";
    content: "​We"/"Product";
    alt: "Product";
  }
  91.0447761194%, 91.7071260365% {
    content: "​W";
    content: "​W"/"Product";
    alt: "Product";
  }
  91.7081260365%, 100% {
    content: "​";
    content: "​"/"Product";
    alt: "Product";
  }
}
@keyframes typed-0-caret {
  75% {
    border-color: transparent;
  }
}
section.about .paragraph-container {
  display: flex;
  flex-direction: column;
  gap: 1em;
}
section.about .paragraph-container .last-p {
  margin: 1em 0;
  font-style: italic;
}
section.about .paragraph-container .last-p a {
  color: var(--light);
  text-decoration: none;
  font-weight: bold;
}
section.about .more-about-cta {
  margin-top: 1em;
  border-color: var(--light);
}
section.about .more-about-cta::before {
  background-color: var(--light);
}

section.projects {
  margin: 0 var(--marginlr);
  position: relative;
  padding-top: 4em;
  box-sizing: border-box;
}
section.projects h1 {
  position: absolute;
  left: 0;
  top: 0.1em;
  margin: 0;
  z-index: 1;
  padding: 0;
  margin: 0;
}
section.projects .home-projects-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2em;
  width: 100%;
}
section.projects section {
  padding: 0;
  margin: 0;
  overflow: hidden;
  width: 100%;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
section.projects section .card {
  width: 100%;
  aspect-ratio: 4/3;
  background-repeat: none;
  background-position: center center;
  background-size: cover;
  transition: 600ms ease;
}
section.projects section .card-1 {
  background-image: linear-gradient(0deg, hsla(0, 0%, 35.29%, 0) 60%, hsla(0, 0%, 34.53%, 0.034375) 65%, hsla(0, 0%, 32.42%, 0.125) 70%, hsla(0, 0%, 29.18%, 0.253125) 75%, hsla(0, 0%, 24.96%, 0.4) 80%, hsla(0, 0%, 19.85%, 0.546875) 85%, hsla(0, 0%, 13.95%, 0.675) 90.28%, hsla(0, 0%, 7.32%, 0.765625) 97.43%, hsla(0, 0%, 0%, 0.8) 100%), url(/Assets/Images/Projects/Graphics-WC-1.jpg);
}
section.projects section .card-2 {
  background-image: url(/Assets/Images/Projects/Graphics-MT-1.jpg);
}
section.projects section .card-3 {
  background-image: url(/Assets/Images/Projects/LumoPod-1.jpg);
}
section.projects section .card-4 {
  background-image: url(/Assets/Images/Projects/Pathfinder-3.jpg);
}
section.projects section .card-5 {
  background-image: url(/Assets/Images/Projects/Graphics-United-1.jpg);
}
section.projects section .card-6 {
  background-image: url(/Assets/Images/Projects/Drone-1.jpg);
}
section.projects section .card-7 {
  background-image: linear-gradient(0deg, rgb(10, 10, 11) 0%, rgba(255, 255, 255, 0) 100%), url(/Assets/Images/Projects/Drone-2.jpg);
  filter: grayscale(100%);
}
section.projects section.final {
  display: flex;
  justify-content: center;
  align-items: center;
}
section.projects section.final .cta-btns {
  z-index: 1;
  position: absolute;
}

section.testimonials {
  margin: 0 var(--marginlr) 200px var(--marginlr);
}
section.testimonials h1 {
  margin-bottom: 0.5em;
}
section.testimonials .tst-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, 1fr);
  gap: 3em;
}

.tst-card, .tst-grid .tst-card {
  box-sizing: border-box;
  width: 100%;
  background-color: var(--dark);
  border: 1px solid var(--dark-alt);
  padding: 2.5em;
  display: grid;
  gap: 2em;
  grid-template-columns: min-content 1fr;
  grid-template-rows: max-content max-content max-content;
  grid-template-areas: "left line top-right" "left line mid-right" "left line btm-right";
}
.tst-card .tst-avatar, .tst-grid .tst-card .tst-avatar {
  grid-area: left;
  width: 100px;
  height: 100px;
  border-radius: 90px;
  background-position: center;
  background-size: cover;
  background-color: var(--light);
}
.tst-card .avatar-hazel, .tst-grid .tst-card .avatar-hazel {
  background-image: url(/Assets/Images/hazel-avatar.jpg);
}
.tst-card .avatar-tom, .tst-grid .tst-card .avatar-tom {
  background-image: url(/Assets/Images/tom-avatar-graded.jpg);
}
.tst-card .avatar-beth, .tst-grid .tst-card .avatar-beth {
  background-image: url(/Assets/Images/beth-avatar-graded.jpg);
}
.tst-card .avatar-teacher, .tst-grid .tst-card .avatar-teacher {
  background-image: url(/Assets/Images/teacher-avatar-graded.jpg);
}
.tst-card .grid-line, .tst-grid .tst-card .grid-line {
  grid-area: line;
  width: 0;
  height: 100%;
  border-right: solid 2px var(--accent);
}
.tst-card .tst-title, .tst-grid .tst-card .tst-title {
  grid-area: top-right;
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.tst-card .tst-title h4, .tst-grid .tst-card .tst-title h4 {
  font-family: var(--font2);
  font-size: 1.8rem;
  font-weight: bold;
  color: var(--light);
}
.tst-card .tst-title h3, .tst-grid .tst-card .tst-title h3 {
  color: var(--accent);
  font-weight: 500;
}
.tst-card .tst-content, .tst-grid .tst-card .tst-content {
  position: relative;
  grid-area: mid-right;
}
.tst-card .tst-content p, .tst-grid .tst-card .tst-content p {
  position: relative;
  font-size: 1.8rem;
  z-index: 2;
}
.tst-card .tst-content .tst-quotemark, .tst-grid .tst-card .tst-content .tst-quotemark {
  position: absolute;
  width: 100px;
  z-index: 1;
  fill: transparent;
  stroke: var(--accent);
  stroke-width: 10px;
  opacity: 0.2;
}
.tst-card .tst-content .tst-openquote, .tst-grid .tst-card .tst-content .tst-openquote {
  top: 0;
  left: 0;
}
.tst-card .tst-content .tst-closequote, .tst-grid .tst-card .tst-content .tst-closequote {
  bottom: 0;
  right: 0;
}
.tst-card .see-project-cta, .tst-grid .tst-card .see-project-cta {
  font-family: var(--font2);
  font-size: 1.6rem;
  text-decoration: none;
  text-wrap: nowrap;
  color: var(--light);
  padding: 0.3em 1em;
  border: 1px solid var(--light);
  border-radius: 10em;
  width: -moz-min-content;
  width: min-content;
  transition: all 300ms ease-in-out;
}
.tst-card .see-project-cta:hover, .tst-grid .tst-card .see-project-cta:hover {
  transition: all 100ms ease-in-out;
  background-color: var(--light);
  color: var(--dark);
}

.about-main {
  gap: 0;
}

.mockup-bg-img {
  position: fixed;
  left: 0;
  top: 25vh;
  z-index: -1;
  width: 100%;
  height: 50vh;
  background-image: linear-gradient(0deg, rgb(10, 10, 11) 0%, rgba(10, 10, 11, 0.6043862952) 30%, rgba(10, 10, 11, 0.4025790663) 50%, rgba(10, 10, 11, 0.5953501506) 70%, rgb(10, 10, 11) 100%), url(/Assets/Images/Neon-Sign-Mockup.jpg);
  background-size: cover;
  background-repeat: none;
  background-position: center;
}

.more-about-me {
  background-color: var(--dark);
  padding-top: 10em;
}
.more-about-me .more-about-me-wrapper {
  margin: 0 var(--marginlr);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2.5em;
  padding-bottom: 10em;
}
.more-about-me h1 {
  position: absolute;
  left: 0;
  top: -3.1%;
}
.more-about-me .more-about-me-img {
  background-image: linear-gradient(0deg, hsla(0, 0%, 35.29%, 0) 70%, hsla(0, 0%, 34.53%, 0.034375) 75%, hsla(0, 0%, 32.42%, 0.125) 80%, hsla(0, 0%, 29.18%, 0.253125) 84%, hsla(0, 0%, 24.96%, 0.4) 88%, hsla(0, 0%, 19.85%, 0.546875) 92%, hsla(0, 0%, 13.95%, 0.675) 95%, hsla(0, 0%, 7.32%, 0.765625) 97.43%, hsla(0, 0%, 0%, 0.8) 100%), url(/Assets/Images/SP-Headshot-2023.jpg);
  width: 100%;
  max-width: 500px;
  aspect-ratio: 1/1;
  background-size: cover;
  background-position: center;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
.more-about-me .paragraph-container {
  display: flex;
  flex-direction: column;
  gap: 2.5em;
  text-align: left;
}
.more-about-me .cta-btns {
  align-self: flex-start;
  margin: 2.5em 0 5em 0;
}
.more-about-me .cta-btns a {
  color: var(--light);
  background-color: transparent;
  border: solid 2px var(--accent);
}
.more-about-me .cta-btns a:hover, .more-about-me .cta-btns a:active {
  background-color: var(--accent);
}

.services {
  background: rgba(10, 10, 11, 0.6);
}
.services .services-grid {
  margin: 0 var(--marginlr);
  display: grid;
  gap: 5em 2em;
  grid-template-columns: 1fr 2fr;
  grid-template-rows: min-content min-content min-content;
  grid-template-areas: "top      top" "mid-left mid-right" "btm-left btm-right";
  padding: var(--marginlr) 0 0 0;
}
.services .services-grid h1 {
  color: var(--light);
  grid-area: top;
}
.services .services-grid h1 span {
  color: var(--accent);
}
.services .services-grid .graphics-title {
  grid-area: mid-left;
}
.services .services-grid .ul-graphics {
  grid-area: mid-right;
}
.services .services-grid .product-title {
  grid-area: btm-left;
}
.services .services-grid .ul-product {
  grid-area: btm-right;
}
.services .services-grid .services-title {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.services .services-grid h3 {
  font-weight: 500;
  margin: 0;
  padding: 0;
}
.services .services-grid svg {
  width: 10em;
  fill: var(--light);
  padding: 1em 0 0 0;
}
.services .services-grid ul {
  display: flex;
  flex-direction: column;
  gap: 1em;
  color: var(--light);
  text-decoration: none;
  list-style-type: none;
  align-items: start;
  border-left: solid 2px var(--accent);
  padding: 0 0 0 1.5em;
  margin: 0;
}
.services .services-grid ul li {
  font-size: 1.5rem;
  padding: 0 0 0.5em 0;
}
.services p {
  margin: 5em var(--marginlr);
}
.services p a {
  text-decoration: none;
  color: var(--light);
  font-weight: bold;
}

.contact-form-container {
  margin: 10em var(--marginlr) 200px var(--marginlr);
  display: grid;
  gap: 3em 0;
  grid-template-columns: auto min-content;
  grid-template-rows: min-content min-content min-content min-content;
  grid-template-areas: "top         top" "middle      middle" "bottom-left bottom-right" "img         img";
}
.contact-form-container h1 {
  grid-area: top;
  margin: 0;
}
.contact-form-container form {
  grid-area: middle;
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.contact-form-container form p {
  padding-bottom: 2em;
}
.contact-form-container form .form-element {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
.contact-form-container form .form-element .invalid-feedback {
  display: none;
  color: var(--accent);
  font-size: 1.2rem;
  border: 1px solid transparent;
  padding-left: 1em;
}
.contact-form-container form input[type=text], .contact-form-container form input[type=email], .contact-form-container form select, .contact-form-container form textarea {
  box-sizing: border-box;
  padding: 1em;
  width: 100%;
  height: 50px;
  background-color: transparent;
  border: 1px solid var(--light);
  font-family: var(--font1);
  font-size: 1.4rem;
  color: var(--light);
  outline: none;
  resize: vertical;
  transition: 400ms ease-in-out;
}
.contact-form-container form .form-control.has-error {
  border: 1px solid var(--accent);
}
.contact-form-container form .form-control.no-error {
  border: 1px solid var(--accent-alt);
}
.contact-form-container form .form-privacy {
  display: grid;
  gap: 1em;
  grid-template-columns: min-content 1fr;
  grid-template-rows: min-content min-content;
  grid-template-areas: "top-left top-right" "btm btm";
}
.contact-form-container form .form-privacy input {
  grid-area: top-left;
  transform: scale(130%);
}
.contact-form-container form .form-privacy label {
  grid-area: top-right;
  font-family: var(--font2);
  font-size: 1.6rem;
  color: var(--light);
  padding: 0;
}
.contact-form-container form .form-privacy label a {
  color: var(--accent-alt);
}
.contact-form-container form .form-privacy #privacy-feedback {
  grid-area: btm;
}
.contact-form-container form #message {
  min-height: 150px;
  height: auto;
}
.contact-form-container form input:focus, .contact-form-container form textarea:focus, .contact-form-container form input:hover, .contact-form-container form textarea:hover {
  border-color: var(--accent-alt);
  transition: 200ms ease;
}
.contact-form-container form :focus::-moz-placeholder {
  color: transparent;
}
.contact-form-container form :focus::placeholder {
  color: transparent;
}
.contact-form-container form ::-moz-placeholder {
  color: var(--light);
  font-family: var(--font2);
  -moz-transition: color 400ms ease;
  transition: color 400ms ease;
}
.contact-form-container form ::placeholder {
  color: var(--light);
  font-family: var(--font2);
  transition: color 400ms ease;
}
.contact-form-container form.disabled {
  pointer-events: none;
  opacity: 0.7;
}
.contact-form-container .social-btns-container {
  grid-area: bottom-right;
  justify-self: end;
  display: flex;
  gap: 2em;
}
.contact-form-container .social-btns-container .social-btns {
  box-sizing: border-box;
  width: 5em;
  height: 5em;
  background-color: var(--light);
  border-radius: 1em;
  padding: 1em;
  transition: transform 800ms ease;
}
.contact-form-container .cta-btns .send-cta {
  grid-area: bottom-left;
  align-items: flex-end;
  border: none;
  cursor: pointer;
  box-sizing: border-box;
  max-height: 50px;
}
.contact-form-container .cta-btns .submit-status {
  color: var(--light);
  align-self: center;
  padding: 0 1em;
  display: none;
}
.contact-form-container .contact-img {
  display: none;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
.contact-form-container .cta-btns .error {
  color: var(--accent);
}
.contact-form-container .success {
  color: var(--accent-alt);
}

.grecaptcha-badge {
  display: none;
}

.recaptcha-container {
  display: flex;
  justify-content: center;
  margin: var(--margintb) var(--marginlr) var(--margintb) var(--marginlr);
}
.recaptcha-container .recaptcha-info {
  justify-self: center;
  text-align: center;
  font-size: 1.2rem;
  color: var(--grey);
}
.recaptcha-container .recaptcha-info a {
  text-decoration: none;
  color: var(--light);
}

.project-wrapper {
  margin-top: 5em;
  margin: 5em var(--marginlr) 200px var(--marginlr);
  min-height: 100vh;
}
.project-wrapper .line {
  width: 100%;
  height: 0px;
  border-top: 2px solid var(--light);
  margin: 2.5em 0 2.5em 0;
}
.project-wrapper .open .expand-btn {
  rotate: -180deg;
  transition: rotate 500ms ease;
}
.project-wrapper .accordion-panel {
  overflow: hidden;
}
.project-wrapper .accordion-panel button {
  width: 100%;
  background-color: transparent;
  border: none;
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 4em;
  align-items: center;
  cursor: pointer;
}
.project-wrapper .accordion-panel button h1 {
  text-align: left;
}
.project-wrapper .accordion-panel button .expand-btn {
  fill: var(--light);
  width: 4em;
  min-width: 4em;
  transition: all 500ms ease;
}
.project-wrapper .accordion-panel .accordion-content {
  height: 0;
  transition: all 600ms;
  display: flex;
  flex-direction: column;
  gap: 10em;
}
.project-wrapper .accordion-panel .accordion-content .project-container {
  display: flex;
  flex-direction: column;
  gap: 2em;
}
.project-wrapper .accordion-panel .accordion-content .project-container .swiper {
  width: 100%;
  aspect-ratio: 4/3;
  color: var(--light);
  padding: 0;
  margin: 0;
  position: relative;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
.project-wrapper .accordion-panel .accordion-content .project-container .swiper .swiper-wrapper .swiper-slide .project-img {
  background-size: cover;
  background-position: center;
  aspect-ratio: 4/3;
  width: 100%;
  margin: 0;
  padding: 0;
}
.project-wrapper .accordion-panel .accordion-content .project-container .swiper .swiper-custom-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  z-index: 1;
  width: 100%;
  display: flex;
  justify-content: space-between;
}
.project-wrapper .accordion-panel .accordion-content .project-container .swiper .swiper-custom-nav svg {
  display: none;
  width: 50px;
  height: 50px;
  fill: var(--dark);
  fill-opacity: 0.5;
  padding: 0 1em;
  cursor: pointer;
  transition: all 300ms ease-in-out;
}
.project-wrapper .accordion-panel .accordion-content .project-container .swiper .swiper-custom-nav svg:hover {
  fill-opacity: 1;
}
.project-wrapper .accordion-panel .accordion-content .project-container .swiper .swiper-pagination {
  background-color: var(--dark);
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 1em 1em 0 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  padding: 0.5em 0.5em 0 0.5em;
}
.project-wrapper .accordion-panel .accordion-content .project-container .swiper .swiper-pagination-bullet {
  background-color: var(--accent);
}
.project-wrapper .accordion-panel .accordion-content .project-container .project-info {
  display: flex;
  flex-direction: column;
  gap: 2em;
}
.project-wrapper .accordion-panel .accordion-content .project-container .project-info .project-info-p {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
.project-wrapper .accordion-panel .accordion-content .project-container .project-info .project-info-p a {
  text-decoration: none;
  color: var(--light);
  font-weight: bold;
}
.project-wrapper .accordion-panel .accordion-content .first-project {
  padding-top: 5em;
}
.project-wrapper .accordion-panel .accordion-content .last-project {
  padding-bottom: 5em;
}
.project-wrapper .accordion-panel .cta-hidden .cta-btns {
  display: none;
}
.project-wrapper .accordion-panel .moorestours-img-1 {
  background-image: url(/Assets/Images/Projects/Graphics-MT-1.jpg);
}
.project-wrapper .accordion-panel .moorestours-img-2 {
  background-image: url(/Assets/Images/Projects/Graphics-MT-2.jpg);
}
.project-wrapper .accordion-panel .moorestours-img-3 {
  background-image: url(/Assets/Images/Projects/Graphics-MT-3.jpg);
}
.project-wrapper .accordion-panel .moorestours-img-4 {
  background-image: url(/Assets/Images/Projects/Graphics-MT-4.jpg);
}
.project-wrapper .accordion-panel .waycoffee-img-1 {
  background-image: url(/Assets/Images/Way-Coffee/WC-Interior.jpg);
  background-position: 68% !important;
}
.project-wrapper .accordion-panel .waycoffee-img-2 {
  background-image: url(/Assets/Images/Projects/Graphics-WC-2.jpg);
}
.project-wrapper .accordion-panel .waycoffee-img-3 {
  background-image: url(/Assets/Images/Projects/Graphics-WC-3.jpg);
}
.project-wrapper .accordion-panel .pathfinder-img-1 {
  background-image: url(/Assets/Images/Projects/Pathfinder-1.jpg);
}
.project-wrapper .accordion-panel .pathfinder-img-2 {
  background-image: url(/Assets/Images/Projects/Pathfinder-2.jpg);
}
.project-wrapper .accordion-panel .pathfinder-img-3 {
  background-image: url(/Assets/Images/Projects/Pathfinder-3.jpg);
}
.project-wrapper .accordion-panel .lumopod-img-1 {
  background-image: url(/Assets/Images/Projects/LumoPod-1.jpg);
}
.project-wrapper .accordion-panel .lumopod-img-2 {
  background-image: url(/Assets/Images/Projects/LumoPod-2.jpg);
}
.project-wrapper .accordion-panel .lumopod-img-3 {
  background-image: url(/Assets/Images/Projects/LumoPod-3.jpg);
}
.project-wrapper .accordion-panel .wish-img-1 {
  background-image: url(/Assets/Images/Projects/Wish-1.jpg);
}
.project-wrapper .accordion-panel .wish-img-2 {
  background-image: url(/Assets/Images/Projects/Wish-2.jpg);
}
.project-wrapper .accordion-panel .wish-img-3 {
  background-image: url(/Assets/Images/Projects/Wish-3.jpg);
}
.project-wrapper .accordion-panel .onechurch-img-1 {
  background-image: url(/Assets/Images/Projects/Graphics-OC-1.jpg);
}
.project-wrapper .accordion-panel .onechurch-img-2 {
  background-image: url(/Assets/Images/Projects/Graphics-OC-2.jpg);
}
.project-wrapper .accordion-panel .onechurch-img-3 {
  background-image: url(/Assets/Images/Projects/Graphics-OC-3.jpg);
}
.project-wrapper .accordion-panel .homeless-and-thriving-img-1 {
  background-image: url(/Assets/Images/Projects/Homeless-And-Thriving-1.jpg);
}
.project-wrapper .accordion-panel .homeless-and-thriving-img-2 {
  background-image: url(/Assets/Images/Projects/Homeless-And-Thriving-2.jpg);
}
.project-wrapper .accordion-panel .homeless-and-thriving-img-3 {
  background-image: url(/Assets/Images/Projects/Homeless-And-Thriving-3.jpg);
}
.project-wrapper .accordion-panel .openhands-img-1 {
  background-image: url(/Assets/Images/Projects/Graphics-OH-1.jpg);
}
.project-wrapper .accordion-panel .openhands-img-2 {
  background-image: url(/Assets/Images/Projects/Graphics-OH-2.jpg);
}
.project-wrapper .accordion-panel .openhands-img-3 {
  background-image: url(/Assets/Images/Projects/Graphics-OH-3.jpg);
}
.project-wrapper .accordion-panel .united-img-1 {
  background-image: url(/Assets/Images/Projects/Graphics-United-1.jpg);
}
.project-wrapper .accordion-panel .united-img-2 {
  background-image: url(/Assets/Images/Projects/Graphics-United-2.jpg);
}
.project-wrapper .accordion-panel .drone-img-1 {
  background-image: url(/Assets/Images/Projects/Drone-1.jpg);
}
.project-wrapper .accordion-panel .drone-img-2 {
  background-image: url(/Assets/Images/Projects/Drone-2.jpg);
}
.project-wrapper .accordion-panel .drone-img-3 {
  background-image: url(/Assets/Images/Projects/Drone-3.jpg);
}
.project-wrapper .accordion-panel .drone-img-4 {
  background-image: url(/Assets/Images/Projects/Drone-4.jpg);
}
.project-wrapper .accordion-panel .dbs-img-1 {
  background-image: url(/Assets/Images/Neon-Sign-Mockup.jpg);
}
.project-wrapper .accordion-panel .dbs-img-2 {
  background-image: url(/Assets/Images/Projects/DBS-1.jpg);
}
.project-wrapper .accordion-panel .dbs-img-3 {
  background-image: url(/Assets/Images/Projects/DBS-2.jpg);
}

.thankyou-wrapper, .placeholder-wrapper {
  margin: 100px var(--marginlr) 200px var(--marginlr);
  height: 80vh;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 5em;
}

.main-oc {
  gap: 0;
}

.project-details-top-img {
  width: 100%;
  max-width: 1200px;
  aspect-ratio: 4/3;
  background-size: cover;
  align-self: center;
}

.project-details-top-img-WC {
  background-image: url(/Assets/Images/Way-Coffee/WC-Interior.jpg);
  aspect-ratio: 16/9;
}

.project-details-top-img-OC {
  background-image: url(/Assets/Images/Projects/Graphics-OC-1.jpg);
}

.project-details-top-img-pathfinder {
  background-image: url(/Assets/Images/Projects/Pathfinder-3.jpg);
}

.project-details-wrapper {
  margin: 0 var(--marginlr) 200px var(--marginlr);
  display: flex;
  flex-direction: column;
}
.project-details-wrapper h1 {
  margin: 30px 0;
  padding: 0;
  align-self: flex-start;
}
.project-details-wrapper .project-info-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: min-content min-content min-content;
  gap: 50px;
  margin-bottom: 50px;
}
.project-details-wrapper .project-info-wrapper .project-info {
  display: flex;
  gap: 50px;
}
.project-details-wrapper .project-info-wrapper .project-info h5 {
  color: var(--accent-alt);
  border-left: solid 2px var(--light);
  padding: 0 0 10px 10px;
}
.project-details-wrapper .project-info-wrapper .project-info ul {
  list-style: none;
  border-left: solid 2px var(--light);
  padding: 0 0 0 10px;
  margin: 0;
}
.project-details-wrapper .project-info-wrapper .project-info ul li {
  font-family: var(--font2);
  font-size: 1.6rem;
  color: var(--light);
  padding: 0.15em 0;
}
.project-details-wrapper .project-info-wrapper .project-info ul .last-item {
  padding-bottom: 0;
}
.project-details-wrapper .project-info-wrapper h4, .project-details-wrapper .project-info-wrapper h5 {
  font-family: var(--font1);
  font-size: 2.5rem;
  font-weight: 500;
  color: var(--accent);
}
.project-details-wrapper .project-info-wrapper .project-summary {
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.project-details-wrapper .project-info-wrapper .project-summary a {
  font-family: var(--font2);
  font-size: inherit;
  font-weight: inherit;
  color: var(--light);
  text-decoration: underline;
}
.project-details-wrapper .gallery {
  display: grid;
  gap: 1.5em;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  margin: 0 0 100px 0;
}
.project-details-wrapper .gallery img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.project-details-wrapper .gallery .project-smaller-imgs {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.5em;
}
.project-details-wrapper .gallery .project-bigger-img-1 {
  grid-area: 1/1/2/3;
}
.project-details-wrapper .gallery .project-bigger-img-2 {
  grid-area: 2/2/3/4;
}
.project-details-wrapper .gallery .project-bigger-img-3 {
  grid-area: 3/1/3/3;
}
.project-details-wrapper .gallery .project-bigger-img-4 {
  grid-area: 4/2/4/4;
}
.project-details-wrapper .gallery .lightbox {
  overflow: hidden;
  cursor: pointer;
}
.project-details-wrapper .gallery .card {
  width: 100%;
  transition: all 600ms ease;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
.project-details-wrapper .way-coffee-gallery {
  margin: 0;
}
.project-details-wrapper .accreditation {
  font-size: 1.2rem;
  font-style: italic;
  color: var(--grey);
  line-height: normal;
  text-wrap: nowrap;
  margin: 5px 0 100px 0;
}

#lightboxBig {
  display: none;
}

#lightboxBig.active-img {
  position: fixed;
  z-index: 2000;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: calc(100vw - var(--scrollbarwidth));
  max-width: 100vw;
  height: 100vh;
  max-height: 100vh;
  background-color: rgba(10, 10, 11, 0.9);
  display: flex;
  justify-content: center;
  align-items: center;
  overscroll-behavior: none;
}
#lightboxBig.active-img #img-container {
  box-sizing: border-box;
  width: calc(100% - var(--marginlr) * 2);
  min-width: 0;
  max-width: calc(100vw - var(--marginlr) * 2);
  height: auto;
  min-height: 0;
  max-height: calc(100vh - var(--margintb) * 2);
  display: flex;
  gap: 1em;
  flex-direction: column;
  align-items: center;
  margin: 0 var(--marginlr);
}
#lightboxBig.active-img #img-container #big-img {
  box-sizing: border-box;
  min-width: 320px;
  min-height: 0;
  max-width: inherit;
  max-height: inherit;
  -o-object-fit: cover;
     object-fit: cover;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
#lightboxBig.active-img #img-container #img-caption {
  box-sizing: border-box;
  min-width: 320px;
  font-family: var(--font2);
  font-size: 1.6rem;
  color: var(--light);
  text-align: center;
  background-color: var(--dark);
  padding: 10px;
}

.gallery .card {
  -o-object-fit: contain;
     object-fit: contain;
}

.animation-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1em;
  margin-bottom: 100px;
}
.animation-wrapper video {
  border: none;
  padding: 0;
  width: 100%;
  aspect-ratio: 16/9;
}

.main-palindrome .palindrome-wrapper {
  gap: 1em !important;
}
.main-palindrome .input-container {
  display: flex;
  flex-direction: row;
  align-items: center;
}
.main-palindrome .input-container textarea {
  margin: 0;
  padding: 1em;
  width: 100%;
  min-height: 50px;
  background-color: transparent;
  font-family: var(--font1);
  font-size: 1.4rem;
  color: var(--light);
  border: 1px solid var(--light);
  outline: none;
  resize: vertical;
  transition: 400ms ease-in-out;
}
.main-palindrome .input-container textarea:hover, .main-palindrome .input-container textarea:focus {
  border-color: var(--accent-alt);
}
.main-palindrome .input-container .tool-tip {
  position: relative;
  height: 100%;
}
.main-palindrome .input-container .tool-tip svg {
  width: 3em;
  height: 100%;
  padding: 1em;
  fill: var(--light);
  cursor: pointer;
}
.main-palindrome .input-container .tool-tip svg:hover, .main-palindrome .input-container .tool-tip svg:active {
  fill: var(--accent-alt);
}
.main-palindrome .input-container .tool-tip .tool-tip-text {
  display: none;
  position: absolute;
  color: var(--dark);
  background-color: var(--light);
  padding: 0.5em;
  font-family: var(--font2);
  font-size: 1.2rem;
  right: 0;
  top: -25px;
  text-wrap: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.main-palindrome .input-container .tool-tip:hover .tool-tip-text {
  display: block;
}
.main-palindrome .validation-feedback {
  padding: 0 0 1em 0;
  font-size: 1.2rem;
  color: var(--accent);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.main-palindrome .generate-btn {
  color: var(--light);
  padding: 0.5em 0;
  font-family: var(--font2);
  font-size: 1.6rem;
  font-weight: 900;
  text-decoration: underline;
  width: -moz-fit-content;
  width: fit-content;
  cursor: pointer;
}
.main-palindrome .identify-palindrome {
  background-color: var(--dark);
  color: var(--light);
  border: 0.1em solid var(--light);
  border-radius: 10em;
  text-align: center;
  padding: 1em 2em;
  font-size: 1.5rem;
  transition: all 100ms ease;
}
.main-palindrome .identify-palindrome:hover {
  background-color: var(--light);
  color: var(--dark);
  cursor: pointer;
  transition: all 100ms ease;
}
.main-palindrome .output {
  margin: 2em 0;
  border: 1px solid var(--light);
  padding: 1em;
  min-height: 150px;
  font-family: var(--font1);
  font-size: 1.4rem;
  color: var(--light);
  overflow-wrap: break-word;
}

@media only screen and (min-width: 680px) {
  :root {
    --marginlr: 5em;
    --margintb: 2em;
  }
}
@media only screen and (min-width: 920px) {
  header {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  header .short-logo svg {
    fill: var(--light);
    height: 4em;
  }
  header .menu {
    display: none;
  }
  header nav-header {
    transform: none;
    position: static;
    width: auto;
    height: auto;
  }
  header nav-header svg.close {
    display: none;
  }
  header nav-header ul {
    position: relative;
    display: flex;
    flex-direction: row;
    gap: 2.5em;
    padding: 0;
    margin: 0;
  }
  header nav-header ul a {
    color: var(--light);
    padding: 0;
    font-size: 1.5rem;
    position: relative;
    transition: all 250ms ease-in-out;
  }
  header nav-header ul a:hover {
    background: none;
    color: var(--light);
    transform: scale(1);
  }
  header nav-header ul li a.active:before {
    position: absolute;
    content: "";
    width: 35%;
    height: 1px;
    border-bottom: 2px solid var(--light);
    bottom: -6px;
  }
  header nav-header ul li a:before {
    position: absolute;
    content: "";
    width: 0%;
    height: 1px;
    border-bottom: 2px solid var(--accent);
    bottom: -6px;
    transition: width 0.3s;
  }
  footer .footer-grid {
    display: grid;
    grid-template-columns: min-content auto;
    grid-template-rows: min-content min-content min-content min-content;
    grid-template-areas: "left right" "middle-1l right" "middle-2l middle-2r" "bottom bottom";
  }
  footer .footer-grid nav-footer {
    grid-area: left;
    padding: 0;
    flex-direction: row;
    width: -moz-max-content;
    width: max-content;
  }
  footer .footer-grid .long-logo {
    grid-area: right;
    place-self: start end;
  }
  footer .footer-grid .long-logo svg {
    height: 4em;
    padding: 0;
    margin: 0;
  }
  footer .footer-grid .my-email {
    grid-area: middle-1l;
    padding: 0.25em 0 0.5em 0;
  }
  footer .footer-grid .social-btns-container-footer {
    grid-area: middle-2l;
  }
  footer .footer-grid p {
    grid-area: bottom;
    justify-self: center;
  }
  section.hero {
    margin-top: 10em;
    margin-bottom: 20em;
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 10em;
  }
  section.hero .hero-text {
    margin: 0;
    width: 40%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 600px;
  }
  section.hero .hero-text .hero-dbs h5 {
    font-size: 3.8rem;
  }
  section.hero .hero-text .hero-dbs h6 {
    font-size: 3.8rem;
  }
  section.hero .hero-text .primary-cta {
    align-items: flex-end;
  }
  section.hero .hero-graphics {
    position: relative;
    flex-grow: 1;
    height: 600px;
    overflow-x: hidden;
    overflow-y: hidden;
  }
  section.hero .hero-graphics video {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    padding: 0;
    width: auto;
    height: 100%;
    max-height: 600px;
    z-index: 1;
  }
  section.hero .hero-graphics img {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: auto;
    height: 350px;
    max-height: 500px;
    max-width: 500px;
    margin: auto;
    z-index: 2;
  }
  section.about {
    display: grid;
    gap: 2em 2em;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 61px min-content min-content;
    grid-template-areas: "left right" "left middle" "left bottom";
  }
  section.about .about-img-txt {
    grid-area: left;
    margin: 0;
    padding: 0;
    width: 400px;
    max-width: 500px;
    background-color: #f7bb68;
  }
  section.about .about-img-txt .about-img {
    width: 400px;
    height: 100%;
    max-width: 500px;
    max-height: 100%;
    background-size: cover;
    background-position: center;
  }
  section.about .about-img-txt .quote-container {
    position: absolute;
  }
  section.about .about-img-txt .quote-container .quote {
    margin: 0;
    padding: 0;
  }
  section.about .about-img-txt .quote-container .open-quote {
    position: absolute;
    left: -0.5em;
  }
  section.about h1 {
    grid-area: right;
    margin: 0;
    padding: 0;
    top: unset;
  }
  section.about h2 {
    grid-area: middle;
    margin: 0;
    padding: 0;
    font-size: 4rem;
  }
  section.about .paragraph-container {
    grid-area: bottom;
    margin: 0;
    padding: 0;
  }
  section.about .more-about-cta {
    align-content: end;
  }
  section.projects {
    padding-top: unset;
  }
  section.projects h1 {
    top: 1em;
  }
  section.projects .primary-cta {
    font-size: 1.5rem;
    align-self: flex-end;
  }
  section.projects .home-projects-wrapper {
    overflow-x: hidden;
    position: relative;
  }
  section.projects .home-projects-wrapper .home-projects-container {
    display: unset;
    display: flex;
    flex-direction: unset;
    gap: 2em;
    width: 600vw;
    height: 100vh;
    align-items: center;
  }
  section.projects .home-projects-wrapper .home-projects-container section {
    display: flex;
    align-items: center;
    width: 100%;
    aspect-ratio: 4/3;
    max-width: 600px;
  }
  section.projects .home-projects-wrapper .home-projects-container section .card-1 {
    background-image: url(/Assets/Images/Projects/Graphics-WC-1.jpg);
  }
  section.projects .home-projects-wrapper .home-projects-container section .card-7 {
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgb(10, 10, 11) 66%), url(/Assets/Images/Projects/Drone-2.jpg);
  }
  .contact-form-container {
    display: grid;
    grid-template-columns: min-content auto;
    grid-template-rows: min-content min-content min-content;
    gap: 3em 5em;
    grid-template-areas: "top         top" "middle-left img" "bottom-left img";
  }
  .contact-form-container h1 {
    grid-area: top;
  }
  .contact-form-container form {
    grid-area: middle-left;
    width: calc(60vw - 5em - 2.5em);
    max-width: calc(720px - 10em - 2.5em);
  }
  .contact-form-container .cta-btns {
    grid-area: bottom-left;
    justify-self: end;
  }
  .contact-form-container .cta-btns .send-cta {
    font-size: 1.5rem;
    order: 1;
  }
  .contact-form-container .cta-btns .submit-status {
    order: 0;
  }
  .contact-form-container .contact-img {
    display: unset;
    grid-area: img;
    background-image: url(/Assets/Images/photo-contact-graded.jpg);
    width: 100%;
    height: calc(100% - 2.5em);
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: cover;
    transform: translateX(-2.5em);
  }
  .contact-form-container .social-btns-container {
    grid-area: img;
    z-index: 1;
    flex-direction: column;
    justify-self: end;
    align-self: end;
  }
  .contact-form-container .social-btns-container .social-btns {
    width: 5em;
    height: 5em;
    padding: 1.25em;
  }
  .project-wrapper .accordion-panel .accordion-content .project-container {
    display: grid;
    gap: 3em;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: min-content min-content;
    grid-template-areas: "left top-right" "left btm-right";
  }
  .project-wrapper .accordion-panel .accordion-content .project-container .swiper {
    grid-area: left;
  }
  .project-wrapper .accordion-panel .accordion-content .project-container .swiper .swiper-custom-nav svg {
    display: unset;
  }
  .project-wrapper .accordion-panel .accordion-content .project-container .project-info {
    grid-area: top-right;
  }
  .project-wrapper .accordion-panel .accordion-content .project-container .cta-btns {
    grid-area: btm-right;
    align-self: end;
  }
  #img-right {
    grid-template-columns: 1fr 2fr;
    grid-template-areas: "top-left right" "btm-left right";
  }
  #img-right .swiper {
    grid-area: right;
  }
  #img-right .project-info {
    grid-area: top-left;
  }
  #img-right .cta-btns {
    grid-area: btm-left;
  }
  .more-about-me .more-about-me-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: min-content min-content min-content;
    grid-template-areas: "top      top" "btm-left mid-right" "btm-left btm-right";
  }
  .more-about-me .more-about-me-wrapper h1 {
    grid-area: top;
    position: unset;
    transform: unset;
  }
  .more-about-me .more-about-me-wrapper .more-about-me-img {
    grid-area: btm-left;
    background-image: url(/Assets/Images/SP-Headshot-2023.jpg);
    aspect-ratio: unset;
    min-height: 500px;
  }
  .more-about-me .more-about-me-wrapper .paragraph-container {
    grid-area: mid-right;
    text-align: left;
  }
  .more-about-me .more-about-me-wrapper .cta-btns {
    grid-area: btm-right;
    margin: unset;
    align-self: flex-end;
  }
  .services {
    padding-top: 5em;
  }
  .services .services-list-container {
    flex-direction: row;
    gap: 2em;
    align-items: start;
  }
  .services .services-list-container .line {
    width: 0;
    height: 100px;
    border-bottom: unset;
    border-right: solid 2px var(--light);
    align-self: center;
  }
  .project-details-wrapper .project-info-wrapper {
    grid-template-columns: max-content 1fr;
    grid-template-rows: min-content min-content;
    grid-template-areas: "top-left top-right" "btm-left top-right";
  }
  .project-details-wrapper .project-info-wrapper .project-info {
    grid-area: top-left;
  }
  .project-details-wrapper .project-info-wrapper .project-summary {
    grid-area: top-right;
    align-self: flex-start;
    border-left: solid 2px var(--accent);
    padding: 0 0 0 10px;
  }
  .project-details-wrapper .project-info-wrapper .cta-btns {
    grid-area: btm-left;
    align-self: flex-end;
  }
  section.testimonials .tst-grid {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  }
}
@media only screen and (min-width: 1200px) {
  :root {
    --marginlr: max(5em, calc((100vw - 1200px)/2));
    --margintb: 3em;
  }
}
nav-header ul li a:hover::before {
  width: 35%;
}

nav-header ul a:hover {
  background: var(--accent);
  transform: scale(1.2);
  color: var(--dark);
  transition: all 200ms ease-in-out;
}

nav-header ul a:active {
  background: var(--accent);
  transform: scale(1.2);
  color: var(--dark);
  transition: all 100ms ease;
}

.footer-cta-line .footer-cta:hover,
.footer-cta-line .footer-cta:active {
  color: var(--light);
}

.primary-cta:hover,
.primary-cta:active {
  background-color: var(--accent);
  color: var(--light);
  transform: translateY(-5px);
  transition: transform 200ms ease, background-color 200ms ease, color 200ms ease;
}

.secondary-cta:hover:before,
.secondary-cta:active:before {
  width: 100%;
}

.more-about-cta:hover,
.more-about-cta:active {
  color: var(--dark);
}

@media screen and (min-width: 920px) {
  .projects-cta:hover,
  .projects-cta:active {
    transform: translateX(15px);
  }
}

section.projects .card:hover, .project-details-wrapper .card:hover {
  transform: scale(105%);
  transition: transform 500ms ease;
}

section.projects .card-7:hover {
  transform: unset;
}

.social-btns-container .social-btns:hover,
.social-btns-container .social-btns:active {
  transform: translateY(-5px);
  background-color: var(--accent-alt);
  transition: transform 200ms ease, background-color 200ms ease;
}
@media only screen and (min-width: 920px) {
  .social-btns-container .social-btns:hover,
  .social-btns-container .social-btns:active {
    transform: translateX(5px);
  }
}

.swiper-custom-nav #nav-right:hover,
.swiper-custom-nav #nav-right:active {
  transform: translateX(2px);
}

.swiper-custom-nav #nav-left:hover,
.swiper-custom-nav #nav-left:active {
  transform: translateX(-2px);
}

.footer-grid .my-email:hover, .footer-grid a:hover,
.footer-grid .my-email:active, .footer-grid a:active {
  color: var(--accent-alt);
}

.footer-grid .social-btns-container-footer .social-btns:hover,
.footer-grid .social-btns-container-footer .social-btns:active {
  transform: translateY(-5px);
  background-color: var(--accent-alt);
  transition: transform 200ms ease, background-color 200ms ease;
}
.footer-grid .social-btns-container-footer .social-btns:hover svg,
.footer-grid .social-btns-container-footer .social-btns:active svg {
  fill: var(--dark);
  transition: 200ms ease;
}

.overlay.loaded {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 999;
  background: var(--dark);
  width: 100vw;
  height: 100vh;
  animation: reveal 1s ease-in forwards;
  transform-origin: bottom;
}

@keyframes reveal {
  from {
    transform: scaleY(1);
  }
  to {
    transform: scaleY(0);
  }
}
.hero-text.loaded {
  animation: growIn 2s cubic-bezier(0.075, 0.82, 0.165, 1) forwards;
  transform: scale(0.4);
}

@keyframes growIn {
  to {
    transform: scale(1);
  }
}
.privacy-policy-wrapper {
  margin-top: 5em;
  margin: 5em var(--marginlr) 200px var(--marginlr);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.privacy-policy-wrapper h1 {
  margin: 2em 0 1em 0;
}
.privacy-policy-wrapper h1 span {
  color: var(--accent);
}
.privacy-policy-wrapper .open .expand-btn {
  rotate: -180deg;
  transition: rotate 500ms ease;
}
.privacy-policy-wrapper .accordion-panel {
  overflow: hidden;
}
.privacy-policy-wrapper .accordion-panel button {
  box-sizing: border-box;
  width: 100%;
  background-color: transparent;
  border: none;
  border-bottom: solid 2px var(--light);
  padding: 0 0 20px 0;
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}
.privacy-policy-wrapper .accordion-panel button h2 {
  text-align: left;
  font-size: 2rem;
}
.privacy-policy-wrapper .accordion-panel button .expand-btn {
  fill: var(--accent);
  width: 2em;
  transition: all 500ms ease;
}
.privacy-policy-wrapper .accordion-panel button:hover {
  border-bottom: solid 2px var(--accent-alt);
}
.privacy-policy-wrapper .accordion-panel .accordion-content {
  height: 0;
  transition: all 600ms;
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.privacy-policy-wrapper .accordion-panel .accordion-content h4 {
  font-family: var(--font2);
  font-size: 1.4rem;
  font-weight: bold;
  color: var(--accent-alt);
}
.privacy-policy-wrapper .accordion-panel .accordion-content p {
  font-size: 1.4rem;
  line-height: 2rem;
}
.privacy-policy-wrapper .accordion-panel .accordion-content ul {
  list-style-type: disc;
}
.privacy-policy-wrapper .accordion-panel .accordion-content ul li {
  font-family: var(--font2);
  font-size: 1.4rem;
  color: var(--light);
  padding: 0 0 0.2em 0;
}
.privacy-policy-wrapper .accordion-panel .accordion-content a {
  color: var(--light);
  font-weight: bold;
}
.privacy-policy-wrapper .accordion-panel .accordion-content span {
  font-weight: bold;
  font-style: italic;
}
.privacy-policy-wrapper .accordion-panel .accordion-content table, .privacy-policy-wrapper .accordion-panel .accordion-content th, .privacy-policy-wrapper .accordion-panel .accordion-content td {
  font-family: var(--font2);
  font-size: 1.4rem;
  color: var(--light);
  border-collapse: collapse;
  border: solid 1px;
}
.privacy-policy-wrapper .accordion-panel .accordion-content th, .privacy-policy-wrapper .accordion-panel .accordion-content td {
  padding: 7px;
}/*# sourceMappingURL=main.css.map */