/* Approved motion set: title, chapter ribbons, content reveals, link feedback. */
.motion-word{display:inline-block}
/* Hover uses individual transforms to preserve the existing card rotations. */
@media screen and (hover:hover) and (pointer:fine){
 .portfolio :is(.research-file,.activity-story,.tiktok-account,.personal-post-grid .post-image,.pod-photo,.case-media-preview .social-account,.result-card){transition:translate .3s cubic-bezier(.22,.68,0,1),scale .3s cubic-bezier(.22,.68,0,1),box-shadow .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}
 .portfolio :is(.research-file,.activity-story,.tiktok-account,.personal-post-grid .post-image,.pod-photo,.case-media-preview .social-account,.result-card):hover{border-color:rgba(160,115,166,.55);box-shadow:0 12px 26px rgba(66,63,102,.12),inset 0 1px 0 rgba(255,255,255,.65)}
 .portfolio :is(.research-photo img,.post-image img,.activity-logo-circle,.about-photo img){transition:scale .45s cubic-bezier(.22,.68,0,1)}
 .portfolio :is(.research-file,.activity-story):hover{background-color:rgba(244,220,220,.3)}
 .portfolio .result-card:focus-within{border-color:rgba(160,115,166,.65);box-shadow:0 8px 22px rgba(66,63,102,.1)}
 @media(prefers-reduced-motion:no-preference){
  .portfolio :is(.research-file,.activity-story,.tiktok-account,.personal-post-grid .post-image,.case-image-frame):hover{translate:0 -4px}
  .portfolio .result-card:hover{translate:0 -3px}
  .portfolio .pod-photo:hover{scale:1.025;z-index:3}
  .portfolio .research-file:hover .research-photo img,.portfolio .post-image:hover img,.portfolio .about-photo:hover img{scale:1.035}
  .portfolio .activity-story:hover .activity-logo-circle{scale:1.06}
 }
 @media(prefers-reduced-motion:reduce){
  .portfolio :is(.research-file,.activity-story,.tiktok-account,.personal-post-grid .post-image,.pod-photo,.case-media-preview .social-account,.result-card,.research-photo img,.post-image img,.activity-logo-circle,.about-photo img){transition:none}
 }
}
@media screen{
 .portfolio .contact-links a>span:last-child{text-decoration:none;background-image:linear-gradient(rgba(66,63,102,.25),rgba(66,63,102,.25)),linear-gradient(var(--theme-ink),var(--theme-ink));background-repeat:no-repeat;background-position:0 100%;background-size:100% 1px,0% 1px;transition:background-size .22s ease-out}
 .portfolio .contact-link-icon{transition:transform .22s ease-out,background-color .22s ease-out}
 .portfolio .page-bridge a::after{display:inline-block;transition:transform .22s ease-out}
 .portfolio .cover-navigation a{text-underline-offset:6px;text-decoration-thickness:1px;text-decoration-color:transparent;transition:text-decoration-color .22s ease-out}
 .portfolio .cover-navigation a:focus-visible{text-decoration-line:underline;text-decoration-color:currentColor}
 .portfolio .contact-links a:focus-visible>span:last-child{background-size:100% 1px,100% 1px}
 .portfolio .contact-links a:focus-visible .contact-link-icon{transform:translateY(-2px)}
 .portfolio .page-bridge a:focus-visible::after{transform:translateY(3px)}
 .portfolio .contact-links a:active .contact-link-icon{transform:scale(.96)}
 @media(hover:hover) and (pointer:fine){
  .portfolio .contact-links a:hover>span:last-child{background-size:100% 1px,100% 1px}
  .portfolio .contact-links a:hover .contact-link-icon{transform:translateY(-2px)}
  .portfolio .page-bridge a:hover::after{transform:translateY(3px)}
  .portfolio .cover-navigation a:hover{text-decoration-line:underline;text-decoration-color:currentColor}
 }
}
@media(prefers-reduced-motion:reduce){
 .motion-word,.motion-reveal-target,.chapter-flourish path{animation:none!important;transition:none!important}
 .portfolio .contact-link-icon,.portfolio .contact-links a>span:last-child,.portfolio .page-bridge a::after,.portfolio .cover-navigation a{transition:none!important;transform:none!important}
}
@media print{
 .motion-word{display:inline}
 .motion-reveal-target,.motion-word{opacity:1!important;translate:none!important;transform:none!important}
 .portfolio .contact-links a>span:last-child{text-decoration:underline;background:none}
}
