* {
  box-sizing: border-box;
}

body {
  background: #eee;
  padding: 0 100px;
  font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
  line-height: 1.45;
}

.card {
  margin-top: 40px;
  margin-bottom: 100px;
  border-radius: 5px;
  padding: 40px;
  background: #fff;
  position: relative;
  min-height: 450px;
  background: #070707;
  color: white;
  transition: .3s transform linear;
}

.card:hover {
  transform: scale(1.01);
}

h2 {
  font-size: 46px;
  margin-bottom: 0;
  margin-top: 0;
  line-height: 1.3;
}

h3 {
  line-height: 1.2;
  color: #555;
  font-size: 30px;
  margin-top: 0;
  padding-top: 0;
}

.card[open] {
  position: relative;
  padding-top: 280px;
}

.card[open]:hover {
  transform: scale(1);
}

.card[open] summary:before {
  content: '×';
  display: block;
  width: 50px;
  height: 50px;
  background: white;
  border-radius: 500px;
  position: absolute;
  right: -20px;
  top: -20px;
  display: grid;
  place-items: center;
  text-align: center;
  color: black;
  z-index: 999;
  transition: all .3s linear;
  animation: pop .3s linear forwards;
}

@keyframes pop {
  0% { transform: scale(0); }
  80% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

summary {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  cursor: pointer;
  display: block;
  width: 100%;
  padding: 40px;
  padding-top: 160px;
}

p {
  max-width: 450px;
  font-size: 17px;
  line-height: 1.4;
  color: #eee;
}

.card p {
  animation: none;
  padding-top: 0;
}

.card[open] p {
  animation: appear 0.5s linear forwards;
}

@keyframes appear {
  0% { transform: translate(0, 50px); opacity: 0; }
  100% { transform: translate(0, 0); opacity: 1; }
}

.crop {
  position: absolute;
  bottom: 0;
  right: 0;
  top: 0;
  width: 40%;
  overflow: hidden;
  object-fit: cover;
  height: 100%;
  object-position: 30% 50%;
  border-radius: 5px;
}

.crop img {
  width: 1000px;
  object-position: -200px 20px;
}
