/* ========================================
   Lovel Up Website - Playful & Colorful Styles
   ======================================== */

/* CSS Variables - Dark Mode (Default) */
:root {
    /* Brand colors */
    --coral: #FF6B6B;
    --electric-purple: #A855F7;
    --sunny-yellow: #FBBF24;
    --mint-green: #34D399;
    --sky-blue: #38BDF8;
    --hot-pink: #EC4899;
    --deep-purple: #1E1B4B;
    --wingman-orange: #F97316;
    --glow-pink: rgba(236, 72, 153, 0.5);
    --glow-purple: rgba(168, 85, 247, 0.5);

    /* Theme colors - Dark Mode */
    --bg-primary: #0f0f1a;
    --bg-secondary: #1a1a2e;
    --bg-tertiary: #252540;
    --text-primary: #f9fafb;
    --text-secondary: #d1d5db;
    --text-tertiary: #9ca3af;
    --border-color: #374151;
    --card-bg: #1a1a2e;
    --card-shadow: rgba(0, 0, 0, 0.3);
    --navbar-bg: rgba(15, 15, 26, 0.95);
}

/* Smooth scrolling with reduced motion support */
@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}

/* ========================================
   Accessibility Utilities
   ======================================== */

/* Screen reader only - visually hidden but accessible */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Focus visible styles for keyboard navigation */
:focus-visible {
    outline: 3px solid var(--hot-pink);
    outline-offset: 2px;
}

/* Remove default focus outline when not using keyboard */
:focus:not(:focus-visible) {
    outline: none;
}

/* Improved focus for interactive elements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--hot-pink);
    outline-offset: 2px;
    border-radius: 4px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    :focus-visible {
        outline: 3px solid currentColor;
    }
}

/* Reduce motion for those who prefer it */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Base Styles */
* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    background-color: var(--bg-primary);
    color: var(--text-primary);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Theme transition for smooth switching */
*, *::before, *::after {
    transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

/* ========================================
   Navigation Bar
   ======================================== */

#navbar {
    background: transparent;
}

#navbar.scrolled {
    background: var(--navbar-bg);
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 20px var(--card-shadow);
}

#navbar.scrolled .nav-logo {
    color: var(--text-primary);
}

#navbar.scrolled .nav-link {
    color: var(--text-secondary);
}

#navbar.scrolled .nav-link:hover {
    color: var(--hot-pink);
}

#navbar.scrolled #mobile-menu-btn {
    color: var(--text-secondary);
}

.nav-logo {
    color: white;
    transition: color 0.3s ease;
}

.nav-link {
    color: white;
    font-weight: 500;
    transition: all 0.3s ease;
    padding: 0.5rem 1rem;
    border-radius: 20px;
}

.nav-link:hover {
    color: white;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
}

.nav-link::after {
    display: none; /* Remove underline */
}

.nav-cta {
    background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
    color: white;
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    font-weight: 600;
    transition: all 0.3s ease;
    animation: navCtaPulse 2s ease-in-out infinite;
}

@keyframes navCtaPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.4); }
    50% { box-shadow: 0 0 0 8px rgba(236, 72, 153, 0); }
}

.nav-cta:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 15px rgba(236, 72, 153, 0.4);
    animation: none;
}

#mobile-menu-btn {
    color: white;
    transition: color 0.3s ease;
}

/* ========================================
   Hero Section
   ======================================== */

