
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root{
 --bg:#f5f6f2;--surface:#fff;--surface-2:#eef2ef;--text:#17211d;--muted:#68746e;
 --line:#d9dfdb;--line-strong:#c6d0ca;--blue:#286f8e;--blue-soft:#e7f1f5;
 --green:#6f982c;--green-soft:#edf5df;--danger:#c7434f;
 --r-sm:8px;--r-md:12px;--r-lg:18px;
 --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
 --shadow:0 12px 34px rgba(22,35,29,.10)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,Arial,sans-serif}
button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid rgba(40,111,142,.28);outline-offset:2px}
.site-header{background:rgba(245,246,242,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100;backdrop-filter:blur(10px)}
.header-inner{max-width:1320px;height:72px;margin:auto;padding:0 var(--s5);display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand img{width:42px;height:42px;border-radius:11px}.brand b{font-size:22px;line-height:1;display:block}.brand span{font-size:11px;color:var(--muted);display:block;margin-top:4px}
.weather{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;padding:7px 10px;border-radius:var(--r-md)}.weather:hover{background:var(--surface-2)}.weather>span:first-child svg{width:24px;height:24px;display:block}.weather>strong{font-size:22px}.weather>span:last-child{display:flex;flex-direction:column}.weather b{font-size:11px}.weather small{font-size:10px;color:var(--muted)}
.page{max-width:1320px;margin:auto;padding:var(--s6) var(--s5) var(--s7)}
.catalog-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:var(--s5)}.eyebrow{margin:0 0 3px;color:var(--blue);font-size:10px;font-weight:700;letter-spacing:.08em}.catalog-head h1{font-size:31px;line-height:1.12;margin:0;letter-spacing:-.035em}.intro{margin:7px 0 0;color:var(--muted);font-size:13px}.route-count{font-weight:600;color:#46534d;margin-bottom:3px}
.discovery{display:grid;grid-template-columns:270px 1fr auto;gap:var(--s3);align-items:center;margin-bottom:var(--s5)}.search{height:44px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);display:flex;align-items:center;padding:0 12px;gap:8px}.search:focus-within{border-color:#8bb1c2}.search svg{width:17px;height:17px;fill:none;stroke:var(--muted);stroke-width:1.8}.search input{border:0;outline:0;background:none;width:100%;min-width:0}.quick-cats{display:flex;gap:7px}.quick-cats button{height:38px;border:1px solid var(--line);background:transparent;border-radius:999px;padding:0 14px}.quick-cats button:hover{background:var(--surface)}.quick-cats button.active{background:var(--text);color:white;border-color:var(--text)}
.filter-trigger{display:none;height:42px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);align-items:center;gap:7px;padding:0 12px;position:relative}.filter-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.filter-trigger i{display:none;width:7px;height:7px;border-radius:50%;background:var(--blue);position:absolute;right:5px;top:5px}
.catalog-layout{display:grid;grid-template-columns:208px minmax(0,1fr);gap:var(--s5);align-items:start}.filters{position:sticky;top:96px}.filter-head{display:none}.filter-section{padding:0 0 var(--s4);margin:0 0 var(--s4);border-bottom:1px solid var(--line)}.filter-label{font-size:11px;font-weight:700;color:#56635d;display:block;margin-bottom:7px}.region{font-weight:600}.check-row{display:flex;align-items:center;gap:8px;margin:8px 0;cursor:pointer}.check-row input{width:16px;height:16px;accent-color:var(--blue)}.filters select{width:100%;height:39px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:0 9px}.verified-filter{width:100%;border:0;background:var(--green-soft);border-radius:var(--r-md);padding:10px;text-align:left;display:flex;gap:9px;align-items:flex-start}.verified-filter>span{width:22px;height:22px;display:grid;place-items:center;background:#d9ecb8;color:#486b14;border-radius:50%;font-weight:700}.verified-filter div{display:flex;flex-direction:column}.verified-filter b{font-size:11px;color:#3f5d16}.verified-filter small{font-size:9px;line-height:1.35;color:#68794e;margin-top:2px}.verified-filter.active{box-shadow:inset 0 0 0 2px #7fa93c}.reset{display:none;margin-top:var(--s3);border:0;background:none;padding:6px 0;color:var(--blue);font-size:12px;font-weight:600}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}.card{min-width:0;background:var(--surface);border-radius:var(--r-lg);overflow:hidden;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.cover{aspect-ratio:16/10;position:relative;background:#dfe6e1;overflow:hidden}.cover img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .25s ease}.card:hover .cover img{transform:scale(1.015)}
.verified{position:absolute;left:12px;top:12px;background:var(--green-soft);color:#45651a;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:700;box-shadow:0 1px 5px #0001}.iconbtn{position:absolute;right:10px;top:10px;width:36px;height:36px;border:0;background:rgba(255,255,255,.93);border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 9px #0002}.iconbtn svg{width:18px;height:18px}.heart.on{color:var(--danger);background:#fff0f1}.completed{position:absolute;right:10px;bottom:10px;background:rgba(23,33,29,.84);color:white;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:600;display:flex;gap:4px;align-items:center}.completed svg{width:13px;height:13px}
.body{padding:14px 14px 13px}.body h3{font-size:18px;line-height:1.24;letter-spacing:-.015em;margin:0;min-height:44px}.area{font-size:11px;color:var(--muted);margin-top:3px}.difficulty{margin-top:10px;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600}.difficulty i{display:flex;gap:3px}.difficulty i span{width:12px;height:3px;border-radius:3px;background:#d8dfdb}.difficulty i span.on{background:var(--blue)}
.card-metrics{display:flex;align-items:center;gap:0;margin-top:10px;font-size:11px;color:#45524c;white-space:nowrap}.card-metrics span{display:flex;align-items:center}.card-metrics span+span:before{content:"·";color:#9ba69f;margin:0 7px}.card-metrics b{font-weight:600}.tags{display:flex;gap:5px;overflow:hidden;margin-top:11px;white-space:nowrap}.tag{font-size:9px;background:var(--surface-2);color:#65736c;border-radius:999px;padding:3px 7px}.tag.technical{background:#fff0e7;color:#9b4b24}.card.passed .cover img{filter:saturate(.7) brightness(.82)}
.drawer{display:none;position:fixed;inset:0;background:rgba(14,24,19,.44);z-index:300}.drawer.show{display:block}.sheet{position:absolute;right:0;top:0;bottom:0;width:min(760px,100%);background:var(--bg);overflow:auto;overscroll-behavior:contain}.sheethead{height:58px;position:sticky;top:0;z-index:20;background:rgba(245,246,242,.96);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 18px}.sheethead span{font-size:12px;font-weight:600;color:var(--muted)}.sheethead button{width:38px;height:38px;border:0;background:var(--surface);border-radius:50%;font-size:23px}.detail{padding:20px 22px 38px}.detail-sub{font-size:12px;color:var(--muted);margin-bottom:3px}.detail h2{font-size:28px;line-height:1.16;letter-spacing:-.03em;margin:0 0 8px}.detailtags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}
.detail-difficulty{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:12px;font-weight:600}.gallery{aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;position:relative;background:#dfe6e1}.gallerytrack{display:flex;width:100%;height:100%;transition:transform .25s ease}.gallerytrack img{width:100%;height:100%;flex:0 0 100%;object-fit:cover;cursor:zoom-in}.gprev,.gnext{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.93);font-size:24px}.gprev{left:12px}.gnext{right:12px}
.photo-actions{position:absolute;z-index:5;right:12px;top:12px;display:flex;gap:6px}.photo-action{border:0;background:rgba(255,255,255,.94);height:36px;border-radius:999px;padding:0 10px;display:flex;align-items:center;gap:5px;font-size:11px}.photo-action svg{width:16px;height:16px}.photo-action.fav.on{color:var(--danger)}.photo-action.passed.on{background:var(--text);color:white}
.actions{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.btn{min-height:40px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:0 12px;display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;font-size:11px;font-weight:600}.btn svg{width:16px;height:16px}.btn.gpx{background:var(--green-soft);border-color:#d4e6b8;color:#3f6115}.btn.fav.on{color:var(--danger)}.btn.passed.on{background:var(--text);color:white;border-color:var(--text)}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:4px 0 20px}.stat{padding:0 10px}.stat:first-child{padding-left:0}.stat+.stat{border-left:1px solid var(--line)}.stat span{display:block;font-size:9px;color:var(--muted);margin-bottom:3px}.stat b{font-size:13px}.box{padding:0;margin:20px 0}.box h4{font-size:12px;margin:0 0 7px}.routeinfo{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.ri{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:10px 0}.ri+.ri{border-top:1px solid var(--line)}.ri b{font-size:10px;color:var(--muted)}.ri span{font-size:12px}.preview iframe{width:100%;height:350px;border:0;border-radius:var(--r-md)}.profile{height:170px;background:var(--surface);border-radius:var(--r-md);overflow:hidden}.gpxmap{height:350px;border-radius:var(--r-md);overflow:hidden}.source-note{font-size:10px;color:var(--muted);margin-top:5px}.notice,.warning{padding:11px 13px;border-radius:var(--r-md);font-size:11px;margin-top:14px}.notice{background:var(--blue-soft);color:#3c5f6f}.warning{background:#fff0e7;color:#7d421f}
.verified-note{background:var(--green-soft);padding:12px 13px;border-radius:var(--r-md);font-size:11px;color:#52683a;margin-top:18px}.verified-note b{display:block;color:#3f6115;margin-bottom:2px}
.fab{position:fixed;right:18px;bottom:18px;z-index:120;border:0;background:var(--text);color:white;border-radius:999px;height:42px;padding:0 15px;box-shadow:var(--shadow)}.fab span{background:#ffffff20;padding:2px 6px;border-radius:999px;margin-left:4px}.favpanel{display:none;position:fixed;right:18px;bottom:68px;width:320px;max-height:55vh;overflow:auto;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);z-index:130;padding:14px}.favpanel.show{display:block}.frow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.frow button{border:0;background:var(--surface-2);border-radius:8px;padding:5px 8px}.lightbox{display:none;position:fixed;inset:0;background:#0b100de8;z-index:500;place-items:center}.lightbox.show{display:grid}.lightbox img{max-width:94vw;max-height:92vh}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,18px);background:#17211d;color:white;padding:9px 13px;border-radius:999px;font-size:11px;opacity:0;pointer-events:none;transition:.18s;z-index:600}.toast.show{opacity:1;transform:translate(-50%,0)}
.filter-backdrop{display:none}.route-open{overflow:hidden}
@media(max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){
 .header-inner{height:62px;padding:0 14px}.brand img{width:36px;height:36px}.brand b{font-size:19px}.brand span{display:none}.weather{padding:5px}.weather>span:last-child small{display:none}.weather>strong{font-size:19px}
 .page{padding:20px 12px 40px}.catalog-head{margin-bottom:16px}.catalog-head h1{font-size:26px}.intro{font-size:12px}.route-count{display:none}
 .discovery{grid-template-columns:1fr auto;margin-bottom:14px;gap:8px}.search{grid-column:1/2}.filter-trigger{display:flex;grid-column:2/3}.filter-trigger span{display:none}.filter-trigger{width:44px;padding:0;justify-content:center}.quick-cats{grid-column:1/3;grid-row:2;overflow-x:auto;padding-bottom:2px}.quick-cats button{flex:0 0 auto}
 .catalog-layout{display:block}.filters{position:fixed;z-index:410;left:10px;right:10px;bottom:10px;top:auto;background:var(--surface);padding:14px;border-radius:18px;box-shadow:0 20px 60px #0004;max-height:82vh;overflow:auto;transform:translateY(calc(100% + 30px));transition:transform .2s}.filters.mobile-open{transform:translateY(0)}.filter-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.filter-head>div{display:flex;align-items:baseline;gap:8px}.filter-head span{font-size:10px;color:var(--muted)}.filter-head button{border:0;background:var(--surface-2);width:34px;height:34px;border-radius:50%;font-size:20px}.filter-backdrop{display:block;position:fixed;inset:0;background:#10181366;z-index:400;opacity:0;pointer-events:none;transition:.18s}.filter-backdrop.show{opacity:1;pointer-events:auto}.filters-open{overflow:hidden}
 .grid{grid-template-columns:1fr;gap:12px}.card{border-radius:16px}.cover{aspect-ratio:16/9}.body{padding:13px}.body h3{min-height:0;font-size:18px}.card-metrics{font-size:11px}
 .sheet{width:100%}.sheethead{height:54px}.detail{padding:14px 12px 28px}.detail h2{font-size:24px}.gallery{border-radius:14px}.stats{grid-template-columns:repeat(3,1fr);row-gap:12px}.stat{padding:0 8px}.stat:nth-child(4){border-left:0;padding-left:0}.stat:nth-child(n+4){padding-top:10px;border-top:1px solid var(--line)}.preview iframe,.gpxmap{height:300px}.fab{right:12px;bottom:12px}.favpanel{left:12px;right:12px;width:auto;bottom:62px}
}
@media(max-width:390px){.card-metrics span+span:before{margin:0 5px}.card-metrics{font-size:10px}.photo-action span{display:none}.photo-action{width:36px;padding:0;justify-content:center}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* v19 refinement only */
.page{padding-top:24px!important}
.catalog-layout{
  grid-template-columns:208px minmax(0,1fr)!important;
  gap:24px!important;
  align-items:start!important
}
.content-column{min-width:0}
.catalog-head{
  margin:0 0 16px!important;
  min-height:0!important
}
.catalog-head h1{font-size:30px!important}
.intro{margin-top:5px!important}
.discovery{
  grid-template-columns:270px 1fr auto!important;
  margin-bottom:16px!important;
  gap:10px!important
}
.filters{top:88px!important}

/* Difficulty: text-first, no progress bars */
.difficulty,.detail-difficulty{gap:0!important}
.difficulty .difficulty-value,
.detail-difficulty .difficulty-value{font-weight:600}
.difficulty .difficulty-score,
.detail-difficulty .difficulty-score{
  color:var(--muted);
  font-weight:500
}

/* Metrics stay as one compact line */
.card-metrics{margin-top:8px!important}
.card-metrics .metric-duration{font-weight:700;color:var(--text)}
.card-metrics .metric-secondary{color:#53615a}

/* Secondary tags: more readable but still quiet */
.tag{
  background:#e3e9e5!important;
  color:#4d5e55!important
}

/* Drawer title refinement */
.detail h2{font-size:25px!important}

/* No duplicate image actions */
.photo-actions{display:none!important}

/* Neutral fallback, never hikes8 logo */
.image-fallback{
  width:100%;height:100%;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:8px;
  background:#e8ede9;
  color:#707d76;
  font-size:11px;
  text-align:center;
  padding:20px
}
.image-fallback svg{
  width:34px;height:34px;
  fill:none;stroke:#87948d;stroke-width:1.5
}

@media(max-width:780px){
 .page{padding-top:16px!important}
 .catalog-layout{display:block!important}
 .catalog-head{margin-bottom:12px!important}
 .discovery{margin-bottom:12px!important}
 .detail h2{font-size:22px!important}
}

/* v20 final polish */
.catalog-layout{
  grid-template-columns:196px minmax(0,1fr)!important;
}
.body h3{
  font-weight:600!important;
}
.tag{
  color:#43544b!important;
}
/* keep all accepted structure; only tiny rhythm polish */
@media(max-width:780px){
 .catalog-layout{display:block!important}
}

/* v22: card information hierarchy refinement only */
.card{display:flex;flex-direction:column}
.body{display:flex;flex-direction:column;flex:1}
.body h3{
  min-height:0!important;
  margin:0!important;
}
.area{
  margin-top:5px!important;
  font-size:12px!important;
  line-height:1.35!important;
  font-weight:400!important;
  color:var(--muted)!important;
}
.difficulty{
  margin-top:12px!important;
}
.card-metrics{
  margin-top:7px!important;
}
.tags{
  margin-top:auto!important;
  padding-top:10px!important;
}
@media(max-width:780px){
 .area{margin-top:4px!important;font-size:12px!important}
 .difficulty{margin-top:11px!important}
 .tags{padding-top:9px!important}
}

/* v24 — minimal fixes on top of accepted v22 */
.card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.body{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
}
.identity{
  flex:0 0 auto;
}
.body h3{
  min-height:0!important;
  margin:0!important;
}
.area{
  margin-top:5px!important;
  font-size:12px!important;
  line-height:1.35!important;
  color:var(--muted)!important;
}
.scan-block{
  margin-top:auto;
  padding-top:12px;
}
.scan-block .difficulty{
  margin-top:0!important;
}
.scan-block .tags{
  margin-top:11px!important;
}

/* preserve existing mobile card proportions */
@media(max-width:780px){
  .scan-block{padding-top:11px}
}

/* v25 — exact user polish only */
.scan-block{
  margin-top:auto!important;
  padding-top:16px!important;
}
.scan-block .difficulty{
  margin-top:0!important;
}
.scan-block .card-metrics{
  margin-top:7px!important;
}
.scan-block .tags{
  margin-top:8px!important;
}
@media(max-width:780px){
  .scan-block{padding-top:14px!important}
}
