body {
  font-family: InterVariable, system-ui;
  display: flex;
}
.copyright {
  display: block;
  position: fixed;
  bottom: calc(env(safe-area-inset-bottom) + 0.25rem);
  right: calc(env(safe-area-inset-right) + 0.25rem);
  font-size: 0.625rem;
  a {
    color: inherit;

    &:not(:hover) {
      text-decoration: none;
    }
  }
}
.lobby-scene,
.elevator-scene {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  &.lobby-scene {
    display: grid;
    grid-template-rows: 1fr auto 1fr;
  }

  .ceiling {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: end;
  }

  .company-name {
    font-size: 0.875rem;
    font-weight: 300;
    text-transform: uppercase;
  }

  .floor-number {
    font-size: 3rem;
    font-weight: 300;
    color: hsl(0, 0%, 50%);
  }

  .floor {
    background-color: hsl(0, 0%, 90%);
  }

  .elevator {
    .bg {
      width: 9rem;
      height: 13rem;
      .elevator-scene & {
        width: 11rem;
        height: 16rem;
      }
      background-color: hsl(0, 0%, 50%);
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      overflow: hidden;
      border-radius: 0.5rem 0.5rem 0 0;

      .opening &,
      .closing &,
      .waiting & {
        cursor: pointer;
      }

      .left-door,
      .right-door {
        width: calc(50% - 0.5px);
        height: 100%;
        background-color: hsl(0, 0%, 80%);
      }
    }
  }
}
.elevator-scene {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: hsl(0, 0%, 95%);
  display: flex;
  align-items: center;
  justify-content: center;

  .wrapper {
    width: 17rem;
    height: 25rem;
    border-radius: 0rem;
    overflow: hidden;
    border: 0.1875rem solid hsl(0, 0%, 0%);
    background-color: hsl(0, 0%, 100%);
    display: grid;
    grid-template-rows: 1fr auto 1fr;
  }

  .elevator {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.25rem;
  }
  .elevator-left {
    display: flex;
    flex-direction: column;
  }
  .elevator-display {
    width: 3rem;
    border-radius: 0.25rem;
    margin: 0 auto;
    margin-bottom: 0.25rem;
    background-color: hsl(0, 0%, 0%);
    color: hsl(0, 0%, 100%);
    text-align: right;
    font-size: 1.25rem;
    font-weight: 300;
    padding: 0.25rem;
    font-variant-numeric: tabular-nums;
  }
  .elevator-buttons {
    background-color: hsl(0, 0%, 80%);
    border-radius: 0.25rem;
    padding: 0.5rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.25rem;

    .elevator-button {
      background-color: hsl(0, 0%, 50%);
      color: hsl(0, 0%, 0%);
      width: 1.25rem;
      height: 1.25rem;
      border-radius: 50%;
      font-size: 0.75rem;
      display: flex;
      justify-content: center;
      align-items: center;

      &:not(.selected) {
        cursor: pointer;
      }

      &.selected {
        background-color: hsl(0, 0%, 100%);
        color: hsl(0, 0%, 0%);
      }
    }
  }
}
.lobby-scene {
  .elevators {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    align-items: center;
    justify-content: center;
  }
  .buttons {
    background-color: hsl(0, 0%, 80%);
    border-radius: 0.25rem;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .button-up,
  .button-down {
    background-color: hsl(0, 0%, 50%);
    color: hsl(0, 0%, 0%);
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    font-size: 0.75rem;
    display: flex;
    justify-content: center;
    align-items: center;

    &:not(.selected) {
      cursor: pointer;
    }

    &.selected {
      background-color: hsl(0, 0%, 100%);
      color: hsl(0, 0%, 0%);
    }
  }
  .elevator {
    .display {
      width: 3rem;
      border-radius: 0.25rem;
      margin: 0 auto;
      margin-bottom: 0.25rem;
      background-color: hsl(0, 0%, 0%);
      color: hsl(0, 0%, 100%);
      text-align: right;
      font-size: 1.25rem;
      font-weight: 300;
      padding: 0.25rem;
      font-variant-numeric: tabular-nums;
    }
  }
}
