@keyframes moveInAnimation {
  0% {
    opacity: 0;
    transform: translateY(10%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.movein {
  animation: moveInAnimation 0.4s ease-in-out;
}

@keyframes fadeInAnimation {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fadein {
  animation: fadeInAnimation 0.4s ease-in-out;
}

@keyframes bgGradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@keyframes bgGradient2 {
  0% {
    background-position: 45% 45%;
    background-size: 100% 180%;
  }
  25% {
    background-position: 50% 45%;
    background-size: 120% 160%;
  }
  50% {
    background-position: 55% 45%;
    background-size: 140% 140%;
  }
  75% {
    background-position: 55% 50%;
    background-size: 160% 120%;
  }
  100% {
    background-position: 55% 55%;
    background-size: 180% 100%;
  }
}
@keyframes decTilt {
  0% {
    transform: rotateX(2deg) rotateY(0deg);
  }
  12.5% {
    transform: rotateX(1.4deg) rotateY(1.4deg);
  }
  25% {
    transform: rotateX(0deg) rotateY(2deg);
  }
  37.5% {
    transform: rotateX(-1.4deg) rotateY(1.4deg);
  }
  50% {
    transform: rotateX(-2deg) rotateY(0deg);
  }
  62.5% {
    transform: rotateX(-1.4deg) rotateY(-1.4deg);
  }
  75% {
    transform: rotateX(0deg) rotateY(-2deg);
  }
  87.5% {
    transform: rotateX(1.4deg) rotateY(-1.4deg);
  }
  100% {
    transform: rotateX(2deg) rotateY(0deg);
  }
}
@keyframes move-right {
  from {
    transform: translateX(0px);
  }
  to {
    transform: translateX(10px);
  }
}
@keyframes move-left {
  from {
    transform: translateX(0px);
  }
  to {
    transform: translateX(-10px);
  }
}
@keyframes move-down {
  from {
    transform: translateY(0px);
  }
  to {
    transform: translateY(10px);
  }
}
@keyframes move-up {
  from {
    transform: translateY(0px);
  }
  to {
    transform: translateY(-10px);
  }
}
@keyframes ztrans-0 {
  from {
    transform: translateZ(-20px);
  }
  to {
    transform: translateZ(-28px);
  }
}
@keyframes ztrans-1 {
  from {
    transform: translateZ(33px);
  }
  to {
    transform: translateZ(60px);
  }
}
@keyframes ztrans-2 {
  from {
    transform: translateZ(72px);
  }
  to {
    transform: translateZ(103px);
  }
}
@keyframes ztrans-3 {
  from {
    transform: translateZ(92px);
  }
  to {
    transform: translateZ(123px);
  }
}
@keyframes ztrans-4 {
  from {
    transform: translateZ(88px);
  }
  to {
    transform: translateZ(116px);
  }
}
@keyframes ztrans-5 {
  from {
    transform: translateZ(80px);
  }
  to {
    transform: translateZ(110px);
  }
}
@keyframes ztrans-6 {
  from {
    transform: translateZ(72px);
  }
  to {
    transform: translateZ(106px);
  }
}
@keyframes ztrans-7 {
  from {
    transform: translateZ(66px);
  }
  to {
    transform: translateZ(88px);
  }
}
@keyframes ztrans-b1 {
  from {
    transform: translateZ(45px);
  }
  to {
    transform: translateZ(58px);
  }
}
@keyframes ztrans-b2 {
  from {
    transform: translateZ(100px);
  }
  to {
    transform: translateZ(130px);
  }
}
@keyframes ztrans-b3 {
  from {
    transform: translateZ(130px);
  }
  to {
    transform: translateZ(150px);
  }
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Poppins", Verdana, Geneva, Tahoma, sans-serif;
  font-weight: 700;
}

.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: "Poppins", Verdana, Geneva, Tahoma, sans-serif;
}

.bg_red1 {
  background-color: #ff0054;
}

.bg_red2 {
  background-color: #dc003e;
}

.bg_magenta {
  background-color: #FF008A;
}

.bg_blue {
  background-color: #4909FE;
}

.bg_fade {
  background-color: rgba(0, 0, 0, 0.03);
}

.bg_subtle {
  background-color: rgba(0, 0, 0, 0.07);
}

.text_red1 {
  color: #ff0054;
}

.text_red2 {
  color: #dc003e;
}

.text_magenta {
  color: #FF008A;
}

.text_blue {
  color: #4909FE;
}

.text_fade {
  color: rgba(0, 0, 0, 0.03);
  text-decoration: none;
}

.text_subtle {
  color: rgba(0, 0, 0, 0.1);
  text-decoration: none;
}

.bg_dark {
  background-color: rgba(0, 0, 0, 0.8);
}

[data-bs-theme=dark] .btn_dark {
  background-color: rgba(0, 0, 0, 0.2666666667);
}
[data-bs-theme=dark] .btn_dark:hover {
  background-color: black;
}
[data-bs-theme=dark] .bg_fade {
  background-color: rgba(255, 255, 255, 0.05);
}
[data-bs-theme=dark] .bg_subtle {
  background-color: rgba(255, 255, 255, 0.17);
}
[data-bs-theme=dark] .text_fade {
  color: rgba(255, 255, 255, 0.13);
  text-decoration: none;
}
[data-bs-theme=dark] .text_subtle {
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
}

.project_page_header {
  visibility: visible;
}
.project_page_header .drawer_btm_group .btn_group a {
  visibility: visible;
}

.project_article .project_article_header {
  padding-top: 0.5rem;
}
@media (max-width: 991px) {
  .project_article .project_article_header .project_intro_summary {
    box-shadow: 0 -1rem 1rem -1.5rem rgba(0, 0, 0, 0.3);
  }
}
.project_article .project_article_header .project_intro_image {
  display: flex;
  flex-direction: column;
  justify-content: end;
  height: 100%;
  overflow: hidden;
}
.project_article .project_article_header .project_intro_image .intro_image {
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: 50% 100%;
     object-position: 50% 100%;
}
@media (max-width: 991px) {
  .project_article .project_article_header .project_intro_image .intro_image {
    max-height: 500px;
  }
}
@media (max-width: 767px) {
  .project_article .project_article_header .project_intro_image .intro_image {
    max-height: 300px;
  }
}
.project_article .article_section_leading {
  background-color: #252525;
  overflow: hidden;
  position: relative;
  z-index: -1;
  width: 100%;
}
.project_article .article_section_leading.bg_attach {
  width: 100%;
  min-height: 300px;
}
.project_article .article_section_leading.bg_attach .bg_attached {
  background-image: linear-gradient(135deg, #D9D9D9 0%, #6D6D6D 100%);
  background-attachment: fixed;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  position: relative;
  width: 100%;
  height: 100vh;
}
@media (max-width: 767px) {
  .project_article .article_section_leading.bg_attach .bg_attached {
    background-attachment: local;
    background-size: contain;
  }
}
@media (max-width: 575px) {
  .project_article .article_section_leading.bg_attach .bg_attached {
    background-size: contain;
  }
}
.project_article .article_section_leading .image_wrapper {
  margin: 0 auto;
  max-width: 1300px;
  overflow: hidden;
  position: relative;
  z-index: -1;
}
.project_article .article_section_leading .image_wrapper .leading_image {
  height: 100%;
  width: 100%;
  max-height: 1024px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}
.project_article .article_section_leading .image_wrapper .leading_image.parallax {
  position: relative;
  transform: translateY(0);
}
.project_article .article_section:nth-child(even) {
  background-color: rgba(0, 0, 0, 0.03);
}
.project_article .article_section .subhead_list {
  padding: 0;
}
.project_article .article_section .subhead_list li {
  margin-bottom: 0.25rem;
  list-style-type: none;
  position: relative;
  padding-left: 1.5rem;
}
.project_article .article_section .subhead_list li::before {
  position: absolute;
  content: "\f199";
  font-family: "Bootstrap-icons";
  display: inline-block;
  vertical-align: middle;
  line-height: 100%;
  font-size: 0.9rem;
  margin-right: 0.5rem;
  left: 0;
  top: 0.25em;
  color: rgba(0, 0, 0, 0.7);
}
.project_article .article_section .sec_content_col > .sec_content_row {
  margin-bottom: 3rem;
}
.project_article .article_section .sec_content_col > .sec_content_row:last-child {
  margin-bottom: 0;
}
.project_article .article_section .media_block .lead {
  font-weight: 400;
}
.project_article .article_section .media_block :last-child {
  margin-bottom: 0;
}
.project_article .article_section .media_block blockquote.quote_container {
  visibility: visible;
  background-color: rgba(37, 19, 74, 0.03);
  padding: 2rem;
  padding-top: 3rem;
}
.project_article .article_section .media_block blockquote.quote_container figcaption {
  font-size: 0.75em;
}
.project_article .article_section .media_block .block_headline {
  margin-bottom: 1.5rem;
}
.project_article .article_section .media_block .block_caption {
  margin-top: 0.5rem;
  color: rgba(0, 0, 0, 0.7);
  font-size: 0.9em;
}
.project_article .article_section .media_block figure {
  margin: 0;
  width: 100%;
}
.project_article .article_section .media_block figure figcaption {
  color: rgba(0, 0, 0, 0.3);
  font-weight: 500;
  text-align: center;
  overflow: hidden;
}
.project_article .article_section .media_block ul > li:has(> ul) {
  list-style-type: none;
}
.project_article .article_section .media_block.article_paragraphs .block_headline {
  margin-bottom: 1.5rem;
}
.project_article .article_section .media_block.article_paragraphs .article_paragraph {
  line-height: 1.6em;
}
.project_article .article_section .media_block.article_paragraphs .article_paragraph img {
  width: 100%;
  text-align: center;
}
.project_article .article_section .media_block.article_paragraphs ul li {
  margin-bottom: 0.5rem;
}
.project_article .article_section .media_block.article_lists .block_headline {
  margin-bottom: 1.5rem;
}
.project_article .article_section .media_block.article_lists ul.article_list.regular {
  padding: 0;
  padding-left: 2rem;
}
.project_article .article_section .media_block.article_lists ul.article_list.regular li.regular-item {
  position: relative;
  list-style: none;
  margin-bottom: 0.5rem;
}
.project_article .article_section .media_block.article_lists ul.article_list.regular li.regular-item.lead {
  margin-bottom: 1rem;
}
.project_article .article_section .media_block.article_lists ul.article_list.regular li.regular-item.lead::before {
  content: "\f1a2";
  font-size: 0.8em;
  top: 0.2em;
}
.project_article .article_section .media_block.article_lists ul.article_list.regular li.regular-item::before {
  margin-left: -2rem;
  position: absolute;
  content: "\f5c8";
  font-family: "Bootstrap-icons";
  display: inline-block;
  vertical-align: baseline;
  margin-right: 0.5rem;
  left: 0;
  color: rgba(0, 0, 0, 0.5);
}
.project_article .article_section .media_block.article_lists ul.article_list ul.indent_list {
  padding-left: 1rem;
}
.project_article .article_section .media_block.article_lists ul.article_list ul.indent_list li {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.project_article .article_section .media_block.article_images .image_block_intro {
  margin-bottom: 1.5rem;
}
.project_article .article_section .media_block.article_images .image_wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.project_article .article_section .media_block.article_images figure.compact_size {
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.project_article .article_section .media_block.article_images figure.compact_size .media_size_fixer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.project_article .article_section .media_block.article_images figure.compact_size img.compact_size {
  width: 60%;
}
@media (max-width: 767px) {
  .project_article .article_section .media_block.article_images figure.compact_size img.compact_size {
    width: 84%;
  }
}
.project_article .article_section .media_block.article_images .article_image {
  width: 100%;
}
.project_article .article_section .media_block.article_images .article_image.lightbox-enabled {
  cursor: pointer;
  transition-property: filter;
  transition-duration: 0.3s;
}
.project_article .article_section .media_block.article_images .article_image.lightbox-enabled:hover {
  filter: drop-shadow(var(--bs-box-shadow-sm));
}
.project_article .article_section .media_block.article_carousel .carousel-caption {
  text-shadow: 1px 3px 5px rgba(0, 0, 0, 0.5);
}
.project_article .article_section .media_block.article_carousel .carousel-caption .carousel_image_headline {
  font-weight: 500;
}
.project_article .article_section .media_block.article_carousel .carousel-caption .carousel_image_caption {
  font-size: 0.8rem;
}
.project_article .article_section .media_block.article_videos figure {
  margin-bottom: 0;
}
.project_article .article_section .media_block.article_videos .video_wrapper .article_video {
  width: 100%;
  display: block;
  background-image: url("../img/local_icons/videobg.webp");
  background-size: cover;
  background-position: center center;
  transition: opacity 0.3s;
}
.project_article .article_section .media_block.iframe_container .iframe_wrapper {
  padding: 0;
  margin: 0;
  width: 100%;
  min-height: 200px;
  aspect-ratio: 16/9;
  overflow: hidden;
  position: relative;
  transition: min-height 0.6s;
}
.project_article .article_section .media_block.iframe_container .iframe_wrapper .load_iframe {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.project_article .article_section .media_block.iframe_container .iframe_wrapper iframe {
  padding: 0;
  margin: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(255, 255, 255, 0);
  transition: background-color 0.6s;
}
.project_article .article_section .media_block.iframe_container .iframe_wrapper.on_demand iframe {
  background-color: #333333;
}
.project_article .article_section .media_block.html_container .html_wrapper {
  width: 100%;
  overflow: hidden;
}

.load_more_section .last_next_selector {
  justify-content: space-between;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.load_more_section .last_next_selector a.case {
  display: flex;
  flex-direction: column;
  color: inherit;
  overflow: hidden;
  transition: background-color 0.3s, color 0.3s;
}
.load_more_section .last_next_selector a.case:hover {
  background-color: rgba(0, 0, 0, 0.03);
  color: black;
}
.load_more_section .last_next_selector a.case:last-child {
  text-align: right;
}
.load_more_section .last_next_selector a.case .cta {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.load_more_section .last_next_selector a.disabled {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
  cursor: not-allowed;
}
.load_more_section .last_next_selector a.disabled .cta {
  color: rgba(0, 0, 0, 0.3);
}

.lightbox-enabled {
  cursor: pointer;
}

.lightbox_overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(1rem);
          backdrop-filter: blur(1rem);
  z-index: 1080;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: opacity 0.5s ease-in-out;
  opacity: 0;
}
.lightbox_overlay .lightbox_controls {
  position: absolute;
  bottom: 1rem;
  margin: 0 auto;
}
.lightbox_overlay .lightbox_controls button {
  font-size: small;
  background-color: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(1rem);
          backdrop-filter: blur(1rem);
}
.lightbox_overlay .lightbox_controls button:hover {
  background: white;
}
.lightbox_overlay .lightbox_close {
  position: absolute;
  width: 50px;
  height: 50px;
  top: 10px;
  right: 10px;
  background-color: rgba(255, 255, 255, 0.8);
  border: none;
  border-radius: 50%;
  cursor: pointer;
}
.lightbox_overlay .lightbox_close .bi {
  text-align: center;
  vertical-align: middle;
}
.lightbox_overlay .lightbox_close .bi::before {
  font-size: 2rem;
}
.lightbox_overlay img {
  max-width: 95%;
  max-height: 95%;
  transition: transform, left, top;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
  transform: scale(var(--img-scale, 1));
  position: relative;
  left: 0;
  top: 0;
  transform-origin: center center;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  user-zoom: none;
}

section.homepage_home {
  padding: 10rem 0 8rem 0;
  min-height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
@media (max-width: 991px) {
  section.homepage_home {
    padding: 6rem 0 3rem 0;
  }
}
section.homepage_home .hero_card {
  position: relative;
  z-index: 1;
}
section.homepage_home .hero_card .text_hero {
  text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.6);
}
section.homepage_home .hero_card .hero_btn {
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
  background-color: rgba(255, 0, 84, 0.3);
  color: white;
  transition: background-color 0.4s;
}
section.homepage_home .hero_card .hero_btn:hover {
  background-color: rgba(255, 0, 84, 0.8);
}
@media (max-width: 767px) {
  section.homepage_home .hero_card {
    -webkit-backdrop-filter: blur(1rem);
            backdrop-filter: blur(1rem);
    background-color: rgba(15, 15, 15, 0.25);
    box-shadow: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.25);
    margin-bottom: 4rem;
  }
}
section.homepage_home .bg_container {
  position: absolute;
  display: flex;
  align-items: center;
  height: 100%;
  width: 100%;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  background-position: 50%, 50%;
  background-attachment: fixed;
  background-color: #0d1117;
}
@media (max-width: 1200px) {
  section.homepage_home .bg_container {
    min-width: 100%;
    min-height: 100%;
  }
}
section.homepage_home .bg_container .hero_decoration_container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
section.homepage_home .bg_container .hero_decoration_container canvas {
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: linear-gradient(149deg, rgba(12, 10, 26, 0.8) 0%, rgba(4, 3, 11, 0.8) 100%), #0D1117;
  position: absolute;
  z-index: -2;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper {
  height: 100%;
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  z-index: -1;
}
@media (max-width: 767px) {
  section.homepage_home .bg_container .hero_decoration_container .extra_wrapper {
    opacity: 0.6;
    transform: scale(150%);
    transform-origin: center;
  }
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner {
  transform-style: preserve-3d;
  perspective: 1000px;
  position: relative;
  --transform-initial: rotateX(10deg) rotateY(-24deg) rotateZ(8deg);
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_bg {
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  background-image: url(../img/ui-dec-bg.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transform-origin: 10% 35%;
  transform: scale(110%);
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items {
  transform-style: preserve-3d;
  transform-origin: center;
  transform: scale(70%);
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable {
  transform-style: preserve-3d;
  transition: transform 0.2s ease-out;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting {
  position: relative;
  transform-style: preserve-3d;
  animation: decTilt 17s infinite linear;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .hero_tilting_group {
  transform-style: preserve-3d;
  transform: var(--transform-initial);
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .hero_decoration {
  position: relative;
  transform-style: preserve-3d;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  width: 100%;
  opacity: 0.8;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .hero_decoration.extra_layer {
  position: absolute;
  top: 0;
  left: 0;
  filter: drop-shadow(0px 2px 3px rgba(0, 0, 0, 0.1)) drop-shadow(0px 10px 16px rgba(0, 0, 0, 0.4));
  animation-duration: 5.7s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_0 {
  animation-name: ztrans-0;
  animation-duration: 6.1s;
  animation-delay: -1s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_1 {
  animation-name: ztrans-1;
  animation-duration: 9.1s;
  animation-delay: -3.7s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_2 {
  animation-name: ztrans-2;
  animation-delay: -5s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_3 {
  animation-name: ztrans-3;
  animation-delay: -4s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_4 {
  animation-name: ztrans-4;
  animation-delay: -3s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_5 {
  animation-name: ztrans-5;
  animation-delay: -2s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_6 {
  animation-name: ztrans-6;
  animation-delay: -1s;
}
section.homepage_home .bg_container .hero_decoration_container .extra_wrapper .bg_positioner .dec_items #hero_moveable .hero_self_tilting .ztrans_7 {
  animation-name: ztrans-7;
  animation-delay: 0s;
}

section.page_section#contact {
  overflow: hidden;
}
section.page_section#contact .bg_container {
  background-image: url("../img/bg-contact-gradient-4.jpg?v=1");
  background-size: cover;
  background-repeat: no-repeat, no-repeat;
  background-position: 50%, 50%;
  background-attachment: fixed;
}
@media (max-width: 1200px) {
  section.page_section#contact .bg_container {
    width: 1200px;
    left: 50%;
    margin-left: -600px;
  }
}
section.page_section#contact .contact_card {
  position: relative;
  background-color: rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(2rem);
          backdrop-filter: blur(2rem);
  box-shadow: 0 0 1rem 0.25rem rgba(0, 0, 0, 0.02);
}
section.page_section#contact .contact_card .contact_form .form-control {
  background-color: rgba(255, 255, 255, 0.2);
  transition: border-color 0.3s;
}
section.page_section#contact .contact_card .contact_form .form-control:focus {
  background-color: rgba(255, 255, 255, 0.6);
  border: none;
}
section.page_section#contact .contact_card .contact_form .submit_btn {
  color: white;
  background-color: #111;
  transition: 0.3s;
}
section.page_section#contact .contact_card .contact_form .submit_btn:hover {
  opacity: 0.9;
}
section.page_section#contact .contact_card .contact_form label::after {
  background: none;
}
section.page_section#contact .contact_card .contact_form #formOutput .alert {
  opacity: 0;
  border: transparent;
  animation: fadeInAnimation 0.6s ease-in-out forwards;
}
section.page_section#contact .contact_card .contact_sheet {
  visibility: visible;
}
section.page_section#contact .contact_decoration_container {
  transform-style: preserve-3d;
  perspective: 3000px;
  width: 100%;
  filter: drop-shadow(-50px -3px 32px rgba(93, 9, 55, 0.33));
}
section.page_section#contact .contact_decoration_container #contact_moveable {
  transform-style: preserve-3d;
  transition: transform 0.2s ease-out;
  position: relative;
  z-index: -1;
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting {
  position: relative;
  transform-style: preserve-3d;
  animation: decTilt 6.7s infinite linear;
  --transform-initial: rotateX(24deg) rotateY(34deg) rotateZ(-24deg);
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group {
  transform-style: preserve-3d;
  transform: var(--transform-initial);
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  transform-style: preserve-3d;
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration.base_layer {
  transform: translateZ(-24px);
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration.extra_layer {
  position: absolute;
  top: 0;
  left: 0;
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration.extra_rise_btm {
  transform-origin: 25.1% 50%;
  transform: rotateY(-90deg);
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration.extra_rise_0 {
  filter: drop-shadow(-3px 1px 1px rgba(255, 255, 255, 0.03));
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration.extra_rise_1 {
  transform: translateZ(50px);
  animation: ztrans-b1 4.7s infinite alternate ease-in-out;
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration.extra_rise_2 {
  animation: ztrans-b2 4.7s infinite alternate ease-in-out;
}
section.page_section#contact .contact_decoration_container #contact_moveable .contact_self_tilting .contact_tilting_group .contact_decoration.extra_rise_3 {
  transform: translateZ(130px);
  animation: ztrans-b3 4.7s infinite alternate ease-in-out;
}

[data-bs-theme=dark] section.page_section#contact .bg_container {
  background-image: url("../img/bg-contact-gradient-2-dark.webp?v=1");
}
[data-bs-theme=dark] section.page_section#contact .contact_decoration_container {
  filter: drop-shadow(36px -34px 134px rgba(139, 176, 255, 0.24));
}
[data-bs-theme=dark] section.page_section#contact .contact_card {
  background-color: rgba(10, 12, 15, 0.3);
}
[data-bs-theme=dark] section.page_section#contact .contact_card .contact_form .form-control {
  background-color: rgba(0, 0, 0, 0.087);
}
[data-bs-theme=dark] section.page_section#contact .contact_card .contact_form .form-control:focus {
  background-color: rgba(0, 0, 0, 0.2);
}
[data-bs-theme=dark] section.page_section#contact .contact_card .contact_form .submit_btn {
  color: black;
  background-color: #f6f6f6;
}

section.projects_section {
  padding-bottom: 7rem;
}
@media (max-width: 767px) {
  section.projects_section {
    padding-bottom: 5rem;
  }
}

.projects_container .project_card {
  position: relative;
  transition: box-shadow 0.1s ease-in-out, transform 0.4s ease-out;
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.projects_container .project_card:hover {
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);
}
.projects_container .project_card .card_flare {
  display: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
  position: absolute;
  height: 0;
  width: 0;
  opacity: 0.01;
}
.projects_container .project_card a.card_thumb_link .card_thumbnail {
  overflow: hidden;
  background-color: rgba(228, 218, 221, 0.0666666667);
}
.projects_container .project_card a.card_thumb_link .card_thumbnail img {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.projects_container .project_card .card_info {
  overflow: hidden;
  padding: 1.5rem;
  gap: 1rem;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
}
.projects_container .project_card .card_info .card_info_headline a {
  text-decoration: none;
  color: black;
}
.projects_container .project_card .card_info .card_info_categories {
  cursor: default;
}
.projects_container .project_card .card_info .card_info_summary {
  position: relative;
  overflow: hidden;
}
.projects_container .project_card .card_info .card_info_summary::before {
  content: "";
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  height: 1.5rem;
  background: linear-gradient(to bottom, transparent, white);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.projects_container .project_card .card_info .card_info_summary.large-height::before {
  opacity: 1;
}
.projects_container .project_card .card_info .card_info_summary .summary_content {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  max-height: 4.5rem;
}
.projects_container .project_card .card_info .card_info_summary .summary_content .article_summary_paragraph {
  margin-bottom: 0.5rem;
}
.projects_container .project_card .card_info .card_info_summary .summary_content .article_summary_paragraph p {
  margin-bottom: 0;
}
.projects_container .project_card .card_info .p_a_summary_link {
  text-decoration: none;
  grid-row: span 2;
}
.projects_container .project_card .card_info .p_a_summary_link .card_info_summary {
  max-height: 24em;
  overflow: hidden;
  text-overflow: ellipsis;
}
.projects_container .project_card .card_info .p_a_summary_link .card_info_summary .summary_content {
  overflow: hidden;
  -webkit-line-clamp: 6;
  max-height: 9rem;
}
.projects_container .project_card .card_info .p_a_summary_link .card_info_summary .summary_content p {
  padding: 0;
  margin: 0;
  line-height: 1.2em;
  text-decoration: none;
}
.projects_container .project_card.featured_card {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: fit-content(0);
  gap: 3rem;
}
.projects_container .project_card.featured_card a.card_thumb_link .card_thumbnail {
  overflow: hidden;
}
.projects_container .project_card.featured_card a.card_thumb_link .card_thumbnail img {
  visibility: visible;
}
.projects_container .project_card.featured_card .card_info {
  max-height: 100%;
  padding-left: 0;
  grid-column: span 2;
}
.projects_container .project_card.featured_card .card_info .card_info_summary {
  flex-shrink: 1;
  overflow: hidden;
}
.projects_container .project_card.featured_card .card_info .card_info_summary .summary_content {
  max-height: 12rem;
  -webkit-line-clamp: unset;
}
@media (max-width: 1199px) {
  .projects_container .project_card.featured_card {
    gap: 1.5rem;
  }
  .projects_container .project_card.featured_card .card_info {
    padding-left: 0;
  }
}
@media (max-width: 991px) {
  .projects_container .project_card.featured_card {
    grid-template-columns: 1fr 1fr;
  }
  .projects_container .project_card.featured_card .card_info {
    grid-column: span 1;
  }
}
@media (max-width: 767px) {
  .projects_container .project_card.featured_card {
    grid-template-columns: 3fr 2fr;
  }
}
@media (max-width: 575px) {
  .projects_container .project_card.featured_card {
    gap: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
  }
  .projects_container .project_card.featured_card .card_info {
    padding-left: 1.5rem;
  }
}

[data-bs-theme=dark] .projects_container .project_card {
  background-color: #17191b;
}
[data-bs-theme=dark] .projects_container .project_card .card_flare {
  display: block;
  height: 1300px;
  width: 1300px;
  transition: 0.2s ease-out;
  background: radial-gradient(50% 50% at 50% 50%, #ffffff 0%, rgba(0, 0, 0, 0) 100%);
}
[data-bs-theme=dark] .projects_container .project_card .card_info .card_info_headline a {
  color: white;
}
[data-bs-theme=dark] .projects_container .project_card .card_info .card_info_summary::before {
  background: linear-gradient(to bottom, transparent, #17191b);
}
[data-bs-theme=dark] .projects_container .project_card .card_info .card_info_cta a {
  color: rgba(255, 255, 255, 0.7333333333);
}

.archive_container .card.archive_card {
  transition: background-color 0.3s, box-shadow 0.3s;
}
.archive_container .card.archive_card:hover {
  background-color: white !important;
  box-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.2) !important;
}
.archive_container .card.archive_card h6 {
  line-height: 180%;
}
.archive_container .card.archive_card .card_info .card_info_summary {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  max-height: 3rem;
}
@media (max-width: 767px) {
  .archive_container .card.archive_card .card_info .card_info_summary {
    max-height: 3rem;
  }
}

html {
  font-size: 16px;
}

body {
  font-family: "Roboto", "Source Sans 3", Helvetica, Arial, sans-serif;
}
body .page_wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
  position: relative;
}
body .page_wrapper main#project_main {
  flex-grow: 1;
}
body .text_hero {
  font-size: 6rem;
}
@media (max-width: 1199px) {
  body .text_hero {
    font-size: 4rem;
  }
}
@media (max-width: 575px) {
  body .text_hero {
    font-size: 3rem;
  }
}
body .text_hero2 {
  font-size: 3rem;
}
@media (max-width: 1199px) {
  body .text_hero2 {
    font-size: 2.5rem;
  }
}
@media (max-width: 575px) {
  body .text_hero2 {
    font-size: 2rem;
  }
}
body .none_select {
  -moz-user-select: none;
       user-select: none;
  user-zoom: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  pointer-events: none;
}
body .hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}
body .hidden_soft {
  visibility: hidden !important;
  opacity: 0 !important;
}
body a.no_deco {
  text-decoration: none;
}

.page_navbar {
  transition: background-color 0.5s;
  flex-wrap: nowrap;
}
.page_navbar.nav_bg {
  background-color: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(1rem);
          backdrop-filter: blur(1rem);
}
.page_navbar.project_page_navbar {
  background-color: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(1rem);
          backdrop-filter: blur(1rem);
}
.page_navbar.archive_page_navbar {
  background-color: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(1rem);
          backdrop-filter: blur(1rem);
}
.page_navbar .navbar-brand {
  overflow: hidden;
}
.page_navbar .navbar-brand .site_title {
  white-space: nowrap;
}
.page_navbar .navbar-brand .project_name {
  transition-property: opacity transform;
  transition-duration: 0.3s;
  vertical-align: center;
  line-height: 26px;
}
.page_navbar .navbar-brand .project_name.slideout {
  opacity: 0;
  transform: translateY(12px);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.page_navbar .navbar-toggler {
  box-shadow: none;
}

.offcanvas .offcanvas-body ul.navbar-nav li a {
  padding-left: calc(1.5rem + 1px);
  border-left: 1px solid rgba(0, 0, 0, 0.5);
}
.offcanvas .offcanvas-body ul.navbar-nav li a.active {
  padding-left: 1.5rem;
  border-left: 2px solid black;
}

section.page_section {
  padding: 5rem 0 6rem 0;
  position: relative;
  overflow-x: hidden;
}
section.page_section .section_headline {
  margin-bottom: 3rem;
}
@media (max-width: 991px) {
  section.page_section {
    padding: 3rem 0 4rem 0;
  }
  section.page_section .section_headline {
    margin-bottom: 2rem;
  }
}
section.page_section .bg_container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

section#projects {
  background-color: white;
  -webkit-backdrop-filter: blur(4rem);
          backdrop-filter: blur(4rem);
}
section#projects .section_headline h2 {
  color: black;
}

footer {
  position: relative;
  width: 100%;
  bottom: 0;
  font-size: 0.8em;
  background-color: white;
}

[data-bs-theme=light] .dark_theme {
  display: none;
}

[data-bs-theme=dark] .light_theme {
  display: none;
}
[data-bs-theme=dark] .page_navbar.nav_bg {
  background-color: rgba(23, 25, 27, 0.9);
  border-bottom: 1px solid rgba(83, 83, 83, 0.2);
}
[data-bs-theme=dark] .navbar-brand {
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);
}
[data-bs-theme=dark] .navbar-brand .site_logo {
  filter: invert(100%);
}
[data-bs-theme=dark] .offcanvas {
  background-color: #17191b;
  border-left: 1px solid rgba(83, 83, 83, 0.2);
}
[data-bs-theme=dark] .offcanvas .offcanvas-body ul.navbar-nav li a {
  border-left: 1px solid rgba(255, 255, 255, 0.6);
}
[data-bs-theme=dark] .offcanvas .offcanvas-body ul.navbar-nav li a.active {
  border-left: 2px solid white;
}
[data-bs-theme=dark] .offcanvas .text_subtle {
  color: rgba(255, 255, 255, 0.1);
}
[data-bs-theme=dark] section#projects {
  background-color: rgb(16, 17, 19);
  -webkit-backdrop-filter: blur(4rem);
          backdrop-filter: blur(4rem);
}
[data-bs-theme=dark] section#projects .section_headline h2 {
  color: white;
}
[data-bs-theme=dark] footer#page_footer {
  background-color: #17191b;
}
[data-bs-theme=dark] footer#page_footer img.footer_logo {
  filter: invert(100%);
}/*# sourceMappingURL=styles.css.map */