body {
  background: linear-gradient(to bottom right, #fff3e0, #ffe0e9);
}

/* 左侧导航栏 */
.sidebar {
  display: none; 
  position: fixed;
  top: 20%;
  left: 2%;
  width: 8vw; /* ✅ 再缩小 */
  background: rgba(255, 255, 255, 0.4);
  padding: 1vw 0.8vw;
  border-radius: 0.6vw;
  box-shadow: 0 0.2vw 0.6vw rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(6px);
}

.sidebar h2 {
  text-align: center;
  font-family: 'Dancing Script', cursive;
  font-size: calc(1.5rem + 0.4vw);
  color: #d94f4f;
  margin-bottom: 1.2vw;
  letter-spacing: 0.05vw;
  font-weight: 700;
}

.sidebar a {
  display: block;
  margin: 0.6vw 0;
  text-align: center;
  padding: 0.3vw;
  border-radius: 0.3vw;
  font-size: calc(0.8rem + 0.2vw);
  color: #5c4a4a !important;
  text-decoration: none !important;
  transition: all 0.2s ease-in-out;
}

.sidebar a:hover {
  background: #ffe3e3;
  color: #ff4b4b;
  font-weight: 600;
}

/* 顶部标题区域 */
header {
  background: none;
  text-align: center;
  padding: 3vw 1vw 1.5vw;
}

header h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: calc(3rem + 0.8vw);
  color: #ff5e62;
  margin-bottom: 1.5vw;
  
}

header p {
  color: #555;
  font-size: calc(0.6rem + 0.25vw);
  margin-top: 0.6vw;
}

/* 主体内容容器 */
.container {
  max-width: 48vw; /* ✅ 再缩小 */
  margin: 0 auto;
  padding: 1.5vw 1vw;
}

/* 卡片设计 */
.project {
  position: relative;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 1.2vw;
  box-shadow: 0 0.6vw 1.6vw rgba(0, 0, 0, 0.04);
  padding: 1.5vw;
  margin-bottom: 3vw;

  /* ✅ 添加平滑动画 + 优化性能 */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  will-change: transform;
}

.project:hover {
  transform: translateY(-0.3vw);
  box-shadow: 0 1vw 2vw rgba(0, 0, 0, 0.08); /* 可选：hover 时提升阴影 */
}

.project h2 {
  margin-top: 1.3vw;
  font-size: calc(2rem + 0.5vw);
  color: #222;
  margin-left:2vw ;
}


.project p {
  font-size: calc(0.7rem + 0.4vw);
  color: #555;
  margin-top: 1.2vw;
}

.tags {
  font-size: calc(0.7rem + 0.25vw);
  color: #777;
  margin-bottom: 0.6vw;
  margin-left: 2vw;
}

.link a {
  text-decoration: none;
  color: #007acc;
  font-size: calc(0.6rem + 0.3vw);
}

/* 游戏截图 */
.screenshots {
  display: flex;
  gap: 1.2vw;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 1.2vw;
  margin-left:0.3vw;
}

.screenshots .screenshot-box {
  text-align: center;
}

.screenshots img {
  max-width: 20vw;
  height: auto;
  border-radius: 0.8vw;
  box-shadow: 0 0.4vw 0.8vw rgba(0, 0, 0, 0.08);
  transition: transform 0.2s ease-in-out;
  
}

.screenshots img:hover {
  transform: scale(1.3);
  z-index: 999;
  position: relative;
}

.screenshots.vertical-layout {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2vw;
  margin-top: 1.2vw;

}

.screenshots.vertical-layout img {
  max-width: 36vw;
}



/* 关于我模块 */
.about-me-section {
  text-align: center;
  margin: 4vw 0;
}

.header-section {
  text-align: center;
  padding: 4vw 1.5vw 2vw;
}

.profile-top {
  margin-top: 0vw;
}

