* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--preto); }
body { margin: 0; color: var(--branco); font-family: var(--fonte-texto); -webkit-font-smoothing: antialiased; }
.noite { position: fixed; inset: 0; overflow: hidden; pointer-events: none; background: #000; }
.noite picture { position: absolute; inset: 0; }
.terra { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.noite::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.22)), radial-gradient(ellipse at center, rgba(0,0,0,.28), transparent 65%); }
.noite::after { content: ''; position: absolute; inset: 0; z-index: 2; background: radial-gradient(circle at 14% 29%, rgba(216,179,114,.6) 0 1px, transparent 2px), radial-gradient(circle at 82% 20%, rgba(216,179,114,.4) 0 1px, transparent 2px), radial-gradient(circle at 74% 65%, rgba(216,179,114,.5) 0 1px, transparent 2px), radial-gradient(circle at 24% 72%, rgba(216,179,114,.4) 0 1px, transparent 2px); }
main { position: relative; min-height: 100svh; display: grid; place-items: center; padding: 40px 20px; }
.cartao { width: 100%; max-width: 440px; padding: 44px 44px 32px; text-align: center; border: 1px solid rgba(216,179,114,.2); border-radius: 20px; background: linear-gradient(155deg, rgba(216,179,114,.035), transparent 45%), rgba(7,7,7,.76); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: var(--sombra-flutuante), inset 0 1px 0 var(--linha-fina); }
.marca { display: block; width: 260px; max-width: 100%; height: auto; margin: 0 auto 20px; }
.linha-editorial { width: 48px; height: 1px; background: linear-gradient(90deg, transparent, rgba(216,179,114,.65), transparent); margin: 0 auto 24px; }
h1 { font-family: var(--fonte-serifa); font-weight: 400; font-size: clamp(52px, 12vw, 64px); line-height: 1.06; letter-spacing: -.035em; margin: 0 0 18px; }
h1 em { font-weight: 400; }
.manifesto { color: var(--prata-clara); font-size: 17px; line-height: 1.55; margin: 0 0 36px; }
.google { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 44px; padding: 12px; background: #fff; color: #1f1f1f; border: 1px solid #747775; border-radius: 999px; font-family: 'Google Sans', Arial, sans-serif; font-size: 14px; font-weight: 500; line-height: 20px; cursor: pointer; transition: background var(--dur-rapida) var(--curva), box-shadow var(--dur-rapida) var(--curva), border-color var(--dur-rapida) var(--curva); }
.google:hover { background: #f2f2f2; border-color: #b8a582; box-shadow: 0 0 0 3px rgba(216,179,114,.1); }
.google:focus-visible { outline: 2px solid #d8b372; outline-offset: 5px; }
.google:disabled { cursor: wait; background: #e5e5e5; }
.google-g { flex: none; }
.restrito { margin: 24px 0 0; color: var(--prata); font-family: var(--fonte-texto); font-size: 12px; line-height: 1.6; }
.aviso { padding: 16px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--vidro-forte); margin: -12px 0 24px; }
.aviso p { margin: 0; font-size: 14px; line-height: 1.6; }
.aviso .conta { color: var(--prata-clara); margin-top: 8px; overflow-wrap: anywhere; }
.carregando { font-size: 13px; color: var(--prata-clara); margin: 16px 0 0; }
.spinner { width: 20px; height: 20px; flex: none; border: 2px solid #747775; border-right-color: transparent; border-radius: 50%; }
@media (prefers-reduced-motion: no-preference) { .spinner { animation: girar .8s linear infinite; } }
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media (max-width: 480px) { .cartao { padding: 36px 28px 28px; border-radius: 16px; } .marca { width: 210px; } .manifesto { font-size: 16px; } }

.icone-app { display: block; width: 56px; height: 56px; margin: 0 auto 14px; }
.rotulo { margin: 0 0 18px; color: #c4b398; font-family: var(--fonte-texto); font-size: 11px; line-height: 1.5; letter-spacing: .23em; }
.restrito span:last-child { white-space: nowrap; }
@media (max-width: 480px) { .restrito { font-size: 11px; } }
.visualmente-oculto { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
