@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;900&display=swap');

*{font-family: 'Roboto', sans-serif;}

.logo{
  width:100%;
  max-width:300px;
  position:fixed;
  top:20px;
  left:50%;
  z-index: 100;
  transform:translateX(-50%);
}

:root {
  --scenePerspective: 1;
  --scenePerspectiveOriginX: 50;
  --scenePerspectiveOriginY: 50;
  --itemZ: 3;
  --cameraSpeed: 200;
  --cameraZ: 10;
  --viewportHeight: 0;
}

.viewport {
  height: calc(var(--viewportHeight) * 1px);
}
.viewport .scene3D-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  perspective: calc(var(--scenePerspective) * var(--cameraSpeed) * 1px);
  perspective-origin: calc(var(--scenePerspectiveOriginX) * 1%) calc(var(--scenePerspectiveOriginY) * 1%);
  will-change: perspective-origin;
  transform: translate3d(0, 0, 0);
}
.viewport .scene3D-container .scene3D {
  position: absolute;
  top: 0;
  height: 60vh;
  width: 100%;
  transform-style: preserve-3d;
  transform: translateZ(calc(var(--cameraZ) * 1px)) translateY(0%);
  will-change: transform;
}
@keyframes pulse-animation {
  0% {
    box-shadow: 0 0 0 0px rgba(255, 255, 255, 0.8);
  }
  100% {
    box-shadow: 0 0 0 120px rgba(255, 255, 255, 0);
  }
}

.viewport .scene3D-container .scene3D > div:hover,
.viewport .scene3D-container .scene3D > div.active{
  animation: pulse-animation 2s infinite;
  opacity:1 !important;
}
.viewport .scene3D-container .scene3D > div.fade{
  opacity:0.2;
}

.viewport .scene3D-container .scene3D > div {
  position: absolute;
  display: block;
  /*width: 40%;*/
    width:100px;
    height:100px;
  top: 60%;
  border-radius: 100px;
  cursor: pointer;
  transition: opacity 0.25s ease;
}
@media only screen and (min-width: 600px) {
  .viewport .scene3D-container .scene3D > div {
    /*width: 150px;*/
    width:100px;
    height:100px;
  }
  .viewport .scene3D-container .scene3D {
	  position: absolute;
	  top: 0;
	  left:50%;
	  height: 80vh;
	  width: 80%;
	  margin:0 auto;
	  transform-style: preserve-3d;
	  transform: translateZ(calc(var(--cameraZ) * 1px)) translateX(-50%) translateY(0%);
	  will-change: transform;
	}
}
.viewport .scene3D-container .scene3D > div:nth-child(2n) {
  left: 0;
}
.viewport .scene3D-container .scene3D > div:nth-child(2n+1) {
  right: 0;
}

.timePoint .timePointContent{
  display: none;
  /*background:rgba(0,0,0,0.6);*/
}

#quote .timePointContent{
  color: #fff;
  position: fixed;
  z-index: 1000;
  bottom: 150px;
  left: 50%;
  padding: 25px;
  width:100%;
  max-width: 500px;
  transform: translateX(-50%) scale3d(0.8,0.8,0.8);
  transform-origin: center center;
  background: rgba(0,0,0,0.3);
  border-radius: 25px;
  transition: transform 0.25s ease, opacity 0.125s ease;
  opacity:0;
}
#quote .timePointContent.show{
  transform:translateX(-50%) scale3d(1,1,1);
  opacity:1;
}
#quote h2{
  font-size:22px;
  margin-top:0px;
}
#quote h3{
  font-size:16px;
  margin-top:0px;
  font-weight: 100;
}
#quote p{
  font-size:15px;
  margin-bottom:15px;
  font-weight: 300;
  line-height: 24px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  line-height: 24px;     /* fallback */
  max-height: 168px;      /* fallback */
  -webkit-line-clamp: 7; /* number of lines to show */
  -webkit-box-orient: vertical;
}
#quote a{
  color:#fff;
  font-size:15px;
  font-weight: 300;
  display: inline-block;
  padding:10px 35px;
  border-radius: 100px;
  border:1px solid #fff;
  text-decoration: none;
}

.yearsTimeline{
  position:fixed !important;
  bottom:0px;
  left:0px;
  width:100%;
  height:60px;
}
.yearsTimeline .timeYearPoint.swiper-slide{
  display: flex;
  justify-content: center;
  align-items: flex-start;
  opacity:0.3;
  font-size:24px;
  font-weight: 900;
  cursor: pointer;
}

.yearsTimeline .timeYearPoint.swiper-slide.swiper-slide-active{
  opacity:1;
}

