JSFiddle - React, Tailwind, and code Playground

HTML

<div class="container">
  <div class="curtain">
    <div class="ratio-keeper">
      <!-- 1. Video Wrapper Container -->
      <div class="wrap embed-youtube ">
        <div class="video embed-youtube">
        </div>
        <!-- 2. The preview button that will contain the Play icon -->
        <button class="playa cover embed-youtube-play" type="button" aria-label="Open"></button>
      </div>
    </div>
  </div>
  <div class="curtain">
    <div class="ratio-keeper">
      <!-- 1. Video Wrapper Container -->
      <div class="wrap embed-youtube ">
        <div class="video embed-youtube">
        </div>
        <!-- 2. The preview button that will contain the Play icon -->
        <button class="playb cover embed-youtube-play" type="button" aria-label="Open"></button>
      </div>
    </div>
    <button class="exit" type="button" aria-label="Open"></button>
  </div>
  <div class="curtain">
    <div class="ratio-keeper">
      <!-- 1. Video Wrapper Container -->
      <div class="wrap embed-youtube ">
        <div class="video embed-youtube" data-id="">
        </div>
        <!-- 2. The preview button that will contain the Play icon -->
        <button class="playc cover embed-youtube-play" type="button" aria-label="Open"></button>
      </div>
    </div>
  </div>
</div>

CSS

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

body {
  background: #302b63;
}

.ratio-keeper {
  position: relative;
  height: 0;
  padding-top: 56.25%;
  margin: auto;
  overflow: hidden;
}

.container {
  position: absolute;
  left: 0;
  right: 0;
  min-height: 100%;
  padding: 8px 8px;
}

.curtain {
  margin: auto auto 40px;
  max-width: 640px;
  border: 21px solid;
  border-radius: 12px;
  border-color: #000 #101010 #000 #101010;
  position: relative;
}

@media screen and (max-width: 500px) {
  .curtain {
    margin-bottom: 20px;
  }
}

.curtain::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: #0a0a0a;
  border: 1px solid;
  border-color: #000 #101010 #000 #101010;
}

.curtain::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  outline: 1px solid #333;
  pointer-events: none;
}

.embed-youtube iframe,
.embed-youtube .embed-youtube-play,
.embed-youtube .embed-youtube-play::before {
  position: absolute;
}

.embed-youtube iframe {
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}

.embed-youtube .embed-youtube-play {
  -webkit-appearance: none;
  appearance: none;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  cursor: pointer;
  border: 9px solid blue;
  background: transparent;
  filter: drop-shadow(3px 3px 3px #000000b3);
  z-index: 1;
}

.embed-youtube-play::before {
  content: "";
  width: 0;
  height: 0;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 27px solid blue;
  transform: translateX(4px);
}

.embed-youtube-play:hover {
  box-shadow: 0 0 0 5px rgba(43, 179, 20, 0.5);
}

.embed-youtube-play:focus {
  outline: 0;
  box-shadow: 0 0 0 5px rgba(0, 255, 255, 0.5);
}

.embed-youtube.active .embed-youtube-play {
  display:...

JavaScript

const manageCover = (function makeManageCover() {

  function showCover(playButton) {
    const cover = playButton.parentElement;
    cover.classList.add("active");
  }

  function coverClickHandler(evt) {
    const cover = evt.currentTarget;
    showCover(cover);
    const curtain = evt.currentTarget.parentElement
      .parentElement.parentElement;
    // openCurtain(curtain);
  }

  function addCoverHandler(coverSelector, handler) {
    const cover = document.querySelector(coverSelector);
    cover.addEventListener("click", handler);
  }

  function addClickToButtons(playButtons) {
    playButtons.forEach(function playButtonHandler(playButton) {
      playButton.addEventListener("click", coverClickHandler);
    });
  }

  function init(selectors) {
    const playButtons = document.querySelectorAll(selectors.playButton);
    addClickToButtons(playButtons);
  }

  return {
    addCoverHandler,
    init
  };
}());

const manageUI = (function makeManageUI() {
  const body = document.body;

  const players = [];

  function findPlayers() {
    const allCovers = document.querySelectorAll(".cover");
    const allWrappers = document.querySelectorAll(".wrap");
    allCovers.forEach(function addToPlayers(cover, index) {
      players.push({
        "cover": cover,
        "wrapper": allWrappers[index]
      });
    });
  }

  // inline arrow function, direct return
  function getWrapper(cover) {
    const index = players.findIndex(
      (player) => player.cover === cover
    );
    return players[index].wrapper;
  }

  function resetBackground(backgroundSelector) {
    const background = document.querySelector(backgroundSelector);
    background.classList.add("bg1");
  }

  function animationEndHandler(evt) {
    const animationName = evt.animationName;
    console.log(animationName);
    if (animationName === "initial-fade") {
      body.classList.remove("initial-fade");
      resetPage();
    }
  }

  function resetPage() {
    resetBackground("body");
  }

 ...