/* * Revelação de entrada em portal.html após a animação de intro do login * (ver login-intro.js/CLAUDE.md "Animação de intro do login"). Só dispara * quando index.html marcou sessionStorage antes de navegar — acesso direto/ * recarregamento normal da página não passa por isso. A checagem roda como * IIFE de topo (mesmo padrão de theme.js/applyStoredTheme) pra aplicar as * classes antes da primeira pintura, evitando um flash do conteúdo já * visível antes de escondê-lo. * * Duas classes, removidas em sequência (não juntas): primeiro * `pid-entering-sidebar` sai (a sidebar desliza/aparece), só depois * `pid-entering` sai (o resto do app aparece num fade) — pedido explícito * do usuário pra ficar mais fluido, em vez das duas coisas surgirem juntas. */ (function pidRevealSetup() { if (sessionStorage.getItem("pid_reveal_portal") !== "1") return; sessionStorage.removeItem("pid_reveal_portal"); document.documentElement.classList.add("pid-entering", "pid-entering-sidebar"); })(); document.addEventListener("DOMContentLoaded", () => { const html = document.documentElement; if (!html.classList.contains("pid-entering")) return; requestAnimationFrame(() => { setTimeout(() => { html.classList.remove("pid-entering-sidebar"); // Espera o slide da sidebar terminar (mesma duração de .sidebar em // layout.css, 420ms) antes de revelar o resto — as duas entradas não // devem se sobrepor. setTimeout(() => { html.classList.remove("pid-entering"); }, 420); }, 120); }); });