:root{--bg: #f7f1e6;--bg-card: #ffffff;--ink: #163946;--ink-muted: #5a7a82;--ink-soft: #8aa3aa;--brand: #1e4d5c;--brand-strong: #163946;--gold: #c5a059;--line: #e6dcc9;--water: #cee2e8;--water-stroke: #a4c0c9;--land: #f4ebde;--land-soft: #ebe0ce;--shadow-soft: 0 2px 8px rgba(22, 57, 70, .08);--shadow-pop: 0 8px 24px rgba(22, 57, 70, .18);--radius: 14px;--radius-sm: 8px;--radius-lg: 22px;--font-serif: "Cormorant Garamond", "Georgia", "Times New Roman", serif;--font-sans: "Inter", -apple-system, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{display:flex;flex-direction:column;min-height:100dvh}.site-header{padding:18px 24px;background:var(--bg-card);border-bottom:1px solid var(--line)}.site-header__inner{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-mark{width:36px;height:36px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center;color:var(--gold)}.brand-name{font-family:var(--font-serif);font-size:22px;font-weight:500;line-height:1}.brand-tag{font-size:12px;color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase}.site-nav a{color:var(--ink-muted);text-decoration:none;font-size:14px;font-weight:500;margin-left:18px}.site-nav a:hover{color:var(--ink)}main{flex:1;display:grid;grid-template-columns:1fr 320px;gap:24px;max-width:1280px;margin:24px auto;padding:0 24px;width:100%}.map-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:12px;box-shadow:var(--shadow-soft);position:relative;display:flex;flex-direction:column}.map{position:relative;width:100%;height:70vh;min-height:480px;border-radius:var(--radius);overflow:hidden}.map-svg{width:100%;height:auto;display:block;cursor:grab;user-select:none}.map-svg:active{cursor:grabbing}.water{fill:var(--water);stroke:var(--water-stroke);stroke-width:.6;stroke-linejoin:round}.land-bg{fill:var(--bg)}.walk-ring-3km{fill:var(--brand);fill-opacity:.06;stroke:var(--brand);stroke-opacity:.35;stroke-dasharray:3 3;stroke-width:.8}.walk-ring-5km{fill:var(--brand);fill-opacity:.03;stroke:var(--brand);stroke-opacity:.25;stroke-dasharray:2 4;stroke-width:.6}.transit-line{fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.poi{cursor:pointer;transition:transform .15s ease-out;transform-origin:center;transform-box:fill-box}.poi:hover,.poi.active{transform:scale(1.4)}.poi__dot{stroke:#fff;stroke-width:1.5}.poi__halo{fill:#fff;fill-opacity:.5;pointer-events:none}.heya-pin{cursor:pointer;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.label{font-family:var(--font-sans);font-size:9px;font-weight:600;fill:var(--ink);pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:2.5;stroke-linejoin:round}.label--museums{fill:#6d3572}.label--mosques-churches{fill:#1f5a42}.label--palaces-historical{fill:#8a4f15}.label--markets{fill:#96283a}.label--viewpoints-towers{fill:#154e66}.district{font-family:var(--font-serif);font-size:13px;font-weight:500;font-style:italic;fill:var(--ink-soft);pointer-events:none;letter-spacing:.05em}.water-label{font-family:var(--font-serif);font-size:12px;font-style:italic;fill:var(--water-stroke);pointer-events:none;letter-spacing:.08em;text-transform:uppercase}.sidebar{display:flex;flex-direction:column;gap:18px}.legend-card,.detail-card{background:var(--bg-card);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-soft)}.legend-card h3,.detail-card h3{font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px}.legend-list{display:flex;flex-direction:column;gap:6px}.legend-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-sm);font-size:13px;background:transparent;border:none;cursor:pointer;text-align:left;width:100%;font-family:inherit;color:var(--ink);transition:background .15s}.legend-item:hover{background:var(--bg)}.legend-item.off{opacity:.35}.legend-item__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-item__count{margin-left:auto;font-size:11px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.detail-card{display:none}.detail-card.active{display:block}.detail-card .close{background:none;border:none;font-size:18px;color:var(--ink-muted);cursor:pointer;float:right;line-height:1;padding:0}.detail-card .category{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;color:#fff;margin-bottom:8px}.detail-card h2{font-family:var(--font-serif);font-size:24px;font-weight:500;line-height:1.15;margin-bottom:6px;color:var(--ink)}.detail-card .blurb{font-size:14px;line-height:1.5;color:var(--ink-muted);margin-bottom:14px}.detail-card .meta{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:12px;margin-bottom:16px;padding-top:12px;border-top:1px solid var(--line)}.detail-card .meta dt{color:var(--ink-soft);font-weight:500;text-transform:uppercase;font-size:10px;letter-spacing:.05em;align-self:center}.detail-card .meta dd{color:var(--ink);font-variant-numeric:tabular-nums}.detail-card .cta{display:inline-block;padding:10px 18px;background:var(--brand);color:#fff;border-radius:999px;text-decoration:none;font-size:13px;font-weight:600;transition:background .15s}.detail-card .cta:hover{background:var(--brand-strong)}.detail-card .placeholder{color:var(--ink-soft);font-size:12px;font-style:italic}.welcome-card{text-align:center;padding:28px 22px}.welcome-card h2{font-family:var(--font-serif);font-size:24px;font-weight:500;margin-bottom:8px;color:var(--ink)}.welcome-card p{font-size:14px;line-height:1.55;color:var(--ink-muted);margin-bottom:16px}.welcome-card .hint{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);padding:6px 12px;border-radius:999px;background:var(--bg)}.site-footer{margin-top:auto;padding:24px;border-top:1px solid var(--line);background:var(--bg-card);text-align:center;font-size:12px;color:var(--ink-muted)}.site-footer a{color:var(--ink);text-decoration:none;font-weight:500}@media(max-width:900px){main{grid-template-columns:1fr}.sidebar{order:-1}.map-card{padding:8px}}
