:root {
  --navy: #07111f;
  --blue: #2563eb;
  --indigo: #4f46e5;
  --purple: #7c3aed;
  --ink: #0f172a;
  --muted: #526071;
  --line: #e5e9f2;
  --soft: #f4f6fc;
  --ok: #16a34a;
  --err: #dc2626;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  font-family: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, "Noto Sans Bengali", Roboto, sans-serif;
  color: var(--ink);
  background: linear-gradient(135deg, #1e3a8a 0%, #4f46e5 48%, #7c3aed 100%);
  background-size: 200% 200%;
  animation: bgShift 18s ease-in-out infinite;
  overflow-x: hidden;
}

/* soft floating glow shapes behind the card */
.glow { position: fixed; border-radius: 50%; filter: blur(70px); opacity: .45; pointer-events: none; z-index: 0; }
.glow-a { width: 320px; height: 320px; background: #38bdf8; top: -90px; left: -90px; animation: drift 14s ease-in-out infinite; }
.glow-b { width: 360px; height: 360px; background: #c084fc; bottom: -120px; right: -100px; animation: drift 17s ease-in-out infinite reverse; }

.card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 460px;
  background: #fff;
  border-radius: 28px;
  padding: 34px 28px 26px;
  box-shadow: 0 30px 70px -20px rgba(7, 17, 31, .55);
  animation: cardIn .8s cubic-bezier(.2, .8, .2, 1) both;
}

.bell {
  width: 76px; height: 76px;
  margin: 0 auto 18px;
  border-radius: 24px;
  display: grid; place-items: center;
  font-size: 38px;
  background: linear-gradient(135deg, var(--blue), var(--purple));
  box-shadow: 0 14px 30px -10px rgba(79, 70, 229, .7);
}
.bell span { display: inline-block; transform-origin: 50% 8%; animation: ring 3.6s ease-in-out 1.2s infinite; }

h1 {
  text-align: center;
  font-size: clamp(1.55rem, 5.6vw, 1.95rem);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -.02em;
  background: linear-gradient(90deg, var(--blue), var(--purple));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sub {
  margin: 12px auto 24px;
  max-width: 38ch;
  text-align: center;
  font-size: .97rem;
  line-height: 1.6;
  color: var(--muted);
}

.features { list-style: none; display: grid; gap: 10px; margin-bottom: 26px; }
.features li {
  display: flex; align-items: center; gap: 14px;
  padding: 13px 14px;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 16px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  animation: itemIn .6s ease both;
}
.features li:nth-child(1) { animation-delay: .45s; }
.features li:nth-child(2) { animation-delay: .6s; }
.features li:nth-child(3) { animation-delay: .75s; }
.features li:nth-child(4) { animation-delay: .9s; }
.features li:hover { transform: translateX(6px); border-color: #c7d2fe; box-shadow: 0 10px 22px -14px rgba(79, 70, 229, .8); }
.features .ico {
  flex: none; width: 44px; height: 44px; border-radius: 13px;
  display: grid; place-items: center; font-size: 22px; background: #fff;
  box-shadow: 0 4px 10px -4px rgba(15, 23, 42, .25);
  transition: transform .3s ease;
}
.features li:hover .ico { transform: scale(1.12) rotate(-6deg); }
.features strong { display: block; font-size: .98rem; font-weight: 700; }
.features small { display: block; margin-top: 2px; font-size: .82rem; color: var(--muted); line-height: 1.4; }

.cta {
  position: relative;
  width: 100%;
  min-height: 56px;
  padding: 0 22px;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  border: 0; border-radius: 16px; cursor: pointer;
  font: inherit; font-size: 1.05rem; font-weight: 700; color: #fff;
  background: linear-gradient(90deg, var(--blue), var(--purple));
  box-shadow: 0 14px 28px -12px rgba(79, 70, 229, .9);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease, background .3s ease;
  animation: pulse 2.4s ease-out 1.4s infinite;
  -webkit-tap-highlight-color: transparent;
}
.cta:hover { transform: translateY(-2px); filter: brightness(1.07); box-shadow: 0 18px 32px -12px rgba(79, 70, 229, 1); }
.cta:active { transform: translateY(1px) scale(.98); }
.cta:focus-visible { outline: 3px solid #a5b4fc; outline-offset: 3px; }
.cta .cta-ico { display: inline-block; transition: transform .3s ease; }
.cta:hover .cta-ico { animation: wiggle .6s ease; }

.cta.loading { animation: none; cursor: progress; }
.cta.loading .cta-ico { width: 20px; height: 20px; border: 3px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; font-size: 0; animation: spin .8s linear infinite; }
.cta.success { background: linear-gradient(90deg, #16a34a, #22c55e); box-shadow: 0 14px 28px -12px rgba(22, 163, 74, .9); animation: pop .5s ease; cursor: default; }
.cta.error { background: linear-gradient(90deg, #dc2626, #f43f5e); box-shadow: 0 14px 28px -12px rgba(220, 38, 38, .8); animation: shake .5s ease; }
.cta:disabled { cursor: default; }

.status { min-height: 24px; margin-top: 14px; text-align: center; font-size: .9rem; line-height: 1.5; color: var(--muted); transition: opacity .3s ease; }
.status.ok { color: var(--ok); font-weight: 600; }
.status.bad { color: var(--err); font-weight: 600; }

.back {
  display: block; width: fit-content; margin: 18px auto 0; padding: 6px 10px;
  font-size: .9rem; font-weight: 600; color: var(--indigo); text-decoration: none; border-radius: 10px;
  transition: background .2s ease, transform .2s ease;
}
.back:hover { background: #eef0ff; transform: translateX(-4px); }
.back:focus-visible { outline: 3px solid #a5b4fc; }

.note { margin-top: 10px; text-align: center; font-size: .76rem; color: #8592a3; }

@keyframes bgShift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes drift { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(40px, 30px); } }
@keyframes cardIn { from { opacity: 0; transform: translateY(28px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes itemIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes ring { 0%, 55%, 100% { transform: rotate(0); } 60% { transform: rotate(14deg); } 66% { transform: rotate(-12deg); } 72% { transform: rotate(9deg); } 78% { transform: rotate(-6deg); } 84% { transform: rotate(3deg); } }
@keyframes pulse { 0% { box-shadow: 0 14px 28px -12px rgba(79,70,229,.9), 0 0 0 0 rgba(124,58,237,.55); } 70% { box-shadow: 0 14px 28px -12px rgba(79,70,229,.9), 0 0 0 16px rgba(124,58,237,0); } 100% { box-shadow: 0 14px 28px -12px rgba(79,70,229,.9), 0 0 0 0 rgba(124,58,237,0); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pop { 0% { transform: scale(.94); } 60% { transform: scale(1.04); } 100% { transform: scale(1); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 20%, 60% { transform: translateX(-7px); } 40%, 80% { transform: translateX(7px); } }
@keyframes wiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-16deg); } 75% { transform: rotate(16deg); } }

@media (max-width: 380px) {
  .card { padding: 28px 18px 22px; border-radius: 24px; }
  .features li { padding: 11px; gap: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
