/* 動態效果：只用 transform／opacity；全部在 prefers-reduced-motion 下關閉；不載入外部函式庫 */
@media(prefers-reduced-motion:no-preference){
 [data-r]{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.1,1),transform .7s cubic-bezier(.2,.7,.1,1);transition-delay:var(--d,0s)}
 [data-r].in{opacity:1;transform:none}
 .card,.plan,.pill{transition:transform .25s cubic-bezier(.2,.7,.1,1),box-shadow .25s}
 a.card:hover,.plan:hover{transform:translateY(-4px)}
 .pill:active,a.card:active{transform:scale(.97)}
 .nav .menu .box{animation:drop .22s cubic-bezier(.2,.7,.1,1)}@keyframes drop{from{opacity:0;transform:translateY(-8px)}}
 /* 圖表線條描繪 */
 .chart path:first-child{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 1.8s .5s cubic-bezier(.4,.1,.2,1) forwards}@keyframes draw{to{stroke-dashoffset:0}}
 .chart path:last-child{opacity:0;animation:fadein 1s 1.6s forwards}@keyframes fadein{to{opacity:1}}
 /* 疊石：三顆石頭依序落下 */
 .cairn i{animation:stone .6s cubic-bezier(.3,1.4,.5,1) both}.cairn i:nth-child(3){animation-delay:.2s}.cairn i:nth-child(2){animation-delay:.45s}.cairn i:nth-child(1){animation-delay:.7s}
 @keyframes stone{from{transform:translateY(-26px);opacity:0}}
 /* 宣稱：刪除線在進入畫面時劃過 */
 .pair .a{text-decoration:none;position:relative;display:inline-block}
 .pair .a::after{content:"";position:absolute;left:0;top:54%;height:.06em;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .9s .4s cubic-bezier(.6,0,.2,1)}
 .pair.in .a::after{transform:scaleX(1)}
 .pair .b{position:relative;display:inline-block}.pair .b::after{content:"";position:absolute;left:0;bottom:-.04em;height:.07em;width:100%;background:var(--moss);transform:scaleX(0);transform-origin:left;transition:transform .9s 1s cubic-bezier(.6,0,.2,1)}.pair.in .b::after{transform:scaleX(1)}
 /* 7 條規則：七個點依序亮起 */
 .dots i{opacity:.25;transform:scale(.6);transition:opacity .4s,transform .4s;transition-delay:calc(var(--i)*.14s)}.stat.in .dots i{opacity:1;transform:none}
 /* 背景直條紋緩慢位移 */
 body::before{animation:drift 60s linear infinite}@keyframes drift{to{background-position:46px 0,0 0}}
 /* 「現在」標記呼吸 */
 .now-dot{animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(175,82,5,.0),0 0 0 0 rgba(175,82,5,.4)}0%{box-shadow:0 0 0 0 rgba(175,82,5,.4)}}
}
.dots{display:flex;gap:10px;margin-top:22px}.dots i{width:14px;height:14px;border-radius:50%;background:#cfe0bf;display:block}
/* 日程時間軸（美東時間，標記位置由當下 ET 計算） */
.tl{position:relative;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:30px 26px 22px;margin-bottom:12px}
.tl .bar{position:relative;height:6px;border-radius:6px;background:var(--line);margin:34px 6px 54px}
.tl .fill{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--rust);width:0;transition:width 1.6s cubic-bezier(.3,.1,.2,1)}
.tl .tk{position:absolute;top:-6px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--card);box-shadow:0 0 0 3px var(--line)}
.tl .tk.done{box-shadow:0 0 0 3px var(--rust);background:var(--rust)}
.tl .tk span{position:absolute;top:26px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.8rem;color:var(--muted);text-align:center;line-height:1.3}
.tl .tk span b{display:block;color:var(--ink);font-weight:600}
.tl .now-dot{position:absolute;top:-9px;width:24px;height:24px;margin-left:-12px;border-radius:50%;background:var(--rust);border:4px solid #fff}
.tl .nowl{position:absolute;top:-40px;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:999px;font-size:.78rem;padding:3px 10px;white-space:nowrap}
.cite{background:var(--paper-2);border-radius:18px;box-shadow:inset 0 0 0 1px var(--line);padding:16px 18px;display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:12px}
.cite code{font:500 .92rem/1.5 ui-monospace,Menlo,monospace;color:var(--ink);word-break:break-word}
@media(max-width:640px){
 /* 手機：報告種類改成可左右滑的卡片列（scroll-snap），少一半捲動長度 */
 .snap{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px!important;margin:0 calc(var(--m)*-1);padding:6px var(--m) 14px;-webkit-overflow-scrolling:touch}
 .snap>.card{flex:0 0 78%;scroll-snap-align:center}
 .tl .tk span{font-size:.68rem}.tl .tk span b{font-size:.72rem}.tl{padding:30px 14px 18px}
}
.tl .tk.up span{top:-48px}.tl .bar{margin-top:56px}
@media(max-width:640px){.tl .tk:nth-child(4) span{display:none}.tl .nowl{top:-78px}.tl .bar{margin-top:88px}}
.pair .a,.pair .b{width:max-content;max-width:100%}
