
/* V14.11 — colour separation follows scroll progress, behind the monochrome original. */
.portrait-filters{position:absolute;overflow:hidden;pointer-events:none}
.portrait-scene{--prism-gold-x:0px;--prism-gold-y:0px;--prism-orange-x:0px;--prism-orange-y:0px;--prism-angle:0deg;--prism-alpha:0}
.portrait-cutout.portrait-original{z-index:3}
.portrait-cutout.portrait-echo{z-index:2;opacity:var(--prism-alpha);transition:none;pointer-events:none;transform-origin:50% 85%}
.portrait-cutout.echo-gold{filter:url(#portrait-gold);transform:translateX(calc(-50% + var(--shift-x) + var(--prism-gold-x))) translateY(calc(var(--shift-y) + var(--prism-gold-y))) rotateZ(calc(var(--prism-angle) * -1)) rotateX(var(--turn-x)) rotateY(var(--turn-y))}
.portrait-cutout.echo-orange{filter:url(#portrait-orange);transform:translateX(calc(-50% + var(--shift-x) + var(--prism-orange-x))) translateY(calc(var(--shift-y) + var(--prism-orange-y))) rotateZ(var(--prism-angle)) rotateX(var(--turn-x)) rotateY(var(--turn-y))}
.portrait-label{z-index:4}.portrait-caption{z-index:5}
.about-hero .about-jumping img{width:100%;height:auto;aspect-ratio:4/5;max-height:none;object-fit:cover;object-position:center 65%}
.outro-bottom .email-contact{color:var(--primary);display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-bottom:1px solid currentColor;padding:12px 0}
.outro-bottom .email-contact:hover{color:var(--accent)}
@media(prefers-reduced-motion:reduce){.portrait-cutout.portrait-echo{display:none}}
