*{box-sizing:border-box;margin:0;padding:0;}
html, body{height:100%;}
body{
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  background:#ffffff;
  color:#0a0a0a;
  font-size:13px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
a{color:inherit;text-decoration:none;}
img{display:block;}

header{
  flex:0 0 auto;
  background:#ffffff;
  padding:20px 24px;
  display:flex;justify-content:space-between;align-items:center;
}
header a{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
}
header a:hover{opacity:.7;}

main{
  display:flex;
  align-items:flex-start;
  flex:1 1 auto;
  min-height:0;
  width:100vw;
  overflow-x:auto;
  overflow-y:hidden;
}
.photo{
  flex:0 0 auto;
  height:100%;
  cursor:zoom-in;
  display:flex;
  align-items:center;
}
.photo img{
  height:calc(100% - 200px);
  width:auto;
  display:block;
}

.contact-main{
  max-width:600px;margin:0 auto;padding:120px 24px;text-align:center;
  overflow:visible;
}
body.contact-page{overflow:visible;}
.contact-main a{
  font-size:14px;letter-spacing:.08em;
}
.contact-main a:hover{opacity:.7;}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;background:rgba(10,10,10,.96);
  display:none;align-items:center;justify-content:center;
  z-index:1000;padding:40px;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%;max-height:100%;object-fit:contain;}
.lightbox-close{
  position:absolute;top:20px;right:28px;
  background:none;border:none;color:#fff;
  font-size:22px;cursor:pointer;line-height:1;
}

/* ---------- Mobile: vertical scroll ---------- */
@media (max-width: 760px){
  html, body{height:auto;}
  body{
    overflow:auto;
  }
  header{
    position:sticky;top:0;z-index:50;
  }
  main{
    display:block;
    height:auto;
    width:100%;
    overflow-x:hidden;
    overflow-y:visible;
  }
  .photo{
    height:auto;
    width:100%;
    display:block;
    margin-bottom:8px;
  }
  .photo img{
    height:auto;
    width:100%;
  }
}