.hero-gradient {
    background: radial-gradient(at 0% 0%, hsla(253,16%,7%,1) 0, transparent 50%), 
                radial-gradient(at 50% 0%, hsla(225,39%,30%,1) 0, transparent 50%), 
                radial-gradient(at 100% 0%, hsla(339,49%,30%,1) 0, transparent 50%);
    background-size: 200% 200%;
    animation: gradientShift 20s ease infinite;
    background-color: #1a1a2e; /* Fallback/Base */
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.text-shadow {
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

/* Gradient text effect */
.gradient-text {
    background: linear-gradient(135deg, var(--sunny-yellow) 0%, var(--coral) 50%, var(--hot-pink) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Animated gradient text */
.gradient-text-animated {
    background: linear-gradient(90deg, var(--sunny-yellow), var(--coral), var(--hot-pink), var(--electric-purple), var(--sunny-yellow));
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradientText 4s linear infinite;
}

@keyframes gradientText {
    0% { background-position: 0% center; }
    100% { background-position: 200% center; }
}

/* Floating Shapes */
.floating-shapes {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.shape {
    position: absolute;
    font-size: 2rem;
    opacity: 0.2;
    animation: float 6s ease-in-out infinite;
}

.shape-heart { top: 20%; left: 10%; animation-delay: 0s; }
.shape-controller { top: 30%; right: 15%; animation-delay: 1s; font-size: 3rem; }
.shape-star { bottom: 30%; left: 20%; animation-delay: 2s; }
.shape-heart-2 { bottom: 20%; right: 10%; animation-delay: 3s; }
.shape-sparkle { top: 15%; right: 30%; animation-delay: 4s; }

@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(5deg); }
}

/* Slow Bounce Animation */
.animate-bounce-slow {
    animation: bounceSlow 3s ease-in-out infinite;
}

@keyframes bounceSlow {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* CTA Button */
.cta-button {
    background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 20px var(--glow-pink), 0 0 40px rgba(236, 72, 153, 0.2);
}

.cta-button::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--electric-purple), var(--hot-pink));
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* Shimmer effect */
.cta-button::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    animation: shimmer 3s infinite;
}

@keyframes shimmer {
    0% { left: -100%; }
    50%, 100% { left: 100%; }
}

.cta-button:hover::before {
    opacity: 1;
}

.cta-button:hover {
    animation: wiggle 0.5s ease;
    box-shadow: 0 6px 30px var(--glow-pink), 0 0 60px rgba(236, 72, 153, 0.3);
    transform: translateY(-2px);
}

@keyframes wiggle {
    0%, 100% { transform: translateY(-2px) scale(1.02) rotate(0deg); }
    25% { transform: translateY(-2px) scale(1.02) rotate(-1deg); }
    75% { transform: translateY(-2px) scale(1.02) rotate(1deg); }
}

/* ========================================
   Custom Color Classes (for Tailwind CDN)
   ======================================== */

/* Text Colors */
.text-coral { color: var(--coral); }
.text-sky-blue { color: var(--sky-blue); }
.text-hot-pink { color: var(--hot-pink); }
.text-sunny-yellow { color: var(--sunny-yellow); }
.text-electric-purple { color: var(--electric-purple); }
.text-mint-green { color: var(--mint-green); }

/* Background Colors - 10% opacity */
.bg-coral\/10 { background-color: rgba(255, 107, 107, 0.1); }
.bg-sky-blue\/10 { background-color: rgba(56, 189, 248, 0.1); }
.bg-hot-pink\/10 { background-color: rgba(236, 72, 153, 0.1); }
.bg-sunny-yellow\/10 { background-color: rgba(251, 191, 36, 0.1); }
.bg-electric-purple\/10 { background-color: rgba(168, 85, 247, 0.1); }
.bg-mint-green\/10 { background-color: rgba(52, 211, 153, 0.1); }

/* Background Colors - 20% opacity */
.bg-coral\/20 { background-color: rgba(255, 107, 107, 0.2); }
.bg-sky-blue\/20 { background-color: rgba(56, 189, 248, 0.2); }
.bg-hot-pink\/20 { background-color: rgba(236, 72, 153, 0.2); }
.bg-sunny-yellow\/20 { background-color: rgba(251, 191, 36, 0.2); }
.bg-electric-purple\/20 { background-color: rgba(168, 85, 247, 0.2); }
.bg-mint-green\/20 { background-color: rgba(52, 211, 153, 0.2); }

/* Background Colors - 30% opacity */
.bg-sunny-yellow\/30 { background-color: rgba(251, 191, 36, 0.3); }

/* Background Colors - 40% opacity */
.bg-coral\/40 { background-color: rgba(255, 107, 107, 0.4); }
.bg-sky-blue\/40 { background-color: rgba(56, 189, 248, 0.4); }
.bg-hot-pink\/40 { background-color: rgba(236, 72, 153, 0.4); }
.bg-sunny-yellow\/40 { background-color: rgba(251, 191, 36, 0.4); }
.bg-electric-purple\/40 { background-color: rgba(168, 85, 247, 0.4); }
.bg-mint-green\/40 { background-color: rgba(52, 211, 153, 0.4); }

/* Border Colors */
.border-electric-purple\/20 { border-color: rgba(168, 85, 247, 0.2); }
.border-sunny-yellow\/30 { border-color: rgba(251, 191, 36, 0.3); }

/* Section Label Badges - ensure they appear above titles */
div.inline-block.rounded-full.mb-4 {
    display: block !important;
    width: fit-content;
    margin-left: 0;
    margin-right: 0;
}

/* Center badges only when inside text-center container */
.text-center div.inline-block.rounded-full.mb-4,
div.text-center > div.inline-block.rounded-full.mb-4 {
    margin-left: auto;
    margin-right: auto;
}

/* Dark mode adjustments - slightly increase opacity for visibility */
html[data-theme="dark"] .bg-coral\/10 { background-color: rgba(255, 107, 107, 0.15); }
html[data-theme="dark"] .bg-sky-blue\/10 { background-color: rgba(56, 189, 248, 0.15); }
html[data-theme="dark"] .bg-hot-pink\/10 { background-color: rgba(236, 72, 153, 0.15); }
html[data-theme="dark"] .bg-sunny-yellow\/10 { background-color: rgba(251, 191, 36, 0.15); }
html[data-theme="dark"] .bg-electric-purple\/10 { background-color: rgba(168, 85, 247, 0.15); }
html[data-theme="dark"] .bg-mint-green\/10 { background-color: rgba(52, 211, 153, 0.15); }

html[data-theme="dark"] .bg-coral\/20 { background-color: rgba(255, 107, 107, 0.25); }
html[data-theme="dark"] .bg-sky-blue\/20 { background-color: rgba(56, 189, 248, 0.25); }
html[data-theme="dark"] .bg-hot-pink\/20 { background-color: rgba(236, 72, 153, 0.25); }
html[data-theme="dark"] .bg-sunny-yellow\/20 { background-color: rgba(251, 191, 36, 0.25); }
html[data-theme="dark"] .bg-electric-purple\/20 { background-color: rgba(168, 85, 247, 0.25); }
html[data-theme="dark"] .bg-mint-green\/20 { background-color: rgba(52, 211, 153, 0.25); }

html[data-theme="dark"] .border-electric-purple\/20 { border-color: rgba(168, 85, 247, 0.3); }
html[data-theme="dark"] .border-sunny-yellow\/30 { border-color: rgba(251, 191, 36, 0.4); }

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .bg-coral\/10 { background-color: rgba(255, 107, 107, 0.15); }
    html:not([data-theme="light"]) .bg-sky-blue\/10 { background-color: rgba(56, 189, 248, 0.15); }
    html:not([data-theme="light"]) .bg-hot-pink\/10 { background-color: rgba(236, 72, 153, 0.15); }
    html:not([data-theme="light"]) .bg-sunny-yellow\/10 { background-color: rgba(251, 191, 36, 0.15); }
    html:not([data-theme="light"]) .bg-electric-purple\/10 { background-color: rgba(168, 85, 247, 0.15); }
    html:not([data-theme="light"]) .bg-mint-green\/10 { background-color: rgba(52, 211, 153, 0.15); }

    html:not([data-theme="light"]) .bg-coral\/20 { background-color: rgba(255, 107, 107, 0.25); }
    html:not([data-theme="light"]) .bg-sky-blue\/20 { background-color: rgba(56, 189, 248, 0.25); }
    html:not([data-theme="light"]) .bg-hot-pink\/20 { background-color: rgba(236, 72, 153, 0.25); }
    html:not([data-theme="light"]) .bg-sunny-yellow\/20 { background-color: rgba(251, 191, 36, 0.25); }
    html:not([data-theme="light"]) .bg-electric-purple\/20 { background-color: rgba(168, 85, 247, 0.25); }
    html:not([data-theme="light"]) .bg-mint-green\/20 { background-color: rgba(52, 211, 153, 0.25); }

    html:not([data-theme="light"]) .border-electric-purple\/20 { border-color: rgba(168, 85, 247, 0.3); }
    html:not([data-theme="light"]) .border-sunny-yellow\/30 { border-color: rgba(251, 191, 36, 0.4); }
}

/* Coming Soon Badge */
.coming-soon-badge {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 9999px;
    color: white;
    font-weight: 500;
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

.coming-soon-badge:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* ========================================
   Phone Mockups
   ======================================== */

/* ========================================
   Hero Phone Mockup - Animated Flip
   ======================================== */

.phone-mockup-hero {
    perspective: 1200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.phone-flip-container {
    width: 280px;
    height: 560px;
    position: relative;
    transform-style: preserve-3d;
    animation: phoneFlip 8s ease-in-out infinite;
}

.phone-face {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    transform-style: preserve-3d;
}

.phone-face-dating {
    transform: rotateY(0deg);
}

.phone-face-wingman {
    transform: rotateY(180deg);
}

.phone-frame-hero {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 40px;
    padding: 12px;
    box-shadow:
        0 25px 50px rgba(0, 0, 0, 0.3),
        inset 0 0 0 2px rgba(255, 255, 255, 0.1),
        0 0 80px rgba(168, 85, 247, 0.3);
    position: relative;
}

/* Dating mode glow (purple/pink) */
.phone-face-dating .phone-frame-hero::before {
    content: '';
    position: absolute;
    inset: -3px;
    background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink), var(--sky-blue));
    border-radius: 42px;
    z-index: -1;
    opacity: 0.6;
    filter: blur(20px);
    animation: datingGlow 3s ease-in-out infinite alternate;
}

/* Wingman mode glow (orange/yellow) */
.phone-face-wingman .phone-frame-hero::before {
    content: '';
    position: absolute;
    inset: -3px;
    background: linear-gradient(135deg, var(--wingman-orange), var(--sunny-yellow), var(--coral));
    border-radius: 42px;
    z-index: -1;
    opacity: 0.6;
    filter: blur(20px);
    animation: wingmanGlow 3s ease-in-out infinite alternate;
}

@keyframes datingGlow {
    0% { opacity: 0.4; }
    100% { opacity: 0.7; }
}

@keyframes wingmanGlow {
    0% { opacity: 0.4; }
    100% { opacity: 0.7; }
}

