* { box-sizing: border-box; }

body {
  margin: 0;
  background: #f5f6f8;
  font-family: Arial, Helvetica, sans-serif;
}

main {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 24px;
}

#offer-button {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  width: min(520px, 100%);
  min-height: 64px;
  padding: 28px 34px;
  border: 1px solid rgb(255 255 255 / 38%);
  border-radius: 28px;
  background: linear-gradient(125deg, #2563eb, #5146dc 55%, #3671e8);
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 25%), 0 14px 32px rgb(61 76 217 / 24%);
  animation: gentle-float 4.5s ease-in-out infinite;
  transition: scale 180ms ease, box-shadow 220ms ease;
  -webkit-tap-highlight-color: transparent;
}

#offer-button::before {
  content: '';
  position: absolute;
  inset: -8px;
  z-index: -1;
  border-radius: 35px;
  border: 1px solid rgb(86 102 226 / 15%);
  box-shadow: 0 0 30px rgb(79 103 237 / 12%);
  pointer-events: none;
  animation: soft-glow 4.5s ease-in-out infinite;
}

@media (hover: hover) {
  #offer-button:hover {
    animation-play-state: paused;
    scale: 1.025;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 30%), 0 20px 42px rgb(61 76 217 / 32%);
  }
}

#offer-button:active { scale: .975; animation-play-state: paused; }
#offer-button:focus-visible { outline: 3px solid #172554; outline-offset: 5px; }

@keyframes gentle-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes soft-glow {
  0%, 100% { opacity: .45; }
  50% { opacity: 1; }
}

@media (max-width: 480px) {
  #offer-button { padding: 24px; font-size: 18px; border-radius: 24px; }
  #offer-button::before { border-radius: 31px; }
}

@media (prefers-reduced-motion: reduce) {
  #offer-button, #offer-button::before { animation: none; transition: none; }
  #offer-button:hover, #offer-button:active { scale: 1; }
}
