.font-cormorant{font-family:'Cormorant Garamond', serif;} .font-lato{font-family:'Lato', sans-serif;} .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;} :focus-visible{outline:2px dashed #c8a45f;outline-offset:4px;} /* Custom scrollbar */ ::-webkit-scrollbar{width:10px;} ::-webkit-scrollbar-track{background:#121212;} ::-webkit-scrollbar-thumb{background:#c8a45f;border-radius:5px;} /* Smooth scroll */ html{scroll-behavior:smooth;} @media (prefers-reduced-motion:reduce){*, *::before, *::after{animation-duration:0ms !important;animation-iteration-count:1 !important;transition-duration:0ms !important;scroll-behavior:auto !important;}} /* Animation */ @keyframes fadeInUp{from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);}} .animate-fadeInUp{animation:fadeInUp 0.6s ease-out forwards;} .skip-link{position:absolute;left:50%;transform:translateX(-50%);top:-100px;background:#f4f1eb;color:#121212;padding:0.75rem 1.5rem;border-radius:9999px;font-weight:600;z-index:10000;transition:top 0.3s ease;} .skip-link:focus{top:1rem;} .noscript-alert{background:#fcd34d;color:#1f2937;text-align:center;padding:1rem;font-weight:600;} /* Glass Button Effect */ .btn-glass{background:rgba(244, 241, 235, 0.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(244, 241, 235, 0.2);box-shadow:0 8px 32px 0 rgba(0, 0, 0, 0.37);transition:all 0.3s ease;} .btn-glass:hover{background:rgba(244, 241, 235, 0.15);border-color:rgba(200, 164, 95, 0.4);transform:translateY(-2px);box-shadow:0 12px 40px 0 rgba(200, 164, 95, 0.3);} .btn-glass:active{transform:translateY(0);} /* Animated Service Cards */ .service-card{position:relative;overflow:hidden;cursor:pointer;transform-style:preserve-3d;transition:all 0.5s cubic-bezier(0.4, 0, 0.2, 1);} .service-card:hover{transform:scale(1.05) rotate(-1deg);} .service-card-bg{position:absolute;inset:0;z-index:0;overflow:hidden;} .service-card-gradient-1{position:absolute;inset:0;background:linear-gradient(to top right, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.1));opacity:0.4;transition:opacity 0.5s;} .service-card:hover .service-card-gradient-1{opacity:0.6;} .service-card-blob{position:absolute;bottom:-5rem;left:-5rem;width:12rem;height:12rem;border-radius:9999px;background:linear-gradient(to top right, rgba(255, 255, 255, 0.1), transparent);filter:blur(48px);opacity:0.3;transition:all 0.7s;} .service-card:hover .service-card-blob{opacity:0.5;transform:scale(1.1);} @keyframes ping{75%, 100%{transform:scale(2);opacity:0;}} .animate-ping{animation:ping 2s cubic-bezier(0, 0, 0.2, 1) infinite;} @keyframes bounce{0%, 100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8, 0, 1, 1);} 50%{transform:translateY(0);animation-timing-function:cubic-bezier(0, 0, 0.2, 1);}} .animate-bounce{animation:bounce 3s infinite;} .service-card-shine{position:absolute;inset:0;background:linear-gradient(to right, transparent, rgba(255, 255, 255, 0.05), transparent);transform:skewX(-12deg) translateX(100%);transition:transform 1s;} .service-card:hover .service-card-shine{transform:skewX(-12deg) translateX(-200%);} .service-icon-container{position:relative;padding:1.5rem;border-radius:9999px;backdrop-filter:blur(16px);border:1px solid rgba(255, 255, 255, 0.2);background:linear-gradient(to bottom right, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.6));box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.25);transition:all 0.5s;} .service-card:hover .service-icon-container{transform:rotate(12deg) scale(1.1);box-shadow:0 25px 50px -12px rgba(255, 255, 255, 0.2);} .service-icon-inner{transition:transform 0.7s;} .service-card:hover .service-icon-inner{transform:rotate(180deg);} .service-card-corner-tl, .service-card-corner-br{position:absolute;width:5rem;height:5rem;opacity:0;transition:opacity 0.5s;} .service-card-corner-tl{top:0;left:0;background:linear-gradient(to bottom right, rgba(255, 255, 255, 0.1), transparent);border-bottom-right-radius:1.5rem;} .service-card-corner-br{bottom:0;right:0;background:linear-gradient(to top left, rgba(255, 255, 255, 0.1), transparent);border-top-left-radius:1.5rem;} .service-card:hover .service-card-corner-tl, .service-card:hover .service-card-corner-br{opacity:1;} .service-card-divider{width:33.333%;height:0.125rem;background:linear-gradient(to right, transparent, white, transparent);border-radius:9999px;transition:all 0.5s;} .service-card:hover .service-card-divider{width:50%;height:0.25rem;} .service-card-dot{width:0.5rem;height:0.5rem;background:white;border-radius:9999px;animation:bounce 1s infinite;} .service-card-dot:nth-child(2){animation-delay:0.1s;} .service-card-dot:nth-child(3){animation-delay:0.2s;} .service-card-dots{opacity:0.6;transition:opacity 0.3s;} .service-card:hover .service-card-dots{opacity:1;} /* Hero Animations */ @keyframes word-appear{0%{opacity:0;transform:translateY(30px) scale(0.8);filter:blur(10px);} 50%{opacity:0.8;transform:translateY(10px) scale(0.95);filter:blur(2px);} 100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}} @keyframes grid-draw{0%{stroke-dashoffset:1000;opacity:0;} 50%{opacity:0.3;} 100%{stroke-dashoffset:0;opacity:0.15;}} @keyframes pulse-glow{0%, 100%{opacity:0.1;transform:scale(1);} 50%{opacity:0.3;transform:scale(1.1);}} @keyframes float{0%, 100%{transform:translateY(0) translateX(0);opacity:0.2;} 25%{transform:translateY(-10px) translateX(5px);opacity:0.6;} 50%{transform:translateY(-5px) translateX(-3px);opacity:0.4;} 75%{transform:translateY(-15px) translateX(7px);opacity:0.8;}} @keyframes underline-grow{to{width:100%;}} .word-animate{display:inline-block;opacity:0;margin:0 0.1em;transition:color 0.3s ease, transform 0.3s ease;} .word-animate:hover{color:#c8a45f;transform:translateY(-2px);text-shadow:0 0 20px rgba(200, 164, 95, 0.5);} .grid-line{stroke:#f4f1eb;stroke-width:0.5;opacity:0;stroke-dasharray:5 5;stroke-dashoffset:1000;animation:grid-draw 2s ease-out forwards;} .detail-dot{fill:#f4f1eb;opacity:0;animation:pulse-glow 3s ease-in-out infinite;} .corner-element-animate{position:absolute;width:40px;height:40px;border:1px solid rgba(244, 241, 235, 0.2);opacity:0;animation:word-appear 1s ease-out forwards;} .floating-element-animate{position:absolute;width:2px;height:2px;background:#f4f1eb;border-radius:50%;opacity:0;animation:float 4s ease-in-out infinite;} .text-decoration-animate::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:linear-gradient(90deg, transparent, #f4f1eb, transparent);animation:underline-grow 2s ease-out forwards;animation-delay:2s;} #hero-mouse-gradient{position:fixed;pointer-events:none;border-radius:9999px;background-image:radial-gradient(circle, rgba(200, 164, 95, 0.08), rgba(244, 241, 235, 0.05), transparent 70%);transform:translate(-50%, -50%);will-change:left, top, opacity;transition:left 70ms linear, top 70ms linear, opacity 300ms ease-out;width:384px;height:384px;filter:blur(48px);z-index:5;} .ripple-effect{position:fixed;width:4px;height:4px;background:rgba(244, 241, 235, 0.6);border-radius:50%;transform:translate(-50%, -50%);pointer-events:none;animation:pulse-glow 1s ease-out forwards;z-index:9999;} /* FAQ accordion */ .faq-item{transition:all 0.3s ease;} .faq-content{max-height:0;overflow:hidden;transition:max-height 0.3s ease;} .faq-item.active .faq-content{max-height:200px;} .faq-item.active .faq-icon{transform:rotate(45deg);} .faq-icon{transition:transform 0.3s ease;} /* Spotlight Effect */ .spotlight-container{position:relative;overflow:hidden;cursor:none;border-radius:30px;box-shadow:0 10px 40px rgba(0, 0, 0, 0.3);transform-style:preserve-3d;transition:transform 0.2s ease-out;} .spotlight-container.\!rounded-none{border-radius:0 !important;box-shadow:none !important;} .spotlight-container.\!cursor-default{cursor:default !important;} .spotlight-image-blur{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(5px);user-select:none;pointer-events:none;} .spotlight-image-sharp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none;z-index:2;} .spotlight-overlay{position:absolute;inset:0;background:black;will-change:mask-position;transition:all 0.1s ease-out;z-index:10;pointer-events:none;} .hero-spotlight{position:relative;} .hero-spotlight::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg, rgba(255, 204, 170, 0.45), rgba(255, 235, 205, 0.2), rgba(255, 214, 170, 0.35));mix-blend-mode:soft-light;z-index:5;pointer-events:none;} .hero-spotlight .spotlight-image-blur{filter:blur(4px) brightness(1.18) saturate(1.08);} .hero-spotlight .spotlight-image-sharp{filter:brightness(1.22) saturate(1.12) contrast(1.02) hue-rotate(-8deg);} /* Testimonials Column Animation */ .testimonial-column{position:relative;overflow:hidden;} .testimonial-scroll{display:flex;flex-direction:column;animation:scrollTestimonials linear infinite;} @keyframes scrollTestimonials{from{transform:translateY(0);} to{transform:translateY(-50%);}} /* Container Global System */ .page-container{max-width:1200px;margin:0 auto;padding:0 24px;} @media (min-width:768px){.page-container{padding:0 32px;}} /* Section Spacing System */ .section-spacing{padding:64px 0;} @media (min-width:768px){.section-spacing{padding:96px 0;}} /* FAQ Modern Animations */ @keyframes faq-fade-up{0%{transform:translate3d(0, 24px, 0);opacity:0;filter:blur(12px);} 60%{filter:blur(0);} 100%{transform:translate3d(0, 0, 0);opacity:1;filter:blur(0);}} @keyframes faq-beam-spin{0%{transform:rotate(0deg) scale(1);} 100%{transform:rotate(360deg) scale(1);}} @keyframes faq-pulse-ring{0%{transform:scale(0.7);opacity:0.55;} 60%{opacity:0.1;} 100%{transform:scale(1.25);opacity:0;}} @keyframes faq-meter{0%, 20%{transform:scaleX(0);transform-origin:left;} 45%, 60%{transform:scaleX(1);transform-origin:left;} 80%, 100%{transform:scaleX(0);transform-origin:right;}} @keyframes faq-tick{0%, 30%{transform:translateX(-6px);opacity:0.4;} 50%{transform:translateX(2px);opacity:1;} 100%{transform:translateX(20px);opacity:0;}} .faq-intro{position:relative;display:flex;align-items:center;gap:0.85rem;padding:0.85rem 1.4rem;border-radius:9999px;overflow:hidden;border:1px solid rgba(200, 164, 95, 0.2);background:rgba(18, 18, 18, 0.6);backdrop-filter:blur(12px);color:rgba(244, 241, 235, 0.9);text-transform:uppercase;letter-spacing:0.35em;font-size:0.65rem;width:100%;max-width:24rem;margin:0 auto;opacity:0;transform:translate3d(0, 12px, 0);filter:blur(8px);transition:opacity 720ms ease, transform 720ms ease, filter 720ms ease;isolation:isolate;} .faq-intro.active{opacity:1;transform:translate3d(0, 0, 0);filter:blur(0);} .faq-intro__beam{position:absolute;inset:-110%;pointer-events:none;border-radius:50%;background:conic-gradient(from 160deg, rgba(200, 164, 95, 0.25), transparent 32%, rgba(200, 164, 95, 0.15) 58%, transparent 78%, rgba(200, 164, 95, 0.18));animation:faq-beam-spin 18s linear infinite;opacity:0.55;} .faq-intro__pulse{position:absolute;inset:-110%;pointer-events:none;border-radius:50%;border:1px solid currentColor;opacity:0.25;animation:faq-pulse-ring 3.4s ease-out infinite;} .faq-intro__label{position:relative;z-index:1;font-weight:600;letter-spacing:0.4em;} .faq-intro__meter{position:relative;z-index:1;flex:1 1 auto;height:1px;background:linear-gradient(90deg, transparent, currentColor 35%, transparent 85%);transform:scaleX(0);transform-origin:left;animation:faq-meter 5.8s ease-in-out infinite;opacity:0.7;} .faq-intro__tick{position:relative;z-index:1;width:0.55rem;height:0.55rem;border-radius:9999px;background:currentColor;box-shadow:0 0 0 4px rgba(200, 164, 95, 0.1);animation:faq-tick 3.2s ease-in-out infinite;} .faq-fade{opacity:0;transform:translate3d(0, 24px, 0);filter:blur(12px);transition:opacity 700ms ease, transform 700ms ease, filter 700ms ease;} .faq-fade.ready{animation:faq-fade-up 860ms cubic-bezier(0.22, 0.68, 0, 1) forwards;} .faq-card{position:relative;overflow:hidden;border-radius:1.5rem;border:1px solid rgba(244, 241, 235, 0.1);background:rgba(18, 18, 18, 0.4);backdrop-filter:blur(20px);transition:all 500ms cubic-bezier(0.22, 0.68, 0, 1);box-shadow:0 36px 120px -70px rgba(10, 10, 10, 0.5);} .faq-card:hover, .faq-card:focus-within{transform:translateY(-2px);} .faq-card__glow{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 500ms;background:radial-gradient(240px circle at var(--faq-x, 50%) var(--faq-y, 50%), rgba(200, 164, 95, 0.08), transparent 70%);} .faq-card:hover .faq-card__glow, .faq-card.active .faq-card__glow{opacity:1;} .faq-icon{position:relative;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;flex-shrink:0;border-radius:50%;border:1px solid rgba(200, 164, 95, 0.2);background:rgba(200, 164, 95, 0.05);transition:all 500ms cubic-bezier(0.22, 0.68, 0, 1);} .faq-card:hover .faq-icon{transform:scale(1.05);} .faq-icon__ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(200, 164, 95, 0.3);opacity:0.3;} .faq-card.active .faq-icon__ring{animation:faq-pulse-ring 2s ease-out infinite;} .faq-icon svg{position:relative;width:1.25rem;height:1.25rem;color:#c8a45f;transition:transform 500ms cubic-bezier(0.22, 0.68, 0, 1);} .faq-card.active .faq-icon svg{transform:rotate(45deg);} .faq-content{max-height:0;overflow:hidden;transition:max-height 500ms cubic-bezier(0.22, 0.68, 0, 1);} .faq-card.active .faq-content{max-height:400px;} .faq-meta{display:inline-flex;align-items:center;padding:0.25rem 0.75rem;border-radius:9999px;border:1px solid rgba(244, 241, 235, 0.1);font-size:0.625rem;text-transform:uppercase;letter-spacing:0.35em;color:rgba(244, 241, 235, 0.4);transition:opacity 300ms;} /* Slideshow Carousel */ .slideshow{position:relative;width:100%;height:600px;overflow:hidden;border-radius:1.5rem;background:#000;} .slide{position:absolute;inset:0;opacity:0;transition:opacity 800ms ease-in-out;display:flex;align-items:center;justify-content:center;} .slide.active{opacity:1;z-index:2;} .slideshow .nav{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:60px;height:60px;background:rgba(0, 0, 0, 0.4);backdrop-filter:blur(10px);border:1px solid rgba(244, 241, 235, 0.2);border-radius:50%;color:#f4f1eb;font-size:1.5rem;cursor:pointer;transition:all 300ms ease;display:flex;align-items:center;justify-content:center;} .slideshow .nav:hover{background:rgba(200, 164, 95, 0.3);border-color:rgba(200, 164, 95, 0.5);transform:translateY(-50%) scale(1.1);} .slideshow .nav.left{left:1.5rem;} .slideshow .nav.right{right:1.5rem;} .slideshow .counter{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:10;font-family:'Lato', sans-serif;font-size:0.875rem;color:#f4f1eb;background:rgba(0, 0, 0, 0.4);backdrop-filter:blur(10px);padding:0.5rem 1.5rem;border-radius:9999px;border:1px solid rgba(244, 241, 235, 0.2);letter-spacing:0.1em;} @media (max-width:768px){.slideshow{height:500px;} .slideshow .nav{width:48px;height:48px;font-size:1.25rem;} .slideshow .nav.left{left:1rem;} .slideshow .nav.right{right:1rem;}} /* Mobile Auto-Reveal on Scroll */ @media (max-width:1024px){/* Gallery cards - mostrar overlay automaticamente quando visível */ .group.scroll-revealed .absolute.inset-0.bg-gradient-to-t{opacity:1 !important;} .group.scroll-revealed .absolute.bottom-0{transform:translateY(0) !important;} /* Animação de entrada suave */ .scroll-reveal-item{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease-out, transform 0.6s ease-out;} .scroll-reveal-item.scroll-revealed{opacity:1;transform:translateY(0);} /* Service cards - animação automática */ .service-card.scroll-revealed{transform:scale(1.02);} .service-card.scroll-revealed .service-card-gradient-1{opacity:0.5;} .service-card.scroll-revealed .service-card-divider{width:45%;} /* FAQ cards - abrir automaticamente no mobile ao scroll */ .faq-card.scroll-revealed .faq-card__glow{opacity:0.3;} /* Testimonials - parar animação ao tocar */ .testimonial-column:active .testimonial-scroll{animation-play-state:paused;}} /* Touch-friendly improvements */ @media (hover:none) and (pointer:coarse){/* Gallery cards sempre mostram info no mobile */ .group .absolute.bottom-0.left-0.right-0.p-6{transform:translateY(0);background:linear-gradient(to top, rgba(18, 18, 18, 0.95), transparent);padding-top:3rem;} .group .absolute.inset-0.bg-gradient-to-t{opacity:1;} /* Bigger touch targets */ .slideshow .nav{width:56px;height:56px;} /* Remove hover effects that don't work on touch */ .service-card:hover{transform:none;}}