@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/inter-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/inter-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/inter-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500 600;
  font-display: swap;
  src: url(fonts/playfair-italic-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500 600;
  font-display: swap;
  src: url(fonts/playfair-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500 600;
  font-display: swap;
  src: url(fonts/playfair-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(fonts/playfair-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(fonts/playfair-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(fonts/playfair-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--paper:#f6f3eb;--ink:#202820;--muted:#5c645a;--line:#d9d8cb;--dark:#181e18;--leaf:#282e26;--soft:#a9af9f;--accent:#e7b26a;--header:68px;--serif:"Playfair Display",Georgia,serif;--sans:Inter,system-ui,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{min-width:320px;scrollbar-gutter:stable}
body{margin:0;color:var(--ink);background:var(--paper);font:400 15px/1.5 var(--sans)}
button,input,select{font:inherit;color:inherit}
button,select{cursor:pointer}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #9e632d;outline-offset:4px}
a{color:inherit}
h1,h2,h3,p,blockquote,figure{margin:0}
h1,h2{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.045em}
.site-header{height:var(--header);position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 clamp(16px,3vw,48px);background:var(--paper);border-bottom:1px solid var(--line)}
.route-page .site-header{background:#1b211b;color:#f6f1e5;border-color:#363e34}
.wordmark{display:inline-flex;gap:12px;align-items:center;text-decoration:none;font:500 clamp(24px,3vw,33px)/1 var(--serif);white-space:nowrap}
.wordmark span{font:600 10px/1 var(--sans);letter-spacing:.12em;color:#7d4a20}
.route-page .wordmark span{color:var(--accent)}
.site-header nav{display:flex;gap:clamp(14px,2.5vw,34px);align-items:center}
.site-header nav a{font-size:13px;text-decoration:none;white-space:nowrap;padding:8px 0;border-bottom:1px solid transparent}
.site-header nav a[aria-current]{border-color:currentColor}
.site-header nav a:hover{opacity:.73}
.journey{display:grid;background:var(--dark);overflow-anchor:none;--beat:clamp(410px,75svh,790px)}
.scroll-scenes,.route-stage{grid-area:1/1}
.scroll-scenes{pointer-events:none}
.scroll-beat{height:calc(var(--beat)*var(--pace,1));scroll-margin-top:var(--header)}
.route-stage{align-self:start;position:sticky;top:var(--header);display:grid;grid-template-columns:minmax(0,1.7fr) minmax(315px,1fr);height:calc(100svh - var(--header));min-height:450px}
.map-area{position:relative;isolation:isolate;overflow:hidden;background:#2b332b;color:#f7f2e7}
#map-base,#map-lines,#map-pins{position:absolute;inset:0;width:100%;height:100%}
#map-base{filter:grayscale(.68) invert(.9) hue-rotate(145deg) brightness(.69);opacity:.92;background:#ebeae0}
#map-lines,#map-pins{pointer-events:none;overflow:hidden}
.map-heading{position:absolute;left:clamp(17px,3vw,40px);top:clamp(18px,3.5vw,44px);text-shadow:0 2px 20px #161b16,0 2px 6px #161b16;pointer-events:none}
.map-heading p,.story-progress{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.map-heading h1{margin-top:5px;font-size:clamp(38px,5.3vw,80px)}
.map-controls{position:absolute;bottom:36px;left:clamp(17px,3vw,40px);max-width:calc(100% - 60px);display:grid;gap:7px}
.map-controls label{font-size:11px;font-weight:600;letter-spacing:.06em}
.map-controls select{min-height:39px;max-width:100%;border:1px solid #57624f;background:#242c23;padding:6px 34px 6px 10px;border-radius:5px;color:#f6f1e7}
.day-links{display:flex;gap:5px;margin-top:3px}
.day-links button{color:#eeeadd;background:#263023;border:1px solid #52604f;padding:6px 9px;border-radius:4px;font-size:11px}
.day-links button[aria-current=true]{color:#24251e;background:var(--accent);border-color:var(--accent);font-weight:700}
.map-legend,.map-source{position:absolute;bottom:8px;font-size:10px;color:#d6dcd0;background:#252c24e8;padding:3px 5px;border-radius:3px}
.map-legend{left:13px}.map-legend span{color:var(--accent)}
.map-source{right:9px}
.photo-pin{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;text-align:left;border:1px solid #7c826d;min-width:143px;max-width:180px;background:#252d25;color:#f8f1e3;padding:5px;border-radius:5px;font-size:11px;line-height:1.3;box-shadow:0 8px 26px #111a15a0;pointer-events:auto}
.photo-pin img{width:45px;height:43px;object-fit:cover;border-radius:3px}
.photo-pin span{padding-right:4px}
.story-panel{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;gap:clamp(10px,2vh,23px);padding:clamp(18px,3.4vw,50px);background:#f5f1e7}
.story-progress{display:flex;justify-content:space-between;color:var(--muted);gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px}
#story-place{color:#785025;font-size:12px;font-weight:600;margin-bottom:6px}
.story-panel h2{font-size:clamp(29px,4vw,61px);max-width:12ch}
.story-photo{display:block;position:relative;isolation:isolate;width:100%;padding:0;border:0;border-radius:3px;background:#dad9ca;overflow:hidden;aspect-ratio:4/3;max-height:44svh}
.story-photo img{display:block;width:100%;height:100%;object-fit:cover;opacity:var(--arrival,1);transform:scale(var(--photo-scale,1))}
#story-action{position:absolute;bottom:9px;right:9px;font-size:11px;padding:5px 8px;border-radius:3px;color:#f5f2e9;background:#182118e8}
.story-panel blockquote{font:400 clamp(16px,1.75vw,23px)/1.33 var(--serif);border-left:2px solid #b17845;padding-left:11px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.story-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#575f54;font-size:11px}
.story-footer a{text-decoration:none}.story-footer a:hover{text-decoration:underline}
.scroll-cue span{font-size:17px;color:#865424;margin-right:3px}
.journey-footer{text-align:center;padding:60px 16px 75px}
.journey-footer p,.archive-intro p{font-size:12px;color:var(--muted)}
.journey-footer h2{font-size:clamp(33px,5vw,60px);margin:10px 0 22px}
.filled-link{display:inline-flex;gap:12px;background:var(--ink);color:#fffdf2;border-radius:3px;padding:11px 15px;text-decoration:none;font-size:13px}
.archive-main{max-width:1400px;margin:0 auto;padding:clamp(25px,5vw,64px) clamp(15px,4vw,55px) 65px}
.archive-intro h1{font-size:clamp(46px,8vw,110px);margin-top:6px}
.filters{display:flex;align-items:end;gap:16px 25px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line)}
.filters label{display:grid;gap:5px;font-size:12px;color:var(--muted);max-width:100%}
.filters select{height:42px;max-width:min(100%,360px);background:#fffdf6;border:1px solid var(--line);border-radius:4px;padding:0 8px;color:var(--ink)}
#tags{display:flex;gap:7px;flex-wrap:wrap}
#tags button,.archive-more{border:1px solid var(--line);background:transparent;padding:7px 10px;border-radius:4px;font-size:12px}
#tags button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fffdf1}
#result-count{margin:12px 0 20px;color:var(--muted);font-size:12px}
.archive-event{margin-bottom:33px;scroll-margin-top:calc(var(--header) + 12px)}
.archive-event h2{font-size:clamp(25px,3.5vw,43px);margin:5px 0 13px}
.archive-event>p{color:var(--muted);font-size:12px}
.archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:11px}
.archive-tile{position:relative;display:block;width:100%;border:0;padding:0;border-radius:3px;overflow:hidden;background:#e0e0d3;aspect-ratio:4/3}
.archive-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .24s}
.archive-tile:hover img{transform:scale(1.04)}
.archive-tile span{position:absolute;right:7px;bottom:7px;border-radius:3px;background:#182017e8;color:#fbf8ee;padding:4px 6px;font-size:10px}
.archive-more{margin-top:12px}
.media-dialog{max-width:min(94vw,1040px);max-height:90svh;width:100%;border:1px solid #4a5147;border-radius:7px;background:#1c231c;color:#f7f4e9;padding:16px;overflow:auto}
.media-dialog::backdrop{background:#111810cc}
.viewer-bar,.viewer-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.viewer-bar{margin-bottom:11px}
.viewer-title{font-weight:600;font-size:14px;max-width:85%}
.viewer-button,.viewer-download{border:1px solid #677260;color:#f7f3e8;background:#2e392b;border-radius:4px;padding:7px 10px;min-height:38px;text-decoration:none;font-size:12px}
.viewer-tools{margin-top:11px}
.viewer-controls{display:flex;align-items:center;gap:9px;font-size:12px}
.viewer-controls button:disabled{opacity:.4;cursor:default}
.viewer-stage{display:grid;place-items:center;background:#121812;border-radius:4px;overflow:hidden}
.viewer-stage>img,.viewer-stage>video{display:block;max-width:100%;width:auto;max-height:60svh;object-fit:contain}
.viewer-pano{width:min(245px,66vw,40svh);aspect-ratio:3/4;position:relative;overflow:hidden;touch-action:pan-y;cursor:grab;background:#151c15}
.viewer-pano img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% center;pointer-events:none}
.viewer-pano.overview{width:min(740px,100%);aspect-ratio:auto}
.viewer-pano.overview img{width:100%;height:auto;object-fit:contain}
.pano-track{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin-top:8px}
.pano-track input{width:min(260px,100%);accent-color:var(--accent)}
.viewer-note{max-width:70ch;margin-top:10px;font-size:13px;color:#d2dace;white-space:pre-line}
@media(max-width:770px){
  :root{--header:54px}
  .route-stage{grid-template-columns:1fr;grid-template-rows:minmax(245px,43%) minmax(0,1fr);min-height:580px}
  .map-heading{top:12px;left:15px}.map-heading h1{font-size:clamp(29px,7vw,45px)}
  .map-controls{bottom:28px;left:12px;gap:2px}.map-controls label,.day-links{display:none}
  .map-controls select{min-height:32px;font-size:11px}
  .story-panel{gap:7px;padding:10px 16px;justify-content:center}
  .story-progress{padding-bottom:5px;font-size:9px}
  #story-place{font-size:10px;margin-bottom:3px}
  .story-panel h2{font-size:clamp(22px,5vw,34px);max-width:none}
  .story-photo{max-height:24svh;aspect-ratio:16/10}
  .story-panel blockquote{font-size:14px;line-height:1.25;-webkit-line-clamp:2}
  .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:380px){.site-header nav a{font-size:11px}.wordmark{gap:5px}.story-photo{max-height:20svh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.scroll-scenes{padding-bottom:calc(100svh - var(--header))}

.map-heading #map-ride{display:table;margin-top:9px;padding:5px 9px;border-radius:4px;background:#24333de8;color:#d1e9fc;text-transform:none;text-shadow:none;letter-spacing:0}
.map-legend,.map-source{display:flex;align-items:center;gap:8px}
.map-legend{left:8px}
.map-legend span{display:inline-flex;align-items:center;gap:3px;color:#d6dcd0;white-space:nowrap}
.map-legend span::before{content:"";width:12px;border-top:2px solid #edb86f}
.map-legend .legend-rail::before{border-color:#a0ccef}
.map-legend .legend-gap::before{border-top:2px dotted #dac9af}
.story-panel{gap:clamp(8px,1.55vh,17px)}
.story-photo{max-height:37svh;min-height:0}
.story-details{display:grid;gap:7px}
.story-panel blockquote{-webkit-line-clamp:3}
#story-context{font-size:13px;line-height:1.43;color:#535c50}
.story-chat{position:relative}
.story-chat:has(button[hidden]){display:none}
#chat-toggle{border:0;background:none;color:#74502c;text-decoration:underline;text-underline-offset:3px;padding:1px 0;font-size:12px}
#story-chat{position:absolute;z-index:2;bottom:calc(100% + 4px);left:0;max-width:100%;padding:9px 11px;background:#f6f3eb;border:1px solid #bdb4a3;border-radius:3px;box-shadow:0 5px 18px #302b2433;font-size:13px;color:#3a4439}
@media(max-width:770px){
  .story-panel{gap:6px}
  .story-photo{max-height:22svh}
  .story-details{gap:3px}
  .story-panel blockquote{-webkit-line-clamp:2}
  #story-context{font-size:11px;line-height:1.34}
  #chat-toggle{font-size:11px}
  .map-controls{bottom:50px}
  .map-legend,.map-source{gap:6px;font-size:9px}
  .map-legend{bottom:28px}
  .map-legend span::before{width:8px}
}
@media(max-width:380px){.story-photo{max-height:17svh}}
@media(min-width:771px){
  .route-stage{grid-template-rows:minmax(0,1fr)}
  .story-panel{padding-block:clamp(16px,3.25svh,36px)}
  .story-panel h2{font-size:clamp(28px,min(3.8vw,7svh),55px);max-width:15ch;overflow-wrap:anywhere}
}
@media(min-width:771px) and (max-height:680px){
  .story-panel{gap:7px}
  .story-panel h2{font-size:clamp(26px,5.6svh,40px)}
  .story-panel blockquote{font-size:16px;-webkit-line-clamp:2}
  .story-photo{max-height:31svh}
}
