*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#f8f8f5;color:#171713;font-family:Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #cb562c;outline-offset:5px}.gallery{height:100svh;min-height:430px;position:relative;overflow:hidden;perspective:1100px}.world{position:absolute;inset:-18%;transform-style:preserve-3d;will-change:transform}.tile{position:absolute;padding:0;border:0;background:#ddd;width:clamp(85px,10.5vw,170px);aspect-ratio:2/3;backface-visibility:hidden;transform-style:preserve-3d;transition:filter .4s;cursor:pointer}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile:hover{filter:brightness(1.15)}.focus{position:absolute;left:50%;top:49%;width:clamp(210px,23vw,355px);aspect-ratio:2/3;transform:translate(-50%,-50%);pointer-events:none;perspective:900px}.hero-photo{position:absolute;width:100%;height:100%;object-fit:cover;box-shadow:0 14px 45px #00000014;animation:arrive 1.5s cubic-bezier(.19,1,.22,1) both}.hero-photo.leave{animation:depart 1s ease both}@keyframes arrive{from{opacity:0;transform:translate3d(80px,40px,-650px) rotateY(-32deg) scale(.4)}to{opacity:1;transform:translateZ(0) rotateY(0) scale(1)}}@keyframes depart{to{opacity:0;transform:translate3d(-120px,-30px,-500px) rotateY(35deg) scale(.45)}}header,footer{position:absolute;z-index:10;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center}header{top:26px}.brand{font-family:Georgia,serif;font-size:24px;letter-spacing:-1px;color:inherit;text-decoration:none;background:#f8f8f5e8;padding:7px 10px}.brand span{font-family:Arial,sans-serif;font-size:9px;letter-spacing:2px;margin-left:10px}header button{border:0;background:#f8f8f5ed;font-size:11px;padding:10px 13px}footer{bottom:28px;align-items:flex-end}.edition{font-size:9px;line-height:1.7;letter-spacing:1.4px;background:#f8f8f5e8;padding:8px}.caption{position:absolute;left:50%;transform:translateX(-50%);text-align:center;background:#f8f8f5ef;padding:9px 20px;min-width:220px}.caption span{display:block}#count{font-size:9px;letter-spacing:2px;margin-bottom:7px}#title{font-family:Georgia,serif;font-size:17px}.controls{display:flex;background:#f8f8f5ed;gap:3px;padding:3px}.controls button{width:34px;height:34px;border:1px solid #dcdcd5;background:transparent;font-size:17px}.hint{position:absolute;bottom:102px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:2px;background:#f8f8f5dd;padding:7px;white-space:nowrap}dialog{border:0;padding:55px;width:min(490px,90vw);background:#f8f8f5;color:#171713}dialog::backdrop{background:#10101066;backdrop-filter:blur(8px)}dialog h1{font:45px/1.06 Georgia,serif;letter-spacing:-2px}dialog p{font-size:14px;line-height:1.7}dialog .eyebrow{font-size:10px;letter-spacing:2px}dialog .small{font-size:11px;color:#666}.close{position:absolute;right:18px;top:12px;background:none;border:0;font-size:27px}@media(max-width:600px){header,footer{left:15px;right:15px}header{top:15px}.brand{font-size:21px}.brand span{display:none}.edition{display:none}.controls{margin-left:auto}footer{bottom:18px}.caption{left:0;transform:none;text-align:left;min-width:0;padding-left:4px}.focus{width:53vw;max-width:280px}.tile{width:24vw}.hint{bottom:88px;font-size:7px}.world{inset:-10% -60%}dialog{padding:35px}}@media(prefers-reduced-motion:reduce){.hero-photo,.hero-photo.leave{animation:none}}

/* Keep off-canvas photo tiles from creating a scrollable focus container. */
.gallery{overflow:clip}

