:root{--bg:#f8f5ef;--paper:#fffdf8;--ink:#243d58;--muted:#7b7f83;--line:#e4dfd6;--orange:#ba624b;--blue:#dde8f0;--sand:#f0e3ce;--purple:#e8e2ec;--serif:"Songti SC","Noto Serif CJK SC","Source Han Serif SC","STSong","SimSun",serif;--ease:cubic-bezier(.22,1,.36,1);--shadow:0 12px 35px #263d5806}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding:95px;scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{width:0;height:0}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-tap-highlight-color:transparent;background-image:radial-gradient(#9b7e5920 .45px,transparent .45px);background-size:6px 6px}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button,a,input,select,textarea{touch-action:manipulation}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #708ead;outline-offset:4px}button,a{transition:background .25s,color .25s,border-color .25s,box-shadow .3s,transform .3s var(--ease)}button:active,.primary:active,.secondary:active{transform:scale(.97)}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1,h2,.mini-card h3{font-family:var(--serif);font-weight:500}h1{font-size:clamp(38px,6vw,62px);letter-spacing:.01em;line-height:1.3}h2{font-size:27px;letter-spacing:.04em}h3{font-size:17px;line-height:1.5;font-weight:600}small{font-size:12px}main{max-width:1080px;margin:auto;padding:10px 28px 138px;min-height:75vh}.masthead{max-width:1136px;margin:auto;padding:26px 28px 22px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:18px;font-weight:600;letter-spacing:3px;line-height:1.35}.brand small{display:block;font:9px/1.3 Georgia,serif;letter-spacing:2.5px;color:var(--muted);margin-top:6px}.brand-icon{color:var(--orange);width:38px;height:42px;display:grid;place-items:center;border:1px solid #b96b5380;outline:1px solid #b96b5340;outline-offset:-4px;transform:rotate(-3deg);border-radius:3px;font-family:var(--serif);font-weight:500;font-size:25px;background:#fcf3e9}.icon-btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:50px;background:#fffdf8a0;flex-shrink:0;font:12px Georgia,serif}.icon-btn:hover{background:#fff;box-shadow:0 5px 20px #243d5810}.eyebrow{font:10px/1.4 Georgia,serif;text-transform:uppercase;letter-spacing:2px;color:var(--muted)}.hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid #dfd7c9;background:#fcfaf4;border-radius:7px;padding:28px 32px 20px;box-shadow:0 10px 35px #5e574d05}.hero:before{content:"";position:absolute;inset:7px;border:1px solid #e8e1d5;border-radius:3px;pointer-events:none;z-index:3}.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:4;padding-bottom:16px;border-bottom:1px solid #e8dfd2}.hero-topline .eyebrow{color:#6e7f90;font-size:9px;letter-spacing:2.1px}.hero-edition{font-family:var(--serif);font-size:11px;letter-spacing:2px;color:var(--orange)}.hero-grid{position:relative;display:grid;grid-template-columns:.95fr 1.15fr;align-items:center;min-height:365px}.hero-copy{position:relative;z-index:2;padding:28px 0 28px;min-width:0}.hero-kicker{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:3px;color:#89909a;margin-bottom:18px}.hero-kicker:before{content:"";height:1px;width:20px;background:#ba624b70}.hero h1 span{color:var(--orange)}.hero p{margin:22px 0 25px;max-width:330px;color:#7f8284;font-size:13px;line-height:1.9;letter-spacing:.05em}.hero-art{width:135%;margin:0 0 -8px -14%;align-self:stretch;display:flex;align-items:center;pointer-events:none}.hero-art img{display:block;width:100%;height:auto;animation:scene-appear 1.1s var(--ease) both}.hero-bottom{position:relative;z-index:4;border-top:1px solid #e8dfd2;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#8b8c8d;letter-spacing:2px}.hero-bottom .mini-wave{width:53px;height:16px;color:#96aabd}.hero-bottom strong{font-weight:400;color:#6f8091;letter-spacing:1px}.postmark{position:absolute;right:31px;top:94px;display:grid;place-items:center;width:62px;height:62px;border:1px solid #b76c5466;border-radius:50%;outline:1px dashed #b76c5466;outline-offset:4px;color:#b76c5480;font:11px/1.6 var(--serif);letter-spacing:3px;transform:rotate(13deg);text-align:center}.primary,.secondary{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:45px;padding:11px 21px;border-radius:6px;font-size:12px;letter-spacing:.08em;font-weight:500}.primary{background:#2b4e73;color:#fffaf0;box-shadow:0 4px 11px #284c6e12}.primary:hover{background:#345f89;box-shadow:0 6px 18px #284c6e20}.primary span{transition:transform .35s var(--ease)}.primary:hover span{transform:translate(3px,-2px)}.secondary{background:var(--paper);border:1px solid var(--line)}.secondary:hover{background:#f0e9de;border-color:#d7c9b5}.notice-strip{display:flex;align-items:center;justify-content:center;gap:13px;padding:19px 4px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.notice-strip strong{color:#60788f;font-size:11px;font-weight:500;white-space:nowrap}.notice-dot{height:4px;width:4px;display:inline-block;background:#c08065;border-radius:100%}.section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:38px 0 19px}.section-head p{color:var(--muted);font-size:12px;margin-top:7px;letter-spacing:.02em}.text-link{font-size:12px;color:var(--orange);font-weight:500;min-height:40px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.text-link:hover{color:#8f4a38;transform:translateX(2px)}.recommend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mini-card{position:relative;overflow:hidden;isolation:isolate;min-height:186px;border:1px solid var(--line);background:#fffdf7;border-radius:5px;padding:23px;text-align:left;box-shadow:var(--shadow)}.mini-card .num{font-family:Georgia,serif;font-size:10px;letter-spacing:1px;color:#ad7d65;display:block;margin-bottom:45px}.mini-card h3{font-size:21px;letter-spacing:.04em}.mini-card p{font-size:11px;line-height:1.8;color:var(--muted);margin-top:9px}.mini-card:after{content:'↗';position:absolute;top:18px;right:20px;color:#8a9daf;font-size:13px}.mini-card:hover{transform:translateY(-4px);box-shadow:0 13px 30px #2b4e7310;border-color:#b9c8d5}.mini-art{position:absolute;right:23px;top:42px;width:69px;height:58px;color:#7893ac;transform:rotate(-7deg);opacity:.7}.mini-art svg{width:100%;height:100%;stroke-width:1.1}.mini-card:nth-child(2){background:#faf6ee}.mini-card:nth-child(2) .mini-art{color:#b97c62}.mini-card:nth-child(3){background:#f4f7f8}.mini-card:nth-child(3) .mini-art{color:#527d9e}.floral-rule{display:flex;align-items:center;gap:17px;margin:39px 0 0;color:#baa48c;opacity:.7}.floral-rule:before,.floral-rule:after{content:"";height:1px;background:#d8cdbd;flex:1}.floral-rule svg{width:23px;height:23px;stroke-width:1}.filters{display:flex;gap:8px;overflow:auto;padding:3px 0 17px;scrollbar-width:none}.chip{position:relative;overflow:hidden;flex-shrink:0;border:1px solid var(--line);border-radius:50px;padding:8px 18px;background:#fffdf8b0;font-size:12px;min-height:41px;color:#777e85;white-space:nowrap}.chip.active{background:#e5edf3;border-color:#b8cbdc;color:#2b4e73;box-shadow:none}.chip:hover{border-color:#afc2d3}.searchbar{display:flex;gap:12px;align-items:center;background:#fffdf8;border:1px solid var(--line);border-radius:7px;padding:0 16px;margin-bottom:14px;transition:border-color .25s,box-shadow .25s;color:#9ba6af}.searchbar:focus-within{border-color:#9ab1c6;box-shadow:0 0 0 3px #dfe8ef80}.searchbar input{width:100%;border:0;background:transparent;min-height:49px;outline:none;font-size:13px}.searchbar input:focus-visible{outline:0}.searchbar input::placeholder{color:#a0a2a1;letter-spacing:.05em}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.place-card{position:relative;border:1px solid var(--line);border-radius:9px;background:#fffdf9;padding:22px;box-shadow:var(--shadow);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}.place-card:hover{border-color:#c3cfd8;box-shadow:0 12px 26px #2b4e7308;transform:translateY(-2px)}.card-top{display:flex;gap:15px;align-items:flex-start}.tile{position:relative;overflow:hidden;width:54px;height:61px;display:grid;place-items:center;border-radius:4px;flex-shrink:0;font-family:var(--serif);font-size:26px;line-height:1}.tile:before,.tile:after{content:"";position:absolute;inset:4px;border:1px solid currentColor;opacity:.16;pointer-events:none}.tile:after{inset:8px;opacity:.07}.tile.orange{background:#f1e2d7;color:#ab6b50}.tile.blue{background:#e1eaf0;color:#52799a}.tile.sand{background:#f0e5d2;color:#a17e50}.tile.purple{background:#e9e3ed;color:#8a7498}.card-copy{flex:1;min-width:0}.meta{font-size:10px;color:#919394;margin-bottom:6px;display:flex;flex-wrap:wrap;gap:7px;align-items:center}.badge{font-size:9px;padding:1px 6px;background:#f2ede4;border:0;border-radius:3px;color:#9d8770;white-space:nowrap;letter-spacing:.01em}.card-copy small{color:var(--muted);font-size:11px}.card-copy h3{font-size:16px;letter-spacing:.01em;color:#3b526b}.save-btn{min-width:40px;min-height:40px;margin:-5px -8px 0 0;color:#a9b4bc;display:grid;place-items:center;border-radius:50%}.save-btn:hover{background:#e9eef2;color:#5a7a99}.save-btn.saved{color:var(--orange)}.save-btn.saved svg{fill:#ba624b13;animation:stamp-in .42s var(--ease)}.place-card p{font-size:12px;line-height:1.9;color:#848585;margin:16px 0 18px;min-height:40px}.card-bottom{border-top:1px solid #eee8e0;padding-top:12px;display:flex;justify-content:space-between;gap:10px;align-items:center}.card-bottom .detail-btn{font-size:11px;min-height:38px;text-align:left;color:#7890a6}.check-btn{font-size:11px;border:1px solid #dfd9cf;padding:7px 12px;border-radius:5px;min-height:37px;white-space:nowrap;color:#8e8c86;letter-spacing:.03em}.check-btn:hover{border-color:#bd9c85;color:#a86c52}.check-btn.done{background:#e7edf3;color:#4a6d8b;border-color:#bdcddd}.count-label{font:11px Georgia,var(--serif);white-space:nowrap;color:#a08971;letter-spacing:.05em}.page-title{position:relative;padding:29px 0 31px;border-bottom:1px solid var(--line);margin-bottom:26px}.page-title h1{font-size:39px;margin:14px 0 16px;letter-spacing:.04em}.page-title p{font-size:13px;line-height:1.9;color:var(--muted);max-width:680px}.paper{background:#fffdf8;border:1px solid var(--line);border-radius:9px;padding:24px;margin-bottom:18px;box-shadow:var(--shadow)}.paper h3{font:19px/1.5 var(--serif);letter-spacing:.04em;margin-bottom:13px}.paper p{font-size:12px;line-height:1.9;color:var(--muted)}.route-grid{display:grid;grid-template-columns:350px 1fr;gap:34px;align-items:start}.route-options{display:grid;gap:10px}.route-choice{position:relative;padding:16px 38px 16px 18px;border:1px solid var(--line);border-radius:7px;background:#fffdf8;text-align:left;box-shadow:none;transition:all .25s var(--ease);min-height:79px}.route-choice.active{border-color:#a9bfd2;box-shadow:0 4px 18px #345f8905;background:#edf2f6}.route-choice.active:after{content:'✓';position:absolute;right:14px;top:calc(50% - 10px);border:1px solid #9fb6cb;border-radius:50%;height:20px;width:20px;display:grid;place-items:center;font:10px sans-serif;color:#6285a4}.route-choice:hover{border-color:#aec0ce;background:#f4f6f7;transform:translateY(-1px)}.route-choice strong{font-size:13px;font-weight:500;letter-spacing:.02em}.route-choice small{display:block;color:#949391;font-size:10px;margin-top:4px}.time-inputs{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:17px 0}.field label{font-size:10px;display:block;margin-bottom:7px;color:#99928a;letter-spacing:.04em}.field input,.field select{width:100%;border:1px solid #e1dbd2;background:#fcfaf5;padding:10px 11px;border-radius:5px;min-height:45px;font-size:13px;box-shadow:none;color:#5a7188;accent-color:#6785a0}.helper{font-size:10px!important;color:#a19a92!important;margin:12px 0 17px;line-height:1.9}.summary{position:relative;overflow:hidden;background:#e6edf2;color:#3c5c78;border:1px solid #c3d2de;border-radius:9px;padding:24px;margin-bottom:28px}.summary:after{content:'〜';position:absolute;right:19px;top:6px;font-family:Georgia,serif;font-size:85px;color:#7293b518;transform:rotate(-15deg);pointer-events:none}.summary .eyebrow{color:#8198ab;font-size:9px;letter-spacing:2.5px}.summary strong{font-size:35px;font-family:Georgia,serif;font-weight:400;letter-spacing:1px;display:block;margin:12px 0}.summary p{font-size:11px;line-height:1.9;color:#7b90a2}.summary.over{background:#f4e6db;border-color:#dcbfa8;color:#ac6c50}.summary.over p{color:#b28872}.timeline{padding-left:0;list-style:none;margin:0}.timeline li{position:relative;padding:0 0 32px 35px;border-left:1px dashed #ced8df;margin-left:13px}.timeline li:last-child{border:0}.timeline .stop{position:absolute;top:1px;left:-13px;width:26px;height:26px;background:#faf7f0;border:1px solid #b7c8d7;border-radius:50%;display:grid;place-items:center;font:11px Georgia,serif;color:#7791a9}.timeline li.finished .stop{background:#e7edf3;color:#537591;border-color:#a0b7cc}.timeline h3{font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:.02em}.time-label{font-family:Georgia,serif;color:#b6795b;font-size:18px;margin-bottom:7px}.timeline p{font-size:11px;color:#8a8b88;margin:8px 0 11px}.walk-label{font-size:10px;color:#abb0b1;margin:0 0 12px;line-height:1.8}.timeline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.timeline-actions button,.timeline-actions a{min-height:36px;font-size:10px;padding:6px 11px;border:1px solid var(--line);border-radius:5px;background:#fffdf8;color:#8496a5}.timeline-actions .skip{border:0;color:#aaa198;background:transparent}.timeline-actions button:hover,.timeline-actions a:hover{background:#edf2f5;color:#5c7c97;border-color:#b7c8d7}.pocket-stats{display:flex;justify-content:space-around;gap:24px;padding:13px 0 25px;margin-bottom:10px;text-align:center}.pocket-stats strong{font-family:Georgia,serif;font-size:40px;font-weight:400;color:#5d7c99}.pocket-stats span{display:block;font-size:10px;color:#9c9993;letter-spacing:.06em;margin-top:2px}.progress{height:3px;background:#e9e3d9;border-radius:5px;overflow:hidden}.progress span{display:block;background:#be876b;height:100%;transition:width .6s var(--ease)}.empty{padding:50px 28px;text-align:center;border:1px dashed #d3c6b4;border-radius:8px;color:#a39a90;grid-column:1/-1;font-size:12px}.empty strong{display:block;font:25px var(--serif);letter-spacing:.07em;color:#8295a5;margin-bottom:16px}.empty a{margin-top:24px}.pocket-tools{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.note{width:100%;resize:vertical;min-height:110px;border:1px solid #e2dbd0;background:#fffcf7;padding:14px;border-radius:5px;font-size:13px;line-height:1.9}.note::placeholder{color:#b0aaa0;font-size:11px}.tip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tip-grid .paper{margin:0}.tip-number{font-family:Georgia,serif;font-size:30px;font-style:italic;color:#c6987d;margin-bottom:15px}.tip-grid a{text-decoration:none}.source-list{display:grid;gap:0}.source-list a{display:block;border-bottom:1px solid var(--line);padding:18px 0;font-size:12px;color:#6d8499}.source-list a:hover{color:var(--orange)}.source-list small{display:block;font-size:10px;color:#a19a91;margin-top:6px}.footer{border-top:1px solid var(--line);padding-top:20px;font:9px/1.7 Georgia,var(--serif);letter-spacing:1.2px;color:#b0a394;margin-top:42px;display:flex;justify-content:space-between;gap:15px}.bottom-nav{position:fixed;bottom:19px;left:50%;transform:translateX(-50%);z-index:20;display:flex;justify-content:center;gap:5px;width:max-content;max-width:calc(100% - 36px);padding:7px;border:1px solid #e1dace;background:#fffdf5ed;border-radius:20px;backdrop-filter:blur(22px);box-shadow:0 10px 35px #263d5810}.bottom-nav a{position:relative;min-width:105px;display:flex;gap:9px;align-items:center;justify-content:center;min-height:48px;border-radius:14px;font-size:11px;color:#9b9d9e;letter-spacing:.05em}.bottom-nav a.active{color:#4e7292;background:#e9eff4;font-weight:500;box-shadow:none}.bottom-nav a.active svg{stroke-width:1.9;animation:nav-lift .45s var(--ease)}.bottom-nav a:hover{color:#547996}.bottom-nav svg{width:20px;height:20px}dialog{border:1px solid #e0d5c6;background:#fcfaf4;color:var(--ink);border-radius:12px;padding:29px;width:min(550px,calc(100% - 30px));max-height:88dvh;overscroll-behavior:contain;box-shadow:0 20px 90px #293e5820;scrollbar-width:none}dialog[open]{animation:dialog-in .42s var(--ease)}dialog::backdrop{background:#273b5059;backdrop-filter:blur(7px);animation:backdrop-in .35s ease}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dialog-header .eyebrow{font-family:var(--serif);letter-spacing:.16em;font-size:11px;color:#b4876c}dialog h2{font-size:28px;letter-spacing:.03em;margin:18px 0 11px}dialog .intro{color:#8b8b86;font-size:13px;margin:13px 0 25px;line-height:1.9}.fact{margin-bottom:23px}.fact strong{font-size:10px;letter-spacing:.06em;color:#b29982;display:block;margin-bottom:9px;font-weight:500}.fact p{font-size:12px;line-height:1.9;color:#7e8790}.fact.notice{background:#f2ece1;padding:17px;border-radius:6px;border:1px solid #e8dfd0}.dialog-actions{display:flex;gap:8px;margin:24px 0}.dialog-actions>*{flex:1;white-space:nowrap;padding:10px}.sources{font-size:10px;margin:18px 0;color:#9b9a94}.sources a{display:block;color:#8f9caa;text-decoration:none;padding:9px 0;border-bottom:1px solid var(--line)}.toast{position:fixed;bottom:112px;left:50%;transform:translate(-50%,12px);background:#3f6282;color:#fffaf2;border:1px solid #ffffff30;border-radius:7px;box-shadow:0 8px 22px #2b4c6c20;padding:12px 20px;opacity:0;pointer-events:none;transition:.35s var(--ease);z-index:60;font-size:11px;max-width:90%;width:max-content;letter-spacing:.05em}.toast.show{opacity:1;transform:translate(-50%,0)}.small-print{font-size:10px;color:#a9a39a}.spacer{height:12px}.title-action{display:flex;justify-content:space-between;align-items:center;gap:12px}.offline{background:#f1e6d7;color:#ae8c70;padding:11px 15px;border-radius:5px;font-size:11px;margin-bottom:12px}.reveal-pending{opacity:0;transform:translateY(18px);transition:opacity .75s var(--ease),transform .75s var(--ease)}.reveal-pending.revealed{opacity:1;transform:translateY(0)}.click-wave{position:absolute;border-radius:50%;pointer-events:none;background:#a5bed233;transform:translate(-50%,-50%) scale(0);animation:ink-wave .65s ease-out forwards;z-index:-1}.primary .click-wave{background:#ffffff28}.view-enter{animation:view-in .65s var(--ease) both}
@keyframes view-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes scene-appear{from{opacity:0;transform:translate(8px,7px)}to{opacity:1;transform:translate(0,0)}}
@keyframes stamp-in{0%{transform:scale(.75) rotate(-8deg)}65%{transform:scale(1.12) rotate(3deg)}100%{transform:scale(1) rotate(0)}}
@keyframes nav-lift{0%{transform:translateY(2px)}55%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes dialog-in{from{opacity:0;transform:translateY(22px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes ink-wave{to{transform:translate(-50%,-50%) scale(2);opacity:0}}
@media(max-width:760px){body{font-size:14px}.masthead{padding:22px 22px 19px}main{padding:5px 20px 120px}.brand{font-size:16px;gap:11px}.brand-icon{width:35px;height:39px;font-size:23px}.brand small{font-size:8px;letter-spacing:2px}.hero{padding:22px 22px 18px;border-radius:5px}.hero-topline{padding-bottom:13px}.hero-topline .eyebrow{font-size:8px;letter-spacing:1.4px}.hero-edition{font-size:9px;letter-spacing:1.6px}.hero-grid{display:block;min-height:0}.hero-copy{padding:26px 0 0}.hero h1{font-size:39px;line-height:1.35;letter-spacing:.035em}.hero-kicker{margin-bottom:12px;font-size:9px;letter-spacing:2.4px}.hero p{max-width:280px;font-size:11px;margin:17px 0 20px;line-height:1.95;letter-spacing:.06em}.hero-art{width:calc(100% + 38px);margin:-6px -19px -3px;height:231px;overflow:hidden;align-items:end}.hero-art img{width:100%;height:auto}.hero .primary{font-size:10px;min-height:42px;padding:10px 15px;gap:16px}.hero-bottom{font-size:8px;padding-top:11px;letter-spacing:1px;gap:7px}.hero-bottom .mini-wave{width:36px;flex-shrink:0}.hero-bottom strong{font-size:8px;letter-spacing:.05em}.postmark{right:24px;top:105px;width:46px;height:46px;font-size:9px;letter-spacing:2px;outline-offset:3px}.notice-strip{font-size:9px;line-height:1.9;padding:17px 0;gap:9px;flex-wrap:wrap;justify-content:flex-start}.notice-strip strong{font-size:10px}.notice-strip>span:last-child{font-size:9px}.section-head{margin:31px 0 17px;gap:8px}h2{font-size:23px;letter-spacing:.03em}.section-head p{font-size:10px;line-height:1.8;margin-top:7px}.text-link{font-size:10px;min-height:36px}.recommend-grid{gap:9px}.mini-card{padding:14px 11px 13px;min-height:175px;border-radius:4px}.mini-card .num{margin-bottom:43px;font-size:9px;letter-spacing:.04em}.mini-card h3{font-size:15px;letter-spacing:0;white-space:nowrap}.mini-card p{font-size:9px;line-height:1.9;margin-top:8px}.mini-card:after{top:10px;right:10px;font-size:10px}.mini-art{width:42px;height:39px;right:12px;top:36px}.floral-rule{margin-top:31px}.cards{grid-template-columns:1fr;gap:12px}.place-card{padding:19px 16px;border-radius:7px}.place-card p{min-height:0;font-size:11px;margin:15px 0;line-height:1.9}.tile{width:48px;height:56px;font-size:24px}.card-top{gap:13px}.card-copy h3{font-size:15px}.meta{font-size:9px;gap:5px}.badge{font-size:8px;padding:1px 5px}.card-copy small{font-size:10px}.card-bottom .detail-btn{font-size:10px}.check-btn{font-size:10px;min-height:36px;padding:6px 10px}.chip{font-size:11px;min-height:40px;padding:7px 17px}.filters{padding-bottom:15px}.searchbar{padding:0 13px}.searchbar input{font-size:11px;min-height:46px}.count-label{font-size:10px}.page-title{padding:20px 0 24px;margin-bottom:23px}.page-title h1{font-size:31px;letter-spacing:.03em;margin:14px 0}.page-title .eyebrow{font-size:9px}.page-title p{font-size:11px;line-height:1.95}.route-grid{grid-template-columns:1fr;gap:15px}.route-options{grid-template-columns:1fr 1fr;gap:9px}.route-choice{padding:14px 27px 14px 12px;min-height:79px;border-radius:6px}.route-choice strong{font-size:11px;letter-spacing:0}.route-choice small{font-size:9px;margin-top:5px}.route-choice.active:after{right:9px;height:15px;width:15px;top:calc(50% - 7px);font-size:8px}.route-choice:first-child{grid-column:1/-1;min-height:74px}.paper{padding:20px;margin-bottom:15px;border-radius:7px}.paper h3{font-size:18px;margin-bottom:12px}.paper p{font-size:11px}.time-inputs{margin:15px 0}.field label{font-size:10px}.field input,.field select{font-size:12px;padding:10px;min-height:44px}.helper{font-size:9px!important}.summary{padding:22px;margin-bottom:27px;border-radius:7px}.summary strong{font-size:32px}.summary p{font-size:10px}.timeline h3{font-size:18px}.timeline li{padding-left:30px;padding-bottom:29px}.timeline p{font-size:10px}.time-label{font-size:17px}.walk-label{font-size:9px}.timeline-actions button,.timeline-actions a{font-size:9px;min-height:35px}.pocket-stats{gap:10px;padding:4px 0 22px}.pocket-stats strong{font-size:35px}.pocket-stats span{font-size:9px}.tip-grid{grid-template-columns:1fr;gap:14px}.tip-number{font-size:29px}.source-list a{font-size:11px;line-height:1.8}.source-list small{font-size:9px}.bottom-nav{bottom:calc(10px + env(safe-area-inset-bottom));width:calc(100% - 32px);max-width:430px;padding:6px;gap:2px;border-radius:19px}.bottom-nav a{flex:1;min-width:0;flex-direction:column;gap:4px;font-size:9px;min-height:53px;padding:5px 0;border-radius:13px}.bottom-nav svg{width:19px;height:19px}.bottom-nav a.active{background:#eaf0f4}.footer{font-size:8px;letter-spacing:.6px;margin-top:34px;padding-top:19px}.footer>span:last-child{text-align:right}dialog{padding:23px 20px;max-height:86dvh;border-radius:12px;width:calc(100% - 26px)}.dialog-actions{flex-wrap:wrap}.dialog-actions>*{min-width:43%;font-size:10px}.dialog-header .eyebrow{font-size:9px}.dialog-header{margin-bottom:17px}dialog h2{font-size:26px}.fact p{font-size:11px}.fact strong{font-size:9px}.fact{margin-bottom:21px}.toast{font-size:10px;bottom:100px}.title-action{align-items:flex-start}.empty{font-size:11px}.empty strong{font-size:23px}}
@media(max-width:360px){main{padding-inline:15px}.hero{padding-inline:19px}.hero h1{font-size:35px}.hero-topline .eyebrow{font-size:7px;letter-spacing:1.1px}.hero-edition{font-size:8px}.hero-art{height:218px}.postmark{width:40px;height:40px;right:20px;top:102px;font-size:8px}.mini-card{padding-inline:8px}.mini-card h3{font-size:13px}.mini-card p{font-size:8px}.notice-strip{gap:7px}.route-choice strong{font-size:10px}.route-choice small{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal-pending{opacity:1;transform:none}}
/* A personal spread: paper, ferry tickets and collected impressions. */
.journal-spread{display:grid;grid-template-columns:1fr 1.1fr;gap:27px;align-items:stretch;margin:10px 0 37px}.journal-cover{position:relative;isolation:isolate;overflow:hidden;min-height:550px;padding:27px 28px 22px;background:#e5edf1;border:1px solid #ced8df;border-radius:5px;box-shadow:0 8px 26px #273d5807}.journal-cover:before{content:"";position:absolute;inset:8px;border:1px solid #fffaf280;pointer-events:none}.journal-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #a3b6c644;padding-bottom:16px;color:#7d96ac;font:11px Georgia,var(--serif);letter-spacing:2.8px}.journal-top>span:last-child{font-size:10px;letter-spacing:4px}.journal-cover-title{font:47px/1.4 var(--serif);letter-spacing:8px;color:#567590;margin-top:24px}.journal-cover-title span{display:block;margin-left:32px;color:#b77459}.journal-cover-art{margin:0 -28px;height:220px;overflow:hidden}.journal-cover-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 70%;mix-blend-mode:multiply}.journal-ticket{position:relative;background:#fff9ed;border:1px solid #ddcdb5;margin:16px 1px 0;padding:18px 20px 18px 26px;box-shadow:2px 3px 0 #cbbda625;transform:rotate(-2deg);color:#ad9c87}.journal-ticket:before{content:"";position:absolute;left:12px;top:0;bottom:0;border-left:1px dashed #dbc4ab}.journal-ticket>span:not(.ticket-hole){font:8px Georgia,var(--serif);letter-spacing:1.4px;display:block;margin-bottom:7px}.journal-ticket strong{display:block;font:17px var(--serif);font-weight:500;letter-spacing:1px;color:#9e7c5c;line-height:1.6}.journal-ticket small{display:block;font-size:9px;letter-spacing:.06em;margin-top:6px}.journal-seal{position:absolute;top:126px;right:33px;border:1px solid #b97b6055;outline:1px dashed #b97b6055;outline-offset:5px;border-radius:50%;height:87px;width:87px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(13deg);color:#b2795f}.journal-seal span{font:8px/1.5 var(--serif);letter-spacing:2px}.journal-seal strong{font:31px/1.25 Georgia,serif;font-weight:400}.journal-editor{position:relative;background:#fffdf8;border:1px solid #e5dcd0;border-radius:4px;padding:32px 27px 20px;box-shadow:0 10px 28px #3b4e6405;transform:rotate(.35deg)}.tape{position:absolute;width:89px;height:24px;top:-11px;left:calc(50% - 44px);background:#dec99c75;transform:rotate(-5deg);clip-path:polygon(0 0,100% 3%,97% 31%,100% 64%,97% 100%,1% 95%,3% 62%,0 32%);pointer-events:none}.journal-heading{font:22px/1.5 var(--serif);letter-spacing:.05em;color:#5c7287;margin-bottom:25px}.journal-heading>span{font:italic 13px Georgia,serif;color:#b1a492;display:block;margin-top:6px;letter-spacing:1.4px}.journal-editor .field input{max-width:210px;background:#fcf8f0}.journal-label{font-size:10px;letter-spacing:.05em;display:block;color:#aa9782;margin-bottom:9px}.journal-mood{margin:23px 0}.mood-options{display:flex;gap:7px;flex-wrap:wrap}.mood-chip{position:relative;overflow:hidden;min-height:35px;border:1px solid #e5ddce;background:#fcfaf4;border-radius:50px;padding:5px 10px;display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#aa9b89;isolation:isolate}.mood-chip>span{font-size:14px;color:#bc9a7c}.mood-chip.active{background:#e7edf3;border-color:#b7c8d8;color:#69839a;box-shadow:none}.mood-chip.active>span{color:#6b8ba8}.journal-text{display:block;width:100%;min-height:178px;padding:4px 0 0;resize:vertical;border:0;border-bottom:1px solid #e9e0d2;border-radius:0;background:repeating-linear-gradient(transparent 0,transparent 31px,#e9e0d2 31px,#e9e0d2 32px);font:14px/32px var(--serif);letter-spacing:.06em;color:#7f8d98;outline:none}.journal-text:focus-visible{outline:0}.journal-text::placeholder{color:#c0b5a6;font-size:12px;letter-spacing:.04em}.journal-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:16px}.journal-editor-actions .secondary{font-size:10px;padding:8px 12px;min-height:37px;color:#9c8267;background:#f6efe3;border-color:#e3d5c0}.journal-editor .helper{margin-bottom:0;font-size:9px!important}.stamp-section{margin-top:15px}.stamp-corner svg{height:28px;width:28px;color:#c1a58a}.stamp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:19px;padding:25px 17px;background:#f4eee3;border:1px solid #e9e1d3;border-radius:5px}.stamp-entry{display:flex;flex-direction:column;align-items:center;gap:15px;color:var(--stamp-color,#ac8f72);text-align:center;padding:9px 3px;min-height:150px;transition:transform .3s var(--ease)}.stamp-entry:hover{transform:translateY(-4px) rotate(1deg)}.stamp-ring{border:1px solid currentColor;outline:1px dashed currentColor;outline-offset:5px;width:92px;height:92px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(var(--stamp-turn,-8deg));opacity:.8}.stamp-ring:before{content:"";position:absolute;inset:7px;border:1px solid currentColor;border-radius:50%;opacity:.35}.stamp-ring small{font:8px/1.5 Georgia,var(--serif);letter-spacing:1px}.stamp-ring strong{font:29px/1.5 var(--serif);font-weight:500}.stamp-name{font:11px/1.7 var(--serif);letter-spacing:.04em;max-width:130px}.stamp-placeholder{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:34px;padding:18px 7px;color:#b8a48b}.stamp-placeholder .stamp-ring{opacity:.5;flex-shrink:0}.stamp-placeholder p{font-size:11px;line-height:2;color:#b0a28e}.pocket-stats{margin-top:29px}.mood-chip:disabled,.secondary:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.journal-spread{grid-template-columns:1fr;gap:24px;margin-bottom:32px}.journal-cover{min-height:0;padding:23px 24px 23px}.journal-top{font-size:10px;padding-bottom:14px}.journal-top>span:last-child{font-size:9px}.journal-cover-title{font-size:43px;letter-spacing:7px;margin-top:22px;position:relative;z-index:1}.journal-cover-title span{display:inline;margin-left:5px}.journal-cover-art{margin:-14px -24px -7px;height:220px}.journal-ticket{padding:15px 15px 15px 25px;margin-top:0;max-width:280px}.journal-ticket strong{font-size:16px}.journal-ticket small{font-size:8px}.journal-seal{top:158px;right:30px;width:64px;height:64px;z-index:1}.journal-seal span{font-size:7px;letter-spacing:1px}.journal-seal strong{font-size:25px}.journal-editor{padding:27px 21px 20px;transform:rotate(.3deg)}.journal-heading{font-size:21px;margin-bottom:22px}.journal-heading>span{font-size:12px}.journal-editor .field input{font-size:11px;max-width:195px}.journal-mood{margin:21px 0}.mood-options{gap:6px}.mood-chip{font-size:9px;padding:5px 9px;min-height:36px}.mood-chip>span{font-size:13px}.journal-text{font-size:13px;min-height:177px}.journal-text::placeholder{font-size:11px}.journal-editor-actions .secondary{font-size:9px;padding:8px 10px}.stamp-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:23px 10px;gap:14px 9px}.stamp-entry{gap:13px;min-height:131px}.stamp-ring{width:73px;height:73px;outline-offset:4px}.stamp-ring strong{font-size:23px}.stamp-ring small{font-size:7px;letter-spacing:.5px}.stamp-name{font-size:9px;max-width:85px;line-height:1.7}.stamp-placeholder{gap:24px;padding:12px 6px}.stamp-placeholder p{font-size:10px;line-height:1.9}.stamp-placeholder .stamp-ring{width:80px;height:80px}.journal-cover-art img{object-position:50% 67%}.stamp-corner svg{width:22px;height:22px}}
@media(max-width:760px){.hero p{font-size:12px}.hero .primary{font-size:11px}.section-head p{font-size:11px}.place-card p{font-size:13px;line-height:1.85}.card-bottom .detail-btn,.check-btn{font-size:11px}.meta{font-size:10px}.badge{font-size:9px}.page-title p,.paper p{font-size:12px}.helper{font-size:10px!important}.timeline p{font-size:11px}.bottom-nav a{font-size:10px}.fact p,dialog .intro{font-size:12px}.journal-text{font-size:15px}.journal-editor .helper{font-size:9px!important}}
:root{--photo-paper:#fffdf8}
.tile.has-photo{overflow:visible;background:transparent;transform:rotate(-4deg);width:64px;height:70px;margin-right:2px}.tile.has-photo:before,.tile.has-photo:after{display:none}.card-photo{display:block;width:64px;height:70px;padding:4px 4px 10px;background:var(--photo-paper);border:1px solid #e1d7c9;box-shadow:1px 3px 5px #4d493018}.card-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.92)}.tile.has-photo:hover{transform:rotate(0deg) translateY(-2px)}
.photo-scrapbook{position:relative;margin:-3px 0 27px}.clipping-heading{display:flex;align-items:center;justify-content:space-between;color:#a09381;font:8px/1.4 Georgia,serif;letter-spacing:1.8px;margin-bottom:3px}.clipping-heading>span:last-child{font:10px/1.5 var(--serif);letter-spacing:.05em;color:#9c9a90}.clipping-heading i{font:19px Georgia,serif;vertical-align:-1px;color:#ad8c6d;font-style:normal;margin-left:5px}.photo-clippings{display:flex;align-items:flex-start;gap:19px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;margin:0 -14px;padding:21px 14px 17px;scrollbar-width:none}.photo-clipping{position:relative;flex:0 0 91%;min-width:0;margin:0;padding:8px 8px 0;background:var(--photo-paper);border:1px solid #e4dccf;box-shadow:1px 3px 6px #60574614,0 9px 18px #60574608;transform:rotate(-1.1deg);scroll-snap-align:center;isolation:isolate;animation:clip-settle .6s var(--ease) both}.photo-clipping:only-child{flex-basis:100%}.photo-clipping:nth-child(even){transform:rotate(1.1deg);animation-delay:.08s}.photo-clipping:before{content:"";position:absolute;z-index:2;top:-10px;left:35%;width:31%;height:23px;transform:rotate(-4deg);opacity:.78;background:repeating-linear-gradient(95deg,#e6d6b7b0 0 3px,#f0e2c5a0 3px 6px);clip-path:polygon(2% 0,98% 3%,100% 93%,0 100%);box-shadow:0 1px 2px #7f684210;pointer-events:none}.photo-clipping:nth-child(even):before{left:26%;background:repeating-linear-gradient(95deg,#c6d5dda6 0 3px,#d9e3e6a0 3px 6px);transform:rotate(3deg)}.clipping-image{position:relative;display:block;overflow:hidden;background:#e7e1d7;width:100%;padding:0;aspect-ratio:4/3}.clipping-image img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.94);transition:transform .8s var(--ease),filter .8s}.clipping-image:hover img{transform:scale(1.035);filter:saturate(1)}.photo-zoom{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;background:#fffdf3e8;border:1px solid #ffffffa0;border-radius:50%;color:#667888;width:29px;height:29px;font:16px Georgia,serif;box-shadow:0 2px 9px #172e4920}.photo-clipping figcaption{display:flex;align-items:center;gap:9px;min-height:51px;padding:8px 5px;color:#67798a;font:13px/1.6 var(--serif);letter-spacing:.03em}.clipping-no{font:9px Georgia,serif;color:#b48f72;letter-spacing:1px}.photo-clipping figcaption>span:nth-child(2){flex:1}.photo-clipping figcaption small{font:8px Georgia,serif;letter-spacing:1px;color:#b29a83;white-space:nowrap}.photo-credit{font-size:9px;line-height:1.8;color:#aaa294;letter-spacing:.02em;margin-top:4px}.photo-credit a{color:#8d98a2;border-bottom:1px solid #cbd1d455;display:inline-block;margin-right:3px}.photo-credit a:hover{color:var(--orange)}.detail-place-tag{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e3dacf;padding-top:20px;font:10px/1.6 var(--serif);letter-spacing:1.5px;color:#aa8870}.detail-place-tag>span:last-child{font:8px/1.6 Georgia,var(--serif);letter-spacing:1.6px;color:#8c9ca8}dialog .detail-place-tag+h2{margin-top:9px}
.photo-lightbox{width:min(930px,calc(100% - 24px));padding:18px;background:#f7f2e8;max-height:94dvh}.photo-lightbox::backdrop{background:#24374bd1;backdrop-filter:blur(10px)}.photo-lightbox .dialog-header{margin-bottom:12px}.lightbox-print{margin:0;padding:7px 7px 0;background:#fffdf8;border:1px solid #e1d6c5}.lightbox-print>img{display:block;width:100%;height:auto;max-height:70dvh;object-fit:contain;background:#ece7dc}.lightbox-print figcaption{padding:13px 10px 17px}.lightbox-print h2{font:18px/1.5 var(--serif);margin:0 0 7px}.lightbox-print a{font-size:10px;line-height:1.7;color:#8996a2}.lightbox-print a:hover{color:var(--orange)}
@keyframes clip-settle{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}@media(max-width:620px){.tile.has-photo,.card-photo{width:57px;height:66px}.tile.has-photo{margin-right:0}.photo-scrapbook{margin-top:0;margin-bottom:24px}.photo-clippings{gap:16px}.photo-clipping{flex-basis:92%;padding:6px 6px 0}.photo-clipping figcaption{font-size:12px;min-height:46px;gap:7px;padding-inline:4px}.photo-clipping figcaption small{font-size:7px}.photo-credit{font-size:8px}.photo-lightbox{padding:12px}.photo-lightbox .dialog-header .eyebrow{font-size:9px}.lightbox-print h2{font-size:16px}.lightbox-print a{font-size:9px}}@media(prefers-reduced-motion:reduce){.photo-clipping{animation:none}.clipping-image img{transition:none}}
