/* #region 全局电影感基础配置  */
/* ==========================================================================
   1. 全局电影感基础配置 & Cargo 核心适配
   ========================================================================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0px;
    
}

html {
    /* 去掉 height: 100%，让 html 跟随内容自由延展 */
    min-height: 100vh; 
}
body {
    background-color: #0e0e10; 
    color: #ffffff;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    min-height: 100vh;
    
    /* ✨ 核心修改：利用 Flex 布局的自适应能力 */
    display: flex;
    flex-direction: column; 
    
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    position: relative;
}
/* #endregion */

/* #region 电脑端-导航栏 */
/* 电脑端-导航栏 */
    .global-nav {
        position:sticky;
        top:0;
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 15px 80px;
        z-index: 100;
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.205) 0%, rgba(0, 0, 0, 0.198) 100%);
        backdrop-filter: blur(5px);
        -webkit-backdrop-filter: blur(5px);
    }
    /* 导航栏 LOGO 样式及多语言微调 */
.nav-logo a {
    color: #ffffff;
    text-decoration: none;
    font-size: 16px;
    font-weight: 700;
}
:lang(zh-CN).nav-logo a {
    letter-spacing: 1px;
}
:lang(en).nav-logo a {
    letter-spacing: 2px;
}
/* 导航栏链接文字及装饰 */
    /* 导航栏 LOGO 样式及多语言微调 */
    .nav-links{
    margin-left: auto;
    }
    .nav-links a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 1px;
    margin-left: 30px;
    transition: color 0.3s ease;
}
    .nav-links a:hover, 
    .nav-links a.active {
    color: #ffffff;
}


/* #endregion */


/* #region 语言切换按钮*/
/* 语言切换按钮核心样式 */ 
.lang-toggle { 
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: #fff;
    padding: 4px 10px;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    letter-spacing: 1px;
    cursor: pointer;
    /*按钮多圆*/
    border-radius:900px;
    transition: all 0.3s ease;
    margin-left: 15px;
    vertical-align: middle;
    }
    .lang-toggle:hover {
    background: #fff;
    color: #000;
    border-color: #fff;
}
/* #endregion */


