/*!!!! 基础重置 */
/* #region 全局  */
:root {
  --nav-text-muted: rgba(255, 255, 255, 0.6); /* 次要文字颜色 */
  --accent-color: #deadc6;                    /* 原站粉紫亮色 */


}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
/*!!!!复制*/
/*整体页面*/
html {
    /* 去掉 height: 100%，让 html 跟随内容自由延展 */
    min-height: 100%; 
}

body, html {
    background-color: #000000;
    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 字体 */
/* =========================
   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 电脑端-导航栏 */
/* 电脑端-导航栏 */
    .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;
    }

    
   /* 电脑端-导航栏-文字&装饰 */
    .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 全屏项目单页 */

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

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

    /* Firefox */
    scrollbar-color: #777 #000000;
    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;
    }
    

    /* 每一个全屏项目单页 */
    .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;
    }

    /* 电影海报暗化遮罩（确保白色文字在亮色海报下也清晰） */
        .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: 1;
    }
    
    /* 首屏特别设计排版不能动先后 */
        .hero-section {
        color: #ffffff;
        align-items: center;
        justify-content: center;
        text-align: center;
        }

        .hero-content {
        position: relative;
        z-index: 2;
        }

        .hero-content h1 {
        font-family: "FreightNeo-pro", sans-serif;
        font-size: 64px;
        font-weight: 900;
        letter-spacing: 8px;
        margin-bottom: 15px;
        }

        .hero-content .subtitle {
        font-size: 20px;
        letter-spacing: 1px;
        color: rgba(255, 255, 255, 0.5);
        }

 
       /* 首页滚动提示（Scroll Indicator）样式与动画 */
        .scroll-indicator {
       /* 1. 核心定位：强制固定在中下方 */
            position: absolute;
            left: 50%;
            bottom: 40px; /* 距离底部的固定安全距离，决定上下位置 */
            transform: translateX(-50%); /* 确保绝对居中 */
            z-index: 10;
    
        /* 2. 調整上下位置（在這裡單獨修改！） */
            bottom: -250px;  /* 距離父模組/畫面底部的距離，你可以隨意改成 30px、50px 或 10% 等 */
            top: auto; /* 如果你想改成從頂部往下算，可以把 bottom 拔掉，改寫 top: 80%; */
        /* 3. 基礎電影感樣式 */
            font-size: 12px;
            font-weight: 600;
            color: rgba(255, 255, 255, 0.6); /* 带有半透明的高级质感 */
            text-transform: uppercase;       /* 强制英文大写 */
            letter-spacing: 2px;             /* 英文模式拉开字间距，更有艺廊感 */
            display: inline-flex;           /* 让文字和箭头在同一行 */
            align-items: center;
            gap: 12px;                       /* 文字和箭头的间距 */
        /* 4.核心：绑定名为 scrollFadePan 的动画，2秒一个循环，无限重复 */
            animation: scrollBounce 3s ease-in-out infinite; /* 確保置頂層級，不會被其他照片或文字遮擋 */}

        /* 中文竖排：排列方向保持竖直，每个汉字本身保持正向 */
        .scroll-indicator .lang-zh {
            writing-mode: vertical-rl;
            text-orientation: upright;
            transform: none;
            font-size: 17px;
            font-weight: 400;
            letter-spacing: 0.35em;
      
        }

        /* 中文模式不旋转整个提示，保证每个汉字都是正向的 */
        body:not(.en-mode) .scroll-indicator {
            flex-direction: column;
            animation-name: scrollBounceZh;
        }

        body:not(.en-mode) .scroll-indicator .arrow {
            transform: rotate(90deg);
        }

        /* 5. 箭头的单独微调（可选，防止切换时抖动） */
            .scroll-indicator .arrow {
            display: inline-block;
            transition: transform 0.3s ease; /* 平滑过渡 */
            }
        /* 6. CSS 动画核心帧控制 (@keyframes) */
        @keyframes scrollBounce{
            0% {opacity: 0.3;   /* 开始时较淡 */ transform: translateX(-50%) translateY(0) rotate(90deg);    /* 初始位置 */}
            40% { opacity: 1;transform: translateX(-50%)  translateY(-10px) rotate(90deg); }   
            60% { opacity: 0.5; transform: translateX(-50%) translateY(-5px) rotate(90deg); }
            100% {opacity: 0.3; /* 结束时变淡 */transform: translateX(-50%) translateY(0) rotate(90deg);   /* 回到原位 */}
        }

        @keyframes scrollBounceZh {
            0% { opacity: 0.3; transform: translateX(-50%) translateY(0); }
            40% { opacity: 1; transform: translateX(-50%) translateY(-10px); }
            60% { opacity: 0.5; transform: translateX(-50%) translateY(-5px); }
            100% { opacity: 0.3; transform: translateX(-50%) translateY(0); }
        }
        

    /* 两栏内容包装器-左右格式 */
    .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: 65%;
        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);
}




