/* Apply the Inter font */
body {
    font-family: "Product Sans", "Anthropic Sans";
}
/* Simple smooth scroll */
html {
    scroll-behavior: smooth;
}

/* CSS for the infinite scroller */
@keyframes scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.ease-premium {
    transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
.scroller-inner {
    display: flex;
    gap: 2rem;
    animation: scroll 40s linear infinite; /* Slowed down for readability */
    width: max-content;
}
.scroller-container {
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
}

.bg-hex-pattern {
    background-color: #D17B5B; /* Fallback to oak-200 */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill='none'%3E%3Cpath stroke='%23e6dcc8' stroke-width='1' d='M13.99 9.25l13 7.5v15l-13 7.5l-13-7.5v-15l13-7.5z'/%3E%3Cpath stroke='%23e6dcc8' stroke-width='1' d='M14 24.8v15.5' opacity='0'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: repeat;
}

@keyframes slow-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.animate-slow-spin {
    animation: slow-spin 20s linear infinite;
}

/* SCROLL REVEAL STYLES */
/* Initial State: Hidden and pushed down */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(2rem); /* Starts 32px lower */
    transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

/* Final State: Visible and in place */
.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.map-container iframe {
    filter: grayscale(100%) contrast(1.2) opacity(0.8);
    transition: filter 0.3s ease;
}
.map-container:hover iframe {
    filter: grayscale(0%) opacity(1);
}
