@import url('https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&family=Noto+Sans+SC:wght@400;500;700&family=Noto+Serif+SC:wght@500;600;700;900&display=swap');
:root{--ink:#173348;--muted:#57707d;--paper:#f4ecd9;--paper2:#fffaf0;--line:#c9b998;--red:#ae4034;--red-pale:#f7dfd3;--green:#e3ece5;--yellow:#f3e6c8;--blue:#e4eff1;--serif:'Noto Serif SC','Songti SC',serif;--sans:'Noto Sans SC','PingFang SC',sans-serif;--display:'Ma Shan Zheng',cursive;--ease:cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background-color:var(--paper);background-image:radial-gradient(rgba(67,48,29,.08) .5px,transparent .65px);background-size:6px 6px;color:var(--ink);font:15px/1.72 var(--sans);-webkit-font-smoothing:antialiased;text-wrap:pretty}a{color:inherit}img{max-width:100%;object-fit:cover}.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;padding:8px}.wrap{max-width:920px;margin:auto;padding:0 18px 72px}.mast{margin:0 -18px;padding:25px 22px 22px;background:var(--ink);color:#fff7e5;position:relative;overflow:hidden}.mast:after{content:attr(data-stamp);position:absolute;right:-10px;bottom:-20px;color:rgba(255,255,255,.07);font:900 56px/1 var(--serif);letter-spacing:-.1em}.crumb{position:relative;color:#cbd9d6;font-size:12px;text-decoration:none}.mast h1{position:relative;margin:12px 0 5px;font:700 clamp(27px,8vw,45px)/1.16 var(--serif);letter-spacing:-.04em;text-wrap:balance}.mast p{position:relative;margin:0;color:#d8e2dc;font-size:13px}.nav{position:sticky;z-index:10;top:0;margin:0 -18px;padding:9px 18px;background:rgba(244,236,217,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);white-space:nowrap;overflow:auto;text-align:center}.nav a{display:inline-block;margin:0 3px;padding:5px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,250,240,.42);font-size:12px;text-decoration:none;transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}.nav a:hover{transform:translateY(-1px)}.nav a:hover,.nav a.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}main{min-height:60vh}.section{margin-top:34px;scroll-margin-top:50px}.head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:7px;margin-bottom:13px}.head h2{margin:0;font:700 25px/1.1 var(--serif);letter-spacing:-.03em;text-wrap:balance}.journey-section .head{position:relative;justify-content:center}.journey-section .head span{position:absolute;right:0}.head span{color:var(--red);font-size:11px;letter-spacing:.08em}.lede{margin:13px 0;padding:13px 14px;border-left:4px solid var(--red);background:rgba(255,255,255,.46);font-size:13px}.grid{display:grid;gap:10px}.grid.two{grid-template-columns:repeat(2,1fr)}.card{padding:14px;background:rgba(255,250,240,.8);border:1px solid var(--line);box-shadow:3px 4px 0 rgba(161,131,82,.16)}.card h3{margin:0 0 6px;font:700 17px/1.3 var(--serif)}.card p,.card ul{margin:6px 0;font-size:12px}.card ul{padding-left:18px}.city-card{min-height:160px;text-decoration:none;position:relative;overflow:hidden;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}.city-card:after{content:attr(data-code);position:absolute;right:5px;bottom:-12px;color:rgba(23,51,72,.07);font:900 57px/1 var(--serif);letter-spacing:-.15em}.city-card:hover{transform:translate(-2px,-3px);box-shadow:7px 8px 0 rgba(174,64,52,.18)}.city-card .date{color:var(--red);font-size:11px}.city-card b{position:relative;display:block;font:700 23px/1.25 var(--serif)}.city-card small{position:relative;display:block;margin-top:7px;color:var(--muted)}.badge{display:inline-block;margin:2px 4px 2px 0;padding:2px 5px;border:1px solid #beaa82;color:#5a5b50;font-size:10px}.badge.alert{border-color:#d48a78;color:#98382e;background:#fff5ee}.badge.go{border-color:#8ca7a7;color:#315d61;background:#eff9f8}.mapbox{margin:14px 0 19px;border:1px solid var(--line);box-shadow:4px 5px 0 rgba(161,131,82,.15)}.mapcap{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--paper2);font-size:11px}.mapcap b{font-family:var(--serif);font-size:14px}.map{height:340px}.route-pin{background:transparent!important;border:0!important}.route-pin i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:2px solid #fff9ed;background:var(--red);box-shadow:0 1px 5px rgba(0,0,0,.3);color:white;font:500 11px var(--sans);font-style:normal}.backup-pin i{border-radius:6px;background:var(--ink);border:2px dashed var(--yellow);color:var(--yellow)}.map-legend-main,.map-legend-backup{font-style:normal}.map-legend-main{color:var(--red)}.map-legend-backup{display:inline-block;padding:0 4px;border-radius:4px;background:var(--ink);color:var(--yellow);font-size:11px}.day-nav{display:flex;gap:8px;overflow:auto;margin:17px 0}.day-nav a{flex:0 0 auto;padding:7px 10px;border:1px solid var(--ink);text-decoration:none;font-size:12px}.day-nav a.active{background:var(--ink);color:#fff8e8}.timeline{margin-left:7px;padding-left:20px;border-left:1px solid var(--line)}.step{position:relative;margin:13px 0;padding:0;display:grid;grid-template-columns:108px 1fr;background:var(--paper2);border:1px solid var(--line);overflow:hidden}.step:before{content:attr(data-no);position:absolute;z-index:2;left:96px;top:12px;display:grid;place-items:center;width:23px;height:23px;border:2px solid var(--paper2);border-radius:50%;background:var(--ink);color:#fff6e4;font-size:9px}.step .top{display:contents}.step .thumb{grid-column:1;grid-row:1;display:block;width:108px;height:108px;min-height:108px;object-fit:contain;filter:saturate(.82) sepia(.08)}.step .step-content{grid-column:2;grid-row:1;padding:14px 14px 14px 19px}.time{display:block;margin-bottom:4px;color:var(--red);font-size:11px;font-weight:700;line-height:1.45}.step h3{margin:0;font:700 17px/1.22 var(--serif);text-wrap:balance}.step p{margin:6px 0 0;color:#405965;font-size:12px}.action{margin-top:9px;padding:9px 10px;background:var(--green);border-left:3px solid #52756f;font-size:12px}.action b{color:#254f4a}.thumb{background:var(--yellow)}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.food-card,.backup-card{position:relative;overflow:hidden;padding:0;background:var(--paper2);border:1px solid var(--line);box-shadow:3px 4px 0 rgba(161,131,82,.13)}.food-card img,.backup-card img{display:block;width:100%;height:116px;object-fit:cover;filter:saturate(.78) sepia(.12)}.food-card .food-copy,.backup-card .backup-copy{padding:11px 12px}.food-card h3,.backup-card h3{margin:0;font:700 16px/1.25 var(--serif)}.food-card p,.backup-card p{margin:5px 0 0;color:#405965;font-size:12px}.backup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.backup-card{border-style:dashed;background:#f8f0db}.backup-card .backup-label{position:absolute;z-index:1;top:9px;left:9px;padding:3px 7px;border:1px solid #fff2df;border-radius:999px;background:var(--red);color:#fff9ed;font-size:10px}.backup-card img{height:126px}.backup-card h3{color:#81392f}.backup-card p{color:#5c5a50}.section .section-kicker{margin:-4px 0 12px;color:var(--muted);font-size:12px}.journey-tag{display:inline-block;margin-left:5px;padding:2px 7px;border-radius:999px;font:500 10px/1.4 var(--sans);vertical-align:2px}.food-tag{background:var(--yellow);border:1px solid #c9a864;color:#7a5a24}.backup-step{display:block;background:transparent;border:0;box-shadow:none;overflow:visible}.backup-step:before{display:none}.backup-offset{position:relative;display:flex;gap:12px;margin-left:108px;padding:10px 12px;background:#f8f0db;border:1px dashed #b89468;color:#5c5a50}.backup-thumb{width:84px;height:68px;flex:0 0 84px;border-radius:4px;object-fit:contain;filter:saturate(.72)}.backup-content{min-width:0}.backup-offset:before{content:'备用';position:absolute;left:-1px;top:-12px;padding:3px 8px;border:1px solid #fff2df;border-radius:999px;background:var(--red);color:#fff9ed;font-size:10px}.backup-offset .backup-label{display:inline-block;margin-bottom:3px;color:#81392f;font-size:10px}.backup-offset h3{margin:0;color:#81392f;font:700 16px/1.25 var(--serif)}.backup-offset p{margin:5px 0 0;font-size:12px}.backup-offset .time{margin-bottom:2px}.journey-item{scroll-margin-top:70px}.journey-flow .food-step{background:#fff8e9}.journey-flow .food-step .step-content{padding-top:12px;padding-bottom:12px}.warn{margin:14px 0;padding:12px 13px;background:var(--red-pale);border-left:4px solid var(--red);font-size:12px}.warn b{color:#8f3027}.food{margin:14px 0;padding:13px;background:var(--yellow);border:1px dashed #b79962;font-size:12px}.food h3{margin:0 0 5px;font:700 16px var(--serif)}.food ul{padding-left:18px;margin:5px 0}.choice{margin:13px 0;padding:12px;background:var(--blue);border:1px solid #9ab8bc;font-size:12px}.choice h3{margin:0 0 5px;color:#225b63;font:700 16px var(--serif)}.flow{font:500 12px/1.9 var(--sans);white-space:pre-line}.check{padding:0;margin:0;list-style:none}.check li{padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px}.check li:last-child{border:0}.check input{accent-color:var(--red);width:16px;height:16px;margin-right:7px;vertical-align:-3px}.footer{margin-top:38px;padding-top:15px;border-top:2px solid var(--ink);color:#657077;font-size:11px}.note{color:var(--muted);font-size:11px}@media(min-width:700px){.wrap{padding:0 30px 90px}.mast,.nav{margin-left:-30px;margin-right:-30px}.mast{padding:36px 42px}.grid.three{grid-template-columns:repeat(3,1fr)}.map{height:440px}.section{margin-top:45px}.timeline{margin-left:12px;padding-left:27px}.step:before{left:96px}.card{padding:17px}}@media(max-width:560px){.food-grid{grid-template-columns:1fr 1fr}.food-card img{height:100px}.backup-grid{grid-template-columns:1fr}.grid.two{grid-template-columns:1fr}.step{grid-template-columns:88px 1fr}.step:before{left:76px}.step .thumb{width:88px}.step .step-content{padding:13px 11px 13px 15px}.step h3{font-size:16px}.backup-offset{margin-left:88px;padding:9px 10px;gap:9px}.backup-thumb{width:68px;height:68px;flex-basis:68px}.mapcap{display:block}.mapcap b{display:block;margin-bottom:3px}.mapcap span{display:block;line-height:1.6}.map{height:300px}.nav{text-align:center}.nav a{min-height:38px;padding:8px 11px;line-height:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* 2026-08-06 passport travel-notebook itinerary — approved mixed layout */
.mast{background:rgba(255,250,240,.72);color:var(--ink);border:1px solid var(--line);box-shadow:4px 5px 0 rgba(92,69,34,.1);padding:30px 36px 24px;overflow:visible}
.mast:after{color:rgba(23,51,72,.07)}
.mast h1{font-size:clamp(32px,7vw,48px);margin:12px 0 5px}
.mast p{color:var(--muted)}
.mast .overview-bookmark{margin:-30px 0 12px -36px}
.nav{min-height:118px;padding:22px 28px 16px;background:linear-gradient(145deg,rgba(255,250,240,.98),rgba(235,223,198,.97));border-bottom:1px solid var(--line)}
.nav::before{content:"CITY PASSPORT · 08.11 — 08.15"}
.nav a{flex-basis:122px;width:122px;height:86px;margin:0 -5px;border-radius:7px 17px 17px 7px;background:var(--paper2);box-shadow:5px 6px 0 rgba(92,69,34,.1)}
.nav a.active{background:var(--ink);color:#fff7e6;box-shadow:7px 11px 0 rgba(23,51,72,.17)}
.day-nav{gap:8px;padding:17px 0 12px}
.day-nav a{min-width:126px;padding:10px 14px 12px;background:var(--paper2);box-shadow:2px 3px 0 rgba(78,58,28,.1);clip-path:polygon(0 0,100% 0,94% 100%,0 91%);border:1px solid #c7b78f;font-weight:700}
.day-nav a.active{background:var(--ink);color:#fff8e9;border-color:var(--ink)}
/* The itinerary is a passport insert: time ticket + paper card + floating photo. */
.journey-flow{margin-left:18px;padding-left:22px;border-left:1px solid #c5b58d;overflow:visible}
.journey-flow .step{display:grid!important;grid-template-columns:108px minmax(0,1fr)!important;gap:13px;align-items:stretch;margin:0 0 14px;padding:0;background:transparent;border:0;box-shadow:none;overflow:visible!important;position:relative;z-index:10}
.journey-flow .step:before{content:"";position:absolute;left:-30px;top:17px;width:11px;height:11px;border:3px solid var(--paper);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink);z-index:2}
.journey-flow .date-ticket{position:relative;min-height:78px;align-self:start;padding:11px 8px 9px;background:#e5dcc4;border:1px solid #c6b58a;color:var(--red);display:flex;align-items:flex-start;justify-content:center;line-height:1.25;font-size:13px;font-weight:800;letter-spacing:.03em}
.journey-flow .date-ticket:after{content:"";position:absolute;right:-8px;top:12px;border-left:8px solid #c6b58a;border-top:9px solid transparent;border-bottom:9px solid transparent}
.journey-flow .date-ticket time{font:800 13px/1.3 var(--sans)}
.journey-flow .step-body{position:relative;min-width:0;min-height:96px;padding:18px 88px 15px 18px;background:var(--paper2);border:1px solid var(--line);box-shadow:2px 3px 0 rgba(76,58,29,.1);overflow:visible!important;z-index:1}
.journey-flow .step-content{position:relative;z-index:100!important}
.journey-flow .step-body h3{margin:0 0 5px;font:700 20px/1.25 var(--serif)}
.journey-flow .step-body p{margin:0;color:#5c6c68;font-size:12px;line-height:1.55}
.journey-flow .step-body .action{margin-top:9px}
.journey-flow .thumb-frame.photo-note{position:absolute;right:-26px;left:auto;top:50%;width:116px;height:98px;transform:translateY(-50%) rotate(-4deg);z-index:999999!important;overflow:hidden;border:4px solid #fff8e8;box-shadow:4px 5px 0 rgba(69,51,26,.22);clip-path:polygon(4% 5%,96% 0,100% 92%,8% 100%,0 24%);background:var(--paper2)}
.journey-flow .thumb-frame.photo-note .thumb{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;filter:saturate(.86) sepia(.06)!important}
.journey-flow .step:nth-child(2) .photo-note{right:-31px;transform:translateY(-50%) rotate(5deg)}
.journey-flow .step:nth-child(3) .photo-note{right:-22px;transform:translateY(-50%) rotate(-2deg)}
.journey-flow .step:nth-child(4) .photo-note{right:-28px;transform:translateY(-50%) rotate(3deg)}
.journey-flow .backup-step{display:block!important;margin:26px 0 26px!important;padding:0!important;position:relative;z-index:20!important;background:transparent;border:0;overflow:visible!important;transform:rotate(1.8deg);transform-origin:center center}
.journey-flow .backup-offset{position:relative;display:block!important;margin-left:108px;padding:18px 112px 16px 20px;min-height:106px;background:transparent;border:0;overflow:visible!important}
.journey-flow .backup-offset:before{content:"";position:absolute;inset:0;background:#fff1cf;border:1px solid #c9a77d;clip-path:polygon(.7% 5%,98.8% 0,100% 92%,3% 100%,0 18%);box-shadow:7px 8px 0 rgba(76,58,29,.14);z-index:0;pointer-events:none}
.journey-flow .backup-content{position:relative;z-index:1000!important;min-width:0}
.journey-flow .backup-offset:after{content:"备用";position:absolute;left:0;top:-13px;padding:5px 8px;border-radius:12px 12px 0 0;background:var(--red);color:#fff8e8;font-size:10px;font-weight:800;z-index:1001}
.journey-flow .backup-content .backup-label{display:block;margin-bottom:3px;color:var(--red);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.journey-flow .backup-content h3{margin:3px 0;font:700 18px/1.25 var(--serif);color:#81392f}
.journey-flow .backup-content p{margin:0;color:#5c6c68;font-size:12px;line-height:1.55}
.journey-flow .backup-thumb.photo-note{position:absolute;right:-20px;left:auto;top:50%;width:82px;height:70px;transform:translateY(-50%) rotate(-7deg);z-index:999999!important;overflow:hidden;border:4px solid #fff8e8;box-shadow:4px 5px 0 rgba(69,51,26,.22);clip-path:polygon(5% 0,100% 8%,95% 93%,12% 100%,0 19%);background:var(--paper2)}
.journey-flow .backup-thumb.photo-note .backup-thumb{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;filter:saturate(.82) sepia(.08)!important}
@media(max-width:560px){
 .mast{padding:26px 18px 18px}.mast .overview-bookmark{margin:-26px 0 12px -18px}
 .nav{min-height:104px;padding:24px 15px 13px;justify-content:flex-start}.nav a{flex-basis:102px;width:102px;height:76px}.nav a strong{font-size:22px}.nav-tape{flex-basis:41px;width:41px;height:25px}
 .journey-flow{margin-left:9px;padding-left:12px}.journey-flow .step{grid-template-columns:62px minmax(0,1fr)!important;gap:9px;margin-bottom:12px}.journey-flow .date-ticket{min-height:62px;font-size:10px}.journey-flow .date-ticket time{font-size:10px}.journey-flow .step-body{padding:14px 65px 12px 12px}.journey-flow .step-body h3{font-size:17px}.journey-flow .step-body p{font-size:11px}.journey-flow .thumb-frame.photo-note{right:-18px;width:82px;height:70px}.journey-flow .step:nth-child(2) .photo-note{right:-22px}.journey-flow .step:nth-child(3) .photo-note{right:-15px}
 .journey-flow .backup-offset{margin-left:62px;padding:15px 76px 13px 14px;min-height:88px}.journey-flow .backup-thumb.photo-note{right:-14px;width:62px;height:54px}.journey-flow .backup-content h3{font-size:16px}.journey-flow .backup-content p{font-size:11px}.journey-flow .backup-step{margin-top:22px!important;margin-bottom:22px!important}
}

/* 2026-08-06：行程缩略图与地图点位配色 */
/* 正式景点／行动／美食：固定方形，不随内容高度拉伸。 */
.step .thumb{height:108px;min-height:108px;align-self:start;aspect-ratio:1/1}
/* 备用项仍整体右缩进一个正式缩略图宽度；内部图片改为方形。 */
.backup-thumb{height:84px;aspect-ratio:1/1}
/* 地图：正式点位使用墨蓝，备用点位使用朱砂红；路线虚线仍由 JS 保持朱砂红。 */
.route-pin i{background:var(--ink)}
.backup-pin i{background:var(--red);border-color:var(--yellow);color:#fff9ed}
.map-legend-main{color:var(--ink)}
.map-legend-backup{background:var(--red);color:#fff9ed}
@media(max-width:560px){
  .step .thumb{width:88px;height:88px;min-height:88px}
  .backup-thumb{width:68px;height:68px;flex-basis:68px}
}

/* 方形展示框：图片完整拉伸铺满，不裁切、不留白。 */
.step .thumb,.backup-thumb{object-fit:fill;background:var(--yellow);object-position:center}

/* 方形相框：同图柔焦背景填满方框，前景按原始比例完整展示。 */
.thumb-frame{position:relative;display:block;overflow:hidden;background:var(--yellow);isolation:isolate}
.thumb-frame::before{content:"";position:absolute;inset:-14px;z-index:-1;background-image:var(--thumb-bg);background-size:cover;background-position:center;filter:blur(14px) saturate(.8) sepia(.1);transform:scale(1.08);opacity:.76}
.thumb-frame .thumb,.thumb-frame .backup-thumb{display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-width:none!important;object-fit:contain!important;object-position:center;background:transparent!important;filter:saturate(.86) sepia(.06)}
.thumb-frame.image-missing,.thumb-frame.image-missing::before{background-image:none;filter:none}
.step .thumb-frame{grid-column:1;grid-row:1;width:108px;height:108px;min-height:108px}
.backup-offset .thumb-frame{width:84px;height:84px;min-width:84px;flex:0 0 84px;border-radius:4px}
@media(max-width:560px){.step .thumb-frame{width:88px;height:88px;min-height:88px}.backup-offset .thumb-frame{width:68px;height:68px;min-width:68px;flex-basis:68px}}

/* 正式行程：左侧图片区块随卡片总高度伸展，并通过 aspect-ratio 保持为真正的 1:1。 */
.step:not(.backup-step){display:block;grid-template-columns:none;overflow:visible}
.step:not(.backup-step)::before{display:none}
.step:not(.backup-step) .top{display:flex;align-items:stretch;width:100%;min-height:100%}
.step:not(.backup-step) .thumb-frame{position:relative;display:block;align-self:stretch;flex:0 0 auto;width:auto!important;height:auto!important;min-height:0!important;aspect-ratio:1 / 1;grid-column:auto;grid-row:auto}
.step:not(.backup-step) .step-content{display:block;flex:1 1 0;min-width:0;padding:14px 14px 14px 19px;grid-column:auto;grid-row:auto}
.thumb-frame .route-no{position:absolute;z-index:3;right:-12px;top:12px;display:grid;place-items:center;width:23px;height:23px;border:2px solid var(--paper2);border-radius:50%;background:var(--ink);color:#fff6e4;font:500 9px/1 var(--sans)}
@media(max-width:560px){.step:not(.backup-step) .step-content{padding:13px 11px 13px 15px}.thumb-frame .route-no{right:-12px;top:10px}}

/* 修正：行程左栏是固定的方形显示框，不依据卡片高度或图片原始尺寸计算。 */
.step:not(.backup-step){display:grid;grid-template-columns:140px minmax(0,1fr);overflow:visible;min-height:140px}
.step:not(.backup-step) .top{display:contents}
.step:not(.backup-step) .thumb-frame{grid-column:1;grid-row:1;align-self:stretch;display:block;width:140px!important;height:140px!important;min-height:140px!important;max-width:140px;aspect-ratio:auto;flex:none}
.step:not(.backup-step) .step-content{grid-column:2;grid-row:1;display:block;min-width:0;padding:14px 14px 14px 19px}
@media(max-width:560px){.step:not(.backup-step){grid-template-columns:96px minmax(0,1fr);min-height:96px}.step:not(.backup-step) .thumb-frame{width:96px!important;height:96px!important;min-height:96px!important;max-width:96px}.step:not(.backup-step) .step-content{padding:13px 11px 13px 15px}}

/* 最终缩略图规则：固定方形框内原图居中完整显示，不使用柔焦或放大背景。 */
.thumb-frame{background:var(--paper2);border:1px solid rgba(201,185,152,.45)}
.thumb-frame::before{display:none!important;content:none!important}
.thumb-frame .thumb,.thumb-frame .backup-thumb{width:100%!important;height:100%!important;max-width:100%!important;min-height:0!important;display:block!important;object-fit:contain!important;object-position:center center!important;background:transparent!important;filter:none!important}

/* 备用卡：空出一个与正式缩略图相同的左栏，再放置自己的固定方形图片。 */
.backup-step{margin-left:140px!important;padding-left:0!important}
.backup-offset{display:grid!important;grid-template-columns:84px minmax(0,1fr)!important;gap:12px!important;align-items:start!important}
.backup-offset .thumb-frame{grid-column:1;grid-row:1;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;max-width:84px!important;display:block!important;aspect-ratio:1 / 1!important}
.backup-offset > :not(.thumb-frame){grid-column:2;min-width:0}
@media(max-width:560px){
  .backup-step{margin-left:96px!important}
  .backup-offset{grid-template-columns:68px minmax(0,1fr)!important;gap:10px!important}
  .backup-offset .thumb-frame{width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;max-width:68px!important}
}

/* 缩略图：以画面中心裁切，完整铺满固定正方形框。 */
.thumb-frame .thumb,.thumb-frame .backup-thumb{object-fit:cover!important;object-position:center center!important;background:transparent!important}

/* 备用项只做一次缩进：左边缘与正式卡的文字栏起点对齐。 */
.backup-step{margin-left:0!important}
.backup-offset{margin-left:140px!important}
@media(max-width:560px){.backup-step{margin-left:0!important}.backup-offset{margin-left:96px!important}}

/* 修正行程编号：标签需要越过图片框边缘，显示在图片与文字栏交界处。 */
.step:not(.backup-step){overflow:visible!important}
.step:not(.backup-step) .thumb-frame{overflow:visible!important;position:relative;z-index:3}
.step:not(.backup-step) .step-content{position:relative;z-index:1}
.thumb-frame .route-no{z-index:10!important;overflow:visible!important;white-space:nowrap}

/* 城市导航：护照页签以不规则胶布串联，旅行总览是红色书签，不参与行进序列。 */
.mast .overview-bookmark{
  position:relative; z-index:4; display:inline-flex; align-items:center; gap:6px;
  margin:-25px 0 12px -22px; padding:11px 20px 13px 15px;
  background:var(--red); color:#fff8eb; text-decoration:none;
  font:600 15px/1 var(--sans); letter-spacing:.02em;
  clip-path:polygon(0 0,100% 0,92% 100%,9% 91%,0 100%);
  box-shadow:3px 4px 0 rgba(15,31,42,.22); transition:transform .2s var(--ease),filter .2s var(--ease);
}
.mast .overview-bookmark::after{content:""; position:absolute; right:0; bottom:0; width:12px; height:12px; background:var(--ink); clip-path:polygon(100% 0,100% 100%,0 100%)}
.mast .overview-bookmark:hover{transform:translateY(-2px) rotate(-.5deg);filter:brightness(1.08)}
.mast .overview-bookmark span{font-size:20px;line-height:.7}
.nav{
  position:sticky; z-index:10; top:0; display:flex; align-items:center; justify-content:center;
  min-height:132px; margin:0 -18px; padding:20px 28px 17px;
  overflow-x:auto; overflow-y:hidden; scrollbar-width:none;
  background:linear-gradient(145deg,rgba(255,250,240,.98),rgba(235,223,198,.97));
  border-bottom:1px solid var(--line); white-space:nowrap;
}
.nav::-webkit-scrollbar{display:none}
.nav::before{content:"CITY PASSPORT · 08.11 — 08.15";position:absolute;right:20px;top:12px;color:rgba(23,51,72,.3);font:600 9px/1 var(--sans);letter-spacing:.16em}
.nav a{
  position:relative; z-index:2; flex:0 0 122px; width:122px; height:92px; margin:0 -5px;
  display:grid; place-content:center; gap:5px; text-align:center; color:var(--ink); text-decoration:none;
  border:1px solid #cbb990; border-radius:7px 17px 17px 7px;
  background:var(--paper2); box-shadow:5px 6px 0 rgba(92,69,34,.1);
  transform:rotate(var(--page-tilt,0deg)); transition:transform .22s var(--ease),background .22s var(--ease),color .22s var(--ease),box-shadow .22s var(--ease);
}
.nav a:nth-of-type(1){--page-tilt:-2deg}.nav a:nth-of-type(2){--page-tilt:1deg}.nav a:nth-of-type(3){--page-tilt:-1deg}.nav a:nth-of-type(4){--page-tilt:2deg}
.nav a::before{content:"";position:absolute;inset:8px;border:1px solid rgba(23,51,72,.16);border-radius:3px 11px 11px 3px;pointer-events:none}
.nav a strong,.nav a .nav-city-en{position:relative;z-index:1}.nav a strong{font:700 25px/1 var(--serif);letter-spacing:-.06em}.nav a .nav-city-en{color:#867b67;font:600 8px/1 var(--sans);letter-spacing:.16em}
.nav a:hover{z-index:4;transform:translateY(-7px) rotate(0deg);box-shadow:7px 10px 0 rgba(92,69,34,.12)}
.nav a.active{z-index:5;background:var(--ink);color:#fff7e6;border-color:var(--ink);transform:translateY(-11px) rotate(-1deg);box-shadow:7px 11px 0 rgba(23,51,72,.17)}
.nav a.active::before{border-color:rgba(255,247,230,.36)}.nav a.active .nav-city-en{color:#ccdad2}
.nav-tape{
  position:relative;z-index:1;flex:0 0 62px;width:62px;height:31px;margin:0 -4px;
  background:repeating-linear-gradient(103deg,rgba(191,171,133,.8) 0 8px,rgba(233,221,190,.76) 8px 15px);
  clip-path:polygon(4% 10%,100% 0,95% 85%,0 100%);opacity:.94;
  filter:drop-shadow(1px 2px 1px rgba(62,48,28,.12));transform:rotate(-6deg);
}
.nav-tape::after{content:"";position:absolute;inset:5px 8px;border-top:1px dashed rgba(105,83,44,.25)}.nav-tape-2{transform:rotate(5deg)}.nav-tape-3{transform:rotate(-4deg)}
@media(max-width:560px){
  .mast .overview-bookmark{margin:-25px 0 11px -22px;padding:10px 16px 12px 13px;font-size:14px}
  .nav{justify-content:flex-start;min-height:113px;padding:25px 15px 13px}.nav::before{right:14px;top:9px;font-size:8px}
  .nav a{flex-basis:102px;width:102px;height:79px}.nav a strong{font-size:22px}.nav-tape{flex-basis:41px;width:41px;height:25px}
}

/* final authority — passport notebook itinerary */
.mast{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:22px!important}.mast-copy{position:relative;z-index:2}.mast-kicker{display:block;margin-bottom:7px;color:var(--red);font:800 10px/1 var(--sans);letter-spacing:.16em}.entry-stamp{position:relative;z-index:2;display:grid;place-items:center;width:66px;height:66px;flex:0 0 66px;border:2px solid var(--red);border-radius:50%;color:var(--red);font:800 8px/1.28 var(--sans);letter-spacing:.08em;text-align:center;transform:rotate(-11deg);opacity:.88}
@media(max-width:560px){.mast{align-items:flex-start!important}.entry-stamp{width:48px;height:48px;flex-basis:48px;font-size:6px}.mast-kicker{font-size:8px}.mast h1{font-size:29px!important}}

.mast .overview-bookmark{position:absolute!important;left:0!important;top:0!important;z-index:30!important}
.journey-flow{margin-left:18px!important;padding-left:22px!important;border-left:1px solid #c5b58d!important;overflow:visible!important}
.journey-flow .step{display:grid!important;grid-template-columns:108px minmax(0,1fr)!important;gap:13px!important;align-items:stretch!important;margin:0 0 14px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important;position:relative!important;z-index:auto!important;isolation:auto!important;min-height:0!important}
.journey-flow .step:before{content:""!important;position:absolute!important;left:-30px!important;top:17px!important;width:11px!important;height:11px!important;border:3px solid var(--paper)!important;border-radius:50%!important;background:var(--ink)!important;box-shadow:0 0 0 1px var(--ink)!important;z-index:2!important}
.journey-flow .date-ticket{position:relative!important;display:flex!important;min-height:78px!important;align-self:start!important;padding:11px 8px 9px!important;background:#e5dcc4!important;border:1px solid #c6b58a!important;color:var(--red)!important;align-items:flex-start!important;justify-content:center!important;line-height:1.25!important;font-size:13px!important;font-weight:800!important;letter-spacing:.03em!important}
.journey-flow .date-ticket:after{content:""!important;position:absolute!important;right:-8px!important;top:12px!important;border-left:8px solid #c6b58a!important;border-top:9px solid transparent!important;border-bottom:9px solid transparent!important}
.journey-flow .date-ticket time{font:800 13px/1.3 var(--sans)!important}
.journey-flow .step-body{position:relative!important;display:block!important;grid-column:auto!important;grid-row:auto!important;min-width:0!important;min-height:96px!important;padding:18px 88px 15px 18px!important;background:var(--paper2)!important;border:1px solid var(--line)!important;box-shadow:2px 3px 0 rgba(76,58,29,.1)!important;overflow:visible!important;z-index:auto!important;isolation:auto!important}
.journey-flow .step-content{position:relative!important;display:block!important;z-index:100!important;padding:0!important}
.journey-flow .step-body h3{margin:0 0 5px!important;font:700 20px/1.25 var(--serif)!important}
.journey-flow .step-body p{margin:0!important;color:#5c6c68!important;font-size:12px!important;line-height:1.55!important}
.journey-flow .step-body .action{margin-top:9px!important}
.journey-flow .thumb-frame.photo-note{position:absolute!important;right:-26px!important;left:auto!important;top:50%!important;width:116px!important;height:98px!important;min-height:0!important;max-width:none!important;transform:translateY(-50%) rotate(-4deg)!important;z-index:999999!important;overflow:hidden!important;border:4px solid #fff8e8!important;box-shadow:4px 5px 0 rgba(69,51,26,.22)!important;clip-path:polygon(4% 5%,96% 0,100% 92%,8% 100%,0 24%)!important;background:var(--paper2)!important}
.journey-flow .thumb-frame.photo-note .thumb{display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-width:none!important;object-fit:cover!important;object-position:center!important;filter:saturate(.86) sepia(.06)!important}
.journey-flow .step:nth-child(2) .photo-note{right:-31px!important;transform:translateY(-50%) rotate(5deg)!important}.journey-flow .step:nth-child(3) .photo-note{right:-22px!important;transform:translateY(-50%) rotate(-2deg)!important}.journey-flow .step:nth-child(4) .photo-note{right:-28px!important;transform:translateY(-50%) rotate(3deg)!important}
.journey-flow .backup-step{display:block!important;margin:26px 0!important;padding:0!important;position:relative!important;z-index:20!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important;transform:rotate(1.8deg)!important;transform-origin:center center!important}
.journey-flow .backup-offset{position:relative!important;display:block!important;margin-left:108px!important;padding:18px 112px 16px 20px!important;min-height:106px!important;background:transparent!important;border:0!important;overflow:visible!important}
.journey-flow .backup-offset:before{content:""!important;position:absolute!important;inset:0!important;background:#fff1cf!important;border:1px solid #c9a77d!important;clip-path:polygon(.7% 5%,98.8% 0,100% 92%,3% 100%,0 18%)!important;box-shadow:7px 8px 0 rgba(76,58,29,.14)!important;z-index:0!important;pointer-events:none!important}
.journey-flow .backup-offset:after{content:"备用"!important;position:absolute!important;left:0!important;top:-13px!important;padding:5px 8px!important;border-radius:12px 12px 0 0!important;background:var(--red)!important;color:#fff8e8!important;font-size:10px!important;font-weight:800!important;z-index:1001!important}
.journey-flow .backup-content{position:relative!important;z-index:1000!important;min-width:0!important;padding:0!important}.journey-flow .backup-content .backup-label{display:block!important;margin-bottom:3px!important;color:var(--red)!important;font-size:10px!important;font-weight:800!important;letter-spacing:.08em!important}.journey-flow .backup-content h3{margin:3px 0!important;font:700 18px/1.25 var(--serif)!important;color:#81392f!important}.journey-flow .backup-content p{margin:0!important;color:#5c6c68!important;font-size:12px!important;line-height:1.55!important}
.journey-flow .backup-thumb.photo-note{position:absolute!important;right:-20px!important;left:auto!important;top:50%!important;width:82px!important;height:70px!important;min-height:0!important;max-width:none!important;transform:translateY(-50%) rotate(-7deg)!important;z-index:999999!important;overflow:hidden!important;border:4px solid #fff8e8!important;box-shadow:4px 5px 0 rgba(69,51,26,.22)!important;clip-path:polygon(5% 0,100% 8%,95% 93%,12% 100%,0 19%)!important;background:var(--paper2)!important}.journey-flow .backup-thumb.photo-note .backup-thumb{display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-width:none!important;object-fit:cover!important;object-position:center!important;filter:saturate(.82) sepia(.08)!important}
/* fixes: complete bookmark, navigation above Leaflet, square-free backup note, route number on paper card */
.mast{overflow:visible!important;padding-top:58px!important}
.mast .overview-bookmark{left:16px!important;top:12px!important;margin:0!important;clip-path:polygon(0 0,100% 0,92% 100%,9% 91%,0 100%)!important}
.nav{z-index:10000!important;isolation:isolate!important}
.leaflet-container,.leaflet-pane,.leaflet-top,.leaflet-bottom{z-index:auto!important}
.journey-flow .backup-offset,.journey-flow .backup-offset:before,.journey-flow .backup-offset:after,.journey-flow .backup-thumb.photo-note{border-radius:0!important}
.journey-flow .step-body>.route-no{position:absolute!important;left:-13px!important;top:12px!important;z-index:1000000!important;display:grid!important;place-items:center!important;width:25px!important;height:25px!important;margin:0!important;border:2px solid var(--paper2)!important;border-radius:50%!important;background:var(--ink)!important;color:#fff6e4!important;font:500 9px/1 var(--sans)!important;box-shadow:0 1px 2px rgba(0,0,0,.14)!important}
.journey-flow .thumb-frame .route-no{display:none!important}
@media(max-width:560px){.mast{padding-top:52px!important}.mast .overview-bookmark{left:10px!important;top:9px!important}.journey-flow{margin-left:9px!important;padding-left:12px!important}.journey-flow .step{grid-template-columns:62px minmax(0,1fr)!important;gap:9px!important;margin-bottom:12px!important}.journey-flow .date-ticket{min-height:62px!important;font-size:10px!important}.journey-flow .date-ticket time{font-size:10px!important}.journey-flow .step-body{padding:14px 65px 12px 12px!important}.journey-flow .step-body h3{font-size:17px!important}.journey-flow .step-body p{font-size:11px!important}.journey-flow .thumb-frame.photo-note{right:-18px!important;width:82px!important;height:70px!important}.journey-flow .step:nth-child(2) .photo-note{right:-22px!important}.journey-flow .step:nth-child(3) .photo-note{right:-15px!important}.journey-flow .backup-offset{margin-left:62px!important;padding:15px 76px 13px 14px!important;min-height:88px!important}.journey-flow .backup-thumb.photo-note{right:-14px!important;width:62px!important;height:54px!important}.journey-flow .backup-content h3{font-size:16px!important}.journey-flow .backup-content p{font-size:11px!important}.journey-flow .backup-step{margin-top:22px!important;margin-bottom:22px!important}.journey-flow .step-body>.route-no{left:-12px!important;top:10px!important;width:23px!important;height:23px!important}}

/* city passport navigation must sit above every itinerary photo and route badge */
.mast{position:relative!important;z-index:2147483646!important;isolation:isolate!important;overflow:visible!important}
.nav{position:sticky!important;z-index:2147483647!important;isolation:isolate!important}
.nav::before,.nav::after,.nav a,.nav a::before,.nav-tape{z-index:2147483647!important}
.nav a.active{z-index:2147483647!important}
.journey-flow .thumb-frame.photo-note,.journey-flow .backup-thumb.photo-note,.journey-flow .step-body>.route-no{z-index:100!important}

/* ticket and photo visibility corrections */
.journey-flow .date-ticket{align-items:center!important;justify-content:center!important;padding:10px!important}
.journey-flow .date-ticket:after{display:none!important}
.journey-flow .date-ticket time{display:block!important;text-align:center!important;font-size:15px!important;line-height:1!important;white-space:nowrap!important}
.journey-flow .backup-step{padding:10px 0!important;overflow:visible!important}
.journey-flow .backup-offset{overflow:visible!important}
.journey-flow .backup-offset:before{clip-path:none!important;inset:0!important}
.journey-flow .thumb-frame.photo-note,.journey-flow .backup-thumb.photo-note{clip-path:none!important;overflow:visible!important;background:transparent!important}
.journey-flow .thumb-frame.photo-note .thumb,.journey-flow .backup-thumb.photo-note .backup-thumb{clip-path:none!important;overflow:visible!important}
.journey-flow .thumb-frame.photo-note .thumb,.journey-flow .backup-thumb.photo-note .backup-thumb{border:4px solid #fff8e8!important;box-shadow:4px 5px 0 rgba(69,51,26,.22)!important}
@media(max-width:560px){.journey-flow .date-ticket time{font-size:12px!important}}

/* photo stickers: always above action strip, without polaroid frame or shadow */
.journey-flow .step-body .action{position:relative!important;z-index:1!important}
.journey-flow .thumb-frame.photo-note,.journey-flow .backup-thumb.photo-note{z-index:2147483000!important;border:0!important;box-shadow:none!important}
.journey-flow .thumb-frame.photo-note .thumb,.journey-flow .backup-thumb.photo-note .backup-thumb{border:0!important;box-shadow:none!important}

/* passport city pages sit above the connecting tape */
.nav{overflow-x:auto!important;overflow-y:visible!important}
.nav-tape{z-index:1!important;pointer-events:none!important}
.nav a,.nav a::before,.nav a strong,.nav a .nav-city-en{z-index:2!important}
.nav a.active{z-index:3!important}
.nav a{position:relative!important}
@media(max-width:700px){.photo-wall{min-height:2940px!important;overflow:hidden!important}.wall-photo{left:calc(1% + var(--wall-mobile-col) * 48%)!important;top:calc(20px + var(--wall-mobile-row) * 205px)!important;width:142px!important;height:176px!important;padding:6px 6px 20px!important}.wall-photo img{height:145px!important}.wall-photo:nth-child(3n){width:158px!important;height:194px!important}.wall-photo:nth-child(3n) img{height:164px!important}}


/* Home preview: a passport cover opening into a found-photo travel journal. */
.mast-home{min-height:300px!important;display:flex!important;align-items:flex-end!important;position:relative!important;isolation:isolate!important;background-image:linear-gradient(90deg,rgba(15,38,54,.88) 0%,rgba(15,38,54,.56) 48%,rgba(15,38,54,.18) 100%),image-set(url('../images/central-market.webp') type('image/webp'),url('../images/central-market.jpg') type('image/jpeg'))!important;background-position:center 42%!important;background-size:cover!important;color:#fff9ec!important;border:0!important;box-shadow:0 8px 0 rgba(92,69,34,.12)!important;padding:76px 42px 34px!important;overflow:hidden!important}
.mast-home::before{content:'TRAVEL NOTEBOOK';position:absolute;right:28px;top:24px;color:rgba(255,249,236,.72);font:700 10px/1 var(--sans);letter-spacing:.26em;transform:rotate(3deg)}
.mast-home::after{content:'08.11  /  08.16';position:absolute;right:28px;bottom:22px;color:rgba(255,249,236,.65);font:700 11px/1 var(--sans);letter-spacing:.2em}
.mast-home .mast-copy{max-width:700px;z-index:3}.mast-home .mast-kicker{color:#ffd5a7}.mast-home h1{font-size:clamp(36px,8vw,68px)!important;line-height:1.08!important;color:#fff9ec!important;text-shadow:0 2px 18px rgba(0,0,0,.2)}.mast-home p{max-width:560px;color:rgba(255,249,236,.86)!important;font-size:15px!important}.mast-home .entry-stamp{border-color:#ffd5a7;color:#ffd5a7}
.home-intro{margin:30px 0 4px;padding:20px 24px 22px;background:var(--yellow);border-left:5px solid var(--red);box-shadow:3px 4px 0 rgba(92,69,34,.12);transform:rotate(-.35deg)}.home-intro-label{color:var(--red);font:800 10px/1.2 var(--sans);letter-spacing:.16em}.home-intro p{max-width:760px;margin:8px 0 0;font:700 18px/1.55 var(--serif);color:var(--ink)}
.home-gallery-section{margin-top:42px}.home-gallery-section .head,.home-prep-section .head{align-items:end}.photo-wall{position:relative;min-height:1480px;margin:20px -6px 0;overflow:hidden;background:rgba(255,250,240,.32);border-top:1px solid rgba(201,185,152,.65);border-bottom:1px solid rgba(201,185,152,.65);padding:30px 24px}.wall-photo{position:relative;display:block;margin:0;padding:8px 8px 24px;background:#fffaf0;box-shadow:0 8px 15px rgba(71,51,26,.22);width:175px;height:210px;transform:rotate(-3deg);transition:transform .25s var(--ease),z-index .25s;z-index:1}.wall-photo img{display:block;width:100%;height:166px;object-fit:cover;background:var(--paper);filter:saturate(.9) sepia(.04)}.wall-photo figcaption{position:absolute;left:10px;bottom:4px;color:#6b6255;font:11px/1.2 var(--sans);letter-spacing:.04em}.wall-photo:nth-child(3n){width:205px;height:235px}.wall-photo:nth-child(3n) img{height:190px}.wall-photo:nth-child(4n){transform:rotate(4deg)}.wall-photo:nth-child(5n){transform:rotate(-7deg)}.wall-photo:nth-child(7n){transform:rotate(2deg)}.wall-photo:nth-child(8n){transform:rotate(6deg)}.wall-photo:nth-child(9n){transform:rotate(-4deg)}.wall-photo:hover{z-index:10;transform:rotate(0deg) translateY(-6px) scale(1.035)}
.wall-photo{position:absolute;left:calc(2% + var(--wall-col) * 24.5%);top:calc(26px + var(--wall-row) * 205px);transform:rotate(var(--wall-rot));}.wall-photo:nth-child(3n){width:205px;height:235px}.wall-photo:nth-child(3n) img{height:190px}.wall-photo:nth-child(5n){z-index:3}.wall-photo:nth-child(7n){z-index:4}
.prep-sheet{position:relative;margin-top:18px;padding:30px 34px 26px;background:var(--paper2);border:1px solid var(--line);box-shadow:5px 6px 0 rgba(92,69,34,.12);transform:rotate(.35deg)}.prep-sheet::before{content:'BEFORE DEPARTURE';position:absolute;right:24px;top:18px;color:rgba(23,51,72,.32);font:700 10px/1 var(--sans);letter-spacing:.16em}.prep-stamp{position:absolute;right:26px;bottom:22px;width:74px;height:74px;border:2px solid var(--red);border-radius:50%;display:grid;place-content:center;text-align:center;color:var(--red);font:800 9px/1.25 var(--sans);letter-spacing:.1em;transform:rotate(10deg);opacity:.82}.prep-lead{margin:0 96px 22px 0;color:var(--muted);font-size:13px}.prep-list{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin:0;padding:0;list-style:none}.prep-list li{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:13px 0;border-top:1px solid rgba(201,185,152,.72)}.prep-list li:nth-child(-n+2){border-top:0}.checkmark{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--red);color:var(--red);font-weight:800;transform:rotate(-4deg)}.prep-list b{font-size:14px}.prep-list p{margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.55}

/* Final homepage and section-title pass */
.section > .head{display:flex!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:3px!important;text-align:center!important}
.section > .head h2,.section > .head span{margin-left:auto!important;margin-right:auto!important}
.photo-wall{height:var(--wall-height,760px)!important;min-height:var(--wall-height,760px)!important;overflow:hidden!important}
.wall-photo{position:absolute!important;left:var(--wall-left)!important;top:var(--wall-top)!important;transform:rotate(var(--wall-rot))!important}
@media(max-width:700px){.photo-wall{height:var(--wall-mobile-height,1240px)!important;min-height:var(--wall-mobile-height,1240px)!important}.wall-photo{left:var(--wall-mobile-left)!important;top:var(--wall-mobile-top)!important}}

/* Final alignment: every page title is centered like a passport heading. */
.mast{justify-content:center!important}
.mast-copy{flex:1 1 auto!important;text-align:center!important}
.mast-copy h1{margin-left:auto!important;margin-right:auto!important}
.mast-copy p{margin-left:auto!important;margin-right:auto!important}
.mast-kicker{text-align:center!important}
.mast-home .mast-copy{margin:0 auto!important}

/* Five-photo wall keeps a deliberate bottom margin on every viewport. */
.photo-wall{padding-bottom:48px!important}
@media(max-width:700px){.photo-wall{padding-bottom:38px!important}}
/* Keep page titles geometrically centered in the full passport header. */
.mast{display:block!important;text-align:center!important}
.mast-copy{width:100%!important;max-width:none!important;margin:0 auto!important;padding:0 82px!important}
.entry-stamp{position:absolute!important;right:28px!important;top:50%!important;transform:translateY(-50%) rotate(-11deg)!important}
@media(max-width:700px){.mast-copy{padding:0 52px!important}.entry-stamp{right:14px!important;width:48px!important;height:48px!important}.mast-home .mast-copy{padding:0 8px!important}}

@media(max-width:700px){.mast-home{min-height:360px!important;padding:96px 22px 28px!important;background-position:62% center!important}.mast-home::before{right:18px;top:20px;font-size:8px}.mast-home::after{right:18px;bottom:18px;font-size:9px}.home-intro{margin-top:24px;padding:17px 17px 18px}.home-intro p{font-size:16px}.photo-wall{min-height:1240px;margin-left:-2px;margin-right:-2px;padding:20px 10px}.wall-photo{width:142px;height:176px;padding:6px 6px 20px}.wall-photo img{height:145px}.wall-photo:nth-child(3n){width:158px;height:194px}.wall-photo:nth-child(3n) img{height:164px}.wall-photo-0{left:2%;top:24px}.wall-photo-1{left:42%;top:10px}.wall-photo-2{left:14%;top:205px}.wall-photo-3{left:55%;top:225px}.wall-photo-4{left:0;top:408px}.wall-photo-5{left:44%;top:430px}.wall-photo-6{left:17%;top:624px}.wall-photo-7{left:58%;top:650px}.wall-photo-8{left:2%;top:844px}.wall-photo-9{left:46%;top:865px}.wall-photo-10{left:18%;top:1060px}.wall-photo-11{left:56%;top:1080px}.prep-sheet{padding:24px 18px 22px}.prep-sheet::before{right:14px;top:14px;font-size:8px}.prep-lead{margin-right:0;padding-right:30px}.prep-stamp{right:12px;bottom:14px;width:58px;height:58px;font-size:7px}.prep-list{grid-template-columns:1fr;gap:0}.prep-list li:nth-child(2){border-top:1px solid rgba(201,185,152,.72)}.prep-list li{grid-template-columns:25px 1fr;padding:12px 0}.prep-list p{font-size:11px}}


/* Homepage hero: settle the title block slightly lower in the cover image. */
.mast-home .mast-copy{position:relative!important;top:16px!important}
@media(max-width:700px){.mast-home .mast-copy{top:12px!important}}

/* Compact, compliant OpenStreetMap attribution */
.leaflet-control-attribution{font:10px/1.25 system-ui,sans-serif!important;color:rgba(21,57,79,.6)!important;background:rgba(250,246,236,.72)!important;padding:2px 5px!important;border-radius:0!important;box-shadow:none!important}.leaflet-control-attribution a{color:inherit!important;text-decoration:none!important}

/* Journey photo stamps: B airmail and C commemorative, never applied to the homepage wall. */
.journey-flow .thumb-frame.photo-note,.journey-flow .backup-thumb.photo-note{box-sizing:border-box!important;overflow:visible!important;isolation:isolate!important;color:#17394f!important;background:#fffdf6!important;filter:drop-shadow(3px 5px 0 rgba(73,53,27,.18))!important;clip-path:none!important}
.journey-flow .thumb-frame.photo-note{width:132px!important;height:164px!important;right:-32px!important;padding:8px!important}
.journey-flow .backup-thumb.photo-note{width:105px!important;height:132px!important;right:-28px!important;padding:7px!important}
.journey-flow .thumb-frame.photo-note .thumb,.journey-flow .backup-thumb.photo-note .backup-thumb{position:absolute!important;z-index:2!important;display:block!important;border:0!important;box-shadow:none!important;object-fit:cover!important;object-position:center!important;filter:saturate(.9) contrast(1.02)!important}
.journey-flow .thumb-frame.photo-note .thumb{left:19px!important;top:37px!important;width:calc(100% - 38px)!important;height:91px!important}
.journey-flow .backup-thumb.photo-note .backup-thumb{left:16px!important;top:31px!important;width:calc(100% - 32px)!important;height:71px!important}
.journey-flow .thumb-frame.photo-note::before,.journey-flow .backup-thumb.photo-note::before{content:""!important;position:absolute!important;inset:10px!important;border:1px solid currentColor!important;opacity:.72!important;z-index:1!important;pointer-events:none!important}
.journey-flow .stamp-country,.journey-flow .stamp-value,.journey-flow .stamp-caption,.journey-flow .stamp-year,.journey-flow .stamp-postmark{position:absolute!important;display:block!important;z-index:4!important;pointer-events:none!important;font-family:var(--sans)!important}
.journey-flow .stamp-country{left:18px!important;top:19px!important;font-size:7px!important;line-height:1!important;font-weight:800!important;letter-spacing:.13em!important;white-space:nowrap!important}
.journey-flow .stamp-value{right:18px!important;top:15px!important;color:var(--red)!important;font-family:var(--serif)!important;font-weight:800!important;font-size:13px!important;line-height:1!important}
.journey-flow .stamp-caption{left:13px!important;right:13px!important;bottom:23px!important;color:var(--ink)!important;text-align:center!important;font-size:7px!important;line-height:1.1!important;font-weight:800!important;letter-spacing:.04em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.journey-flow .stamp-year{left:0!important;right:0!important;bottom:11px!important;color:var(--red)!important;text-align:center!important;font-size:5.5px!important;line-height:1!important;font-weight:800!important;letter-spacing:.16em!important}
.journey-flow .stamp-perf{position:absolute!important;display:block!important;z-index:9!important;pointer-events:none!important}
.journey-flow .stamp-perf-t,.journey-flow .stamp-perf-b{left:3px!important;right:3px!important;height:8px!important;background:repeating-radial-gradient(circle at 5px 0,#f3ead6 0 3px,transparent 3.5px 10px)!important}
.journey-flow .stamp-perf-t{top:-1px!important}.journey-flow .stamp-perf-b{bottom:-1px!important;transform:rotate(180deg)!important}
.journey-flow .stamp-perf-l,.journey-flow .stamp-perf-r{top:3px!important;bottom:3px!important;width:8px!important;background:repeating-radial-gradient(circle at 0 5px,#f3ead6 0 3px,transparent 3.5px 10px)!important}
.journey-flow .stamp-perf-l{left:-1px!important}.journey-flow .stamp-perf-r{right:-1px!important;transform:rotate(180deg)!important}
/* B: airmail */
.journey-flow .stamp-airmail{background:repeating-linear-gradient(135deg,#c94d3d 0 5px,#f8f1dd 5px 10px,#28516d 10px 15px,#f8f1dd 15px 20px)!important;color:#244d67!important}
.journey-flow .stamp-airmail::before{inset:13px!important;background:#fffdf6!important;border-color:#244d67!important;opacity:1!important}
.journey-flow .stamp-airmail .thumb,.journey-flow .stamp-airmail .backup-thumb{border:1px solid rgba(36,77,103,.7)!important}
.journey-flow .stamp-airmail .stamp-country{left:21px!important;top:21px!important}.journey-flow .stamp-airmail .stamp-value{right:21px!important;top:18px!important}.journey-flow .stamp-airmail .stamp-caption{bottom:26px!important}.journey-flow .stamp-airmail .stamp-year{bottom:14px!important}
/* C: commemorative */
.journey-flow .stamp-commemorative{background:#faf1d8!important;color:#a34531!important}
.journey-flow .stamp-commemorative::before{border-color:#b9975e!important}.journey-flow .stamp-commemorative .stamp-country,.journey-flow .stamp-commemorative .stamp-caption{color:#8f3d2d!important}
.journey-flow .stamp-postmark{right:8px!important;bottom:7px!important;width:34px!important;height:34px!important;border:1.5px solid rgba(175,58,42,.78)!important;border-radius:50%!important;color:rgba(175,58,42,.82)!important;display:grid!important;place-items:center!important;text-align:center!important;font-size:5px!important;line-height:1.05!important;font-weight:800!important;letter-spacing:.04em!important;transform:rotate(-16deg)!important}
.journey-flow .stamp-postmark::before,.journey-flow .stamp-postmark::after{content:""!important;position:absolute!important;left:4px!important;right:4px!important;border-top:1px solid rgba(175,58,42,.76)!important}.journey-flow .stamp-postmark::before{top:11px!important}.journey-flow .stamp-postmark::after{bottom:11px!important}
.journey-flow .backup-thumb.photo-note .stamp-country{left:15px!important;top:16px!important;font-size:5.5px!important}.journey-flow .backup-thumb.photo-note .stamp-value{right:15px!important;top:13px!important;font-size:10px!important}.journey-flow .backup-thumb.photo-note .stamp-caption{left:9px!important;right:9px!important;bottom:18px!important;font-size:5.5px!important}.journey-flow .backup-thumb.photo-note .stamp-year{bottom:8px!important;font-size:4.5px!important}.journey-flow .backup-thumb.photo-note .stamp-postmark{right:5px!important;bottom:4px!important;width:27px!important;height:27px!important;font-size:4px!important}.journey-flow .backup-thumb.photo-note .stamp-postmark::before{top:8px!important}.journey-flow .backup-thumb.photo-note .stamp-postmark::after{bottom:8px!important}
@media(max-width:560px){.journey-flow .thumb-frame.photo-note{width:94px!important;height:118px!important;right:-20px!important}.journey-flow .backup-thumb.photo-note{width:76px!important;height:96px!important;right:-20px!important}.journey-flow .thumb-frame.photo-note .thumb{left:14px!important;top:29px!important;width:calc(100% - 28px)!important;height:65px!important}.journey-flow .backup-thumb.photo-note .backup-thumb{left:12px!important;top:24px!important;width:calc(100% - 24px)!important;height:52px!important}.journey-flow .stamp-country{left:13px!important;top:14px!important;font-size:5px!important}.journey-flow .stamp-value{right:13px!important;top:12px!important;font-size:9px!important}.journey-flow .stamp-caption{left:8px!important;right:8px!important;bottom:16px!important;font-size:5px!important}.journey-flow .stamp-year{bottom:7px!important;font-size:4px!important}.journey-flow .stamp-postmark{width:25px!important;height:25px!important;right:4px!important;bottom:3px!important;font-size:3.5px!important}.journey-flow .stamp-postmark::before{top:8px!important}.journey-flow .stamp-postmark::after{bottom:8px!important}.journey-flow .stamp-airmail .stamp-country{left:16px!important;top:16px!important}.journey-flow .stamp-airmail .stamp-value{right:16px!important;top:14px!important}.journey-flow .stamp-airmail .stamp-caption{bottom:18px!important}.journey-flow .stamp-airmail .stamp-year{bottom:9px!important}}


/* Stamp sizing pass: keep the whole stamp inside its itinerary card. */
.journey-flow .step-body{min-height:128px!important;padding-right:122px!important}
.journey-flow .thumb-frame.photo-note{width:96px!important;height:120px!important;right:11px!important}
.journey-flow .thumb-frame.photo-note .thumb{left:15px!important;top:28px!important;width:calc(100% - 30px)!important;height:66px!important}
.journey-flow .thumb-frame.photo-note::before{inset:8px!important}
.journey-flow .thumb-frame.photo-note .stamp-country{left:14px!important;top:14px!important;font-size:5px!important}
.journey-flow .thumb-frame.photo-note .stamp-value{right:14px!important;top:12px!important;font-size:9px!important}
.journey-flow .thumb-frame.photo-note .stamp-caption{left:8px!important;right:8px!important;bottom:16px!important;font-size:5px!important}
.journey-flow .thumb-frame.photo-note .stamp-year{bottom:7px!important;font-size:4px!important}
.journey-flow .thumb-frame.photo-note .stamp-postmark{right:4px!important;bottom:3px!important;width:25px!important;height:25px!important;font-size:3.5px!important}
.journey-flow .thumb-frame.photo-note .stamp-postmark::before{top:8px!important}.journey-flow .thumb-frame.photo-note .stamp-postmark::after{bottom:8px!important}
.journey-flow .stamp-airmail .stamp-country{left:17px!important;top:16px!important}.journey-flow .stamp-airmail .stamp-value{right:17px!important;top:14px!important}.journey-flow .stamp-airmail .stamp-caption{bottom:18px!important}.journey-flow .stamp-airmail .stamp-year{bottom:9px!important}
.journey-flow .backup-offset{min-height:112px!important;padding-right:98px!important}
.journey-flow .backup-thumb.photo-note{width:78px!important;height:98px!important;right:10px!important}
.journey-flow .backup-thumb.photo-note .backup-thumb{left:12px!important;top:24px!important;width:calc(100% - 24px)!important;height:52px!important}
.journey-flow .backup-thumb.photo-note::before{inset:7px!important}
.journey-flow .backup-thumb.photo-note .stamp-country{left:12px!important;top:12px!important;font-size:4.5px!important}.journey-flow .backup-thumb.photo-note .stamp-value{right:12px!important;top:10px!important;font-size:8px!important}.journey-flow .backup-thumb.photo-note .stamp-caption{left:7px!important;right:7px!important;bottom:14px!important;font-size:4.5px!important}.journey-flow .backup-thumb.photo-note .stamp-year{bottom:6px!important;font-size:3.5px!important}.journey-flow .backup-thumb.photo-note .stamp-postmark{right:3px!important;bottom:3px!important;width:22px!important;height:22px!important;font-size:3px!important}
@media(max-width:560px){.journey-flow .step-body{min-height:108px!important;padding-right:90px!important}.journey-flow .thumb-frame.photo-note{width:72px!important;height:90px!important;right:7px!important}.journey-flow .thumb-frame.photo-note .thumb{left:11px!important;top:22px!important;width:calc(100% - 22px)!important;height:48px!important}.journey-flow .thumb-frame.photo-note .stamp-country{left:10px!important;top:10px!important;font-size:3.8px!important}.journey-flow .thumb-frame.photo-note .stamp-value{right:10px!important;top:9px!important;font-size:7px!important}.journey-flow .thumb-frame.photo-note .stamp-caption{left:5px!important;right:5px!important;bottom:12px!important;font-size:3.8px!important}.journey-flow .thumb-frame.photo-note .stamp-year{bottom:5px!important;font-size:3px!important}.journey-flow .backup-offset{min-height:94px!important;padding-right:78px!important}.journey-flow .backup-thumb.photo-note{width:62px!important;height:78px!important;right:7px!important}.journey-flow .backup-thumb.photo-note .backup-thumb{left:10px!important;top:19px!important;width:calc(100% - 20px)!important;height:41px!important}.journey-flow .backup-thumb.photo-note .stamp-country{left:9px!important;top:9px!important;font-size:3.5px!important}.journey-flow .backup-thumb.photo-note .stamp-value{right:9px!important;top:8px!important;font-size:6px!important}.journey-flow .backup-thumb.photo-note .stamp-caption{bottom:11px!important;font-size:3.5px!important}.journey-flow .backup-thumb.photo-note .stamp-year{bottom:4px!important;font-size:2.8px!important}}

/* Responsive stamp formats: each photo selects a landscape or portrait stamp after loading. */
.journey-flow .thumb-frame.photo-note,.journey-flow .backup-thumb.photo-note{overflow:hidden!important;clip-path:inset(0)!important}
.journey-flow .stamp-perf-t{top:0!important;left:0!important;right:0!important}.journey-flow .stamp-perf-b{bottom:0!important;left:0!important;right:0!important}.journey-flow .stamp-perf-l{left:0!important;top:0!important;bottom:0!important}.journey-flow .stamp-perf-r{right:0!important;top:0!important;bottom:0!important}
/* Formal itinerary: landscape images receive a horizontal stamp; portrait images receive a vertical stamp. */
.journey-flow .thumb-frame.photo-note.stamp-landscape{width:118px!important;height:94px!important;right:10px!important}
.journey-flow .thumb-frame.photo-note.stamp-landscape .thumb{left:15px!important;top:28px!important;width:calc(100% - 30px)!important;height:45px!important}
.journey-flow .thumb-frame.photo-note.stamp-portrait{width:78px!important;height:116px!important;right:18px!important}
.journey-flow .thumb-frame.photo-note.stamp-portrait .thumb{left:13px!important;top:28px!important;width:calc(100% - 26px)!important;height:66px!important}
/* Backup stamps use the same orientation language at a smaller scale. */
.journey-flow .backup-thumb.photo-note.stamp-landscape{width:94px!important;height:76px!important;right:9px!important}
.journey-flow .backup-thumb.photo-note.stamp-landscape .backup-thumb{left:12px!important;top:23px!important;width:calc(100% - 24px)!important;height:36px!important}
.journey-flow .backup-thumb.photo-note.stamp-portrait{width:64px!important;height:92px!important;right:14px!important}
.journey-flow .backup-thumb.photo-note.stamp-portrait .backup-thumb{left:10px!important;top:22px!important;width:calc(100% - 20px)!important;height:50px!important}
/* All stamp furniture lives inside the outer postal frame. */
.journey-flow .thumb-frame.photo-note::before{inset:7px!important}.journey-flow .backup-thumb.photo-note::before{inset:6px!important}
.journey-flow .thumb-frame.photo-note .stamp-country{left:13px!important;top:13px!important;font-size:4.7px!important}.journey-flow .thumb-frame.photo-note .stamp-value{right:13px!important;top:11px!important;font-size:8px!important}.journey-flow .thumb-frame.photo-note .stamp-caption{left:7px!important;right:7px!important;bottom:15px!important;font-size:4.7px!important}.journey-flow .thumb-frame.photo-note .stamp-year{bottom:6px!important;font-size:3.8px!important}
.journey-flow .backup-thumb.photo-note .stamp-country{left:10px!important;top:10px!important;font-size:3.8px!important}.journey-flow .backup-thumb.photo-note .stamp-value{right:10px!important;top:9px!important;font-size:6.8px!important}.journey-flow .backup-thumb.photo-note .stamp-caption{left:5px!important;right:5px!important;bottom:12px!important;font-size:3.8px!important}.journey-flow .backup-thumb.photo-note .stamp-year{bottom:5px!important;font-size:3px!important}
.journey-flow .stamp-airmail .stamp-country{left:15px!important;top:15px!important}.journey-flow .stamp-airmail .stamp-value{right:15px!important;top:13px!important}.journey-flow .stamp-airmail .stamp-caption{bottom:17px!important}.journey-flow .stamp-airmail .stamp-year{bottom:8px!important}
.journey-flow .stamp-postmark{right:3px!important;bottom:3px!important;width:22px!important;height:22px!important;font-size:3px!important;overflow:hidden!important}.journey-flow .stamp-postmark::before{top:7px!important}.journey-flow .stamp-postmark::after{bottom:7px!important}
@media(max-width:560px){.journey-flow .thumb-frame.photo-note.stamp-landscape{width:82px!important;height:66px!important;right:6px!important}.journey-flow .thumb-frame.photo-note.stamp-landscape .thumb{left:11px!important;top:20px!important;width:calc(100% - 22px)!important;height:31px!important}.journey-flow .thumb-frame.photo-note.stamp-portrait{width:58px!important;height:86px!important;right:12px!important}.journey-flow .thumb-frame.photo-note.stamp-portrait .thumb{left:9px!important;top:20px!important;width:calc(100% - 18px)!important;height:49px!important}.journey-flow .backup-thumb.photo-note.stamp-landscape{width:70px!important;height:57px!important;right:5px!important}.journey-flow .backup-thumb.photo-note.stamp-landscape .backup-thumb{left:9px!important;top:17px!important;width:calc(100% - 18px)!important;height:27px!important}.journey-flow .backup-thumb.photo-note.stamp-portrait{width:50px!important;height:72px!important;right:8px!important}.journey-flow .backup-thumb.photo-note.stamp-portrait .backup-thumb{left:8px!important;top:17px!important;width:calc(100% - 16px)!important;height:38px!important}.journey-flow .thumb-frame.photo-note .stamp-country{left:9px!important;top:9px!important;font-size:3.3px!important}.journey-flow .thumb-frame.photo-note .stamp-value{right:9px!important;top:8px!important;font-size:5.6px!important}.journey-flow .thumb-frame.photo-note .stamp-caption{bottom:10px!important;font-size:3.2px!important}.journey-flow .thumb-frame.photo-note .stamp-year{bottom:4px!important;font-size:2.5px!important}.journey-flow .stamp-postmark{width:16px!important;height:16px!important;font-size:2.4px!important}}

/* Final B/C separation: deterministic pseudo-random distribution, visibly distinct postal formats. */
.journey-flow .thumb-frame.photo-note.stamp-airmail,.journey-flow .backup-thumb.photo-note.stamp-airmail{
  background:repeating-linear-gradient(135deg,#c84035 0 6px,#fff8e8 6px 12px,#204b69 12px 18px,#fff8e8 18px 24px)!important;
  color:#204b69!important;
}
.journey-flow .thumb-frame.photo-note.stamp-airmail::before,.journey-flow .backup-thumb.photo-note.stamp-airmail::before{
  inset:9px!important;background:#fffdf7!important;border:1px solid #204b69!important;opacity:1!important;
}
.journey-flow .thumb-frame.photo-note.stamp-airmail .stamp-country,.journey-flow .backup-thumb.photo-note.stamp-airmail .stamp-country{color:#204b69!important;font-weight:900!important;letter-spacing:.14em!important}
.journey-flow .thumb-frame.photo-note.stamp-airmail .stamp-value,.journey-flow .backup-thumb.photo-note.stamp-airmail .stamp-value{color:#bf4335!important;font-weight:900!important}
.journey-flow .thumb-frame.photo-note.stamp-commemorative,.journey-flow .backup-thumb.photo-note.stamp-commemorative{background:#f4e5be!important;color:#943d2f!important}
.journey-flow .thumb-frame.photo-note.stamp-commemorative::before,.journey-flow .backup-thumb.photo-note.stamp-commemorative::before{inset:7px!important;background:#fff6df!important;border:1px solid #b58a4c!important;opacity:1!important}
.journey-flow .thumb-frame.photo-note.stamp-commemorative .stamp-country,.journey-flow .backup-thumb.photo-note.stamp-commemorative .stamp-country,.journey-flow .thumb-frame.photo-note.stamp-commemorative .stamp-caption,.journey-flow .backup-thumb.photo-note.stamp-commemorative .stamp-caption{color:#943d2f!important;font-weight:900!important}
.journey-flow .thumb-frame.photo-note.stamp-commemorative .stamp-postmark,.journey-flow .backup-thumb.photo-note.stamp-commemorative .stamp-postmark{display:grid!important;place-items:center!important;color:#ae4034!important;border:1px solid #ae4034!important;background:rgba(255,248,232,.64)!important;line-height:1!important}

/* Restore the clean scrapbook photo treatment; stamp decoration disabled. */
.journey-flow .thumb-frame.photo-note,
.journey-flow .backup-thumb.photo-note{
  background:transparent!important;
  border:0!important;
  box-shadow:3px 5px 0 rgba(69,51,26,.18)!important;
  clip-path:none!important;
  padding:0!important;
  overflow:visible!important;
  filter:none!important;
}
.journey-flow .thumb-frame.photo-note::before,
.journey-flow .thumb-frame.photo-note::after,
.journey-flow .backup-thumb.photo-note::before,
.journey-flow .backup-thumb.photo-note::after,
.journey-flow .thumb-frame.photo-note .stamp-perf,
.journey-flow .thumb-frame.photo-note .stamp-country,
.journey-flow .thumb-frame.photo-note .stamp-value,
.journey-flow .thumb-frame.photo-note .stamp-caption,
.journey-flow .thumb-frame.photo-note .stamp-year,
.journey-flow .thumb-frame.photo-note .stamp-postmark,
.journey-flow .backup-thumb.photo-note .stamp-perf,
.journey-flow .backup-thumb.photo-note .stamp-country,
.journey-flow .backup-thumb.photo-note .stamp-value,
.journey-flow .backup-thumb.photo-note .stamp-caption,
.journey-flow .backup-thumb.photo-note .stamp-year,
.journey-flow .backup-thumb.photo-note .stamp-postmark{
  display:none!important;
}
.journey-flow .thumb-frame.photo-note .thumb,
.journey-flow .backup-thumb.photo-note .backup-thumb{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  border:0!important;
  box-shadow:none!important;
  filter:none!important;
}

/* Smaller clean scrapbook photos after stamp removal. */
.journey-flow .thumb-frame.photo-note{
  width:86px!important;
  height:66px!important;
  right:8px!important;
  padding:0!important;
}
.journey-flow .backup-thumb.photo-note{
  width:64px!important;
  height:50px!important;
  right:6px!important;
  padding:0!important;
}
.journey-flow .step-body{padding-right:104px!important}
.journey-flow .backup-offset{padding-right:78px!important}
@media(max-width:560px){
  .journey-flow .thumb-frame.photo-note{width:66px!important;height:51px!important;right:5px!important}
  .journey-flow .backup-thumb.photo-note{width:52px!important;height:41px!important;right:4px!important}
  .journey-flow .step-body{padding-right:78px!important}
  .journey-flow .backup-offset{padding-right:62px!important}
}

/* Align photo centers with the right edge midpoint of their itinerary cards. */
.journey-flow .thumb-frame.photo-note{
  right:-43px!important; /* 86px / 2 */
}
.journey-flow .step:nth-child(2) .photo-note,
.journey-flow .step:nth-child(3) .photo-note,
.journey-flow .step:nth-child(4) .photo-note{
  right:-43px!important;
}
.journey-flow .backup-thumb.photo-note{
  right:-32px!important; /* 64px / 2 */
}
@media(max-width:560px){
  .journey-flow .thumb-frame.photo-note{right:-33px!important} /* 66px / 2 */
  .journey-flow .backup-thumb.photo-note{right:-26px!important} /* 52px / 2 */
}

/* C｜夹页便签讲解栏：正式行程的描述和执行信息合并为随页附上的提醒。 */
.journey-flow .step-content .explanation{
  position:relative!important;
  z-index:1!important;
  display:block!important;
  margin:11px -10px 1px 0!important;
  padding:15px 14px 12px!important;
  color:#5f5139!important;
  background:#f5df9f!important;
  border:1px solid #cda864!important;
  box-shadow:3px 4px 0 rgba(105,73,28,.14)!important;
  transform:rotate(-1.25deg)!important;
  transform-origin:left center!important;
  font-size:12px!important;
  line-height:1.64!important;
}
.journey-flow .step-content .explanation::before{
  content:"讲解";
  position:absolute;
  left:11px;
  top:-11px;
  padding:3px 8px 4px;
  background:var(--red);
  color:#fff8e8;
  font:800 10px/1 var(--sans);
  letter-spacing:.12em;
}
.journey-flow .step-content .explanation b{display:none!important}
.journey-flow .step-content .explanation span{white-space:pre-line;display:block!important}
@media(max-width:560px){
  .journey-flow .step-content .explanation{margin:10px -7px 0 0!important;padding:13px 10px 10px!important;font-size:11px!important;line-height:1.6!important}
  .journey-flow .step-content .explanation::before{left:8px;top:-10px;font-size:9px}
}

/* 独立交通节点：普通移动为手写路径，关键移动为胶带便签。 */
.journey-flow .transport-step{
  position:relative!important;
  display:block!important;
  margin:0 0 12px 108px!important;
  min-height:72px;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  color:#365967;
}
.journey-flow .transport-step::before{content:"";position:absolute;left:-30px;top:-14px;bottom:-14px;border-left:1px dashed #83958d}
.journey-flow .transport-step::after{content:"➜";position:absolute;left:-39px;bottom:-15px;color:var(--red);font:20px/1 var(--display);transform:rotate(31deg)}
.journey-flow .transport-route{display:block;margin:0 18px 3px 10px;color:#9a392e;font:10px/1.3 var(--sans);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:rotate(-1.5deg)}
.journey-flow .transport-route i{font-style:normal;font-size:15px;vertical-align:-1px}
.journey-flow .transport-simple .transport-copy{position:relative;display:block;margin:0 18px 0 10px;padding:16px 12px 10px 33px;color:#315a61;font:12px/1.55 'Ma Shan Zheng','Marker Felt',cursive;transform:rotate(-1.5deg)}
.journey-flow .transport-simple .transport-copy::before{content:"move notes";position:absolute;left:32px;top:1px;color:var(--red);font:10px/1 var(--sans);letter-spacing:.08em}
.journey-flow .transport-simple .transport-copy::after{content:"↳";position:absolute;left:7px;top:15px;color:var(--red);font:26px/1 var(--display);transform:rotate(-20deg)}
.journey-flow .transport-choice{display:block;position:relative;padding-left:1px}.journey-flow .transport-choice.alternate{margin-top:4px;color:#607679;font-size:.92em}.journey-flow .transport-choice.alternate::before{content:"";position:absolute;left:0;right:3px;top:-3px;border-top:1px dashed rgba(81,113,110,.38)}
.journey-flow .transport-complex{min-height:84px;margin-top:4px!important;margin-bottom:17px!important;padding:18px 18px 13px 18px!important;background:#f1dea1!important;color:#514632!important;box-shadow:2px 3px 0 rgba(77,59,26,.14)!important;transform:rotate(1.15deg);font-size:11px!important;line-height:1.58!important}
.journey-flow .transport-complex::before{left:-30px;top:-18px;bottom:-17px}
.journey-flow .transport-complex::after{display:none}
.journey-flow .transport-complex .transport-copy{display:block;position:relative;padding-top:4px}
.journey-flow .transport-complex .transport-copy::before{content:"重要交通 ✎";position:absolute;left:0;top:-13px;color:#9a392e;font:12px/1 'Ma Shan Zheng','Marker Felt',cursive;letter-spacing:.04em}
.journey-flow .transport-complex .transport-copy::after{content:"";position:absolute;top:-20px;left:31%;width:66px;height:16px;background:rgba(202,175,108,.62);transform:rotate(-4deg);border-left:1px dashed rgba(105,83,39,.35);border-right:1px dashed rgba(105,83,39,.35)}
@media(max-width:560px){
  .journey-flow .transport-step{margin-left:62px!important;margin-bottom:10px!important;min-height:61px}
  .journey-flow .transport-step::before{left:-21px}.journey-flow .transport-step::after{left:-29px;font-size:17px}
  .journey-flow .transport-simple .transport-copy{margin-right:6px;padding:15px 4px 8px 25px;font-size:11px}
  .journey-flow .transport-simple .transport-copy::before{left:25px;font-size:8px}.journey-flow .transport-simple .transport-copy::after{left:2px;font-size:22px}
  .journey-flow .transport-complex{margin-top:3px!important;margin-bottom:14px!important;padding:16px 11px 10px!important;font-size:10px!important}.journey-flow .transport-complex .transport-copy::before{font-size:10px}
}

/* Restore scrapbook rotation while preserving vertical centering and edge alignment. */
.journey-flow .thumb-frame.photo-note{
  transform:translateY(-50%) rotate(-4deg)!important;
}
.journey-flow .step:nth-child(2) .thumb-frame.photo-note{
  transform:translateY(-50%) rotate(5deg)!important;
}
.journey-flow .step:nth-child(3) .thumb-frame.photo-note{
  transform:translateY(-50%) rotate(-2deg)!important;
}
.journey-flow .step:nth-child(4) .thumb-frame.photo-note{
  transform:translateY(-50%) rotate(3deg)!important;
}
.journey-flow .backup-step{
  transform:rotate(1.8deg)!important;
}
.journey-flow .backup-thumb.photo-note{
  transform:translateY(-50%) rotate(-7deg)!important;
}

/* 已确认的交通卡定稿：普通移动用 Go 手写批注，重要交通用贴纸与下行手绘引导。 */
.journey-flow .transport-heading{display:block;margin:0 18px 1px 42px;color:#9a392e;font:14px/1 'Ma Shan Zheng','Marker Felt',cursive;letter-spacing:.04em;transform:rotate(-1.5deg)}
.journey-flow .transport-choice{font-size:calc(1em + 1px)}
.journey-flow .transport-simple .transport-copy{padding-top:7px!important}
.journey-flow .transport-simple .transport-copy::before{display:none!important}
.journey-flow .transport-simple .transport-copy::after{top:6px!important}
.journey-flow .transport-complex{padding:28px 21px 18px 51px!important}
.journey-flow .transport-complex::before{left:13px!important;top:20px!important;bottom:17px!important;width:18px!important;border:0!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 120' preserveAspectRatio='none'%3E%3Cpath d='M9 1 C5 16 13 30 9 45 S5 73 9 88 S12 102 9 109' fill='none' stroke='%23b44936' stroke-width='1.35' stroke-linecap='round'/%3E%3Cpath d='M2.8 102 L15.2 102 L9 113.5 Z' fill='%23b44936'/%3E%3C/svg%3E") center/100% 100% no-repeat!important;opacity:.72}
.journey-flow .transport-complex .transport-heading{position:absolute;left:51px;top:13px;margin:0;transform:none;color:#9a392e}
.journey-flow .transport-complex .transport-copy::before{display:none!important}
@media(max-width:560px){.journey-flow .transport-heading{margin-left:34px;font-size:10px}.journey-flow .transport-complex{padding:26px 11px 12px 43px!important}.journey-flow .transport-complex::before{left:11px!important;top:18px!important;bottom:13px!important;width:16px!important}.journey-flow .transport-complex .transport-heading{left:43px;top:12px}}

/* 日期导航：所有日期共用同一张斜切纸页签，只以颜色标识当前日期。 */
.day-nav a{
  clip-path:polygon(0 0,100% 0,94% 100%,0 91%)!important;
  transform:none!important;
  box-shadow:2px 3px 0 rgba(78,58,28,.1)!important;
}
.day-nav a[aria-current="page"],
.day-nav a.active{
  background:var(--ink)!important;
  color:#fff8e9!important;
  border-color:var(--ink)!important;
}


/* 重叠点位：双层印记。前层显示最小编号，后层仅露出边角提示仍有其他节点。 */
.map-cluster{
  position:relative;
  width:36px!important;height:36px!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  font:inherit;
}
.map-cluster-imprint{
  position:absolute;display:grid;place-items:center;
  box-sizing:border-box;width:25px;height:25px;border-radius:50%;
  background:#fff8e9;border:1.5px solid var(--ink);
}
.map-cluster-imprint-back{
  left:4px;top:6px;z-index:1;
  background:#e5d5aa;transform:rotate(-7deg);
}
.map-cluster-imprint-front{
  left:8px;top:4px;z-index:2;
  background:var(--ink);border-color:var(--ink);
  transform:rotate(3deg);
}
.map-cluster-imprint-front b{
  display:block;color:#fff8e9;
  font:800 11px/1 "Noto Sans SC",sans-serif;
  letter-spacing:-.03em;transform:rotate(-3deg);
}
.map-cluster-backup .map-cluster-imprint{border-color:var(--red)}
.map-cluster-backup .map-cluster-imprint-back{background:#efd3c6}
.map-cluster-backup .map-cluster-imprint-front{background:var(--red);border-color:var(--red)}
.map-cluster-backup .map-cluster-imprint-front b{color:#fff8e9}
.marker-cluster-spider-leg{stroke:#ae4034!important;stroke-width:1.5!important;opacity:.8}

/* Mobile containment: all four passport cities must be visible; itinerary photo stickers stay inside the viewport. */
@media(max-width:560px){
  html,body{max-width:100%;overflow-x:hidden!important}
  .nav{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:center!important;
    justify-content:stretch!important;
    gap:6px!important;
    min-height:102px!important;
    margin-left:-18px!important;
    margin-right:-18px!important;
    padding:25px 10px 12px!important;
    overflow:visible!important;
    white-space:normal!important;
  }
  .nav-tape{display:none!important}
  .nav a{
    min-width:0!important;
    width:100%!important;
    height:68px!important;
    flex:initial!important;
    margin:0!important;
    border-radius:6px 12px 12px 6px!important;
    box-shadow:3px 4px 0 rgba(92,69,34,.10)!important;
  }
  .nav a::before{inset:6px!important}
  .nav a strong{font-size:19px!important;letter-spacing:-.08em!important}
  .nav a .nav-city-en{font-size:6px!important;letter-spacing:.11em!important}
  .nav a.active{transform:translateY(-4px) rotate(-1deg)!important;box-shadow:4px 6px 0 rgba(23,51,72,.15)!important}
  .nav a:hover{transform:translateY(-2px) rotate(0deg)!important}

  /* The desktop center-on-edge photo rule would put half of a sticker outside a narrow viewport. */
  .journey-flow .thumb-frame.photo-note{right:7px!important}
  .journey-flow .backup-thumb.photo-note{right:6px!important}
}

/* Mobile itinerary: photo belongs to the title row; explanation gets the full card width below it. */
@media(max-width:560px){
  .journey-flow .step-body{padding:14px 12px 12px!important}
  .journey-flow .step-content h3{min-height:51px!important;padding-right:78px!important}
  .journey-flow .thumb-frame.photo-note{
    top:13px!important;
    right:7px!important;
    transform:rotate(-4deg)!important;
  }
  .journey-flow .step:nth-child(2) .thumb-frame.photo-note{right:7px!important;transform:rotate(5deg)!important}
  .journey-flow .step:nth-child(3) .thumb-frame.photo-note{right:7px!important;transform:rotate(-2deg)!important}
  .journey-flow .step:nth-child(4) .thumb-frame.photo-note{right:7px!important;transform:rotate(3deg)!important}
  .journey-flow .step-content .explanation{margin-right:0!important}
}

/* 卡片地图交互：标题选择导航，编号定位到当日地图。 */
.route-no-button{cursor:pointer;border:0;padding:0}
.route-no-button:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.map-pin-focus i{animation:trip-map-pin-focus .6s var(--ease) 3}
@keyframes trip-map-pin-focus{50%{transform:scale(1.28);box-shadow:0 0 0 5px rgba(174,64,52,.19),0 1px 5px rgba(0,0,0,.3)}}
@media(max-width:560px){
  .journey-flow .thumb-frame.photo-note,.journey-flow .step:nth-child(2) .photo-note,.journey-flow .step:nth-child(3) .photo-note{right:7px!important}
}
