/* 一套节奏贯穿进入、退出、替换和操作反馈；静止时不保留位移或模糊滤镜。 */
:root{--choreo-ease:cubic-bezier(.22,1,.36,1);--choreo-speed:380ms}
html[data-choreography=ready] .rv{opacity:1;transform:none;transition:none}
[data-choreo-unit]{transition:color 220ms var(--choreo-ease),background-color 260ms var(--choreo-ease),border-color 260ms var(--choreo-ease),box-shadow 320ms var(--choreo-ease);scroll-margin-top:100px}
[data-choreo-surface]{transition:border-color 300ms var(--choreo-ease),box-shadow 360ms var(--choreo-ease),background-color 300ms var(--choreo-ease)}
html[data-choreography=ready] :is(a,button,input,textarea,select,summary){-webkit-tap-highlight-color:#175df518}
html[data-choreography=ready] :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select){transition:border-color 260ms var(--choreo-ease),background-color 260ms var(--choreo-ease),box-shadow 320ms var(--choreo-ease)!important}
html[data-choreography=ready] #contactForm :is(input,textarea,select):focus{border-color:#7ca8fa!important;box-shadow:0 0 0 4px #175df510}
html[data-choreography=ready] :is(.canvas-option,.audience-segments button,.workflow-tab,.canvas-tabs button){transition:color 220ms var(--choreo-ease),border-color 260ms var(--choreo-ease),background-color 260ms var(--choreo-ease),box-shadow 260ms var(--choreo-ease)}
html[data-choreography=ready] .canvas-option:has(input:checked){box-shadow:0 0 0 3px #175df50a}
html[data-choreography=ready] :is(.btn,.motion-play,.motion-tools button,.nav-toggle):active:not(:disabled){box-shadow:inset 0 2px 8px #193b8020}
.choreo-layer{position:fixed;inset:0;z-index:92;overflow:hidden;pointer-events:none;contain:strict;isolation:isolate}
.choreo-layer[data-kind=route]{clip-path:inset(var(--choreo-nav-height,72px) 0 0)}
.choreo-layer[data-kind=menu]{z-index:101}
.choreo-ghost{position:absolute!important;pointer-events:none!important;user-select:none!important;overflow:hidden;isolation:isolate}
.choreo-ghost,.choreo-ghost *{animation-play-state:paused!important;transition:none!important;pointer-events:none!important;caret-color:transparent!important}
.choreo-context{display:contents!important;position:static!important;transform:none!important;translate:none!important;filter:none!important;backdrop-filter:none!important;contain:none!important;isolation:auto!important;pointer-events:none!important}
.choreo-ghost :is(.motion-ripple,.reading-progress){display:none!important}
.choreo-nav-marker{position:absolute;left:0;bottom:3px;width:20px;height:2px;background:#175df5;pointer-events:none;transition:transform 420ms var(--choreo-ease),width 420ms var(--choreo-ease),opacity 200ms;transform-origin:left}
@media(min-width:981px){html[data-choreography=ready] .nav-links{position:relative}}
html[data-choreography=ready] .nav-links>a.active::after{display:none}
html[data-choreography=ready] .nav-links>a::before{content:'';position:absolute;left:12px;right:12px;bottom:3px;height:1px;background:#abc6fb;transform:scaleX(0);transform-origin:left;transition:transform 280ms var(--choreo-ease)}
html[data-choreography=ready] .nav-links>a:hover::before{transform:scaleX(1)}
html[data-choreography=ready] .nav-links>a.active::before{transform:scaleX(0)}
html[data-choreography=ready] .toast{transition:opacity 260ms var(--choreo-ease),transform 380ms var(--choreo-ease),visibility 260ms;will-change:auto}
html[data-choreography=ready] details>summary::after{transition:transform 320ms var(--choreo-ease),color 220ms}
html[data-choreography=ready] details[open]>summary::after{transform:rotate(180deg)}
.choreo-accordion{overflow:hidden}
html[data-choreography=ready] .workflow-panel{animation:none}
html[data-choreography=ready] .motion-tab-indicator,html[data-choreography=ready] .motion-audience-indicator{transition-duration:420ms;transition-timing-function:var(--choreo-ease)}
@media(max-width:980px){.choreo-nav-marker{display:none}}
@media(max-width:760px){:root{--choreo-speed:320ms}}
html[data-site-motion=paused] [data-choreo-unit],html[data-site-motion=paused] [data-choreo-surface],html[data-site-motion=paused] :is(.choreo-nav-marker,.toast,details>summary::after){transition:none!important}
html[data-site-motion=paused][data-choreography=ready] :is(button,input,textarea,select){transition:none!important}
@media(prefers-reduced-motion:reduce){[data-choreo-unit],[data-choreo-surface],.choreo-nav-marker,.toast,details>summary::after{transition:none!important}.choreo-layer{display:none}}
