﻿.archive-body{margin:0;background:#fafafa;color:#002bba;font-family:Arial,"Microsoft YaHei",sans-serif;overflow:hidden}.archive-body *,.viewer-body *{box-sizing:border-box}.gallery-nav{position:fixed;z-index:10;top:18px;left:50%;transform:translateX(-50%);display:flex;gap:10px;white-space:nowrap}.gallery-nav a{padding:6px 13px;background:#eef0f3;border-radius:30px;text-decoration:none;color:#002bba;font-size:14px;font-weight:600}.gallery-nav a:hover{background:#e2e6ed}.infinite-gallery{position:fixed;inset:0;overflow:hidden;touch-action:none;cursor:grab;outline:none}.infinite-gallery:focus-visible{outline:2px solid #002bba;outline-offset:-3px}.work-card{position:absolute;top:0;left:0;display:block;user-select:none;-webkit-user-drag:none;cursor:grab;will-change:transform}.work-card img{display:block;width:100%;height:auto;border-radius:4px;pointer-events:none}.work-card:focus-visible{outline:2px solid #002bba;outline-offset:7px}.dragging,.dragging .work-card{cursor:grabbing}.gallery-hint{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;pointer-events:none;color:#222;font-size:20px;background:#fafafae8;padding:8px 14px;border-radius:30px}.gallery-hint span{font-size:11px}.viewer-body{margin:0;background:#000;color:#eee;font-family:Arial,"Microsoft YaHei",sans-serif;overflow:hidden}.viewer-nav{position:fixed;z-index:2;top:24px;left:28px;font-size:13px}.viewer-nav a{color:#ccc;text-decoration:none;padding:8px 0;display:block}.viewer-nav a:hover{color:white}.viewer-main{height:100dvh;display:flex;align-items:center;justify-content:center;padding:80px 40px 50px}.viewer-main img{display:block;width:auto;height:auto;max-width:min(76vw,1100px);max-height:min(76dvh,820px);object-fit:contain}@media(min-width:2200px){.work-card img{border-radius:5px}}@media(max-width:600px){.gallery-nav{top:16px;gap:7px}.gallery-nav a{font-size:12px;padding:6px 11px}.gallery-hint{bottom:20px}.viewer-nav{top:18px;left:20px}.viewer-main{padding:65px 22px 35px}.viewer-main img{max-width:88vw;max-height:72dvh}}
/* Animate the image only: the outer card transform belongs to the looping canvas. */
.infinite-gallery .work-card{cursor:zoom-in}
.infinite-gallery .work-card img{transform:scale(1);transition:transform 300ms cubic-bezier(.2,.8,.2,1);transform-origin:center}
@media(hover:hover) and (pointer:fine){
 .infinite-gallery:not(.dragging) .work-card:hover img{transform:scale(1.06)}
}
.infinite-gallery .work-card:focus-visible img{transform:scale(1.06)}
.infinite-gallery.dragging .work-card{cursor:grabbing}
.infinite-gallery.dragging .work-card img{transform:scale(1)}
@media(prefers-reduced-motion:reduce){.infinite-gallery .work-card img{transition:none}}
