@import "tailwindcss"; /* ============================================ MANOONOILS DESIGN SYSTEM Tailwind 4 compatible - uses CSS layers ============================================ */ @theme inline { /* Colors - reference CSS variables */ --color-white: var(--color-white); --color-background: var(--color-background); --color-background-alt: var(--color-background-alt); --color-foreground: var(--color-foreground); --color-foreground-muted: var(--color-foreground-muted); --color-foreground-subtle: var(--color-foreground-subtle); --color-accent: var(--color-accent); --color-accent-dark: var(--color-accent-dark); --color-accent-blue: var(--color-accent-blue); --color-gold: var(--color-gold); --color-gold-light: var(--color-gold-light); --color-border: var(--color-border); --color-border-dark: var(--color-border-dark); --color-cta: var(--color-cta); --color-cta-hover: var(--color-cta-hover); --color-overlay: var(--color-overlay); /* Typography */ --font-display: var(--font-display); --font-body: var(--font-body); } /* ============================================ CSS VARIABLES ============================================ */ :root { --color-white: #ffffff; --color-background: #fafafa; --color-background-alt: #f5f5f5; --color-foreground: #1a1a1a; --color-foreground-muted: #666666; --color-foreground-subtle: #999999; --color-accent: #e8f0f5; --color-accent-dark: #a8c5d8; --color-accent-blue: #e8f0f5; --color-gold: #c9a962; --color-gold-light: #d4b978; --color-border: #e5e5e5; --color-border-dark: #d1d1d1; --color-cta: #000000; --color-cta-hover: #333333; --color-overlay: rgba(0, 0, 0, 0.4); --font-display: 'DM Sans', sans-serif; --font-body: 'Inter', sans-serif; --transition-fast: 150ms ease; --transition-base: 250ms ease; --transition-slow: 350ms ease; --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1); } /* ============================================ FONT IMPORTS ============================================ */ @font-face { font-family: 'DM Sans'; src: url('https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxhS2f3ZGMZpg.woff2') format('woff2'); font-weight: 400 700; font-display: swap; } @font-face { font-family: 'Inter'; src: url('https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjp-Ek-_EeA.woff2') format('woff2'); font-weight: 400 700; font-display: swap; } /* ============================================ BASE STYLES (in Tailwind base layer) ============================================ */ @layer base { html { scroll-behavior: smooth; } body { background: var(--color-background); color: var(--color-foreground); font-family: var(--font-body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 500; line-height: 1.2; letter-spacing: -0.02em; } h1 { font-size: clamp(2rem, 5vw, 3.5rem); } h2 { font-size: clamp(1.5rem, 4vw, 2.5rem); } h3 { font-size: clamp(1.25rem, 3vw, 1.75rem); } input, textarea, select { font-family: var(--font-body); font-size: 16px; } input:focus, textarea:focus, select:focus { outline: none; border-color: var(--color-foreground); } :focus-visible { outline: 2px solid var(--color-foreground); outline-offset: 2px; } } /* ============================================ COMPONENTS ============================================ */ @layer components { .container { width: 100%; max-width: 1400px; margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; } @media (min-width: 640px) { .container { padding-left: 32px; padding-right: 32px; } } @media (min-width: 1024px) { .container { padding-left: 48px; padding-right: 48px; } } .container-narrow { max-width: 1200px; } .container-wide { max-width: 1600px; } .btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 32px; font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; border: none; cursor: pointer; transition: all var(--transition-base); } .btn-primary { background: var(--color-cta); color: var(--color-white); } .btn-primary:hover { background: var(--color-cta-hover); } .btn-secondary { background: transparent; color: var(--color-foreground); border: 1px solid var(--color-border-dark); } .btn-secondary:hover { background: var(--color-foreground); color: var(--color-white); border-color: var(--color-foreground); } .link-underline { position: relative; text-decoration: none; } .link-underline::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 1px; background: currentColor; transition: width var(--transition-base); } .link-underline:hover::after { width: 100%; } .text-display { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.02em; } .text-body { font-family: var(--font-body); } .text-uppercase { text-transform: uppercase; letter-spacing: 0.05em; } .text-caption { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500; } .text-muted { color: var(--color-foreground-muted); } .text-subtle { color: var(--color-foreground-subtle); } .flex-center { display: flex; align-items: center; justify-content: center; } } /* ============================================ UTILITIES ============================================ */ @layer utilities { .section { padding-top: 96px; padding-bottom: 96px; } .section-sm { padding-top: 48px; padding-bottom: 48px; } ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--color-background-alt); } ::-webkit-scrollbar-thumb { background: var(--color-border-dark); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--color-foreground-muted); } .animate-fade-in { animation: fadeIn var(--transition-slow) forwards; } .animate-slide-up { animation: slideUp var(--transition-slow) forwards; } .animate-slide-in-right { animation: slideInRight var(--transition-slow) forwards; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(100%); } to { opacity: 1; transform: translateX(0); } } @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .animate-marquee { animation: marquee 25s linear infinite; } .animate-marquee-slow { animation: marquee 35s linear infinite; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } } /* ============================================ REDUCED MOTION ============================================ */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } html { scroll-behavior: auto; } }