
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#16221e}
body{font-family:Arial,Helvetica,sans-serif}
.gallery{position:fixed;inset:0;overflow:hidden;background:#16221e}
.layer{position:absolute;inset:0;opacity:0;will-change:opacity}
.layer{overflow:hidden;isolation:isolate}
.photo-front{position:absolute;inset:0;transform-origin:center;will-change:transform}
.layer img{display:block;width:100%;height:100%;user-select:none;-webkit-user-drag:none;backface-visibility:hidden}
.layer .photo-main{position:absolute;inset:0;object-fit:cover;object-position:50% 50%}
.layer .photo-backdrop{position:absolute;inset:0;object-fit:cover;object-position:center;filter:blur(32px) brightness(.48) saturate(.8);transform:scale(1.15);opacity:0;pointer-events:none}
.layer.portrait .photo-backdrop{opacity:1}
.layer.portrait .photo-main{object-fit:contain;object-position:center!important;filter:none}
.layer.portrait .photo-front{transform:scale(.985)}
.layer.moving .photo-front{animation:quiet-motion var(--motion-duration,25s) linear forwards}
@keyframes quiet-motion{from{transform:var(--motion-from,scale(1.02))}to{transform:var(--motion-to,scale(1.075))}}
.contact{position:fixed;z-index:10;right:max(32px,env(safe-area-inset-right));bottom:max(26px,env(safe-area-inset-bottom));color:#fff;text-decoration:none;font-size:12px;font-weight:400;letter-spacing:.6px;text-shadow:0 1px 8px #0009,0 0 20px #0005;opacity:.85;padding:10px 0}
.contact:focus-visible{outline:1px solid #fff;outline-offset:7px}
@media(max-width:600px){.contact{right:max(20px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));font-size:11px}}
@media(prefers-reduced-motion:reduce){.layer.moving .photo-front{animation:none;will-change:auto}.layer:not(.portrait) .photo-front{transform:none}}

