/* ========================================
   Portfolio Replica - Restructured CSS
   ======================================== */

/* 架构说明：
   1. Reset & Variables     - CSS 变量和重置
   2. Global Layout         - 全局布局容器
   3. Header                - 网站头部
   4. Home Page             - 首页样式
   5. Project Cover         - 项目封面卡片
   6. Project Detail Shared - 详情页通用样式
   7. HeatWave Detail       - HeatWave 项目专用
   8. Responsive            - 响应式和无障碍
*/


/* ========================================
   1. Reset & Variables
   ======================================== */

/* ========================================
   CSS Variables & Reset
   ======================================== */

:root {
    --color-bg: rgb(0, 0, 0);
    --color-text: rgb(231, 222, 209);
    --header-height: 46.375px;
    --font-mono: 'NB Akademie Mono', 'Courier New', monospace;
    --font-display: 'NB Akademie', -apple-system, BlinkMacSystemFont, sans-serif;
    
    /* 详情页字体系统 */
    --detail-font-serif: 'SimSun', 'STSong', serif;
    --detail-font-title: 'AmstelvarAlpha', serif;
    
    /* 详情页字号 */
    --detail-fs-xl: 74px;      /* 大标题 */
    --detail-fs-h3: 20px;      /* 小标题 */
    --detail-fs-body: 16px;    /* 正文 */
    
    /* 详情页行高 */
    --detail-lh-title: 1.2;
    --detail-lh-body: 2.1875;  /* 35px / 16px */
    
    /* 详情页间距 */
    --detail-spacing-section: 80px;   /* 模块间距 */
    --detail-spacing-title: 24px;     /* 标题下方间距 */
    --detail-spacing-para: 24px;      /* 段落间距 */
}

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

body {
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.4;
    overflow: hidden;
    cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"><rect width="1" height="1" fill="transparent"/></svg>'), none;
}

/* 隐藏滚动条但保留滚动功能 */
body::-webkit-scrollbar {
    display: none;
}

body {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

body.is-home-page {
    /* 首页特定样式 */
}


/* ========================================
   2. Global Layout
   ======================================== */

/* ========================================
   Container
   ======================================== */

.container {
    display: grid;
    width: 100vw;
    height: 100vh;
    position: relative;
}

.container.index {
    /* 首页容器 */
}

/* ========================================
   Background Noise
   ======================================== */

.bg-noise {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.08;
    pointer-events: none;
    z-index: 200;
    background-image: url('../assets/noise.png');
    background-repeat: repeat;
    background-size: 64px 64px;
    mix-blend-mode: screen; /* 让噪点在黑底上可见 */
    animation: noise-flicker 0.15s steps(3) infinite;
}

/* 详情页打开时隐藏噪点 */
body.detail-open .bg-noise {
    display: none;
}

@keyframes noise-flicker {
    0% { opacity: 0.06; }
    33% { opacity: 0.08; }
    66% { opacity: 0.10; }
    100% { opacity: 0.06; }
}

/* ========================================
   Design Grid System
   ======================================== */

.design-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 30px;
    padding: 0 30px;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}


/* ========================================
   3. Header
   ======================================== */

/* ========================================
   Site Header
   ======================================== */

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    background-color: var(--color-bg);
    border-bottom: 1px solid var(--color-text);
    z-index: 150; /* 提高 z-index，确保在详情页之上 */
    display: flex;
    align-items: center;
}

/* 导航栏中间的白线（对准首页竖线） */
.site-header::before {
    content: '';
    position: absolute;
    left: calc(50% - 1px); /* 向左挪 1px */
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: var(--color-text);
    z-index: 1;
}

.site-header .design-grid {
    position: relative;
    align-items: center;
}

.logo-link {
    grid-column: 1 / span 2;
    display: flex;
    align-items: center;
    color: var(--color-text);
    text-decoration: none;
}

.logo-text {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.svg-badge {
    width: 30px;
    height: auto;
}

.entry.info {
    grid-column: 3 / span 2;
    text-transform: uppercase;
    font-size: 11px;
    line-height: 1.3;
}

.entry.info p {
    margin: 0;
}

.link-menu.social-menu {
    grid-column: 5 / span 2;
    display: flex;
    gap: 20px;
}

.link-item {
    color: var(--color-text);
    text-decoration: none;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.5px;
}

.link-item:hover {
    opacity: 0.7;
}

/* Marquee - 从白线位置开始，占满右半屏幕 */
.marquee-container {
    position: absolute;
    left: calc(50% - 1px); /* 从白线位置开始 */
    right: 0; /* 到屏幕右边缘 */
    height: 100%;
    padding-left: 0; /* 左边紧贴白线 */
    padding-right: 0; /* 右边顶到屏幕边缘 */
    overflow: hidden;
    display: flex;
    align-items: center;
    z-index: 2; /* 确保在白线之上 */
}

.marquee-text-wrap {
    display: flex;
    white-space: nowrap;
    animation: marquee 30s linear infinite;
}

.marquee-text {
    font-size: 20px;
    text-transform: uppercase;
    padding-right: 0; /* 去掉右边距，让字幕顶到边缘 */
}

@keyframes marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}


/* ========================================
   4. Home Page
   ======================================== */

