/* A small, one-shot motion language for the personal site. All movement is transform/opacity based. */
.ll-motion-ready .ll-personal-heading,
.ll-motion-ready .ll-personal-portrait,
.ll-motion-ready .ll-personal-details{opacity:0;transform:translateY(16px)}
.ll-motion-ready .ll-personal-portrait{transform:translateY(0) scale(1.025);clip-path:inset(0 0 5% 0)}
.ll-motion-active .ll-personal-heading{animation:ll-hero-rise .65s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-active .ll-personal-portrait{animation:ll-hero-image .9s .08s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-active .ll-personal-details{animation:ll-hero-rise .65s .18s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-ready .ll-personal-heading>*{opacity:0;transform:translateY(9px)}
.ll-motion-active .ll-personal-heading>.ll-personal-eyebrow{animation:ll-hero-rise .45s .02s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-active .ll-personal-heading>h1{animation:ll-hero-rise .6s .12s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-ready .ll-personal-details>*{opacity:0;transform:translateY(8px)}
.ll-motion-active .ll-personal-details>.ll-personal-role{animation:ll-hero-rise .5s .32s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-active .ll-personal-details>.ll-personal-description{animation:ll-hero-rise .5s .4s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-active .ll-personal-details>.ll-personal-actions{animation:ll-hero-rise .5s .49s cubic-bezier(.22,.7,.2,1) both}
.ll-motion-active .ll-personal-details>.ll-personal-motto{animation:ll-hero-rise .5s .58s cubic-bezier(.22,.7,.2,1) both}
@keyframes ll-hero-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes ll-hero-image{from{opacity:0;transform:translateY(0) scale(1.025);clip-path:inset(0 0 5% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}

/* Image reveals are tied to the existing one-time IntersectionObserver state. */
.ll-yoga-panorama,.ll-trust-photo,.ll-trust-cover,.ll-nails-story figure,.ll-study-feature figure,.ll-travel-landscape,.ll-travel-people,.ll-direction-visual{overflow:hidden}
.ll-motion-ready .ll-reveal.ll-await img{transition:transform .8s cubic-bezier(.22,.7,.2,1),opacity .65s ease;transform:scale(1.035);opacity:.82}
.ll-motion-ready .ll-reveal.ll-await.ll-shown img{transform:none;opacity:1}
.ll-motion-ready .ll-trust-video-card.ll-await .ll-trust-cover img{transform:scale(1.035);opacity:.82;transition:transform .8s cubic-bezier(.22,.7,.2,1),opacity .65s ease}
.ll-motion-ready .ll-trust-video-card.ll-shown .ll-trust-cover img{transform:none;opacity:1}

/* The order is set by motion.js only for groups that already use ll-reveal. */
.ll-motion-ready .ll-motion-stagger>*{transition-delay:var(--motion-delay,0ms)}
.ll-motion-ready .ll-motion-stagger.ll-shown>*{transition-delay:var(--motion-delay,0ms)}
.ll-motion-ready .ll-motion-stage{transition:color .35s ease,border-color .35s ease,background-color .35s ease}
.ll-motion-ready .ll-motion-stage .ll-chapter-index{transition:color .35s ease;transition-delay:calc(var(--motion-delay,0ms) + 120ms)}

/* Quiet link and button feedback. Hover is deliberately disabled on touch devices. */
.ll-motion-ready .ll-text-link,.ll-motion-ready .ll-full-record,.ll-motion-ready .ll-return-practices{position:relative;transition:color .25s ease}
.ll-motion-ready .ll-text-link::after,.ll-motion-ready .ll-full-record::after,.ll-motion-ready .ll-return-practices::after{content:"";position:absolute;left:0;right:0;bottom:7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.22,.7,.2,1)}
.ll-motion-ready .ll-text-link:hover::after,.ll-motion-ready .ll-full-record:hover::after,.ll-motion-ready .ll-return-practices:hover::after{transform:scaleX(1);transform-origin:left}
.ll-motion-ready .ll-button,.ll-motion-ready .ll-mobile-cta{transition:transform .3s cubic-bezier(.22,.7,.2,1),background-color .3s ease,box-shadow .3s ease}
.ll-motion-ready .ll-button:active,.ll-motion-ready .ll-mobile-cta:active{transform:translateY(1px)}
.ll-motion-ready .ll-form[data-motion-form]>*{transition:opacity .5s ease,transform .5s cubic-bezier(.22,.7,.2,1)}
.ll-motion-ready .ll-form[data-motion-form].ll-form-await>*{opacity:0;transform:translateY(10px)}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*{opacity:1;transform:none}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(1){transition-delay:0ms}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(2){transition-delay:55ms}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(3){transition-delay:110ms}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(4){transition-delay:165ms}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(5){transition-delay:220ms}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(6){transition-delay:275ms}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(7){transition-delay:330ms}
.ll-motion-ready .ll-form[data-motion-form].ll-form-shown>*:nth-child(8){transition-delay:385ms}
.ll-motion-ready .ll-form-message[data-state=success],.ll-motion-ready .ll-form-message[data-state=error]{animation:ll-message-in .32s ease both}
@keyframes ll-message-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

@media(hover:hover) and (pointer:fine){
  .ll-motion-ready .ll-trust-cover:hover img{transform:scale(1.055)}
  .ll-motion-ready .ll-direction,.ll-motion-ready .ll-video,.ll-motion-ready .ll-trust-video-card{transition:background-color .3s ease,transform .35s cubic-bezier(.22,.7,.2,1),border-color .3s ease}
  .ll-motion-ready .ll-direction:hover,.ll-motion-ready .ll-video:hover,.ll-motion-ready .ll-trust-video-card:hover{transform:translateY(-3px)}
  .ll-motion-ready .ll-direction:hover .ll-round-arrow{transform:translate(2px,-2px) rotate(45deg)}
  .ll-motion-ready .ll-form input:not([type=checkbox]):focus,.ll-motion-ready .ll-form select:focus,.ll-motion-ready .ll-form textarea:focus{border-color:#d9ceac;box-shadow:0 2px 0 #d9ceac}
}
@media(prefers-reduced-motion:reduce){
  .ll-motion-ready .ll-personal-heading,.ll-motion-ready .ll-personal-portrait,.ll-motion-ready .ll-personal-details,.ll-motion-ready .ll-personal-heading>*,.ll-motion-ready .ll-personal-details>*,.ll-motion-ready .ll-reveal img,.ll-motion-ready .ll-form[data-motion-form]>*{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important;transition:none!important}
  .ll-motion-ready .ll-form[data-motion-form]{opacity:1!important}
  .ll-motion-ready .ll-trust-cover:hover img{transform:none!important}
}
