* {
  margin: 0;
  padding: 0;
  line-height: 1;
  position: relative;
}

body {
  background-color: var(--bg);
  height: 100vh;
  width: 100vw;
  color: var(--font-color);
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Noto Sans, Liberation Sans, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
  line-height: 1;
  overflow: hidden;
}

body * {
  box-sizing: border-box;
}

body {
  --bg: #222;
  --txt: #fff;
  --lines: #555;
  --gap: 1rem;
  box-sizing: border-box;
  --gap: .75rem;
  --hilite: #6941c6;
  --hilite-dark: #4c2db3;
  --header: #555;
  --btn: var(--hilite);
  --btn-lite: #649fff;
  color: var(--txt);
  background: #ccc;
  margin: 0;
  padding: 0;
}

.splash {
  height: 100vh;
  width: 100vw;
  color: #333;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.splash #panorama {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: none;
}

.splash[data-mode="location"] .portal .image {
  display: none;
}

.splash[data-mode="location"] .portal #panorama, .splash[data-mode="image"] .portal .image {
  display: block;
}

.splash[data-mode="image"] .portal #panorama {
  display: none;
}

.splash[data-aspect="landscape"] .image {
  aspect-ratio: 16 / 9;
}

.splash[data-aspect="square"] .image {
  aspect-ratio: 1 / 1;
}

.spin {
  width: 4rem;
  height: 4rem;
  transform-origin: 0 0;
  background: #fff;
  animation: 1s linear infinite spin;
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --%3E%3Cdefs%3E%3Cstyle%3E.fa-secondary%7Bopacity:.4%7D%3C/style%3E%3C/defs%3E%3Cpath class='fa-primary' d='M304 48C304 74.51 282.5 96 256 96C229.5 96 208 74.51 208 48C208 21.49 229.5 0 256 0C282.5 0 304 21.49 304 48zM96 256C96 282.5 74.51 304 48 304C21.49 304 0 282.5 0 256C0 229.5 21.49 208 48 208C74.51 208 96 229.5 96 256zM74.98 74.98C93.73 56.23 124.1 56.23 142.9 74.98C161.6 93.73 161.6 124.1 142.9 142.9C124.1 161.6 93.73 161.6 74.98 142.9C56.24 124.1 56.24 93.73 74.98 74.98V74.98z'/%3E%3Cpath class='fa-secondary' d='M437 142.9C418.3 161.6 387.9 161.6 369.1 142.9C350.4 124.1 350.4 93.73 369.1 74.98C387.9 56.24 418.3 56.24 437 74.98C455.8 93.73 455.8 124.1 437 142.9V142.9zM512 256C512 282.5 490.5 304 464 304C437.5 304 416 282.5 416 256C416 229.5 437.5 208 464 208C490.5 208 512 229.5 512 256zM304 464C304 490.5 282.5 512 256 512C229.5 512 208 490.5 208 464C208 437.5 229.5 416 256 416C282.5 416 304 437.5 304 464zM74.98 437C56.24 418.3 56.24 387.9 74.98 369.1C93.73 350.4 124.1 350.4 142.9 369.1C161.6 387.9 161.6 418.3 142.9 437C124.1 455.8 93.73 455.8 74.98 437V437zM437 437C418.3 455.8 387.9 455.8 369.1 437C350.4 418.3 350.4 387.9 369.1 369.1C387.9 350.4 418.3 350.4 437 369.1C455.8 387.9 455.8 418.3 437 437V437z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --%3E%3Cdefs%3E%3Cstyle%3E.fa-secondary%7Bopacity:.4%7D%3C/style%3E%3C/defs%3E%3Cpath class='fa-primary' d='M304 48C304 74.51 282.5 96 256 96C229.5 96 208 74.51 208 48C208 21.49 229.5 0 256 0C282.5 0 304 21.49 304 48zM96 256C96 282.5 74.51 304 48 304C21.49 304 0 282.5 0 256C0 229.5 21.49 208 48 208C74.51 208 96 229.5 96 256zM74.98 74.98C93.73 56.23 124.1 56.23 142.9 74.98C161.6 93.73 161.6 124.1 142.9 142.9C124.1 161.6 93.73 161.6 74.98 142.9C56.24 124.1 56.24 93.73 74.98 74.98V74.98z'/%3E%3Cpath class='fa-secondary' d='M437 142.9C418.3 161.6 387.9 161.6 369.1 142.9C350.4 124.1 350.4 93.73 369.1 74.98C387.9 56.24 418.3 56.24 437 74.98C455.8 93.73 455.8 124.1 437 142.9V142.9zM512 256C512 282.5 490.5 304 464 304C437.5 304 416 282.5 416 256C416 229.5 437.5 208 464 208C490.5 208 512 229.5 512 256zM304 464C304 490.5 282.5 512 256 512C229.5 512 208 490.5 208 464C208 437.5 229.5 416 256 416C282.5 416 304 437.5 304 464zM74.98 437C56.24 418.3 56.24 387.9 74.98 369.1C93.73 350.4 124.1 350.4 142.9 369.1C161.6 387.9 161.6 418.3 142.9 437C124.1 455.8 93.73 455.8 74.98 437V437zM437 437C418.3 455.8 387.9 455.8 369.1 437C350.4 418.3 350.4 387.9 369.1 369.1C387.9 350.4 418.3 350.4 437 369.1C455.8 387.9 455.8 418.3 437 437V437z'/%3E%3C/svg%3E");
}