/*
.viewport .scene3D-container .scene3D > div:nth-child(0) {
  transform: translate3D(-8%, 41%, calc(var(--itemZ) * var(--cameraSpeed) * 0 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(1) {
  transform: translate3D(-6%, -14%, calc(var(--itemZ) * var(--cameraSpeed) * 1 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(2) {
  transform: translate3D(-19%, 4%, calc(var(--itemZ) * var(--cameraSpeed) * 2 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(3) {
  transform: translate3D(-7%, -21%, calc(var(--itemZ) * var(--cameraSpeed) * 3 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(4) {
  transform: translate3D(3%, 21%, calc(var(--itemZ) * var(--cameraSpeed) * 4 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(5) {
  transform: translate3D(-1%, -29%, calc(var(--itemZ) * var(--cameraSpeed) * 5 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(6) {
  transform: translate3D(-22%, 47%, calc(var(--itemZ) * var(--cameraSpeed) * 6 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(7) {
  transform: translate3D(-1%, -25%, calc(var(--itemZ) * var(--cameraSpeed) * 7 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(8) {
  transform: translate3D(20%, 44%, calc(var(--itemZ) * var(--cameraSpeed) * 8 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(9) {
  transform: translate3D(-13%, 31%, calc(var(--itemZ) * var(--cameraSpeed) * 9 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(10) {
  transform: translate3D(-10%, 27%, calc(var(--itemZ) * var(--cameraSpeed) * 10 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(11) {
  transform: translate3D(-4%, -45%, calc(var(--itemZ) * var(--cameraSpeed) * 11 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(12) {
  transform: translate3D(-9%, -9%, calc(var(--itemZ) * var(--cameraSpeed) * 12 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(13) {
  transform: translate3D(3%, 16%, calc(var(--itemZ) * var(--cameraSpeed) * 13 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(14) {
  transform: translate3D(-6%, -36%, calc(var(--itemZ) * var(--cameraSpeed) * 14 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(15) {
  transform: translate3D(-6%, 18%, calc(var(--itemZ) * var(--cameraSpeed) * 15 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(16) {
  transform: translate3D(9%, 11%, calc(var(--itemZ) * var(--cameraSpeed) * 16 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(17) {
  transform: translate3D(-14%, 10%, calc(var(--itemZ) * var(--cameraSpeed) * 17 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(18) {
  transform: translate3D(17%, -24%, calc(var(--itemZ) * var(--cameraSpeed) * 18 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(19) {
  transform: translate3D(-13%, 26%, calc(var(--itemZ) * var(--cameraSpeed) * 19 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(20) {
  transform: translate3D(24%, 27%, calc(var(--itemZ) * var(--cameraSpeed) * 20 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(21) {
  transform: translate3D(14%, 16%, calc(var(--itemZ) * var(--cameraSpeed) * 21 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(22) {
  transform: translate3D(-12%, -1%, calc(var(--itemZ) * var(--cameraSpeed) * 22 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(23) {
  transform: translate3D(5%, 24%, calc(var(--itemZ) * var(--cameraSpeed) * 23 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(24) {
  transform: translate3D(-9%, -16%, calc(var(--itemZ) * var(--cameraSpeed) * 24 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(25) {
  transform: translate3D(-12%, 25%, calc(var(--itemZ) * var(--cameraSpeed) * 25 * -1px));
}
*/