/* #region 字体  */
/*字体 */
/* =========================
   FreightNeo Font Family
   ========================= */
    /* Light */
    @font-face {
    font-family: "FreightNeo";
    src: url("../assets/fonts/FreightNeo-W03-Light.woff") format("woff");
    font-weight: 300;
    font-style: normal;
    }

    /* Book */
    @font-face {
    font-family: "FreightNeo";
    src: url("../assets/fonts/FreightNeo-W03-Book.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    }

    /* Bold */
    @font-face {
    font-family: "FreightNeo";
    src: url("../assets/fonts/FreightNeo-W03-Bold.woff") format("woff");
    font-weight: 700;
    font-style: normal;
    }

    /* Semi */
    @font-face {
    font-family: "FreightNeo-pro";
    src: url("../assets/fonts/FreightNeo_Pro_Semi.otf") format("opentype");
    font-weight: 600;
    font-style: normal;
    }

    /* Bold Pro */
    @font-face {
    font-family: "FreightNeo-pro";
    src: url("../assets/fonts/FreightNeo_Pro_Bold.woff.otf") format("opentype");
    font-weight: 800;
    font-style: normal;
    }

    /* Black */
    @font-face {
    font-family: "FreightNeo-pro";
    src: url("../assets/fonts/FreightNeo_Pro_Black.otf") format("opentype");
    font-weight: 900;
    font-style: normal;
    }

    /* Semi Italic */
    @font-face {
    font-family: "FreightNeo-pro";
    src: url("../assets/fonts/FreightNeo_Pro_Semi_Italic.otf") format("opentype");
    font-weight: 600;
    font-style: italic;
    }

    /* Bold Italic */
    @font-face {
    font-family: "FreightNeo-pro";
    src: url("../assets/fonts/FreightNeo_Pro_Bold_Italic.otf") format("opentype");
    font-weight: 800;
    font-style: italic;
    }

    /* Black Italic */
    @font-face {
    font-family: "FreightNeo-pro";
    src: url("../assets/fonts/FreightNeo_Pro_Black_Italic.otf") format("opentype");
    font-weight: 900;
    font-style: italic;
    }

/* #endregion */


/* #region 电影全屏  */
/* 电影全屏吸附滚动容器 */
.scroll-container {
    width: 100%;
    height: 100vh;
    overflow-y: scroll;

    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;

    /* Firefox */
    scrollbar-color: #777 #111;
    scrollbar-width: thin;
}

/* Chrome / Edge / Safari */
.scroll-container::-webkit-scrollbar {
    width: 14px;   /* 你的截图比 8px 稍宽，建议 12~14px */
}

.scroll-container::-webkit-scrollbar-track {
    background: #111;
}

.scroll-container::-webkit-scrollbar-thumb {
    background: #777;
    border-radius: 999px;

    /* 做出截图里两边留黑边的效果 */
    border: 3px solid #111;
}

.scroll-container::-webkit-scrollbar-thumb:hover {
    background: #999;
}

/* 年份快捷导航 */
.year-nav {
    position: fixed;
    top: 50%;
    right: 38px;
    transform: translateY(-50%);
    z-index: 120;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 58px;
}

.year-nav::before {
    content: '';
    position: absolute;
    top: 5px;
    right: 3px;
    bottom: 5px;
    width: 1px;
    background: rgba(255, 255, 255, 0.32);
}

.year-nav a {
    position: relative;
    display: block;
    padding-right: 17px;
    color: rgba(255, 255, 255, 0.38);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 1px;
    line-height: 1;
    text-decoration: none;
    transition: color 0.25s ease;
}

.year-nav a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    transform: translateY(-50%);
    transition: background 0.25s ease, transform 0.25s ease;
}

.year-nav a:hover::after,
.year-nav a:focus-visible::after,
.year-nav a.active::after {
    background: #fff;
    transform: translateY(-50%) scale(1.15);
}

.year-nav a:hover,
.year-nav a:focus-visible,
.year-nav a.active {
    color: #fff;
}

.year-nav a:focus-visible {
    outline: 1px solid rgba(255, 255, 255, 0.7);
    outline-offset: 6px;
}





/* 每一个全屏项目单页 */

    .project-section {
        
        position: relative;
        width: 100%;
        height: 100vh;
        scroll-snap-align: start; /* 滚动对齐起点 */
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        display: flex;
        align-items: flex-end; /* 让内容靠下对齐，留出视觉中心 */
        padding: 100px 100px;
    }

    /* 两栏内容包装器-左右格式 */
    .project-content-wrapper {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 76%;
        display: flex;
        justify-content: space-between;
        align-items: center; /* 使用 table 布局保证在 WeasyPrint/VS Code 中具有极高的稳定性 */
        /* 💡 核心修复：让内容层级高于遮罩层(z-index: 1) */
        z-index: 2;
}

/* 左侧：项目名字、时间、岗位 */
.project-left {
    display: table-cell;
    width: 45%;
    vertical-align: middle;  
    padding-right:50px;
    
}

.project-title {
    font-family: "FreightNeo-pro", sans-serif;
    font-size: 40px;
    font: weight 900;
    font-style: italic;
    letter-spacing: -1px;
    margin-bottom: 25px;
    line-height: 1.2;
}

.project-meta {
    font-size: 13px;
    letter-spacing: 1px;
    color: rgba(255, 255, 255, 0.779);
}
/* 左侧:时间、岗位 */
.meta-item {
    margin-bottom: 5px;
}

.meta-item .label {
    font-weight: 700;
    color: rgba(255, 255, 255, 0.589);
    margin-right: 8px;
}

/* 右侧：简介、详情按钮 */
.project-right {
    display: table-cell;
    width: 35%;
    vertical-align: middle;
}

    .project-description {
        font-size: 18px;
        line-height: 1.7;
        color: rgba(255, 255, 255, 0.822);
        margin-bottom: 15px;
        font-weight: 300;
        text-align: justify;
        
        }

    /* 当处于英文模式时，强制将项目描述的整段文字改为左对齐 */
        body.en-mode .project-description {
        text-align: left !important;
        }
        /* 单独微调英文描述内容的排版 (Home首页特殊用)) */
        .project-description .lang-en {
        font-family: "Inter", sans-serif; /* 使用专业的英文字体 */
        font-weight: 100;          /* 轻量化字体，让英文看起来更精致 */
        font-size: 17px;          /* 稍微调小字号（中文如果是16px，英文14px会更精致） */
        color: rgba(255, 255, 255, 0.779);
        line-height: 1.5;        /* 放大行距，给英文单词足够的呼吸空间 */
        letter-spacing: 0.1px;    /* 微调字间距，让长句在视觉上更具高级感 */
        opacity: 100;            /* 稍微降低一点点透明度，让大段英文看起来不刺眼 */
        z-index: 5; /* 确保英文模式下的描述文字仍然在遮罩层之上 */
    }


/* 详情按钮设计 */
    .details-btn {
    display: inline-block;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255,255,255,0.3);
    padding-bottom: 6px;
    transition: all 0.3s ease;
    }

    .details-btn:hover {
    border-bottom-color: #ffffff;
    padding-left: 5px;
    }

    .details-btn .arrow {
    margin-left: 5px;
    display: inline-block;
    transition: transform 0.3s ease;
    }

    .details-btn:hover .arrow {
    transform: translateX(5px);
}

