@charset "UTF-8";

/* Text Shadow */
.text-shadow {
    text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
}

/* Swiper Fade Effect Adjustment */
.fv-swiper .swiper-slide {
    transition: transform 2s ease;
    /* Smooth transition */
}

/* Custom Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fade-in-up {
    opacity: 0;
    /* Animation will be triggered by JS intersection observer */
}

.fade-in-up.visible {
    animation: fadeInUp 0.8s ease-out forwards;
}

.delay-100 {
    animation-delay: 0.1s;
}

.delay-200 {
    animation-delay: 0.2s;
}

.delay-300 {
    animation-delay: 0.3s;
}

/* Swiper Pagination Customization */
.swiper-pagination-bullet-active {
    background-color: #e91e63 !important;
}

/* FV Section Adjustments */
#fv {
    padding-top: 64px;
    /* Matches h-16 */
    background-color: #fff;
    /* Match header for seamless look */
}

@media (min-width: 768px) {
    #fv {
        padding-top: 80px;
        /* Matches h-20 */
    }
}

.fv-swiper {
    width: 100%;
    height: auto !important;
}

.fv-swiper .swiper-slide {
    height: auto !important;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.fv-swiper .swiper-slide img {
    width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: cover;
}

/* Remove any potential scroll indicators */
.scroll-indicator,
.scroll-arrow,
.scrolldown,
[class*="scroll-down"],
[class*="arrow-down"] {
    display: none !important;
}

/* Base Styles */
html {
    scroll-padding-top: 80px;
    /* For fixed header */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.gallery-swiper .swiper-wrapper {
    transition-timing-function: linear !important;
}

.gallery-swiper .swiper-slide {
    cursor: pointer;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 250px;
    /* Fixed height for all slides */
    width: auto !important;
    /* Allow width to be based on image aspect ratio */
}

@media (min-width: 768px) {
    .gallery-swiper .swiper-slide {
        height: 350px;
        /* Larger fixed height for PC */
    }
}

.gallery-swiper .swiper-slide img {
    width: auto;
    /* Preserve aspect ratio */
    height: 100%;
    object-fit: contain;
    /* Ensure no cropping */
    display: block;
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

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


/* Broken Grid / Asymmetry tweaks */
/* Image overlapping text slightly for asymmetrical feel if needed, 
   but currently handled by Tailwind layout. 
   Adding a subtle pattern to background. */
/* Copy Protection */
body {
    background-image: radial-gradient(#cbd5e1 1px, transparent 1px);
    background-size: 40px 40px;
    background-color: #f8fafc;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    /* Disable callout, Mobile Safari */
}

/* Remove scrollbar for cleaner look if desired, but keep for usability.
   Focus outline styles */
*:focus-visible {
    outline: 2px solid #e91e63;
    outline-offset: 2px;
}

/* Slider Popup Modal */
#image-modal {
    backdrop-filter: blur(12px);
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

#image-modal.opacity-0 {
    visibility: hidden;
}

.popup-swiper {
    position: relative;
    width: 100%;
    height: 100%;
}

.popup-swiper .swiper-slide {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100vw !important;
    height: 100vh !important;
    background: transparent;
    padding: 5% !important;
    /* Visible spacing on all sides */
    box-sizing: border-box !important;
}

.popup-swiper .swiper-slide img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 0 50px rgba(0, 0, 0, 0.9));
    pointer-events: auto;
    user-select: none;
}

/* Navigation Arrows */
.popup-swiper .swiper-button-next,
.popup-swiper .swiper-button-prev {
    background: none !important;
    border: none !important;
    backdrop-filter: none !important;
    width: 60px !important;
    height: 60px !important;
    color: white !important;
    transition: all 0.3s ease;
    z-index: 10005 !important;
    /* Extremely high to be above swiper slides */
    cursor: pointer !important;
    display: flex !important;
}

.popup-swiper .swiper-button-next::after,
.popup-swiper .swiper-button-prev::after {
    font-family: swiper-icons;
    /* Ensure swiper icon font is used */
    font-size: 50px !important;
    /* Large, clear arrows */
    font-weight: 900 !important;
    color: #ffffff !important;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.9));
    /* High contrast shadow */
}

.popup-swiper .swiper-button-next:hover,
.popup-swiper .swiper-button-prev:hover {
    transform: scale(1.2);
}

@media (max-width: 768px) {

    .popup-swiper .swiper-button-next,
    .popup-swiper .swiper-button-prev {
        width: 50px !important;
        height: 50px !important;
    }

    .popup-swiper .swiper-button-next::after,
    .popup-swiper .swiper-button-prev::after {
        font-size: 36px !important;
    }

    .popup-swiper .swiper-slide img {
        max-width: 95vw;
        max-height: 70vh;
    }
}