/* MAOS Geo Studio 2.3 — route explorer, day-by-day atlas and optional 3D terrain.
 * Three skins: "editorial" (public site, follows the HBV editorial look), "app" (Experience Studio, follows the
 * MAOS app tokens incl. dark mode), "night" (dark plate, optional). No decorative terrain: only real track data is drawn.
 */
.geo2{
  --geo2-bg:#fffefa;--geo2-panel:#f6f5f1;--geo2-mapbg:#eceee8;--geo2-ink:#0d2027;--geo2-sub:#5f6b70;--geo2-line:#d9dcd8;
  --geo2-accent:#8a6640;--geo2-on-ink:#fffefa;--geo2-route:#0d2027;--geo2-halo:#fffefa;--geo2-fill:rgba(13,32,39,.07);--geo2-fade:#b4bcb9;
  --geo2-r:0px;--geo2-r-sm:0px;--geo2-title-font:Georgia,'Times New Roman',serif;--geo2-title-weight:400;
  --geo2-d1:#1f5a6b;--geo2-d2:#a8743f;--geo2-d3:#5e7f4f;--geo2-d4:#4f7fa3;--geo2-d5:#7d6552;--geo2-d6:#a3523a;
  width:100%;min-width:0;container-type:inline-size;color:var(--geo2-ink);font-family:inherit;line-height:1.5
}
.geo2[data-geo2-skin="app"]{
  --geo2-bg:var(--paper,#fff);--geo2-panel:var(--line-2,#f0f2f5);--geo2-mapbg:var(--bg,#f4f5f7);--geo2-ink:var(--ink,#1b1f24);--geo2-sub:var(--rock,#667085);
  --geo2-line:var(--line,#e4e7ec);--geo2-accent:var(--accent-strong,#c2410c);--geo2-on-ink:var(--paper,#fff);--geo2-route:var(--ink,#1b1f24);--geo2-halo:var(--paper,#fff);
  --geo2-fill:color-mix(in srgb,var(--ink,#1b1f24) 8%,transparent);--geo2-fade:color-mix(in srgb,var(--rock,#667085) 45%,var(--paper,#fff));
  --geo2-r:16px;--geo2-r-sm:10px;--geo2-title-font:inherit;--geo2-title-weight:600
}
:root[data-theme="dark"] .geo2[data-geo2-skin="app"]{--geo2-d1:#6fb3c6;--geo2-d2:#e0a868;--geo2-d3:#97c07f;--geo2-d4:#8bb6e0;--geo2-d5:#c6a88c;--geo2-d6:#e88c70}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .geo2[data-geo2-skin="app"]{--geo2-d1:#6fb3c6;--geo2-d2:#e0a868;--geo2-d3:#97c07f;--geo2-d4:#8bb6e0;--geo2-d5:#c6a88c;--geo2-d6:#e88c70}}
.geo2[data-geo2-skin="night"]{
  --geo2-bg:#111e20;--geo2-panel:#1a2a2a;--geo2-mapbg:#162627;--geo2-ink:#f3efe7;--geo2-sub:#b3c0b8;--geo2-line:#33443f;--geo2-accent:#e4ae78;--geo2-on-ink:#111e20;
  --geo2-route:#f3efe7;--geo2-halo:#111e20;--geo2-fill:rgba(243,239,231,.08);--geo2-fade:#4c5d58;--geo2-r:18px;--geo2-r-sm:10px;--geo2-title-font:inherit;--geo2-title-weight:550;
  --geo2-d1:#7fc4d4;--geo2-d2:#e4ae78;--geo2-d3:#a5cf8c;--geo2-d4:#93bde6;--geo2-d5:#d2b597;--geo2-d6:#f19a7f
}
.geo2 *{box-sizing:border-box}
.geo2 button{font:inherit;cursor:pointer}
.geo2 [hidden]{display:none!important}
.geo2-i{width:18px;height:18px;flex:none;display:block}
.geo2-card{background:var(--geo2-bg);border:1px solid var(--geo2-line);border-radius:var(--geo2-r);overflow:hidden;overflow:clip;isolation:isolate}
.geo2 :focus-visible{outline:3px solid var(--geo2-accent);outline-offset:2px}

/* header + summary */
.geo2-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 12px}
.geo2-eyebrow{margin:0 0 8px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--geo2-accent)}
.geo2-title{margin:0;font-family:var(--geo2-title-font);font-weight:var(--geo2-title-weight);font-size:clamp(22px,3.2cqi,32px);line-height:1.12;letter-spacing:-.02em;color:var(--geo2-ink);text-wrap:balance}
.geo2-small{margin:6px 0 0;font-size:12px;color:var(--geo2-sub)}
.geo2-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 14px;border:1px solid var(--geo2-line);border-radius:var(--geo2-r-sm);background:var(--geo2-bg);color:var(--geo2-ink);font-size:12px;font-weight:600;line-height:1.2;text-align:left;transition:border-color .15s,background .15s}
.geo2-btn:hover{border-color:var(--geo2-ink)}
.geo2-btn:disabled{opacity:.5;cursor:default}
.geo2-btn-primary{background:var(--geo2-ink);border-color:var(--geo2-ink);color:var(--geo2-on-ink)}
.geo2-btn-ghost{background:transparent}
.geo2-expand{flex:none}
.geo2-summary{padding:0 24px 18px}
.geo2-summary-cap{margin:0 0 10px;font-size:12px;color:var(--geo2-sub);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;min-height:18px}
.geo2-summary-cap:empty{display:none}
.geo2-summary-cap b{color:var(--geo2-ink);font-weight:700}
.geo2-summary-cap small{flex-basis:100%;font-size:11px}
.geo2-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;background:var(--geo2-line);border:1px solid var(--geo2-line);border-radius:var(--geo2-r-sm);overflow:hidden}
.geo2-stat{background:var(--geo2-bg);padding:13px 16px;min-width:0}
.geo2-stat dt{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--geo2-sub);margin:0 0 4px}
.geo2-stat dd{margin:0;font-size:clamp(17px,2.4cqi,22px);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.geo2-has-day .geo2-stats{border-color:var(--geo2-ink)}

/* days */
.geo2-daybar{padding:0 24px 18px;display:grid;gap:12px}
.geo2-day-tabs{position:relative;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 6px;scrollbar-width:thin}
.geo2-daytab{--geo2-day:var(--geo2-ink);color:var(--geo2-ink);flex:0 0 auto;scroll-snap-align:start;display:flex;align-items:center;gap:10px;min-height:54px;min-width:150px;max-width:250px;padding:8px 12px 8px 10px;border:1px solid var(--geo2-line);border-left:4px solid var(--geo2-day);border-radius:var(--geo2-r-sm);background:var(--geo2-bg);text-align:left}
.geo2-daytab-all{border-left-width:1px;min-width:132px}
.geo2-daytab:hover{border-color:var(--geo2-ink);border-left-color:var(--geo2-day)}
.geo2-daytab.is-active{background:var(--geo2-ink);border-color:var(--geo2-ink);border-left-color:var(--geo2-day);color:var(--geo2-on-ink)}
.geo2-daytab.is-pending{border-left-style:dashed}
.geo2-day-num{font-size:11px;font-weight:800;letter-spacing:.08em;opacity:.75;font-variant-numeric:tabular-nums}
.geo2-day-main{display:grid;gap:2px;min-width:0}
.geo2-day-main b{font-size:13px;font-weight:600;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.geo2-day-main small{font-size:11px;opacity:.78;white-space:nowrap;font-variant-numeric:tabular-nums}
.geo2-day-state{margin-left:auto;width:18px}.geo2-day-state .geo2-i{width:16px;height:16px}
.geo2-day-detail:empty{display:none}
.geo2-day-story{display:flex;gap:14px;align-items:center;background:var(--geo2-panel);border-radius:var(--geo2-r-sm);overflow:hidden;min-height:64px}
.geo2-day-story img{width:132px;align-self:stretch;min-height:96px;object-fit:cover;flex:none}
.geo2-day-story>div{padding:12px 14px;min-width:0}
.geo2-day-story p{margin:0;font-size:13px;line-height:1.6;color:var(--geo2-ink);overflow-wrap:anywhere}
.geo2-day-story p+p{margin-top:6px}
.geo2-day-status{display:flex;gap:6px;align-items:center;font-size:12px!important;color:var(--geo2-sub)!important}
.geo2-day-status.is-pending{color:var(--geo2-accent)!important}

/* map + profile */
.geo2-visual{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--geo2-line)}
.geo2-map{margin:0;background:var(--geo2-mapbg);display:flex;flex-direction:column;min-width:0}
.geo2-map-area{position:relative;width:100%;max-width:min(100%,calc(var(--geo2-map-max,64vh) * var(--geo2-ar,1.6)));margin-inline:auto;touch-action:pan-y;cursor:crosshair;user-select:none;-webkit-user-select:none}
.geo2-map-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.geo2-route-halo{fill:none;stroke:var(--geo2-halo);stroke-width:9;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.9}
.geo2-route-line{fill:none;stroke:var(--geo2-route);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.geo2-day-route{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.geo2-day-route.is-faded{opacity:0}
.geo2-day-selected .geo2-route-line{stroke:var(--geo2-fade)}
.geo2-marks{position:absolute;inset:0;pointer-events:none}
.geo2-mark,.geo2-cur,.geo2-pin{position:absolute;transform:translate(-50%,-50%)}
.geo2-mark-start{width:13px;height:13px;border-radius:50%;background:var(--geo2-bg);border:3px solid var(--geo2-route)}
.geo2-mark-finish{width:24px;height:24px;border-radius:50%;background:var(--geo2-route);color:var(--geo2-halo);display:grid;place-items:center}
.geo2-mark-finish .geo2-i{width:13px;height:13px}
.geo2-mark-peak{display:flex;align-items:center;gap:6px;transform:translate(-5px,-50%)}
.geo2-mark-peak i{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid var(--geo2-route)}
.geo2-mark-peak b{font-size:11px;font-weight:700;padding:2px 6px;background:var(--geo2-bg);border:1px solid var(--geo2-line);border-radius:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.geo2-cur{width:18px;height:18px;border-radius:50%;background:var(--geo2-bg);border:4px solid var(--geo2-route);box-shadow:0 0 0 6px color-mix(in srgb,var(--geo2-route) 18%,transparent);z-index:3}
.geo2-pin{pointer-events:auto;width:32px;height:32px;padding:0;border-radius:50%;display:grid;place-items:center;background:var(--geo2-bg);color:var(--geo2-ink);border:2px solid var(--geo2-ink);box-shadow:0 2px 6px rgba(0,0,0,.18);z-index:2}
.geo2-pin .geo2-i{width:16px;height:16px}
.geo2-pin.is-active,.geo2-pin:hover{background:var(--geo2-ink);color:var(--geo2-on-ink)}
.geo2-scale{position:absolute;right:14px;bottom:10px;width:var(--w);display:grid;gap:2px;justify-items:end;pointer-events:none}
.geo2-scale i{display:block;width:100%;height:6px;border:2px solid var(--geo2-ink);border-top:0}
.geo2-scale b{font-size:10px;font-weight:700;color:var(--geo2-ink)}
.geo2-leaflet{position:absolute;inset:0;z-index:4}
.geo2-leaflet:not(.geo2-tiles-loaded){opacity:0;pointer-events:none}
.geo2-topo-on .geo2-map-svg,.geo2-topo-on .geo2-marks,.geo2-topo-on .geo2-scale{visibility:hidden}
.geo2-lpin{background:none;border:0}.geo2-lpin .geo2-pin{position:static;transform:none}
.geo2-map-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--geo2-line);font-size:11px;color:var(--geo2-sub)}
.geo2-map-bar .geo2-btn{min-height:38px;padding:7px 11px}
.geo2-topo[aria-pressed="true"]{background:var(--geo2-ink);color:var(--geo2-on-ink);border-color:var(--geo2-ink)}
.geo2-map-state{flex:1;min-width:0}
.geo2-north{display:inline-flex;align-items:center;gap:2px;font-weight:700;color:var(--geo2-ink)}
.geo2-north .geo2-i{width:13px;height:13px}
.geo2-explorer{min-width:0;padding:18px 24px 20px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--geo2-line)}
.geo2-profile-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--geo2-sub)}
.geo2-profile-head small{font-size:10px;letter-spacing:.04em;text-transform:none;font-weight:500}
.geo2-readout{display:flex;gap:10px;font-size:15px;letter-spacing:-.01em;text-transform:none;color:var(--geo2-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.geo2-noalt{margin:0;font-size:12px;color:var(--geo2-accent)}
.geo2-chart-wrap{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 18px;column-gap:8px}
.geo2-yaxis{display:flex;flex-direction:column;justify-content:space-between;padding:0 0 2px;font-size:10.5px;color:var(--geo2-sub);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.geo2-flat .geo2-yaxis{width:0}
.geo2-chart{position:relative;height:clamp(120px,17cqi,190px);touch-action:pan-y;cursor:ew-resize;user-select:none;-webkit-user-select:none;border-bottom:1px solid var(--geo2-line);background:linear-gradient(var(--geo2-line),var(--geo2-line)) 0 5%/100% 1px no-repeat}
.geo2-profile-svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}
.geo2-chart-fill{fill:var(--geo2-fill)}
.geo2-chart-line{fill:none;stroke:var(--geo2-route);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.geo2-chart-day{fill:none;stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.geo2-chart-day.is-faded{opacity:0}
.geo2-day-selected .geo2-chart-line{stroke:var(--geo2-fade)}
.geo2-ccur{position:absolute;top:0;bottom:0;width:0;pointer-events:none}
.geo2-ccur i{position:absolute;top:0;bottom:0;left:-.5px;border-left:1.5px dashed var(--geo2-ink);opacity:.55}
.geo2-ccur b{position:absolute;left:0;width:13px;height:13px;border-radius:50%;background:var(--geo2-bg);border:3px solid var(--geo2-route);transform:translate(-50%,-50%)}
.geo2-ccur em{position:absolute;top:-4px;left:8px;font-style:normal;font-size:11px;font-weight:700;background:var(--geo2-ink);color:var(--geo2-on-ink);padding:2px 6px;border-radius:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.geo2-ccur.geo2-ccur-right em{left:auto;right:8px}
.geo2-xaxis{grid-column:2;position:relative;font-size:10.5px;color:var(--geo2-sub);font-variant-numeric:tabular-nums}
.geo2-xaxis span{position:absolute;top:3px;transform:translateX(-50%);white-space:nowrap}
.geo2-xaxis span:first-child{transform:none}
.geo2-controls{display:flex;gap:8px;align-items:stretch;max-width:560px}
.geo2-step{width:44px;padding:0}
.geo2-play{flex:1;background:var(--geo2-ink);border-color:var(--geo2-ink);color:var(--geo2-on-ink);justify-content:center}
.geo2-play .geo2-i{width:14px;height:14px}
.geo2-play span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.geo2-tools{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px dashed var(--geo2-line)}
.geo2-tools .geo2-btn{border-color:var(--geo2-accent);color:var(--geo2-accent)}
.geo2-tools .geo2-btn-ghost{border-color:var(--geo2-line);color:var(--geo2-sub)}
.geo2-tool-msg{flex-basis:100%;margin:0;font-size:12px;color:var(--geo2-accent)}
.geo2-tool-msg:empty{display:none}
.geo2-hint{margin:0;font-size:11.5px;color:var(--geo2-sub);line-height:1.5}
.geo2-stages{display:flex;gap:6px;flex-wrap:wrap;max-height:112px;overflow:auto}
.geo2-chip{color:var(--geo2-ink);display:inline-flex;gap:6px;align-items:center;min-height:34px;padding:6px 10px;border:1px solid var(--geo2-line);border-radius:999px;background:var(--geo2-bg);font-size:11.5px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.geo2-chip b{font-size:10px;color:var(--geo2-sub)}
.geo2-chip.is-active{border-color:var(--geo2-ink);background:var(--geo2-ink);color:var(--geo2-on-ink)}
.geo2-chip.is-active b{color:inherit}

/* atlas */
.geo2-atlas-sec{padding:22px 24px 24px;border-top:1px solid var(--geo2-line);display:grid;gap:16px}
.geo2-atlas-head h4{margin:0 0 4px;font-family:var(--geo2-title-font);font-weight:var(--geo2-title-weight);font-size:clamp(19px,2.4cqi,24px);letter-spacing:-.015em}
.geo2-atlas-head p:last-child{margin:0;font-size:13px;color:var(--geo2-sub);max-width:60ch}
.geo2-places{align-items:start;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:12px}
.geo2-place{display:flex;flex-direction:column;border:1px solid var(--geo2-line);border-radius:var(--geo2-r-sm);overflow:hidden;background:var(--geo2-bg);min-width:0}
.geo2-place.is-active{border-color:var(--geo2-ink);box-shadow:inset 0 0 0 1px var(--geo2-ink)}
.geo2-place-main{color:var(--geo2-ink);display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:0;background:transparent;text-align:left;width:100%;flex:1}
.geo2-place-main img{grid-column:1/-1;width:calc(100% + 28px);margin:-14px -14px 0;aspect-ratio:16/10;object-fit:cover;display:block}
.geo2-place-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--geo2-panel);color:var(--geo2-ink)}
.geo2-place-body{display:grid;gap:3px;min-width:0}
.geo2-place-body small{font-size:11px;color:var(--geo2-accent);font-weight:600;font-variant-numeric:tabular-nums}
.geo2-place-body b{font-size:15px;font-weight:600;line-height:1.3}
.geo2-place-body span{font-size:13px;color:var(--geo2-sub);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.geo2-place.is-active .geo2-place-body span{-webkit-line-clamp:unset;display:block}
.geo2-place-edit{margin:0 14px 14px;min-height:38px}
.geo2-empty{grid-column:1/-1;margin:0;padding:16px;border:1px dashed var(--geo2-line);border-radius:var(--geo2-r-sm);font-size:13px;color:var(--geo2-sub)}
.geo2-editor{border:1px solid var(--geo2-ink);border-radius:var(--geo2-r-sm);padding:18px;background:var(--geo2-panel)}
.geo2-form{display:grid;gap:12px}
.geo2-form-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.geo2-form-head h5{margin:0;font-size:16px}
.geo2-form-close{width:42px;padding:0}
.geo2-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.geo2-fields .wide{grid-column:1/-1}
.geo2-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--geo2-ink);min-width:0}
.geo2-fields input:not([type=checkbox]),.geo2-fields select,.geo2-fields textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--geo2-line);border-radius:var(--geo2-r-sm);background:var(--geo2-bg);color:var(--geo2-ink);font:inherit;font-size:14px;font-weight:400}
.geo2-fields textarea{min-height:92px;resize:vertical}
.geo2-fields input[type=file]{padding:8px;font-size:12px}
.geo2-fields .geo2-check{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.geo2-form-msg{margin:0;min-height:1em;font-size:12px;color:var(--geo2-accent)}
.geo2-form-actions{display:flex;gap:8px;flex-wrap:wrap}
.geo2-form-delete{margin-left:auto;color:#b42318!important}
.geo2-foot{padding:13px 24px;border-top:1px solid var(--geo2-line);font-size:11.5px;line-height:1.55;color:var(--geo2-sub);background:var(--geo2-panel)}

/* full screen */
html.geo2-lock{overflow:hidden}
.geo2.geo2-full{position:fixed!important;inset:0!important;z-index:999999!important;width:auto!important;overflow:auto;background:var(--geo2-bg);padding:clamp(0px,2vw,18px)}
.geo2-full .geo2-card{min-height:100%}
.geo2-full{--geo2-map-max:72vh}

/* responsive */
@container (max-width:760px){
  .geo2-head{padding:18px 16px 10px}
  .geo2-summary,.geo2-daybar{padding-left:16px;padding-right:16px}
  .geo2-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .geo2-stat{padding:11px 13px}
  .geo2-explorer{padding:16px}
  .geo2-map{position:sticky;top:var(--geo2-sticky-top,0px);z-index:6;box-shadow:0 1px 0 var(--geo2-line)}
  .geo2-full .geo2-map{top:0}
  .geo2-atlas-sec{padding:18px 16px 20px}
  .geo2-foot{padding:12px 16px}
  .geo2-day-story img{width:96px;min-height:88px}
}
@container (max-width:520px){.geo2-mark-peak b{display:none}}
@container (max-width:440px){
  .geo2-expand{width:42px;padding:0}.geo2-expand span{display:none}
  .geo2-daytab{min-width:142px}
  .geo2-fields{grid-template-columns:1fr}.geo2-fields .wide{grid-column:1}
  .geo2-form-actions .geo2-btn{flex:1}
  .geo2-tools .geo2-btn{flex:1 1 100%}
  .geo2-map-bar{gap:8px;padding:8px 10px}
  .geo2-map-state{font-size:10px}
}
@media (prefers-reduced-motion:reduce){.geo2 *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.geo2-controls,.geo2-tools,.geo2-hint,.geo2-expand,.geo2-map-bar .geo2-btn,.geo2-place-edit{display:none!important}}

/* 2.3 — sticky offset under the site header (editorial skin = public HBV pages) */
.geo2[data-geo2-skin="editorial"]{--geo2-sticky-top:88px}
@media (max-width:850px){.geo2[data-geo2-skin="editorial"]{--geo2-sticky-top:72px}}

/* 2.3 — 3D terrain */
.geo2-gl,.geo2 .geo2-gl.maplibregl-map{position:absolute;inset:0;z-index:4;background:var(--geo2-mapbg)}
.geo2-3d-on.geo2-map-area{max-width:none;aspect-ratio:auto!important;height:clamp(380px,62vh,720px);cursor:default;touch-action:auto}
.geo2-3d-on .geo2-map-svg,.geo2-3d-on .geo2-marks,.geo2-3d-on .geo2-scale{visibility:hidden}
.geo2-3d-loading .geo2-gl{opacity:.35}
.geo2-cta3d{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 14px;border:0;border-radius:999px;background:var(--geo2-ink);color:var(--geo2-on-ink);font-size:12.5px;font-weight:700;letter-spacing:.01em;box-shadow:0 6px 18px rgba(0,0,0,.22)}
.geo2-cta3d:hover{transform:translateY(-1px)}
.geo2-cta3d[hidden]{display:none!important}
.geo2-mtlogo{position:absolute;left:10px;bottom:10px;z-index:6;display:block;line-height:0}
.geo2-mtlogo img{height:20px;width:auto}
.geo2-flying{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:6;margin:0;padding:6px 12px;border-radius:999px;background:rgba(13,32,39,.82);color:#fff;font-size:11.5px;white-space:nowrap;pointer-events:none;max-width:calc(100% - 120px);overflow:hidden;text-overflow:ellipsis}
.geo2-styles{display:inline-flex;border:1px solid var(--geo2-line);border-radius:var(--geo2-r-sm);overflow:hidden;background:var(--geo2-bg);max-width:100%;overflow-x:auto}
.geo2-style{border:0;border-right:1px solid var(--geo2-line);background:transparent;color:var(--geo2-ink);min-height:38px;padding:6px 11px;font-size:11.5px;font-weight:600;white-space:nowrap}
.geo2-style:last-child{border-right:0}
.geo2-style[aria-pressed="true"]{background:var(--geo2-ink);color:var(--geo2-on-ink)}
.geo2-fit{width:38px;padding:0}
.geo2-mode3d[aria-pressed="true"]{background:var(--geo2-panel)}
.geo2-gl-mark{line-height:0}
.geo2-gl-mark>*{position:static!important;transform:none!important}
.geo2-gl-mark .geo2-mark-peak{transform:none!important}
.geo2-gl-mark .geo2-cur{display:block}
.geo2 .maplibregl-ctrl-attrib{font-size:10px}
.geo2-popup .maplibregl-popup-content{padding:0;border-radius:var(--geo2-r-sm);overflow:hidden;background:var(--geo2-bg);color:var(--geo2-ink);font-family:inherit;box-shadow:0 10px 28px rgba(0,0,0,.25)}
.geo2-popup .maplibregl-popup-close-button{width:30px;height:30px;font-size:20px;color:#fff;background:rgba(0,0,0,.35);border-radius:0 0 0 8px;z-index:1}
.geo2-pop img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.geo2-pop>div{display:grid;gap:3px;padding:10px 12px 12px}
.geo2-pop small{font-size:11px;font-weight:600;color:var(--geo2-accent);padding-right:24px}
.geo2-pop b{font-size:14px;line-height:1.3}
.geo2-pop span{font-size:12.5px;line-height:1.5;color:var(--geo2-sub)}
@media (prefers-reduced-motion:reduce){.geo2-cta3d:hover{transform:none}}
@container (max-width:760px){.geo2-3d-on.geo2-map-area{height:min(42vh,400px)}.geo2-style{min-height:34px;padding:5px 10px}.geo2-cta3d{top:10px;right:10px;padding:8px 11px}.geo2-map-bar{flex-wrap:wrap}.geo2-styles{order:3;flex-basis:100%}}
/* markers and popups inside the 3D map sit on light tiles whatever the interface theme */
.geo2-gl{--geo2-route:#0d2027;--geo2-bg:#fffefa;--geo2-ink:#0d2027;--geo2-on-ink:#fffefa;--geo2-line:#d9dcd8;--geo2-sub:#5f6b70;--geo2-accent:#8a6640;--geo2-panel:#f6f5f1}
/* 2.3.1 — Studio warnings (incomplete atlas / legacy track) */
.geo2-warn{display:grid;gap:4px;margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--geo2-accent);background:var(--geo2-panel);font-size:12px;line-height:1.5;color:var(--geo2-ink)}
.geo2-warn[hidden]{display:none!important}
/* 0.8.18-b1 — places to re-place after a GPX change (Studio only) */
.geo2-review{display:block;font-style:normal;font-size:11px;font-weight:700;color:#b42318;margin-bottom:2px}

/* Geo Studio 2.4: editorial gestures, undo/redo, preview and photo GPS suggestions. */
.geo2-map-quick{position:absolute;z-index:6;display:flex;flex-direction:column;gap:4px;min-width:170px;transform:translate(8px,8px);background:var(--geo2-bg);padding:7px;border:1px solid var(--geo2-line);box-shadow:0 16px 38px rgba(0,0,0,.16);border-radius:var(--geo2-r-sm)}
.geo2-map-quick button{display:flex;gap:8px;align-items:center;text-align:left;min-height:42px;border:0;background:transparent;color:var(--geo2-ink);padding:7px 9px;border-radius:6px;font-size:12px}
.geo2-map-quick button:hover,.geo2-map-quick button:focus-visible{background:var(--geo2-panel)}
.geo2-boundary-handle{stroke:var(--geo2-accent);stroke-width:13;stroke-opacity:.66;vector-effect:non-scaling-stroke;cursor:ew-resize;pointer-events:stroke}
.geo2-boundary-handle:hover{stroke-opacity:1;stroke-width:17}
.geo2-photo-gps{border:1px solid var(--geo2-line);border-radius:var(--geo2-r-sm);padding:10px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--geo2-ink)}
.geo2-photo-gps button{margin-left:auto;min-height:40px}
.geo2-tools .geo2-tool-confirm{background:var(--geo2-ink);color:var(--geo2-on-ink);border-color:var(--geo2-ink)}
.geo2-tools .geo2-undo,.geo2-tools .geo2-redo{min-width:42px;min-height:42px;font-size:20px}
.geo2-tools button:disabled{opacity:.35;cursor:not-allowed}
.geo2-preview-overlay{position:fixed;inset:0;z-index:2147483000;background:rgba(9,19,22,.85);display:grid;place-items:center;padding:clamp(4px,2vw,24px);overflow:auto;overscroll-behavior:contain}
.geo2-preview-shell{width:min(1240px,100%);height:min(94vh,980px);background:#fffefa;color:#0d2027;display:flex;flex-direction:column;min-height:0;box-shadow:0 26px 70px rgba(0,0,0,.32)}
.geo2-preview-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;background:#15282d;color:white;font:500 12px/1.4 Montserrat,system-ui,sans-serif}
.geo2-preview-close{color:white;display:flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.3);padding:8px 12px;background:transparent;min-height:44px}
.geo2-preview-body{flex:1;min-height:0;overflow:auto}
.geo2-preview-body .geo2{max-width:none}
@media(max-width:600px){.geo2-map-quick{transform:translate(-50%,10px);min-width:156px}.geo2-preview-shell{height:96vh}.geo2-preview-bar{padding:10px;line-height:1.35}.geo2-tools{gap:5px}.geo2-tools .geo2-btn{min-height:44px}}
@media(prefers-reduced-motion:reduce){.geo2-preview-overlay *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
