body {
  background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.9)),
                    url("images/footer.png");
  background-origin: border-box;
  background-position: bottom;
  background-repeat: no-repeat;
  background-size: contain;
  font-family: var(--font-base, "Karla", Arial, sans-serif);
}

div.footer {
  margin-bottom: 5em;
  margin-top: 5em;
}

div.header {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  margin: 2em auto 1em auto;
  max-width: 40em;
}

div.header-line {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-around;
  align-items: center;
}

div.header img.logo {
  height: 5em;
}

div.header h1 {
  padding-left: 1rem;
}

div.header p {
  margin-top: 0;
}

div.header p a {
  display: inline;
  text-align: end;
  line-height: inherit;
}

div.header p.menu a {
  margin: 0.5em 1em 0.5em 1em;
  white-space: nowrap;
  font-weight: bold;
}

div.header p.social a {
  white-space: nowrap;
  margin: 0.1em;
}

div.header p.social svg:hover {
  fill: orange;
}

div.header h2 {
  font-size: 1em;
  padding-bottom: 1em;
}

h1, h2 {
  text-align: center;
}

div.section {
  margin: 1em auto 1em auto;
  max-width: 35em;
}

div.section h2, div.section h3, div.section h4 {
  font-family: var(--font-headings, "Lora", Georgia, sans-serif);
  text-align: center;
  font-weight: 300;
  line-height: 1.13;
}

img.section-landscape {
  display: block;
  margin: 2em auto 1em auto;
  width: 70%;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,1) 20%, rgba(0,0,0,1) 80%, rgba(0,0,0,0));
}

img.section-portrait {
  display: block;
  margin: 2em auto 1em auto;
  max-width: 70%;
  max-height: 20em;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,1) 5%, rgba(0,0,0,1) 90%, rgba(0,0,0,0));
}

figcaption {
  margin: auto;
  font-style: italic;
  font-weight: lighter;
  font-size: smaller;
  text-align: center;
  color: #777;
}

div.prefooter {
  font-weight: bold;
  text-align: center;
  font-size: 1.2em;
}

h1.title-icon {
  position: relative;
  left: -1.5em;  /* So that the *text* of the title is centered */
}

h1.title-icon img {
  display: inline;
  margin-right: 0.5em;
  height: 1.5em;
  width: 1.5em;
  /* center with the text: */
  position: relative;
  top: 0.3em;
}

h2 {
  padding-top: 1em;
  padding-bottom: 1em;
}

h2.title-icon {
  position: relative;
  left: -1.5em;  /* So that the *text* of the title is centered */
}

h2.title-icon img {
  display: inline;
  margin-right: 1em;
  height: 3em;
  width: 3em;
  /* center with the text: */
  position: relative;
  top: 1em;
}

h2 img.balance {
  animation: 2s infinite alternate balance;
  transform-origin: center bottom;
  animation-timing-function: ease-in-out;
}

@keyframes balance {
  0% {
    transform: rotate(-10deg);
    filter: blur(3px);
  }
  50% {
    filter: blur(0px);
  }
  100% {
    transform: rotate(10deg);
    filter: blur(3px);
  }
}

h2 img.ghost {
  animation: 1s infinite normal ghost linear;
}

@keyframes ghost {
  0%, 100% {
    transform: translate(0, 6px) rotate(0deg) scale(1, 1);
  }
  25% {
    transform: translate(0, 0) rotate(5deg) scale(0.95, 1.05);
  }
  50% {
    transform: translate(0, -6px) rotate(0deg) scale(1, 1);
  }
  75% {
    transform: translate(0, 0) rotate(-5deg) scale(1.05, 0.95);
  }
}

h2 img.ufo {
  animation: 1.5s infinite alternate ufo;
}

@keyframes ufo {
  0% {
    transform: translate(0, 8px);
  }
  100% {
    transform: translate(0, -8px);
  }
}

h2 img.passing {
  animation: 2s infinite normal ease passing;
}

@keyframes passing {
  0% {
    transform: translate(-5em, 0) scale(0.8, 0.8);
  }
  50% {
    transform: translate(0.5em, 0) scale(0.8, 0.8);
  }
  51% {
    transform: translate(0.5em, 0) scale(-0.8, 0.8);
  }
  99% {
    transform: translate(-5em, 0) scale(-0.8, 0.8);
  }
  100% {
    transform: translate(-5em, 0) scale(0.8, 0.8);
  }
}

h2 img.magic {
  animation: 1s infinite alternate ease-in magic;
}

@keyframes magic {
  0% {
    transform: rotate3d(0, 1, 0, 0);
    filter: blur(0);
  }
  100% {
    transform: rotate3d(0, 1, 0, 2turn);
    filter: blur(5px) opacity(30%);
  }
}

h3.title-icon img {
  display: inline;
  margin-right: 0.5em;
  height: 1.5em;
  width: 1.5em;
  /* center with the text: */
  position: relative;
  top: 0.2em;
  transform: rotate(-10deg);
}

span.ascii {
  font-family: monospace;
  font-size: 0.8em;
  white-space: nowrap;
}

div.ecole {
  border: 3px solid #ebe5e5;
  border-radius: 0% 5% / 11% 16%;
  background: #b8dfe1;
  margin: 2em 0em 2em 4em;
  position: static; /* makes this the positionned ancestor of the following img */
  padding-bottom: 3em;
}

div.ecole p {
  padding: 0.2em 1.5em 0.2em 1.5em;
}

div.ecole img:last-child {
  width: 3em;
  position: absolute;
  transform: translate(1.5em, -1em);
}

ul.intox {
  border: 7px dashed #bdb4ab;
  border-radius: 50% 20% / 10% 40%;
  background: #f7d5af7a;
	padding-left: 0.5em;
}

ul.intox li {
  padding: 0.2em 1.5em 0.2em 1.5em;
  list-style-type: none;
  font-family: "Playwrite HR", cursive;
}

ul.intox li:first-child {
  padding-top: 2em;
}

ul.intox li:last-child {
  padding-bottom: 2em;
}

/* Phones */
/*
@media screen and (max-width: 80rem) {
  .container {
      margin: 1em 2em;
        }
        }
*/
