.page-hero {
  position: relative;
  min-height: 460px;
  display: grid;
  align-items: end;
  overflow: hidden;
  color: var(--color-white);
}
.page-hero__image,.page-hero__shade { position:absolute; inset:0; width:100%; height:100%; }
.page-hero__image { object-fit:cover; }
.page-hero__shade { background:linear-gradient(90deg,rgba(12,29,21,.86),rgba(12,29,21,.18)); }
.page-hero__inner { position:relative; z-index:1; padding-block:7rem 3.5rem; }
.page-hero h1 { max-width:12ch; font-size:var(--step-4); }
.page-hero__lead { max-width:58ch; margin:1rem 0 0; font-size:var(--step-1); }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.5rem; font-size:.75rem; color:rgba(255,253,248,.72); }
.breadcrumbs a { text-decoration:underline; text-underline-offset:3px; }
.content-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr); gap:clamp(2rem,7vw,6rem); }
.prose { font-family:var(--font-display); font-size:1.15rem; line-height:1.75; }
/* The global anchor reset strips decoration, so prose links need their own affordance. */
.prose a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; font-weight:500; }
.prose a:hover, .prose a:focus-visible { text-decoration-thickness:2px; }
.prose h2 { margin:2.5rem 0 1rem; font-size:var(--step-3); }
.prose figure { margin:2.5rem 0; }
.prose figure img { width:100%; max-height:540px; object-fit:cover; }
.prose figcaption { margin-top:.5rem; color:var(--color-ink-soft); font: .72rem var(--font-body); }
.side-panel { align-self:start; padding:1.5rem; border-top:3px solid var(--color-mustard); background:var(--color-white); }
.side-panel h2 { margin-bottom:1rem; font-size:var(--step-2); }
.fact-list,.plain-list { padding:0; margin:0; list-style:none; }
.fact-list li { display:flex; padding:.65rem 0; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--color-line); font-size:.8rem; }
.destination-chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.destination-chip,.visibility-badge,.content-label { display:inline-flex; padding:.35rem .65rem; align-items:center; border:1px solid currentColor; border-radius:999px; font-size:.7rem; font-weight:600; }
.destination-chip { color:var(--color-forest); background:rgba(29,91,67,.06); }
.visibility-badge--public { color:var(--color-forest); }
.visibility-badge--tribe { color:var(--color-coral); }
.content-label { border:0; border-radius:2px; background:var(--color-mustard); color:var(--color-ink); text-transform:uppercase; letter-spacing:.08em; }
.domain-section { padding-block:var(--space-7); }
.domain-section--tint { background:#dce8e2; }
.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.content-card { border-bottom:1px solid var(--color-line); background:var(--color-white); }
.content-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.content-card__body { padding:1.25rem; }
.content-card h3 { margin:.75rem 0 .5rem; }
.content-card p { color:var(--color-ink-soft); font-size:.85rem; }
.profile-head { display:grid; padding-block:var(--space-7); grid-template-columns:160px minmax(0,1fr) auto; gap:2rem; align-items:center; }
.profile-avatar { display:grid; width:150px; aspect-ratio:1; place-items:center; border-radius:50%; background:var(--color-coral); color:white; font:650 4rem var(--font-display); }
.profile-head h1 { font-size:var(--step-4); }
.profile-stats { display:flex; gap:2rem; margin-top:1.25rem; }
.profile-stats strong { display:block; font:650 var(--step-2) var(--font-display); }
.profile-stats span { color:var(--color-ink-soft); font-size:.72rem; }
.follow-panel { min-width:210px; text-align:center; }
.follow-panel p { margin:.65rem 0 0; color:var(--color-ink-soft); font-size:.72rem; }
.trip-progress-copy { margin:0 0 .65rem; color:var(--color-ink-soft); font-size:.8rem; }
.profile-trip-card { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr); background:var(--color-white); }
.profile-trip-card img { width:100%; height:100%; min-height:320px; object-fit:cover; }
.profile-trip-card>div { display:grid; padding:clamp(1.5rem,4vw,3rem); align-content:center; justify-items:start; }
.profile-trip-card h3 { margin:1rem 0 .75rem; font-size:var(--step-3); }
.profile-trip-card .underlined-link { margin-top:1rem; }
.trip-preview { display:grid; grid-template-columns:minmax(300px,.65fr) minmax(0,1.35fr); background:var(--color-white); }
.trip-latest { padding:2rem; }
.trip-latest ol { position:relative; padding:0; margin:1.5rem 0 0; list-style:none; }
.trip-latest ol::before { position:absolute; top:1rem; bottom:1rem; left:7px; width:1px; background:var(--color-line); content:""; }
.trip-latest li { position:relative; display:grid; padding:0 0 1.75rem 2.25rem; grid-template-columns:70px 1fr; gap:1rem; }
.trip-latest li::before { position:absolute; z-index:1; top:.35rem; left:0; width:15px; aspect-ratio:1; border:3px solid var(--color-white); border-radius:50%; background:var(--color-paper-deep); box-shadow:0 0 0 1px var(--color-line); content:""; }
.trip-latest li.is-complete::before { background:var(--color-forest); }
.trip-latest li.is-current::before { background:var(--color-coral); box-shadow:0 0 0 5px rgba(220,104,77,.18); }
.trip-latest time,.trip-latest span { color:var(--color-ink-soft); font-size:.72rem; }
.trip-latest strong,.trip-latest span { display:block; }
.trip-map { position:relative; min-height:460px; overflow:hidden; background:#b8d3cb; }
.trip-map::after { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:44px 44px; content:""; pointer-events:none; }
.trip-map svg { position:absolute; z-index:1; width:100%; height:100%; }
.trip-map__land { fill:#dce8e2; stroke:rgba(25,35,29,.18); stroke-width:2; }
.trip-map__route { fill:none; stroke:var(--color-coral); stroke-dasharray:8 7; stroke-linecap:round; stroke-width:5; }
.trip-map__stop { fill:var(--color-forest); stroke:var(--color-white); stroke-width:4; }
.trip-map__stop.is-current { fill:var(--color-coral); }
.trip-map__label { position:absolute; z-index:2; top:var(--y); left:var(--x); padding:.3rem .5rem; background:var(--color-white); font-size:.68rem; font-weight:600; transform:translate(12px,-50%); }
.trip-map__label.is-current { background:var(--color-coral); color:var(--color-white); }
.trip-map small { position:absolute; z-index:2; right:1rem; bottom:1rem; left:1rem; padding:.6rem .75rem; background:rgba(255,253,248,.9); color:var(--color-ink-soft); font-size:.68rem; }
.trip-summary { display:grid; margin-bottom:2rem; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--color-line); }
.trip-summary article { padding:1.25rem; background:var(--color-white); text-align:center; }
.trip-summary strong,.trip-summary span { display:block; }
.trip-summary strong { font:500 var(--step-2) var(--font-display); }
.trip-summary span { color:var(--color-ink-soft); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }
.trip-detail-hero { min-height:620px; overflow:visible; }
.trip-detail-hero .page-hero__inner { padding-bottom:7rem; }
.trip-detail-hero h1 { margin-top:1.5rem; }
.trip-hero-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; color:rgba(255,255,255,.74); font-size:.78rem; }
.trip-hero-meta>span+span::before { margin-right:.7rem; color:rgba(255,255,255,.4); content:"·"; }
.trip-hero-meta__status { display:inline-flex; padding:.3rem .55rem; align-items:center; gap:.45rem; border:1px solid rgba(123,224,169,.5); border-radius:999px; color:#b5f1ce; font-weight:600; }
.trip-hero-meta__status i { width:7px; aspect-ratio:1; border-radius:50%; background:#7be0a9; }
.trip-hero-meta__dates { font-size:1rem; font-weight:500; }
.trip-hero-author { display:flex; align-items:center; gap:.85rem; }
.trip-hero-author__avatar { display:grid; width:58px; aspect-ratio:1; place-items:center; border:2px solid rgba(255,255,255,.8); border-radius:50%; background:var(--color-coral); font:600 var(--step-2) var(--font-display); }
.trip-hero-author>div { display:grid; justify-items:start; }
.trip-hero-author strong,.trip-hero-author small { display:block; }
.trip-hero-author strong { margin-top:.35rem; font-family:var(--font-display); font-size:1.05rem; }
.trip-hero-author small { color:rgba(255,255,255,.72); font-size:.7rem; }
.trip-summary--hero { position:absolute; z-index:5; right:0; bottom:0; left:0; margin-bottom:0; transform:translateY(50%); box-shadow:0 14px 32px rgba(17,55,40,.18); }
.trip-summary--hero article { padding-block:1.6rem; color:var(--color-ink); }
.trip-route-section { padding-top:calc(var(--space-7) + 3rem); background:#dce8e2; }
.trip-latest-update { padding-block:5rem 3rem; background:var(--color-ink); color:var(--color-white); }
.trip-latest-update__inner { display:grid; align-items:center; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:4rem; }
.trip-latest-update blockquote { max-width:30ch; margin:0; font:500 var(--step-2) var(--font-display); line-height:1.35; }
.trip-latest-update__meta { display:flex; margin-top:1.25rem; align-items:center; flex-wrap:wrap; gap:.75rem; color:rgba(255,255,255,.62); font-size:.7rem; }
.trip-latest-update__actions { display:grid; justify-items:start; gap:.65rem; }
.trip-latest-update__actions small { color:rgba(255,255,255,.62); }
.trip-route-explorer { display:grid; grid-template-columns:1fr 2fr; aspect-ratio:3/2; overflow:hidden; border:1px solid var(--color-line); background:var(--color-white); }
.trip-route-sidebar { display:flex; min-height:0; flex-direction:column; border-right:1px solid var(--color-line); }
.trip-route-sidebar__head { display:flex; padding:1rem 1.25rem; align-items:center; justify-content:space-between; border-bottom:1px solid var(--color-line); background:var(--color-ink); color:var(--color-white); }
.trip-route-sidebar__head span { color:rgba(255,255,255,.65); font-size:.7rem; }
.trip-route-sidebar ol { padding:0; margin:0; min-height:0; flex:1; overflow-y:auto; overscroll-behavior:contain; list-style:none; scrollbar-color:var(--color-forest) var(--color-paper-deep); }
.trip-stop { position:relative; display:grid; min-height:112px; padding:1rem 1.25rem; align-items:center; grid-template-columns:minmax(0,1fr) auto; gap:1rem; border-bottom:1px solid var(--color-line); cursor:pointer; transition:background var(--transition); }
.trip-stop:hover,.trip-stop:focus-visible { background:var(--color-paper); outline-offset:-3px; }
.trip-stop::after { position:absolute; top:2rem; bottom:-1.3rem; left:1.59rem; width:1px; background:var(--color-line); content:""; }
.trip-stop:last-child::after { display:none; }
.trip-stop.is-current { background:rgba(220,104,77,.12); box-shadow:inset 4px 0 0 var(--color-coral); }
.trip-stop__top { display:flex; align-items:center; justify-content:flex-start; gap:.65rem; }
.trip-stop__marker { position:relative; z-index:1; width:12px; flex:0 0 12px; aspect-ratio:1; border:3px solid var(--color-white); border-radius:50%; background:var(--color-paper-deep); box-shadow:0 0 0 1px var(--color-line); }
.trip-stop.is-complete .trip-stop__marker { background:var(--color-forest); }
.trip-stop.is-current .trip-stop__marker { background:var(--color-coral); box-shadow:0 0 0 5px rgba(220,104,77,.18); }
.trip-stop time,.trip-stop small,.trip-stop__start { color:var(--color-ink-soft); font-size:.68rem; }
.trip-stop time { line-height:1; }
.trip-stop__day { padding-left:.55rem; border-left:1px solid var(--color-line); color:var(--color-ink-soft); font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.trip-stop b { padding:.15rem .4rem; border-radius:999px; background:rgba(220,104,77,.12); color:var(--color-coral); font-size:.58rem; text-transform:uppercase; letter-spacing:.08em; }
.trip-stop.is-planned b { background:var(--color-paper-deep); color:var(--color-ink-soft); }
.trip-stop__content>strong,.trip-stop__content>small { display:block; margin-left:calc(12px + .65rem); }
.trip-stop__content>strong { margin:.15rem 0 .15rem calc(12px + .65rem); font-family:var(--font-display); font-size:1.05rem; }
.trip-stop__modes { display:flex; max-width:72px; justify-content:flex-end; flex-wrap:wrap; gap:.35rem; }
.trip-stop__modes>span { display:grid; width:32px; aspect-ratio:1; place-items:center; border:1px solid var(--color-line); border-radius:50%; background:var(--color-white); }
.trip-stop__modes svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.trip-stop__start { justify-self:end; }
[data-mode="plane"] { color:var(--color-blue); }
[data-mode="boat"] { color:#397f9b; }
[data-mode="walking"] { color:#8a650d; }
[data-mode="car"] { color:var(--color-coral); }
[data-mode="train"] { color:var(--color-brown); }
.trip-osm-wrap { position:relative; min-width:0; }
.trip-osm { width:100%; height:100%; background:#b8d3cb; }
.trip-map-status { position:absolute; z-index:500; right:1rem; bottom:1rem; left:1rem; display:flex; padding:.7rem .8rem; align-items:center; flex-wrap:wrap; gap:1rem; background:rgba(255,253,248,.94); box-shadow:0 6px 20px rgba(17,55,40,.18); font-size:.68rem; }
.trip-map-status span { display:flex; align-items:center; gap:.35rem; }
.trip-map-status i { width:9px; aspect-ratio:1; border-radius:50%; background:var(--color-paper-deep); }
.trip-map-status i.is-complete { background:var(--color-forest); }
.trip-map-status i.is-current { background:var(--color-coral); }
.trip-map-status button { margin-left:auto; padding:.35rem .55rem; border:1px solid var(--color-line); background:var(--color-white); font-size:.68rem; font-weight:600; }
.trip-leaflet-marker { display:grid; width:36px; height:36px; place-items:center; border:3px solid var(--color-white); border-radius:50%; background:var(--color-paper-deep); color:var(--color-ink); font-size:.68rem; font-weight:700; box-shadow:0 3px 12px rgba(17,55,40,.3); }
.trip-leaflet-marker.is-complete { background:var(--color-forest); color:var(--color-white); }
.trip-leaflet-marker.is-current { width:44px; height:44px; background:var(--color-coral); color:var(--color-white); box-shadow:0 0 0 7px rgba(220,104,77,.2),0 3px 12px rgba(17,55,40,.3); }
.trip-leaflet-marker.is-current i { width:10px; aspect-ratio:1; border:2px solid var(--color-white); border-radius:50%; background:transparent; }
.trip-popup-kicker,.leaflet-popup-content strong,.leaflet-popup-content small { display:block; }
.trip-popup-kicker { color:var(--color-coral); font-size:.65rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.leaflet-popup-content strong { margin:.2rem 0; font:500 1.1rem var(--font-display); }
.leaflet-popup-content small { color:var(--color-ink-soft); }
.trip-map-fallback { display:grid; height:100%; padding:2rem; place-content:center; text-align:center; }
.trip-content-tabs { display:flex; margin-bottom:1rem; overflow-x:auto; border-bottom:1px solid var(--color-line); }
.trip-content-tabs button { display:flex; padding:.8rem 1rem; align-items:center; gap:.5rem; border:0; border-bottom:3px solid transparent; background:transparent; white-space:nowrap; font-weight:600; }
.trip-content-tabs button.is-active { border-color:var(--color-coral); color:var(--color-coral); }
.trip-content-tabs span { display:grid; min-width:24px; height:24px; padding-inline:.35rem; place-items:center; border-radius:999px; background:var(--color-paper-deep); color:var(--color-ink-soft); font-size:.62rem; }
.trip-content-result { margin-bottom:1.5rem; color:var(--color-ink-soft); font-size:.75rem; }
.trip-content-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.trip-content-grid .video-shell { min-height:0; aspect-ratio:4/3; }
.trip-content-more { margin-top:2rem; }
.trip-about { background:var(--color-paper); }
.trip-about__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.7fr); gap:clamp(2rem,8vw,7rem); }
.trip-about__grid>div>p { max-width:52ch; margin:1.5rem 0; font-size:var(--step-1); }
.trip-tribe-card { padding:2rem; background:var(--color-ink); color:var(--color-white); }
.trip-tribe-card h3 { margin:2rem 0 .75rem; font-size:var(--step-3); }
.trip-tribe-card>p { color:rgba(255,255,255,.7); }
.trip-tribe-card>small { display:block; margin-top:.75rem; color:rgba(255,255,255,.55); }
.traveler-content-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.traveler-content-grid .video-shell { min-height:0; aspect-ratio:4/3; }
.tribe-explainer { background:var(--color-ink); color:var(--color-white); }
.tribe-explainer .section-heading>p { color:rgba(255,255,255,.68); }
.tribe-content-types { display:grid; margin-bottom:2rem; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--color-line-light); }
.tribe-content-types article { display:grid; min-height:120px; padding:1.25rem; align-content:space-between; background:#223029; }
.tribe-content-types span { color:var(--color-coral); font:500 var(--step-2) var(--font-display); }
.tribe-explainer .locked-content { color:var(--color-white); }
.locked-content { padding:2rem; border:1px dashed var(--color-coral); background:rgba(220,104,77,.07); text-align:center; }
.locked-content.is-unlocked { border-style:solid; border-color:var(--color-forest); background:rgba(29,91,67,.08); }
.timeline { position:relative; padding-left:2rem; }
.timeline::before { position:absolute; top:.5rem; bottom:.5rem; left:7px; width:1px; background:var(--color-forest); content:""; }
.timeline-item { position:relative; padding:0 0 2rem 1.5rem; }
.timeline-item::before { position:absolute; top:.4rem; left:-2rem; width:15px; aspect-ratio:1; border:3px solid var(--color-paper); border-radius:50%; background:var(--color-coral); content:""; }
.timeline-item time { color:var(--color-ink-soft); font-size:.72rem; }
.timeline-item h3 { margin:.2rem 0 .5rem; }
.media-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:.75rem; }
.media-grid img { width:100%; height:240px; object-fit:cover; }
.media-grid img:first-child { height:100%; grid-row:span 2; }
.video-shell { display:grid; min-height:260px; padding:2rem; place-items:center; background:var(--color-ink); color:white; text-align:center; }
.video-shell__play { display:grid; width:58px; margin:auto auto 1rem; aspect-ratio:1; place-items:center; border:1px solid white; border-radius:50%; }
.article-byline { display:flex; margin:1.5rem 0 2.5rem; align-items:center; gap:.75rem; color:var(--color-ink-soft); font-size:.8rem; }
.article-byline .story-author__avatar { color:white; text-align:center; line-height:38px; }
.demo-note { padding:.75rem 1rem; border-left:3px solid var(--color-mustard); background:rgba(242,201,76,.14); font-size:.78rem; }
.place-browser { display:grid; grid-template-columns:260px 1fr; gap:2rem; }
.place-tree { padding:0; margin:0; list-style:none; border-top:1px solid var(--color-line); }
.place-tree li { padding:.75rem 0; border-bottom:1px solid var(--color-line); }
.place-tree li ul { padding-left:1.25rem; list-style:none; }
.place-type { color:var(--color-ink-soft); font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; }
.country-map { position:relative; z-index:0; min-height:480px; border:1px solid var(--color-line); background:#cbded8; isolation:isolate; }
.country-map .map-marker { display:grid; width:34px; height:34px; place-items:center; border:3px solid white; border-radius:50%; background:var(--color-coral); color:white; font-size:.6rem; font-weight:600; box-shadow:0 3px 12px rgba(17,55,40,.3); }
.country-map .map-marker.is-featured { width:42px; height:42px; background:var(--color-mustard); color:var(--color-ink); }
@media(max-width:850px){.content-grid,.profile-head,.trip-preview,.profile-trip-card,.trip-latest-update__inner,.trip-about__grid{grid-template-columns:1fr}.follow-panel{text-align:left}.card-grid,.traveler-content-grid,.trip-content-grid{grid-template-columns:1fr 1fr}.media-grid{grid-template-columns:1fr 1fr}.media-grid img:first-child{grid-column:span 2;height:360px}.profile-avatar{width:110px}.place-browser{grid-template-columns:1fr}.tribe-content-types{grid-template-columns:repeat(3,1fr)}.trip-summary{grid-template-columns:repeat(3,1fr)}.trip-route-explorer{grid-template-columns:1fr;aspect-ratio:auto}.trip-route-sidebar{height:560px;border-right:0;border-bottom:1px solid var(--color-line)}.trip-osm,.trip-map-fallback{height:560px}.trip-latest-update__inner{gap:2rem}}
@media(max-width:600px){.card-grid,.traveler-content-grid,.trip-content-grid{grid-template-columns:1fr}.media-grid{grid-template-columns:1fr}.media-grid img,.media-grid img:first-child{grid-column:auto;height:240px}.profile-stats{flex-wrap:wrap}.page-hero{min-height:520px}.trip-detail-hero{min-height:720px}.trip-detail-hero .page-hero__inner{padding-bottom:10rem}.trip-hero-meta{align-items:flex-start;flex-direction:column}.trip-hero-meta>span+span::before{display:none}.trip-latest li{grid-template-columns:1fr}.trip-map{min-height:380px}.trip-map__label{font-size:.58rem}.tribe-content-types,.trip-summary{grid-template-columns:1fr 1fr}.trip-summary--hero article{padding:.85rem}.trip-route-section{padding-top:calc(var(--space-7) + 5rem)}.trip-route-sidebar{height:520px}.trip-stop{min-height:104px}.trip-osm,.trip-map-fallback{height:480px}.trip-map-status{gap:.5rem}.trip-map-status button{width:100%;margin-left:0}.trip-latest-update{padding-top:4rem}}
