:root{--primary:#e8607c;--primary-dark:#d14d68;--primary-light:#f0899d;--secondary:#6c63ff;--accent:#f4a261;--success:#10b981;--success-bg:#d1fae5;--success-text:#065f46;--warning:#f59e0b;--warning-bg:#fef3c7;--warning-text:#92400e;--error:#ef4444;--error-bg:#fee2e2;--error-text:#991b1b;--info:#3b82f6;--info-bg:#dbeafe;--info-text:#1e40af;--white:#fff;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,monospace;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,.25);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:200ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1);--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}body{font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--gray-900);background:#fafafa;min-height:100vh}body.has-bottom-bar{padding-bottom:70px}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin-bottom:var(--space-md);color:var(--gray-900)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:var(--space-md);line-height:1.8}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark);text-decoration:underline}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}b,strong{font-weight:600}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}@media (max-width:768px){.container{padding:0 var(--space-md)}}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.75rem 1.5rem;font-size:1rem;font-weight:600;line-height:1;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--primary);box-shadow:var(--shadow-md)}.button,.button:hover{text-decoration:none;color:#fff}.button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.button:active{transform:translateY(0)}.button-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-md)}.button-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);text-decoration:none}.button-primary:active{transform:translateY(0)}.button-primary:focus-visible{outline:3px solid var(--primary-light);outline-offset:2px}.button-secondary{background:#fff;color:var(--primary);border:2px solid var(--primary);box-shadow:var(--shadow-sm)}.button-secondary:hover{background:var(--primary);color:#fff;text-decoration:none}.button-success{background:var(--success);color:#fff;box-shadow:var(--shadow-md)}.button-success:hover{background:#059669;transform:translateY(-2px);box-shadow:var(--shadow-lg);text-decoration:none}.button-small{padding:.5rem 1rem;font-size:.875rem}.button-large{padding:1rem 2rem;font-size:1.125rem}.button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--gray-200)}.card-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-sm)}.card-body{color:var(--gray-700)}.card-footer{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--gray-200)}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.25rem .75rem;font-size:.875rem;font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background:var(--info-bg);color:var(--info-text)}.badge-success{background:var(--success-bg);color:var(--success-text)}.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge-error{background:var(--error-bg);color:var(--error-text)}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:inherit;line-height:1.5;color:var(--gray-900);background:#fff;border:1.5px solid var(--gray-200);border-radius:10px;transition:all var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(232,96,124,.15)}input:disabled,select:disabled,textarea:disabled{background:var(--gray-100);cursor:not-allowed}label{display:block;margin-bottom:var(--space-sm);font-weight:600;color:var(--gray-700)}.navbar{background:#fff;box-shadow:var(--shadow);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky);padding:1rem 0}.navbar .container{display:flex;align-items:center;justify-content:space-between}.logo{font-size:1.5rem;font-weight:700;color:var(--primary)}.logo,.logo:hover{text-decoration:none}.logo:hover{color:var(--primary-dark)}.nav-links{display:flex;align-items:center;gap:var(--space-lg)}.nav-links a{color:var(--gray-700);font-weight:500;transition:color var(--transition-fast)}.nav-links a:hover{color:var(--primary);text-decoration:none}.mobile-menu-btn{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--gray-700)}@media (max-width:768px){.desktop-nav{display:none}.mobile-guest-nav{display:flex!important;align-items:center;gap:.75rem}}.mt-0{margin-top:0!important}.mt-1{margin-top:var(--space-sm)!important}.mt-2{margin-top:var(--space-md)!important}.mt-3{margin-top:var(--space-lg)!important}.mt-4{margin-top:var(--space-xl)!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:var(--space-sm)!important}.mb-2{margin-bottom:var(--space-md)!important}.mb-3{margin-bottom:var(--space-lg)!important}.mb-4{margin-bottom:var(--space-xl)!important}.p-0{padding:0!important}.p-1{padding:var(--space-sm)!important}.p-2{padding:var(--space-md)!important}.p-3{padding:var(--space-lg)!important}.p-4{padding:var(--space-xl)!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-primary{color:var(--primary)!important}.text-success{color:var(--success)!important}.text-warning{color:var(--warning)!important}.text-error{color:var(--error)!important}.text-gray{color:var(--gray-600)!important}.text-muted{color:var(--gray-500)!important}.bg-primary{background:var(--primary)!important}.bg-white{background:#fff!important}.bg-gray{background:var(--gray-100)!important}.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.flex-column{flex-direction:column!important}.flex-row{flex-direction:row!important}.justify-start{justify-content:flex-start!important}.justify-center{justify-content:center!important}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.align-start{align-items:flex-start!important}.align-center{align-items:center!important}.align-end{align-items:flex-end!important}.gap-1{gap:var(--space-sm)!important}.gap-2{gap:var(--space-md)!important}.gap-3{gap:var(--space-lg)!important}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary);color:#fff;padding:var(--space-md);text-decoration:none;z-index:100}.skip-link:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-in}.animate-slide-up{animation:slideUp var(--transition-slow) ease-out}@media (max-width:1024px){h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}}@media (max-width:768px){h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.card{padding:var(--space-lg)}}@media (max-width:480px){html{font-size:14px}.button{width:100%}}.profile-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);transition:transform var(--transition-base),box-shadow var(--transition-base);animation:cardSlideIn .3s ease-out}.profile-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.1)}.profile-card-photo{position:relative;width:100%;height:320px;background:linear-gradient(135deg,var(--primary-light),var(--secondary));overflow:hidden}.profile-card-photo img{width:100%;height:100%;object-fit:cover}.profile-card-photo .initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:700;color:hsla(0,0%,100%,.8)}.profile-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff}.profile-card-overlay h3{color:#fff;margin:0;font-size:1.4rem}.profile-card-overlay p{margin:.25rem 0 0;opacity:.9;font-size:.95rem}.profile-card-body{padding:1.25rem}.profile-card-body .bio{color:var(--gray-600);font-size:.95rem;line-height:1.5;margin-bottom:1rem}.profile-card-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.profile-card-tag{padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:500}.profile-card-tag.looking-for{background:rgba(232,96,124,.1);color:var(--primary-dark)}.profile-card-tag.disability{background:var(--gray-100);color:var(--gray-600)}.profile-card-tag.interest{background:var(--gray-50);color:var(--gray-500);font-size:.75rem}.profile-card-actions{display:flex;gap:.75rem;padding:0 1.25rem 1.25rem}.profile-card-actions a,.profile-card-actions button{flex:1 1;padding:.75rem;border:none;border-radius:10px;cursor:pointer;font-size:.95rem;font-weight:600;text-align:center;text-decoration:none;transition:all var(--transition-fast)}.btn-like{background:var(--primary);color:#fff}.btn-like:hover{background:var(--primary-dark)}.btn-unlike{background:var(--error-bg);color:var(--error-text)}.btn-pass{background:var(--gray-100);color:var(--gray-600)}.btn-pass:hover{background:var(--gray-200)}.btn-view{background:var(--gray-50);color:var(--gray-700)}.btn-view:hover{background:var(--gray-100);text-decoration:none}.bottom-tab-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--gray-200);justify-content:space-around;padding:.5rem 0 calc(.5rem + env(safe-area-inset-bottom));z-index:var(--z-fixed);box-shadow:0 -2px 10px rgba(0,0,0,.05)}.bottom-tab,.bottom-tab-bar{display:flex;align-items:center}.bottom-tab{flex-direction:column;gap:.2rem;padding:.4rem .75rem;border:none;background:none;color:var(--gray-400);font-size:.7rem;font-weight:500;cursor:pointer;text-decoration:none;transition:color var(--transition-fast);position:relative}.bottom-tab svg{width:24px;height:24px}.bottom-tab.active{color:var(--primary)}.bottom-tab .tab-badge{position:absolute;top:0;right:.25rem;background:var(--primary);color:#fff;font-size:.6rem;min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}@media (min-width:769px){.bottom-tab-bar{display:none}}.wizard-progress{display:flex;gap:.5rem;margin-bottom:2rem}.wizard-progress .step{flex:1 1;height:4px;border-radius:2px;background:var(--gray-200);transition:background var(--transition-base)}.wizard-progress .step.active{background:var(--primary)}.wizard-progress .step.completed{background:var(--success)}.hero-guest{padding:3rem 1.5rem 4rem;text-align:center}.hero-guest h1{font-size:2.5rem;font-weight:800;max-width:600px;margin:0 auto 1rem;line-height:1.15}.hero-guest .subtitle{font-size:1.15rem;color:var(--gray-500);max-width:500px;margin:0 auto 2.5rem;line-height:1.6}.hero-guest .signup-form{max-width:400px;margin:0 auto 3rem;background:#fff;border-radius:var(--radius-xl);padding:2rem;box-shadow:0 4px 20px rgba(0,0,0,.08)}.hero-guest .signup-form input{margin-bottom:.75rem}.hero-guest .signup-form button{width:100%;padding:.85rem;background:var(--primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.hero-guest .signup-form button:hover{background:var(--primary-dark)}.hero-guest .value-props{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:1.5rem;gap:1.5rem;max-width:800px;margin:0 auto}.hero-guest .value-prop{padding:1.5rem;background:#fff;border-radius:var(--radius-lg);box-shadow:0 2px 12px rgba(0,0,0,.04)}.hero-guest .value-prop h3{font-size:1.1rem;margin-bottom:.5rem}.hero-guest .value-prop p{color:var(--gray-500);font-size:.9rem;margin:0;line-height:1.5}.feed-container{max-width:500px;margin:0 auto;padding:1rem}.feed-filters{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.feed-filters input,.feed-filters select{padding:.5rem 1rem;font-size:.9rem;flex:1 1;min-width:140px}.feed-empty{text-align:center;padding:4rem 1rem;color:var(--gray-400)}.feed-empty h2{color:var(--gray-500);font-size:1.25rem;margin-bottom:.5rem}.verify-prompt{max-width:480px;margin:3rem auto;padding:2.5rem;background:#fff;border-radius:var(--radius-xl);box-shadow:0 4px 20px rgba(0,0,0,.08);text-align:center}.verify-prompt h2{margin-bottom:.75rem}.verify-prompt p{color:var(--gray-500);margin-bottom:1.5rem}.verify-prompt .btn-verify{display:inline-block;padding:.85rem 2rem;background:var(--primary);color:#fff;border-radius:10px;text-decoration:none;font-weight:600;transition:background var(--transition-fast)}.verify-prompt .btn-verify:hover{background:var(--primary-dark);text-decoration:none}.match-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .2s ease-out}.match-modal{background:#fff;border-radius:var(--radius-xl);padding:2.5rem;text-align:center;max-width:380px;width:90%;animation:slideUp .3s ease-out}.match-modal h2{color:var(--primary);font-size:1.5rem}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.avatar{width:40px;height:40px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.large{width:48px;height:48px;font-size:1.2rem}.nav-dropdown{position:relative}.nav-dropdown-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border-radius:var(--radius-lg);box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:200px;padding:.5rem 0;z-index:var(--z-dropdown);animation:fadeIn .15s ease-out}.nav-dropdown-menu a,.nav-dropdown-menu button{display:block;width:100%;padding:.75rem 1.25rem;text-align:left;color:var(--gray-700);text-decoration:none;background:none;border:none;font-size:.95rem;cursor:pointer;transition:background var(--transition-fast)}.nav-dropdown-menu a:hover,.nav-dropdown-menu button:hover{background:var(--gray-50);text-decoration:none}.nav-dropdown-menu .divider{height:1px;background:var(--gray-100);margin:.25rem 0}