html.lgc-html-fullpage,
html:has(.lgc-scene),
body.lgc-fullpage-active {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    background: #ffd6e5 !important;
}

body.lgc-fullpage-active > *:not(.lgc-scene):not(#wpadminbar),
body.lgc-fullpage-active #site-header,
body.lgc-fullpage-active #site-footer,
body.lgc-fullpage-active .header-footer-group,
body.lgc-fullpage-active .entry-header,
body.lgc-fullpage-active .post-meta-wrapper,
body.lgc-fullpage-active .pagination-wrapper,
body.lgc-fullpage-active .comments-wrapper,
body.lgc-fullpage-active .footer-nav-widgets-wrapper,
body.lgc-fullpage-active .to-the-top,
body.lgc-fullpage-active .wp-site-blocks,
body.lgc-fullpage-active .site,
body.lgc-fullpage-active .site-header,
body.lgc-fullpage-active .site-footer,
body.lgc-fullpage-active .elementor-location-header,
body.lgc-fullpage-active .elementor-location-footer,
body.lgc-fullpage-active header,
body.lgc-fullpage-active footer,
body.lgc-fullpage-active nav,
body.lgc-fullpage-active main,
body.lgc-fullpage-active article,
body.lgc-fullpage-active .entry-title,
body.lgc-fullpage-active .page-title {
    display: none !important;
    visibility: hidden !important;
}

body.lgc-fullpage-active #wpadminbar {
    z-index: 1000001 !important;
}

.lgc-scene {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    min-width: 100vw !important;
    min-height: 100vh !important;
    max-width: none !important;
    max-height: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 24px !important;
    margin: 0 !important;
    background: radial-gradient(circle at top, #fff7fb 0%, #ffd6e5 35%, #ff8fb1 100%) !important;
    border-radius: 0 !important;
    isolation: isolate !important;
    z-index: 1000000 !important;
    box-sizing: border-box !important;
    transform: none !important;
}

.admin-bar .lgc-scene {
    top: 32px !important;
    height: calc(100vh - 32px) !important;
    min-height: calc(100vh - 32px) !important;
}

.lgc-scene,
.lgc-scene * {
    box-sizing: border-box !important;
}

.lgc-hearts {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 1;
}

.lgc-falling-heart {
    position: absolute;
    top: -60px;
    color: #d90429;
    opacity: 0.72;
    animation-name: lgc-heart-fall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    text-shadow: 0 8px 18px rgba(122, 0, 35, 0.18);
}

@keyframes lgc-heart-fall {
    0% { transform: translate3d(0, -70px, 0) rotate(0deg); opacity: 0; }
    12% { opacity: 0.85; }
    100% { transform: translate3d(var(--lgc-drift), 115vh, 0) rotate(360deg); opacity: 0; }
}

.lgc-card {
    position: relative !important;
    z-index: 2 !important;
    width: min(760px, 92vw) !important;
    height: min(680px, 84vh) !important;
    min-height: 430px !important;
    border: 0 !important;
    background: transparent !important;
    cursor: pointer;
    perspective: 1400px;
    font-family: Georgia, 'Times New Roman', serif !important;
    color: inherit !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    appearance: none !important;
}

.lgc-card-front,
.lgc-card-inside {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: clamp(28px, 5vw, 58px);
    border-radius: 34px;
    box-shadow: 0 34px 90px rgba(111, 8, 45, 0.32);
    backface-visibility: hidden;
    transition: transform 2500ms cubic-bezier(.2,.8,.2,1), opacity 900ms ease, filter 1200ms ease;
}

.lgc-card-front {
    background: linear-gradient(145deg, #ff477e, #ff85a1);
    color: #fff;
    border: 2px solid rgba(255, 255, 255, 0.55);
}

.lgc-card-front::before,
.lgc-card-front::after {
    content: "";
    position: absolute;
    inset: 22px;
    border: 2px dashed rgba(255, 255, 255, 0.48);
    border-radius: 26px;
}

.lgc-card-inside {
    background: rgba(255, 255, 255, 0.96);
    color: #7a0026;
    transform: rotateY(180deg);
    overflow: hidden;
    cursor: default;
}

.lgc-card.is-opening .lgc-card-front { filter: brightness(1.08) blur(0.5px); }
.lgc-card.is-open { cursor: default; }
.lgc-card.is-open .lgc-card-front { transform: rotateY(-180deg); opacity: 0.08; }
.lgc-card.is-open .lgc-card-inside { transform: rotateY(0deg); }

.lgc-heart-icon {
    font-size: clamp(72px, 12vw, 120px);
    line-height: 1;
    margin-bottom: 18px;
    animation: lgc-pulse 1.4s ease-in-out infinite;
}

@keyframes lgc-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.14); }
}

