/* Motion only: retain the existing palette, spacing, artwork and typography. */
:root{--motion-ease:cubic-bezier(.16,1,.3,1)}
.motion-enabled .motion-part{transition:opacity .85s var(--motion-ease) var(--reveal-delay,0ms),translate 1.05s var(--motion-ease) var(--reveal-delay,0ms)}
.motion-enabled .motion-pending{opacity:0;translate:0 30px}
.motion-enabled .motion-shown{opacity:1;translate:0 0}
.motion-enabled .hero-copy>.eyebrow,.motion-enabled .hero-copy>h1,.motion-enabled .job-subtitle,.motion-enabled .hero-copy>p,.motion-enabled .hero-actions,.motion-enabled .hero-contact{animation:hero-arrive 1.05s var(--motion-ease) both}
.motion-enabled .hero-copy>h1{animation-delay:70ms}.motion-enabled .job-subtitle{animation-delay:140ms}.motion-enabled .hero-copy>p{animation-delay:200ms}.motion-enabled .hero-actions{animation-delay:260ms}.motion-enabled .hero-contact{animation-delay:300ms}
.motion-enabled .play-cover>img{transform:translate3d(0,var(--image-drift,0px),0) scale(1.045);transition:transform .5s var(--motion-ease),opacity .5s var(--motion-ease)}
.motion-enabled .play-cover:hover>img{transform:translate3d(0,var(--image-drift,0px),0) scale(1.075)}
.motion-enabled .media.vertical .play-cover>img{transform:none}
.motion-enabled .play-button{transform:translate(calc(-50% + var(--magnet-x,0px)),calc(-50% + var(--magnet-y,0px)));transition:transform .6s var(--motion-ease),background .35s,color .35s,border-color .35s}
.motion-enabled .pill-button,.motion-enabled .header-resume,.motion-enabled .header-contact,.motion-enabled .resume-download{transition:transform .55s var(--motion-ease),background .35s,box-shadow .35s}
.motion-enabled .header-resume:hover,.motion-enabled .header-contact:hover{transform:translateY(-3px)}
.motion-enabled .pill-button>span,.motion-enabled .script-arrow{display:inline-block;transition:transform .55s var(--motion-ease)}
.motion-enabled .pill-button:hover>span{transform:translateY(2px)}
.motion-enabled #email-dialog[open]{animation:dialog-arrive .36s var(--motion-ease)}
.motion-enabled #email-dialog[open]::backdrop{animation:backdrop-arrive .3s ease-out}
.wheel-smoothing{scroll-behavior:auto!important}
.project-script{margin-top:18px;padding:16px 0;border-top:1px solid #ffffff25;border-bottom:1px solid #ffffff25}
.project-script a{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:14px;color:var(--primary);padding:5px 0}
.project-script small{font-size:10px;line-height:1.7;color:#aebfb4;display:block;margin-top:7px}
.project-script a:hover .script-arrow{transform:translate(3px,-3px)}
.script-arrow{font-size:22px}
.project-script.script-feature{padding:0;margin-top:22px;border:0;border-radius:8px;background:var(--primary);color:#182b19}
.script-feature a{padding:25px 24px;color:inherit;gap:18px;text-decoration:none;min-height:144px;transition:background .35s,box-shadow .35s;border-radius:inherit}
.script-feature a:hover{background:#dcffa2;box-shadow:0 8px 35px #c9fa791c}
.script-feature-copy{display:flex;flex-direction:column;gap:10px}
.script-feature-copy small{font-size:10px;letter-spacing:1.4px;color:#344829;margin:0}
.script-feature-copy strong{font-size:clamp(20px,1.7vw,26px);font-weight:650;line-height:1.4}
.script-feature-copy>span{font-size:12px;line-height:1.7;color:#344829}
.script-feature .script-arrow{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border-radius:50%;background:#182b19;color:var(--primary);font-size:27px}
@media(max-width:700px){.script-feature a{padding:22px 19px;min-height:140px}.script-feature-copy strong{font-size:21px}.script-feature .script-arrow{width:40px;height:40px}.script-feature-copy>span{font-size:11px}}
@keyframes hero-arrive{from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.motion-enabled .motion-pending{translate:0 18px}.project-script a{font-size:14px}.motion-enabled .play-cover>img{transform:translate3d(0,var(--image-drift,0px),0) scale(1.025)}}
@media(prefers-reduced-motion:reduce){.motion-part,.motion-pending{opacity:1!important;translate:none!important;transition:none!important}.play-cover>img{transform:none!important}.hero-copy>*{animation:none!important}.play-button{transform:translate(-50%,-50%)!important}}

/* Reversible entrances: the same section animates again on every return. */
.motion-enabled .hero-copy>*{animation:none}
.motion-enabled .motion-part{transition:opacity .7s var(--motion-ease) var(--reveal-delay,0ms),translate 1s var(--motion-ease) var(--reveal-delay,0ms),scale 1s var(--motion-ease) var(--reveal-delay,0ms)}
.motion-enabled .motion-pending{opacity:0;translate:0 var(--entry-y,44px)}
.motion-enabled .motion-shown{opacity:1;translate:0 0}
.motion-enabled .media.motion-pending{scale:.965}
.motion-enabled .media.motion-shown{scale:1}
.motion-enabled .play-cover>img{transform:translate3d(0,var(--image-drift,0px),0) scale(var(--cover-scale,1.045));transition:transform .3s linear,opacity .5s ease}
.motion-enabled .play-cover:hover>img{transform:translate3d(0,var(--image-drift,0px),0) scale(calc(var(--cover-scale,1.045) + .02))}
.motion-enabled .media.vertical .play-cover>img{transform:none}
.project-script.script-feature{width:fit-content;max-width:100%;margin-top:20px;border-radius:32px}
.script-feature a{min-height:0;padding:14px 21px;gap:24px;justify-content:flex-start}
.script-feature-copy strong{font-size:15px;font-weight:500;line-height:1.5}
.script-feature .script-arrow{background:none;color:inherit;width:auto;height:auto;font-size:22px;line-height:1}
@media(max-width:700px){.motion-enabled .motion-pending{translate:0 calc(var(--entry-y,44px)*.6)}.script-feature a{padding:13px 18px;gap:18px}.script-feature-copy strong{font-size:14px}.script-feature .script-arrow{width:auto;height:auto}}
@media(prefers-reduced-motion:reduce){.motion-part{scale:1!important;translate:none!important;opacity:1!important}.play-cover>img{transform:none!important}}
/* Covers stay uncropped; depth comes from the frame entrance rather than image zoom. */
.motion-enabled .staggered-gallery .play-cover>img,.motion-enabled .staggered-gallery .play-cover:hover>img{transform:none}
