@import "_reset.css";
@import "_transitions.css";
@import "_typography.css";
@import "_utilities.css";
@import "_theme.css";

/* Pages */
@import "pages/app.css";
@import "pages/about.css";
@import "pages/default.css";
@import "pages/error.css";
@import "pages/home.css";
@import "pages/info.css";
@import "pages/project.css";
@import "pages/projects.css";

/* Components */
@import "components/minimap.css";
@import "components/navigation-bar.css";
@import "components/project-grid.css";

/* Utility */

button,
.button {
  background: var(--foreground);
  color: var(--foreground-inverted);
  font-size: var(--font-normal);
  font-family: var(--font-family);
  width: 100%;
  padding: var(--gap-normal);
  display: inline-block;
  border: none;
  margin: 0;
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: var(--border-radius);
  transition: all 0.1s;
}

button:disabled {
  opacity: 0.5;
}

button:hover,
.button:hover {
  background: var(--foreground-2);
  text-decoration: none;
}
button:active,
.button:active {
  background: var(--foreground);
  text-decoration: none;
}

button:focus {
  outline: 0;
}

button[variant="icon"],
.button[variant="icon"] {
  background: none;
  padding: 0;
  text-align: center;
  justify-content: center;
  width: auto;
  color: var(--foreground);
  display: flex;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
}
button[variant="icon"]:hover,
.button[variant="icon"]:hover {
  background: var(--foreground-3);
}
button[variant="icon"] > * + *,
.button[variant="icon"] > * + * {
  margin-left: 1rem;
}

button[variant="static-icon"],
.button[variant="static-icon"] {
  background: var(--foreground-3);
  padding: 0;
  text-align: center;
  justify-content: center;
  width: auto;
  color: var(--foreground);
  display: flex;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
}

button[variant="outline"],
.button[variant="outline"] {
  color: var(--foreground);
  background: transparent;
  border: 1px solid var(--foreground);
}
.button[variant="outline"]:hover {
  background: var(--background-2);
}
/* Modals */

.modal {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: var(--gap-small);
  left: var(--gap-normal);

  border-radius: var(--border-radius);
  background: var(--background);

  overflow: auto;
  z-index: 5;
  height: calc(100vh - 1 * var(--gap-normal));
  /* height: calc(100dvh - 1 * var(--gap-normal)); */
  right: var(--gap-normal);
  width: initial;
}
@supports (height: 100dvh) {
  .modal {
    max-height: calc(100dvh - 1 * var(--gap-large));
  }
}
.sidebar-scroller {
  z-index: 3;
}
@media (min-width: 768px) {
  .modal {
    max-width: 450px;
    top: var(--gap-large);
    left: var(--gap-large);
    right: initial;
    transform: none;
    width: calc(100% - 4 * var(--container-padding));
    min-height: initial;
    max-height: calc(100vh - 2 * var(--gap-large));
  }
}

.modal-header {
  display: flex;
  width: 100%;
  padding: var(--gap-large);
  border-bottom: var(--border-line);
  background: var(--white);
}

.modal-header .center {
  text-align: center;
}
.modal-header .right {
  text-align: right;
}

.left,
.center,
.right {
  width: 33.333%;
}

.modal-content {
  margin-top: var(--gap-normal);
  padding: var(--gap-small) var(--gap-large);
}

.modal-content-bottom {
  margin-top: auto;
  margin-bottom: var(--gap-normal);
  padding: var(--gap-small) var(--gap-large);
}

.modal-footer {
  display: flex;
  width: 100%;
  padding: var(--gap-large);
  border-top: var(--border-line);
  background: var(--background);
  position: relative;
  bottom: 0;
}
hr {
  border: none;
  border-bottom: 1px solid var(--foreground-2);
}

video {
  width: 100%;
}

.has-video {
  height: 100%;
  border-radius: 4px;
  overflow: hidden;
}
.has-video video {
  height: 100%;
  border-radius: 4px;
  object-fit: cover;
}
