.party-finder { background: white; border-radius: var(--radius-2xl); box-shadow: var(--shadow-2xl); padding: var(--space-8); margin: var(--space-12) auto; position: relative; z-index: 10; border: 1px solid var(--color-neutral-200); backdrop-filter: blur(20px); } .finder-header { text-align: center; margin-bottom: var(--space-8); } .finder-title { font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 800; margin-bottom: var(--space-2); color: var(--color-neutral-900); } .finder-subtitle { color: var(--color-neutral-600); font-size: var(--text-lg); } .finder-form { display: grid; gap: var(--space-6); grid-template-columns: 1fr; } @media (min-width: 768px) { .finder-form { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 1024px) { .finder-form { grid-template-columns: repeat(4, 1fr) auto; align-items: end; } } .finder-field { display: flex; flex-direction: column; } .finder-label { font-family: var(--font-display); font-size: var(--text-sm); font-weight: 700; color: var(--color-neutral-700); margin-bottom: var(--space-2); text-transform: uppercase; letter-spacing: 0.05em; } .finder-input, .finder-select { background: var(--color-neutral-50); border: 2px solid var(--color-neutral-200); border-radius: var(--radius-lg); padding: var(--space-4); font-size: var(--text-base); font-weight: 500; color: var(--color-neutral-900); transition: all var(--duration-normal) var(--ease-out); font-family: var(--font-sans); } .finder-input:focus, .finder-select:focus { outline: none; border-color: var(--color-primary-500); background: white; box-shadow: 0 0 0 4px rgb(168 85 247 / 0.1); } .finder-input::placeholder { color: var(--color-neutral-500); } .finder-select { cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e"); background-position: right 12px center; background-repeat: no-repeat; background-size: 16px; padding-right: var(--space-12); } .price-range { display: flex; flex-direction: column; } .price-range-label { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-3); } .price-value { font-family: var(--font-display); font-weight: 800; color: var(--color-primary-600); } .price-slider { width: 100%; height: 6px; border-radius: var(--radius-full); background: var(--color-neutral-200); outline: none; appearance: none; cursor: pointer; } .price-slider::-webkit-slider-thumb { appearance: none; width: 24px; height: 24px; border-radius: var(--radius-full); background: linear-gradient(135deg, var(--color-primary-600) 0%, var(--color-accent-500) 100%); cursor: pointer; border: 3px solid white; box-shadow: var(--shadow-lg); } .price-slider::-moz-range-thumb { width: 24px; height: 24px; border-radius: var(--radius-full); background: linear-gradient(135deg, var(--color-primary-600) 0%, var(--color-accent-500) 100%); cursor: pointer; border: 3px solid white; box-shadow: var(--shadow-lg); } .finder-search-btn { background: linear-gradient(135deg, var(--color-primary-600) 0%, var(--color-accent-500) 100%); color: white; border: none; border-radius: var(--radius-lg); padding: var(--space-5) var(--space-8); font-family: var(--font-display); font-size: var(--text-lg); font-weight: 800; cursor: pointer; transition: all var(--duration-normal) var(--ease-out); box-shadow: var(--shadow-purple-md); display: flex; align-items: center; gap: var(--space-2); text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; } .finder-search-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-purple-lg); } .finder-search-btn:active { transform: translateY(0); } @media (max-width: 768px) { .party-finder { margin: var(--space-8) auto; padding: var(--space-6); } .finder-form { gap: var(--space-4); } .finder-search-btn { justify-content: center; padding: var(--space-4) var(--space-6); font-size: var(--text-base); } } /* Enhanced animations */ .animate-fadeInUp { opacity: 0; transform: translateY(30px); transition: all 0.6s var(--ease-out); } .animate-fadeInUp.visible { opacity: 1; transform: translateY(0); } /* Loading spinner animation */ @keyframes spin { to { transform: rotate(360deg); } }