@keyframes spin {
  0% {
    transform: rotate(0)translate(-50%, -50%);
  }

  100% {
    transform: rotate(360deg)translate(-50%, -50%);
  }
}

.portal {
  background: var(--bg);
  padding: var(--gap);
  gap: var(--gap);
  color: #ccc;
  border-radius: 2rem;
  flex-direction: column;
  display: flex;
}

@media (width <= 778px) {
  .portal {
    width: 100vw;
    height: 100vh;
    border-radius: 0;
    padding: 0;
  }
}

.portal h1 {
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  font-size: 1rem;
  display: flex;
}

.portal .image {
  width: 80vw;
  max-width: 768px;
  height: 80vh;
  aspect-ratio: 16 / 9;
  background-color: #444;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 1.25rem;
  transition: all .5s ease-in-out;
  display: block;
  position: relative;
  overflow: hidden;
}

@media (width <= 778px) {
  .portal .image {
    width: 100vw;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: 0;
  }
}

.portal .image.loading {
  opacity: .5;
}

.portal .image.loading:before {
  content: "";
  width: 100%;
  height: 100%;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  position: absolute;
  top: 0;
  left: 0;
}

.portal .image.loading .spin {
  display: block;
}

.portal .image:after {
  content: "";
  opacity: .5;
  width: 20%;
  aspect-ratio: 1 / 1;
  background-image: linear-gradient(#0000004d, #0009);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z'/%3E%3C/svg%3E");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.portal .image.has-image:after {
  display: none;
}

.portal .prompt-space {
  gap: var(--gap);
  flex-direction: row;
  display: flex;
}

@media (width <= 778px) {
  .portal .prompt-space {
    padding: 0 .5rem;
  }
}

.portal .prompt-space form {
  gap: var(--gap);
  flex: 1;
  grid-template: "model input buttons"
  / auto 1fr auto;
  display: grid;
}

@media (width <= 770px) {
  .portal .prompt-space form {
    grid-template: "model input"
                   "buttons buttons" min-content
                   / auto 1fr;
    gap: .5rem;
  }
}

.portal .prompt-space form.active .retry, .portal .prompt-space form.active .download {
  opacity: 1;
  cursor: pointer;
}

.portal .prompt-space .model, .portal .prompt-space .aspect {
  background-color: #fff0;
  border: 1px solid #ffffff80;
}

.portal .prompt-space .model:hover, .portal .prompt-space .aspect:hover {
  background-color: #ffffff1a;
}

.portal .prompt-space .model:before, .portal .prompt-space .aspect:before {
  background: #ffffff80;
}

.portal .prompt-space .model {
  grid-area: model;
}

.portal .prompt-space .model:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M261.5 35.1c-3.6-1.3-7.5-1.3-11 0L44.1 110.7 256 194l211.9-83.2L261.5 35.1zM32 385.7c0 6.7 4.2 12.7 10.5 15L240 473.1V222L32 140.3V385.7zm240 87.4l197.5-72.4c6.3-2.3 10.5-8.3 10.5-15V140.3L272 222v251zM239.5 5c10.7-3.9 22.4-3.9 33 0l208 76.3c18.9 6.9 31.5 24.9 31.5 45.1V385.7c0 20.1-12.6 38.1-31.5 45.1L272.5 507c-10.7 3.9-22.4 3.9-33 0l-208-76.3C12.6 423.8 0 405.8 0 385.7V126.4c0-20.1 12.6-38.1 31.5-45.1L239.5 5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M261.5 35.1c-3.6-1.3-7.5-1.3-11 0L44.1 110.7 256 194l211.9-83.2L261.5 35.1zM32 385.7c0 6.7 4.2 12.7 10.5 15L240 473.1V222L32 140.3V385.7zm240 87.4l197.5-72.4c6.3-2.3 10.5-8.3 10.5-15V140.3L272 222v251zM239.5 5c10.7-3.9 22.4-3.9 33 0l208 76.3c18.9 6.9 31.5 24.9 31.5 45.1V385.7c0 20.1-12.6 38.1-31.5 45.1L272.5 507c-10.7 3.9-22.4 3.9-33 0l-208-76.3C12.6 423.8 0 405.8 0 385.7V126.4c0-20.1 12.6-38.1 31.5-45.1L239.5 5z'/%3E%3C/svg%3E");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.portal .prompt-space .aspect:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 640 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M576 96c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32H576zM64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 640 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M576 96c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32H576zM64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64z'/%3E%3C/svg%3E");
}