.phone-screen-dating {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--electric-purple) 0%, var(--hot-pink) 100%);
    border-radius: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.phone-screen-wingman {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--wingman-orange) 0%, var(--sunny-yellow) 100%);
    border-radius: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.phone-content-hero {
    text-align: center;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Flip animation - shows each side for ~3.5 seconds */
@keyframes phoneFlip {
    0%, 40% { transform: rotateY(0deg) translateY(0); }
    45% { transform: rotateY(90deg) translateY(-10px); }
    50%, 90% { transform: rotateY(180deg) translateY(0); }
    95% { transform: rotateY(270deg) translateY(-10px); }
    100% { transform: rotateY(360deg) translateY(0); }
}

/* Mode indicator dots */
.mode-indicator {
    display: flex;
    gap: 0.75rem;
}

.mode-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.mode-dot-dating {
    background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink));
    animation: dotPulseDating 8s ease-in-out infinite;
}

.mode-dot-wingman {
    background: linear-gradient(135deg, var(--wingman-orange), var(--sunny-yellow));
    animation: dotPulseWingman 8s ease-in-out infinite;
}

@keyframes dotPulseDating {
    0%, 40% { transform: scale(1.3); opacity: 1; }
    45%, 95% { transform: scale(1); opacity: 0.4; }
    100% { transform: scale(1.3); opacity: 1; }
}

@keyframes dotPulseWingman {
    0%, 40% { transform: scale(1); opacity: 0.4; }
    45%, 95% { transform: scale(1.3); opacity: 1; }
    100% { transform: scale(1); opacity: 0.4; }
}

/* Original phone mockup (for other sections) */
.phone-mockup {
    perspective: 1000px;
    filter: drop-shadow(0 0 30px rgba(168, 85, 247, 0.3));
}

.phone-frame {
    width: 220px;
    height: 440px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 32px;
    padding: 10px;
    box-shadow:
        0 20px 40px rgba(0, 0, 0, 0.25),
        inset 0 0 0 2px rgba(255, 255, 255, 0.1),
        0 0 60px rgba(168, 85, 247, 0.2);
    animation: phoneFloat 4s ease-in-out infinite;
    position: relative;
}

/* Phone glow effect */
.phone-frame::before {
    content: '';
    position: absolute;
    inset: -2px;
    background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink), var(--sky-blue));
    border-radius: 34px;
    z-index: -1;
    opacity: 0.5;
    filter: blur(15px);
    animation: phoneGlow 3s ease-in-out infinite alternate;
}

@keyframes phoneGlow {
    0% { opacity: 0.3; }
    100% { opacity: 0.6; }
}

@keyframes phoneFloat {
    0%, 100% { transform: translateY(0) rotateY(-5deg); }
    50% { transform: translateY(-15px) rotateY(5deg); }
}

.phone-screen {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--electric-purple) 0%, var(--hot-pink) 100%);
    border-radius: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.phone-content {
    text-align: center;
    padding: 20px;
}

/* Small Phone Mockup */
.phone-mockup-small .phone-frame-small {
    width: 200px;
    height: 400px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 30px;
    padding: 8px;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2), inset 0 0 0 2px rgba(255, 255, 255, 0.1);
}

.phone-screen-small {
    width: 100%;
    height: 100%;
    border-radius: 24px;
    overflow: hidden;
}

/* ========================================
   App Screenshots Gallery
   ======================================== */

.screenshots-gallery {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    padding: 2rem 0.5rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    justify-content: flex-start;
}

@media (min-width: 1024px) {
    .screenshots-gallery {
        justify-content: center;
        overflow-x: visible;
        flex-wrap: wrap;
    }
}

.screenshots-gallery::-webkit-scrollbar {
    display: none;
}

.screenshot-item {
    flex-shrink: 0;
    scroll-snap-align: center;
    text-align: center;
}

