:root {
  --color-text: #fff;
  --color-hover: #888;
  --color-background: #000;
}

/* overall */

html,
body {
  margin: 0;
}

body {
  background: var(--color-background);
  color: var(--color-text);
  font-family: "Montserrat", Avenir, Corbel, "URW Gothic", source-sans-pro, sans-serif;
  font-size: min(2.8vw, 2.8vh);
  overflow: hidden;
}

body::selection {
  background: var(--color-text);
  color: var(--color-background);
}

a,
a:visited {
  color: inherit;
  text-decoration: none;
}

a {
  transition: color 0.5s;
}

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

/* header */

.top-bar {
  position: fixed;
  top: 0;

  width: calc(100% - 4em);
  margin: 0.5em 2em;

  height: 3em;
  border-bottom: 1px solid color-mix(in srgb, var(--color-text) 50%, transparent);

  display: flex;
  align-items: center;
  justify-content: flex-end;

  z-index: 10;

  font-size: 1em;
}

/* main */

.main {
  width: 100vw;
  padding-top: 3.5em;
  height: calc(100vh - 3.5em);
}

.page {
  width: 100%;
  height: 85%;

  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
}

.brand {
  font-size: 5em;
  font-family: "Bodoni Moda", Didot, "Bodoni MT", "Noto Serif Display", "URW Palladio L", P052, Sylfaen, serif;
  line-height: 1em;
  margin: 0.7em 0 0.3em 0;
}

.tagline,
.location {
  text-transform: uppercase;

  font-size: 1em;
  letter-spacing: 0.1em;
  margin: 0.3em;
}

.location {
  margin-top: 3em;
  font-size: 0.75em;
}

/* footer */

.footer {
  width: 100%;
  height: 15%;

  font-size: 1em;
  display: flex;
  flex-direction: column;
  align-content: start;
  align-items: center;
}

.footer p {
  margin: 0.3em;
}

.contact {
  text-transform: uppercase;
}

.email {
  font-size: 0.95em;
}
