:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans","Yu Gothic","Microsoft YaHei",sans-serif;color:#202b49;font-synthesis:none;background:#e7edf4}*{box-sizing:border-box}html,body{margin:0;overflow:hidden;width:100%;height:100%}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #8aabef;outline-offset:4px}button{border:0;color:inherit}button:disabled{cursor:wait;opacity:.55}#atlas,#map,#leaders,#labels{position:absolute;inset:0;width:100%;height:100%}#leaders,#labels{pointer-events:none}#leaders{overflow:hidden}#leaders path{stroke:#6783b0;stroke-width:.75;opacity:.38;fill:none}header{position:absolute;top:30px;left:38px;right:36px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:5}h1{font-size:31px;letter-spacing:-1.8px;font-weight:760;margin:0;display:flex;align-items:baseline;gap:3px}.brand-dot{height:6px;width:6px;border-radius:100%;background:#385bc4}nav{display:flex;gap:8px;pointer-events:auto}nav button{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 19px;border-radius:25px;font-size:14px;font-weight:550;background:#fff9;box-shadow:0 2px 12px #24345004;backdrop-filter:blur(12px);transition:background .2s,transform .2s}nav button:hover{background:#fff;transform:translateY(-1px)}nav #add-button{background:#2949b6;color:white;box-shadow:0 3px 12px #2949b61c}#add-button:hover{background:#1f3c9c}#add-button span{font-size:23px;font-weight:300}svg{stroke:currentColor;stroke-width:1.7;fill:none}nav svg,.search-field svg{width:17px;height:17px}.city-label{position:absolute;pointer-events:auto;white-space:nowrap;display:block;background:transparent;padding:1px 5px;line-height:22px;font-size:14px;font-weight:530;letter-spacing:-.1px;color:#314773;text-shadow:0 0 3px #f7f9fc,0 0 6px #f7f9fc,1px 1px #f7f9fc,-1px -1px #f7f9fc;border-radius:5px}.city-label.wish{font-weight:450;color:#657793}.city-label:hover,.city-label:focus-visible{background:#fff;color:#213fb1;box-shadow:0 2px 12px #33457419;z-index:2}.map-tools{position:absolute;right:30px;bottom:54px;display:flex;flex-direction:column;align-items:center;padding:5px;background:#ffffffcf;backdrop-filter:blur(10px);border:1px solid #fff;border-radius:24px;box-shadow:0 4px 20px #2f49700a}.map-tools button{width:36px;height:39px;display:grid;place-items:center;font-size:23px;font-weight:300;border-radius:50%;background:transparent}.map-tools button:hover{background:#eaf0fa}.map-tools span{height:1px;width:18px;background:#dce3ee;margin:4px}.map-tools svg{width:21px;height:21px}.legend{position:absolute;left:38px;bottom:29px;display:flex;align-items:center;gap:10px;color:#60718b;font-size:12px;pointer-events:none}.legend-stays{display:flex;align-items:center;gap:5px}.legend-stays i{border-radius:50%;width:5px;height:5px;background:#a2b8e9}.legend-stays i:nth-child(2){width:8px;height:8px;background:#688cda}.legend-stays i:nth-child(3){width:12px;height:12px;background:#3157b7}.legend-divider{height:13px;width:1px;background:#bdc9d9;margin:0 6px}.wish-dot{height:9px;width:9px;border:1.5px solid #7c91b3;border-radius:50%}.maplibregl-ctrl-attrib{background:transparent!important;color:#8290a6!important;font-size:10px!important}.maplibregl-ctrl-attrib a{color:inherit!important}.maplibregl-popup{z-index:7;max-width:290px!important}.maplibregl-popup-content{padding:23px 26px 21px!important;box-shadow:0 12px 44px #25365424!important;border:1px solid #fff;border-radius:17px!important;min-width:205px;font-family:inherit;color:#263759}.maplibregl-popup-content h2{font-size:21px;letter-spacing:-.5px;line-height:1.35;margin:0 20px 11px 0}.maplibregl-popup-content p{font-size:15px;margin:0 0 18px;color:#6e7c94}.maplibregl-popup-content .edit-link{padding:0;background:transparent;color:#355bc1;font-size:14px}.maplibregl-popup-close-button{top:8px!important;right:9px!important;border-radius:50%!important;font-size:22px;color:#8090a8;width:28px;height:28px}.maplibregl-popup-tip{border-top-color:#fff!important}dialog{border:1px solid #fff;border-radius:22px;background:#fbfcfe;color:#273856;box-shadow:0 24px 100px #192b4929;padding:28px;width:min(450px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow:auto}dialog::backdrop{background:#33425b24;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}h2{font-size:21px;margin:0;font-weight:650;letter-spacing:-.4px}.close{background:transparent;width:32px;height:32px;border-radius:50%;font-size:25px;color:#76869c}.close:hover{background:#eaf0f8}label{display:block;font-size:14px;font-weight:550;margin-bottom:10px}input{border:1px solid #dce3ee;border-radius:10px;background:#fff;color:#23365a;padding:13px 14px;width:100%;font-size:16px}input::placeholder{color:#99a5b7;font-size:14px}.location-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;margin:12px 0 7px;color:#7a899e}.location-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-bar button,.map-pick{font-size:13px;background:transparent;color:#3a60be;white-space:nowrap;padding:5px 0}.map-pick{margin-bottom:24px}.number-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.number-fields small{display:block;font-size:11px;color:#8b97a9;font-weight:400;margin-top:5px}.number-input{position:relative}.number-input input{padding-right:38px}.number-input span{position:absolute;right:14px;top:14px;color:#8b98ae;font-size:14px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:27px}.primary{background:#2c4eb9;color:#fff;border-radius:11px;padding:12px 26px;font-size:14px;font-weight:550;margin-left:auto}.primary:hover{background:#203f9e}#delete-button{background:transparent;color:#b26770;font-size:13px;padding:8px 0}.storage-note{text-align:center;color:#97a2b3;font-size:12px;margin:24px 0 0}.search-field{display:flex;gap:12px;align-items:center;border:1px solid #dce3ee;padding:0 14px;background:white;border-radius:11px}.search-field input{border:0;background:transparent;padding-left:0;outline-offset:0}.results{max-height:320px;overflow:auto;margin-top:14px}.results:empty{display:none}.results button{background:transparent;width:100%;padding:12px 8px;display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;border-radius:8px}.results button:hover{background:#edf2fc}.results strong{font-size:15px;font-weight:550}.results small{display:block;font-size:12px;color:#91a0b6;margin-top:4px}.results em{font-size:12px;font-style:normal;color:#7d8ca3;white-space:nowrap}.results p{font-size:14px;color:#7b8ba3;padding:10px 0}#location-results{max-height:180px}#form-error{font-size:13px;color:#b45663;line-height:1.5}#toast{position:absolute;z-index:30;bottom:72px;left:50%;transform:translateX(-50%);background:#263b62;color:#fff;padding:12px 21px;font-size:14px;border-radius:12px;box-shadow:0 4px 22px #253c6220;max-width:calc(100vw - 40px);text-align:center}#pick-hint{position:absolute;z-index:8;top:100px;left:50%;transform:translateX(-50%);white-space:nowrap;background:white;border-radius:30px;padding:12px 20px;box-shadow:0 5px 24px #26395c20;font-size:14px}#pick-hint button{margin-left:18px;background:transparent;color:#365abb}body.picking .city-label{pointer-events:none}body.picking #map{cursor:crosshair}@media(max-width:600px){header{left:20px;right:18px;top:22px}h1{font-size:27px}nav{gap:7px}nav button{padding:0 13px;min-height:40px;font-size:13px;gap:6px}nav svg{width:15px}.map-tools{right:16px;bottom:66px}.map-tools button{width:31px;height:35px}.legend{left:20px;bottom:32px;font-size:11px;gap:7px}.legend-divider{margin:0 3px}.city-label{font-size:13px}dialog{padding:23px}.maplibregl-popup-content{padding:20px!important;min-width:190px}.maplibregl-ctrl-bottom-right{bottom:3px!important}.number-fields{gap:12px}#pick-hint{top:82px;font-size:12px;padding:12px 16px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
#toast .undo{background:transparent;color:#c4d6ff;font-size:14px;margin-left:20px;padding:0;text-decoration:underline;text-underline-offset:3px}