.screenshot-phone {
    width: 160px;
    height: 320px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 24px;
    padding: 6px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.screenshot-item:hover .screenshot-phone {
    transform: translateY(-15px) scale(1.15);
    box-shadow: 0 25px 50px rgba(168, 85, 247, 0.3);
    z-index: 10;
}

.screenshot-item {
    position: relative;
    z-index: 1;
}

.screenshot-item:hover {
    z-index: 20;
}

.screenshot-featured:hover .screenshot-phone {
    box-shadow: 0 15px 40px rgba(168, 85, 247, 0.3);
}

.screenshot-frame {
    width: 100%;
    height: 100%;
    background: white;
    border-radius: 20px;
    overflow: hidden;
}

.screenshot-screen {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.screenshot-label {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
}

/* ========================================
   Profile Preview Phone
   ======================================== */

.profile-preview-phone {
    width: 240px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 32px;
    padding: 10px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    animation: phoneFloat 4s ease-in-out infinite;
}

.profile-preview-frame {
    width: 100%;
    background: white;
    border-radius: 24px;
    overflow: hidden;
}

.profile-preview-screen {
    padding: 1rem;
}

.profile-preview-header {
    position: relative;
    width: 100%;
    padding-bottom: 1rem;
    text-align: center;
}

.profile-preview-photo {
    width: 80px;
    height: 80px;
    margin: 0 auto;
    background: linear-gradient(135deg, var(--electric-purple) 0%, var(--hot-pink) 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
}

.profile-preview-verified {
    position: absolute;
    bottom: 1rem;
    left: 50%;
    transform: translateX(30px);
    width: 20px;
    height: 20px;
    background: var(--mint-green);
    color: white;
    border-radius: 50%;
    font-size: 0.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

.profile-preview-name {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    text-align: center;
}

.profile-preview-location {
    font-size: 0.75rem;
    color: #6b7280;
    text-align: center;
    margin-bottom: 0.75rem;
}

.profile-preview-section {
    background: #f9fafb;
    border-radius: 12px;
    padding: 0.5rem;
    margin-bottom: 0.5rem;
}

.profile-preview-spotify {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.profile-preview-voice {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.profile-preview-drawing {
    padding: 0.25rem;
}

/* ========================================
   Feature Cards
   ======================================== */

.feature-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.feature-card {
    background: white;
    padding: 1.5rem;
    border-radius: 1.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    border: 2px solid transparent;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative;
    height: 100%;
    overflow: hidden;
}

/* Gradient border on hover */
.feature-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 1.5rem;
    padding: 2px;
    background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink), var(--coral));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 20px 40px rgba(168, 85, 247, 0.15);
}

.feature-card:hover::before {
    opacity: 1;
}

.feature-card-highlight {
    border-color: var(--mint-green);
    background: linear-gradient(to bottom right, rgba(52, 211, 153, 0.05), white);
}

.feature-badge {
    position: absolute;
    top: -8px;
    right: 16px;
    background: var(--mint-green);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: bold;
}

.feature-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.learn-more {
    display: inline-block;
    margin-top: 1rem;
    color: var(--electric-purple);
    font-weight: 600;
    font-size: 0.875rem;
    transition: transform 0.3s ease;
}

.feature-card:hover .learn-more {
    transform: translateX(4px);
}

/* ========================================
   Wingman Section
   ======================================== */

.wingman-card {
    background: white;
    padding: 1.5rem;
    border-radius: 1.5rem;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.wingman-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.wingman-step {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem;
    background: white;
    border-radius: 1rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.step-num {
    width: 32px;
    height: 32px;
    min-width: 32px;
    background: linear-gradient(135deg, var(--wingman-orange), var(--sunny-yellow));
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 0.875rem;
}

/* ========================================
   Creative Profile Cards
   ======================================== */

.creative-card {
    background: white;
    border-radius: 20px;
    padding: 1.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    border: 1px solid #f3f4f6;
}

.creative-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}

.creative-card-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.creative-preview {
    margin-top: 0.5rem;
}

/* Piano Keyboard - Z-Stack Layout */
.piano-keyboard {
    position: relative;
    display: flex;
    justify-content: center;
    height: 50px;
}

.piano-white-keys {
    display: flex;
    gap: 2px;
    position: relative;
    z-index: 1;
}

.piano-black-keys {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 158px;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.piano-key {
    border-radius: 0 0 4px 4px;
    transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.piano-key.white {
    width: 22px;
    height: 50px;
    background: linear-gradient(180deg, #ffffff 0%, #f0f0f0 90%, #e0e0e0 100%);
    border: 1px solid #ccc;
    box-shadow: 0 2px 3px rgba(0,0,0,0.1), inset 0 -2px 2px rgba(0,0,0,0.05);
}

.piano-key.white:hover {
    transform: translateY(2px);
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

.piano-key.black {
    position: absolute;
    width: 14px;
    height: 32px;
    background: linear-gradient(180deg, #444 0%, #222 50%, #111 100%);
    border-radius: 0 0 3px 3px;
    box-shadow: 0 3px 5px rgba(0,0,0,0.4), inset 0 -1px 2px rgba(255,255,255,0.1);
    pointer-events: auto;
}

.piano-key.black:hover {
    transform: translateY(1px);
    box-shadow: 0 2px 3px rgba(0,0,0,0.4);
}

/* Voice Bars */
.voice-bar {
    width: 4px;
    background: linear-gradient(180deg, var(--sky-blue) 0%, #3B82F6 100%);
    border-radius: 2px;
    animation: voicePulse 1s ease-in-out infinite;
}

.voice-bar:nth-child(1) { animation-delay: 0s; }
.voice-bar:nth-child(2) { animation-delay: 0.1s; }
.voice-bar:nth-child(3) { animation-delay: 0.2s; }
.voice-bar:nth-child(4) { animation-delay: 0.3s; }
.voice-bar:nth-child(5) { animation-delay: 0.4s; }
.voice-bar:nth-child(6) { animation-delay: 0.5s; }
.voice-bar:nth-child(7) { animation-delay: 0.6s; }
.voice-bar:nth-child(8) { animation-delay: 0.7s; }
.voice-bar:nth-child(9) { animation-delay: 0.8s; }

@keyframes voicePulse {
    0%, 100% { transform: scaleY(1); }
    50% { transform: scaleY(0.6); }
}

/* ========================================
   Game Showcase
   ======================================== */

.game-showcase {
    text-align: center;
}

.game-device {
    width: 180px;
    height: 220px;
    margin: 0 auto;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 24px;
    padding: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    transition: transform 0.3s ease;
}

.game-showcase:hover .game-device {
    transform: scale(1.05) rotate(-2deg);
}

.game-screen {
    width: 100%;
    height: 100%;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.game-tag {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    background: #f3f4f6;
    border-radius: 9999px;
    font-size: 0.7rem;
    color: #6b7280;
}

.game-score {
    position: absolute;
    bottom: 8px;
    left: 50%;
    transform: translateX(-50%);
}

/* Snake Game Preview */
.snake-preview {
    padding: 12px;
    width: 100%;
    height: calc(100% - 24px);
}

.snake-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: repeat(6, 1fr);
    gap: 2px;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 4px;
    padding: 4px;
}

.snake-segment {
    background: var(--mint-green);
    border-radius: 2px;
}

.snake-segment.snake-head {
    background: #10B981;
    position: relative;
}

.snake-segment.snake-head::after {
    content: '';
    position: absolute;
    right: 2px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 3px;
    background: white;
    border-radius: 50%;
}

.snake-food {
    background: var(--coral);
    border-radius: 50%;
    animation: pulse 1s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(0.8); opacity: 1; }
    50% { transform: scale(1); opacity: 0.8; }
}

/* Simon Says Preview */
.simon-preview {
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: calc(100% - 24px);
}

.simon-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    width: 100px;
    height: 100px;
}

.simon-btn {
    border-radius: 8px;
    opacity: 0.6;
    transition: all 0.3s ease;
}

.simon-btn.active {
    opacity: 1;
    box-shadow: 0 0 15px currentColor;
}

.simon-green {
    background: var(--mint-green);
    border-top-left-radius: 50%;
}

.simon-red {
    background: var(--coral);
    border-top-right-radius: 50%;
}

.simon-yellow {
    background: var(--sunny-yellow);
    border-bottom-left-radius: 50%;
}

.simon-blue {
    background: var(--sky-blue);
    border-bottom-right-radius: 50%;
}

/* Memory Cards Preview */
.memory-preview {
    padding: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: calc(100% - 24px);
}

.memory-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

.memory-card {
    width: 36px;
    height: 44px;
    background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink));
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: white;
    position: relative;
}

.memory-card::before {
    content: '?';
    font-weight: bold;
    font-size: 1.25rem;
}

.memory-card.flipped {
    background: white;
    color: var(--coral);
}

.memory-card.flipped::before {
    display: none;
}

.font-pixel {
    font-family: 'Press Start 2P', monospace;
}

/* ========================================
   Games Carousel
   ======================================== */

.game-category-tab {
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    background: #f3f4f6;
    color: #6b7280;
    font-weight: 500;
    font-size: 0.875rem;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.game-category-tab:hover {
    background: #e5e7eb;
}

.game-category-tab.active {
    background: linear-gradient(135deg, var(--coral) 0%, var(--hot-pink) 100%);
    color: white;
}

.games-carousel-container {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    overflow: visible;
    padding: 0.5rem 0;
}

.games-carousel {
    flex: 1;
    overflow: visible;
    padding: 1rem 0;
}

.games-slide {
    display: none;
    animation: fadeIn 0.4s ease;
    padding: 0.5rem;
}

.games-slide.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

.carousel-arrow {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: white;
    border: 2px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
    color: #6b7280;
}

.carousel-arrow:hover {
    background: var(--coral);
    border-color: var(--coral);
    color: white;
    transform: scale(1.1);
}

.carousel-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #d1d5db;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.carousel-dot:hover {
    background: #9ca3af;
}

.carousel-dot.active {
    background: var(--coral);
    transform: scale(1.2);
}

/* Game Cards */
.game-card {
    background: white;
    border-radius: 16px;
    padding: 1.25rem;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    border: 1px solid #f3f4f6;
}

.game-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}

.game-card-icon {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    color: white;
}

.game-card-more {
    background: linear-gradient(135deg, rgba(236, 72, 153, 0.1) 0%, rgba(255, 107, 107, 0.1) 100%);
    border: 2px dashed var(--hot-pink);
}

.game-card-more:hover {
    background: linear-gradient(135deg, rgba(236, 72, 153, 0.2) 0%, rgba(255, 107, 107, 0.2) 100%);
}

/* ========================================
   Matching Mode Tabs
   ======================================== */

.mode-tab {
    padding: 0.75rem 1.5rem;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.1);
    color: white;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.mode-tab:hover {
    background: rgba(255, 255, 255, 0.2);
}

.mode-tab.active {
    background: white;
    color: var(--deep-purple);
}

.mode-content {
    display: none;
    animation: fadeIn 0.5s ease;
}

.mode-content.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.mode-preview {
    display: inline-block;
}

/* Match-3 Glow Effect */
.glow-effect {
    animation: pulse-glow 1.5s ease-in-out infinite;
    box-shadow: 0 0 15px rgba(168, 85, 247, 0.6);
}

@keyframes pulse-glow {
    0%, 100% {
        box-shadow: 0 0 15px rgba(168, 85, 247, 0.6);
    }
    50% {
        box-shadow: 0 0 25px rgba(168, 85, 247, 0.9), 0 0 35px rgba(236, 72, 153, 0.5);
    }
}

/* ========================================
   Map Mockup
   ======================================== */

.map-mockup {
    width: 100%;
    max-width: 400px;
}

.map-container {
    aspect-ratio: 4/3;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
}

.map-bg {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e8f4f8 0%, #d1e8f0 100%);
    position: relative;

    /* Grid pattern for map */
    background-image:
        linear-gradient(rgba(0, 0, 0, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
    background-size: 30px 30px;
}

.heatmap-dot {
    position: absolute;
    border-radius: 50%;
    opacity: 0.5;
    filter: blur(20px);
}

.heatmap-hot {
    width: 120px;
    height: 120px;
    background: var(--coral);
}

.heatmap-warm {
    width: 80px;
    height: 80px;
    background: var(--sunny-yellow);
}

.heatmap-cool {
    width: 60px;
    height: 60px;
    background: var(--mint-green);
}

.venue-pin {
    position: absolute;
    transform: translate(-50%, -100%);
    cursor: pointer;
}

.venue-pin span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: white;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    font-size: 1.25rem;
}

.venue-pin span > * {
    transform: rotate(45deg);
}

.venue-tooltip {
    display: none;
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: white;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    white-space: nowrap;
    font-size: 0.875rem;
    margin-bottom: 8px;
}

.venue-pin:hover .venue-tooltip {
    display: block;
}

/* ========================================
   Safety Cards
   ======================================== */

.safety-card {
    background: white;
    padding: 1.5rem;
    border-radius: 1.5rem;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    border: 1px solid #f0f0f0;
    transition: all 0.3s ease;
}

.safety-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

/* ========================================
   Pricing Cards
   ======================================== */

.pricing-card {
    background: white;
    padding: 2rem;
    border-radius: 1.5rem;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    border: 2px solid #f0f0f0;
    position: relative;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.pricing-card:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
}

.pricing-featured {
    border-color: var(--hot-pink);
    background: linear-gradient(to bottom, #fff 0%, #fdf2f8 100%);
    box-shadow: 0 10px 40px rgba(236, 72, 153, 0.15);
}

.pricing-featured:hover {
    box-shadow: 0 25px 60px rgba(236, 72, 153, 0.25);
}

.pricing-popular {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
    color: white;
    padding: 0.25rem 1rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: bold;
}

.pricing-badge {
    display: inline-block;
    padding: 0.5rem 1rem;
    border-radius: 9999px;
    font-weight: bold;
    font-size: 0.875rem;
}

/* ========================================
   Animations
   ======================================== */

.animate-on-scroll {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.animate-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered animation delays */
.animate-on-scroll:nth-child(1) { transition-delay: 0ms; }
.animate-on-scroll:nth-child(2) { transition-delay: 100ms; }
.animate-on-scroll:nth-child(3) { transition-delay: 200ms; }
.animate-on-scroll:nth-child(4) { transition-delay: 300ms; }
.animate-on-scroll:nth-child(5) { transition-delay: 400ms; }
.animate-on-scroll:nth-child(6) { transition-delay: 500ms; }

/* Fade in from different directions */
.animate-fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease-out;
}

.animate-fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.animate-fade-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: all 0.6s ease-out;
}

.animate-fade-left.visible {
    opacity: 1;
    transform: translateX(0);
}

.animate-fade-right {
    opacity: 0;
    transform: translateX(30px);
    transition: all 0.6s ease-out;
}

.animate-fade-right.visible {
    opacity: 1;
    transform: translateX(0);
}

/* Scale in animation */
.animate-scale-in {
    opacity: 0;
    transform: scale(0.9);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.animate-scale-in.visible {
    opacity: 1;
    transform: scale(1);
}

/* Confetti */
.confetti {
    position: fixed;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    animation: confettiFall 3s ease-out forwards;
    pointer-events: none;
}

@keyframes confettiFall {
    0% { transform: translateY(0) rotate(0deg); opacity: 1; }
    100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

/* Spinner */
.spinner {
    width: 20px;
    height: 20px;
    border: 2px solid transparent;
    border-top-color: white;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    display: inline-block;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Bounce */
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(10px); }
}

.animate-bounce {
    animation: bounce 2s ease-in-out infinite;
}

/* ========================================
   Form States
   ======================================== */

input:focus {
    box-shadow: 0 0 0 4px rgba(251, 191, 36, 0.3);
}

.form-success { color: var(--mint-green); }
.form-error { color: var(--coral); }

/* ========================================
   Section Headers & Decorations
   ======================================== */

.section-title {
    position: relative;
    display: inline-block;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
    border-radius: 2px;
}

/* Glassmorphism card variant */
.glass-card {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 1.5rem;
}

/* Subtle pulse animation for important elements */
.pulse-subtle {
    animation: pulseSoft 2s ease-in-out infinite;
}

@keyframes pulseSoft {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.02); }
}

/* Floating badge animation */
.float-badge {
    animation: floatBadge 3s ease-in-out infinite;
}

@keyframes floatBadge {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

/* Subtle dot pattern background */
.bg-dots {
    background-image: radial-gradient(rgba(0, 0, 0, 0.05) 1px, transparent 1px);
    background-size: 20px 20px;
}

html[data-theme="dark"] .bg-dots {
    background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .bg-dots {
        background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px);
    }
}

/* Gradient mesh background */
.bg-mesh {
    background-color: #f8fafc;
    background-image:
        radial-gradient(at 40% 20%, rgba(168, 85, 247, 0.08) 0px, transparent 50%),
        radial-gradient(at 80% 0%, rgba(236, 72, 153, 0.08) 0px, transparent 50%),
        radial-gradient(at 0% 50%, rgba(52, 211, 153, 0.08) 0px, transparent 50%),
        radial-gradient(at 80% 100%, rgba(255, 107, 107, 0.08) 0px, transparent 50%);
}

/* Dark mode mesh background */
html[data-theme="dark"] .bg-mesh {
    background-color: var(--bg-primary) !important;
    background-image:
        radial-gradient(at 40% 20%, rgba(168, 85, 247, 0.12) 0px, transparent 50%),
        radial-gradient(at 80% 0%, rgba(236, 72, 153, 0.12) 0px, transparent 50%),
        radial-gradient(at 0% 50%, rgba(52, 211, 153, 0.12) 0px, transparent 50%),
        radial-gradient(at 80% 100%, rgba(255, 107, 107, 0.12) 0px, transparent 50%) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .bg-mesh {
        background-color: var(--bg-primary) !important;
        background-image:
            radial-gradient(at 40% 20%, rgba(168, 85, 247, 0.12) 0px, transparent 50%),
            radial-gradient(at 80% 0%, rgba(236, 72, 153, 0.12) 0px, transparent 50%),
            radial-gradient(at 0% 50%, rgba(52, 211, 153, 0.12) 0px, transparent 50%),
            radial-gradient(at 80% 100%, rgba(255, 107, 107, 0.12) 0px, transparent 50%) !important;
    }
}

/* Stats counter style */
.stat-number {
    font-family: 'Poppins', sans-serif;
    font-weight: 800;
    background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Highlight text */
.highlight {
    position: relative;
    display: inline;
}

.highlight::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    background: linear-gradient(90deg, rgba(251, 191, 36, 0.3), rgba(236, 72, 153, 0.3));
    z-index: -1;
    border-radius: 2px;
}

/* Animated underline on hover */
.hover-underline {
    position: relative;
}

.hover-underline::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
    transition: width 0.3s ease;
}

.hover-underline:hover::after {
    width: 100%;
}

/* ========================================
   Video Dating Section
   ======================================== */

.video-call-mockup {
    width: 100%;
    max-width: 320px;
}

.video-call-container {
    aspect-ratio: 3/4;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 24px;
    padding: 16px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
    position: relative;
    overflow: hidden;
}

.video-main {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--electric-purple) 0%, var(--hot-pink) 100%);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}

.video-avatar-large {
    font-size: 5rem;
    margin-bottom: 1rem;
    opacity: 0.9;
}

.video-name {
    font-weight: bold;
    color: white;
    font-size: 1.25rem;
}

.video-status {
    position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(0, 0, 0, 0.3);
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    color: white;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.video-self {
    position: absolute;
    bottom: 80px;
    right: 24px;
    width: 80px;
    height: 100px;
    background: linear-gradient(135deg, var(--sky-blue) 0%, var(--mint-green) 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid white;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.video-avatar-small {
    font-size: 2rem;
    opacity: 0.9;
}

.video-controls {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 1rem;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1.5rem;
    border-radius: 9999px;
}

.video-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.video-btn-mute {
    background: rgba(255, 255, 255, 0.2);
}

.video-btn-like {
    background: var(--coral);
}

.video-btn-next {
    background: var(--mint-green);
}

.video-prompt {
    position: absolute;
    bottom: 70px;
    left: 16px;
    right: 16px;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(10px);
    padding: 0.5rem 1rem;
    border-radius: 12px;
    color: white;
    font-size: 0.875rem;
    font-style: italic;
    text-align: center;
}

.video-btn:hover {
    transform: scale(1.1);
}

/* ========================================
   Share Profile Section
   ======================================== */

.share-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.share-option {
    background: white;
    border-radius: 16px;
    padding: 1.25rem;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    cursor: pointer;
    border: 1px solid #f3f4f6;
}

.share-option:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}

.share-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.75rem;
    color: white;
}

.share-feature {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem;
    background: #f9fafb;
    border-radius: 16px;
    transition: all 0.3s ease;
}

.share-feature:hover {
    background: #f3f4f6;
}

.share-feature-icon {
    font-size: 1.5rem;
    min-width: 2rem;
    text-align: center;
}

/* ========================================
   Responsive
   ======================================== */

@media (max-width: 1024px) {
    /* Screenshots gallery - ensure horizontal scroll on tablets */
    .screenshots-gallery {
        justify-content: flex-start;
        overflow-x: auto;
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

@media (max-width: 768px) {
    .shape { display: none; }

    .phone-frame {
        width: 180px;
        height: 360px;
    }

    .game-device {
        width: 140px;
        height: 180px;
    }

    /* Games carousel responsive */
    .carousel-arrow {
        width: 36px;
        height: 36px;
    }

    .carousel-arrow svg {
        width: 18px;
        height: 18px;
    }

    .game-card {
        padding: 0.75rem;
    }

    .game-card-icon {
        width: 48px;
        height: 48px;
    }

    .game-card-icon span {
        font-size: 1.5rem;
    }

    .game-card h4 {
        font-size: 0.875rem;
    }

    .game-category-tab {
        padding: 0.4rem 0.75rem;
        font-size: 0.75rem;
    }

    /* Screenshots gallery - smaller phones on mobile */
    .screenshot-phone {
        width: 140px;
        height: 280px;
    }

    .screenshot-item:hover .screenshot-phone {
        transform: translateY(-10px) scale(1.1);
    }

    .screenshot-label {
        font-size: 0.75rem;
    }

    /* Creative cards responsive */
    .creative-card {
        padding: 1rem;
    }

    .profile-preview-phone {
        width: 200px;
    }

    /* Pricing cards responsive */
    .pricing-card {
        padding: 1.5rem;
    }

    /* Map mockup responsive */
    .map-mockup {
        max-width: 320px;
    }

    /* Piano keyboard smaller */
    .piano-key.white {
        width: 18px;
        height: 40px;
    }

    .piano-key.black {
        width: 12px;
        height: 26px;
    }

    .piano-black-keys {
        width: 130px;
    }
}

@media (max-width: 640px) {
    #navbar .nav-link,
    #navbar .nav-cta {
        display: none;
    }

    /* Share section responsive */
    .share-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Video call mockup responsive */
    .video-call-mockup {
        max-width: 260px;
    }

    .video-self {
        width: 60px;
        height: 80px;
        bottom: 70px;
        right: 16px;
    }

    .video-avatar-large {
        font-size: 3.5rem;
    }

    .video-controls {
        padding: 0.5rem 1rem;
        gap: 0.75rem;
    }

    .video-btn {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }

    /* Screenshots gallery - even smaller on small mobile */
    .screenshot-phone {
        width: 120px;
        height: 240px;
        border-radius: 18px;
    }

    .screenshots-gallery {
        gap: 1rem;
        padding: 1.5rem 0.5rem;
    }

    /* Feature cards responsive */
    .feature-card {
        padding: 1rem;
    }

    .feature-icon {
        width: 40px;
        height: 40px;
        font-size: 1.25rem;
    }

    /* Wingman steps responsive */
    .wingman-step {
        padding: 0.75rem;
    }

    .step-num {
        width: 28px;
        height: 28px;
        min-width: 28px;
        font-size: 0.75rem;
    }

    /* Safety cards responsive */
    .safety-card {
        padding: 1rem;
    }

    /* Piano keyboard even smaller */
    .piano-key.white {
        width: 14px;
        height: 32px;
    }

    .piano-key.black {
        width: 9px;
        height: 20px;
    }

    .piano-black-keys {
        width: 102px;
    }

    .piano-keyboard {
        height: 32px;
    }

    /* Profile preview phone smaller */
    .profile-preview-phone {
        width: 180px;
    }
}

/* Touch device optimizations */
@media (hover: none) {
    .screenshot-item:active .screenshot-phone {
        transform: translateY(-10px) scale(1.1);
        box-shadow: 0 20px 40px rgba(168, 85, 247, 0.3);
    }

    .feature-card:active {
        transform: translateY(-4px);
    }

    .game-card:active {
        transform: translateY(-3px);
    }
}

/* ========================================
   Dark Mode Component Overrides
   ======================================== */

/* Cards - Feature, Wingman, Safety, Pricing, Creative */
html[data-theme="dark"] .feature-card,
html[data-theme="dark"] .wingman-card,
html[data-theme="dark"] .wingman-step,
html[data-theme="dark"] .safety-card,
html[data-theme="dark"] .pricing-card,
html[data-theme="dark"] .creative-card {
    background: var(--card-bg) !important;
    box-shadow: 0 4px 20px var(--card-shadow);
    border-color: var(--border-color);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .feature-card,
    html:not([data-theme="light"]) .wingman-card,
    html:not([data-theme="light"]) .wingman-step,
    html:not([data-theme="light"]) .safety-card,
    html:not([data-theme="light"]) .pricing-card,
    html:not([data-theme="light"]) .creative-card {
        background: var(--card-bg) !important;
        box-shadow: 0 4px 20px var(--card-shadow);
        border-color: var(--border-color);
    }
}

/* Featured pricing card dark mode */
html[data-theme="dark"] .pricing-featured {
    background: linear-gradient(to bottom, #1a1a2e 0%, #251a2e 100%) !important;
    border-color: var(--hot-pink);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .pricing-featured {
        background: linear-gradient(to bottom, #1a1a2e 0%, #251a2e 100%) !important;
        border-color: var(--hot-pink);
    }
}

/* Feature card highlight dark mode */
html[data-theme="dark"] .feature-card-highlight {
    background: linear-gradient(to bottom right, rgba(52, 211, 153, 0.1), var(--card-bg)) !important;
    border-color: var(--mint-green);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .feature-card-highlight {
        background: linear-gradient(to bottom right, rgba(52, 211, 153, 0.1), var(--card-bg)) !important;
        border-color: var(--mint-green);
    }
}

/* Section backgrounds - needs high specificity to override Tailwind */
html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-gray-50,
html[data-theme="dark"] section.bg-white,
html[data-theme="dark"] section.bg-gray-50,
html[data-theme="dark"] div.bg-white,
html[data-theme="dark"] div.bg-gray-50 {
    background-color: var(--bg-primary) !important;
}

html[data-theme="dark"] .bg-gray-100,
html[data-theme="dark"] section.bg-gray-100,
html[data-theme="dark"] div.bg-gray-100 {
    background-color: var(--bg-secondary) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .bg-white,
    html:not([data-theme="light"]) .bg-gray-50,
    html:not([data-theme="light"]) section.bg-white,
    html:not([data-theme="light"]) section.bg-gray-50,
    html:not([data-theme="light"]) div.bg-white,
    html:not([data-theme="light"]) div.bg-gray-50 {
        background-color: var(--bg-primary) !important;
    }

    html:not([data-theme="light"]) .bg-gray-100,
    html:not([data-theme="light"]) section.bg-gray-100,
    html:not([data-theme="light"]) div.bg-gray-100 {
        background-color: var(--bg-secondary) !important;
    }
}

/* Text colors */
html[data-theme="dark"] .text-gray-500,
html[data-theme="dark"] .text-gray-600 {
    color: var(--text-tertiary) !important;
}

html[data-theme="dark"] .text-gray-700 {
    color: var(--text-secondary) !important;
}

html[data-theme="dark"] .text-gray-800,
html[data-theme="dark"] .text-gray-900 {
    color: var(--text-primary) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .text-gray-500,
    html:not([data-theme="light"]) .text-gray-600 {
        color: var(--text-tertiary) !important;
    }

    html:not([data-theme="light"]) .text-gray-700 {
        color: var(--text-secondary) !important;
    }

    html:not([data-theme="light"]) .text-gray-800,
    html:not([data-theme="light"]) .text-gray-900 {
        color: var(--text-primary) !important;
    }
}

/* Phone mockup screens */
html[data-theme="dark"] .screenshot-frame,
html[data-theme="dark"] .profile-preview-frame {
    background: var(--card-bg);
}

html[data-theme="dark"] .screenshot-label {
    color: var(--text-secondary);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .screenshot-frame,
    html:not([data-theme="light"]) .profile-preview-frame {
        background: var(--card-bg);
    }

    html:not([data-theme="light"]) .screenshot-label {
        color: var(--text-secondary);
    }
}

/* Profile preview sections */
html[data-theme="dark"] .profile-preview-section {
    background: var(--bg-tertiary);
}

html[data-theme="dark"] .profile-preview-location {
    color: var(--text-tertiary);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .profile-preview-section {
        background: var(--bg-tertiary);
    }

    html:not([data-theme="light"]) .profile-preview-location {
        color: var(--text-tertiary);
    }
}

/* Game cards */
html[data-theme="dark"] .game-card {
    background: var(--card-bg);
    box-shadow: 0 4px 20px var(--card-shadow);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .game-card {
        background: var(--card-bg);
        box-shadow: 0 4px 20px var(--card-shadow);
    }
}

/* Mode tabs */
html[data-theme="dark"] .mode-tab {
    background: var(--bg-tertiary);
    color: var(--text-secondary);
}

html[data-theme="dark"] .mode-tab.active {
    background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
    color: white;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .mode-tab {
        background: var(--bg-tertiary);
        color: var(--text-secondary);
    }

    html:not([data-theme="light"]) .mode-tab.active {
        background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
        color: white;
    }
}

/* Chat bubbles */
html[data-theme="dark"] .chat-bubble {
    background: var(--bg-tertiary);
}

html[data-theme="dark"] .chat-bubble-user {
    background: linear-gradient(135deg, var(--hot-pink), var(--electric-purple));
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .chat-bubble {
        background: var(--bg-tertiary);
    }

    html:not([data-theme="light"]) .chat-bubble-user {
        background: linear-gradient(135deg, var(--hot-pink), var(--electric-purple));
    }
}

/* FAQ accordion */
html[data-theme="dark"] .faq-question {
    background: var(--card-bg);
    border-color: var(--border-color);
}

html[data-theme="dark"] .faq-question:hover {
    background: var(--bg-tertiary);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .faq-question {
        background: var(--card-bg);
        border-color: var(--border-color);
    }

    html:not([data-theme="light"]) .faq-question:hover {
        background: var(--bg-tertiary);
    }
}

/* Footer */
html[data-theme="dark"] footer {
    background: var(--bg-secondary) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) footer {
        background: var(--bg-secondary) !important;
    }
}

/* Border colors */
html[data-theme="dark"] .border-gray-100,
html[data-theme="dark"] .border-gray-200 {
    border-color: var(--border-color) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .border-gray-100,
    html:not([data-theme="light"]) .border-gray-200 {
        border-color: var(--border-color) !important;
    }
}

/* Input fields */
html[data-theme="dark"] input[type="email"],
html[data-theme="dark"] input[type="text"] {
    background: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

html[data-theme="dark"] input[type="email"]::placeholder,
html[data-theme="dark"] input[type="text"]::placeholder {
    color: var(--text-tertiary);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) input[type="email"],
    html:not([data-theme="light"]) input[type="text"] {
        background: var(--bg-tertiary);
        border-color: var(--border-color);
        color: var(--text-primary);
    }

    html:not([data-theme="light"]) input[type="email"]::placeholder,
    html:not([data-theme="light"]) input[type="text"]::placeholder {
        color: var(--text-tertiary);
    }
}

/* Piano keys in dark mode */
html[data-theme="dark"] .piano-key.white {
    background: linear-gradient(180deg, #e0e0e0 0%, #d0d0d0 90%, #c0c0c0 100%);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .piano-key.white {
        background: linear-gradient(180deg, #e0e0e0 0%, #d0d0d0 90%, #c0c0c0 100%);
    }
}

/* Games carousel tabs */
html[data-theme="dark"] .game-category-tab {
    background: var(--bg-tertiary);
    color: var(--text-secondary);
}

html[data-theme="dark"] .game-category-tab.active {
    background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
    color: white;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .game-category-tab {
        background: var(--bg-tertiary);
        color: var(--text-secondary);
    }

    html:not([data-theme="light"]) .game-category-tab.active {
        background: linear-gradient(90deg, var(--hot-pink), var(--electric-purple));
        color: white;
    }
}

/* ========================================
   Dark Mode Section Gradient Overrides
   ======================================== */

/* Solid background sections */
html[data-theme="dark"] #features,
html[data-theme="dark"] #profile,
html[data-theme="dark"] #safety {
    background-color: var(--bg-primary) !important;
}

html[data-theme="dark"] #premium {
    background-color: var(--bg-secondary) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) #features,
    html:not([data-theme="light"]) #profile,
    html:not([data-theme="light"]) #safety {
        background-color: var(--bg-primary) !important;
    }

    html:not([data-theme="light"]) #premium {
        background-color: var(--bg-secondary) !important;
    }
}

/* Games Section */
html[data-theme="dark"] #games {
    background: linear-gradient(to bottom, var(--bg-primary), var(--bg-secondary)) !important;
}

