@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { /* Warm Coral + Ink palette */ --color-primary: #e05a33; --color-primary-hover: #c94a28; --color-primary-light: #fef0ec; --color-primary-glow: rgba(224, 90, 51, 0.15); --color-secondary: #2a9d8f; --color-secondary-light: #eef9f7; --color-accent: #e9c46a; --color-accent-light: #fdf6e3; --color-bg: #faf8f4; --color-surface: #ffffff; --color-surface-raised: #f5f3ee; --color-ink: #1c1917; --color-ink-secondary: #57534e; --color-ink-muted: #a8a29e; --color-border: #e7e5e4; --color-border-light: #f0eeea; } html { scroll-behavior: smooth; } body { font-family: 'DM Sans', system-ui, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: var(--color-ink); background-color: var(--color-bg); } h1, h2, h3, h4, h5, h6 { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; } } @layer components { /* Distinctive button styles */ .btn-primary { @apply inline-flex items-center gap-2 font-semibold rounded-xl transition-all duration-200; background-color: var(--color-primary); color: white; box-shadow: 0 4px 14px var(--color-primary-glow), 0 1px 3px rgba(0,0,0,0.08); } .btn-primary:hover { background-color: var(--color-primary-hover); box-shadow: 0 6px 20px var(--color-primary-glow), 0 2px 4px rgba(0,0,0,0.1); transform: translateY(-1px); } .btn-secondary { @apply inline-flex items-center gap-2 font-semibold rounded-xl transition-all duration-200; background-color: var(--color-surface); color: var(--color-ink); border: 1.5px solid var(--color-border); } .btn-secondary:hover { border-color: var(--color-ink-muted); box-shadow: 0 2px 8px rgba(0,0,0,0.06); transform: translateY(-1px); } /* Card with warm shadow */ .card { background-color: var(--color-surface); border: 1px solid var(--color-border-light); border-radius: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.02); transition: all 0.25s ease; } .card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.03); transform: translateY(-2px); } /* Section spacing */ .section-padding { @apply py-24 lg:py-32 px-6; } /* Grain texture overlay */ .grain::after { content: ''; position: absolute; inset: 0; opacity: 0.3; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"); } /* Prose overrides for blog/docs */ .prose-warm { --tw-prose-body: var(--color-ink-secondary); --tw-prose-headings: var(--color-ink); --tw-prose-links: var(--color-primary); --tw-prose-bold: var(--color-ink); --tw-prose-code: var(--color-primary); } } @layer utilities { .custom-scrollbar::-webkit-scrollbar { width: 6px; height: 6px; } .custom-scrollbar::-webkit-scrollbar-track { background: transparent; } .custom-scrollbar::-webkit-scrollbar-thumb { background-color: rgba(168, 162, 158, 0.3); border-radius: 20px; } .custom-scrollbar::-webkit-scrollbar-thumb:hover { background-color: rgba(168, 162, 158, 0.5); } /* Fade-in animation */ @keyframes fade-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-up { animation: fade-up 0.6s ease-out forwards; } /* Stagger delays */ .delay-100 { animation-delay: 100ms; } .delay-200 { animation-delay: 200ms; } .delay-300 { animation-delay: 300ms; } .delay-400 { animation-delay: 400ms; } .delay-500 { animation-delay: 500ms; } }