html {
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
}

:root {
  padding: 0;
  margin: 0;
  --bubble-range: 10px;
  --box-margin: 45px;
  --category-size: 30px;
  --title-size: 32px;
  --text-size: 30px;
  --body-text: 24px;
  --splash-text: 22px;
  --face-title: 22px;
  --bottom-text: 12px;
  --team-text: 12px;
  --logo-height: 88px;
  --uc3m-size: 80px;
  font-family: "Lato";
  --main-color: #181818;
  --soft-color: #575757;
  --softest-color: #6a6a6a;
  --secondary-color: #ff8e15;
  --background-color: white;
  -webkit-tap-highlight-color: transparent;
  --up-and-away: scale(0.7) translateY(50px);
}

body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--background-color);
}

.fullMenuBar {
  display: flex;
  width: fit-content;
  height: 100%;
  position: relative;
}

.menuBar {
  background: var(--secondary-color);
  width: 300px;
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.menuLine {
  width: 10px;
  height: 100%;
  background: var(--secondary-color);
}

.logoImage {
  background: url("images/hiiliCroppedBlack.png") left center/contain no-repeat;
}

.logoWrapper {
  position: relative;
  width: 200.5px;
  height: 88px;
  overflow: visible;
  margin: var(--box-margin);
}

.logoBox {
  position: relative;
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  overflow: visible;
}

.bubbleContent {
  display: block;
  content: "";
  background: white;
  border-radius: 100px;
  width: 100%;
  height: 100%;
  position: relative;
}

.leftBubble {
  animation: backAndForth 12s ease-in-out infinite alternate;
}

.rightBubble {
  animation: forthAndBack 12s ease-in-out infinite alternate;
}

.bubbleWrapper {
  border-radius: 100px;
  width: 21.8px;
  height: 21.8px;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: visible;
  animation: upAndAway 12s ease-in-out forwards;
}

.midSectionWrapper {
  width: 100%;
  height: calc(100% - (var(--box-margin) * 4) - (var(--logo-height) * 2));
}

.categoryWrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  width: auto;
  height: 100%;
}

.categoryTab {
  color: var(--main-color);
  font-size: var(--category-size);
  margin: calc(var(--box-margin) / 2);
  margin-left: calc(var(--box-margin) * 1.5);
  font-family: "Lato";
  font-weight: 300;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.categoryTab:hover {
  font-weight: 500;
}

.bigSectionBubble {
  display: block;
  background: var(--main-color);
  content: "";
  width: 20px;
  height: 20px;
  color: white;
  border-radius: 30px;
  margin-right: calc(var(--box-margin) / 4);
  transform: scale(1);
  transition: width 350ms ease-in-out 100ms, height 350ms ease-in-out 100ms,
    transform 350ms ease-in-out 100ms, margin-right 200ms ease-in-out 50ms;
}

.smallSectionBubble {
  display: block;
  background: var(--main-color);
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 30px;
  margin-right: calc(var(--box-margin) / 6);
  transform: scale(1);
  transition: width 150ms ease-in-out, height 150ms ease-in-out,
    transform 150ms ease-in-out, margin-right 150ms ease-in-out 0ms;
}

.noSized {
  width: 0px;
  height: 0px;
  transform: scale(0);
  margin-right: 0px;
}

.currentTab {
  font-weight: 500;
}

.bottomSectionWrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: var(--main-color);
  font-family: "Lato";
  font-weight: 300;
  font-size: var(--bottom-text);
  position: absolute;
  bottom: 0;
  left: 0;
  margin: calc(var(--box-margin) / 2);
}

.bottomSectionWrapper > * {
  font-size: var(--bottom-text);
  margin-top: 2px;
  margin-bottom: 2px;
}

.signInButton {
  font-size: calc(var(--bottom-text) * 1.5);
  margin-bottom: 20px;
  text-align: center;
  font-weight: 500;
  text-decoration: none;
  color: white;
}

.signInButton > i {
  margin-right: 7px;
}

.fullPage {
  width: 100%;
  height: 100dvh;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  position: absolute;
}

.trueBodyContent {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  overflow-y: scroll;
  position: relative;
  scroll-behavior: smooth;
  background-color: var(--secondary-color);
  background-size: cover;
  padding-left: 10px;
}

.trueBodyContent::-webkit-scrollbar {
  display: none;
}

