*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;

  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;

  font-size: 18px;
}

html {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100%;
}

main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 24px;
  max-width: 100%;
}

details {
  --details-x-padding: 0;
  --details-y-padding: 0;

  width: 500px;
  max-width: 100%;
  padding: var(--details-y-padding) var(--details-x-padding);
  padding-top: 0;

  border: 2px solid black;
}

details[open] {
  --details-x-padding: 20px;
  --details-y-padding: 16px;
}

summary {
  cursor: pointer;
  background: #eee;
  padding: 8px 20px;
  font-weight: bold;

  margin: 0 calc(-1 * var(--details-x-padding));
}

details[open] summary {
  border-bottom: 2px solid black;
}

footer {
  padding: 16px 24px;
}
