/* =========================================
   RESET & FONTS
========================================= */
@import url("https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css");

@font-face {
    font-family: "Love Diary Regular";
    src: local("Love Diary-Regular");
}
@font-face {
    font-family: "Love Diary";   /* You can name this whatever you want! */
    src: url("Love\ Diary.otf") format("truetype"); /* Make sure the filename matches exactly */
    font-weight: normal;
    font-style: normal;
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
}

body {
    background-color: #ffffff;
  font-family: "Love Diary";
    overflow-x: hidden;
}

/* =========================================
   MAIN CONTAINER
========================================= */
.story-page {
    width: 100%;
    max-width: 390px;
    margin: 0 auto;
    background-color: #ffffff;
    min-height: 100vh;
    padding-bottom: 40px;
    position: relative;
    overflow: hidden;
}

/* =========================================
   FLOATING DECORATIONS
========================================= */
.float-decor {
    position: absolute;
    font-size: 20px;
    color: #ffd2e7;
    opacity: 0.2;
    pointer-events: none;
    z-index: 0;
}
.d1 { top: 5%; left: 10%; animation: floatA 5s ease-in-out infinite; }
.d2 { top: 20%; right: 8%; animation: floatB 7s ease-in-out infinite; }
.d3 { bottom: 40%; left: 5%; animation: floatA 6s ease-in-out infinite; }

@keyframes floatA {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-15px) rotate(10deg); }
}
@keyframes floatB {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(15px) rotate(-10deg); }
}

/* =========================================
   HERO HEADER
========================================= */
.story-hero {
    position: relative;
    height: 300px;
    background-image: url(pic1.jpg);
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 30px 20px;
    border-bottom-left-radius: 50px;
    border-bottom-right-radius: 50px;
    z-index: 2;
}

.back-btn {
    position: absolute;
    top: 25px;
    left: 20px;
    font-size: 17px;
    color: #ffd2e7;
    -webkit-text-stroke: 0.5px #000000;
    text-decoration: none;
    transition: transform 0.3s ease;
    z-index: 10;
}
.back-btn:hover { transform: scale(1.1); }

.hero-text { text-align: center; z-index: 2; }
.hero-text h1 {
    font-size: 34px;
    color: #ffd2e7;
    -webkit-text-stroke: 0.71px #000000;
    margin-bottom: 10px;
}
.hero-text p {
    font-size: 10px;
    color: #ffffff;
    -webkit-text-stroke: 0.4px #000000;
    width: 80%;
    margin: 0 auto;
}
.hero-text {
    text-align: center;
    z-index: 2;
    margin-bottom: 40px;
}
/* =========================================
   STORY SECTIONS
========================================= */
.story-section {
    padding: 20px 15px;
    position: relative;
    z-index: 2;
}

.story-card {
    border-radius: 39.29px;
    border: 1.43px solid #000000;
    padding: 25px 20px;
    text-align: center;
}

.bg-soft-pink { background-color: #ffeef6; }
.bg-white { background-color: #ffffff; }

.card-img {
    width: 100%;
    height: 180px;
    border-radius: 29px;
    border: 1.43px solid #000000;
    background-size: cover;
    background-position: center;
    margin-bottom: 15px;
}

.story-card h2 {
    font-size: 22px;
    color: #ffd2e7;
    -webkit-text-stroke: 0.5px #000000;
    margin-bottom: 10px;
}
.story-card p {
    font-size: 11px;
    color: #444444;
    line-height: 1.8;
    margin-bottom: 12px;
}

/* =========================================
   MATERIALS GRID
========================================= */
.material-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 15px 0;
}
.mat-item {
    background-color: #ffffff;
    border: 1px solid #ffd2e7;
    border-radius: 20px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.mat-icon { font-size: 24px; }
.mat-item span { font-size: 10px; color: #666666; }

/* =========================================
   REVIEWS
========================================= */
.review-box {
    background-color: #ffffff;
    border-radius: 20px;
    padding: 15px;
    margin-bottom: 12px;
    border: 1px solid #ffd2e7;
}
.review-box p { font-size: 10px; color: #555555; margin-bottom: 5px; }
.review-name { font-size: 10px; color: #999999; display: block; text-align: right; }

/* =========================================
   QUOTE & SIGNATURE
========================================= */
.quote-text {
    font-size: 13px !important;
    color: #444444 !important;
    line-height: 2 !important;
    font-style: italic;
}
.signature {
    font-size: 14px;
    color: #ffd2e7;
    -webkit-text-stroke: 0.3px #000000;
    margin-top: 10px;
}

/* =========================================
   DIVIDERS
========================================= */
.cute-divider {
    text-align: center;
    font-size: 16px;
    color: #ffd2e7;
    letter-spacing: 6px;
    padding: 10px 0;
    position: relative;
    z-index: 2;
}

/* =========================================
   JOIN THE FAMILY BOX
========================================= */
.join-box {
    text-align: center;
    background-color: #ffffff;
    border-radius: 39.29px;
    border: 1.43px solid #000000;
    padding: 17px 20px;
    border-color: #ffd2e7;
}
.join-box h2 { font-size: 20px; color: #ffd2e7; -webkit-text-stroke: 0.5px #000000; margin-bottom: 8px; }
.join-box p { font-size: 10px; color: #666666; margin-bottom: 9px; }
.join-icons { display: flex; justify-content: center; gap: 20px; font-size: 28px; }
.join-icons span { transition: transform 0.3s ease; cursor: pointer; }
.join-icons span:hover { transform: scale(1.2) rotate(5deg); }

/* =========================================
   EXACT ORIGINAL FOOTER
========================================= */
.footer-wrapper {
    text-align: center;
    padding: 40px 15px 30px;
    background-color: #ffffff;
}
.footer-title {
    font-size: 30px;
    color: #ffd2e7;
    -webkit-text-stroke: 0.71px #000000;
    margin-bottom: 20px;
}
.footer-icons {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-bottom: 20px;
}
.footer-icons img {
    width: 36px;
    height: 36px;
    transition: transform 0.3s ease;
    cursor: pointer;
}
.footer-icons img:hover { transform: scale(1.2) rotate(5deg); }
.footer-text {
    font-size: 9.3px;
    color: #ffffff;
    -webkit-text-stroke: 0.71px #000000;
    line-height: 1.8;
    max-width: 242px;
    margin: 0 auto;
}

/* =========================================
   SCROLL ANIMATIONS
========================================= */
.fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.fade-up.show {
    opacity: 1;
    transform: translateY(0);
}