* {
  color: rgb(255, 255, 255);
  margin: 0;
  padding: 0;
  font-family: "Product Sans", sans-serif;
  box-sizing: border-box;
}

body {
  overflow: hidden;
}

html {
  scroll-behavior: smooth;
}

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

#starfield {
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: -1;
  background: rgb(0, 0, 0);
  top: 0;
  left: 0;
}

.title {
  color: rgb(255, 255, 255);
  width: 50%;
  margin: auto;
  margin-top: 13vw;
  padding-top: 2vw;
  padding-bottom: 2vw;
  text-align: center;
  z-index: 333;
}

#main-title {
  font-size: 4.5vw;
}

#sec-title {
  margin: 10px 0 2vw;
  font-size: 2vw;
}

.block {
  --angle: 0deg;
  background: rgba(0, 0, 0, 0);
  border: 2px solid;
  border-image-slice: 5;
  border-image-source: linear-gradient(
    var(--angle),
    #000000 0%,
    #000000 70%,
    #ffffff 70%,
    #ffffff 100%
  );
  /* border-image-source: linear-gradient(var(--angle), rgba(0,0,0,1) 0%, rgba(0,0,0,1) 0%, rgb(255, 255, 255) 50%, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 0%); */
  animation: 3s rotate linear infinite;
}

@keyframes rotate {
  to {
    --angle: 360deg;
  }
}

@property --angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

.btn {
  display: inline-block;
  margin-top: 1.7vw;
  text-decoration: none;
  color: rgb(255, 255, 255);
  background: rgb(0, 0, 0);
  border: 1px solid rgb(255, 255, 255);
  padding: 1vw 2vw;
  position: relative;
  cursor: pointer;
  font-size: 1.5vw;
  z-index: 2;
  transition: 500ms;
}

.btn:hover {
  color: rgb(0, 0, 0);
  border: 1px solid rgb(255, 255, 255);
  background-color: rgb(255, 255, 255);
}

#ambient-selection {
  color: white;
  width: 95%;
  margin: auto;
  margin-top: 30vw;
  margin-bottom: auto;
  text-align: center;
  z-index: 998;
  position: relative;
  font-size: 1.5vw;
}

#ambient-selection h1 {
  padding-top: 2.5vw;
  margin-bottom: 1vw;
}

#ambient-selection p {
  text-align: center;
  margin-bottom: 5vh;
}

#ambient-selection {
  text-align: center;
  margin-bottom: 5vh;
}
.row {
  margin-top: 1%;
  display: flex;
  justify-content: space-between;
}

.col {
  flex-basis: 32%;
  margin: 1%;
  margin-bottom: 0.5%;
  position: relative;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.318);
  transition: 1s;
}

img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.col img {
  width: 100%;
  display: block;
}

.col:hover {
  box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.2);
  transition: 0.5s;
  cursor: pointer;
  border: 2px solid white;
}

.layer {
  background: rgba(255, 255, 255, 0.1);
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: 0.5s;
}

.layer:hover {
  background: transparent;
  cursor: pointer;
}

.style-btn {
    position: absolute;
    color: #ffffff;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.2vw;
    font-size: 1vw;
    text-shadow: #d8ccee 1px 0 10px;
    height: 6vw;
    width: 6vw;
    border: solid 1px #ffffff;
    border-radius: 175px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    transition: 1s;
    cursor: pointer;
    z-index: 999;
    background-color: #000000;
    margin:5px;
}

#ahead {
  top: 80%;
  left: 83%;
}

#back {
  top: 80%;
  left: 90%;
}

.style-btn:before {
  content: "";
  position: absolute;
  background: #ffffff;
  width: 0;
  height: 0;
  z-index: -1;
  border-radius: 175px;
  box-shadow: 0px 0px 24px 1px rgba(224, 199, 224, 0.2);
  transition: all 500ms cubic-bezier(1, -0.195, 0, 1.33);
  transition-timing-function: cubic-bezier(1, -0.195, 0, 1.33);
}

