/* AI星网 · 动效系统
   规范：02_设计/动效规范.md ｜ 决策：ADR-008 / ADR-011 / ADR-012
   纪律：只动 transform 与 opacity；不引入任何动效库；移动端不跑 canvas */

html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation:none!important}
html[data-motion="off"] #starfield,html[data-motion="lite"] #starfield{display:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}#starfield{display:none}}

#starfield{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
@keyframes aurora{0%{transform:translate3d(-3%,-2%,0) scale(1)}50%{transform:translate3d(4%,3%,0) scale(1.08)}100%{transform:translate3d(-2%,4%,0) scale(1.03)}}
@keyframes barglow{0%,100%{box-shadow:0 0 6px var(--glow)}50%{box-shadow:0 0 14px 2px var(--glow)}}
@keyframes barrun{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes breathe{0%,100%{box-shadow:0 4px 20px rgba(76,95,213,.5)}50%{box-shadow:0 4px 32px rgba(124,108,240,.85)}}
@keyframes marq{to{transform:translateX(-50%)}}
@keyframes orb{0%,100%{transform:translate(-18%,-12%) scale(.9)}50%{transform:translate(20%,14%) scale(1.15)}}
@keyframes popin{from{transform:translateY(13px) scale(.97)}to{transform:none}}
@keyframes pulse2{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,107,53,.6)}70%{box-shadow:0 0 0 6px rgba(255,107,53,0)}}
@keyframes scan{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes shine{0%{left:-60%}55%,100%{left:130%}}
@keyframes slup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes subin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes tw{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.35)}}

/* ── ADR-012：通栏区块一律半透明，否则会把固定星空层整个盖住 ──
   ⚠️ 以后新增任何通栏区块，背景必须带 alpha，不许用实心色 */
.axw-stage{background:rgba(8,11,24,.46)}
html[data-theme="light"] .axw-stage{background:rgba(24,29,58,.80)}
.axw-band{background:rgba(12,16,32,.42)}
html[data-theme="light"] .axw-band{background:rgba(237,240,248,.62)}
footer,.footer,.axw-foot{background:rgba(19,23,37,.50)!important}
html[data-theme="light"] footer,html[data-theme="light"] .footer,html[data-theme="light"] .axw-foot{background:rgba(255,255,255,.72)!important}

/* 内容卡片相反：必须保持不透明，这是列表可读性的底线 */
.axw-card,article,.post-item{background:var(--surface)}

/* 错峰进场 */
html.jsst [data-stagger]:not(.sin)>*{transform:translateY(13px) scale(.97)}
html.jsst [data-stagger].sin>*{animation:popin .48s cubic-bezier(.4,0,.2,1) backwards;animation-delay:var(--d,0ms)}
html[data-motion="off"] [data-stagger]>*{opacity:1!important;animation:none!important}
.axw-reveal{opacity:1;transform:translateY(20px);transition:transform .6s}
.axw-reveal.in{opacity:1;transform:none}
html[data-motion="off"] .axw-reveal{opacity:1;transform:none}

/* 动效档位开关（放页脚，不做浮层——ADR-008 附注） */
.axw-motion-switch{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--t3)}
.axw-motion-switch .seg{display:flex;background:var(--surface-2);border-radius:7px;padding:2px;gap:2px}
.axw-motion-switch .seg a{padding:4px 10px;border-radius:5px;cursor:pointer;color:var(--t3);transition:.2s}
.axw-motion-switch .seg a.on{background:var(--brand);color:#fff;font-weight:600}

/* 回到顶部 */
.axw-totop{position:fixed;right:18px;bottom:74px;width:44px;height:44px;border-radius:50%;z-index:98;display:grid;
 place-items:center;cursor:pointer;color:#fff;font-size:17px;background:linear-gradient(140deg,var(--brand),var(--brand-2));
 box-shadow:0 6px 22px var(--glow);opacity:0;transform:translateY(14px) scale(.85);pointer-events:none;transition:.35s}
.axw-totop.show{opacity:1;transform:none;pointer-events:auto}
.axw-totop::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid transparent;
 border-top-color:var(--accent);animation:spin 3.5s linear infinite}

@media(max-width:1200px){#starfield{display:none}}
