/* Visual layer only: existing page structure, IDs and actions remain intact. */
:root {
  --ink:#243e46; --cream:#f8f6f0; --muted:#747970; --accent:#9d4938;
  --paper:#fdfbf6; --line:#e0ded4; --gold:#a9864c; --app-width:560px;
  --serif:"Songti SC","Noto Serif CJK SC","SimSun",Georgia,serif;
}
body { background:#eaece7; color:#263e45; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif; -webkit-font-smoothing:antialiased; }
body .app { position:relative; max-width:var(--app-width); background:var(--cream); padding:32px 28px 150px; min-height:100dvh; }
body .screen { position:relative; }
body .eyebrow { font-size:9px; font-weight:600; letter-spacing:2.8px; color:var(--accent); }
body .title { font-family:var(--serif); font-weight:500; font-size:32px; line-height:1.45; letter-spacing:1px; margin:12px 0 24px; }
body #friends .title { font-size:32px!important; }
body .head { margin:32px 0 14px; align-items:baseline; border-bottom:1px solid var(--line); padding-bottom:12px; }
body .head h2 { font-family:var(--serif); font-size:23px; font-weight:500; }
body .sub,body .muted { color:#6e766f; font-size:13px; line-height:1.8; }
body .card { background:var(--paper); border:1px solid var(--line); border-radius:6px; box-shadow:none; padding:20px; margin:16px 0; }
body .card>b,body .card .row>b { font-family:var(--serif); font-size:17px; }
body .input,body select { border:1px solid #ded6c6; background:#f5f0e5; border-radius:3px; padding:12px; color:#263e45; font-size:14px; }
body input::placeholder,body textarea::placeholder { color:#85877c; }
body :is(input,textarea,select):focus-visible { outline:2px solid #a9864c; outline-offset:2px; }
body :is(button,a,[role=button]):focus-visible { outline:2px solid #ad4837; outline-offset:4px; }
body button { font-family:inherit; cursor:pointer; }
body .btn { background:#234655; border:1px solid #234655; border-radius:3px; padding:12px 18px; font-size:13px; font-weight:500; letter-spacing:.6px; transition:background .18s,transform .18s; }
body .btn:hover { background:#315966; }
body .btn:active { transform:translateY(1px); }
body .btn.alt { background:transparent; color:#234655; border:1px solid #a5afa5; }
body .btn.small { padding:8px 12px; font-size:12px; }
body .pill { background:#e9eadf; color:#3e5e58; border:1px solid #d7dccd; border-radius:2px; font-size:11px; padding:6px 10px; }
body .pill.active { color:#fcf8ef; background:#294e5b; border-color:#294e5b; }
body .toggle { background:#e9e4d7; border-radius:3px; }
body .toggle button { border-radius:2px; }
body .toggle button.active { background:var(--paper); color:#a34232; box-shadow:none; }
body .community-top { gap:12px; padding-bottom:24px; border-bottom:1px solid var(--line); }
body .community-top>div:first-child { margin-right:auto; }
body .community-top .eyebrow { color:#788075; letter-spacing:2px; font-size:8px; }
body .community-brand { font-family:var(--serif); font-weight:500; font-size:27px; letter-spacing:5px; margin-top:7px; }
body .publish-button { border:1px solid #c9cec2; background:transparent; color:var(--ink); border-radius:50%; width:40px; height:40px; flex-shrink:0; font-size:24px; font-weight:300; line-height:36px; }
body #authEntry { font-size:12px; padding:10px 2px; border-radius:0; background:transparent; border:0; color:#58675f; }
.uk-hero { margin:30px 0 0; }
.uk-editorial { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:22px; }
.uk-kicker { font-size:11px; letter-spacing:3px; color:var(--accent); }
.uk-editorial h1 { margin:10px 0 0; font-family:var(--serif); font-size:38px; font-weight:400; line-height:1.25; letter-spacing:4px; }
.uk-edition { font-family:Georgia,serif; font-size:9px; letter-spacing:1.4px; color:#7a8074; padding-bottom:6px; }
.uk-art { position:relative; background:#eae0c9; overflow:hidden; }
.uk-art img { width:100%; height:auto; aspect-ratio:1.7; display:block; object-fit:cover; }
.uk-art figcaption { position:absolute; bottom:14px; right:16px; color:#fff5df; font-family:var(--serif); font-size:10px; letter-spacing:4px; }
.uk-caption { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 0 24px; font-size:11px; color:#71796c; border-bottom:1px solid var(--line); }
.uk-explore { padding:7px 0 7px 10px; border:0; background:transparent; font-size:11px; color:var(--ink); }
.uk-explore span { margin-left:10px; }
body .home-tabs { border-bottom:0; gap:28px; margin:26px 0 22px; }
body .home-tab { font-size:13px; letter-spacing:2px; padding-bottom:12px; }
body .home-tab.active { color:var(--accent); border-bottom:2px solid var(--accent); font-weight:600; }
body .post-card { background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; box-shadow:none; margin-bottom:30px; }
body .post-image { height:auto; max-height:540px; aspect-ratio:4/3; object-fit:cover; border-radius:2px; }
body .post-content { padding:18px 0 26px; }
body .post-title { font-family:var(--serif); font-size:23px; font-weight:500; line-height:1.5; margin-top:22px; }
body .post-copy { font-size:13px; line-height:1.9; color:#5f6d68; }
body .post-author-name { font-weight:500; font-size:13px; }
body .post-map { background:transparent; color:#667467; border-radius:2px; font-size:11px; padding:4px 0; }
body .post-actions { border-top:1px solid #e6dfd0; padding-top:13px; font-size:12px; }
body .post-actions .is-liked { color:var(--accent); }
body .comment-row input { background:transparent; min-width:0; border-color:var(--line); font-size:13px; }
body .compose-panel { border-color:var(--line); border-radius:4px; background:var(--paper); }
body .compose-panel :is(input,textarea) { background:#f5f0e5; border-radius:2px; }
body .nav { width:min(var(--app-width),100%); background:#f8f6f0f5; border-top:1px solid var(--line); padding:10px 12px max(12px,env(safe-area-inset-bottom)); backdrop-filter:blur(14px); box-shadow:none; }
body .nav button { flex:1; min-width:0; font-size:10px; line-height:1.9; color:#727b70; letter-spacing:1px; padding:3px 0; }
body .nav button.active { color:#a64130; font-weight:500; }
body .nav .nav-icon { display:inline-flex; width:23px; height:23px; align-items:center; justify-content:center; color:inherit; text-shadow:none; }
body .nav svg { width:22px; height:22px; }
body #dmBadge { top:0; right:4px; background:#b74b37; font-size:9px; letter-spacing:0; padding:1px 4px; }
body .profile-hero { padding:8px 0 24px; border-bottom:1px solid var(--line); }
body .profile-hero h1 { font-family:var(--serif); font-weight:500; color:var(--ink); font-size:28px; }
body .profile-large-avatar { border:4px solid #fcf8ef; outline:1px solid #c2bea9; }
body .profile-stats b { font-family:Georgia,serif; font-weight:400; }
body .profile-links button { background:transparent; border-color:var(--line); border-radius:2px; font-size:12px; }
body .profile-settings h3 { font-family:var(--serif); font-weight:500; }
body .profile-settings button { font-size:13px; color:#4c605b; border-color:#e0d9c8; }
body .profile-row,body .profile-item { border-color:var(--line); }
body .profile-row-actions button { border-radius:2px; background:var(--paper); }
body .map-card { padding:7px; }
body .map-canvas,body .photo { border-radius:2px; }
body #mapStatus { padding:10px 6px 4px; font-size:11px; }
body .dm-row { background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:16px 14px; margin:12px 0; }
body .dm-summary b { font-family:var(--serif); font-size:17px; font-weight:500; }
body .dm-initial { background:#dfe5d5; color:#315755; font-family:var(--serif); }
body .dm-count { background:#b74b37; }
body .dm-window { width:min(var(--app-width),100%); background:var(--cream); padding-inline:22px; }
body .dm-header { border-bottom:1px solid var(--line); padding:12px 0; }
body .dm-header b { font-family:var(--serif); font-size:19px; font-weight:500; }
body .dm-header button { color:#5c6d60; font-size:12px; }
body #dmDelete { color:#a94a38; }
body .dm-message { border:1px solid #dbd3c1; border-radius:3px 13px 13px; background:var(--paper); font-size:14px; }
body .dm-message.mine { background:#2b515e; color:#fcf7ec; border-color:#2b515e; border-radius:13px 3px 13px 13px; }
body .dm-message.failed { background:#f5dfd2; color:#973f2e; border-color:#d8b09b; }
body .dm-compose { border-top:1px solid var(--line); padding-top:12px; }
body .dm-compose textarea { background:var(--paper); border-color:var(--line); border-radius:3px; }
body .dm-profile { background:var(--paper); border:1px solid var(--line); border-radius:5px; }
body .dm-profile h2 { font-family:var(--serif); font-weight:500; }
body .dm-status { font-size:11px; }
body #authDialog { background:var(--paper); border:1px solid var(--line)!important; border-radius:5px!important; }
body #authDialog h2 { font-family:var(--serif); font-weight:500; font-size:23px; }
body #authDialog::backdrop { background:#1c364b70; backdrop-filter:blur(3px); }
body #twToast { border-radius:3px!important; z-index:90!important; font-size:12px!important; max-width:90vw; }
body .bubble.ai,body .buddy-message { background:var(--paper); border-radius:4px; border:1px solid var(--line); }
body .bubble.me,body .buddy-message.mine { background:#2b515e; color:var(--paper); border-radius:4px; }
body .buddy-chat-window { background:var(--cream); }
body .route-card { background:var(--paper); border:1px solid var(--line); border-radius:6px; box-shadow:none; padding:20px; }
body .route-card h3 { font-family:var(--serif); font-weight:500; font-size:21px; }
body .route-tags { line-height:1.8; }
body .ai-float { right:max(20px,calc((100vw - var(--app-width))/2 + 24px)); bottom:94px; width:auto; height:42px; gap:7px; padding:0 13px; border:1px solid #c9cec2; border-radius:6px; background:var(--paper); color:var(--ink); box-shadow:0 3px 14px #243e460a; font-size:11px; cursor:pointer; }
body .ai-float svg { width:19px; height:19px; }
body .ai-float::after { content:none; }
body .ai-float.is-hidden { visibility:hidden; }
body .ai-float-tab { background:var(--ink); border:0; font-size:10px; }
@media(min-width:800px) { body .app { padding-inline:40px; border-inline:1px solid #dedfd5; } .dm-window { border-inline:1px solid #dedfd5; } }
@media(max-width:400px) { body .app { padding:24px 22px 145px; } .uk-editorial h1 { font-size:34px; } .uk-edition { font-size:8px; letter-spacing:.8px; } }
@media(max-width:360px) { body .app { padding-inline:18px; } body .community-brand { font-size:24px; } body .title,body #friends .title { font-size:28px!important; } body .dm-header { gap:7px; } .uk-caption { font-size:10px; } }

/* Product upgrade: one editorial system for publishing, routes and place stories. */
body .publish-button{width:auto;height:40px;border-radius:3px;padding:0 13px;font-size:12px;line-height:38px;letter-spacing:1px;display:flex;align-items:center;gap:5px}
body .publish-button span{font-size:19px;font-weight:300}
.route-page-head{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.route-page-head>button:first-child{width:38px;height:38px;border:1px solid var(--line);background:var(--paper);font-size:27px;color:var(--ink)}
.route-page-head small{font:9px Georgia,serif;letter-spacing:2px;color:var(--accent)}
.route-page-head h1{font:500 25px/1.3 var(--serif);letter-spacing:1px;margin:4px 0 0;color:var(--ink)}
.route-save{border:0;background:transparent;color:var(--accent);font-size:13px;padding:10px 0}.route-save:disabled{opacity:.45}
.publish-editor{display:grid;gap:14px}.publish-title{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;font:500 23px var(--serif);color:var(--ink)}
.publish-editor textarea{width:100%;min-height:150px;border:0;background:var(--paper);padding:16px;resize:vertical;font:14px/1.8 inherit;color:var(--ink)}
.publish-media-pick{display:inline-flex;width:max-content;border:1px solid #a5afa5;padding:10px 13px;color:var(--ink);font-size:12px;cursor:pointer}.publish-media-pick input{display:none}
.compose-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.compose-preview{position:relative;min-width:0}.compose-preview :is(img,video){display:block;width:100%;aspect-ratio:1;object-fit:cover}.compose-preview button{position:absolute;right:4px;top:4px;width:25px;height:25px;border:0;border-radius:50%;background:#173f4fd9;color:#fff}.compose-preview small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;margin-top:3px;color:var(--muted)}
.publish-section-head{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:18px;border-top:1px solid var(--line)}.publish-section-head b{font:500 17px var(--serif)}.publish-section-head button,.publish-route-clear{border:0;background:transparent;color:var(--accent)}
.publish-route-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.publish-route-choice,.publish-route-add{min-height:62px;border:1px solid var(--line);background:var(--paper);text-align:left;padding:10px;color:var(--ink)}.publish-route-choice b,.publish-route-choice small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.publish-route-choice small{margin-top:5px;color:var(--muted)}.publish-route-choice.active{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}
.post-gallery{display:grid;gap:3px}.post-gallery.is-multiple{grid-template-columns:repeat(2,1fr)}.post-gallery :is(img,video){width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#e7e2d6}.post-gallery.is-multiple :first-child:nth-last-child(3){grid-row:span 2;height:100%}
.post-author-identity{display:flex;align-items:center;gap:9px;min-width:0;border:0;background:transparent;text-align:left;color:inherit;padding:0}.post-author-identity>span:last-child{display:grid}.post-author-identity small{font-size:10px;color:var(--muted);margin-top:2px}.post-open{display:block;width:100%;border:0;background:transparent;text-align:left;padding:0;color:inherit}.post-owner-actions{display:flex;justify-content:flex-end;gap:12px}.post-owner-actions button{border:0;background:transparent;color:var(--accent)}
.post-route-card{display:grid;grid-template-columns:42% 1fr;width:100%;min-height:155px;margin:15px 0;border:1px solid #d9d6ca;background:#f3efe5;padding:0;text-align:left;color:var(--ink);overflow:hidden}.post-route-card>span{display:flex;flex-direction:column;padding:14px;min-width:0}.post-route-card small{font:8px Georgia,serif;letter-spacing:1.6px;color:var(--accent)}.post-route-card b{font:500 17px var(--serif);margin:8px 0}.post-route-card em{font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-route-card i{margin-top:auto;font-style:normal;font-size:10px;color:#49625f}.route-sketch{width:100%;height:100%;min-height:155px;background:linear-gradient(145deg,#d8e6df,#efe0c3)}.route-sketch polyline{fill:none;stroke:#a34837;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.route-sketch circle{fill:#fff;stroke:#243e46;stroke-width:3}.route-sketch .route-land{fill:none;stroke:#ffffff70;stroke-width:28}.route-sketch-empty{display:grid;place-items:center;font-size:10px;color:var(--muted)}
.content-dialog{width:min(560px,calc(100% - 24px));max-height:92dvh;overflow:auto;border:1px solid var(--line);background:var(--cream);padding:24px;box-shadow:0 24px 80px #173f4f40}.content-dialog::backdrop{background:#173f4f70;backdrop-filter:blur(3px)}.dialog-close{position:sticky;z-index:2;float:right;top:0;width:36px;height:36px;border:1px solid var(--line);background:var(--paper);font-size:23px}
.route-mode{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:12px 0}.route-mode button{border:1px solid var(--line);background:var(--paper);padding:9px 3px;color:var(--muted);font-size:11px}.route-mode button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.route-search{display:grid;grid-template-columns:1fr auto;gap:7px}.route-search .btn{border-radius:3px}.route-search-result{display:grid;grid-template-columns:1fr auto;border:0;border-bottom:1px solid var(--line);background:var(--paper);width:100%;text-align:left;padding:11px}.route-search-result small{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.route-search-result span{grid-column:2;grid-row:1/3;font-size:20px;color:var(--accent)}
.route-editor-map{height:330px;margin:15px 0;background:#dde7df;display:grid;place-items:center}.route-editor-caption{font-size:10px;color:var(--muted);margin-top:-8px}.route-waypoint{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:12px 0;border-bottom:1px solid var(--line)}.route-waypoint>span,.route-detail-list>div>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font:12px Georgia}.route-waypoint div:nth-child(2){min-width:0}.route-waypoint b,.route-waypoint small{display:block}.route-waypoint small{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-waypoint div:last-child{display:flex}.route-waypoint div:last-child button{border:0;background:transparent;color:var(--ink);padding:7px}.route-waypoint button:disabled{opacity:.2}.route-empty{padding:25px;text-align:center;color:var(--muted);border:1px dashed var(--line)}.route-summary{display:flex;gap:10px;justify-content:space-between;margin-top:15px;padding:14px;background:var(--paper);font-size:12px}.route-detail-meta{display:flex;flex-wrap:wrap;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.route-detail-list>div{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.route-detail-list b,.route-detail-list small{display:block}.route-detail-list small{color:var(--muted);margin-top:5px}
.landmark-detail{margin:16px 0 28px;background:var(--paper);border:1px solid var(--line);padding:18px}.landmark-detail header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.landmark-icon{font-size:30px}.landmark-detail h2{font:500 24px var(--serif);margin:3px 0}.landmark-detail header small,.landmark-source{color:var(--muted);font-size:9px}.landmark-detail header>b{color:var(--accent);font-size:12px}.landmark-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin:16px 0}.landmark-gallery figure{margin:0;position:relative;min-width:0}.landmark-gallery figure.featured{grid-column:span 2}.landmark-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.landmark-gallery .featured img{aspect-ratio:16/9}.landmark-gallery figcaption{position:absolute;inset:auto 0 0;background:#173f4fa8;color:#fff;padding:5px 7px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landmark-gallery a{color:#fff}.landmark-detail>p{font-size:13px;line-height:1.8}.landmark-tags{display:flex;flex-wrap:wrap;gap:6px}.landmark-tags span{padding:5px 8px;background:#ece9df;font-size:10px}.landmark-actions{display:flex;gap:8px;margin:15px 0}.landmark-actions .btn{flex:1}.landmark-photo-loading{padding:40px;text-align:center;background:#e7e4da;color:var(--muted);margin:15px 0}
.uk-globe-art{border:0;box-shadow:none;background:transparent}.uk-globe-art::before,.uk-globe-art::after{display:none}.uk-globe-art iframe{display:block;width:100%;height:auto;aspect-ratio:680/440;border:0;background:transparent}
@media(max-width:420px){.route-editor-map{height:285px}.post-route-card{grid-template-columns:38% 1fr}.publish-route-choices{grid-template-columns:1fr}}

/* Polished motion and depth: restrained to compositor-friendly properties. */
html { scroll-behavior:smooth; background:#d5d9d0; }
body { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body .screen.active { animation:uk-screen-in .42s cubic-bezier(.22,1,.36,1) both; }
body .card,body .post-card,body .dm-row { transition:transform .28s cubic-bezier(.22,1,.36,1),border-color .28s,box-shadow .28s; }
body .card:hover,body .post-card:hover,body .dm-row:hover { transform:translateY(-2px); border-color:#c0b59f; box-shadow:0 14px 34px #223f4a12; }
.uk-hero { animation:uk-hero-in .7s cubic-bezier(.22,1,.36,1) both; }
.uk-art::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(115deg,transparent 30%,#fff8 48%,transparent 62%); transform:translateX(-120%); animation:uk-ink-shine 7s 1.2s ease-in-out infinite; }
.uk-art img { transform:scale(1.015); transition:transform 1.2s cubic-bezier(.22,1,.36,1),filter .4s; }
.uk-art:hover img { transform:scale(1.04); filter:saturate(1.04) contrast(1.02); }
.uk-art { isolation:isolate; border:1px solid #c8bda7; box-shadow:0 18px 45px #1f3f4b18,0 1px 0 #fff8 inset; }
.uk-art::before { content:""; position:absolute; inset:9px; z-index:2; pointer-events:none; border:1px solid #fff8; mix-blend-mode:soft-light; }
.uk-seal { position:absolute; z-index:3; right:18px; top:17px; display:grid; place-items:center; width:30px; height:30px; border:1px solid #f1d8bdcc; background:#a83f2fde; color:#f9e5cd; font-family:var(--serif); font-size:15px; box-shadow:0 5px 14px #4020162b; }
.uk-caption>span { display:flex; align-items:center; gap:8px; }
.uk-caption i { width:18px; height:1px; background:var(--gold); }
.uk-explore { border:0; border-bottom:1px solid #a9864c; background:transparent; color:#4c605b; padding:2px 0 5px; font:inherit; letter-spacing:1px; cursor:pointer; transition:color .2s,border-color .2s,transform .2s; }
.uk-explore:hover { color:#a64130; border-color:#a64130; transform:translateX(2px); }
body .nav button { position:relative; transition:color .2s,transform .2s; }
body .nav button::after { content:""; position:absolute; left:50%; bottom:1px; width:18px; height:1px; background:#a64130; transform:translateX(-50%) scaleX(0); transition:transform .25s; }
body .nav button.active { transform:translateY(-1px); }
body .nav button.active::after { transform:translateX(-50%) scaleX(1); }
body .nav .nav-icon { transition:transform .25s cubic-bezier(.22,1,.36,1); }
body .nav button:active .nav-icon { transform:scale(.86); }
body .dm-overlay { animation:dm-fade-in .22s ease-out both; backdrop-filter:blur(7px); }
body .dm-window { animation:dm-sheet-in .36s cubic-bezier(.22,1,.36,1) both; box-shadow:0 0 50px #15333e24; }
body .dm-header { position:relative; z-index:2; background:#f4efe4e8; backdrop-filter:blur(14px); }
body .dm-message { animation:dm-message-in .25s cubic-bezier(.22,1,.36,1) both; box-shadow:0 4px 12px #263f4910; }
body .dm-compose { background:#f4efe4f2; backdrop-filter:blur(14px); }
body .dm-compose textarea { transition:border-color .2s,box-shadow .2s,background .2s; }
body .dm-compose textarea:focus { border-color:#9d8d6f; box-shadow:0 0 0 3px #a9864c18; background:#fffdf8; outline:0; }
body .dm-compose button { min-width:64px; transition:transform .18s,opacity .18s; }
body .dm-compose button:disabled { opacity:.45; cursor:not-allowed; }
body .dm-avatar { box-shadow:0 0 0 1px #bdb49f,0 3px 10px #263f4915; }
body .dm-empty { color:#68736d; }
.dm-page-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; padding-bottom:22px; border-bottom:1px solid var(--line); }
.dm-page-head .title { margin-bottom:8px; }
.dm-page-head .muted { margin:0; max-width:310px; }
.dm-private-mark { flex:none; display:inline-flex; align-items:center; gap:6px; margin-top:25px; padding:7px 10px; border:1px solid #d4c8b4; color:#706855; font-family:var(--serif); font-size:12px; letter-spacing:1px; background:#fbf7ed; }
.dm-private-mark span { color:var(--accent); font-size:18px; line-height:0; }
body #dmList .dm-empty { display:flex; flex-direction:column; align-items:center; gap:10px; margin-top:24px; padding:42px 26px; text-align:center; background:linear-gradient(145deg,#fffdf8,#f4eee1); }
body #dmList .dm-empty b { font-family:var(--serif); font-size:20px; font-weight:500; color:var(--ink); }
body #dmList .dm-empty .muted { display:block; max-width:260px; }
.dm-empty-icon { display:grid; place-items:center; width:54px; height:54px; margin-bottom:4px; border:1px solid #b89569; color:#a04735; background:#f8efe0; font-family:var(--serif); font-size:21px; transform:rotate(-3deg); box-shadow:5px 5px 0 #e6dcc9; }
.dm-person { flex:1; min-width:0; display:flex; flex-direction:column; }
body .dm-person b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dm-person small { margin-top:2px; color:#8b8577; font-size:10px; letter-spacing:1px; }
body .dm-row { position:relative; overflow:hidden; }
body .dm-row::before { content:""; position:absolute; inset:0 auto 0 0; width:2px; background:var(--accent); transform:scaleY(0); transition:transform .25s; }
body .dm-row:hover::before,body .dm-row:focus-visible::before { transform:scaleY(1); }
@media(min-width:900px) {
  body { background:radial-gradient(circle at 18% 12%,#edf0e7 0 16%,transparent 45%),linear-gradient(120deg,#ced5cf,#e9e7dd 48%,#cbd3ce); }
  body .app { margin-block:24px; min-height:calc(100dvh - 48px); border:1px solid #c8c8bd; box-shadow:0 24px 80px #18354124; }
  body .nav { bottom:24px; border-inline:1px solid #dedfd5; }
}
@keyframes uk-screen-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes uk-hero-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes uk-ink-shine { 0%,65% { transform:translateX(-120%); } 82%,100% { transform:translateX(120%); } }
@keyframes dm-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes dm-sheet-in { from { opacity:.7; transform:translateY(18px) scale(.99); } to { opacity:1; transform:none; } }
@keyframes dm-message-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(max-width:520px) { body .dm-window { padding-inline:14px; } body .dm-header { margin-inline:-14px; padding-inline:14px; } body .dm-compose { margin-inline:-14px; padding-inline:14px; padding-bottom:max(14px,env(safe-area-inset-bottom)); } .dm-private-mark { margin-top:21px; font-size:11px; } }

@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }

/* Editorial chapters: quiet ukiyo-e cues shared by every primary screen. */
body .app::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.28; background-image:linear-gradient(90deg,#7d72570a 1px,transparent 1px),linear-gradient(#7d725706 1px,transparent 1px); background-size:28px 28px; mask-image:linear-gradient(to bottom,#000,transparent 48%); }
body .screen { isolation:isolate; }
body .uk-chapter { padding-top:7px; }
body .uk-chapter::before { content:attr(data-chapter); position:absolute; z-index:-1; top:-16px; right:-4px; color:#a9864c12; font:400 96px/1 Georgia,var(--serif); }
body .uk-chapter>.eyebrow:first-child::after,.dm-page-head .eyebrow::after { content:"  /  " attr(data-chapter-label); color:#9b8d72; letter-spacing:1px; }
body #friends>.eyebrow:first-child::after { content:"  /  同路人名录"; }
body #profile>.eyebrow:first-child::after { content:"  /  我的旅册"; }
body .uk-chapter>.title,body .dm-page-head .title { position:relative; max-width:88%; margin-top:14px; padding-bottom:19px; }
body .uk-chapter>.title::after,body .dm-page-head .title::after { content:""; position:absolute; left:0; bottom:0; width:68px; height:2px; background:linear-gradient(90deg,var(--accent) 0 18px,var(--gold) 18px 100%); }
body #discover>.card:first-of-type,body #friends>.card:first-of-type { position:relative; overflow:hidden; border-top:2px solid #b39464; background:linear-gradient(145deg,#fffdf8,#f3ede0); }
body #discover>.card:first-of-type::after,body #friends>.card:first-of-type::after { content:"旅"; position:absolute; right:16px; top:14px; display:grid; place-items:center; width:27px; height:27px; border:1px solid #ad604f66; color:#a34b3c66; font-family:var(--serif); transform:rotate(3deg); }
body #discover .photo { filter:saturate(.82) contrast(1.03); border:1px solid #c8bda7; box-shadow:7px 7px 0 #e6dcc9; margin-bottom:8px; }
body #discover>.card:has(.photo) { padding:12px 12px 18px; }
body #map .map-card { position:relative; border-color:#bfb59f; box-shadow:8px 8px 0 #ded7c8; background:#fdfaf2; }
body #map .map-card::before { content:"世界游览"; position:absolute; z-index:500; top:16px; left:16px; padding:5px 8px; background:#f9f4e8e8; border:1px solid #b7aa90; color:#665f50; font:10px var(--serif); letter-spacing:2px; pointer-events:none; }
body #map .leaflet-control-zoom a { color:#284b57; background:#fbf7ed; border-color:#c9bda5; }
body #messages .dm-page-head { position:relative; margin-bottom:18px; background:linear-gradient(135deg,#f8f2e6 0 52%,transparent 52%); padding:18px 15px 22px; border:1px solid var(--line); }
body #messages .dm-page-head::after { content:"文"; position:absolute; right:22px; bottom:14px; color:#a34a39; border:1px solid #a34a3970; padding:4px; font:15px var(--serif); transform:rotate(-4deg); }
body #messages .dm-private-mark { border-radius:0; box-shadow:3px 3px 0 #e5dac7; }
body #friends .head { position:relative; }
body #friends .head::after { content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); box-shadow:10px 0 0 #c39a57; }
body #friends #buddyPlans>.card { border-left:2px solid #a9864c; }
body #profile .profile-hero { position:relative; padding:20px; background:linear-gradient(150deg,#fdfaf3,#eee6d8); border:1px solid #d7cdbb; }
body #profile .profile-hero::after { content:"旅"; position:absolute; right:17px; top:16px; color:#a64a38; border:1px solid #a64a3875; padding:4px; font:15px var(--serif); transform:rotate(5deg); }
body #profile .profile-stats { border-radius:0; border-inline:0; background:transparent; }
body #profile .profile-links { background:#fdfaf4; border-color:#d8cfbd; }
body #profile .profile-links button { border-radius:0; background:transparent; border-color:#e2daca; }
body .nav { box-shadow:0 -12px 35px #243e4609; }
body .nav::before { content:""; position:absolute; top:-1px; left:18px; right:18px; height:1px; background:linear-gradient(90deg,transparent,#a9864c 20% 80%,transparent); }
@media(min-width:900px) { body .app::after { content:"TRAVEL WORLD · 旅途手帖"; position:fixed; left:calc(50% + var(--app-width)/2 + 24px); top:50%; color:#53675f80; font:9px Georgia,serif; letter-spacing:4px; writing-mode:vertical-rl; transform:translateY(-50%); } }

/* Q atlas using the original Leaflet engine and geographic data. */
body #map .map-card-primary { margin:18px -5px 24px; padding:12px; border:1px solid #b9ad96; box-shadow:9px 9px 0 #ddd4c3,0 18px 40px #213f4a12; }
body #map .map-card-primary::before { display:none; }
body #map .map-card-primary::after { content:"Q ATLAS"; position:absolute; z-index:500; right:17px; top:116px; padding:5px 8px; color:#f9f1df; background:#a84e3d; font:9px Georgia,serif; letter-spacing:1.5px; pointer-events:none; }
body #map .map-card-primary .map-canvas { min-height:480px; border:1px solid #c8bda7; border-radius:4px; background:#dce8df; }
body #map .leaflet-tile-pane { filter:saturate(.72) sepia(.08) brightness(1.03) contrast(.92); }
body #map .leaflet-popup-content-wrapper,body #map .leaflet-popup-tip { background:#fffaf0; color:#173f4f; }
body #map .leaflet-popup-content-wrapper { border:1px solid #bcae94; border-radius:8px; box-shadow:0 12px 30px #173f4f25; }
body #map .tw-q-pin__body { border-color:#9c513f; background:#fff6df; box-shadow:0 7px 16px #173f4f38; }
body #map .tw-q-pin__icon { background:#efc77e; box-shadow:inset 0 0 0 2px #fff8; }
body #map .tw-online-pin .tw-q-pin__body { position:relative; z-index:2000; border-color:#367a73; background:#eef8ee; }
body #map .map-compact-labels .tw-q-pin__label { display:none; }
body #map .map-compact-labels .tw-q-pin__body { width:36px; padding:4px; transform:translate(-8px,-8px); }
#mapExplore { margin-top:26px; }
#mapExplore>.card:first-child { border-top:2px solid #b39464; background:linear-gradient(145deg,#fffdf8,#f3ede0); }
body .post-author-identity[role=button] { cursor:pointer; }
@media(max-width:520px) { body #map .map-card-primary { margin-inline:-10px; } body #map .map-card-primary .map-canvas { min-height:430px; } }

/* Curated reference routes: photographic covers and practical day-by-day stories. */
.route-reference-card{position:relative;isolation:isolate;min-height:340px;overflow:hidden;border:1px solid #b9ae98;background:#d9d1c0;color:#fff;box-shadow:8px 8px 0 #e2d9c8,0 18px 38px #213c4717}
.route-reference-cover,.route-detail-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .35s,transform .8s cubic-bezier(.22,1,.36,1)}
.route-reference-card:hover .route-reference-cover{transform:scale(1.035)}
.route-reference-shade{position:absolute;inset:0;background:linear-gradient(180deg,#16384440 0%,#102d3850 38%,#10252ee8 100%)}
.route-reference-copy{position:relative;z-index:1;min-height:340px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;text-shadow:0 1px 16px #10252e88}
.route-reference-copy .route-card-top{font:10px Georgia,var(--serif);letter-spacing:1.8px;text-transform:uppercase}
.route-country{padding-bottom:5px;border-bottom:1px solid #eedfb6aa}
.route-reference-main>p{margin:0 0 5px;color:#f0d9a7;font-size:11px;letter-spacing:2px}
.route-reference-main h3{margin:0 0 9px;color:#fff;font:500 31px/1.2 var(--serif);letter-spacing:2px}
.route-reference-main .route-tags{display:flex;flex-wrap:wrap;gap:7px;color:#f8f0df;font-size:11px}
.route-reference-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:17px;padding-top:15px;border-top:1px solid #fff5}
.route-reference-footer>b{font:400 12px Georgia,var(--serif);letter-spacing:.5px}
.route-view-button{border:0;border-bottom:1px solid #f3d7a4;background:transparent;color:#fff;padding:4px 0 6px;font:12px var(--serif);letter-spacing:1px;cursor:pointer}
.route-view-button span{display:inline-block;margin-left:7px;transition:transform .2s}.route-view-button:hover span{transform:translateX(3px)}
.route-photo-loading{background:linear-gradient(105deg,#d7cfbd 25%,#eee8dc 43%,#d7cfbd 62%);background-size:250% 100%;animation:route-shimmer 1.7s linear infinite}
.route-photo-loading img{opacity:0}.route-detail-open{overflow:hidden}
.route-detail-overlay{overflow:auto;padding:20px;align-items:flex-start}
.route-detail{width:min(820px,100%);margin:auto;background:var(--cream);border:1px solid #bdb29d;box-shadow:0 30px 90px #142e3980}
.route-detail-hero{position:relative;isolation:isolate;min-height:390px;display:flex;align-items:flex-end;padding:34px;color:#fff;overflow:hidden;background:#d6cebd}
.route-detail-hero>img{z-index:-2}.route-detail-gradient{position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#102e3940,#102832e8)}
.route-detail-back{position:absolute;top:22px;left:22px;border:1px solid #fff8;background:#f8f2e6e8;color:#203f49;padding:9px 13px;font:12px var(--serif);cursor:pointer;backdrop-filter:blur(9px)}
.route-detail-hero span{color:#efd49e;font:10px Georgia,serif;letter-spacing:2px}.route-detail-hero h2{margin:9px 0 5px;color:#fff;font:500 40px/1.15 var(--serif);letter-spacing:3px}.route-detail-hero p{margin:0;color:#f3eee2;font-size:13px}
.route-detail-intro{padding:29px 34px;border-bottom:1px solid var(--line)}.route-detail-intro>p{font-size:14px;line-height:1.9;color:#4f625e}
.route-detail-facts{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-bottom:20px}.route-detail-facts span{padding:12px 14px;border-left:2px solid var(--gold);background:#fbf7ed}.route-detail-facts small,.route-detail-facts b{display:block}.route-detail-facts small,.route-day-notes small{color:#9a624d;font-size:9px;letter-spacing:1px}.route-detail-facts b{margin-top:5px;font:500 12px var(--serif)}
.route-days{padding:7px 34px 20px}.route-day{padding:30px 0;border-bottom:1px solid #d8cfbd}.route-day>header{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:start;margin-bottom:18px}.route-day>header>span{padding:7px 8px;background:var(--accent);color:#fff;font:10px Georgia,serif;letter-spacing:1px}.route-day>header h3{margin:0 0 5px;font:500 24px var(--serif)}.route-day>header p{margin:0;color:var(--muted);font-size:12px}.route-day>header>b{color:#8a6940;font:400 11px Georgia,serif;white-space:nowrap}
.route-activity{display:grid;grid-template-columns:42% 1fr;margin:15px 0;background:var(--paper);border:1px solid var(--line);overflow:hidden}.route-activity-image{position:relative;min-height:290px;background:#d8d1c2}.route-activity-image img{width:100%;height:100%;object-fit:cover}.route-activity-image>span{position:absolute;top:12px;left:12px;padding:6px 8px;background:#f8f2e6ed;color:var(--ink);font:11px Georgia,serif}.route-activity-copy{padding:20px}.route-activity-copy h4{margin:0 0 10px;font:500 20px var(--serif)}.route-activity-copy>p{margin:0 0 15px;color:#53645f;font-size:12px;line-height:1.8}.route-activity-copy dl{margin:0}.route-activity-copy dl>div{display:grid;grid-template-columns:66px 1fr;gap:8px;padding:6px 0;border-top:1px solid #e7dfd0;font-size:10px}.route-activity-copy dt{color:#9a624d}.route-activity-copy dd{margin:0;color:#53645f}.route-activity-copy aside{margin-top:13px;padding:10px 11px;background:#f1eadc;color:#615d50;font-size:10px;line-height:1.6}.route-activity-copy aside b{display:block;color:#9a4c39;margin-bottom:2px}
.route-day-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.route-day-notes>div{padding:11px;background:#ede7da}.route-day-notes p{margin:5px 0 0;font-size:10px;line-height:1.55;color:#58655f}
.route-detail-actions{display:flex;gap:9px;padding:7px 34px 16px}.route-detail-actions .btn{flex:1}.route-photo-credit{margin:0;padding:0 34px 28px;color:#898274;font-size:9px;text-align:center}
.route-activity-image img{position:absolute;inset:0}
@keyframes route-shimmer{to{background-position:-250% 0}}
@media(max-width:620px){.route-detail-overlay{padding:0}.route-detail{border:0}.route-detail-hero{min-height:330px;padding:26px 22px}.route-detail-hero h2{font-size:34px}.route-detail-intro,.route-days{padding-inline:20px}.route-detail-facts{grid-template-columns:1fr}.route-activity{grid-template-columns:1fr}.route-activity-image{min-height:210px}.route-day-notes{grid-template-columns:1fr}.route-day>header{grid-template-columns:auto 1fr}.route-day>header>b{grid-column:2}.route-detail-actions{padding-inline:20px;flex-direction:column}.route-photo-credit{padding-inline:20px}.route-reference-card,.route-reference-copy{min-height:310px}}

/* Explore page: a quiet ukiyo-e travel folio, without adding more UI. */
body #map{padding-bottom:34px}
body #map>.eyebrow{color:#a54a38;letter-spacing:3.5px}
body #map>.title{max-width:520px;margin:13px 0 0;color:#244a57;font:400 clamp(34px,7vw,48px)/1.35 var(--serif);letter-spacing:5px}
body #map>.sub{max-width:560px;margin:24px 0 28px;padding-left:14px;border-left:2px solid #b3915d;color:#68736a;font-size:12px;line-height:1.9}
body #map .map-card-primary{margin:0 0 42px;padding:10px;border:1px solid #b9ad96;background:#eee6d6;box-shadow:7px 7px 0 #ddd3c0}
body #map .map-card-primary::after{display:none}
body #map .map-card-primary .map-canvas{min-height:450px;border-color:#aa9d85;filter:saturate(.84) sepia(.06)}
body #map #mapStatus{padding:12px 4px 2px;color:#777365;font:10px/1.6 var(--serif);letter-spacing:.4px}
body #map .map-controls{gap:8px;margin:0 0 11px;padding:3px;background:transparent}
body #map .map-controls input{border:0;border-bottom:1px solid #b9ad96;border-radius:0;background:#f8f3e8;color:#284954}
body #map .map-controls button{border:1px solid #b9ad96;border-radius:0;background:#f8f3e8;color:#284954;font:11px var(--serif)}
body #mapExplore{margin-top:0}
body #mapExplore>.card:first-child{margin:0 0 42px;padding:24px;border:1px solid #c9bda8;border-top:2px solid #a44938;border-radius:0;background:linear-gradient(135deg,#fbf7ed,#f1e9da);box-shadow:none}
body #mapExplore>.card:first-child>b{display:flex;align-items:center;gap:10px;margin-bottom:17px;color:#274c58;font:500 20px var(--serif);letter-spacing:2px}
body #mapExplore>.card:first-child>b::before{content:"旅";display:grid;place-items:center;width:27px;height:27px;border:1px solid #a44938;color:#a44938;font-size:14px;transform:rotate(-3deg)}
body #mapExplore>.card:first-child .grid{gap:5px 14px}
body #mapExplore>.card:first-child label{font-size:9px;letter-spacing:1px;color:#887c68}
body #mapExplore>.card:first-child .input{margin:7px 0 12px;padding:11px 2px;border:0;border-bottom:1px solid #c9bda8;border-radius:0;background:transparent;color:#294b56;font-size:13px}
body #mapExplore>.card:first-child .input:focus{border-color:#a44938;outline:0;box-shadow:none}
body #mapExplore>.card:first-child>.btn{margin-top:8px;border-radius:0;background:#284c58;font:500 12px var(--serif);letter-spacing:1.5px}
body #routeLibrary{padding-top:2px}
body #routeLibrary>.head{margin:0 0 14px;padding:0 0 13px;border-bottom:1px solid #cfc4b0}
body #routeLibrary>.head h2{color:#274b57;font:500 25px var(--serif);letter-spacing:2px}
body #routeLibrary>.head .muted{font:9px Georgia,serif;letter-spacing:1.5px;text-transform:uppercase}
body #routeFilters{display:flex;flex-wrap:nowrap;gap:7px;margin:0 -2px 20px;padding:1px 2px 7px;overflow-x:auto;scrollbar-width:none}
body #routeFilters::-webkit-scrollbar{display:none}
body #routeFilters .pill{flex:none;margin:0;padding:7px 11px;border:1px solid #d2c7b3;border-radius:0;background:transparent;color:#706c60;font:10px var(--serif);letter-spacing:.5px}
body #routeFilters .pill.active{border-color:#a44938;background:#a44938;color:#fff5e6}
body #routeGrid{gap:24px;margin-bottom:46px}
body .route-reference-card{border-color:#aa9d86;box-shadow:6px 6px 0 #dfd5c4}
body .route-reference-cover{filter:saturate(.74) sepia(.13) contrast(1.04)}
body .route-reference-shade{background:linear-gradient(180deg,#1c3f4940 0%,#18384535 34%,#132c36e8 100%)}
body .route-reference-copy{padding:23px}
body .route-reference-main h3{font-weight:400;letter-spacing:4px}
body .route-reference-footer{border-color:#e7d6b780}
body #communityRouteGrid{margin-bottom:30px}
body #routeLibrary>.head:nth-of-type(2){margin-top:4px}
@media(max-width:520px){body #map>.title{font-size:36px;letter-spacing:4px}body #map .map-card-primary .map-canvas{min-height:410px}body #mapExplore>.card:first-child{padding:20px}body #mapExplore>.card:first-child .grid{grid-template-columns:1fr}body .route-reference-copy{padding:19px}body #routeGrid{gap:20px}}

/* Global navigation, compact atlas and full landmark sheet. */
body #map>.title{font-size:clamp(29px,6vw,40px);line-height:1.35;margin-bottom:18px}
body #map>.sub{margin-top:16px;margin-bottom:22px}
body #map .map-card-primary{width:min(100%,540px);margin-inline:auto}
body #map .map-card-primary .map-canvas{width:100%;height:auto;min-height:0;aspect-ratio:1.12/1}
body #map .tw-q-pin:not(.tw-online-pin) .tw-q-pin__body{gap:3px;padding:3px 6px 3px 3px;border-width:1px;transform:translate(-5px,-5px)}
body #map .tw-q-pin:not(.tw-online-pin) .tw-q-pin__icon{width:24px;height:24px;font-size:14px}
body #map .tw-q-pin:not(.tw-online-pin) .tw-q-pin__label{max-width:72px;font-size:9px}
body #map .tw-online-pin{z-index:2000!important;pointer-events:auto!important}
body #map .tw-online-pin .tw-q-pin__body{gap:3px;padding:2px 5px 2px 2px;border-width:1px;transform:translate(-4px,-4px)}
body #map .tw-online-pin .tw-q-pin__icon{width:20px;height:20px;font-size:12px}
body #map .tw-online-pin .tw-q-pin__label{max-width:64px;font-size:9px}
body #map .tw-user-pin__arrow{width:22px;height:22px;border-width:2px;font-size:12px}
body #map .map-compact-labels .tw-q-pin__body{width:28px;padding:2px;transform:translate(-4px,-4px)}
.global-back{position:fixed;z-index:60;left:max(14px,calc((100vw - var(--app-width))/2 + 16px));bottom:calc(86px + env(safe-area-inset-bottom));padding:9px 12px;border:1px solid #b9ad96;border-radius:3px;background:#faf5e9eb;color:#294b56;font:11px var(--serif);letter-spacing:1px;box-shadow:0 5px 18px #203b4618;backdrop-filter:blur(10px);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s}
.global-back.visible{opacity:1;visibility:visible;transform:none}
.landmark-sheet-overlay{position:fixed;inset:0;z-index:48;overflow:auto;padding:20px;background:#18384482;backdrop-filter:blur(8px)}
.landmark-sheet{width:min(820px,100%);margin:auto;background:var(--cream);border:1px solid #b9ad96;box-shadow:0 28px 80px #18384460;padding:32px}
.landmark-sheet-back{border:0;border-bottom:1px solid #a9864c;background:transparent;color:#294b56;padding:5px 0;font:12px var(--serif)}
.landmark-sheet>header{margin:28px 0 20px}.landmark-sheet>header>span{color:#a44938;font:10px Georgia,serif;letter-spacing:2px}.landmark-sheet>header h2{margin:8px 0;font:500 36px var(--serif);letter-spacing:3px}.landmark-sheet>header p{max-width:620px;color:#596a64;font-size:13px;line-height:1.9}
.landmark-sheet-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:20px 0 26px}.landmark-sheet-gallery figure{position:relative;margin:0;min-height:150px;overflow:hidden;background:#ded6c7}.landmark-sheet-gallery figure.featured{grid-column:span 2;grid-row:span 2;min-height:305px}.landmark-sheet-gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.landmark-sheet-gallery figcaption{position:absolute;inset:auto 0 0;padding:7px;background:#173f4fb8;color:#fff;font-size:8px}
.landmark-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.landmark-facts>div{padding:14px;border-left:2px solid #b08b52;background:#f1eadc}.landmark-facts small,.landmark-map-link small{color:#a44938;font-size:9px;letter-spacing:1px}.landmark-facts p{margin:6px 0 0;color:#53645f;font-size:12px;line-height:1.6}
.landmark-nearby,.landmark-related{margin-top:26px}.landmark-nearby h3,.landmark-related h3{font:500 20px var(--serif)}.landmark-nearby div{display:flex;flex-wrap:wrap;gap:6px}.landmark-nearby span{padding:7px 9px;background:#e8e4d8;color:#4f625e;font-size:11px}
.landmark-map-link{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding:14px;border:1px solid #d7cdbb}.landmark-map-link small,.landmark-map-link b{display:block}.landmark-map-link b{margin-top:5px;font:400 12px Georgia,serif}.landmark-map-link a{color:#a44938;font-size:11px;text-decoration:none}
.landmark-related button{display:flex;width:100%;justify-content:space-between;gap:12px;padding:13px 0;border:0;border-top:1px solid #ddd5c6;background:transparent;color:#294b56;text-align:left}.landmark-related button span{color:#8b7150;font-size:10px}.landmark-sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:26px 0 15px}.landmark-sheet>.landmark-source{display:block;text-align:center;color:#898274;font-size:9px}
@media(max-width:520px){body :is(input,select,textarea){font-size:16px!important}body #map>.title{font-size:30px;letter-spacing:3px}body #map .map-card-primary .map-canvas{aspect-ratio:1/1}.global-back{left:max(12px,env(safe-area-inset-left))}.landmark-sheet-overlay{padding:0}.landmark-sheet{min-height:100%;padding:22px;border:0}.landmark-sheet>header h2{font-size:30px}.landmark-sheet-gallery{grid-template-columns:repeat(2,1fr)}.landmark-sheet-gallery figure.featured{grid-column:span 2;min-height:230px}.landmark-facts{grid-template-columns:1fr}.landmark-sheet-actions{grid-template-columns:1fr}}

body :is(button,a,input,select,textarea,[role=button]){touch-action:manipulation}

/* Focused Explore upgrade: compact planner, seasonal discovery, square opt-in map and dense route feed. */
body #mapExplore{display:flex;flex-direction:column}
body #mapExplore>.card:first-child{order:1;margin:0 0 24px;padding:16px 18px;background:linear-gradient(135deg,#fbf7ed,#f1e9da 72%,#d9e1d5)}
body #mapExplore>.card:first-child>b{margin-bottom:10px;font-size:16px}
body #mapExplore>.card:first-child>b::after{content:"〰";margin-left:auto;color:#a44938;font:22px Georgia}
body #mapExplore>.card:first-child .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
body #mapExplore>.card:first-child label{min-width:0}
body #mapExplore>.card:first-child .input{margin:3px 0 7px;padding:7px 2px;font-size:12px}
body #mapExplore>.card:first-child>label{display:inline-block;width:calc(75% - 5px);vertical-align:bottom}
body #mapExplore>.card:first-child>.btn{width:calc(25% - 5px);margin:0 0 7px;padding:9px 5px;vertical-align:bottom}
.where-now{order:2;margin-bottom:28px}.where-now>.head{margin:0 0 14px}.where-now>.head small{display:block;color:var(--accent);font:8px Georgia;letter-spacing:2px}.where-now>.head h2{margin:5px 0 0;font:500 25px var(--serif)}
.where-now-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.where-now-card{position:relative;min-height:290px;overflow:hidden;background:#d8d1c2;color:#fff;border:1px solid #b9ad96}.where-now-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.where-now-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#17384518,#173845db)}.where-now-card>div{position:relative;z-index:1;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;padding:15px}.where-now-card small{font:8px Georgia;letter-spacing:1.4px}.where-now-card h3{margin:5px 0 7px;font:500 21px var(--serif)}.where-now-card p{margin:0 0 8px;font-size:10px;line-height:1.55}.where-now-card b,.where-now-card em{font-size:9px;line-height:1.5;font-style:normal}.where-now-card em{color:#f2d9a6}.where-now-card button{align-self:flex-start;margin-top:10px;padding:5px 0;border:0;border-bottom:1px solid #fff9;background:transparent;color:#fff;font-size:10px}
body #mapExplore>.map-card-primary{order:3;width:min(420px,100%);margin:0 auto 34px}
body #map .map-card-primary .map-canvas{aspect-ratio:1/1;min-height:0}
body #mapExplore>#landmarkCard{order:4}body #mapExplore>#routeLibrary{order:5}
.map-gesture-guard{display:none}
@media(pointer:coarse){.map-gesture-guard:not([hidden]){position:absolute;z-index:1100;inset:0;display:grid;place-items:center;border:0;background:#173f4f0d;color:#fff;font:11px var(--serif);letter-spacing:1px;text-shadow:0 1px 8px #173f4f;touch-action:pan-y}.map-gesture-guard:not([hidden])::after{content:"";position:absolute;left:50%;top:50%;width:124px;height:36px;transform:translate(-50%,-50%);z-index:-1;background:#173f4fc9;border:1px solid #fff7}.map-gesture-guard[hidden]{display:none}}
body #routeGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
body .route-reference-card,body .route-reference-copy{min-height:270px}body .route-reference-copy{padding:15px}body .route-reference-main h3{font-size:21px;letter-spacing:1.5px}body .route-reference-main .route-tags{gap:4px;font-size:9px}body .route-reference-footer{display:block;margin-top:10px;padding-top:9px}body .route-reference-footer>b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}body .route-view-button{margin-top:6px;font-size:10px}
.hiking-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:20px}.hiking-facts>div,.hiking-notes>div{padding:12px;background:#eee7d9}.hiking-facts small,.hiking-notes small{display:block;color:#a44938;font-size:9px;letter-spacing:1px}.hiking-facts b{display:block;margin-top:5px;font:500 11px/1.5 var(--serif)}.hiking-map{height:300px;margin:12px 0;border:1px solid #c9bda8;background:#dce8df}.hiking-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.hiking-notes p{margin:6px 0 0;font-size:10px;line-height:1.6}
/* Preserve the photographer's composition on Home, including mixed-ratio posts. */
body .post-image{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
body .post-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:6px;background:#e7e2d6;scrollbar-width:none}body .post-gallery::-webkit-scrollbar{display:none}body .post-gallery>button,body .post-gallery>video{flex:0 0 100%;width:100%;padding:0;border:0;background:#e7e2d6;scroll-snap-align:start}body .post-gallery :is(img,video){display:block;width:100%;height:auto;max-height:78vh;aspect-ratio:auto;object-fit:contain;background:#e7e2d6}
.post-media-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border:0;background:#102a31eF}.post-media-dialog::backdrop{background:#102a31eF}.post-media-dialog>button{position:fixed;z-index:2;right:18px;top:18px;width:42px;height:42px;border:1px solid #fff8;background:#102a31aa;color:#fff;font-size:25px}.post-media-dialog>img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:520px){body #mapExplore>.card:first-child .grid{grid-template-columns:repeat(2,minmax(0,1fr))}body #mapExplore>.card:first-child>label,body #mapExplore>.card:first-child>.btn{width:100%;display:block}.where-now-grid{gap:7px}.where-now-card,.where-now-card>div{min-height:265px}.where-now-card>div{padding:12px}.where-now-card h3{font-size:18px}body #mapExplore>.map-card-primary{width:min(88vw,400px);padding:7px}body #map .map-controls{grid-template-columns:1fr auto auto}body #routeGrid{gap:8px}body .route-reference-card,body .route-reference-copy{min-height:245px}body .route-reference-copy{padding:11px}body .route-reference-main h3{font-size:17px}body .route-reference-copy .route-card-top{font-size:8px;letter-spacing:.5px}.hiking-facts,.hiking-notes{grid-template-columns:1fr}.hiking-map{height:240px}}
@media(max-width:350px){.where-now-grid,body #routeGrid{grid-template-columns:1fr}}

/* Home uses a two-column, staggered photo feed on phones. */
body #communityFeed.home-feed-masonry.has-posts{columns:2;column-gap:12px}
body #communityFeed.home-feed-masonry:not(.has-posts){columns:auto}
body #communityFeed.home-feed-masonry>.post-card{display:inline-block;width:100%;min-width:0;vertical-align:top;break-inside:avoid-column;margin:0 0 12px;overflow:hidden;border:0;border-bottom:0;border-radius:10px;background:transparent;box-shadow:none}
body #communityFeed.home-feed-masonry .post-gallery{display:block;width:100%;overflow:hidden;background:#e7e2d6}
body #communityFeed.home-feed-masonry .post-gallery>button,body #communityFeed.home-feed-masonry .post-gallery>video{display:none}
body #communityFeed.home-feed-masonry .post-gallery>:first-child{display:block;width:100%;height:auto;max-height:280px;padding:0;border:0;background:#e7e2d6}
body #communityFeed.home-feed-masonry .post-gallery>:first-child :is(img,video){display:block;width:100%;height:auto;max-height:280px;aspect-ratio:auto;object-fit:cover}
body #communityFeed.home-feed-masonry .post-content{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"story story" "author like";align-items:center;gap:4px 2px;padding:9px 7px 8px}
body #communityFeed.home-feed-masonry .post-open{grid-area:story;min-width:0;text-align:left}
body #communityFeed.home-feed-masonry .post-title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0;font:600 14px/1.38 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}
body #communityFeed.home-feed-masonry .post-copy{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:4px 0 0;font:12px/1.42 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}
body #communityFeed.home-feed-masonry .post-author{grid-area:author;min-width:0;overflow:hidden}
body #communityFeed.home-feed-masonry .post-author-identity{min-width:0;gap:5px}
body #communityFeed.home-feed-masonry .post-author-identity img,body #communityFeed.home-feed-masonry .post-avatar-fallback{width:24px;height:24px}
body #communityFeed.home-feed-masonry .post-author-name{display:block;overflow:hidden;max-width:72px;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
body #communityFeed.home-feed-masonry .post-author-identity small,body #communityFeed.home-feed-masonry .post-author>.post-map,body #communityFeed.home-feed-masonry .post-route-card,body #communityFeed.home-feed-masonry .post-owner-actions,body #communityFeed.home-feed-masonry .comment-row,body #communityFeed.home-feed-masonry .post-comments{display:none}
body #communityFeed.home-feed-masonry .post-actions{grid-area:like;display:flex;justify-content:flex-end;align-items:center;gap:0;margin:0;white-space:nowrap;font-size:11px}
body #communityFeed.home-feed-masonry .post-actions>:not(:first-child){display:none}
body #communityFeed.home-feed-masonry .post-actions button{min-width:40px;min-height:44px;padding:6px 2px}
@media(max-width:350px){body #communityFeed.home-feed-masonry.has-posts{column-gap:8px}body #communityFeed.home-feed-masonry>.post-card{margin-bottom:8px}body #communityFeed.home-feed-masonry .post-content{padding-inline:5px}body #communityFeed.home-feed-masonry .post-author-name{max-width:60px}}