/* 极其微弱的电影胶片噪声（增添质感） */
.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: 1;
}


/* 视频设置 */
.project-section {
    position: relative;
    overflow: hidden; /* 防止视频尺寸超出 section 边界 */
    width: 100%;
    height: 100vh; /* 假设你原本是满屏设计 */
}

/* 核心：让视频绝对定位并铺满 */
.background-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover; /* 类似 background-size: cover，确保视频等比例裁剪铺满 */
    z-index: 0; /* 置于底层 */
}

/* 确保原本的遮罩层和文字内容浮在视频上方 */
.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:url('../assets/backdrop/hexed_16.png') repeat, /* 换成你实际的图片路径 */
        rgba(0, 0, 0, 0.501); /* 压暗底色，可根据需要微调 */
        
    /* 关键：利用正片叠底或柔光，让网格和底下的背景视频完美融为一体 */
    background-blend-mode: multiply; 
    
    /* 如果觉得网格太明显，可以用 opacity 整体变淡，推荐 0.3 - 0.6 之间 */
    opacity: 0.45; 
    z-index: 2; /* 确保遮罩层在视频上方，但在文字内容下方 */
}
/* #endregion */




/* ======================================================================================= */
/* #region 语言切换核心逻辑样式  */
/* 语言切换核心逻辑样式 */
    /* 默认状态（中文模式）：显示中文，隐藏英文 */
    /* 块级/段落元素控制 */
    .lang-zh { display: block; }
    .lang-en { display: none; }   
    body.en-mode .lang-zh { display: none !important; }   
    body.en-mode .lang-en { display: block; }   

    /* 行内元素控制 */
    span.lang-zh { display: inline; }
    span.lang-en { display: none; }
    body.en-mode span.lang-zh { display: none !important; }
    body.en-mode span.lang-en { display: inline; 
}
/* #endregion */

/* #region 固定社交 Icon 栏   */
/* ==================== 6. 固定社交 Icon 栏 (完全保留原样式) ==================== */
.social-bar {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background: rgba(20, 20, 20, 0.297);
  padding: 0.6rem 1.6rem;
  border-radius: 99px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 9998;
}

.social-link {
  color: var(--nav-text-muted);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  transition: all 0.3s ease;
}

.social-link:hover {
  color: var(--accent-color);
  transform: translateY(-2px);
}
/* #endregion */


/* ======================================================================================= */
/* #region 手机端  */
/* --------------------------------------------------------------------------
手机端
-------------------------------------------------------------------------- */
/* 手机端响应式优化 */
@media (max-width: 768px) {
    .social-bar {
        bottom: .65rem;
        max-width: calc(100vw - 18px);
        gap: .5rem;
      padding: .45rem .75rem;
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .social-bar::-webkit-scrollbar {
        display: none;
    }

    .social-link {
        flex: 0 0 auto;
        font-size: .72rem;
    }

    .social-bar svg {
        width: 13px;
        height: 17px;
    }

     /*导航整体*/
        .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 { font-size: 8px; letter-spacing: 1px; margin-left: 0px; }
            :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-family: 'Inter', sans-serif;
                font-size: 13px; /* 中文模式下的字号微调 */
                margin-left: 16px;
                }
             :lang(en) .nav-links a {
                font-family: 'Inter', sans-serif;
                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;
        }

    
    /*-分开-*/
    /*  内容文字设置 / 手机端由于屏幕窄*/   /*-页面设置-*/

    .project-content-wrapper { display: block; }/* 手机端取消 table 改为块级上下排列 */
    .project-left, .project-right {
        display: block;
        width: 100%;
        padding: 0;
    }
    .project-title {
        font-size:28px;
        font-weight: 900;
        font-style: italic;
        letter-spacing: 1px;
        line-height: 1.2;
        margin-bottom: 13px;
    }
    .project-left { margin-bottom: 45px;}
    
    .project-description  .lang-zh { 
        font-size: 16px; font-weight: 400; 
        color: #fcfcfcc1
     }
    /* 英文模式（当 body 拥有 .en-mode 时） */
    body.en-mode .project-description .lang-en {
        font-size: 16px;
        font-weight: 400; /* Inter 默认字重 */
        color: #fcfcfca1;
    }

}
/* #endregion */