.portal .prompt-space .aspect.square:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M384 64c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 448 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M384 64c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z'/%3E%3C/svg%3E");
}

.portal .prompt-space input {
  flex: 1;
  grid-area: input;
}

.portal .prompt-space input[type="submit"] {
  flex: 0;
}

.model.open .model-choices {
  display: block;
}

.model-choices {
  z-index: 10;
  background: #000;
  border: 1px solid #555;
  border-radius: .5rem;
  flex-direction: column;
  display: none;
  position: absolute;
  bottom: 0;
  left: calc(100% + .5rem);
  overflow: hidden;
}

.model-choices .item {
  white-space: nowrap;
  padding: .75rem 1rem;
}

.model-choices .item:hover {
  background: #333;
}

.model-choices .item.active {
  background: var(--hilite);
}

.actions {
  grid-area: "button";
  flex: 1;
  grid-area: buttons;
  grid-template-columns: 1fr 1fr 1fr;
  justify-content: flex-end;
  align-items: center;
  gap: .5rem;
  display: grid;
}

.actions .submit {
  order: 0;
}

.actions .retry {
  order: 1;
}

.actions .download {
  order: 2;
}

@media (width <= 770px) {
  .actions {
    max-height: 4rem;
    flex-direction: row;
    justify-content: center;
    margin-top: .5rem;
    display: flex;
  }

  .actions .submit {
    height: 5rem;
    order: 1;
  }

  .actions .retry {
    height: 3rem;
    order: 0;
  }

  .actions .download {
    height: 3rem;
    order: 2;
  }
}

input {
  color: var(--txt);
  background: #ffffff1a;
  border: none;
  border-radius: 2rem;
  padding: 1rem 1.5rem;
  font-size: 1rem;
}

