.unlock{--ground:#f1f4f9;--ink:#131722;--ink-soft:#3c4454;--muted:#828b9e;--a1:#4c8dff;--btn-bg:#e94a4a;--btn-fg:#fff;--green:#1f8a55;--red:#d93b36;--glow:rgba(76,141,255,.16);position:fixed;inset:0;z-index:1000;min-height:100dvh;display:grid;grid-template-rows:1fr auto;grid-gap:18px;gap:18px;padding:30px 24px calc(22px + env(safe-area-inset-bottom));text-align:center;color:var(--ink);background:radial-gradient(120% 58% at 50% 26%,var(--glow),transparent 62%),var(--ground);box-sizing:border-box}@media (prefers-color-scheme:dark){.unlock{--ground:#0d1017;--ink:#eceff5;--ink-soft:#c2c8d5;--muted:#868fa2;--a1:#ff8e82;--green:#4fd08a;--red:#ff7b73;--glow:hsla(6,100%,75%,.14)}}html[data-theme=dark] .unlock{--ground:#0d1017;--ink:#eceff5;--ink-soft:#c2c8d5;--muted:#868fa2;--a1:#ff8e82;--green:#4fd08a;--red:#ff7b73;--glow:hsla(6,100%,75%,.14)}.unlock *,.unlock :after,.unlock :before{box-sizing:border-box}.unlock .mid{display:flex;flex-direction:column;align-items:center;justify-content:center}.unlock h2{margin:0;font-size:24px;font-weight:800;letter-spacing:-.025em}.unlock .who{margin:6px 0 0;font-size:15px;font-weight:600;color:var(--muted)}.unlock .tapbtn{position:relative;margin-top:32px;width:172px;height:172px;border-radius:50%;border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:center;font:inherit;color:inherit}.unlock .tapbtn .ring{position:absolute;inset:0;border-radius:50%;background:color-mix(in srgb,var(--sc,var(--a1)) 12%,transparent);transition:background .25s ease}.unlock .tapbtn .ring:after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--sc,var(--a1)) 30%,transparent);transition:border-color .25s ease}.unlock .tapbtn .halo{position:absolute;inset:-8px;border-radius:50%;border:2px solid color-mix(in srgb,var(--sc,var(--a1)) 20%,transparent);opacity:0}.unlock .tapbtn svg{position:relative;width:80px;height:80px;stroke:var(--sc,var(--a1));fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s ease}.unlock .tapbtn .scan{position:absolute;left:26%;right:26%;top:32%;height:2px;border-radius:2px;opacity:0;background:linear-gradient(90deg,transparent,var(--a1),transparent)}.unlock .tapbtn:focus-visible{outline:2px solid var(--a1);outline-offset:8px}.unlock .state{margin:24px 0 0;min-height:20px;max-width:30ch;font-size:13px;font-weight:700;line-height:1.45;color:var(--muted)}.unlock[data-state=verifying] .scan{animation:uk-sweep 1.5s ease-in-out infinite}.unlock[data-state=verifying] .halo{opacity:1;animation:uk-pulse 1.5s ease-out infinite}.unlock[data-state=verifying] .btn{display:none}.unlock[data-state=success]{--sc:var(--green)}.unlock[data-state=success] .state{color:var(--green)}.unlock[data-state=success] .link.pass{display:none}.unlock[data-state=failed]{--sc:var(--red)}.unlock[data-state=failed] .state{color:var(--red)}.unlock[data-state=nobio]{--sc:var(--muted)}.unlock[data-state=nobio] .link.pass{display:none}@keyframes uk-sweep{0%{opacity:0;transform:translateY(-22px)}12%{opacity:.9}88%{opacity:.9}to{opacity:0;transform:translateY(22px)}}@keyframes uk-pulse{0%{transform:scale(1);opacity:.85}to{transform:scale(1.09);opacity:0}}.unlock .dock{display:flex;flex-direction:column;align-items:center;gap:12px}.unlock .btn{width:100%;max-width:284px;border:0;border-radius:14px;font-size:15px;font-weight:800;padding:15px 20px;background:var(--btn-bg);color:var(--btn-fg)}.unlock .btn,.unlock .link{cursor:pointer;font-family:inherit}.unlock .link{background:none;border:0;padding:5px;font-size:13.5px;font-weight:700;color:var(--ink-soft)}.unlock .link.quiet{color:var(--muted);font-weight:600;font-size:13px}.unlock .ver{margin:0;font-family:ui-monospace,JetBrains Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--muted)}@media (prefers-reduced-motion:reduce){.unlock .tapbtn .halo,.unlock .tapbtn .scan{animation:none;opacity:0}}