/* ========================================
   Main & Work Slideshow
   ======================================== */

main.front-page {
    position: relative;
    width: 100%;
    height: 100%;
}

.work-slideshow {
    position: relative;
    width: 100%;
    height: calc(100vh - var(--header-height));
    margin-top: var(--header-height);
    overflow: hidden;
}

.slider {
    display: flex;
    height: 100%;
    will-change: transform;
}

/* ========================================
   Hero (首屏)
   ======================================== */

.hero {
    position: relative;
    width: 100vw;
    height: 100%;
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    border-right: 1px solid var(--color-text); /* 右边添加竖线 */
}

.copy-container {
    position: absolute;
    top: 50px;
    left: 30px;
    width: auto;
    max-width: 1280px;
    padding: 0;
    z-index: 10;
}

.manifesto-area {
    margin-bottom: 60px;
}

.manifesto {
    font-family: var(--font-display);
    font-size: clamp(60px, 8vw, 107.52px);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: -0.02em;
    color: var(--color-text);
    grid-column: 1 / -1;
    position: relative;
    z-index: 15;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.manifesto .text-line {
    display: block;
    animation: text-slideup 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    opacity: 0;
    white-space: nowrap;
}

.manifesto .text-line:nth-child(1) {
    animation-delay: 0.13s;
}

.manifesto .text-line:nth-child(2) {
    animation-delay: 0.26s;
}

.manifesto .text-line:nth-child(3) {
    animation-delay: 0.39s;
}

.manifesto-subtitle {
    font-family: var(--font-display);
    font-size: clamp(40px, 5vw, 70px);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: var(--color-text);
    grid-column: 1 / -1;
    position: relative;
    z-index: 15;
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.manifesto-subtitle .text-line {
    display: block;
    animation: text-slideup 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    opacity: 0;
    white-space: nowrap;
}

.manifesto-subtitle .text-line:nth-child(1) {
    animation-delay: 0.39s;
}

.manifesto-subtitle .text-line:nth-child(2) {
    animation-delay: 0.52s;
}

.information {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.info-col {
    font-size: 11px;
    line-height: 1.6;
}

.info-col-narrow {
    max-width: 80%;
}

.info-col p {
    margin-bottom: 10px;
}

.info-col a {
    color: var(--color-text);
    text-decoration: none;
    border-bottom: 1px solid var(--color-text);
}

.info-col a:hover {
    opacity: 0.7;
}

/* ========================================
   Work Slide
   ======================================== */

.work-slide {
    position: relative;
    width: 100vw;
    height: 100%;
    flex-shrink: 0;
    background-color: var(--color-bg);
    z-index: 2;
    border-right: 1px solid var(--color-text); /* 右边添加竖线 */
    border-bottom: 1px solid var(--color-text); /* 底部添加白线 */
}

/* 项目封面 */
.project-cover {
    position: relative;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"><rect width="1" height="1" fill="transparent"/></svg>'), none; /* 隐藏系统鼠标 */
}

/* 导航栏区域显示系统鼠标 */
.site-header {
    cursor: auto;
}

.site-header * {
    cursor: auto;
}

/* 项目详情 - 默认隐藏 */
.project-detail {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--color-bg);
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 100;
    padding-top: var(--header-height);
    transform: translateY(100%); /* 初始位置在屏幕下方 */
    transition: transform 0.6s cubic-bezier(0.65, 0, 0.35, 1);
    cursor: auto; /* 显示系统鼠标 */
}

/* 详情页激活状态 */
.project-detail.active {
    display: block;
}

/* 详情页滑入动画 */
.project-detail.slide-in {
    transform: translateY(0); /* 滑入到正常位置 */
}

/* 隐藏详情页的滚动条 */
.project-detail::-webkit-scrollbar {
    display: none;
}

.project-detail {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.detail-content {
    max-width: none;
    margin: 0;
    padding: 0;
    color: var(--color-text); /* 强制设置文字颜色 */
}

.detail-content h2:not(.detail-title-xl) {
    font-family: var(--font-display);
    font-size: clamp(30px, 4vw, 60px);
    margin-bottom: 40px;
    color: var(--color-text); /* 强制设置标题颜色 */
}

.detail-content h3 {
    font-family: var(--font-display);
    font-size: clamp(20px, 3vw, 40px);
    margin-top: 60px;
    margin-bottom: 30px;
    color: var(--color-text);
}

.detail-content p {
    font-family: var(--font-mono);
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 20px;
    color: var(--color-text); /* 强制设置段落颜色 */
}

/* 返回按钮 */
.back-to-work {
    display: inline-block;
    margin-top: 80px;
    margin-bottom: 60px;
    color: var(--color-text);
    text-decoration: none;
    font-size: 11px;
    font-family: var(--font-mono);
    padding: 10px 20px;
    border: 1px solid var(--color-text);
    background: var(--color-bg);
    transition: opacity 0.2s;
}

.back-to-work:hover {
    opacity: 0.7;
}

.work-slide .content {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 60px 30px;
    z-index: 10;
}

.work-slide h1 {
    font-family: var(--font-display);
    font-size: clamp(40px, 6vw, 80px);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: 40px;
    text-align: center;
}

.work-slide h6 {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
    opacity: 0.7;
}

.prismic-image {
    width: 100%;
    max-width: 800px;
    margin-top: 40px;
}

.image-placeholder {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: rgba(231, 222, 209, 0.1);
    border: 1px solid rgba(231, 222, 209, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: rgba(231, 222, 209, 0.5);
}

/* ========================================
   Background Arc Animation
   ======================================== */

.bg-arc-animation {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.bg-arc-animation svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: var(--color-text);
    opacity: 1;
}

.bg-arc-animation svg circle,
.bg-arc-animation svg line {
    opacity: 1;
}

/* ========================================
   Count Container
   ======================================== */

.count-container {
    position: fixed;
    top: calc(var(--header-height) + 20px);
    right: 30px;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text);
    z-index: 15;
}

.slide-count {
    display: block;
    font-size: 2em;
}

/* ========================================
   Word Cursor
   ======================================== */

.word-cursor {
    position: fixed;
    font-family: var(--font-display);
    font-size: 32px;
    color: var(--color-text);
    pointer-events: none;
    z-index: 45;
    transform: translate(-50%, -50%);
    transition: transform 0.1s ease-out;
}

/* ========================================
   Text Slide-Up Animation
   ======================================== */

@keyframes text-slideup {
    0% {
        transform: translateY(100%);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}


/* ========================================
   5. Project Cover
   ======================================== */

/* ========================================
   通用项目封面组件
   ======================================== */

/* 项目信息容器 - 左上角文字区 */
.project-info {
    position: absolute;
    top: 50px;
    left: 30px;
    max-width: 450px;
    z-index: 10;
}

/* 标题行 - 英文+中文并排 */
.project-title-row {
    display: flex;
    align-items: baseline;
    gap: 20px;
    margin-bottom: 40px;
}

/* 英文标题 */
.project-title-en {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 56px;
    font-weight: 300;
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: var(--color-text);
    text-align: left;
    margin: 0;
}

/* 中文标题 */
.project-title-zh {
    font-family: 'SimSun', 'STSong', serif;
    font-size: 28px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.1em;
    color: var(--color-text);
    text-align: left;
    margin: 0;
}

/* 公式/核心价值 */
.project-formula {
    font-family: 'SimSun', 'STSong', serif;
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-text);
    margin-bottom: 20px;
}

/* 项目描述 */
.project-desc {
    font-family: 'SimSun', 'STSong', serif;
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-text);
    margin: 0;
}

/* ========================================
   HeatWave Project Styles
   ======================================== */

.heatwave-cover {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 80px 60px;
}

/* 热浪动画容器 */
.heatwave-animation {
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 86vw;
    height: 86vw;
    max-width: 1300px;
    max-height: 1300px;
    display: flex;
    align-items: center;
    justify-content: center;
    perspective: 800px;
    transform-style: preserve-3d;
    z-index: 5;
}

/* 3D 网格 */
.grid-3d {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: repeat(12, 1fr);
    gap: 3px;
    transform: rotateX(60deg) rotateZ(45deg);
    transform-style: preserve-3d;
}

.cell {
    width: 40px;
    height: 40px;
    background: #002FA7;
    transform-origin: bottom;
    animation: wave-rise 3s ease-in-out infinite;
}

@keyframes wave-rise {
    0%, 100% {
        transform: scaleY(0.1);
        opacity: 0.3;
    }
    50% {
        transform: scaleY(1);
        opacity: 1;
    }
}

/* ========================================
   Mirror Project Styles
   ======================================== */

.mirror-cover {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 80px 60px;
}

/* Mirror 动画容器 */
.mirror-animation {
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 86vw;
    height: 86vw;
    max-width: 1300px;
    max-height: 1300px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
}

.mirror-scene {
    width: 1600px; /* 放大一倍：800px -> 1600px */
    height: 800px; /* 放大一倍：400px -> 800px */
    position: relative;
    perspective: 1200px;
    transform-style: preserve-3d;
}

/* 立方体 */
.mirror-cube {
    width: 200px; /* 放大一倍：100px -> 200px */
    height: 200px; /* 放大一倍：100px -> 200px */
    position: absolute;
    top: 50%;
    transform-style: preserve-3d;
}

.mirror-cube.left {
    left: 25%;
    animation: mirror-rotate-left 4s linear infinite;
}

.mirror-cube.right {
    right: 25%;
    animation: mirror-rotate-right 4s linear infinite;
}

@keyframes mirror-rotate-left {
    0% {
        transform: translateY(-50%) rotateY(0deg) rotateX(0deg);
    }
    100% {
        transform: translateY(-50%) rotateY(360deg) rotateX(360deg);
    }
}

@keyframes mirror-rotate-right {
    0% {
        transform: translateY(-50%) rotateY(0deg) rotateX(0deg);
    }
    100% {
        transform: translateY(-50%) rotateY(-360deg) rotateX(-360deg);
    }
}

.mirror-face {
    position: absolute;
    width: 200px; /* 放大一倍：100px -> 200px */
    height: 200px; /* 放大一倍：100px -> 200px */
    border: 2px solid rgba(0, 255, 100, 0.7);
    background: transparent;
}

/* 给前面的面填充绿色 */
.mirror-face.front {
    transform: translateZ(100px); /* 放大一倍：50px -> 100px */
    background: rgba(0, 255, 100, 0.3);
}

.mirror-face.back   { transform: translateZ(-100px) rotateY(180deg); }
.mirror-face.right  { transform: rotateY(90deg) translateZ(100px); }
.mirror-face.left   { transform: rotateY(-90deg) translateZ(100px); }
.mirror-face.top    { transform: rotateX(90deg) translateZ(100px); }
.mirror-face.bottom { transform: rotateX(-90deg) translateZ(100px); }

/* ========================================
   MatchPoint Project Styles
   ======================================== */

.matchpoint-cover {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 80px 60px;
}

/* MatchPoint 动画容器 */
.matchpoint-animation {
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 43vw; /* 缩小 50%：86vw -> 43vw */
    height: 43vw; /* 缩小 50%：86vw -> 43vw */
    max-width: 650px; /* 缩小 50%：1300px -> 650px */
    max-height: 650px; /* 缩小 50%：1300px -> 650px */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
}

.matchpoint-scene {
    width: 600px; /* 缩小 50%：1200px -> 600px */
    height: 600px; /* 缩小 50%：1200px -> 600px */
    position: relative;
    perspective: 1200px;
    transform-style: preserve-3d;
}

.matchpoint-container {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform-style: preserve-3d;
}

/* 立方体 */
.matchpoint-cube {
    width: 100px; /* 缩小 50%：200px -> 100px */
    height: 100px; /* 缩小 50%：200px -> 100px */
    position: absolute;
    transform-style: preserve-3d;
}

.matchpoint-cube.left {
    animation: matchpoint-left 4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.matchpoint-cube.right {
    animation: matchpoint-right 4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes matchpoint-left {
    0% {
        transform: translate3d(-400px, 0, 0) rotateY(-45deg) rotateX(20deg);
    }
    35% {
        transform: translate3d(-55px, 0, 0) rotateY(5deg) rotateX(-2deg);
    }
    50% {
        transform: translate3d(-55px, 0, 0) rotateY(0deg) rotateX(0deg);
    }
    65% {
        transform: translate3d(-55px, 0, 0) rotateY(0deg) rotateX(0deg);
    }
    100% {
        transform: translate3d(-400px, 0, 0) rotateY(-45deg) rotateX(20deg);
    }
}

@keyframes matchpoint-right {
    0% {
        transform: translate3d(400px, 0, 0) rotateY(45deg) rotateX(-20deg);
    }
    35% {
        transform: translate3d(55px, 0, 0) rotateY(-5deg) rotateX(2deg);
    }
    50% {
        transform: translate3d(55px, 0, 0) rotateY(0deg) rotateX(0deg);
    }
    65% {
        transform: translate3d(55px, 0, 0) rotateY(0deg) rotateX(0deg);
    }
    100% {
        transform: translate3d(400px, 0, 0) rotateY(45deg) rotateX(-20deg);
    }
}

.matchpoint-face {
    position: absolute;
    width: 100px; /* 缩小 50%：200px -> 100px */
    height: 100px; /* 缩小 50%：200px -> 100px */
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(255, 255, 255, 1);
}

.matchpoint-face.front  { transform: translateZ(50px); }
.matchpoint-face.back   { transform: translateZ(-50px) rotateY(180deg); }
.matchpoint-face.right  { transform: rotateY(90deg) translateZ(50px); }
.matchpoint-face.left   { transform: rotateY(-90deg) translateZ(50px); }
.matchpoint-face.top    { transform: rotateX(90deg) translateZ(50px); }
.matchpoint-face.bottom { transform: rotateX(-90deg) translateZ(50px); }


/* ========================================
   Test Project Styles
   ======================================== */

.test-cover {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 50px 30px 60px 30px;
    gap: 50px;
}

.test-info {
    flex-shrink: 0;
    width: 675px;
    z-index: 10;
}

.test-cover .test-title {
    font-family: 'SimSun', 'STSong', serif;
    font-size: 74px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.1em;
    color: var(--color-text);
    margin: 0 0 40px 0;
    text-align: left;
}

.test-cover .test-content {
    font-family: 'SimSun', 'STSong', serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 2.0;
    letter-spacing: 0.08em;
    color: var(--color-text);
    text-align: left;
}

.test-content p {
    margin: 0 0 24px 0;
}

.test-content p:last-child {
    margin-bottom: 0;
}

.test-contact {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    font-family: 'SimSun', 'STSong', serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 2.0;
    letter-spacing: 0.08em;
    color: var(--color-text);
}

.test-contact p {
    margin: 0;
}

.test-photo {
    flex-shrink: 0;
    width: 480px;
    height: 480px;
    z-index: 10;
    overflow: hidden;
    border-radius: 4px;
}

.test-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


/* ========================================
   About Me Cover
   ======================================== */

.about-cover {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 60px 80px;
    gap: 60px;
}

.about-info {
    flex: 1;
    max-width: 600px;
    z-index: 10;
}

.about-title {
    font-family: 'SimSun', 'STSong', serif;
    font-size: 48px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.1em;
    color: var(--color-text);
    margin: 0 0 40px 0;
}

.about-content {
    font-family: 'SimSun', 'STSong', serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 2.0;
    letter-spacing: 0.08em;
    color: var(--color-text);
}

.about-content p {
    margin: 0 0 24px 0;
}

.about-content p:last-child {
    margin-bottom: 0;
}

.about-contact {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.about-contact p {
    margin: 0 0 8px 0;
}

.about-photo {
    flex-shrink: 0;
    width: 400px;
    height: 400px;
    z-index: 10;
    overflow: hidden;
    border-radius: 4px;
}

.about-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


/* ========================================
   6. Project Detail Shared
   ======================================== */

/* 详情页通用标题 - 统一所有项目详情页的大标题样式 */
.detail-title-xl {
    font-family: var(--detail-font-title);
    font-size: var(--detail-fs-xl);
    line-height: var(--detail-lh-title);
    font-weight: normal;
    letter-spacing: normal;
    margin: 0 0 48px 0;
    padding: 0;
    color: var(--color-text);
    text-align: left;
}

/* 详情页内联标题（不需要上边距） */
.detail-title-inline {
    margin-top: 0;
}

/* 详情页图片通用样式 */
.detail-img {
    width: 100%;
    border-radius: 4px;
    display: block;
}

/* 视频占位框 */
.detail-video-placeholder {
    width: 100%;
    height: 675px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e7d8d8;
    border-radius: 4px;
}

.detail-video-placeholder p {
    color: #000;
    margin: 0;
}

/* 图片列 - 竖向排列多张图 */
.detail-img-column {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Hero body 宽度限制 */
.hero-body-constrained {
    max-width: 500px;
    margin-bottom: 48px;
}

/* judgment-item 特殊间距 */
.judgment-spaced {
    padding-top: 80px;
    margin-top: 50px;
}

/* judgment-content 窄版 */
.judgment-content-narrow {
    max-width: 500px;
}

/* 段落特殊间距 */
.para-spaced {
    margin-top: 48px;
}

/* Mirror 项目专用样式 - 限制文字行长为 675px */
.project-detail[data-project-id="mirror"] .screen-hero {
    display: block;
    padding: 50px 30px;
}

.project-detail[data-project-id="mirror"] .detail-title-xl {
    font-size: 74px;
    max-width: 675px;
    margin-left: 0;
}

.project-detail[data-project-id="mirror"] .hero-text {
    flex: 0 1 auto;
    max-width: none;
}

.project-detail[data-project-id="mirror"] .hero-body p {
    max-width: 675px;
}

.project-detail[data-project-id="mirror"] .judgment-content,
.project-detail[data-project-id="mirror"] .judgment-text {
    max-width: 675px;
}

.project-detail[data-project-id="mirror"] .judgment-content p,
.project-detail[data-project-id="mirror"] .judgment-content h3,
.project-detail[data-project-id="mirror"] .judgment-content h4,
.project-detail[data-project-id="mirror"] .judgment-text p {
    max-width: 675px;
}

/* 真实应用部分：标题和图片顶部对齐 */
.project-detail[data-project-id="mirror"] .judgment-item.judgment-one {
    align-items: flex-start;
}

.project-detail[data-project-id="mirror"] .judgment-content h3 {
    margin-top: 0;
}

/* 详情页通用布局容器 */
.detail-section {
    padding: 120px 30px;
}

.detail-inner {
    max-width: 1380px;
    margin: 0 auto;
}

/* 判断模块通用样式 */
.judgment-item {
    max-width: 1380px;
    width: 100%;
    margin-bottom: 80px;
    padding-bottom: 80px;
    border-bottom: 1px solid var(--color-text);
    display: flex;
    gap: 50px;
}

.judgment-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.judgment-text {
    flex: 1;
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    line-height: var(--detail-lh-body);
}

.judgment-text h3 {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-h3);
    font-weight: bold;
    margin: 0 0 var(--detail-spacing-title) 0;
    color: var(--color-text);
}

/* judgment-content 也使用相同的样式 */
.judgment-content h3,
.judgment-content h4 {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-h3);
    font-weight: bold;
    margin: 0 0 var(--detail-spacing-title) 0;
    color: var(--color-text);
}

.judgment-content p {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    line-height: var(--detail-lh-body);
    margin: 0 0 var(--detail-spacing-para) 0;
    color: var(--color-text);
}

.judgment-content p:last-child {
    margin-bottom: 0;
}

.judgment-content strong {
    font-weight: bold;
}

.judgment-text p {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    margin: 0 0 var(--detail-spacing-para) 0;
    color: var(--color-text);
}

.judgment-text p:last-child {
    margin-bottom: 0;
}

.judgment-text ol {
    margin: 16px 0;
    padding-left: 24px;
}

.judgment-text li {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    margin-bottom: 8px;
    color: var(--color-text);
}

.judgment-text strong {
    font-weight: bold;
}

.judgment-image {
    flex-shrink: 0;
}

.judgment-image img {
    height: auto;
    display: block;
}

/* 判断一：右侧图片 438px */
.judgment-one .judgment-image img {
    max-width: 438px;
}

/* 判断二：特殊布局保持原样 */
.judgment-two .judgment-examples {
    flex-shrink: 0;
}

/* 判断三：特殊布局保持原样 */
.judgment-three .judgment-examples {
    flex-shrink: 0;
}

/* 判断四：左侧图片 363px，页面级布局 */
.judgment-four {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 30px;
}

.judgment-four .judgment-image {
    flex-shrink: 0;
}

.judgment-four .judgment-image img {
    max-width: 363px;
}

/* 判断五：右侧图片 419px */
.judgment-five .judgment-image img {
    max-width: 419px;
}


/* ========================================
   7. HeatWave Detail
   ======================================== */

/* ========================================
   HeatWave 详情页样式
   ======================================== */

/* 详情页屏幕容器 */
.detail-screen {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 0;
}

/* 第一屏 */
.screen-1 {
    padding-top: 50px;
    padding-left: 30px;
    padding-right: 60px;
}

.detail-title {
    font-size: 42px;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.05em;
    color: var(--color-text);
    margin-bottom: 60px;
    text-align: left;
}

.detail-body {
    max-width: 900px;
    text-align: left;
}

.detail-body p {
    font-size: 16px;
    font-weight: 300;
    line-height: 2.0;
    letter-spacing: 0.08em;
    color: #ccc;
    margin-bottom: 40px;
}

.detail-body p strong {
    font-weight: 400;
    color: var(--color-text);
}

.detail-body p.core-problem {
    font-size: 20px;
    font-weight: 400;
    line-height: 2.0;
    letter-spacing: 0.08em;
}

.detail-body p.core-problem strong {
    font-weight: 500;
}

/* 第二屏：对比布局 */
.screen-2 {
    padding: 80px 30px 100px 30px;
}

.comparison-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 120px;
    max-width: 1400px;
    margin: 0 auto;
}

.comparison-column {
    flex: 1;
    min-width: 0;
}

/* 栏目标题 */
.column-title {
    font-size: 28px;
    font-weight: 400;
    text-align: left;
    letter-spacing: 0.15em;
    color: var(--color-text);
    margin-bottom: 60px;
}

/* 流程图容器 */
.flow-diagram {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* 传统创作流程 */
.flow-diagram.traditional .flow-item {
    font-size: 14px;
    letter-spacing: 0.15em;
    color: #666;
    line-height: 1.8;
}

.flow-diagram.traditional .flow-repeat {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.flow-diagram.traditional .flow-ellipsis {
    font-size: 32px;
    color: #444;
    line-height: 1;
}

/* HeatWave 流程 */
.flow-diagram.heatwave {
    gap: 40px;
}

.flow-diagram.heatwave .flow-section {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.flow-diagram.heatwave .flow-label {
    font-size: 16px;
    letter-spacing: 0.1em;
    color: #aaa;
}

.flow-diagram.heatwave .flow-multiply {
    font-size: 20px;
    color: #666;
}

.flow-diagram.heatwave .flow-arrow-down {
    text-align: center;
    font-size: 24px;
    color: #666;
    margin: 20px 0;
}

.flow-diagram.heatwave .flow-result {
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.1em;
    color: var(--color-text);
    text-align: center;
}

.flow-diagram.heatwave .flow-note {
    font-size: 14px;
    letter-spacing: 0.1em;
    color: #666;
    text-align: center;
    margin-top: 20px;
}

/* 响应式 */
@media (max-width: 1400px) {
    .comparison-container {
        flex-direction: column;
        gap: 80px;
    }
}


/* ========================================
   Mirror 项目详情页专用样式
   ======================================== */
/* [REMOVED] .mirror-detail 区块已删除 - 该 class 未在 HTML 中使用，且嵌套的 body/html/:root 选择器会泄漏到全局覆盖正常样式 */

@media (max-width: 768px) {
    .detail-screen {
        padding: 60px 30px;
    }
    
    .detail-title {
        font-size: 32px;
        margin-bottom: 40px;
    }
    
    .detail-body p {
        font-size: 14px;
        line-height: 1.9;
    }
    
    .comparison-container {
        gap: 40px;
    }
}

/* ========================================
   HeatWave 详情页专用样式
   ======================================== */

/* 使用通用详情页标题类 */
.project-detail[data-project-id="heatwave"] .hero-title,
.project-detail[data-project-id="heatwave"] .section-title {
    /* 继承 .detail-title-xl，这里只做项目特定覆盖 */
}

/* 第一屏：项目介绍 */
.screen-hero {
    padding: 50px 30px;
    min-height: 100vh;
    display: flex;
    align-items: center;
}

.hero-layout {
    max-width: 1380px;
    width: 100%;
    display: flex;
    gap: 50px;
    align-items: flex-start;
}

.hero-text {
    flex: 1;
    max-width: 500px;
}

.hero-body {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    line-height: var(--detail-lh-body);
}

.hero-body p {
    margin: 0 0 var(--detail-spacing-para) 0;
}

.hero-body p:last-child {
    margin-bottom: 0;
}

.hero-body strong {
    font-weight: bold;
}

.hero-highlight {
    font-size: var(--detail-fs-h3) !important;
    margin-top: 48px !important;
}

.hero-image {
    flex-shrink: 0;
}

.hero-image img {
    width: 530px;
    height: auto;
    display: block;
}

/* 第二屏：DEMO展示 */
.screen-demo {
    padding: 110px 30px;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.demo-layout {
    max-width: 1380px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.video-container {
    width: 100%;
}

.video-container video {
    width: 100%;
    height: auto;
    display: block;
}

.demo-link {
    font-family: 'AmstelvarAlpha', serif;
    font-size: 24px;
    color: var(--color-text);
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.3s;
}

.demo-link:hover {
    opacity: 0.7;
}

/* 第三屏：核心设计判断 */
.screen-judgment {
    padding: 120px 30px;
}

/* 判断模块样式已移至 Project Detail Shared 区块 */

/* judgment-text 和 judgment-image 样式已移至 Project Detail Shared 区块 */

/* 判断四和判断五样式已移至 Project Detail Shared 区块 */

/* 判断示例框 */
.judgment-examples {
    flex-shrink: 0;
}

/* 判断二：小红书/抖音横向对比容器 */
.example-box-group {
    background-color: rgba(255, 255, 255, 1);
    border: 0.5px solid var(--color-text);
    padding: 20px;
    display: flex;
    gap: 20px;
    max-width: 675px;
}

.example-divider {
    width: 1px;
    background-color: #000;
    flex-shrink: 0;
}

.example-box {
    flex: 1;
    font-family: 'Noto Serif SC', serif;
    font-size: 16px;
    line-height: 2.1875;
}

.example-box h4 {
    font-size: 20px;
    font-weight: normal;
    margin: 0 0 12px 0;
    color: #000;
}

.example-box .example-title {
    font-size: 16px;
    font-weight: bold;
    margin: 0 0 12px 0;
    color: #000;
}

.example-box p {
    font-size: 14px;
    line-height: 1.8;
    margin: 0 0 8px 0;
    color: #000;
}

.example-box p:last-child {
    margin-bottom: 0;
}

/* 判断示例卡片（判断三：右侧白色框） */
.example-card {
    background-color: rgba(255, 255, 255, 1);
    border: 0.5px solid var(--color-text);
    padding: 20px;
    max-width: 390px;
    font-family: 'Noto Serif SC', serif;
}

.example-card .card-title {
    font-size: 20px;
    font-weight: normal;
    margin: 0 0 20px 0;
    color: #000;
}

.example-item {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: none;
}

.example-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
}

.example-item .item-tag {
    font-size: 16px;
    margin: 0 0 8px 0;
    color: #000;
}

.example-item .item-content {
    font-size: 16px;
    font-weight: normal;
    margin: 0;
    color: #000;
}

/* 第四屏：系统架构 */
.screen-architecture {
    padding: 120px 30px;
    min-height: 100vh;
}

.architecture-text {
    max-width: 1380px;
    margin: 0 auto 48px auto;
    font-family: 'Noto Serif SC', serif;
    font-size: 20px;
    line-height: 1.75;
}

.architecture-text p {
    margin: 0 0 16px 0;
    color: var(--color-text);
}

.architecture-text strong {
    font-weight: bold;
}

.architecture-image {
    max-width: 1380px;
    margin: 0 auto 48px auto;
}

.architecture-image img {
    width: 70%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 第五屏：项目现状 */
.screen-status {
    padding: 120px 30px;
    min-height: 100vh;
}

.status-columns {
    max-width: 1380px;
    margin: 0 auto 48px auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 80px;
}

.status-column h3 {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-h3);
    font-weight: bold;
    margin: 0 0 var(--detail-spacing-title) 0;
    color: var(--color-text);
}

.status-column ul {
    margin: 0;
    padding-left: 24px;
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    line-height: var(--detail-lh-body);
}

.status-column li {
    margin-bottom: 12px;
    color: var(--color-text);
}

.status-column li:last-child {
    margin-bottom: 0;
}

.status-note {
    max-width: 1380px;
    margin: 0 auto;
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    line-height: var(--detail-lh-body);
    padding-top: 48px;
    border-top: 1px solid var(--color-text);
}

.status-note p {
    margin: 0 0 16px 0;
    color: var(--color-text);
}

.status-note strong {
    font-weight: bold;
}

/* ========================================
   MatchPoint 详情页专用样式
   ======================================== */

/* 第一屏：Hero 区 - 强制左对齐布局 */
.project-detail[data-project-id="matchpoint"] .screen-hero {
    flex-direction: column;
    align-items: flex-start;
}

/* Hero 区布局调整 */
.project-detail[data-project-id="matchpoint"] .hero-layout {
    gap: 50px;
    align-items: flex-start;
}

.project-detail[data-project-id="matchpoint"] .hero-text {
    width: 675px;
    max-width: 675px;
    flex-shrink: 0;
}

.project-detail[data-project-id="matchpoint"] .hero-image img {
    width: 550px;
    height: auto;
    margin-left: -200px;
}

/* 核心流程区域 */
.project-detail[data-project-id="matchpoint"] .judgment-item.judgment-two {
    gap: 50px;
    align-items: flex-start;
}

.project-detail[data-project-id="matchpoint"] .judgment-content.right {
    width: 675px;
    flex-shrink: 0;
}

.project-detail[data-project-id="matchpoint"] .judgment-visual.left img {
    width: 480px;
    height: auto;
    margin-left: 30px;
}

/* 双端验证区域 */
.project-detail[data-project-id="matchpoint"] .judgment-item.judgment-one {
    gap: 50px;
    align-items: flex-start;
}

.project-detail[data-project-id="matchpoint"] .judgment-item.judgment-one .judgment-content {
    width: 675px;
    flex-shrink: 0;
}

/* 双端验证图片 */
.project-detail[data-project-id="matchpoint"] .judgment-visual img {
    width: 675px;
    height: auto;
    margin-left: -200px;
}

/* 工程落地区域 */
.project-detail[data-project-id="matchpoint"] .screen-judgment .hero-body-constrained {
    width: 675px;
    max-width: 675px;
    margin-bottom: 50px;
}

.project-detail[data-project-id="matchpoint"] .screen-judgment img[alt="工程落地"] {
    width: 675px;
    height: auto;
}

/* 返回按钮统一样式 - 应用到所有详情页 */
.project-detail .back-to-work {
    margin-top: 120px;
    margin-left: 30px;
}

/* ========================================
   8. Responsive
   ======================================== */

/* ========================================
   Mobile
   ======================================== */

.mobile-only {
    display: none;
}


/* 第三屏：真实应用案例 */
.screen-case {
    padding: 120px 60px;
}

.case-content {
    max-width: 1200px;
    margin: 0 auto;
}

.case-card {
    font-size: 16px;
    line-height: 2.1875;
}

.case-card h3 {
    font-size: 20px;
    font-weight: bold;
    margin: 0 0 24px 0;
}

.case-card p {
    margin: 0 0 16px 0;
}

.case-images {
    display: flex;
    gap: 30px;
    margin-top: 30px;
}

.case-images img {
    width: calc(50% - 15px);
    height: auto;
}

/* 第四屏：架构设计 */
.screen-architecture-mirror {
    padding: 120px 60px;
}

.architecture-intro {
    max-width: 900px;
    margin: 0 0 60px 0;
    font-size: 20px;
    line-height: 1.75;
}

.architecture-intro p {
    margin: 0 0 16px 0;
}

.layer-list {
    max-width: 1200px;
}

.layer-item {
    margin-bottom: 60px;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(231, 209, 209, 0.2);
}

.layer-item:last-of-type {
    border-bottom: none;
}

.layer-item h3 {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-h3);
    font-weight: bold;
    margin: 0 0 var(--detail-spacing-title) 0;
}

.layer-item p {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    line-height: var(--detail-lh-body);
    margin: 12px 0;
}

.layer-item.with-image {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.layer-item.with-image.reverse {
    flex-direction: row-reverse;
}

.layer-text {
    flex: 1;
}

.layer-image {
    flex-shrink: 0;
    width: 400px;
}

.layer-image img {
    width: 100%;
    height: auto;
    display: block;
}

.core-decision-box {
    margin-top: 60px;
    padding: 40px;
    background-color: rgba(231, 209, 209, 0.05);
    border: 1px solid rgba(231, 209, 209, 0.2);
}

.core-decision-box h3 {
    font-size: 28px;
    font-weight: bold;
    margin: 0 0 32px 0;
}

.core-decision-box h4 {
    font-size: 20px;
    font-weight: bold;
    margin: 24px 0 16px 0;
}

.core-decision-box h4:first-of-type {
    margin-top: 0;
}

.core-decision-box p {
    font-size: 16px;
    line-height: 2.1875;
    margin: 0 0 16px 0;
}

.core-decision-box p:last-child {
    margin-bottom: 0;
}

/* 第五屏：质量控制 */
.screen-quality {
    padding: 120px 60px;
}

.quality-mechanism {
    margin-bottom: 60px;
    padding-top: 40px;
    border-top: 1px solid rgba(231, 209, 209, 0.2);
}

.quality-mechanism:first-child {
    border-top: none;
    padding-top: 0;
}

.mechanism-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    max-width: 1200px;
}

.mechanism-layout.reverse {
    flex-direction: row-reverse;
}

.mechanism-text {
    flex: 1;
}

.mechanism-text h3 {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-h3);
    font-weight: bold;
    margin: 0 0 var(--detail-spacing-title) 0;
}

.mechanism-text p {
    font-family: var(--detail-font-serif);
    font-size: var(--detail-fs-body);
    line-height: var(--detail-lh-body);
    margin: 12px 0;
}

.mechanism-image {
    flex-shrink: 0;
    width: 400px;
}

.mechanism-image img {
    width: 100%;
    height: auto;
    display: block;
}

/* Mirror 项目详情页样式 */

/* 真实应用 */
/* Mirror 专用样式已删除，将使用统一的 judgment 类名 */

/* 项目现状 - Mirror */
.status-content {
    max-width: 900px;
}

.status-content p {
    font-size: 20px;
    line-height: 1.75;
    margin: 0 0 24px 0;
}

.status-content p:last-child {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    body {
        cursor: auto;
    }

    .word-cursor {
        display: none;
    }

    .manifesto {
        font-size: clamp(32px, 10vw, 60px);
    }

    .information {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .marquee-container {
        display: none;
    }

    .mobile-only {
        display: block;
    }

    .count-container {
        top: auto;
        bottom: 20px;
        right: 20px;
    }
}

/* ========================================
   Accessibility
   ======================================== */

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .slider {
        transition: none;
    }
}

