/* A travel journal, using the calendar, notes, routes and photo treatments from Style Lab. */
.personal-journal .departure-keepsakes { display:flex; align-items:center; gap:2.5rem; margin-top:2.5rem; }
.personal-journal .trip-calendar { max-width:290px; font-variant-numeric:tabular-nums; }
.personal-journal .trip-calendar caption { font-size:.9rem; letter-spacing:.04em; }
.personal-journal .trip-calendar caption span { display:block; font-family:var(--font-script); font-size:1.3rem; letter-spacing:0; color:var(--color-accent-ink); }
.personal-journal .trip-calendar td { height:2rem; }
.personal-journal .trip-calendar .travel-day { background:transparent; color:var(--color-accent-ink); font-weight:800; position:relative; }
.personal-journal .trip-calendar .travel-day:after { content:''; position:absolute; inset:1px 2px; border:1.5px solid currentColor; border-radius:48% 53% 45% 55%; transform:rotate(-9deg); }
.personal-journal .trip-stamp { width:130px; height:130px; flex-shrink:0; border:2px solid var(--color-accent-ink); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--color-accent-ink); transform:rotate(11deg); line-height:1.7; }
.personal-journal .trip-stamp span { font-size:.55rem; letter-spacing:.1em; }
.personal-journal .trip-stamp strong { font-size:1rem; letter-spacing:.07em; }
.personal-journal .intro-copy .annotation { margin-top:2rem; color:var(--color-accent-ink); }
.personal-journal .info-weather .statistic>span { font-size:.3em; letter-spacing:0; }
.personal-journal .arrival-weather { position:relative; z-index:3; }
.personal-journal .arrival-weather>div:nth-child(2)>span { font-size:.75rem; }
.personal-journal .arrival-weather .weather-detail { font-size:.65rem; }
.personal-journal .arrival-scrapbook { display:grid; grid-template-columns:1fr 1.1fr; gap:6rem; align-items:start; }
.personal-journal .breakfast-note { max-width:470px; margin-top:3rem; }
.personal-journal .breakfast-note>.photo { aspect-ratio:1; }
.personal-journal .breakfast-note figcaption { margin-top:1.5rem; text-align:center; }
.personal-journal .breakfast-note .annotation { color:var(--color-accent-ink); font-size:3rem; margin-bottom:1.5rem; }
.personal-journal .bailey-story .title-editorial { margin-bottom:2rem; }
.personal-journal .bailey-postcard { width:65%; margin:3rem 0 0 auto; padding:.6rem .6rem 1rem; background:var(--color-white); transform:rotate(4deg); box-shadow:0 4px 14px var(--color-line); }
.personal-journal .bailey-postcard .photo { aspect-ratio:4/3; }
.personal-journal .bailey-postcard figcaption { font-family:var(--font-script); padding-top:.7rem; font-size:1.1rem; line-height:1.25; }
.personal-journal .scene-heading { display:flex; gap:4rem; justify-content:space-between; align-items:end; }
.personal-journal .scene-heading>.prose { max-width:28rem; }
.personal-journal .scene-heading>.annotation { max-width:19rem; padding-bottom:1rem; color:var(--color-accent); }
.personal-journal .festival-chapter { margin-top:3rem; }
/* Native horizontal scrolling remains usable without JavaScript. Controls enhance it. */
.memory-slideshow { position:relative; }
.slides-viewport { display:flex; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
.slides-viewport:focus-visible { outline:3px solid var(--color-accent-ink); outline-offset:-3px; }
.memory-slide { flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
.memory-slide .slide-photo { height:min(calc(var(--journal-svh, 1svh) * 76),850px); min-height:420px; }
.memory-slide figcaption { display:flex; align-items:baseline; justify-content:space-between; gap:2rem; padding:1.2rem var(--gutter); }
.memory-slide figcaption>.meta { flex-shrink:0; font-size:.7rem; }
.memory-slide figcaption>p { color:var(--color-muted); font-size:.85rem; }
.slideshow-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-inline:var(--gutter); padding:0 0 1.25rem; border-bottom:1px solid var(--color-line); }
.slideshow-controls[hidden] { display:none; }
.slide-arrows { display:flex; align-items:center; gap:1rem; }
.slideshow-controls button { background:transparent; color:inherit; border:1px solid var(--color-line); min-height:44px; min-width:44px; padding:.5rem .85rem; transition:background 180ms,color 180ms; }
.slideshow-controls button:hover { background:var(--color-accent); color:var(--color-ink); }
.slideshow-controls button:disabled { opacity:.5; cursor:default; }
.slideshow-controls [data-slide-count] { font-size:.7rem; font-variant-numeric:tabular-nums; min-width:4rem; text-align:center; }
.slideshow-controls [data-slide-play] { font-size:.75rem; border:0; text-decoration:underline; text-underline-offset:4px; }
.memory-slide .slide-photo>img { transition:transform 1200ms var(--ease-soft); }
.memory-slideshow.is-playing .memory-slide.is-current .slide-photo>img { animation:memory-drift 7.4s var(--ease-soft) both; }
@keyframes memory-drift { from { transform:scale(1); } to { transform:scale(1.04); } }
.personal-journal .balloon-heading { display:grid; grid-template-columns:1fr auto; gap:4rem; align-items:end; padding-bottom:4rem; }
.personal-journal .balloon-facts { display:grid; grid-template-columns:auto auto; gap:1.5rem; align-items:end; }
.personal-journal .balloon-facts .info-itinerary>svg { margin-bottom:.5rem; }
.personal-journal .balloon-facts .info-itinerary strong { font-size:3.1rem; font-weight:300; line-height:1.3; }
.personal-journal .balloon-facts .info-weather .statistic { font-size:3.1rem; line-height:1.3; }
.personal-journal .balloon-facts .info-weather { gap:.4rem; }
.personal-journal .balloon-facts .info-weather>svg { width:1.1rem; }
.personal-journal .balloon-facts>p { grid-column:1/-1; font-size:.75rem; color:var(--color-muted); }
.personal-journal #balloon .chapter-copy .annotation { color:var(--color-accent-ink); font-size:2.8rem; max-width:20rem; }
.personal-journal .kuranda-transfers { margin:2rem 0; }
.personal-journal .kuranda-transfers>div { display:grid; grid-template-columns:1.5rem auto 1fr auto; align-items:center; gap:.7rem; margin-top:1rem; font-size:.8rem; }
.personal-journal .kuranda-transfers small { grid-column:2/-1; color:var(--color-muted); }
.personal-journal .transfer-line { color:var(--color-accent-ink); text-align:center; }
.personal-journal .cancelled-ride { text-decoration:line-through; }
.personal-journal .plan-b { grid-column:3/-1; text-align:right; font-family:var(--font-script); font-size:1.4rem; color:var(--color-accent-ink); }
.personal-journal .kuranda-scrapbook { display:grid; grid-template-columns:1.1fr .7fr 1fr; gap:2rem; align-items:center; margin-top:5rem; }
.personal-journal .kuranda-scrapbook .photo { aspect-ratio:4/5; }
.personal-journal .kuranda-scrapbook .photo-circle { aspect-ratio:1; }
.personal-journal .kuranda-scrapbook>figure:first-child { transform:rotate(-2deg); }
.personal-journal .kuranda-scrapbook>figure:last-child { margin-top:6rem; transform:rotate(2deg); }
.personal-journal .kuranda-scrapbook figcaption { font-size:.8rem; color:var(--color-muted); margin-top:1rem; }
.personal-journal .kuranda-scrapbook .annotation { color:var(--color-accent-ink); text-align:center; font-size:1.8rem; }
.personal-journal .southern-sky { height:calc(var(--journal-svh, 1svh) * 90); min-height:520px; }
.personal-journal .southern-sky .photo-caption { bottom:4rem; left:var(--gutter); }
.personal-journal .southern-sky .annotation { font-size:clamp(2rem,4vw,4rem); margin-top:1.5rem; }
.personal-journal .playful-keepsakes { grid-template-columns:1.15fr .85fr; align-items:start; gap:4rem; }
.personal-journal .playful-keepsakes>figure:first-child { margin-top:4rem; transform:rotate(-2deg); }
.personal-journal .playful-keepsakes>figure:last-child { transform:rotate(2deg); }
.personal-journal .playful-keepsakes>figure:last-child .photo { aspect-ratio:3/4; }
/* The same chronological itinerary is used in the journal and its Style Lab recipe. */
.journey-itinerary { list-style:none; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); width:100%; padding:0; margin:4rem 0 2rem; }
.journey-itinerary>li { position:relative; display:flex; flex-direction:column; gap:.5rem; padding:0 1rem 0 0; min-width:0; }
.journey-itinerary>li:after { content:''; position:absolute; left:42px; right:0; height:1px; top:20px; background:var(--color-line); }
.journey-itinerary>li:last-child:after { display:none; }
.journey-itinerary .itinerary-number { display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--color-accent); border-radius:50%; color:var(--color-accent); margin-bottom:1rem; font-size:.7rem; }
.journey-itinerary time { font-size:.65rem; letter-spacing:.08em; color:var(--color-muted); }
.journey-itinerary strong { text-transform:uppercase; font-size:.85rem; line-height:1.5; letter-spacing:.04em; }
.journey-itinerary>li>span:last-child { font-size:.75rem; color:var(--color-muted); }
.travel-icon:has(use[href="#icon-plane"]) { transform:rotate(45deg); }
.map-flight-head .travel-icon:has(use[href="#icon-plane"]) { transform:none; width:30px; height:30px; left:-15px; top:-15px; filter:drop-shadow(0 1px 3px var(--color-ink)); }
/* End-of-journal map and its always-available place index. */
.places-heading { margin-bottom:2.5rem; }
.places-heading .annotation { color:var(--color-accent-ink)!important; }
.places-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr); gap:2rem; align-items:start; }
.places-map-column { position:sticky; top:6rem; min-width:0; }
.places-map { height:560px; background:var(--color-paper); border:1px solid var(--color-line); isolation:isolate; z-index:0; }
.places-map .map-placeholder { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2rem; text-align:center; background:var(--color-ink); color:var(--color-paper); }
.map-placeholder>svg { width:100%; max-width:440px; height:230px; color:var(--color-accent); }
.map-placeholder .annotation { font-size:2.5rem; margin:1rem 0; }
.map-load-button { background:var(--color-accent); color:var(--color-ink); border:0; padding:.8rem 1.2rem; margin-top:1.5rem; min-height:44px; }
.map-placeholder small { margin-top:.75rem; color:var(--color-paper); font-size:.7rem; }
.map-view-controls { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.75rem; }
.map-view-controls button { border:1px solid var(--color-line); background:transparent; padding:.6rem .9rem; font-size:.75rem; min-height:44px; }
.map-view-controls button[aria-pressed="true"] { background:var(--color-ink); color:var(--color-paper); }
.map-status { font-size:.75rem; color:var(--color-muted); margin-top:.75rem; min-height:1.5em; }
.places-filters { border:0; padding:0; margin:0 0 1rem; display:flex; gap:.4rem; flex-wrap:wrap; }
.places-filters legend { font-size:.75rem; margin-bottom:.5rem; }
.places-filters button { background:transparent; border:1px solid var(--color-line); min-height:44px; font-size:.7rem; padding:.6rem .75rem; }
.places-filters button[aria-pressed="true"] { background:var(--color-ink); color:var(--color-paper); }
.places-list { list-style:none; padding:0; margin:0; max-height:570px; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:none; }
.places-list>li { border-top:1px solid var(--color-line); padding:1rem 0; }
.places-list>li[hidden] { display:none; }
.place-title { display:flex; gap:.7rem; align-items:baseline; }
.place-title>span { font-size:.65rem; color:var(--color-accent-ink); min-width:1.5rem; }
.place-title h3 { font-size:.9rem; line-height:1.5; }
.place-memory,.place-location { font-size:.75rem; margin:.5rem 0; color:var(--color-muted); }
.place-location { font-size:.65rem; }
.place-actions { display:flex; gap:1rem; }
.place-actions button,.place-actions a { border:0; background:transparent; padding:.35rem 0; font-size:.7rem; text-decoration:underline; text-underline-offset:3px; min-height:44px; display:inline-flex; align-items:center; }
.places-unlocated { margin-top:2rem; font-size:.8rem; color:var(--color-muted); }
.places-unlocated summary { cursor:pointer; padding:.7rem 0; }
.places-unlocated ul { padding-left:1.2rem; }
.places-unlocated li { margin:.5rem 0; }
.places-map .leaflet-container,.places-map.leaflet-container { font-family:var(--font-sans); }
.places-map .leaflet-popup-content { font-family:var(--font-sans); font-size:.8rem; line-height:1.7; }
.places-map .leaflet-popup-content strong { font-size:.9rem; }
.places-map .leaflet-popup-content small { display:block; margin-top:.5rem; }
.places-map .leaflet-container a,.places-map .leaflet-popup-content a { color:var(--color-accent-ink); text-decoration:underline; }
.places-map .leaflet-control-attribution { font-size:10px; }
.places-map .leaflet-control-attribution a { color:var(--color-accent-ink); }
.place-pin { background:transparent; border:0; }
.place-pin>span { width:34px; height:34px; display:grid; place-items:center; border:2px solid var(--color-paper); border-radius:50% 50% 50% 4px; transform:rotate(-45deg); background:var(--color-ink); color:var(--color-paper); box-shadow:0 2px 5px var(--color-line); }
.place-pin>span>b { transform:rotate(45deg); font-size:11px; font-weight:600; }
.place-pin.is-cluster>span { border-radius:50%; background:var(--color-accent-ink); }
.places-map .leaflet-marker-icon:focus-visible { outline:3px solid var(--color-accent-ink); outline-offset:4px; }
@media(max-width:1100px) {
 .personal-journal .departure-keepsakes { gap:1rem; }
 .personal-journal .trip-stamp { width:105px; height:105px; }
 .personal-journal .arrival-scrapbook { gap:3rem; }
 .personal-journal .balloon-heading { grid-template-columns:1fr; gap:2rem; }
 .personal-journal .balloon-facts { width:max-content; }
 .places-layout { grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr); }
}
@media(max-width:760px) {
 .personal-journal .departure-keepsakes { gap:1.5rem; align-items:start; }
 .personal-journal .trip-stamp { margin-top:2.5rem; width:95px; height:95px; }
 .personal-journal .trip-stamp strong { font-size:.8rem; }
 .personal-journal .trip-stamp span { font-size:.45rem; }
 .personal-journal .trip-calendar { max-width:240px; }
 .personal-journal .arrival-weather .statistic { font-size:2.4rem; }
 .personal-journal .arrival-weather>div:nth-child(2) { display:none; }
 .personal-journal .arrival-weather .weather-detail { display:none; }
 .personal-journal .arrival-weather .meta { font-size:.5rem; }
 .personal-journal .arrival-scrapbook { grid-template-columns:1fr; gap:4rem; }
 .personal-journal .breakfast-note { width:85%; margin:0 auto; }
 .personal-journal .bailey-postcard { width:70%; margin-right:1rem; }
 .personal-journal .scene-heading { display:block; }
 .personal-journal .scene-heading>.annotation { margin-top:2rem; max-width:none; font-size:2rem; }
 .personal-journal .scene-heading>.prose { margin-top:1.5rem; }
 .memory-slide .slide-photo { height:auto; min-height:0; aspect-ratio:4/3; }
 .memory-slide figcaption { display:block; min-height:100px; padding-block:1rem; }
 .memory-slide figcaption>p { margin-top:.5rem; font-size:.8rem; }
 .memory-slide figcaption>.meta { font-size:.6rem; }
 .slideshow-controls { padding-bottom:1rem; }
 .personal-journal .balloon-heading { padding-bottom:2.5rem; }
 .personal-journal .balloon-facts { width:100%; gap:1rem; }
 .personal-journal .balloon-facts .meta { font-size:.6rem; }
 .personal-journal .balloon-facts .statistic,.personal-journal .balloon-facts .info-itinerary strong { font-size:2.75rem; }
 .personal-journal .kuranda-scrapbook { grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:3rem; }
 .personal-journal .kuranda-scrapbook>figure:first-child { grid-column:1/-1; width:90%; }
 .personal-journal .kuranda-scrapbook>figure:first-child .photo { aspect-ratio:4/3; }
 .personal-journal .kuranda-scrapbook>figure:last-child { margin-top:2rem; }
 .personal-journal .kuranda-scrapbook .annotation { font-size:1.6rem; }
 .personal-journal .southern-sky { height:calc(var(--journal-svh, 1svh) * 70); min-height:440px; }
 .personal-journal .southern-sky .photo-caption { bottom:2rem; }
 .personal-journal .southern-sky .annotation { font-size:2.2rem; }
 .personal-journal .playful-keepsakes { grid-template-columns:1fr; gap:2rem; }
 .personal-journal .playful-keepsakes>figure:first-child { margin-top:0; }
 .personal-journal .playful-keepsakes>figure:last-child { width:80%; margin-left:auto; }
 .journey-itinerary { grid-template-columns:1fr; margin-top:2.5rem; }
 .journey-itinerary>li { padding:0 0 1.8rem 4rem; gap:.25rem; }
 .journey-itinerary .itinerary-number { position:absolute; left:0; top:0; }
 .journey-itinerary>li:after { left:20px; right:auto; top:42px; height:calc(100% - 42px); width:1px; }
 .journey-itinerary strong { font-size:1rem; }
 .places-layout { grid-template-columns:1fr; gap:1.5rem; }
 .places-map-column { position:relative; top:auto; }
 .places-map { height:420px; }
 .places-list { max-height:420px; }
 .places-filters button { flex:1; }
}
html.motion-off .memory-slideshow.is-playing .memory-slide.is-current .slide-photo>img { animation:none; }
html.motion-off .slides-viewport { scroll-behavior:auto; }
.motion-off .memory-slideshow .slide-photo>img { animation:none; }
.places-list>li.is-selected { border-top-color:var(--color-accent-ink); }
.place-actions button[aria-current] { font-weight:800; color:var(--color-accent-ink); }
.place-actions button[hidden],.places-filters[hidden],.map-view-controls[hidden],.map-load-button[hidden] { display:none; }
.personal-journal .intro-copy .annotation { font-size:1.8rem; line-height:1.35; }
.memory-slide .slide-photo>img[src*="balloon-basket-view"] { object-position:center top; }
.map-placeholder>svg { flex:0 0 140px; height:140px; }
.journey-itinerary[data-reveal]>li:after { transform-origin:left; transition:transform 800ms ease; }
.motion-ready .journey-itinerary[data-reveal]:not(.is-visible)>li:after { transform:scaleX(0); }
@media(max-width:760px) {
 .map-placeholder>svg { flex-basis:100px; height:100px; }
 .map-placeholder .annotation { font-size:1.8rem; margin:.5rem 0; }
 .map-placeholder>p:not(.annotation) { font-size:.8rem; }
 .map-placeholder .map-load-button { margin-top:1rem; font-size:.8rem; }
 .map-placeholder small { font-size:.6rem; }
 .journey-itinerary[data-reveal]>li:after { transform-origin:top; }
 .motion-ready .journey-itinerary[data-reveal]:not(.is-visible)>li:after { transform:scaleY(0); }
}
.motion-off .journey-itinerary[data-reveal]>li:after { transform:none!important; transition:none; }