.model, .aspect, .submit, .retry, .download {
  background: var(--btn);
  aspect-ratio: 1 / 1;
  height: 100%;
  cursor: pointer;
  border: none;
  border-radius: 100%;
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.model:before, .aspect:before, .submit:before, .retry:before, .download:before {
  content: "";
  width: 45%;
  height: 45%;
  background-color: #fff;
  display: inline-block;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-origin: content-box;
  mask-origin: content-box;
}

.submit {
  opacity: 1;
  cursor: pointer;
}

.submit:before {
  transform: translateX(.125em);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 384 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M384 256L0 32V480L384 256z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='1em' viewBox='0 0 384 512'%3E%3C!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M384 256L0 32V480L384 256z'/%3E%3C/svg%3E");
}

.download:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3C!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --%3E%3Cpath d='M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3C!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --%3E%3Cpath d='M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/%3E%3C/svg%3E");
}

.retry:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M447.5 224H456c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L397.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L311 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H447.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M447.5 224H456c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L397.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L311 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H447.5z'/%3E%3C/svg%3E");
}

.stats {
  gap: calc(var(--gap) * 2);
  padding: var(--gap);
  opacity: .5;
  flex-direction: row;
  font-size: .8rem;
  display: flex;
}

@media (width <= 770px) {
  .stats {
    display: none;
  }
}

.stats .stat-name {
  text-transform: uppercase;
  font-weight: bold;
}

.stats .stat {
  gap: calc(var(--gap) / 2);
  flex-direction: row;
  display: flex;
}

.vote-space {
  border: 1px solid var(--lines);
  visibility: hidden;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin: .25em 0;
  padding: .5rem;
  display: flex;
}

.vote-space.visible {
  visibility: visible;
}

.vote-space .vote {
  color: var(--txt);
  opacity: .5;
  cursor: pointer;
  border-radius: 100%;
}

.vote-space .vote:hover {
  opacity: 1;
}

.vote-space .vote:before {
  content: "";
  width: 3em;
  aspect-ratio: 1 / 1;
  background-color: var(--txt);
  display: block;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.vote-space .vote[data-vote="1"]:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E");
}

.vote-space .vote[data-vote="0"]:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z'/%3E%3C/svg%3E");
}

.vote-space .vote[data-vote="-1"]:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3C!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d='M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E");
}

.vote-space .vote.on:before {
  background-color: var(--btn-lite);
}

#mode {
  flex-direction: row;
  gap: 2px;
  display: flex;
}

#mode .mode {
  cursor: pointer;
  border: 1px solid #333;
  padding: .5em 1.5em;
  font-weight: normal;
}

#mode .mode.active {
  color: #fff;
  background: #333;
}

#board_editor {
  max-width: 800px;
  margin: 2rem auto 0;
}

#board_editor .panel_container {
  padding: var(--gap);
  border: 1px solid #333;
  padding-bottom: 0;
}

#board_editor .panel_container .panel_canvas {
  width: 100%;
  aspect-ratio: 16 / 9;
}

#board_editor .panel_container .panel_canvas .canvas {
  background: #fff;
}

#board_editor .panel_container .script {
  padding: var(--gap) 0 0;
  font-family: monospace;
  font-size: 1rem;
}

#board_editor .panel_container .script .line {
  margin-bottom: 1em;
}

#board_editor .panel_container .script .line[data-character]:before {
  content: attr(data-character) ": ";
  text-transform: uppercase;
  margin-right: 1rem;
  font-weight: bold;
}

#render {
  width: 800px;
  aspect-ratio: 16 / 9;
  background: #ccc 0 0 / contain no-repeat;
}

select {
  appearance: none;
  color: #aaa;
  background: #111;
  border: 1px solid #333;
  padding: .5em 1em;
  font-size: 1rem;
  position: relative;
}

.model-space {
  width: 30%;
  gap: var(--gap);
  flex-direction: row;
  align-items: center;
  display: flex;
  position: relative;
}

.model-space:before {
  content: "Model";
  text-transform: uppercase;
  font-size: .8em;
}

.model-space select {
  width: 100%;
}

.model-space:after {
  content: "▼";
  color: #aaa;
  pointer-events: none;
  padding: 0 .5em;
  position: absolute;
  top: .55em;
  bottom: 0;
  right: 0;
}

/*# sourceMappingURL=index.08963856.css.map */