.style-btn:hover {
  color: black;
  transition: 1s;
}

.style-btn:hover:before {
  width: 85%;
  height: 85%;
}

.style-btn:active:before,
.btn:focus:before {
  width: 100%;
  height: 100%;
}

/* .layer h3 {
    width: 100%;
    font-weight: 500;
    color: white;
    font-size: 26px;
    bottom: 0;
    left: 50%;
    transform: translate(-50%);
    position: absolute;
    opacity: 0;
    transition: 0.5s;
}

.layer:hover h3 {
    bottom: 49%;
    opacity: 1;
} */

.img-container {
  width: 40%;
  margin: 2%;
  margin-left: 7%;
  margin-top: 1.6px;
  position: relative;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255);
  transition: 1s;
  float: left;
}

#imageBox {
  z-index: 999;
  margin-top: 5%;
  margin-left: 62%;
  width: 32vw;
  height: 18vw;
  border: 2px solid white;
}

#imageBox canvas {
  object-fit: cover;
}

.container {
  position: relative;
}

.container canvas,
#param {
  position: absolute;
  top: 0%;
  left: 0%;
}

.container #param2 {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translate(-50%);
  width: 60%;

  display: flex;
  justify-content: space-between;
}

#param2 {
  height: 5vw;
  opacity: 0.8;
}

#param h2 {
  display: inline;
}

#param2 h3,
h2 {
  display: flex;
  /* margin: 1vw; */
  /* font-size: 1vw; */
  align-items: center;
}

#param-container {
  font-size: 1.5vw;
  text-align: left;
  margin: 1.5vw;
}

#param-container2 {
  font-size: 1vw;
  text-align: center;
  margin: auto;
  display: flex;
}

#key {
  margin: 1.5vw;
  font-size: 2.2vw;
}

#mode {
  margin: 1.5vw;
  font-size: 2.2vw;
}

#prog {
  margin: 1.5vw;
  font-size: 2.2vw;
}

#tetrad {
  margin: 1.5vw;
  font-size: 2.2vw;
}

#key2 {
  margin: auto;
  font-size: 1vw;
  display: inline;
  left: 100%;
}

#mode2 {
  margin: auto;
  font-size: 1vw;
  display: inline;
}

#prog2 {
  margin: auto;
  font-size: 1vw;
  display: inline;
}
#tetrad2 {
  margin: auto;
  font-size: 1vw;
  display: inline;
}

#color {
  width: 4vw;
  height: 4vw;
  border: 2px solid white;
  z-index: 1000;
  float: left;
}

/* .caption {
    font-size: 25px;
    margin-left: 5%;
} */

.slider {
  background-color: transparent;
  /* Removes some defaults */
  -webkit-appearance: none;
}

.slider::after{
    content:"VOLUME";
    position: absolute;
    font-family: 'Product Sans', sans-serif;
    font-size: 1.2vw;
    font-weight: bold;
    margin-top: -.5vw;
    color: white;
    top: -7px;
    left: 50%;
    transform: translate(-50%);
}

#instr1::after {
    content:"Mercury - Arp. 2";
    opacity: 0.8;
    width: 12vw;
    text-align: center;
}
#instr2::after {
    content:"Venus - Arp. 1";
    opacity: 0.8;
    width: 12vw;
    text-align: center;
}
#instr3::after {
    content:"Earth - Lead";
    opacity: 0.8;
    width: 12vw;
    text-align: center;
}
#instr4::after {
    content:"Mars - Tonic";
    opacity: 0.8;
    width: 12vw;
    text-align: center;
}
#instr5::after {
    content:"Jupyter - 3rd";
    opacity: 0.8;
    width: 12vw;
    text-align: center;
}
#instr6::after {
    content:"Saturn - 5th";
    opacity: 0.8;
    width: 12vw;
    text-align: center;
}
#instr7::after {
    content:"Uranus - 7th/8va";
    opacity: 0.8;
    width: 14vw;
    text-align: center;
}
#instr8::after {
    content:"Neptune - Bass";
    opacity: 0.8;
    width: 12vw;
    text-align: center;
}