.profile-image {
  width: 11vw; /* ✅ 头像也整体小一点 */
  height: auto;
  border-radius: 50%;
  box-shadow: 0 0.6vw 1.2vw rgba(0, 0, 0, 0.1);
  margin-bottom: 1.5vw;
}

.signature-line {
  margin-top: 1.5vw;
  font-size: calc(0.9rem + 0.5vw);
  font-weight: 500;
  color: #444;
  font-style: italic;
  margin-bottom: 2.5vw;
}

.profile-info {
  margin-top: -2vw;
  
}

.profile-info p {
  font-family: 'Sans-serif', sans-serif;
  margin: 0.8vw 0;
  font-size: calc(0.7rem + 0.3vw);
  color: #f93f42;
}


/* 强化按钮样式 */
.play-button {
  display: inline-block;
  background: #ff865e;
  color: white;
  padding: 0.5vw 1.2vw;
  border-radius: 0.6vw;
  font-weight: bold;
  font-size: calc(0.6rem + 0.3vw);
  text-decoration: none;
  transition: background 0.3s ease;
  margin-top: 2vw;
  margin-bottom: 1.5vw;
}

.play-button:hover {
  background: #ff5e3a;
}

/* 统一截图盒子 */


.project p {
  font-family: 'Crimson Text', serif;
  line-height: 1.6;
  font-size: calc(0.75rem + 0.35vw);
  color: #333;
  margin-left: 2vw;
}


.game-title {
  font-family: 'Montserrat', sans-serif;
  font-size: calc(2rem + 40vw);
  color: #333;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.05);
  letter-spacing: 0.5px;
  margin-bottom: 0.5vw;
  position: relative;
}

