:where([class^="ri-"])::before { content: "\f3c2"; }

body {
    font-family: 'Inter', sans-serif;
    background-color: #F8F5F0;
    color: #333333;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Source Serif Pro', serif;
}

/* Hero Section */
.hero-section {
    background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url('https://readdy.ai/api/search-image?query=A%20serene%20night%20view%20of%20a%20quiet%20backstreet%20in%20Shinjuku%2C%20Tokyo.%20The%20narrow%20alley%20is%20lined%20with%20traditional%20small%20establishments%20with%20warm%20glowing%20lanterns%20and%20wooden%20facades.%20The%20scene%20captures%20the%20peaceful%20ambiance%20away%20from%20the%20busy%20main%20streets%2C%20with%20soft%20lighting%20creating%20a%20cozy%20atmosphere.%20The%20image%20has%20a%20slightly%20desaturated%2C%20artistic%20quality%20with%20deep%20shadows%20and%20warm%20highlights.&width=1920&height=1080&seq=1&orientation=landscape');
    background-size: cover;
    background-position: center;
}

/* Card Styles */
.card-image {
    height: 240px;
    object-fit: cover;
    object-position: center;
}

/* Button States */
.filter-btn.active {
    background-color: #2A3F54;
    color: white;
}

.view-toggle-btn.active {
    background-color: #2A3F54;
    color: white;
}

/* Carousel Styles */
.carousel-container {
    position: relative;
    overflow: hidden;
    height: 70vh;
}

.carousel-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.carousel-slide.active {
    opacity: 1;
}

.carousel-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel-nav {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 10;
}

.carousel-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.carousel-dot.active {
    background-color: white;
}

.carousel-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0, 0, 0, 0.5);
    color: white;
    padding: 16px;
    cursor: pointer;
    z-index: 10;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
}

.carousel-button:hover {
    background-color: rgba(0, 0, 0, 0.7);
}

.carousel-button.prev {
    left: 20px;
}

.carousel-button.next {
    right: 20px;
}

/* Quest Page Specific Styles */
.quest-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.quest-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.quest-card-image {
    height: 240px;
    object-fit: cover;
    object-position: top;
}

.coming-soon-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    background-color: #2A3F54;
    color: white;
    padding: 4px 12px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 600;
    z-index: 10;
} 