:root{color-scheme:light dark;--bg:var(--tg-theme-bg-color,#0e1420);--card:var(--tg-theme-secondary-bg-color,#161f30);--text:var(--tg-theme-text-color,#f4f7fb);--muted:var(--tg-theme-hint-color,#93a1b5);--accent:var(--tg-theme-button-color,#3b82f6);--accent-text:var(--tg-theme-button-text-color,#ffffff);--border:rgba(255,255,255,.10);--success:#22c55e;--danger:#ef4444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif} *{box-sizing:border-box} html,body{min-height:100%;margin:0} body{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));color:var(--text);background:radial-gradient(120% 90% at 50% -10%,rgba(59,130,246,.20),transparent 60%),var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility} .card{width:100%;max-width:360px;padding:30px 22px 24px;text-align:center;border:1px solid var(--border);border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02)),var(--card);box-shadow:0 20px 60px rgba(0,0,0,.35);animation:rise .5s cubic-bezier(.22,1,.36,1) both} .icon{width:62px;height:62px;margin:2px auto 18px;display:grid;place-items:center;color:var(--accent-text);border-radius:20px;background:linear-gradient(140deg,var(--accent),#0ea5e9);box-shadow:0 12px 30px rgba(59,130,246,.32)} .icon svg{width:32px;height:32px;display:block} h1{margin:0 0 6px;font-size:21px;font-weight:700;line-height:1.2;letter-spacing:-.02em} .subtitle{margin:0 auto;max-width:30ch;color:var(--muted);font-size:14px;line-height:1.4} .captcha-box{display:flex;justify-content:center;align-items:center;width:100%;min-height:86px;margin-top:22px;padding:8px 0;overflow:hidden} .captcha-scale{width:304px;max-width:304px;transform-origin:top center} .status{margin:18px 0 0;min-height:1.2em;font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--muted);transition:color .25s ease} .status.ok{color:var(--success)} .status.error{color:var(--danger)} @keyframes rise{from{opacity:0;transform:translateY(12px) scale(.985)} to{opacity:1;transform:none}} @media (max-width:340px){.card{padding-left:14px;padding-right:14px} .captcha-scale{transform:scale(.88);height:69px} .captcha-box{min-height:80px}} @media (min-width:341px) and (max-width:360px){.captcha-scale{transform:scale(.95);height:74px} .captcha-box{min-height:84px}} @media (prefers-reduced-motion:reduce){.card{animation:none} .status{transition:none}}