@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit;margin:0;padding:0}ol,ul{list-style:none}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:1rem}.m-4{margin:1.5rem}.m-5{margin:3rem}.m-top-0{margin-top:0}.m-top-1{margin-top:.25rem}.m-top-2{margin-top:.5rem}.m-top-3{margin-top:1rem}.m-top-4{margin-top:1.5rem}.m-top-5{margin-top:3rem}.m-bottom-0{margin-bottom:0}.m-bottom-1{margin-bottom:.25rem}.m-bottom-2{margin-bottom:.5rem}.m-bottom-3{margin-bottom:1rem}.m-bottom-4{margin-bottom:1.5rem}.m-bottom-5{margin-bottom:3rem}.m-left-0{margin-left:0}.m-left-1{margin-left:.25rem}.m-left-2{margin-left:.5rem}.m-left-3{margin-left:1rem}.m-left-4{margin-left:1.5rem}.m-left-5{margin-left:3rem}.m-right-0{margin-right:0}.m-right-1{margin-right:.25rem}.m-right-2{margin-right:.5rem}.m-right-3{margin-right:1rem}.m-right-4{margin-right:1.5rem}.m-right-5{margin-right:3rem}.m-x-0{margin-x:0}.m-x-1{margin-x:.25rem}.m-x-2{margin-x:.5rem}.m-x-3{margin-x:1rem}.m-x-4{margin-x:1.5rem}.m-x-5{margin-x:3rem}.m-y-0{margin-y:0}.m-y-1{margin-y:.25rem}.m-y-2{margin-y:.5rem}.m-y-3{margin-y:1rem}.m-y-4{margin-y:1.5rem}.m-y-5{margin-y:3rem}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}.p-top-0{padding-top:0}.p-top-1{padding-top:.25rem}.p-top-2{padding-top:.5rem}.p-top-3{padding-top:1rem}.p-top-4{padding-top:1.5rem}.p-top-5{padding-top:3rem}.p-bottom-0{padding-bottom:0}.p-bottom-1{padding-bottom:.25rem}.p-bottom-2{padding-bottom:.5rem}.p-bottom-3{padding-bottom:1rem}.p-bottom-4{padding-bottom:1.5rem}.p-bottom-5{padding-bottom:3rem}.p-left-0{padding-left:0}.p-left-1{padding-left:.25rem}.p-left-2{padding-left:.5rem}.p-left-3{padding-left:1rem}.p-left-4{padding-left:1.5rem}.p-left-5{padding-left:3rem}.p-right-0{padding-right:0}.p-right-1{padding-right:.25rem}.p-right-2{padding-right:.5rem}.p-right-3{padding-right:1rem}.p-right-4{padding-right:1.5rem}.p-right-5{padding-right:3rem}.p-x-0{padding-x:0}.p-x-1{padding-x:.25rem}.p-x-2{padding-x:.5rem}.p-x-3{padding-x:1rem}.p-x-4{padding-x:1.5rem}.p-x-5{padding-x:3rem}.p-y-0{padding-y:0}.p-y-1{padding-y:.25rem}.p-y-2{padding-y:.5rem}.p-y-3{padding-y:1rem}.p-y-4{padding-y:1.5rem}.p-y-5{padding-y:3rem}.center{align-items:center}.center,.center-x{justify-content:center}.center,.center-x,.center-y{display:flex;text-align:center}.center-y{align-items:center}.inline-block{display:inline-block}.block{display:block}.box{border:2px solid #fff;color:#fff;display:inline-block;margin:10px auto;padding:10px;text-align:center}.box,.box.red-box{transition:all .3s ease}.box.red-box{background-color:#e74c3c;height:100px;width:100px}.box.red-box:hover{background-color:#d62c1a;transform:scale(1.1)}.box.blue-box{background-color:#3498db;height:100px;transition:all .3s ease;width:200px}.box.blue-box:hover{background-color:#217dbb;transform:scale(1.1)}.box.circle{border-radius:50%}.box.circle.yellow-circle{background-color:#f1c40f;height:100px;transition:all .3s ease;width:100px}.box.circle.yellow-circle:hover{background-color:#c29d0b;transform:scale(1.1)}.box.shadow-box{background-color:#9b59b6;box-shadow:5px 5px 15px rgba(0,0,0,.3);height:150px;transition:all .3s ease;width:150px}.box.shadow-box:hover{background-color:#804399;transform:scale(1.1)}.box.positioned-box{background-color:#4caf50;height:100px;left:50px;position:absolute;top:150px;transition:all .3s ease;width:100px;z-index:10}.box.positioned-box:hover{background-color:#3d8b40;transform:scale(1.1)}.grid-container{background-color:#d6eaf8;border:4px solid #2980b9;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin-bottom:40px;padding:15px}.grid-container .grid-item{background-color:#f9f9f9;border:2px solid #3498db;border-radius:5px;font-weight:700;padding:20px;text-align:center;transition:transform 1s ease-in-out}.grid-container .grid-item.red-box{background-color:#e74c3c}.grid-container .grid-item.blue-box{background-color:#3498db}.grid-container .grid-item.green-box{background-color:#2ecc71}.grid-container .grid-item.yellow-box{background-color:#f39c12}.grid-container .grid-item:hover{transform:rotate(180deg)}.flex-container{background-color:#e8daef;border:4px solid #9b59b6;display:flex;gap:20px;justify-content:space-between;margin-bottom:40px;padding:15px}.flex-container .flex-item{background-color:#f9f9f9;border:2px solid #8e44ad;border-radius:5px;font-weight:700;padding:20px;text-align:center;transition:transform 1s ease-in-out}.flex-container .flex-item.red-box{background-color:#e74c3c}.flex-container .flex-item.blue-box{background-color:#3498db}.flex-container .flex-item.green-box{background-color:#2ecc71}.flex-container .flex-item.yellow-box{background-color:#f39c12}.flex-container .flex-item:hover{transform:rotate(180deg)}.cookie-consent .accept-button{background-color:#4caf50;border-radius:5px;color:#000;font-size:14px;padding:10px 20px;transition:background-color .3s ease}.cookie-consent .accept-button:hover{background-color:#29b866}.cookie-consent .decline-button{background-color:#e74c3c;border-radius:5px;color:blue;font-size:14px;padding:10px 20px;transition:background-color .3s ease}.cookie-consent .decline-button:hover{background-color:#e43422}.green-button{background-color:#2ecc71;border:none;border-radius:5px;color:#333;cursor:pointer;padding:.5rem 1rem;transition:background-color .5s ease,color .5s ease;width:auto}.green-button:hover{background-color:#29b866;color:#fff}.blue-button{background-color:#3498db;border:none;border-radius:5px;color:#333;cursor:pointer;padding:.5rem 1rem;transition:background-color .5s ease,color .5s ease;width:auto}.blue-button:hover{background-color:#258bcf;color:#fff}.orange-button{background-color:orange;border:none;border-radius:5px;color:#333;cursor:pointer;padding:.5rem 1rem;transition:background-color .5s ease,color .5s ease;width:auto}.orange-button:hover{background-color:#e69500;color:#fff}.crud-buttons{display:flex;gap:.5rem;justify-content:center}.crud-buttons a,.crud-buttons button{border:none;border-radius:3px;cursor:pointer;padding:.5rem 1rem}.crud-buttons a.view,.crud-buttons button.view{background-color:#3498db;color:#000;font-weight:700}.crud-buttons a.view:hover,.crud-buttons button.view:hover{background-color:#258bcf;transform:scale(1.2)}.crud-buttons a.edit,.crud-buttons button.edit{background-color:#2ecc71;color:#000;font-weight:700}.crud-buttons a.edit:hover,.crud-buttons button.edit:hover{background-color:#29b866;transform:scale(1.2)}.crud-buttons a.delete,.crud-buttons button.delete{background-color:orange;color:#000;font-weight:700}.crud-buttons a.delete:hover,.crud-buttons button.delete:hover{background-color:#e69500;transform:scale(1.2)}.crud-buttons a.validate,.crud-buttons button.validate{background-color:#9b59b6;color:#000;font-weight:700}.crud-buttons a.validate:hover,.crud-buttons button.validate:hover{background-color:#8e4aa9;transform:scale(1.2)}*,:after,:before{box-sizing:border-box}body,html{display:flex;flex-direction:column;font-family:Arkhip,Cambria Math,sans-serif;height:100%;margin:0;padding-top:50px}.main-content-wrapper{box-sizing:border-box;flex:1;margin-bottom:50px;padding:100px 50px;width:100%}main{padding:0}h1,h2,h3,h4{color:#3498db;font-weight:700;margin:30px 0;text-decoration:underline;text-decoration-color:#2ecc71;text-decoration-thickness:2px;text-underline-offset:8px}h1{font-size:3.5rem}h1,h2{text-align:center}h2{font-size:2.5rem}h3{font-size:1.5rem;text-align:left}h4{color:#2ecc71;font-size:1.2rem;margin:0;text-decoration:none}p{font-family:Jost,Montserrat,Segoe UI,system-ui,sans-serif;font-size:1.4rem;line-height:1.7}p a{color:#3498db}p.details-photo{text-align:center}.espacement{height:40px}@media (max-width:768px){.main-content-wrapper{padding:50px 20px}h1{font-size:2.5rem}h2{font-size:2rem}p{font-size:1.3rem}}input,select,textarea{background-color:#444;border:1px solid #ced4da;border-radius:5px;box-shadow:inset 0 1px 3px rgba(0,0,0,.1);color:#dbdada;font-size:1rem;padding:.5rem 1rem;transition:border-color .3s,box-shadow .3s;width:100%}input:focus{border-color:#f1c40f;box-shadow:0 0 5px rgba(255,253,128,.815);outline:none}.form-group-wrapper{margin:1.5rem 0}.form-group{align-items:center;display:flex;flex-direction:column}form input[type=email],form input[type=file],form input[type=password],form input[type=submit],form input[type=text],form select,form textarea{border:1px solid #ccc;border-radius:5px;box-sizing:border-box;font-size:1rem;margin-bottom:1.5rem;max-width:600px;min-width:300px;padding:.8rem;transition:all .3s ease;width:40%}form textarea{height:120px;resize:vertical}form input[type=submit]{background-color:#2ecc71;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:.8rem 1.5rem;transition:background-color .3s ease}form input[type=submit]:hover{background-color:#29b866}.flash-error,.flash-info,.flash-success{border-radius:5px;box-sizing:border-box;font-weight:700;margin:20px auto;max-width:600px;padding:15px;text-align:center;width:100%}.flash-error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.flash-success{color:#155724}.flash-info,.flash-success{background-color:#d4edda;border:1px solid #c3e6cb}.flash-info{color:#08b4a6}form label{display:block;font-weight:700;margin-bottom:.5rem;text-align:left}form a{color:#3498db;display:inline-block;margin-top:1rem;text-decoration:none}form a:hover{text-decoration:underline}@media (max-width:768px){.flash-error,.flash-success,form input[type=email],form input[type=file],form input[type=password],form input[type=submit],form input[type=text],form select,form textarea{max-width:unset;min-width:unset;width:80%}}@media (max-width:480px){.flash-error,.flash-success,form input[type=email],form input[type=submit],form input[type=text],form textarea{width:90%}.form-group-wrapper{margin:1rem 0}}.custom-file-label{background-color:#3498db;border-radius:5px;color:#333;cursor:pointer;display:inline-block;padding:8px 16px;text-align:center;transition:background-color .5s ease,color .5s ease}.custom-file-label:hover{background-color:#258bcf;color:#fff}.albums-container{box-sizing:border-box;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;padding:16px}.album{box-sizing:border-box;flex:1 1 200px;text-align:center;width:200px}.album img{height:100%;max-height:150px;max-width:100%;min-height:100px;min-width:120px;object-fit:contain;width:100%}.album p{font-size:16px;margin-top:8px}@media (max-width:768px){.album{width:140px}.album img{height:120px;min-height:120px}}.album-controls{margin-top:10px}.album-controls button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-right:5px;padding:5px 10px}.album-controls button:hover{background-color:#0056b3}.album-controls button.delete{background-color:#dc3545}.album-controls button.delete:hover{background-color:#a71d2a}.project-carousel{margin:40px 0;padding-top:70px;position:relative;text-align:center}.carousel-container{display:grid;gap:20px;grid-template-columns:repeat(3,1fr);transition:transform .3s ease-in-out}.carousel-container.next{animation:slide-left .3s ease-in-out forwards;transform:translateX(-10%)}.carousel-container.prev{animation:slide-right .3s ease-in-out forwards;transform:translateX(10%)}@keyframes slide-left{0%{transform:translateX(0)}to{transform:translateX(-33.3%)}}@keyframes slide-right{0%{transform:translateX(0)}to{transform:translateX(33.3%)}}.project-slide{align-items:center;display:flex;justify-content:center;overflow:hidden;position:relative;transition:opacity .3s ease}.project-image{border-radius:8px;height:auto;transition:opacity .3s ease;width:100%}.project-slide p{background:rgba(0,0,0,.6);border-radius:5px;color:#fff;font-size:18px;font-weight:700;left:50%;opacity:0;padding:8px 12px;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease}.project-slide:hover .project-image{opacity:.5}.project-slide:hover p{opacity:1}.next-btn,.prev-btn{background-color:rgba(0,0,0,.5);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:24px;padding:10px 15px;position:absolute;top:50%;transform:translateY(-50%)}.prev-btn{left:10px}.next-btn{right:10px}@media (max-width:768px){.carousel-container{align-items:center;display:flex;flex-direction:column;gap:15px}.project-slide{width:100%}.next-btn,.prev-btn{display:none}}.cv-contact{align-items:center;flex-direction:column;gap:20px;margin:20px auto;text-align:center}.cv-contact,.cvc-buttons{display:flex;justify-content:center}.cvc-buttons{gap:15px;margin-top:20px}.cv-p{text-align:center}.photo-controls{display:flex;justify-content:center;margin-top:auto;padding-bottom:10px;width:100%}.photo-controls a,.photo-controls button{align-items:center;background-color:#3498db;border:none;border-radius:4px;cursor:pointer;display:flex;margin-right:5px;padding:5px 10px}.photo-controls a:hover,.photo-controls button:hover{background-color:#258bcf}.photo-controls a.btn-delete,.photo-controls button.btn-delete{background-color:orange}.photo-controls a.btn-delete:hover,.photo-controls button.btn-delete:hover{background-color:#e69500}.photo-controls a.btn-rename,.photo-controls button.btn-rename{background-color:#2ecc71}.photo-controls a.btn-rename:hover,.photo-controls button.btn-rename:hover{background-color:#29b866}.photo-controls a.btn-view,.photo-controls button.btn-view{background-color:#3498db}.photo-controls a.btn-view:hover,.photo-controls button.btn-view:hover{background-color:#258bcf}.photo-controls a.btn-like,.photo-controls button.btn-like{background-color:#f07a8c}.photo-controls a.btn-like:hover,.photo-controls button.btn-like:hover{background-color:#d15a6e}.item-list{display:flex;flex-wrap:wrap;gap:16px}.item-list .item{position:relative;text-align:center;width:150px}.item-list .item .item-image{border-radius:8px;height:100px;object-fit:cover;transition:transform .3s ease;width:100px}.item-list .item p{font-size:14px;margin-top:8px}.item-list .item:hover .item-image{transform:scale(1.1)}.item-list .item .actions{margin-top:8px}.item-list .item .actions button{border:none;border-radius:4px;cursor:pointer;font-size:14px;margin:4px;padding:8px;transition:background-color .3s ease}.item-list .item .actions button.edit-button{background-color:#4caf50;color:#fff}.item-list .item .actions button.edit-button:hover{background-color:#45a049}.item-list .item .actions button.delete-button{background-color:#f44336;color:#fff}.item-list .item .actions button.delete-button:hover{background-color:#e53935}.item-list .item .icon{font-size:24px;opacity:0;position:absolute;right:10%;top:10%;transform:scale(0);transition:all .3s ease}.item-list .item .icon.edit-icon{color:#4caf50}.item-list .item .icon.delete-icon{color:#f44336}.item-list .item.selected .icon{opacity:1;transform:scale(1)}.menu{display:flex;gap:20px}.menu a{align-items:center;border-radius:5px;color:#999;display:flex;justify-content:center;padding:10px 15px;text-decoration:none;transition:background-color .3s ease,color .3s ease}.menu a.active,.menu a:hover{background-color:#3498db;color:#fff}.dropdown{display:inline-block;position:relative}.dropdown>a{align-items:center;border-radius:5px;display:flex;justify-content:center;padding:10px 15px;transition:background-color .3s ease,color .3s ease}.dropdown>a:hover{background-color:#3498db;color:#fff}.dropdown .dropdown-content{background-color:#3498db;border-radius:5px;box-shadow:0 8px 16px rgba(0,0,0,.2);display:none;left:0;min-width:160px;overflow:hidden;position:absolute;top:100%;z-index:1}.dropdown .dropdown-content a{color:#fff;display:block;padding:12px 16px;text-decoration:none;transition:background-color .3s ease,color .3s ease}.dropdown .dropdown-content a:hover{background-color:#ddd;color:#3498db}.dropdown:hover .dropdown-content{display:block}.photo-grid{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);padding:16px}.photo-grid li{list-style:none}.photo-card{background-color:#fff;border-radius:12px;box-shadow:0 4px 10px rgba(0,0,0,.1);display:flex;flex-direction:column;height:300px;justify-content:space-between;overflow:hidden;padding:10px;text-align:center}.photo-wrapper img{border-radius:8px;height:auto;margin-bottom:16px;object-fit:cover;width:100%}.photo-wrapper p{color:#333;font-size:16px;font-weight:700;margin-bottom:10px}.photo-actions{margin-top:auto}header{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px rgba(0,0,0,.5);box-sizing:border-box;color:#fff;display:flex;justify-content:space-between;left:0;margin-bottom:20px;padding:15px 40px;position:fixed;top:0;transition:background-color .3s ease,backdrop-filter .3s ease;width:100%;z-index:1000}header .hamburger-menu{color:#3498db;cursor:pointer;display:none;font-size:2rem;z-index:1500}header .nav-menu{align-items:center;display:flex;gap:30px;list-style:none;margin:0;padding:0;width:100%}header .nav-menu a{border-radius:8px;color:#3498db;font-size:1rem;padding:10px 15px;text-decoration:none;transition:color .3s ease,background-color .3s ease}header .nav-menu a.active,header .nav-menu a:hover{background-color:#3498db;color:#fff}header .header-left{align-items:center;display:flex;flex:1;gap:30px;justify-content:flex-start}header .header-center{align-items:center;display:flex;flex:1;justify-content:center}header .header-center .logo a{display:block;pointer-events:auto}header .header-center .logo img{height:auto;width:140px}header .header-center .logo:hover{background-color:transparent;color:inherit}header .header-right{align-items:center;display:flex;flex:1;gap:15px;justify-content:flex-end}header .header-right .register{background-color:#2ecc71;border-radius:8px;color:#fff;padding:10px 15px;transition:background-color .3s ease,color .3s ease}header .header-right .register:hover{background-color:#29b866;color:#fff}header #spinner-overlay{align-items:center;background:rgba(0,0,0,.8);display:none;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}header #spinner-overlay .spinner{animation:spin 1s linear infinite;border:5px solid #2ecc71;border-radius:50%;border-top-color:#3498db;height:50px;width:50px}header #spinner-overlay .message{color:#fff;font-size:1.2rem;margin-top:20px}@media (max-width:768px){header .hamburger-menu{display:block}header .nav-menu{background-color:hsla(0,0%,7%,.85);display:none;flex-direction:column;gap:15px;left:0;padding:20px;position:fixed;top:70px;width:100%;z-index:1500}header .nav-menu .header-center .logo img{display:block;margin-bottom:20px}header .nav-menu.active{display:flex}header .header-center .logo{display:none}}@media (min-width:769px){header{align-items:center;display:flex;justify-content:space-between;width:100%}header .hamburger-menu{display:none}header .header-left{justify-content:flex-start}header .header-center{align-items:center;justify-content:center}header .header-right{justify-content:flex-end}}header .old-header{display:flex}header .hamburger-header{display:none}@media (max-width:768px){header .old-header{display:none}header .hamburger-header{display:block}}header .nav-menu a svg{fill:#3498db;transition:fill .3s ease}header .nav-menu a.active svg,header .nav-menu a:hover svg{fill:#fff;background-color:#3498db}@media (max-width:768px){.mobile-only{display:inline-block;height:24px;width:24px}.desktop-only{display:none}}@media (min-width:769px){.mobile-only{display:none}.desktop-only{display:inline-block}}footer{align-items:stretch;box-sizing:border-box;display:flex;height:120px;justify-content:space-between;margin-top:auto;position:relative;width:100%}@media (max-width:768px){footer{flex-direction:column;height:auto}}.footer-left,.footer-right{display:flex;flex:1;flex-direction:column;height:100%;justify-content:center;padding:16px 32px;text-align:center}@media (max-width:768px){.footer-left,.footer-right{height:auto;padding:32px}}.footer-left{background-color:#3498db;color:#fff}.footer-right{background-color:#2ecc71;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}@media (max-width:768px){.footer-right{align-items:center;flex-direction:column}}.footer-right ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.footer-right ul li{margin-bottom:8px}.footer-right ul li:last-child{margin-bottom:0}.footer-right ul li a{color:#fff;font-size:.9rem;text-decoration:none;transition:color .3s ease}.footer-right ul li a:hover{color:#3498db}.footer-text{font-size:.9rem;margin-top:8px}@media (max-width:768px){.footer-text{font-size:.8rem}}@media (max-width:480px){.footer-text{font-size:.75rem}}.social-icons{display:flex;gap:15px;justify-content:center;margin-top:10px}@media (max-width:768px){.social-icons{gap:10px}}@media (max-width:480px){.social-icons{gap:5px}}.social-icon{background-color:#fff;border-radius:50%;display:inline-block;height:40px;overflow:hidden;padding:5px;transition:transform .3s ease-in-out;width:40px}@media (max-width:768px){.social-icon{height:35px;width:35px}}@media (max-width:480px){.social-icon{height:30px;width:30px}}.social-icon img{height:100%;object-fit:contain;transition:transform .3s ease-in-out;width:100%}.social-icon img:hover{transform:scale(1.2)}.social-icon:hover{transform:scale(1.1)}.photos-container{display:flex;flex-wrap:wrap;gap:16px}.photo{background-color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.3);display:flex;flex-direction:column;justify-content:space-between;margin-bottom:16px;padding:10px;text-align:center;width:150px}.photo img{height:auto;margin:10px auto;object-fit:cover;width:100%}.photo p{color:#333;font-size:14px;margin:0}.photo-actions{display:flex;justify-content:space-between;margin-top:10px}.photo-actions button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;transition:background-color .3s}.photo-actions button:hover{background-color:#0056b3}.photo-thumbnail{display:block;height:200px;object-fit:cover;width:100%}.photo-overlay{align-items:center;background:rgba(0,0,0,.8);bottom:0;cursor:pointer;display:flex;height:100%;justify-content:center;left:0;position:fixed;right:0;top:0;width:100%;z-index:1000}.photo-overlay .photo-fullscreen{border:none;box-sizing:border-box;height:100vh;object-fit:cover;width:100vw}.photo-overlay h2{bottom:10px;color:#fff;font-size:2rem;left:50%;position:absolute;text-align:center;transform:translateX(-50%);z-index:1010}.photo-agrandie{height:auto;margin-bottom:15px;max-width:100%;text-align:center}.presentation-container{align-items:center;display:flex;flex-wrap:wrap;gap:100px;justify-content:center;margin:20px auto 40px;max-width:100%;padding:0 60px}.presentation-container .photo-presentation{flex:0 0 auto;text-align:center}.presentation-container .photo-presentation img{border-radius:50px;height:auto;max-width:100%;width:100%}.presentation-container .texte{color:#ccc;flex:2 1 300px;font-size:16px;line-height:1.6;text-align:left}.presentation-container .texte h2{color:#3498db;font-size:24px;margin-bottom:10px}.presentation-container .texte p{color:#ccc;font-size:18px;line-height:1.6}body.light-mode .presentation-container .texte p{color:#000}body.dark-mode .presentation-container .texte p{color:#ccc}.presentation-container .texte p a{color:#3498db}.presentation-container .competences{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.presentation-container .competence{align-items:center;display:flex;gap:15px;justify-content:center;overflow:hidden;position:relative;transition:transform .3s ease;width:30%}.presentation-container .competence img{border-radius:8px;height:50px;margin-right:10px;object-fit:contain;transition:transform .3s ease;width:50px}.presentation-container .competence .competence-text{background-color:rgba(0,0,0,.7);border-radius:5px;color:#fff;font-size:14px;left:47%;opacity:0;padding:5px 10px;position:absolute;top:100%;transform:translateX(-50%);transition:opacity .3s ease,top .3s ease;visibility:hidden}.presentation-container .competence:hover img{transform:scale(1.05)}.presentation-container .competence:hover .competence-text{opacity:1;top:48%;visibility:visible}.separator{background:linear-gradient(90deg,#3498db 50%,#2ecc71 0);height:5px;margin:100px auto;width:20%}@media screen and (max-width:1200px){.photo-presentation{display:none}}.custom-select{display:inline-block;position:relative;width:60px}.custom-select .selected-option{align-items:center;background-color:transparent;border:1px solid #3498db;border-radius:5px;cursor:pointer;display:flex;height:30px;justify-content:center;padding:5px;text-align:center}.custom-select .selected-option img.flag-icon{height:15px;width:20px}.custom-select .options{background-color:transparent;border:1px solid #3498db;border-radius:0 0 5px 5px;display:none;left:0;list-style:none;margin:0;padding:0;position:absolute;top:100%;width:100%;z-index:10}.custom-select .options li{cursor:pointer;display:block;height:30px;line-height:30px;text-align:center}.custom-select .options li a{align-items:center;color:inherit;display:flex;height:100%;justify-content:center;text-decoration:none;width:100%}.custom-select .options li:hover{background-color:#258bcf}.custom-select .options li img.flag-icon{height:15px;width:20px}.custom-select:hover .options{display:block}.pagination{display:flex;justify-content:center;margin:20px 0}.pagination .current,.pagination .first,.pagination .last,.pagination .next,.pagination .page,.pagination .previous{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.pagination .current a,.pagination .first a,.pagination .last a,.pagination .next a,.pagination .page a,.pagination .previous a{background-color:#2ecc71;border-radius:5px;color:#333;cursor:pointer;font-weight:700;margin:0 5px;padding:8px 12px;text-decoration:none;transition:background-color .3s,color .3s}.pagination .current a:hover,.pagination .first a:hover,.pagination .last a:hover,.pagination .next a:hover,.pagination .page a:hover,.pagination .previous a:hover{background-color:#3498db;box-shadow:0 0 5px rgba(255,253,128,.815);color:#f1c40f}.pagination .current a:disabled,.pagination .first a:disabled,.pagination .last a:disabled,.pagination .next a:disabled,.pagination .page a:disabled,.pagination .previous a:disabled{cursor:not-allowed;opacity:.5}.pagination .current{align-items:center;background-color:#3498db;border-radius:5px;box-shadow:0 0 5px rgba(255,253,128,.815);color:#f1c40f;display:inline-flex;font-weight:700;justify-content:center;margin:0 5px;padding:8px 12px}.pagination .next a:disabled,.pagination .previous a:disabled{cursor:not-allowed;opacity:.5}.pagination button{background-color:#2ecc71;border-radius:5px;cursor:pointer;font-weight:700;margin:0 5px;padding:5px 10px}.pagination button.active{background-color:#3498db;border-color:#f1c40f;box-shadow:0 0 5px rgba(255,253,128,.815);color:#f1c40f;font-weight:700;outline:none}.pagination button:disabled{cursor:not-allowed;opacity:.5}.table-container{border:1px solid #ddd;border-radius:5px;margin:2rem 0;padding:1rem}.table-container h2{color:#333;margin-bottom:1rem;text-align:center;text-decoration:none}.table-container .dashboard-table{background-color:#3498db;border-collapse:collapse;color:#fff;width:100%}.table-container .dashboard-table td,.table-container .dashboard-table th{border:1px solid #ddd;padding:.75rem;text-align:center}.table-container .dashboard-table th{background-color:#333;color:#2ecc71;font-weight:700}.table-container .dashboard-table td.td-actions{text-align:center;vertical-align:middle}.table-container .dashboard-table td.td-preview{vertical-align:middle}.table-container .dashboard-table .photo-preview{align-items:center;display:flex;flex-direction:column;gap:.35rem}.table-container .dashboard-table .photo-preview img{border:1px solid hsla(0,0%,100%,.25);border-radius:4px;height:55px;object-fit:cover;width:55px}.table-container .dashboard-table .rotate-buttons{display:flex;gap:.25rem}.table-container .dashboard-table .rotate-buttons button{background-color:#2ecc71;border:none;border-radius:3px;color:#000;cursor:pointer;font-size:.8rem;font-weight:700;line-height:1;padding:.15rem .4rem}.table-container .dashboard-table .rotate-buttons button:hover{background-color:#29b866;transform:scale(1.1)}.table-container .dashboard-table tr:hover{background-color:#258bcf}.table-container .dashboard-table .odd-row-users{background-color:#8b1a1a}.table-container .dashboard-table .even-row-users{background-color:#6f1414}.table-container .dashboard-table .odd-row-photos{background-color:#2c6b3f}.table-container .dashboard-table .even-row-photos{background-color:#1f5232}.table-container .dashboard-table .odd-row-albums{background-color:#2c3e50}.table-container .dashboard-table .even-row-albums{background-color:#1a2530}.table-container .dashboard-table .odd-row-articles{background-color:#5a4633}.table-container .dashboard-table .even-row-articles{background-color:#3d2f22}.table-container .dashboard-table .odd-row-comments{background-color:#6a4c9c}.table-container .dashboard-table .even-row-comments{background-color:#4e2a84}.table-container .dashboard-table .odd-row-themes{background-color:#b78f2e}.table-container .dashboard-table .even-row-themes{background-color:#8f6d2f}.table-container .dashboard-table .crud-buttons{display:flex;gap:.5rem;justify-content:center}.table-container .dashboard-table .crud-buttons button{border:none;border-radius:3px;cursor:pointer;padding:.5rem 1rem}.table-container .dashboard-table .crud-buttons button.edit{background-color:#2ecc71;color:#000;font-weight:700}.table-container .dashboard-table .crud-buttons button.edit:hover{background-color:#29b866;transform:scale(1.2)}.table-container .dashboard-table .crud-buttons button.delete{background-color:orange;color:#000;font-weight:700}.table-container .dashboard-table .crud-buttons button.delete:hover{background-color:#e69500;transform:scale(1.2)}.table-container .dashboard-table .crud-buttons button.validate{background-color:#9b59b6;color:#000;font-weight:700}.table-container .dashboard-table .crud-buttons button.validate:hover{background-color:#8e4aa9;transform:scale(1.2)}.table-container .dashboard-table .crud-buttons button.cancel{background-color:#f1c40f;color:#000;font-weight:700}.table-container .dashboard-table .crud-buttons button.cancel:hover{background-color:#dab10d;transform:scale(1.2)}.tabs{display:flex;justify-content:center;margin-bottom:20px}.tab-button{background-color:#f1f1f1;border:1px solid #ccc;border-radius:5px;cursor:pointer;font-weight:700;margin-right:5px;padding:10px 20px}.tab-button.albums{background-color:#2c3e50;color:#fff}.tab-button.photos{background-color:#2c6b3f;color:#fff}.tab-button.users{background-color:#8b1a1a;color:#fff}.tab-button.articles{background-color:#5a4633;color:#fff}.tab-button.comments{background-color:#6a4c9c;color:#fff}.tab-button.themes{background-color:#b78f2e;color:#fff}.tab-button.active{background-color:#3498db;border-color:#f1c40f;box-shadow:0 0 5px rgba(255,253,128,.815);color:#f1c40f;outline:none}.tab-content{margin-top:20px}table{border-collapse:collapse;width:100%}table td,table th{border:1px solid #ddd;padding:10px}.timeline{padding:50px 20px;text-align:center}.timeline .timeline-title{font-size:2.5rem;margin-bottom:30px}.timeline .timeline-container{margin:0 auto;max-width:800px;position:relative}.timeline .timeline-container:before{background-color:hsla(0,0%,100%,.3);content:"";height:100%;left:50%;position:absolute;top:0;transform:translateX(-50%);width:4px}body.light-mode .timeline .timeline-container:before{background-color:#000}.timeline .timeline-item{cursor:pointer;opacity:0;padding:20px;position:relative;text-align:left;transform:translateX(-100px);transition:all .8s ease;width:50%}.timeline .timeline-item:nth-child(odd){left:0;text-align:right}.timeline .timeline-item:nth-child(2n){left:50%;text-align:left}.timeline .timeline-item.visible{opacity:1;transform:translateX(0)}.timeline .timeline-item:hover{transform:scale(1.05);transition:transform .3s ease}.timeline .timeline-item .timeline-content{background:hsla(0,0%,100%,.1);border-radius:10px;box-shadow:0 5px 15px rgba(0,0,0,.3);overflow-wrap:break-word;padding:20px;word-wrap:break-word;hyphens:auto;word-break:break-word}.timeline .timeline-item .timeline-content h3{margin:0}.timeline .timeline-item .timeline-content p{margin:10px 0 0}.timeline .timeline-item .timeline-content:hover{background:hsla(0,0%,100%,.2);box-shadow:0 8px 20px rgba(0,0,0,.4);transform:scale(1.05);transition:transform .5s ease,background .5s ease}@media (max-width:768px){.timeline .timeline-content{overflow-wrap:break-word;word-wrap:break-word;hyphens:auto;word-break:break-word}.timeline .timeline-content p,.timeline h4{font-size:.6rem;text-decoration:none}.timeline .timeline-content h3{font-size:.8rem;margin:0;text-decoration:none}}.modal-overlay{align-items:center;background:rgba(0,0,0,.6);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{animation:fadeIn .3s ease-in-out;background:#fff;border-radius:10px;box-shadow:0 5px 15px rgba(0,0,0,.3);max-width:900px;padding:20px;position:relative;width:100%}.modal-content p{color:#000;font-size:1.2rem;white-space:pre-line}@media (max-width:992px){.modal-content{animation:fadeIn .3s ease-in-out;background:#fff;border-radius:10px;box-shadow:0 5px 15px rgba(0,0,0,.3);margin:0 auto;max-width:80%;padding:20px;position:relative;width:100%}.modal-content h3{font-size:.9rem;text-decoration:none}.modal-content p{color:#000;font-size:.6rem;white-space:pre-line}}.close-btn{background:hsla(0,0%,100%,.3);border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;margin-top:10px;padding:10px}.close-btn:hover{background:hsla(0,0%,90%,.3)}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.switch{display:inline-block;height:24px;position:relative;width:50px}.switch input{height:0;opacity:0;width:0}.switch .slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.5s}.switch .slider:before{background-color:#fff;border-radius:50%;bottom:2px;content:"";height:20px;left:4px;position:absolute;transition:.5s;width:20px}.switch input:checked+.slider{background-color:#4caf50}.switch input:checked+.slider:before{transform:translateX(22px)}.switch input+.slider{background-color:#e74c3c}.switch.light-mode-toggle input:checked+.slider{background-color:#f1c40f}.switch.light-mode-toggle input:checked+.slider:before{transform:translateX(22px)}.switch.light-mode-toggle input+.slider{background-color:#ccc}.switch-container{align-items:center;display:flex;gap:8px}.switch-label{font-weight:400;margin:0;padding-bottom:4px;vertical-align:middle}.notification{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:5px;bottom:20px;box-shadow:0 4px 8px rgba(0,0,0,.2);color:#155724;font-size:16px;left:20px;opacity:0;padding:10px 20px;position:fixed;transition:transform 2s ease,opacity 2s ease;z-index:1000}.notification.show{opacity:1}.notification.hide{opacity:0;transition:transform 2s ease,opacity 2s ease}#spinner-overlay{align-items:center;background-color:rgba(0,0,0,.5);display:none;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#spinner-overlay .message{color:#fff;font-size:18px;font-weight:700;margin-top:10px}.table-strip{border-collapse:collapse;width:100%}.table-strip thead{background-color:#3498db;color:#f9f9f9}.table-strip tbody tr:nth-child(odd){background-color:#4f6b6b}.table-strip tbody tr:nth-child(2n){background-color:#2f4f4f}.table-strip tbody tr:hover{background-color:#2ecc71;color:#333;cursor:pointer}.table-strip td,.table-strip th{border:1px solid #f9f9f9;padding:12px;text-align:left}.table-strip .td-actions{text-align:center}.table-spacing{margin-bottom:2rem;margin-top:2rem}.table-bordered{border-collapse:collapse;width:100%}.table-bordered td,.table-bordered th{border:1px solid #ccc;padding:10px}.polaroid-images a{background:#fff;-webkit-box-shadow:0 4px 6px rgba(0,0,0,.3);-moz-box-shadow:0 4px 6px rgba(0,0,0,.3);box-shadow:0 4px 6px rgba(0,0,0,.3);display:inline;float:left;margin:0 15px 30px;padding:10px 10px 25px;perspective:1000px;text-align:center;text-decoration:none;-webkit-transition:transform .8s ease;-moz-transition:transform .8s ease;transition:transform .8s ease;z-index:0}.polaroid-images a:after{color:#333;content:attr(title);font-size:20px;position:relative;top:15px}.polaroid-images img{display:block;margin-bottom:15px;width:inherit}.polaroid-images .photo-title{color:#333;font-family:Great Vibes,cursive;font-size:26px;font-weight:700;margin-top:8px;text-align:center}.polaroid-images a:hover{-webkit-box-shadow:0 10px 20px rgba(0,0,0,.7);-moz-box-shadow:0 10px 20px rgba(0,0,0,.7);box-shadow:0 10px 20px rgba(0,0,0,.7);-webkit-transform:scale(1.2);-moz-transform:scale(1.2);transform:scale(1.2);z-index:10}.polaroid-thumbnail{display:block;height:420px;object-fit:cover;width:100%}.card-container{display:inline-block;height:300px;margin:15px;perspective:1000px;width:200px}.card{height:100%;position:relative;transform-style:preserve-3d;transition:transform .8s ease;width:100%}.card-container:hover .card{transform:rotateY(180deg)}.card-back,.card-front{align-items:center;backface-visibility:hidden;border-radius:10px;box-shadow:0 4px 6px rgba(0,0,0,.3);display:flex;height:100%;justify-content:center;overflow:hidden;position:absolute;width:100%}.card-front{background:#fff}.card-front img{height:100%;object-fit:cover;width:100%}.card-back{background:#fff;color:#000;font-size:18px;padding:20px;text-align:center;transform:rotateY(180deg)}.photo-transparent{opacity:.5;pointer-events:none}.photo-transparent img{opacity:.5}.album-gallery{display:grid;gap:28px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin:0 auto;max-width:1200px;padding:32px 24px}.album-card{display:flex;flex-direction:column;position:relative}.album-card__link{border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.14);color:inherit;display:block;overflow:hidden;text-decoration:none;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}.album-card__link:focus-visible,.album-card__link:hover{box-shadow:0 14px 30px rgba(0,0,0,.24);outline:none;transform:translateY(-6px)}.album-card__media{aspect-ratio:4/3;background:#1c1f26;overflow:hidden;position:relative}.album-card__media img{display:block;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1);width:100%}.album-card__link:hover .album-card__media img{transform:scale(1.06)}.album-card__placeholder{align-items:center;background:linear-gradient(135deg,#3498db,#2ecc71);color:hsla(0,0%,100%,.92);display:flex;font-size:2.6rem;height:100%;justify-content:center;width:100%}.album-card__overlay{align-items:flex-end;background:linear-gradient(0deg,rgba(0,0,0,.5) 0,transparent 55%);display:flex;inset:0;justify-content:flex-end;opacity:0;padding:14px;position:absolute;transition:opacity .25s cubic-bezier(.4,0,.2,1)}.album-card__link:hover .album-card__overlay{opacity:1}.album-card__cta{align-items:center;background:#3498db;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.08);color:#fff;display:flex;font-size:20px;height:42px;justify-content:center;line-height:1;transform:translateY(10px);transition:transform .25s cubic-bezier(.4,0,.2,1);width:42px}.album-card__link:hover .album-card__cta{transform:translateY(0)}.album-card__title{align-items:center;display:flex;font-size:15px;font-weight:600;gap:8px;line-height:1.35;margin:14px 4px 0}.album-card__count{font-size:13px;font-weight:400;margin-left:auto;opacity:.6}.album-card--owner .album-card__title>span:first-child:before{background:#2ecc71;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:8px;vertical-align:middle;width:8px}.album-card__badge-danger{align-items:center;background:rgba(231,76,60,.95);border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.08);color:#fff;display:flex;font-size:13px;height:26px;justify-content:center;left:10px;position:absolute;top:10px;width:26px;z-index:2}.album-card__actions{opacity:0;position:absolute;right:10px;top:10px;transition:opacity .25s cubic-bezier(.4,0,.2,1);z-index:3}.album-card:focus-within .album-card__actions,.album-card:hover .album-card__actions{opacity:1}body.light-mode .album-card__media{background:#eef1f5}body.light-mode .album-card__count{color:#7a8699;opacity:1}.languette-container{height:auto;left:0;pointer-events:none;position:fixed;top:0;width:auto;z-index:100}.languette{color:#3498db;flex-direction:column;gap:20px;height:100vh;left:-200px;width:200px;z-index:110}.languette,button.languette-toggle{align-items:center;background-color:#343434;display:flex;justify-content:center;pointer-events:auto;position:fixed;transition:left .3s ease}button.languette-toggle{border:none;border-bottom-right-radius:10px;border-top-right-radius:10px;color:#2ecc71;cursor:pointer;font-size:20px;height:100px;left:0;top:50%;transform:translateY(-50%);width:30px;z-index:10010}.languette.open{left:0}button.languette-toggle.open{left:200px}body{background-color:#121212;color:#ccc;transition:background-color .3s ease,color .3s ease}body.light-mode{background-color:#fff;color:#000}body.dark-mode{background-color:#121212;color:#ccc}input[type=email],input[type=file],input[type=password],input[type=text],select,textarea{background-color:#121212;border:1px solid #ccc;border-radius:4px;color:#ccc;padding:8px;transition:background-color .3s ease,color .3s ease,border .3s ease}body.dark-mode input[type=email],body.dark-mode input[type=file],body.dark-mode input[type=password],body.dark-mode input[type=text],body.dark-mode select,body.dark-mode textarea{background-color:#121212;border:1px solid #ccc;color:#ccc}body.light-mode input[type=email],body.light-mode input[type=file],body.light-mode input[type=password],body.light-mode input[type=text],body.light-mode select,body.light-mode textarea{background-color:#fff;border:1px solid #000;color:#000}table td,table th{color:inherit;color:#ccc}body.dark-mode table td,body.dark-mode table th,body.light-mode table td,body.light-mode table th{color:#ccc}@media (max-width:768px){body.dark-mode .nav-menu{background-color:hsla(0,0%,7%,.85)}body.light-mode .nav-menu{background-color:hsla(0,0%,100%,.85)}}.photo-navigation{display:flex;justify-content:space-between;margin:20px auto;max-width:600px}.nav-arrow{color:#f60;font-size:18px;font-weight:700;text-decoration:none}.left-arrow{text-align:left}.right-arrow{text-align:right}