[x-cloak] {
  display: none !important;
}

* {
  box-sizing: border-box;
}

:root {
  --gray-10: oklch(10% 0 141);
  --gray-20: oklch(20% 0 141);
  --gray-30: oklch(30% 0 141);
  --gray-40: oklch(40% 0 141);
  --gray-50: oklch(50% 0 141);
  --gray-60: oklch(60% 0 141);
  --gray-70: oklch(70% 0 141);
  --gray-80: oklch(80% 0 141);
  --gray-90: oklch(90% 0 141);
  --gray-95: oklch(95% 0 141);
  --gray-96: oklch(96% 0 141);
  --gray-98: oklch(98% 0 141);
}

/* Note that body styles are put inline in the head of every page 
   to reduce view flickering */

h1,
h2,
h3 {
  font-family: "Crimson Text", serif;
  font-weight: 700;
  margin: 0;
}

h1 {
  font-size: 3rem;
  margin-bottom: 0;
}

p {
  margin: 0;
  margin-bottom: 0.5rem;
}

.depth-border {
  border: var(--gray-95) solid 0.125rem;
  border-bottom: var(--gray-95) solid 0.25rem;
  border-radius: 1rem;
  overflow: hidden;

  padding: 0;
  background-color: white;
}

ul.object-list {
  li {
    list-style-type: none;
    padding: 0.5rem 0.75rem;
    position: relative;
    cursor: pointer;
  }

  a {
    text-decoration: none;
    color: black;
  }
}

ul.object-list--hover li:hover {
  background-color: var(--gray-98);
}

ul.object-list--arrow li::after {
  content: "";
  background-image: url(/static/icons/chevron-right.svg);
  background-size: 100% auto;
  display: block;

  width: 1rem;
  height: 1rem;
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
}

button {
  background-color: white;
  color: black;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  border: var(--gray-95) solid 0.125rem;
  border-bottom: var(--gray-95) solid 0.25rem;

  font-family: "Lora", serif;
  font-weight: 500;

  width: 100%;
  cursor: pointer;

  img {
    width: 1em;
    height: 1em;
  }

  &:hover {
    background-color: var(--gray-98);
  }

  &.small {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
  }
}

.flex {
  display: flex;
  gap: 0.25rem;
  align-items: center;
}

.grow {
  flex-grow: 1;
}

.shrink {
  flex-shrink: 1;
  width: unset;
}

form {
  > div {
    margin-bottom: 0.5rem;
    > * {
      display: block;
    }
  }

  label {
    font-size: 0.75rem;
    color: var(--gray-40);
    font-weight: 600;
  }

  input {
    padding: 0.25rem 0.5rem;
    width: 100%;

    border-radius: 0.5rem;
    border: var(--gray-95) solid 0.125rem;
    border-bottom: var(--gray-95) solid 0.25rem;

    font-family: "Lora", serif;
    font-weight: 500;
  }
}

footer {
  display: flex;
  gap: 0.25rem;
  margin-top: 2rem;
}

@media (max-width: 40rem) {
  body {
    margin: 1rem;
  }

  body:has(footer) {
    margin-bottom: 5rem;
  }

  form input {
    padding: 0.5rem 1rem;
    font-size: 1rem;
  }

  button {
    font-size: 1rem;
  }

  footer {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;

    margin-top: 0;
    padding: 0.75rem;
    border-top: var(--gray-95) solid 0.125rem;
    background-color: white;

    a {
      text-decoration: none;
    }
  }
}

.header {
  display: flex;
  align-items: center;
  gap: 0.5rem;

  button,
  a {
    height: 100%;
    background: none;
    border: none;
  }

  button:hover {
    background-color: var(--gray-90);
  }
}
