/* Fit the layout to the viewport rather than asking Safari to shrink it. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;max-inline-size:100%;overflow-x:clip}
body{max-inline-size:100%;overflow-x:clip}
main,section,.opening,.intro,.feature-carousel,.section-title>div,.about-copy,.photogrid,.photo,.frame,.trip-heading>*{min-inline-size:0}
img{max-inline-size:100%}
@media(max-width:767px){
 body{font-size:16px}
 header{height:auto;min-height:0;margin:12px 16px 0;padding:15px 16px 8px;display:flex;flex-wrap:wrap;gap:8px;border-radius:18px}
 header .brand{flex-wrap:wrap;white-space:normal;font-size:14px;letter-spacing:1.2px;display:flex;align-items:baseline;gap:12px}
 header .brand span{display:inline;margin:0;font-size:10px}
 header nav{flex:1 0 100%;width:100%;min-width:0;display:flex;justify-content:space-between;gap:4px}
 header nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 6px;font-size:14px;white-space:nowrap}
 .opening{display:block;min-height:0;width:100%;padding:26px 16px 0}
 .intro{width:100%;padding:14px 0 28px}
 .intro .eyebrow{font-size:10px;letter-spacing:1.4px}
 .intro h1{font-size:clamp(34px,10vw,58px);line-height:1;letter-spacing:-.06em;margin:24px 0}
 .headline-line{display:block;max-inline-size:100%;animation-name:phone-entry;transform:none}
 .headline-line:after{content:none}
 .intro-bottom{display:block}
 .intro-bottom p{font-size:15px;line-height:1.7}
 .browse{margin-top:20px;font-size:14px;min-height:48px;padding:12px 20px}
 .intro-footnote{font-size:9px;line-height:1.8;letter-spacing:1.1px;margin-top:24px;overflow-wrap:anywhere}
 .feature-carousel{width:100%;max-width:100%}
 .feature-carousel .hero{animation-name:phone-entry;transform:none;border-radius:14px}
 .carousel-stage{height:auto;min-height:0;max-height:none;aspect-ratio:4/3}
 .hero-caption{padding:13px 12px;gap:12px;font-size:10px;letter-spacing:.7px;line-height:1.6;flex-wrap:wrap}
 .hero-caption>span{min-width:0;overflow-wrap:anywhere}
 .carousel-description{font-size:15px;line-height:1.7;margin:16px 0;min-height:0;overflow-wrap:anywhere}
 .carousel-controls{display:flex;flex-wrap:wrap;width:100%;gap:14px;font-size:13px}
 .carousel-controls>span{flex:1 0 100%;font-size:13px}
 .carousel-buttons{display:grid;grid-template-columns:44px minmax(44px,1fr) 44px minmax(92px,1.4fr);width:100%;margin:0;gap:12px;align-items:center}
 .carousel-buttons button{width:100%;min-width:0;min-height:44px;padding:8px;font-size:16px}
 .carousel-buttons #carousel-count{font-size:13px;min-width:0}
 .carousel-buttons #carousel-toggle{min-width:0;font-size:14px}
 .carousel-progress{margin-top:20px}
 .theme-ribbon{width:100%;max-width:100%;transform:none;overflow:hidden;margin-top:32px}
 .ribbon-track{font-size:28px}
 .ambient-orb{max-width:100%;filter:blur(55px)}
 .music-panel{width:calc(100% - 32px);margin:0 16px 55px;padding:18px;display:flex;flex-direction:column;align-items:stretch;gap:18px}
 .music-panel p{font-size:17px;line-height:1.5}
 .music-panel p span{display:block;font-size:13px;margin-top:3px}
 .music-controls{display:grid;grid-template-columns:auto 1fr;gap:14px 12px;min-width:0}
 .music-controls .music-toggle{grid-column:1/-1;min-height:46px;font-size:15px}
 .music-controls label{font-size:14px}
 .music-controls input{width:100%;min-width:0;min-height:32px;font-size:16px}
 #music-status{grid-column:1/-1;max-width:none;font-size:13px}
 .collections,.about,.armenia-section{width:100%;max-width:100%;padding-left:16px;padding-right:16px}
 .section-title{display:block}
 .section-title h2{font-size:clamp(36px,10vw,54px);line-height:1.03;overflow-wrap:break-word}
 .section-title p{font-size:15px;margin-top:20px}
 .filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
 .filters button{min-height:44px;padding:10px 15px;font-size:14px}
 .group-header{display:block;margin-bottom:23px}
 .group-header h3{font-size:27px;line-height:1.2;letter-spacing:-1px;overflow-wrap:anywhere}
 .group-header .number{font-size:12px}
 .group-header p{font-size:14px;line-height:1.7;margin-top:12px}
 .photogrid,.photogrid.pair{grid-template-columns:minmax(0,1fr);gap:28px}
 .photo:nth-child(even){margin-top:0}
 .photo .frame{aspect-ratio:auto;min-height:0;transform:none}
 .photo img{width:100%;height:auto;max-height:none}
 .photo .caption{font-size:19px;line-height:1.5;gap:10px}
 .photo .caption>span:first-child{min-width:0;overflow-wrap:anywhere}
 .photo .caption>span:last-child{flex:0 0 32px;width:32px;height:32px;margin-left:0}
 .photo-description{font-size:15px;line-height:1.75}
 .selection-status{font-size:13px}
 .trip-heading h2{font-size:clamp(40px,11vw,68px);line-height:1.02;letter-spacing:-.055em;overflow-wrap:break-word}
 .trip-heading p{font-size:15px;line-height:1.8;max-width:none}
 .trip-topline{gap:12px}
 .trip-topline .eyebrow{letter-spacing:1px}
 .trip-cover-label{flex-wrap:wrap;gap:8px;font-size:10px;line-height:1.6}
 .trip-actions{display:flex;flex-direction:column;align-items:stretch;gap:15px;font-size:14px}
 .trip-actions button{min-height:48px;font-size:15px}
 .trip-back{min-height:44px;font-size:14px}
 .about>div:last-child{grid-template-columns:minmax(0,1fr);gap:26px}
 .about h2{font-size:clamp(32px,8.7vw,50px);line-height:1.08;overflow-wrap:break-word}
 .about-copy p{font-size:16px;line-height:1.8}
 footer{display:flex;flex-wrap:wrap;gap:18px;padding:25px 16px}
 footer p,footer>a:last-child{font-size:13px}
 footer .brand{white-space:normal}
 a,button{touch-action:manipulation}
 input,select,textarea{font-size:16px}
 dialog#viewer{inset:0;margin:0;width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100dvh;padding:12px 12px 10px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));overflow:hidden}
 .viewer-bar{flex-wrap:wrap;align-items:center;gap:6px;min-height:0;font-size:12px}
 .viewer-bar>span{width:100%;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
 .viewer-bar>div{width:100%;display:flex;justify-content:space-between;gap:4px;flex-wrap:wrap}
 .viewer-bar button{min-height:44px;padding:8px 7px;font-size:12px}
 .viewer-bar #close{margin-left:auto}
 .viewer-stage{position:relative;flex:1 1 0%;min-height:80px;gap:0;padding:5px 0}
 .viewer-stage img{width:100%;height:100%;min-height:0;object-fit:contain}
 .viewer-stage button{position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:44px;height:44px;padding:0;border-radius:50%;font-size:32px;background:#091016b8;border:1px solid #ffffff25}
 .viewer-stage #previous{left:2px}.viewer-stage #next{right:2px}
 .viewer-caption{gap:12px;padding-top:10px}
 .viewer-caption h2{font-size:20px;line-height:1.3;overflow-wrap:anywhere;min-width:0}
 .viewer-caption>span{flex-shrink:0;font-size:12px}
 .viewer-description{font-size:14px;line-height:1.65;text-align:left;max-height:20vh;max-height:20dvh;overflow:auto;-webkit-overflow-scrolling:touch;margin-top:10px}
 .viewer-help{font-size:11px;padding-top:8px}
}
@media(max-width:900px) and (max-height:500px) and (orientation:landscape){
 dialog#viewer{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}
 .viewer-bar{flex-wrap:nowrap;gap:16px}.viewer-bar>span{width:auto;flex:1}.viewer-bar>div{width:auto}
 .viewer-stage{min-height:65px}.viewer-description{max-height:14dvh;font-size:12px;line-height:1.45}.viewer-caption h2{font-size:17px}.viewer-help{display:none}
}
@keyframes phone-entry{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
