/* ================================================================
   Custom overrides for Love Hmy 1.0.0
   ================================================================ */

/* ── Body ── */
body.lgnewui-home { padding-top: 0; }
@media (max-width: 768px) {
    body.lgnewui-home { padding-bottom: 90px; }

    html,
    body,
    body.lgnewui-home,
    body.bg-pdot-vignette {
        background-color: transparent !important;
        background-image: none !important;
        position: relative;
        min-height: 100vh;
    }

    body.bg-pdot-vignette::before {
        display: none !important;
    }

    .lg-mobile-bg-layer {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 0;
        pointer-events: none;
        background-color: #f8edf4;
        background-image: url('../img/mobile-bg.jpg');
        background-repeat: no-repeat;
        background-position: center top;
        background-size: cover;
        background-attachment: scroll;
        min-height: 100svh;
        transform: translateZ(0);
        opacity: 1;
    }

    body.bg-pdot-vignette .lgnewui-container {
        position: relative;
        z-index: 1;
        background: transparent !important;
    }

    body.bg-pdot-vignette .lgnewui-container::before {
        content: '';
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        border-radius: 28px;
        background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,248,252,0.40) 18%, rgba(255,248,252,0.62) 42%, rgba(255,250,252,0.76) 100%);
    }

    .header-wrap,
    .bg-wrap.central.limg,
    .lgnewui-container,
    .footer-warp,
    .lgnewui-mobile-nav-root {
        position: relative;
        z-index: 1;
    }
}

/* ================================================================
   Header Wrap
   ================================================================ */
.header-wrap {
    --lg-header-glass-bg: rgba(255, 253, 250, 0.68);
    --lg-header-glass-blur: saturate(160%) blur(18px);
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    background: var(--lg-header-glass-bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 1px solid rgba(0,0,0,0.03);
    transition: background 0.3s ease, box-shadow 0.3s ease;
}
.header-wrap.is-scrolled {
    background: rgba(255,255,255,0.88);
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}

.header {
    display: flex; align-items: center; justify-content: center;
    height: 56px; padding: 0 6%;
    position: relative;
    max-width: 1200px; margin: 0 auto;
}

/* ── Center Logo ── */
.logo h1 { margin: 0; font-size: 1rem; }
.alogo {
    color: #181818 !important;
    text-shadow: 0 2px 4px rgba(0,0,0,0.15);
    font-weight: 900; letter-spacing: 0.05em;
    text-decoration: none; display: inline-block;
    transition: color 0.3s ease, text-shadow 0.3s ease, opacity 0.3s ease, transform 0.35s cubic-bezier(0.34,1.56,0.64,1);
}
.alogo.lgnewui-logo-faded {
    opacity: 0.3; transform: scale(0.92);
}

/* ── Left: Stuck Logo (scroll reveal) ── */
.lgnewui-header-left-avatar {
    position: absolute; left: 6%; top: 50%;
    transform: translateY(-50%) translateX(-20px) scale(0.9);
    opacity: 0; pointer-events: none; z-index: 10;
    background: none; backdrop-filter: none; -webkit-backdrop-filter: none;
    padding: 0; border: none; box-shadow: none;
    display: flex; align-items: center; gap: 8px;
    transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1), opacity 0.3s ease;
}
.lgnewui-header-left-avatar.lgnewui-avatar-visible {
    opacity: 1; transform: translateY(-50%) translateX(0) scale(1);
    pointer-events: auto;
}

.stuck-logo { display: flex; align-items: center; }
.stuck-logo--en-v7 { gap: 0; }
.stuck-logo--en-v7 .stuck-logo__name {
    font-family: 'Dancing Script', cursive; font-size: 24px; color: #1e293b;
    padding: 0 8px; line-height: 1;
}
.stuck-logo--en-v7 .stuck-logo__redline-l,
.stuck-logo--en-v7 .stuck-logo__redline-r {
    width: 18px; height: 1px;
}
.stuck-logo--en-v7 .stuck-logo__redline-l { background: linear-gradient(to right, transparent, #f87171); }
.stuck-logo--en-v7 .stuck-logo__redline-r { background: linear-gradient(to left, transparent, #f87171); }
.stuck-logo--en-v7 .stuck-logo__heart {
    color: #ef4444; margin: 0 8px; display: flex; align-items: center;
    animation: stuckHeartPulse 2s ease-in-out infinite;
}
@keyframes stuckHeartPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); }
}

/* ── Right: Weather, Map, Avatars (scroll reveal) ── */
.lgnewui-header-actions {
    position: absolute; right: 6%; top: 50%;
    transform: translateY(-50%) translateX(20px) scale(0.9);
    display: flex; align-items: center; gap: 24px;
    opacity: 0; pointer-events: none; z-index: 10;
    transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1), opacity 0.3s ease;
}
.lgnewui-header-actions.lgnewui-actions-visible {
    opacity: 1; transform: translateY(-50%) translateX(0) scale(1);
    pointer-events: auto;
}