.geocoder-credit{display:block;text-align:right;color:#8b99ac;font-size:10px;text-decoration:none;padding:10px 0 4px}
#labels{overflow:hidden}
[hidden]{display:none!important}#map-wash{position:absolute;inset:0;pointer-events:none;background:linear-gradient(20deg,#e7edf477 0%,#e7edf422 32%,transparent 58%)}#leaders,#labels{z-index:2}#hero{position:absolute;z-index:4;left:5vw;bottom:17vh;max-width:490px;pointer-events:none}#hero h2{font-size:clamp(28px,3vw,43px);line-height:1.45;letter-spacing:-1.2px;font-weight:650;text-shadow:0 2px 18px #e7edf4}#hero p{font-size:16px;line-height:1.9;color:#536585;margin:20px 0 26px}#hero .primary{pointer-events:auto;font-size:16px;border-radius:28px;padding:16px 26px;box-shadow:0 6px 25px #2949b623;margin:0}#hero small{display:block;margin-top:15px;color:#677997;font-size:13px}.mobile-break{display:none}#create-cta{position:absolute;z-index:5;left:38px;bottom:78px;border-radius:22px;background:#ffffffce;color:#3657ad;padding:12px 18px;font-size:14px;backdrop-filter:blur(12px);box-shadow:0 3px 16px #253c6210}#map-caption{position:absolute;top:75px;left:39px;z-index:4;font-size:12px;color:#7383a0}#create-screen{position:fixed;z-index:20;inset:0;background:#edf2f8f5;overflow:auto;padding:30px 28px 48px;backdrop-filter:blur(16px)}.creating header,.creating .map-tools,.creating .legend{visibility:hidden}.back-home{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:auto;text-decoration:none;color:#283a66;font-size:25px;font-weight:700;letter-spacing:-1px}.back-home span{font-size:14px;font-weight:400;letter-spacing:0;color:#6a7e9f}.journey-panel{width:min(100%,590px);margin:8vh auto 0}.journey-eyebrow{display:flex;justify-content:space-between;color:#7688a5;font-size:14px;margin-bottom:27px}.journey-panel h2{font-size:27px;line-height:1.65;letter-spacing:-.5px;font-weight:600;margin-bottom:27px}.journey-panel textarea{font:inherit;font-size:16px;line-height:1.9;resize:vertical;width:100%;min-height:170px;max-height:40vh;padding:21px 23px;border:1px solid #d3dfef;border-radius:16px;background:#ffffffce;color:#283b5e;outline-color:#809cdf}.journey-panel textarea::placeholder{color:#90a1ba}.answer-hint,.pin-note{color:#7a8ba5;font-size:13px;line-height:1.8}.journey-actions{display:flex;align-items:center;margin-top:28px}.journey-actions>button:first-child:not(.primary),#revise-answers{background:transparent;padding:10px 0;color:#5975aa;font-size:14px}.journey-panel .primary{padding:14px 25px;border-radius:25px;font-size:15px;min-width:110px}#journey-error,#unlock-error{color:#aa4e60;font-size:14px;line-height:1.7}#review-summary{font-size:15px;color:#687e9c;line-height:1.9}#review-cities{max-height:220px;overflow:auto;margin:23px 0 6px;background:#ffffff80;border-radius:14px;padding:6px 20px}#review-cities>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;font-size:15px;border-bottom:1px solid #e6edf6}#review-cities>div:last-child{border:0}#review-cities>div>span:last-child{color:#6f84aa}#save-map-form{margin-top:23px;padding-top:22px;border-top:1px solid #d9e3ef}#save-map-form label span{font-weight:400;color:#8395ad;margin-left:8px}#new-pin{max-width:290px}#save-map{display:block;margin:25px 0 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#map-error{position:absolute;z-index:12;top:50%;left:50%;transform:translate(-50%,-50%);width:min(430px,90vw);background:#fbfcfe;padding:30px;border-radius:20px;box-shadow:0 12px 50px #263b6220}#map-error p{line-height:1.8;font-size:15px}#map-error a{margin-left:20px;color:#355bc1;font-size:14px}.creating #map-wash{display:none}body:has(#hero[hidden]) #map-wash{display:none}
@media(max-width:600px){#hero{left:24px;right:50px;bottom:120px;max-width:340px}#hero h2{font-size:28px;line-height:1.5;letter-spacing:-.8px}#hero p{font-size:14px;line-height:1.8;margin:15px 0 20px}.mobile-break{display:block}#hero .primary{font-size:15px;padding:14px 22px}#hero small{font-size:12px;margin-top:12px}#create-cta{left:20px;bottom:76px;font-size:13px;padding:11px 16px}#map-caption{left:21px;top:65px;font-size:12px}#create-screen{padding:24px 23px 38px}.journey-panel{margin-top:7vh}.journey-panel h2{font-size:23px;line-height:1.65;margin-bottom:22px}.journey-eyebrow{margin-bottom:22px}.journey-panel textarea{padding:18px;min-height:190px}.journey-panel .primary{font-size:14px}.pin-note{font-size:13px}#review-cities{max-height:180px}}
@media(max-height:600px){#hero{bottom:85px}#hero h2{font-size:26px}#hero p{margin:10px 0 14px}.journey-panel{margin-top:28px}}
/* Keep the entire map sharp. A single scrim fades canvas and city labels
   together beneath the headline, without separating the map's visual layers. */
#map-wash{z-index:3;background:radial-gradient(ellipse 65% 66% at 9% 80%,rgba(231,237,244,.94) 0%,rgba(231,237,244,.78) 34%,rgba(231,237,244,.25) 67%,transparent 100%);-webkit-backdrop-filter:none;backdrop-filter:none}
#map-wash::after{content:none}
.map-tools{z-index:5}.legend{z-index:4}
body:has(#hero:not([hidden])) nav #add-button{background:#ffffff9e;color:#314773;box-shadow:0 2px 12px #24345004}
body:has(#hero:not([hidden])) nav #add-button:hover{background:#fff}
#hero .primary{box-shadow:0 8px 26px #2949b62b}
@media(max-width:600px){#map-wash{background:linear-gradient(to bottom,transparent 28%,rgba(231,237,244,.08) 40%,rgba(231,237,244,.75) 57%,rgba(231,237,244,.93) 73%,rgba(231,237,244,.56) 100%)}}

#owner-links{position:absolute;z-index:5;left:39px;bottom:80px;display:flex;gap:20px;font-size:13px}#owner-links a{color:#456599;text-underline-offset:4px}.owner-gate{display:grid;min-height:100dvh;place-items:center;padding:24px;background:#e7edf4;overflow:auto}.owner-gate main{max-width:410px;width:100%}.owner-brand{color:#283a66;font-size:25px;font-weight:700;text-decoration:none}.owner-gate h1{font-size:29px;letter-spacing:-.7px;margin:42px 0 18px}.owner-gate p{font-size:15px;line-height:1.9;color:#687e9c;margin-bottom:28px}.owner-gate .primary{display:inline-block;text-decoration:none;margin:0;border-radius:25px;padding:14px 23px}.owner-back{display:block;color:#687e9c;margin-top:24px;font-size:14px;text-decoration:none}@media(max-width:600px){#owner-links{left:21px;bottom:79px}.owner-gate main{max-width:340px}.owner-gate h1{font-size:27px}}

/* Labels remain keyboard accessible; pointer gestures pass to the map canvas. */
.city-label{pointer-events:none;font-size:13px}#map{touch-action:none}.map-tools button{width:40px;height:42px}#map-actions{position:absolute;top:112px;right:36px;z-index:6;display:flex;gap:8px}#map-actions button{border-radius:23px;background:#ffffffc9;backdrop-filter:blur(12px);padding:11px 16px;color:#456599;font-size:13px}#map-actions button:hover{background:white}#export-dialog{width:min(860px,calc(100vw - 28px))}#export-image{display:block;width:100%;border-radius:12px}#export-status,#share-copy-note{font-size:13px;line-height:1.7;color:#7183a0}.export-option{display:flex;align-items:center;gap:9px;font-weight:400;font-size:14px}.export-option input{width:17px;height:17px;accent-color:#2c4eb9}.export-buttons{display:flex;align-items:center;justify-content:flex-end;gap:15px;margin-top:20px}.export-buttons a{text-decoration:none}.export-buttons button{background:transparent;color:#365bb4;font-size:13px}#toast{pointer-events:none}#toast button{pointer-events:auto}@media(max-width:600px){#map-actions{top:103px;right:18px;gap:7px}#map-actions button{padding:10px 14px;font-size:12px}.map-tools button{width:38px;height:40px}.export-buttons{flex-wrap:wrap}.export-buttons a{margin-left:0}.export-buttons button{padding:9px 0}#toast{bottom:150px}}

#language-switcher{position:absolute;left:0;top:56px;display:flex;align-items:center;gap:2px;font-size:12px;color:#8a9bb6;white-space:nowrap}
#language-switcher a{color:#647899;text-decoration:none;padding:7px 3px;border-radius:5px}
#language-switcher a:hover,#language-switcher a[aria-current=true]{color:#294bb0}
#language-switcher a[aria-current=true]{font-weight:650}
#language-switcher a:focus-visible{outline:2px solid #456fd1;outline-offset:2px}
@media(max-width:600px){#language-switcher{top:44px;font-size:11px}#language-switcher a{padding:8px 2px}#map-actions{top:112px}#map-caption{top:86px}#hero{bottom:105px;right:24px}#hero h2{overflow-wrap:anywhere}.journey-actions{gap:16px;flex-wrap:wrap}.journey-panel .primary{white-space:normal;text-align:center}dialog{max-height:calc(100dvh - 24px);overflow:auto}}
#language-switcher{left:38px;top:76px;z-index:7}
body.creating #language-switcher{position:fixed;left:auto;right:28px;top:76px;z-index:30}
@media(max-width:600px){#language-switcher{left:20px;top:66px}body.creating #language-switcher{right:23px;top:66px}#create-screen .journey-panel{margin-top:84px}}
.dialog-languages{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin:-5px 0 16px;color:#9aa9c0;font-size:11px}
.dialog-languages a{color:#7385a3;text-decoration:none;padding:7px 3px;border-radius:5px}
.dialog-languages a[aria-current=true]{color:#294bb0;font-weight:650}
.dialog-languages a:focus-visible{outline:2px solid #456fd1}

/* Keep MapLibre UI on the site stack without changing its size or line height. */
.maplibregl-map{font-family:inherit}
/* Japanese glyphs must resolve before Chinese CJK fallbacks. */
:root:lang(ja){font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic","PingFang SC","Microsoft YaHei",sans-serif}
