/* Motion uses opacity on the home page to preserve its measured alignment. */
@keyframes soft-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:no-preference){
 .hero-picture{animation:soft-appear 1.1s ease-out both}
 .content-logo,.hero .brand{animation:soft-appear .9s ease-out .15s both}
 .hero-label,.fine-line{animation:soft-appear .9s ease-out .3s both}
 .hero h1{animation:soft-appear 1s ease-out .45s both}
 .projects-intro{animation:soft-appear .9s ease-out both}
 .reveal-on-scroll{opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
 .reveal-on-scroll.revealed{opacity:1;transform:none}
 .image-viewer[open]{animation:soft-appear .25s ease-out}
}
.desktop-menu a{position:relative}
.desktop-menu a::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.desktop-menu a:hover::after,.desktop-menu a:focus-visible::after,.desktop-menu a[aria-current="page"]::after{transform:scaleX(1)}
.projects-page .desktop-menu a[aria-current="page"]{text-decoration:none}
.project-photo-button{display:block;width:100%;min-width:0;min-height:0;aspect-ratio:16/9;overflow:hidden;padding:0;border:0;border-radius:0;background:#08090a;cursor:zoom-in}
.project-photo-button .project-image{height:100%;width:100%;transition:transform 1.1s cubic-bezier(.2,.6,.2,1)}
@media(prefers-reduced-motion:no-preference){
 .project-photo-button .project-image.reveal-on-scroll{transform:none;transition:opacity 1.2s ease,transform 1.1s cubic-bezier(.2,.6,.2,1)}
}
.project-reverse .project-photo-button{grid-column:2;grid-row:1}
.project-photo-button:focus-visible{outline-offset:-5px;outline:2px solid #ead1a8}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.project-photo-button:hover .project-image{transform:scale(1.02)}}
body.photo-open{overflow:hidden}
.image-viewer{padding:76px 76px 32px;background:rgba(8,9,10,.98)}
.image-viewer[open]{display:flex;align-items:center;justify-content:center}
.image-viewer::backdrop{background:rgba(0,0,0,.88)}
.image-viewer figure{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:0;pointer-events:none}
.image-viewer .viewer-photo{display:block;max-width:100%;max-height:calc(100svh - 160px);width:auto;height:auto;object-fit:contain;pointer-events:auto}
.image-viewer figcaption{font-size:13px;letter-spacing:2px;line-height:1.6;text-align:center}
.image-viewer button{position:absolute;min-width:48px;min-height:48px;background:transparent;border:1px solid rgba(244,243,239,.3);cursor:pointer;color:var(--white)}
.viewer-close{right:24px;top:16px;padding:0 14px;display:flex;align-items:center;gap:18px;font-size:12px;text-transform:uppercase;letter-spacing:2px}
.viewer-close span{font-size:30px;font-weight:300}
.viewer-prev,.viewer-next{top:calc(50% - 24px);font-size:34px;font-weight:300}
.viewer-prev{left:14px}.viewer-next{right:14px}
@media(max-width:700px){.project-photo-button{flex-shrink:0}.image-viewer{padding:76px 12px 92px}.image-viewer .viewer-photo{max-height:calc(100svh - 230px)}.viewer-prev,.viewer-next{top:auto;bottom:22px}.viewer-prev{left:calc(50% - 62px)}.viewer-next{right:calc(50% - 62px)}.viewer-close{right:14px}.image-viewer figcaption{font-size:12px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transform:none}.project-photo-button .project-image,.desktop-menu a::after{transition:none}}
