html, body {
  height: 100%;
  margin: 0;
  background: #ffffff;
  color: #111111;
  font-family: Arial, Helvetica, sans-serif;
  overflow: hidden;
}

.page {
  display: flex;
  flex-direction: column;
  width: 100vw;
  height: 100vh;
}

.topline {
  flex: 0 0 auto;
  text-align: center;
  font-size: min(4vw, 2.2rem);
  font-weight: 700;
  padding: 1.2rem 1rem 0.6rem 1rem;
  box-sizing: border-box;
}

.wrap {
  display: flex;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
}

.panel {
  width: 50%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 2rem;
}

.countdown {
  font-size: min(24vw, 14rem);
  font-weight: 700;
  line-height: 1;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.countdown.hide {
  opacity: 0;
  transform: scale(0.8);
}

.qr-stage {
  transition: opacity 0.9s ease, transform 0.9s ease;
  transform-origin: center center;
}

.qrcode canvas,
.qrcode img {
  display: block;
  width: min(38vw, 500px);
  height: auto;
  max-width: 100%;
  max-height: 80vh;
}

.vanish-shrink {
  opacity: 0;
  transform: scale(0.1) rotate(-8deg);
}

.vanish-fade {
  opacity: 0;
  transform: scale(0.9);
}

.thanks {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: min(14vw, 8rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  background: #ffffff;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 0.8s ease, transform 0.8s ease;
  padding: 2rem;
  box-sizing: border-box;
}

.thanks.show {
  opacity: 1;
  transform: scale(1);
}

.hidden {
  display: none;
}
