@import url("https://fonts.googleapis.com/css2?family=Crimson+Text:wght@400;600&family=Inter:wght@300;400;500;600&display=swap"); @tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: 40 33.3% 98.2%; --foreground: 240 3.4% 11.4%; --card: 0 0% 100%; --card-foreground: 240 3.4% 11.4%; --popover: 0 0% 100%; --popover-foreground: 240 3.4% 11.4%; --primary: 0 0% 35.7%; --primary-foreground: 40 33.3% 98.2%; --secondary: 9.2 7.7% 66.9%; --secondary-foreground: 240 3.4% 11.4%; --muted: 20 8% 90%; --muted-foreground: 0 0% 35.7%; --accent: 9.2 7.7% 66.9%; --accent-foreground: 240 3.4% 11.4%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 20 8% 90%; --input: 20 8% 90%; --ring: 255 30% 70%; --radius: 0.5rem; --violet: 255 30% 70%; } html, body { @apply h-full w-full; -webkit-overflow-scrolling: touch; position: relative; overscroll-behavior-y: none; } body { @apply bg-neutral-light text-neutral-dark antialiased; font-family: "Inter", sans-serif; } h1, h2, h3, h4, h5, h6 { font-family: "Crimson Text", serif; } } .conference-card { @apply bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300 p-4 flex flex-col; } .tag { @apply inline-flex items-center px-2 py-1 rounded-full text-sm font-medium bg-violet/15 text-violet; } .countdown { @apply text-2xl font-semibold text-violet; } @keyframes scale-up { from { transform: scale(0.8); opacity: 0; filter: blur(8px); } to { transform: scale(1); opacity: 1; filter: blur(0); } } @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: scale-up 0.4s cubic-bezier(0.16, 1, 0.3, 1); will-change: transform, opacity, filter; } .dialog-overlay { animation: fade-in 0.4s cubic-bezier(0.16, 1, 0.3, 1); } [data-state="closed"] .dialog-content { animation: scale-down 0.3s cubic-bezier(0.16, 1, 0.3, 1); } [data-state="closed"] .dialog-overlay { animation: fade-out 0.3s cubic-bezier(0.16, 1, 0.3, 1); } @keyframes fade-in { from { opacity: 0; backdrop-filter: blur(0px); } to { opacity: 1; backdrop-filter: blur(4px); } } @keyframes fade-out { from { opacity: 1; backdrop-filter: blur(4px); } to { opacity: 0; backdrop-filter: blur(0px); } }