/* WMOA — 动效层（2026-10-08）。全部规则挂在 html.mo 下：关闭动效或「减少动态效果」时整层失效。 */

/* 页面之间淡入淡出（支持的浏览器） */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .4s; }

/* 阅读进度：导航下沿一条石绿细线 */
.mo .mo-progress { position: fixed; left: 0; top: 0; z-index: 60; width: 100%; height: 2px; background: var(--green); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); pointer-events: none; }

/* 导航：滚动后收窄；链接悬停时下划线自左展开 */
.mo .nav-in { transition: height .35s cubic-bezier(.2,.7,.2,1); }
.mo.mo-scrolled .nav-in { height: 72px; }
.mo.mo-scrolled .nav { box-shadow: 0 10px 30px rgba(8,27,61,.05); }
.mo .nav-links a { position: relative; transition: color .25s; }
.mo .nav-links a:not([aria-current])::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.mo .nav-links a:hover { color: var(--ink); }
.mo .nav-links a:hover::after { transform: scaleX(1); }

/* 首屏：照片缓慢推近；标题逐行升起；绿线画出 */
.mo .hero-img img { animation: mo-kb 16s cubic-bezier(.2,.6,.2,1) both; }
@keyframes mo-kb { from { transform: scale(1.09); } to { transform: scale(1); } }
.mo .mo-line { display: block; overflow: hidden; padding-bottom: .06em; }
.mo .mo-line > span { display: block; transform: translateY(110%); animation: mo-rise 1.1s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes mo-rise { to { transform: none; } }
.mo .hero .rule, .mo .ins-issue-hero .rule { transform-origin: left; animation: mo-draw 1.2s .7s cubic-bezier(.2,.7,.2,1) both; }
@keyframes mo-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* 区块编号下方的竖线：进入视口时生长 */
.mo .numbered > .num { position: relative; }
.mo .numbered > .num::after { content: ""; position: absolute; left: 0; top: 26px; width: 1px; height: 0; background: var(--green); transition: height 1.4s cubic-bezier(.2,.7,.2,1) .15s; }
.mo .numbered.mo-in > .num::after { height: 88px; }

/* 随滚动「着墨」的标题：字从浅灰变成墨色 */
.mo .mo-ink .mo-c { color: var(--mo-pale, #C9CBCB); transition: color .35s ease; }
.mo .mo-ink .mo-c.on { color: inherit; }
.mo .on-dark .mo-ink, .mo .navy .mo-ink { --mo-pale: rgba(255,255,255,.22); }

/* 台账行：悬停时淡绿底、编号右移 */
.mo .ledger .row { transition: background .35s ease; }
.mo .ledger .row:hover { background: linear-gradient(90deg, rgba(82,186,182,.07), rgba(82,186,182,0) 75%); }
.mo .on-dark .ledger .row:hover { background: linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,0) 75%); }
.mo .ledger .row .n { display: inline-block; transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.mo .ledger .row:hover .n { transform: translateX(8px); }

/* 卡片、团队、三栏：悬停时顶部绿线自左画出，轻微上浮 */
.mo .three > div, .mo .card, .mo .team > div { position: relative; transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s; }
.mo .three > div::before, .mo .card::before, .mo .team > div::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 2px; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.mo .three > div:hover::before, .mo .card:hover::before, .mo .team > div:hover::before { transform: scaleX(1); }
.mo .card:hover, .mo .team > div:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(8,27,61,.07); }

/* 按钮：深一档的绿自左扫过 */
.mo .btn { position: relative; overflow: hidden; isolation: isolate; }
.mo .btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--green-1); transform: translateX(-101%); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.mo .btn:hover { background: var(--green); }
.mo .btn:hover::before { transform: none; }
.mo .btn.ghost::before { background: #EDF8F8; }
.mo .btn.ghost:hover { background: none; }
.mo .btn.on-navy::before { background: rgba(255,255,255,.1); }
.mo .btn.on-navy:hover { background: none; }

/* 文字链接：下划线由灰变绿、自左铺开 */
.mo .link-u { background: linear-gradient(var(--green), var(--green)) 0 100% / 0 1px no-repeat; transition: background-size .45s cubic-bezier(.2,.7,.2,1), color .25s; }
.mo .link-u:hover { background-size: 100% 1px; }

/* 数字滚动（老虎机式） */
.mo .mo-num { display: inline-flex; align-items: flex-start; }
.mo .mo-dg { display: inline-block; height: 1.1em; overflow: hidden; vertical-align: top; }
.mo .mo-dg > span { display: flex; flex-direction: column; transition: transform 1.8s cubic-bezier(.16,1,.3,1); }
.mo .mo-dg > span > i { font-style: normal; height: 1.1em; line-height: 1.1em; }

/* 洞见：封面随鼠标轻微倾斜；筛选下划线滑动；列表行与图片悬停 */
.mo .ins-cover { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; will-change: transform; }
.mo .ins-cover:hover { box-shadow: 0 26px 56px rgba(8,27,61,.22), 0 2px 6px rgba(8,27,61,.12); }
.mo .ins-filter { position: relative; }
.mo .ins-filter button.on { border-bottom-color: transparent; }
.mo .mo-ind { position: absolute; bottom: 0; height: 1px; background: var(--green); transition: left .4s cubic-bezier(.2,.7,.2,1), width .4s cubic-bezier(.2,.7,.2,1); }
.mo .ins-row { transition: background .35s ease; }
.mo .ins-row:hover { background: linear-gradient(90deg, rgba(82,186,182,.06), rgba(82,186,182,0) 70%); }
.mo .ins-row .ins-t .q { transition: transform .35s cubic-bezier(.2,.7,.2,1), color .25s; }
.mo .ins-row:hover .ins-t .q { transform: translateX(6px); }
.mo .ins-spreads img, .mo .ins-latest-issue img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.mo .ins-spreads img:hover { transform: scale(1.015); }
.mo .ins-latest-issue:hover img { transform: translateY(-4px) rotate(-.6deg); }

/* 列表与台账逐行出现（沿用站点原有 data-reveal 机制） */
.mo .ins-row[data-reveal], .mo .ledger .row[data-reveal] { transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1), background .35s ease; }

@media (prefers-reduced-motion: reduce) {
  .mo *, .mo *::before, .mo *::after { animation: none !important; transition: none !important; }
  .mo .mo-line > span { transform: none; }
}

/* 页脚底行域名保持小写（不改 site.css：assets 为一年 immutable 缓存，已缓存旧 site.css 的访客也能拿到）*/
.f-meta .f-domain{text-transform:none}