/* Quiet controls, complete balloon compositions, and a reversible reef reveal. */
.slides-viewport::-webkit-scrollbar { display:none; }
.personal-journal #balloon .slide-photo { height:calc(var(--journal-svh, 1svh) * 78); min-height:0; aspect-ratio:auto; background:var(--color-ink); }
.personal-journal #balloon .slide-photo>img { object-fit:contain; object-position:center; animation:none; transform:none; }
.personal-journal .reef-sequence { height:calc(var(--journal-svh, 1svh) * 230); min-height:0; }
.personal-journal .reef-frame { position:sticky; top:0; height:calc(var(--journal-svh, 1svh) * 100); min-height:0; }
.personal-journal .reef-curtain .photo { transition:none; }
.food-extras { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-top:5rem; align-items:start; }
.food-extras img { width:100%; height:auto; display:block; }
.food-extras figcaption { padding-top:1rem; }
.food-extras figcaption p { margin-top:.5rem; color:var(--color-muted); font-size:.9rem; }
.food-extras figure:nth-child(2) { margin-top:4rem; }
@media(max-width:760px) {
 .personal-journal #balloon .slide-photo { height:calc(var(--journal-svh, 1svh) * 68); }
 .food-extras { grid-template-columns:1fr; gap:2.5rem; margin-top:3rem; }
 .food-extras figure:nth-child(2) { margin-top:0; }
}
/* Reduced motion: the curtain stops lifting and becomes what it always was —
   four photographs from the reef — shown as a strip under the open-water
   frame instead of being thrown away. */
