/* ---------- a vinheta de entrada (a mesma da demo, demo/demo.css .ent-*) e a tela da troca de idioma (a mesma da demo, demo-lang-switch.js) ---------- */
.ent { position: fixed; inset: 0; z-index: 2147482000; display: flex; align-items: center; justify-content: center; background: #fff; font-family: Inter, 'Nunito Sans', system-ui, sans-serif; }
.ent { animation: ent-in 0.3s ease; }
.ent-halo { position: absolute; top: 46%; left: 50%; width: 720px; height: 720px; transform: translate(-50%,-50%) scale(0.8); border-radius: 999px; opacity: 0;
  background: radial-gradient(circle, rgba(0,102,255,0.10), rgba(124,58,237,0.06) 42%, transparent 66%); animation: ent-halo 2.4s ease both; }
.ent-stack { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; }
.ent-hero { position: relative; display: inline-block; }
.ent-brand { height: 58px; width: auto; display: block; clip-path: inset(0 100% 0 0); animation: ent-wipe 1.05s cubic-bezier(0.65,0,0.35,1) 0.3s forwards; }
.ent-pen { position: absolute; top: -6%; bottom: -6%; left: 0; width: 2px; border-radius: 2px; opacity: 0;
  background: linear-gradient(180deg, transparent, #0066FF, #7C3AED, transparent); box-shadow: 0 0 12px rgba(0,102,255,0.7); animation: ent-pen 1.05s cubic-bezier(0.65,0,0.35,1) 0.3s forwards; }
.ent-tagline { margin: 0; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; padding-left: 0.2em; color: #64748b; opacity: 0; animation: ent-fade 0.7s ease 1.35s both; }
.ent-accent { color: #0066FF; font-weight: 700; }
.ent-sig { display: inline-flex; align-items: center; gap: 9px; margin-top: 4px; opacity: 0; animation: ent-fade 0.7s ease 1.7s both; }
.ent-glyph { width: 16px; height: 16px; color: #0066FF; }
.ent-sig-txt { font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; color: #64748b; }
.ent-sig-name { font-weight: 800; letter-spacing: 0.09em; color: #0f172a; }
.ent-sig-sep { color: #cbd5e1; margin: 0 6px; }
.ent-live { width: 7px; height: 7px; border-radius: 999px; background: #16a34a; animation: ent-live 2.2s ease-out infinite; }
.ent-leaving .ent-stack { animation: ent-handoff 520ms ease forwards; }
.ent-leaving { animation: ent-out 520ms ease forwards; }
@keyframes ent-in { from { opacity: 0 } to { opacity: 1 } }
@keyframes ent-out { to { opacity: 0 } }
@keyframes ent-halo { from { opacity: 0; transform: translate(-50%,-50%) scale(0.8); } to { opacity: 1; transform: translate(-50%,-50%) scale(1); } }
@keyframes ent-wipe { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes ent-pen { 0% { left: 0; opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
@keyframes ent-fade { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ent-live { 0% { box-shadow: 0 0 0 0 rgba(22,163,74,0.5); } 70% { box-shadow: 0 0 0 6px rgba(22,163,74,0); } 100% { box-shadow: 0 0 0 0 rgba(22,163,74,0); } }
@keyframes ent-handoff { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(1.04); } }
.ent-glyph { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (prefers-reduced-motion: reduce) { .ent { display: none; } }
