:root{--map-header-h: 72px;--map-footer-h: 40px;--map-radius: 12px;--map-shadow-lg: 0 12px 34px rgba(80, 70, 51, .18);--map-shadow-md: 0 8px 22px rgba(80, 70, 51, .16);--map-shadow-sm: 0 2px 8px rgba(80, 70, 51, .12);--map-overlay-bg: rgba(255, 255, 255, .96);--map-hud-gap: 1rem}.article-map-page{position:relative;display:block;width:100%;margin:0;padding:0}.article-map{position:relative;width:100%;height:calc(100dvh - var(--map-header-h) - var(--map-footer-h));overflow:hidden;background:var(--color-accent-light)}.article-map__canvas{position:absolute;inset:0;width:100%;height:100%;background:var(--color-accent-light)}.article-map__hud-header{position:absolute;top:var(--map-hud-gap);left:var(--map-hud-gap);z-index:4;display:grid;gap:.25rem;max-width:min(20rem,calc(100% - 2rem));padding:.55rem .9rem;border-radius:var(--map-radius);background:var(--map-overlay-bg);box-shadow:var(--map-shadow-sm);pointer-events:auto}.article-map__hud-header .breadcrumb{font-size:.7rem}.article-map__title{margin:0;color:var(--color-brand-black);font-family:var(--mn-serif);font-size:1.05rem;font-weight:500;letter-spacing:.04em;line-height:1.3}.article-map__top{position:absolute;top:var(--map-hud-gap);left:50%;z-index:5;display:grid;gap:.5rem;width:clamp(20rem,60vw,38rem);max-width:calc(100% - 2rem);transform:translate(-50%);pointer-events:none}.article-map__top>*{pointer-events:auto}.map-search{position:relative;display:grid;gap:.5rem}.map-search__bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;min-height:2.85rem;padding:.45rem .7rem;border:1px solid var(--color-brand-gray-light);border-radius:999px;background:var(--map-overlay-bg);box-shadow:var(--map-shadow-md);transition:border-color .18s ease,box-shadow .18s ease;backdrop-filter:blur(8px)}.map-search__bar:focus-within{border-color:var(--color-accent);box-shadow:var(--map-shadow-md),0 0 0 3px #66cccc47}.map-search__icon{display:grid;flex:0 0 auto;width:1.25rem;height:1.25rem;place-items:center;color:var(--color-brand-gray)}.map-search__chips{display:contents}.map-search__chips:empty{display:none}.map-search__input{flex:1 1 12rem;min-width:6rem;border:0;background:transparent;color:var(--color-brand-black);font:inherit;font-size:clamp(.92rem,1.4vw,1.02rem);padding:.25rem .3rem;outline:none}.map-search__input::placeholder{color:var(--color-brand-gray)}.map-search__clear{display:grid;flex:0 0 auto;width:1.65rem;height:1.65rem;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--color-brand-gray);cursor:pointer;font-size:1.05rem;line-height:1;transition:background .18s ease,color .18s ease}.map-search__clear:hover{background:var(--color-accent-light);color:var(--color-accent-dark)}.map-search__clear[hidden]{display:none}.map-search__chip{display:inline-flex;align-items:center;gap:.3rem;max-width:14rem;padding:.25rem .55rem;border:0;border-radius:999px;background:var(--color-accent-light);color:var(--color-accent-dark);cursor:pointer;font:inherit;font-size:.8rem;font-weight:700;line-height:1.35;transition:background .18s ease}.map-search__chip:hover{background:color-mix(in oklab,var(--color-accent-light) 80%,var(--color-accent) 20%)}.map-search__chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-search__chip-remove{flex:0 0 auto;color:var(--color-accent-dark);font-size:.95em;line-height:1}.map-suggest{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.6rem 1rem;max-height:min(60vh,28rem);padding:.85rem 1rem;overflow-y:auto;border:1px solid var(--color-brand-gray-light);border-radius:var(--map-radius);background:var(--map-overlay-bg);box-shadow:var(--map-shadow-lg);backdrop-filter:blur(8px)}.map-suggest[hidden]{display:none}.map-suggest__section h4{margin:0 0 .4rem;color:var(--color-brand-gray);font-size:.7rem;font-weight:700;letter-spacing:.12em;line-height:1.3;text-transform:uppercase}.map-suggest__list{display:grid;gap:.18rem;margin:0;padding:0;list-style:none}.map-suggest__item{display:flex;gap:.5rem;align-items:baseline;justify-content:space-between;padding:.4rem .55rem;border:0;border-radius:6px;background:transparent;color:var(--color-brand-gray-dark);cursor:pointer;font:inherit;font-size:.88rem;text-align:left;transition:background .15s ease,color .15s ease}.map-suggest__item:hover,.map-suggest__item.is-highlighted{background:var(--color-accent-light);color:var(--color-accent-dark)}.map-suggest__name{overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.map-suggest__count{flex:0 0 auto;color:var(--color-brand-gray);font-size:.75em}.map-suggest__empty{padding:.4rem .55rem;color:var(--color-brand-gray);font-size:.82rem}.map-quick{display:flex;flex-wrap:nowrap;gap:.4rem;overflow-x:auto;padding:.1rem 0;overscroll-behavior-x:contain;scrollbar-width:none}.map-quick::-webkit-scrollbar{display:none}.map-quick__chip{display:inline-flex;flex:0 0 auto;gap:.3rem;align-items:center;padding:.35rem .75rem;border:1px solid var(--color-brand-gray-light);border-radius:999px;background:var(--map-overlay-bg);color:var(--color-brand-gray-dark);cursor:pointer;font:inherit;font-size:.8rem;font-weight:600;line-height:1.3;box-shadow:var(--map-shadow-sm);transition:border-color .18s ease,background .18s ease,color .18s ease}.map-quick__chip:hover{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-accent-dark)}.map-quick__chip.is-active{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.map-quick__chip-count{color:inherit;font-size:.78em;opacity:.75}.article-map__view-toggle{position:absolute;top:calc(var(--map-hud-gap) + 4.6rem);right:var(--map-hud-gap);z-index:4;display:inline-flex;gap:.15rem;padding:.2rem;border:1px solid var(--color-brand-gray-light);border-radius:999px;background:var(--map-overlay-bg);box-shadow:var(--map-shadow-sm);backdrop-filter:blur(8px)}.map-view-toggle__button{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;min-height:2rem;padding:.35rem .75rem;border:0;border-radius:999px;background:transparent;color:var(--color-brand-gray-dark);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;line-height:1.2;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.map-view-toggle__button:hover{background:var(--color-accent-light);color:var(--color-accent-dark)}.map-view-toggle__button.is-active{background:var(--color-brand-black);color:#fff;box-shadow:var(--map-shadow-sm)}.map-view-toggle__button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.map-heatmap-legend{position:absolute;top:calc(var(--map-hud-gap) + 7.25rem);right:var(--map-hud-gap);z-index:4;display:inline-flex;gap:.45rem;align-items:center;padding:.45rem .6rem;border:1px solid var(--color-brand-gray-light);border-radius:999px;background:var(--map-overlay-bg);box-shadow:var(--map-shadow-sm);backdrop-filter:blur(8px)}.map-heatmap-legend[hidden]{display:none}.map-heatmap-legend__label{color:var(--color-brand-gray-dark);font-size:.7rem;font-weight:700;line-height:1;white-space:nowrap}.map-heatmap-legend__scale{width:5rem;height:.5rem;border-radius:999px;background:linear-gradient(90deg,#5596e66b,#5fd2ab9e,#f4d35ebf,#ef7948d1,#cd342ae0);box-shadow:inset 0 0 0 1px #ffffffa6}.map-panel{position:absolute;top:calc(var(--map-hud-gap) + 5.5rem);bottom:var(--map-hud-gap);left:var(--map-hud-gap);z-index:3;display:grid;grid-template-rows:minmax(0,1fr);width:clamp(20rem,28vw,26rem);overflow:hidden;border:1px solid var(--color-brand-gray-light);border-radius:var(--map-radius);background:var(--map-overlay-bg);box-shadow:var(--map-shadow-lg);transition:transform .24s cubic-bezier(.4,0,.2,1),opacity .2s ease;backdrop-filter:blur(8px)}.map-panel.is-collapsed{transform:translate(calc(-100% - var(--map-hud-gap) - .5rem));opacity:0;pointer-events:none}.map-panel__toggle{position:absolute;top:50%;right:-1.1rem;z-index:4;display:grid;width:2.2rem;height:2.2rem;place-items:center;border:1px solid var(--color-brand-gray-light);border-radius:999px;background:var(--map-overlay-bg);color:var(--color-brand-gray-dark);cursor:pointer;font-size:1rem;line-height:1;box-shadow:var(--map-shadow-sm);transform:translateY(-50%);transition:background .18s ease,color .18s ease,right .24s cubic-bezier(.4,0,.2,1)}.map-panel__toggle:hover{background:var(--color-accent-light);color:var(--color-accent-dark)}.map-panel.is-collapsed .map-panel__toggle{right:calc(-2.2rem - var(--map-hud-gap));transform:translate(calc(100% + var(--map-hud-gap)),-50%)}.map-panel__toggle-icon{display:inline-block;transition:transform .24s cubic-bezier(.4,0,.2,1)}.map-panel.is-collapsed .map-panel__toggle-icon{transform:rotate(180deg)}.map-panel__body{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.map-panel__summary{display:grid;gap:.25rem;padding:.85rem 1rem;border-bottom:1px solid var(--color-brand-gray-light)}.map-panel__count{margin:0;color:var(--color-brand-black);font-size:1.05rem;font-weight:800;line-height:1.3}.map-panel__status{margin:0;color:var(--color-brand-gray);font-size:.8rem;line-height:1.6}.map-panel__status.is-error{color:#b45309}.map-panel__results{display:grid;align-content:start;gap:0;min-height:0;margin:0;padding:0;overflow-y:auto;list-style:none}.map-sheet{position:absolute;left:0;right:0;bottom:0;z-index:3;display:grid;grid-template-rows:auto minmax(0,1fr);height:var(--sheet-h, 40dvh);background:var(--map-overlay-bg);box-shadow:0 -10px 30px #50463329;border-top-left-radius:18px;border-top-right-radius:18px;overflow:hidden;transition:height .28s cubic-bezier(.2,.8,.2,1);backdrop-filter:blur(8px)}.map-sheet[data-map-sheet-dragging=true]{transition:none}.map-sheet[data-map-sheet-state=min]{--sheet-h: 4rem}.map-sheet[data-map-sheet-state=mid]{--sheet-h: 42dvh}.map-sheet[data-map-sheet-state=full]{--sheet-h: calc(100dvh - var(--map-header-h) - var(--map-footer-h) - 1rem)}.map-sheet__handle{display:grid;place-items:center;height:1.6rem;border-bottom:1px solid var(--color-brand-gray-light);cursor:ns-resize;touch-action:none}.map-sheet__handle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-3px}.map-sheet__grabber{width:2.4rem;height:.28rem;border-radius:999px;background:var(--color-brand-gray-light)}.map-sheet__body{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden}.map-sheet[data-map-sheet-state=min] .map-sheet__body{display:none}@media(min-width:1024px){.map-sheet{display:none}}@media(max-width:1023px){.map-panel{display:none}}.map-result{display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:0;border-bottom:1px solid var(--color-brand-gray-light)}.map-result.is-active{background:var(--color-accent-light);box-shadow:inset 3px 0 0 var(--color-accent)}.map-result__focus{display:grid;place-items:center;width:100%;border:0;border-right:1px solid var(--color-brand-gray-light);background:transparent;color:var(--color-accent-dark);cursor:pointer;font:inherit;font-size:1rem}.map-result__focus:disabled{color:var(--color-ink-soft);cursor:not-allowed}.map-result__focus:not(:disabled):hover{background:var(--color-accent-light)}.map-result__link{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.75rem;align-items:center;min-width:0;padding:.75rem;color:inherit;text-decoration:none}.map-result__link:hover{background:var(--color-accent-light);color:inherit;text-decoration:none}.map-result__link img{width:4.5rem;aspect-ratio:4 / 3;object-fit:cover;border-radius:6px;background:var(--color-brand-gray-light)}.map-result__body{display:grid;gap:.3rem;min-width:0}.map-result__title{display:-webkit-box;overflow:hidden;color:var(--color-brand-black);font-size:.9rem;font-weight:700;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.map-result__meta{overflow:hidden;color:var(--color-brand-gray);font-size:.75rem;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.map-result--more{display:block;padding:.9rem 1rem;color:var(--color-brand-gray);font-size:.82rem;line-height:1.7}.map-empty{display:grid;gap:.8rem;padding:1rem;border-bottom:1px solid var(--color-brand-gray-light)}.map-empty p{margin:0;color:var(--color-brand-gray-dark);font-size:.9rem;line-height:1.8}.map-empty__actions{display:flex;flex-wrap:wrap;gap:.5rem}.map-empty__actions button{border:1px solid var(--color-brand-gray-light);border-radius:999px;background:#fff;color:var(--color-brand-gray-dark);cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;padding:.45rem .75rem;transition:border-color .18s ease,color .18s ease,background .18s ease}.map-empty__actions button:hover{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-accent-dark)}.map-pin{position:relative;display:grid;place-items:center;width:clamp(2.1rem,2.4vw,2.5rem);height:clamp(2.1rem,2.4vw,2.5rem);padding:0;border:2px solid #fff;border-radius:999px;background:var(--color-brand-gray-light);cursor:pointer;font:inherit;overflow:visible;box-shadow:0 4px 10px #50463347;transition:transform .14s ease,box-shadow .14s ease}.map-pin.is-grouped{border-color:#fffaf0;box-shadow:0 5px 14px #50463352,0 0 0 2px #5046332e}.map-pin:hover,.map-pin:focus-visible,.map-pin.is-active{transform:scale(1.12);box-shadow:0 8px 18px #50463352,0 0 0 3px #6cc6;outline:none;z-index:2}.map-pin__img{display:block;width:100%;height:100%;border-radius:999px;object-fit:cover}.map-pin__count{position:absolute;top:-.45rem;right:-.5rem;display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;padding:0 .36rem;border:2px solid #fff;border-radius:999px;background:var(--color-brand-black);color:#fff;font-size:.68rem;font-weight:800;line-height:1;white-space:nowrap;box-shadow:0 2px 7px #5046333d}.map-popup-host .maplibregl-popup-content{overflow:hidden;border-radius:10px;box-shadow:var(--map-shadow-lg);padding:0}.map-popup{width:16rem;background:#fff}.map-popup--group{width:min(20rem,calc(100vw - 2rem))}.map-popup img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.map-popup__body{display:grid;gap:.35rem;padding:.75rem}.map-popup__date,.map-popup p{margin:0;color:var(--color-brand-gray);font-size:.75rem;line-height:1.55}.map-popup h3{margin:0;color:var(--color-brand-black);font-size:.92rem;line-height:1.5}.map-popup a{font-size:.82rem;font-weight:700}.map-popup .map-popup__eyebrow{color:var(--color-accent-dark);font-size:.68rem;font-weight:800;letter-spacing:.14em;line-height:1.2}.map-popup .map-popup__summary{color:var(--color-brand-gray-dark)}.map-popup__list{display:grid;gap:0;margin:.15rem 0 0;padding:0;list-style:none;border-top:1px solid var(--color-brand-gray-light)}.map-popup__item{border-bottom:1px solid var(--color-brand-gray-light)}.map-popup__item-link{display:grid;gap:.15rem;padding:.55rem 0;color:inherit;text-decoration:none}.map-popup__item-link:hover{color:inherit;text-decoration:none}.map-popup__item-title{display:-webkit-box;overflow:hidden;color:var(--color-brand-black);font-size:.82rem;font-weight:700;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.map-popup__item-date{color:var(--color-brand-gray);font-size:.7rem;font-weight:600;line-height:1.2}.map-popup .map-popup__more{color:var(--color-brand-gray-dark);font-size:.72rem;line-height:1.55}@media(max-width:560px){.map-popup--group{width:min(18rem,calc(100vw - 2rem))}.map-popup--group .map-popup__body{max-height:20rem;overflow-y:auto;overscroll-behavior:contain}}@media(max-width:1023px){.article-map__top{top:calc(var(--map-hud-gap) - .25rem);width:calc(100% - 1.5rem)}.article-map__hud-header{top:auto;bottom:calc(var(--sheet-h, 42dvh) + .75rem);left:.75rem;right:auto;padding:.4rem .7rem}.article-map__hud-header .breadcrumb{display:none}.article-map__title{font-size:.9rem}.article-map__view-toggle{top:auto;right:.75rem;bottom:calc(var(--sheet-h, 42dvh) + .75rem)}.map-heatmap-legend{top:auto;right:.75rem;bottom:calc(var(--sheet-h, 42dvh) + 3.45rem)}}@media(max-width:560px){.article-map__top{top:.55rem;width:calc(100% - 1rem)}.map-search__bar{min-height:2.65rem;padding:.35rem .6rem}.map-suggest{grid-template-columns:1fr;padding:.7rem}.map-result__link{grid-template-columns:3.75rem minmax(0,1fr);padding:.65rem}.map-result__link img{width:3.75rem}.map-view-toggle__button{min-width:3rem;min-height:1.85rem;padding:.3rem .55rem;font-size:.72rem}.map-heatmap-legend{gap:.35rem;padding:.38rem .5rem}.map-heatmap-legend__label{font-size:.66rem}.map-heatmap-legend__scale{width:3.8rem}}
