@tailwind base; @tailwind components; @tailwind utilities; /* Global resets and utilities */ :root { --ring: 0 0% 0%; } body.dot-cursor-enabled { cursor: none; } body.dot-cursor-enabled a, body.dot-cursor-enabled button, body.dot-cursor-enabled [role="button"], body.dot-cursor-enabled input, body.dot-cursor-enabled textarea, body.dot-cursor-enabled select { cursor: none; } .dot-cursor[data-state='active'] { box-shadow: 0 0 25px -2px rgba(211, 155, 35, 0.55); } /* Skip link for accessibility */ .skip-link { @apply sr-only focus:not-sr-only fixed left-4 top-4 z-[9999] rounded bg-brand-600 px-4 py-2 text-white; } /* Buttons */ .btn { @apply inline-flex items-center justify-center rounded-md px-5 py-3 text-sm font-semibold transition focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2; } .btn-primary { @apply bg-brand-600 text-white hover:bg-brand-700 focus-visible:ring-brand-600; } .btn-ghost { @apply text-white/90 hover:text-white; } .btn-outline { @apply border border-brand-600 text-brand-700 hover:bg-brand-50 focus-visible:ring-brand-600; } /* Cards */ .card { @apply rounded-xl bg-white shadow-card transition hover:-translate-y-0.5 hover:shadow-lg; } /* Shine effect for primary CTAs */ .shine { position: relative; overflow: hidden; } .shine::after { content: ''; position: absolute; inset: 0; transform: translateX(-120%); background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.35) 40%, transparent 80%); transition: transform 700ms ease; } .shine:hover::after { transform: translateX(120%); } /* Section spacing */ .section { @apply py-16 md:py-24 relative; z-index: 10; } /* Headings */ .h1 { @apply text-4xl font-extrabold tracking-tight md:text-5xl; } .h2 { @apply text-3xl font-bold tracking-tight md:text-4xl; } .h3 { @apply text-2xl font-semibold tracking-tight; } .lead { @apply text-base text-slate-600 md:text-lg; } /* Header backdrop transition */ .header-transparent { @apply bg-transparent; } .header-solid { @apply bg-white/95 backdrop-blur supports-[backdrop-filter]:bg-white/80 shadow; }