.main-map-root{--mm-turn:1100ms;--mm-ease:cubic-bezier(0.62,0.04,0.26,1);--mm-ink:var(--town-map-ink);--mm-paper:var(--town-map-paper);--mm-edge:clamp(16px,2.2vw,40px);--mm-foot:clamp(14px,2.6vh,30px);--mm-w:min(100vw,160vh);color:var(--mm-paper);background:var(--town-map-stage)}.main-map-root,.mm-stage{position:absolute;inset:0;overflow:hidden}.mm-stage{isolation:isolate;--mm-glow:var(--town-map-glow);background:radial-gradient(125% 105% at 50% 46%,transparent 52%,var(--town-map-vignette) 100%),radial-gradient(70% 30% at 50% 80%,var(--town-map-floor),transparent 74%),radial-gradient(74% 80% at 50% 47%,color-mix(in srgb,var(--mm-glow) 45%,transparent),transparent 78%),linear-gradient(color-mix(in srgb,var(--town-map-stage) 30%,transparent),color-mix(in srgb,var(--town-map-stage) 58%,transparent)),var(--town-map-stage) url(/brand/foundation-backdrop.jpg) center /cover no-repeat;container-type:size;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;cursor:grab;outline:none}.mm-stage[data-dragging]{cursor:grabbing}.mm-stage[data-phase=evening]{--mm-glow:var(--town-map-glow-evening)}.mm-stage[data-phase=night]{--mm-glow:var(--town-map-glow-night)}.mm-world{position:absolute;left:50%;top:50%;width:min(100cqw,160cqh);aspect-ratio:1600/1000;translate:-50% -50%;transform-origin:0 0;transform:translate(var(--mm-tx,0),var(--mm-ty,0)) scale(var(--mm-z,1));container-type:inline-size;pointer-events:none}.mm-world--base{will-change:transform}.mm-world--night{z-index:1;mix-blend-mode:multiply}.mm-world--fx{z-index:1}.mm-world--top{z-index:4;--mm-main-d:clamp(54px,2.9375cqw,84px);--mm-brand-w:clamp(22px,1.4375cqw,40px);--mm-dot:clamp(16px,1.3125cqw,30px);--mm-stem:clamp(14px,1.25cqw,30px);--mm-label:max(12px,calc(var(--mm-brand-w) * 0.56))}.mm-stage[data-flying] .mm-world{transition:transform .95s cubic-bezier(.7,0,.2,1)}.mm-defs{position:absolute}.mm-picture{display:contents}.mm-view{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;-webkit-user-drag:none;filter:saturate(calc(1 - var(--gloom, 0) * .55)) brightness(calc(1 - var(--gloom, 0) * .3)) drop-shadow(0 1.1cqw 1.3cqw var(--town-map-contact));transition:filter 1s ease}.mm-view--video{object-fit:contain}.mm-view--video[data-waiting]{visibility:hidden}.mm-video-source{position:absolute;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none}.mm-view--in{animation:mm-turn-in var(--mm-turn) var(--mm-ease) both}.mm-view--out{animation:mm-turn-out var(--mm-turn) var(--mm-ease) both}@keyframes mm-turn-in{0%{opacity:.4;transform:translateX(calc(var(--mm-dir, 1) * 6%)) scaleX(.92)}to{opacity:1;transform:none}}@keyframes mm-turn-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateX(calc(var(--mm-dir, 1) * -6%)) scaleX(.92)}}.mm-fx{position:absolute;inset:0;width:100%;height:100%;opacity:1;transition:opacity .45s ease}.mm-fx[data-hidden]{opacity:0;transition-duration:.22s}.mm-stage .town-rain{opacity:.5}.mm-stage .town-rain__sheet--far{display:none}.mm-stage .city-gloom{opacity:.5}.mm-stage .city-mist{opacity:.4}.mm-haze{z-index:3;pointer-events:none;background:radial-gradient(120% 90% at 50% 46%,var(--town-map-haze),var(--town-map-haze-mid) 60%,var(--town-map-haze-edge))}.mm-haze,.mm-zones{position:absolute;inset:0}.mm-zones{width:100%;height:100%;overflow:visible}.mm-zone,.mm-zone-hit,.mm-zone-spot{outline:none;cursor:pointer}.mm-zone__hit{fill:transparent;stroke:none;pointer-events:all}.mm-zone__glow{fill:url(#mm-zone-glow);stroke:rgba(255,255,255,.16);stroke-width:10;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none;filter:blur(10px);transition:opacity .4s ease}.mm-zone[data-active] .mm-zone__glow{opacity:1}.mm-zone:focus-visible .mm-zone__glow{opacity:1;stroke:var(--mm-paper);stroke-width:3;stroke-dasharray:10 6;filter:drop-shadow(0 0 4px rgba(0,0,0,.9))}.mm-chip{position:absolute;z-index:6000;translate:-50% -100%;display:inline-flex;align-items:center;gap:.7em;padding:.42em .95em;border-radius:999px;border:1px solid var(--town-map-glass-line);background:var(--town-map-glass-hi);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);color:var(--mm-paper);font-family:var(--font-game),var(--font-sans);font-size:clamp(12.5px,1.02cqw,16px);font-weight:600;line-height:1.25;white-space:nowrap;pointer-events:none;box-shadow:var(--town-map-shadow);transform:scale(var(--mm-pin-scale,1));transform-origin:50% 100%;animation:mm-pop-in .2s ease both}.mm-chip[data-rich]{padding:.5em .95em .55em .55em;border-radius:16px}.mm-chip[data-rich]:not(:has(.mm-chip__thumb)){padding-left:.95em}.mm-chip__thumb{flex:none;width:56px;height:56px;border-radius:10px;object-fit:cover;background:rgba(255,255,255,.14)}.mm-chip__text{display:flex;flex-direction:column;gap:.2em;min-width:0}.mm-chip__title{gap:.55em}.mm-chip__scene,.mm-chip__title{display:inline-flex;align-items:center}.mm-chip__scene{gap:.42em;padding-left:.6em;border-left:1px solid rgba(255,255,255,.28);color:var(--town-map-live-ink)}.mm-chip__scene i{width:.55em;height:.55em;border-radius:50%;background:var(--town-map-live);box-shadow:0 0 0 0 var(--town-map-live-ring);animation:mm-live 1.6s ease-out infinite}.mm-chip__caption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;max-width:19em;color:rgba(255,255,255,.84);font-family:var(--font-sans);font-size:max(12px,.86em);font-weight:400;line-height:1.42;white-space:normal}@keyframes mm-pop-in{0%{opacity:.35;translate:-50% calc(-100% + 6px)}}@keyframes mm-live{to{box-shadow:0 0 0 .6em transparent}}.mm-pins{inset:0}.mm-pin,.mm-pins{position:absolute}.mm-pin{pointer-events:none;color:inherit;text-decoration:none;font-family:var(--font-game),var(--font-sans);outline:none;-webkit-tap-highlight-color:transparent;transform:translate(-50%,-100%) scale(var(--mm-pin-scale,1));transform-origin:50% 100%}.mm-stage[data-flying] .mm-chip,.mm-stage[data-flying] .mm-pin{transition:transform .95s cubic-bezier(.7,0,.2,1)}.mm-pin__pad{position:absolute;left:50%;z-index:2;width:44px;height:44px;border-radius:50%;translate:-50% -50%;pointer-events:auto;cursor:pointer}.mm-pin--main{width:var(--mm-main-d);height:calc(var(--mm-main-d) * 59 / 47)}.mm-pin--main .mm-pin__body{position:absolute;inset:0;transform-origin:50% 100%;transition:transform .18s ease}.mm-pin__shape{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 2px rgba(10,16,28,.35)) drop-shadow(0 7px 9px rgba(10,16,28,.3))}.mm-pin__marker{fill:var(--pin-color);stroke:var(--town-map-paper);stroke-width:6;stroke-linejoin:round;pointer-events:auto;cursor:pointer}.mm-pin__gloss{fill:url(#mm-pin-gloss);pointer-events:none}.mm-pin__disc{fill:var(--town-map-paper);pointer-events:none}.mm-pin--main:not([data-look=plain]) .mm-pin__gloss{display:none}.mm-pin--main[data-look=news] .mm-pin__marker{fill:url(#mm-pin-news)}.mm-pin--main[data-look=news] .mm-pin__disc{fill:url(#mm-pin-news-disc)}.mm-pin--main[data-look=shop] .mm-pin__marker{fill:url(#mm-pin-shop)}.mm-pin--main[data-look=shop] .mm-pin__disc{fill:var(--town-pin-shop-disc)}.mm-pin--main[data-look=foundation] .mm-pin__marker{fill:url(#mm-pin-foundation)}.mm-pin__face{position:absolute;left:50%;top:calc(var(--mm-main-d) * .505);width:calc(var(--mm-main-d) * .69);translate:-50% -50%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;font-size:max(12px,calc(var(--mm-main-d) * .225 * var(--fit, 1)));line-height:1.04;text-align:center;white-space:nowrap;color:var(--mm-ink);pointer-events:none}.mm-pin__kicker{font-size:max(12px,.92em);font-weight:500}.mm-pin__main{font-weight:700;letter-spacing:.01em}.mm-pin__icon{width:1.35em;height:1.35em;margin-bottom:.04em;stroke-width:2.2}.mm-pin--main[data-look=news] .mm-pin__face{color:var(--mm-paper)}.mm-pin--main:focus-visible .mm-pin__body,.mm-pin--main:hover .mm-pin__body,.mm-pin--main[data-active] .mm-pin__body{transform:translateY(-3px) scale(1.07)}.mm-pin--brand{width:var(--mm-brand-w);height:calc(var(--mm-brand-w) * 34 / 23)}.mm-pin__drop{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 2px rgba(10,16,28,.4));transform-origin:50% 100%;transition:transform .18s ease}.mm-pin__drop path{fill:var(--pin-color);stroke:var(--mm-paper);stroke-width:4;stroke-linejoin:round;pointer-events:auto;cursor:pointer}.mm-pin__drop circle{fill:var(--mm-paper);pointer-events:none}.mm-pin__tag{position:absolute;left:50%;top:0;box-sizing:border-box;height:var(--mm-brand-w);display:flex;align-items:center;padding:0 .78em 0 calc(var(--mm-brand-w) * .5 + .36em);border:2px solid var(--mm-paper);border-radius:.42em;background:var(--pin-color);color:var(--pin-ink);font-size:var(--mm-label);font-weight:600;line-height:1.3;white-space:nowrap;box-shadow:0 3px 8px -2px rgba(10,16,28,.45);pointer-events:auto;cursor:pointer;transition:transform .18s ease}.mm-pin--brand[data-side=left] .mm-pin__tag{left:auto;right:50%;padding:0 calc(var(--mm-brand-w) * .5 + .36em) 0 .78em}.mm-pin--brand[data-collapsed] .mm-pin__tag{animation:mm-label-in .18s ease both}.mm-pin--brand[data-collapsed][data-side=left] .mm-pin__tag{animation-name:mm-label-in-left}.mm-pin--brand .mm-pin__pad{top:calc(var(--mm-brand-w) * .5)}.mm-pin--brand:focus-visible .mm-pin__drop,.mm-pin--brand:hover .mm-pin__drop,.mm-pin--brand[data-active] .mm-pin__drop{transform:translateY(-2px) scale(1.1)}.mm-pin--brand:focus-visible .mm-pin__tag,.mm-pin--brand:hover .mm-pin__tag,.mm-pin--brand[data-active] .mm-pin__tag{transform:translateY(-2px)}.mm-pin--news{width:var(--mm-dot);height:calc(var(--mm-dot) + var(--mm-stem))}.mm-pin__dot{left:0;top:0;z-index:1;width:var(--mm-dot);height:var(--mm-dot);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--pin-color) 76%,white),var(--pin-color) 58%);box-shadow:0 0 0 1.5px rgba(255,255,255,.92),0 2px 5px rgba(10,16,28,.45);transition:transform .18s ease}.mm-pin__dot,.mm-pin__dot:after{position:absolute;border-radius:50%}.mm-pin__dot:after{content:"";inset:0;box-shadow:0 0 0 0 color-mix(in srgb,var(--pin-color) 55%,transparent);animation:mm-ping 2.6s ease-out infinite}@keyframes mm-ping{70%,to{box-shadow:0 0 0 calc(var(--mm-dot) * .55) transparent}}.mm-pin__stem{position:absolute;left:50%;top:calc(var(--mm-dot) - 1px);width:clamp(1.5px,.14cqw,2.5px);height:calc(var(--mm-stem) + 1px);translate:-50% 0;background:var(--pin-color);border-radius:0 0 2px 2px;box-shadow:0 0 0 .75px rgba(255,255,255,.7)}.mm-pin--news .mm-pin__pad{top:calc(var(--mm-dot) * .5)}.mm-pin--news:focus-visible .mm-pin__dot,.mm-pin--news:hover .mm-pin__dot,.mm-pin--news[data-active] .mm-pin__dot,.mm-pin--news[data-open] .mm-pin__dot{transform:scale(1.12)}.mm-pin__label{position:absolute;left:-3px;top:-3px;box-sizing:border-box;height:calc(var(--mm-dot) + 6px);display:flex;align-items:center;padding:0 .9em 0 calc(var(--mm-dot) + 3px + .42em);border-radius:999px;background:color-mix(in srgb,var(--mm-paper) 94%,transparent);-webkit-backdrop-filter:blur(6px) saturate(1.2);backdrop-filter:blur(6px) saturate(1.2);color:var(--mm-ink);font-size:var(--mm-label);font-weight:700;line-height:1.3;white-space:nowrap;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 6px 16px -6px rgba(10,16,28,.5);pointer-events:auto;cursor:pointer;animation:mm-label-in .18s ease both}.mm-pin--news[data-side=left] .mm-pin__label{left:auto;right:-3px;padding:0 calc(var(--mm-dot) + 3px + .42em) 0 .9em;animation-name:mm-label-in-left}@keyframes mm-label-in{0%{opacity:.35;translate:-6px 0}}@keyframes mm-label-in-left{0%{opacity:.35;translate:6px 0}}.mm-pin:focus-visible:before{content:"";position:absolute;inset:-4px;border:2.5px solid var(--mm-paper);border-radius:14px;box-shadow:0 0 0 2px var(--mm-ink);pointer-events:none}.mm-leds{z-index:0;--mm-u:calc(100cqw / 1600)}.mm-led,.mm-leds{position:absolute;inset:0}.mm-led__face,.mm-led__roof{position:absolute;transform-origin:0 0}.mm-led__face{width:calc(var(--led-len) * var(--mm-u));height:calc(var(--led-h) * var(--mm-u));overflow:hidden;background:var(--led-wrap);filter:brightness(var(--led-shade,1));box-shadow:0 0 calc(38 * var(--mm-u)) color-mix(in srgb,var(--led-glow) 55%,transparent),0 0 calc(10 * var(--mm-u)) color-mix(in srgb,var(--led-glow) 85%,transparent),inset 0 0 0 max(1px,calc(1.2 * var(--mm-u))) color-mix(in srgb,var(--led-glow) 60%,white),inset 0 0 calc(11 * var(--mm-u)) color-mix(in srgb,var(--led-glow) 50%,transparent)}.mm-led__face[hidden]{display:none}.mm-led__face{--led-pad:calc(min(var(--led-len), var(--led-h)) * 0.08 * var(--mm-u));--led-pw:min(calc(var(--led-len) * var(--mm-u) - 2 * var(--led-pad)),calc((var(--led-h) * var(--mm-u) - 2 * var(--led-pad)) / var(--led-ratio, 1)));--led-px:calc((var(--led-len) * var(--mm-u) - var(--led-pw)) / 2)}.mm-led__logo{position:absolute;top:var(--led-pad);left:var(--led-px);display:block;width:var(--led-pw);height:calc(var(--led-pw) * var(--led-ratio, 1));object-fit:contain;background:var(--led-back);box-shadow:0 0 0 max(1px,calc(.8 * var(--mm-u))) rgb(0 0 0/.3)}.mm-led[data-tall] .mm-led__face{--led-tile:calc(var(--led-len) * var(--led-ratio, 1) * var(--mm-u));background:var(--led-wrap) var(--led-logo) center 0 /100% var(--led-tile) repeat-y;animation:mm-led-ticker 7s linear infinite}.mm-led[data-tall] .mm-led__logo{opacity:0}@keyframes mm-led-ticker{to{background-position-y:calc(var(--led-tile) * -1)}}.mm-led__face:before{content:"";position:absolute;z-index:1;inset:-50% 0;background:linear-gradient(180deg,transparent 43%,rgb(255 255 255/.2) 50%,transparent 57%);mix-blend-mode:screen;animation:mm-led-sweep 5.2s ease-in-out infinite}@keyframes mm-led-sweep{0%{transform:translateY(-48%)}to{transform:translateY(48%)}}.mm-led__face:after{content:"";position:absolute;z-index:1;top:var(--led-pad);left:var(--led-px);width:var(--led-pw);height:calc(var(--led-pw) * var(--led-ratio, 1));background-image:linear-gradient(rgb(0 0 0/.16) max(1px,calc(.6 * var(--mm-u))),transparent 0),linear-gradient(90deg,rgb(0 0 0/.16) max(1px,calc(.6 * var(--mm-u))),transparent 0);background-size:calc(3.5 * var(--mm-u)) calc(3.5 * var(--mm-u))}.mm-led[data-tall] .mm-led__face:after{inset:0;width:auto;height:auto;background-image:linear-gradient(rgb(255 255 255/.1) max(1px,calc(.6 * var(--mm-u))),transparent 0),linear-gradient(90deg,rgb(255 255 255/.1) max(1px,calc(.6 * var(--mm-u))),transparent 0)}.mm-led__roof{width:calc(var(--led-w) * var(--mm-u));height:calc(var(--led-d) * var(--mm-u));background:color-mix(in srgb,var(--led-wrap) 94%,black);box-shadow:inset 0 0 0 max(1px,calc(1.5 * var(--mm-u))) color-mix(in srgb,var(--led-glow) 65%,white),0 0 calc(12 * var(--mm-u)) color-mix(in srgb,var(--led-glow) 65%,transparent)}.mm-stage[data-flying] .mm-leds{opacity:.35;transition:opacity .4s ease}.mm-veil{position:absolute;inset:0;z-index:8;pointer-events:none;background:radial-gradient(circle at 50% 50%,transparent 0,var(--town-map-stage) 68%);opacity:0;transition:opacity .35s ease .6s}.mm-stage[data-flying] .mm-veil{opacity:1}.mm-stage[data-entering=foundation] .mm-veil{background:var(--foundation-black);transition:opacity .48s ease .4s}.mm-headline{position:absolute;z-index:6;left:var(--mm-edge);bottom:var(--mm-foot);width:min(26rem,calc((100vw - var(--mm-w)) / 2 + var(--mm-w) * .3 - var(--mm-edge)));margin:0;color:var(--town-map-on-stage-muted);font-family:var(--font-sans);font-size:clamp(16px,calc(var(--mm-w) * .0112),18px);font-weight:500;line-height:1.5;letter-spacing:0;pointer-events:none}.mm-headline__brand{display:block;margin-bottom:.14em;color:var(--mm-paper);font-family:var(--font-game),var(--font-sans);font-size:clamp(22px,calc(var(--mm-w) * .028),44px);font-weight:700;line-height:1.12}.mm-headline__brand:after{content:"";display:block;width:1.5em;height:.12em;margin-top:.22em;border-radius:99px;background:var(--brand)}.mm-headline__dash{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.mm-headline__phrase{display:inline-block;white-space:pre}.mm-controls{position:absolute;z-index:6;right:var(--mm-edge);bottom:var(--mm-foot);display:flex;align-items:center;gap:8px}.mm-controls__gap{width:6px}.mm-btn{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--town-map-glass-line);border-radius:50%;background:var(--town-map-glass);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);color:var(--mm-paper);cursor:pointer;box-shadow:var(--town-map-shadow);transition:transform .12s ease,background-color .15s ease,border-color .15s ease}.mm-btn:hover{transform:translateY(-1px);background:var(--town-map-glass-hi);border-color:var(--mm-paper)}.mm-btn:active{transform:translateY(1px)}.mm-btn:focus-visible{outline:2.5px solid var(--mm-paper);outline-offset:3px}.mm-btn:disabled{opacity:.5;cursor:default;transform:none;background:var(--town-map-glass);border-color:var(--town-map-glass-line)}.mm-btn[data-on]{background:var(--brand);border-color:var(--brand);color:var(--brand-foreground)}.mm-dial{width:44px;height:44px}.mm-dial__ring{fill:var(--town-map-glass);stroke:var(--town-map-glass-line);stroke-width:1}.mm-dial__dot{fill:color-mix(in srgb,var(--mm-paper) 46%,transparent);transition:fill .3s ease}.mm-dial__dot--on{fill:var(--brand)}.mm-dial__needle{fill:var(--mm-paper);transform-origin:22px 22px}.game-root:has(.main-map-root) .game-hud{background:none}.game-root:has(.main-map-root) .game-hud .hud-btn,.game-root:has(.main-map-root) .game-hud .hud-logo{color:var(--town-map-paper);background:var(--town-map-glass);border:1px solid var(--town-map-glass-line);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);box-shadow:var(--town-map-shadow)}.game-root:has(.main-map-root) .game-hud .hud-btn:hover{background:var(--town-map-glass-hi);border-color:var(--town-map-paper)}@media (width >= 48rem){.game-root:has(.main-map-root) .game-hud .hud-logo img[src*=logo-light]{display:none}.game-root:has(.main-map-root) .game-hud .hud-logo img[src*=logo-dark]{display:block}}.game-root:has(.main-map-root) [data-chat-launcher]{display:none}.mm-stage[data-paused] :after,.mm-stage[data-paused] :before,.mm-stage[data-paused] :not(.mm-view,.mm-pin__label,.mm-pin__tag,.mm-chip){animation-play-state:paused!important}@media (prefers-reduced-motion:reduce){.mm-stage *,.mm-stage :after,.mm-stage :before{animation:none!important}.mm-stage .mm-chip,.mm-stage .mm-pin,.mm-stage .mm-world{transition:none!important}}@media (max-aspect-ratio:1/1){.mm-headline{width:min(26rem,calc(100vw - var(--mm-edge) * 2 - 300px))}}@media (width < 48rem){.mm-headline{top:calc(var(--hud-h) + 14px);bottom:auto;width:calc(100% - var(--mm-edge) * 2)}.mm-headline__phrase{display:inline;white-space:normal}.mm-controls{left:0;right:0;justify-content:center}}