
:root{--ink:#243f35;--muted:#65796c;--orange:#ff7a00;--line:#29473725;--spring:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}body{margin:0;background:#e7eee2;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;overflow:hidden}button,select,input{font:inherit}button,select{color:inherit;cursor:pointer}button{border:0}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:4px}header{position:fixed;inset:0 0 auto;height:82px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 30px;background:#f5f8f1bf;border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.brand{display:flex;gap:11px;align-items:center;flex-shrink:0}.brand-icon{display:block;width:32px;height:32px;flex-shrink:0}.brand strong{font-size:22px;letter-spacing:-1px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:4px}.modes,.languages{display:flex;background:#ffffff70;border:1px solid var(--line);padding:4px;border-radius:24px;gap:3px}.modes button,.languages button{background:none;border-radius:20px;padding:9px 19px;font-size:14px;white-space:nowrap}.modes button.active,.languages button.active{background:var(--ink);color:white}.languages button{padding:8px 10px;font-size:13px}.navigation{display:flex;align-items:center;gap:12px;min-width:0}.select-wrap{position:relative}.select-wrap select{width:175px;padding:11px 29px 11px 13px;border:1px solid var(--line);border-radius:20px;background:#ffffff80;font-size:14px}.select-wrap select:disabled{opacity:.5}.workspace{position:fixed;inset:82px 0 0;isolation:isolate;background:radial-gradient(ellipse at 40% 35%,#edf3e8,#dce8da);overflow:hidden}#map{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}canvas.dragging{cursor:grabbing}#markers{position:absolute;inset:0;pointer-events:none;overflow:hidden}.marker{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;border:2px solid #ffffffd9;background:#ffffffe0;box-shadow:0 4px 14px #243f3520;display:grid;place-items:center;padding:0;font-size:23px;z-index:2;transition:box-shadow .25s,background .25s}.marker:hover,.marker:focus-visible{z-index:6;box-shadow:0 0 0 5px #ffffff60,0 7px 20px #243f3530}.marker.selected{border-color:var(--orange);background:#fff0db;box-shadow:0 0 0 5px #ff7a0020;z-index:7}.marker .tooltip{position:absolute;top:47px;left:50%;transform:translateX(-50%);background:#f8faf3e8;backdrop-filter:blur(6px);box-shadow:0 2px 8px #29473715;border:1px solid #ffffffa0;border-radius:8px;padding:5px 9px;white-space:nowrap;font-size:12px;color:var(--ink);opacity:0;pointer-events:none;transition:opacity .2s}.marker:hover .tooltip,.marker:focus-visible .tooltip,.marker.selected .tooltip,.city .tooltip{opacity:1}.marker.city{width:24px;height:24px;font-size:0;background:#ffffffcb;border-color:#718a77}.marker.city:after{content:'';width:7px;height:7px;background:#48664e;border-radius:50%}.marker.city.selected{border-color:var(--orange);background:#fff5e8}.marker.city.selected:after{background:var(--orange)}.city .tooltip{top:31px;font-size:13px}.map-top{position:absolute;top:22px;left:28px;right:28px;display:flex;justify-content:space-between;gap:20px;align-items:start;z-index:9;pointer-events:none}.map-title{pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin:0 0 9px}.map-title h1{font-size:24px;font-weight:550;letter-spacing:-.8px;margin:0;line-height:1.3}.map-title p:last-child{font-size:13px;color:var(--muted);margin:8px 0 0}.toolbar{display:flex;gap:7px;pointer-events:auto}.pill{border:1px solid var(--line);background:#f7faf1b3;backdrop-filter:blur(8px);padding:10px 14px;border-radius:24px;font-size:13px}.pill[aria-expanded=true]{background:#294737df;color:white}.panel{position:absolute;top:123px;left:26px;width:290px;padding:23px;border:1px solid #ffffffc7;border-radius:22px;background:rgba(255,255,255,.61);backdrop-filter:blur(5px);box-shadow:0 14px 50px #29473712;z-index:12;max-height:calc(100% - 207px);overflow:auto;scrollbar-width:thin;transition:opacity .35s,transform .5s var(--spring)}.panel.closed{opacity:0;transform:translateX(-115%);pointer-events:none}.panel.filters{left:auto;right:26px;width:242px}.filters.closed{transform:translateX(115%)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;letter-spacing:1.3px;color:var(--muted)}.close{background:none;font-size:23px;line-height:1;padding:0 0 0 10px}.country-flag{font-size:39px;margin:17px 0 9px}.country-title{font-size:29px;letter-spacing:-.8px;font-weight:600;margin:0;line-height:1.2}.country-sub{font-size:13px;color:var(--muted);margin:8px 0 14px}.tag{display:inline-block;background:#e6eedaaa;border:1px solid #fff9;border-radius:15px;padding:6px 10px;font-size:12px;margin-bottom:18px}.facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:16px 12px}.facts dt{font-size:12px;color:var(--muted);margin-bottom:5px}.facts dd{font-size:14px;line-height:1.5;margin:0;overflow-wrap:anywhere}.places-top{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px}.places-top h3{font-size:14px;font-weight:500;margin:0}.arrows{display:flex;gap:5px}.arrows button{width:28px;height:28px;border-radius:50%;font-size:18px;background:#ffffff80}.place-card{min-height:108px;background:#dbe8cb7d;border:1px solid #ffffff75;border-radius:15px;padding:15px;display:flex;flex-direction:column;justify-content:space-between;gap:16px}.place-index{font-size:11px;letter-spacing:2px;color:var(--muted)}.place-name{font-size:16px;font-weight:550;line-height:1.4}.dots{display:flex;justify-content:center;gap:5px;margin-top:9px}.dots button{width:6px;height:6px;border-radius:5px;padding:0;background:#a7b99e}.dots button.active{width:18px;background:var(--orange)}.city-note{font-size:12px;line-height:1.75;color:var(--muted);margin:18px 0 0;border-top:1px solid var(--line);padding-top:14px}.country-action{display:block;width:100%;padding:11px;border:1px solid #fff9;background:#ffffff75;border-radius:12px;font-size:13px;margin-top:19px}.filters h2{font-size:20px;font-weight:550;margin:19px 0 7px}.filter-note{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 22px}fieldset{border:0;padding:0;margin:0 0 20px}legend{font-size:13px;font-weight:600;margin-bottom:12px}.choice{display:flex;gap:10px;align-items:center;margin:13px 0;font-size:14px;cursor:pointer}.choice input{width:16px;height:16px;margin:0;accent-color:var(--orange)}.filter-foot{border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;font-size:12px}.reset{background:none;text-decoration:underline;font-size:12px}.bottom{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:15;text-align:center;max-width:calc(100% - 120px)}.random{display:inline-flex;gap:12px;align-items:center;justify-content:center;background:var(--orange);color:white;border-radius:30px;padding:15px 24px;box-shadow:0 8px 24px #ff7a0026;font-size:16px;font-weight:600;white-space:nowrap}.dice{font-size:23px}.status{font-size:12px;color:var(--muted);margin:11px 0 0;padding:4px 8px;border-radius:10px;background:#e8f0e0a6;white-space:nowrap}.map-controls{position:absolute;bottom:44px;right:27px;z-index:16;display:flex;flex-direction:column;border:1px solid #fff9;border-radius:15px;background:#ffffff85;backdrop-filter:blur(8px);overflow:hidden}.map-controls button{width:40px;height:38px;background:none;font-size:20px}.map-controls button+button{border-top:1px solid var(--line)}.attribution{position:absolute;bottom:7px;left:18px;font-size:9px;color:#748572;z-index:10;max-width:calc(100% - 35px);line-height:1.5}.attribution a{color:inherit}.empty{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);background:#ffffffe0;border:1px solid white;border-radius:16px;padding:18px;text-align:center;font-size:14px;z-index:8}.scale-note{position:absolute;right:27px;bottom:173px;z-index:9;font-size:10px;letter-spacing:1px;color:#6b816e;writing-mode:vertical-rl}.shuffle .dice{animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}[hidden]{display:none!important}
@media(max-width:1050px){header{padding:0 18px;gap:12px}.brand small{font-size:8px}.brand strong{font-size:19px}.navigation{gap:6px}.modes button{padding:9px 13px}.select-wrap select{width:135px}.languages button{padding:8px}.panel{width:267px}}
@media(max-width:760px){header{height:128px;padding:12px 16px;flex-wrap:wrap;align-content:space-between;gap:9px}.brand strong{font-size:19px}.brand-icon{width:27px;height:27px}.languages{order:2}.navigation{order:3;width:100%;justify-content:center}.modes button{padding:8px 17px}.select-wrap{flex:1;max-width:220px}.select-wrap select{width:100%;padding:10px 26px 10px 12px}.workspace{top:128px}.map-top{top:18px;left:17px;right:17px;gap:10px}.map-title h1{font-size:20px}.map-title p:last-child{font-size:11px;max-width:205px;line-height:1.6}.eyebrow{font-size:9px;margin-bottom:6px}.toolbar{flex-direction:column;gap:5px}.pill{font-size:11px;padding:8px 10px}.panel,.panel.filters{top:106px;left:13px;right:auto;width:min(295px,calc(100% - 26px));padding:18px;max-height:calc(100% - 215px)}.panel.filters{left:auto;right:13px}.country-flag{font-size:29px;margin:12px 0 6px}.country-title{font-size:25px}.country-sub{margin:5px 0 12px}.tag{margin-bottom:13px}.facts{gap:12px}.facts dd{font-size:13px}.places-top{margin-top:16px}.place-card{min-height:83px;gap:8px}.bottom{bottom:39px;max-width:calc(100% - 85px)}.random{font-size:14px;padding:13px 19px}.status{font-size:10px;white-space:normal;width:230px;margin:7px auto 0}.map-controls{right:13px;bottom:46px}.map-controls button{width:34px;height:34px}.attribution{font-size:8px;bottom:5px;left:12px;max-width:calc(100% - 24px)}.scale-note{right:16px;bottom:160px}.city .tooltip{font-size:12px}.marker{width:35px;height:35px;font-size:21px}.panel-head{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}
.marker.city .tooltip{top:26px;max-width:132px;overflow:hidden;text-overflow:ellipsis}
canvas.hovering{cursor:pointer}
.hover-name{position:absolute;transform:translate(-50%,-165%);background:#f8faf3f2;backdrop-filter:blur(6px);box-shadow:0 2px 8px #29473722;border:1px solid #ffffffb0;border-radius:8px;padding:5px 10px;white-space:nowrap;font-size:12.5px;color:var(--ink);pointer-events:none;z-index:5}
.risk-tags{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0 3px}
.risk{position:relative;display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;font-size:11.5px;line-height:1.2;color:var(--rc);background:var(--rb);border:1px solid var(--rd);cursor:help}
.risk i{width:7px;height:7px;border-radius:50%;background:var(--rc);flex:none}
.risk .rtip{position:absolute;left:0;top:calc(100% + 7px);width:205px;white-space:normal;background:#f8faf3f5;backdrop-filter:blur(6px);border:1px solid #ffffffc0;box-shadow:0 6px 18px #29473726;border-radius:10px;padding:9px 11px;font-size:11.5px;line-height:1.5;color:var(--ink);opacity:0;pointer-events:none;transition:opacity .18s;z-index:9}
.risk .rtip b{display:block;font-weight:600;margin-bottom:2px}
.risk .rtip small{display:block;margin-top:5px;color:var(--muted);font-size:10.5px}
.risk:hover .rtip,.risk:focus-visible .rtip{opacity:1}
.city-about{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.city-about h3{margin:0 0 7px;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600}
.city-about p{margin:0;font-size:13.5px;line-height:1.6}
.about-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.about-tag{padding:5px 10px;border-radius:999px;background:#ffffffb0;border:1px solid var(--line);font-size:11.5px}
.place-card{position:relative;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden;min-height:0}
.pnav{position:absolute;top:44px;transform:translateY(-50%);z-index:3;width:26px;height:26px;border-radius:50%;font-size:16px;line-height:1;background:#fffffff0;border:1px solid #ffffffd0;color:var(--ink);box-shadow:0 2px 7px #29473726;padding:0}
#prev{left:8px}#next{right:8px}
.pnav:hover{background:#fff}
.place-body{display:flex;flex-direction:column;align-items:stretch;gap:0;text-decoration:none;color:inherit}
.place-img{position:relative;height:88px;background:#c3d6b4 center/cover no-repeat;box-shadow:inset 0 -1px 0 #ffffff70}
.place-img:after{content:attr(data-icon);position:absolute;inset:0;display:grid;place-items:center;font-size:27px;opacity:.7}
.place-img.loaded:after{content:none}
.place-text{display:flex;flex-direction:column;gap:4px;padding:11px 13px 13px;min-width:0}
.place-row{display:flex;align-items:center;gap:7px;white-space:nowrap}
.place-cat{font-size:10.5px;padding:2px 8px;border-radius:999px;background:#ffffffb5;color:var(--muted)}
.place-name{font-size:15px;font-weight:550;line-height:1.35;word-break:keep-all}
.place-go{font-size:10.5px;color:var(--muted);white-space:nowrap}
.place-body:hover .place-name{text-decoration:underline}

/* Selection labels and the photo carousel. */
.hover-name{transform:translate(-50%,-100%);opacity:0;transition:opacity .18s,transform .3s var(--spring);max-width:min(220px,65vw);overflow:hidden;text-overflow:ellipsis}
.hover-name.visible{opacity:1;transform:translate(-50%,-145%)}
.country-description{font-size:11.5px;line-height:1.7;color:var(--muted);opacity:.92;margin:0 0 14px;max-width:42ch;word-break:keep-all}
.random-actions{display:flex;justify-content:center;align-items:center;gap:9px}
.random-secondary{background:#f7faf1e8;color:var(--ink);border:1px solid #fff;box-shadow:0 8px 24px #29473718;font-size:14px;padding:14px 18px}
.random-secondary .dice{font-size:19px;color:var(--orange)}
.marker.city.focus-city{width:13px;height:13px;background:var(--orange);border:2px solid #fff;box-shadow:0 0 0 5px #ff7a0035,0 4px 14px #243f3530;pointer-events:none;z-index:8}
.marker.city.focus-city:after{display:none}
.marker.city.focus-city .tooltip{top:auto;bottom:calc(100% + 14px);left:50%;max-width:none;overflow:visible;text-overflow:clip;padding:7px 12px;font-size:15px;font-weight:600;color:var(--ink);background:#f8faf3ef;opacity:0;transform:translate(-50%,15px);transition:none}
.marker.city.focus-city.revealed .tooltip{animation:city-label-in .7s var(--spring) both}
@keyframes city-label-in{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
.place-card{height:185px;min-height:185px;background:#48664e}
.place-body{position:relative;display:block;height:100%;isolation:isolate;overflow:hidden;color:#fff}
.place-img{position:absolute;inset:0;height:100%;background-color:#668263;background-position:center;background-size:cover;transition:transform .45s var(--spring)}
.place-img:after{color:#ffffffbc;font-size:38px}
.place-body:after{content:'';position:absolute;inset:15% 0 0;background:linear-gradient(180deg,transparent 0%,#101f1e40 38%,#0e1a18dc 100%);z-index:1;pointer-events:none}
.place-body:hover .place-img{transform:scale(1.045)}
.place-text{position:absolute;left:0;right:0;bottom:0;z-index:2;gap:6px;padding:30px 16px 15px;text-shadow:0 1px 4px #12231b80}
.place-cat{background:#ffffff36;color:#fff;backdrop-filter:blur(5px);border:1px solid #ffffff4d}
.place-index,.place-go{color:#ffffffe0}
.place-name{font-size:18px;line-height:1.25}
.pnav{top:50%;width:31px;height:31px;background:#fff9;border-color:#ffffffa6;backdrop-filter:blur(6px);opacity:.58;transition:opacity .2s,background .2s}
.pnav:hover,.pnav:focus-visible{opacity:1;background:#fff}
#prev{left:9px}#next{right:9px}
@media(max-width:760px){.bottom{max-width:calc(100% - 26px)}.random-actions{gap:6px}.random-secondary{padding:12px 10px;font-size:11px}.random-secondary .dice{font-size:16px}.random{gap:5px;font-size:12px;padding:12px 13px}.map-controls{bottom:148px}.place-card{height:160px;min-height:160px}.pnav{opacity:.86}}
@media(hover:none){.pnav{opacity:.86}}

.photo-credit{font-size:10px;line-height:1.5;color:var(--muted);margin:6px 2px 0;overflow-wrap:anywhere}.photo-credit a{color:inherit;text-decoration:underline}.site-links{display:inline-block;white-space:nowrap;margin-left:4px}.site-links a{color:inherit;text-underline-offset:2px}
