/* Harta 3D din fundal (world.js): stilurile paginilor care o au — varianta 4 din laborator și pagina traseului.
   Clasa .hc-map pe <html> le pornește; .hc-world-on apare când lumea 3D e gata desenată. */

.hc-world {
  position: fixed; inset: 0; z-index: -1; width: 100vw; height: 100vh; height: 100lvh;
  pointer-events: none; opacity: 0; transition: opacity .6s ease;
}
.hc-world-on .hc-world { opacity: 1; }
/* Pe calculator harta e cât partea vizibilă a ferestrei, fără bara de derulare (100vw o include): altfel centrul ei
   stătea cu o jumătate de bară (~7,5 px) mai la dreapta decât poza de start, iar când apărea harta, totul sărea spre
   dreapta (măsurat cu bara de derulare din Windows). */
@media (min-width: 761px) { .hc-world { width: 100%; } }
/* Până se desenează muntele (o secundă, două), în loc de hârtia cu curbe a site-ului vechi se vede deja
   „cerul de zori și muntele” în culorile hărții, ca harta să apară lin peste ele, fără schimbare de decor. */
.hc-map body {
  --hc-start: none; --hc-mic: none;
  background: var(--hc-start) 50% 0 / auto 100lvh no-repeat fixed, var(--hc-mic) 50% 0 / auto 100lvh no-repeat fixed,
    linear-gradient(180deg, #f9d3b4 0%, #fde8d0 20%, #eadcc3 36%, #d8d6b5 68%, #c8cea4 100%) fixed;
}
/* Cerul senin (varianta 5, <html class="hc-clear">): pornește albastru ca în logo, nu în zori. */
.hc-map.hc-clear body {
  background: var(--hc-start) 50% 0 / auto 100lvh no-repeat fixed, var(--hc-mic) 50% 0 / auto 100lvh no-repeat fixed,
    linear-gradient(180deg, #5aa5e2 0%, #a6d1ee 14%, #d3e8f3 26%, #dcdcc4 60%, #c8cea4 100%) fixed;
}
/* Mai mult: pe fiecare pagină, chiar primul cadru al hărții (start/, făcut din harta însăși, fără etichete) stă
   ca poză de fundal. Harta 3D se aprinde apoi exact peste el, deci încărcarea nu se mai vede deloc.
   Poza e cât înălțimea ecranului, centrată — la fel ca harta, a cărei cameră păstrează unghiul pe verticală. */
.hc-map body[data-page="home"] { --hc-start: url("start/home-desk.webp?v=4"); }
.hc-map body[data-page="guide"] { --hc-start: url("start/ghid-desk.webp?v=4"); }
.hc-map body[data-page="gallery"] { --hc-start: url("start/galerie-desk.webp?v=4"); }
/* Sub ea, pe calculator, copia ei mică (--hc-mic), care se vede până sosește poza: */
/* poze-start-mici: început (generat de scripts/harta/poze-start-mici.mjs) */
@media (min-width: 761px) {
  .hc-map body[data-page="home"] { --hc-mic: url("data:image/webp;base64,UklGRgYBAABXRUJQVlA4IPoAAAAQBwCdASpAABsAPpE+l0elo6IhMBv4ALASCUAZGXyfvMG4LOvhHSOcWn+A085J7HWNy03I/yN+IF9lLdNAtbNTEAD+jLdQLuA1QovDbcpLVD7IEPcE9/rHyDai2YDSL/4MHZRrJmwNlE5ezEvwwfn2PdsWXSmPs0cmQ6L8HpQ5aItQ9oTKfltWdzNhExWTAreB4dh6Y7Bzo6C/LMdHqsDDW3HB6+xCnuC1lIdIzj3Z3X4CLqialPLVwr0Zuc1fjOXVD+WiV9GLKzRIleiMuIIQxRJjMTijCcHvkUCBNhG9YoZrcpdRf12xvQXfAA7VfAxJODSxQg0QIlAA"); }
  .hc-map body[data-page="guide"] { --hc-mic: url("data:image/webp;base64,UklGRvQAAABXRUJQVlA4IOgAAAAQCACdASpAABsAPok8lEelI6IhMBv9+KARCWNf9lRMj6CDoyLVpXgzael9pf3ESZrC/NQ/f+yKPdJeSDvPLa0/z+LD8BMgO4wAAP7w0ht88FwM8p1Fbi9asYSkaqHMgPrGbuXsFyZ+rbAViGe2nSjRsrRoO3c1xC2GFqo/enGXknR7JDrfAqFaNMjU4GE0YTo3IgV+HfijR1nEsfyUfUtxpFTYYQ7FKHRb0i0rwdOXPPKVG2R1GmTKKXqSddylCYJi5ESZ+uB8tc7IKhnaTeMkdZjLEPP90TC0gMyy3Bde6Y9JkQ3DAAAA"); }
  .hc-map body[data-page="gallery"] { --hc-mic: url("data:image/webp;base64,UklGRgQBAABXRUJQVlA4IPgAAACQCACdASpAABsAPoE0lEelIyIhN/qoAKAQCWMAr0XA2SAXgdjXE43+Qd9O02BaHPT75lD+t2Qwg7AfleMsVWtNsyOderwDZI1JnVrQgAD+6tYywTmmfJg4D7yZXw2vyQwLxdc8f26NqiCr8RZjumwX/Pxw+j77j8+bcn9KMQF80rTGDwwJzjjbmCHUUKfBDGdr6JMwfN++yiCc4bHGhWpseGWBzjcI50iaJIGOAwg80qa/w4DASOpT1tuaxCa5ht04vCZeiKpDmq4dvK/L5dYfK2KjiIrwlP783HkBKJBzdO7hjK5psiWFV8Ulk0vhfeg49gfRluiAAA=="); }
}
/* poze-start-mici: sfârșit */
@media (max-width: 760px) {
  .hc-map body[data-page="home"] { --hc-start: url("start/home-phone.webp?v=4"); }
  .hc-map body[data-page="guide"] { --hc-start: url("start/ghid-phone.webp?v=4"); }
  .hc-map body[data-page="gallery"] { --hc-start: url("start/galerie-phone.webp?v=4"); }
}
/* Telefon, cerul senin, pagina principală: soarele hărții e pe cer de la început (fx.js sunEarly), nu doar odată cu harta.
   Locul și mărimea sunt cele din world.js: centrul la 20,1% din înălțimea hărții, raza discului 0,0505 · H/2
   (SUN_FIT.K), iar discul are 0,24 din jumătatea imaginii, deci imaginea are 0,0505 / 0,24 = 21,04% din înălțime. */
.hc-sun { display: none; }
@media (max-width: 760px) {
  .hc-map.hc-clear:not(.hc-world-ready) .hc-sun {
    display: block; position: fixed; z-index: -1; pointer-events: none;
    --s: 21.04vh; --s: 21.04lvh;
    width: var(--s); height: var(--s);
    left: calc(var(--sun-d) + var(--s) * .12 - var(--s) / 2);
    top: calc(20.1vh - var(--s) / 2); top: calc(20.1lvh - var(--s) / 2);
    background: url("start/soare.webp") 50% 50% / contain no-repeat;
  }
}
/* Calculator, pagina deschisă (sau reîncărcată) mai jos de hero, înainte să apară harta (fx.js → html.hc-away): în loc de
   poza de start, care arată capul paginii, un fundal în culorile hărții de la mijlocul paginii; harta apare lin peste el. */
@media (min-width: 761px) {
  .hc-map.hc-away:not(.hc-world-ready) body[data-page] {
    background: linear-gradient(180deg, #dcdac8 0%, #cfd6b4 55%, #c4cfa8 100%) fixed;
  }
}
/* Harta de hârtie și traseele 2D ale site-ului stau sub lumea 3D: le ascundem ca să nu lucreze degeaba. */
/* Harta a apărut de tot (world.js, după trecerea lină): poza fixă de dedesubt nu mai e desenată. Dacă harta cade, revine. */
.hc-map.hc-world-ready body { background: #c8cea4; }
/* Cerul senin: când tragi pagina peste capătul de sus (iPhone), se vede tot albastru, nu verde. */
.hc-map.hc-clear.hc-world-ready body { background: linear-gradient(180deg, #5aa5e2, #c8cea4 900px) #c8cea4; }
.hc-map body > canvas:not(.hc-world) { display: none; }
.hc-map .trail { visibility: hidden; }

/* Textul stă pe foi de hârtie așezate peste hartă; pozele, bilețelele și paginile de carnet sunt deja de hârtie,
   așa că printre ele muntele se vede liber. */
.hc-map :is(.about__text, .stats ul, .join, .faq, .gallery-head, .album__head, .guide-head),
.hc-map body[data-page="guide"] main section > .wrap {
  /* Fără backdrop-filter: blurul s-ar recalcula la fiecare cadru, fiindcă harta de dedesubt se mișcă. */
  background: rgba(250, 246, 239, .95);
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(43, 32, 30, .08), 0 30px 60px -28px rgba(43, 32, 30, .45);
  padding: clamp(20px, 3.2vw, 40px);
}
.hc-map body[data-page="guide"] main section > .wrap { margin-block: 12px; }
/* În ghid, foile stau la jumătate din distanța obișnuită (proprietarul: golurile dintre secțiuni erau prea mari). */
.hc-map body[data-page="guide"] main :is(.wx, .guide, .sos) { padding-block: clamp(16px, 2.5vw, 30px); }
.hc-map body[data-page="guide"] .trail { display: none; }
/* În galerie, polaroidul stă direct pe hartă (e deja de hârtie); doar textul scris de mână de sub el are o foaie. */
.hc-map .albums__note {
  margin: 22px 0 0; padding: 16px 20px 18px; border-radius: 16px;
  background: rgba(250, 246, 239, .94);
  box-shadow: 0 20px 44px -28px rgba(43, 32, 30, .5);
}
.hc-map .stats ul { padding-block: clamp(26px, 3.4vw, 40px); }
.hc-map .guide-head { margin-top: 24px; }
/* Titlurile de secțiune: o etichetă de hârtie cât textul. */
.hc-map body:not([data-page="guide"]) .section-head,
.hc-map :is(.album__back, .album__pager a) {
  width: fit-content;
  padding: 8px 26px 10px 16px;
  background: rgba(250, 246, 239, .94);
  border-radius: 16px;
  box-shadow: 0 18px 40px -24px rgba(43, 32, 30, .5);
}
.hc-map .album__pager a { padding: 10px 20px 12px; }
@media (max-width: 600px) { .hc-map .album__pager a { padding: 9px 13px 11px; } }
.hc-map .stats { background: none; border: 0; }
/* Cifrele stau aproape de bilețele și de „Ture viitoare”: pe hartă golul dublu (secțiune + bandă) părea gol de pagină. */
.hc-map .about { padding-bottom: clamp(56px, 7vw, 100px); }
.hc-map .stats { padding-block: 0; }
.hc-map .trips { padding-top: clamp(56px, 7vw, 100px); }
/* „Albume recente” vine mai aproape de ultima tură: fără poteca dintre secțiuni (oricum ascunsă sub hartă) și cu mai puțin spațiu sus. */
.hc-map .trips + .trail { display: none; }
.hc-map .recent { padding-top: clamp(16px, 2vw, 28px); }
/* Hero: fără foaie, doar un halou de hârtie sub text, ca muntele din planul larg să rămână întreg. */
.hc-map .hero { overflow-x: clip; }
.hc-map .hero__text { position: relative; }
.hc-map .hero__text::before {
  content: ''; position: absolute; inset: -12% -18% -10%; z-index: -1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(250, 246, 239, .94) 55%, rgba(250, 246, 239, 0));
}

/* Intrarea în pagină (prima pagină): hero-ul stă ascuns până pune main.js textele și sosesc fonturile (cel mult 0,45 s),
   apoi se așază în straturi — textul, apoi pozele cu pionezele lor. Fără asta, primul cadru arăta un hero pe jumătate
   gol, apoi totul sărea la loc. Dacă harta nu pornește (fără WebGL), clasa .hc-map dispare și hero-ul se vede normal. */
@media (prefers-reduced-motion: no-preference) {
  .hc-map:not(.hero-in) body[data-page="home"] :is(.hero__text > *, .stack .polaroid, .stack__note),
  .hc-map:not(.hero-in) body[data-page="home"] .hero__text::before { opacity: 0; }
  .hc-map .hero__text::before { transition: opacity .6s ease; }
  .hc-map.hero-in .hero__text > * { animation: hc-rise .8s cubic-bezier(.2, .8, .2, 1) backwards; }
  .hc-map.hero-in .hero__text > :nth-child(2) { animation-delay: .1s; }
  .hc-map.hero-in .hero__text > :nth-child(3) { animation-delay: .2s; }
  @keyframes hc-rise { from { opacity: 0; translate: 0 22px; } }
}
/* Pe calculator intrarea e scurtă, ca pagina să pară gata repede: aceeași ordine (textul, pozele, pionezele, bilețelul),
   dar totul s-a așezat în ~0,9 s, nu în ~1,5 s cât era. Telefonul păstrează timpii de mai sus pentru text. */
@media (min-width: 981px) and (prefers-reduced-motion: no-preference) {
  .hc-map.hero-in .hero__text > * { animation-duration: .55s; }
  .hc-map.hero-in .hero__text > :nth-child(2) { animation-delay: .06s; }
  .hc-map.hero-in .hero__text > :nth-child(3) { animation-delay: .12s; }
  .hc-map .hero__text::before { transition-duration: .4s; }
  .hc-map.hero-in .stack .polaroid { animation: hc-photo .6s cubic-bezier(.25, .8, .3, 1) var(--d, .05s) backwards; }
  .hc-map.hero-in .stack .polaroid::before { animation: hc-pin .3s cubic-bezier(.5, 0, .75, .3) calc(var(--d, .05s) + .38s) backwards; }
  .hc-map.hero-in .stack__a { --d: .05s; }
  .hc-map.hero-in .stack__b { --d: .13s; }
  .hc-map.hero-in .stack__c { --d: .21s; }
  .hc-map.hero-in .stack__note { animation: hc-rise .4s ease-out .6s backwards; }
  @keyframes hc-photo { from { opacity: 0; scale: .94; translate: 0 40px; } }
  @keyframes hc-pin { 0% { opacity: 0; translate: 0 -30px; } 30% { opacity: 1; } }
}

/* Altimetrul (harta 3D, pagina principală): altitudinea reală a locului de pe traseu și numele opririi.
   Pe ecran lat stă pe marginea din dreapta, cu scală. Mai îngust (unde n-are loc lângă conținut) e o etichetă
   care apare câteva secunde la fiecare oprire nouă, apoi se stinge, ca să nu acopere textul. */
.hc-alti {
  position: fixed; z-index: 50; right: 12px; top: 92px;
  pointer-events: none; opacity: 0; transform: translateY(-6px); transition: opacity .5s ease, transform .5s ease;
  font-family: 'Caveat', cursive; color: #2b201e;
}
.hc-world-on .hc-alti.is-show { opacity: 1; transform: none; }
.hc-alti__scale { display: none; }
.hc-alti__read {
  margin: 0; padding: 6px 14px 7px; border-radius: 14px;
  background: rgba(250, 246, 239, .96); box-shadow: 0 10px 26px -14px rgba(43, 32, 30, .55);
  display: flex; flex-direction: column; align-items: flex-end; line-height: 1;
}
.hc-alti__read b { font-size: 1.6rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.hc-alti__read small { font: 800 .6rem/1.3 'Nunito', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #1f5f8b; text-align: right; }
@media (min-width: 1400px) {
  .hc-alti, .hc-world-on .hc-alti.is-show {
    right: 14px; top: 50%; transform: translateY(-50%); width: 96px; box-sizing: border-box;
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    padding: 18px 6px 10px; border-radius: 18px; background: rgba(250, 246, 239, .95); box-shadow: 0 14px 34px -18px rgba(43, 32, 30, .6);
  }
  .hc-world-on .hc-alti { opacity: 1; }
  .hc-alti__scale {
    display: block; position: relative; width: 70px; height: min(46vh, 420px);
    background: linear-gradient(#2b201e, #2b201e) 22px 0 / 2px 100% no-repeat;
  }
  .hc-alti__scale span { position: absolute; left: 23px; bottom: calc(var(--y) * 100%); width: 10px; height: 2px; margin-left: -5px; background: #2b201e; }
  .hc-alti__scale span.is-major { width: 16px; margin-left: -8px; }
  .hc-alti__scale span.is-major::after { content: attr(data-m); position: absolute; left: 20px; top: -9px; font: 700 1.05rem/1 'Caveat', cursive; color: #2b201e; }
  .hc-alti__mark {
    position: absolute; left: 23px; bottom: calc(var(--y, 0) * 100%); width: 16px; height: 16px; margin: 0 0 -8px -8px;
    background: #b3322a; border: 3px solid #fbf8f1; border-radius: 50%; box-shadow: 0 0 0 2px #b3322a, 0 6px 12px -4px rgba(0, 0, 0, .5);
    transition: bottom .25s ease-out;
  }
  .hc-alti__read { align-items: center; background: none; box-shadow: none; padding: 0; }
  .hc-alti__read small { text-align: center; }
}

/* Headerul: o bandă de hârtie cât tot ecranul, lipită sus, cu muntele dedesubt. */
.hc-map .bar { background: none; box-shadow: none; padding: 0; pointer-events: none; }
.hc-map .bar > canvas { display: none; }
.hc-map .bar__inner {
  position: relative; pointer-events: auto;
  width: 100%; min-height: 72px; align-items: center; padding: 0 clamp(20px, 2.6vw, 40px);
  background: #faf6ef; border-radius: 0;
  box-shadow: 0 1px 2px rgba(43, 32, 30, .08), 0 18px 40px -22px rgba(43, 32, 30, .55);
}
/* Rândul de sub bară (cuprinsul ghidului): tot o bandă cât ecranul, lipită de bară, cu o linie punctată între ele. */
.hc-map .bar .subnav { background: none; border: 0; box-shadow: none; padding: 0; pointer-events: none; }
.hc-map .bar .subnav > .wrap {
  pointer-events: auto; width: 100%; padding: 8px clamp(20px, 2.6vw, 40px) 9px; border-radius: 0;
  background: #faf6ef; border-top: 1px dashed rgba(43, 32, 30, .18);
  box-shadow: 0 18px 40px -22px rgba(43, 32, 30, .55);
}
@media (min-width: 761px) {
  /* Sigla stă în colțul din stânga al benzii, meniul în cel din dreapta. */
  .hc-map .brand { left: clamp(16px, 2.2vw, 34px); top: 50%; transform: translateY(-50%); }
  .hc-map .nav { margin: 0 0 0 auto; }
  .hc-map .bar__inner { padding-left: 88px; }
  /* Meniurile se termină în dreapta odată cu foile de dedesubt (marginea lui .wrap), nu în colțul ecranului. */
  .hc-map .bar__inner,
  .hc-map .bar .subnav > .wrap { padding-right: max(var(--gutter), (100% - var(--wrap)) / 2); }
}
@media (max-width: 760px) {
  .hc-map .bar { padding: 0; }
  .hc-map .bar__inner { padding: 8px 12px 6px; min-height: 0; border-radius: 0; }
}

/* ==========================================================================
   Pagina traseului (traseu.html): Victoria – Valea Viștei – Vf. Moldoveanu.
   Secțiunile sunt opririle camerei; textul stă pe cartonașe de hârtie, alternând stânga–dreapta,
   ca muntele să se vadă în partea cealaltă. Jos, un profil de altitudine care se umple cât urci.
   ========================================================================== */

/* Camera se mișcă în spate: lățimea paginii nu are voie să se schimbe nici cu un pixel. */
.tr-main { overflow-x: clip; }

.tr-stop {
  min-height: 115vh; display: flex; align-items: center;
  /* Jos lăsăm loc de profil, ca centrul cartonașului să cadă în partea liberă a ecranului. */
  padding: 40px 0 150px;
}
.tr-stop > .wrap { width: min(100% - 2 * var(--gutter), var(--wrap)); }

.tr-card {
  position: relative; max-width: 460px;
  padding: clamp(22px, 3.2vw, 40px);
  /* Fără backdrop-filter: harta de dedesubt se mișcă și blurul s-ar recalcula la fiecare cadru. */
  background: rgba(250, 246, 239, .95);
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(43, 32, 30, .08), 0 30px 60px -28px rgba(43, 32, 30, .45);
}
.tr-card p:last-child { margin-bottom: 0; }
.tr-card__head { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.tr-card h2 { font: 700 clamp(2.2rem, 3.6vw, 2.9rem)/1 var(--hand); }
/* Numărul opririi, scris de mână cu roșu, ca pe o hartă adnotată cu pixul. */
.tr-num {
  flex: none; font: 700 clamp(3.6rem, 6vw, 4.8rem)/.8 var(--hand); color: var(--red);
  transform: rotate(-6deg); text-shadow: 2px 3px 0 rgba(179, 50, 42, .14);
}
.tr-meta { font-weight: 800; font-size: .92rem; color: var(--sky-ink); letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.tr-tip { padding: 10px 14px; border-left: 3px solid var(--sun); background: rgba(251, 239, 196, .6); border-radius: 4px 12px 12px 4px; font-size: .97rem; }
.tr-tip b { color: var(--ink); }
.tr-next { font: 700 1.45rem/1.2 var(--hand); color: var(--red); }

/* Hero: cartonașul mai lat, cu cifrele traseului. */
.tr-card--hero { max-width: 620px; }
.tr-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-weight: 800; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--sky-ink); }
.tr-mark-red::after { background: var(--red); }
.tr-hero h1 { font: 700 clamp(3rem, 5vw, 4rem)/.95 var(--hand); margin-bottom: 14px; }
/* Hero: cartonașul stă sus, imediat sub antet, ca să încapă întreg deasupra profilului. */
.tr-hero { align-items: flex-start; padding-top: 28px; }
.tr-lead { font-size: 1.05rem; color: var(--ink-soft); }
.tr-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px dashed rgba(43, 32, 30, .25); }
.tr-stats dt { font-weight: 800; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-mute); }
.tr-stats dd { margin: 0; font: 700 1.7rem/1.1 var(--hand); color: var(--ink); font-variant-numeric: tabular-nums; }
.tr-stats__wide { grid-column: 1 / -1; }
.tr-stats__wide dd { font: 700 1rem/1.35 var(--sans); }
.tr-hint { margin: 18px 0 0; font: 700 1.5rem/1 var(--hand); color: var(--red); }

/* Final: noaptea pe vârf, chemarea la tură. */
.tr-final { padding-bottom: 200px; }
.tr-card--final { max-width: 560px; margin-inline: auto; text-align: center; }
.tr-card--final h2 { font-size: clamp(2.6rem, 5vw, 3.6rem); margin-bottom: 10px; }
.tr-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 16px; margin: 20px 0 22px; }
.tr-sources { font-size: .78rem; line-height: 1.5; color: var(--ink-mute); }
.tr-sources a { color: inherit; }

@media (min-width: 981px) {
  .tr-stop--r .tr-card { margin-left: auto; }
}
@media (max-width: 980px) {
  .tr-card, .tr-card--hero { max-width: none; }
}
@media (max-width: 760px) {
  .tr-stop { min-height: 100vh; padding: 24px 0 110px; }
  .tr-final { padding-bottom: 140px; }
  .tr-card { font-size: 1rem; }
  .tr-stats dd { font-size: 1.5rem; }
  .tr-stats .tr-stats__wide dd { font-size: 1rem; }
  .tr-hero h1 { font-size: 2.9rem; }
  .tr-lead { font-size: 1rem; }
}

/* Profilul de altitudine: bandă fixă jos, de hârtie. Apare odată cu harta 3D și se ascunde la subsol. */
.tr-profile {
  position: fixed; z-index: 40; left: 50%; bottom: 14px; transform: translate(-50%, 12px);
  width: min(860px, 100% - 32px); box-sizing: border-box;
  padding: 10px 22px 8px; border-radius: 18px;
  background: rgba(250, 246, 239, .96);
  box-shadow: 0 1px 2px rgba(43, 32, 30, .08), 0 18px 40px -22px rgba(43, 32, 30, .55);
  pointer-events: none; opacity: 0; visibility: hidden;
}
.tr-profile.is-on { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.tr-profile.is-on.is-away { opacity: 0; visibility: hidden; transform: translate(-50%, 12px); }
.tr-profile__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.tr-profile__read { font: 700 1.35rem/1 var(--hand); color: var(--ink); font-variant-numeric: tabular-nums; }
.tr-profile__peak { font-weight: 800; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sky-ink); white-space: nowrap; }
.tr-profile__chart { position: relative; height: 62px; margin-top: 4px; }
.tr-profile__chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.tr-profile__area { fill: rgba(128, 192, 232, .28); }
.tr-profile__area--done { fill: rgba(179, 50, 42, .2); }
.tr-profile__line { fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.tr-profile__line--done { stroke: var(--red); stroke-width: 2.4; }
/* Opririle: triunghiuri roșii mici, ca marcajul de pe Valea Viștei. */
.tr-profile__tri {
  position: absolute; width: 10px; height: 9px; margin: -11px 0 0 -5px;
  background: var(--red); clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.tr-profile__dot {
  position: absolute; left: 0; top: 0; width: 14px; height: 14px; margin: -7px 0 0 -7px;
  background: var(--red); border: 3px solid #fbf8f1; border-radius: 50%;
  box-shadow: 0 0 0 1.5px var(--red), 0 4px 8px -2px rgba(0, 0, 0, .4);
}
.tr-profile__axis { position: relative; height: 18px; margin-top: 3px; }
.tr-profile__axis span {
  position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap;
  font: 700 1rem/1.1 var(--hand); color: var(--ink-soft);
}
.tr-profile__axis span:first-child { transform: none; }
/* Portița e aproape de capăt: textul se termină în dreptul ei, nu se întinde peste margine. */
.tr-profile__axis span:last-child { transform: translateX(-100%); }
@media (prefers-reduced-motion: no-preference) {
  .tr-profile { transition: opacity .6s ease, transform .6s ease, visibility .6s; }
  .tr-profile__dot { transition: left .2s linear, top .2s linear; }
}
@media (max-width: 760px) {
  .tr-profile { bottom: 10px; width: calc(100% - 32px); padding: 8px 14px 10px; border-radius: 16px; }
  .tr-profile__read { font-size: 1.2rem; }
  .tr-profile__chart { height: 40px; }
  .tr-profile__axis { display: none; }
}

/* Subsolul tuturor paginilor (drumul se termină noaptea, pe vârf): harta pe timp de noapte, ca vârful de la capătul drumului — cer albastru-închis, curbe de nivel
   care lucesc slab albastru, câteva stele și sigla de noapte (pusă în HTML). */
.hc-map .foot {
  position: relative; isolation: isolate; overflow: hidden;
  border-top: 0; color: #e8ecff;
  /* Sus, subsolul începe transparent și se îndesește în noaptea de jos: muntele intră lin în el, fără o linie dreaptă. */
  padding-top: 96px; margin-top: -56px;
  background: radial-gradient(1.5px 1.5px at 12% 22%, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 27% 68%, #dfe6ff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 46% 14%, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 63% 52%, #dfe6ff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 78% 26%, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 91% 74%, #dfe6ff 50%, transparent 51%),
    linear-gradient(180deg, rgba(42, 47, 85, 0) 0, rgba(42, 47, 85, .75) 36px, #2a2f55 72px, #141c3c 60%, #0d1530 100%);
}
.hc-map .foot::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  -webkit-mask-image: linear-gradient(transparent 30px, #000 96px); mask-image: linear-gradient(transparent 30px, #000 96px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='800'%3E%3Cpath fill='none' stroke='%239fb6ff' stroke-width='1.3' d='M8 0Q3 16 4 24Q4 32 6 40Q9 48 14 60Q20 72 26 81Q32 89 40 96Q48 103 52 105Q56 106 64 108Q72 109 80 106Q88 104 93 100Q98 96 103 88Q108 80 110 74Q112 67 112 58Q112 48 111 40Q109 32 106 24Q102 16 97 8L92 0M512 333L512 333M92 800Q72 783 60 780Q48 777 36 780Q24 783 20 786Q16 789 12 794L8 800M123 0Q136 48 135 64Q135 80 131 92Q126 104 120 112Q115 120 109 125Q104 130 92 135Q80 141 72 141Q64 141 56 139Q48 137 36 128Q24 118 12 101L0 84M772 0Q781 40 790 62L800 84M512 280L512 280M123 800Q104 760 100 755Q96 751 88 745Q80 740 72 737Q64 735 52 734Q40 734 28 737Q16 740 8 744L0 748M800 748Q780 768 777 776Q774 784 773 792L772 800M146 0Q156 56 156 72Q156 88 151 104Q145 120 140 128Q134 136 127 144Q120 151 112 157Q104 162 96 165Q88 168 80 168Q72 169 64 168Q56 167 48 163Q40 160 32 155Q24 149 12 136L0 122M745 0Q769 64 784 93L800 122M504 245L504 245M800 684Q760 672 755 672Q750 672 750 692Q749 712 745 736Q741 760 743 780L745 800M146 800Q134 736 131 730Q128 725 122 718Q115 712 108 708Q101 704 91 701Q80 697 40 691L0 684M168 0Q178 72 177 88Q176 104 174 112Q172 120 166 132Q160 144 148 158Q136 173 128 178Q120 183 112 186Q104 189 88 190Q72 192 60 189Q48 186 40 182Q32 179 24 173Q16 168 8 160L0 153M720 0Q767 104 776 118Q784 132 792 142L800 153M800 645Q768 621 736 591Q704 561 683 544Q661 528 654 520Q647 512 643 500Q639 488 636 452Q634 416 622 360Q610 304 602 284Q594 264 584 252Q574 240 563 233Q552 226 540 222Q528 219 516 219Q504 219 494 221Q483 224 474 229Q464 235 457 241Q449 248 430 276Q410 304 405 320Q399 336 396 372Q394 408 383 436Q372 464 372 468Q373 472 376 480Q379 488 391 500Q402 512 409 517Q416 521 428 526Q440 531 460 535Q480 538 528 540Q576 541 588 545Q600 548 608 554Q616 559 632 582Q648 604 670 642Q692 680 696 692Q700 704 705 736Q710 768 715 784L720 800M168 800Q168 728 165 720Q162 712 156 704Q149 696 134 688Q120 680 80 671Q40 662 20 653L0 645M191 0Q192 32 198 64Q203 96 203 108Q202 120 200 128Q198 136 192 148Q186 160 181 168Q176 176 169 184Q161 192 153 197Q144 203 136 206Q128 209 116 210Q104 212 92 212Q80 212 60 207Q40 202 30 197Q20 192 10 184L0 177M696 0Q755 120 766 136Q777 152 788 164L800 177M800 620Q776 600 764 588Q751 576 734 556Q716 536 704 520Q692 504 684 488Q676 472 665 440Q655 408 648 384Q641 360 635 328Q628 296 624 284Q620 272 613 260Q606 248 599 239Q592 231 583 223Q574 216 563 210Q552 205 536 201Q520 198 504 199Q488 199 472 203Q456 207 444 213Q432 220 421 230Q411 240 384 272Q357 304 355 312Q352 320 351 344Q350 368 347 376Q343 384 336 389Q328 395 304 399Q280 403 275 405Q270 408 266 412Q262 416 260 420Q258 424 257 432Q256 440 259 448Q262 456 268 464Q274 472 284 480Q294 488 339 514Q384 541 396 546Q408 551 420 553Q432 556 480 559Q528 561 540 563Q552 565 568 570Q584 576 595 584Q606 592 620 608Q634 624 648 648Q661 672 666 684Q670 696 677 728Q683 760 690 780L696 800M191 800Q202 744 202 736Q202 728 200 716Q197 704 188 692Q179 680 166 672Q152 664 140 661Q128 657 88 650Q48 643 36 638Q24 634 12 627L0 620M219 0Q217 32 222 52Q227 72 246 113Q264 153 268 158Q272 164 276 166Q280 169 312 177Q344 186 356 187Q368 189 424 184Q480 179 504 180Q528 180 540 183Q552 185 560 188Q568 191 576 196Q584 200 593 208Q603 216 612 228Q622 240 631 256Q640 272 645 288Q650 304 659 344Q668 384 676 404Q684 424 699 456Q714 488 723 504Q732 520 743 536Q755 552 765 564Q776 577 788 587L800 598M674 0Q706 72 719 96Q732 120 750 144Q768 168 784 183L800 198M674 800Q661 760 655 728Q648 696 642 680Q636 664 629 652Q622 640 615 631Q608 622 600 614Q592 606 584 601Q576 595 560 589Q544 583 528 581Q512 579 492 579Q472 580 432 584Q392 588 376 588Q360 588 324 580Q288 572 280 568Q272 564 268 558Q264 553 252 528Q240 504 232 484Q224 464 221 452Q218 440 217 428Q216 416 218 408Q219 400 230 376Q241 352 244 340Q246 328 245 320Q244 312 240 300Q236 288 230 276Q224 263 218 256Q212 248 206 244Q200 240 192 238Q184 235 144 234Q104 233 84 231Q64 228 48 223Q32 218 16 208L0 198M219 800Q241 752 244 740Q246 728 245 720Q244 712 240 700Q236 688 230 676Q224 663 218 656Q212 648 206 644Q200 640 192 638Q184 635 144 634Q104 633 84 631Q64 628 48 623Q32 618 16 608L0 598M292 0Q272 7 268 10Q264 13 261 19Q258 24 257 28Q256 32 257 40Q259 48 263 56Q267 64 273 71Q280 78 287 83Q294 88 335 112Q375 136 388 142Q400 148 420 153Q440 157 484 159Q528 161 544 164Q560 166 576 174Q592 181 604 191Q616 202 628 218Q640 233 651 253Q661 272 667 288Q672 304 681 344Q690 384 712 432Q734 480 749 508Q765 536 774 548Q783 560 792 568L800 577M652 0Q676 72 687 92Q698 112 725 144Q751 176 764 188Q776 200 788 210L800 220M0 577Q32 599 48 604Q64 610 84 611Q104 612 120 609Q136 606 149 599Q161 592 171 580Q182 568 190 552Q198 536 201 520Q203 504 197 456Q191 408 197 368Q202 328 200 316Q197 304 192 296Q187 288 178 280Q169 272 160 268Q152 264 140 261Q128 257 88 250Q48 243 36 238Q24 234 12 227L0 220M652 800Q626 688 621 676Q616 664 611 656Q606 648 599 639Q592 631 580 621Q568 612 556 607Q544 602 528 600Q512 598 500 598Q488 599 476 602Q464 604 452 609Q440 615 432 620Q424 626 396 657Q369 688 363 696Q357 704 355 712Q352 720 351 744Q350 768 347 776Q343 784 336 789Q328 795 310 797L292 800M395 0Q391 16 384 32Q377 48 374 56Q372 64 372 68Q373 72 376 80Q379 88 391 100Q402 112 416 120Q430 128 443 132Q456 135 472 137Q488 139 524 139Q560 140 576 142Q592 145 600 149Q608 153 619 164Q630 176 652 212Q675 248 683 264Q692 280 697 296Q702 312 707 344Q712 376 717 392Q723 408 745 456Q767 504 776 518Q784 532 792 542L800 553M631 0Q637 40 638 64Q639 88 643 100Q647 112 654 120Q661 128 683 144Q704 161 736 191Q768 221 784 233L800 245M0 553Q24 574 40 581Q56 589 72 590Q88 592 100 589Q112 587 124 580Q136 573 148 558Q160 544 167 528Q175 512 176 496Q178 480 173 440Q168 400 169 368Q169 336 167 328Q166 320 161 312Q157 304 147 296Q138 288 129 284Q120 280 80 271Q40 262 20 253L0 245M631 800Q608 696 600 678Q592 660 584 651Q576 641 568 635Q560 630 548 625Q536 620 524 619Q512 618 500 620Q488 622 476 628Q464 635 453 645Q443 656 431 672Q420 688 413 700Q406 712 403 720Q401 728 398 764L395 800M428 0Q427 64 429 73Q432 82 438 89Q444 96 450 100Q456 103 464 106Q472 108 484 110Q496 111 508 110Q520 110 532 107Q544 104 553 100Q561 96 571 88Q581 80 588 72Q594 64 599 52Q605 40 606 32Q608 24 608 12L608 0M800 284Q760 272 755 272Q750 272 750 292Q749 312 745 340Q740 368 742 384Q745 400 750 416Q755 432 768 460Q780 488 790 505L800 522M0 522Q24 549 36 557Q48 564 60 566Q72 569 84 567Q96 565 108 558Q120 551 130 540Q140 528 146 516Q152 504 155 488Q157 472 156 460Q155 448 147 400Q138 352 136 344Q134 336 129 328Q124 320 118 315Q112 310 100 305Q88 299 44 292L0 284M608 800Q593 720 586 700Q578 680 573 672Q567 664 560 658Q552 651 544 648Q536 645 528 644Q520 643 508 645Q497 648 488 653Q480 659 472 667Q464 676 454 690Q444 704 438 716Q433 728 431 736Q428 744 428 772L428 800M459 0Q469 32 474 42Q480 51 488 56Q496 62 504 63Q512 64 524 61Q536 58 548 50Q560 43 567 33Q575 24 578 12L582 0M0 484Q18 512 29 522Q40 532 48 536Q56 540 68 540Q80 541 92 535Q104 530 112 522Q120 514 127 501Q133 488 135 476Q137 464 135 448Q133 432 128 416Q123 400 117 387Q112 374 104 362Q96 351 88 345Q80 340 68 337Q56 334 40 335Q24 337 12 342L0 348M800 348Q780 368 777 376Q774 384 773 392Q772 400 776 420Q781 440 790 462L800 484M582 800Q582 776 580 764Q577 752 573 737Q568 721 564 713Q560 704 552 695Q544 685 539 683Q534 680 527 679Q520 678 512 681Q504 683 496 689Q488 695 480 703Q473 712 468 720Q463 728 459 744Q455 760 457 780L459 800M504 0Q520 7 524 7Q528 6 533 3L539 0M24 383L24 383M539 800Q547 784 547 772Q546 760 541 750Q536 741 532 738Q528 734 524 733Q520 732 516 733Q512 733 508 736Q504 738 500 743Q496 747 494 754Q492 760 493 772Q494 784 499 792L504 800'/%3E%3C/svg%3E") 0 0 / 900px; opacity: .22;
}
.hc-map .foot img { filter: drop-shadow(0 0 14px rgba(159, 182, 255, .35)) drop-shadow(0 6px 10px rgba(0, 0, 0, .5)); }
.hc-map .foot__name { color: #f5efe0; }
.hc-map .foot__tag { color: #9fb6ff; }
.hc-map :is(.foot__copy, .foot__credit) { color: rgba(232, 236, 255, .66); }
.hc-map .foot__credit a { color: #c9d6ff; }
.hc-map .foot a:focus-visible { outline-color: #9fb6ff; }

/* Notițele scrise de mână de lângă pozele din hero stau direct pe munte: un halou de hârtie le ține lizibile. */
.hc-map .stack__note { text-shadow: 0 0 2px #faf6ef, 0 0 6px #faf6ef, 0 0 14px rgba(250, 246, 239, .95); }
.hc-map .stack__note svg { filter: drop-shadow(0 0 3px #faf6ef) drop-shadow(0 0 6px rgba(250, 246, 239, .9)); }

/* Galeria: foile stau la distanță de antet și una de alta, nu lipite. Titlul „Galeria” e o foaie cât textul, ca
   etichetele de secțiune de pe pagina principală, nu o fâșie lată și goală. */
.hc-map .gallery-head { width: fit-content; margin: 28px 0 clamp(36px, 4vw, 56px); padding: 22px clamp(28px, 3.4vw, 44px) 26px; }
.hc-map .album__back { margin-top: 24px; }
.hc-map .album__head { margin-top: 18px; margin-bottom: clamp(36px, 4vw, 56px); }
@media (max-width: 760px) {
  .hc-map .gallery-head { width: auto; margin: 18px 0 32px; padding: 18px 22px 20px; }
  .hc-map .album__back { margin-top: 16px; }
}

/* „Ture viitoare”: banda e cât foaia de itinerar de dedesubt. Notița „bifează…” stă centrată pe înălțimea benzii
   și, pe ecran lat, exact deasupra post-it-ului „Ce să aduci” (coloana de 340px din dreapta foii): aceeași lățime,
   aceeași margine dreaptă ca foaia (padding-ul foii minus padding-ul benzii). */
.hc-map body .trips .section-head { width: auto; align-items: center; }
/* „Cine suntem”, „Albume recente” și „Hai cu noi”: aceeași bandă cât tot rândul de dedesubt, ca la „Ture viitoare”. */
.hc-map body :is(.about, .recent, .contact) .section-head { width: auto; }
/* Pozele din „Cine suntem” sunt înclinate, așa că colțurile lor ieșeau cu ~6px peste marginea benzii și a foii.
   Le strângem puțin ca vârfurile colțurilor să cadă exact pe margine (procente din coloană: cresc odată cu poza). */
.hc-map .about__photo { margin-inline: min(1.4%, 7px); }
.hc-map .about__more { margin-left: min(1.9%, 9px); margin-right: min(1.2%, 6px); }
.hc-map .trips__hint { top: 0; align-self: center; align-items: center; }
.hc-map .trips__hint svg { margin: 0; }
@media (min-width: 981px) {
  .hc-map .trips__hint { margin-right: calc(clamp(20px, 4vw, 48px) - 26px); }
}
