﻿/* ============================================================
   motion.css — 全站動效基礎 (AOS 捲動進場「內斂版」共用規則)
   2026-06-02
   - 由 main.master 全站載入,讓任何頁面只要加 data-aos 即有一致的內斂進場
   - 進場前位移採內斂幅度(覆寫 AOS 預設 100px,僅作用於尚未進場 :not(.aos-animate))
   - 平滑捲動 + prefers-reduced-motion 防呆(內容完整顯示,不卡 opacity:0)
   - 與 index-v2.css 內既有同名規則為「相同數值」,重複亦無衝突
   ============================================================ */
[data-aos="fade-up"]:not(.aos-animate)    { transform: translate3d(0, 22px, 0); }
[data-aos="fade-down"]:not(.aos-animate)  { transform: translate3d(0, -22px, 0); }
[data-aos="fade-left"]:not(.aos-animate)  { transform: translate3d(28px, 0, 0); }
[data-aos="fade-right"]:not(.aos-animate) { transform: translate3d(-28px, 0, 0); }

/* 手機/平板:fade-left/right 的水平預備位移(±28px)在窄螢幕會把寬元素推出邊界,
   造成尚未進場(:not(.aos-animate))時的暫時性水平捲動/裁切 → 改為垂直進場,消除 X 溢出 */
@media (max-width: 768px) {
  [data-aos="fade-left"]:not(.aos-animate),
  [data-aos="fade-right"]:not(.aos-animate) { transform: translate3d(0, 22px, 0); }
}

/* eyebrow 多為 inline <span>,transform 對 inline 無效 → 帶進場時轉 inline-block */
.iv2-eyebrow[data-aos] { display: inline-block; }

/* zoom-in 內斂版:AOS 預設 scale(0.6) 幅度過大,覆寫為 scale(.96) 維持精緻內斂
   (僅作用於尚未進場;進場後交回 AOS 控制) */
[data-aos="zoom-in"]:not(.aos-animate) { transform: scale(.96); }

/* 平滑捲動(錨點/返頂更絲滑) */
html { scroll-behavior: smooth; }

/* ============================================================
   全站鍵盤焦點態 (:focus-visible) — 2026-06-04
   - 僅鍵盤 Tab 導航時顯示,滑鼠點擊不出框 → 兼顧無障礙與視覺乾淨
   - 統一品牌紫 ring;var() 帶 fallback,讓 .iv2-nav(在 .iv2-root 外)也能取色
   - 大型互動卡用柔和雙層 box-shadow ring,避免直角外框切到圓角卡
   ============================================================ */
.iv2-root a:focus-visible,
.iv2-root button:focus-visible,
.iv2-root [tabindex]:focus-visible,
.iv2-root input:focus-visible,
.iv2-root select:focus-visible,
.iv2-root textarea:focus-visible,
.iv2-nav a:focus-visible,
.iv2-nav button:focus-visible,
.iv2-nav input:focus-visible {
  outline: 2px solid var(--iv2-primary, #5645d4);
  outline-offset: 3px;
  border-radius: var(--iv2-r-sm, 10px);
}
/* 圓角卡片/大型互動塊:柔和雙層 ring(白底間隔 + 紫色) */
.iv2-root .iv2-plan:focus-visible,
.iv2-root .iv2-news-mini:focus-visible,
.iv2-root .iv2-prod-card:focus-visible,
.iv2-root .iv2-news-card:focus-visible,
.iv2-root .iv2-nc-card:focus-visible,
.iv2-root .iv2-why-card:focus-visible,
.iv2-root .iv2-faculty-card:focus-visible,
.iv2-root .iv2-video-item:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px #ffffff, 0 0 0 5px var(--iv2-primary, #5645d4);
}

@media (prefers-reduced-motion: reduce) {
  [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}
