html.banner-flutuante-aberto {overflow:hidden;}
.banner-flutuante {position:fixed;margin:auto;padding:0;border:0;border-radius:18px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);background:transparent;overflow:hidden;box-shadow:0 22px 64px #140d3580,0 4px 16px #0004;animation:banner-flutuante-abrir .4s cubic-bezier(.16,1,.3,1) both;}
.banner-flutuante::backdrop {background:#110c1e77;backdrop-filter:blur(6px);animation:banner-flutuante-fundo .35s ease both;}
.banner-flutuante-conteudo {display:block;line-height:0;}
.banner-flutuante img {display:block;width:auto;height:auto;max-width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);object-fit:contain;}
.banner-flutuante-fechar {position:absolute;right:10px;top:10px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #ffffff66;border-radius:50%;background:#181321dd;color:#fff;font:28px/1 Arial,sans-serif;cursor:pointer;}
.banner-flutuante-fechar:hover {background:#322640;}
.banner-flutuante :focus-visible {outline:3px solid white;outline-offset:-4px;}
.banner-flutuante.fechando {animation:banner-flutuante-fechar .22s ease both;}
.banner-flutuante.fechando::backdrop {animation:banner-flutuante-fundo .22s ease reverse both;}
@keyframes banner-flutuante-abrir {from{opacity:0;transform:translateY(18px) scale(.96);}to{opacity:1;transform:none;}}
@keyframes banner-flutuante-fechar {to{opacity:0;transform:translateY(12px) scale(.97);}}
@keyframes banner-flutuante-fundo {from{background:transparent;backdrop-filter:blur(0);}to{background:#110c1e77;backdrop-filter:blur(6px);}}
@media(prefers-reduced-motion:reduce){.banner-flutuante,.banner-flutuante::backdrop,.banner-flutuante.fechando,.banner-flutuante.fechando::backdrop{animation:none;}}
