@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--paper:#f8f8f3;--ink:#242a2e;--orange:#ed8747;--line:#dedfd6;--muted:#6c716c;--green:#52705a}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:3px}header{max-width:1500px;margin:auto;padding:24px 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;line-height:1.15;font-size:13px}.brand svg{width:32px;height:38px;fill:var(--orange)}.brand svg ellipse{fill:var(--ink)}.edition{font-size:10px;letter-spacing:2.5px}.plain{border:0;background:none;padding:5px 0;color:inherit;font-size:12px}.plain span{margin-left:12px}main{max-width:1500px;margin:auto;padding:0 44px}.intro{position:relative;padding:42px 0 27px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;gap:8px}.eyebrow span{height:6px;width:6px;background:var(--orange);border-radius:50%}h1{position:relative;display:inline-block;margin:10px 0 12px;font-family:'Playfair Display',Georgia,serif;font-size:clamp(48px,5.8vw,80px);line-height:1.15;letter-spacing:-3px;font-weight:600}h1 em{color:#c36532}.bat{width:59px;height:33px;position:absolute;right:-100px;top:3px;transform:rotate(-15deg);fill:var(--ink)}.intro p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.intro-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.count{font-size:12px}.count b{background:var(--orange);padding:5px 8px;border-radius:20px;margin-right:7px;font-size:12px}.date{font-size:11px;color:var(--muted)}.explorer{height:650px;display:grid;grid-template-columns:340px minmax(0,1fr);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.sidebar{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--paper);z-index:2}.search-wrap{display:flex;margin:20px 18px 13px;padding:12px;align-items:center;gap:9px;border:1px solid var(--line);border-radius:7px;background:#fff}.search-wrap svg{width:17px;height:17px;stroke:var(--muted);fill:none;stroke-width:1.5;flex-shrink:0}input{width:100%;min-width:0;border:0;background:transparent;font:inherit;font-size:12px;color:var(--ink)}.filters{display:flex;gap:6px;padding:0 18px 17px}.filters button{border:1px solid var(--line);border-radius:30px;background:transparent;padding:7px 10px;font-size:11px}.filters .active{background:var(--ink);border-color:var(--ink);color:white}.filters button span{font-size:10px;margin-left:6px;opacity:.7}.list-label{display:flex;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--line);font-size:9px;letter-spacing:1.5px;color:var(--muted)}.list{flex:1;overflow:auto;padding:0 9px 10px;scrollbar-width:thin}.shop{padding:15px 10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;cursor:pointer;border-radius:5px}.shop:hover,.shop.selected{background:#efeee5}.num{width:29px;height:29px;display:grid;place-items:center;border:1px solid #babdb3;border-radius:50%;font-size:11px;flex-shrink:0}.shop.selected .num{background:var(--orange);border-color:var(--orange)}.shop.visited .num{background:var(--green);color:white;border-color:var(--green)}.shop h3{font-size:13px;margin:0 0 4px;font-weight:600}.shop p{margin:0;font-size:10px;color:var(--muted);line-height:1.5}.shop .arrow{margin-left:auto;font-size:15px;color:var(--muted)}.progress{padding:16px 20px;border-top:1px solid var(--line)}.progress>div{display:flex;justify-content:space-between;align-items:center}.progress b{font-size:11px}.progress button{font-size:10px;color:var(--muted)}progress{height:4px;width:100%;display:block;margin:12px 0;accent-color:var(--orange);border:0}progress::-webkit-progress-bar{background:#e4e5dc;border-radius:4px}progress::-webkit-progress-value{background:var(--orange);border-radius:4px}.progress small{font-size:9px;color:var(--muted)}.map-panel{position:relative;min-width:0;background:#e9eee9}#map{height:100%;width:100%;z-index:0}#map-loading{position:absolute;left:20px;top:80px;padding:16px;background:var(--paper);z-index:1;font-size:13px}.map-controls{position:absolute;right:15px;top:15px;display:flex;gap:6px;z-index:500}.map-controls button{padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);box-shadow:0 2px 5px #00000009}.map-controls span{font-size:10px;margin-left:5px}.map-key{position:absolute;left:15px;bottom:27px;z-index:450;font-size:9px;background:#f8f8f3ed;padding:9px;border-radius:5px;display:flex;align-items:center;gap:6px;pointer-events:none}.map-key i{width:8px;height:8px;border-radius:50%;background:var(--orange);margin-left:5px}.map-key i.done{background:var(--green)}.map-key i.approx{background:none;border:1px dashed var(--ink)}.pin{background:transparent;border:0}.pin-inner{display:flex;justify-content:center;gap:3px}.pin-inner button{width:31px;height:31px;border-radius:50%;background:var(--orange);color:var(--ink);border:2px solid var(--paper);font-size:11px;font-weight:700;box-shadow:0 2px 4px #0003;padding:0}.pin-inner button.is-done{background:var(--green);color:white}.pin-inner button.is-approx{outline:1px dashed var(--ink);outline-offset:2px}.pin-inner button.is-selected{transform:scale(1.18);background:var(--ink);color:white}.selection{position:absolute;left:18px;right:18px;bottom:62px;z-index:550;max-width:410px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 30px #242a2e20;padding:22px;display:none}.selection.visible{display:block}.selection .close{top:8px;right:9px}.selection .eyebrow{font-size:9px;color:var(--muted);letter-spacing:1px}.selection h2{font:600 24px 'Playfair Display',Georgia,serif;margin:10px 0 6px}.selection p{font-size:12px;line-height:1.5;margin:6px 0;color:var(--muted)}.selection .note{font-size:10px;border-left:2px solid var(--orange);padding-left:8px;margin:12px 0}.actions{display:flex;gap:7px;margin-top:17px}.primary,.secondary{display:inline-block;text-decoration:none;border:1px solid var(--ink);border-radius:5px;padding:11px 13px;font:500 11px 'DM Sans',sans-serif}.primary{background:var(--ink);color:white}.secondary{background:transparent;color:var(--ink)}.primary:hover{background:#414b50}.secondary:hover{background:#e9e9df}.empty{padding:25px 12px;color:var(--muted);font-size:13px}.after{display:flex;align-items:center;justify-content:space-between;padding:34px 0;border-bottom:1px solid var(--line);gap:20px}.after>span{font:24px 'Playfair Display',Georgia,serif;line-height:1.3}.after b{font-weight:600;color:#b85c2a}.after p{font-size:12px;color:var(--muted);line-height:1.7}.after svg{width:72px;height:72px;fill:var(--orange);stroke:var(--ink);stroke-width:1.4;transform:rotate(-12deg)}.review{padding:20px 0;border-bottom:1px solid var(--line);font-size:12px}.review summary{cursor:pointer;color:var(--muted);list-style:none;display:flex;justify-content:space-between}.review summary span{font-size:18px}.review p{color:var(--muted);line-height:1.7;max-width:850px}.review-item{padding:12px 0;border-bottom:1px solid var(--line);max-width:850px}.review-item h3{font-size:12px;margin:0}.review-item p{margin:6px 0}.review a{color:#a45024}footer{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding:22px 0 30px;gap:20px}dialog{border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:40px;max-width:470px;width:calc(100% - 30px)}dialog::backdrop{background:#242a2e88}.close{position:absolute;right:15px;top:12px;background:none;border:0;font-size:23px;color:var(--muted);padding:4px 9px}dialog h2{font:600 40px 'Playfair Display',Georgia,serif;margin:18px 0}dialog ol{padding-left:19px;font-size:13px;line-height:1.7}dialog li{padding-bottom:12px}dialog p{font-size:11px;color:var(--muted);line-height:1.6}dialog .primary{margin-top:12px}#toast{position:absolute;top:70px;left:20px;right:20px;z-index:600;background:var(--ink);color:white;border-radius:6px;font-size:12px;padding:12px;display:none}.leaflet-container{font-family:'DM Sans',sans-serif;background:#e9eee9}.leaflet-tile-pane{filter:saturate(.5)}.leaflet-control-attribution{font-size:9px!important}.leaflet-control-zoom{border:1px solid var(--line)!important;box-shadow:none!important}.leaflet-control-zoom a{background:var(--paper)!important;color:var(--ink)!important}
@media(min-width:1600px){.explorer{height:700px}}@media(max-width:850px){header{padding:18px 22px}.edition{display:none}main{padding:0 20px}.intro{padding:30px 0 22px}.explorer{grid-template-columns:280px minmax(0,1fr);height:670px}.bat{right:-75px;width:47px}.date{max-width:150px;text-align:right;line-height:1.5}.map-controls span{display:none}.selection{padding:16px;left:10px;right:10px}.actions{flex-wrap:wrap}.after p br{display:none}}
@media(max-width:600px){header{padding:15px 18px}.brand{font-size:11px}.brand svg{width:27px;height:32px}main{padding:0 14px}h1{font-size:53px;letter-spacing:-2px}.eyebrow{font-size:8px;letter-spacing:1.5px}.bat{width:38px;right:-50px;top:5px}.intro p{font-size:12px}.intro p br{display:none}.intro-bottom{gap:16px;margin-top:20px}.count{font-size:11px;white-space:nowrap}.date{font-size:9px;max-width:135px}.explorer{display:flex;flex-direction:column-reverse;height:auto;border-radius:10px}.map-panel{height:470px;flex-shrink:0}.sidebar{border-right:0;border-top:1px solid var(--line);height:490px}.list{max-height:none}.search-wrap{margin-top:15px}.filters{padding-bottom:12px}.selection{bottom:58px}.selection h2{font-size:22px}.selection .note{max-height:67px;overflow:auto}.selection p{font-size:11px}.map-key{font-size:8px;left:9px;gap:4px}.map-key i{margin-left:3px}.after{padding:24px 4px;flex-wrap:wrap;gap:14px}.after>span{font-size:23px}.after p{font-size:11px;max-width:190px}.after svg{display:none}.review{font-size:11px}footer{font-size:9px;line-height:1.5}footer span{max-width:46%}.map-controls button{padding:9px 12px}}

.event-intro{padding:45px 0 30px}.event-intro h1{display:block;font-size:clamp(30px,4.6vw,64px);letter-spacing:-1.7px;margin:0 0 17px}.event-date{font-weight:700;font-size:16px;color:#b45a2b;display:inline-block;border:1px solid #e8d1be;border-radius:30px;padding:9px 17px;margin-bottom:18px;background:#f9eee3}.event-intro p{font-size:14px;line-height:1.8;margin:5px 0}.event-ending{justify-content:center;border:0;padding:26px 0 32px}.event-ending p{font:600 25px 'Playfair Display',Georgia,serif;color:var(--ink);margin:0;text-align:center}.progress{padding-bottom:19px}@media(max-width:600px){.event-intro{padding:28px 3px 23px}.event-intro h1{font-size:29px;letter-spacing:-.8px;line-height:1.4}.event-date{font-size:13px;margin-bottom:12px}.event-intro p{font-size:12px;margin:8px 0}.event-ending p{font-size:21px;max-width:none}.event-ending{padding:22px 0 27px}}
