*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Nunito',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:#f1f5f9;color:#0f172a}

.bg-card{position:fixed;inset:0;margin:auto;width:min(480px,92vw);height:380px;background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.08);display:flex;flex-direction:column;align-items:center;padding:40px 32px;gap:36px;filter:blur(6px)}
.bg-icon{width:84px;height:84px;border-radius:50%;background:#fcd3e8;color:#e0218a;display:flex;align-items:center;justify-content:center}
.bg-btn{width:100%;height:56px;border-radius:10px;background:#b3125f}

.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:20px;animation:fade .25s ease}
.modal{width:min(525px,100%);background:#fff;border-radius:14px;padding:44px 40px 40px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.3);animation:pop .3s ease}
.icon{width:80px;height:80px;margin:0 auto 24px;border-radius:50%;background:#ffe6f3;color:#ff2d9a;display:flex;align-items:center;justify-content:center}
h2{font-size:26px;font-weight:800;margin-bottom:14px;color:#0b1220}
p{font-size:17px;line-height:1.6;color:#6b7280;margin:0 auto 32px;max-width:430px}
button{width:100%;padding:18px;border:0;border-radius:8px;background:#ff2d9a;color:#fff;font:700 18px 'Nunito',system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 14px rgba(255,45,154,.35);transition:filter .15s,transform .05s}
button:hover{filter:brightness(1.08)}
button:active{transform:scale(.99)}
button:disabled{opacity:.7;cursor:wait}

@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:480px){.modal{padding:32px 22px}h2{font-size:22px}p{font-size:15px}}

.hidden{display:none}
.modal#etapa2{text-align:left}
.modal#etapa2 .icon{margin:0 auto 22px}
.modal#etapa2 h2{text-align:center;margin-bottom:22px}
.pergunta{background:#f5f7fa;border:2px solid #e2e6ec;border-radius:10px;padding:26px 16px;text-align:center;font-size:22px;font-weight:800;margin-bottom:26px}
.label{display:block;font-size:15px;font-weight:600;margin-bottom:10px;color:#0b1220}
input{width:100%;padding:18px 20px;font:400 18px 'Nunito',system-ui,sans-serif;border:2px solid #d5dbe3;border-radius:10px;outline:none;margin-bottom:22px;transition:border-color .15s,box-shadow .15s}
input:focus{border-color:#ff2d9a;box-shadow:0 0 0 3px rgba(255,45,154,.25)}
input.invalido{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.2)}
.erro{display:none;color:#dc2626;font-size:15px;font-weight:600;margin:-10px 0 16px}
.erro.show{display:block}
.shake{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
