:root{--yellow:#DDD92A;--gold:#EAE151;--black:#2D2A32;--white:#FAFDF6;--transition-speed:0.5s;--header-height:100px;--header-height-scrolled:80px}*{margin:0;padding:0;box-sizing:border-box;font-family:'Montserrat',sans-serif}body{background-color:var(--black);color:var(--white);overflow-x:hidden;min-height:200vh}.header{position:fixed;top:0;left:0;width:100%;z-index:1000;transition:all var(--transition-speed) cubic-bezier(0.16,1,0.3,1);opacity:0;transform:translateY(-30px);visibility:hidden}.header.transparent{background-color:transparent;height:var(--header-height)}.header.solid{background-color:var(--black);box-shadow:0 8px 30px rgba(0,0,0,0.15);height:var(--header-height-scrolled)}.header.visible{opacity:1;transform:translateY(0);visibility:visible;animation:headerReveal 1.2s cubic-bezier(0.34,1.56,0.64,1) forwards}.header-container{display:flex;justify-content:space-between;align-items:center;height:100%;max-width:1400px;margin:0 auto;padding:0 5%;position:relative}.logo{display:flex;align-items:center;text-decoration:none;position:relative;z-index:2;transition:transform 0.5s cubic-bezier(0.34,1.56,0.64,1)}.logo-image{height:85px;width:auto;transition:all var(--transition-speed) cubic-bezier(0.16,1,0.3,1);filter:drop-shadow(0 0 8px rgba(255,255,255,0.5));animation:logoGlow 3s infinite alternate;opacity:0;transform:scale(0.8) rotate(-5deg)}.header.visible .logo-image{animation:logoReveal 1s cubic-bezier(0.34,1.56,0.64,1) forwards}.header.solid .logo-image{height:85px}.logo-text{margin-left:15px;font-weight:700;font-size:32px;color:var(--white);transition:all var(--transition-speed) cubic-bezier(0.16,1,0.3,1);letter-spacing:1px;text-shadow:0 0 10px rgba(255,255,255,0.3);animation:textGlow 3s infinite alternate;opacity:0;transform:translateX(-10px)}.header.visible .logo-text{animation:textReveal 1s cubic-bezier(0.34,1.56,0.64,1) forwards;animation-delay:0.2s}.header.solid .logo-text{font-size:28px}.logo:hover{transform:scale(1.05)}.logo:hover .logo-image{transform:rotate(5deg);filter:drop-shadow(0 0 15px rgba(255,255,255,0.8));}.logo:hover .logo-text{letter-spacing:2px;text-shadow:0 0 15px rgba(255,255,255,0.6)}.nav{display:flex;align-items:center}.nav-list{display:flex;list-style:none}.nav-item{margin:0 25px;position:relative;overflow:hidden;opacity:0;transform:translateY(10px)}.header.visible .nav-item:nth-child(1){animation:navItemReveal 0.6s cubic-bezier(0.34,1.56,0.64,1) forwards;animation-delay:0.3s}.header.visible .nav-item:nth-child(2){animation:navItemReveal 0.6s cubic-bezier(0.34,1.56,0.64,1) forwards;animation-delay:0.4s}.header.visible .nav-item:nth-child(3){animation:navItemReveal 0.6s cubic-bezier(0.34,1.56,0.64,1) forwards;animation-delay:0.5s}.header.visible .nav-item:nth-child(4){animation:navItemReveal 0.6s cubic-bezier(0.34,1.56,0.64,1) forwards;animation-delay:0.6s}.nav-link{color:var(--white);text-decoration:none;font-size:15px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;transition:all 0.3s ease;padding:8px 0;position:relative;display:inline-block}.nav-link::before{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background-color:var(--yellow);transform:scaleX(0);transform-origin:right;transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);box-shadow:0 0 8px var(--yellow)}.nav-link:hover{color:var(--yellow);transform:translateY(-3px);text-shadow:0 0 10px rgba(221,217,42,0.5)}.nav-link:hover::before{transform:scaleX(1);transform-origin:left}.nav-link.active{color:var(--yellow);font-weight:600}.nav-link.active::before{transform:scaleX(1)}.contact-btn-wrapper{position:relative;margin-left:40px;perspective:1000px;opacity:0;transform:scale(0.9)}.header.visible .contact-btn-wrapper{animation:buttonReveal 0.8s cubic-bezier(0.34,1.56,0.64,1) forwards;animation-delay:0.7s}.contact-btn{background-color:var(--yellow);color:var(--black);border:none;border-radius:4px;padding:12px 28px;font-size:14px;font-weight:600;text-transform:uppercase;cursor:pointer;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);letter-spacing:1px;position:relative;overflow:hidden;box-shadow:0 0 15px rgba(221,217,42,0.3);animation:buttonPulse 2s infinite alternate;transform-style:preserve-3d}.contact-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);animation:buttonShimmer 3s infinite}.contact-btn:hover{background-color:var(--gold);transform:translateY(-5px) rotateX(10deg);box-shadow:0 15px 25px rgba(221,217,42,0.4);letter-spacing:1.5px}.contact-btn:active{transform:translateY(-2px)}.mobile-menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:10px;z-index:1001;opacity:0;position:relative;width:50px;height:50px;align-items:center;justify-content:center;overflow:hidden}.header.visible .mobile-menu-toggle{animation:fadeIn 0.5s ease forwards 0.8s}.mobile-menu-toggle::before{content:'';position:absolute;width:100%;height:100%;border-radius:50%;background-color:rgba(221,217,42,0.1);transform:scale(0);transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1)}.mobile-menu-toggle:hover::before{transform:scale(1)}.hamburger{width:30px;height:24px;position:relative;transform:rotate(0deg);transition:0.5s ease-in-out;cursor:pointer}.hamburger span{display:block;position:absolute;height:2px;width:100%;background:var(--white);border-radius:9px;opacity:1;left:0;transform:rotate(0deg);transition:0.35s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 0 5px rgba(255,255,255,0.3)}.hamburger span:nth-child(1){top:0px;transform-origin:left center}.hamburger span:nth-child(2),.hamburger span:nth-child(3){top:10px;transform-origin:center center}.hamburger span:nth-child(4){top:20px;transform-origin:left center}.hamburger.open span{background:var(--yellow);box-shadow:0 0 8px rgba(221,217,42,0.5)}.hamburger.open span:nth-child(1){transform:rotate(45deg) translateY(-2px);top:0;left:4px;width:0;opacity:0}.hamburger.open span:nth-child(2){transform:rotate(45deg);width:100%}.hamburger.open span:nth-child(3){transform:rotate(-45deg);width:100%}.hamburger.open span:nth-child(4){transform:rotate(-45deg) translateY(2px);top:20px;left:4px;width:0;opacity:0}.mobile-menu{position:fixed;top:0;right:-100%;width:100%;height:100vh;background-color:var(--black);z-index:1000;transition:right 0.6s cubic-bezier(0.16,1,0.3,1);display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle at center,rgba(45,42,50,0.9) 0%,var(--black) 70%)}.mobile-menu.open{right:0}.mobile-nav-list{list-style:none;text-align:center;width:100%;padding:0 20px}.mobile-nav-item{margin:30px 0;opacity:0;transform:translateY(20px);transition:all 0.4s cubic-bezier(0.16,1,0.3,1);display:flex;justify-content:center}.mobile-menu.open .mobile-nav-item{opacity:1;transform:translateY(0)}.mobile-menu.open .mobile-nav-item:nth-child(1){transition-delay:0.1s}.mobile-menu.open .mobile-nav-item:nth-child(2){transition-delay:0.2s}.mobile-menu.open .mobile-nav-item:nth-child(3){transition-delay:0.3s}.mobile-menu.open .mobile-nav-item:nth-child(4){transition-delay:0.4s}.mobile-nav-link{color:var(--white);text-decoration:none;font-size:24px;font-weight:600;display:inline-block;padding:10px 0;transition:all 0.3s cubic-bezier(0.16,1,0.3,1);position:relative;text-align:center}.mobile-nav-link::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background-color:var(--yellow);transition:all 0.3s cubic-bezier(0.16,1,0.3,1);box-shadow:0 0 8px var(--yellow)}.mobile-nav-link:hover{color:var(--yellow);transform:scale(1.1);text-shadow:0 0 15px rgba(221,217,42,0.5)}.mobile-nav-link:hover::after{width:100%;left:0}.mobile-contact-btn-wrapper{width:100%;display:flex;justify-content:center;margin-top:40px}.mobile-contact-btn{background-color:var(--yellow);color:var(--black);border:none;border-radius:4px;padding:16px 32px;font-size:18px;font-weight:600;text-transform:uppercase;cursor:pointer;transition:all 0.4s cubic-bezier(0.16,1,0.3,1);letter-spacing:1px;opacity:0;transform:translateY(20px);position:relative;overflow:hidden;box-shadow:0 0 15px rgba(221,217,42,0.3)}.mobile-contact-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);animation:buttonShimmer 3s infinite}.mobile-menu.open .mobile-contact-btn{opacity:1;transform:translateY(0);transition-delay:0.5s}.mobile-contact-btn:hover{background-color:var(--gold);transform:translateY(-3px) scale(1.05);box-shadow:0 10px 20px rgba(221,217,42,0.3)}.mobile-contact-btn:active{transform:translateY(-1px)}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.8);z-index:999;opacity:0;visibility:hidden;transition:all 0.5s cubic-bezier(0.16,1,0.3,1)}.overlay.active{opacity:1;visibility:visible}.menu-icon-pulse{position:absolute;width:100%;height:100%;border-radius:50%;background-color:rgba(221,217,42,0.1);transform:scale(0);opacity:0}.hamburger.open ~ .menu-icon-pulse{animation:menuPulse 1s cubic-bezier(0.34,1.56,0.64,1)}@keyframes menuPulse{0%{transform:scale(0);opacity:0.5}80%{opacity:0}100%{transform:scale(2);opacity:0}}@keyframes headerReveal{0%{opacity:0;transform:translateY(-30px)}30%{opacity:0.5}100%{opacity:1;transform:translateY(0)}}@keyframes logoReveal{0%{opacity:0;transform:scale(0.8) rotate(-5deg)}100%{opacity:1;transform:scale(1) rotate(0)}}@keyframes textReveal{0%{opacity:0;transform:translateX(-10px)}100%{opacity:1;transform:translateX(0)}}@keyframes navItemReveal{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}@keyframes buttonReveal{0%{opacity:0;transform:scale(0.9)}70%{opacity:1;transform:scale(1.05)}100%{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes logoGlow{0%{filter:drop-shadow(0 0 5px rgba(255,255,255,0.3))}100%{filter:drop-shadow(0 0 12px rgba(255,255,255,0.7))}}@keyframes textGlow{0%{text-shadow:0 0 5px rgba(255,255,255,0.2)}100%{text-shadow:0 0 12px rgba(255,255,255,0.5),0 0 20px rgba(221,217,42,0.2)}}@keyframes buttonPulse{0%{box-shadow:0 0 5px rgba(221,217,42,0.3)}100%{box-shadow:0 0 15px rgba(221,217,42,0.5)}}@keyframes buttonShimmer{0%{left:-100%}100%{left:100%}}@keyframes mobileMenuItemsEntry{0%{opacity:0;transform:translateX(30px)}100%{opacity:1;transform:translateX(0)}}@media (max-width:1200px){.nav-item{margin:0 15px}.contact-btn-wrapper{margin-left:20px}}@media (max-width:992px){.nav-list{display:none}.contact-btn-wrapper{display:none}.mobile-menu-toggle{display:flex}}@media (max-width:768px){.header-container{padding:0 4%}.logo-text{font-size:28px}.header.solid .logo-text{font-size:24px}.logo-image{height:70px}.header.solid .logo-image{height:70px}}@media (max-width:480px){.logo-image{height:60px}.header.solid .logo-image{height:60px}.logo-text{font-size:24px;margin-left:10px}.header.solid .logo-text{font-size:20px}.mobile-nav-link{font-size:20px}.mobile-contact-btn{padding:14px 28px;font-size:16px}}

        .close-btn {
            position: absolute;
            top: 20px;
            right: 20px;
            width: 40px;
            height: 40px;
            background: none;
            border: none;
            cursor: pointer;
            z-index: 1002;
            display: flex;
            justify-content: center;
            align-items: center;
            opacity: 0;
            transform: scale(0.8);
            transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
        }

        .mobile-menu.open .close-btn {
            opacity: 1;
            transform: scale(1);
            transition-delay: 0.3s;
        }

        .close-btn::before,
        .close-btn::after {
            content: '';
            position: absolute;
            width: 30px;
            height: 2px;
            background-color: var(--yellow);
            border-radius: 2px;
            box-shadow: 0 0 8px rgba(221, 217, 42, 0.5);
            transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
        }

        .close-btn::before {
            transform: rotate(45deg);
        }

        .close-btn::after {
            transform: rotate(-45deg);
        }

        .close-btn:hover::before,
        .close-btn:hover::after {
            background-color: var(--gold);
            box-shadow: 0 0 12px rgba(221, 217, 42, 0.8);
            width: 35px;
        }

        /* Ajustement pour aligner le logo et le bouton avec le menu */
        .mobile-menu {
            padding-top: 80px; /* Espace pour le logo et le bouton de fermeture */
        }

        .mobile-menu-header {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 80px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0 20px;
            background-color: rgba(45, 42, 50, 0.95);
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
        }

        .mobile-menu-logo {
            height: 60px;
            width: auto;
            filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.5));
            transition: all 0.3s ease;
        }

        .mobile-menu-logo:hover {
            filter: drop-shadow(0 0 12px rgba(255, 255, 255, 0.8));
            transform: scale(1.05);
        }
        :root{--yellow:#DDD92A;--gold:#EAE151;--black:#2D2A32;--dark-black:#1A1820;--white:#FAFDF6;--gray:rgba(250,253,246,0.7);--transition:all 0.4s cubic-bezier(0.165,0.84,0.44,1);--transition-spring:cubic-bezier(0.5,1.8,0.1,1.1);--transition-bounce:cubic-bezier(0.68,-0.55,0.265,1.55);--transition-elastic:cubic-bezier(0.68,-0.6,0.32,1.6)}*{margin:0;padding:0;box-sizing:border-box;font-family:'Montserrat',sans-serif}body{background-color:var(--black);color:var(--white);overflow-x:hidden;line-height:1.6}.chess-portfolio{position:relative;width:100%;min-height:100vh;overflow:hidden;padding:120px 0 60px}.chess-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.chess-bg-layer{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--dark-gray,#222)}.chess-bg-texture{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:0.05;z-index:0}.chess-bg-gradient{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 30%,rgba(221,217,42,.05) 0%,rgba(45,42,50,0) 70%);z-index:1}.chess-bg-gradient::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 80% 70%,rgba(221,217,42,.03) 0%,rgba(45,42,50,0) 60%);z-index:1}.chess-container{position:relative;z-index:10;max-width:1400px;margin:0 auto;padding:0 20px}.chess-title{text-align:center;margin-bottom:60px;position:relative;opacity:0;transform:translateY(40px);transition:opacity 0.8s ease,transform 1.2s var(--transition-elastic)}.chess-title.visible{opacity:1;transform:translateY(0)}.chess-title-bg{position:absolute;font-size:120px;font-weight:800;color:rgba(221,217,42,0.05);top:-60px;left:50%;transform:translateX(-50%);white-space:nowrap;z-index:-1;animation:title-bg-float 8s infinite alternate ease-in-out;text-shadow:0 0 30px rgba(221,217,42,0.2)}@keyframes title-bg-float{0%{transform:translateX(-50%) translateY(0)}100%{transform:translateX(-50%) translateY(-15px)}}.chess-title-main{font-size:48px;font-weight:700;margin-bottom:25px;position:relative;display:inline-block;text-transform:uppercase;letter-spacing:3px;line-height:1.3;transition:transform 0.5s var(--transition-spring),text-shadow 0.5s ease}.chess-title:hover .chess-title-main{transform:scale(1.05);text-shadow:0 10px 20px rgba(0,0,0,0.5)}.chess-title-main::after{content:'';position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);width:80px;height:4px;background-color:var(--yellow);box-shadow:0 0 15px rgba(221,217,42,0.5);transition:width 0.5s var(--transition-spring),height 0.5s var(--transition-spring),transform 0.5s var(--transition-spring),box-shadow 0.5s ease}.chess-title.visible .chess-title-main::after{width:120px;animation:pulse-glow 2s infinite alternate}@keyframes pulse-glow{0%{box-shadow:0 0 15px rgba(221,217,42,0.5)}100%{box-shadow:0 0 25px rgba(221,217,42,0.8)}}.chess-title:hover .chess-title-main::after{height:6px;transform:translateX(-50%) scaleX(1.2);box-shadow:0 0 25px rgba(221,217,42,0.8)}.chess-title-sub{font-size:18px;color:var(--gray);max-width:600px;margin:0 auto;padding-top:20px;opacity:0;transform:translateY(30px);transition:opacity 0.8s ease,transform 1s var(--transition-spring);transition-delay:0.3s}.chess-title.visible .chess-title-sub{opacity:1;transform:translateY(0)}.chess-portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;margin-bottom:60px}.chess-portfolio-item{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 15px 30px rgba(0,0,0,0.3);cursor:pointer;height:400px;opacity:0;transform:translateY(60px);transition:opacity 0.8s ease,transform 1s var(--transition-spring),box-shadow 0.5s ease;will-change:transform,box-shadow}.chess-portfolio-item.visible{opacity:1;transform:translateY(0)}.chess-portfolio-item:hover{transform:translateY(-10px);box-shadow:0 20px 40px rgba(0,0,0,0.4)}.chess-portfolio-img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease;will-change:transform}.chess-portfolio-item:hover .chess-portfolio-img{transform:scale(1.05)}.chess-portfolio-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to top,rgba(26,24,32,0.9) 0%,rgba(26,24,32,0.4) 60%,rgba(26,24,32,0.1) 100%);transition:var(--transition)}.chess-portfolio-item:hover .chess-portfolio-overlay{background:linear-gradient(to top,rgba(26,24,32,0.95) 0%,rgba(26,24,32,0.6) 60%,rgba(26,24,32,0.3) 100%)}.chess-portfolio-content{position:absolute;bottom:0;left:0;width:100%;padding:30px;transform:translateY(70%);transition:transform 0.5s ease;will-change:transform}.chess-portfolio-item:hover .chess-portfolio-content{transform:translateY(0)}.chess-portfolio-category{font-size:14px;color:var(--yellow);text-transform:uppercase;letter-spacing:2px;margin-bottom:10px;text-shadow:0 2px 10px rgba(0,0,0,0.5);opacity:0;transform:translateY(10px);transition:opacity 0.4s ease,transform 0.5s ease;transition-delay:0.1s}.chess-portfolio-item:hover .chess-portfolio-category{opacity:1;transform:translateY(0)}.chess-portfolio-title{font-size:24px;font-weight:600;margin-bottom:15px;color:var(--white);text-shadow:0 2px 10px rgba(0,0,0,0.5);opacity:0;transform:translateY(10px);transition:opacity 0.4s ease,transform 0.5s ease;transition-delay:0.2s}.chess-portfolio-item:hover .chess-portfolio-title{opacity:1;transform:translateY(0)}.chess-portfolio-btn{display:inline-flex;align-items:center;padding:10px 20px;background-color:var(--yellow);color:var(--black);font-weight:600;border-radius:4px;text-decoration:none;transition:var(--transition);font-size:14px;opacity:0;transform:translateY(10px);transition:opacity 0.4s ease,transform 0.5s ease,background-color 0.3s ease,box-shadow 0.3s ease;transition-delay:0.3s}.chess-portfolio-item:hover .chess-portfolio-btn{opacity:1;transform:translateY(0)}.chess-portfolio-btn:hover{background-color:var(--white);transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,0.3)}.chess-portfolio-btn-icon{margin-left:8px;transition:transform 0.3s ease}.chess-portfolio-btn:hover .chess-portfolio-btn-icon{transform:translateX(5px)}.chess-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity 0.4s ease,visibility 0.4s ease}.chess-modal.active{opacity:1;visibility:visible}.chess-modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(26,24,32,0.8);backdrop-filter:blur(5px);cursor:pointer;opacity:0;transition:opacity 0.5s ease,transform 0.5s ease;transform:scale(1.1)}.chess-modal.active .chess-modal-backdrop{opacity:1;transform:scale(1);animation:backdrop-pulse 8s infinite alternate ease-in-out}@keyframes backdrop-pulse{0%{background-color:rgba(26,24,32,0.8)}50%{background-color:rgba(26,24,32,0.85)}100%{background-color:rgba(26,24,32,0.75)}}.chess-modal-content{position:relative;width:90%;max-width:700px;max-height:70vh;overflow-y:auto;background-color:var(--dark-black);border-radius:16px;padding:25px;box-shadow:0 30px 60px rgba(0,0,0,0.4),0 0 30px rgba(221,217,42,0.3);border:1px solid rgba(221,217,42,0.1);transform:scale(0.7) translateY(50px);transition:transform 0.6s var(--transition-elastic);z-index:1001;will-change:transform}.chess-modal.active .chess-modal-content{transform:scale(1) translateY(0)}.chess-modal-content::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% 30%,rgba(221,217,42,0.1) 0%,transparent 70%);pointer-events:none;z-index:-1;opacity:0;transition:opacity 0.5s ease}.chess-modal.active .chess-modal-content::before{opacity:1;animation:glow-pulse 4s infinite alternate ease-in-out}@keyframes glow-pulse{0%{opacity:0.3}100%{opacity:0.8}}.chess-modal-close{position:absolute;top:15px;right:15px;width:30px;height:30px;border-radius:50%;background-color:var(--yellow);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease;font-weight:bold;color:var(--black);z-index:1002}.chess-modal-close:hover{background-color:var(--white);transform:scale(1.1);box-shadow:0 0 20px rgba(255,255,255,0.4)}.chess-modal-image{width:100%;height:180px;object-fit:cover;border-radius:8px;margin-bottom:15px;transform:scale(1);transition:transform 0.5s ease;box-shadow:0 10px 30px rgba(0,0,0,0.3)}.chess-modal-image:hover{transform:scale(1.02);box-shadow:0 15px 40px rgba(0,0,0,0.4)}.chess-modal-category{font-size:14px;color:var(--yellow);text-transform:uppercase;letter-spacing:2px;margin-bottom:5px;opacity:0;transform:translateY(20px);transition:opacity 0.4s ease,transform 0.6s var(--transition-spring)}.chess-modal.active .chess-modal-category{opacity:1;transform:translateY(0);transition-delay:0.1s}.chess-modal-title{font-size:24px;font-weight:700;margin-bottom:10px;color:var(--white);opacity:0;transform:translateY(20px);transition:opacity 0.4s ease,transform 0.6s var(--transition-spring)}.chess-modal.active .chess-modal-title{opacity:1;transform:translateY(0);transition-delay:0.2s}.chess-modal-desc{font-size:14px;line-height:1.5;color:var(--gray);margin-bottom:15px;opacity:0;transform:translateY(20px);transition:opacity 0.4s ease,transform 0.6s var(--transition-spring)}.chess-modal.active .chess-modal-desc{opacity:1;transform:translateY(0);transition-delay:0.3s}.chess-modal-details{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px;opacity:0;transform:translateY(20px);transition:opacity 0.4s ease,transform 0.6s var(--transition-spring)}.chess-modal.active .chess-modal-details{opacity:1;transform:translateY(0);transition-delay:0.4s}.chess-modal-detail{display:flex;flex-direction:column;transition:transform 0.3s ease}.chess-modal-detail:hover{transform:translateY(-3px)}.chess-modal-detail-label{font-size:12px;color:var(--gray);margin-bottom:3px}.chess-modal-detail-value{font-size:14px;color:var(--white);font-weight:600}.chess-modal-btn{display:inline-flex;align-items:center;padding:12px 24px;background-color:var(--yellow);color:var(--black);font-weight:600;border-radius:4px;text-decoration:none;transition:var(--transition);font-size:14px;opacity:0;transform:translateY(20px);transition:opacity 0.4s ease,transform 0.6s var(--transition-spring),background-color 0.3s ease,box-shadow 0.3s ease;position:relative;overflow:hidden;z-index:1}.chess-modal.active .chess-modal-btn{opacity:1;transform:translateY(0);transition-delay:0.5s;box-shadow:0 10px 20px rgba(0,0,0,0.2)}.chess-modal-btn:before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--white);transition:all 0.5s var(--transition-elastic);z-index:-1}.chess-modal-btn:hover{color:var(--black);transform:translateY(-5px);box-shadow:0 15px 25px rgba(0,0,0,0.3)}.chess-modal-btn:hover:before{left:0}.chess-modal-btn-icon{margin-left:8px;transition:transform 0.3s ease}.chess-modal-btn:hover .chess-modal-btn-icon{transform:translateX(5px)}@media (max-width:992px){.chess-portfolio-grid{grid-template-columns:repeat(2,1fr);gap:30px}.chess-title-bg{font-size:80px;top:-50px}.chess-title-main{font-size:36px}.chess-modal-details{grid-template-columns:1fr}}@media (max-width:768px){.chess-portfolio-grid{grid-template-columns:1fr;gap:30px}.chess-title-bg{font-size:60px;top:-40px}.chess-title-main{font-size:30px}.chess-modal-content{padding:20px}.chess-modal-title{font-size:22px}.chess-portfolio-item .chess-portfolio-btn{display:none}.chess-portfolio-content{transform:translateY(30%)}.chess-portfolio-item:hover .chess-portfolio-content{transform:translateY(0)}.chess-portfolio-item:hover .chess-portfolio-category,.chess-portfolio-item:hover .chess-portfolio-title{opacity:1;transform:translateY(0)}.chess-modal-btn{width:100%;justify-content:center;font-size:16px;padding:14px 24px;letter-spacing:1px;animation:pulse-btn 2s infinite alternate;position:sticky;bottom:0;margin-top:10px}@keyframes pulse-btn{0%{box-shadow:0 10px 20px rgba(0,0,0,0.2)}100%{box-shadow:0 15px 30px rgba(0,0,0,0.4),0 0 10px rgba(221,217,42,0.3)}}.chess-modal-details{display:none}.chess-modal-content{max-height:90vh;height:auto;display:flex;flex-direction:column}.chess-modal-image{height:140px}.chess-modal-desc{margin-bottom:10px;max-height:100px;overflow-y:auto}}@media (max-width:480px){.chess-title-bg{font-size:40px;top:-30px}.chess-title-main{font-size:24px}.chess-title-sub{font-size:16px}.chess-modal-content{padding:15px;max-height:85vh}.chess-modal-title{font-size:20px}.chess-modal-image{height:120px}.chess-portfolio-content{padding:20px}.chess-portfolio-title{font-size:20px;margin-bottom:10px}}
    :root{--yellow:#DDD92A;--yellow-dark:#C8C424;--gold:#EAE151;--black:#2D2A32;--dark-black:#1A1820;--dark-gray:#222;--white:#FAFDF6;--gray:rgba(250,253,246,0.7);--transition:all 0.4s cubic-bezier(0.165,0.84,0.44,1);--transition-spring:cubic-bezier(0.5,1.8,0.1,1.1);--transition-fast:0.2s cubic-bezier(0.25,0.46,0.45,0.94)}*{margin:0;padding:0;box-sizing:border-box;font-family:'Montserrat',sans-serif}body{background-color:var(--black);color:var(--white);overflow-x:hidden;line-height:1.6}.chess-cta-section{position:relative;padding:120px 0;overflow:hidden;background-color:var(--black)}.chess-bg-layer{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--dark-gray,#222);z-index:0}.chess-bg-texture{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:0.05;z-index:0}.chess-bg-gradient{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 30%,rgba(221,217,42,.05) 0%,rgba(45,42,50,0) 70%);z-index:1}.chess-bg-gradient::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 80% 70%,rgba(221,217,42,.03) 0%,rgba(45,42,50,0) 60%);z-index:1}.chess-cta-section .container{position:relative;z-index:10;max-width:1200px;margin:0 auto;padding:0 20px}.chess-cta-section .cta-card{position:relative;background-color:rgba(26,24,32,0.7);border-radius:12px;padding:60px;border-left:4px solid var(--yellow);box-shadow:0 20px 50px rgba(0,0,0,0.3),0 0 20px rgba(221,217,42,0.1);backdrop-filter:blur(10px);overflow:hidden}.chess-cta-section .cta-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(221,217,42,0.05) 0%,transparent 100%);z-index:0}.chess-cta-section .cta-content{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:60px}.chess-cta-section .cta-text{flex:1;padding-left:30px}.chess-cta-section .title-halo{position:absolute;width:100%;height:100%;top:0;left:0;background:radial-gradient(circle at 30% 30%,rgba(221,217,42,0.15),transparent 70%);opacity:0;transition:opacity 1.5s ease;z-index:0}.chess-cta-section .title-halo.animate{opacity:1}.chess-cta-section .cta-subtitle{font-size:16px;color:var(--yellow);text-transform:uppercase;letter-spacing:2px;margin-bottom:15px;font-weight:600;opacity:0;transform:translateX(-30px);transition:opacity 0.7s ease,transform 0.7s var(--transition-spring);transition-delay:0.1s;position:relative;z-index:1}.chess-cta-section .cta-subtitle.animate{opacity:1;transform:translateX(0)}.chess-cta-section .cta-subtitle .letter{display:inline-block;opacity:0;transform:translateY(20px);transition:opacity 0.5s ease,transform 0.5s var(--transition-spring)}.chess-cta-section .cta-subtitle.animate .letter{opacity:1;transform:translateY(0)}.chess-cta-section .cta-title-container{position:relative;margin-bottom:25px;z-index:1}.chess-cta-section .cta-title{font-size:42px;font-weight:700;color:var(--white);line-height:1.3;position:relative;overflow:hidden;opacity:0;transform:scale(0.9);transition:opacity 1s ease,transform 1s var(--transition-spring);transition-delay:0.3s}.chess-cta-section .cta-title.animate{opacity:1;transform:scale(1)}.chess-cta-section .cta-title .highlight{color:var(--yellow);position:relative;display:inline-block}.chess-cta-section .cta-title .highlight::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:3px;background-color:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform 0.7s var(--transition-spring);transition-delay:1.2s}.chess-cta-section .cta-title.animate .highlight::after{transform:scaleX(1)}.chess-cta-section .title-glow{position:absolute;top:-20px;left:-20px;width:calc(100% + 40px);height:calc(100% + 40px);background:radial-gradient(ellipse at center,rgba(221,217,42,0.2),transparent 70%);filter:blur(15px);opacity:0;transition:opacity 1s ease;transition-delay:0.5s;z-index:-1;pointer-events:none}.chess-cta-section .title-glow.animate{opacity:1}.chess-cta-section .cta-description{font-size:16px;line-height:1.7;color:var(--gray);margin-bottom:35px;max-width:600px;opacity:0;transform:translateY(30px);transition:opacity 0.7s ease,transform 0.7s var(--transition-spring);transition-delay:0.5s;position:relative;z-index:1}.chess-cta-section .cta-description.animate{opacity:1;transform:translateY(0)}.chess-cta-section .button-container{position:relative;display:inline-block;z-index:1;margin-bottom:30px}.chess-cta-section .button-halo{position:absolute;top:-15px;left:-15px;width:calc(100% + 30px);height:calc(100% + 30px);background:radial-gradient(ellipse at center,rgba(221,217,42,0.3),transparent 70%);filter:blur(10px);opacity:0;transition:opacity 0.7s ease,transform 0.7s ease;z-index:-1;border-radius:20px}.chess-cta-section .button-halo.animate{opacity:1}.chess-cta-section .cta-button{display:inline-flex;align-items:center;justify-content:center;padding:18px 36px 22px;background-color:var(--yellow);color:var(--black);font-weight:600;font-size:16px;text-transform:uppercase;letter-spacing:2px;border:none;border-radius:50px;cursor:pointer;transition:all 0.4s var(--transition-spring);box-shadow:0 5px 15px rgba(221,217,42,0.2);position:relative;overflow:hidden;opacity:0;transform:translateY(30px);transition:opacity 0.7s ease,transform 0.7s var(--transition-spring),background-color 0.3s ease,box-shadow 0.3s ease;transition-delay:0.6s;z-index:1}.chess-cta-section .cta-button.animate{opacity:1;transform:translateY(0)}.chess-cta-section .cta-button::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);transition:transform 0.8s ease;z-index:-1;border-radius:50px}.chess-cta-section .cta-button:hover{background-color:var(--yellow-dark);transform:translateY(-5px) scale(1.05);box-shadow:0 15px 30px rgba(221,217,42,0.4)}.chess-cta-section .cta-button:hover::before{transform:translateX(200%)}.chess-cta-section .cta-button:active{transform:translateY(-2px) scale(0.98)}.chess-cta-section .cta-button-icon{margin-left:8px;display:inline-block;transition:transform var(--transition-fast)}.chess-cta-section .cta-button:hover .cta-button-icon{transform:translateX(8px)}.chess-cta-section .cta-visual{flex:0 0 auto;width:240px;height:240px;position:relative;perspective:1000px}.chess-cta-section .chess-board-3d{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(45deg) rotateZ(45deg) scale(0.8);opacity:0;transition:transform 1.2s var(--transition-spring),opacity 1.2s ease;transition-delay:0.7s}.chess-cta-section .chess-board-3d.animate{opacity:1;transform:rotateX(45deg) rotateZ(45deg) scale(1)}.chess-cta-section .board-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);width:100%;height:100%;transform-style:preserve-3d;box-shadow:0 20px 50px rgba(0,0,0,0.4)}.chess-cta-section .board-cell{position:relative;transform-style:preserve-3d;transition:transform 0.5s ease,box-shadow 0.5s ease}.chess-cta-section .board-cell.white{background-color:rgba(250,253,246,0.1)}.chess-cta-section .board-cell.black{background-color:rgba(26,24,32,0.8)}.chess-cta-section .board-cell.highlight{box-shadow:inset 0 0 15px rgba(221,217,42,0.5)}.chess-cta-section .board-cell.active{transform:translateZ(10px)}.chess-cta-section .chess-piece{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) translateZ(5px) scale(0);color:var(--yellow);text-shadow:0 0 10px rgba(221,217,42,0.5);transition:all 0.6s var(--transition-spring);font-size:0}.chess-cta-section .chess-piece.animate{font-size:30px;transform:translate(-50%,-50%) translateZ(20px) scale(1)}.chess-cta-section .chess-piece.white-piece{color:rgba(250,253,246,0.9);text-shadow:0 0 10px rgba(250,253,246,0.5)}@keyframes shimmer{0%{left:-100%}100%{left:100%}}@media (max-width:992px){.chess-cta-section .cta-title{font-size:36px}}@media (max-width:768px){.chess-cta-section .cta-content{flex-direction:column;text-align:center}.chess-cta-section .cta-description{margin:0 auto 35px}.chess-cta-section .cta-visual{margin-bottom:40px;order:-1}.chess-cta-section .cta-title{font-size:32px}.chess-cta-section .cta-card{padding:40px 30px}.chess-cta-section .title-halo{background:radial-gradient(circle at center,rgba(221,217,42,0.15),transparent 70%)}.chess-cta-section .cta-text{padding-left:0}.chess-cta-section .button-container{margin-bottom:20px}}@media (max-width:480px){.chess-cta-section .cta-card{padding:30px 20px}.chess-cta-section .cta-title{font-size:28px}.chess-cta-section .cta-description{font-size:15px}.chess-cta-section .cta-button{padding:16px 30px 20px;font-size:15px}}
    
.vescovo-footer{--yellow:#DDD92A;--black:#2D2A32;--gold:#EAE151;--white:#FAFDF6;--glow-yellow:rgba(221,217,42,0.3);--glow-gold:rgba(234,225,81,0.3);--transition:all 0.3s cubic-bezier(0.25,0.8,0.25,1);font-family:'Montserrat',sans-serif;background:#252228;color:var(--white);position:relative;overflow:hidden;padding:4rem 2rem 2rem;width:100%;box-shadow:0 -10px 30px rgba(45,42,50,0.1)}
.vescovo-footer *{margin:0;padding:0;box-sizing:border-box}
.vescovo-footer-container{max-width:1200px;margin:0 auto;position:relative;z-index:5}
.vescovo-footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;align-items:start}
.vescovo-footer-column{display:flex;flex-direction:column;height:100%}
.vescovo-footer-column h3{color:var(--gold);font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;position:relative;padding-bottom:0.75rem;display:inline-block;transform:translateY(0);transition:transform 0.4s ease,text-shadow 0.4s ease}
.vescovo-footer-column:hover h3{transform:translateY(-5px);text-shadow:0 5px 15px rgba(234,225,81,0.5)}
.vescovo-footer-column h3::after{content:'';position:absolute;bottom:0;left:0;width:40px;height:2px;background:var(--yellow);transition:width 0.5s cubic-bezier(0.22,1,0.36,1),box-shadow 0.5s ease;border-radius:2px}
.vescovo-footer-column:hover h3::after{width:100%;box-shadow:0 0 10px var(--glow-yellow)}
.vescovo-quick-links{list-style:none;margin-bottom:auto}
.vescovo-quick-links li{margin-bottom:1rem;transform:translateX(0);transition:transform 0.3s ease}
.vescovo-quick-links li:hover{transform:translateX(10px)}
.vescovo-quick-links a{color:var(--white);text-decoration:none;transition:all 0.3s ease;position:relative;padding-left:1.5rem;display:inline-block}
.vescovo-quick-links a::before{content:'→';position:absolute;left:0;opacity:0;transform:translateX(-10px);transition:all 0.3s ease;color:var(--yellow)}
.vescovo-quick-links a:hover{color:var(--yellow);text-shadow:0 0 8px var(--glow-yellow)}
.vescovo-quick-links a:hover::before{opacity:1;transform:translateX(0)}
.vescovo-contact-item{display:flex;align-items:center;margin-bottom:1.5rem;padding:0.75rem;border-radius:8px;transition:all 0.3s ease;position:relative;overflow:hidden;transform:translateX(0)}
.vescovo-contact-item:hover{background:rgba(255,255,255,0.05);transform:translateX(10px)}
.vescovo-contact-item::before{content:'';position:absolute;left:-100%;top:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(221,217,42,0.1),transparent);transition:left 0.5s ease}
.vescovo-contact-item:hover::before{left:100%}
.vescovo-contact-icon{margin-right:1rem;color:var(--gold);display:flex;align-items:center;justify-content:center;position:relative;transition:all 0.3s ease}
.vescovo-contact-item:hover .vescovo-contact-icon{transform:scale(1.2) rotate(10deg);color:var(--yellow)}
.vescovo-contact-icon::after{content:'';position:absolute;width:100%;height:100%;background:radial-gradient(circle,var(--glow-gold) 0%,rgba(0,0,0,0) 70%);opacity:0;transition:opacity 0.3s ease;filter:blur(5px);transform:scale(2)}
.vescovo-contact-item:hover .vescovo-contact-icon::after{opacity:1;animation:pulse 2s infinite}
@keyframes pulse{0%{transform:scale(1.5);opacity:0.5}50%{transform:scale(2.5);opacity:0.2}100%{transform:scale(1.5);opacity:0.5}}
.vescovo-contact-text{color:var(--white);transition:var(--transition)}
.vescovo-contact-text a{color:var(--white);text-decoration:none;transition:all 0.3s ease;position:relative;display:inline-block}
.vescovo-contact-text a::before{content:'';position:absolute;width:0;height:1px;bottom:-2px;left:0;background-color:var(--yellow);transition:width 0.3s cubic-bezier(0.22,1,0.36,1),box-shadow 0.3s ease}
.vescovo-contact-text a:hover{color:var(--yellow);text-shadow:0 0 8px rgba(221,217,42,0.5);transform:translateY(-2px)}
.vescovo-contact-text a:hover::before{width:100%;box-shadow:0 0 5px var(--glow-yellow)}
.vescovo-social-icons{display:flex;gap:1.5rem;margin-top:2rem;justify-content:flex-start}
.vescovo-social-icon{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:50%;background:rgba(255,255,255,0.1);color:var(--white);transition:all 0.4s cubic-bezier(0.22,1,0.36,1);position:relative;overflow:hidden;box-shadow:0 4px 6px rgba(0,0,0,0.1)}
.vescovo-social-icon::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,var(--yellow),var(--gold));opacity:0;transition:opacity 0.4s cubic-bezier(0.22,1,0.36,1),transform 0.4s cubic-bezier(0.22,1,0.36,1);z-index:-1;transform:scale(0);border-radius:50%}
.vescovo-social-icon:hover{transform:translateY(-8px) rotate(360deg);color:var(--black);box-shadow:0 7px 15px rgba(221,217,42,0.3)}
.vescovo-social-icon:active{transform:translateY(-4px) scale(0.95)}
.vescovo-social-icon:hover::before{opacity:1;transform:scale(1);animation:pulse 2s infinite}
.vescovo-social-icon svg{width:20px;height:20px;transition:var(--transition);z-index:2}
.vescovo-social-icon:hover svg{transform:scale(1.2)}
.vescovo-footer-bottom{margin-top:4rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,0.1);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;position:relative}
.vescovo-footer-bottom::before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:0;height:1px;background:linear-gradient(90deg,transparent,var(--yellow),transparent);transition:width 1s ease}
.vescovo-footer:hover .vescovo-footer-bottom::before{width:80%}
.vescovo-footer-copyright{color:rgba(255,255,255,0.7);font-size:0.875rem;transition:all 0.3s ease}
.vescovo-footer-copyright:hover{color:var(--white)}
.vescovo-footer-legal{display:flex;gap:1.5rem}
.vescovo-footer-legal a{color:rgba(255,255,255,0.7);text-decoration:none;font-size:0.875rem;transition:all 0.3s ease;position:relative}
.vescovo-footer-legal a::before{content:'';position:absolute;width:0;height:1px;bottom:-1px;left:0;background-color:var(--yellow);transition:width 0.3s ease}
.vescovo-footer-legal a:hover{color:var(--yellow);text-shadow:0 0 5px rgba(221,217,42,0.5);transform:translateY(-2px)}
.vescovo-footer-legal a:hover::before{width:100%}
.vescovo-background{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:1}
.vescovo-light-beam{position:absolute;width:100%;height:200px;background:linear-gradient(90deg,transparent,rgba(221,217,42,0.03),transparent);transform:rotate(45deg) translateY(-50%);top:0;left:-100%;animation:lightBeam 8s infinite linear}
.vescovo-light-beam:nth-child(2){animation-delay:2s}
.vescovo-light-beam:nth-child(3){animation-delay:4s}
.vescovo-light-beam:nth-child(4){animation-delay:6s}
.vescovo-particles{position:absolute;width:100%;height:100%;top:0;left:0}
.vescovo-particle{position:absolute;width:3px;height:3px;background-color:var(--yellow);border-radius:50%;opacity:0.1;animation:floatParticle 15s infinite ease-in-out}
.vescovo-subtle-glow{position:absolute;width:300px;height:300px;background:radial-gradient(circle,rgba(221,217,42,0.03) 0%,transparent 70%);border-radius:50%;filter:blur(30px);opacity:0;animation:subtleGlow 15s infinite ease-in-out}
@keyframes subtleGlow{0%,100%{opacity:0;transform:scale(0.8)}50%{opacity:1;transform:scale(1)}}
@keyframes lightBeam{0%{left:-100%;opacity:0}20%{opacity:1}80%{opacity:1}100%{left:100%;opacity:0}}
@keyframes floatParticle{0%,100%{transform:translate(0,0)}25%{transform:translate(50px,-30px)}50%{transform:translate(100px,0)}75%{transform:translate(50px,30px)}}
.vescovo-cta-button{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;background:linear-gradient(45deg,var(--yellow),var(--gold));color:var(--black);font-weight:600;border-radius:50px;text-decoration:none;transition:all 0.4s cubic-bezier(0.22,1,0.36,1);position:relative;overflow:hidden;margin-top:3rem;text-transform:uppercase;letter-spacing:1px;font-size:0.9rem;box-shadow:0 4px 15px rgba(221,217,42,0.2);align-self:flex-start}
.vescovo-cta-button::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);transition:left 0.7s ease}
.vescovo-cta-button:hover{transform:translateY(-5px);box-shadow:0 7px 20px rgba(221,217,42,0.4)}
.vescovo-cta-button:hover::before{left:100%}
.vescovo-cta-button svg{margin-left:0.5rem;transition:transform 0.3s ease}
.vescovo-cta-button:hover svg{transform:translateX(5px)}
.vescovo-tagline{text-align:center;margin:3rem 0;font-size:1.5rem;font-weight:300;color:var(--white);letter-spacing:1px;position:relative;padding:1rem;overflow:hidden;animation:fadeIn 1s ease-out}
.vescovo-tagline strong{color:var(--gold);font-weight:600;position:relative;display:inline-block}
.vescovo-tagline strong::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:var(--yellow);transform:scaleX(0);transform-origin:right;transition:transform 0.5s ease}
.vescovo-tagline:hover strong::after{transform:scaleX(1);transform-origin:left}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.vescovo-footer-column{animation:slideIn 0.6s ease-out}
.vescovo-footer-column:nth-child(2){animation-delay:0.2s}
.vescovo-footer-column:nth-child(3){animation-delay:0.4s}
@keyframes slideIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:992px){.vescovo-footer-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:768px){.vescovo-footer-grid{grid-template-columns:1fr}.vescovo-footer-bottom{flex-direction:column;align-items:center;text-align:center}.vescovo-footer-legal{margin-top:1rem}.vescovo-tagline{font-size:1.2rem}.vescovo-cta-button{align-self:center}.vescovo-social-icons{justify-content:center}}
   