:root{--ink:#203643;--gold:#aa8950;--paper:#faf7f0;--line:#e5e3db;--purple:#b47bcc;--sage:#76a88d;--night:#142e3c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Avenir Next",Inter,"PingFang TC","Microsoft JhengHei",sans-serif;font-size:14px}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b28b50;outline-offset:4px}header{height:83px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);position:relative;z-index:5;background:var(--paper)}.brand{display:flex;align-items:center;text-decoration:none;gap:13px;font-size:13px;font-weight:650;letter-spacing:2.1px}.brand small{display:block;font-size:11px;font-weight:400;letter-spacing:5.3px;margin-top:5px}.monogram{height:44px;width:44px;border:1px solid var(--gold);border-radius:50%;font:26px Georgia,serif;letter-spacing:-8px;display:flex;align-items:center;padding-left:8px}.monogram span{transform:translateY(4px);font-size:22px}.header-note{font-size:10px;letter-spacing:2px;color:#7d847f}.header-actions{display:flex;gap:20px;align-items:center}.text-button{background:none;color:var(--ink);padding:10px 0;font-size:12px}#collection{background:#203a47;color:#faf6eb;border-radius:4px;padding:11px 15px;font-size:12px}#collection.active{background:#947746}#collection-count{display:inline-block;min-width:18px;margin-left:8px;color:#e8d6b1}main{display:flex;height:calc(100dvh - 83px);min-height:620px;overflow:hidden;position:relative}aside{width:346px;min-width:346px;background:var(--paper);overflow-y:auto;scrollbar-width:thin;z-index:3}.aside-inner{padding:35px 28px 20px}.eyebrow{font-size:9px;letter-spacing:1.8px;display:flex;align-items:center;gap:7px;font-weight:600;color:#858576}.eyebrow>span{width:5px;height:5px;background:#a58d58;border-radius:50%}h1{font-size:58px;letter-spacing:3px;line-height:1.12;margin:22px 0 17px;font-family:"Songti TC","Noto Serif TC","PMingLiU",serif;font-weight:500}.title-dot{color:var(--gold)}.intro{color:#7b817b;font-size:13px;line-height:1.9;letter-spacing:.5px;margin:0 0 26px}.filter-group{display:flex;border-bottom:1px solid var(--line);gap:8px;margin-bottom:17px}.filter-group button{background:none;color:#8c8f86;padding:9px 5px 13px;white-space:nowrap;font-size:12px;position:relative}.filter-group button.active{color:var(--ink);font-weight:650}.filter-group button.active:after{content:"";position:absolute;bottom:-1px;height:2px;background:var(--ink);left:3px;right:3px}.search{display:flex;align-items:center;gap:8px;border:1px solid #e4e3da;background:#f0eee7;padding:0 10px;border-radius:4px}.search span{font-size:23px;color:#9b9f92}.search input{background:none;border:none;width:100%;font-family:inherit;font-size:12px;color:var(--ink);outline:0;padding:11px 0}.search input::placeholder{color:#999c93}.list-heading{display:flex;align-items:center;justify-content:space-between;margin:23px 0 12px;letter-spacing:1.5px;font-size:9px;color:#8c938c}.list-heading strong{font-size:11px;color:var(--gold)}.places{list-style:none;padding:0;margin:0}.places li{position:relative;border-bottom:1px solid var(--line)}.place{width:100%;display:flex;gap:12px;align-items:center;padding:15px 23px 15px 0;text-align:left;color:var(--ink);background:none;transition:background .2s}.place:hover,.place.selected{background:#f0ede4}.place-symbol{height:33px;width:33px;display:grid;place-items:center;border-radius:50%;flex:none;font-size:17px}.place-symbol.night{background:#f0e6f0;color:#926aa6}.place-symbol.coffee{background:#e3ede4;color:#5a8e75}.place-symbol.stay{background:#f0e9d9;color:#a48a54}.place-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.place-text small{font-size:8px;letter-spacing:1.1px;color:#999c91}.place-text strong{font-size:12px;font-weight:600}.place-text>span{font-size:10px;color:#93988e}.arrow{position:absolute;right:7px;top:22px;font-size:14px;color:#b0b4a8}.heart{position:absolute;right:0;bottom:8px;min-width:28px;min-height:28px;background:none;font-size:19px;color:#a8ad9f}.heart.liked{color:#a2804c}.editor-note{display:flex;align-items:center;gap:10px;margin:30px 0 20px}.editor-note p{margin:0;font-size:11px;line-height:1.9;color:#828a7e}.tiny-star{font-size:21px;color:var(--gold)}.signature{font-family:Georgia,serif;font-style:italic;color:var(--gold);font-size:21px;margin-left:auto}.prototype-note{font-size:9px;color:#a1a697;line-height:1.8;margin:0}.map{flex:1;position:relative;overflow:hidden;background:#173749;cursor:grab;touch-action:none}.map.dragging{cursor:grabbing}#world{position:absolute;inset:0}.map-top{position:absolute;z-index:1000;top:26px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:center;gap:15px}.map-caption{font-size:9px;letter-spacing:2.2px;color:#c8d1c2a6}.map-actions{display:flex;gap:8px}.map-actions button,.map-zoom button{background:#173543aa;color:#e2dfcd;border:1px solid #e4dcc323;backdrop-filter:blur(8px);border-radius:4px;padding:9px 12px;font-size:11px}.island-title{position:absolute;top:11%;left:50%;transform:translateX(-50%);color:#e8e3ccaa;letter-spacing:10px;font:30px Georgia,serif;pointer-events:none;text-align:center}.island-title span{display:block;font:8px Arial,sans-serif;letter-spacing:3px;margin-top:12px;color:#d0d7c380}.pins{position:absolute;inset:0;pointer-events:none}.pin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;background:none;color:#f4efdf;pointer-events:auto;padding:9px 10px 15px;min-height:44px;white-space:nowrap;transition:filter .2s;filter:drop-shadow(0 2px 5px #041b2b70)}.pin:after{content:"";position:absolute;bottom:0;left:50%;height:13px;width:1px;background:#eee4bb90}.pin>span{display:grid;place-items:center;height:25px;width:25px;border-radius:50%;border:1px solid #e2dcca70;font-size:12px;margin-bottom:4px;background:#203e48}.pin.night>span{background:#8e699b}.pin.coffee>span{background:#698c74}.pin.stay>span{background:#a1864d}.pin b{font:600 9px Arial,sans-serif;letter-spacing:1px;padding:5px 7px;border-radius:3px;background:#142d3ce6;box-shadow:0 3px 12px #041b2b30}.pin:hover b,.pin.chosen b{background:#f6edd9;color:#203a48}.pin:hover,.pin.chosen{filter:drop-shadow(0 0 7px #f1c46c80)}.compass{position:absolute;bottom:130px;right:34px;text-align:center;color:#d2cbb2;pointer-events:none}.compass>span{display:block;font-size:9px;letter-spacing:2px;margin-bottom:4px}.compass svg{transition:transform .08s linear}.map-bottom{position:absolute;bottom:43px;left:30px;right:30px;display:flex;align-items:center;gap:20px}.legend{display:flex;gap:14px;color:#cbd1bf;font-size:10px}.legend>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.legend i{width:5px;height:5px;border-radius:50%}.legend i.night{background:#c091d6}.legend i.coffee{background:#91b594}.legend i.stay{background:#dec58d}.map-bottom>p{color:#a7b5a4;font-size:9px;margin-left:auto;letter-spacing:.5px}.map-zoom{display:flex;flex:none;gap:2px}.map-zoom button{font-size:15px;min-width:33px;height:34px;padding:3px}.map-note{position:absolute;bottom:12px;left:30px;font-size:9px;color:#b5c1ad70;letter-spacing:.3px}.detail{visibility:hidden;position:absolute;top:18px;bottom:18px;right:18px;width:360px;background:var(--paper);border-radius:8px;overflow:auto;z-index:1200;box-shadow:0 18px 70px #031d3260;transform:translateX(calc(100% + 25px));transition:transform .3s ease;scrollbar-width:thin}.detail.open{visibility:visible;transform:translateX(0)}.close{position:absolute;top:12px;right:12px;background:#fcfaf2ee;box-shadow:0 1px 6px #182c3e12;border-radius:50%;height:32px;width:32px;font-size:23px;color:#294248;z-index:5}.detail-art{height:145px;background:#d0c7ab;position:relative;overflow:hidden}.detail[data-category="night"] .detail-art{background:#514761}.detail[data-category="coffee"] .detail-art{background:#9bb29a}.detail-window{position:absolute;width:75px;height:93px;border-radius:38px 38px 0 0;background:#f5edd4;bottom:0;left:50%;transform:translateX(-50%);box-shadow:-8px -3px #b39c70}.detail-window:after{content:"";position:absolute;width:1px;top:12px;bottom:0;left:50%;background:#b7a484}.detail-orbit{height:180px;width:230px;border:1px solid #ffffff40;border-radius:50%;position:absolute;left:66px;top:36px;transform:rotate(-20deg)}.detail-sun{position:absolute;top:25px;right:75px;width:25px;height:25px;border-radius:50%;background:#ebd099}.detail-art-label{position:absolute;bottom:13px;left:16px;color:#ffffffa0;font-size:8px;letter-spacing:1.9px}.detail-body{padding:26px}.detail h2{font-family:Georgia,"Songti TC",serif;font-size:27px;font-weight:400;line-height:1.2;margin:14px 0}.detail-lead{font-size:13px!important;line-height:1.7;color:#6c786d!important}.detail-body>p{font-size:12px;line-height:1.95;color:#798176}.angle{margin:20px 0;background:#eeeade;padding:17px;border-left:2px solid var(--gold)}.angle>span{font-size:8px;letter-spacing:1.2px;color:#9d8456}.angle p{font-size:13px;line-height:1.9;margin:8px 0 10px}.angle small,.before small{font-size:9px;color:#a0a393}.before>span{font-size:11px;font-weight:600}.before p{font-size:12px;margin:8px 0}.before{margin-bottom:22px}.save-button{width:100%;background:#203b48;color:#f7f0e0;padding:13px;border-radius:4px;font-size:12px}.external-links{display:flex;gap:16px;justify-content:center;margin:18px 0}.external-links a{font-size:10px;text-underline-offset:4px}.detail-body .detail-note{font-size:9px;color:#9a9e90;border-top:1px solid var(--line);padding-top:15px}.detail-source{font-size:8px;color:#a4a898}dialog{border:0;background:var(--paper);color:var(--ink);border-radius:8px;max-width:460px;padding:40px;line-height:1.9;box-shadow:0 20px 100px #05182960}dialog::backdrop{background:#061f33a0;backdrop-filter:blur(5px)}dialog h2{font-family:"Songti TC",serif;font-size:32px;font-weight:400;line-height:1.5}dialog p{font-size:13px;color:#738072}dialog a{font-size:12px}.empty{padding:28px 5px;font-size:12px;color:#8d9688;line-height:1.9}.mobile-only,#list-toggle{display:none}
@media(min-width:1600px){aside{width:390px;min-width:390px}.aside-inner{padding:40px}.place-text strong{font-size:13px}}
@media(max-width:1050px){.header-note{display:none}.map-bottom{gap:10px}.map-bottom>p{display:none}.map-zoom{margin-left:auto}.map-caption{font-size:8px;letter-spacing:1px}.detail{width:330px}aside{width:300px;min-width:300px}.aside-inner{padding:30px 21px}.island-title{font-size:22px}}
@media(max-width:700px){header{height:68px;padding:0 17px}.brand{font-size:10px;gap:10px;letter-spacing:1.2px}.brand small{font-size:9px;letter-spacing:3.5px}.monogram{width:37px;height:37px;font-size:23px}.header-actions{gap:10px}.header-actions>.text-button{display:none}#collection{font-size:10px;padding:10px}main{height:calc(100dvh - 68px);min-height:520px}aside{position:absolute;inset:0;min-width:0;width:100%;max-width:380px;transform:translateX(-100%);transition:transform .25s;z-index:1100;box-shadow:8px 0 35px #03172730}aside.mobile-open{transform:translateX(0)}.aside-inner{padding:14px 24px 30px}.mobile-only,#list-toggle{display:block}.mobile-only{margin-bottom:15px}.map-top{top:18px;left:18px;right:18px}.map-caption{display:none}.map-actions{justify-content:space-between;width:100%}.island-title{top:13%;font-size:31px}.map-bottom{bottom:46px;left:18px;right:18px}.legend{gap:10px;font-size:9px}.map-note{left:18px;font-size:8px;bottom:15px}.compass{right:20px;bottom:112px}.detail{inset:12px;width:auto;max-width:390px;margin-left:auto;border-radius:7px}.detail-art{height:125px}.detail-body{padding:22px}dialog{margin:20px;padding:30px}.pin b{font-size:8px;letter-spacing:.5px}.pin{padding-left:6px;padding-right:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* A geographic city on the left; a symbolic departure island on the right. */
.island-title{left:35%;top:12%}.island-title span{letter-spacing:2px}.header-actions{gap:18px}.district{position:absolute;transform:translate(-50%,-50%);font:600 9px Arial,sans-serif;letter-spacing:1.3px;color:#f0e3bc80;white-space:nowrap;pointer-events:none;text-shadow:0 1px 5px #102a3b}#districts{position:absolute;inset:0;pointer-events:none}.departure-pin{position:absolute;z-index:900;transform:translate(-50%,-100%);background:none;color:#ede1bc;display:flex;align-items:center;flex-direction:column;padding:8px;white-space:nowrap}.departure-pin>span{width:36px;height:36px;display:grid;place-items:center;border:1px solid #d8c087;border-radius:50%;font-size:21px;background:#243e49;box-shadow:0 0 25px #d8ba6c22}.departure-pin b{font-family:"Songti TC",serif;font-size:19px;letter-spacing:3px;margin:9px 0 5px}.departure-pin small{font-size:8px;letter-spacing:1.7px;color:#cdbd95}.departure-pin:hover>span{background:#a68b55;color:#fff8df}.departure-caption{position:absolute;transform:translateX(-50%);text-align:center;color:#d7d8c4aa;font-size:11px;line-height:1.9;letter-spacing:1px;white-space:nowrap;pointer-events:none}.departure-dialog{width:520px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);padding:36px;overflow:auto;scrollbar-width:thin}.departure-dialog h2{margin:19px 0 14px}.prep-heading{display:flex;justify-content:space-between;font-size:12px;margin-top:25px}.prep-heading strong{color:var(--gold);font-weight:400}progress{display:block;width:100%;height:4px;appearance:none;border:0;margin:13px 0 8px;border-radius:3px;background:#e7e3d9}progress::-webkit-progress-bar{background:#e7e3d9;border-radius:3px}progress::-webkit-progress-value{background:#9ca989;border-radius:3px}.prep-list{list-style:none;margin:0;padding:0}.prep-list li{padding:17px 0;border-bottom:1px solid var(--line)}.prep-label{display:flex;gap:13px;align-items:flex-start;cursor:pointer}.prep-label input{appearance:auto;accent-color:#718b6c;width:17px;height:17px;margin:2px 0 0;flex:none}.prep-label>span{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px}.prep-label small{font-size:9px;color:var(--gold);letter-spacing:1px}.prep-label strong{font-size:13px;font-weight:500}.prep-label>span>span{width:100%;font-size:11px;line-height:1.9;color:#7d8579}.prep-label:has(input:checked) strong{color:#85937e}.prep-map{padding:7px 0 0;margin-left:30px;font-size:10px;background:none;color:#8b754a;text-decoration:underline;text-underline-offset:3px}.prep-resources{margin-top:26px}.prep-resources>a{display:flex;flex-direction:column;gap:5px;text-decoration:none;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.prep-resources>a b{font-weight:500}.prep-resources>a span{font-size:11px;color:#8d9485}.departure-dialog .local-note{font-size:9px;color:#9ca18f;line-height:1.8;margin-bottom:0}
@media(max-width:1050px){.header-actions{gap:14px}.map-note{max-width:75%;font-size:8px}.departure-caption{font-size:10px}.district{font-size:8px;letter-spacing:.5px}}
@media(max-width:700px){.island-title{left:47%;top:11%;font-size:27px}.map-note{max-width:90%;font-size:7px;bottom:9px}.departure-pin>span{height:28px;width:28px;font-size:17px}.departure-pin b{font-size:16px;letter-spacing:2px;margin:6px 0 4px}.departure-pin small{font-size:7px;letter-spacing:.8px}.departure-caption{font-size:9px;line-height:1.6}.district{font-size:7px;letter-spacing:.5px}.departure-dialog{margin:auto;padding:28px 23px}.departure-dialog h2{font-size:27px}.pin b{font-size:7px;letter-spacing:.4px}.pin>span{width:21px;height:21px;font-size:10px}.pin{padding-top:5px}.compass{bottom:150px}.header-actions>.text-button{display:none}}

.district{color:#f2e8cbac;font-size:8px;letter-spacing:1px}.pin{padding:5px 6px 12px}.pin>span{width:22px;height:22px;font-size:11px}.pin b{font-size:8px;letter-spacing:.6px;padding:4px 6px}.pin:after{height:10px}

.area-selector{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:10px;font-size:10px;color:#8b9185}.area-selector select{width:155px;border:1px solid #deddd2;border-radius:4px;background:#f4f1e9;color:#485a59;padding:8px;font-family:inherit;font-size:11px}.pin.area>span{width:31px;height:31px;background:#bdab7c;color:#223d47;font-weight:600;font-size:13px}.pin.area b{font-size:10px;background:#152f3feb;letter-spacing:.8px;padding:6px 9px}.pin.area:hover b{background:#f4e8ca}.pin.area:after{height:13px}.place-text strong{overflow-wrap:anywhere}.detail h2{overflow-wrap:anywhere}

main,.map{overflow:clip}

/* The guide and island share a catalog; time filters are separate from map lighting. */
[hidden]{display:none!important}
:root{--moss:#476354;--lavender:#b6a0c7}
aside{width:374px;min-width:374px}
.aside-inner{padding:30px 25px 24px}
.brand-caption{color:#7e705e;font-size:9px;letter-spacing:2.2px;font-weight:650}
h1{font-size:39px;line-height:1.24;letter-spacing:1px;margin:12px 0 6px}
.intro{font-size:13px;letter-spacing:0;color:#586863;margin:0 0 20px}
.period-switch{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:17px}
.period-card{position:relative;isolation:isolate;overflow:hidden;min-height:113px;border-radius:7px;text-align:left;padding:13px 13px 14px;display:flex;align-items:flex-start;flex-direction:column;justify-content:flex-end;border:1px solid transparent}
.period-card small{font:600 8px/1.3 Inter,sans-serif;letter-spacing:1.65px;margin-bottom:10px}
.period-card strong{font:500 24px/1.15 "Songti TC","Noto Serif TC",serif;letter-spacing:2px}
.period-card>span:last-child{font-size:10px;line-height:1.4;margin-top:5px;letter-spacing:.3px}
.day-card{background:linear-gradient(130deg,#f6efd9,#e7dcbf);color:#37483b;border-color:#d3c8a7}
.night-card{background:linear-gradient(120deg,#273344,#253247 62%,#414056);color:#fff2db;border-color:#3a4151}
.day-card[aria-pressed=true]{box-shadow:inset 0 0 0 2px #617457}
.night-card[aria-pressed=true]{box-shadow:inset 0 0 0 2px #d9bd86}
.period-card[aria-pressed=true] small:after{content:" ✓"}
.period-art{position:absolute;right:-6px;top:6px;width:70px;height:70px;z-index:-1}
.sun-art{border:1px solid #cbbd96;border-radius:50%;box-shadow:0 0 0 7px #f4ebd5,0 0 0 8px #d6c8a4,0 0 0 15px #f3ead5,0 0 0 16px #dccfae;transform:translate(12px,-24px)}
.sun-art:after{content:"";position:absolute;width:43px;height:43px;left:12px;top:12px;border-radius:50%;background:#ccab69}
.moon-art{width:34px;height:34px;top:15px;right:13px;border-radius:50%;box-shadow:-7px 4px 0 #d7bb86;transform:rotate(-18deg)}
.moon-art:after{content:"";width:2px;height:2px;position:absolute;top:0;left:-18px;background:#c9c2c7;box-shadow:8px 10px #c9c2c7,36px -4px #c9c2c7,36px 39px #c9c2c7,-3px 31px #c9c2c7}
.search{background:#fffdf7;border-color:#d6d9cd}
.search input{font-size:13px;padding:10px 0}
.filters{display:flex;gap:8px;margin-top:10px}
.filters label{display:flex;align-items:center;gap:6px;font-size:10px;line-height:1.5;color:#52635c;flex:1;min-width:0}
.filters select{min-width:0;flex:1;width:0;border:1px solid #d7d9cf;background:#f6f3eb;color:#2d4443;border-radius:4px;font-family:inherit;font-size:11px;padding:6px 2px}
.list-heading{justify-content:flex-start;gap:7px;color:#4d625b;letter-spacing:.5px;margin:20px 0 4px;font-size:12px}
.list-heading strong{font-size:10px;color:#6b6953;border:1px solid #d9d6c7;border-radius:10px;padding:1px 7px;letter-spacing:0}
#clear-filters,.empty-reset,.share-place{background:none;color:#49665b;font-size:11px;text-decoration:underline;text-underline-offset:3px}
#clear-filters{margin-left:auto;padding:7px 0 7px 8px}
.empty-reset{display:block;margin:9px 0;padding:6px 0}
.storage-hint{font-size:11px;color:#566b60;margin:8px 0}
.place{min-height:70px;padding:12px 36px 12px 0}
.place-text small{font-size:10px;letter-spacing:.5px;color:#657268}
.place-text strong{font-size:14px;color:#1f363e}
.place-text>span{color:#617064;font-size:11px}
.place-symbol{font-size:17px;width:33px;height:36px;border-radius:6px}
.heart{right:-3px;bottom:auto;top:50%;transform:translateY(-50%);width:39px;height:44px;color:#737f71}
.partner-marker{font-size:10px;color:#766034;font-style:normal}
.map-caption{font-size:11px;letter-spacing:1px;color:#edf0dbce}
.mobile-periods{display:none}
.map-note{color:#c2cfc5bf}
.detail{width:min(386px,45%);border:1px solid #d8dbcf}
.venue-head{isolation:isolate;overflow:hidden;position:relative;padding:24px 42px 18px 23px;background:#293446;color:#f7efdf}
.venue-head>span{font-size:11px;letter-spacing:1px;color:#ddd1e4}
.venue-head h2{font:500 30px/1.12 Georgia,"Songti TC",serif;letter-spacing:-.6px;margin:14px 0 9px}
.venue-head p{font:500 11px/1.5 Inter,sans-serif;letter-spacing:.7px;margin:0;color:#e0d5e4}
.venue-globe{position:absolute;border:1px solid #d7bef333;border-radius:50%;width:135px;height:135px;top:30%;right:-55px;box-shadow:0 0 0 9px #ffffff06,0 0 0 10px #d7bef323,0 0 0 22px #ffffff04,0 0 0 23px #d7bef326;z-index:-1}
.detail[data-category=coffee] .venue-head{background:linear-gradient(120deg,#314f48,#4a6653)}
.detail[data-category=stay] .venue-head{background:linear-gradient(120deg,#4b483d,#696345)}
.detail[data-category=coffee] .venue-head>span,.detail[data-category=coffee] .venue-head p,.detail[data-category=stay] .venue-head>span,.detail[data-category=stay] .venue-head p{color:#e3e5cf}
.detail-body{padding:18px 22px}
.detail-body>#detail-description{color:#425b55;margin:0 0 12px;font-size:13px;line-height:1.75}
.guide-section{margin:15px 0}
.detail-body h3{margin:0 0 8px;font-size:12px;letter-spacing:.7px;color:#25423d}
.guide-section p,.detail-body .before p{font-size:13px;line-height:1.7;color:#485e57;margin:0}
.time-line{display:flex;gap:9px;align-items:flex-start;margin:6px 0}
.time-line>span{flex:none;line-height:18px;border-radius:3px;padding:1px 5px;font-size:10px;background:#e3e9df;color:#3f5b49}
.time-line.night>span{background:#ebe4ec;color:#674e71}
.time-line.stay>span{background:#eee8d8;color:#675a3b}
.detail-body .before{margin:13px 0 16px;background:#eeeee4;border-radius:4px;padding:11px 12px}
.detail-body .before h3{margin-bottom:3px}
.venue-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:8px}
.venue-actions a,.venue-actions button{display:grid;place-items:center;text-decoration:none;font-size:12px;min-height:40px;border-radius:4px;padding:7px}
.venue-actions a{background:#203b48;color:#fff5e7}
.venue-actions .save-button{border:1px solid #cdd3c6;background:transparent;color:#28463c}
.share-place{padding:9px 0 4px}
#share-feedback{font-size:11px;margin:2px 0;color:#586d61}#share-feedback input{max-width:100%;width:100%}
.card-source{border-top:1px solid #d9ddcf;margin-top:12px;padding-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px;color:#637467}
.card-source span{flex-basis:100%}.card-source a{font-size:11px;text-underline-offset:3px}
.related-link{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;padding:7px 0;color:#344d43;text-decoration:none;border-bottom:1px solid #dee2d6}.related-link small{font-size:10px;color:#67796b}
.partner-note{background:#eee6d5;border-left:2px solid #a88c55;padding:9px 12px;font-size:12px;line-height:1.7}
.list-fallback .map{display:none}.list-fallback aside{position:relative;max-width:none;width:100%;transform:none}
@media(min-width:1450px){aside{width:400px;min-width:400px}}
@media(max-width:1050px) and (min-width:701px){aside{width:325px;min-width:325px}.aside-inner{padding:24px 19px}.filters label{gap:4px}.detail{width:335px}}
@media(max-width:700px){
  .aside-inner{padding:13px 20px 26px}.brand-caption{font-size:8px}.intro{margin-bottom:15px}
  h1{font-size:34px}.period-card{min-height:98px}.period-card small{margin-bottom:8px}
  .mobile-periods{display:flex;gap:2px}.mobile-periods button[aria-pressed=true]{color:#f3d59f;border-color:#d9bd86}
  .map-actions{gap:5px}.map-actions button{padding:9px 10px;min-height:40px}.mobile-periods{margin-left:auto}
  .map-top{left:12px;right:12px}.detail{inset:7px;width:auto;max-width:420px}.venue-head{padding:20px 42px 16px 18px}.detail-body{padding:15px 18px}
  aside{width:100%;min-width:0;max-width:none}.mobile-only{margin-bottom:8px}
  .map-note{font-size:9px;line-height:1.5}.list-open .map{visibility:hidden}
  main{min-height:380px}.departure-caption{pointer-events:none}
}
@media(max-width:700px){.list-fallback .header-actions>#departure-shortcut{display:block}}

/* The catalog is the primary navigation; the map is an alternate view. */
.guide-kicker{font-size:9px;letter-spacing:2px;color:#81775f;font-weight:650}
.type-nav{display:flex;flex-wrap:wrap;gap:5px;margin:13px 0 10px}
.type-chip,.active-chip{background:#f4f2e9;border:1px solid #d7dacb;border-radius:18px;color:#3a5148;padding:6px 10px;font-size:12px}
.type-chip[aria-pressed=true]{background:#223c44;border-color:#223c44;color:#fcf4e3}
#filter-chips{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0 0}
.active-chip{color:#495b48;background:#e5ebdf;font-size:10px;padding:3px 8px}
.outside-filter{font-size:10px;color:#786241;font-style:normal}
.island-count{margin:0 auto;position:relative;color:#435d53;font-size:12px;z-index:20}
.island-count summary{cursor:pointer;list-style:none;border:1px solid #d9ddcf;background:#f0f1e8;padding:7px 12px;border-radius:18px;white-space:nowrap}
.island-count summary::-webkit-details-marker{display:none}
.island-count i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#729383;margin-right:5px}
.island-count b{font-variant-numeric:tabular-nums;color:#253d37}.island-count .total-count{margin-left:4px}
.island-count>div{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);width:225px;padding:14px;background:var(--paper);border:1px solid #d6d9c9;border-radius:6px;box-shadow:0 7px 14px #12262718;line-height:1.6}
.island-count p{margin:4px 0}.island-count small{color:#617265}
.orientation{position:absolute;z-index:900;bottom:94px;left:18px;padding:10px 13px 8px;border:1px solid #d7d1b63d;background:#193b47ee;color:#e8dec2;border-radius:6px;cursor:default}
.rail-title{font-size:10px;letter-spacing:.7px;color:#eadbb1}.rail-title span{font-size:9px;color:#c1cfbb;margin-left:9px}
#rail-strip{display:flex;gap:5px;margin:7px 0 3px}#rail-strip button{background:transparent;border-bottom:2px solid #adba9f;color:#fff2d6;padding:0 4px 3px;font-size:10px}
#rail-strip small{display:block;color:#c2cebd;font-size:8px}
#landmark-info{background:none;color:#d7c397;font-size:10px;padding:5px 0 0}
#near-em{display:block;margin-top:13px;padding:9px 15px;background:#284831;color:#fffbe9;border-radius:4px}
#cluster-panel{position:absolute;z-index:1150;top:63px;left:14px;width:min(290px,88%);background:var(--paper);color:var(--ink);border-radius:7px;border:1px solid #cdd4c7;padding:15px;box-shadow:0 9px 30px #0d29303b;cursor:default}
#cluster-close{float:right;border-radius:50%;background:none;font-size:20px;color:#536a5c}
#cluster-title{font-size:14px;margin:2px 24px 7px 0}
#cluster-members{max-height:min(38vh,275px);overflow:auto}
.member-choice{width:100%;display:flex;align-items:center;justify-content:space-between;gap:5px;color:var(--ink);background:none;border-bottom:1px solid #d9ddcf;text-align:left;font-size:12px;min-height:39px}
.member-choice small{color:#65796b;font-size:10px;white-space:nowrap}
.pin.club>span,.pin.bar>span{background:#8a6596}.pin.massage>span{background:#66877c}.pin.restaurant>span{background:#a77c5a}.pin.complex>span{background:#74866c}
.place-symbol.club,.place-symbol.bar{background:#eee5f0;color:#7a5186}.place-symbol.massage{background:#e4ece2;color:#486955}.place-symbol.restaurant{background:#f3e7d8;color:#825f3f}.place-symbol.complex{background:#e3ece4;color:#50735b}
.detail[data-category=complex] .venue-head,.detail[data-category=massage] .venue-head{background:#37574a}
.detail[data-category=restaurant] .venue-head{background:#6e5241}
@media(max-width:700px){
 header{padding:0 10px;gap:4px}.header-actions{gap:4px}.island-count{font-size:10px;margin:0 0 0 auto}
 .island-count summary{padding:5px 6px}.island-count .total-count{display:block;margin:1px 0 0}.island-count>div{left:auto;right:0;transform:none}
 .type-nav{gap:4px}.type-chip{padding:6px 9px;min-height:36px}
 .orientation{bottom:87px;left:12px;padding:6px 8px}.rail-title{font-size:9px}#rail-strip{gap:2px;margin:5px 0}#rail-strip button{font-size:9px}
 .island-title{top:9%}#cluster-panel{top:60px}.aside-inner{padding-top:17px}
}
#more-types{display:none}
.type-chip[data-type=stay]{background:transparent;border-style:dashed}
@media(max-width:700px){
 .type-chip:is([data-type=restaurant],[data-type=massage],[data-type=stay]){display:none}
 #more-types{display:block;max-width:80px;border:1px solid #d7dacb;border-radius:18px;background:#f4f2e9;color:#3a5148;font:inherit;font-size:12px;padding:5px 8px}
 .island-count summary{font-size:9px}
}
.member-choice small{max-width:43%;white-space:normal;text-align:right}

/* Only the stage rotates. Header, dock and legend participate in layout. */
main{min-height:0}
.map{
  --gutter:clamp(12px,2vw,28px);
  display:grid;min-width:0;grid-template-rows:auto minmax(0,1fr) auto auto auto;
  background:radial-gradient(ellipse at 70% 10%,#b8a46d16,transparent 65%),linear-gradient(130deg,#173749,#315959);
  cursor:default;touch-action:auto;
}
body[data-theme=night] .map{background:radial-gradient(ellipse at 70% 10%,#7766791a,transparent 65%),linear-gradient(130deg,#091c2a,#122532)}
.map-top,.map-dock,.map-bottom,.map-note{position:relative;inset:auto;margin:0 var(--gutter)}
.map-top{padding:16px 0 6px;min-width:0;display:grid;grid-template-columns:1fr auto 1fr}
.map-actions{justify-self:end}
.island-title{position:static;transform:none;font-size:clamp(20px,2vw,30px);letter-spacing:5px;line-height:1.1}
.island-title span{margin-top:4px}
#island-stage{isolation:isolate;min-width:0;min-height:0;position:relative;overflow:hidden;cursor:grab;touch-action:none;user-select:none}
#island-stage.dragging,#island-stage.dragging *{cursor:grabbing}
#world{display:block;width:100%;height:100%}
.map-dock{display:flex;align-items:center;justify-content:space-between;gap:8px}
.orientation{position:static;min-width:0;max-width:100%;margin:0}
.departure-pin{position:static;transform:none;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-content:center;align-items:end;text-align:left;padding:3px 6px;border-radius:5px}
.departure-pin:hover{background:#ffffff0b}
.departure-pin canvas{grid-row:span 2;display:block;width:80px;height:auto;align-self:center}
.departure-pin b{margin:0;font-size:18px;line-height:1.4}
.departure-pin small{align-self:start;letter-spacing:.8px;font-size:10px}
.map-bottom{display:flex;gap:12px;padding:7px 0 1px}
.map-bottom>p{margin:0 auto}
.compass{position:static;display:flex;align-items:center;margin-left:auto;gap:2px}
.compass>span{margin:0}.compass svg{width:24px;height:24px;transition:none}
.map-zoom{margin-left:0}
.map-note{font-size:9px;line-height:1.4;padding:0 0 max(8px,env(safe-area-inset-bottom))}
#cluster-panel{position:static;width:auto;flex:1;min-width:0;padding:6px 9px;box-shadow:none}
#cluster-members{display:flex;gap:6px;overflow:auto;max-height:80px}
.member-choice{flex:0 0 160px;flex-direction:column;align-items:flex-start;justify-content:center;border:0;border-right:1px solid #d9ddcf;padding:3px 6px}
.member-choice small{max-width:100%;text-align:left}
.map-dock:has(#cluster-panel:not([hidden])) .orientation{display:none}
@media(min-width:1121px){
  .detail.open{position:relative;inset:auto;flex:0 0 clamp(285px,25vw,386px);width:auto;margin:10px 10px 10px 0;transform:none}
}
@media(min-width:701px) and (max-width:1120px){
  .detail.open{left:7px;right:auto;width:calc(var(--aside-width) - 14px)}
  main{--aside-width:374px}
}
@media(min-width:701px) and (max-width:1050px){main{--aside-width:325px}}
@media(max-width:700px){
  .map-top{display:flex;padding:8px 0 3px}.island-title{display:none}
  .map-bottom{gap:4px}.legend{gap:7px}
  .orientation{padding:6px 7px}.departure-pin{display:flex;flex-direction:column;align-items:center;padding:0 3px}
  .departure-pin canvas{width:50px}.departure-pin b{font-size:14px}.departure-pin small{align-self:center;font-size:9px}
  .map-note{font-size:8px;padding-bottom:max(5px,env(safe-area-inset-bottom))}
}
@media(max-height:560px){
  .map-top{padding-top:3px}.map-bottom{padding-top:2px}
  .map-note{padding-bottom:3px}.orientation{padding:2px 6px}#rail-strip{margin:2px 0}
  .departure-pin canvas{width:42px}
}
@media(min-width:701px) and (max-height:540px){
  header{height:48px}.monogram{width:32px;height:32px;font-size:21px}
  main{height:calc(100dvh - 48px)}
  .map{grid-template-columns:minmax(0,1fr) 102px;grid-template-rows:auto minmax(0,1fr) auto auto auto}
  .map-top,.map-bottom,.map-note{grid-column:1/-1}
  #island-stage{grid-column:1;grid-row:2/4}
  .map-dock{display:contents}
  .orientation,#cluster-panel{grid-column:2;grid-row:2;align-self:center;margin-right:5px;padding:4px}
  #rail-strip,#cluster-members{flex-direction:column}#rail-strip button{text-align:left}
  #rail-strip small{display:inline;margin-left:4px}
  .rail-title span{display:none}#cluster-members{max-height:110px}
  .member-choice{flex:0 0 auto;font-size:11px}.member-choice small{display:none}
  .departure-pin{grid-column:2;grid-row:3;display:flex;flex-direction:column;align-items:center;gap:0;padding:0}
  .departure-pin b{font-size:13px}.departure-pin small{align-self:center}
  .map-bottom{grid-row:4}.map-note{grid-row:5}
}


/* The return action stays within reach as the place list scrolls. */
.list-navigation{
  position:sticky;top:0;z-index:4;padding:10px clamp(16px,2vw,25px);
  background:var(--paper);border-bottom:1px solid var(--line);
}
.island-back{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;
  padding:8px 16px;border-radius:5px;background:#223e49;color:#fff3d6;
  font-family:inherit;font-weight:600;font-size:14px;line-height:1.3;
}
.island-back [aria-hidden]{font-size:18px;line-height:1}
#return-map{width:100%}
.island-back:hover{background:#315761}
.island-back:focus-visible,#list-toggle:focus-visible{outline:3px solid #ba985a;outline-offset:2px}
#prep-return{display:flex;margin:0 0 12px}
#detail-return{display:flex;width:fit-content;margin:0 0 12px;border:1px solid #d4c59188}
#cluster-close{float:none;margin:0 0 4px;min-height:36px;padding:5px 10px;border-radius:4px;background:#223e49;color:#fff3d6;font-size:12px}
#map-unavailable{padding:0 18px;color:#52635c;font-size:12px}
.map-only #place-list{display:none}
.map-only #list-toggle{display:block}
.list-only .map,.list-fallback .map{display:none}
.list-only #place-list{position:relative;width:100%;min-width:0;max-width:none;transform:none}
.list-fallback .list-navigation,.list-fallback #detail-return,.list-fallback #prep-return{display:none}
@media(min-width:701px){.map-only .map-actions{grid-column:3}}
@media(max-width:700px){.list-navigation{padding:7px 16px}}
@media(min-width:701px) and (max-height:540px){
  #cluster-close{min-height:32px;font-size:10px;padding:4px;gap:3px}
}

.list-navigation,.detail-navigation{display:flex;align-items:center;gap:8px}
.list-navigation #return-map{width:auto;flex:1}
.detail-navigation{margin-bottom:12px;flex-wrap:wrap}
.detail-navigation #detail-return{margin:0}
.whole-island,.map-actions .whole-island,#cluster-close.whole-island{
  display:inline-flex;justify-content:center;align-items:center;min-height:44px;
  padding:8px 14px;border:1px solid #c5af78;border-radius:5px;
  background:#edddad;color:#203843;font-family:inherit;font-size:14px;font-weight:600;line-height:1.25;
  white-space:nowrap;cursor:pointer;
}
.whole-island:hover,.map-actions .whole-island:hover,#cluster-close.whole-island:hover{background:#f8ecc8}
.whole-island:focus-visible{outline:3px solid #af8c43;outline-offset:2px}
.list-fallback .whole-island{display:none}
@media(max-width:700px){
  .map-actions{flex-wrap:wrap}
  .map-actions .whole-island{min-height:40px;padding:7px 10px;font-size:13px}
}
/* Keep the card's navigation buttons stationary as soon as they become visible. */
.detail.open{transition:none}
@media(max-width:700px){aside.mobile-open{transition:none}}

.mall-link{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;padding:9px 12px;background:#efe7d5;border:1px solid #ded0ad;border-radius:5px;color:#364843;text-decoration:none;font-size:13px;font-weight:600}
.mall-link span{font-size:11px;font-weight:500;color:#675735}
.pin.mall-pin>span{border-radius:5px;background:#e8cc87;color:#263b42;border:1px solid #f7e6b9;font:bold 10px Georgia}
.pin.mall-pin b{background:#2b4145;color:#f7e7b9;border:1px solid #c7b17780}
.directory-dialog{position:fixed;inset:0;width:min(430px,calc(100vw - 24px));max-height:calc(100dvh - 28px);padding:0;margin:auto;overflow:auto}
.directory-dialog::backdrop{background:#0d242aca}
.mall-head{position:relative;display:block;height:auto;padding:24px 24px 17px;background:#233e47;color:#faedcf;border:0}
.mall-head span{color:#e2c992;font-size:11px;letter-spacing:.6px}
.mall-head h2{margin:5px 0 7px;font:500 34px/1.1 Georgia,serif;letter-spacing:1px}
.mall-head p{margin:0;font-size:12px;line-height:1.7;color:#e2e7da}
.directory-dialog .close{z-index:6}
.mall-body{padding:16px 22px 20px}.mall-body h3{font-size:14px;margin:0 0 5px}
.directory-entries{padding:0;margin:0;list-style:none}
.directory-entries a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:49px;border-bottom:1px solid #dcd9c9;text-decoration:none;color:#243e45}
.directory-entries a:hover{background:#eeeadd}.tenant-info{display:flex;flex-direction:column;line-height:1.45;padding:6px 0}.tenant-info strong{font-size:14px}.tenant-info small,.tenant-floor{font-size:11px;color:#68756a}
.tenant-floor{white-space:nowrap;border:1px solid #d4cbae;border-radius:3px;padding:2px 6px;color:#63573b}
.mall-links,.mall-exits{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-top:14px}
.mall-links a{color:#405f55;text-underline-offset:3px}
.mall-exits #near-em{background:transparent;color:#416156;font-size:12px;margin:0;padding:6px 0}

.district-return{min-height:44px}.district-return b{font-size:13px;font-weight:600}.district-return span{font-size:17px}

/* Draw a symmetric close mark independently of the font's multiplication glyph. */
.close{display:grid;place-items:center;padding:0;line-height:1;min-width:32px;min-height:32px;flex:none}
.close::before,.close::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.6px;border-radius:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}
.close::after{transform:translate(-50%,-50%) rotate(-45deg)}

.instagram-button{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;margin:9px 0 4px;padding:9px 12px;border:1px solid #c9bbd0;border-radius:5px;color:#664771;background:#f0e9f2;text-decoration:none;font-size:13px;font-weight:600}
.instagram-button:hover{background:#e8dced}.instagram-button:focus-visible{outline:3px solid #ad8cbb;outline-offset:2px}

/* The same category and district line appears before every venue name. */
.venue-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;line-height:1.5}
.venue-category{display:inline-block;flex:none;border:1px solid #c8d4c5;border-radius:4px;padding:1px 6px;background:#e5ecdf;color:#334e43;font-size:11px;font-weight:600;letter-spacing:0}
.venue-district{color:#657268;font-size:10px;font-weight:400;letter-spacing:.3px}
.place-text>.venue-metadata{margin-bottom:3px}
.tenant-info>.venue-metadata{margin-bottom:4px}
.directory-entries a{min-height:74px}
#detail-label .venue-category{background:#ffffff18;border-color:#e6e4d35c;color:#fcf1d5}
#detail-label .venue-district{color:#e5dfdf}
.member-choice{flex-direction:column;align-items:flex-start;gap:3px}
.member-choice strong{font-size:12px;font-weight:600}.member-choice small{max-width:100%;text-align:left}

/* Improve hierarchy and contrast while keeping the map spacious. */
body{font-family:"PingFang TC","Microsoft JhengHei",system-ui,-apple-system,sans-serif}
.pin b,.pin.area b{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.2px;line-height:1.35;padding:4px 7px;color:#fff3dc;background:#163443f5}
.pin>span{width:25px;height:25px;font-size:12px}
.pin.area>span{width:32px;height:32px;font-size:14px}
.district{font-size:10px;letter-spacing:.4px;color:#e7e6cfba}
.departure-pin canvas{width:94px}
.departure-pin b{font-family:inherit;font-weight:600;letter-spacing:1px;color:#fff0c9}
.departure-pin small{font-size:11px;color:#e8dcc0;line-height:1.5}
.venue-category{font-size:12px}.venue-district{font-size:11px;color:#52655b}
.place-text>span{color:#52655b;font-size:12px;line-height:1.55}
.tenant-info{line-height:1.6}.tenant-info strong{font-size:15px}.tenant-info small{font-size:12px;color:#52655b}
.detail-body>#detail-description,.guide-section p,.detail-body .before p{font-size:14px;line-height:1.8;color:#344f47}
.detail-body h3{font-size:13px;color:#25423d}
.time-line>span{font-size:11px;line-height:20px}
.card-source{font-size:11px;line-height:1.65}.card-source a{font-size:12px}
.venue-actions a,.venue-actions button{min-height:44px;font-size:13px}
.mall-head p{font-size:13px;line-height:1.75}
.map-actions button{font-weight:500}
.map-note{color:#d9e0d3;font-size:10px;line-height:1.55}
.legend{font-size:11px;color:#e4e7d8}
@media(max-width:700px){
  .pin b,.pin.area b{font-size:11px;letter-spacing:0}
  .pin.mall-pin>span{font-size:11px}
  .departure-pin{min-width:76px;min-height:100px;padding:0 2px}
  .departure-pin canvas{width:64px}
  .departure-pin b{font-size:15px;letter-spacing:.7px;line-height:1.5}
  .departure-pin small{font-size:11px}
  .orientation{flex:1;min-width:0;padding:8px}
  .rail-title{font-size:11px;line-height:1.5}.rail-title span{display:none}
  #rail-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
  #rail-strip button{font-size:11px;line-height:1.35;padding:2px 0 4px;white-space:normal}
  #rail-strip small{font-size:10px;margin-top:2px}
  #landmark-info{font-size:11px;text-align:left;line-height:1.5}
  .map-bottom{gap:5px}
  .legend{gap:7px;font-size:10px}
  .map-note{font-size:10px;line-height:1.5}
  .island-count summary{font-size:10px}
  .map-actions button{font-size:12px}
  .mobile-periods button{padding-right:8px;padding-left:8px}
}
@media(max-height:540px){
  .departure-pin{min-height:0}.departure-pin canvas{width:52px}
}
@media(max-width:350px){
  .brand{font-size:9px;letter-spacing:.5px;gap:7px}
  .brand>span:last-child{white-space:nowrap}
  #collection{padding:9px 6px;font-size:9px}
}

/* Ivory wayfinding labels stay readable against the miniature streetscape. */
.pin b{background:#faf5e8;color:#203a43;border:1px solid #e2d3ae;border-radius:10px;box-shadow:0 2px 8px #0c273735;letter-spacing:.15px}
.pin:hover b,.pin.chosen b{background:#ead39c;border-color:#c6a76d}
.pin:after{background:#f5e9c49c}
.district[hidden]{display:none}
#island-stage{overscroll-behavior:contain;-webkit-user-select:none}

.mookata-icon{display:block;width:21px;height:21px;flex:none}.place-symbol .mookata-icon{width:26px;height:26px}

/* Keep the personal collection unmistakable, even on a narrow screen. */
.list-mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#eae9e1;border-radius:8px;margin-bottom:22px}
.list-mode button{background:transparent;color:#59665f;border-radius:5px;min-height:42px;padding:8px;font-size:13px}
.list-mode button[aria-pressed="true"]{background:var(--ink);color:#fff3d9;box-shadow:0 2px 5px #20364315}
.list-identity h1{font-size:36px;letter-spacing:1px;margin:16px 0 12px}
.saved-view .list-identity{background:#203a47;color:#faf4e6;border-radius:10px;padding:22px 20px;margin:0 0 22px;border:1px solid #b89d67;position:relative;overflow:hidden}
.saved-view .list-identity:after{content:"♡";position:absolute;right:12px;top:2px;font:100px Georgia;color:#d5bf8c12;pointer-events:none}
.saved-view .guide-kicker{color:#d8c499;font-size:10px;letter-spacing:1.3px}
.saved-view .list-identity h1{font-size:34px;margin:17px 0 12px;position:relative;z-index:1}
.saved-view .list-identity .intro{color:#e4e5d9;font-size:13px;line-height:1.8;margin:0 0 18px;position:relative;z-index:1}
.saved-summary{margin:0;font-size:14px;color:#ead4a3;border-top:1px solid #d8c49940;padding-top:14px}
.saved-view .list-heading{letter-spacing:.5px}.saved-view #list-title{font-size:14px;font-weight:650;color:var(--ink)}
.saved-view .storage-hint{font-size:12px;line-height:1.7;color:#6c776f}
.saved-view .empty{padding:24px 4px;line-height:1.9;color:#53655d;font-size:14px}
.saved-view .empty-reset{display:block;min-height:44px;margin-top:15px;color:#203a47;font-size:13px}
#collection.active{box-shadow:0 0 0 2px #d6bf8c; background:#806337}

.theme-note{font-size:12px;line-height:1.8;color:#617267;margin:0 0 15px}
.afterdrink-link{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 15px;margin:0 0 20px;border:1px solid #cbb783;background:#f1e9d5;color:#57482e;border-radius:6px;font-size:14px;min-height:46px}
.afterdrink-link[hidden]{display:none}

#island-life{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#pins{z-index:2}
#life-toggle{white-space:nowrap;min-height:40px}
#life-toggle[aria-pressed="false"]{color:#d5d7ca;background:#233f48}
@media(max-width:700px){.map-actions{gap:4px}.map-actions #life-toggle{padding:7px 8px;font-size:11px}}

.transit-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;margin:0 0 7px;color:#e3e5d7}.transit-legend span:before{content:"";display:inline-block;width:13px;height:3px;margin:0 4px 3px 0;border-radius:2px;background:var(--route-color)}
.transit-legend .green{--route-color:#8cba5e}.transit-legend .blue{--route-color:#6695de}.transit-legend .arl{--route-color:#d67a87}
#rail-strip{flex-wrap:wrap;max-width:460px}
#transit-stations{position:absolute;inset:0;pointer-events:none;z-index:2}
#pins{z-index:3}
.transit-stop{position:absolute;transform:translate(-50%,-10px);display:flex;flex-direction:column;align-items:center;background:none;padding:0;pointer-events:auto;color:#2b4937;min-width:36px;min-height:36px;font-size:9px}
.transit-stop i{font-style:normal;font-size:9px;font-weight:700;background:#f8f4df;border:2px solid #6b9a40;border-radius:7px;min-width:24px;line-height:16px}
.transit-stop span{background:#f5f2dfeb;border-radius:3px;padding:2px 4px;white-space:nowrap;font-size:10px;border:1px solid #cbd1b1;margin-top:2px}
.transit-stop[hidden]{display:none}
.transit-stop:nth-child(even){transform:translate(-50%,-31px);flex-direction:column-reverse}
[data-station-labels="false"] .transit-stop span{display:none}
[data-station-labels="false"] .transit-stop:nth-child(even){transform:translate(-50%,-10px)}
.station-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.station-actions>a,.station-actions>button{padding:12px;border-radius:5px;background:#203a47;color:#f9efda;text-align:center;font-size:14px;text-decoration:none}
@media(max-width:700px){.orientation .transit-legend{gap:5px;font-size:9px}.orientation{max-width:70%}#rail-strip{max-width:100%;gap:2px}#rail-strip button{padding:4px;min-height:28px}.transit-stop span{font-size:8px;max-width:65px;overflow:hidden}.transit-stop i{font-size:8px;line-height:14px;min-width:20px}.transit-stop{min-height:32px;min-width:32px}}
/* Scale the transit panel and its layout footprint together. */
.orientation{zoom:.75;flex:0 1 auto}

/* Language is an overlay on the shared guide; names and map state stay stable. */
.language-control{display:inline-flex;align-items:center;gap:5px;flex:none;color:var(--ink,#203c49)}
.language-control>span{font-size:17px;line-height:1}
.language-control select{appearance:auto;width:auto;max-width:108px;min-height:38px;border:1px solid #b3ad9959;border-radius:7px;background:#f8f5ec;color:inherit;font:inherit;font-size:12px;padding:6px 3px 6px 7px;letter-spacing:0;cursor:pointer}
.language-control select:focus-visible{outline:2px solid #ad8b4d;outline-offset:3px}
html[lang=en] .pin.area b{letter-spacing:.2px;max-width:135px;white-space:normal}
html[lang=en] .map-actions{gap:5px}
html[lang=en] .map-actions button{letter-spacing:0;padding-left:10px;padding-right:10px}
html[lang=en] .orientation{flex:0 1 395px}
html[lang=en] .detail h2{letter-spacing:0}
html[lang=en] .island-title span{letter-spacing:1px}
@media(max-width:700px){
 .language-control{gap:2px}.language-control>span{display:none}.language-control select{font-size:11px;min-height:36px;max-width:87px;padding-left:4px}
 header .header-actions{gap:7px}html[lang=en] #collection{font-size:11px;padding:9px 8px;letter-spacing:0}
 html[lang=en] .map-actions button{font-size:10px;padding:8px 7px}
 html[lang=en] .departure-pin b{font-size:15px;letter-spacing:.2px;max-width:120px;white-space:normal}
 html[lang=en] .departure-pin small{letter-spacing:0;font-size:9px}
 html[lang=en] .rail-title{letter-spacing:0}
 html[lang=en] .map-note{font-size:9px}
}
@media(max-width:390px){header .brand{gap:6px}header .brand>span:last-child{font-size:10px;letter-spacing:1px}.language-control select{max-width:78px;font-size:10px}header .header-actions{gap:4px}#collection{padding:8px 6px}}
.dialog-language{position:absolute;right:66px;top:16px;z-index:3}.dialog-language select{min-height:32px;font-size:11px}dialog:has(.dialog-language)>.eyebrow,dialog:has(.dialog-language)>.guide-kicker{padding-top:34px}.directory-dialog .mall-head{padding-top:65px}
@media(max-width:700px){.dialog-language{right:62px;top:15px}.directory-dialog .mall-head{padding-top:64px}}
@media(max-width:700px){
 html[lang=en] .island-count summary{font-size:10px;padding:5px 6px}
 html[lang=en] .island-count{flex:none}
 html[lang=en] #collection{display:flex;align-items:center;gap:5px;max-width:82px;min-height:38px;font-size:10.5px;line-height:1.3;padding:7px 6px}
 html[lang=en] #collection-count{flex:none}
}

.venue-planning{margin:20px 0 24px;padding:17px;border:1px solid #c9b99070;border-radius:9px;background:#eee8d7}
.venue-planning h3{margin:0 0 12px;font-size:14px;letter-spacing:.7px;color:#233e48}
.planning-links{display:grid;grid-template-columns:1fr;gap:9px}
.planning-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:11px 14px;border:1px solid #bca87580;border-radius:6px;background:#fbf8ee;text-decoration:none;font-size:14px;font-weight:600;line-height:1.4;color:#243d49}
.planning-links a:first-child{background:#243d49;color:#fbf8ee;border-color:#243d49}
.planning-links a:hover{box-shadow:0 2px 8px #203b491f}
.planning-links a:focus-visible{outline:2px solid #9f7b3e;outline-offset:3px}
.venue-planning .planning-source{margin:12px 0 5px;font-size:11px;line-height:1.6;color:#6b7268}
.venue-planning .planning-note{margin:0;font-size:12px;line-height:1.7;color:#59665d}

.pin.memberclub>span{background:#74604f;color:#f6e8c7;border-color:#bfa26a}.memberclub .place-symbol,.place-symbol.memberclub{background:#eee3ce;color:#7c603b}.detail[data-category="memberclub"] .venue-head{background:#5c514d}

.admin-entry{position:fixed;right:12px;bottom:5px;font-size:10px;color:#ddd9bf;z-index:4;opacity:.8}.admin-entry:focus,.admin-entry:hover{opacity:1}#admin-edit{display:inline-block;margin:12px 0;color:#203b47}#admin-edit[hidden]{display:none}#detail-attachments a{font-weight:650}#detail-attachments p{font-size:13px;margin:8px 0 0}

#city-markers{position:absolute;inset:0;pointer-events:none;z-index:4}
.city-label,.pin.area,.pin.mall-pin{background:#fffaf0;color:#182e39;border:1px solid #bdae87;border-radius:12px;box-shadow:0 2px 5px #243b4333}
.city-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;white-space:nowrap;padding:5px 9px;font:650 12px Georgia,serif;letter-spacing:.2px}
.city-label::before{content:'◆';font:9px Georgia;color:#9c783d;margin-right:5px}
.city-label[hidden],.pin[hidden]{display:none}
.pin.area,.pin.mall-pin{display:flex;align-items:center;gap:3px;padding:2px 5px}
.pin.area>b,.pin.mall-pin>b,.pin>b{background:#fffaf1;color:#192e35;text-shadow:none}
.pin.area>b,.pin.mall-pin>b{border:none;box-shadow:none;font-size:11px}
.pin.area>span,.pin.mall-pin>span{background:#284758;color:#f3dfb4;border:0;border-radius:8px;width:20px;height:20px;font-size:10px}
.pin.chosen b{background:#f6e6bf}
#bird-view[aria-pressed=true],#transit-layer[aria-pressed=true]{background:#ece1c2;color:#1b3442}
#city-detail{max-width:min(360px,90vw);padding:30px;border:1px solid #bcac87;border-radius:18px;background:#faf7ef;color:#203642}
#city-detail h2{font:600 26px Georgia,serif;margin:8px 0 18px}
@media(max-width:700px){.city-label{font-size:10px;padding:4px 6px}.map-actions{flex-wrap:wrap;justify-content:flex-end}.map-actions button{min-height:32px}.pin.area>b{font-size:10px}}

#pins .pin.area,#pins .pin.mall-pin{flex-direction:row;min-height:22px;min-width:0;width:max-content;height:auto;align-items:center}
#pins .pin.area b,#pins .pin.mall-pin b{margin:0;padding:3px 4px;line-height:1.1}
#pins .pin.area>span,#pins .pin.mall-pin>span{margin:0}
#pins .pin[hidden],#city-markers [hidden]{display:none!important}
body[data-theme=dusk] .map{background:radial-gradient(ellipse at 48% 45%,#5c8d8b 0%,#426f72 47%,#234956 100%)}
#drag-mode{max-width:87px;padding:6px;border:1px solid #cdb782;border-radius:5px;background:#f6ecd7;color:#233d45;font:inherit;font-size:12px;font-weight:600}
.legend{flex-wrap:wrap}

/* A compact on-island shortcut opens a separate geographic network at metropolitan scale. */
#network-open{display:flex;gap:8px;align-items:center;width:100%;min-height:34px;padding:0 0 6px;background:none;color:#fff0ca;font:inherit;font-size:15px;font-weight:650;text-align:left}
.rail-icon{color:#c9ad72;font-size:18px}
.transit-stop i{border-color:var(--rail-color,#6b9a40)}
#rail-network{width:min(850px,calc(100vw - 28px));max-width:none;max-height:90dvh;padding:24px;border-radius:12px;color:#203a47;margin:auto;overflow-y:auto}
#rail-network h2{margin:20px 0 12px;font-size:25px;color:#203a47}
.network-controls{display:flex;gap:10px;align-items:end;margin-bottom:12px}
.network-controls label{display:grid;gap:3px;font-size:11px;color:#61716e}
.network-controls select,.network-controls input{min-height:38px;max-width:100%;font:inherit;font-size:13px;color:#223f45;background:#fffdf8;border:1px solid #c7c8b6;border-radius:5px;padding:6px 9px}
.network-content{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:14px;align-items:start}
.network-drawing{position:relative;border:1px solid #d8d6c8;border-radius:8px;background:#efeee4}
#network-chart{display:block;width:100%;height:clamp(220px,48vh,440px);touch-action:manipulation}
#network-chart circle[data-station]{cursor:pointer}
.rail-north{position:absolute;right:10px;top:8px;color:#607474;font-size:11px;pointer-events:none}
.network-stop-pane{max-height:min(58vh,500px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
#network-stations section{margin:0 0 12px}
#network-stations h3{font-family:inherit;font-size:13px;font-weight:650;line-height:1.5;position:sticky;top:0;background:#f9f6ed;color:#263f42;margin:0;padding:6px 8px;border-left:4px solid var(--rail-color)}
#network-stations button{display:flex;align-items:center;gap:8px;min-height:37px;width:100%;padding:6px 8px;background:transparent;color:#263f42;text-align:left;border-bottom:1px solid #dcdccf;font-size:12px}
#network-stations button[aria-pressed=true]{background:#e9e2c9}
#network-stations button small{min-width:32px;font-weight:650;color:#6a715f}
#network-selected{padding:10px 3px;color:#263f42}
.network-selection{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;align-items:center}
.network-selection strong{font-size:15px}.network-selection small{font-size:11px;color:#546c68;grid-column:1}
.network-selection a{grid-row:1/3;grid-column:2;font-size:11px}
.network-changes,#station-transfers{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.network-changes button,#station-transfers button{background:#e6e8da;border-radius:4px;color:#284c48;text-align:left;padding:6px 8px;font-size:11px;min-height:32px}
.rail-source-details{margin-top:12px;font-size:11px;color:#536560}
.rail-source-details summary{cursor:pointer}
#network-sources{display:flex;flex-wrap:wrap;gap:5px 14px}
@media(max-width:650px){
 #rail-network{padding:16px;width:calc(100vw - 12px);max-height:94dvh}
 #rail-network h2{margin-top:27px}
 .network-content{display:block}.network-controls label{min-width:0;flex:1}
 .network-controls input,.network-controls select{width:100%;font-size:16px}
 #network-chart{height:clamp(170px,26dvh,245px)}
 .network-stop-pane{max-height:28dvh;min-height:80px}
 #network-stations button{min-height:42px}
}

#park-markers{position:absolute;inset:0;z-index:4;pointer-events:none}
.park-marker{position:absolute;transform:translate(-50%,-100%);border-radius:6px;background:#f5f7eaff;color:#314a38;font-size:11px;font-weight:600;line-height:1.35;padding:3px 6px;white-space:nowrap;box-shadow:0 1px 4px #2e403935}
.map-attribution{margin-inline-start:.6em;font-size:10px;color:inherit}
@media(max-width:700px){.map-attribution{font-size:9px}}
.rail-attribution{margin-top:10px;font-size:10px;color:#60716d}

body[data-theme=dusk] .map{background:radial-gradient(ellipse at 36% 39%,#75aaa3 0%,#458b8a 40%,#28646f 73%,#214b59 100%)}

#map-tools,#rail-shortcuts{display:contents}
#map-tools-toggle,#rail-shortcuts-toggle,#mobile-about{display:none}

/* Let the actions claim their text width before the decorative title uses the rest. */
@media (min-width:701px){
  .map-top{grid-template-columns:auto minmax(0,1fr) auto}
  .map-top .island-title{text-align:center}
  .map-top .map-actions{align-items:center}
  .map-actions button,.map-actions select,body>header .header-actions>button{white-space:nowrap}
}
/* Keep navigation in the visible viewport, and scrolling inside the active page. */
@media (max-width:700px),
       (max-width:950px) and (max-height:540px),
       (orientation:landscape) and (any-pointer:coarse) and (max-height:800px),
       (max-width:1600px) and (max-height:760px) and (min-aspect-ratio:17/10){
  html{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
  body{box-sizing:border-box;width:100%;height:100vh;height:100dvh;margin:0;overflow:hidden;display:grid;
    grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);
    padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
  body>header{height:auto;min-height:52px;padding:5px 8px;display:flex;flex-wrap:wrap;column-gap:5px;row-gap:3px;justify-content:space-between}
  body>header .brand{min-width:0;flex:0 1 auto;gap:5px}.brand .monogram{width:30px;height:30px;font-size:20px}
  body>header .brand>span:last-child{font-size:10px;letter-spacing:1px}
  body>header .header-actions{min-width:0;gap:4px}body>header .header-actions>.text-button{display:none}
  body>header .island-count{margin:0}.island-count summary{white-space:normal}
  body>header .island-count>div{position:fixed;inset:auto auto auto max(8px,env(safe-area-inset-left));max-width:calc(100% - 16px);transform:none}
  body>header #collection{min-height:36px;max-width:100%;padding:5px 7px;font-size:12px;white-space:normal}
  .language-control select,#drag-mode{font-size:16px;max-width:100%}
  body>header .language-control select{font-size:16px;width:calc(5em + 24px);min-width:calc(5em + 24px);max-width:none;flex-shrink:0}
  body>main{height:auto;min-height:0;width:100%;min-width:0;overflow:hidden}
  #map{min-height:0;min-width:0;width:100%;max-width:100%;height:100%;grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr) auto auto auto;--gutter:8px}
  #map>.map-top,#map>#island-stage,#map>.map-dock,#map>.map-bottom,#map>.map-note{grid-column:1;grid-row:auto}
  #island-stage{contain:size layout paint}
  #map .map-top{display:block;padding:4px 0;left:auto;right:auto}
  #map .map-caption,#map .island-title{display:none}
  #map .map-actions{position:relative;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:4px}
  .map-actions>button,#map .map-actions>.whole-island{min-width:0;min-height:40px;padding:4px 2px;white-space:normal;line-height:1.2;font-size:12px}
  #map-tools-toggle,#rail-shortcuts-toggle,#mobile-about{display:block}
  #map-tools,#rail-shortcuts{display:none;position:absolute;z-index:20;border:1px solid #c2b58c;border-radius:8px;
    padding:8px;background:#213f48;box-shadow:0 5px 18px #12303748;overflow:auto;overscroll-behavior:contain}
  #map-tools{right:0;top:calc(100% + 3px);width:min(270px,100%);max-height:55dvh}
  #map-tools-toggle[aria-expanded=true]+#map-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  #map-tools .mobile-periods{display:contents}
  #map-tools>*:not(.mobile-periods),#map-tools .mobile-periods button{min-width:0;width:100%;max-width:100%;min-height:38px}
  .map-dock{display:flex;position:relative;min-width:0;gap:6px}
  #map .orientation{position:static;display:flex;align-items:stretch;width:auto;flex:1;min-width:0;max-width:none;margin:0;gap:5px;padding:4px}
  #map .map-dock:has(#cluster-panel:not([hidden])) .orientation{display:none}
  #network-open,#rail-shortcuts-toggle{flex:1;min-width:0;min-height:38px;display:flex;align-items:center;justify-content:center;padding:3px;
    border-radius:4px;font-size:12px;background:transparent;color:#fff0ca;line-height:1.25;text-align:center}
  #rail-shortcuts-toggle{border-left:1px solid #aaa78366}
  #rail-shortcuts{bottom:calc(100% + 3px);left:0;width:min(328px,100%);max-height:48dvh}
  #rail-shortcuts-toggle[aria-expanded=true]+#rail-shortcuts{display:block}
  #rail-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  #rail-strip button{min-width:0;overflow-wrap:anywhere;white-space:normal}
  #map .departure-pin{grid-column:auto;grid-row:auto;display:flex;flex-direction:row;align-items:center;justify-content:center;
    min-width:65px;min-height:40px;padding:2px 4px;gap:3px}
  #map .departure-pin canvas{width:31px}#map .departure-pin b{font-size:13px}#map .departure-pin small{display:none}
  #map .map-bottom{display:flex;flex-wrap:wrap;min-width:0;gap:4px}
  .map-bottom .legend{flex:1;min-width:0;max-width:100%;flex-wrap:wrap}
  .map-bottom .compass,.map-bottom>p{display:none}
  #map .map-note{max-width:100%;min-width:0;margin-right:66px;padding-bottom:4px;overflow-wrap:anywhere}
  .admin-entry{bottom:max(3px,env(safe-area-inset-bottom));right:max(6px,env(safe-area-inset-right))}
  #map #cluster-panel{position:static;width:0;flex:1;margin:0}
  #cluster-members{display:grid;grid-template-columns:minmax(0,1fr);overflow-x:hidden;overflow-y:auto;max-height:min(20dvh,140px)}
  .member-choice{min-width:0;width:100%;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}
  #place-list{position:absolute;inset:0;width:100%;max-width:none;min-width:0;overflow:auto;overscroll-behavior:contain}
  main.list-open #place-list{transform:none;z-index:1100}
  main.list-open #map{visibility:hidden}
  main .detail.open{position:absolute;inset:0;width:100%;max-width:none;margin:0;overflow:auto;overscroll-behavior:contain}
  #place-list input,#place-list select,dialog select,dialog input{font-size:16px}
  dialog{max-width:calc(100% - 16px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px);overflow:auto;overscroll-behavior:contain}
  /* In landscape the four primary controls form one compact, horizontal group. */
  @media (orientation:landscape) and (min-width:480px){
    body>header{flex-wrap:nowrap;min-height:42px;padding-block:2px}
    body>header .brand,body>header .header-actions,body>header .island-count summary,body>header #collection{white-space:nowrap}
    #map .map-top{display:flex;align-items:center;justify-content:flex-end;padding:3px 0;gap:10px}
    #map .map-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;width:max-content;max-width:100%;gap:5px}
    #map .map-actions>button,#map .map-actions>.whole-island{
      flex:0 0 auto;width:auto;min-width:52px;min-height:38px;height:38px;
      padding:0 clamp(8px,1.4vw,16px);white-space:nowrap;line-height:1;font-size:13px;
    }
    #map-tools{width:min(270px,calc(100vw - 24px));max-height:calc(100dvh - 105px)}
    #map-tools button,#map-tools select{white-space:nowrap}
  }
}
@media (max-width:365px){
  body>header .brand .monogram{display:none}
  #map .map-bottom .legend>span{display:none}
}
@media (max-height:480px) and (max-width:950px){
  body>header{min-height:39px;padding-block:2px}
  #map .map-actions>button,#map .map-actions>.whole-island{min-height:32px}
  #map .map-note{font-size:8px;padding-block:0}
}
@media (max-width:460px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body>header{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;row-gap:0}
  body>header .brand{grid-column:1;grid-row:1;max-width:100%;overflow:hidden}
  body>header .brand>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body>header .brand .monogram{width:25px;height:25px;flex:none}
  body>header .island-count{grid-column:1;grid-row:2;justify-self:start;max-width:100%}
  body>header .island-count summary{padding:2px 4px;line-height:1.2;font-size:9px;letter-spacing:0}
  body>header .island-count .total-count{display:inline;margin:0}
  body>header .header-actions{grid-column:2;grid-row:1/3}
}

/* Reserve text width plus the native menu arrow, including iOS controls. */
.language-control{flex-shrink:0}
.language-control select{min-width:calc(5em + 24px);max-width:none}

.gesture-help{font-size:11px;line-height:1.6;margin:0;max-width:190px;color:#e4e7d8;grid-column:1/-1;align-self:center}

#plaza-open{pointer-events:auto;align-self:center;white-space:nowrap;border:1px solid #cfb983;background:#f4ebd7;color:#223e49;font-size:14px;font-weight:650;padding:9px 12px;text-decoration:none;border-radius:6px}
@media(max-width:700px),(max-height:540px){#plaza-open{font-size:12px;padding:8px 6px}}

/* The two destinations are miniature islands, with equally clear text entrances. */
.island-entrances{display:flex;align-items:center;justify-content:flex-end;gap:clamp(5px,1vw,16px);min-width:0;flex:none}
#map .island-entrances #plaza-open,#map .island-entrances #departure-open{
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:66px;
  padding:2px 5px;border:1px solid transparent;border-radius:12px;background:#133b4a28;
  color:#fff0c9;text-decoration:none;text-align:left;white-space:normal;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
#map .island-entrances #plaza-open:hover,#map .island-entrances #departure-open:hover{
  background:#d6c2911c;border-color:#ddc9959c;transform:translateY(-2px);
}
#map .island-entrances #plaza-open:focus-visible,#map .island-entrances #departure-open:focus-visible{
  outline:2px solid #f8dd99;outline-offset:2px;
}
.island-entrances img{display:block;width:90px;height:auto;flex:none;filter:drop-shadow(0 3px 5px #0c303840)}
.island-entrances .entrance-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
#map .island-entrances .entrance-copy{width:auto;height:auto;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.island-entrances .entrance-copy b{font:650 16px/1.35 "PingFang TC","Microsoft JhengHei",sans-serif;letter-spacing:.5px;color:#fff0cb;margin:0}
.island-entrances .entrance-copy small{font:400 10px/1.5 "PingFang TC","Microsoft JhengHei",sans-serif;color:#e8dcc0;letter-spacing:.2px}
@media(max-width:900px){
  #map .island-entrances #plaza-open,#map .island-entrances #departure-open{min-height:57px;padding:2px 3px}
  .island-entrances img{width:64px}
  .island-entrances .entrance-copy b{font-size:13px}
  .island-entrances .entrance-copy small{font-size:9px}
}
@media(max-width:700px){
  .island-entrances{gap:2px}
  #map .island-entrances #plaza-open,#map .island-entrances #departure-open{
    flex-direction:column;gap:0;min-height:65px;padding:1px 2px;text-align:center;
  }
  .island-entrances img{width:55px}
  .island-entrances .entrance-copy{align-items:center}
  .island-entrances .entrance-copy b{font-size:11px;white-space:nowrap}
  .island-entrances .entrance-copy small{display:none}
}
@media(max-width:365px){.island-entrances img{width:48px}.island-entrances .entrance-copy b{font-size:10px}}
@media(min-width:701px) and (max-height:540px){
  .map .island-entrances{grid-column:2;grid-row:3;display:flex;flex-direction:column;align-self:center;gap:0;margin-right:3px}
  #map .island-entrances #plaza-open,#map .island-entrances #departure-open{
    width:100%;min-height:51px;padding:0 2px;gap:2px;
  }
  .island-entrances img{width:42px}
  .island-entrances .entrance-copy b{font-size:11px;letter-spacing:0}
  .island-entrances .entrance-copy small{display:none}
}
