body{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5em;
  height: 100vh;
}

main{
  flex-shrink: 0;
  width: 375px;
  overflow-y: auto;

  img{
    width: 100%;
    border: 1px dotted #d2d2d3;
  }
}

aside{
  display: flex;
  flex-direction: column;
  gap: 2.5em;
  position: relative;
  font-size: 10px;
  text-align: center;

  p{
    position: absolute;
    visibility: hidden;
    opacity: 0;
    transition: all 0.35s 0.25s steps(3);
  }

  span{
    color: #798682;
    font-style: italic;
    text-decoration: 1px underline dotted;
  }
}

input{
  width: 80px;
  opacity: 0;
  filter: saturate(0) sepia(0.25);
  transition: all 0.25s steps(3);
}

input:hover{
  transform: rotate(3deg);
  filter: none;
}

#tab-default{
  animation: fade-in 0.25s 0.2s steps(3) forwards;
  margin: 80px 10px 0 0;
}

#tab-callie{
  animation: fade-in 0.25s 0.4s steps(3) forwards;
    margin: 0 0 80px 5px;
}

/* svgs */

svg{
  position: absolute;
  pointer-events: none;
  width: 50px;
  stroke: #9fa3a2;
  stroke-width: 0.75;
  stroke-dasharray: 0 2;
  stroke-linecap: round;

  path{
    visibility: hidden;
    transition: all 0.25s steps(3);
  }
}

#svg-bloom{
  top: 110px;
  left: -55px;
}

#svg-callie{
  bottom: 110px;
  right: -34px;
}

/* text */

#p-bloom{
  top: 118px;
  left: -74px;
  transform: rotate(-3deg);
}

#p-callie{
  bottom: 103px;
  right: -64px;
  transform: rotate(-3deg);
}

/* hover */

#tab-default:hover ~ #p-bloom, #tab-default:hover ~ #svg-bloom path,
#tab-callie:hover ~ #p-callie, #tab-callie:hover ~ #svg-callie path{
  visibility: visible;
  opacity: 1;
}

#tab-default:hover ~ #svg-bloom path{d: path("M30,9 L9,9");}
#tab-callie:hover ~ #svg-callie path{d: path("M9,7 L30,9");}