@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+HK:wght@400;500;700&display=swap");
body {
  font-family: "Noto Sans HK", sans-serif;
}
/* START 翻轉卡片效果 */
.flip-card {
  perspective: 1000px;
  height: 100%;
}
.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s;
  transform-style: preserve-3d;
}
.flip-card:hover .flip-card-inner {
  transform: rotateY(180deg);
}
.flip-card-front,
.flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}
.flip-card-back {
  transform: rotateY(180deg);
}
/* END 翻轉卡片效果 */
/* 光效卡片效果 */
.glow-card:hover .glow-overlay {
  animation: glow 1.5s ease-out;
}
.glow-card:hover .glow-content {
  opacity: 1;
}
@keyframes glow {
  0% {
    opacity: 0;
    transform: translateX(-100%);
  }
  20% {
    opacity: 0.8;
  }
  100% {
    opacity: 0;
    transform: translateX(100%);
  }
}
/* END光效卡片效果 */
/* START 作品集部分 */
@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes popIn {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  70% {
    opacity: 1;
    transform: scale(1.1);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes slideIn {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/* 應用動畫 */
.animate-fadeInDown {
  animation: fadeInDown 5s ease-out forwards;
}

.animate-popIn {
  animation: popIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

.animate-slideIn {
  animation: slideIn 0.6s ease-out forwards;
}

.animate-slideInRight {
  animation: slideInRight 0.6s ease-out forwards;
}

/* 背景形狀動畫 */
.shape-1 {
  animation: float 6s ease-in-out infinite alternate;
}

.shape-2 {
  animation: float 8s ease-in-out infinite alternate-reverse;
}

@keyframes float {
  0% {
    transform: translateY(0) rotate(0deg);
  }
  100% {
    transform: translateY(-20px) rotate(5deg);
  }
}
/* END 作品集部分 */
/* START 作品集部分 */
/* 金色閃光動畫 */
@keyframes goldPulse {
  0%,
  100% {
    opacity: 0;
    transform: scale(0.8);
  }
  50% {
    opacity: 0.6;
    transform: scale(1.2);
  }
}

@keyframes titleGoldGlow {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.5);
  }
  100% {
    opacity: 0;
    transform: scale(0.8);
  }
}

@keyframes particleBurst {
  0% {
    opacity: 0;
    transform: translate(0, 0) scale(0);
  }
  50% {
    opacity: 0.8;
    transform: translate(var(--tx), var(--ty)) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(var(--tx2), var(--ty2)) scale(0);
  }
}

@keyframes btnFlash {
  0% {
    opacity: 0;
    transform: translateX(-100%);
  }
  20% {
    opacity: 0.8;
  }
  100% {
    opacity: 0;
    transform: translateX(100%);
  }
}

/* 震撼動畫 */
@keyframes titleIn {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  70% {
    opacity: 1;
    transform: translateY(-5px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes textPop {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  70% {
    opacity: 1;
    transform: scale(1.1);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes tagSlideIn {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  80% {
    opacity: 1;
    transform: translateX(5px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes tagSlideInRight {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  80% {
    opacity: 1;
    transform: translateX(-5px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes sectionShake {
  0%,
  100% {
    transform: translateY(0);
  }
  20%,
  60% {
    transform: translateY(-5px);
  }
  40%,
  80% {
    transform: translateY(5px);
  }
}

/* 應用動畫 */
.animate-titleIn {
  animation: titleIn 1s ease-out forwards, sectionShake 0.5s ease 0.5s;
}

.gold-glow {
  animation: titleGoldGlow 1.5s ease-out 0.3s;
}

.animate-textPop {
  animation: textPop 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards 0.5s;
}

.gold-pulse {
  animation: goldPulse 2s ease-in-out infinite 1s;
}

.tag-anim {
  animation: tagSlideIn 0.6s ease-out forwards;
}

.tag-anim:nth-child(4),
.tag-anim:nth-child(5) {
  animation-name: tagSlideInRight;
}

.btn-glow {
  animation: textPop 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards 0.8s;
}

.btn-flash {
  animation: btnFlash 1.5s ease-out 1.2s;
}

/* 鼠標追蹤星星特效 */
.cursor-trail {
  position: fixed;
  width: 20px;
  height: 20px;
  pointer-events: none;
  z-index: 9999;
  mix-blend-mode: screen;
}

.star {
  position: absolute;
  width: 100%;
  height: 100%;
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.8) 0%,
    rgba(255, 255, 255, 0) 70%
  );
  border-radius: 50%;
  transform: scale(0);
  opacity: 0;
}

.star::before,
.star::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFD700'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E")
    center/contain no-repeat;
}

.star::after {
  transform: rotate(30deg);
}

/* 光暈效果 */
.halo {
  position: fixed;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 215, 0, 0.3) 0%,
    rgba(255, 215, 0, 0) 70%
  );
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}

/* 背景光斑 */
.light-spot {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 215, 0, 0.2) 0%,
    rgba(255, 215, 0, 0) 70%
  );
  filter: blur(20px);
  z-index: 0;
}
/* END 作品集部分 */

/* *****START whatsapp***** */
.whatsapp {
  z-index: 2;
  position: fixed;
  right: 0px;
  opacity: 0;
  bottom: 0px;
  animation: fade-up 1.5s forwards;
  animation-delay: 0.5s;
  width: 3rem;
}

@keyframes fade-up {
  100% {
    bottom: 40px;
    right: 5rem;
    opacity: 1;
  }
}

.whatsapp .whatsapp-btn {
  display: flex; /* 新增：启用flex布局 */
  align-items: center; /* 新增：垂直居中 */
  justify-content: center; /* 新增：水平居中 */
  width: 60px; /* 新增：固定宽度 */
  height: 60px; /* 新增：固定高度（与宽度相同） */
  font-size: 36px;
  background-color: #25d366;
  border-radius: 50%;
  color: #fff;
  text-decoration: none; /* 移除链接下划线 */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* 可选：添加阴影提升质感 */
  transition: transform 0.3s; /* 可选：添加悬停动画 */
}

.whatsapp .whatsapp-btn:hover {
  transform: scale(1.1); /* 可选：悬停时轻微放大 */
}

.whatsapp span {
  position: absolute;
  top: -10px;
  left: -50px;
  right: -50px;
  font-weight: bold;
  transform: rotate(-50deg) translateX(-80px) translateY(-40px);
  opacity: 0;
  transition: all 0.4s ease-out;
  color: #41e119;
}

.whatsapp .whatsapp-btn:hover + span {
  transform: rotate(45deg) translateX(50px) translateY(-30px);
  opacity: 1;
}
/* *****END whatsapp***** */

/* START SEO  */
.progress-ring__circle {
  transition: stroke-dashoffset 0.5s;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}
.card-shadow {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.result-table {
  width: 100%;
  border-collapse: collapse;
}
.result-table th,
.result-table td {
  border: 1px solid #e5e7eb;
  padding: 8px 12px;
  text-align: left;
}
.result-table th {
  background-color: #f9fafb;
}
.result-table tr:nth-child(even) {
  background-color: #f3f4f6;
}
/* END SEO */
