/* Entrances move complete content; gallery images remain uncropped. */
.portrait-window{overflow:hidden;border-radius:1px;isolation:isolate}
.portrait-window img{transform:translateY(var(--portrait-drift,0px));transform-origin:50% 42%}
.note-scroll-layer{position:relative}
.hero-return-title>.name-mask,.hero-return-copy{translate:0 var(--hero-return-y,0px)}
.section-heading{position:relative;padding-bottom:18px}
.section-heading::after{content:"";position:absolute;bottom:0;left:0;width:clamp(120px,18vw,185px);height:3px;background:var(--accent,#ab573d);border-radius:3px;transform-origin:left;transform:scaleX(var(--rule-progress,1));pointer-events:none}
.timeline{position:relative;--timeline-progress:1}
.timeline::before{content:"";position:absolute;top:0;bottom:0;left:-1px;width:2px;background:var(--accent,#ab573d);transform-origin:top;transform:scaleY(var(--timeline-progress));pointer-events:none}
.timeline-mark{z-index:1}
.scroll-entering{will-change:transform,opacity;transform-origin:50% 65%}
.scroll-entering.section-heading{will-change:auto}
.scroll-entering.hero-return-title{will-change:auto}
.scroll-entering.hero-return-title>.name-mask,.scroll-entering.hero-return-copy{will-change:translate}
.scroll-entering.section-heading>h2,.scroll-entering.section-heading>p{will-change:transform,opacity}
.scroll-entering .skill-icon,.scroll-entering .timeline-mark{will-change:transform}
.scroll-effects .skill-card{transition:box-shadow .3s,border-color .3s}
.scroll-effects .project-card{translate:none;scale:none}
.project-image{isolation:isolate}
.media-curtain{display:none}
.media-label,.project-arrow{z-index:2}
.contact-doodle{display:inline-block;transform-origin:50% 70%}
@media(max-width:640px){
  .section-heading{padding-bottom:16px}
  .section-heading::after{width:126px;height:3px}
  .scroll-entering{transform-origin:50% 50%}
}
@media(prefers-reduced-motion:reduce){
  .scroll-entering,.scroll-entering.section-heading>h2,.scroll-entering.section-heading>p,.scroll-entering .skill-icon,.scroll-entering .timeline-mark{will-change:auto}
  .section-heading::after{transform:scaleX(1)}
  .timeline::before{transform:scaleY(1)}
  .portrait-window img{transform:none}
  .hero-return-title>.name-mask,.hero-return-copy{translate:none}
}
html[data-motion=off] .section-heading::after{transform:scaleX(1)}
html[data-motion=off] .timeline::before{transform:scaleY(1)}
html[data-motion=off] .portrait-window img{transform:none}
html[data-motion=off] .hero-return-title>.name-mask,html[data-motion=off] .hero-return-copy{translate:none}
