/* ========================================================================== CONSELHO ESCOLAR DEMOCRÁTICO - DIRETRIZES MEC & LEI 14.644/2023 Folha de Estilos Avançada com Efeito Cascata Scrollytelling ========================================================================== */ /* Importação de fontes (fallback se CDN não carregar) */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap'); :root { --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; --font-display: 'Plus Jakarta Sans', var(--font-sans); /* Paleta Oficial Inspirada na Educação Pública */ --color-primary: #0c2340; --color-blue-600: #2563eb; --color-blue-700: #1d4ed8; --color-sky-500: #0ea5e9; --color-amber-500: #f59e0b; --color-emerald-500: #10b981; --color-purple-500: #8b5cf6; --bg-slate-50: #f8fafc; --bg-slate-900: #0f172a; --bg-slate-950: #020617; } /* Reset Básico e Tipografia */ *, *::before, *::after { box-sizing: border-box; } html { font-family: var(--font-sans); scroll-behavior: smooth; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { margin: 0; padding: 0; background-color: var(--bg-slate-50); color: #1e293b; overflow-x: hidden; } .font-display { font-family: var(--font-display); } /* Scrollbar Personalizada */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #0f172a; } ::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #2563eb; } /* Utilitários Tailwind Auxiliares e Layout */ .max-w-7xl { max-width: 80rem; } .h-18 { height: 4.5rem; } /* Efeito Cascata Scrollytelling (Scroll Track & Sticky Viewport) */ #cascade-scroll-track { position: relative; /* Altura proporcional calculada para fornecer 5 estágios de rolagem confortáveis */ min-height: 450vh; } #cascade-sticky-stage { position: sticky; top: 0; height: 100vh; height: 100dvh; overflow: hidden; background: radial-gradient(circle at 50% 20%, #1e293b 0%, #0f172a 60%, #020617 100%); display: flex; flex-direction: column; } /* Os Cards da Cascata */ .cascade-card { transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease; will-change: transform, opacity, filter; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.1); } /* Estados da Cascata */ /* 1. Ativo no centro */ .cascade-card.is-active { opacity: 1; transform: translateY(0) scale(1) rotate(0deg); filter: blur(0px); pointer-events: auto; z-index: 25; } /* 2. Já passou (empilhado no topo, ligeiramente recolhido como cascata de folhas) */ .cascade-card.is-passed { opacity: 0.12; transform: translateY(-45px) scale(0.92) rotate(-1deg); filter: blur(3px); pointer-events: none; z-index: 10; } /* 3. Próximo (aguardando abaixo) */ .cascade-card.is-upcoming { opacity: 0; transform: translateY(70px) scale(0.94) rotate(1deg); filter: blur(4px); pointer-events: none; z-index: 5; } /* Botões da Linha do Tempo da Cascata */ .cascade-nav-step { outline: none; cursor: pointer; } .cascade-nav-step.active-step { background-color: var(--color-blue-600); color: #ffffff; box-shadow: 0 4px 12px rgba(37, 99, 235, 0.35); } /* Linha do Tempo Lateral Flutuante */ #floating-timeline { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .timeline-dot-btn { background: none; border: none; padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; } .timeline-dot-btn.active .dot-indicator { border-color: var(--color-blue-600); background-color: var(--color-blue-600); transform: scale(1.3); box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.2); } /* Animações e Efeitos Glass */ .glass-effect { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } .glass-dark { background: rgba(15, 23, 42, 0.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } /* Simulador Interativo - Opções */ .quiz-opt-btn { cursor: pointer; transition: all 0.2s ease; } .quiz-opt-btn:hover:not(:disabled) { transform: translateX(4px); border-color: #3b82f6; background-color: rgba(59, 130, 246, 0.1); } .quiz-opt-btn.correct-choice { background-color: rgba(16, 185, 129, 0.2) !important; border-color: #10b981 !important; color: #a7f3d0 !important; } .quiz-opt-btn.wrong-choice { background-color: rgba(239, 68, 68, 0.2) !important; border-color: #ef4444 !important; color: #fecaca !important; } /* Accordion FAQ */ .faq-item { transition: border-color 0.2s ease; } .faq-item.active { border-color: #3b82f6; box-shadow: 0 4px 12px rgba(59, 130, 246, 0.08); } .faq-icon { transition: transform 0.3s ease; } .faq-item.active .faq-icon { transform: rotate(180deg); color: #2563eb; } /* Suporte de Impressão */ @media print { #main-header, #floating-timeline, #reading-progress-bar, #simulador, .cascade-nav-step, #cascade-prev-btn, #cascade-next-btn, footer { display: none !important; } body { background: #ffffff !important; color: #000000 !important; } #cascade-scroll-track { min-height: auto !important; } #cascade-sticky-stage { position: static !important; height: auto !important; background: #ffffff !important; color: #000000 !important; padding: 0 !important; } .cascade-card { position: static !important; opacity: 1 !important; transform: none !important; filter: none !important; page-break-inside: avoid; margin-bottom: 2rem !important; background: #f8fafc !important; color: #000000 !important; border: 1px solid #cbd5e1 !important; } .cascade-card h3, .cascade-card p, .cascade-card span, .cascade-card strong { color: #000000 !important; } } /* Utilitário para ocultar scrollbars nativas em barras de rolagem horizontal */ .scrollbar-none::-webkit-scrollbar { display: none; } .scrollbar-none { -ms-overflow-style: none; scrollbar-width: none; } /* Ajustes para Dispositivos Móveis */ @media (max-width: 768px) { #cascade-sticky-stage { padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 5.5rem; padding-bottom: 0.75rem; } .cascade-card { padding: 1.25rem 1rem !important; height: 65vh; max-height: 65vh; -webkit-overflow-scrolling: touch; } .cascade-nav-step { padding: 0.35rem 0.6rem !important; } .cascade-nav-step span { font-size: 0.68rem; } /* Redução de margem e espaçamento nos textos dos cards no mobile */ .cascade-card h3 { font-size: 1.25rem !important; } .cascade-card p { font-size: 0.825rem !important; } .cascade-card li { font-size: 0.775rem !important; } }