@import url('https://fonts.googleapis.com/css2?family=Cormorant+SC:wght@400;500;600;700&family=Inter:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,600;1,400&display=swap');

body { 
    font-family: 'Inter', sans-serif; 
    background-color: #0D0D0D; /* Fundo Obsidian */
    color: #F5F2ED; /* Texto Ivory */
    -webkit-font-smoothing: antialiased; 
    -moz-osx-font-smoothing: grayscale; 
    overflow-x: hidden; 
    cursor: none; 
}

h1, .font-display { font-family: 'Cormorant SC', serif; }
h2, h3, .font-serif { font-family: 'Playfair Display', serif; }

::view-transition-old(root), ::view-transition-new(root) { animation-duration: 0.5s; }

.skip-link { position: absolute; top: -40px; left: 0; background: #F5F2ED; color: #0D0D0D; padding: 8px; z-index: 100000; transition: top 0.2s; font-weight: bold; text-transform: uppercase; letter-spacing: 2px; font-size: 12px; }
.skip-link:focus { top: 0; }

@media (min-width: 1024px) {
    .editorial-grid article:nth-child(even) { transform: translateY(60px); }
    .editorial-grid { padding-bottom: 60px; }
}

#menu-overlay { opacity: 0; pointer-events: none; transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
#menu-overlay.active { opacity: 1; pointer-events: auto; }
.menu-link { transition: color 0.4s cubic-bezier(0.16, 1, 0.3, 1), padding-left 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.menu-link:hover { color: #8A8A93; padding-left: 2rem; } 

.img-wrapper { overflow: hidden; }
.img-wrapper img { transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), filter 0.8s ease; }
.group:hover .img-wrapper img { transform: scale(1.05); }

/* Cursor de Estúdio Criativo (Brutalista e Invertido) */
@media (pointer: fine) {
    #custom-cursor { position: fixed; top: 0; left: 0; width: 10px; height: 10px; background-color: #F5F2ED; border-radius: 50%; pointer-events: none; z-index: 999999; transform: translate(-50%, -50%); mix-blend-mode: difference; will-change: transform; transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1), height 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
    #custom-cursor.cursor-hover { width: 45px; height: 45px; background-color: #F5F2ED; mix-blend-mode: difference; }
}

/* Ruído subtil e linhas finas estilo Future Label */
body::before { content: ""; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); opacity: 0.04; pointer-events: none; z-index: 9999; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.animate-marquee { display: flex; white-space: nowrap; animation: marquee 30s linear infinite; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade-in-up { opacity: 0; animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }

#chatbot-window { transform: scale(0.95) translateY(20px); opacity: 0; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); pointer-events: none; }
#chatbot-window.active { transform: scale(1) translateY(0); opacity: 1; pointer-events: auto; }