body {
  margin: 0;
  padding: 0;
  color: rgba(255, 255, 255, 0.87);
  background-color: #fff;
}

@media (prefers-color-scheme: dark) {
  body {
    background-color: #28262C;
  }
}

canvas {
  cursor: none !important;
}

#app {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 48px;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  #app {
    padding: 0;
  }
}

/* Portrait orientation overlay */
#rotate-prompt {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #FBF7F4;
  justify-content: center;
  align-items: center;
}

#rotate-inner {
  text-align: center;
  animation: rotate-wobble 2s ease-in-out infinite;
}

#rotate-inner svg {
  margin-bottom: 16px;
}

#rotate-inner p {
  font-family: sans-serif;
  font-size: 1.2rem;
  color: #7c5a3c;
  margin: 0;
  padding: 0 24px;
}

@keyframes rotate-wobble {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(90deg); }
  50%, 75% { transform: rotate(90deg); }
}

@media (orientation: portrait) and (max-width: 1024px) {
  #rotate-prompt {
    display: flex;
  }
  #app {
    display: none;
  }
}