.viewport .scene3D-container .scene3D > div:nth-child(0) {
  transform: translate3D(-8%, 41%, calc(var(--itemZ) * var(--cameraSpeed) * 0 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(1) {
  transform: translate3D(-4%, -204%, calc(var(--itemZ) * var(--cameraSpeed) * 1 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(2) {
  transform: translate3D(-9%, -154%, calc(var(--itemZ) * var(--cameraSpeed) * 2 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(3) {
  transform: translate3D(-7%, -251%, calc(var(--itemZ) * var(--cameraSpeed) * 3 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(4) {
  transform: translate3D(3%, 301%, calc(var(--itemZ) * var(--cameraSpeed) * 4 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(5) {
  transform: translate3D(-1%, -129%, calc(var(--itemZ) * var(--cameraSpeed) * 5 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(6) {
  transform: translate3D(-12%, 47%, calc(var(--itemZ) * var(--cameraSpeed) * 6 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(7) {
  transform: translate3D(-1%, -315%, calc(var(--itemZ) * var(--cameraSpeed) * 7 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(8) {
  transform: translate3D(13%, 144%, calc(var(--itemZ) * var(--cameraSpeed) * 8 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(9) {
  transform: translate3D(-6%, 31%, calc(var(--itemZ) * var(--cameraSpeed) * 9 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(10) {
  transform: translate3D(-10%, 227%, calc(var(--itemZ) * var(--cameraSpeed) * 10 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(11) {
  transform: translate3D(-4%, -305%, calc(var(--itemZ) * var(--cameraSpeed) * 11 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(12) {
  transform: translate3D(-9%, -9%, calc(var(--itemZ) * var(--cameraSpeed) * 12 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(13) {
  transform: translate3D(3%, 316%, calc(var(--itemZ) * var(--cameraSpeed) * 13 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(14) {
  transform: translate3D(-6%, -336%, calc(var(--itemZ) * var(--cameraSpeed) * 14 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(15) {
  transform: translate3D(-6%, 18%, calc(var(--itemZ) * var(--cameraSpeed) * 15 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(16) {
  transform: translate3D(9%, 311%, calc(var(--itemZ) * var(--cameraSpeed) * 16 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(17) {
  transform: translate3D(-14%, 210%, calc(var(--itemZ) * var(--cameraSpeed) * 17 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(18) {
  transform: translate3D(10%, -124%, calc(var(--itemZ) * var(--cameraSpeed) * 18 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(19) {
  transform: translate3D(-13%, 26%, calc(var(--itemZ) * var(--cameraSpeed) * 19 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(20) {
  transform: translate3D(14%, 327%, calc(var(--itemZ) * var(--cameraSpeed) * 20 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(21) {
  transform: translate3D(5%, 16%, calc(var(--itemZ) * var(--cameraSpeed) * 21 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(22) {
  transform: translate3D(-12%, -301%, calc(var(--itemZ) * var(--cameraSpeed) * 22 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(23) {
  transform: translate3D(5%, 224%, calc(var(--itemZ) * var(--cameraSpeed) * 23 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(24) {
  transform: translate3D(-9%, -16%, calc(var(--itemZ) * var(--cameraSpeed) * 24 * -1px));
}
.viewport .scene3D-container .scene3D > div:nth-child(25) {
  transform: translate3D(-12%, 125%, calc(var(--itemZ) * var(--cameraSpeed) * 25 * -1px));
}









*,
*:before,
*:after {
  box-sizing: border-box;
}

body {
  background-color: #000;
  color: #fff;
  padding: 0;
  margin: 0;
}

h1 {
  font-family: "Playfair Display SC", serif;
  font-size: 1.5rem;
  color: white;
  margin: 0;
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  text-align: center;
}
h1 .logo {
  display: block;
  margin: 0 auto;
  max-width: 150px;
}

.link {
  color: white;
  margin: 0;
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 1;
}

.scene3D > div {
  padding: 2rem;
}
.scene3D > div h2 {
  margin-top: 0;
  font-family: "Playfair Display SC", serif;
  font-size: 1.5rem;
}
.scene3D > div:nth-child(0) {
  background-color: #ffc2e0;
}
.scene3D > div:nth-child(1) {
  background-color: #ffc2c2;
}
.scene3D > div:nth-child(2) {
  background-color: #ffe0c2;
}
.scene3D > div:nth-child(3) {
  background-color: #ffffc2;
}
.scene3D > div:nth-child(4) {
  background-color: #e0ffc2;
}
.scene3D > div:nth-child(5) {
  background-color: #c2ffc2;
}
.scene3D > div:nth-child(6) {
  background-color: #c2ffe0;
}
.scene3D > div:nth-child(7) {
  background-color: #c2ffff;
}
.scene3D > div:nth-child(8) {
  background-color: #c2e0ff;
}
.scene3D > div:nth-child(9) {
  background-color: #c2c2ff;
}
.scene3D > div:nth-child(10) {
  background-color: #e0c2ff;
}
.scene3D > div:nth-child(11) {
  background-color: #ffc2ff;
}
.scene3D > div:nth-child(12) {
  background-color: #ffc2e0;
}
.scene3D > div:nth-child(13) {
  background-color: #ffc2c2;
}
.scene3D > div:nth-child(14) {
  background-color: #ffe0c2;
}
.scene3D > div:nth-child(15) {
  background-color: #ffffc2;
}
.scene3D > div:nth-child(16) {
  background-color: #e0ffc2;
}
.scene3D > div:nth-child(17) {
  background-color: #c2ffc2;
}
.scene3D > div:nth-child(18) {
  background-color: #c2ffe0;
}
.scene3D > div:nth-child(19) {
  background-color: #c2ffff;
}
.scene3D > div:nth-child(20) {
  background-color: #c2e0ff;
}
.scene3D > div:nth-child(21) {
  background-color: #c2c2ff;
}
.scene3D > div:nth-child(22) {
  background-color: #e0c2ff;
}
.scene3D > div:nth-child(23) {
  background-color: #ffc2ff;
}
.scene3D > div:nth-child(24) {
  background-color: #ffc2e0;
}
.scene3D > div:nth-child(25) {
  background-color: #ffc2c2;
}