/* Short, event-driven motion. The interface always settles back to stillness. */
.lookup-progress { height:2px; flex:0 0 2px; overflow:hidden; background:transparent; }
.lookup-progress span { display:block; height:100%; background:var(--orange); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease),opacity .4s; opacity:0; }
.lookup-progress.is-active span { opacity:.8; }
.lookup-progress.is-complete span { opacity:.2; }
.search { transition:border-color .2s,box-shadow .2s; }
.search:focus-within { border-color:var(--orange); box-shadow:0 0 0 3px var(--accent-wash); }
.check .icon { transition:transform .25s var(--ease); }
.check:hover .icon { transform:translateX(3px); }
.check:active { filter:brightness(.9); }
.check:active .icon { transform:translateX(5px) scale(.92); }
.check.is-busy .icon { transform:rotate(90deg); }
.text-button,.lookup-jump { transition:color .18s,background .18s,transform .18s var(--ease); }
.text-button:active,.lookup-jump:active { transform:scale(.96); }
.compare summary .icon { transition:transform .25s var(--ease); }
.point .halo { transition:opacity .2s,stroke-width .2s; }
.point .dot { transition:fill .3s; }
.point:hover .halo,.point:focus .halo { stroke-width:2; }
.result-row { transition:background .25s,box-shadow .25s; }
.result-row:active { background:var(--accent-wash); }
.map-wrap { isolation:isolate; }
.gpu-map { z-index:1; }
.map { z-index:2; }
.map-loader,.map-overlay { z-index:3; }
.morph-host { white-space:nowrap; }
@media (max-width:639px), (max-width:960px) and (max-height:559px) {
  .view-switch { position:relative; isolation:isolate; }
  .view-switch:before { content:''; position:absolute; inset:0 50% 0 0; z-index:-1; background:var(--accent-wash); border-bottom:2px solid var(--orange); transform:translateX(0); transition:transform .32s cubic-bezier(.22,1,.36,1); pointer-events:none; }
  .view-switch:has(#view-locations[aria-pressed=true]):before { transform:translateX(100%); }
  .view-switch button { transition:color .25s; }
  .view-switch button[aria-pressed=true] { background:transparent; box-shadow:none; }
  #phone-inspector[open]::backdrop { animation:backdrop-in .2s ease-out; }
}
@keyframes backdrop-in { from { background:rgba(0,0,0,0); } to { background:rgba(0,0,0,.7); } }
@media (prefers-reduced-motion:reduce) {
  *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
