@media (prefers-reduced-motion: no-preference) {
  html.reveal-on #hero-section,
  html.reveal-on #home-about,
  html.reveal-on #about-advantages,
  html.reveal-on #about-services,
  html.reveal-on #study-destinations,
  html.reveal-on #experience-section,
  html.reveal-on #latest-news,
  html.reveal-on #location {
    opacity: 0;
    transform: translateY(30px);
    will-change: opacity, transform;
    transition: opacity 0.8s cubic-bezier(0.2, 0.7, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
  }
  html.reveal-on .is-visible { opacity: 1 !important; transform: none !important; }
}

#study-destinations [class*="aspect"] img { transition: transform .7s cubic-bezier(0.2,0.7,0.2,1); }
#study-destinations .grid > div:hover [class*="aspect"] img { transform: scale(1.06); }
#study-destinations .grid > div a:hover { color: #C5A059; }
#study-destinations .grid > div a svg { transition: transform .3s ease; }
#study-destinations .grid > div a:hover svg { transform: translateX(4px); }
#latest-news .text-secondary { color: #C5A059; }
#latest-news article { transition: padding-left .3s ease; }
#latest-news article:hover { padding-left: 12px; }
#latest-news article:hover h4 { color: #C5A059; }
@media (max-width: 1023px) {
  #latest-news article { text-align: center; }
  #latest-news article .flex { justify-content: center; }
}

/* Portfolio Editorial Accents */
.portfolio-badge { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; }


/* Coordinates details overlay */
.coordinate-label { font-size: 14px; letter-spacing: 0.15em; font-family: monospace; color: #000000; font-weight: 700; }

/* 主要國家國旗 360 度旋轉動畫樣式 */
@keyframes svc-orbit { to { transform: rotate(360deg); } }
@keyframes svc-orbit-rev { to { transform: rotate(-360deg); } }
#specialty-countries .svc-orbit { position: relative; width: 300px; height: 300px; margin: 0 auto; --r: 110px; --flag: 54px; --dur: 30s; }
@media (min-width: 768px) { #specialty-countries .svc-orbit { width: 460px; height: 460px; --r: 185px; --flag: 74px; } }
#specialty-countries .svc-path { position: absolute; inset: 0; border-radius: 9999px; border: 1px dashed rgba(0,43,91,.16); }
#specialty-countries .svc-path::after { content: ""; position: absolute; inset: 15%; border-radius: 9999px; border: 1px dashed rgba(197,160,89,.28); }
#specialty-countries .svc-hub { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 112px; height: 112px; border-radius: 9999px; background: radial-gradient(circle at 32% 26%, #0a4d92, #002b5b 72%); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 0 18px 44px rgba(0,43,91,.4); z-index: 2; }
@media (min-width: 768px) { #specialty-countries .svc-hub { width: 150px; height: 150px; } }
#specialty-countries .svc-hub b { font-size: 30px; line-height: 1; font-weight: 700; }
@media (min-width: 768px) { #specialty-countries .svc-hub b { font-size: 40px; } }
#specialty-countries .svc-hub span { font-size: 11px; letter-spacing: .2em; margin-top: 6px; opacity: .85; }
#specialty-countries .svc-ring { position: absolute; inset: 0; animation: svc-orbit var(--dur) linear infinite; z-index: 1; }
#specialty-countries .svc-item { position: absolute; top: 50%; left: 50%; width: var(--flag); height: var(--flag); margin: calc(var(--flag) / -2); transform: rotate(var(--a)) translate(var(--r)) rotate(calc(-1 * var(--a))); }
#specialty-countries .svc-flag { position: relative; width: 100%; height: 100%; animation: svc-orbit-rev var(--dur) linear infinite; }
#specialty-countries .svc-fimg { width: 100%; height: 100%; border-radius: 9999px; overflow: hidden; background: #fff; border: 2px solid #fff; box-shadow: 0 8px 20px rgba(0,0,0,.18); display: flex; align-items: center; justify-content: center; transition: transform .3s, box-shadow .3s, border-color .3s; }
#specialty-countries .svc-fimg img { width: 100%; height: 100%; object-fit: cover; }
#specialty-countries .svc-flag:hover .svc-fimg { transform: scale(1.14); border-color: #C5A059; box-shadow: 0 10px 26px rgba(197,160,89,.55); }
#specialty-countries .svc-name { position: absolute; top: calc(100% + 6px); left: 50%; transform: translateX(-50%); font-size: 15px; font-weight: 600; color: rgb(10 124 255 / var(--tw-text-opacity, 1)); white-space: nowrap; pointer-events: none; }
#specialty-countries .svc-orbit:hover .svc-ring, #specialty-countries .svc-orbit:hover .svc-flag { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { #specialty-countries .svc-ring, #specialty-countries .svc-flag { animation: none !important; } }
/* 電腦版(≥1024px,顯示完整導覽列時):國旗改為置中一排、停止繞圈;1024px 以下(漢堡出現)維持原本繞中心旋轉 */
@media (min-width: 1024px) {
  #specialty-countries { width: 100%; }
  #specialty-countries .svc-orbit { width: 100%; height: auto; margin: 0; --flag: 88px; }
  #specialty-countries .svc-path,
  #specialty-countries .svc-hub { display: none; }
  #specialty-countries .svc-ring {
    position: static; inset: auto; animation: none;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: clamp(24px, 6vw, 88px);
  }
  #specialty-countries .svc-item {
    position: static; top: auto; left: auto;
    width: var(--flag); height: var(--flag);
    margin: 0 0 26px; transform: none;
  }
  #specialty-countries .svc-flag { animation: none; }
}
/* 了解更多 亮藍色一閃一閃動畫 */
@keyframes blink-glow {
  0%, 100% {
    opacity: 1;
    filter: drop-shadow(0 0 6px rgba(10, 124, 255, 0.8));
  }
  50% {
    opacity: 0.35;
    filter: drop-shadow(0 0 0px rgba(10, 124, 255, 0));
  }
}
.animate-blink-glow {
  animation: blink-glow 1.8s infinite ease-in-out;
}
.animate-blink-glow:hover {
  animation-play-state: paused;
  opacity: 1 !important;
  filter: drop-shadow(0 0 8px rgba(56, 189, 248, 0.9));
}
