*{
  margin: 0;
  padding: 0;
  overflow: hidden;

  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

html{
  height: 100%;
}

body{
  width: 100%;
  height: 100%;
  background-color: white;
  background-image: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 45%, rgba(230,230,230,1) 70%, rgba(255,255,255,1) 95%, rgba(255,255,255,1) 100%);
}

.scene {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.card{
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: initial;

  transition: transform 0.7s;
  transform-style: preserve-3d;
}

.face {
  border: 10px solid white;
  border-radius: 20px;
  flex: 0 1 auto;

  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
#recto-layer {
  position: relative;
  left: 25%;
}
#verso-layer {
  position: relative;
  right: 25%;
  transform: rotateY(180deg);
}

.checkbox{position: absolute; z-index: 1;}
.card.is-flipped{
  transform: rotateY(180deg);
}

#rotate{width: 50px;}

/* ----------------- */

#gradient_container{
  width: 100%;
  height: 100%;
  position: absolute;
  overflow: hidden;
}

#gradient_container:before {
  --size: 0;
  content: "";
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--size);
  height: var(--size);
  background: radial-gradient(circle closest-side, white, transparent);
  transform: translate(-50%, -50%);
  transition: width 0.2s ease, height 0.2s ease;
  opacity: 0.2;
}

#gradient_container:hover:before {
  --size: 1000px;
}

/* ------------------ */

#rotate{
  position: absolute;
  bottom: 30px;
  left: calc(50% - 25px);
  cursor: pointer;
}
#rotate:hover{
  opacity: 0.7;
}
#rotate:active{
  transform: scale(0.9);
}