@charset "UTF-8";
@font-face {
  font-family: 'Red Hat Display';
  font-display: swap;
  src: url(/fonts/Red_Hat_Display/RedHatDisplay-VariableFont_wght.ttf) format("truetype"); }

@font-face {
  font-family: 'Red Hat Display';
  font-display: swap;
  font-style: italic;
  src: url(/fonts/Red_Hat_Display/RedHatDisplay-Italic-VariableFont_wght.ttf) format("truetype"); }

@font-face {
  font-family: 'Roboto';
  font-display: swap;
  src: url(/fonts/Roboto/Roboto-VariableFont_wdth,wght.ttf) format("truetype"); }

@font-face {
  font-family: 'Roboto';
  font-display: swap;
  font-style: italic;
  src: url(/fonts/Roboto/Roboto-Italic-VariableFont_wdth,wght.ttf) format("truetype"); }

/*
@font-face {
    font-family: MaterialSymbols;
    src: url(/fonts/material-symbols/MaterialSymbolsOutlined.ttf) format('truetype');
}
    */
.tag {
  border-radius: 1em;
  display: inline-block;
  padding: 0.53em 2em 0.40em 2em;
  background-color: gray;
  color: white;
  font-size: 0.875rem;
  text-transform: uppercase;
  font-weight: 500;
  letter-spacing: 0.15em; }
  .tag.role {
    background-color: #e7dbffff;
    color: #5c23a9ff; }
  .tag.case-study {
    background-color: #ffcdcaff;
    color: #a92c23ff; }

* {
  font-family: 'Roboto', sans-serif;
  font-size: 1.125rem; }

p {
  line-height: 1.6;
  margin-bottom: 1rem;
  color: #333333; }

html, body {
  width: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

body {
  display: flex;
  flex-direction: column;
  background-color: #fbf6f6;
  background-image: url(/images/Background.svg);
  background-repeat: repeat-y;
  background-position: top center;
  background-size: 140rem auto; }
  body > div.content {
    flex-grow: 1;
    flex-shrink: 1; }

div.content-col {
  max-width: 54.5rem;
  width: 100%;
  margin-left: 2rem;
  margin-right: 2rem; }
  @media screen and (max-width: 58.5rem) {
    div.content-col {
      width: calc(100% - 4rem); } }
  @media screen and (max-width: 36rem) {
    div.content-col {
      margin-left: 1rem;
      margin-right: 1rem;
      width: calc(100% - 2rem); } }
.icon {
  font-family: "MaterialSymbols"; }

h1 {
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 200;
  font-size: 3.0rem;
  margin-bottom: 1rem; }

h2 {
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 400;
  font-size: 2rem;
  margin-bottom: 0.75rem; }

h3 {
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 200;
  font-size: 1.75rem;
  margin-bottom: 0.5rem; }

h4 {
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 200;
  font-size: 2rem;
  font-size: 2.5rem;
  margin-bottom: 0.75rem; }

.thanks {
  font-family: 'Red Hat Display', sans-serif;
  font-weight: 200;
  font-size: 2rem;
  font-size: 2.5rem;
  margin-bottom: 1.5rem; }

a[href].link {
  color: black;
  text-decoration: none;
  transition: color ease-in-out 0.3s;
  display: inline-flex;
  align-items: end; }
  a[href].link[href^="http"] > *, a[href].link[href^="https"] > * {
    display: block; }
  a[href].link[href^="http"]:after, a[href].link[href^="https"]:after {
    content: "➔";
    display: block;
    color: inherit;
    margin-left: 0.3em;
    line-height: 1.5rem;
    font-size: 0.75rem; }
  a[href].link:hover {
    color: #ef5c52; }
    a[href].link:hover:after {
      text-decoration: none; }

@media screen and (max-width: 36rem) {
  h1 {
    font-size: 2.5rem; }
  h2 {
    font-size: 2rem; }
  h3 {
    font-size: 1.5rem; } }

img.desktop {
  display: block; }

img.tablet {
  display: none; }

img.mobile {
  display: none; }

@media screen and (max-width: 36rem) {
  img.desktop {
    display: none; }
  img.tablet {
    display: none; }
  img.mobile {
    display: block; } }

.rows {
  display: flex;
  flex-direction: column; }

.cols {
  display: flex;
  flex-direction: row; }

div.to-top-button {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 3rem;
  height: 3rem;
  padding-top: 0.1rem;
  padding-left: 0.05rem;
  padding-right: 0.05rem;
  border-radius: 50%;
  background-color: #ef5c52ff;
  color: white;
  display: none;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
  cursor: pointer;
  box-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.2);
  transition: background-color ease-in-out 0.3s, transform ease-in-out 0.3s;
  z-index: 9999999; }
  div.to-top-button:hover {
    background-color: #da4c42; }

nav.works-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  max-width: calc(100% - 2em);
  margin: 0 auto; }
  @media screen and (max-width: 36rem) {
    nav.works-grid {
      max-width: 100%; } }
  nav.works-grid > .grid-card {
    color: black;
    transition: color ease-in-out 0.5s;
    display: flex;
    flex-direction: column;
    margin: 1rem;
    text-decoration: none;
    width: calc(100% / 3 - 2rem); }
    @media screen and (max-width: 90rem) {
      nav.works-grid > .grid-card {
        width: calc(100% / 2 - 2rem); } }
    @media screen and (max-width: 60rem) {
      nav.works-grid > .grid-card {
        width: calc(100% - 2rem); } }
    nav.works-grid > .grid-card > div.image-container {
      width: 100%;
      aspect-ratio: 128 / 72;
      border-radius: 1em;
      margin: 0;
      display: flex;
      overflow: hidden;
      justify-content: center;
      align-items: center;
      position: relative;
      /*transition: box-shadow ease-in-out 0.5s;*/ }
      nav.works-grid > .grid-card > div.image-container::before {
        display: block;
        position: absolute;
        content: " ";
        width: 100%;
        height: 100%;
        z-index: 999;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 30%);
        pointer-events: none;
        opacity: 0;
        transition: opacity ease-in-out 0.5s; }
      nav.works-grid > .grid-card > div.image-container::after {
        opacity: 0;
        content: "View details";
        display: block;
        position: absolute;
        right: 0.75rem;
        bottom: 0.75rem;
        background-color: white;
        color: black;
        pointer-events: none;
        z-index: 9999;
        padding: 0.2em 1.5em;
        border-radius: 1em;
        font-size: 0.75rem;
        transition: opacity ease-in-out 0.5s; }
      nav.works-grid > .grid-card > div.image-container > img {
        display: block;
        position: relative;
        width: 100%;
        height: 100%;
        transition: ease-in-out 0.5s;
        object-fit: cover; }
    nav.works-grid > .grid-card > div.role-tag-container {
      margin-top: 1.5em; }
      nav.works-grid > .grid-card > div.role-tag-container > * {
        margin-right: 1em; }
    nav.works-grid > .grid-card > div.card-information {
      margin-top: 1rem;
      font-size: 1rem;
      font-weight: 500;
      margin-left: 0.3rem; }
      nav.works-grid > .grid-card > div.card-information > div.card-title {
        font-size: 1.25rem;
        font-weight: 600;
        margin-bottom: 0.25rem; }
      nav.works-grid > .grid-card > div.card-information > div.card-description {
        font-size: 1rem;
        font-weight: 400; }
    nav.works-grid > .grid-card:hover {
      color: #EF5C52; }
      nav.works-grid > .grid-card:hover > div.image-container::before {
        opacity: 1; }
      nav.works-grid > .grid-card:hover > div.image-container::after {
        opacity: 1; }
      nav.works-grid > .grid-card:hover > div.image-container > img {
        transform: scale(1.1); }

ul {
  list-style: none;
  padding: 0; }
  ul > li {
    display: flex;
    align-items: center;
    padding-left: 0;
    margin-bottom: 1.3rem;
    gap: 1rem; }
    ul > li::before {
      display: block;
      content: url(/images/check.svg); }

p {
  line-height: 1.5em; }

.menu-bar {
  height: 4.25rem;
  border-bottom: 0.0128rem solid #cccccc;
  background-color: #fbf6f6;
  display: flex;
  align-content: center;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box; }
  .menu-bar > div.content-col {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box; }
    .menu-bar > div.content-col > nav.menu-items > a {
      margin: 0 1em;
      color: black;
      text-decoration: none;
      font-weight: 400;
      font-size: 1.2rem; }
      .menu-bar > div.content-col > nav.menu-items > a:hover {
        color: #EF5C52; }

body > div.content {
  display: flex;
  flex-direction: column;
  align-items: center; }

nav.works-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  max-width: calc(100% - 2em);
  margin: 0 auto; }
  @media screen and (max-width: 36rem) {
    nav.works-grid {
      max-width: 100%; } }
  nav.works-grid > .grid-card {
    color: black;
    transition: color ease-in-out 0.5s;
    display: flex;
    flex-direction: column;
    margin: 1rem;
    text-decoration: none;
    width: calc(100% / 3 - 2rem); }
    @media screen and (max-width: 90rem) {
      nav.works-grid > .grid-card {
        width: calc(100% / 2 - 2rem); } }
    @media screen and (max-width: 60rem) {
      nav.works-grid > .grid-card {
        width: calc(100% - 2rem); } }
    nav.works-grid > .grid-card > div.image-container {
      width: 100%;
      aspect-ratio: 128 / 72;
      border-radius: 1em;
      margin: 0;
      display: flex;
      overflow: hidden;
      justify-content: center;
      align-items: center;
      position: relative;
      /*transition: box-shadow ease-in-out 0.5s;*/ }
      nav.works-grid > .grid-card > div.image-container::before {
        display: block;
        position: absolute;
        content: " ";
        width: 100%;
        height: 100%;
        z-index: 999;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 30%);
        pointer-events: none;
        opacity: 0;
        transition: opacity ease-in-out 0.5s; }
      nav.works-grid > .grid-card > div.image-container::after {
        opacity: 0;
        content: "View details ➔";
        display: block;
        position: absolute;
        right: 0.5rem;
        bottom: 0.75rem;
        background-color: transparent;
        color: white;
        pointer-events: none;
        z-index: 9999;
        padding: 0.2em 1.5em;
        border-radius: 1em;
        font-size: 0.75rem;
        transition: opacity ease-in-out 0.5s; }
      nav.works-grid > .grid-card > div.image-container > img {
        display: block;
        position: relative;
        width: 100%;
        height: 100%;
        transition: ease-in-out 0.5s;
        object-fit: cover; }
    nav.works-grid > .grid-card > div.role-tag-container {
      margin-top: 1.5em; }
      nav.works-grid > .grid-card > div.role-tag-container > * {
        margin-right: 1em; }
    nav.works-grid > .grid-card > div.card-information {
      margin-top: 1rem;
      font-size: 1rem;
      font-weight: 500;
      margin-left: 0.3rem; }
      nav.works-grid > .grid-card > div.card-information > div.card-title {
        font-size: 1.25rem;
        font-weight: 600;
        margin-bottom: 0.8rem; }
      nav.works-grid > .grid-card > div.card-information > div.card-description {
        font-size: 1.1rem;
        line-height: 1.4rem;
        font-weight: 400;
        margin-top: 0.8rem;
        margin-bottom: 0.8rem; }
    nav.works-grid > .grid-card:hover {
      color: #EF5C52; }
      nav.works-grid > .grid-card:hover > div.image-container::before {
        opacity: 1; }
      nav.works-grid > .grid-card:hover > div.image-container::after {
        opacity: 1; }
      nav.works-grid > .grid-card:hover > div.image-container > img {
        transform: scale(1.1); }

div.tags {
  margin-top: 3rem;
  width: 100%; }
  div.tags > * {
    margin-right: 1em; }
  div.tags + h1 {
    margin-top: 0.1em;
    margin-bottom: 0.75em; }

div.banner-container > div.banner {
  max-width: 82.5rem;
  aspect-ratio: 11 / 4;
  border-radius: 2rem;
  overflow: hidden; }
  @media screen and (max-width: 86.5rem) {
    div.banner-container > div.banner {
      width: auto;
      margin-left: 2rem;
      margin-right: 2rem; } }
  @media screen and (max-width: 60rem) {
    div.banner-container > div.banner {
      margin-left: 0;
      margin-right: 0;
      border-radius: 0;
      aspect-ratio: 11 / 7; } }
  div.banner-container > div.banner > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; }

div.content-container {
  display: flex;
  flex-direction: row;
  margin-top: 4rem;
  margin-bottom: 3rem;
  gap: 4rem;
  align-items: stretch; }
  @media screen and (max-width: 60rem) {
    div.content-container {
      margin-top: 2rem; } }
  div.content-container > div.side-navigation-content {
    margin-top: 1rem;
    position: relative;
    min-width: 12rem; }
    @media screen and (max-width: 60rem) {
      div.content-container > div.side-navigation-content {
        display: none; } }
    div.content-container > div.side-navigation-content > nav {
      position: static; }
      div.content-container > div.side-navigation-content > nav.fixed {
        position: fixed;
        top: 2rem; }
      div.content-container > div.side-navigation-content > nav.absolute-bottom {
        position: absolute;
        bottom: 0; }
      div.content-container > div.side-navigation-content > nav > * {
        font-family: "Red Hat Display", sans-serif;
        font-size: 1.25rem;
        font-weight: 500;
        display: block;
        color: #646262;
        transition: color ease-in-out 0.5s;
        text-decoration: none;
        white-space: nowrap;
        margin-bottom: 1em; }
        div.content-container > div.side-navigation-content > nav > *:hover {
          color: black; }
  div.content-container > div.content > h2:first-child {
    margin-top: 0; }

div.image-container {
  width: auto;
  margin-top: 2rem;
  margin-bottom: 2rem; }
  div.image-container.video {
    padding: 1rem;
    background-color: #eef5f5;
    border: 0.065rem solid #d0ebe9;
    border-radius: 2rem; }
    div.image-container.video > video {
      width: 100%;
      height: auto; }
  div.image-container > img {
    width: 100%;
    height: auto; }
    div.image-container > img.sz_65perc {
      width: 65%; }
      @media screen and (max-width: 36rem) {
        div.image-container > img.sz_65perc {
          width: 100%; } }
nav.works-grid.block {
  padding-top: 3rem;
  border-top: 0.0128rem solid #cccccc; }

div.about-content {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 4rem;
  margin-top: 4rem;
  margin-bottom: 6rem; }
  @media screen and (max-width: 48rem) {
    div.about-content {
      margin-top: 0;
      margin-bottom: 2rem;
      gap: 2rem; } }
  @media screen and (max-width: 60rem) {
    div.about-content {
      flex-direction: column; } }
  div.about-content > div.about-image {
    max-width: 30%; }
    @media screen and (max-width: 60rem) {
      div.about-content > div.about-image {
        width: auto;
        margin-left: 2em;
        margin-right: 2em;
        max-width: 20em; } }
    div.about-content > div.about-image > img {
      width: 100%;
      height: auto; }

div.skills-and-tags {
  background-color: #f5eee8;
  border-top: 0.0625rem solid #cccccc;
  border-bottom: 0.125rem solid #cccccc;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media screen and (max-width: 60rem) {
    div.skills-and-tags > div.content-col {
      width: auto; } }
  div.skills-and-tags > div.content-col > h2 {
    margin-top: 3.5rem;
    font-size: 2rem;
    font-weight: bold; }
  div.skills-and-tags > div.content-col > div.skills {
    display: flex;
    flex-direction: row;
    gap: 4rem;
    justify-content: space-between; }
    @media screen and (max-width: 60rem) {
      div.skills-and-tags > div.content-col > div.skills {
        flex-direction: column;
        align-items: start;
        gap: 0; } }
  div.skills-and-tags > div.tags-viewport {
    width: 100%;
    overflow-x: hidden;
    -webkit-user-select: none;
    /* Safari */
    -ms-user-select: none;
    /* IE 10 and IE 11 */
    user-select: none;
    /* Standard syntax */ }
    div.skills-and-tags > div.tags-viewport > div.tags {
      text-align: center;
      margin-top: 1rem;
      margin-bottom: 3rem;
      white-space: nowrap;
      overflow-x: visible; }
      div.skills-and-tags > div.tags-viewport > div.tags > span.tag {
        background-color: #ffcdcaff;
        color: #a92c23ff; }

ul.skill-group {
  margin-top: 0; }
  ul.skill-group > h3 {
    font-weight: 400;
    margin-top: 0; }

div.title-spec {
  margin-bottom: 2rem; }
  div.title-spec > h1 {
    margin-bottom: 0; }

div.experience {
  margin-bottom: 4rem; }
  div.experience > h2 {
    margin-top: 4rem;
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 3rem; }

div.job {
  display: flex;
  flex-direction: row;
  gap: 3rem;
  margin-bottom: 3rem;
  justify-content: start; }
  @media screen and (max-width: 48rem) {
    div.job {
      flex-direction: column;
      gap: 0.5rem;
      margin-bottom: 3rem; } }
  div.job > div.logo {
    width: 4.5rem;
    flex-grow: 0;
    flex-shrink: 0; }
    div.job > div.logo > img {
      width: inherit;
      height: auto; }
  div.job > div.period {
    white-space: nowrap;
    font-weight: bold;
    width: 7rem;
    flex-grow: 0;
    flex-shrink: 0; }
    @media screen and (max-width: 48rem) {
      div.job > div.period {
        font-weight: 400; } }
  div.job > div.details {
    flex-grow: 1;
    flex-shrink: 1; }
    div.job > div.details > div.title {
      font-weight: bold;
      font-size: 1.25rem; }

footer {
  display: flex;
  justify-content: center;
  margin-bottom: 5rem;
  margin-top: 4rem; }
  footer > div.content-col {
    display: flex;
    justify-content: end; }
    footer > div.content-col > div {
      max-width: 25rem;
      display: flex;
      flex-direction: column; }
      @media screen and (max-width: 36rem) {
        footer > div.content-col > div {
          max-width: none;
          display: flex;
          align-items: start;
          flex-direction: column; } }
      footer > div.content-col > div > h2 {
        font-size: 3.22rem;
        margin-bottom: 0.75em; }
        @media screen and (max-width: 36rem) {
          footer > div.content-col > div > h2 {
            font-size: 2.5rem; } }
      footer > div.content-col > div > div.contacts {
        display: flex;
        flex-direction: row; }
        footer > div.content-col > div > div.contacts > div.label {
          font-family: "Red Hat Display", sans-serif;
          font-size: 1.2rem;
          color: #707070;
          font-weight: 600; }
        footer > div.content-col > div > div.contacts > div.data {
          margin-left: 3rem; }
          @media screen and (max-width: 36rem) {
            footer > div.content-col > div > div.contacts > div.data {
              margin-left: 2rem; } }
          footer > div.content-col > div > div.contacts > div.data > div {
            display: flex;
            flex-direction: row;
            margin-bottom: 0.5em;
            align-items: center; }
            footer > div.content-col > div > div.contacts > div.data > div > a {
              text-decoration: none;
              color: inherit;
              display: flex;
              flex-direction: row;
              align-items: center; }
              footer > div.content-col > div > div.contacts > div.data > div > a:hover {
                color: #ef5c52; }
            footer > div.content-col > div > div.contacts > div.data > div > a > span, footer > div.content-col > div > div.contacts > div.data > div > span {
              display: block;
              margin-right: 1em;
              font-family: "Red Hat Display", sans-serif;
              font-size: 1.2rem; }
              footer > div.content-col > div > div.contacts > div.data > div > a > span.icon, footer > div.content-col > div > div.contacts > div.data > div > span.icon {
                display: flex;
                align-items: center; }
                footer > div.content-col > div > div.contacts > div.data > div > a > span.icon > img, footer > div.content-col > div > div.contacts > div.data > div > span.icon > img {
                  display: block; }
