
:root {
    --main-pink: #E58B9D;
    --light-pink: #FEECEF;
    --text-color: #555555;
    --accent-pink: #F6B5C0;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Montserrat', 'Noto Sans TC', sans-serif;
    background-color: var(--light-pink);
    color: var(--text-color);
    line-height: 1.7;
}



.container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 60px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-grow: 1;            /* 自動填滿扣除 header 後剩下的螢幕高度 */
    justify-content: center; /* 讓裡面的所有內容垂直置中，達成上下均勻留白 */
}

/* 標題圖片 */
.header-title img {
    max-width: 280px;
    margin-bottom: 40px;
}

/* --- 上半部：IG 視覺區 --- */
.visual-section {
    position: relative;
    width: 100%;
    max-width: 650px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 60px;
}

/* 周圍的手寫標籤圖 (匯出的 PNG) */
.personality-tags {
    position: absolute;
    width: 130%; /* 稍微寬過 IG 卡片 */
    z-index: 1;
}
.personality-tags img { width: 100%; height: auto; }

/* IG 卡片本體 */
.ig-card {
    position: relative;
    z-index: 2;
    width: 85%;
    max-width: 380px;
    background: #fff;
    padding: 12px;
    box-shadow: 0 15px 35px rgba(229, 139, 157, 0.2);
    border-radius: 8px;
}
.ig-card img { width: 100%; display: block; border-radius: 4px; }

/* --- 中間身分標籤 --- */
.hashtags {
    width: 100%;
    display: flex;
    gap: 20px;
    font-weight: 700;
    color: var(--main-pink);
    font-size: 1.1rem;
    margin-bottom: 40px;
}

/* --- 下半部：自傳內容 --- */
.bio-wrapper {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    width: 100%;
}

/* 左側照片疊加區 */
.bio-images {
    flex: 1;
    position: relative;
    min-height: 500px;
}
.img-main {
    width: 90%;
    border-radius: 15px;
    position: relative;
    z-index: 2;
}
.img-sub {
    width: 45%;
    position: absolute;
    bottom: 0;
    left: -80px;
    z-index: 3;
}

/* 右側文字區 */
.bio-info {
    flex: 1.2;
}
.name-title {
    font-family: 'Montserrat', sans-serif;
    color: var(--main-pink);
    font-size: 2.5rem;
    margin-bottom: 5px;
    position: relative;
    width: max-content;
}
.name-title::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background-color: var(--light-pink); /* 使用背景色遮擋 */
    border-left: 3px solid transparent; /* 游標 */
    /* 打字動畫1.5秒完成 (約19個字元)，游標閃爍2次後消失 */
    animation: typing-uncover 1.5s steps(19, end) forwards, blink-cursor-main 0.75s step-end 2 forwards;
}
.nickname {
    color: var(--accent-pink);
    font-size: 1.3rem;
    font-family: 'Varela Round', sans-serif;
    margin-bottom: 30px;
    position: relative;
    width: max-content;
}
.nickname::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background-color: var(--light-pink);
    border-left: 3px solid transparent;
    /* 等第一行打完(延遲1.5秒)才開始打字 (約27個字元)，游標持續閃爍 */
    animation: typing-uncover 1.5s steps(27, end) forwards 1.5s, blink-cursor-accent 0.75s step-end infinite 1.5s;
}
.text-content-zh {
    font-size: 1.05rem;
    margin-bottom: 25px;
    text-align: justify;
}

.divider {
    width: 100%;
    height: 1px;
    background: linear-gradient(to right, var(--accent-pink), transparent);
    margin-bottom: 25px;
}

.text-content-en {
    font-size: 0.95rem;
    color: #777;
    line-height: 1.6;
}
/* =========================================
   動畫效果 (Animations)
   ========================================= */
   @keyframes fadeSlideDown {
    from { opacity: 0; transform: translateY(-30px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes popIn {
    0% { opacity: 0; transform: scale(0.8); }
    70% { opacity: 1; transform: scale(1.05); }
    100% { opacity: 1; transform: scale(1); }
}

.animate-title {
    animation: fadeSlideDown 0.8s ease-out forwards;
}

.animate-tags {
    animation: popIn 0.8s ease-out forwards;
    animation-delay: 0.3s; /* 讓標籤比標題晚一點點出現 */
    opacity: 0; /* 初始隱藏，避免動畫前閃爍 */
}

/* =========================================
   打字機動畫定義
   ========================================= */
@keyframes typing-uncover {
    from { width: 100%; }
    to { width: 0%; } /* 遮罩縮小到 0，完全露出文字 */
}

@keyframes blink-cursor-main {
    0%, 49% { border-left-color: var(--main-pink); }
    50%, 100% { border-left-color: transparent; }
}

@keyframes blink-cursor-accent {
    0%, 49% { border-left-color: var(--accent-pink); }
    50%, 100% { border-left-color: transparent; }
}
