/* Claude Max 每日名额提示(2026-10-20):格子依次亮起 + 数字滚动 + 呼吸点 */
.fxq{display:flex;align-items:center;gap:10px;margin:4px 0 14px;padding:12px 16px;border:1px solid rgba(255,196,61,.4);background:rgba(255,196,61,.07);color:#f2ece0;font-size:14.5px;line-height:1.4;position:relative;overflow:hidden}
.fxq.is-play{animation:fxqIn .55s cubic-bezier(.16,1,.3,1)}
.fxq::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,196,61,.16) 50%,transparent 70%);transform:translateX(-100%);pointer-events:none}
.fxq.is-play::after{animation:fxqSweep 1.4s cubic-bezier(.16,1,.3,1) .35s}
.fxq__txt{white-space:nowrap}
.fxq__num{display:inline-block;min-width:1.3em;text-align:center;font:700 20px/1 "SF Mono",Menlo,monospace;color:#ffc43d;margin:0 2px;font-variant-numeric:tabular-nums}
.fxq__dot{width:8px;height:8px;border-radius:50%;background:#ffc43d;box-shadow:0 0 0 0 rgba(255,196,61,.6);animation:fxqPulse 2s infinite;flex:none}
.fxq__pips{display:flex;gap:4px;margin-left:auto;align-items:center}
.fxq__pip{display:block;width:6px;height:16px;background:rgba(255,240,210,.14);transform-origin:bottom}
.fxq__pip.is-on{background:#ffc43d}
.fxq.is-play .fxq__pip{animation:fxqPip .5s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--i) * 55ms + 120ms)}
.fxq:not(.is-out) .fxq__pip.is-on:last-of-type,.fxq:not(.is-out) .fxq__pip.is-on:has(+ .fxq__pip:not(.is-on)){animation:fxqPip .5s cubic-bezier(.34,1.56,.64,1) both,fxqBreath 1.8s ease-in-out 1.4s infinite}
.fxq.is-few{border-color:rgba(255,196,61,.7);box-shadow:0 0 0 3px rgba(255,196,61,.08),0 10px 30px -18px rgba(255,196,61,.8)}
.fxq.is-hidden{display:none}
.fxq.is-out{border-color:rgba(255,240,210,.18);background:rgba(255,240,210,.04);color:#a69c8c}
.fxq.is-out .fxq__dot{background:#a69c8c;animation:none}
.fxq.is-shake{animation:fxqShake .45s}
@keyframes fxqIn{from{opacity:0;transform:translateY(8px)}}
@keyframes fxqSweep{to{transform:translateX(100%)}}
@keyframes fxqPip{from{opacity:0;transform:scaleY(.2)}}
@keyframes fxqBreath{50%{opacity:.45}}
@keyframes fxqPulse{70%{box-shadow:0 0 0 7px rgba(255,196,61,0)}100%{box-shadow:0 0 0 0 rgba(255,196,61,0)}}
@keyframes fxqShake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@media(max-width:420px){.fxq__pip{width:4px;height:14px;gap:3px}}
@media(prefers-reduced-motion:reduce){.fxq,.fxq *,.fxq::after{animation:none!important}}
