/* 来数官网动效层：图形、边框和交互反馈运动，正文保持稳定。 */
:root{--motion-ease:cubic-bezier(.22,.7,.25,1)}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:150;pointer-events:none}
.reading-progress>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#175df5,#64a0ff);transform:scaleX(0);transform-origin:left}
.btn{position:relative;isolation:isolate;overflow:hidden;transition:background .18s,border-color .18s,box-shadow .2s}
.btn:hover,.btn:active{transform:none}
.btn-primary::before,.btn-white::before{content:'';position:absolute;inset:-50% auto -50% -55%;width:34%;background:linear-gradient(100deg,transparent,#ffffff40,transparent);transform:skewX(-20deg);pointer-events:none;opacity:0}
.btn-primary:hover::before,.btn-primary:focus-visible::before,.btn-white:hover::before,.btn-white:focus-visible::before{animation:button-sweep .7s var(--motion-ease)}
.btn svg,.text-link svg,.studio-demo-link svg,.studio-cta-link svg{transition:transform .22s var(--motion-ease)}
.btn:hover>svg,.btn:focus-visible>svg{transform:translateX(3px)}
.hero-actions .btn-primary:hover>svg,.studio-cta .btn:hover>svg{transform:translate(2px,-2px)}
.btn-primary:hover{box-shadow:0 5px 18px #175df52b}.btn-ghost:hover{box-shadow:0 3px 12px #175df50b}
.hero-actions .btn-primary{animation:cta-halo 5.2s ease-in-out infinite}.hero-actions .btn-primary:hover{animation-play-state:paused}
.motion-ripple{position:absolute;left:var(--ripple-x);top:var(--ripple-y);width:var(--ripple-size);height:var(--ripple-size);margin:calc(var(--ripple-size) / -2);border-radius:50%;background:currentColor;opacity:0;pointer-events:none;animation:button-ripple .55s ease-out}
.btn-primary .motion-ripple{background:#fff}.btn.is-confirmed{box-shadow:0 0 0 4px #175df51a}.btn.is-confirmed>svg{transform:none}
.is-confirmed .copy-check{stroke-dasharray:25;stroke-dashoffset:25;animation:check-draw .35s ease-out forwards}
.stage-signal path:first-of-type{animation:signal-travel 22s linear infinite}
.stage-signal circle:first-of-type{transform-box:fill-box;transform-origin:center;animation:signal-breathe 3.6s ease-in-out infinite}
.canvas-insight{overflow:hidden}.canvas-insight::after{content:'';position:absolute;bottom:0;left:-25%;height:2px;width:25%;background:linear-gradient(90deg,transparent,#ffffffa3,transparent);animation:insight-flow 7s ease-in-out infinite;pointer-events:none}
.motion-play{display:inline-flex;align-items:center;justify-content:center;gap:5px;margin-left:auto;min-height:27px;border:1px solid #d9e5fa;border-radius:4px;padding:3px 8px;color:#3868b3;background:#fff;font-size:11px;line-height:1.5;letter-spacing:0;white-space:nowrap;transition:border-color .2s,background .2s}
.motion-play svg{width:11px;height:11px;flex-shrink:0}.motion-play:hover,.motion-play:focus-visible{border-color:#91b4f9;background:#f4f8ff}.motion-play[aria-pressed=true]{background:#eef4ff;border-color:#b2cbfb;color:#175df5}
.motion-card{position:relative;isolation:isolate;transition:border-color .2s,box-shadow .25s}
.motion-card::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(250px circle at var(--spot-x,50%) var(--spot-y,50%),var(--spot-color,#175df50c),transparent 78%);opacity:0;pointer-events:none;z-index:-1;transition:opacity .25s}
.motion-card:hover::before,.motion-card:focus-within::before{opacity:1}
.motion-card:hover{border-color:#afc9f5;box-shadow:0 8px 22px #23498309;transform:none}
.bento-tool.motion-card{--spot-color:#ffffff1c}.bento-tool.motion-card:hover{box-shadow:0 10px 28px #175df51c}
.motion-card .case-icon svg,.motion-card>.bento-label>svg{transition:transform .25s var(--motion-ease)}
.motion-card:hover .case-icon svg,.motion-card:hover>.bento-label>svg{transform:translateY(-3px)}
.type-grid>div{transition:background .2s,border-color .2s}.type-grid>div:hover{background:#ffffff15;border-color:#ffffff69}.type-grid>div>i{transition:transform .25s var(--motion-ease)}.type-grid>div:hover>i{transform:translateY(-3px)}
.motion-tabs{position:relative}.motion-tabs>[aria-selected=true]::after{display:none}
.motion-tab-indicator{position:absolute;left:0;bottom:-1px;height:2px;background:#175df5;pointer-events:none;transition:width .3s var(--motion-ease),transform .3s var(--motion-ease);z-index:2}
.motion-segments{position:relative;isolation:isolate}.motion-segments>button{position:relative;z-index:1}.motion-segments>button[aria-pressed=true]{background:transparent;border-color:transparent}
.motion-audience-indicator{position:absolute;left:0;top:0;border:1px solid #b8cefa;background:#f2f6ff;border-radius:4px;pointer-events:none;z-index:0;transition:width .3s var(--motion-ease),height .3s var(--motion-ease),transform .3s var(--motion-ease)}
.canvas-bar-fill{transition:background .2s}.quota-stack>span{transition:none}
.motion-outline{position:fixed;z-index:70;right:21px;top:50%;transform:translateY(-50%);padding:9px 6px;background:#fffffff2;border:1px solid #e4ebf5;box-shadow:0 6px 18px #1c3d6b06;border-radius:22px;display:grid;gap:2px}
.motion-outline button{position:relative;width:28px;height:34px;display:grid;place-items:center;border:0;background:transparent;color:#8a9ebd;border-radius:50%}
.motion-outline .outline-dot{width:5px;height:5px;border-radius:50%;background:#c7d5e9;transition:background .2s,box-shadow .2s}
.motion-outline button[aria-current=true] .outline-dot{background:#175df5;box-shadow:0 0 0 4px #175df513}.motion-outline button:hover .outline-dot{background:#175df5}
.motion-outline .outline-label{position:absolute;right:37px;top:5px;padding:3px 9px;background:#fff;border:1px solid #dfe8f7;border-radius:4px;color:#52729e;font-size:11px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .15s;pointer-events:none}
.motion-outline button:hover .outline-label,.motion-outline button:focus-visible .outline-label{opacity:1;visibility:visible}
.motion-tools{position:fixed;z-index:80;right:21px;bottom:22px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.motion-tools button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 11px;border:1px solid #dce6f4;background:#fff;box-shadow:0 3px 14px #23447408;border-radius:5px;color:#55729b;font-size:11px;line-height:1.5}
.motion-tools button:hover{border-color:#9bbbf6;color:#175df5}.motion-tools svg{height:14px;width:14px}.back-to-top{width:39px;padding-inline:0!important}
.motion-section-enter{position:relative}
.motion-section-enter::after{content:'';position:absolute;bottom:-12px;left:0;height:2px;width:30px;background:#175df5;pointer-events:none;animation:section-line .65s var(--motion-ease) both}
.motion-section-enter .studio-section-no{color:#175df5}
[data-site-motion=paused] .stage-signal path,[data-site-motion=paused] .stage-signal circle{animation-play-state:paused}
[data-site-motion=paused] .hero-actions .btn-primary,[data-site-motion=paused] .canvas-insight::after{animation-play-state:paused}
[data-site-motion=paused] .motion-ripple,[data-site-motion=paused] .btn::before,[data-site-motion=paused] .motion-section-enter::after{animation:none}
[data-site-motion=paused] .copy-check{animation:none;stroke-dashoffset:0}
[data-site-motion=paused] .motion-tab-indicator,[data-site-motion=paused] .motion-audience-indicator,[data-site-motion=paused] .btn svg,[data-site-motion=paused] .text-link svg,[data-site-motion=paused] .motion-card svg,[data-site-motion=paused] .type-grid i{transition:none;transform:none}
[data-site-motion=paused] .motion-tab-indicator,[data-site-motion=paused] .motion-audience-indicator{transform:var(--indicator-transform)!important}
@keyframes button-sweep{0%{left:-55%;opacity:0}15%{opacity:1}100%{left:130%;opacity:0}}
@keyframes cta-halo{0%,45%,100%{box-shadow:0 0 0 0 #175df500}65%{box-shadow:0 0 0 5px #175df50d}85%{box-shadow:0 0 0 9px #175df500}}
@keyframes insight-flow{0%,25%{transform:translateX(0);opacity:0}40%{opacity:1}75%,100%{transform:translateX(500%);opacity:0}}
@keyframes button-ripple{0%{transform:scale(.05);opacity:.24}100%{transform:scale(1);opacity:0}}
@keyframes signal-travel{to{stroke-dashoffset:-220}}
@keyframes signal-breathe{0%,100%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
@keyframes check-draw{to{stroke-dashoffset:0}}
@keyframes section-line{from{clip-path:inset(0 100% 0 0);opacity:.4}to{clip-path:inset(0);opacity:1}}
@media(max-width:1180px){.motion-outline{display:none}.motion-tools{right:17px;bottom:18px}}
@media(max-width:760px){.motion-play{font-size:10px;min-height:26px;padding:3px 6px;gap:4px}.motion-tools{right:13px;bottom:max(14px,env(safe-area-inset-bottom));gap:7px}.motion-tools button{min-height:37px;padding:8px 9px;font-size:10px}.back-to-top{width:37px}.motion-section-enter::after{bottom:-9px;width:24px}}
@media(hover:none){.motion-card::before{display:none}.btn:hover>svg,.type-grid>div:hover>i{transform:none}}
@media(prefers-reduced-motion:reduce){
 .stage-signal path,.stage-signal circle,.hero-actions .btn-primary,.canvas-insight::after,.btn::before,.motion-ripple,.motion-section-enter::after,.copy-check{animation:none!important}.motion-tab-indicator,.motion-audience-indicator,.motion-card,.btn svg,.text-link svg,.type-grid i{transition:none!important}.copy-check{stroke-dashoffset:0}.btn:hover>svg,.motion-card:hover svg,.type-grid>div:hover>i{transform:none!important}
}
