.password-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#f1e8d6;background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4));display:flex;justify-content:center;align-items:center;z-index:9999;font-family:merriweather,serif}.password-overlay.hidden{display:none}.password-card{background:#fff;border-radius:1rem;padding:3rem 2.5rem;box-shadow:0 20px 40px rgba(0,0,0,.1);text-align:center;max-width:400px;width:90%;box-sizing:border-box}.password-card__title{font-size:2.5rem;font-weight:800;color:var(--color-primary-darkest);margin:0 0 .5rem;line-height:1.2}.password-card__subtitle{font-size:1.125rem;color:var(--color-secondary-darker);margin:0 0 2rem;line-height:1.4}.password-card__description{font-size:.95rem;color:var(--color-secondary-darker);margin:0 0 2rem;line-height:1.5}.password-form{display:flex;flex-direction:column;gap:1.5rem}.password-input{padding:1rem 1.25rem;border:2px solid #e0e0e0;border-radius:.5rem;font-size:1rem;font-family:merriweather,serif;transition:border-color .3s ease,box-shadow .3s ease;box-sizing:border-box;background:#fafafa}.password-input:focus{outline:none;border-color:var(--color-track);box-shadow:0 0 0 3px rgba(75,0,110,.1);background:#fff}.password-submit{padding:1rem 1.5rem;background-color:var(--color-track);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;font-family:merriweather,serif;cursor:pointer;transition:background-color .3s ease,transform .2s ease;box-sizing:border-box}.password-submit:hover{background-color:#3a0052;transform:translateY(-1px)}.password-submit:active{transform:translateY(0)}.password-error{color:#d32f2f;font-size:.875rem;margin:.5rem 0 0;display:none}.password-error.show{display:block}.password-hearts{font-size:1.5rem;margin:1rem 0;opacity:.6}@media(max-width:480px){.password-card{padding:2rem 1.5rem;margin:1rem}.password-card__title{font-size:2rem}.password-card__subtitle{font-size:1rem}.password-input,.password-submit{padding:.875rem 1rem}}.password-submit.loading{opacity:.6;cursor:not-allowed;transform:none}.password-submit.loading:hover{background-color:var(--color-track);transform:none}.password-overlay{animation:fadeIn .3s ease-out}@keyframes fadeIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.password-overlay.success{animation:fadeOut .5s ease-out forwards}@keyframes fadeOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}