@font-face {
  font-family: "GeoSansLight";
  src: url("https://localstorage.tools/game/font/GeosansLight.ttf");
  font-display: swap;
}

:root {
  color-scheme: light dark;

  --wide: 12px;
  --narrow: 4px;
  --border-radius: 4px;
  --toast-z: 999;

  --highlight: #fef300;
  --anti-highlight: black;
  --border: white;

  --main-fg: white;
  --main-bg: #121212;
}

@media (prefers-color-scheme: light) {
  :root {
    --main-fg: #121212;
    --main-bg: white;
  }
}

* {
  box-sizing: border-box;
  font-family: "GeoSansLight", sans-serif;
}

body {
  margin: 0;
  overflow-x: clip;
}

.button {
  padding: var(--narrow);
}

dialog {
  border: none;
  border-radius: var(--border-radius);
  padding: var(--narrow) var(--wide);
}

dialog header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  column-gap: var(--wide);
  font-size: 1.5rem;
}
dialog header h2 {
  margin: 0;
  font-size: 1.5rem;
}

dialog header .header__option {
  background: none;
  border: none;
  font-size: 1.5rem;
}

.toast {
  position: absolute;
  top: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--highlight);
  color: var(--anti-highlight);
  z-index: var(--toast-z);
}

.icon {
  border-radius: 100%;
  height: 2rem;
  width: 2rem;
  border: 1px solid var(--border);
  text-align: center;
}

.toast__icon {
  display: flex;
  justify-content: center;
  align-items: center;
  border: none;
}

@media (prefers-reduced-motion: no-preference) {
  .expand {
    animation-name: expand;
    animation-timing-function: linear;
  }
  .contract {
    animation-name: contract;
    animation-timing-function: linear;
  }
  .slide-in {
    animation-name: slide-in;
    animation-timing-function: linear;
  }
  .slide-out {
    animation-name: slide-out;
    animation-timing-function: linear;
  }
}

@keyframes expand {
  0% {
    transform: scaleY(0);
  }
  100% {
    transform: scaleY(1);
  }
}

@keyframes contract {
  0% {
    transform: scaleY(1);
  }
  100% {
    transform: scaleY(0);
  }
}

@keyframes slide-in {
  0% {
    transform: translateX(100vw);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes slide-out {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100vw);
  }
}