.lgc-title {
    font-size: clamp(38px, 7vw, 72px);
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1.05;
}

.lgc-subtitle {
    margin-top: 12px;
    font-size: clamp(18px, 3.5vw, 34px);
    opacity: 0.96;
    line-height: 1.2;
}

.lgc-poem-wrap {
    display: block;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 8px 10px 34vh;
    scrollbar-width: thin;
}

.lgc-poem {
    display: block;
    max-width: 100%;
    min-height: 100%;
    font-size: clamp(21px, 3.2vw, 36px);
    line-height: 1.72;
    font-weight: 500;
    text-align: center;
    white-space: normal;
}

.lgc-poem-line {
    margin: 0 0 0.8em;
}

.lgc-intro-line {
    margin: 0 0 1.2em;
    font-size: clamp(28px, 4.8vw, 52px);
    font-weight: 800;
    color: #c9184a;
    opacity: 0;
    transform: translateY(18px) scale(0.96);
    animation: lgc-intro-in 1400ms ease forwards;
}

.lgc-word {
    display: inline-block;
    opacity: 0;
    transform: translateY(14px);
    animation: lgc-word-in 700ms ease forwards;
    margin-right: 0.25em;
}

.lgc-break {
    display: block;
    height: 0.9em;
}

@keyframes lgc-word-in {
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 782px) {
    .admin-bar .lgc-scene {
        top: 46px !important;
        height: calc(100vh - 46px) !important;
        min-height: calc(100vh - 46px) !important;
    }
}

@media (max-width: 640px) {
    .lgc-scene { padding: 14px !important; }
    .lgc-card {
        width: 94vw !important;
        height: 86vh !important;
        min-height: 460px !important;
    }
    .lgc-card-front,
    .lgc-card-inside {
        border-radius: 24px;
        padding: 28px 20px;
    }
}


@keyframes lgc-intro-in {
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.lgc-final-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 28px auto 12px;
    padding: 16px 28px;
    border-radius: 999px;
    border: 0;
    background: linear-gradient(135deg, #ff477e, #c9184a);
    color: #fff;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(18px, 2.8vw, 28px);
    font-weight: 800;
    box-shadow: 0 14px 36px rgba(122, 0, 38, 0.28);
    opacity: 0;
    transform: translateY(18px) scale(0.94);
    pointer-events: none;
    transition: opacity 900ms ease, transform 900ms ease;
}

.lgc-final-button.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.lgc-card.is-open .lgc-card-inside::after {
    content: "✦";
    position: absolute;
    right: 34px;
    top: 28px;
    color: #ff85a1;
    font-size: 38px;
    animation: lgc-sparkle 1.7s ease-in-out infinite;
}

@keyframes lgc-sparkle {
    0%, 100% { opacity: 0.35; transform: scale(0.8) rotate(0deg); }
    50% { opacity: 1; transform: scale(1.12) rotate(18deg); }
}

/* Romantic poem window upgrade */
.lgc-card-inside {
    background:
        radial-gradient(circle at 20% 10%, rgba(255, 255, 255, 0.95), transparent 32%),
        linear-gradient(145deg, rgba(255, 245, 249, 0.98), rgba(255, 221, 232, 0.96)) !important;
    border: 1px solid rgba(255, 255, 255, 0.75) !important;
    box-shadow:
        0 38px 100px rgba(111, 8, 45, 0.34),
        inset 0 0 0 1px rgba(255, 255, 255, 0.65),
        inset 0 0 80px rgba(255, 112, 150, 0.13) !important;
}

.lgc-card-inside::before {
    content: "";
    position: absolute;
    inset: clamp(18px, 3vw, 32px);
    border-radius: 28px;
    background:
        linear-gradient(rgba(255,255,255,0.70), rgba(255,255,255,0.55)),
        repeating-linear-gradient(0deg, transparent 0 36px, rgba(201, 24, 74, 0.055) 37px 38px);
    border: 2px solid rgba(232, 183, 95, 0.72);
    box-shadow:
        0 20px 48px rgba(122, 0, 38, 0.12),
        inset 0 0 34px rgba(255, 255, 255, 0.75);
    pointer-events: none;
}

.lgc-card-inside::after {
    z-index: 4;
}

.lgc-poem-wrap {
    position: relative;
    z-index: 3;
    width: min(92%, 620px);
    height: calc(100% - 18px);
    margin: 8px auto 0;
    padding: clamp(36px, 5vw, 58px) clamp(22px, 5vw, 54px) 38vh !important;
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.30);
    box-shadow: inset 0 0 28px rgba(255, 255, 255, 0.32);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.lgc-poem-wrap::-webkit-scrollbar { width: 7px; }
.lgc-poem-wrap::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.26); border-radius: 99px; }
.lgc-poem-wrap::-webkit-scrollbar-thumb { background: rgba(201, 24, 74, 0.32); border-radius: 99px; }