/* Screenshots Section */
html[data-theme="dark"] #screenshots {
    background: linear-gradient(to bottom, var(--bg-secondary), var(--bg-primary)) !important;
}

/* Outside/Dating in Real World Section */
html[data-theme="dark"] #outside {
    background: linear-gradient(to bottom right, rgba(251, 191, 36, 0.08), var(--bg-primary), rgba(255, 107, 107, 0.08)) !important;
}

/* Wingman Section */
html[data-theme="dark"] #wingman {
    background: linear-gradient(to bottom right, rgba(249, 115, 22, 0.08), var(--bg-primary), rgba(251, 191, 36, 0.08)) !important;
}

/* Video Dating Section */
html[data-theme="dark"] #video-dating {
    background: linear-gradient(to bottom right, rgba(168, 85, 247, 0.08), var(--bg-primary), rgba(236, 72, 153, 0.08)) !important;
}

/* Screenshot screens - keep lighter backgrounds for contrast */
html[data-theme="dark"] .screenshot-screen[class*="to-white"] {
    background: linear-gradient(to bottom, rgba(168, 85, 247, 0.15), var(--bg-tertiary)) !important;
}

html[data-theme="dark"] .screenshot-screen.bg-gradient-to-b.from-coral\/20 {
    background: linear-gradient(to bottom, rgba(255, 107, 107, 0.15), var(--bg-tertiary)) !important;
}