.lgnewui-header-weather,
.lgnewui-header-map {
    display: flex; align-items: center; gap: 6px;
    background: rgba(255,255,255,0.85);
    border-radius: 50px; padding: 6px 12px 6px 8px;
    cursor: pointer; text-decoration: none; border: none;
    transition: all 0.2s ease;
    font-family: 'Inter', sans-serif;
}
.lgnewui-header-weather:hover,
.lgnewui-header-map:hover {
    background: rgba(255,255,255,0.95);
}
.lgnewui-header-weather-icon-wrap,
.lgnewui-header-map-icon-wrap {
    position: relative;
    width: 28px; height: 28px; border-radius: 50%;
    background: radial-gradient(circle at 34% 24%, #fff 0 20%, rgba(255,255,255,0) 21%), linear-gradient(135deg, #ffe4ec 0%, #ffd7b5 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.86), 0 6px 14px rgba(232,83,108,0.18);
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
}
.lgnewui-header-weather-icon,
.lgnewui-header-map-icon-wrap i { position: absolute; line-height: 1; }
.lgnewui-header-map-icon-base { font-size: 17px; color: #9a7488; opacity: 0.92; }
.lgnewui-header-map-icon-pin { right: 4px; bottom: 3px; font-size: 11px; color: #e8536c; filter: drop-shadow(0 2px 4px rgba(232,83,108,0.28)); }
.lgnewui-header-weather-text,
.lgnewui-header-map-text {
    font-size: 13px; font-weight: 700; color: #7f5f70;
}

.lgnewui-header-divider {
    width: 1px; height: 18px;
    background: linear-gradient(to bottom, transparent, rgba(255,255,255,0.8), transparent);
}

/* ── Couple Avatars in header ── */
.lgnewui-couple-avatars-right {
    display: flex; align-items: center; position: relative; cursor: pointer;
}
.lgnewui-avatar-group {
    display: flex; align-items: center; position: relative;
    background: rgba(0,0,0,0.04); padding: 4px; border-radius: 30px;
    transition: transform 0.5s cubic-bezier(0.23,1,0.32,1);
}
.lgnewui-avatar-group:hover { background: rgba(0,0,0,0.06); }
.lgnewui-avatar-group img {
    width: 32px; height: 32px; border-radius: 50%; object-fit: cover;
    border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.lgnewui-avatar-group .avatar-male { z-index: 2; }
.lgnewui-avatar-group .avatar-female { margin-left: -10px; z-index: 1; }
.lgnewui-right-heart {
    position: absolute; left: 50%; top: 50%;
    transform: translate(-50%, -50%);
    width: 8px; height: 8px;
    background: linear-gradient(135deg, #ff94aa, #ea3a5d);
    border-radius: 50%; z-index: 5; pointer-events: none;
    box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(245,158,11,0.4);
}
.lgnewui-couple-avatars-right:hover .lgnewui-avatar-group { transform: scale(1.08); }
.lgnewui-couple-avatars-right:hover .lgnewui-right-heart { transform: translate(-50%,-50%) scale(1.2); }

/* ── Large screen header margins ── */
@media screen and (min-width: 1600px) {
    .header { max-width: 1400px; }
    .lgnewui-header-left-avatar { left: 100px; }
    .lgnewui-header-actions { right: 100px; }
}

/* ================================================================
   Mobile Header
   ================================================================ */
@media (max-width: 768px) {
    .lgnewui-header-left-avatar { display: none !important; }

    .header { justify-content: flex-end !important; }

    .header .logo {
        position: absolute !important; left: 16px !important;
        transform: none !important;
    }

    .lgnewui-couple-avatars-right,
    .lgnewui-header-divider { display: none !important; }

    .alogo.lgnewui-logo-faded { opacity: 1 !important; transform: none !important; }

    .lgnewui-header-actions {
        opacity: 1 !important; pointer-events: auto !important;
        transform: translateY(-50%) !important;
        gap: 6px !important;
    }

    .lgnewui-header-weather,
    .lgnewui-header-map {
        background: rgba(0,0,0,0.04);
        padding: 4px 8px 4px 4px;
    }
    .lgnewui-header-weather-icon-wrap,
    .lgnewui-header-map-icon-wrap {
        width: 26px; height: 26px; border-radius: 50%;
        background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(255,255,255,0.58));
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.92), 0 4px 10px rgba(15,23,42,0.04);
    }
    .lgnewui-header-weather-text,
    .lgnewui-header-map-text { font-size: 12px; }

    .header-wrap {
        --lg-header-glass-bg: rgba(255,255,255,0.65);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}

/* ================================================================
   Nav Island (desktop)
   ================================================================ */
.lgnewui-nav-wrapper { top: 56px !important; }
.lgnewui-nav-island-item.active,
.lgnewui-nav-island-item.active.nav-home {
    background-color: rgb(248, 114, 113) !important;
    color: #fff !important;
}
.lgnewui-nav-island-item.active i { color: #fff !important; }

/* ================================================================
   Hero: Background & Wrapper
   ================================================================ */
.bg-wrap.central.limg {
    position: relative; z-index: 150 !important;
    overflow: hidden;
    max-width: none; margin: 0; padding: 0;
}
/* decorative floating dots above the wave */
.bg-wrap.central.limg::after {
    content: ''; position: absolute; bottom: 50px; left: 0; right: 0; height: 120px;
    z-index: 8; pointer-events: none;
    background:
        radial-gradient(2px 2px at 15% 60%, rgba(255,255,255,0.6) 50%, transparent 50%),
        radial-gradient(2px 2px at 28% 40%, rgba(255,255,255,0.4) 50%, transparent 50%),
        radial-gradient(1.5px 1.5px at 42% 75%, rgba(255,255,255,0.5) 50%, transparent 50%),
        radial-gradient(2px 2px at 58% 35%, rgba(255,255,255,0.45) 50%, transparent 50%),
        radial-gradient(1.5px 1.5px at 72% 65%, rgba(255,255,255,0.55) 50%, transparent 50%),
        radial-gradient(2px 2px at 85% 50%, rgba(255,255,255,0.4) 50%, transparent 50%),
        radial-gradient(1px 1px at 10% 30%, rgba(255,255,255,0.35) 50%, transparent 50%),
        radial-gradient(1px 1px at 50% 55%, rgba(255,255,255,0.3) 50%, transparent 50%),
        radial-gradient(1.5px 1.5px at 90% 70%, rgba(255,255,255,0.4) 50%, transparent 50%);
    animation: dotsFloat 6s ease-in-out infinite;
    opacity: 0;
    transition: opacity 1.5s ease;
}
body.lgnewui-home .bg-wrap.central.limg::after { opacity: 1; }
@keyframes dotsFloat {
    0%, 100% { transform: translateY(0); }
    33% { transform: translateY(-6px); }
    66% { transform: translateY(3px); }
}

.bg-wrap.central.limg .bg-img {
    position: relative; width: 100%; max-width: none;
    min-height: 60vh;
    background-size: cover !important;
    background-position: 50% 50% !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed;
    display: flex; align-items: center; justify-content: center;
}
@media (min-width: 1200px) {
    .bg-wrap.central.limg .bg-img { min-height: 70vh; }
}
@media (max-width: 768px) {
    .bg-wrap.central.limg .bg-img {
        min-height: 55vh;
        background-attachment: scroll;
        background-position: 50% 28% !important;
    }

    .bg-wrap.central.limg::after {
        display: none;
    }

    .bg-img::before {
        background: linear-gradient(
            to bottom,
            rgba(28, 20, 35, 0.12) 0%,
            rgba(28, 20, 35, 0.02) 34%,
            rgba(255, 244, 250, 0.02) 60%,
            rgba(255, 246, 251, 0.16) 84%,
            rgba(255, 249, 252, 0.24) 100%
        );
    }
}
@media (max-width: 480px) {
    .bg-wrap.central.limg .bg-img { min-height: 58vh; }
}

/* gradient overlay on bg-img */
.bg-img::before {
    content: ''; position: absolute; inset: 0;
    z-index: 1; pointer-events: none;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.18) 0%,
        rgba(0,0,0,0.05) 30%,
        rgba(0,0,0,0.00) 55%,
        rgba(0,0,0,0.12) 80%,
        rgba(0,0,0,0.28) 100%
    );
}

/* ================================================================
   Middle: avatars + love icon
   ================================================================ */
.middle {
    display: flex; justify-content: center; align-items: center;
    gap: 0.75rem; padding: 0 0.25rem;
    position: relative; z-index: 5;
    width: 100%; max-width: 800px; margin: 0 auto;
}
@media (max-width: 640px)  { .middle { gap: 0.5rem; padding: 0 0.25rem; } }
@media (min-width: 769px)  { .middle { gap: 1.75rem; padding: 0 1rem; } }
@media (min-width: 1200px) { .middle { gap: 2.25rem; max-width: 900px; } }

.bg-wrap.central.limg[data-avatar-swap="1"] .middle {
    flex-direction: row-reverse;
}

/* ================================================================
   img-male / img-female
   ================================================================ */
.img-male, .img-female {
    display: flex; flex-direction: column; align-items: center;
    gap: 0.5rem; position: relative; z-index: 5;
    pointer-events: auto;
}
@media (min-width: 769px) { .img-male, .img-female { gap: 0.85rem; } }

/* ================================================================
   avatarArea
   ================================================================ */
.avatarArea {
    position: relative;
    width: 88px; height: 88px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
.avatarArea::after {
    content: ''; position: absolute; inset: -8px; border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.20) 0%, rgba(255,255,255,0.04) 50%, transparent 70%);
    z-index: 0; pointer-events: none;
}
.avatarArea:hover { transform: scale(1.05); }
.avatarArea:hover::after {
    background: radial-gradient(circle, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.08) 50%, transparent 70%);
}
@media (min-width: 769px)  { .avatarArea { width: 128px; height: 128px; } }
@media (min-width: 1200px) { .avatarArea { width: 148px; height: 148px; } }

/* avatar image */
.avatarArea .aiv_touxiang {
    width: 100%; height: 100%; border-radius: 50%;
    object-fit: cover; border: 3px solid rgba(255,255,255,0.92);
    box-shadow: 0 6px 24px rgba(0,0,0,0.18);
    position: relative; z-index: 1;
    opacity: 1 !important; filter: none !important;
}

/* avatar frame (decorative ring overlay) */
.avatarArea .avatarFrame {
    position: absolute;
    top: 50% !important; left: 50% !important;
    transform: translate(-50%,-50%) scale(1.48) !important;
    width: 100%; height: 100%;
    pointer-events: none; z-index: 3;
    object-fit: contain;
}

/* ── Avatar Mask: hover overlay ── */
.lgewui-head-avatar-mask {
    position: absolute; inset: 0; z-index: 4;
    pointer-events: none; display: flex; flex-direction: column;
    align-items: center; justify-content: center; opacity: 0;
    border-radius: 50%; overflow: hidden;
    background: rgba(0,0,0,0.38);
    transition: opacity 0.3s ease;
}
.avatarArea:hover .lgewui-head-avatar-mask { opacity: 1; }

.lgewui-head-avatar-top,
.lgewui-head-avatar-bottom { opacity: 0.9; }
.lgewui-head-avatar-middle {
    display: flex; align-items: center; gap: 4px; margin: 3px 0;
}
.lgewui-head-avatar-gender-icon { display: flex; }
.lgewui-head-avatar-gender-icon i {
    width: 15px; height: 15px; stroke-width: 2.5;
}
.lgewui-head-avatar-gender-icon[data-gender="male"] i   { color: #60a5fa; }
.lgewui-head-avatar-gender-icon[data-gender="female"] i { color: #f472b6; }
.lgewui-head-avatar-status-text {
    display: flex; align-items: center; gap: 3px;
    font-size: 10px; color: #fff; font-weight: 600;
}
.lgewui-head-avatar-status-text em { font-style: normal; }
.lgewui-head-avatar-icon-online  { width: 11px; height: 11px; color: #97A89E; }
.lgewui-head-avatar-icon-offline { width: 11px; height: 11px; color: #9ca3af; }
.lgewui-head-avatar-divider {
    width: 1px; height: 10px; background: rgba(255,255,255,0.3);
    margin: 0 3px;
}
.lgewui-head-avatar-location {
    display: flex; align-items: center; gap: 3px;
    font-size: 10px; color: #fff; font-weight: 500;
}
.lgewui-head-avatar-location i { width: 11px; height: 11px; color: #D4A8B8; }
.lgewui-head-avatar-location em { font-style: normal; }

/* ================================================================
   Name shadow blur
   ================================================================ */
.shadow-blur {
    font-size: 0.7rem; font-weight: 600;
    color: rgba(255,255,255,0.92);
    letter-spacing: 0.06em;
    text-shadow: 0 1px 3px rgba(0,0,0,0.25);
    font-family: 'Noto Serif SC', serif;
}
@media (min-width: 769px) { .shadow-blur { font-size: 0.82rem; } }

/* ================================================================
   Love Icon (heart between avatars)
   ================================================================ */
.bg-wrap .love-icon {
    position: relative; z-index: 200 !important;
    display: flex; flex-direction: column; align-items: center;
}
.bg-wrap .love-icon > img {
    width: 30px; height: 30px; cursor: pointer !important;
    transition: filter 0.3s ease, transform 0.15s ease;
    pointer-events: auto !important;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.12));
    animation: loveBeat 1.5s ease-in-out infinite;
}
@media (min-width: 769px) { .bg-wrap .love-icon > img { width: 34px; height: 34px; } }
@keyframes loveBeat {
    0%, 100% { transform: scale(1); }
    15% { transform: scale(1.18); }
    30% { transform: scale(1); }
    45% { transform: scale(1.1); }
    60% { transform: scale(1); }
}
.bg-wrap .love-icon > img:hover {
    filter: drop-shadow(0 0 15px rgba(252,93,121,0.8)) drop-shadow(0 0 25px rgba(252,93,121,0.5)) brightness(1.1);
}
.bg-wrap .love-icon > img:active {
    transform: scale(0.95);
    filter: drop-shadow(0 0 20px rgba(252,93,121,1)) brightness(1.2);
}

/* ================================================================
   Distance Bubble
   ================================================================ */
.love-info-wrapper {
    position: absolute; top: -5rem; left: 50%;
    transform: translateX(-50%); z-index: 50;
    text-align: center; pointer-events: none;
}
@media (min-width: 769px) { .love-info-wrapper { top: -6.5rem; } }
@media (max-width: 768px) { .love-info-wrapper { top: -4.8rem; } }
.love-info-wrapper .distance-bubble { pointer-events: auto; }

.distance-bubble {
    display: flex; align-items: center;
    background: rgba(40, 30, 20, 0.32);
    backdrop-filter: none; -webkit-backdrop-filter: none;
    border-radius: 14px; padding: 6px; padding-right: 16px;
    border: 1px solid rgba(255, 255, 255, 0.10);
    white-space: nowrap; cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
    user-select: none; -webkit-user-select: none;
    font-family: 'Noto Serif SC', serif;
}
@media (max-width: 768px) {
    .distance-bubble { padding: 5px; padding-right: 12px; border-radius: 12px; }
}
.distance-bubble:hover {
    background: rgba(40, 30, 20, 0.46);
    border: 1px solid rgba(255, 255, 255, 0.20);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

.distance-bubble .distance-icon-box {
    background: rgba(255, 255, 255, 0.14);
    width: 32px; height: 32px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
}
@media (max-width: 768px) {
    .distance-bubble .distance-icon-box { width: 26px; height: 26px; border-radius: 8px; }
}
.distance-bubble:hover .distance-icon-box {
    background: rgba(255, 255, 255, 0.24); transform: scale(1.05);
}

.distance-bubble i {
    font-size: 16px; color: #fff;
    transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
}
@media (max-width: 768px) { .distance-bubble i { font-size: 14px; } }
.distance-bubble:hover i { transform: rotate(45deg); }

.distance-bubble .distance-text {
    margin-left: 8px; color: #fff; font-size: 14px;
    display: flex; gap: 4px;
}
@media (max-width: 768px) {
    .distance-bubble .distance-text { margin-left: 7px; font-size: 12px; gap: 3px; }
}

.distance-bubble .distance-text-sm {
    font-weight: 400; opacity: 0.85;
    transition: opacity 0.3s ease;
}
.distance-bubble:hover .distance-text-sm { opacity: 1; }

.distance-bubble .km-value {
    font-weight: 700; font-family: 'Inter', sans-serif; font-size: 15px;
}
@media (max-width: 768px) { .distance-bubble .km-value { font-size: 13px; } }

/* bubble float animation */
.love-info-wrapper .distance-bubble {
    animation: bubbleFloat 4s ease-in-out infinite;
}
@keyframes bubbleFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

/* middle variant */
.middle .distance-bubble {
    background: rgba(40, 30, 20, 0.30);
    border: 1px solid rgba(255,255,255,0.12);
}
.middle .distance-bubble:hover {
    background: rgba(40, 30, 20, 0.42);
    border: 1px solid rgba(255,255,255,0.22);
}
.middle .distance-bubble .distance-icon-box { background: rgba(255,255,255,0.16); }
.middle .distance-bubble:hover .distance-icon-box { background: rgba(255,255,255,0.26); }

/* ================================================================
   Waves - reference site style SVG parallax
   ================================================================ */
.waves {
    position: absolute; bottom: 0; left: 0;
    z-index: 9;
    width: 100%; height: 7rem;
    margin-bottom: -10px;
    opacity: 0.95;
}
@media (min-width: 769px) {
    .waves { height: 10rem; margin-bottom: -15px; }
}
@media (max-width: 480px) {
    .waves { height: 5rem; }
}
.waves .parallax > use {
    animation: waveMove 25s cubic-bezier(0.55,0.5,0.45,0.5) infinite;
}
.waves .parallax > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s; }
.waves .parallax > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s; }
.waves .parallax > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s; }
.waves .parallax > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s; }
@keyframes waveMove {
    0% { transform: translate3d(-90px,0,0); }
    100% { transform: translate3d(85px,0,0); }
}

/* ================================================================
   Page Header
   ================================================================ */
.lgnewui-page-header { text-align: center; padding: 1.5rem 1rem 1rem; }
.lgnewui-page-header__tag {
    display: inline-block; font-family: 'Inter', sans-serif;
    font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em;
    text-transform: uppercase; color: #f87171; margin-bottom: 0.5rem;
    background: #fef2f2; padding: 0.25rem 0.75rem; border-radius: 999px;
}
.lgnewui-page-header__title { font-family: 'Noto Serif SC', serif; font-size: 1.75rem; font-weight: 700; color: #1e293b; }

/* ================================================================
   Fade-up Animation
   ================================================================ */
.lg-fade-up {
    opacity: 0; transform: translateY(30px);
    transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1),
                transform 0.7s cubic-bezier(0.16,1,0.3,1);
}
.lg-fade-up.is-visible { opacity: 1; transform: translateY(0); }
.lg-fade-up:nth-child(1) { transition-delay: 0s; }
.lg-fade-up:nth-child(2) { transition-delay: 0.08s; }
.lg-fade-up:nth-child(3) { transition-delay: 0.16s; }
.lg-fade-up:nth-child(4) { transition-delay: 0.24s; }
.lg-fade-up:nth-child(5) { transition-delay: 0.32s; }
.lg-fade-up:nth-child(6) { transition-delay: 0.4s; }
.lg-fade-up:nth-child(7) { transition-delay: 0.48s; }
.lg-fade-up:nth-child(8) { transition-delay: 0.56s; }

/* Hero fade-in */
@media (prefers-reduced-motion: no-preference) {
    .central { animation: fadeInHero 1s ease-out both; }
}
@keyframes fadeInHero {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ================================================================
   Container
   ================================================================ */
@media (max-width: 768px) {
    .lgnewui-container { padding: 1rem 0.75rem 5rem; }
}

/* ================================================================
   Footer
   ================================================================ */
.footer-warp {
    text-align: center; padding: 2rem 1rem 5rem;
    border-top: 1px solid rgba(0,0,0,0.06);
    margin-top: 2rem;
}
.footer { max-width: 600px; margin: 0 auto; }
.footer-nav {
    display: flex; justify-content: center; flex-wrap: wrap; gap: 1.25rem;
    margin-bottom: 0.75rem;
}
.footer-nav a {
    color: #9ca3af; font-size: 0.8rem; text-decoration: none;
    font-family: 'Inter', sans-serif; font-weight: 500;
    transition: color 0.2s ease;
}
.footer-nav a:hover { color: #4b5563; }
.footer p {
    color: #9ca3af; font-size: 0.7rem; margin: 0.25rem 0;
    font-family: 'Inter', sans-serif;
    display: flex; align-items: center; justify-content: center; gap: 4px;
}
.footer p img { width: 14px; height: 14px; vertical-align: middle; }
.footer p a { color: #9ca3af; text-decoration: none; }
@media (min-width: 769px) { .footer-warp { padding-bottom: 2rem; } }

@media (max-width: 768px) {
    .footer-warp {
        background: linear-gradient(180deg, rgba(255,250,252,0) 0%, rgba(255,250,252,0.08) 22%, rgba(255,250,252,0.22) 100%);
        border-top-color: rgba(120, 72, 108, 0.08);
    }

    .lgnewui-glass-panel {
        background: rgba(255, 250, 252, 0.36) !important;
        border: 1px solid rgba(255,255,255,0.34) !important;
        box-shadow: 0 10px 30px rgba(98, 64, 86, 0.04) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
}

/* ================================================================
   Mobile Nav (v5 floating pill)
   ================================================================ */
.lgnewui-mobile-nav-root { display: none; }
@media (max-width: 768px) {
    .lgnewui-mobile-nav-root {
        display: block;
        position: fixed; bottom: 0; left: 0; right: 0;
        z-index: 950; padding: 0 12px 16px;
    }
    .lgnewui-glass-panel {
        background: rgba(255,255,255,0.92);
        box-shadow: 0 -4px 30px rgba(0,0,0,0.1), 0 8px 40px rgba(0,0,0,0.06);
    }
    #nav-music { z-index: 948 !important; bottom: 80px !important; }
}

.lgnewui-glass-panel {
    background: rgba(255,255,255,0.85);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid rgba(255,255,255,0.9);
    border-radius: 24px;
    box-shadow: 0 -4px 24px rgba(0,0,0,0.08), 0 8px 32px rgba(0,0,0,0.06);
}

.lgnewui-tab-template-v5-container {
    position: fixed;
    bottom: 20px; left: 50%;
    transform: translateX(-50%);
    height: 56px; border-radius: 32px;
    display: flex; align-items: center;
    padding: 0 8px;
    z-index: 100;
    max-width: calc(100% - 40px);
}
@media (min-width: 769px) {
    .lgnewui-tab-template-v5-container { display: none; }
}

.lgnewui-tab-template-v5-indicator {
    position: absolute;
    top: 7px; bottom: 7px;
    background: #1d1d1f;
    border-radius: 50%;
    z-index: 1;
    transition: left 0.4s cubic-bezier(0.34,1.56,0.64,1),
                width 0.4s cubic-bezier(0.34,1.56,0.64,1);
    pointer-events: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.lgnewui-base-nav-item {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 0; border-radius: 50%;
    text-decoration: none; color: #8e8e93;
    font-size: 0.6rem; font-weight: 500;
    font-family: 'Inter', sans-serif;
    position: relative; z-index: 2;
    transition: color 0.25s ease;
    width: 44px; height: 44px;
    flex-shrink: 0;
}
.lgnewui-base-nav-item i { font-size: 22px; display: flex; }
.lgnewui-base-nav-item.active { color: #fff; }
.lgnewui-base-nav-item:hover { color: #1f2937; }

/* ================================================================
   Texture Overlay
   ================================================================ */
body.lgnewui-home::before {
    content: ''; position: fixed; inset: 0; z-index: 9999; pointer-events: none;
    background: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E");
}

/* ================================================================
   Card hover lift
   ================================================================ */
.lgnewui-day-fusion-card,
.lgnewui-event-card,
.lgnewui-journal-card,
.lgnewui-home-message-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.lgnewui-day-fusion-card:hover,
.lgnewui-event-card:hover,
.lgnewui-journal-card:hover,
.lgnewui-home-message-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.08);
}

/* ================================================================
   Utility
   ================================================================ */
html { scroll-behavior: smooth; }

/* ================================================================
   Page (page.php) — Article Detail
   ================================================================ */

/* ================================================================
   Page (page.php) — Article Detail — Reference-site inspired design
   ================================================================ */

/* ---- back link ---- */
.pg-back {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.78rem; color: #9ca3af; text-decoration: none;
    margin-bottom: 1rem; font-weight: 500;
    transition: color 0.2s;
}
.pg-back:hover { color: #ec4899; }
.pg-back i { font-size: 0.65rem; }

/* ---- card base ---- */
.pg-card {
    background: rgba(255,255,255,0.82);
    backdrop-filter: none; -webkit-backdrop-filter: none;
    border: 1px solid rgba(0,0,0,0.04);
    border-radius: 1rem;
    box-shadow: 0 20px 40px -20px rgba(0,0,0,0.05);
    margin-bottom: 1.25rem;
    overflow: hidden;
    position: relative;
}

/* ---- Header Card ---- */
.pg-card-hd {
    padding: 2rem 1.5rem 1.5rem;
    text-align: center;
}
.pg-hd-blob {
    position: absolute; border-radius: 50%; filter: none;
    opacity: 0.5; pointer-events: none; z-index: 0;
}
.pg-hd-blob-l { width: 11rem; height: 11rem; background: #93c5fd; left: -3rem; top: -3rem; }
.pg-hd-blob-r { width: 9rem; height: 9rem; background: #e9d5ff; right: -2rem; bottom: 2rem; }
.pg-hd-watermark {
    position: absolute; top: 1.2rem; right: 1.5rem;
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.75rem; color: #111827; opacity: 0.06;
    pointer-events: none; z-index: 0;
    font-weight: 700; letter-spacing: 0.05em;
}
.pg-hd-watermark i { font-size: 1.2rem; }

/* date capsule */
.pg-date-capsule {
    position: relative; z-index: 1;
    display: inline-flex; align-items: center; gap: 0;
    background: #18181b; border-radius: 9999px;
    padding: 0.1rem 0.1rem 0.1rem 0.55rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.15), 0 4px 6px -2px rgba(0,0,0,0.08);
    border: 1px solid rgba(200,160,130,0.08);
}
.pg-date-capsule-left {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding-right: 0.45rem;
}
.pg-date-capsule-left i {
    font-size: 0.65rem; color: rgba(255,255,255,0.4);
}
.pg-date-yr, .pg-date-mo {
    font-size: 0.9rem; font-weight: 700; color: rgba(255,255,255,0.55);
    font-family: 'Inter', sans-serif;
}
.pg-date-div {
    width: 1px; height: 1.1rem;
    background: linear-gradient(180deg,transparent,rgba(255,255,255,0.35),transparent);
}
.pg-date-circle {
    width: 1.75rem; height: 1.75rem; border-radius: 50%;
    background: #3f3f46; display: flex; align-items: center; justify-content: center;
    font-size: 0.875rem; font-weight: 800; color: #fff;
    border: 1px solid rgba(255,255,255,0.15);
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.2);
    font-family: 'Inter', sans-serif;
}
.pg-date-time {
    font-size: 0.72rem; color: #9ca3af; margin-bottom: 1rem;
    font-family: 'Inter', monospace; letter-spacing: 0.03em;
}
.pg-date-time i { margin-right: 0.3rem; font-size: 0.65rem; }

/* title */
.pg-title {
    position: relative; z-index: 1;
    font-size: 1.6rem; font-weight: 900; color: #111827;
    letter-spacing: -0.025em; line-height: 1.2;
    margin: 0 0 1.5rem;
    font-family: 'Crimson Pro', 'Noto Serif SC', Georgia, serif;
    max-width: 56rem; margin-left: auto; margin-right: auto;
}

/* author */
.pg-author {
    position: relative; z-index: 1;
    border-top: 1px solid #f3f4f6; padding-top: 1.25rem;
    display: flex; align-items: center; gap: 0.75rem;
    margin-bottom: 1rem;
}
.pg-author-avatar {
    flex-shrink: 0; width: 2.6rem; height: 2.6rem; border-radius: 50%;
    overflow: hidden; border: 2px solid #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.pg-author-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pg-author-info { text-align: left; min-width: 0; }
.pg-author-name {
    display: block; font-size: 1rem; font-weight: 700; color: #111827;
    font-family: 'Dancing Script', 'Noto Serif SC', cursive;
    line-height: 1.3;
}
.pg-author-meta {
    display: block; font-size: 0.75rem; color: #9ca3af;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* DAY stamp */
.pg-day-stamp {
    position: relative; z-index: 1;
    display: inline-flex; align-items: center; gap: 0.45rem;
    background: #18181b; border-radius: 9999px;
    padding: 0.35rem 0.75rem;
    transition: transform 0.2s, box-shadow 0.2s;
    box-shadow: 0 8px 20px -4px rgba(0,0,0,0.12), 0 3px 5px -1px rgba(0,0,0,0.06);
}
.pg-day-stamp:hover { transform: translateY(-1px); box-shadow: 0 12px 28px -6px rgba(0,0,0,0.18); }
.pg-day-stamp > span:first-child {
    font-size: 0.75rem; font-weight: 600; color: rgba(255,255,255,0.5);
    letter-spacing: 0.12em; font-family: 'Inter', sans-serif;
}
.pg-day-stamp-div {
    width: 1px; height: 1rem;
    background: rgba(255,255,255,0.15);
}
.pg-day-stamp i { font-size: 0.8rem; color: #f472b6; }
.pg-day-stamp > span:last-child {
    font-size: 0.85rem; font-weight: 700; color: #fff;
    font-family: 'Inter', sans-serif;
}

/* ---- Metadata Row ---- */
.pg-card-meta {
    display: flex; align-items: center; flex-wrap: wrap; gap: 0.65rem;
    padding: 0.6rem 1.2rem;
}
.pg-meta-item {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.78rem; color: #9f9f9f; font-weight: 500;
    padding: 0.15rem 0.65rem 0.15rem 0.15rem;
    border-radius: 9999px; background: #f9fafb;
    transition: background 0.2s;
}
.pg-meta-item:hover { background: #f3f4f6; }
.pg-meta-icon {
    width: 1.5rem; height: 1.5rem; border-radius: 50%;
    background: #fff; display: flex; align-items: center; justify-content: center;
    color: #9ca3af; font-size: 0.7rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: color 0.2s;
}
.pg-meta-item:hover .pg-meta-icon { color: #4b5563; }
.pg-meta-item:hover > span:last-child { color: #374151; }
.pg-meta-item a { color: inherit; text-decoration: none; }

/* ---- Article Body ---- */
.pg-card-body {
    padding: 2rem 1.5rem;
}

/* body content typography (matches reference site) */
.pg-body-content {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 1.05rem; line-height: 1.85; color: #2d3748;
    font-weight: 300; letter-spacing: 0.01em;
}
.pg-body-content p { margin-bottom: 1.5em; }
.pg-body-content p:first-of-type::first-letter {
    font-size: 3rem; font-weight: 700; color: #1a202c;
    font-family: 'Libre Baskerville', Georgia, serif;
    float: left; line-height: 0.85; margin-right: 0.1em;
    margin-top: 0.05em;
}
.pg-body-content h1 { font-size: 1.6rem; font-weight: 700; color: #1a202c; letter-spacing: -0.02em; margin: 1.6rem 0 0.7rem; }
.pg-body-content h2 { font-size: 1.3rem; font-weight: 700; color: #1a202c; margin: 1.5rem 0 0.6rem; }
.pg-body-content h3 { font-size: 1.15rem; font-weight: 400; color: #2d3748; margin: 1.4rem 0 0.5rem; }
.pg-body-content h4 { font-size: 1.05rem; font-weight: 500; color: #2d3748; margin: 1.3rem 0 0.45rem; }
.pg-body-content h5 { font-size: 0.95rem; font-weight: 400; color: #4a5568; margin: 1.2rem 0 0.4rem; }
.pg-body-content h6 { font-size: 0.85rem; font-weight: 400; color: #718096; font-family: monospace; margin: 1.1rem 0 0.35rem; }

.pg-body-content a {
    color: #007AFF; text-decoration: none;
    position: relative;
    transition: color 0.2s;
}
.pg-body-content a:hover { color: #69b7ff; }

.pg-body-content blockquote {
    margin: 1.2rem 0; padding: 0.8rem 1rem;
    background: #f5f5f5; border-radius: 10px; color: #747474;
    border: none; position: relative;
}
.pg-body-content blockquote::before {
    content: '\f10d'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
    font-size: 2rem; color: #d7d6d6; display: block;
    margin-bottom: 0.3rem; line-height: 1;
}

.pg-body-content code {
    background: rgba(226,132,44,0.08); color: #e2842c;
    padding: 2px 6px; border-radius: 6px; font-size: 0.85em;
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
}
.pg-body-content pre {
    background: #1f2937; color: #e5e7eb; padding: 1.2rem;
    border-radius: 0.75rem; font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 0.85rem; line-height: 1.7; overflow-x: auto;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}
.pg-body-content pre code {
    background: none; color: inherit; padding: 0; border-radius: 0; font-size: inherit;
}

.pg-body-content img {
    max-width: 100%; border-radius: 0.75rem; display: block;
    margin: 1.5rem auto; transition: transform 0.3s, box-shadow 0.3s;
}
.pg-body-content img:hover { transform: scale(1.01); box-shadow: 0 8px 25px rgba(0,0,0,0.1); }

.pg-body-content ul, .pg-body-content ol {
    padding-left: 1.5rem; margin-bottom: 1.5rem;
}
.pg-body-content li { margin-bottom: 0.5rem; line-height: 1.8; }
.pg-body-content li::marker { color: #9ca3af; }

.pg-body-content strong, .pg-body-content b { color: #111827; font-weight: 600; }
.pg-body-content em, .pg-body-content i { font-style: italic; }

.pg-body-content hr {
    border: none; height: 1.2rem; margin: 1.5rem 0;
    position: relative; display: flex; align-items: center; justify-content: center;
    background: none;
}
.pg-body-content hr::before {
    content: '\f498'; font-family: 'Remix Icon'; color: #f472b6;
    font-size: 0.9rem;
}
.pg-body-content hr::after {
    content: ''; position: absolute; left: 0; right: 0; top: 50%;
    height: 1px;
    background: linear-gradient(90deg,transparent,#e5e7eb 30%,#e5e7eb 70%,transparent);
    z-index: -1;
}

/* ---- End Marker ---- */
.pg-end {
    display: flex; align-items: center; justify-content: center; gap: 0.8rem;
    margin: 0.5rem 0 2rem;
}
.pg-end-line { flex: 1; max-width: 3rem; height: 1px; background: linear-gradient(90deg,transparent,#d1d5db,transparent); }
.pg-end-icon {
    width: 2rem; height: 2rem; border-radius: 50%;
    background: rgba(255,255,255,0.7); border: 1px solid rgba(0,0,0,0.04);
    display: flex; align-items: center; justify-content: center;
    color: #f472b6; font-size: 0.75rem;
}

/* ---- Prev / Next Navigation ---- */
.pg-nav {
    display: grid; grid-template-columns: 1fr; gap: 0.8rem;
    margin-bottom: 2rem;
}
@media (min-width: 640px) { .pg-nav { grid-template-columns: 1fr 1fr; } }
.pg-nav-card {
    display: block; background: #f9fafb; border-radius: 1rem; padding: 0.9rem 1rem;
    text-decoration: none; transition: background 0.2s;
}
.pg-nav-card:hover { background: #f3f4f6; }
.pg-nav-card-next { text-align: right; }
.pg-nav-card-hd {
    display: flex; align-items: center; gap: 0.35rem;
    font-size: 0.82rem; color: #9ca3af; margin-bottom: 0.35rem;
}
.pg-nav-card-hd i { font-size: 0.7rem; transition: transform 0.2s; }
.pg-nav-card:hover .pg-nav-card-hd i.fa-arrow-left,
.pg-nav-card:hover .pg-nav-card-hd .ph-arrow-left { transform: translateX(-0.25rem); }
.pg-nav-card:hover .pg-nav-card-hd i.fa-arrow-right,
.pg-nav-card:hover .pg-nav-card-hd .ph-arrow-right { transform: translateX(0.25rem); }
.pg-nav-card-next .pg-nav-card-hd { justify-content: flex-end; }
.pg-nav-card-title {
    font-size: 0.9rem; font-weight: 500; color: #1f2937;
    margin-bottom: 0.4rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    transition: color 0.2s;
}
.pg-nav-card:hover .pg-nav-card-title { color: #111827; }
.pg-nav-card-ft {
    font-size: 0.78rem; color: #9ca3af;
    display: flex; align-items: center; gap: 0.25rem;
}
.pg-nav-card-next .pg-nav-card-ft { justify-content: flex-end; }
.pg-nav-card-author { color: inherit; }

/* responsive */
@media (min-width: 640px) {
    .pg-card-hd { padding: 2.5rem 2rem 2rem; }
    .pg-card-body { padding: 2.5rem 2rem; }
    .pg-title { font-size: 2rem; }
    .pg-body-content { font-size: 1.1rem; }
}
@media (min-width: 1024px) {
    .pg-container-grid { display: grid; grid-template-columns: 1fr 18rem; gap: 1.5rem; align-items: start; }
    .pg-title { font-size: 2.25rem; }
    .pg-body-content { font-size: 1.15rem; line-height: 1.85; }
}


/* ================================================================
   Leaving (leaving.php) — Guestbook
   ================================================================ */

/* header */
.leaving-header {
    text-align: center;
    margin-bottom: 2.2rem;
}
.leaving-header-label {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: #ec4899;
    text-transform: uppercase;
    margin-bottom: 0.6rem;
    padding: 0.15rem 0.6rem;
    border-radius: 3px;
    background: linear-gradient(135deg,rgba(236,72,153,0.08),rgba(244,114,182,0.04));
    border-left: 2px solid #f9a8d4;
}
.leaving-header-title {
    margin: 0 0 0.8rem;
    font-size: 1.55rem;
    font-weight: 700;
    color: #1f2937;
    display: inline-block;
    padding: 0.4rem 1.2rem;
    border-radius: 2.5rem;
    background: rgba(255,255,255,0.58);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    letter-spacing: 0.01em;
    position: relative;
}
.leaving-header-title::before {
    content: '';
    position: absolute;
    left: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 1.2rem;
    border-radius: 2px;
    background: linear-gradient(180deg,#f472b6,#fbcfe8);
}
.leaving-header-count {
    margin: 0;
    font-size: 0.82rem;
    color: #9ca3af;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.leaving-header-count-icon { font-size: 0.7rem; color: #f472b6; }
.leaving-header-count strong { color: #ec4899; font-weight: 700; font-size: 0.9rem; }
.leaving-header-count-note { color: #c4b5ad; font-size: 0.72rem; }

/* list */
.leaving-list {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    margin-bottom: 2rem;
}

/* card */
.leaving-card {
    background: rgba(255,255,255,0.74);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid rgba(0,0,0,0.04);
    border-radius: 1.1rem;
    box-shadow: 0 2px 20px rgba(0,0,0,0.02);
    transition: transform 0.25s cubic-bezier(0.16,1,0.3,1),
                box-shadow 0.25s cubic-bezier(0.16,1,0.3,1);
    position: relative;
    overflow: hidden;
}
.leaving-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 36px rgba(0,0,0,0.06);
}
.leaving-card-accent {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    opacity: 0.45;
    transition: opacity 0.3s;
    border-radius: 0 1px 1px 0;
}
.leaving-card:hover .leaving-card-accent { opacity: 0.8; }
.leaving-card--normal .leaving-card-accent { background: linear-gradient(180deg,#d1d5db,#e5e7eb,#d1d5db); }
.leaving-card--male .leaving-card-accent { background: linear-gradient(180deg,#f59e0b,#D4A8B8,#f59e0b); opacity: 0.55; }
.leaving-card--male:hover .leaving-card-accent { opacity: 1; }
.leaving-card--male { background: rgba(255,251,235,0.78); }
.leaving-card--female .leaving-card-accent { background: linear-gradient(180deg,#ec4899,#f472b6,#ec4899); opacity: 0.55; }
.leaving-card--female:hover .leaving-card-accent { opacity: 1; }
.leaving-card--female { background: rgba(253,242,248,0.78); }

.leaving-card-main {
    display: flex;
    gap: 0.9rem;
    padding: 1.3rem 1.4rem 1.1rem 1.4rem;
}
.leaving-card-avatar-wrap { flex-shrink: 0; }
.leaving-card-avatar {
    width: 2.6rem; height: 2.6rem;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 2px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.07);
    transition: transform 0.3s ease;
}
.leaving-card:hover .leaving-card-avatar { transform: scale(1.06); }
.leaving-card-body { flex: 1; min-width: 0; }
.leaving-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}
.leaving-card-top-left { display: flex; align-items: center; gap: 0.45rem; }
.leaving-card-name { font-size: 0.88rem; font-weight: 700; color: #1f2937; }
.leaving-card--male .leaving-card-name { color: #92400e; }
.leaving-card--female .leaving-card-name { color: #be185d; }
.leaving-card-badge {
    font-size: 0.58rem;
    font-weight: 700;
    padding: 0.1rem 0.5rem;
    border-radius: 2rem;
    letter-spacing: 0.04em;
    line-height: 1.45;
}
.leaving-card-badge.leaving-card--male { background: linear-gradient(135deg,#f59e0b,#d97706); color: #fff; }
.leaving-card-badge.leaving-card--female { background: linear-gradient(135deg,#ec4899,#db2777); color: #fff; }
.leaving-card-time {
    font-size: 0.68rem;
    color: #c4b5ad;
    display: flex;
    align-items: center;
    gap: 0.15rem;
    white-space: nowrap;
}
.leaving-card-time i { font-size: 0.6rem; }
.leaving-card-text {
    font-size: 0.9rem;
    line-height: 1.8;
    color: #4b5563;
    word-break: break-word;
    margin-bottom: 0.6rem;
}
.leaving-card-footer { display: flex; align-items: center; justify-content: space-between; }
.leaving-card-location { font-size: 0.68rem; color: #c4b5ad; display: flex; align-items: center; gap: 0.15rem; }
.leaving-card-location i { font-size: 0.6rem; }
.leaving-card-role {
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: #d1d5db;
    text-transform: uppercase;
}

/* empty state */
.leaving-empty {
    text-align: center;
    padding: 2.5rem 1rem;
    border: 1.5px dashed rgba(0,0,0,0.06);
    border-radius: 1.1rem;
    background: rgba(255,255,255,0.45);
}
.leaving-empty-icon { font-size: 1.8rem; color: #d1d5db; margin-bottom: 0.5rem; display: inline-block; }
.leaving-empty p { margin: 0; font-size: 0.82rem; color: #b0a8a0; }

/* form */
.leaving-form {
    background: rgba(255,255,255,0.72);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 1.35rem;
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-shadow: 0 8px 40px rgba(0,0,0,0.04);
}
.leaving-form-head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: #1f2937;
    margin-bottom: 1rem;
}
.leaving-form-head-icon {
    width: 1.5rem; height: 1.5rem;
    border-radius: 50%;
    background: linear-gradient(135deg,rgba(236,72,153,0.12),rgba(244,114,182,0.06));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    color: #ec4899;
}
.leaving-form-row { display: flex; gap: 0.75rem; align-items: flex-start; margin-bottom: 0.65rem; }
.leaving-form-avatar {
    width: 2.5rem; height: 2.5rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    margin-top: 0.15rem;
}
.leaving-form-inputs { flex: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.leaving-form-input {
    width: 100%;
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 0.7rem;
    font-size: 0.84rem;
    font-family: inherit;
    outline: none;
    background: rgba(255,255,255,0.75);
    transition: border-color 0.25s,box-shadow 0.25s,background 0.25s;
    box-sizing: border-box;
}
.leaving-form-input::placeholder { color: #c4b5ad; }
.leaving-form-input:focus {
    border-color: rgba(244,114,182,0.35);
    box-shadow: 0 0 0 3px rgba(244,114,182,0.05);
    background: #fff;
}
.leaving-form-textarea {
    width: 100%;
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 0.7rem;
    font-size: 0.84rem;
    font-family: inherit;
    outline: none;
    resize: vertical;
    min-height: 90px;
    background: rgba(255,255,255,0.75);
    transition: border-color 0.25s,box-shadow 0.25s,background 0.25s;
    box-sizing: border-box;
    margin-bottom: 0.7rem;
}
.leaving-form-textarea::placeholder { color: #c4b5ad; }
.leaving-form-textarea:focus {
    border-color: rgba(244,114,182,0.35);
    box-shadow: 0 0 0 3px rgba(244,114,182,0.05);
    background: #fff;
}
.leaving-form-submit {
    width: 100%;
    padding: 0.78rem;
    border: 1px solid rgba(236,72,153,0.25);
    border-radius: 0.9rem;
    background: rgba(236,72,153,0.1);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    color: #db2777;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.25s,transform 0.2s,box-shadow 0.2s;
    box-shadow: 0 2px 10px rgba(236,72,153,0.08);
    letter-spacing: 0.03em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    font-family: inherit;
}
.leaving-form-submit::before {
    content: '';
    width: 0.4rem; height: 0.4rem;
    border-radius: 50%;
    background: rgba(219,39,119,0.5);
    box-shadow: 0 0 8px rgba(236,72,153,0.3);
    flex-shrink: 0;
}
.leaving-form-submit:hover {
    background: rgba(236,72,153,0.18);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(236,72,153,0.15);
}
.leaving-form-submit:active { transform: scale(0.98); }
.leaving-form-submit:disabled { opacity: 0.7; cursor: not-allowed; }

/* ================================================================
   Favor (favor.php) — Love Meter
   ================================================================ */

/* header */
.favor-header {
    text-align: center;
    margin-bottom: 2.2rem;
}
.favor-header-label {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: #f59e0b;
    text-transform: uppercase;
    margin-bottom: 0.6rem;
    padding: 0.15rem 0.6rem;
    border-radius: 3px;
    background: linear-gradient(135deg,rgba(245,158,11,0.1),rgba(251,191,36,0.05));
    border-left: 2px solid #fcd34d;
}
.favor-header-title {
    margin: 0 0 0.6rem;
    font-size: 1.55rem;
    font-weight: 700;
    color: #1f2937;
    display: inline-block;
    padding: 0.4rem 1.2rem;
    border-radius: 2.5rem;
    background: rgba(255,255,255,0.58);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    position: relative;
}
.favor-header-title::before {
    content: '';
    position: absolute;
    left: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 1.2rem;
    border-radius: 2px;
    background: linear-gradient(180deg,#f59e0b,#EDDFE5);
}
.favor-header-sub { margin: 0; font-size: 0.82rem; color: #b0a8a0; }

/* score cards grid */
.favor-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.8rem;
}
@media (max-width:640px) { .favor-cards { grid-template-columns: 1fr; } }

/* score card */
.favor-card {
    background: rgba(255,255,255,0.72);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid rgba(0,0,0,0.04);
    border-radius: 1.1rem;
    box-shadow: 0 2px 20px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
    transition: transform 0.25s,box-shadow 0.25s;
}
.favor-card:hover { transform: translateY(-2px); box-shadow: 0 10px 36px rgba(0,0,0,0.06); }
.favor-card-accent { position: absolute; left: 0; top: 0; bottom: 0; width: 3px; border-radius: 0 1px 1px 0; }
.favor-card--boy .favor-card-accent { background: linear-gradient(180deg,#f59e0b,#D4A8B8,#f59e0b); opacity: 0.55; }
.favor-card--boy:hover .favor-card-accent { opacity: 1; }
.favor-card--boy { background: rgba(255,251,235,0.75); }
.favor-card--girl .favor-card-accent { background: linear-gradient(180deg,#ec4899,#f472b6,#ec4899); opacity: 0.55; }
.favor-card--girl:hover .favor-card-accent { opacity: 1; }
.favor-card--girl { background: rgba(253,242,248,0.75); }
.favor-card-body { display: flex; align-items: center; gap: 1rem; padding: 1.4rem 1.4rem 1.4rem 1.7rem; }
.favor-card-avatar { flex-shrink: 0; }
.favor-card-avatar img { width: 3.2rem; height: 3.2rem; border-radius: 50%; object-fit: cover; display: block; border: 2.5px solid #fff; box-shadow: 0 2px 10px rgba(0,0,0,0.08); }
.favor-card-content { flex: 1; min-width: 0; }
.favor-card-top { display: flex; align-items: center; gap: 0.45rem; margin-bottom: 0.6rem; }
.favor-card-name { font-size: 0.92rem; font-weight: 700; color: #1f2937; }
.favor-card--boy .favor-card-name { color: #92400e; }
.favor-card--girl .favor-card-name { color: #be185d; }
.favor-card-role { font-size: 0.55rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.1rem 0.45rem; border-radius: 2rem; line-height: 1.5; }
.favor-card--boy .favor-card-role { background: rgba(245,158,11,0.12); color: #b45309; }
.favor-card--girl .favor-card-role { background: rgba(236,72,153,0.12); color: #be185d; }
.favor-card-progress { margin-bottom: 0.45rem; }
.favor-card-progress-track { width: 100%; height: 6px; background: rgba(0,0,0,0.04); border-radius: 3px; overflow: hidden; }
.favor-card-progress-bar { height: 100%; border-radius: 3px; transition: width 0.8s; position: relative; }
.favor-card-progress-bar::after { content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 3px; border-radius: 0 3px 3px 0; background: rgba(255,255,255,0.6); }
.favor-card--boy .favor-card-progress-bar { background: linear-gradient(90deg,#D4A8B8,#f59e0b,#d97706); }
.favor-card--girl .favor-card-progress-bar { background: linear-gradient(90deg,#f472b6,#ec4899,#db2777); }
.favor-card-score { display: flex; align-items: baseline; gap: 0.2rem; }
.favor-card-score-num { font-size: 1.1rem; font-weight: 800; color: #1f2937; }
.favor-card--boy .favor-card-score-num { color: #92400e; }
.favor-card--girl .favor-card-score-num { color: #be185d; }
.favor-card-score-unit { font-size: 0.65rem; color: #b0a8a0; font-weight: 500; }

/* adjustment form */
.favor-form-card {
    background: rgba(255,255,255,0.72);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 1.1rem;
    padding: 1.3rem 1.5rem;
    margin-bottom: 1.8rem;
    box-shadow: 0 8px 40px rgba(0,0,0,0.04);
}
.favor-form-head { display: flex; align-items: center; gap: 0.45rem; font-size: 0.88rem; font-weight: 600; color: #1f2937; margin-bottom: 1rem; }
.favor-form-head-icon { width: 1.5rem; height: 1.5rem; border-radius: 50%; background: linear-gradient(135deg,rgba(245,158,11,0.15),rgba(251,191,36,0.06)); display: flex; align-items: center; justify-content: center; font-size: 0.68rem; color: #d97706; }
.favor-form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-bottom: 0.8rem; }
@media (max-width:500px) { .favor-form-fields { grid-template-columns: 1fr; } }
.favor-form-field { display: flex; flex-direction: column; gap: 0.3rem; }
.favor-form-field label { font-size: 0.72rem; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.04em; }
.favor-form-field select,.favor-form-field input { padding: 0.6rem 0.8rem; border: 1px solid rgba(0,0,0,0.05); border-radius: 0.65rem; font-size: 0.84rem; font-family: inherit; outline: none; background: rgba(255,255,255,0.8); transition: border-color 0.25s,box-shadow 0.25s; box-sizing: border-box; width: 100%; }
.favor-form-field select:focus,.favor-form-field input:focus { border-color: rgba(245,158,11,0.35); box-shadow: 0 0 0 3px rgba(245,158,11,0.05); background: #fff; }
.favor-form-field--wide { grid-column: 1 / -1; }
.favor-form-submit { width: 100%; padding: 0.72rem; border: 1px solid rgba(245,158,11,0.3); border-radius: 0.85rem; background: rgba(245,158,11,0.1); backdrop-filter: none; -webkit-backdrop-filter: none; color: #d97706; font-size: 0.86rem; font-weight: 600; cursor: pointer; transition: background 0.25s,transform 0.2s,box-shadow 0.2s; box-shadow: 0 2px 10px rgba(245,158,11,0.08); letter-spacing: 0.02em; font-family: inherit; }
.favor-form-submit:hover { background: rgba(245,158,11,0.18); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(245,158,11,0.15); }
.favor-form-submit:active { transform: scale(0.98); }

/* log section */
.favor-log-section { margin-bottom: 1.8rem; }
.favor-log-head { display: flex; align-items: center; gap: 0.45rem; font-size: 0.88rem; font-weight: 600; color: #1f2937; margin-bottom: 1rem; }
.favor-log-head-icon { width: 1.5rem; height: 1.5rem; border-radius: 50%; background: linear-gradient(135deg,rgba(236,72,153,0.12),rgba(244,114,182,0.06)); display: flex; align-items: center; justify-content: center; font-size: 0.68rem; color: #ec4899; }
.favor-log-list { display: flex; flex-direction: column; }
.favor-log-item { display: flex; gap: 0.8rem; padding: 0.7rem 0; position: relative; }
.favor-log-item + .favor-log-item { border-top: 1px solid rgba(0,0,0,0.03); }
.favor-log-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 0.35rem; }
.favor-log-item--boy .favor-log-dot { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245,158,11,0.12); }
.favor-log-item--girl .favor-log-dot { background: #ec4899; box-shadow: 0 0 0 3px rgba(236,72,153,0.12); }
.favor-log-body { flex: 1; min-width: 0; }
.favor-log-top { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.15rem; }
.favor-log-who { font-size: 0.8rem; font-weight: 600; color: #1f2937; }
.favor-log-delta { font-size: 0.7rem; font-weight: 700; color: #f59e0b; }
.favor-log-item--girl .favor-log-delta { color: #ec4899; }
.favor-log-reason { font-size: 0.78rem; color: #6b7280; line-height: 1.5; margin-bottom: 0.15rem; }
.favor-log-time { font-size: 0.65rem; color: #c4b5ad; }
.favor-log-empty { text-align: center; padding: 1.5rem; color: #b0a8a0; font-size: 0.82rem; }

/* mood section */
.favor-mood-section { margin-bottom: 2rem; }
.favor-mood-head { display: flex; align-items: center; gap: 0.45rem; font-size: 0.88rem; font-weight: 600; color: #1f2937; margin-bottom: 1rem; }
.favor-mood-head-icon { width: 1.5rem; height: 1.5rem; border-radius: 50%; background: linear-gradient(135deg,rgba(236,72,153,0.12),rgba(244,114,182,0.06)); display: flex; align-items: center; justify-content: center; font-size: 0.68rem; color: #ec4899; }
.favor-mood-form-card { background: rgba(255,255,255,0.72); backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid rgba(0,0,0,0.05); border-radius: 1rem; padding: 1.2rem; margin-bottom: 1rem; box-shadow: 0 4px 20px rgba(0,0,0,0.03); }
.favor-mood-textarea { width: 100%; padding: 0.6rem 0.8rem; border: 1px solid rgba(0,0,0,0.05); border-radius: 0.65rem; font-size: 0.84rem; font-family: inherit; outline: none; resize: vertical; min-height: 80px; background: rgba(255,255,255,0.75); transition: border-color 0.25s,box-shadow 0.25s; box-sizing: border-box; margin-bottom: 0.6rem; }
.favor-mood-textarea::placeholder { color: #c4b5ad; }
.favor-mood-textarea:focus { border-color: rgba(236,72,153,0.35); box-shadow: 0 0 0 3px rgba(236,72,153,0.05); background: #fff; }
.favor-mood-submit { width: 100%; padding: 0.65rem; border: 1px solid rgba(236,72,153,0.25); border-radius: 0.75rem; background: rgba(236,72,153,0.1); backdrop-filter: none; -webkit-backdrop-filter: none; color: #db2777; font-size: 0.82rem; font-weight: 600; cursor: pointer; transition: background 0.25s,transform 0.2s,box-shadow 0.2s; box-shadow: 0 2px 10px rgba(236,72,153,0.08); font-family: inherit; }
.favor-mood-submit:hover { background: rgba(236,72,153,0.18); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(236,72,153,0.15); }
.favor-mood-submit:active { transform: scale(0.98); }
.favor-mood-list { display: flex; flex-direction: column; gap: 0.7rem; }
.favor-mood-item { background: rgba(255,255,255,0.68); border: 1px solid rgba(0,0,0,0.03); border-radius: 0.9rem; padding: 1rem 1.1rem; position: relative; overflow: hidden; }
.favor-mood-item-accent { position: absolute; left: 0; top: 0; bottom: 0; width: 2.5px; border-radius: 0 1px 1px 0; background: linear-gradient(180deg,#f9a8d4,#fce7f3,#f9a8d4); }
.favor-mood-item-body p { margin: 0 0 0.3rem; font-size: 0.84rem; line-height: 1.7; color: #4b5563; }
.favor-mood-item-body time { font-size: 0.65rem; color: #c4b5ad; }
.favor-mood-empty { text-align: center; padding: 2rem 1rem; border: 1.5px dashed rgba(0,0,0,0.06); border-radius: 1rem; background: rgba(255,255,255,0.4); }
.favor-mood-empty-icon { font-size: 1.6rem; color: #d1d5db; margin-bottom: 0.4rem; display: inline-block; }
.favor-mood-empty p { margin: 0; font-size: 0.82rem; color: #b0a8a0; }

/* ================================================================
   Album (loveImg.php) — Photo Gallery
   ================================================================ */

/* header */
.album-header { text-align: center; margin-bottom: 2.2rem; }
.album-header-label { display: inline-block; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.2em; color: #8b5cf6; text-transform: uppercase; margin-bottom: 0.6rem; padding: 0.15rem 0.6rem; border-radius: 3px; background: linear-gradient(135deg,rgba(139,92,246,0.08),rgba(167,139,250,0.04)); border-left: 2px solid #c4b5fd; }
.album-header-title { margin: 0 0 0.7rem; font-size: 1.55rem; font-weight: 700; color: #1f2937; display: inline-block; padding: 0.4rem 1.2rem; border-radius: 2.5rem; background: rgba(255,255,255,0.58); backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: 0 2px 12px rgba(0,0,0,0.04); position: relative; }
.album-header-title::before { content: ''; position: absolute; left: 0.55rem; top: 50%; transform: translateY(-50%); width: 3px; height: 1.2rem; border-radius: 2px; background: linear-gradient(180deg,#8b5cf6,#ddd6fe); }
.album-header-count { margin: 0; font-size: 0.82rem; color: #9ca3af; display: flex; align-items: center; justify-content: center; gap: 0.35rem; }
.album-header-count-icon { font-size: 0.75rem; color: #8b5cf6; }
.album-header-count strong { color: #7c3aed; font-weight: 700; }

/* list */
.album-list { display: flex; flex-direction: column; gap: 1.2rem; margin-bottom: 2rem; }

/* card */
.album-card { background: rgba(255,255,255,0.7); backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid rgba(0,0,0,0.04); border-radius: 1.1rem; overflow: hidden; box-shadow: 0 3px 24px rgba(0,0,0,0.03); transition: transform 0.25s,box-shadow 0.25s; }
.album-card:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(0,0,0,0.07); }

/* image — fixed 16:9 */
.album-card-img { position: relative; overflow: hidden; background: #f3f0f6; cursor: pointer; aspect-ratio: 16/9; }
.album-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s cubic-bezier(0.16,1,0.3,1); }
.album-card:hover .album-card-img img { transform: scale(1.05); }
.album-card-img-zoom { position: absolute; right: 0.7rem; top: 0.7rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: rgba(0,0,0,0.3); backdrop-filter: none; -webkit-backdrop-filter: none; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 0.65rem; opacity: 0; transition: opacity 0.3s; }
.album-card:hover .album-card-img-zoom { opacity: 1; }

/* body */
.album-card-body { padding: 1rem 1.2rem 1.1rem; }
.album-card-body-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.4rem; }
.album-card-date { font-size: 0.7rem; color: #b0a8a0; display: flex; align-items: center; gap: 0.2rem; }
.album-card-date i { font-size: 0.6rem; color: #8b5cf6; }
.album-card-no { font-size: 0.58rem; font-weight: 700; letter-spacing: 0.06em; color: #d1d5db; }
.album-card-title { margin: 0 0 0.4rem; font-size: 0.9rem; font-weight: 700; color: #1f2937; line-height: 1.45; }
.album-card-hint { font-size: 0.65rem; color: #c4b5ad; display: flex; align-items: center; gap: 0.15rem; }
.album-card-hint i { font-size: 0.58rem; }

/* empty */
.album-empty { text-align: center; padding: 2.5rem 1rem; border: 1.5px dashed rgba(0,0,0,0.06); border-radius: 1rem; background: rgba(255,255,255,0.4); }
.album-empty-icon { font-size: 1.8rem; color: #d1d5db; margin-bottom: 0.5rem; display: inline-block; }
.album-empty p { margin: 0; font-size: 0.82rem; color: #b0a8a0; }

/* detail overlay */
.album-detail-overlay { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.88); backdrop-filter: none; -webkit-backdrop-filter: none; display: flex; align-items: center; justify-content: center; padding: 1.2rem; opacity: 0; pointer-events: none; transition: opacity 0.35s; }
.album-detail-overlay.is-open { opacity: 1; pointer-events: auto; }
.album-detail-panel { width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto; background: rgba(255,255,255,0.96); backdrop-filter: none; -webkit-backdrop-filter: none; border-radius: 1.2rem; box-shadow: 0 24px 64px rgba(0,0,0,0.3); position: relative; transform: translateY(20px); transition: transform 0.35s cubic-bezier(0.16,1,0.3,1); }
.album-detail-overlay.is-open .album-detail-panel { transform: translateY(0); }
.album-detail-close { position: absolute; right: 0.8rem; top: 0.8rem; width: 2rem; height: 2rem; border-radius: 50%; border: none; background: rgba(0,0,0,0.35); backdrop-filter: none; -webkit-backdrop-filter: none; color: #fff; font-size: 0.75rem; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 2; transition: background 0.2s; }
.album-detail-close:hover { background: rgba(0,0,0,0.55); }
.album-detail-img { border-radius: 1.2rem 1.2rem 0 0; overflow: hidden; background: #111827; }
.album-detail-img img { width: 100%; display: block; }
.album-detail-info { padding: 1.2rem 1.4rem 1.4rem; }
.album-detail-info-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.4rem; }
.album-detail-date { font-size: 0.75rem; color: #b0a8a0; display: flex; align-items: center; gap: 0.2rem; }
.album-detail-no { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.06em; color: #d1d5db; }
.album-detail-title { margin: 0; font-size: 1.05rem; font-weight: 700; color: #1f2937; line-height: 1.55; }

/* ================================================================
   List (list.php) — Checklist (Referenced from LuvHmy)
   ================================================================ */

/* toolbar */
.ll-toolbar { margin-bottom: 1rem; }

/* tabs — iOS segmented control */
.ll-tabs { position: relative; display: inline-flex; gap: 2px; padding: 3px; background: rgba(164,164,164,0.12); backdrop-filter: none; -webkit-backdrop-filter: none; border-radius: 12px; margin: 0 auto 0.8rem; width: 100%; }
.ll-tab { position: relative; z-index: 1; flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 8px 10px; border: none; border-radius: 10px; background: transparent; color: rgba(60,60,67,0.6); font-size: 0.82rem; font-weight: 500; font-family: inherit; cursor: pointer; transition: color 0.3s; }
.ll-tab:hover { color: rgba(60,60,67,0.85); }
.ll-tab.is-active { color: #000; font-weight: 600; }
.ll-tab i { font-size: 0.75rem; transition: transform 0.3s; }
.ll-tab.is-active i { transform: scale(1.1); color: #000; }
.ll-tab-slider { position: absolute; z-index: 0; top: 3px; height: calc(100% - 6px); background: #fff; border-radius: 10px; transition: left 0.4s cubic-bezier(0.34,1.56,0.64,1),width 0.4s cubic-bezier(0.34,1.56,0.64,1); box-shadow: 0 1px 4px rgba(0,0,0,0.06); }

.ll-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 10px; background: #f0f0f0; color: #999; font-size: 0.62rem; font-weight: 600; transition: background 0.3s,color 0.3s; box-sizing: border-box; }
.ll-tab.is-active .ll-badge { background: #71b7ff; color: #fff; }

/* search */
.ll-search { position: relative; }
.ll-search input { width: 100%; padding: 0.7rem 2.5rem 0.7rem 1rem; border: none; border-radius: 50px; font-size: 0.85rem; font-family: inherit; outline: none; background: #fff; box-shadow: 0 4px 15px rgba(0,0,0,0.05); color: #333; box-sizing: border-box; transition: box-shadow 0.25s; }
.ll-search input::placeholder { color: #bfbfbf; }
.ll-search input:focus { box-shadow: 0 4px 20px rgba(0,0,0,0.1); }
.ll-search i { position: absolute; right: 0.9rem; top: 50%; transform: translateY(-50%); font-size: 0.78rem; color: #ccc; pointer-events: none; }

/* skeleton */
.ll-skeleton { display: flex; flex-direction: column; gap: 0.8rem; margin-bottom: 1.5rem; transition: opacity 0.4s; }
.ll-skeleton-card { background: #f5f5f5; border-radius: 16px; padding: 1.5rem; animation: llShimmer 1.5s infinite; }
.ll-skeleton-bar { height: 1rem; width: 70%; border-radius: 8px; background: linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%); background-size: 200% 100%; animation: llShimmer 1.5s infinite; }
@keyframes llShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* cards */
.ll-cards { display: flex; flex-direction: column; gap: 0.8rem; margin-bottom: 2rem; }

.ll-card { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 25px -5px rgba(0,0,0,0.08); transition: transform 0.3s; }
.ll-card:hover { transform: translateY(-2px); }

/* header */
.ll-card-hd { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.2rem; cursor: pointer; transition: background 0.3s; }
.ll-card.is-open .ll-card-hd { background: #fafafa; }
.ll-card-hd-left { display: flex; align-items: center; gap: 0.6rem; flex: 1; min-width: 0; }
.ll-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; background: #e0e0e0; box-shadow: 0 0 0 4px rgba(204,204,204,0.2); transition: background 0.3s,box-shadow 0.3s; }
.ll-dot.is-done { background: #71b7ff; box-shadow: 0 0 0 4px rgba(113,183,255,0.2); }
.ll-name { font-size: 0.95rem; font-weight: 500; color: #bbb; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: color 0.3s; }
.ll-card.is-done .ll-name { color: #333; font-weight: 600; }
.ll-tag { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: #f0f0f0; flex-shrink: 0; font-size: 0.6rem; color: #999; transition: color 0.3s; }
.ll-card.is-done .ll-tag { color: #71b7ff; }
.ll-arrow { flex-shrink: 0; color: #ccc; font-size: 0.8rem; transition: transform 0.3s,color 0.3s; }
.ll-card.is-open .ll-arrow { transform: rotate(180deg); color: #71b7ff; }

/* body */
.ll-card-bd { display: none; border-top: 1px solid #f0f0f0; position: relative; }
.ll-card.is-open .ll-card-bd { display: block; }
.ll-card-bd-inner { display: flex; flex-direction: column; }
@media (min-width: 768px) {
    .ll-card-bd-inner { flex-direction: row; height: 320px; }
    .ll-gallery { flex: 6; border-right: 1px solid #f0f0f0; }
    .ll-info { flex: 4; padding: 2rem 1.8rem; overflow-y: auto; display: flex; align-items: center; }
}

/* gallery */
.ll-gallery { position: relative; background: #f8f8f8; height: 220px; overflow: hidden; }
@media (min-width: 768px) { .ll-gallery { height: 320px; } }
.ll-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ll-no-img { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; height: 100%; color: #d0d0d0; text-align: center; }
.ll-no-img i { font-size: 2rem; }
.ll-no-img span { font-size: 0.8rem; }

/* info */
.ll-info { padding: 1.2rem; display: flex; flex-direction: column; justify-content: center; gap: 0.6rem; }
.ll-info-title { margin: 0; font-size: 1.15rem; font-weight: 300; color: #9f9f9f; }
.ll-info-meta { display: flex; flex-direction: column; gap: 0.35rem; }
.ll-info-time { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.75rem; color: #b0a8a0; }
.ll-info-time i { font-size: 0.7rem; color: #ccc; }
.ll-info-loc { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.75rem; color: #b0a8a0; }
.ll-info-loc i { font-size: 0.7rem; color: #71b7ff; }

/* watermark */
.ll-watermark { position: absolute; right: 16px; bottom: 16px; font-size: 4rem; color: #71b7ff; opacity: 0.85; pointer-events: none; }
.ll-watermark.is-pending { font-size: 3.2rem; color: #e0e0e0; opacity: 0.6; }

/* empty */
.ll-empty { text-align: center; padding: 2.5rem 1rem; border: 1.5px dashed rgba(0,0,0,0.06); border-radius: 1rem; background: rgba(255,255,255,0.4); }
.ll-empty-icon { font-size: 1.8rem; color: #d1d5db; margin-bottom: 0.5rem; display: inline-block; }
.ll-empty p { margin: 0; font-size: 0.82rem; color: #b0a8a0; }

/* ================================================================
   Little (little.php) — Articles
   ================================================================ */

/* skeleton */
.lit-skel { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; transition: opacity 0.4s; }
.lit-skel-item { height: 220px; border-radius: 1rem; background: linear-gradient(110deg,#f0f0f0 30%,#f8f8f8 50%,#f0f0f0 70%); background-size: 200% 100%; animation: litShimmer 1.5s ease-in-out infinite; }
@keyframes litShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* list */
.lit-list { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 2rem; }

/* card */
.lit-card { display: block; background: #fff; border-radius: 1rem; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,0.04),0 8px 24px -6px rgba(0,0,0,0.06),0 16px 48px -12px rgba(0,0,0,0.04); text-decoration: none; position: relative; transition: transform 0.3s cubic-bezier(0.16,1,0.3,1),box-shadow 0.3s; opacity: 0; transform: translateY(16px); }
.lit-card::after { content: ''; position: absolute; top: -40%; right: -10%; width: 60%; height: 80%; background: radial-gradient(ellipse,rgba(244,114,182,0.06) 0%,transparent 70%); border-radius: 50%; pointer-events: none; }
.lit-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(0,0,0,0.06),0 12px 32px -4px rgba(0,0,0,0.1),0 24px 56px -8px rgba(0,0,0,0.06); }

/* header */
.lit-hd { display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 1.2rem 0.4rem; }
.lit-hd-left { display: flex; align-items: center; gap: 0.55rem; }
.lit-hd-day { font-size: 2.2rem; font-weight: 800; color: #1f2937; line-height: 1; }
.lit-hd-div { width: 1px; height: 2rem; background: linear-gradient(180deg,transparent,#e5e7eb,transparent); flex-shrink: 0; }
.lit-hd-mon { font-size: 0.85rem; font-weight: 600; color: #4b5563; font-family: "Noto Serif SC",serif; }
.lit-hd-yr { font-size: 0.7rem; color: #9ca3af; margin-left: 0.15rem; }

.lit-hd-right { text-align: center; }
.lit-hd-label { display: block; font-size: 0.48rem; font-weight: 700; letter-spacing: 0.14em; color: #f472b6; margin-bottom: 0.1rem; }
.lit-hd-num { font-size: 0.95rem; font-weight: 700; color: #1f2937; line-height: 1; font-variant-numeric: tabular-nums; }

/* meta */
.lit-meta { padding: 0.2rem 1.2rem 0.5rem; display: flex; gap: 0.8rem; flex-wrap: wrap; }
.lit-meta-item { display: inline-flex; align-items: center; gap: 0.28rem; font-size: 0.7rem; color: #9ca3af; }
.lit-meta-item i { font-size: 0.72rem; opacity: 0.7; }

/* body */
.lit-body { padding: 0 1.2rem 0.6rem; }
.lit-title { margin: 0 0 0.4rem; font-size: 1rem; font-weight: 700; color: #1f2937; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lit-text { margin: 0; font-size: 0.82rem; line-height: 1.7; color: #6b7280; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* footer */
.lit-ft { padding: 0.5rem 1.2rem 1rem; display: flex; align-items: center; justify-content: space-between; }
.lit-ft-author { display: flex; align-items: center; gap: 0.5rem; }
.lit-ft-ring { padding: 3px; border-radius: 10px; background: linear-gradient(135deg,rgba(244,114,182,0.08),rgba(139,92,246,0.04)); }
.lit-ft-avatar { display: block; width: 38px; height: 38px; border-radius: 8px; background-size: cover; background-position: center; background-color: #f3f4f6; box-shadow: 0 2px 6px rgba(0,0,0,0.04); }
.lit-ft-name { font-size: 1.05rem; font-weight: 700; color: #1f2937; font-family: "Dancing Script",cursive; }

/* empty */
.lit-empty { text-align: center; padding: 2.5rem 1rem; border: 1.5px dashed rgba(0,0,0,0.06); border-radius: 1rem; background: rgba(255,255,255,0.45); }
.lit-empty-icon { font-size: 1.8rem; color: #d1d5db; margin-bottom: 0.5rem; display: inline-block; }
.lit-empty p { margin: 0; font-size: 0.82rem; color: #b0a8a0; }

::selection { background: rgba(244,114,182,0.25); color: #1e293b; }
::-moz-selection { background: rgba(244,114,182,0.25); color: #1e293b; }

/* ================================================================
   Modern: Weather Card
   ================================================================ */
.cn-weather-card {
    background: rgba(255,255,255,0.72);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 20px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.03), 0 8px 32px rgba(0,0,0,0.04);
}
.cn-weather-inner {
    position:relative; z-index:2; display:flex; flex-direction:column;
    align-items:center; gap:1.5rem; width:100%;
}
.cn-weather-seal {
    font-size:0.68rem; font-weight:600; letter-spacing:0.2em;
    color:#B4889D; text-transform:uppercase;
    font-family:var(--lg-font-sans);
    opacity:0.7;
}
.cn-weather-dual {
    display:flex; align-items:center; justify-content:center;
    gap:1.5rem; width:100%; flex-wrap:wrap;
}
.cn-weather-side { display:flex; flex-direction:column; align-items:center; gap:0.35rem; min-width:100px; }
.cn-weather-city {
    font-family:var(--lg-font-serif); font-size:0.78rem; font-weight:600;
    color:#4a4a4a; letter-spacing:0.1em;
}
.cn-weather-temp {
    font-family:var(--lg-font-sans); font-size:2.8rem; font-weight:200; line-height:1;
    color:#403546; letter-spacing:-0.02em;
}
.cn-weather-desc { font-size:0.68rem; color:#888; font-family:var(--lg-font-sans); }
.cn-weather-hilo { font-size:0.62rem; color:#C2B8C6; font-family:var(--lg-font-sans); font-weight:500; }
.cn-weather-avatar-ring { width:48px; height:48px; border-radius:50%; padding:2px; margin-top:0.3rem; }
.cn-weather-avatar-ring--him { background:transparent; }
.cn-weather-avatar-ring--her { background:transparent; }
.cn-weather-avatar-ring img { width:100%; height:100%; border-radius:50%; border:none; object-fit:cover; }
.cn-weather-divider { display:flex; flex-direction:column; align-items:center; gap:0.5rem; padding:0 0.25rem; }
.cn-weather-divider-line { width:1px; height:20px; background:rgba(0,0,0,0.08); }
.cn-weather-divider-heart { font-size:0.85rem; color:#B4889D; animation:cn-hb 2.5s ease-in-out infinite; }
@keyframes cn-hb { 0%,100%{transform:scale(1);opacity:0.6} 50%{transform:scale(1.2);opacity:1} }
.cn-weather-distance { display:flex; align-items:center; gap:0.6rem; }
.cn-weather-dist-line { width:32px; height:1px; background:rgba(0,0,0,0.06); }
.cn-weather-dist-text { font-size:0.62rem; color:#C2B8C6; font-family:var(--lg-font-sans); font-weight:500; letter-spacing:0.06em; }

/* ================================================================
   Modern: Wish Card
   ================================================================ */
.cn-wish-card {
    background: linear-gradient(165deg, #1a1a2e 0%, #262640 100%);
    border-radius: 20px; color:#fff; overflow:hidden;
}
.cn-wish-inner { display:flex; flex-direction:column; gap:1rem; width:100%; }
.cn-wish-header { display:flex; align-items:center; justify-content:space-between; }
.cn-wish-seal {
    font-size:0.65rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase;
    color:rgba(255,255,255,0.5); font-family:var(--lg-font-sans);
}
.cn-wish-fraction { font-family:var(--lg-font-sans); font-size:0.78rem; color:rgba(255,255,255,0.4); }
.cn-wish-fraction em { font-style:normal; font-weight:700; color:#fff; font-size:1.1rem; }
.cn-wish-track { height:4px; background:rgba(255,255,255,0.08); border-radius:99px; overflow:hidden; }
.cn-wish-fill {
    height:100%; border-radius:99px;
    background:linear-gradient(90deg,#B4889D,#D4A8B8,#B4889D);
    transition:width 1.2s cubic-bezier(0.4,0,0.2,1);
    box-shadow:0 0 16px rgba(232,83,108,0.4);
}
.cn-wish-poem {
    font-family:var(--lg-font-serif); font-size:0.7rem; color:rgba(255,255,255,0.35);
    text-align:right; letter-spacing:0.04em;
}

/* ================================================================
   Modern: Stat Cards
   ================================================================ */
.cn-stat-card {
    background: rgba(255,255,255,0.85);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 16px;
    padding: 1.15rem 1.15rem 0.7rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.02);
}
.cn-stat-inner { display:flex; align-items:flex-start; gap:0.75rem; flex:1; }
.cn-stat-icon {
    width:40px; height:40px; border-radius:12px;
    display:flex; align-items:center; justify-content:center; font-size:1.05rem;
    color:#fff; flex-shrink:0;
}
.cn-stat-icon--rose { background:linear-gradient(135deg,#B4889D,#9A7488); }
.cn-stat-icon--purple { background:linear-gradient(135deg,#8b7eac,#6d5d8e); }
.cn-stat-icon--teal { background:linear-gradient(135deg,#5b9a8b,#3d7a6b); }
.cn-stat-icon--coral { background:linear-gradient(135deg,#e8a87c,#d4956b); }
.cn-stat-body { display:flex; flex-direction:column; gap:0.1rem; }
.cn-stat-label { font-family:var(--lg-font-serif); font-size:0.82rem; font-weight:700; color:#3a3a3a; }
.cn-stat-num { font-family:var(--lg-font-sans); font-size:1.8rem; font-weight:300; line-height:1; color:#403546; letter-spacing:-0.03em; }
.cn-stat-foot { display:flex; align-items:center; justify-content:space-between; margin-top:0.55rem; }
.cn-stat-sub { font-size:0.6rem; color:#93899D; letter-spacing:0.05em; font-family:var(--lg-font-sans); font-weight:500; }
.cn-stat-arrow { display:flex; align-items:center; color:#C2B8C6; text-decoration:none; transition:color 0.2s,transform 0.2s; }
.cn-stat-arrow:hover { color:#403546; transform:translateX(3px); }
.cn-stat-arrow i { font-size:0.8rem; }

/* ================================================================
   Modern: World Card
   ================================================================ */
.cn-world-card {
    background: linear-gradient(165deg, #f5f0eb 0%, #ede4db 100%);
    border-radius: 20px; text-align:center; padding:2.2rem 1.5rem;
    border: 1px solid rgba(0,0,0,0.04);
}
.cn-world-inner { display:flex; flex-direction:column; align-items:center; gap:0.4rem; }
.cn-world-seal {
    font-size:0.62rem; font-weight:600; letter-spacing:0.15em; color:#B4889D;
    font-family:var(--lg-font-sans); text-transform:uppercase; opacity:0.6;
}
.cn-world-days { display:flex; align-items:baseline; gap:0.3rem; margin-top:0.2rem; }
.cn-world-days-num { font-family:var(--lg-font-sans); font-size:4rem; font-weight:200; line-height:1; color:#403546; letter-spacing:-0.03em; }
.cn-world-days-unit { font-family:var(--lg-font-serif); font-size:1rem; color:#93899D; font-weight:500; }
.cn-world-title { font-family:var(--lg-font-serif); font-size:0.85rem; font-weight:600; color:#4a4a4a; letter-spacing:0.08em; margin-top:-0.3rem; }
.cn-world-verse { font-family:var(--lg-font-serif); font-size:0.75rem; color:#93899D; letter-spacing:0.05em; line-height:1.65; font-weight:400; }

/* 寄语卡片 */
.cn-love-verse-card {
    background: linear-gradient(165deg, #fdf2f8 0%, #fce7f3 100%);
    border: 1px solid rgba(236, 72, 153, 0.08);
    border-radius: 16px;
    padding: 1.5rem 1.2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    box-shadow: 0 2px 8px rgba(236, 72, 153, 0.04);
    min-height: 100%;
}
.cn-love-verse-icon {
    font-size: 1.5rem;
    color: #B4889D;
    opacity: 0.7;
}
.cn-love-verse-text {
    font-family: var(--lg-font-serif);
    font-size: 0.8rem;
    color: #8a6a7a;
    letter-spacing: 0.06em;
    line-height: 1.8;
    font-weight: 400;
}

.cn-season-card {
    background: linear-gradient(165deg, #fff8ef 0%, #f6eadb 100%);
    border: 1px solid rgba(217, 119, 6, 0.08);
    border-radius: 16px;
    padding: 1.35rem 1.15rem;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.35rem;
    box-shadow: 0 2px 10px rgba(180, 83, 9, 0.05);
    position: relative;
    overflow: hidden;
}

.cn-season-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, rgba(251, 191, 36, 0.16), transparent 38%);
    pointer-events: none;
}

.cn-season-mark {
    position: relative;
    z-index: 1;
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(217, 119, 6, 0.08);
    color: #c26a1b;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.cn-season-date {
    position: relative;
    z-index: 1;
    font-family: var(--lg-font-sans);
    font-size: 0.68rem;
    color: #b08968;
    letter-spacing: 0.08em;
    font-weight: 600;
}

.cn-season-title {
    position: relative;
    z-index: 1;
    font-family: var(--lg-font-serif);
    font-size: 1rem;
    color: #5f4633;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.cn-season-text {
    position: relative;
    z-index: 1;
    font-family: var(--lg-font-serif);
    font-size: 0.75rem;
    color: #9b7b64;
    letter-spacing: 0.05em;
    line-height: 1.75;
}

/* ================================================================
   Modern: Section Headers
   ================================================================ */
.cn-section-head {
    display:flex; align-items:center; gap:1rem;
    padding-bottom:1.25rem; margin-bottom:2rem;
    border-bottom:1px solid rgba(0,0,0,0.06);
}
.cn-section-seal {
    font-size:0.6rem; font-weight:600; letter-spacing:0.12em; color:#B4889D;
    font-family:var(--lg-font-sans); text-transform:uppercase;
    width:28px; height:28px; border-radius:8px;
    background:rgba(194,118,90,0.08);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.cn-section-seal--blue { color:#A299AB; background:rgba(140,122,107,0.08); }
.cn-section-seal--orange { color:#A88293; background:rgba(184,120,90,0.08); }
.cn-section-seal--teal { color:#7A9E8C; background:rgba(122,158,140,0.08); }
.cn-section-seal--violet { color:#93899D; background:rgba(156,142,130,0.08); }
.cn-section-title {
    font-family:var(--lg-font-serif); font-size:1.35rem; font-weight:700;
    color:#403546; letter-spacing:0.04em;
}
.cn-section-sub { font-family:var(--lg-font-serif); font-size:0.72rem; color:#93899D; flex:1; font-weight:400; }
.cn-section-more {
    font-family:var(--lg-font-sans); font-size:0.7rem; font-weight:500; color:#C2B8C6;
    text-decoration:none; display:flex; align-items:center; gap:0.25rem;
    transition:color 0.2s; white-space:nowrap;
}
.cn-section-more:hover { color:#403546; }
.cn-section-more i { font-size:0.75rem; }

/* ================================================================
   Modern: Event Cards
   ================================================================ */
.cn-events-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:0.85rem; }
.cn-event-card {
    display:block; background:rgba(255, 244, 237, 0.55);
    backdrop-filter:none; -webkit-backdrop-filter:none;
    border:1px solid rgba(175,160,170,0.10); border-radius:14px;
    padding:1.3rem; text-decoration:none; transition:all 0.25s ease; color:#403546;
}
.cn-event-card:hover {
    border-color:rgba(175,160,170,0.18);
    box-shadow:0 8px 28px rgba(0,0,0,0.05);
    transform:translateY(-3px);
}
.cn-event-badge { display:flex; align-items:center; gap:0.4rem; margin-bottom:0.85rem; }
.cn-event-badge-dot { width:5px; height:5px; border-radius:50%; background:#B4889D; }
.cn-event-badge span { font-family:var(--lg-font-sans); font-size:0.62rem; color:#C2B8C6; font-weight:500; letter-spacing:0.04em; }
.cn-event-title { font-family:var(--lg-font-serif); font-size:1rem; font-weight:700; color:#403546; margin-bottom:0.35rem; line-height:1.4; }
.cn-event-note { font-family:var(--lg-font-serif); font-size:0.72rem; color:#93899D; line-height:1.55; }

/* ================================================================
   Modern: Journal Cards
   ================================================================ */
.cn-journal-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:0.85rem; }
.cn-journal-card {
    display:block; background:rgba(255, 244, 237, 0.55);
    backdrop-filter:none; -webkit-backdrop-filter:none;
    border:1px solid rgba(175,160,170,0.10); border-radius:14px;
    padding:1.3rem 1.3rem 1rem; text-decoration:none; transition:all 0.25s ease; color:#403546;
}
.cn-journal-card:hover {
    border-color:rgba(175,160,170,0.18);
    box-shadow:0 8px 28px rgba(0,0,0,0.05);
    transform:translateY(-3px);
}
.cn-journal-date { font-family:var(--lg-font-sans); font-size:0.6rem; color:#C2B8C6; font-weight:500; letter-spacing:0.06em; margin-bottom:0.55rem; }
.cn-journal-title { font-family:var(--lg-font-serif); font-size:0.95rem; font-weight:700; color:#403546; margin-bottom:0.35rem; line-height:1.4; }
.cn-journal-excerpt { font-family:var(--lg-font-serif); font-size:0.75rem; color:#93899D; line-height:1.65; margin-bottom:0.85rem; }
.cn-journal-foot { display:flex; align-items:center; gap:0.45rem; border-top:1px solid rgba(0,0,0,0.04); padding-top:0.65rem; }
.cn-journal-avatar { width:20px; height:20px; border-radius:50%; object-fit:cover; }
.cn-journal-author { font-family:var(--lg-font-sans); font-size:0.68rem; color:#93899D; font-weight:500; }

/* ================================================================
   Modern: Mosaic
   ================================================================ */
.cn-mosaic-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:0.65rem; }
.cn-mosaic-item {
    position:relative; border-radius:10px; overflow:hidden; aspect-ratio:4/3;
    display:block; text-decoration:none;
}
.cn-mosaic-img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease; }
.cn-mosaic-item:hover .cn-mosaic-img { transform:scale(1.06); }
.cn-mosaic-placeholder { width:100%; height:100%; background:#F5EDE5; display:flex; align-items:center; justify-content:center; color:#C8B8A8; font-size:2rem; }
.cn-mosaic-cap {
    position:absolute; bottom:0; left:0; right:0;
    background:linear-gradient(transparent,rgba(0,0,0,0.55));
    padding:1.8rem 0.8rem 0.6rem;
}
.cn-mosaic-cap span { font-family:var(--lg-font-serif); font-size:0.7rem; color:#fff; font-weight:500; }

/* ================================================================
   Modern: Message Cards
   ================================================================ */
.cn-message-track { display:flex; gap:0.85rem; overflow-x:auto; padding-bottom:0.5rem; scroll-snap-type:x mandatory; }
.cn-message-card {
    flex:0 0 260px; scroll-snap-align:start;
    display:block; background:rgba(255, 244, 237, 0.55);
    backdrop-filter:none; -webkit-backdrop-filter:none;
    border:1px solid rgba(175,160,170,0.10); border-radius:14px;
    padding:1.15rem; text-decoration:none; transition:all 0.25s ease; color:#403546;
}
.cn-message-card:hover {
    border-color:rgba(175,160,170,0.18);
    box-shadow:0 8px 28px rgba(0,0,0,0.05);
    transform:translateY(-3px);
}
.cn-message-head { display:flex; align-items:center; gap:0.55rem; margin-bottom:0.65rem; }
.cn-message-avatar { width:34px; height:34px; border-radius:50%; object-fit:cover; }
.cn-message-meta { display:flex; flex-direction:column; gap:1px; }
.cn-message-name { font-family:var(--lg-font-serif); font-size:0.8rem; font-weight:600; color:#403546; }
.cn-message-city { font-size:0.6rem; color:#C2B8C6; display:flex; align-items:center; gap:0.2rem; font-family:var(--lg-font-sans); font-weight:500; }
.cn-message-text { font-family:var(--lg-font-serif); font-size:0.75rem; color:#93899D; line-height:1.7; }

/* ================================================================
   Modern: Epilogue
   ================================================================ */
.cn-epilogue {
    text-align:center; padding:3.5rem 1.5rem;
    background:linear-gradient(180deg,rgba(255,250,252,0.55) 0%,rgba(245,232,222,0.75) 100%);
    border:1px solid rgba(175,160,170,0.10); border-radius:20px;
    backdrop-filter:none; -webkit-backdrop-filter:none;
}
.cn-epilogue-seal {
    font-size:0.62rem; font-weight:600; letter-spacing:0.15em; color:#B4889D;
    font-family:var(--lg-font-sans); text-transform:uppercase;
    width:32px; height:32px; border-radius:10px;
    background:rgba(194,118,90,0.08);
    display:inline-flex; align-items:center; justify-content:center;
    margin-bottom:0.85rem;
}
.cn-epilogue-title {
    font-family:var(--lg-font-serif); font-size:1.5rem; font-weight:700;
    color:#403546; letter-spacing:0.12em; margin-bottom:1.1rem;
}
.cn-epilogue-verse {
    font-family:var(--lg-font-serif); font-size:0.9rem; color:#93899D;
    max-width:420px; margin:0 auto 1.75rem; line-height:1.85;
}
.cn-epilogue-actions { display:flex; justify-content:center; gap:0.85rem; flex-wrap:wrap; }
.cn-btn {
    font-family:var(--lg-font-sans); font-size:0.78rem; font-weight:600;
    letter-spacing:0.05em; padding:0.6rem 1.6rem; border-radius:10px;
    text-decoration:none; display:inline-flex; align-items:center; gap:0.35rem;
    transition:all 0.25s ease;
}
.cn-btn--primary { background:#403546; color:#FFFAFD; box-shadow:0 4px 16px rgba(61,46,40,0.18); }
.cn-btn--primary:hover { background:#50465A; transform:translateY(-2px); box-shadow:0 8px 24px rgba(61,46,40,0.28); }
.cn-btn--ghost { background:rgba(255,250,252,0.55); color:#403546; border:1px solid rgba(175,160,170,0.12); }
.cn-btn--ghost:hover { border-color:rgba(0,0,0,0.18); transform:translateY(-2px); box-shadow:0 4px 16px rgba(0,0,0,0.04); }
.cn-empty { text-align:center; padding:2.5rem; font-family:var(--lg-font-serif); font-size:0.85rem; color:#c0c0c0; }

/* hide old epilogue */
.lgnewui-epilogue { display:none; }

/* ================================================================
   Modern: Global
   ================================================================ */
.lgnewui-home { background:#fafaf8; }

/* card hover lift */
.cn-weather-card,
.cn-wish-card,
.cn-stat-card,
.cn-world-card {
    transition:transform 0.3s ease, box-shadow 0.3s ease;
}
.cn-weather-card:hover,
.cn-wish-card:hover,
.cn-world-card:hover {
    transform:translateY(-4px);
    box-shadow:0 12px 40px rgba(0,0,0,0.06);
}
.cn-stat-card:hover {
    transform:translateY(-3px);
    box-shadow:0 8px 24px rgba(0,0,0,0.05);
}

/* ===== 身份徽章 (男主/女主) ===== */
.id-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .3px;
    vertical-align: middle;
    margin-left: 6px;
    line-height: 1.4;
    white-space: nowrap;
}
.id-badge--boy {
    background: rgba(236,72,153,0.1);
    color: #db2777;
    border: 1px solid rgba(236,72,153,0.18);
}
.id-badge--girl {
    background: rgba(168,85,247,0.1);
    color: #9333ea;
    border: 1px solid rgba(168,85,247,0.18);
}
.id-badge i { font-size: 9px }

/* ================================================================
   Home Redesign: Hero Grid + Album
   ================================================================ */

.lgnewui-home .lgnewui-grid {
    gap: 1.15rem;
}

.lgnewui-home .lgnewui-widget {
    position: relative;
    border-radius: 28px;
    border: 1px solid rgba(255,255,255,0.10);
    background: linear-gradient(180deg, rgba(200,160,130,0.08), rgba(255,255,255,0.02)) !important;
    box-shadow: 0 6px 16px rgba(95, 62, 75, 0.025);
    overflow: hidden;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.lgnewui-home .lgnewui-widget:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(95, 62, 75, 0.035);
}

.lgnewui-home .lgnewui-widget--photo {
    min-height: 148px;
    border: none;
    box-shadow: 0 10px 22px rgba(95, 62, 75, 0.08);
}

.lgnewui-home .cn-hero-moment-card {
    min-height: 126px !important;
    max-height: 126px;
}

.lgnewui-home .lgnewui-widget--photo .lgnewui-photo-action-minimal {
    bottom: 0.45rem;
    right: 0.45rem;
    width: 1.45rem;
    height: 1.45rem;
}

.lgnewui-home .lgnewui-widget--photo::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,0.28), transparent 28%),
        linear-gradient(180deg, rgba(17,24,39,0.04) 0%, rgba(17,24,39,0.12) 34%, rgba(17,24,39,0.56) 100%);
    z-index: 4;
    pointer-events: none;
}

.lgnewui-home .lgnewui-widget--photo::after {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.1) 36%, transparent 78%) !important;
}

.cn-polaroid {
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    height: 100%;
}

.cn-polaroid:hover {
    transform: none !important;
    box-shadow: none !important;
}

.cn-polaroid-tape {
    display: none !important;
}

.cn-polaroid-photo {
    border: none !important;
    border-radius: 0 !important;
}

.cn-hero-moment-panel {
    position: absolute;
    left: 0.45rem;
    right: 2.2rem;
    bottom: 0.45rem;
    z-index: 8;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    padding: 0.4rem 0.44rem;
    border-radius: 9px;
    background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.03));
    border: 1px solid rgba(255,255,255,0.10);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: 0 3px 8px rgba(95,62,75,0.04);
}

.cn-hero-moment-tag {
    width: fit-content;
    padding: 0.12rem 0.28rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.14);
    color: rgba(255,255,255,0.92);
    font-size: 0.38rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cn-hero-moment-title {
    font-family: var(--lg-font-serif);
    font-size: 0.58rem;
    line-height: 1.12;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 4px 14px rgba(0,0,0,0.14);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cn-hero-moment-meta {
    display: flex;
    align-items: center;
    gap: 0.24rem;
    flex-wrap: wrap;
    color: rgba(255,255,255,0.78);
    font-size: 0.4rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.cn-hero-moment-dot {
    width: 4px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,0.62);
}

.cn-polaroid-label {
    display: none !important;
}

.cn-polaroid-label i {
    display: none !important;
}

.cn-polaroid-time {
    display: none !important;
}

.cn-weather-card,
.cn-wish-card,
.cn-mem-card,
.cn-pic-card,
.cn-note-card,
.cn-todo-card,
.cn-quote-card,
.cn-cal-card,
.cn-world-card {
    border-radius: 24px !important;
    box-shadow: 0 12px 28px rgba(100, 70, 50, 0.05) !important;
}

.cn-weather-card,
.cn-wish-card,
.cn-world-card {
    overflow: hidden;
}

.cn-mem-card,
.cn-pic-card,
.cn-note-card,
.cn-todo-card,
.cn-quote-card,
.cn-cal-card {
    background: transparent !important;
    border: 1px solid rgba(175,160,170,0.12) !important;
    color: #4A3D36 !important;
    position: relative;
}

.cn-mem-card::before,
.cn-pic-card::before,
.cn-note-card::before,
.cn-todo-card::before,
.cn-quote-card::before,
.cn-cal-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(168,144,112,0.02), transparent 26%);
    pointer-events: none;
}

.cn-mem-inner,
.cn-pic-inner,
.cn-note-inner,
.cn-todo-inner,
.cn-quote-inner,
.cn-cal-inner {
    position: relative;
    z-index: 1;
}

.cn-mem-num,
.cn-pic-num,
.cn-note-num,
.cn-cal-day-num {
    font-size: 2rem !important;
    font-weight: 800 !important;
    letter-spacing: -0.04em;
    color: #403546 !important;
}

.cn-mem-label,
.cn-pic-label,
.cn-note-label,
.cn-cal-lunar,
.cn-cal-date-display,
.cn-cal-month,
.cn-todo-title,
.cn-quote-tag {
    color: rgba(61, 46, 40, 0.72) !important;
}

.cn-note-online {
    background: rgba(255,255,255,0.05) !important;
    color: rgba(61, 46, 40, 0.68) !important;
    border-radius: 999px;
    padding: 0.3rem 0.6rem;
}

.cn-todo-bar,
.cn-cal-bar {
    height: 10px !important;
    border-radius: 999px !important;
    background: rgba(200,160,130,0.08) !important;
}

.cn-todo-fill,
.cn-cal-bar-fill {
    border-radius: 999px !important;
    background: linear-gradient(90deg, rgba(200,144,110,0.18), rgba(212,164,130,0.28), rgba(195,145,115,0.36)) !important;
}

.cn-quote-card {
    background: linear-gradient(135deg, rgba(195, 145, 115, 0.10), rgba(175, 130, 105, 0.04)) !important;
    color: #FCF5EF !important;
}

.cn-quote-text,
.cn-quote-tag,
.cn-quote-mark {
    color: #FCF5EF !important;
}

.cn-world-card {
    background: linear-gradient(135deg, rgba(195, 145, 115, 0.08), rgba(175, 130, 105, 0.03)) !important;
}

.lgnewui-day-fusion-card {
    background: transparent !important;
    border: 1px solid rgba(175,160,170,0.18) !important;
    border-radius: 34px !important;
    box-shadow: 0 16px 36px rgba(100, 70, 50, 0.05) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: hidden;
}

.lgnewui-day-fusion-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: transparent;
    pointer-events: none;
}

.cn-weather-temp,
.cn-wish-ring-num,
.cn-wish-title,
.cn-world-days-num,
.cn-world-label {
    color: #403546 !important;
}

.lgnewui-day-poetic-title {
    color: rgba(45, 36, 46, 0.92) !important;
    font-family: 'HanYi CuFangSong', 'Noto Serif SC', serif !important;
    text-shadow: 0 10px 30px rgba(255, 255, 255, 0.28) !important;
}

.lgnewui-day-main-days-number {
    font-family: 'Fira Code', 'HarmonyOS-Sans', 'DIN Alternate', monospace !important;
    text-shadow: 0 14px 34px rgba(154, 116, 136, 0.18) !important;
}

.lgnewui-day-timer-val {
    color: rgba(47, 38, 48, 0.92) !important;
    font-family: 'Fira Code', 'HarmonyOS-Sans', 'DIN Alternate', monospace !important;
    text-shadow: 0 8px 24px rgba(154, 116, 136, 0.14) !important;
}

.lgnewui-day-date-label-small {
    color: #A299AB !important;
}

.lgnewui-day-date-value-clean {
    color: #D4A8B8 !important;
    font-family: 'Fira Code', 'HarmonyOS-Sans', 'DIN Alternate', monospace !important;
}

.lgnewui-day-start-date-capsule {
    background: transparent !important;
    border-color: rgba(175,160,170,0.18) !important;
}

.lgnewui-day-icon-circle {
    background: transparent !important;
    color: #D4A8B8 !important;
    box-shadow: none !important;
}

.lgnewui-day-days-label {
    color: #C2B8C6 !important;
}

.cn-wish-tag,
.cn-mem-trend,
.cn-note-online,
.cn-quote-tag,
.cn-weather-eyebrow,
.cn-world-eyebrow {
    background: transparent !important;
    border: 1px solid rgba(175,160,170,0.14) !important;
    border-radius: 999px !important;
    padding: 0.22rem 0.55rem !important;
    color: rgba(140,122,107,0.85) !important;
}

.cn-wish-stat-num,
.cn-mem-num,
.cn-pic-num,
.cn-note-num,
.cn-cal-day-num,
.cn-todo-pct {
    text-shadow: 0 1px 0 rgba(255,255,255,0.25);
}

.cn-weather-card .cn-weather-city,
.cn-wish-stat,
.cn-weather-dist-info,
.cn-weather-update {
    background: transparent !important;
    border: 1px solid rgba(175,160,170,0.12) !important;
    border-radius: 18px !important;
}

.cn-weather-stage,
.cn-wish-inner,
.cn-world-inner {
    position: relative;
    z-index: 1;
}

.cn-weather-stage::after,
.cn-wish-inner::after,
.cn-world-inner::after,
.cn-mem-inner::after,
.cn-pic-inner::after,
.cn-note-inner::after,
.cn-todo-inner::after,
.cn-quote-inner::after,
.cn-cal-inner::after {
    content: '';
    position: absolute;
    right: 18px;
    bottom: 14px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: transparent;
    pointer-events: none;
}

.cn-weather-stage::before,
.cn-wish-inner::before,
.cn-world-inner::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: transparent;
}

.cn-weather-header,
.cn-weather-update,
.cn-weather-name,
.cn-weather-cond,
.cn-weather-hilo,
.cn-weather-dist-info,
.cn-wish-tag,
.cn-wish-stat-label,
.cn-world-eyebrow,
.cn-world-days-unit,
.cn-world-heartbeat {
    color: #93899D !important;
}

.cn-weather-pulse-dot,
.cn-note-online-dot,
.cn-world-heartbeat-dot,
.cn-event-badge-dot {
    background: rgba(168,144,112,0.4) !important;
    box-shadow: 0 0 0 4px rgba(175,160,170,0.06) !important;
}

.cn-weather-avatar,
.cn-mem-icon,
.cn-note-icon,
.cn-pic-stack-icon,
.cn-todo-icon,
.cn-wish-ring-content {
    border: 1px solid rgba(175,160,170,0.14) !important;
    border-radius: 999px !important;
    box-shadow: inset 0 1px 0 rgba(175,160,170,0.12);
}

.cn-mem-icon,
.cn-note-icon,
.cn-pic-stack-icon,
.cn-todo-icon {
    background: transparent !important;
    color: rgba(61, 46, 40, 0.78) !important;
}

.cn-quote-mark {
    color: rgba(255,255,255,0.42) !important;
    opacity: 1;
}

.cn-cal-divider {
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.16), transparent) !important;
}

.cn-world-orbit-system,
.cn-world-twinkle,
.cn-world-orbit {
    animation: none !important;
}

.cn-world-orbit-system {
    opacity: 0.46;
    transform: scale(0.88);
}

.cn-section-head {
    align-items: end;
    gap: 0.9rem;
    padding-bottom: 1rem;
    margin-bottom: 1.4rem;
    border-bottom: 1px solid rgba(60,45,35,0.06);
}

.cn-section-title {
    font-size: 1.5rem;
    letter-spacing: 0.02em;
}

.cn-section-sub {
    font-size: 0.8rem;
    color: #94a3b8;
}

.cn-album-scroll {
    display: flex !important;
    gap: 1rem !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0.1rem 0 0.8rem !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(148,163,184,0.38) transparent;
}

.cn-album-scroll::-webkit-scrollbar {
    height: 6px;
}

.cn-album-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.cn-album-scroll::-webkit-scrollbar-thumb {
    background: rgba(148,163,184,0.38);
    border-radius: 999px;
}

.cn-album-polaroid {
    flex: 0 0 220px;
    background: rgba(255,255,255,0.92) !important;
    border: 1px solid rgba(60,45,35,0.06);
    border-radius: 24px !important;
    padding: 0.8rem !important;
    box-shadow: 0 8px 18px rgba(60,45,35,0.06) !important;
    transform: none !important;
    scroll-snap-align: start;
}

.cn-album-polaroid:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 24px rgba(60,45,35,0.07) !important;
}

.cn-album-polaroid:nth-child(even),
.cn-album-polaroid:nth-child(odd),
.cn-album-polaroid:nth-child(even):hover,
.cn-album-polaroid:nth-child(odd):hover {
    transform: none !important;
}

.cn-album-polaroid-img {
    position: relative;
    aspect-ratio: 4 / 3 !important;
    border-radius: 18px !important;
    overflow: hidden;
    margin-bottom: 0 !important;
}

.cn-album-polaroid-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 30%, rgba(60,45,35,0.10) 100%);
}

.cn-album-polaroid-img img {
    transition: transform 0.6s ease;
}

.cn-album-polaroid:hover .cn-album-polaroid-img img {
    transform: scale(1.02);
}

.cn-album-polaroid-text {
    white-space: normal !important;
    overflow: hidden;
    text-overflow: unset !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-align: left !important;
    font-family: var(--lg-font-serif);
    font-size: 0.88rem !important;
    line-height: 1.55;
    color: #111827 !important;
    font-weight: 700;
}

@media (max-width: 1023px) {
    .cn-album-polaroid {
        flex-basis: 200px;
    }
}

@media (max-width: 767px) {
    .lgnewui-home .lgnewui-grid {
        gap: 0.9rem;
    }

    .lgnewui-home .lgnewui-widget,
    .cn-album-polaroid {
        border-radius: 20px !important;
    }

    .cn-mem-num,
    .cn-pic-num,
    .cn-note-num,
    .cn-cal-day-num,
    .cn-weather-temp,
    .cn-wish-ring-num,
    .cn-world-days-num {
        font-size: 1.6rem !important;
    }

    .cn-weather-card,
    .cn-wish-card,
    .cn-world-card {
        min-height: 154px;
    }

    .lgnewui-home .lgnewui-widget--photo {
        min-height: 132px;
    }

    .lgnewui-home .cn-hero-moment-card {
        min-height: 118px !important;
        max-height: 118px;
    }

    .cn-polaroid-label {
        bottom: 3rem !important;
        left: 1rem !important;
    }

    .cn-polaroid-time {
        left: 1rem;
        bottom: 1.25rem;
        font-size: 0.75rem !important;
    }

    .cn-hero-moment-panel {
        left: 0.4rem;
        right: 1.95rem;
        bottom: 0.4rem;
        padding: 0.34rem 0.38rem;
        border-radius: 8px;
    }

    .cn-hero-moment-title {
        font-size: 0.52rem;
    }
}
@media(max-width:767px){
    .id-badge { padding: 1px 6px; font-size: 9px; border-radius: 8px; margin-left: 4px }
}

@media (max-width: 768px) {
    html,
    body,
    body.lgnewui-home,
    .lgnewui-home,
    .lgnewui-container,
    main.lgnewui-container,
    .footer,
    .footer-warp {
        background-color: transparent !important;
    }

    .lgnewui-section,
    .lgnewui-grid,
    .lgnewui-mosaic-grid,
    .album-list,
    .leaving-list,
    .favor-cards,
    .lit-list,
    .ll-cards {
        background: transparent !important;
    }

    .pg-card,
    .leaving-card,
    .leaving-form,
    .favor-card,
    .favor-form-card,
    .favor-mood-form-card,
    .favor-mood-item,
    .album-card,
    .ll-card,
    .lit-card,
    .lgnewui-home .lgnewui-widget,
    .cn-album-polaroid {
        background: rgba(255, 244, 237, 0.45) !important;
        border-color: rgba(180, 140, 120, 0.10) !important;
        box-shadow: 0 10px 30px rgba(100, 70, 50, 0.03) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .ll-tabs,
    .lgnewui-glass-panel,
    .album-detail-panel,
    .album-header-title,
    .leaving-header-title,
    .favor-header-title {
        background: rgba(255, 244, 237, 0.50) !important;
        border-color: rgba(180, 140, 120, 0.10) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .ll-search input,
    .leaving-form-input,
    .leaving-form-textarea,
    .favor-form-field select,
    .favor-form-field input,
    .favor-mood-textarea {
        background: rgba(255, 255, 255, 0.88) !important;
    }

    .lgnewui-home .lgnewui-widget--photo,
    .lgnewui-home .cn-hero-moment-card {
        min-height: 164px;
    }

    .bg-wrap.central.limg .middle {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .lgnewui-home .lgnewui-grid,
    .album-list,
    .leaving-list,
    .favor-cards,
    .lit-list,
.ll-cards {
         gap: 0.95rem;
     }
}

/* 天气预报 - 相距/实时数据文字颜色修复 */
.cn-weather-dist-info-item {
    color: #A299AB !important;
}
.cn-weather-dist-info-item svg {
    color: #D4A8B8 !important;
}
.cn-weather-dist-value {
    color: #D4A8B8 !important;
    font-family: 'DIN Alternate', 'Noto Sans SC', sans-serif !important;
}
.cn-weather-dist-info {
    border-color: rgba(175,160,170,0.18) !important;
    background: transparent !important;
}

/* LoveDay 副标题颜色 */
.lgnewui-day-timer-label {
    color: #A299AB !important;
}
.lgnewui-day-days-label {
    color: #C2B8C6 !important;
}
.lgnewui-home .lgnewui-loveday-label {
    color: #A299AB !important;
}
.lgnewui-day-date-label-small {
    color: #A299AB !important;
}

/* LoveDay 副标题/日期行/背景图标 */
.lgnewui-home .lgnewui-loveday-lunar-inline {
    color: #A299AB !important;
}
.lgnewui-home .lgnewui-loveday-date {
    color: #A299AB !important;
}
.lgnewui-home .lgnewui-loveday-date-line {
    color: #D4A8B8 !important;
}
.lgnewui-home .lgnewui-loveday-bg-icon path {
    fill: #A299AB !important;
}
