/* 投影片進場動畫（assets/motion.js 控制）。只在螢幕上、使用者沒有要求減少動態時生效；列印與備忘錄不受影響。 */
@media screen and (prefers-reduced-motion: no-preference){
  /* 頁面剛載入、動畫程式還沒接手前先藏住內容；萬一程式沒跑，2.5 秒後自動顯示 */
  body:not(.mo-ready) .slide > *{opacity:0;animation:mo-reveal 0s 2.5s forwards}
  html.mo .slide h1{position:relative}
  html.mo .slide h1::after{content:"";position:absolute;left:0;bottom:-.32em;width:64px;height:5px;border-radius:3px;background:var(--amber,#EE5A2E);transform-origin:left center;transform:scaleX(0)}
  html.mo .slide.hero h1::after{width:96px;height:7px;bottom:-.18em}
  html.mo .slide.mo-in h1::after{animation:mo-bar .7s cubic-bezier(.2,.8,.2,1) .35s forwards}
  html.mo .slide .orbit-art circle,html.mo .slide .orbit-art text{transform-box:fill-box;transform-origin:center}
  html.mo .slide.hero .orbit-art path[stroke-dasharray]{animation:mo-drift 18s linear infinite}
  html.mo .slide .card .ico,html.mo .slide .card .num{transform-origin:center}
}
@keyframes mo-bar{to{transform:scaleX(1)}}
@keyframes mo-reveal{to{opacity:1}}
@keyframes mo-drift{to{stroke-dashoffset:-260}}
.mo-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--blue,#16294A);color:#fff;font-size:14px;padding:8px 16px;border-radius:99px;z-index:60;pointer-events:none;opacity:0;transition:opacity .2s}
.mo-toast.show{opacity:1}
@media print{html.mo .slide h1::after{display:none}}