.lgc-poem {
    color: #6f0628 !important;
    text-shadow: 0 1px 0 rgba(255,255,255,0.85);
    font-size: clamp(20px, 2.6vw, 31px) !important;
    line-height: 1.85 !important;
    letter-spacing: 0.01em;
}

.lgc-intro-line {
    color: #b80f42 !important;
    margin-bottom: 1.45em !important;
    text-shadow: 0 8px 24px rgba(201, 24, 74, 0.16), 0 1px 0 rgba(255,255,255,0.9);
}

.lgc-poem-line {
    margin-bottom: 1.05em !important;
}

.lgc-word {
    filter: drop-shadow(0 3px 8px rgba(122, 0, 38, 0.07));
}

.lgc-poem-wrap::before,
.lgc-poem-wrap::after {
    position: absolute;
    z-index: 5;
    color: rgba(201, 24, 74, 0.38);
    font-size: clamp(22px, 3vw, 36px);
    line-height: 1;
    pointer-events: none;
}

.lgc-poem-wrap::before {
    content: "❤";
    left: 20px;
    top: 18px;
}

.lgc-poem-wrap::after {
    content: "❤";
    right: 20px;
    bottom: 18px;
}

.lgc-final-button {
    position: relative;
    z-index: 6;
    background: linear-gradient(135deg, #ff5f8f, #b80f42) !important;
    border: 1px solid rgba(255, 255, 255, 0.70) !important;
    box-shadow: 0 16px 42px rgba(122, 0, 38, 0.25), inset 0 1px 0 rgba(255,255,255,0.42) !important;
}

@media (max-width: 640px) {
    .lgc-poem-wrap {
        width: 96%;
        padding: 38px 22px 36vh !important;
        border-radius: 22px;
    }
    .lgc-card-inside::before {
        inset: 14px;
        border-radius: 22px;
    }
}

/* Romantic scrollbar fix */
.lgc-poem-container,
.love-poem-container,
.poem-container,
.love-letter,
.lgc-letter{
    overflow:hidden !important;
    scrollbar-width:none !important;
}
.lgc-poem-container::-webkit-scrollbar,
.love-poem-container::-webkit-scrollbar,
.poem-container::-webkit-scrollbar,
.love-letter::-webkit-scrollbar,
.lgc-letter::-webkit-scrollbar{
    display:none !important;
}

/* FINAL FIX: remove the visible scrollbar from the poem panel */
.lgc-card-inside,
.lgc-poem-wrap,
.lgc-poem,
.lgc-card,
.lgc-scene {
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
}

.lgc-card-inside::-webkit-scrollbar,
.lgc-poem-wrap::-webkit-scrollbar,
.lgc-poem::-webkit-scrollbar,
.lgc-card::-webkit-scrollbar,
.lgc-scene::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
}

.lgc-poem-wrap {
    overflow: hidden !important;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
}

.lgc-card-inside {
    overflow: hidden !important;
}

