@import 'tailwindcss'; @custom-variant dark (&:is(.dark *)); @theme { /* Refined neutral modern palette */ --color-background: hsl(0 0% 100%); --color-foreground: hsl(240 10% 3.9%); /* Card */ --color-card: hsl(0 0% 100%); --color-card-foreground: hsl(240 10% 3.9%); /* Popover */ --color-popover: hsl(0 0% 100%); --color-popover-foreground: hsl(240 10% 3.9%); /* Primary - Deep neutral slate for professional look */ --color-primary: hsl(240 5.9% 10%); --color-primary-foreground: hsl(0 0% 98%); /* Secondary */ --color-secondary: hsl(240 4.8% 95.9%); --color-secondary-foreground: hsl(240 5.9% 10%); /* Muted */ --color-muted: hsl(240 4.8% 95.9%); --color-muted-foreground: hsl(240 3.8% 46.1%); /* Accent - Subtle warm gray */ --color-accent: hsl(30 6.7% 95%); --color-accent-foreground: hsl(240 5.9% 10%); /* Destructive */ --color-destructive: hsl(0 84.2% 60.2%); --color-destructive-foreground: hsl(0 0% 98%); /* Shop (accelerated checkout) purple */ --color-shop: #5a31f4; /* Border */ --color-border: hsl(240 5.9% 90%); --color-input: hsl(240 5.9% 90%); --color-ring: hsl(240 5.9% 10%); /* Radius - Modern larger corners */ --radius-sm: 0.5rem; --radius-md: 0.75rem; --radius-lg: 1rem; --radius-xl: 1.25rem; /* Typography — Geist Sans / Geist Mono */ --font-sans: var(--font-geist-sans), system-ui, sans-serif; --font-mono: var(--font-geist-mono), ui-monospace, SFMono-Regular, monospace; --font-heading: var(--font-geist-sans), system-ui, sans-serif; --font-body: var(--font-geist-sans), system-ui, sans-serif; --font-poppins: var(--font-geist-sans), system-ui, sans-serif; } /* Base styles for light, modern Shopify storefront */ /* Tailwind v4 defaults an unqualified `border` to currentColor. shadcn components (e.g. Button's outline variant) rely on this base layer to pick up the theme's border colour instead of the text colour. */ @layer base { * { border-color: var(--color-border); } } body { font-feature-settings: 'kern' 1, 'tnum' 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Modern card design for products and collections */ .card-modern { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); border: 1px solid var(--color-border); } .card-modern:hover { transform: translateY(-8px); box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.1); border-color: hsl(240 5.9% 85%); } /* Heading styles — regular weight, slightly tightened like the Geist reference */ h1, h2, .font-heading { font-weight: 400; letter-spacing: -0.02em; } /* Swipeable rows (mobile galleries) without a visible scrollbar */ .no-scrollbar { scrollbar-width: none; -ms-overflow-style: none; } .no-scrollbar::-webkit-scrollbar { display: none; } /* Diagonal strike marking an unavailable product option (size pill, swatch) */ .option-unavailable { background-image: linear-gradient( to top right, transparent calc(50% - 0.5px), currentColor calc(50% - 0.5px), currentColor calc(50% + 0.5px), transparent calc(50% + 0.5px) ); } /* Product description (HTML returned by the Storefront API) */ .product-description p { margin-bottom: 1rem; } .product-description > :last-child { margin-bottom: 0; } /* Shop policy body (HTML returned by the Storefront API) */ .policy-body p, .policy-body ul, .policy-body ol { margin-bottom: 1.5rem; } .policy-body ul, .policy-body ol { padding-left: 1.25rem; list-style: revert; } .policy-body li { margin-bottom: 0.5rem; } .policy-body h2, .policy-body h3, .policy-body h4 { margin-top: 2.5rem; margin-bottom: 1rem; font-size: 1.25rem; font-weight: 500; } .policy-body a { text-decoration: underline; text-underline-offset: 2px; } .policy-body strong { font-weight: 500; } .policy-body > :last-child { margin-bottom: 0; } /* Enhanced button styles */ button, .btn-modern { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .btn-modern:hover { transform: translateY(-1px); box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); } /* Hero section styles */ .hero-bg { background: linear-gradient(135deg, #f8f9fa 0%, #f1f3f5 100%); } /* Product gallery improvements */ .product-gallery-main { transition: box-shadow 0.3s ease; } .product-gallery-main:hover { box-shadow: 0 0 0 1px hsl(240 5.9% 80%) inset; } /* Clean price display */ .price-display { font-feature-settings: 'tnum'; } @theme inline { --animate-rainbow: rainbow var(--speed, 2s) infinite linear; --color-color-5: var(--color-5); --color-color-4: var(--color-4); --color-color-3: var(--color-3); --color-color-2: var(--color-2); --color-color-1: var(--color-1); @keyframes rainbow { 0% { background-position: 0%; } 100% { background-position: 200%; } } } :root { --color-1: oklch(66.2% 0.225 25.9); --color-2: oklch(60.4% 0.26 302); --color-3: oklch(69.6% 0.165 251); --color-4: oklch(80.2% 0.134 225); --color-5: oklch(90.7% 0.231 133); } .dark { --color-1: oklch(66.2% 0.225 25.9); --color-2: oklch(60.4% 0.26 302); --color-3: oklch(69.6% 0.165 251); --color-4: oklch(80.2% 0.134 225); --color-5: oklch(90.7% 0.231 133); }