/* Tailwind CSS directives */ @tailwind base; @tailwind components; @tailwind utilities; /* Base layer with theme configuration */ @layer base { /* Root color variables for theming */ :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; } /* Base HTML and body styles */ html, body { @apply h-full w-full; -webkit-overflow-scrolling: touch; position: relative; overscroll-behavior-y: none; } /* Body specific styles */ body { @apply bg-neutral-light text-neutral-dark antialiased; } } /* Conference card component styles */ .conference-card { @apply bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300 p-4 flex flex-col; } /* Tag component styles */ .tag { @apply inline-flex items-center px-2 py-1 rounded-full text-sm font-medium bg-primary/10 text-primary; } /* Countdown component styles */ .countdown { @apply text-2xl font-semibold text-primary; } /* Animation for scaling up elements */ @keyframes scale-up { from { transform: scale(0.8); opacity: 0; filter: blur(8px); } to { transform: scale(1); opacity: 1; filter: blur(0); } } /* Animation for scaling down elements */ @keyframes scale-down { from { transform: scale(1); opacity: 1; filter: blur(0); } to { transform: scale(0.8); opacity: 0; filter: blur(8px); } } /* Dialog content animation styles */ .dialog-content { animation: scale-up 0.4s cubic-bezier(0.16, 1, 0.3, 1); will-change: transform, opacity, filter; } /* Dialog overlay animation styles */ .dialog-overlay { animation: fade-in 0.4s cubic-bezier(0.16, 1, 0.3, 1); } /* Dialog content animation when closed */ [data-state="closed"] .dialog-content { animation: scale-down 0.3s cubic-bezier(0.16, 1, 0.3, 1); } /* Dialog overlay animation when closed */ [data-state="closed"] .dialog-overlay { animation: fade-out 0.3s cubic-bezier(0.16, 1, 0.3, 1); } /* Animation for fading in elements */ @keyframes fade-in { from { opacity: 0; backdrop-filter: blur(0px); } to { opacity: 1; backdrop-filter: blur(4px); } } /* Animation for fading out elements */ @keyframes fade-out { from { opacity: 1; backdrop-filter: blur(4px); } to { opacity: 0; backdrop-filter: blur(0px); } }