/* Shared interaction language. Translate leaves scroll/reveal transforms intact. */
:is(.portfolio-card,.journal-card,.project,.case-card,.door,.flying-card,.card-promise,.craft-cards article,.engagement>a,.exit-links>a,.exit-links>button):is(a,button,:has(a[href]),:has(button)){transition:translate .32s cubic-bezier(.2,.7,.2,1),box-shadow .32s,border-color .32s;}
@media(hover:hover) and (pointer:fine){
:is(.portfolio-card,.journal-card,.project,.case-card,.door,.flying-card,.card-promise,.craft-cards article,.engagement>a,.exit-links>a,.exit-links>button):is(a,button,:has(a[href]),:has(button)):hover{translate:0 -5px;box-shadow:0 16px 38px #203f4917;border-color:#8ba9ae;}
.portfolio-card:hover .project-shot img,.journal-card:hover .journal-picture img{transform:scale(1.025)}
.door:hover .world-illustration{transform:translateY(-3px)}
}
:is(.portfolio-card,.journal-card,.project,.case-card,.door,.flying-card,.card-promise,.craft-cards article,.engagement>a,.exit-links>a,.exit-links>button):is(a,button,:has(a[href]),:has(button)):focus-within{box-shadow:0 0 0 2px #527780,0 12px 30px #203f4912;border-color:#527780;}
:is(.portfolio-card,.journal-card,.project,.case-card,.door,.flying-card,.card-promise,.craft-cards article,.engagement>a,.exit-links>a,.exit-links>button):is(a,button,:has(a[href]),:has(button)):is(a,button):focus-visible{outline:2px solid #527780;outline-offset:5px;}
@media(prefers-reduced-motion:reduce){
:is(.portfolio-card,.journal-card,.project,.case-card,.door,.flying-card,.card-promise,.craft-cards article,.engagement>a,.exit-links>a,.exit-links>button):is(a,button,:has(a[href]),:has(button)){transition:none!important;translate:none!important;}
.portfolio-card:hover .project-shot img,.journal-card:hover .journal-picture img,.door:hover .world-illustration{transform:none!important;}
}

.portfolio-collection>a.portfolio-card{color:inherit;text-decoration:none;cursor:pointer}.portfolio-card:focus-visible{outline:3px solid #3782f0;outline-offset:5px}
