*,
::before,
::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
  border: 0;
}

html,
body {
  overscroll-behavior: none;
}

body {
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

button {
  -webkit-appearance: none;
  appearance: none;
  background-color: transparent;
  cursor: pointer;
  font-family: inherit;
}

.Ripple {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  padding: 32px 16px;
  background: #F7F4EE;
  color: #2A2622;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", system-ui, sans-serif;
}
.Ripple-Status {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  max-width: 420px;
  margin-bottom: 16px;
  padding: 12px 16px;
  background: #FFFFFF;
  border: 1px solid #E8E1D5;
  border-radius: 2px;
}
.Ripple-Title {
  font-size: 16px;
  font-weight: 600;
}
.Ripple-Moves {
  font-size: 14px;
  font-weight: 600;
}
.Ripple-Selected {
  width: 24px;
  height: 24px;
  border-radius: 2px;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
}
.Ripple-Result {
  margin-left: auto;
  font-size: 14px;
  font-weight: 700;
}
.Ripple-Result[data-state=win] {
  color: #1E9E78;
}
.Ripple-Result[data-state=lose] {
  color: #D75A33;
}
.Ripple-Canvas {
  display: block;
  width: 100%;
  max-width: 420px;
  aspect-ratio: 1/1;
  background: #FFFFFF;
  border: 1px solid #E8E1D5;
  border-radius: 2px;
  touch-action: none;
  cursor: pointer;
}
.Ripple-Palette {
  display: flex;
  gap: 8px;
  width: 100%;
  max-width: 420px;
  margin-top: 16px;
}
.Ripple-Swatch {
  flex: 1;
  aspect-ratio: 1/1;
  border: 2px solid transparent;
  border-radius: 2px;
  cursor: pointer;
}
.Ripple-Swatch[data-hidden] {
  display: none;
}
.Ripple-Swatch[data-selected] {
  border-color: #2A2622;
  box-shadow: inset 0 0 0 3px #FFFFFF;
}
.Ripple-Controls {
  display: flex;
  width: 100%;
  max-width: 420px;
  margin-top: 20px;
}
.Ripple-Button {
  padding: 10px 18px;
  background: #2A2622;
  color: #F7F4EE;
  border: none;
  border-radius: 2px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.Ripple-Hint {
  width: 100%;
  max-width: 420px;
  margin-top: 18px;
  font-size: 13px;
  line-height: 1.7;
  color: #9A8E7C;
}