/* HARD FIX: no blur and no visible old card behind the poem */
.lgc-card,
.lgc-card * {
    filter: none !important;
    -webkit-filter: none !important;
}

.lgc-poem-wrap,
.lgc-card-inside,
.lgc-card-inside::before,
.lgc-card-inside::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.lgc-poem-wrap {
    background: #fff5f8 !important;
    overflow: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}
.lgc-poem-wrap::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

.lgc-card-inside {
    background: linear-gradient(145deg, #fff9fb 0%, #ffe6ee 100%) !important;
    opacity: 1 !important;
}

.lgc-card.is-opening .lgc-card-front,
.lgc-card.is-open .lgc-card-front,
.lgc-card.lgc-hide-front .lgc-card-front {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    filter: none !important;
    -webkit-filter: none !important;
}

.lgc-card.is-opening .lgc-card-inside,
.lgc-card.is-open .lgc-card-inside,
.lgc-card.lgc-hide-front .lgc-card-inside {
    opacity: 1 !important;
    filter: none !important;
    -webkit-filter: none !important;
}

.lgc-title,
.lgc-subtitle,
.lgc-heart-icon,
.lgc-poem,
.lgc-poem *,
.lgc-word,
.lgc-intro-line {
    filter: none !important;
    -webkit-filter: none !important;
    text-rendering: geometricPrecision !important;
    -webkit-font-smoothing: antialiased !important;
    backface-visibility: visible !important;
    transform-style: flat !important;
}


/* v3.1 - Centered poem and per-card letter animation */
.lgc-card-inside {
    align-items: stretch !important;
    justify-content: center !important;
}

.lgc-poem-wrap {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    overflow-y: hidden !important;
    padding: clamp(28px, 5vw, 58px) clamp(18px, 4vw, 48px) !important;
    scrollbar-width: none !important;
}

.lgc-poem-wrap.has-overflow {
    justify-content: flex-start !important;
    overflow-y: hidden !important;
}

.lgc-poem-wrap::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

.lgc-poem {
    width: 100% !important;
    max-width: 820px !important;
    min-height: auto !important;
    margin: auto 0 !important;
    text-align: center !important;
    transform: none !important;
    filter: none !important;
    backdrop-filter: none !important;
}

.lgc-poem-wrap.has-overflow .lgc-poem {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.lgc-intro-line {
    margin-top: 0 !important;
    margin-bottom: 1.15em !important;
}

.lgc-poem-line {
    margin: 0 0 0.72em !important;
}

.lgc-letter {
    display: inline-block !important;
    opacity: 0;
    transform: translateY(10px);
    animation: lgc-letter-in 650ms ease forwards;
    filter: none !important;
    backdrop-filter: none !important;
}

.lgc-space {
    display: inline !important;
    white-space: pre !important;
}

@keyframes lgc-letter-in {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Keep the old front fully gone after opening */
.lgc-card.is-open .lgc-card-front,
.lgc-card.lgc-hide-front .lgc-card-front {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    filter: none !important;
}


/* v3.2 - duration-based animation, scrollbar hidden */
.lgc-poem-wrap {
    overflow: hidden !important;
    scrollbar-width: none !important;
}
.lgc-poem-wrap::-webkit-scrollbar {
    display: none !important;
}


/* v3.2.1 - prevent words from breaking during letter animation */
.lgc-animated-word {
    display: inline-block !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}

.lgc-word-space {
    display: inline !important;
    white-space: pre !important;
}

.lgc-poem,
.lgc-poem-line {
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}

.lgc-letter {
    display: inline-block !important;
    white-space: pre !important;
}


/* v3.3 - poem or romantic photo slideshow */
.lgc-photo-show {
    position: relative !important;
    display: block !important;
    width: min(100%, 760px) !important;
    height: min(100%, 520px) !important;
    min-height: 320px !important;
    margin: auto !important;
    border-radius: 30px !important;
    overflow: hidden !important;
    box-shadow: 0 22px 60px rgba(122,0,38,.18), inset 0 0 0 2px rgba(255,255,255,.75) !important;
    background: linear-gradient(135deg, #fff7fb, #ffd6e5) !important;
}
.lgc-photo-show::before {
    content: "";
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(224,172,72,.55);
    border-radius: 24px;
    z-index: 5;
    pointer-events: none;
}
.lgc-photo-show::after {
    content: "❤";
    position: absolute;
    right: 28px;
    bottom: 22px;
    z-index: 6;
    color: rgba(201,24,74,.55);
    font-size: 34px;
    animation: lgc-pulse 1.6s ease-in-out infinite;
}
.lgc-slide-photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    opacity: 0 !important;
    transform: scale(1.12) rotate(-1.5deg) !important;
    transition: opacity 1200ms ease, transform 1800ms cubic-bezier(.2,.8,.2,1) !important;
    z-index: 1 !important;
}
.lgc-slide-photo.is-active {
    opacity: 1 !important;
    transform: scale(1) rotate(0deg) !important;
    z-index: 2 !important;
}
.lgc-heart-burst {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 1px !important;
    height: 1px !important;
    pointer-events: none !important;
    z-index: 10 !important;
}
.lgc-heart-burst span {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    color: #ff477e !important;
    text-shadow: 0 8px 22px rgba(122,0,38,.28) !important;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.4);
    animation: lgc-heart-explode 1250ms ease-out forwards;
}
@keyframes lgc-heart-explode {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.35) rotate(0deg); }
    18% { opacity: 1; }
    100% { opacity: 0; transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(1.2) rotate(360deg); }
}
@media (max-width: 640px) {
    .lgc-photo-show { height: min(100%, 68vh) !important; min-height: 300px !important; border-radius: 22px !important; }
}


