117 lines
3.1 KiB
CSS
117 lines
3.1 KiB
CSS
@import "tailwindcss";
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
/* @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); */
|
|
|
|
|
|
|
|
@theme {
|
|
--color-primary-50: #f0f1ff;
|
|
--color-primary-100: #e4e6ff;
|
|
--color-primary-200: #c3c7ff;
|
|
--color-primary-300: #a8b1ff;
|
|
--color-primary-400: #8d9aff;
|
|
--color-primary-500: #727dfd;
|
|
--color-primary-600: #5d68e0;
|
|
--color-primary-700: #4853c4;
|
|
--color-primary-800: #343ea8;
|
|
--color-primary-900: #1f298;
|
|
}
|
|
|
|
/* Dana Font Faces */
|
|
@font-face {
|
|
font-family: 'Dana';
|
|
src: url('/fonts/dana_regular.ttf') format('truetype');
|
|
font-weight: 400;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Dana';
|
|
src: url('/fonts/dana_medium.ttf') format('truetype');
|
|
font-weight: 500;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Dana';
|
|
src: url('/fonts/dana_bold.ttf') format('truetype');
|
|
font-weight: 700;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
:root {
|
|
--background: #ffffff;
|
|
--foreground: #171717;
|
|
}
|
|
|
|
@theme inline {
|
|
--color-background: var(--background);
|
|
--color-foreground: var(--foreground);
|
|
--font-sans: 'Dana', 'Inter', var(--font-geist-sans);
|
|
--font-mono: var(--font-geist-mono);
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--background: #0a0a0a;
|
|
--foreground: #ededed;
|
|
}
|
|
}
|
|
|
|
body {
|
|
background: var(--background);
|
|
color: var(--foreground);
|
|
font-family: 'Dana', 'Inter', Arial, Helvetica, sans-serif;
|
|
font-weight: 400;
|
|
}
|
|
|
|
/* ===== Brand motion =====
|
|
The markup already references these animation classes; define them here so
|
|
the landing page feels alive (entrance reveals, floating logo, soft glow). */
|
|
@keyframes fadeInUp {
|
|
from { opacity: 0; transform: translateY(30px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
@keyframes slideInLeft {
|
|
from { opacity: 0; transform: translateX(-40px); }
|
|
to { opacity: 1; transform: translateX(0); }
|
|
}
|
|
@keyframes slideInRight {
|
|
from { opacity: 0; transform: translateX(40px); }
|
|
to { opacity: 1; transform: translateX(0); }
|
|
}
|
|
@keyframes floatY {
|
|
0%, 100% { transform: translateY(0); }
|
|
50% { transform: translateY(-14px); }
|
|
}
|
|
@keyframes pulseGlow {
|
|
0%, 100% { opacity: .3; transform: scale(1); }
|
|
50% { opacity: .6; transform: scale(1.08); }
|
|
}
|
|
|
|
.animate-fadeInUp { animation: fadeInUp 0.7s ease-out both; }
|
|
.animate-slideInLeft { animation: slideInLeft 0.7s ease-out both; }
|
|
.animate-slideInRight { animation: slideInRight 0.7s ease-out both; }
|
|
.animate-float { animation: floatY 5s ease-in-out infinite; }
|
|
.animate-pulseGlow { animation: pulseGlow 4s ease-in-out infinite; }
|
|
|
|
/* Stagger helpers — apply animation-delay on top of the entrance animations */
|
|
.delay-100 { animation-delay: .1s; }
|
|
.delay-200 { animation-delay: .2s; }
|
|
.delay-300 { animation-delay: .3s; }
|
|
.delay-400 { animation-delay: .4s; }
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.animate-fadeInUp,
|
|
.animate-slideInLeft,
|
|
.animate-slideInRight,
|
|
.animate-float,
|
|
.animate-pulseGlow {
|
|
animation: none;
|
|
}
|
|
} |