@import "tailwindcss"; @custom-variant dark (&:is(.dark *)); :root { --radius: 0.625rem; --wedding-ivory: #f5f0e8; --wedding-cream: #ede5d9; --wedding-ink: #1d1b18; --wedding-terracotta: #a65f46; --wedding-olive: #3e4938; --wedding-white: #faf7f1; --wedding-line: rgb(166 95 70 / 0.35); --background: oklch(1 0 0); --foreground: oklch(0.129 0.042 264.695); --card: oklch(1 0 0); --card-foreground: oklch(0.129 0.042 264.695); --popover: oklch(1 0 0); --popover-foreground: oklch(0.129 0.042 264.695); --primary: oklch(0.208 0.042 265.755); --primary-foreground: oklch(0.984 0.003 247.858); --secondary: oklch(0.968 0.007 247.896); --secondary-foreground: oklch(0.208 0.042 265.755); --muted: oklch(0.968 0.007 247.896); --muted-foreground: oklch(0.554 0.046 257.417); --accent: oklch(0.968 0.007 247.896); --accent-foreground: oklch(0.208 0.042 265.755); --destructive: oklch(0.577 0.245 27.325); --border: oklch(0.929 0.013 255.508); --input: oklch(0.929 0.013 255.508); --ring: oklch(0.704 0.04 256.788); } @theme inline { --breakpoint-wedding-layout: 56.25rem; --breakpoint-wedding-phone: 37.5rem; --container-wedding-content: 80rem; --spacing-wedding-gutter-mobile: 1.5rem; --spacing-wedding-gutter-phone: 2rem; --spacing-wedding-gutter-desktop: 3rem; --spacing-wedding-gutter-wide: 4rem; --spacing-wedding-section: clamp(6.25rem, 10vw, 9.375rem); --color-wedding-ivory: var(--wedding-ivory); --color-wedding-cream: var(--wedding-cream); --color-wedding-ink: var(--wedding-ink); --color-wedding-terracotta: var(--wedding-terracotta); --color-wedding-olive: var(--wedding-olive); --color-wedding-white: var(--wedding-white); --color-wedding-line: var(--wedding-line); --font-wedding-display: var(--font-bodoni-moda); --font-wedding-ui: var(--font-montserrat); --text-wedding-hero: clamp(3.75rem, 9vw, 8.4375rem); --text-wedding-page: clamp(2.875rem, 6vw, 5.125rem); --text-wedding-section: clamp(2.125rem, 4vw, 3.75rem); --text-wedding-medium: clamp(1.5rem, 2.5vw, 2.25rem); --text-wedding-body: clamp(0.9375rem, 1.2vw, 1.125rem); --text-wedding-label: 0.75rem; --tracking-wedding-label: 0.18em; --leading-wedding-display: 1; --leading-wedding-body: 1.6; --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); } .dark { --background: oklch(0.129 0.042 264.695); --foreground: oklch(0.984 0.003 247.858); --card: oklch(0.208 0.042 265.755); --card-foreground: oklch(0.984 0.003 247.858); --popover: oklch(0.208 0.042 265.755); --popover-foreground: oklch(0.984 0.003 247.858); --primary: oklch(0.929 0.013 255.508); --primary-foreground: oklch(0.208 0.042 265.755); --secondary: oklch(0.279 0.041 260.031); --secondary-foreground: oklch(0.984 0.003 247.858); --muted: oklch(0.279 0.041 260.031); --muted-foreground: oklch(0.704 0.04 256.788); --accent: oklch(0.279 0.041 260.031); --accent-foreground: oklch(0.984 0.003 247.858); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); --ring: oklch(0.551 0.027 264.364); } /* Public wedding pages opt into these aliases through .wedding-theme only. */ .wedding-theme { --background: var(--wedding-ivory); --foreground: var(--wedding-ink); --card: var(--wedding-ivory); --card-foreground: var(--wedding-ink); --popover: var(--wedding-ivory); --popover-foreground: var(--wedding-ink); --primary: var(--wedding-terracotta); --primary-foreground: var(--wedding-white); --secondary: var(--wedding-cream); --secondary-foreground: var(--wedding-ink); --muted: var(--wedding-cream); --muted-foreground: var(--wedding-ink); --accent: var(--wedding-cream); --accent-foreground: var(--wedding-ink); --border: var(--wedding-line); --input: var(--wedding-line); --ring: var(--wedding-terracotta); background-color: var(--wedding-ivory); color: var(--wedding-ink); font-family: var(--font-montserrat), sans-serif; } @layer components { .wedding-section-label { color: var(--wedding-terracotta); font-family: var(--font-montserrat), sans-serif; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.18em; line-height: 1.2; text-transform: uppercase; } .wedding-display-heading { font-family: var(--font-bodoni-moda), serif; font-weight: 400; letter-spacing: -0.035em; line-height: 1; } .wedding-divider { border-color: var(--wedding-line); } .wedding-primary-cta { align-items: center; background-color: var(--wedding-terracotta); color: var(--wedding-white); display: inline-flex; font-family: var(--font-montserrat), sans-serif; font-size: 0.75rem; font-weight: 500; justify-content: center; letter-spacing: 0.18em; min-height: 2.75rem; padding: 0.75rem 1.5rem; text-transform: uppercase; transition: background-color 150ms ease, color 150ms ease; } .wedding-primary-cta:hover { background-color: var(--wedding-olive); } .wedding-text-link { color: var(--wedding-terracotta); font-family: var(--font-montserrat), sans-serif; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; } } .wedding-theme :focus-visible { outline: 2px solid var(--wedding-terracotta); outline-offset: 3px; } @media (prefers-reduced-motion: reduce) { .wedding-theme *, .wedding-theme *::before, .wedding-theme *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; } } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; font-family: Arial, Helvetica, sans-serif; } }