.trueBodyContent {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.trueBodyContent {
  scroll-snap-type: y mandatory;
}

.bigContent {
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}

.splashBox {
  z-index: 20;
  margin-top: calc(var(--box-margin) / 2);
  margin-bottom: calc(var(--box-margin) / 2);
  transition: transform 350ms ease-in-out;
}

.outerSplash {
  width: 100%;
  height: fit-content;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.innerSplash {
  box-shadow: var(--splash-shadow) -5px -5px 0px 5px inset,
    rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;
  background: var(--splash-background);
  border-radius: 15px;
  padding: 50px 60px 60px 50px;
  display: block;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.textBox,
.splashBox {
  width: 70%;
  padding-left: 15%;
  padding-right: 15%;
  max-width: 950px;
}

.textBox {
  height: fit-content;
  font-size: var(--text-size);
  display: block;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  margin-top: calc(var(--box-margin) / 2);
  margin-bottom: calc(var(--box-margin) / 2);
  transform: translateX(0%);
  transition: transform 350ms ease-in-out;
}

.rightAlignedTextBox {
  align-items: flex-end;
  text-align: right;
}

.titleText,
.bodyText,
.splashText,
.markerText,
.illustrationText,
.faceText {
  font-family: "Lato";
}

.titleAndContent > * {
  margin-top: 2px;
  margin-bottom: 2px;
}

.titleText {
  font-weight: 600;
  margin-top: calc(var(--box-margin) / 4.5);
  margin-bottom: calc(var(--box-margin) / 4.5);
  font-size: var(--title-size);
  text-transform: uppercase;
  color: var(--main-text);
}

.bodyText {
  font-size: var(--body-text);
  font-weight: 300;
  color: var(--soft-color);
}

.darkContent .bodyText {
  color: white;
}

.orangeContent .bodyText {
  color: var(--main-color);
}

.splashText {
  margin-top: calc(var(--box-margin) / 4.5);
  margin-bottom: calc(var(--box-margin) / 4.5);
}

.illustrationText,
.splashText {
  font-size: var(--splash-text);
  color: var(--inverse-text);
  font-weight: 300;
}

.markerText {
  font-weight: 500;
  color: var(--marker-text);
}

.bigContent {
  width: 100%;
  height: 100%;
  min-height: 100%;
  transition: transform 350ms ease-in-out;
  overflow: visible;
}

.trueBodyContent {
  overflow-x: hidden;
}

#CookiebotWidget {
  outline: transparent !important;
}

.CookiebotWidget-logo {
  outline: transparent !important;
}

.contentContainer {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.whiteContent {
  background: white;
  --main-text: var(--main-color);
  --inverse-text: white;
  --marker-text: var(--secondary-color);
  --splash-background: var(--main-color);
  --splash-shadow: var(--secondary-color);
}

.introContent,
.teamContent {
  border-radius: 0vw 0px 0px 20vw;
}

.aboutContent {
  border-radius: 20vw 0px 0px 0px;
}

.orangeContent {
  background: transparent;
  --main-text: var(--main-color);
  --inverse-text: var(--main-color);
  --marker-text: var(--secondary-color);
  --splash-background: white;
  --splash-shadow: var(--main-color);
}

.darkContent {
  background: var(--main-color);
  --main-text: var(--secondary-color);
  --inverse-text: var(--main-color);
  --marker-text: white;
  --splash-background: var(--secondary-color);
  --splash-shadow: white;
}

.illustrationContent {
  display: flex;
  justify-content: center;
  align-items: center;
}

.hiiliPixelIcon,
.hiiliDeviceBox {
  border-radius: 15px;
  width: 100px;
  min-width: 100px;
  min-height: 100px;
  height: 100px;
  box-shadow: rgba(0, 0, 0, 0.4) 0px 0px 1px 1px inset,
    rgba(0, 0, 0, 0.5) 2px -2px 5px 0px inset, white -2px -2px 0px 2px inset,
    rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;
}

.messageSplash::after,
.messageSplash::before {
  z-index: 5;
  box-shadow: var(--splash-shadow) -2px -2px 0px 2px inset,
    rgba(0, 0, 0, 0.15) 0px 5px 10px, rgba(0, 0, 0, 0.17) 0px 4px 4px;
  background: var(--splash-background);
  content: "";
  min-width: 25px;
  min-height: 25px;
  border-radius: 25px;
  margin-left: 25px;
  margin-right: 25px;
  display: block;
  position: relative;
}

.messageSplash {
  z-index: 20;
}

.iconThing {
  z-index: 10;
}

.hiiliPixelIcon {
  background: url("images/hiiliBoxNew.png") left center/contain no-repeat;
}

.hiiliDeviceBox {
  background: url("images/hiiliDeviceBox.png") left center/contain no-repeat;
}

.illustrationSplash {
  margin: var(--box-margin);
}

.gradeContainer {
  display: flex;
}

.hiiliGrade {
  position: relative;
  display: block;
  height: fit-content;
  width: 50px;
  overflow: hidden;
  right: -23px;
  filter: drop-shadow(2px 0px 6px rgb(0, 0, 0, 0.7));
}

.gradeBox {
  position: relative;
  z-index: 10;
  background: url("images/hiiliBox.png") left center/contain no-repeat;
  width: 50px;
  height: 50px;
  border-radius: 8px 0px 0px 8px;
}
.coloredBox {
  position: relative;
  height: inherit;
  display: block;
  width: fit-content;
}

.letterBox {
  font-family: Lato;
  font-weight: bold;
  color: white;
  position: relative;
  z-index: 5;
  height: 50px;
  width: 50px;
  animation: swappingLetterHeights 6s linear infinite,
    swappingLetterColors 6s linear infinite;
  justify-content: center;
  align-items: center;
  display: flex;
}

.letterBox::after {
  content: "A";
  animation: swappingLetterGrades 6s linear infinite;
}

.letterBox,
.triangleBox {
  background: #5dcb44;
}

.triangleBox {
  height: 50px;
  width: 50px;
  position: relative;
  transform: rotate(45deg);
  bottom: -35px;
  animation: swappingLetterColors 6s linear infinite;
}

.newsRoller {
  height: 30px;
  width: 300%;
  margin-top: calc(var(--box-margin) * 1.45);
  margin-bottom: calc(var(--box-margin) * 1.45);
  background-image: url(images/logos/midreel.png);
  background-size: contain;
  background-repeat: repeat-x;
  animation: rollReel 50s linear infinite;
}

.trueIllustration {
  background: url("images/newIllustration.png") center/contain no-repeat;
  width: 500px;
  height: 262px;
}

.sideText {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-size: calc(var(--title-size) * 1.6);
  writing-mode: vertical-lr;
  letter-spacing: 5px;
  margin-right: 10px;
}

.centerText {
  justify-content: center;
  align-items: center;
}

.teamBox {
  width: 84%;
  padding-left: 8%;
  padding-right: 8%;
  display: flex;
}
.faceContainer {
  display: flex;
  flex-direction: column;
}

.faceAndText {
  display: flex;
  margin: calc(var(--box-margin) / 1.5);
  width: 100%;
}

.faceImage {
  width: 70px;
  height: 70px;
  min-width: 70px;
  min-height: 70px;
  border-radius: 5px;
  margin-right: 15px;
  box-shadow: var(--secondary-color) -2px -2px 0px 2px inset,
    rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;
}

.topPart {
  display: flex;
}

.bottomPart {
  font-size: var(--team-text);
  width: 400px;
  margin-left: 20px;
  color: var(--softest-color);
}

.faceAndText:nth-of-type(2n) {
  flex-direction: row-reverse;
}

.faceImage {
  margin-right: 15px;
  margin-left: 15px;
}

.faceAndText:nth-of-type(2n) .titleAndContent {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-end;
}

.faceAndText:nth-of-type(2n) .topPart {
  flex-direction: row-reverse;
}

.faceAndText:nth-of-type(2n) .bottomPart {
  text-align: right;
  margin-left: 0px;
  margin-right: 20px;
}

.faceAndText:nth-of-type(2n) .iconFlex {
  flex-direction: row-reverse;
}

#steffen .faceImage {
  background: url("images/faces/steffen.jpg") center center/contain no-repeat;
}
#ruben .faceImage {
  background: url("images/faces/ruben.jpg") center center/contain no-repeat;
}
#angel .faceImage {
  background: url("images/faces/angel.jpg") center center/contain no-repeat;
}
#mikko .faceImage {
  background: url("images/faces/mikko.jpg") center center/contain no-repeat;
}
#tommy .faceImage {
  background: url("images/faces/tommy.jpg") center center/contain no-repeat;
}
#steffen .faceImage {
  background: url("images/faces/steffen.jpg") center center/contain no-repeat;
}

