/* V84: final motion polish. Calmer background, quicker reveals, smooth FAQ, sliding tab highlight,
   busy buttons, sheet entrance and a short "target reached" mark. Everything stops with reduced motion. */

/* calmer background glow, quicker and shorter scroll reveals */
#fx-aurora{opacity:.4}
html.fx-js .fx-reveal{translate:0 14px;transition-duration:.45s,.45s}
.fx-r{transition-duration:.45s!important}
.reveal{transition-duration:.45s}

/* FAQ / help center answers open smoothly */
:root{interpolate-size:allow-keywords}
details::details-content{height:0;overflow:clip;transition:height .3s ease,content-visibility .3s allow-discrete}
details[open]::details-content{height:auto}
details[open]>:not(summary){animation:pv-fade .3s ease both}

/* sliding highlight under the active tab (bottom bar + Live Signals market tabs) */
.ls-tabs{position:relative}
.pv-glide{position:absolute;pointer-events:none;z-index:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),width .32s cubic-bezier(.2,.8,.2,1),opacity .2s}
.uf-tabbar .pv-glide{bottom:3px;left:0;height:3px;border-radius:3px;background:var(--gold-grad,var(--gold));box-shadow:0 0 10px rgba(var(--accent-rgb),.45)}
.ls-tabs .pv-glide{top:4px;bottom:4px;left:0;border-radius:9px;background:var(--ls-card,var(--bg-card));box-shadow:0 1px 0 var(--ls-line,var(--border)),0 4px 14px rgba(0,0,0,.14)}
.ls-tabs.pv-on .ls-tab{position:relative;z-index:1}
.ls-tabs.pv-on .ls-tab.on{background:transparent;box-shadow:none}
.uf-tabbar button{position:relative;z-index:1}

/* busy buttons: a small spinner while the site waits for the server */
.pv-busy{position:relative;color:transparent!important;pointer-events:none}
.pv-busy>*{visibility:hidden}
.pv-busy::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid currentColor;border-color:var(--on-accent,#111) var(--on-accent,#111) transparent transparent;animation:pv-spin .7s linear infinite}
.btn-outline.pv-busy::after,.btn-secondary.pv-busy::after{border-color:var(--gold) var(--gold) transparent transparent}

/* bottom sheets slide up */
.sb-sheet{animation:pv-up .3s cubic-bezier(.2,.8,.2,1) both}

/* a signal card reaches Target 1: one soft green glow and a check, then calm */
.ls-card.pv-tp{animation:pv-tp 1.6s ease both}
.ls-card.pv-tp .ls-status::before{content:"✓";display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:#16a34a;color:#fff;font-size:.7rem;font-weight:800;animation:pv-pop .45s cubic-bezier(.2,1.4,.4,1) both}

@keyframes pv-fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes pv-spin{to{transform:rotate(360deg)}}
@keyframes pv-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes pv-tp{0%{box-shadow:0 0 0 0 rgba(22,163,74,0)}25%{box-shadow:0 0 0 3px rgba(22,163,74,.55),0 0 28px rgba(22,163,74,.35)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
@keyframes pv-pop{from{transform:scale(0)}to{transform:scale(1)}}

@media (prefers-reduced-motion:reduce){
  details::details-content{transition:none}
  details[open]>:not(summary),.sb-sheet,.ls-card.pv-tp,.ls-card.pv-tp .ls-status::before{animation:none}
  .pv-glide{transition:none}
}
html[data-motion=reduced] .pv-glide{transition:none}
html[data-motion=reduced] .ls-card.pv-tp,html[data-motion=reduced] .sb-sheet,html[data-motion=reduced] details[open]>:not(summary){animation:none}
