/* ================================================================
 * entry.css — 入口动画专属样式（仅 index.html 引用）
 * 需在 base.css / home.css 之后加载
 * ================================================================ */

:root {
    /* 入口动画尺寸 */
    --progress-height: clamp(8px, 1.5vh, 15px);
    --entry-logo-size: clamp(80px, 14vw, 160px);
    --entry-logo-top: clamp(-5px, -1vw, -10px);
    --entry-logo-left: clamp(-10px, -2vw, -20px);
    --galaxy-bottom: clamp(16px, 4vh, 40px);
    --galaxy-right: clamp(12px, 3vw, 40px);
    --main-title-size: clamp(16px, 3.5vw, 24px);
    --click-enter-size: clamp(14px, 2.8vw, 20px);
}

/* ========== 中央文字（入口） ========== */
.center-text {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, 80%);
    z-index: 5;
    text-align: center;
    color: var(--color-white);
    opacity: 0;
    transition: opacity 0.6s ease;
    white-space: nowrap;
}
.center-text.fade-out-text {
    opacity: 0 !important;
    pointer-events: none;
}
.main-title {
    font-size: var(--main-title-size);
    font-weight: 500;
    margin-bottom: clamp(16px, 3vh, 30px);
    letter-spacing: clamp(1px, 0.4vw, 3px);
}
.click-enter {
    font-size: var(--click-enter-size);
    cursor: url('../%E7%81%AB%E7%AE%AD.svg') 13 4, pointer;
    font-weight: 300;
    letter-spacing: clamp(1px, 0.4vw, 3px);
    transition: opacity 0.3s ease;
}
.click-enter:hover {
    opacity: 0.8;
}
@media (hover: hover) and (pointer: fine) {
    .click-enter:hover {
        opacity: 0.7;
    }
}

/* ========== 星系描述（入口） ========== */
.galaxy-description {
    position: fixed;
    bottom: var(--galaxy-bottom);
    right: var(--galaxy-right);
    z-index: 26;
    color: var(--color-white);
    max-width: min(600px, 88vw);
    width: auto;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.7);
    font-family: var(--font-main);
    opacity: 0;
    transition: opacity 0.9s cubic-bezier(0.2, 0.9, 0.3, 1.0);
    pointer-events: none;
    user-select: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.galaxy-description.fade-out {
    opacity: 0 !important;
    transition: opacity 0.5s ease;
}
.galaxy-title {
    font-size: clamp(10px, 3.5vw, 20px);
    font-weight: 500;
    line-height: 1.2;
    text-align: left;
    letter-spacing: clamp(1px, 0.3vw, 2px);
    margin-bottom: clamp(10px, 2vh, 20px);
    word-break: break-word;
}
.galaxy-body {
    font-size: clamp(7px, 2.5vw, 9px);
    font-weight: 200;
    line-height: 1.5;
    text-align: justify;
    text-justify: inter-ideograph;
    width: 100%;
    max-width: min(600px, 88vw);
    word-break: break-word;
    color: rgba(255, 255, 255, 0.95);
    letter-spacing: 1px;
}

/* ========== 进度条（入口） ========== */
.progress-wrapper {
    position: fixed;
    top: 50%;
    left: 0;
    width: 100%;
    height: var(--progress-height);
    transform: translateY(-50%);
    z-index: 10;
    transition: opacity 0.8s ease;
}
.progress-fill {
    position: absolute;
    left: 0;
    top: 0;
    width: 0%;
    height: var(--progress-height);
    background: var(--color-white);
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.7);
    transition: width 0.05s linear;
    border-radius: 0 2px 2px 0;
}
.progress-value {
    position: absolute;
    color: var(--color-white);
    font-size: clamp(16px, 3vw, 24px);
    font-weight: 500;
    transform: translateX(-50%);
    bottom: calc(var(--progress-height) + 10px);
    white-space: nowrap;
}

/* ========== 入口Logo ========== */
.entry-logo {
    position: fixed;
    top: var(--entry-logo-top);
    left: var(--entry-logo-left);
    width: var(--entry-logo-size);
    height: var(--entry-logo-size);
    z-index: 15;
    pointer-events: none;
    transition: opacity 0.4s ease;
    opacity: 1;
}
.entry-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.entry-logo.fade-out {
    opacity: 0;
    pointer-events: none;
}

/* ========== 合并容器：home 内容（遮罩层，入场动画结束后显示） ========== */
#homeStage {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    z-index: 25;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s ease;
    pointer-events: none;
}
#homeStage.visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
/* 合并入口：homeStage 显示后，内部内容同步可见 */
#homeStage.visible .main-content {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
#homeStage.visible #particle-container {
    opacity: 1;
}

/* ========== 入口动画响应式断点（仅入口相关部分；section 断点在 base.css） ========== */
@media (max-width: 700px) {
    .galaxy-description {
        bottom: clamp(12px, 3vh, 20px);
        right: clamp(10px, 3vw, 20px);
        max-width: 92vw;
        align-items: flex-start;
    }
    .galaxy-body {
        max-width: 92vw;
        font-size: clamp(8px, 3vw, 10px);
    }
    .galaxy-title {
        font-size: clamp(11px, 4vw, 16px);
    }
}
@media (max-width: 600px) {
    :root {
        --entry-logo-size: 90px;
        --entry-logo-top: 10px;
        --entry-logo-left: 10px;
        --progress-height: 10px;
    }
    .entry-logo {
        width: 90px;
        height: 90px;
        top: 10px;
        left: 10px;
    }
    .galaxy-description {
        bottom: 10px;
        right: 8px;
        max-width: 90vw;
    }
    .galaxy-body {
        max-width: 90vw;
        font-size: 8px;
    }
    .galaxy-title {
        font-size: 10px;
        margin-bottom: 8px;
    }
    .progress-value {
        font-size: 14px;
        bottom: 16px;
    }
    .main-title {
        font-size: 16px;
        letter-spacing: 2px;
    }
    .click-enter {
        font-size: 14px;
        letter-spacing: 2px;
    }
}
@media (max-width: 380px) {
    :root {
        --entry-logo-size: 65px;
        --entry-logo-top: 6px;
        --entry-logo-left: 4px;
        --progress-height: 7px;
    }
    .entry-logo {
        width: 65px;
        height: 65px;
        top: 6px;
        left: 4px;
    }
    .galaxy-description {
        bottom: 6px;
        right: 4px;
        max-width: 94vw;
    }
    .galaxy-body {
        font-size: 7px;
        max-width: 94vw;
    }
    .galaxy-title {
        font-size: 9px;
        margin-bottom: 4px;
    }
}
@media (min-width: 2200px) {
    :root {
        --entry-logo-size: 200px;
    }
}
@media (max-height: 500px) and (orientation: landscape) {
    .galaxy-description {
        bottom: 4px;
        right: 4px;
        max-width: 50vw;
    }
    .galaxy-body {
        font-size: 6px;
        line-height: 1.25;
    }
    .galaxy-title {
        font-size: 8px;
        margin-bottom: 3px;
    }
}