@import "tailwindcss"; @import "tw-animate-css"; @custom-variant dark (&:is(.dark *)); @theme inline { --animate-scroll: scroll var(--animation-duration, 40s) var(--animation-direction, forwards) linear infinite; --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); @keyframes moveDot { 0%, 100% { top: 10%; right: 10%; } 25% { top: 10%; right: calc(100% - 35px); } 50% { top: calc(100% - 30px); right: calc(100% - 35px); } 75% { top: calc(100% - 30px); right: 10%; } } } :root { --radius: 0.625rem; --background: oklch(1 0 0); --foreground: oklch(0.145 0 0); --card: oklch(1 0 0); --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: oklch(0.205 0 0); --primary-foreground: oklch(0.985 0 0); --secondary: oklch(0.97 0 0); --secondary-foreground: oklch(0.205 0 0); --muted: oklch(0.97 0 0); --muted-foreground: oklch(0.556 0 0); --accent: oklch(0.97 0 0); --accent-foreground: oklch(0.205 0 0); --destructive: oklch(0.577 0.245 27.325); --border: oklch(0.922 0 0); --input: oklch(0.922 0 0); --ring: oklch(0.708 0 0); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: oklch(0.205 0 0); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.922 0 0); --sidebar-ring: oklch(0.708 0 0); --chart-green: 142.1 76.2% 36.3%; --chart-orange: 28.3 92.5% 58.4%; --chart-red: 0 84.2% 60.2%; } .dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); --card: oklch(0.205 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0); --primary: oklch(0.922 0 0); --primary-foreground: oklch(0.205 0 0); --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.269 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); --ring: oklch(0.556 0 0); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.556 0 0); --chart-green: 142.1 76.2% 36.3%; --chart-orange: 28.3 92.5% 58.4%; --chart-red: 0 84.2% 60.2%; } @keyframes scroll { to { transform: translate(calc(-50% - 0.5rem)); } } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; } } @layer utilities { .animate-ripple { animation: ripple var(--duration,2s) ease calc(var(--i, 0)*.2s) infinite; } } @keyframes ripple { 0%, 100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(0.9); } } @keyframes bounceIn { 0% { opacity: 0; transform: translateY(30px) scale(0.8); } 50% { opacity: 1; transform: translateY(-3px) scale(1.02); } 70% { transform: translateY(1px) scale(0.99); } 100% { opacity: 1; transform: translateY(0) scale(1); } } /* Previne flash branco em navegação durante scroll */ .rever-nav [data-slot="navigation-menu-viewport"] { transition: opacity 150ms ease-in-out; } /* Estabiliza hovers durante scroll suave */ .smooth-scrolling [data-slot="navigation-menu-trigger"] { pointer-events: none; } /* Otimizações de performance para scroll suave - excluindo marquee */ [style*="transform"]:not(.transform-3d):not(.transform-3d *) { will-change: transform; transform-style: preserve-3d; } /* Otimização específica para elementos animados - excluindo marquee */ .motion-div:not(.transform-3d *), [data-framer-name]:not(.transform-3d *), [style*="translateX"]:not(.transform-3d *), [style*="translateY"]:not(.transform-3d *), [style*="scale"]:not(.transform-3d *) { will-change: transform; contain: layout style paint; backface-visibility: hidden; } /* Container de animações 3D - sem otimizações que interferem no hover */ .transform-3d { transform-style: preserve-3d; } /* Garante que shadow-2xl funcione corretamente no 3D marquee */ .transform-3d img.hover\:shadow-2xl:hover { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 25%); } /* Otimização para imagens em movimento - excluindo 3D marquee */ img[style*="transform"]:not(.transform-3d img) { will-change: transform; image-rendering: optimizeSpeed; } /* Previne layout shift nos logos da Rever */ img[alt="Rever Logo"], [alt="Rever Logo"] { transition: none; /* Remove transições que podem causar flash */ } /* Remove scroll bar visível em todos os dispositivos móveis */ .no-visible-scrollbar::-webkit-scrollbar { display: none; } /* Estilos específicos do blog - força texto branco */ .blog-content { color: white !important; } .blog-content * { color: white !important; } .blog-content p { color: white !important; } .blog-content h1, .blog-content h2, .blog-content h3, .blog-content h4, .blog-content h5, .blog-content h6 { color: white !important; } .blog-content ul, .blog-content ol, .blog-content li { color: white !important; } .blog-content blockquote { color: white !important; } .blog-content div, .blog-content span { color: white !important; } /* Mantém cores específicas para links */ .blog-content a { color: #00e8ff !important; } .blog-content a:hover { color: #00d4e6 !important; } /* Mantém cores específicas para código */ .blog-content code { color: #00e8ff !important; } /* Estilos para iframes em conteúdo de blog */ .blog-content iframe { max-width: 100% !important; margin: 2rem auto !important; display: block !important; border-radius: 12px !important; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8) !important; } /* Container responsivo para vídeos embarcados */ .video-embed-container { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; /* Aspect ratio 16:9 */ margin: 2rem auto; border-radius: 12px; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8); } .video-embed-container iframe { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; border: 0 !important; margin: 0 !important; border-radius: 0 !important; box-shadow: none !important; } .no-visible-scrollbar { -ms-overflow-style: none; scrollbar-width: none; } /* Para CategoryFilter - esconde scrollbar em modo horizontal */ .scrollbar-hide { -ms-overflow-style: none; /* IE e Edge */ scrollbar-width: none; /* Firefox */ } .scrollbar-hide::-webkit-scrollbar { display: none; /* Chrome, Safari e Opera */ } /* CSS para placeholder do TipTap Editor */ .ProseMirror p.is-editor-empty:first-child::before { content: attr(data-placeholder); float: left; color: #adb5bd; pointer-events: none; height: 0; font-size: 0.875rem; /* Equivalente a text-sm */ } .ProseMirror .is-empty::before { content: attr(data-placeholder); float: left; color: #9ca3af !important; pointer-events: none; height: 0; font-style: italic; font-weight: normal; } /* Alternativa mais específica */ .prose .ProseMirror p.is-editor-empty:first-child::before { content: attr(data-placeholder); color: #9ca3af !important; pointer-events: none; height: 0; font-style: italic; font-weight: normal; position: absolute; } /* Estilos de espaçamento do TipTap Editor */ .ProseMirror p { margin-bottom: 1.5rem; /* Equivalente a mb-6 */ } .ProseMirror h1 { margin-top: 3rem; /* mt-12 */ margin-bottom: 1.5rem; /* mb-6 */ font-size: 2.25rem; /* text-4xl */ font-weight: 700; line-height: 1.2; } .ProseMirror h2 { margin-top: 2.5rem; /* mt-10 */ margin-bottom: 1.25rem; /* mb-5 */ font-size: 1.875rem; /* text-3xl */ font-weight: 700; line-height: 1.25; } .ProseMirror h3 { margin-top: 2rem; /* mt-8 */ margin-bottom: 1rem; /* mb-4 */ font-size: 1.5rem; /* text-2xl */ font-weight: 700; line-height: 1.375; } .ProseMirror h4 { margin-top: 1.5rem; /* mt-6 */ margin-bottom: 0.75rem; /* mb-3 */ font-size: 1.25rem; /* text-xl */ font-weight: 700; } .ProseMirror ul, .ProseMirror ol { margin-top: 1.5rem; /* my-6 */ margin-bottom: 1.5rem; padding-left: 1.5rem; } .ProseMirror li { margin-bottom: 0.75rem; /* space-y-3 */ } .ProseMirror blockquote { margin-top: 2rem; /* my-8 */ margin-bottom: 2rem; padding-left: 1.5rem; border-left: 4px solid #00e8ff; font-style: italic; color: #6b7280; } .ProseMirror img, .ProseMirror [data-type="resizableImage"] { margin-top: 2rem; /* my-8 */ margin-bottom: 2rem; border-radius: 0.75rem; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } .ProseMirror pre { margin-top: 2rem; /* my-8 */ margin-bottom: 2rem; padding: 1rem; background-color: #111827; border: 1px solid #374151; border-radius: 0.5rem; overflow-x: auto; } .ProseMirror code { background-color: #1f2937; color: #00e8ff; padding: 0.125rem 0.5rem; border-radius: 0.25rem; font-size: 0.875rem; font-family: monospace; } .ProseMirror hr { margin-top: 2rem; margin-bottom: 2rem; border-color: #e5e7eb; } /* Remover margens do primeiro e último elemento */ .ProseMirror > *:first-child { margin-top: 0; } .ProseMirror > *:last-child { margin-bottom: 0; } /* Espaçamento entre imagem e texto */ .ProseMirror p + [data-type="resizableImage"], .ProseMirror [data-type="resizableImage"] + p, .ProseMirror p + img, .ProseMirror img + p { margin-top: 2rem; } @tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: 0 0% 100%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; --primary: 222.2 47.4% 11.2%; --primary-foreground: 210 40% 98%; --secondary: 210 40% 96.1%; --secondary-foreground: 222.2 47.4% 11.2%; --muted: 210 40% 96.1%; --muted-foreground: 215.4 16.3% 46.9%; --accent: 210 40% 96.1%; --accent-foreground: 222.2 47.4% 11.2%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; --ring: 222.2 84% 4.9%; --radius: 0.5rem; --chart-1: hsl(188 100% 50%); /* #00e8ff */ --chart-2: hsl(220 13% 69%); /* light gray */ --chart-3: hsl(220 14% 96%); /* lighter gray */ --chart-4: hsl(221 83% 53%); /* blue */ --chart-5: hsl(215.4 16.3% 46.9%); /* muted text */ --chart-green: 142.1 76.2% 36.3%; --chart-orange: 28.3 92.5% 58.4%; --chart-red: 0 84.2% 60.2%; } .dark { --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; --card: 222.2 84% 4.9%; --card-foreground: 210 40% 98%; --popover: 222.2 84% 4.9%; --popover-foreground: 210 40% 98%; --primary: 210 40% 98%; --primary-foreground: 222.2 47.4% 11.2%; --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; --ring: 212.7 26.8% 83.9%; --chart-1: hsl(188 100% 50%); /* #00e8ff */ --chart-2: hsl(217.2 32.6% 17.5%); --chart-3: hsl(217.2 32.6% 17.5%); --chart-4: hsl(210 40% 98%); --chart-5: 12.1 83.7% 60%; --chart-green: 142.1 76.2% 36.3%; --chart-orange: 28.3 92.5% 58.4%; --chart-red: 0 84.2% 60.2%; } } /* Estilos específicos para o TipTap Editor */ .ProseMirror ul { list-style-type: disc; list-style-position: outside; margin-left: 1.5rem; margin-top: 2rem; margin-bottom: 2rem; } .ProseMirror ol { list-style-type: decimal; list-style-position: outside; margin-left: 1.5rem; margin-top: 2rem; margin-bottom: 2rem; } .ProseMirror li { margin-top: 0; margin-bottom: -0.25rem; padding-left: 0.5rem; line-height: 1.25; } .ProseMirror p { margin-bottom: 2rem; line-height: 1.625; } .ProseMirror hr { margin-top: 2rem; margin-bottom: 2rem; border: none; border-top: 1px solid #ccc; } /* Garantir espaçamento adequado entre elementos */ .ProseMirror > * + * { margin-top: 1rem; } .ProseMirror > ul + *, .ProseMirror > ol + *, .ProseMirror > * + ul, .ProseMirror > * + ol { margin-top: 2rem; } @layer base { .shader-surface { --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --background: oklch(0 0 0); --foreground: oklch(1 0 0); --card: oklch(0.1 0 0 / 0.1); --card-foreground: oklch(1 0 0); --popover: oklch(0 0 0 / 0.8); --popover-foreground: oklch(1 0 0); --primary: oklch(1 0 0); --primary-foreground: oklch(0 0 0); --secondary: oklch(0.65 0.25 25); --secondary-foreground: oklch(1 0 0); --muted: oklch(1 0 0 / 0.5); --muted-foreground: oklch(0.7 0 0); --accent: oklch(0.65 0.25 25); --accent-foreground: oklch(1 0 0); --destructive: oklch(0.6 0.25 15); --destructive-foreground: oklch(1 0 0); --border: oklch(1 0 0 / 0.2); --input: oklch(1 0 0 / 0.1); --ring: oklch(1 0 0 / 0.3); --chart-1: oklch(0.65 0.25 25); --chart-2: oklch(0.8 0.15 85); --chart-3: oklch(0.7 0.2 140); --chart-4: oklch(0.7 0.2 240); --chart-5: oklch(0.6 0.25 300); --radius: 0.5rem; --sidebar: oklch(0 0 0 / 0.9); --sidebar-foreground: oklch(1 0 0); --sidebar-primary: oklch(0.65 0.25 25); --sidebar-primary-foreground: oklch(1 0 0); --sidebar-accent: oklch(0.65 0.25 25); --sidebar-accent-foreground: oklch(1 0 0); --sidebar-border: oklch(1 0 0 / 0.2); --sidebar-ring: oklch(1 0 0 / 0.3); } .shader-surface.dark { --background: oklch(0 0 0); --foreground: oklch(1 0 0); --card: oklch(0.1 0 0 / 0.1); --card-foreground: oklch(1 0 0); --popover: oklch(0 0 0 / 0.8); --popover-foreground: oklch(1 0 0); --primary: oklch(1 0 0); --primary-foreground: oklch(0 0 0); --secondary: oklch(0.65 0.25 25); --secondary-foreground: oklch(1 0 0); --muted: oklch(1 0 0 / 0.5); --muted-foreground: oklch(0.7 0 0); --accent: oklch(0.65 0.25 25); --accent-foreground: oklch(1 0 0); --destructive: oklch(0.6 0.25 15); --destructive-foreground: oklch(1 0 0); --border: oklch(1 0 0 / 0.2); --input: oklch(1 0 0 / 0.1); --ring: oklch(1 0 0 / 0.3); --chart-1: oklch(0.65 0.25 25); --chart-2: oklch(0.8 0.15 85); --chart-3: oklch(0.7 0.2 140); --chart-4: oklch(0.7 0.2 240); --chart-5: oklch(0.6 0.25 300); --sidebar: oklch(0 0 0 / 0.9); --sidebar-foreground: oklch(1 0 0); --sidebar-primary: oklch(0.65 0.25 25); --sidebar-primary-foreground: oklch(1 0 0); --sidebar-accent: oklch(0.65 0.25 25); --sidebar-accent-foreground: oklch(1 0 0); --sidebar-border: oklch(1 0 0 / 0.2); --sidebar-ring: oklch(1 0 0 / 0.3); } }