body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 4rem;
  min-height: 100%;
  background: url('background.png') no-repeat center center fixed;
  background-size: cover;
  font-family: 'Noto Sans', sans-serif;
}

header {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40vh;
  background: url('pattern.png') repeat-x bottom;
}

main, footer {
  margin: 0 auto;
  width: 90%;
  max-width: 25rem;
  text-align: center;
  font-size: 2rem;
}

main h2 {
  font-weight: 900;
  margin-bottom: 2rem;
}

footer {
  margin-bottom: 4rem;
  font-weight: 800;
}

footer p + p {
  margin-top: 1rem;
}

footer a {
  display: inline-block;
  position: relative;
  color: black;
  overflow: hidden;
  text-decoration: none;
}

footer a::before {
  content: '';
  position: absolute;
  left: 0;
  width: 100%;
  transition: transform .3s cubic-bezier(0.76, 0, 0.24, 1);
}

footer a::before {
  background-color: #ffcb08;
  height: 2px;
  bottom: 0;
  transform-origin: 100% 50%;
  transform: scaleX(0);
}

footer a:hover::before,
footer a:focus::before {
  transform-origin: 0 50%;
  transform: scaleX(1);
}
