:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:#fff}#root{max-width:100%;margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh;width:100%}.header{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;text-align:center;border-bottom:1px solid rgba(255,255,255,.2)}.logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.logo-icon{font-size:32px}.logo-text{font-size:24px;font-weight:700;letter-spacing:-.5px}.subtitle{font-size:14px;opacity:.9;font-weight:500}.content{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}.footer{background:#0003;padding:20px;text-align:center;font-size:13px;line-height:1.6}.footer .small{font-size:11px;opacity:.8;margin-top:4px}.scanner-container{width:100%;max-width:500px;margin:0 auto}.scanner-frame{position:relative;width:100%;aspect-ratio:4/3;background:#000;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #0000004d}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#0000004d}.scanner-box{position:relative;width:250px;height:250px;border:2px solid rgba(255,255,255,.5);border-radius:12px}.corner{position:absolute;width:20px;height:20px;border:3px solid #fff}.corner.top-left{top:-2px;left:-2px;border-right:none;border-bottom:none;border-radius:12px 0 0}.corner.top-right{top:-2px;right:-2px;border-left:none;border-bottom:none;border-radius:0 12px 0 0}.corner.bottom-left{bottom:-2px;left:-2px;border-right:none;border-top:none;border-radius:0 0 0 12px}.corner.bottom-right{bottom:-2px;right:-2px;border-left:none;border-top:none;border-radius:0 0 12px}.scan-line{position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);animation:scan 2s linear infinite}@keyframes scan{0%{top:0}to{top:100%}}.scanner-instructions{margin-top:30px;text-align:center}.scanner-instructions h3{font-size:24px;margin-bottom:12px}.scanner-instructions p{font-size:16px;opacity:.9;line-height:1.5}.scanner-status{text-align:center;padding:40px 20px}.scanner-status .icon{font-size:64px;margin-bottom:20px}.scanner-status h3{font-size:24px;margin-bottom:12px}.scanner-status p{font-size:16px;opacity:.9;line-height:1.5;max-width:300px;margin:0 auto}.biometric-container{width:100%;max-width:400px;margin:0 auto}.biometric-card{background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:40px 30px;box-shadow:0 20px 60px #0000004d;border:1px solid rgba(255,255,255,.2)}.biometric-icon{display:flex;justify-content:center;margin-bottom:30px}.icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.icon-wrapper.pulse{animation:pulse 2s ease-in-out infinite}.icon-wrapper.scanning{animation:pulse 1s ease-in-out infinite}.icon-wrapper.success{animation:successPop .5s ease-out}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@keyframes successPop{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.scan-animation{position:absolute;width:100px;height:100px;border:3px solid rgba(255,255,255,.5);border-radius:50%;animation:scanPulse 1.5s ease-out infinite}@keyframes scanPulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2);opacity:0}}.biometric-status{text-align:center;margin-bottom:30px}.biometric-status h2{font-size:28px;margin-bottom:12px;font-weight:700}.biometric-status p{font-size:16px;opacity:.9;line-height:1.5}.progress-container{width:100%;height:8px;background:#fff3;border-radius:4px;overflow:hidden;margin:20px 0 10px}.progress-bar{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .3s ease}.progress-text{font-size:14px;font-weight:600;opacity:.8;margin-top:8px}.privacy-notice{display:flex;gap:12px;align-items:flex-start;background:#0003;padding:16px;border-radius:12px;margin-top:20px}.privacy-notice .lock-icon{font-size:20px;flex-shrink:0}.privacy-notice p{font-size:13px;line-height:1.5;opacity:.9;text-align:left;margin:0}.status-card{background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:50px 30px;text-align:center;max-width:400px;width:100%;border:1px solid rgba(255,255,255,.2)}.status-card.success{border-color:#4cd96480}.status-card.error{border-color:#ff453a80}.status-icon{font-size:64px;margin-bottom:24px;line-height:1}.status-card h2{font-size:28px;margin-bottom:12px;font-weight:700}.status-card p{font-size:16px;opacity:.9;line-height:1.5;margin-bottom:12px}.status-card .subtext{font-size:14px;opacity:.7;margin-top:20px}.btn-primary,.btn-secondary{padding:14px 28px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:24px;min-width:160px}.btn-primary{background:#fff;color:#667eea}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0003}.btn-secondary{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.btn-secondary:hover{background:#ffffff4d}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
