.event-header,.event-header h1{position:relative}.event-header h1{display:inline-block}.event-header h1:after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:60px;background-color:#000;transition:width .3s ease}.event-header:hover h1:after{width:100%}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}@media(max-width:640px){.image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}.image-item{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:transform .3s ease,box-shadow .3s ease}.image-item:hover{transform:translateY(-5px);box-shadow:0 8px 12px rgba(0,0,0,.15)}.image-item:hover img{transform:scale(1.1)}.image-item:hover .image-overlay{opacity:1}.image-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.image-overlay{position:absolute;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.image-overlay button{background-color:#fff;color:#000;padding:8px 16px;font-weight:500;border-radius:4px;transition:all .2s ease}.image-overlay button:hover{background-color:#f8f8f8;transform:scale(1.05)}.info-banner{border-radius:.375rem;padding:1rem;margin-bottom:2rem;border-left-width:4px}.info-banner.selection{background-color:#fcf3f9;border-left-color:#ec4899}.info-banner.selection .icon{color:#ec4899}.info-banner.selection h3{color:#831843}.info-banner.selection p{color:#be185d}.info-banner.visionner{background-color:#eef2ff;border-left-color:#6366f1}.info-banner.visionner .icon{color:#6366f1}.info-banner.visionner h3{color:#3730a3}.info-banner.visionner p{color:#4f46e5}.info-banner.paye{background-color:#fffbeb;border-left-color:#f59e0b}.info-banner.paye .icon{color:#f59e0b}.info-banner.paye h3{color:#92400e}.info-banner.paye p{color:#d97706}.info-banner.non_paye{background-color:#ecfdf5;border-left-color:#10b981}.info-banner.non_paye .icon{color:#10b981}.info-banner.non_paye h3{color:#065f46}.info-banner.non_paye p{color:#059669}.loading-spinner{width:50px;height:50px;border-radius:50%;border:5px solid rgba(0,0,0,.1);border-top-color:#000;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .5s ease forwards}.password-modal-container{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.75);backdrop-filter:blur(10px);z-index:1000;padding:20px}.password-modal{background-color:#fff;border-radius:8px;padding:30px;max-width:500px;width:100%;box-shadow:0 10px 25px rgba(0,0,0,.5);animation:fadeIn .3s ease-out;color:#000}.modal-title{font-size:24px;font-weight:600;color:#000;margin-bottom:16px}.modal-description{font-size:16px;color:#555;margin-bottom:24px;line-height:1.5}.password-form{display:flex;flex-direction:column}.password-input{padding:12px 16px;border:1px solid #ddd;border-radius:4px;font-size:16px;margin-bottom:16px;transition:border-color .2s ease}.password-input:focus{border-color:#000;outline:none}.password-error{color:#e53e3e;font-size:14px;margin-bottom:16px;animation:shake .5s ease-in-out}.password-submit{padding:12px 24px;background-color:#000;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease}.password-submit:hover:not(:disabled){background-color:#333}.password-submit:disabled{background-color:#ccc;color:#666;cursor:not-allowed;opacity:.7}.error-container{text-align:center;padding:40px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.error-message{font-size:18px;color:#555;margin-bottom:24px}.back-button{padding:12px 24px;background-color:#000;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.back-button:hover{background-color:#333}.loading-text{margin-top:16px;font-size:16px;color:#555}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}