:root{--purple:#7c3aed;--purple-lift:#8b52f5;--purple-light:#a78bfa;--purple-deep:#5b21b6;--bg:#f4f0ff;--bg2:#ece5ff;--surface:#ffffff;--ink:#241053;--muted:#7b6ba6;--line:#e7ddff;--clay:0 18px 40px -14px rgba(124,58,237,.45),inset 0 3px 6px rgba(255,255,255,.9),inset 0 -10px 20px -6px rgba(91,33,182,.18);--clay-btn:0 12px 24px -8px rgba(124,58,237,.6),inset 0 3px 4px rgba(255,255,255,.55),inset 0 -8px 14px -4px rgba(76,29,149,.5)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:radial-gradient(120% 90% at 50% -20%,#fff,transparent 60%),radial-gradient(90% 70% at 15% 10%,rgba(167,139,250,.35),transparent 55%),radial-gradient(90% 70% at 90% 20%,rgba(124,58,237,.2),transparent 55%),var(--bg);min-height:100vh;color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Hiragino Maru Gothic ProN,Nunito,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}.wrap{max-width:520px;margin:0 auto;padding:32px 20px;min-height:100vh;display:flex;flex-direction:column}.center{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:22px}.logo{width:210px;max-width:70%;filter:drop-shadow(0 22px 30px rgba(124,58,237,.4));-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:bob 5s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}h1{font-size:34px;font-weight:800;margin:0;letter-spacing:-.01em;text-wrap:balance}.lead{color:var(--muted);font-size:17px;margin:0;max-width:34ch}.count{font-size:14px;color:var(--purple-deep);font-weight:700;background:#fff;border:1px solid var(--line);padding:7px 15px;border-radius:999px;box-shadow:0 6px 16px -8px rgba(124,58,237,.5)}.card{background:var(--surface);border-radius:30px;padding:26px;width:100%;box-shadow:var(--clay);border:1px solid #fff}.btn{border:none;cursor:pointer;font-family:inherit;font-weight:800;font-size:18px;color:#fff;background:linear-gradient(180deg,var(--purple-lift),var(--purple));border-radius:22px;padding:18px 22px;width:100%;box-shadow:var(--clay-btn);transition:transform .12s ease,filter .12s ease}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(3px) scale(.99);box-shadow:0 6px 14px -8px rgba(124,58,237,.6),inset 0 2px 4px rgba(255,255,255,.4),inset 0 -6px 12px -4px rgba(76,29,149,.5)}.btn[disabled]{opacity:.55;cursor:not-allowed;filter:grayscale(.15)}.btn.ghost{background:#fff;box-shadow:0 10px 24px -12px rgba(124,58,237,.5),inset 0 0 0 2px var(--line)}.addr,.btn.ghost{color:var(--purple-deep)}.addr{display:flex;align-items:center;gap:10px;justify-content:center;background:var(--bg2);border-radius:16px;padding:12px 16px;font-size:15px;font-weight:700;margin-bottom:16px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;word-break:break-all}.dot{width:10px;height:10px;border-radius:50%;background:#38d39f;box-shadow:0 0 0 4px rgba(56,211,159,.2);flex:none}.ok{font-size:56px;line-height:1}.err{color:#c0392b;font-size:14px;font-weight:700;margin:12px 0 0}.hint{color:var(--muted);font-size:13px;margin-top:14px}a{color:var(--purple);font-weight:700;text-decoration:none}footer{display:flex;flex-direction:column;gap:10px;color:var(--muted);font-size:13px;padding-top:20px}.xbtn,footer{align-items:center}.xbtn{display:inline-flex;justify-content:center;width:54px;height:54px;border-radius:50%;color:#fff;background:linear-gradient(180deg,var(--purple-lift),var(--purple));box-shadow:var(--clay-btn);transition:transform .12s ease,filter .12s ease}.xbtn:hover{filter:brightness(1.06)}.xbtn:active{transform:translateY(3px) scale(.97)}.xbtn:focus-visible{outline:3px solid var(--purple-light);outline-offset:3px}.spin{display:inline-block;width:18px;height:18px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-3px;margin-right:8px}@keyframes sp{to{transform:rotate(1turn)}}button:focus-visible{outline:3px solid var(--purple-light);outline-offset:3px}@media(prefers-reduced-motion:reduce){.logo{animation:none}.spin{animation-duration:0s}}