.photo-index{padding-bottom:0;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--rule)}
.photo-index h2{font-size:30px;line-height:1.2;font-weight:400}
.photo-index nav{display:flex;gap:30px;flex-wrap:wrap;font-size:13px}
.photo-index nav a{padding:10px 0;border-bottom:1px solid transparent}
.photo-index nav a:hover{border-color:currentColor}
.photo-chapter{scroll-margin-top:24px}
.photo-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:48px}
.photo-heading h2{font-family:BodoniModa,Georgia,serif;font-size:72px;font-weight:400;line-height:1.1}
.photo-heading p{font-size:14px;line-height:1.7;min-width:200px}
.photo-frame{margin:0;min-width:0}
.photo-frame>a{display:block;background:#dededb;overflow:hidden}
.photo-frame>a>img{display:block;width:100%;height:auto;transition:opacity .25s ease}
.photo-frame>a:hover>img{opacity:.9}
.photo-frame figcaption{font-size:11px;line-height:1.5;margin-top:14px;color:var(--muted)}
.portrait-spread{display:grid;grid-template-columns:1.15fr .85fr;gap:13%;align-items:start}
.portrait-aside{padding-top:160px;min-width:0}
.collection-link{display:flex;gap:20px;flex-wrap:wrap;width:fit-content;max-width:100%;padding:16px 0;border-bottom:1px solid currentColor;margin-top:38px;font-size:14px}
.collection-link>span{font-size:10px;color:var(--muted)}
.collection-link>.icon{margin-left:auto}
.photo-hotels{background:#171918;color:#f5f5f2}
.photo-hotels .photo-heading p,.photo-hotels figcaption,.photo-hotels .collection-link>span{color:#bfc3bf}
.photo-hotels .icon{filter:invert(1)}
.hotel-spread{display:grid;grid-template-columns:1.12fr .88fr;gap:10%;align-items:start}
.hotel-details{display:flex;flex-direction:column;align-items:flex-end;gap:40px;padding-top:90px;min-width:0}
.hotel-details>.photo-frame{width:82%}
.hotel-details>.hotel-detail{width:52%;align-self:flex-start}
.photo-hotels>.collection-link{margin-top:30px}
.photo-landscapes{background:#fff;padding-top:110px}
.landscape-lead{width:88%;max-width:1250px}
.landscape-spread{display:grid;grid-template-columns:.72fr 1.28fr;gap:12%;margin-top:88px;align-items:start}
.landscape-aside{padding-top:110px;min-width:0}
.photo-dialog{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;color:#f5f5f2;background:#111;overflow:hidden}
.photo-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.photo-dialog::backdrop{background:#111}
.photo-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 30px}
.photo-dialog-top h2{font-size:16px;font-weight:400}
.photo-dialog .icon-button{color:inherit;border:1px solid transparent;border-radius:0}
.photo-dialog .icon-button:hover{border-color:#666}
.photo-dialog img.icon,.photo-dialog .icon-button img,.photo-dialog .text-link img{filter:invert(1)}
.photo-viewer{position:relative;margin:0;padding:0 72px;min-height:0;display:flex;align-items:center;justify-content:center}
#photo-viewer-image{width:100%;height:100%;object-fit:contain;min-height:0}
#photo-viewer-image[aria-busy="true"]{opacity:0}
#photo-viewer-error{position:absolute;inset:40% 24px auto;text-align:center;font-size:14px}
.photo-dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 30px 24px}
.photo-viewer-caption{min-width:0}
#photo-viewer-title{font-size:13px;line-height:1.4}
.photo-viewer-caption .text-link{font-size:10px;color:#bbb;padding:6px 0 0;gap:8px}
.photo-viewer-caption .icon{width:12px;height:12px}
.photo-controls{display:flex;align-items:center;gap:16px;flex-shrink:0}
.photo-previous img{transform:rotate(225deg)}
.photo-next img{transform:rotate(45deg)}
#photo-position{font-size:12px;font-variant-numeric:tabular-nums;min-width:55px;text-align:center}
@media(max-width:1100px){
  .site-header nav{gap:18px;font-size:11px}
  .photo-heading h2{font-size:60px}
  .portrait-aside{padding-top:110px}
  .hotel-details{padding-top:50px}
}
@media(max-width:960px) and (min-width:761px){
  .site-header nav{gap:12px;font-size:10px}
  .wordmark{gap:10px;font-size:22px}
  .wordmark span{padding-left:10px;font-size:8px}
  .photo-heading h2{font-size:56px}
}
@media(max-width:760px){
  .photo-index{display:block;padding-top:52px}
  .photo-index h2{font-size:27px}
  .photo-index nav{gap:24px;margin-top:14px;font-size:12px}
  .photo-chapter{padding-top:56px;padding-bottom:60px}
  .photo-heading{align-items:start;margin-bottom:28px;gap:20px}
  .photo-heading h2{font-size:46px}
  .photo-heading p{font-size:11px;min-width:0;max-width:120px;line-height:1.6;padding-top:4px}
  .portrait-spread{grid-template-columns:1fr;gap:34px}
  .portrait-aside{padding-top:0;width:77%;margin-left:auto}
  .photo-frame figcaption{margin-top:10px;font-size:10px}
  .collection-link{font-size:13px;gap:12px;margin-top:25px;padding:12px 0}
  .collection-link>span{font-size:9px}
  .hotel-spread{grid-template-columns:1fr;gap:32px}
  .hotel-details{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;padding:0;align-items:start}
  .hotel-details>.photo-frame{width:100%}
  .hotel-details>.hotel-detail{width:100%;margin-top:48px}
  .landscape-lead{width:100%}
  .photo-landscapes .photo-heading{display:block}
  .photo-landscapes .photo-heading p{max-width:none;margin-top:10px;font-size:12px}
  .photo-landscapes .photo-heading br{display:none}
  .landscape-spread{grid-template-columns:1fr;gap:38px;margin-top:38px}
  .landscape-spread>.photo-frame{width:72%}
  .landscape-aside{padding-top:0;width:88%;margin-left:auto}
  .photo-dialog-top{padding:8px 16px}
  .photo-dialog-bottom{padding:16px 16px max(20px,env(safe-area-inset-bottom));gap:12px}
  .photo-viewer{padding:0 12px}
  .photo-controls{gap:3px}
  #photo-viewer-title{font-size:11px;max-width:170px}
  #photo-position{min-width:44px;font-size:11px}
}
@media(max-width:380px){
  .photo-heading{display:block}
  .photo-heading h2{font-size:44px}
  .photo-heading p{margin-top:10px;max-width:none}
  .photo-heading p br{display:none}
  .photo-dialog-bottom{align-items:end}
  .photo-controls .icon-button{width:38px}
}
@media(prefers-reduced-motion:reduce){.photo-frame>a>img{transition:none}}
