.projects-main {
    max-width: 100%;
    margin: calc(var(--nav-height)) 0 0px;
    flex: 1; /* 撑满剩余空间 */
    transition: margin-top 0.3s ease;
}

/* 默认的 :root 变量 */
@media (min-width: 769px) {
    :root {
      --nav-height: 70px;
      --footer-height: 60px;
    }
  }

/* 全屏横幅容器 */
.fullscreen-banner {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    overflow-x: hidden;
    margin-bottom: 1vh;
}

.fullscreen-banner:last-child {
    margin-bottom: 0;
}

.fullscreen-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.9);
}

.titles-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

/* 主标题特效 */
@media (min-width: 768px) {
.fullscreen-banner.active .main-title {
    font-size: 5rem;
    color: white;
    text-shadow: 0 0 20px rgba(255,255,255,0.5);
    opacity: 0;
    animation: titleFadeIn 1.2s cubic-bezier(0.23, 1, 0.32, 1) 0.5s forwards;
}
}

/* 副标题特效 */
@media (min-width: 768px) {
.fullscreen-banner.active .sub-title {
    font-size: 2.5rem;
    color: white;
    text-shadow: 
        0 2px 4px rgba(255,255,255,0.3),
        0 4px 12px rgba(255,255,255,0.4);
    margin-top: 1.5rem;
    opacity: 0;
    animation: subtitleFadeIn 1s ease-out 1s forwards;
}
}

@media (max-width: 768px) {
  .fullscreen-banner {
    max-width: 100%;
    height: auto !important;
    aspect-ratio: 16/9;
  }

  .titles-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    width: 90%;
  }

  .fullscreen-banner.active .main-title {
    font-size: calc(1.5rem + 1vw);
    background: linear-gradient(45deg, rgba(255,255,255,0.9) 20%, rgba(212,212,212,0.9) 80%);
    -webkit-background-clip: text;
    background-clip: text;
    color: rgba(255,255,255,0.9);
    line-height: 1.2;
    opacity: 0;
    animation: titleFadeIn 0.8s cubic-bezier(0.23, 1, 0.32, 1) 0.3s forwards;
  }

  .fullscreen-banner.active .sub-title {
    font-size: calc(0.8rem + 0.5vw);
    color: rgba(229,229,229,0.95);
    margin-top: 0.8em;
    opacity: 0;
    animation: subtitleFadeIn 0.6s ease-out 0.4s forwards;
  }
}

@keyframes titleFadeIn {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes subtitleFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes floatVertical {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}