@font-face {
  font-family: "Source Serif";
  src: url("/fonts/source-serif-4-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans";
  src: url("/fonts/source-sans-3-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}

:root {
  color-scheme: light;
  font-family: "Source Sans", sans-serif;
  background: #fff;
  color: #263434;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
body { margin: 0; }
::selection { color: #263434; background: #dce7e6; }

main {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 64px 24px 104px;
}

.construction {
  width: 100%;
  max-width: 580px;
  text-align: center;
}

.construction-mark {
  display: block;
  width: 104px;
  height: 104px;
  margin: 0 auto 38px;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-width: 1.15px;
}

.mark-foundation { stroke: #e3e9e8; }
.mark-line {
  stroke: #657e7b;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: take-shape 4.4s cubic-bezier(.16, 1, .3, 1) forwards;
}
.mark-line-second { animation-delay: .4s; }

h1 {
  margin: 0;
  font-family: "Source Serif", Georgia, serif;
  font-size: clamp(32px, 3.4vw, 46px);
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: -.025em;
  text-wrap: balance;
}

p {
  margin: 17px 0 0;
  color: #65716f;
  font-size: 17px;
  line-height: 1.6;
}

footer {
  position: absolute;
  top: calc(100svh - 58px);
  width: 100%;
  padding: 0 24px 24px;
  color: #65716f;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: .035em;
}

@keyframes take-shape {
  from { stroke-dashoffset: 1; }
  to { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .mark-line { animation: none; stroke-dashoffset: 0; }
}

@media (max-height: 440px) {
  main { min-height: 400px; padding-top: 32px; }
  .construction-mark { width: 76px; height: 76px; margin-bottom: 24px; }
  footer { top: 360px; }
}