html[data-theme="dark"] .screenshot-screen.bg-gradient-to-b.from-gray-100 {
    background: linear-gradient(to bottom, var(--bg-tertiary), var(--bg-secondary)) !important;
}

html[data-theme="dark"] .screenshot-screen.bg-gradient-to-b.from-electric-purple\/20 {
    background: linear-gradient(to bottom, rgba(168, 85, 247, 0.15), var(--bg-tertiary)) !important;
}

html[data-theme="dark"] .screenshot-screen.bg-gradient-to-b.from-hot-pink\/20 {
    background: linear-gradient(to bottom, rgba(236, 72, 153, 0.15), var(--bg-tertiary)) !important;
}

/* Creative card previews */
html[data-theme="dark"] .creative-preview[class*="to-indigo-100"],
html[data-theme="dark"] .creative-preview[class*="to-coral"],
html[data-theme="dark"] .creative-preview[class*="to-green-100"],
html[data-theme="dark"] .creative-preview[class*="to-blue-100"],
html[data-theme="dark"] .creative-preview[class*="to-orange-100"],
html[data-theme="dark"] .creative-preview[class*="to-red-100"] {
    background: var(--bg-tertiary) !important;
}

/* Phone screen small for wingman */
html[data-theme="dark"] .phone-screen-small[class*="from-mint-green"] {
    background: linear-gradient(to bottom, rgba(52, 211, 153, 0.15), rgba(52, 211, 153, 0.05)) !important;
}