.faceTitle {
  font-weight: normal;
  font-size: var(--face-title);
}

.smallClickableIcon {
  height: calc(var(--face-title) * 0.8);
  width: calc(var(--face-title) * 0.8);
  margin-left: calc(var(--face-title) * 0.1);
  margin-right: calc(var(--face-title) * 0.1);
  display: block;
}

.linkedIn {
  background: url("images/logos/linkedin.png") center center/contain no-repeat;
}

.emailIcon {
  width: calc(var(--face-title) * 1.1);
  background: url("images/logos/emailIcon.png") center center/contain no-repeat;
}

.iconFlex {
  display: flex;
}

.faceContent {
  font-weight: bolder;
}

.flyInRight {
  animation: fliesInRight 500ms ease-in-out forwards;
}

.scaleOut {
  transform-origin: top;
  animation: scalesOut 500ms ease-in-out forwards;
}

.flyInLeft {
  animation: fliesInLeft 500ms ease-in-out forwards;
}

.splashIn {
  animation: splashesIn 500ms ease-in-out forwards;
}

.bounceLeft {
  animation: bouncesLeft 600ms ease-in-out forwards;
}

.bounceRight {
  animation: bouncesRight 600ms ease-in-out forwards;
}

.hamburgerMenu {
  height: 100%;
  width: 100px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

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

.hamburgerLine {
  width: 50px;
  height: 8px;
  background: var(--main-color);
  border-radius: 25px;
  margin: 5px;
  transition: transform 250ms ease-in-out;
}

.lineWrapper {
  transition: transform 250ms ease-in-out, opacity 250ms ease-in-out;
}

#lineOne {
  transform-origin: center left;
}

