@import "tailwindcss"; @tailwind base; @tailwind components; @tailwind utilities; @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&family=Inter:wght@100..900&family=Outfit:wght@100..900&display=swap'); @custom-variant dark (&:is(.dark *)); :root { --font-size: 14px; --background: #ffffff; --foreground: oklch(0.145 0 0); --card: #ffffff; --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: #030213; --primary-foreground: oklch(1 0 0); --secondary: oklch(0.95 0.0058 264.53); --secondary-foreground: #030213; --muted: #ececf0; --muted-foreground: #717182; --accent: #E5195E; --accent-foreground: #ffffff; --destructive: #d4183d; --destructive-foreground: #ffffff; --border: rgba(0, 0, 0, 0.1); --input: transparent; --input-background: #f3f3f5; --switch-background: #cbced4; --font-weight-medium: 500; --font-weight-normal: 400; --ring: oklch(0.708 0 0); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --radius: 0.625rem; --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: #030213; --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.922 0 0); --sidebar-ring: oklch(0.708 0 0); } .dark { --background: #0E0E0E; --foreground: #FFFFFF; --card: #121212; --card-foreground: #FFFFFF; --popover: #121212; --popover-foreground: #FFFFFF; --primary: #FFFFFF; --primary-foreground: #0E0E0E; --secondary: #1a1a1a; --secondary-foreground: #FFFFFF; --muted: #1a1a1a; --muted-foreground: #CCCCCC; --accent: #E5195E; --accent-foreground: #FFFFFF; --destructive: oklch(0.396 0.141 25.723); --destructive-foreground: oklch(0.637 0.237 25.331); --border: rgba(255,255,255,0.05); --input: rgba(255,255,255,0.05); --ring: oklch(0.439 0 0); --font-weight-medium: 500; --font-weight-normal: 400; --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(0.269 0 0); --sidebar-ring: oklch(0.439 0 0); } @theme inline { --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-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-input: var(--input); --color-input-background: var(--input-background); --color-switch-background: var(--switch-background); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; font-family: 'Manrope', 'Inter', 'Outfit', system-ui, sans-serif; } } /** * Base typography. This is not applied to elements which have an ancestor with a Tailwind text class. */ @layer base { :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) { h1 { font-size: var(--text-2xl); font-weight: var(--font-weight-medium); line-height: 1.5; } h2 { font-size: var(--text-xl); font-weight: var(--font-weight-medium); line-height: 1.5; } h3 { font-size: var(--text-lg); font-weight: var(--font-weight-medium); line-height: 1.5; } h4 { font-size: var(--text-base); font-weight: var(--font-weight-medium); line-height: 1.5; } p { font-size: var(--text-base); font-weight: var(--font-weight-normal); line-height: 1.5; } label { font-size: var(--text-base); font-weight: var(--font-weight-medium); line-height: 1.5; } button { font-size: var(--text-base); font-weight: var(--font-weight-medium); line-height: 1.5; } input { font-size: var(--text-base); font-weight: var(--font-weight-normal); line-height: 1.5; } } } /* Custom animations and utilities */ @layer utilities { .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; } .scrollbar-hide::-webkit-scrollbar { display: none; } @keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-33.333333%); } } @keyframes shimmer { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } } @keyframes shimmerSweep { 0% { background-position: -200% center; } 100% { background-position: 200% center; } } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes gradientMove { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes scaleUp { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } } @keyframes orbit { 0% { transform: rotate(0deg) translateX(60px) rotate(0deg); } 100% { transform: rotate(360deg) translateX(60px) rotate(-360deg); } } @keyframes orbitReverse { 0% { transform: rotate(0deg) translateX(50px) rotate(0deg); } 100% { transform: rotate(-360deg) translateX(50px) rotate(360deg); } } @keyframes accordion-down { from { height: 0; } to { height: var(--radix-accordion-content-height); } } @keyframes accordion-up { from { height: var(--radix-accordion-content-height); } to { height: 0; } } .animate-scroll { animation: scroll 20s linear infinite; } .animate-marquee { animation: marquee 30s linear infinite; } .animate-marquee-paused { animation-play-state: paused; } .animate-gradient { animation: gradient 8s ease infinite; } .animate-float { animation: float 3s ease-in-out infinite; } .animate-rotate { animation: rotate 10s linear infinite; } .animate-scale { animation: scaleUp 2s ease-in-out infinite; } .animate-accordion-down { animation: accordion-down 0.2s ease-out; } .animate-accordion-up { animation: accordion-up 0.2s ease-out; } /* Button Elevation Animation System */ .btn-elevation { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; transition: all 150ms ease-out; transform: translateY(0); } .btn-elevation:hover { transform: translateY(-2px); } /* Primary Button - WDI Brand Style with Elevation */ .btn-primary-wdi { background: linear-gradient( 90deg, #E5195E, #E5195E 40%, #ff2970 50%, #E5195E 60%, #E5195E ); background-size: 200% auto; color: white; font-weight: 500; border: none; border-radius: 0.5rem; padding: 0.75rem 1.5rem; font-size: 0.875rem; line-height: 1.25rem; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); transition: all 150ms ease-out; transform: translateY(0); } .btn-primary-wdi:hover { transform: translateY(-2px); box-shadow: 0 10px 25px -3px rgba(229, 25, 94, 0.4), 0 4px 6px -2px rgba(229, 25, 94, 0.25); } .btn-primary-wdi:focus-visible { outline: 2px solid #E5195E; outline-offset: 2px; } /* Secondary Button - Gray Style with Elevation */ .btn-secondary-wdi { background: linear-gradient( 90deg, #374151, #374151 40%, #4b5563 50%, #374151 60%, #374151 ); background-size: 200% auto; color: white; font-weight: 500; border: none; border-radius: 0.5rem; padding: 0.75rem 1.5rem; font-size: 0.875rem; line-height: 1.25rem; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); transition: all 150ms ease-out; transform: translateY(0); } .btn-secondary-wdi:hover { transform: translateY(-2px); box-shadow: 0 10px 25px -3px rgba(55, 65, 81, 0.4), 0 4px 6px -2px rgba(55, 65, 81, 0.25); } .btn-secondary-wdi:focus-visible { outline: 2px solid #374151; outline-offset: 2px; } /* Outline Button - WDI Style with Elevation */ .btn-outline-wdi { background: transparent; color: #fff; font-weight: 500; border: 1px solid rgba(229, 25, 94, 0.3); border-radius: 0.5rem; padding: 0.75rem 1.5rem; font-size: 0.875rem; line-height: 1.25rem; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); transition: all 150ms ease-out; transform: translateY(0); } .btn-outline-wdi svg { color: #E5195E; } .btn-outline-wdi:hover { transform: translateY(-2px); background: rgba(229, 25, 94, 0.05); border-color: #E5195E; box-shadow: 0 10px 25px -3px rgba(229, 25, 94, 0.25), 0 4px 6px -2px rgba(229, 25, 94, 0.15); } .btn-outline-wdi:focus-visible { outline: 2px solid #E5195E; outline-offset: 2px; } /* Ghost Button - Subtle Style with Elevation */ .btn-ghost-wdi { background: transparent; color: #FFFFFF; font-weight: 500; border: none; border-radius: 0.5rem; padding: 0.75rem 1.5rem; font-size: 0.875rem; line-height: 1.25rem; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); transition: all 150ms ease-out; transform: translateY(0); } .btn-ghost-wdi:hover { transform: translateY(-2px); background: rgba(255, 255, 255, 0.1); box-shadow: 0 10px 25px -3px rgba(255, 255, 255, 0.15), 0 4px 6px -2px rgba(255, 255, 255, 0.1); } .btn-ghost-wdi:focus-visible { outline: 2px solid rgba(255, 255, 255, 0.5); outline-offset: 2px; } /* Link Button - Text Style with Subtle Elevation */ .btn-link-wdi { background: transparent; color: #E5195E; font-weight: 500; border: none; padding: 0.5rem; font-size: 0.875rem; line-height: 1.25rem; text-decoration: underline; text-underline-offset: 4px; transition: all 150ms ease-out; transform: translateY(0); } .btn-link-wdi:hover { transform: translateY(-1px); color: #ff2970; text-decoration-color: #ff2970; } .btn-link-wdi:focus-visible { outline: 2px solid #E5195E; outline-offset: 2px; } /* Destructive Button with Elevation */ .btn-destructive-wdi { background: linear-gradient( 90deg, #dc2626, #dc2626 40%, #ef4444 50%, #dc2626 60%, #dc2626 ); background-size: 200% auto; color: white; font-weight: 500; border: none; border-radius: 0.5rem; padding: 0.75rem 1.5rem; font-size: 0.875rem; line-height: 1.25rem; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); transition: all 150ms ease-out; transform: translateY(0); } .btn-destructive-wdi:hover { transform: translateY(-2px); box-shadow: 0 10px 25px -3px rgba(220, 38, 38, 0.4), 0 4px 6px -2px rgba(220, 38, 38, 0.25); } .btn-destructive-wdi:focus-visible { outline: 2px solid #dc2626; outline-offset: 2px; } /* Size variants */ .btn-sm { padding: 0.5rem 1rem; font-size: 0.75rem; line-height: 1rem; } .btn-lg { padding: 1rem 2rem; font-size: 1rem; line-height: 1.5rem; } .btn-xl { padding: 1.25rem 2.5rem; font-size: 1.125rem; line-height: 1.75rem; } /* Animation delays */ .delay-300 { animation-delay: 300ms; } .delay-500 { animation-delay: 500ms; } .delay-700 { animation-delay: 700ms; } .delay-1000 { animation-delay: 1000ms; } .delay-1200 { animation-delay: 1200ms; } .delay-1500 { animation-delay: 1500ms; } /* Custom WDI Grey Background */ .bg-wdi-grey { background-color: #0E0E0E; } /* Navigation hover improvements */ .nav-dropdown-trigger { position: relative; } .nav-dropdown-trigger::after { content: ''; position: absolute; bottom: -10px; left: -10px; right: -10px; height: 20px; pointer-events: auto; z-index: 10; } .nav-mega-menu { margin-top: -10px; padding-top: 10px; } } html { font-size: var(--font-size); } h1{ line-height: 54px; } .CardContentOverride:last-child { padding-bottom: 0 !important; } button{ cursor: pointer; }