:root {
  --main-color: #333;

  --margin-length: 16px;
  --font-size: 18px;
  --line-height: 24px;
}

body {
  margin: 0;

  color: var(--main-color);

  font-family: times, serif;
  font-size: var(--font-size);
  line-height: var(--line-height);
}

.wrap {
  margin: var(--margin-length);
}

.wrap > main, .wrap > footer {
  max-width: 720px;
  margin: calc(2 *var(--margin-length)) auto;
}

a {
  color: var(--main-color);
}

/* main */

h1, h2, h3, p {
  margin: var(--line-height) 0;
}

p {
  font-size: var(--font-size);
}

h1, h2, h3 {
  font-family: courier;
}

h1 {
  font-size: calc(2.2 * var(--font-size));
  line-height: calc(2 * var(--line-height));
}

h2, h3 {
  font-size: calc(1.2 * var(--font-size));
  margin-top: calc(2 * var(--line-height));
}

h3 {
  font-weight: normal;
}

h1 + h2, h2 + h3 {
  margin-top: 0;
}

h1 a {
  text-decoration: none;
}

h1 a:hover {
  text-decoration: underline;
}

/* app */

.app {
  margin-top: calc(2 * var(--line-height));
}

h2 + .app {
  margin-top: calc(1 * var(--line-height));
}

.app .icon {
  margin: 0;
}

.app-description .app-title {
  margin: 0;
}

.app-description p:last-of-type {
  margin-bottom: 0;
}

.app {
  display: flex;
  gap: calc(2 * var(--margin-length));
}

@media (max-width: 480px) {
  .app {
    display: block;
  }

  .app-description .app-title {
    margin-top: var(--line-height);
  }
}

/* footer */

.wrap > footer {
  margin-top: calc(4 * var(--margin-length));
}

footer p {
  font-family: courier;
  text-align: center;
  font-size: calc(0.9 * var(--font-size));
}