html.motion-off .personal-journal .reef-sequence, html:not(.motion-ready) .personal-journal .reef-sequence { height:auto; }
html.motion-off .personal-journal .reef-frame, html:not(.motion-ready) .personal-journal .reef-frame {
  position:relative; height:auto; min-height:0; overflow:visible;
}
html.motion-off .personal-journal .reef-frame>.photo, html:not(.motion-ready) .personal-journal .reef-frame>.photo {
  height:auto; aspect-ratio:16/9; min-height:0;
}
html.motion-off .personal-journal .reef-curtain, html:not(.motion-ready) .personal-journal .reef-curtain {
  position:relative; inset:auto; margin-top:5px;
  grid-template-columns:repeat(4,1fr); pointer-events:auto;
}
html.motion-off .personal-journal .reef-curtain .photo, html:not(.motion-ready) .personal-journal .reef-curtain .photo {
  height:auto; aspect-ratio:3/4; transform:none!important;
}
@media(max-width:760px) {
  html.motion-off .personal-journal .reef-curtain, html:not(.motion-ready) .personal-journal .reef-curtain { grid-template-columns:repeat(2,1fr); gap:5px; }
}
@media(max-width:600px) {
  /* Portrait on phones, so the title, the route and the location panel all fit. */
  html.motion-off .personal-journal .reef-frame>.photo, html:not(.motion-ready) .personal-journal .reef-frame>.photo { aspect-ratio:3/4; }
}