.game-title::after {
  content: '';
  display: block;
  width: 96%; /* ✅ 从固定像素改成百分比 */
  height: 4px;
  background: linear-gradient(to right, #ff7e5f, #feb47b);
  margin: 0.5rem 0 0 0.5rem;  /* 第二个参数是右边距，第四个是左边距 */
  margin-left: 0rem;
  border-radius: 2px;
}



.wavelength-title::after {
  background: #fca17d; /* 温和橘 */
}

.tcube-title::after {
  background: #8bb7f0; /* 更亮的蓝紫 */
}

.dino-title::after {
  background: #9be29b; /* 亮绿色 */
}

.gochess-title::after {
  background: #555; /* 深灰 */
}

.darkchess-title::after {
  background: #1e2b39; /* 深蓝 */
}


.play-button {
  display: inline-block;
  margin-top: 1.2vw;
  padding: 0.6vw 1.5vw;
  border-radius: 0.6vw;
  font-size: calc(0.6rem + 0.3vw);
  font-weight: 600;
  text-decoration: none;
  color: white;
  box-shadow: 0 0.2vw 0.5vw rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease-in-out;
  margin-left: 2vw;
}

.play-button:hover {
  transform: translateY(-0.2vw);
}

.play-button.tcube-btn {
  background: linear-gradient(to right, #84bfff, #d3e5ff);
}

.play-button.dino-btn {
  background: linear-gradient(to right, #88d498, #bff0a1);
}

.play-button.gochess-btn {
  background: linear-gradient(to right,
        /* 保持黑直到棋子左边 */
    #fff 0%,      /* 棋子处瞬间变白 */
    #000 55%,      /* 再渐变回黑 */
    #000 100%      /* 其余保持黑色 */
  );
}
.play-button.darkchess-btn {
  background: linear-gradient(to right, #1e2b39, white);
}

html {
  scroll-behavior: smooth;
}

.tiffany-link {
  color: #0ABAB5 !important;
  text-decoration: none !important;
  font-weight: bold;
}

.tiffany-link:hover {
  color: #088F8F !important;
}

.hover-image-wrapper {
  position: relative;
  display: inline-block;
}

.hover-image {
  display: none;
  position: absolute;
  bottom: 100%;       /* 改为从上方出现 */
  left: 50%;          /* 居中对齐 */
  transform: translateX(-50%);
  margin-bottom: 10px;
  width: 350px;
  border: 3px solid #000;
  background-color: #fff;
  z-index: 10;
}



.hover-image-wrapper:hover .hover-image {
  display: block;
}


.music-button {
  position: fixed;
  top: 20px;
  right: 20px;
  background-color: #ffdf6c;
  border: 2px solid #000;
  font-family: 'Press Start 2P', monospace;
  padding: 10px 20px;
  cursor: pointer;
  z-index: 999;
}

/*searchbox*/

.search-box {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;

  margin: 40px auto 60px auto;
  padding: 12px 24px;
  border-radius: 16px;

  /* ✅ 玻璃拟态核心 */
  background: rgba(255, 243, 240, 0.2); /* 半透明粉白 */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  /* ✅ 红粉色边框 */
  border: 1.5px solid rgba(255, 94, 146, 0.4);

  /* ✅ 柔和阴影 */
  box-shadow: 0 8px 20px rgba(255, 94, 146, 0.15);

  width: fit-content;
}

.search-box input[type="text"] {
  padding: 10px 14px;
  font-size: 16px;
  border: 1px solid rgba(255, 94, 146, 0.3);
  border-radius: 8px;
  width: 280px;

  background: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  color: #333;
  outline: none;
  transition: border 0.3s ease;
}

.search-box input[type="text"]::placeholder {
  color: #c0778f;
}

.search-box button {
  padding: 10px 16px;
  font-size: 16px;
  border: 1px solid #ff5e62;
  background-color: transparent;
  color: #ff5e62;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  font-weight: 500;
}

.search-box button:hover {
  background-color: #ff5e62;
  color: white;
  box-shadow: 0 0 8px rgba(255, 94, 146, 0.3);
}






.chat-button-container {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}

.chat-button {
  background-color: #4CAF50;
  color: white;
  padding: 10px 20px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: background-color 0.2s ease;
}

.chat-button:hover {
  background-color: #45a049;
}




.social-button {
  background-color: #f0f0f0;
  border: none;
  padding: 10px 15px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: bold;
  color: #333;
}

.navigation-buttons {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 30px;
}

.nav-button {
  padding: 12px 20px;
  font-size: 16px;
  border: none;
  border-radius: 10px;
  background-color: #444;
  color: white;
  cursor: pointer;
}

.link-row {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 25px;
  margin-top: -40px;
  flex-wrap: wrap;
}

.icon-button {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.icon-img {
  width: 48px;
  height: 48px;
  transition: transform 0.2s;
 
}
.icon-img:hover {
  transform: scale(1.1);
}






/* 调整 header 和 profile 间距 */
.header-section {
  margin-bottom: 20px;
}

.profile-top {
  margin-bottom: 10px;
}


.fancy-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 50px;
  margin-top: 40px;
  margin-bottom: 6vw;
}



@import url('https://fonts.googleapis.com/css2?family=Pacifico&display=swap');
.fancy-button {
  font-family: 'Pacifico', cursive;
  font-size: 53px;
  color: transparent;
  background: linear-gradient(270deg, #ff6b81, #ff94a3, #ffc2d1);
  background-size: 600% 600%;
  -webkit-background-clip: text;
  animation: glowmove 8s ease infinite;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: none;
  text-decoration: none;
  margin-top: 20px;
  transition: transform 0.3s;
  filter: drop-shadow(0 0 5px #ffc1cc);
  text-shadow: 2px 2px 0px #fff0f4, 4px 4px 0px #ffb3c1;
}

.fancy-button:hover {
  transform: scale(1.20);
}

.icon-mask {
  width: 60px;
  height: 60px;
  display: inline-block;
  background: linear-gradient(270deg, #ff6b81, #ff94a3, #ffc2d1);
  background-size: 600% 600%;
  animation: glowmove 8s ease infinite;
  mask-image: var(--icon-url);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: var(--icon-url);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}


@keyframes glowmove {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

