/* Paleta de Cores HSL do Projeto Original */
:root {
  --background: 0 0% 100%;
  --foreground: 24 41% 22%; /* #4e3121 */

  --card: 0 0% 100%;
  --card-foreground: 24 41% 22%;

  --primary: 24 41% 22%;
  --primary-foreground: 0 0% 100%;

  --secondary: 32 28% 81%; /* #dcccbf */
  --secondary-foreground: 24 41% 22%;

  --muted: 30 22% 95%;
  --muted-foreground: 25 12% 35%;

  --accent: 24 24% 48%; /* #95715b */
  --accent-foreground: 0 0% 100%;

  --border: 28 18% 88%;
  --input: 28 18% 86%;
  --ring: 24 24% 48%;

  --sidebar-accent: 104 10% 27%; /* #404b3b */
}

/* Utilitários Visuais */
.grain::before {
    content: "";
    pointer-events: none;
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
    mix-blend-mode: multiply;
    opacity: 0.18;
}

.bg-texture {
    background-image: url('assets/images/bg-texture.png');
    background-size: cover;
    background-position: center;
}

.clip-hero {
    clip-path: polygon(0% 0%, 100% 0%, 100% 92%, 64% 100%, 0% 92%);
}

/* Efeito Spotlight Dinâmico */
.spotlight {
    background: radial-gradient(
        600px circle at var(--sx, 50%) var(--sy, 50%),
        color-mix(in oklab, hsl(var(--accent)) 24%, transparent),
        transparent 58%
    );
}

.glass {
    background-color: #ffffff !important; /* Branco puro obrigatório */
    background: #ffffff !important;
    backdrop-filter: none !important; /* Remove qualquer desfoque */
    -webkit-backdrop-filter: none !important;
    border: 1px solid hsl(var(--border));
    box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.15) !important; /* Sombra sólida */
    opacity: 1 !important;
    z-index: 20; /* Garante que o vidro fique acima de decorações */
    position: relative; /* Necessário para o z-index funcionar */
}

.soft-shadow {
    box-shadow: 
        0 1px 0 color-mix(in oklab, hsl(var(--foreground)) 10%, transparent),
        0 16px 60px color-mix(in oklab, hsl(var(--foreground)) 10%, transparent);
}

.ring-fx {
    box-shadow: 
        0 0 0 1px color-mix(in oklab, hsl(var(--foreground)) 10%, transparent),
        0 12px 40px color-mix(in oklab, hsl(var(--accent)) 18%, transparent);
}

.dot-grid {
    background-image: radial-gradient(circle at 1px 1px, color-mix(in oklab, hsl(var(--foreground)) 12%, transparent) 1px, transparent 0);
    background-size: 18px 18px;
}

.mask-gradient {
    mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}

/* Componentes */
.flash-card {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    border: 1px solid hsl(var(--border));
    background-color: white;
    padding: 1.5rem;
    box-shadow: 0 0 0 1px rgba(78, 49, 33, 0.1), 0 12px 40px rgba(149, 113, 91, 0.18);
    transition: transform 0.3s;
}

.flash-card:hover {
    transform: translateY(-4px);
}

.flash-card::before {
    content: "";
    pointer-events: none;
    position: absolute;
    right: -4rem;
    top: -4rem;
    height: 11rem;
    width: 11rem;
    border-radius: 9999px;
    background-color: hsl(var(--secondary));
    filter: blur(40px);
    opacity: 0;
    transition: opacity 0.3s;
}

.flash-card:hover::before {
    opacity: 0.8;
}

.icon-box {
    display: grid;
    height: 3rem;
    width: 3rem;
    place-items: center;
    border-radius: 1rem;
    background-color: hsl(var(--secondary));
    color: hsl(var(--primary));
    margin-bottom: 1rem;
    box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
}

.marquee-card {
    width: 260px;
    flex-shrink: 0;
    border-radius: 1rem;
    border: 1px solid hsl(var(--border));
    background-color: white;
    padding: 1rem;
    box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.marquee-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
}

.pause-on-hover:hover {
    animation-play-state: paused;
}

/* Animação Scroll Fade Up */
.fade-up {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

.fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.delay-100 { transition-delay: 0.05s; }