/* v3.3.1 - photo mode fix */
.lgc-photo-empty {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 32px !important;
    text-align: center !important;
    color: #9b123f !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    font-size: clamp(20px, 3vw, 34px) !important;
    font-weight: 700 !important;
    z-index: 8 !important;
}


/* v3.3.2 - force photo slider, swipe, and slide transitions */
.lgc-photo-show {
    cursor: grab !important;
    touch-action: pan-y !important;
    user-select: none !important;
}

.lgc-photo-show:active {
    cursor: grabbing !important;
}

.lgc-slide-photo {
    opacity: 0 !important;
    transform: translateX(100%) scale(1.04) !important;
    transition:
        opacity 850ms ease,
        transform 950ms cubic-bezier(.22,.8,.22,1) !important;
}

.lgc-slide-photo.is-active {
    opacity: 1 !important;
    transform: translateX(0) scale(1) !important;
}

.lgc-slide-photo.slide-right-in {
    animation: lgc-slide-right-in 950ms cubic-bezier(.22,.8,.22,1) both !important;
}

.lgc-slide-photo.slide-left-in {
    animation: lgc-slide-left-in 950ms cubic-bezier(.22,.8,.22,1) both !important;
}

.lgc-slide-photo.slide-left-out {
    animation: lgc-slide-left-out 850ms cubic-bezier(.22,.8,.22,1) both !important;
}

.lgc-slide-photo.slide-right-out {
    animation: lgc-slide-right-out 850ms cubic-bezier(.22,.8,.22,1) both !important;
}

