/* toc.css — 文章目錄：寬螢幕為右側固定側欄（滑動指示器＋進度線＋百分比），窄螢幕為可收合卡片 */
@keyframes slideIn{from{opacity:0;transform:translateX(14px)}}
@keyframes drop{from{opacity:0;transform:translateY(-6px)}}
#toc{display:none;position:fixed;top:calc(130px + env(safe-area-inset-top,0px));left:calc(50% + 380px + 36px);width:200px;animation:fade .8s var(--ease) .4s backwards}
@media (min-width:1240px){#toc{display:block}.toc-m{display:none}}
.toc-t{display:flex;justify-content:space-between;align-items:baseline;font:600 12px var(--sans);letter-spacing:.24em;color:var(--mute);margin-bottom:12px;text-transform:uppercase}
.toc-pct{font:600 13px var(--serif);letter-spacing:0;color:var(--accent);font-variant-numeric:tabular-nums}
#toc ol,.toc-m ol{list-style:none;margin:0;padding:0}
#toc ol{position:relative;border-left:1px solid var(--line)}
/* 進度線：隨閱讀進度向下生長 */
.toc-fill{position:absolute;left:-1px;top:0;bottom:0;width:1px;background:var(--accent);transform-origin:top;transform:scaleY(0);transition:transform .2s linear}
/* 指示器：在章節之間平滑滑動 */
.toc-ind{position:absolute;left:-2px;top:0;width:3px;height:0;border-radius:3px;background:var(--accent);box-shadow:0 0 12px var(--accent);transition:transform .5s var(--ease),height .5s var(--ease)}
#toc li{animation:slideIn .55s var(--ease) backwards;animation-delay:calc(.5s + var(--i,0)*70ms)}
#toc li button,.toc-m li button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--mute);font:inherit;font-size:13px;line-height:1.5;cursor:pointer}
#toc li button{padding:6px 0 6px 16px;transition:color .25s,padding .35s var(--ease),transform .25s}
#toc li button:hover{color:var(--fg);transform:translateX(3px)}
#toc li button.on{color:var(--accent);padding-left:22px;transform:none}
.toc-m{margin:0 0 32px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px 18px;font-size:14px;animation:fade .6s var(--ease) .25s backwards}
.toc-m summary{cursor:pointer;color:var(--mute);list-style:none}
.toc-m summary::-webkit-details-marker{display:none}
.toc-m summary::after{content:"＋";float:right;color:var(--accent);transition:transform .3s var(--ease);display:inline-block}
.toc-m[open] summary::after{transform:rotate(45deg)}
.toc-m[open] summary{margin-bottom:6px}
.toc-m[open] li{animation:drop .4s var(--ease) backwards;animation-delay:calc(var(--i,0)*45ms)}
.toc-m li button{padding:8px 0;font-size:14px;transition:color .2s,transform .25s}
.toc-m li button:hover{color:var(--accent);transform:translateX(4px)}
