diff --git a/src/app/globals.css b/src/app/globals.css new file mode 100644 index 0000000..4cca7ee --- /dev/null +++ b/src/app/globals.css @@ -0,0 +1,135 @@ +@import "tailwindcss"; + +@theme { + --color-background: oklch(0.966 0.003 228.8); + --color-foreground: oklch(0.279 0.023 243.4); + --color-card: oklch(0.938 0.006 239.8); + --color-card-foreground: oklch(0.279 0.023 243.4); + --color-primary: oklch(0.568 0.115 243.6); + --color-primary-foreground: oklch(1 0 0); + --color-secondary: oklch(0.658 0.148 133.1); + --color-secondary-foreground: oklch(0.279 0.023 243.4); + --color-accent: oklch(0.864 0.159 94.5); + --color-accent-foreground: oklch(0.279 0.023 243.4); + --color-muted: oklch(0.911 0.007 247.9); + --color-muted-foreground: oklch(0.473 0.018 242.1); + --color-border: oklch(0.885 0.008 228.9); + --color-input: oklch(0.885 0.008 228.9); + --color-ring: oklch(0.568 0.115 243.6); + + --radius-sm: 14px; + --radius-md: 20px; + --radius-lg: 28px; + --radius-xl: 34px; + --radius-arch: 999px 999px 24px 24px; + + --shadow-soft: 0 18px 36px rgba(40, 55, 45, 0.14); + --shadow-deep: 0 30px 60px rgba(40, 55, 45, 0.18); + + --font-heading: var(--font-sora), ui-sans-serif, system-ui, sans-serif; + --font-body: var(--font-dm-sans), ui-sans-serif, system-ui, sans-serif; +} + +* { + border-color: var(--color-border); + outline-color: color-mix(in oklch, var(--color-ring), transparent 50%); +} + +html { + scroll-behavior: smooth; + -webkit-text-size-adjust: 100%; +} + +body { + background-color: var(--color-background); + color: var(--color-foreground); + font-family: var(--font-dm-sans), ui-sans-serif, system-ui, sans-serif; + font-feature-settings: 'rlig' 1, 'calt' 1; + line-height: 1.7; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: var(--font-sora), ui-sans-serif, system-ui, sans-serif; + font-weight: 600; + letter-spacing: -0.02em; + line-height: 1.18; +} + +.bay-card { + background-color: var(--color-card); + color: var(--color-card-foreground); + border-radius: var(--radius-lg); + box-shadow: var(--shadow-soft); + transition: all 200ms ease-out; +} + +.bay-card:hover { + box-shadow: var(--shadow-deep); + transform: translateY(-4px); +} + +.arch-mask { + border-radius: var(--radius-arch); + overflow: hidden; +} + +.btn-pill { + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 9999px; + background-color: var(--color-primary); + color: var(--color-primary-foreground); + padding: 1rem 2rem; + font-weight: 600; + letter-spacing: -0.01em; + box-shadow: var(--shadow-soft); + transition: all 200ms ease-out; +} + +.btn-pill:hover { + background-color: color-mix(in oklch, var(--color-primary), black 10%); + transform: translateY(-2px); +} + +.btn-quiet { + display: inline-flex; + align-items: center; + color: var(--color-primary); + font-weight: 500; + border-bottom: 1.5px solid color-mix(in oklch, var(--color-primary), transparent 55%); + padding-bottom: 2px; + transition: all 200ms ease-out; +} + +.btn-quiet:hover { + border-bottom-color: var(--color-primary); +} + +.wave-divider path { + fill: var(--color-primary); +} + +::selection { + background-color: color-mix(in oklch, var(--color-accent), transparent 35%); + color: var(--color-accent-foreground); +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + transition-duration: 0.01ms !important; + } +}