#lineThree {
  transform-origin: center right;
}

.clickedBurger #lineOne {
  transform: translateY(18px);
}

.clickedBurger #lineTwo {
  transform: scaleX(0);
  opacity: 0;
}

.clickedBurger #lineThree {
  transform: translateY(-18px);
}

.clickedBurger #lineOne .hamburgerLine {
  transform: rotate(45deg);
}

.clickedBurger #lineThree .hamburgerLine {
  transform: rotate(-45deg);
}

.mobileBottomSectionWrapper {
  position: absolute;
  bottom: 0;
  font-size: var(--bottom-text);
  margin-bottom: 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.mobileBottomSectionWrapper > * {
  margin-left: 10px;
  margin-right: 10px;
}

.fa-linkedin-square a {
  text-decoration: none !important;
}
.mobileMenu {
  height: 650px;
  width: 100%;
  background: var(--main-color);
  top: 200px;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  box-shadow: 0px 5px 0px 5px white;
  border-radius: 0px 0px 20px 20px;
}

#midSectionWrapper.openedMenu {
  transform: translateY(0px) scaleY(1);
  transition: transform 350ms ease-in-out;
}

.darkSpace {
  display: none;
}

.contactText {
  text-align: center;
}

.CookiebotWidget-logo {
  outline: transparent !important;
}

.textBox.pendingAnimation {
  transform: translateX(-30%);
}

.rightAlignedTextBox.pendingAnimation {
  transform: translateX(30%);
}

.innerSplash.pendingAnimation {
  box-shadow: var(--splash-shadow) 0px 0px 0px 0px inset,
    rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;
}

.leftIcon.pendingAnimation {
  transform: translateX(25%);
}

.rightIcon.pendingAnimation {
  transform: translateX(-25%);
}

.newsRollerWrapper {
  height: fit-content;
  width: 100%;
}

.privacyPolicy {
  font-weight: 500;
  color: inherit;
  text-decoration: none;
}

.uc3mLogo {
  mix-blend-mode: difference;
  opacity: 1;
  width: var(--uc3m-size);
  margin-top: calc(var(--uc3m-size) / 10);
  margin-right: calc(var(--uc3m-size) / 4);
  height: calc(var(--uc3m-size) / 2);
  position: fixed;
  right: 0;
  top: 0;
  background-image: url(images/logos/uc3mwhite.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
