:root{
  --paper:#ffffff;
  --paper-deep:#f6f6f3;
  --ink:#0e120d;
  --muted:#6c6b63;
  --green:#173f2a;
  --green-2:#36541c;
  --line:#77766f;
  --soft-line:#c9c3b7;
  --white:#ffffff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Libre Baskerville',Georgia,serif}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto}
button,input,textarea,select{font:inherit}
.site-shell{width:min(94vw,1480px);margin:0 auto}
.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:2rem}
.brand{display:flex;flex-direction:column;line-height:1.05}
.brand strong{font-family:'Playfair Display',Georgia,serif;font-size:2rem;font-weight:700}
.brand small{font-size:.72rem;margin-top:.35rem;color:var(--muted)}
nav{display:flex;align-items:center;gap:2.1rem;font-size:.9rem}
nav a{padding:.35rem 0}
nav a:hover{color:var(--green)}
.subscribe-link{border:1px solid var(--green);padding:.8rem 1.35rem!important}

.editorial-hero{display:grid;grid-template-columns:38% 62%;gap:2.4rem;padding:1rem 0 1.65rem;border-bottom:1px solid var(--line);min-height:620px}
.hero-copy{padding:3.2rem 0 1.6rem 1.2rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.eyebrow{font-size:.68rem;letter-spacing:.31em;font-weight:700;color:#2d3d20}
.hero-copy h1,.stories-section h2,.photos-home h2,.journey-modes h2,.follow-section h2,.page-hero h1{font-family:'Playfair Display',Georgia,serif}
.hero-copy h1{font-size:clamp(4.2rem,7.2vw,7.6rem);line-height:.82;letter-spacing:-.045em;margin:.6rem 0 1.7rem;font-weight:700}
.hero-copy h1 em{display:inline-block;font-weight:600;color:var(--green-2)}
.hero-copy p{font-size:1.26rem;line-height:1.45;margin:0 0 1.4rem;max-width:560px}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}
.btn{min-width:178px;padding:1rem 1.35rem;border:1px solid var(--green);display:inline-flex;align-items:center;justify-content:center;gap:1.2rem;font-size:.92rem;background:transparent;border-radius:0;cursor:pointer}
.btn.primary{background:var(--green);color:var(--white)}
.btn.secondary{color:var(--ink)}
.btn:hover{transform:translateY(-1px)}
.hero-visual{position:relative;padding-top:.8rem;min-width:0}
.hero-main-image{height:100%;max-height:600px;object-fit:cover;background:#d8d4c8}
.journey-card{position:absolute;left:-6%;bottom:2%;width:34%;background:var(--white);padding:.65rem .65rem 1rem;transform:rotate(-4deg);box-shadow:0 10px 24px rgba(0,0,0,.14);z-index:3}
.journey-card img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center;background:#000}
.journey-card em{display:block;margin:.55rem .35rem 0;font-size:.95rem}
.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border:2px solid rgba(255,255,255,.95);border-radius:50%;display:grid;place-items:center;background:rgba(13,23,15,.46);color:#fff;font-size:.98rem;padding-left:3px}

.home-section{padding:1.1rem 0 1.8rem;border-bottom:1px solid var(--line)}
.section-topline,.story-heading-row,.photo-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1rem}
.filter-tabs{display:flex;align-items:center;gap:1.7rem;font-size:.86rem;flex-wrap:wrap}
.filter-tabs a{padding:.25rem 0 .45rem;border-bottom:2px solid transparent}
.filter-tabs a.active,.filter-tabs a:hover{border-color:var(--green)}
.story-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem}
.story-card{min-width:0}
.story-image{position:relative;display:block;overflow:hidden;background:#d3d0c6;aspect-ratio:1.43/1}
.story-image img{height:100%;object-fit:cover;transition:transform .35s ease}
.story-card:hover .story-image img{transform:scale(1.02)}
.story-card .play-button{width:44px;height:44px;font-size:.78rem}
.story-card h3{font-weight:400;font-size:1rem;margin:.55rem .25rem 0}

.photos-home{padding-top:1.3rem}
.photo-heading-row{align-items:flex-end}
.stories-section h2,.photos-home h2{font-size:clamp(3.2rem,5.5vw,5.8rem);line-height:.92;letter-spacing:-.035em;margin:.35rem 0 0}
.photo-tabs{padding-bottom:0}
.photo-mosaic{display:grid;grid-template-columns:1.05fr 1.15fr 1.4fr;grid-template-rows:250px 250px;gap:.55rem}
.mosaic-item{overflow:hidden;background:#d8d3c8}
.mosaic-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.mosaic-item:hover img{transform:scale(1.018)}
.mosaic-1{grid-row:1/3}
.mosaic-2{grid-column:2;grid-row:1}
.mosaic-3{grid-column:3;grid-row:1}
.mosaic-4{grid-column:2;grid-row:2}
.mosaic-5{grid-column:3;grid-row:2}

.journey-modes{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;padding:1rem 1rem 1.2rem;border-bottom:1px solid var(--line)}
.journey-modes h2{font-size:2.5rem;line-height:1.1;margin:0 0 .35rem}
.journey-modes p{font-size:1rem;margin:0}
.mode-icons{display:grid;grid-template-columns:repeat(5,1fr);min-width:0}
.mode-icons a{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;padding:.2rem .45rem;border-left:1px solid var(--soft-line)}
.mode-icons a:first-child{border-left:0}
.mode-icons span{font-size:1.9rem;line-height:1}
.mode-icons small{font-size:.72rem;line-height:1.25}
.follow-section{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem 1rem 1.3rem;border-bottom:1px solid var(--line)}
.follow-section h2{font-size:3rem;line-height:1;margin:0}
.youtube-button{background:var(--green);color:var(--white);padding:.9rem 1.2rem;display:inline-flex;align-items:center;gap:.8rem;white-space:nowrap}
.youtube-icon{display:inline-grid;place-items:center;background:#d7131b;color:white;width:24px;height:18px;border-radius:3px;font-size:.55rem;padding-left:2px}

.site-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;padding:1.5rem 1rem 2.5rem}
.footer-brand{display:flex;flex-direction:column}
.footer-brand strong{font-size:1rem}
.footer-brand small{font-size:.67rem;color:var(--muted);margin-top:.3rem}
.footer-links{display:flex;gap:1.8rem;font-size:.75rem;flex-wrap:wrap;justify-content:flex-end}
.admin-footer{opacity:.35}

/* Internal editorial pages */
.page-hero{padding:4.5rem 1rem 2.5rem;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}
.page-hero .eyebrow{color:#2d3d20}
.page-hero h1{font-size:clamp(3.6rem,6vw,6.8rem);line-height:.9;letter-spacing:-.035em;margin:.5rem 0 1rem}
.page-hero p{max-width:760px;font-size:1rem;line-height:1.65;color:var(--muted)}
.section{padding:2rem 1rem 4rem}
.category-nav,.toolbar{display:flex;justify-content:flex-end;gap:1.4rem;align-items:center;margin-bottom:1.2rem;flex-wrap:wrap}
.category-nav a,.toolbar a{padding:.25rem 0 .45rem;border-bottom:2px solid transparent;font-size:.84rem}
.category-nav a.active,.toolbar a.active,.category-nav a:hover,.toolbar a:hover{border-color:var(--green)}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.video-card{background:transparent;border:0;border-radius:0;overflow:visible}
.thumb{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:#d3d0c6}
.thumb img{height:100%;object-fit:cover;transition:transform .35s}
.video-card:hover .thumb img{transform:scale(1.02)}
.thumb .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(19,34,23,.52);border:2px solid white;color:white;padding-left:3px}
.card-copy{padding:.55rem .15rem 1rem}
.pill{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.card-copy h3{font-size:1rem;font-weight:400;margin:.35rem 0}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.gallery-card{background:transparent;border:0;border-radius:0;overflow:visible}
.gallery-card>img{aspect-ratio:4/3;object-fit:cover}
.gallery-info{display:flex;justify-content:space-between;gap:2rem;padding:.65rem .15rem 1rem;border-bottom:1px solid var(--soft-line)}
.gallery-info h3{font-size:1rem;font-weight:400;margin:0 0 .25rem}
.gallery-info p{font-size:.76rem;color:var(--muted);margin:.2rem 0}
.rating{text-align:right;white-space:nowrap}.rating-summary{font-size:.75rem;color:var(--muted)}
.stars{display:flex;justify-content:flex-end;margin-top:.25rem}.stars button{border:0;background:transparent;padding:0 .06rem;color:#b8b1a4;font-size:1.05rem;cursor:pointer}.stars button:hover,.stars button.selected{color:var(--green-2)}

/* Secondary cards / admin keep functional, but match the paper aesthetic */
.product-grid,.gear-grid,.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.product-card,.gear-card,.panel,.support-box{background:#ffffff;border:1px solid var(--soft-line);border-radius:0;padding:1.35rem}
.product-art{height:280px;margin-bottom:1.1rem;background:linear-gradient(145deg,#899488,#d1c8b5)}
.product-art.road{background:linear-gradient(150deg,#b3b29f,#536055)}
.product-card>span{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.product-card h3,.gear-card h3{font-size:1.2rem;margin:.45rem 0}.product-card p,.gear-card p,.support-box p{color:var(--muted);line-height:1.6}
.gear-grid{grid-template-columns:repeat(4,1fr)}.gear-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--green);font-weight:700}
.narrow{max-width:900px;margin:auto}.support-box{text-align:center;padding:3rem}.support-box h2{font-family:'Playfair Display',Georgia,serif;font-size:2.6rem;margin-top:0}
.panel h2{margin-top:0}.panel form{display:grid;gap:1rem}.panel label{display:grid;gap:.35rem;font-size:.82rem;font-weight:700}.panel input,.panel textarea,.panel select{width:100%;border:1px solid var(--soft-line);border-radius:0;padding:.75rem;background:var(--white)}
.panel hr{border:0;border-top:1px solid var(--soft-line);margin:1.2rem 0}.admin-login{padding-top:4rem;min-height:70vh}.admin-photo-list{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.admin-photo-list>div{background:#ffffff;border:1px solid var(--soft-line)}.admin-photo-list img{aspect-ratio:4/3;object-fit:cover}.admin-photo-list span{display:block;padding:.6rem .6rem .25rem;font-size:.78rem}.admin-photo-list form{padding:.25rem .6rem .6rem}.admin-photo-list button{border:0;background:none;padding:0;color:#7f352c;cursor:pointer}.flash{padding:.8rem 1rem;border:1px solid var(--soft-line);background:#ece8dd}.flash.error{background:#f4ded8}.flash.success{background:#e2ead9}.empty-state{padding:3rem;border:1px dashed var(--soft-line);color:var(--muted);grid-column:1/-1}

@media(max-width:1000px){
  .site-shell{width:min(96vw,1480px)}
  nav{gap:1.2rem}.editorial-hero{grid-template-columns:42% 58%;min-height:540px}.hero-copy h1{font-size:clamp(3.4rem,7vw,5.6rem)}
  .story-grid{grid-template-columns:repeat(2,1fr)}
  .photo-mosaic{grid-template-rows:220px 220px}.journey-modes{grid-template-columns:1fr}.mode-icons{max-width:650px}.video-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .site-header{height:auto;padding:1rem .4rem;align-items:flex-start}.brand strong{font-size:1.5rem}nav{gap:.85rem;font-size:.73rem;flex-wrap:wrap;justify-content:flex-end}.subscribe-link{padding:.55rem .75rem!important}
  .editorial-hero{grid-template-columns:1fr;padding-top:.5rem}.hero-copy{padding:2rem .4rem 0}.hero-copy h1{font-size:4.1rem}.hero-visual{padding-left:2.5rem;min-height:430px}.hero-main-image{height:430px}.journey-card{left:0;width:42%;bottom:-1%}
  .section-topline,.story-heading-row,.photo-heading-row{align-items:flex-start;flex-direction:column}.filter-tabs{gap:1rem}.story-grid{grid-template-columns:repeat(2,1fr)}
  .photo-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:300px 190px 190px}.mosaic-1{grid-column:1;grid-row:1/3}.mosaic-2{grid-column:2;grid-row:1}.mosaic-3{grid-column:2;grid-row:2}.mosaic-4{grid-column:1;grid-row:3}.mosaic-5{grid-column:2;grid-row:3}
  .journey-modes,.follow-section{padding-left:.4rem;padding-right:.4rem}.follow-section{align-items:flex-start;flex-direction:column}.follow-section h2{font-size:2.4rem}.mode-icons{grid-template-columns:repeat(5,minmax(70px,1fr));overflow-x:auto;width:100%}.mode-icons a{min-width:78px}
  .site-footer{padding-left:.4rem;padding-right:.4rem;flex-direction:column}.footer-links{justify-content:flex-start}
  .video-grid,.gallery-grid,.product-grid,.gear-grid,.admin-grid{grid-template-columns:1fr}.admin-photo-list{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .site-shell{width:94vw}.site-header{gap:1rem}.brand small{display:none}.subscribe-link{display:none}
  .hero-copy h1{font-size:3.25rem}.hero-copy p{font-size:1rem}.hero-actions{width:100%}.btn{min-width:0;flex:1;padding:.8rem .7rem;font-size:.78rem}.hero-visual{padding-left:1.5rem;min-height:350px}.hero-main-image{height:350px}.journey-card{width:48%}
  .story-grid{grid-template-columns:1fr 1fr;gap:.6rem}.story-card h3{font-size:.83rem}.stories-section h2,.photos-home h2{font-size:3rem}.photo-mosaic{grid-template-rows:240px 160px 160px}.journey-modes h2{font-size:2rem}.mode-icons{grid-template-columns:repeat(5,82px)}
}


/* Admin v4 */
.multiline-copy { white-space: pre-line; }
.admin-messages { padding-top: 1rem; padding-bottom: 0; }
.admin-note { font-size: .82rem; opacity: .68; margin-top: .9rem; }
.site-text-form { display: grid; gap: 1.2rem; }
.text-group { margin: 0; min-width: 0; }
.text-group legend { font-family: var(--serif-display); font-size: 1.35rem; font-weight: 700; padding: 0 .5rem; }
.text-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.text-fields label { min-width: 0; }
.text-fields input, .text-fields textarea { width: 100%; }
.sticky-save { position: sticky; bottom: 1rem; display: flex; justify-content: flex-end; z-index: 10; pointer-events: none; }
.sticky-save .btn { pointer-events: auto; box-shadow: 0 8px 24px rgba(0,0,0,.14); }
@media (max-width: 760px) { .text-fields { grid-template-columns: 1fr; } }

/* v5: dynamic, scrollable photo browser */
.photo-controls{display:flex;align-items:baseline;gap:1.5rem;flex-wrap:wrap;justify-content:flex-end}
.photo-tabs button{font:inherit;color:inherit;line-height:1.2;background:none;border:0;border-bottom:2px solid transparent;padding:.25rem 0 .45rem;cursor:pointer}
.photo-tabs button.active,.photo-tabs button:hover{border-color:var(--green)}
.show-all-link{font:inherit;color:inherit;line-height:1.2;font-size:.86rem;white-space:nowrap;padding:.25rem 0 .45rem}
.photo-scroll-shell{position:relative}
.home-photo-scroller{display:flex;gap:.65rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:.55rem;scrollbar-width:thin}
.home-photo-card{flex:0 0 clamp(260px,31vw,460px);scroll-snap-align:start;display:block;position:relative;overflow:hidden;background:#eee}
.home-photo-card img{width:100%;height:330px;object-fit:cover;display:block;transition:transform .3s ease}
.home-photo-card:hover img{transform:scale(1.015)}
.home-photo-card span{position:absolute;left:0;right:0;bottom:0;padding:2.4rem .8rem .65rem;color:white;font-size:.82rem;background:linear-gradient(transparent,rgba(0,0,0,.58))}
.photo-scroll-arrow{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:42px;height:42px;border:1px solid rgba(0,0,0,.28);background:rgba(255,255,255,.92);font-size:1.2rem;cursor:pointer}
.photo-scroll-arrow.prev{left:.5rem}.photo-scroll-arrow.next{right:.5rem}
.photo-tags{font-size:.7rem!important;letter-spacing:.03em;text-transform:uppercase}
.photo-page-tags{justify-content:flex-start;margin-bottom:1rem}
@media(max-width:760px){.photo-controls{justify-content:flex-start}.home-photo-card{flex-basis:78vw}.home-photo-card img{height:280px}.photo-scroll-arrow{display:none}}

/* v5.2: photography page toolbar alignment */
.toolbar{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:1.6rem;
  flex-wrap:wrap;
}
.toolbar > span,
.toolbar .photo-count{
  white-space:nowrap;
}
.toolbar > div,
.toolbar .sort-links,
.toolbar .sort-options{
  display:flex;
  align-items:baseline;
  gap:1.4rem;
}
.toolbar a{
  display:inline-block;
  margin:0;
  white-space:nowrap;
  line-height:1.2;
}

/* v5.2: rotating homepage hero media */
.hero-rotating-media{transition:opacity .55s ease}
.hero-rotating-media.is-changing{opacity:0}
.journey-card em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* v5.3: EXIF place and capture-time display */
.hero-photo-meta{position:absolute;left:1rem;bottom:1rem;z-index:2;display:flex;flex-direction:column;gap:.18rem;max-width:70%;padding:.65rem .8rem;background:rgba(10,14,12,.68);color:#fff;backdrop-filter:blur(2px);pointer-events:none}
.hero-photo-meta.is-empty{display:none}
.hero-photo-meta strong{font-size:.9rem;font-weight:700}
.hero-photo-meta span{font-size:.72rem;opacity:.88}
.home-photo-card span{display:flex;flex-direction:column;gap:.12rem}
.home-photo-card span b{font-weight:400}
.home-photo-card span small{font-size:.68rem;opacity:.88}
.admin-photo-list span small{display:block;margin-top:.18rem;font-size:.68rem;color:var(--muted)}
@media(max-width:760px){.hero-photo-meta{left:.6rem;bottom:.6rem;max-width:80%;padding:.5rem .6rem}.hero-photo-meta strong{font-size:.78rem}.hero-photo-meta span{font-size:.65rem}}

/* v5.5: automatic albums by resolved photo location */
.albums-intro{margin:0 0 1.35rem;max-width:860px}
.albums-intro h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2.5rem,4vw,4.5rem);line-height:.95;letter-spacing:-.03em;margin:.4rem 0 .7rem}
.albums-intro p{max-width:720px;color:var(--muted);line-height:1.6;margin:0}
.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:0 0 2.2rem}
.album-card{position:relative;display:block;overflow:hidden;background:#d5d5d1;aspect-ratio:16/10}
.album-card img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.album-card:hover img{transform:scale(1.02)}
.album-card-overlay{position:absolute;left:0;right:0;bottom:0;padding:3rem 1rem .9rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.72));display:flex;flex-direction:column;gap:.2rem}
.album-card-overlay strong{font-family:'Playfair Display',Georgia,serif;font-size:1.35rem;line-height:1.15;font-weight:600}
.album-card-overlay small{font-size:.72rem;opacity:.9}
.album-return-row{display:flex;justify-content:flex-start;margin:0 0 1.15rem}
.album-back-link{font-size:.82rem;padding:.25rem 0 .45rem;border-bottom:1px solid var(--line)}
.album-page-hero h1{max-width:1100px}
@media(max-width:1000px){.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.album-grid{grid-template-columns:1fr}.album-card{aspect-ratio:16/9}}

/* v5.6: homepage video carousel, ordering and 16:9 previews */
.story-controls{display:flex;align-items:baseline;justify-content:flex-end;gap:1.5rem;flex-wrap:wrap}
.story-category-tabs button,.story-order-tabs button{font:inherit;color:inherit;background:none;border:0;border-bottom:2px solid transparent;padding:.25rem 0 .45rem;cursor:pointer;line-height:1.2}
.story-category-tabs button.active,.story-category-tabs button:hover,.story-order-tabs button.active,.story-order-tabs button:hover{border-color:var(--green)}
.story-order-tabs{display:flex;align-items:baseline;gap:1rem;font-size:.78rem;color:var(--muted);white-space:nowrap}
.story-scroll-shell{position:relative}
.story-scroller{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 0 .65rem;scrollbar-width:thin}
.story-scroller .story-card{flex:0 0 calc((100% - 2.7rem)/4);min-width:0;scroll-snap-align:start}
.story-scroller .story-card[hidden]{display:none}
.story-image{aspect-ratio:16/9;background:#111}
.story-image img{width:100%;height:100%;object-fit:cover}
.story-scroll-arrow{position:absolute;z-index:3;top:0;transform:translateY(-50%);width:42px;height:42px;border:1px solid rgba(255,255,255,.35);background:rgba(16,20,18,.88);color:#fff;font-size:1.2rem;cursor:pointer}
.story-scroll-arrow.prev{left:.5rem}.story-scroll-arrow.next{right:.5rem}
/* Internal video previews are 16:9 too. */
.thumb{aspect-ratio:16/9;background:#111}

@media(max-width:1000px){
  .story-scroller .story-card{flex-basis:calc((100% - .9rem)/2)}
}
@media(max-width:760px){
  .stories-section .section-topline{gap:.8rem}
  .story-controls{justify-content:flex-start;gap:.8rem 1.2rem}
  .story-scroller .story-card{flex-basis:82vw}
  .story-scroll-arrow{display:none}
}


/* v5.7: unified homepage media controls */
.story-controls,.photo-controls{display:flex;align-items:baseline;justify-content:flex-end;gap:1.25rem;flex-wrap:wrap}
.story-category-tabs,.photo-tabs{display:flex;align-items:baseline;gap:1.5rem;flex-wrap:wrap}
.story-order-tabs,.photo-order-tabs{display:flex;align-items:baseline;gap:1rem;font-size:.82rem;color:var(--muted);white-space:nowrap}
.story-show-all,.show-all-link{font:inherit;color:inherit;line-height:1.2;font-size:.82rem;white-space:nowrap;padding:.25rem 0 .45rem}
.story-order-tabs button,.photo-order-tabs button{font:inherit;color:inherit;background:none;border:0;border-bottom:2px solid transparent;padding:.25rem 0 .45rem;cursor:pointer;line-height:1.2}
.story-order-tabs button.active,.story-order-tabs button:hover,.photo-order-tabs button.active,.photo-order-tabs button:hover{border-color:var(--green);color:var(--ink)}
.story-show-all:hover,.show-all-link:hover{color:var(--ink)}
@media(max-width:760px){
  .story-controls,.photo-controls{justify-content:flex-start;gap:.8rem 1.1rem}
  .story-category-tabs,.photo-tabs{gap:1rem}
  .story-order-tabs,.photo-order-tabs{gap:.8rem}
}


/* v5.8: separate taxonomy from presentation controls */
.story-controls,.photo-controls{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:1rem;
  flex-wrap:wrap;
}
.story-category-tabs,.photo-tabs{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:1.5rem;
  flex-wrap:wrap;
}
.media-bottom-controls{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:1.15rem;
  margin-top:.3rem;
  padding-top:.15rem;
  width:100%;
  font-size:.82rem;
  color:var(--muted);
}
.media-bottom-controls button,
.media-bottom-controls a{
  font:inherit;
  color:inherit;
  line-height:1.2;
  background:none;
  border:0;
  border-bottom:2px solid transparent;
  padding:.25rem 0 .45rem;
  white-space:nowrap;
}
.media-bottom-controls button{cursor:pointer}
.media-bottom-controls button.active,
.media-bottom-controls button:hover{
  border-color:var(--green);
  color:var(--ink);
}
.media-bottom-controls a:hover{color:var(--ink)}
.media-page-tags{gap:1.5rem}
@media(max-width:760px){
  .story-controls,.photo-controls{justify-content:flex-start}
  .story-category-tabs,.photo-tabs{justify-content:flex-start;gap:1rem}
  .media-bottom-controls{justify-content:flex-end;gap:.85rem}
}

.story-heading-row{align-items:flex-end}

/* v5.10: unified media-page filtering and ordering */
.media-page-controls{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1.5rem 2rem;
  flex-wrap:wrap;
  margin-bottom:1.35rem;
}
.media-page-controls .category-nav{
  justify-content:flex-start;
  margin:0;
}
.media-page-order{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:1.35rem;
  margin-left:auto;
  flex-wrap:wrap;
  font-size:.84rem;
}
.media-page-order a{
  display:inline-block;
  padding:.25rem 0 .45rem;
  border-bottom:2px solid transparent;
  white-space:nowrap;
}
.media-page-order a.active,
.media-page-order a:hover{
  border-color:var(--green);
}
.media-count{
  color:var(--muted);
  white-space:nowrap;
  margin-right:.35rem;
}
.media-count strong{color:var(--ink)}

@media(max-width:760px){
  .media-page-controls{align-items:flex-start;flex-direction:column;gap:.9rem}
  .media-page-order{margin-left:0;justify-content:flex-start;gap:1rem}
}


/* v5.11: multi-folder admin upload */
.folder-inputs{display:grid;gap:.85rem}
.folder-input-row{display:grid;gap:.35rem}
.folder-input-line{display:flex;align-items:center;gap:.75rem}
.folder-input-line input{flex:1;min-width:0}
.folder-remove{border:0;background:none;color:#7f352c;cursor:pointer;padding:.35rem 0;white-space:nowrap}
.folder-upload-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
@media(max-width:760px){.folder-input-line{align-items:flex-start;flex-direction:column}.folder-upload-actions{align-items:stretch}.folder-upload-actions .btn{width:100%}}

/* v5.12: upload and background AI progress */
.job-progress{margin-top:1.15rem;padding-top:1rem;border-top:1px solid var(--soft-line)}
.job-progress[hidden]{display:none}
.job-progress-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.82rem;margin-bottom:.35rem}
.job-progress-row.processing-row{margin-top:.9rem}
.job-progress progress{display:block;width:100%;height:12px;border:1px solid var(--soft-line);background:var(--paper-deep);border-radius:0;overflow:hidden}
.job-progress progress::-webkit-progress-bar{background:var(--paper-deep)}
.job-progress progress::-webkit-progress-value{background:var(--green)}
.job-progress progress::-moz-progress-bar{background:var(--green)}
.job-progress small{display:block;margin-top:.45rem;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}
.folder-upload-actions button:disabled,.job-progress+button:disabled,#ai-retag-submit:disabled{opacity:.5;cursor:wait}

/* v5.14: selected directory name in multi-folder uploader */
.folder-selected-name{display:block;color:var(--muted);font-size:.78rem;font-weight:400;margin-top:.15rem}
.folder-selected-name.has-selection{color:var(--ink)}

/* v5.16: editable folder-derived place fallback */
.folder-place-controls{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:.8rem 1rem;align-items:end;margin-top:.35rem;padding:.85rem;border:1px solid var(--soft-line);background:rgba(255,255,255,.015)}
.folder-place-controls[hidden]{display:none}
.folder-place-controls label{display:grid;gap:.35rem;font-size:.78rem;font-weight:700}
.folder-place-controls .folder-location{width:100%;border:1px solid var(--soft-line);border-radius:0;padding:.7rem;background:var(--white)}
.folder-place-toggle{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.45rem!important;white-space:nowrap;padding-bottom:.7rem}
.folder-place-toggle input{width:auto!important;margin:0}
@media(max-width:760px){.folder-place-controls{grid-template-columns:1fr}.folder-place-toggle{padding-bottom:0;white-space:normal}}

/* v5.18 photo quality */
.quality-warning{color:#c66b5b!important;font-weight:700}.quality-ok{color:#6f9b6c!important;font-weight:700}.admin-photo-actions{display:flex;gap:.75rem;padding:.2rem .6rem .7rem}.admin-photo-actions form{padding:0!important}.admin-photo-actions button{font-size:.72rem}.admin-photo-list>div{position:relative}.admin-photo-list img{background:#e8e8e8}

/* v5.22: Real-ESRGAN enhancement controls */
.sr-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.sr-actions form{margin:0}.sr-actions .btn{min-width:0}
@media(max-width:760px){.sr-actions{flex-direction:column}.sr-actions .btn{width:100%}}

/* v5.24: selectable AI upscalers */
.sr-batch-form{display:grid;gap:.8rem;margin-top:1rem}.sr-batch-form select{width:100%}
.photo-upscale-form{display:flex!important;gap:.35rem;align-items:center;flex-wrap:wrap}.photo-upscale-form select{max-width:190px;padding:.35rem;border:1px solid var(--soft-line);background:var(--white);font-size:.68rem}


/* v5.25: automatic hero scoring and manual overrides */
.hero-selection-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem;align-items:end}.hero-diversity-toggle{grid-column:1/-1;display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.5rem!important}.hero-diversity-toggle input{width:auto!important;margin:0}.hero-admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.2rem;padding-top:1.1rem;border-top:1px solid var(--soft-line)}.hero-admin-columns h3{font-size:1rem;margin:0 0 .65rem}.hero-admin-list{display:grid;gap:.55rem}.hero-admin-item{display:grid;grid-template-columns:92px minmax(0,1fr);gap:.65rem;align-items:center;border-top:1px solid var(--soft-line);padding-top:.55rem}.hero-admin-item:first-child{border-top:0;padding-top:0}.hero-admin-item img{width:92px;height:58px;object-fit:cover;background:#e8e8e8}.hero-admin-item strong{display:block;font-size:.78rem;font-weight:400;line-height:1.25}.hero-admin-item small{display:block;color:var(--muted);font-size:.66rem;margin:.2rem 0}.hero-admin-item form{display:block!important;margin:0;padding:0!important}.hero-admin-item select{width:100%;padding:.3rem;border:1px solid var(--soft-line);background:var(--white);font-size:.68rem}@media(max-width:760px){.hero-selection-settings,.hero-admin-columns{grid-template-columns:1fr}}

/* v5.28: keep video descriptions below the title, not over the thumbnail */
.story-video-meta{background:rgba(8,10,9,.62);padding:.28rem .45rem}
.story-copy{padding:0 .25rem .2rem}
.story-copy h3{margin:.55rem 0 .25rem}
.story-description,.video-page-description{margin:0;color:var(--muted);font-size:.72rem;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.video-page-description{font-size:.76rem;margin-top:.28rem}
.thumb{position:relative;overflow:hidden}
.video-published-below{margin:.35rem 0 0;color:var(--muted);font-size:.68rem;line-height:1.3}

/* v5.30: photo hover actions + single-photo view */
.home-photo-card,.gallery-photo-wrap{position:relative;overflow:hidden}
.photo-hover-actions{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.65rem;background:rgba(10,14,11,.48);opacity:0;transition:opacity .2s ease;z-index:4}
.photo-hover-actions a{border:1px solid rgba(255,255,255,.88);background:rgba(12,17,13,.78);color:#fff;padding:.72rem .95rem;font-size:.76rem;line-height:1;white-space:nowrap}
.photo-hover-actions a:hover{background:#fff;color:#111}
.home-photo-card:hover .photo-hover-actions,.gallery-photo-wrap:hover .photo-hover-actions{opacity:1}
.home-photo-card .photo-meta{z-index:2;pointer-events:none}
.gallery-photo-wrap>img{aspect-ratio:4/3;object-fit:cover;width:100%;height:100%}
.photo-detail-page{padding:2rem 1rem 4rem}
.photo-detail-topbar{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;border-bottom:1px solid var(--line);padding:.5rem 0 1rem;margin-bottom:1.4rem;font-size:.82rem}
.photo-detail-topbar a{border-bottom:1px solid transparent;padding-bottom:.25rem}
.photo-detail-topbar a:hover{border-color:var(--green)}
.photo-detail-figure{margin:0}
.photo-detail-figure img{max-height:78vh;width:100%;object-fit:contain;background:#101211}
.photo-detail-figure figcaption{display:flex;flex-wrap:wrap;gap:.35rem 1.2rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--soft-line)}
.photo-detail-figure figcaption strong{font-family:'Playfair Display',Georgia,serif;font-size:1.35rem;font-weight:600}
.photo-detail-figure figcaption span{font-size:.78rem;color:var(--muted)}
.photo-detail-figure figcaption p{flex-basis:100%;margin:.45rem 0 0;line-height:1.6;color:var(--muted)}
@media(hover:none){.photo-hover-actions{opacity:1;align-items:flex-end;justify-content:flex-end;padding:.6rem;background:linear-gradient(transparent 55%,rgba(10,14,11,.55))}.photo-hover-actions a{font-size:.68rem;padding:.58rem .7rem}}
@media(max-width:760px){.photo-hover-actions{gap:.4rem}.photo-hover-actions a{font-size:.66rem;padding:.55rem .65rem}.photo-detail-page{padding-left:.4rem;padding-right:.4rem}.photo-detail-topbar{align-items:flex-start;flex-direction:column}.photo-detail-figure img{max-height:72vh}}

/* v5.32: album management */
.admin-album-list{display:grid;gap:.65rem;margin-top:1rem}
.admin-album-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--soft-line)}
.admin-album-summary{display:flex;align-items:center;gap:.8rem;min-width:0}
.admin-album-summary img{width:88px;height:58px;object-fit:cover;flex:0 0 auto}
.admin-album-summary div{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.admin-album-summary strong{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-album-summary small{font-size:.72rem;color:var(--muted)}
.album-delete-button{border:0;background:none;color:#b65b50;cursor:pointer;padding:.4rem 0;font:inherit;font-size:.78rem;white-space:nowrap}
.album-delete-button:hover{text-decoration:underline}
@media(max-width:760px){.admin-album-row{align-items:flex-start;flex-direction:column}.admin-album-summary img{width:72px;height:50px}}

/* v5.33: manual album merging */
.album-merge-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:1rem;align-items:end;margin:1rem 0}
.album-merge-form label{display:grid;gap:.35rem;font-size:.82rem;font-weight:700}
.album-merge-form select{width:100%;border:1px solid var(--soft-line);border-radius:0;padding:.75rem;background:var(--white);color:var(--ink)}
@media(max-width:760px){.album-merge-form{grid-template-columns:1fr}}

.album-card-overlay .album-card-dates{display:block;margin-top:.18rem;font-size:.72rem;opacity:.9}
.album-page-hero .album-date-range{margin:.35rem 0 .2rem;color:var(--muted);font-size:1rem}

/* v5.35: automatic photo descriptions */
.admin-caption-form{display:grid;gap:.45rem;padding:.65rem;border-top:1px solid var(--soft-line)}
.admin-caption-form label{display:grid;gap:.3rem;font-size:.72rem;font-weight:700}
.admin-caption-form textarea{width:100%;resize:vertical;min-height:74px;border:1px solid var(--soft-line);background:var(--white);padding:.55rem;color:var(--ink)}
.admin-caption-form>small{display:block;color:var(--muted);font-size:.68rem;line-height:1.45;max-height:5.8em;overflow:auto}
.admin-caption-buttons{display:flex;gap:.55rem;flex-wrap:wrap}
.admin-caption-buttons button{border:1px solid var(--soft-line);background:transparent;padding:.4rem .55rem;cursor:pointer;color:var(--ink)}
.photo-detail-figure figcaption p{max-width:900px;line-height:1.65}


/* v5.36: previous/next navigation on individual photo pages */
.photo-detail-image-wrap{position:relative;background:#101211}
.photo-detail-image-wrap img{max-height:78vh;width:100%;object-fit:contain;background:#101211}
.photo-detail-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:54px;height:54px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);background:rgba(10,14,11,.72);color:#fff;font-size:1.35rem;line-height:1;transition:background .18s ease,border-color .18s ease}
.photo-detail-arrow.prev{left:1rem}
.photo-detail-arrow.next{right:1rem}
.photo-detail-arrow:hover{background:rgba(10,14,11,.92);border-color:rgba(255,255,255,.8)}
@media(max-width:760px){.photo-detail-image-wrap img{max-height:72vh}.photo-detail-arrow{width:44px;height:44px;font-size:1.1rem}.photo-detail-arrow.prev{left:.5rem}.photo-detail-arrow.next{right:.5rem}}

/* v5.37: individual-photo deletion for signed-in admin */
.photo-detail-topbar-actions{display:flex;align-items:center;gap:1.35rem}
.photo-detail-delete-form{margin:0}
.photo-detail-delete-button{font:inherit;color:#cf786d;background:transparent;border:0;padding:0;cursor:pointer}
.photo-detail-delete-button:hover{text-decoration:underline}
@media(max-width:760px){.photo-detail-topbar{align-items:flex-start}.photo-detail-topbar-actions{align-items:flex-end;flex-direction:column;gap:.65rem}}


/* v5.38: photo-specific admin tools live in the individual photo viewer */
.photo-detail-admin{margin-top:1.5rem;border-top:1px solid var(--line);padding:1.5rem 0 0;display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:2rem}
.photo-detail-admin-heading h2{font-family:'Playfair Display',Georgia,serif;font-size:2.15rem;line-height:1.05;margin:.35rem 0}
.photo-detail-caption-form{display:grid;gap:1rem}
.photo-detail-caption-form label,.photo-detail-upscale-form label{display:grid;gap:.4rem;font-size:.78rem;font-weight:700}
.photo-detail-caption-form textarea{width:100%;min-height:120px;resize:vertical;border:1px solid var(--soft-line);background:var(--white);color:var(--ink);padding:.8rem}
.photo-detail-auto-caption{border-top:1px solid var(--soft-line);padding-top:.9rem}
.photo-detail-auto-caption strong{font-size:.78rem}
.photo-detail-auto-caption p{margin:.35rem 0 0;color:var(--muted);line-height:1.55}
.photo-detail-admin-actions,.photo-detail-maintenance{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}
.photo-detail-maintenance{grid-column:2;border-top:1px solid var(--soft-line);padding-top:1rem}
.photo-detail-upscale-form{display:flex;align-items:flex-end;gap:.65rem;flex-wrap:wrap}
.photo-detail-upscale-form select{min-width:220px;border:1px solid var(--soft-line);background:var(--white);color:var(--ink);padding:.72rem}
.photo-detail-danger-button{font:inherit;color:#cf786d;background:transparent;border:1px solid rgba(207,120,109,.65);padding:.8rem 1rem;cursor:pointer}
.photo-detail-danger-button:hover{background:rgba(207,120,109,.08)}
.admin-photo-open{display:block}
.admin-photo-edit-link{display:block;padding:.15rem .6rem .7rem;font-size:.72rem;color:var(--muted)}
.admin-photo-edit-link:hover{color:var(--green)}
@media(max-width:760px){.photo-detail-admin{grid-template-columns:1fr;gap:1rem}.photo-detail-maintenance{grid-column:1}.photo-detail-admin-heading h2{font-size:1.8rem}}


/* v5.39: align photo-view topbar actions */
.photo-detail-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:1.6rem;line-height:1.2}
.photo-detail-topbar-link,.photo-detail-delete-button{display:inline-flex;align-items:center;margin:0;padding:.25rem 0;font:inherit;font-size:inherit;line-height:1.2;white-space:nowrap}
.photo-detail-delete-form{display:flex;align-items:center;margin:0;padding:0}
.photo-detail-delete-button{color:#cf786d;background:transparent;border:0;cursor:pointer;border-bottom:1px solid transparent}
.photo-detail-delete-button:hover{border-color:#cf786d;text-decoration:none}
@media(max-width:760px){.photo-detail-topbar-actions{width:100%;justify-content:flex-start;flex-direction:row;align-items:center;gap:1.2rem}}


/* v5.40: cleaner caption editor in individual photo view */
.photo-detail-caption-form{display:grid;gap:1.15rem;max-width:860px}
.photo-detail-caption-field{display:grid;gap:.5rem}
.photo-detail-caption-field>label{display:block;margin:0;font-size:.82rem;font-weight:700;line-height:1.25}
.photo-detail-caption-field>textarea{display:block;width:100%;box-sizing:border-box;min-height:150px;resize:vertical;border:1px solid var(--soft-line);background:var(--white);color:var(--ink);padding:.9rem 1rem;font:inherit;line-height:1.45}
.photo-detail-caption-field>small{display:block;margin:0;color:var(--muted);font-size:.7rem;line-height:1.4}
.photo-detail-auto-caption{display:block;border-top:1px solid var(--soft-line);padding-top:1rem}
.photo-detail-auto-caption>strong{display:block;margin:0 0 .4rem;font-size:.82rem}
.photo-detail-auto-caption>p{margin:0;color:var(--muted);line-height:1.55;max-width:760px}
@media(max-width:760px){.photo-detail-caption-form{max-width:none}.photo-detail-caption-field>textarea{min-height:130px}}

/* v5.41: keep homepage photo-carousel arrows above hover actions */
.photo-scroll-arrow{
  z-index:10;
  pointer-events:auto;
}

/* v5.44: organised admin page */
.admin-section-nav{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  padding-top:.8rem;
  padding-bottom:.8rem;
  border-top:1px solid var(--soft-line);
  border-bottom:1px solid var(--soft-line);
}
.admin-section-nav a{
  display:inline-flex;
  align-items:center;
  min-height:2.35rem;
  padding:.45rem .8rem;
  border:1px solid var(--soft-line);
  text-decoration:none;
  font-size:.82rem;
}
.admin-section-nav a:hover{background:var(--white)}
.admin-section{scroll-margin-top:1rem}
.admin-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(16rem,32rem);
  align-items:end;
  gap:2rem;
  padding-bottom:1rem;
  margin-bottom:1rem;
  border-bottom:1px solid var(--soft-line);
}
.admin-section-heading h2{margin:.2rem 0 0}
.admin-section-heading p{margin:0;color:var(--muted)}
.admin-section-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:start;
}
.admin-section-grid .admin-span-2{grid-column:1/-1}
.admin-section-grid .panel{height:auto}
.site-text-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.text-group{padding:0;overflow:hidden}
.text-group summary{
  cursor:pointer;
  list-style:none;
  padding:1rem 1.2rem;
  font-family:var(--serif-display);
  font-size:1.2rem;
  font-weight:700;
  user-select:none;
}
.text-group summary::-webkit-details-marker{display:none}
.text-group summary::after{content:'+';float:right;font-family:var(--sans);font-weight:400}
.text-group[open] summary::after{content:'−'}
.text-group[open] summary{border-bottom:1px solid var(--soft-line)}
.text-group .text-fields{padding:1.2rem}
.site-text-form .sticky-save{grid-column:1/-1}
@media (max-width: 900px){
  .admin-section-heading{grid-template-columns:1fr;gap:.5rem}
  .admin-section-grid,.site-text-form{grid-template-columns:1fr}
  .admin-section-grid .admin-span-2{grid-column:auto}
}

/* v5.45: albums world-map view */
.albums-intro-row{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.35rem}
.albums-intro-row .albums-intro{margin-bottom:0}
.album-view-toggle{display:flex;gap:1.15rem;align-items:center;flex:0 0 auto;padding-bottom:.25rem}
.album-view-toggle button{appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:.35rem 0;font:inherit;font-size:.82rem;cursor:pointer}
.album-view-toggle button:hover,.album-view-toggle button.active{color:var(--ink);border-bottom-color:var(--line)}
.album-map-wrap{margin:0 0 2.2rem}
.album-world-map{width:100%;height:min(68vh,720px);min-height:460px;background:#d8d6cf;border:1px solid var(--soft-line)}
.album-map-note{margin:.6rem 0 0;color:var(--muted);font-size:.72rem}
.album-map-div-icon{background:transparent!important;border:0!important}
.album-map-marker{position:relative;display:block;width:126px;height:92px;background:#111;border:2px solid rgba(255,255,255,.92);box-shadow:0 4px 18px rgba(0,0,0,.35);overflow:hidden;text-decoration:none}
.album-map-marker img{width:100%;height:100%;object-fit:cover;display:block}
.album-map-marker::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.78));pointer-events:none}
.album-map-marker span{position:absolute;left:7px;right:7px;bottom:6px;z-index:1;color:#fff;font-family:'Libre Baskerville',Georgia,serif;font-size:10px;line-height:1.15;text-shadow:0 1px 3px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--paper,#f4f1e8);color:#161817;border-radius:0}
.leaflet-popup-content{font-family:'Libre Baskerville',Georgia,serif;font-size:12px;line-height:1.45}
@media(max-width:760px){.albums-intro-row{display:block}.album-view-toggle{margin-top:1rem}.album-world-map{min-height:380px;height:58vh}.album-map-marker{width:104px;height:76px}.album-map-div-icon{width:104px!important;height:76px!important}}

/* v5.47: ensure album grid and map views are mutually exclusive */
.album-grid[hidden],
.album-map-wrap[hidden] {
  display: none !important;
}


/* v5.48: richer album details on map hover */
.album-map-tooltip.leaflet-tooltip{
  background:rgba(18,20,19,.96);
  color:var(--ink,#f4f1e8);
  border:1px solid rgba(244,241,232,.5);
  border-radius:0;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  padding:.55rem .7rem;
  font-family:'Libre Baskerville',Georgia,serif;
  pointer-events:none;
}
.album-map-tooltip.leaflet-tooltip-top:before{border-top-color:rgba(18,20,19,.96)}
.album-map-hover-card{display:grid;gap:.16rem;min-width:150px;max-width:240px}
.album-map-hover-card strong{font-size:.78rem;line-height:1.2;color:#fff}
.album-map-hover-card span{font-size:.64rem;line-height:1.3;color:rgba(244,241,232,.78)}

/* v5.49: reduced-resolution single-photo view + download sidebar */
.photo-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:1.6rem;align-items:start}
.photo-detail-layout .photo-detail-figure{min-width:0}
.photo-detail-layout .photo-detail-image-wrap{min-height:420px;display:flex;align-items:center;justify-content:center}
.photo-detail-layout .photo-detail-image-wrap img{display:block;width:100%;max-height:78vh;object-fit:contain}
.photo-download-sidebar{position:sticky;top:1.25rem;display:grid;gap:1.35rem}
.photo-detail-meta-block{border-top:1px solid var(--line);padding-top:1rem}
.photo-detail-meta-block h2{font-family:'Playfair Display',Georgia,serif;font-size:1.55rem;line-height:1.08;margin:0 0 .35rem}
.photo-detail-date{margin:0;color:var(--muted);font-size:.78rem}
.photo-detail-caption{margin:1rem 0 0;color:var(--muted);line-height:1.62;font-size:.84rem}
.photo-download-panel{border:1px solid var(--soft-line);padding:1.1rem;display:grid;gap:1rem;background:rgba(255,255,255,.012)}
.photo-download-panel h3{font-family:'Playfair Display',Georgia,serif;font-size:1.45rem;line-height:1.08;margin:.15rem 0 .25rem}
.photo-download-option{border-top:1px solid var(--soft-line);padding-top:1rem;display:grid;gap:.8rem}
.photo-download-option>div{display:grid;gap:.18rem}
.photo-download-option strong{font-family:'Playfair Display',Georgia,serif;font-size:1.03rem}
.photo-download-option span{font-size:.74rem;color:var(--muted)}
.photo-download-option small{font-size:.66rem;line-height:1.4;color:var(--muted)}
.photo-download-option .btn{width:100%;justify-content:center;text-align:center;box-sizing:border-box}
.photo-download-option .btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.photo-download-note{margin:0;border-top:1px solid var(--soft-line);padding-top:.85rem;color:var(--muted);font-size:.64rem;line-height:1.5}
.download-admin-note{display:block;margin-top:-.3rem}
@media(max-width:980px){.photo-detail-layout{grid-template-columns:1fr}.photo-download-sidebar{position:static;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);align-items:start}.photo-download-panel{grid-column:2;grid-row:1}.photo-detail-meta-block{grid-column:1;grid-row:1}}
@media(max-width:700px){.photo-download-sidebar{grid-template-columns:1fr}.photo-download-panel,.photo-detail-meta-block{grid-column:1;grid-row:auto}.photo-detail-layout .photo-detail-image-wrap{min-height:0}}

/* v5.50: PayPal verified full-resolution purchases */
.paypal-buy-form{margin:0;display:block}
.paypal-buy-form .btn{width:100%}
.paypal-sandbox-note{display:block;color:#d7a94f!important;margin-top:-.2rem}
.purchase-success{display:block;color:#86b786!important;margin-top:-.2rem}
.purchase-ready{background:#174f32!important}
.paypal-admin-status{display:flex;justify-content:space-between;gap:1rem;align-items:center;border-top:1px solid var(--soft-line);padding-top:1rem;margin-top:.4rem;font-size:.78rem}


/* v5.52: prominent admin logout */
.admin-hero-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.admin-logout-btn{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1.15rem;border:1px solid #b85f52;color:#d97b6d;font-size:.82rem;line-height:1;background:transparent;white-space:nowrap}
.admin-logout-btn:hover{background:rgba(184,95,82,.12);color:#ef9182}
@media(max-width:760px){.admin-hero-top{align-items:flex-start}.admin-logout-btn{padding:.62rem .9rem}}

.global-messages{padding:.8rem 1rem 0}.global-messages .flash{margin:0 0 .8rem}


/* v5.54 purchase/download polish */
.download-option-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.download-option-heading .download-price{font-size:.8rem;color:var(--ink);white-space:nowrap}
.purchase-verified{display:flex;justify-content:space-between;gap:1rem;align-items:center;border:1px solid rgba(134,183,134,.45);padding:.65rem .75rem;background:rgba(23,79,50,.18);font-size:.72rem}
.purchase-verified strong{font-family:inherit;font-size:.72rem;color:#9bc49b}
.purchase-verified span{color:var(--muted);white-space:nowrap}


/* v5.57: selectable photo grid size */
.gallery-size-control{display:flex;align-items:baseline;gap:.65rem;margin-right:.25rem}
.gallery-size-label{color:var(--muted);white-space:nowrap}
.gallery-size-control button{font:inherit;font-size:.78rem;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;padding:.25rem 0 .45rem;cursor:pointer}
.gallery-size-control button:hover,.gallery-size-control button.active{color:var(--ink);border-color:var(--green)}
.gallery-grid[data-grid-size="large"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-grid[data-grid-size="medium"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-grid[data-grid-size="small"]{grid-template-columns:repeat(4,minmax(0,1fr))}
.gallery-grid[data-grid-size="medium"] .gallery-info,.gallery-grid[data-grid-size="small"] .gallery-info{gap:.75rem}
.gallery-grid[data-grid-size="small"] .gallery-info{font-size:.9em}
.gallery-grid[data-grid-size="small"] .rating{display:none}
@media(max-width:1100px){
  .gallery-grid[data-grid-size="small"]{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gallery-grid[data-grid-size="medium"]{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .gallery-size-control{gap:.85rem;flex-wrap:wrap}
  .gallery-grid[data-grid-size="small"],.gallery-grid[data-grid-size="medium"],.gallery-grid[data-grid-size="large"]{grid-template-columns:1fr}
}


/* v5.58: modern Optima-inspired typography */
:root{
  --font-body:Optima,"Belleza","Segoe UI",Candara,Arial,sans-serif;
  --font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --serif-display:var(--font-display);
  --sans:var(--font-body);
}
body,button,input,textarea,select{font-family:var(--font-body)}
.brand strong,
.hero-copy h1,
.stories-section h2,
.photos-home h2,
.journey-modes h2,
.follow-section h2,
.page-hero h1,
.support-box h2,
.albums-intro h2,
.album-card-overlay strong,
.photo-detail-figure figcaption strong,
.photo-detail-admin-heading h2,
.photo-detail-meta-block h2,
.photo-download-panel h3,
.photo-download-option strong,
.text-group legend,
.text-group summary{font-family:var(--font-display)}

/* Cleaner editorial rhythm with the lighter body face. */
body{letter-spacing:.005em}
nav,.filter-tabs,.category-nav,.toolbar,.photo-tabs,.gallery-size-control,.footer-links{letter-spacing:.01em}
.eyebrow{font-family:var(--font-body);font-weight:600;letter-spacing:.34em}
.brand strong{font-weight:600;letter-spacing:-.015em}
.hero-copy h1,.stories-section h2,.photos-home h2,.page-hero h1,.albums-intro h2{font-weight:600;letter-spacing:-.04em}
.card-copy h3,.story-card h3,.gallery-info h3{font-family:var(--font-body);font-weight:400}
.btn,.subscribe-link,.admin-logout-btn{font-family:var(--font-body);letter-spacing:.015em}
.album-map-marker span,.leaflet-popup-content,.album-map-tooltip{font-family:var(--font-body)}
.photo-detail-caption,.photo-detail-date,.photo-download-option span,.photo-download-option small,.photo-download-note{font-family:var(--font-body)}


/* v5.60: clearer UI scale + YouTube header button */
.header-youtube-button{
  padding:.72rem 1.05rem;
  border:1px solid var(--green);
  background:var(--green);
  color:var(--white);
  font-size:1rem;
  line-height:1;
  gap:.65rem;
}
.header-youtube-button .youtube-icon{width:25px;height:18px;font-size:.58rem}
.header-youtube-button:hover{filter:brightness(1.06)}

/* Keep display headings unchanged; enlarge the reading/UI layer. */
body{font-size:17px}
nav{font-size:1rem}
.brand small{font-size:.8rem}
.filter-tabs{font-size:.96rem}
.category-nav a,.toolbar a{font-size:.94rem}
.media-page-order,.gallery-size-control,.story-order-tabs,.photo-order-tabs{font-size:.94rem}
.gallery-size-control button{font-size:.9rem}
.story-show-all,.show-all-link{font-size:.92rem}
.page-hero p{font-size:1.08rem}
.story-card h3,.card-copy h3,.gallery-info h3{font-size:1.08rem}
.story-description,.video-page-description{font-size:.86rem;line-height:1.5}
.video-published-below{font-size:.8rem}
.gallery-info p{font-size:.88rem;line-height:1.45}
.rating-summary{font-size:.84rem}
.album-card-overlay small,.album-card-overlay .album-card-dates{font-size:.82rem}
.album-map-note{font-size:.82rem}
.photo-detail-topbar{font-size:.92rem}
.photo-detail-figure figcaption span{font-size:.88rem}
.photo-detail-caption,.photo-detail-date,.photo-download-option span,.photo-download-option small,.photo-download-note{font-size:.9rem;line-height:1.5}
.mode-icons small{font-size:.82rem}
.footer-links{font-size:.86rem}
.footer-brand small{font-size:.76rem}
.btn{font-size:1rem}

@media(max-width:760px){
  body{font-size:16px}
  nav{font-size:.82rem}
  .header-youtube-button{padding:.58rem .72rem;font-size:.82rem}
  .header-youtube-button .youtube-icon{width:22px;height:16px}
}

/* v5.61: scalable photo gallery progressive loading */
.photo-load-more-wrap{position:relative;display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem 0 1rem;min-height:72px}
.photo-load-more-wrap[hidden]{display:none!important}
.photo-load-more{font:inherit;color:var(--ink);background:transparent;border:1px solid var(--line);padding:.75rem 1.3rem;cursor:pointer}
.photo-load-more:hover{border-color:var(--green)}
.photo-load-more:disabled{opacity:.55;cursor:wait}
.photo-load-status{font-size:.92rem;color:var(--muted)}
.photo-load-sentinel{position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none}


/* v5.66: Instagram button beside YouTube subscribe */
.header-instagram-button{
  padding:.72rem 1.05rem;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  font-size:1rem;
  line-height:1;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  white-space:nowrap;
}
.header-instagram-button .instagram-icon{
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:6px;
  background:linear-gradient(135deg,#feda75 0%,#fa7e1e 25%,#d62976 50%,#962fbf 75%,#4f5bd5 100%);
  color:#fff;
}
.header-instagram-button:hover{border-color:var(--green);color:var(--white)}

@media(max-width:760px){
  .header-instagram-button{padding:.58rem .72rem;font-size:.82rem}
  .header-instagram-button .instagram-icon{width:20px;height:20px}
}


/* v5.68: match lower Instagram CTA to the header Instagram button */
.follow-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.9rem;
  flex-wrap:wrap;
}
.follow-instagram-button{
  min-height:58px;
  padding:.9rem 1.2rem;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1;
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  white-space:nowrap;
}
.follow-instagram-button .instagram-icon{
  display:inline-grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:8px;
  background:linear-gradient(135deg,#feda75 0%,#fa7e1e 25%,#d62976 50%,#962fbf 75%,#4f5bd5 100%);
  color:#fff;
}
.follow-instagram-button:hover{
  border-color:var(--green);
  color:var(--white);
}
@media(max-width:760px){
  .follow-actions{justify-content:flex-start;width:100%}
  .follow-instagram-button{min-height:52px;padding:.75rem 1rem;font-size:.92rem}
}

/* v5.71: mobile-first responsive polish */
.mobile-nav-toggle{display:none}

@media(max-width:760px){
  html{-webkit-text-size-adjust:100%}
  body{overflow-x:hidden}
  .site-shell{width:100%;padding:0 16px}

  /* Compact mobile header with an accessible menu. */
  .site-header{position:relative;height:68px;padding:0;align-items:center;gap:1rem}
  .brand{min-width:0;position:relative;z-index:22}
  .brand strong{font-size:1.42rem;white-space:nowrap}
  .brand small{display:block;font-size:.7rem;margin-top:.22rem}
  .mobile-nav-toggle{display:grid;position:relative;z-index:22;margin-left:auto;width:42px;height:42px;padding:10px;border:1px solid var(--line);background:transparent;color:var(--ink);place-content:center;gap:5px;cursor:pointer}
  .mobile-nav-toggle span{display:block;width:20px;height:1px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
  .mobile-nav-open .mobile-nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .mobile-nav-open .mobile-nav-toggle span:nth-child(2){opacity:0}
  .mobile-nav-open .mobile-nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .site-header nav{display:none;position:absolute;z-index:20;top:67px;left:-16px;right:-16px;padding:18px 16px 20px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 12px 26px rgba(0,0,0,.12);grid-template-columns:1fr 1fr;gap:10px;font-size:1rem}
  .mobile-nav-open .site-header nav{display:grid}
  .site-header nav>a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:.72rem .8rem;border:1px solid var(--soft-line)}
  .site-header .header-youtube-button,.site-header .header-instagram-button{font-size:.92rem;padding:.72rem .8rem}

  /* Home hero: prioritize imagery and avoid horizontal overflow. */
  .editorial-hero{grid-template-columns:1fr;gap:.8rem;min-height:0;padding:.5rem 0 1.25rem}
  .hero-copy{padding:1.6rem 0 .4rem}
  .hero-copy h1{font-size:clamp(3rem,15vw,4.25rem);line-height:.88;margin:.45rem 0 1rem}
  .hero-copy p{font-size:1.05rem;line-height:1.5;margin-bottom:1.1rem}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:.65rem}
  .hero-actions .btn{width:100%;min-width:0;padding:.82rem .65rem;font-size:.9rem}
  .hero-visual{padding:0;min-height:0}
  .hero-main-image{height:auto;aspect-ratio:4/3;max-height:none;object-fit:cover}
  .journey-card{left:10px;bottom:10px;width:min(48%,220px);padding:.45rem .45rem .7rem;transform:rotate(-2deg)}
  .journey-card em{font-size:.75rem;margin:.4rem .2rem 0;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .journey-card .play-button{width:38px;height:38px}

  /* Section headings and horizontal control strips. */
  .home-section{padding:1rem 0 1.35rem}
  .story-heading-row,.photo-heading-row,.section-topline{display:block;margin-bottom:.85rem}
  .stories-section h2,.photos-home h2{font-size:clamp(2.55rem,12vw,3.65rem);margin-top:.25rem}
  .story-controls,.photo-controls{margin-top:.8rem;width:100%}
  .story-category-tabs,.photo-tabs,.media-page-tags,.media-page-order,.gallery-size-control,.media-bottom-controls{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:.35rem}
  .story-category-tabs::-webkit-scrollbar,.photo-tabs::-webkit-scrollbar,.media-page-tags::-webkit-scrollbar,.media-page-order::-webkit-scrollbar,.gallery-size-control::-webkit-scrollbar,.media-bottom-controls::-webkit-scrollbar{display:none}
  .story-category-tabs>*,.photo-tabs>*,.media-page-tags>*,.media-page-order>*,.gallery-size-control>*,.media-bottom-controls>*{flex:0 0 auto}
  .media-bottom-controls{justify-content:flex-start}
  .story-scroller .story-card{flex-basis:86vw}
  .home-photo-card{flex-basis:86vw}
  .home-photo-card img{height:auto;aspect-ratio:4/3}

  /* Internal page heroes consume less of a phone screen. */
  .page-hero{padding:2rem 0 1.35rem}
  .page-hero h1{font-size:clamp(2.8rem,14vw,4rem);line-height:.9;margin:.35rem 0 .7rem}
  .page-hero p{font-size:1rem;line-height:1.55}
  .section{padding:1.25rem 0 2.5rem}

  /* Album/map controls remain usable with one thumb. */
  .albums-intro-row{gap:.8rem}
  .album-view-toggle{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:.85rem}
  .album-view-toggle button{min-height:44px}
  .album-world-map{height:50vh;min-height:320px;max-height:520px}
  .album-map-marker{width:88px;height:64px}
  .album-map-div-icon{width:88px!important;height:64px!important}
  .album-map-marker span{font-size:9px;left:5px;right:5px;bottom:4px}
  .leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:38px!important}

  /* Photo filters: two independent horizontal rows rather than a dense wrap. */
  .media-page-controls{display:grid;grid-template-columns:1fr;gap:.65rem;margin-bottom:1rem}
  .media-page-controls .category-nav,.media-page-controls .media-page-order{width:100%;margin:0;justify-content:flex-start}
  .media-count{order:-1}
  .gallery-size-label{position:sticky;left:0;background:var(--paper);padding-right:.35rem;z-index:1}

  /* Small grid actually means small on phones. */
  .gallery-grid[data-grid-size="small"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  .gallery-grid[data-grid-size="medium"],.gallery-grid[data-grid-size="large"]{grid-template-columns:1fr;gap:.8rem}
  .gallery-grid[data-grid-size="small"] .gallery-info{padding:.45rem .05rem .7rem}
  .gallery-grid[data-grid-size="small"] .gallery-info h3{font-size:.86rem}
  .gallery-grid[data-grid-size="small"] .gallery-info p{font-size:.76rem}
  .gallery-grid[data-grid-size="small"] .gallery-card>img{aspect-ratio:1/1;object-fit:cover}

  /* Detail view: comfortable image navigation and checkout controls. */
  .photo-detail-page{padding-left:0;padding-right:0}
  .photo-detail-topbar{gap:.8rem}
  .photo-detail-topbar-actions{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.25rem;scrollbar-width:none}
  .photo-detail-topbar-actions::-webkit-scrollbar{display:none}
  .photo-detail-topbar-actions>*{flex:0 0 auto}
  .photo-detail-image-wrap img,.photo-detail-figure img{max-height:none;width:100%;height:auto}
  .photo-detail-arrow{width:46px;height:46px;background:rgba(10,14,12,.72);color:#fff;border-color:rgba(255,255,255,.45)}
  .photo-download-panel{padding:1rem}
  .photo-download-option .btn{width:100%}

  /* Follow area and footer stack cleanly. */
  .follow-section{display:block;padding:1.1rem 0 1.3rem}
  .follow-section h2{font-size:2.3rem;margin-bottom:1rem}
  .follow-actions{display:grid;grid-template-columns:1fr;width:100%;gap:.65rem}
  .follow-actions .youtube-button,.follow-instagram-button{width:100%;justify-content:center;min-height:52px}
  .site-footer{padding:1.25rem 0 2rem;gap:1rem}
  .footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;width:100%;justify-content:start}
  .footer-links a{min-height:36px;display:flex;align-items:center}

  /* Forms/admin: eliminate cramped multi-column layouts. */
  .product-grid,.gear-grid,.admin-grid{grid-template-columns:1fr}
  .panel,.support-box{padding:1rem}
  input,select,textarea,button{font-size:16px} /* prevent iOS zoom on focus */
  .sticky-save{bottom:.6rem}
}

@media(max-width:420px){
  .site-shell{padding:0 12px}
  .site-header nav{left:-12px;right:-12px;padding-left:12px;padding-right:12px}
  .brand strong{font-size:1.28rem}
  .brand small{font-size:.64rem}
  .hero-copy h1{font-size:2.85rem}
  .hero-actions{grid-template-columns:1fr}
  .journey-card{width:52%}
  .gallery-grid[data-grid-size="small"]{gap:.42rem}
}

/* v5.72: layered desktop hero photos with staggered rotation. */
.hero-photo-stack{position:relative;height:100%;min-height:600px;overflow:visible}
.hero-photo-layer{position:absolute;display:block;object-fit:cover;background:#d8d4c8;box-shadow:0 16px 34px rgba(0,0,0,.14)}
.hero-photo-primary{inset:.8rem 0 0 0;width:100%;height:calc(100% - .8rem);max-height:600px;z-index:1;box-shadow:none}
.hero-photo-secondary{left:-3.5%;bottom:4%;width:31%;height:35%;min-height:170px;z-index:4;transform:rotate(-3.2deg);border:8px solid var(--paper)}
.hero-photo-tertiary{right:-2.5%;top:5%;width:27%;height:31%;min-height:155px;z-index:3;transform:rotate(2.4deg);border:8px solid var(--paper)}
.hero-photo-stack .hero-photo-meta{z-index:5}
.hero-visual .journey-card{z-index:6}

@media(max-width:1100px) and (min-width:761px){
  .hero-photo-stack{min-height:540px}
  .hero-photo-secondary{width:29%;height:31%;min-height:145px}
  .hero-photo-tertiary{width:25%;height:28%;min-height:135px}
}

@media(max-width:760px){
  .hero-photo-stack{min-height:0;height:auto;overflow:hidden}
  .hero-photo-primary{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:4/3;max-height:none;box-shadow:none}
  .hero-photo-secondary,.hero-photo-tertiary{display:none}
}

/* v5.73: balanced desktop hero collage.
   Main image anchors the composition; three photos occupy three corners,
   while the video card owns the remaining bottom-left corner. */
@media (min-width: 761px){
  .hero-photo-stack{position:relative;height:100%;min-height:600px;overflow:visible}
  .hero-photo-primary{
    inset:.8rem 0 0 0;
    width:100%;
    height:calc(100% - .8rem);
    max-height:600px;
    z-index:1;
    box-shadow:none;
  }
  .hero-photo-secondary,
  .hero-photo-tertiary,
  .hero-photo-quaternary{
    position:absolute;
    width:25%;
    height:27%;
    min-height:145px;
    object-fit:cover;
    border:7px solid var(--paper);
    box-shadow:0 13px 28px rgba(0,0,0,.22);
    z-index:4;
  }
  .hero-photo-secondary{left:-2.5%;top:4%;transform:rotate(-2.2deg)}
  .hero-photo-tertiary{right:-2.4%;top:4%;transform:rotate(2.1deg)}
  .hero-photo-quaternary{right:-2.2%;bottom:3%;transform:rotate(-1.8deg)}

  .hero-visual .journey-card{
    left:-3.5%;
    bottom:3%;
    width:31%;
    transform:rotate(-2.6deg);
    z-index:6;
  }

  /* Keep main-photo metadata clear of the lower corner cards. */
  .hero-photo-stack .hero-photo-meta{
    left:50%;
    bottom:1rem;
    transform:translateX(-50%);
    max-width:42%;
    text-align:center;
    align-items:center;
    z-index:5;
  }
}

@media (min-width: 761px) and (max-width: 1180px){
  .hero-photo-secondary,.hero-photo-tertiary,.hero-photo-quaternary{
    width:24%;
    height:24%;
    min-height:125px;
    border-width:6px;
  }
  .hero-visual .journey-card{width:30%;left:-2%;bottom:2%}
}

@media (max-width: 760px){
  .hero-photo-quaternary{display:none}
  .hero-photo-stack .hero-photo-meta{
    left:.6rem;
    bottom:.6rem;
    transform:none;
    max-width:80%;
    text-align:left;
    align-items:flex-start;
  }
}
