.btn {
    background: transparent;
    border: none;
    color: white;
    cursor: pointer;
    font-size: 2em;
    position: relative;
    outline: none;
  }
  
  .btn--play {
    fill: white;
    height: 2em;
    width: 2em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  
  .btn--play::before, .btn--play::after {
    border-radius: 100%;
    content: "";
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
  }
  
  .btn--play::before {
    background-color: rgba(255, 255, 255, 0.1);
    -webkit-box-shadow: 0 0 0 0.2rem white;
    box-shadow: 0 0 0 0.2rem white;
    -webkit-transition: background-color .3s ease, fill .3s ease, -webkit-transform .3s ease, -webkit-box-shadow .3s ease;
    transition: background-color .3s ease, fill .3s ease, -webkit-transform .3s ease, -webkit-box-shadow .3s ease;
    transition: background-color .3s ease, transform .3s ease, box-shadow .3s ease, fill .3s ease;
    transition: background-color .3s ease, transform .3s ease, box-shadow .3s ease, fill .3s ease, -webkit-transform .3s ease, -webkit-box-shadow .3s ease;
  }
  
  .btn--play:hover {
    fill: black;
  }
  
  .btn--play:hover::before {
    background-color: rgba(0, 0, 0, 0.1);
    -webkit-box-shadow: 0 0 0 0.2rem black;
    box-shadow: 0 0 0 0.2rem black;
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
  }
  
  .btn--play:hover:after {
    display: none;
  }
  
  .btn--play::after {
    -webkit-animation: radiate 1.75s ease-out infinite;
    animation: radiate 1.75s ease-out infinite;
    -webkit-box-shadow: inset 0 0 0 1em rgba(255, 255, 255, 0);
    box-shadow: inset 0 0 0 1em rgba(255, 255, 255, 0);
    opacity: 0;
    pointer-events: none;
  }
  
  .icon {
    width: 6em;
    height: 6em;
  }
  
  @-webkit-keyframes radiate {
    0% {
      opacity: 1;
      -webkit-transform: scale3d(1.2, 1.2, 1);
      transform: scale3d(1.2, 1.2, 1);
    }
    80% {
      -webkit-box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      opacity: 0.1;
    }
    100% {
      -webkit-box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      opacity: 0;
      -webkit-transform: scale3d(1.5, 1.5, 1);
      transform: scale3d(1.5, 1.5, 1);
    }
  }
  
  @keyframes radiate {
    0% {
      opacity: 1;
      -webkit-transform: scale3d(1.2, 1.2, 1);
      transform: scale3d(1.2, 1.2, 1);
    }
    80% {
      -webkit-box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      opacity: 0.1;
    }
    100% {
      -webkit-box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      box-shadow: inset 0 0 0 0.2rem rgba(255, 255, 255, 0.8);
      opacity: 0;
      -webkit-transform: scale3d(1.5, 1.5, 1);
      transform: scale3d(1.5, 1.5, 1);
    }
  }