.viewer3d{background:radial-gradient(120% 90% at 50% 40%, var(--surface) 0%, var(--map-bg) 70%);isolation:isolate;width:100%;height:100%;position:relative;overflow:hidden}.viewer3d__canvas{touch-action:none;position:absolute;inset:0}.viewer3d-placeholder{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.viewer3d-placeholder__stage{perspective:1400px;perspective-origin:50% 30%;position:absolute;inset:-20%;-webkit-mask-image:radial-gradient(closest-side at 50% 55%,#000 35%,#0000 100%);mask-image:radial-gradient(closest-side at 50% 55%,#000 35%,#0000 100%)}.viewer3d-placeholder__plane{background:repeating-linear-gradient(0deg,#1f252317 0 1px,#0000 1px 60px),repeating-linear-gradient(90deg,#1f252317 0 1px,#0000 1px 60px),repeating-linear-gradient(0deg,#1f252309 0 1px,#0000 1px 12px),repeating-linear-gradient(90deg,#1f252309 0 1px,#0000 1px 12px);border-radius:50%;width:900px;height:900px;margin:-450px 0 0 -450px;animation:90s linear infinite viewer3d-orbit;position:absolute;top:56%;left:50%;transform:rotateX(64deg)rotate(0)}.viewer3d-placeholder__ring{border:2px dashed #24453b59;border-radius:50%;position:absolute;inset:26%}.viewer3d-placeholder__axis{background:linear-gradient(90deg,#0000 calc(50% - 1px),#24453b40 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),linear-gradient(0deg,#0000 calc(50% - 1px),#24453b40 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px));border-radius:50%;position:absolute;inset:0}@keyframes viewer3d-orbit{to{transform:rotateX(64deg)rotate(360deg)}}.viewer3d-placeholder__pin{background:var(--surface);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;display:grid;position:relative;top:6%;box-shadow:0 0 0 8px #24453b14,0 10px 30px #141e191f}.viewer3d__note{z-index:2;border:1px dashed var(--line-strong);background:var(--glass);-webkit-backdrop-filter:blur(10px);max-width:calc(100% - 32px);color:var(--ink-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;margin:0;padding:9px 16px;font-size:.8125rem;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.viewer3d__note svg{color:var(--accent);flex:none}.viewer3d__note strong{color:var(--ink);font-weight:500}.viewer3d__note--error{color:#8a3b1f;border-style:solid}.viewer3d__spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@media (width<=860px){.viewer3d__note{padding:7px 12px;font-size:.75rem;bottom:16px}.viewer3d__note-extra{display:none}.viewer3d-placeholder__plane{width:640px;height:640px;margin:-320px 0 0 -320px}}.lightbox{z-index:100;padding:max(56px, env(safe-area-inset-top)) 72px max(24px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(6px);animation:lightbox-in var(--t-med) var(--ease);touch-action:none;background:#121614eb;place-items:center;display:grid;position:fixed;inset:0}.lightbox[data-closing]{animation:lightbox-out .22s var(--ease) forwards}@keyframes lightbox-in{0%{opacity:0}}@keyframes lightbox-out{to{opacity:0}}.lightbox__figure{width:100%;height:100%;transition:transform var(--t-med) var(--ease);animation:lightbox-figure-in var(--t-slow) var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:14px;margin:0;display:flex}.lightbox__viewport{touch-action:none;flex:1;place-items:center;width:100%;min-height:0;display:grid;overflow:hidden;container-type:size}.lightbox__viewport[data-zoomed]{cursor:grab}.lightbox__viewport[data-zoomed]:active{cursor:grabbing}.lightbox[data-closing] .lightbox__figure{transform:scale(.97)}@keyframes lightbox-figure-in{0%{transform:scale(.97)}}.lightbox__frame{width:min(100%, calc(100cqh * var(--image-aspect,1.7778)));aspect-ratio:var(--image-aspect,16 / 9);border-radius:var(--radius-sm);max-height:100%;animation:lightbox-img-in var(--t-med) var(--ease);background-position:50%;background-size:cover;position:relative;overflow:visible;box-shadow:0 30px 80px #00000073}.lightbox__frame[data-zoomed]{box-shadow:none}@keyframes lightbox-img-in{0%{opacity:.4}}.lightbox__img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity var(--t-med) var(--ease);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:inherit;transform-origin:50%;display:block}.lightbox__img[data-loaded]{opacity:1}.lightbox__caption{color:#ffffffd1;align-items:baseline;gap:16px;max-width:100%;font-size:.8125rem;display:flex}.lightbox__counter{color:#ffffff80;font-variant-numeric:tabular-nums}.lightbox__zoom{top:max(14px, env(safe-area-inset-top));background:#252a27;border:1px solid #ffffff29;border-radius:999px;display:flex;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.lightbox__zoom-btn,.lightbox__zoom-reset{color:#fff;min-width:44px;height:44px;font:inherit;cursor:pointer;background:0 0;border:0;padding:0 10px}.lightbox__zoom-btn{font-size:1.5rem}.lightbox__zoom-reset{font-variant-numeric:tabular-nums;min-width:72px;font-size:.75rem}.lightbox__zoom-btn:disabled{opacity:.3;cursor:default}.lightbox__zoom button:focus-visible{outline-offset:-3px;outline:2px solid #fff}.lightbox__btn{color:#fff;cursor:pointer;width:48px;height:48px;transition:background var(--t-fast), transform var(--t-fast);background:#ffffff14;border:1px solid #ffffff29;border-radius:50%;place-items:center;display:grid;position:absolute}.lightbox__btn:hover{background:#ffffff2e}.lightbox__btn:active{transform:scale(.95)}.lightbox__btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.lightbox__close{top:max(14px, env(safe-area-inset-top));right:14px}.lightbox__nav{margin-top:-24px;top:50%}.lightbox__nav--prev{left:14px}.lightbox__nav--next{right:14px}@media (width<=860px){.lightbox{padding:max(64px, env(safe-area-inset-top)) 0 max(88px, env(safe-area-inset-bottom))}.lightbox__frame{border-radius:0}.lightbox__caption{padding:0 16px}.lightbox__nav{top:auto;bottom:max(20px, env(safe-area-inset-bottom));margin-top:0}.lightbox__nav--prev{left:calc(50% - 60px)}.lightbox__nav--next{right:calc(50% - 60px)}}.image-placeholder{border-radius:var(--radius-sm);min-height:96px;color:var(--ink-faint);background:repeating-linear-gradient(135deg, transparent 0 9px, var(--hatch) 9px 10px), var(--surface-muted);border:1px dashed var(--line-strong);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;display:flex;position:relative;overflow:hidden}.image-placeholder__label{letter-spacing:.02em;color:var(--ink-muted);font-size:.75rem;font-weight:500}.image-placeholder__caption{color:var(--ink-faint);font-size:.6875rem}.render-gallery{gap:8px;margin:0;padding:0;list-style:none;display:grid}.render-gallery[data-layout=grid]{grid-template-columns:repeat(2,1fr)}.render-gallery[data-layout=grid]>:first-child,.render-gallery[data-layout=grid]>:last-child:nth-child(2){grid-column:1/-1}.render-gallery[data-layout=strip]{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:168px;grid-auto-flow:column;margin:0 -16px;padding:0 16px 2px;scroll-padding:0 16px;overflow-x:auto}.render-gallery[data-layout=strip]::-webkit-scrollbar{display:none}.render-gallery__cell{scroll-snap-align:start;min-width:0}.render-gallery__item{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--surface-muted);cursor:zoom-in;border:0;width:100%;max-width:100%;padding:0;display:block;position:relative;overflow:hidden}.render-gallery__item img{object-fit:contain;width:100%;height:100%;transition:transform var(--t-slow) var(--ease);display:block}.render-gallery__item:hover img{transform:scale(1.035)}.render-gallery__zoom{background:var(--glass);width:30px;height:30px;color:var(--ink);box-shadow:var(--shadow-sm);opacity:0;transition:opacity var(--t-fast) var(--ease), transform var(--t-med) var(--ease);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:8px;right:8px;transform:translateY(4px)}.render-gallery__item:hover .render-gallery__zoom,.render-gallery__item:focus-visible .render-gallery__zoom{opacity:1;transform:none}@media (hover:none){.render-gallery__zoom{opacity:1;transform:none}}.sector-detail{z-index:30;background:var(--bg);animation:detail-in .28s var(--ease) .14s both;grid-template-columns:minmax(0,1fr) clamp(340px,30%,440px);display:grid;position:absolute;inset:0}.sector-detail[data-leaving]{animation:detail-out .2s var(--ease) both;pointer-events:none}@keyframes detail-in{0%{opacity:0}}@keyframes detail-out{to{opacity:0}}.sector-detail__stage{min-width:0;min-height:0;position:relative;overflow:hidden}.sector-detail__stage>.viewer3d{animation:detail-stage-in .64s var(--ease) .1s both}@keyframes detail-stage-in{0%{transform:scale(1.06)}}.sector-detail__topbar{z-index:3;pointer-events:none;align-items:center;gap:16px;display:flex;position:absolute;top:20px;left:24px;right:24px}.sector-detail__topbar>*{pointer-events:auto}.sector-detail__back{font-weight:500}.sector-detail__crumb{color:var(--ink-muted);align-items:center;gap:6px;margin:0;font-size:.8125rem;display:flex}.sector-detail__crumb span:last-child{color:var(--ink)}.sector-detail__info{overscroll-behavior:contain;background:var(--surface);border-left:1px solid var(--line);min-height:0;animation:detail-info-in .52s var(--ease) 60ms both;flex-direction:column;padding:28px 24px 24px;display:flex;overflow-y:auto}@keyframes detail-info-in{0%{opacity:0;transform:translate(16px)}}.sector-detail__header{align-items:center;gap:14px;display:flex}.sector-detail__icon{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.sector-detail__heading{min-width:0}.sector-detail__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 4px;font-size:.6875rem;font-weight:500}.sector-detail__title{letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:1.75rem;font-weight:500;line-height:1.1}.sector-detail__title:focus{outline:none}.sector-detail__meta{align-items:center;gap:10px;margin-top:16px;display:flex}.sector-detail__code{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.75rem}.sector-detail__description{max-width:60ch;color:var(--ink-soft);margin:14px 0 0;font-size:.9375rem;line-height:1.65}.sector-detail__more{display:none}.sector-detail__section{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;margin:28px 0 12px;padding-top:18px;display:flex}.sector-detail__label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0;font-size:.6875rem;font-weight:500}.sector-detail__count{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.75rem}@media (width<=1100px) and (width>=861px){.sector-detail{grid-template-columns:minmax(0,1fr) 340px}.sector-detail__crumb{display:none}}@media (width<=860px){.sector-detail{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr}.sector-detail__topbar{top:12px;left:12px;right:12px}.map-btn.sector-detail__back{border-radius:999px;height:44px;padding:0 16px 0 12px}.sector-detail__crumb{display:none}.sector-detail__info{z-index:4;max-height:62dvh;padding:16px 16px calc(14px + env(safe-area-inset-bottom));border-left:0;border-top:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-top:-18px;animation-name:detail-info-up;position:relative;box-shadow:0 -10px 30px #141e1914}@keyframes detail-info-up{0%{opacity:0;transform:translateY(24px)}}.sector-detail__icon{width:40px;height:40px}.sector-detail__title{font-size:1.3125rem}.sector-detail__meta{margin-top:8px}.sector-detail__description{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:.875rem;line-height:1.55;display:-webkit-box;overflow:hidden}.sector-detail__info[data-expanded] .sector-detail__description{display:block}.sector-detail__more{min-height:32px;font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:4px;margin:0 0 0 -4px;padding:0 4px;font-size:.8125rem;font-weight:500;display:inline-flex}.sector-detail__more svg{transition:transform var(--t-med) var(--ease)}.sector-detail__more[aria-expanded=true] svg{transform:rotate(180deg)}.sector-detail__section{margin:6px 0 8px;padding-top:10px}.sector-detail .viewer3d__note{bottom:32px}}.header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--line);z-index:20;grid-template-columns:1fr auto;align-items:center;gap:24px;padding:0 28px;display:grid;position:relative}.header__brand{align-items:center;gap:16px;min-width:0;display:flex}.header__logo{box-sizing:content-box;border-right:1px solid var(--line);flex:none;width:34px;height:34px;padding-right:16px}.header__titles{min-width:0}.header__title{letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.25rem;font-weight:500;overflow:hidden}.header__meta{color:var(--ink-muted);white-space:nowrap;gap:8px;margin:2px 0 0;font-size:.8125rem;display:flex;overflow:hidden}.header__aside{justify-content:flex-end;align-items:center;gap:20px;display:flex}.header__motto{color:var(--ink-muted);text-align:right;flex-direction:column;margin:0;font-size:.75rem;line-height:1.5;display:flex}.header__avatar{background:var(--surface-muted);border:1px solid var(--line);width:36px;height:36px;color:var(--ink-muted);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:500;display:grid}@media (width<=1180px){.header__motto,.header__meta-extra{display:none}}@media (width<=860px){.header{height:auto;padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));gap:12px}.header__logo{width:28px;height:28px;padding-right:12px}.header__brand{gap:12px}.header__title{font-size:1.0625rem}.header__meta{font-size:.75rem}.header__avatar{width:32px;height:32px}}.map-btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--glass);-webkit-backdrop-filter:blur(10px);height:44px;box-shadow:var(--shadow-sm);font:inherit;color:var(--ink);cursor:pointer;transition:background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.8125rem;display:inline-flex}.map-btn:hover{background:var(--surface);box-shadow:var(--shadow-md)}.map-btn:active{transform:translateY(1px)}.map-btn[aria-disabled=true]{color:var(--ink-muted);cursor:default}.map-btn[aria-disabled=true]:hover{background:var(--glass);box-shadow:var(--shadow-sm)}.map-btn--icon{width:44px;padding:0}.map-toolbar{gap:8px;display:flex}.map-controls{flex-direction:column;gap:10px;display:flex}.map-controls__stack{border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.map-controls__stack .map-btn{box-shadow:none}.map-controls__stack .map-btn:first-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.map-controls__stack .map-btn:last-child{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.compass{flex:none;width:44px;height:44px}.compass svg{width:100%;height:100%;transition:transform var(--t-slow) var(--ease);overflow:visible}.compass circle{fill:var(--glass);stroke:var(--ink);stroke-width:1.2px}.compass__needle{fill:var(--ink)}.compass text{fill:var(--ink);font-size:8px;font-weight:600}@media (width<=860px){.map-btn{height:44px;padding:0 12px}.map-btn--icon{width:44px;padding:0}.map-toolbar .map-btn span{display:none}.map-toolbar .map-btn{width:44px;padding:0}.compass{width:38px;height:38px}}.map-btn[aria-disabled=true]{opacity:.55}.map-legend{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--glass);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);color:var(--ink-soft);align-self:flex-start;padding:4px 14px;font-size:.75rem}.map-legend__summary{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:.6875rem;font-weight:500;list-style:none;display:flex}.map-legend__summary::-webkit-details-marker{display:none}.map-legend__summary svg{transition:transform var(--t-fast)}.map-legend:not([open]) .map-legend__summary svg{transform:rotate(-90deg)}.map-legend__list{gap:7px;margin:2px 0 8px;padding:0;list-style:none;display:grid}.map-legend__item{align-items:center;gap:10px;display:flex}.map-legend__swatch{flex:none;width:18px}.map-legend__swatch--fill{border-radius:3px;height:12px}.map-legend__swatch--line{border-radius:2px;height:4px}.map-legend__swatch--marker{background:radial-gradient(circle, var(--ink-muted) 0 3.5px, var(--surface) 4px);border-radius:50%;width:14px;height:14px;margin:0 2px;box-shadow:0 0 0 1px #1f25232e,0 2px 6px #141e192e}@media (width<=860px){.map-legend{padding:2px 12px}.map-legend__summary{min-height:40px}}.sector-panel{z-index:10;width:var(--panel-w);background:var(--surface);border-left:1px solid var(--line);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--t-med) var(--ease), transform var(--t-slow) var(--ease), visibility 0s linear var(--t-slow);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(28px);box-shadow:-18px 0 48px #141e191a}.sector-panel[data-open]{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--t-med) var(--ease), transform var(--t-slow) var(--ease);transform:none}.sector-panel[data-pinned]{border-color:var(--line-strong)}.sector-panel__inner{overscroll-behavior:contain;min-height:0;animation:panel-content-in var(--t-med) var(--ease);flex-direction:column;flex:1;padding:24px 24px 20px;display:flex;position:relative;overflow-y:auto}@keyframes panel-content-in{0%{opacity:0;transform:translateY(6px)}}.sector-panel__handle{display:none}.sector-panel__close{width:36px;height:36px;color:var(--ink-muted);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:16px;right:16px}.sector-panel__close:hover{background:var(--surface-muted);color:var(--ink)}.sector-panel__header{align-items:center;gap:14px;padding-right:36px;display:flex}.sector-panel__icon{background:var(--accent-soft);width:46px;height:46px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.sector-panel__heading{min-width:0}.sector-panel__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 3px;font-size:.6875rem;font-weight:500}.sector-panel__title{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:1.375rem;font-weight:500;line-height:1.15}.sector-panel__meta{align-items:center;gap:10px;margin-top:14px;display:flex}.sector-panel__code{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.75rem}.sector-panel__description{color:var(--ink-soft);margin:10px 0 0;font-size:.875rem;line-height:1.6}.sector-panel__gallery{gap:10px;margin-top:18px;display:grid}.sector-panel__media{aspect-ratio:16/9;object-fit:contain;border-radius:var(--radius-sm);width:100%;max-width:100%;height:auto;min-height:0;display:block}.sector-panel__render{border-radius:var(--radius-sm);background:var(--surface-muted);min-width:0;color:var(--ink-soft);text-align:left;cursor:zoom-in;border:0;padding:0;display:block;overflow:hidden}.sector-panel__render-caption{padding:7px 10px;font-size:.6875rem;display:block}.sector-panel__hint{color:var(--ink-faint);text-align:center;margin:auto 0 0;padding-top:16px;font-size:.6875rem}@media (hover:none){.sector-panel__hint{display:none}}@media (width<=860px){.sector-panel{border-left:0;border-top:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:auto;max-height:62%;inset:auto 0 0;transform:translateY(40px);box-shadow:0 -10px 32px #141e191f}.sector-panel__inner{flex:initial;padding:22px 16px calc(14px + env(safe-area-inset-bottom))}.sector-panel__grab{touch-action:none;margin:-22px -16px 0;padding:22px 16px 0}.sector-panel__handle{background:var(--line-strong);border-radius:4px;width:40px;height:4px;margin-left:-20px;display:block;position:absolute;top:8px;left:50%}.sector-panel__close{width:44px;height:44px;top:14px;right:8px}.sector-panel__icon{width:40px;height:40px}.sector-panel__title{font-size:1.1875rem}.sector-panel__meta{margin-top:10px}.sector-panel__description{font-size:.8125rem;line-height:1.55}.sector-panel__gallery{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}}.view-switch{--option-w:84px;border-radius:var(--radius-md);background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:var(--shadow-sm);padding:4px;display:flex;position:relative}.view-switch__indicator{width:var(--option-w);border-radius:calc(var(--radius-md) - 4px);background:var(--surface);box-shadow:0 1px 2px #141e1914, 0 0 0 1px var(--line);transform:translateX(calc(var(--active-index) * var(--option-w)));transition:transform var(--t-med) var(--ease);position:absolute;top:4px;bottom:4px;left:4px}.view-switch__option{width:var(--option-w);font:inherit;color:var(--ink-faint);cursor:pointer;transition:color var(--t-fast);background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 7px;font-size:.6875rem;display:flex;position:relative}.view-switch__option:hover,.view-switch__option[aria-checked=true]{color:var(--ink)}.view-switch__option svg{transition:transform var(--t-med) var(--ease)}.view-switch__option[aria-checked=true] svg{color:var(--accent);transform:translateY(-1px)}@media (width<=860px){.view-switch{--option-w:74px}.view-switch__option{white-space:nowrap;padding:6px 2px 5px;font-size:.625rem}}.map-stage{background:var(--map-view-bg,var(--map-bg));min-height:0;transition:background-color var(--t-slow) var(--ease);isolation:isolate;flex:1;position:relative;overflow:hidden}.map-viewer{cursor:grab;touch-action:none;background:0 0;position:absolute;inset:0}.map-viewer:active{cursor:grabbing}.map-viewer:focus-visible{outline-offset:-3px}.map-marker-anchor{width:36px;height:36px;transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease);transition-delay:calc(var(--i,0) * 45ms)}.map-marker-anchor[data-hidden]{opacity:0;pointer-events:none;transition-delay:0s;transform:translateY(6px)scale(.85)}.map-marker{width:36px;height:36px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.map-marker:focus-visible{outline:none}.map-marker__dot{background:var(--surface);width:18px;height:18px;transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);border-radius:50%;position:relative;box-shadow:0 0 0 1px #1f25232e,0 2px 6px #141e192e}.map-marker__dot:before{content:"";background:var(--ink-muted);transition:inset var(--t-med) var(--ease), background var(--t-med) var(--ease);border-radius:50%;position:absolute;inset:5px}.map-marker__dot:after{content:"";border:1.5px solid var(--accent);opacity:0;border-radius:50%;position:absolute;inset:-1px}.map-marker[data-hover] .map-marker__dot:after,.map-marker:focus-visible .map-marker__dot:after{animation:marker-ripple .65s var(--ease)}@keyframes marker-ripple{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}.map-marker[data-hover] .map-marker__dot,.map-marker:focus-visible .map-marker__dot,.map-marker[data-active] .map-marker__dot{transform:scale(1.18);box-shadow:0 0 0 1px #24453b59,0 4px 12px #141e1938}.map-marker[data-hover] .map-marker__dot:before,.map-marker:focus-visible .map-marker__dot:before,.map-marker[data-active] .map-marker__dot:before{background:var(--accent);inset:4px}.map-marker[data-pinned] .map-marker__dot{background:var(--accent);box-shadow:0 0 0 4px #24453b2e,0 4px 12px #141e1938}.map-marker[data-pinned] .map-marker__dot:before{background:var(--surface);inset:6px}.map-marker:focus-visible .map-marker__dot{outline:2px solid var(--accent);outline-offset:3px}.map-marker__label{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-fast) var(--ease), transform var(--t-med) var(--ease);border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:500;position:absolute;top:50%;left:32px;transform:translate(-6px,-50%)}.map-marker[data-hover] .map-marker__label,.map-marker:focus-visible .map-marker__label,.map-marker[data-active] .map-marker__label{opacity:1;transform:translateY(-50%)}.map-halo{opacity:0;pointer-events:none;transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease);background:radial-gradient(closest-side,#24453b38,#24453b1a 60%,#24453b00 100%);border-radius:50%;transform:scale(.85)}.map-halo[data-hover],.map-halo[data-active]{opacity:1;transform:none}.map-stage__overlay{z-index:5;transition:right var(--t-slow) var(--ease), opacity var(--t-med);gap:12px;display:flex;position:absolute}.map-stage__overlay--top-left{align-items:flex-start;top:20px;left:24px}.map-stage__overlay--top-right{top:20px;right:24px}.map-stage__column{flex-direction:column;gap:8px;display:flex}.map-stage__overlay--bottom-right{bottom:24px;right:24px}.map-stage[data-panel-open] .map-stage__overlay--top-right,.map-stage[data-panel-open] .map-stage__overlay--bottom-right{right:calc(var(--panel-w) + 24px)}.map-stage[data-panel-open] .map-stage__notice,.map-stage[data-panel-open] .map-stage__hint{left:calc(50% - var(--panel-w) / 2)}.map-stage__notice{z-index:4;background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px dashed var(--line-strong);color:var(--ink-muted);white-space:nowrap;pointer-events:none;transition:left var(--t-slow) var(--ease);animation:fade-in var(--t-med) var(--ease);border-radius:999px;align-items:center;gap:10px;padding:6px 14px 6px 6px;font-size:.75rem;display:flex;position:absolute;top:92px;left:50%;transform:translate(-50%)}.map-stage__notice--error{color:#8a3b1f;white-space:normal;text-align:center;background:#fbf1ed;border-style:solid;border-color:#e3c4b8;padding:8px 14px}.map-stage__spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;margin-left:6px;animation:.8s linear infinite spin}.map-stage__hint{z-index:4;color:#fff;white-space:nowrap;pointer-events:none;transition:opacity var(--t-slow) var(--ease), left var(--t-slow) var(--ease);background:#1f2523c7;border-radius:999px;margin:0;padding:8px 14px;font-size:.75rem;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.map-stage__hint[data-hidden]{opacity:0}.map-stage__hint--touch{display:none}.map-stage__hint--calibrate{background:var(--accent);font-variant-numeric:tabular-nums}@media (hover:none) and (pointer:coarse){.map-stage__hint--mouse{display:none}.map-stage__hint--touch{display:inline}}@media (width<=860px){.map-stage__overlay--top-left{gap:8px;top:12px;left:12px}.map-stage__overlay--top-right{top:12px;right:12px}.map-stage__overlay--bottom-right{bottom:16px;right:12px}.map-stage[data-panel-open] .map-stage__overlay--top-right,.map-stage[data-panel-open] .map-stage__overlay--bottom-right{right:12px}.map-stage[data-panel-open] .map-stage__overlay--bottom-right,.map-stage[data-panel-open] .map-stage__hint{opacity:0;pointer-events:none}.map-stage__notice,.map-stage[data-panel-open] .map-stage__notice{gap:8px;max-width:calc(100% - 24px);padding:4px 10px 4px 4px;font-size:.6875rem;top:74px;left:12px;transform:none}.map-stage__notice-extra{display:none}.map-marker-anchor,.map-marker{width:44px;height:44px}.map-marker__label{left:36px}.map-stage__hint,.map-stage[data-panel-open] .map-stage__hint{white-space:normal;text-align:center;width:max-content;max-width:calc(100% - 24px);font-size:.6875rem;top:112px;bottom:auto;left:50%}}@media (width<=440px){.map-stage__overlay--top-right{top:80px}.map-stage__notice,.map-stage[data-panel-open] .map-stage__notice,.map-stage__hint,.map-stage[data-panel-open] .map-stage__hint{top:134px}}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app__main{flex:1;min-height:0;display:flex;position:relative}.app__map{transition:opacity .28s var(--ease) .16s, transform .48s var(--ease), visibility 0s;display:flex;position:absolute;inset:0}.app__map[data-covered]{opacity:0;visibility:hidden;transition:opacity .18s var(--ease), transform .48s var(--ease), visibility 0s linear .48s;transform:scale(1.04)}.app__toast{z-index:50;left:50%;top:calc(var(--header-h) + 16px);border-radius:var(--radius-sm);background:var(--ink);color:#fff;box-shadow:var(--shadow-md);animation:toast-in var(--t-med) var(--ease);pointer-events:none;padding:10px 16px;font-size:.8125rem;position:fixed;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}}@media (width<=1100px){.app__toast{top:116px}}:root{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg:#f4f3ef;--surface:#fff;--surface-muted:#f1f0ec;--glass:#ffffffdb;--ink:#1f2523;--ink-soft:#3d4441;--ink-muted:#6c7370;--ink-faint:#9aa09c;--line:#e4e2dc;--line-strong:#cfccc4;--hatch:#1f25230f;--accent:#24453b;--accent-hover:#1b372f;--accent-soft:#e3ebe6;--map-bg:#ebe9e3;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #141e190f, 0 2px 8px #141e190d;--shadow-md:0 2px 4px #141e190f, 0 8px 24px #141e1914;--ease:cubic-bezier(.22, .61, .36, 1);--t-fast:.15s;--t-med:.28s;--t-slow:.48s;--header-h:80px;--panel-w:420px}@media (width<=1180px){:root{--panel-w:360px}}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s;--t-med:0s;--t-slow:0s}*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.4}button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img{max-width:100%}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);height:48px;font:inherit;color:var(--ink);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:.9375rem;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--line-strong)}.btn:active{transform:translateY(1px)}.btn--primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn--primary:hover{border-color:var(--accent-hover);background:var(--accent-hover)}.btn--primary svg{transition:transform var(--t-med) var(--ease)}.btn--primary:hover svg{transform:translate(3px)}.btn--icon{width:48px;padding:0}.provisional-badge{color:#8a5a12;letter-spacing:.02em;white-space:nowrap;background:#f6ecd9;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:.6875rem;font-weight:500;display:inline-flex}.provisional-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}@keyframes fade-in{0%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}
