@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');

body {
  margin: 0 3vw;
  font-family: Lato;
  font-size: 21px;
}
h1, h2, h3, h4, h5 {
  font-weight: 300;
}
nav {
  background: #134;
  color: white;
  margin: 0 -3vw;
  font-size: 0.8em;
  padding: 1em 0;
  & ul {
    background: #134 url('/images/logo.svg') 3vw no-repeat;
    background-size: contain;
    max-width: 996px;
    margin: 0 auto;
    text-align: right;
    padding: 0.5em 3vw;
    & li {
      padding: 0 0 0 2em;
      display: inline-block;
      & a {
        text-decoration: none;
        color: silver;
        transition: color ease 0.4s;
        &:hover { color: white; } } } } }
header {
  background: url('/images/steps.jpg');
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  margin: 0 auto;
  min-height: 200px;
  max-width: 936px;
  margin: 30px auto;
  padding: 90px 30px;
  color: white;
  & h1, & h2 { margin: 0; }
}
footer {
  font-size: 0.8em;
  background-color: #5863;
  margin: 30px -3vw 0 -3vw;
  padding: 50px 30px 10px;

  &>p, &>div {
    text-align: left;
    max-width: 996px;
    margin: 1em auto 0;
    line-height: 1.6em;
  }
  &>div {
    column-count: 4;
    column-gap: 30px;
    margin-bottom: 30px;
    &>div {
      break-inside: avoid;
      &>h3, &>p {
        font-size: inherit;
        margin: 0;
        padding: 0;
        & a {
          color: black;
          text-decoration: none;
          &:hover { text-decoration: underline; } } }
      & h3 {
        text-transform: uppercase;
        font-weight: bold; } } } }
section.blocks {
  max-width: 996px;
  margin: 0 auto;
  gap: 30px;
  line-height: 1.5em;
  font-weight: 320;
  font-size: 1em;
  display: flex;
  flex-wrap: wrap;
  & .scalaworld {
    background: url('/images/scala-world.webp') bottom no-repeat;
    background-size: cover; }
  & .soundness {
    color: white !important;
    background: url('/images/soundness.webp') bottom no-repeat;
    background-size: cover; }
  & .training {
    background: url('/images/peak.webp') bottom no-repeat;
    background-size: cover; }
  & .invariant {
    background: url('/images/invariant.webp') bottom no-repeat;
    background-size: cover; }
  & .migration {
    background: url('/images/birds.webp') bottom no-repeat;
    background-size: cover; }
  & .inset {
    opacity: 1;
    border: none;
    padding: 16px;
    flex: 1 1 280px;
    &  p { margin: -16px -16px 2em -16px; text-align: justify; } }
  &>a {
    color: black;
    text-decoration: none;
    flex: 1 1 312px; }
  &>a>div {
    opacity: 0.7;
    transition: opacity ease 0.6s;
    padding: 16px;
    aspect-ratio: 1.5;
    & h2 { margin-top: 0; }
    &:hover { opacity: 1; }
  }}

@media (min-width: 696px) {
  body { font-size: 18px; }
}

@media (min-width: 1060px) {
  body { font-size: 15px; }
  section.blocks>a>div { aspect-ratio: 1; }
 }
