*{box-sizing:border-box;margin:0;padding:0}
:root{--ease:cubic-bezier(.22,.61,.36,1)}
html{background:#fff;-webkit-text-size-adjust:100%}
body{background:#fff;color:#111;font:500 11px/1.3 Inter,system-ui,sans-serif}
a{color:inherit;text-decoration:none}button{background:none;border:0;cursor:pointer;font:inherit;color:inherit}img{display:block}
.cap{position:fixed;top:58px;left:0;right:0;text-align:center;color:#6b6b6b;font-weight:400;z-index:850;pointer-events:none;min-height:12px;transition:opacity .25s}
/* the index grid */
.grid{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;padding:104px 12px 40px}
.c{aspect-ratio:4/5;background:#f1f1ef;overflow:hidden;position:relative;opacity:0;transform:translateY(10px);transition:opacity .7s var(--ease),transform .9s var(--ease)}
.c.in{opacity:1;transform:none}.c.gs{grid-column-start:1}
.c img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .4s}
.c:hover img{transform:scale(1.035)}
.grid:hover .c:not(:hover) img{filter:saturate(.8) brightness(1.04)}
@media (max-width:1250px){.grid{grid-template-columns:repeat(7,1fr)}}
@media (max-width:950px){.grid{grid-template-columns:repeat(5,1fr)}}
@media (max-width:700px){.grid{grid-template-columns:repeat(3,1fr);gap:4px;padding:96px 8px 30px}}
/* viewer */
.vw{position:fixed;inset:0;z-index:800;background:#fff;opacity:0;transition:opacity .4s var(--ease)}.vw[hidden]{display:none}.vw.show{opacity:1}
.vcap{position:fixed;top:58px;left:0;right:0;display:flex;justify-content:center;gap:16px;color:#a9a9a6;font-weight:400;z-index:860}
.vcap [hidden]{display:none}#vt:empty{display:none}
.vcap button{color:#a9a9a6;transition:color .25s}.vcap button:hover{color:#111}#vt{color:#7d7d7a}
.vimg{position:fixed;left:0;right:0;top:96px;bottom:26px;display:flex;align-items:center;justify-content:center}
.vimg img{max-width:min(94vw,1500px);max-height:calc(100svh - 124px);width:auto;height:auto;object-fit:contain;opacity:0;transform:scale(.985);transition:opacity .5s var(--ease),transform .8s var(--ease)}.vimg img.ok{opacity:1;transform:none}
.vz{position:fixed;top:96px;bottom:0;width:50%;z-index:810}.vz.l{left:0;cursor:w-resize}.vz.r{right:0;cursor:e-resize}
.vinfo{position:fixed;inset:0;z-index:870;background:rgba(250,250,248,.92);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:auto;padding:96px 16px 60px}
.vinfo[hidden]{display:none}.vcol{max-width:560px}
.vcol h2{font:500 11px/1.4 Inter,sans-serif;text-transform:uppercase;margin-bottom:14px}.vcol .m{font-weight:400;color:#777;margin-bottom:16px}.vcol p{font:400 11px/1.5 Inter,sans-serif;margin-bottom:14px}
.vcol a{display:inline-block;margin-top:10px;border-bottom:1px solid currentColor;font-weight:500}
.curtain{position:fixed;inset:0;background:#b9b8af;z-index:1000;pointer-events:none;transform:translateY(-100%)}
.curtain.in{animation:cin .5s var(--ease) forwards}@keyframes cin{from{transform:translateY(-100%)}to{transform:none}}
.preload .curtain{transform:none;animation:cout .9s var(--ease) .05s forwards}@keyframes cout{to{transform:translateY(100%);visibility:hidden}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01s!important;transition-duration:.01s!important}}