#pl1 {
  background-image: url("/Images/1.jpg");
}
#pl2 {
  background-image: url("/Images/2.jpg");
}
#pl3 {
  background-image: url("/Images/3bis.jpg");
  background-size: cover;
}
#pl4 {
  background-image: url("/Images/4.jpg");
}
#pl5 {
  background-image: url("/Images/5.jpg");
}
#pl6 {
  background-image: url("/Images/6.jpg");
}
#pl7 {
  background-image: url("/Images/7.jpg");
}
#pl8 {
  background-image: url("/Images/8.jpg");
}

.slider::-webkit-slider-runnable-track {
  background: none;
  border: 1px solid white;
  height: 1vw;
  border-radius: 8px;
  -webkit-appearance: none;
  transition: 500ms;
}

.slider::-webkit-slider-thumb:hover {
  box-shadow: 0px 0px 0px 7px rgba(255, 255, 255, 0.578);
}

.slider::-webkit-slider-thumb {
  width: 0.7vw;
  height: 0.7vw;
  background-color: white;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: 0.76px;
  margin-left: 1px;
  margin-right: 1px;
  border-radius: 50%;
  transition: 500ms;
  transform: translate(0, 0.5px);
}

.hide {
  opacity: 0;
  animation: hidefade 1s;
}

@keyframes hidefade {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.show {
  display: block;
  animation: showfade 2s;
}

@keyframes showfade {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.output {
  margin-left: 10px;
  font-size: 18px;
}

.wrapper h3 {
  font-size: 1.6vw;
  margin-top: 15px;
  margin-bottom: 10px;
}

/*? SOUNDSCAPE **/

#param {
  margin: 3%;
  padding-bottom: 10%;
  padding: 1%;
  width: 50%;
  --angle: 0deg;
  background: rgba(0, 0, 0, 0);
  border: 2px solid white;
  border-image-slice: 5;
  border-image-source: linear-gradient(
    var(--angle),
    #000000 0%,
    #000000 70%,
    #ffffff 70%,
    #ffffff 100%
  );
  animation: 3s rotate linear infinite;
}

#param h1 {
  font-size: 3vw;
  margin-left: 3%;
  margin-bottom: 4%;
}

/** PALETTE **/

#palette {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 3%;
}

#palette div {
  height: 6vw;
  width: 6vw;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.2vw;

  border: 0.2px solid white;

  /* create a little bit of contrast for the text */
  mix-blend-mode: difference;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-shadow: 1px 1px #333;
}

.positionPlayStop {
  position: absolute;
  right: 0%;
  top: 0%;
  margin-top: 2vw;
  margin-right: 2vw;
  margin-left: 20px;
}

.positionMenu {
  position: absolute;
  left: 0%;
  top: 0%;
  margin-top: 2vw;
  margin-left: 2.5vw;
  
}

.position2D {
  position: absolute;
  right: 0%;
  top: 0%;
  margin-top: 9%;
  margin-right: 2vw;
  width: 5vw;
  height: 5vw;
}

.position3D {
  position: absolute;
  right: 0%;
  top: 0%;
  margin-top: 14.5%;
  margin-right: 2vw;
  width: 5vw;
  height: 5vw;

}

.positionMute{
  position: absolute;
  left: 0%;
  top: 0%;
  margin-top: 2vw;
  margin-left: 10.5vw;
  
}

#loading {
  position: absolute;
  left: 50%;
  transform: translate(-50%);
  margin-top: 9%;
  width: 12vw;
  height: 3vw;
  text-align: center;
  font-size: 2.5vw;
  opacity: 0.8;
}