.slide-dots { display:flex; align-items:center; }
.slideshow-controls .slide-dots button { min-width:28px; width:28px; min-height:44px; padding:0; border:0; display:grid; place-items:center; background:transparent; }
.slide-dots button::after { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.3; transition:opacity 180ms,transform 180ms; }
.slide-dots button[aria-pressed="true"]::after { opacity:1; transform:scale(1.4); }
.slideshow-controls [data-slide-count] { display:none; }
@media(max-width:480px) { .slide-arrows { gap:.15rem; } .slideshow-controls { gap:.25rem; } .slideshow-controls [data-slide-play] { padding-inline:.25rem; font-size:.7rem; } .slideshow-controls .slide-dots button { min-width:22px; width:22px; } }
/* Albums from our own camera roll. */
.album-heading { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-block:2rem; }
.album-heading .annotation { font-size:2rem; }
.hotel-album { margin-top:5rem; }
.hotel-album .info-bubble { transform:rotate(3deg); }
.hotel-album .info-bubble:after { background:var(--color-paper); }
.hotel-strips>.photo { height:32rem; }
.hotel-strips .photo-caption { left:1rem; right:1rem; bottom:1.5rem; }
.hotel-strips .meta { font-size:.65rem; }
.hotel-room-pair { display:grid; grid-template-columns:1.4fr 1fr; gap:5rem; align-items:center; margin-top:4rem; }
.hotel-room-pair .photo-circle { width:100%; aspect-ratio:1; height:auto; min-height:0; }
.hotel-room-pair .annotation { text-align:center; margin-top:1rem; font-size:1.8rem; transform:rotate(-3deg); }
.waterfront-album .title-explore { font-size:clamp(1.5rem,3vw,3rem); }
.waterfront-album .title-explore strong { font-size:clamp(2.8rem,5.2vw,6rem); }
.waterfront-album>.photo-full { height:calc(var(--journal-svh, 1svh) * 70); min-height:0; }
.waterfront-collage { margin-top:3rem; }
.waterfront-collage>.transition-shot { margin-top:0; }
.waterfront-collage>.photo-card { height:35rem; transform:rotate(2deg); }
.waterfront-route { width:min(100%,650px); margin:2rem auto 0; }
.full-composition .slide-photo { height:calc(var(--journal-svh, 1svh) * 76); min-height:0; aspect-ratio:auto; }
.full-composition .slide-photo>img { object-fit:contain; animation:none!important; }
.full-composition .memory-slide figcaption { min-height:0; }
.home-packing { margin-block:2rem; }
.home-packing .info-checklist svg { flex-shrink:0; }
.personal-journal .reef-curtain.photo-strips { gap:5px; }
@media(max-width:760px) {
 .album-heading { align-items:start; gap:1rem; flex-direction:column; }
 .hotel-strips { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
 .hotel-strips>.photo { height:19rem; }
 .hotel-strips .photo-caption { left:.4rem; right:.4rem; bottom:.8rem; }
 .hotel-strips .meta { font-size:.48rem; letter-spacing:.06em; }
 .hotel-room-pair { grid-template-columns:1fr; gap:2rem; }
 .hotel-room-pair>div:nth-child(2) { width:75%; margin:auto; }
 .waterfront-album>.photo-full { height:calc(var(--journal-svh, 1svh) * 55); }
 .waterfront-collage { grid-template-columns:1fr; gap:2rem; }
 .waterfront-collage>.photo-card { height:28rem; margin-top:0; width:90%; justify-self:center; }
 .full-composition .slide-photo { height:calc(var(--journal-svh, 1svh) * 65); }
 .personal-journal .reef-curtain.photo-strips { grid-template-columns:repeat(4,1fr); }
}
.hotel-strips>.photo { min-width:0; width:100%; aspect-ratio:auto; }
.album-heading .annotation { line-height:1.4; margin-bottom:1.25rem; }
.waterfront-album .scene-heading .annotation { font-size:2rem; line-height:1.4; margin-block:1.5rem; }
.full-composition .slide-photo { background:var(--color-ink); }
@media(max-width:760px) {
 .hotel-strips { grid-template-columns:1fr; gap:1.5rem; }
 .hotel-strips>.photo { height:auto; aspect-ratio:4/3; }
 .hotel-strips .photo-caption { left:1rem; right:1rem; bottom:1rem; }
 .hotel-strips .meta { font-size:.65rem; letter-spacing:.1em; }
}
