/* Deliberate, finite motion. No blocking overlays or artificial loading states. */
.choice,.scenario{position:relative;overflow:hidden;isolation:isolate;transition:background .25s,border-color .25s,box-shadow .25s,color .25s,transform .2s}
.choice.motion-sheen:after,.scenario.motion-sheen:after{content:'';position:absolute;inset:-40% -90%;background:linear-gradient(105deg,transparent 40%,#efffc344 50%,transparent 60%);pointer-events:none;transform:translateX(70%);animation:selection-sheen .7s ease-out both;z-index:2}
.choice>*,.scenario>*{position:relative;z-index:1}.choice .choice-check{position:absolute}
.inputwrap:focus-within{transition:border-color .18s,box-shadow .25s,background .2s}
.journey-track i{transition:width .65s cubic-bezier(.22,1,.36,1)}
input[type=range]{transition:filter .2s}input[type=range]:active{filter:drop-shadow(0 3px 6px #3e713326)}
.comparison i:before{animation:comparison-fill .8s cubic-bezier(.16,1,.3,1) both;transform-origin:left}.comparison>div:last-child i:before{animation-delay:.15s}
@keyframes selection-sheen{from{transform:translateX(-55%)}to{transform:translateX(55%)}}
@keyframes comparison-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.motion-sheen:after{display:none!important}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