/* 电影海报暗化遮罩（确保白色文字在亮色海报下也清晰） */
 .overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.79) 0%, rgba(0, 0, 0, 0.133) 50%, rgba(0, 0, 0, 0) 100%);
        z-index: 2;/* 确保遮罩层在视频上方，但在文字内容下方 */
}


/* #endregion */


/* #region 手机移动端  */
/* 手机端响应式优化 */
@media (max-width: 768px) {
    .year-nav {
        top: 35%;
        right: 24px;
        gap: 0;
        padding: 14px 0 28px 22px;
        user-select: none;
        -webkit-user-select: none;
        -webkit-touch-callout: none;
    }

    .year-nav::before {
        content: '';
        display: block;
        position: absolute;
        right: 1px;
        bottom: 17px;
        width: 5px;
        height: 5px;
        border-top: 1px solid rgba(255, 255, 255, 0.55);
        border-left: 1px solid rgba(255, 255, 255, 0.55);
        transform: rotate(45deg);
        pointer-events: none;
    }

    .year-nav::after {
        content: '';
        position: absolute;
        right: 1px;
        bottom: 5px;
        width: 5px;
        height: 5px;
        border-right: 1px solid rgba(255, 255, 255, 0.55);
        border-bottom: 1px solid rgba(255, 255, 255, 0.55);
        transform: rotate(45deg);
        animation: year-swipe-hint 1.8s ease-in-out infinite;
        pointer-events: none;
    }

    .year-nav a {
        display: none;
        padding: 8px 0;
        color: #fff;
        font-size: 11px;
        letter-spacing: 1px;
        transform-origin: center;
        touch-action: pan-y;
        transition: opacity 0.16s ease, transform 0.16s ease;
    }

    .year-nav a::after {
        display: none;
    }

    .year-nav a.active,
    .year-nav.is-scrubbing a.scrub-selected {
        display: block;
    }

    .year-nav.is-scrubbing a.scrub-selected {
        animation: year-dial-tick 0.16s ease-out;
    }

    .year-nav.is-scrubbing a.active:not(.scrub-selected) {
        display: none;
    }

    .year-nav.is-scrubbing {
        transform: translateY(-50%) scale(1.18);
    }

    @keyframes year-dial-tick {
        from {
            opacity: 0;
            transform: translateY(7px) scale(0.86);
        }
        to {
            opacity: 1;
            transform: translateY(0) scale(1);
        }
    }

    @keyframes year-swipe-hint {
        0%, 100% {
            opacity: 0.35;
            transform: translateY(-2px) rotate(45deg);
        }
        50% {
            opacity: 0.8;
            transform: translateY(2px) rotate(45deg);
        }
    }

    /* #region 手机导航  */
    .global-nav {
        padding: 10px 10px 10px 6px; 
        flex-wrap: wrap; /* 空间不足时自动换行，防组件溢出屏幕 */
        justify-content: space-between;
        align-items: center; 
    } 

    /* 手机端导航 LOGO 微调 */
        .nav-logo a {
        display: flex;
        align-items: center;
        justify-content: center;
        }   
        :lang(zh-CN) .nav-logo a,
        :lang(en) .nav-logo a { 
        font-size: 8px; 
        letter-spacing: 1px; 
        margin-left: 0px; 
    }

    /*导航文字*/
        .nav-links { 
        display: flex !important; /* 强制保持原导航显示状态 */
        flex-wrap: wrap; 
        align-items: center;
        text-align: justify;
        }
            :lang(zh-CN) .nav-links a {
        font-size: 13px; 
        margin-left: 16px;
        }
            :lang(en) .nav-links a {
        font-size: 12px; 
        margin-left: 8px;   
    }
   
    /* 语言按钮优化 */
        :lang(zh-CN) .lang-toggle {
        margin-left: 10px; 
        padding: 3px 10px; 
        font-size: 10px;
        }
        :lang(en) .lang-toggle {
        margin-left: 10px; 
        padding: 3px 8px; 
        font-size: 9px;
    }/* #endregion  导航*/


    /* #region 手机移动端  */
    /* 手机端关于我（About Me）双栏降级为垂直单栏排布 */
        .about-container {
        flex-direction: column;
        align-items: center;    /* 让照片和文字在手机端整体居中对齐 */
        margin-top: 100px;
        padding: 10px 20px;
        gap: 40px;              /* 图片与下方文字之间的呼吸间距 */
    }
        .about-image-wrapper {
        flex: 0 0 auto;
        width: 100%;             /* ✨照片在移动端占据 80% 宽度，随窗口缩小而自动等比例缩小 */
        max-width: 2600px;       /* 限制最大宽度，防止在稍大一点的平板上照片过大 */
    }
        .profile-image {
        width: 100%;
        height: auto;
        object-fit: cover;
        filter: grayscale(16%) contrast(105%);
    }
    .project-section {
        padding: 60px 30px;
    }
    .project-content-wrapper {
        display: block; /* 手机端取消 table 改为块级上下排列 */
    }
    .project-left, .project-right {
        display: block;
        width: 100%;
        padding: 0;
    }
    .project-title {
        font-size: 28px;
        margin-bottom: 15px;
    }
    .project-left {
        margin-bottom: 25px;
    }
    .project-description {
        font-size: 14px;
    }/* #endregion */
}
/* #endregion */

/* 极其微弱的电影胶片噪声（增添质感） */
.film-grain {
    position: fixed;
    top:0; left:0; width:100%; height:100%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    opacity: 0.025;
    pointer-events: none;
    z-index: 999;
}

    
/* #region 语言切换核心 */
/* ==========================================================================
    !!!!语言切换核心逻辑样式!!!!
========================================================================== */

/* 默认状态（中文模式）：显示中文，隐藏英文 */
    .lang-zh {
    display: inline; /* 块级元素根据需要可以设为 block，但内联包裹用 inline 最佳 */
    }
    .lang-en {
        display: none;
    }   
   

/* 英文状态下（当 body 带有 .en-mode 类时）：显示英文，隐藏中文 */
    body.en-mode .lang-zh {
        display: none !important;
    }   
    body.en-mode .lang-en {
        display: inline;
    }   



/* #endregion */
