:root {
  --selected: #121212;
  --unselected: #52525c;
  --stage: #f6f6f7;
  --motion-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-width: 100%;
  min-height: 100%;
}

body {
  margin: 0;
  background: var(--stage);
}

.preview-stage {
  display: grid;
  min-height: 100vh;
  place-items: center;
}

.bottom-navigation {
  position: relative;
  width: 356px;
  height: 63px;
  overflow: visible;
  background: #ffffff;
}

.navigation-visual {
  position: relative;
  width: 356px;
  height: 63px;
  pointer-events: none;
}

.navigation-visual > img,
.navigation-visual > svg {
  display: block;
  width: 356px;
  height: 63px;
}

.navigation-tabs {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.tab {
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

.tab-label-art {
  color: var(--unselected);
  transition: color 160ms ease;
}

.tab-label-art.is-selected {
  color: var(--selected);
}

.icon-layer {
  position: absolute;
  inset: 0;
}

.tab-icon-art {
  position: absolute;
  top: 13px;
  left: calc(34.5px + var(--tab-index) * 89px);
  width: 20px;
  height: 20px;
  transform: scale(1);
  transform-origin: center;
  will-change: transform;
}

.tab-icon-art img {
  position: absolute;
  inset: 0;
  display: block;
  width: 20px;
  height: 20px;
  transition: opacity 150ms ease;
}

.icon-filled {
  opacity: 0;
}

.icon-outline {
  opacity: 1;
}

.tab-icon-art.is-selected {
  transform: scale(1.1);
}

.tab-icon-art.is-selected .icon-filled {
  opacity: 1;
}

.tab-icon-art.is-selected .icon-outline {
  opacity: 0;
}

.tab-icon-art.is-popping {
  animation: icon-pop 260ms var(--motion-emphasized) both;
}

@keyframes icon-pop {
  0% {
    transform: scale(0.96);
  }

  62% {
    transform: scale(1.16);
  }

  100% {
    transform: scale(1.1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tab-label-art,
  .tab-icon-art img {
    transition-duration: 1ms;
  }

  .tab-icon-art.is-popping {
    animation: none;
    transform: scale(1.1);
  }
}