@keyframes lgc-slide-right-in {
    from { opacity: 0; transform: translateX(100%) scale(1.04); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes lgc-slide-left-in {
    from { opacity: 0; transform: translateX(-100%) scale(1.04); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes lgc-slide-left-out {
    from { opacity: 1; transform: translateX(0) scale(1); }
    to { opacity: 0; transform: translateX(-100%) scale(.98); }
}

@keyframes lgc-slide-right-out {
    from { opacity: 1; transform: translateX(0) scale(1); }
    to { opacity: 0; transform: translateX(100%) scale(.98); }
}

.lgc-photo-nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 20 !important;
    width: 46px !important;
    height: 46px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.75) !important;
    background: rgba(201,24,74,.55) !important;
    color: #fff !important;
    font-size: 34px !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 10px 28px rgba(122,0,38,.25) !important;
    cursor: pointer !important;
}

.lgc-photo-prev { left: 18px !important; }
.lgc-photo-next { right: 18px !important; }

.lgc-photo-nav:hover {
    background: rgba(201,24,74,.8) !important;
}


/* v3.3.3 - show every photo completely without cropping */
.lgc-photo-show {
    background:
        radial-gradient(circle at top, rgba(255,255,255,.96), rgba(255,230,240,.72)),
        linear-gradient(135deg, #fff7fb, #ffd6e5) !important;
}

.lgc-slide-photo {
    object-fit: contain !important;
    object-position: center center !important;
    padding: clamp(10px, 2vw, 20px) !important;
    background:
        radial-gradient(circle at center, rgba(255,255,255,.98), rgba(255,230,240,.78)) !important;
    border-radius: 28px !important;
}

/* Optional soft frame so portrait, landscape, and square images all look good */
.lgc-slide-photo.is-active {
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.55),
        0 18px 45px rgba(122,0,38,.14) !important;
}


/* v3.4 - romantic From / To dedication */
@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:wght@600;700&display=swap');

.lgc-card-inside {
    justify-content: flex-start !important;
    gap: clamp(10px, 2vh, 18px) !important;
}

.lgc-dedication {
    position: relative !important;
    z-index: 12 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: min(92%, 680px) !important;
    min-height: clamp(72px, 12vh, 120px) !important;
    margin: 0 auto clamp(8px, 1.6vh, 16px) !important;
    padding: 8px 28px 12px !important;
    text-align: center !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, rgba(255,255,255,.54), rgba(255,226,238,.38)) !important;
    box-shadow:
        0 14px 38px rgba(122,0,38,.08),
        inset 0 0 0 1px rgba(255,255,255,.7) !important;
    color: #8b0032 !important;
    pointer-events: none !important;
}

.lgc-dedication::before,
.lgc-dedication::after {
    content: "✦";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: #ff7aa8;
    font-size: 22px;
    opacity: .85;
}

.lgc-dedication::before { left: 22px; }
.lgc-dedication::after { right: 22px; }

.lgc-dedication-line {
    display: block !important;
    font-family: 'Great Vibes', 'Brush Script MT', cursive !important;
    font-size: clamp(28px, 4.4vw, 52px) !important;
    line-height: 1.05 !important;
    letter-spacing: .01em !important;
    text-shadow: 0 7px 18px rgba(122,0,38,.12) !important;
}

.lgc-dedication-line + .lgc-dedication-line {
    margin-top: 2px !important;
    font-size: clamp(23px, 3.4vw, 40px) !important;
    opacity: .92 !important;
}

.lgc-dedication .lgc-label {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .45em !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    vertical-align: middle !important;
    color: #c9184a !important;
}

.lgc-photo-show {
    height: min(100%, 470px) !important;
}

@media (max-width: 640px) {
    .lgc-dedication {
        width: 96% !important;
        min-height: 76px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    .lgc-dedication::before,
    .lgc-dedication::after {
        display: none !important;
    }
    .lgc-photo-show {
        height: min(100%, 60vh) !important;
    }
}


/* v3.4.1 - compact To/From header and fixed slideshow layout */
.lgc-card-inside {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    padding: clamp(18px, 3vw, 34px) !important;
    overflow: hidden !important;
}

.lgc-dedication {
    flex: 0 0 auto !important;
    width: min(94%, 720px) !important;
    min-height: auto !important;
    margin: 0 auto 6px !important;
    padding: 10px 26px 12px !important;
    border-radius: 999px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 18px !important;
    row-gap: 2px !important;
    align-items: center !important;
}

.lgc-dedication-line {
    font-size: clamp(22px, 3vw, 38px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.lgc-dedication-line + .lgc-dedication-line {
    margin-top: 0 !important;
    font-size: clamp(20px, 2.7vw, 34px) !important;
}

.lgc-dedication .lgc-label {
    font-size: .5em !important;
}

.lgc-poem-wrap {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.lgc-photo-show {
    flex: 1 1 auto !important;
    width: min(100%, 760px) !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    margin: 0 auto !important;
    border-radius: 28px !important;
}

.lgc-slide-photo {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    padding: clamp(8px, 1.5vw, 16px) !important;
}

.lgc-photo-nav {
    top: 50% !important;
}

@media (max-width: 760px) {
    .lgc-card-inside {
        padding: 16px !important;
        gap: 8px !important;
    }

    .lgc-dedication {
        grid-template-columns: 1fr !important;
        width: 96% !important;
        padding: 9px 18px 10px !important;
    }

    .lgc-dedication-line,
    .lgc-dedication-line + .lgc-dedication-line {
        font-size: clamp(20px, 6vw, 32px) !important;
    }

    .lgc-photo-show {
        width: 100% !important;
        border-radius: 22px !important;
    }
}


/* v3.5 - big To/From intro before photo slideshow */
.lgc-dedication-intro {
    position: absolute !important;
    inset: clamp(24px, 4vw, 52px) !important;
    z-index: 40 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(14px, 2vh, 24px) !important;
    text-align: center !important;
    border-radius: 30px !important;
    background:
        radial-gradient(circle at center, rgba(255,255,255,.94), rgba(255,231,241,.88)),
        linear-gradient(135deg, rgba(255,255,255,.86), rgba(255,213,229,.72)) !important;
    box-shadow:
        0 26px 80px rgba(122,0,38,.18),
        inset 0 0 0 1px rgba(255,255,255,.8),
        inset 0 0 0 2px rgba(224,172,72,.28) !important;
    opacity: 0 !important;
    transform: scale(.92) translateY(20px) !important;
    pointer-events: none !important;
    transition: opacity 850ms ease, transform 850ms cubic-bezier(.22,.8,.22,1) !important;
}

.lgc-dedication-intro::before {
    content: "💌";
    font-size: clamp(42px, 7vw, 82px);
    filter: drop-shadow(0 12px 22px rgba(122,0,38,.16));
    margin-bottom: 4px;
}

.lgc-dedication-intro::after {
    content: "❤";
    position: absolute;
    right: clamp(24px, 4vw, 48px);
    bottom: clamp(22px, 4vw, 44px);
    color: rgba(201,24,74,.42);
    font-size: clamp(34px, 5vw, 58px);
    animation: lgc-pulse 1.6s ease-in-out infinite;
}

.lgc-dedication-intro.is-visible {
    opacity: 1 !important;
    transform: scale(1) translateY(0) !important;
}

.lgc-dedication-intro.is-leaving {
    opacity: 0 !important;
    transform: scale(1.04) translateY(-12px) !important;
}

.lgc-dedication-intro.is-done {
    display: none !important;
}

.lgc-intro-to,
.lgc-intro-from {
    display: block !important;
    font-family: 'Great Vibes', 'Brush Script MT', cursive !important;
    color: #8b0032 !important;
    text-shadow: 0 10px 28px rgba(122,0,38,.16) !important;
    line-height: 1.05 !important;
    max-width: 92% !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

.lgc-intro-to {
    font-size: clamp(54px, 8vw, 96px) !important;
}

.lgc-intro-from {
    font-size: clamp(42px, 6vw, 74px) !important;
    opacity: .94 !important;
}

.lgc-intro-to span,
.lgc-intro-from span {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .42em !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: #c9184a !important;
    vertical-align: middle !important;
}

.lgc-dedication.lgc-waiting,
.lgc-photo-show.lgc-waiting {
    opacity: 0 !important;
    transform: translateY(12px) !important;
}

.lgc-dedication,
.lgc-photo-show {
    transition: opacity 700ms ease, transform 700ms ease !important;
}

@media (max-width: 640px) {
    .lgc-dedication-intro {
        inset: 18px !important;
        border-radius: 24px !important;
    }

    .lgc-intro-to {
        font-size: clamp(40px, 12vw, 68px) !important;
    }

    .lgc-intro-from {
        font-size: clamp(34px, 10vw, 56px) !important;
    }
}


/* v3.5.1 - correct order: intro first, slideshow after */
.lgc-card-inside:has(.lgc-dedication-intro):not(.lgc-intro-finished) .lgc-dedication,
.lgc-card-inside:has(.lgc-dedication-intro):not(.lgc-intro-finished) .lgc-photo-show {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(12px) !important;
}

.lgc-card-inside.lgc-intro-finished .lgc-dedication,
.lgc-card-inside.lgc-intro-finished .lgc-photo-show {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

/* Fallback for browsers without :has support */
.lgc-card-inside.lgc-intro-running .lgc-dedication,
.lgc-card-inside.lgc-intro-running .lgc-photo-show {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
