@import url('./fonts/fonts.css');
@import url('./styles/base.css');


.top {
    display: flex;
    justify-content: space-between;

    .disco-container {
        width: 100%;
        max-width: 200px; /* Limits size on large screens */
    }
}

.hearts-container {
    position: absolute;
    right: 0;
    @media (max-width: 799px) {
        top: 30px;
    }

    @media (min-width: 800px) {
        position: absolute;
        bottom: 100px;
    }
}

.hearts {
    position: relative; /* Anchor for absolute children */
    width: 80px;
    height: 60px; /* Absolute containers don't auto-expand! You must set a height */

    @media (min-width: 800px) {
        width: 120px;
    }
}

.hearts img {
    position: absolute;
    top: 0;
    width: 50%; /* Each takes exactly 60px (50% of 120px) */
    height: auto; /* Shrinks vertically to maintain aspect ratio */
}

.img-left {
    left: 0;
}

.img-right {
    left: 50%; /* Pushes second image to the right half */
}

.stars-container-1 {
    position: absolute;
    left: 20px;

    img {
        height: 50px;
    }

    @media (max-width: 799px) {
        top: 30px;
    }

    @media (min-width: 800px) {
        position: absolute;
        bottom: 0;
    }
}

.cake-container {
    position: absolute;

    @media (max-width: 799px) {
        right: 0;
        bottom: -40px;
    }

    @media (min-width: 800px) {
        right: 0;
        bottom: 0;
    }
}

.names {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: xxx-large;
    padding: 2rem 0;

    p {
        letter-spacing: 0.25em;
    }

    .smol {
        font-size: large;
    }
}


.engage {
    font-size: xx-large;
    letter-spacing: 0.3em;
}

.deets {
    font-size: x-large;
}

.glasses-container {
    text-align: center;
    @media (min-width: 800px) {
        position: absolute;
        bottom: 0;
        left: 0;
    }
}

.rsvp {
    font-size: x-large;

    .deadline {
        font-size: x-large;
    }
}

.story {
    font-size: x-large;
    padding: 0.5rem;
}

.us-pic-container {
    @media (max-width: 799px) {
        margin: 0 1rem;
    }

    /* Force <picture> wrapper to respect parent bounds */
    picture {
        display: block;
        width: 100%;
        max-width: 100%;
    }

    /* Force <img> inside <picture> to fit strictly within container */
    .us-pic {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
    }
}

.faqs {
    font-size: x-large;
}

.curved-text-container {
    width: 100%;
    max-width: 400px;
    min-width: 250px;

    /* 1. Set height (or min-height) so there is space for the SVG to align to */
    min-height: 100px;

    /* 2. Turn into flex column and align items to the bottom */
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* SVG fills wrapper fluidly */
.curved-text-container svg {
    width: 100%;
    height: auto;
    display: block;
}


/* Base trigger image visual hint */
img.thumb {
    cursor: zoom-in;
    touch-action: manipulation; /* Removes 300ms mobile tap delay */
}

/* Popover container acting as full-screen viewport */
.zoom-popover {
    border: none;
    padding: 0;
    margin: 0;
    background: transparent;
    width: 100vw;
    height: 100vh;
    max-width: 100vw;
    max-height: 100vh;

    /* Enables native touch-drag scrolling/panning */
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/* Backdrop */
.zoom-popover::backdrop {
    background-color: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(4px);
}

/* Force image larger than screen to trigger scrollbars */
.large-img {
    display: block;
    width: 200vw; /* Adjust magnification level (e.g., 150vw - 300vw) */
    height: auto;
    max-width: none; /* Prevents default browser caps */
}
.close-btn {
    /* Pinned to screen top-right */
    position: fixed;
    top: 18px;
    left: 18px;
    z-index: 100;

    /* Size & Shape */
    width: 44px;
    height: 44px;
    border-radius: 50%;

    /* Glassmorphism Styling */
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.25);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);

    /* Clean Vector X icon */
    color: #000000;
    font-family: system-ui, -apple-system, sans-serif;
    font-size: 22px;
    font-weight: 300;

    /* Centering */
    display: flex;
    align-items: center;
    justify-content: center;

    /* Reset & Mobile Interactions */
    padding: 0;
    cursor: pointer;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform 0.15s ease, background-color 0.15s ease;
}

/* Tap Feedback for Mobile */
.close-btn:active {
    transform: scale(0.9);
    background: rgba(255, 255, 255, 0.3);
}