/* Carousel arrows */
html[data-theme="dark"] .carousel-arrow {
    background: var(--card-bg);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

html[data-theme="dark"] .carousel-arrow:hover {
    background: var(--coral);
    border-color: var(--coral);
    color: white;
}

/* Carousel dots */
html[data-theme="dark"] .carousel-dot {
    background: var(--bg-tertiary);
}

html[data-theme="dark"] .carousel-dot.active {
    background: var(--coral);
}

/* Game tags */
html[data-theme="dark"] .game-tag {
    background: var(--bg-tertiary);
    color: var(--text-tertiary);
}

/* Share feature backgrounds */
html[data-theme="dark"] .share-feature {
    background: var(--bg-tertiary);
}

html[data-theme="dark"] .share-feature:hover {
    background: var(--border-color);
}

html[data-theme="dark"] .share-option {
    background: var(--card-bg);
    border-color: var(--border-color);
}

/* Map background */
html[data-theme="dark"] .map-bg {
    background: linear-gradient(135deg, #1a2e3a 0%, #162e38 100%);
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
}

/* Venue tooltip */
html[data-theme="dark"] .venue-tooltip {
    background: var(--card-bg);
    box-shadow: 0 4px 15px var(--card-shadow);
}

/* Venue pin */
html[data-theme="dark"] .venue-pin span {
    background: var(--card-bg);
}

/* System preference detection for gradients */
@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) #games {
        background: linear-gradient(to bottom, var(--bg-primary), var(--bg-secondary)) !important;
    }

    html:not([data-theme="light"]) #screenshots {
        background: linear-gradient(to bottom, var(--bg-secondary), var(--bg-primary)) !important;
    }

    html:not([data-theme="light"]) #outside {
        background: linear-gradient(to bottom right, rgba(251, 191, 36, 0.08), var(--bg-primary), rgba(255, 107, 107, 0.08)) !important;
    }

    html:not([data-theme="light"]) #wingman {
        background: linear-gradient(to bottom right, rgba(249, 115, 22, 0.08), var(--bg-primary), rgba(251, 191, 36, 0.08)) !important;
    }

    html:not([data-theme="light"]) #video-dating {
        background: linear-gradient(to bottom right, rgba(168, 85, 247, 0.08), var(--bg-primary), rgba(236, 72, 153, 0.08)) !important;
    }

    html:not([data-theme="light"]) .screenshot-screen[class*="to-white"] {
        background: linear-gradient(to bottom, rgba(168, 85, 247, 0.15), var(--bg-tertiary)) !important;
    }

    html:not([data-theme="light"]) .creative-preview[class*="to-indigo-100"],
    html:not([data-theme="light"]) .creative-preview[class*="to-coral"],
    html:not([data-theme="light"]) .creative-preview[class*="to-green-100"],
    html:not([data-theme="light"]) .creative-preview[class*="to-blue-100"],
    html:not([data-theme="light"]) .creative-preview[class*="to-orange-100"],
    html:not([data-theme="light"]) .creative-preview[class*="to-red-100"] {
        background: var(--bg-tertiary) !important;
    }

    html:not([data-theme="light"]) .phone-screen-small[class*="from-mint-green"] {
        background: linear-gradient(to bottom, rgba(52, 211, 153, 0.15), rgba(52, 211, 153, 0.05)) !important;
    }

    html:not([data-theme="light"]) .carousel-arrow {
        background: var(--card-bg);
        border-color: var(--border-color);
        color: var(--text-secondary);
    }

    html:not([data-theme="light"]) .carousel-dot {
        background: var(--bg-tertiary);
    }

    html:not([data-theme="light"]) .carousel-dot.active {
        background: var(--coral);
    }

    html:not([data-theme="light"]) .game-tag {
        background: var(--bg-tertiary);
        color: var(--text-tertiary);
    }

    html:not([data-theme="light"]) .share-feature {
        background: var(--bg-tertiary);
    }

    html:not([data-theme="light"]) .share-option {
        background: var(--card-bg);
        border-color: var(--border-color);
    }

    html:not([data-theme="light"]) .map-bg {
        background: linear-gradient(135deg, #1a2e3a 0%, #162e38 100%);
        background-image:
            linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
            linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    }

    html:not([data-theme="light"]) .venue-tooltip {
        background: var(--card-bg);
    }

    html:not([data-theme="light"]) .venue-pin span {
        background: var(--card-bg);
    }
}
