/* === FONTS === */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lato:wght@300;400;700&display=swap');

/* === CUSTOM ANIMATIONS === */
@keyframes reveal {
    from { clip-path: inset(0 100% 0 0); }
    to { clip-path: inset(0 0 0 0); }
}

.animate-reveal {
    animation: reveal 1.5s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}

/* === EFFECTS === */
.noise-bg {
    position: relative;
}
.noise-bg::after {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3%3Ffilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' 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: 1;
}

.text-stroke {
    -webkit-text-stroke: 1px currentColor;
    color: transparent;
}

/* === MODULE STYLES === */
/* module: gallery */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}

.gallery-item img {
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.gallery-item:hover img {
    transform: scale(1.05);
}

/* module: menu */
.menu-dot-line {
    flex-grow: 1;
    border-bottom: 1px dotted #4a3728;
    margin: 0 10px;
    opacity: 0.3;
}
