baekje-map.baekje-map {
  --bm-bg: #181621;
  --bm-panel: #211e2b;
  --bm-border: #45404f;
  --bm-text: #f5f3f8;
  --bm-muted: #ada6ba;
  --bm-accent: #c3eea6;
  --bm-purple: #c4b1ea;
  display: block;
  width: 100%;
  min-width: 0;
  color: var(--bm-text);
  font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
}
.baekje-map *, .baekje-map *::before, .baekje-map *::after { box-sizing: border-box; }
.baekje-map [hidden] { display: none !important; }
.baekje-map button { font: inherit; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.baekje-map button:disabled { opacity: .4; cursor: default; }
.baekje-map button:focus-visible, .baekje-map .bm-stage:focus-visible { outline: 3px solid var(--bm-accent); outline-offset: 3px; }
.baekje-map button svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; pointer-events: none; }
.baekje-map .bm-shell { border: 1px solid var(--bm-border); border-radius: 14px; background: var(--bm-bg); overflow: hidden; box-shadow: 0 18px 45px #07050c28; }
.baekje-map .bm-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; background: var(--bm-panel); }
.baekje-map .bm-eyebrow { display: flex; align-items: center; gap: 7px; color: var(--bm-purple); font: 10px/1.4 ui-monospace, monospace; letter-spacing: 1.6px; }
.baekje-map .bm-eyebrow i { width: 5px; height: 5px; background: var(--bm-accent); border-radius: 1px; box-shadow: 0 0 9px #c3eea644; }
.baekje-map .bm-heading h2 { margin: 6px 0 0; color: var(--bm-text); font: 700 20px/1.5 'Malgun Gothic', 'Apple SD Gothic Neo', system-ui, sans-serif; letter-spacing: -.6px; }
.baekje-map .bm-tools { display: flex; align-items: center; gap: 7px; flex-shrink: 0; }
.baekje-map .bm-tool { min-height: 40px; display: inline-flex; justify-content: center; align-items: center; gap: 7px; border: 1px solid #51485e; background: #2b2535; border-radius: 7px; padding: 8px 11px; color: #d8cde5; font-size: 11px; white-space: nowrap; transition: background .15s, border-color .15s; }
.baekje-map .bm-tool:hover { background: #3c3248; border-color: #86729d; }
.baekje-map .bm-tool[aria-pressed='true'] { color: var(--bm-accent); border-color: #6a8358; background: #303a2b; }
.baekje-map .bm-fullscreen { width: 40px; padding: 8px; }
.baekje-map .bm-stage { position: relative; width: 100%; aspect-ratio: 2 / 1; min-height: 330px; max-height: 640px; overflow: hidden; isolation: isolate; touch-action: none; cursor: grab; background-color: #20251f; background-image: radial-gradient(ellipse at center, #47543c35, transparent 75%), linear-gradient(#b8d9a005 1px, transparent 1px), linear-gradient(90deg, #b8d9a005 1px, transparent 1px); background-size: auto, 36px 36px, 36px 36px; }
.baekje-map .bm-stage:focus-visible { outline-offset: -4px; }
.baekje-map .bm-world { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; user-select: none; }
.baekje-map .bm-image { display: block; width: 100%; height: 100%; max-width: none; object-fit: fill; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.baekje-map .bm-pins { position: absolute; inset: 0; }
.baekje-map .bm-pin { position: absolute; z-index: 2; width: 38px; height: 38px; padding: 0; background: transparent; border: 0; border-radius: 50%; transform: translate(-50%, -50%) scale(var(--bm-inverse-scale, 1)); transform-origin: center; touch-action: none; }
.baekje-map .bm-pin-dot { position: absolute; inset: 7px; display: flex; justify-content: center; align-items: center; border: 2px solid #fff3df; border-radius: 50%; background: #39303fed; color: #fff9ec; box-shadow: 0 2px 8px #10150c70; font: 700 9px/1 ui-monospace, monospace; transition: background .15s, box-shadow .15s; }
.baekje-map .bm-pin-label { position: absolute; left: 50%; bottom: 40px; transform: translateX(-50%); padding: 5px 10px; border: 1px solid #f5efe645; border-radius: 5px; color: #fff7e9; background: #26212def; box-shadow: 0 3px 10px #11130933; font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: -.2px; white-space: nowrap; pointer-events: none; transition: background .15s; }
.baekje-map .bm-pin-label::after { position: absolute; content: ''; left: calc(50% - 3px); bottom: -4px; width: 6px; height: 6px; background: inherit; border-right: 1px solid #f5efe645; border-bottom: 1px solid #f5efe645; transform: rotate(45deg); }
.baekje-map .bm-pin:hover, .baekje-map .bm-pin:focus-visible, .baekje-map .bm-pin.is-selected { z-index: 4; }
.baekje-map .bm-pin:hover .bm-pin-dot { background: #69604f; }
.baekje-map .bm-pin.is-selected .bm-pin-dot { color: #28351e; background: var(--bm-accent); border-color: #f1ffde; box-shadow: 0 0 0 5px #c9f5a652, 0 2px 10px #171d0f80; }
.baekje-map .bm-pin.is-selected .bm-pin-label { background: #d2f3b7; color: #26371e; border-color: #f1ffdf; }
.baekje-map .bm-pin.is-selected::before { position: absolute; content: ''; inset: 0; border: 1px solid #d8ffb5b3; border-radius: 50%; pointer-events: none; }
.baekje-map .bm-pin.is-complete .bm-pin-dot { color: #23331a; background: var(--bm-accent); border-color: #f1ffde; }
.baekje-map .bm-pin.is-complete .bm-pin-label { color: #e3ffce; border-color: #9dbd7f; background: #283821f2; }
.baekje-map .bm-pin.is-complete.is-selected .bm-pin-label { color: #26371e; background: #d2f3b7; }
.baekje-map .bm-pin.is-facility .bm-pin-dot { border-radius: 6px; border-color: #d8edff; background: #34465c; color: #f0f8ff; font-size: 11px; }
.baekje-map .bm-pin.is-facility.is-selected .bm-pin-dot { background: #c3dff7; color: #20364b; box-shadow: 0 0 0 5px #badcff45, 0 2px 10px #171d0f80; }
.baekje-map .bm-pin.is-facility .bm-pin-label { border-color: #a9c4dc; background: #293b4cf2; color: #eef8ff; }
.baekje-map.bm-labels-hidden .bm-pin.is-facility .bm-pin-label { display: block; }
.baekje-map .bm-reveal-effect { display: none; position: absolute; inset: 0; pointer-events: none; }
.baekje-map .bm-pin.is-revealing { z-index: 7; }
.baekje-map .bm-pin.is-revealing .bm-reveal-effect { display: block; }
.baekje-map .bm-reveal-wave { position: absolute; inset: 0; border-radius: 50%; border: 2px solid #efffd7; background: radial-gradient(circle, #edffbd99, #c5f3a333 45%, transparent 70%); box-shadow: 0 0 18px #d9ff9c, inset 0 0 15px #eaffac; animation: bm-reveal-wave 1.4s ease-out both; }
.baekje-map .bm-reveal-spark { position: absolute; left: 50%; top: 50%; color: #faffcb; font-size: 22px; font-style: normal; line-height: 1; text-shadow: 0 0 9px #d3ffa6, 0 0 18px #d3ffa6; animation: bm-reveal-spark 1.35s ease-out both; }
.baekje-map .bm-pin.is-revealing .bm-pin-label { display: block; animation: bm-name-glow 1.5s ease-out both; }
.baekje-map .bm-place-chip.is-revealing { animation: bm-name-glow 1.5s ease-out both; }
.baekje-map.bm-labels-hidden .bm-pin-label { display: none; }
.baekje-map.bm-labels-hidden .bm-pin:focus-visible .bm-pin-label, .baekje-map.bm-labels-hidden .bm-pin:hover .bm-pin-label { display: block; }
.baekje-map .bm-dragging, .baekje-map .bm-dragging .bm-pin { cursor: grabbing; }
.baekje-map .bm-dragging .bm-pin-label { pointer-events: none; }
.baekje-map .bm-map-badge { position: absolute; left: 16px; top: 15px; z-index: 5; display: flex; align-items: center; gap: 7px; padding: 7px 10px; color: #f3ecd9; background: #1d2423cf; backdrop-filter: blur(10px); border: 1px solid #d1dfb830; border-radius: 5px; font-size: 10px; line-height: 1.5; pointer-events: none; }
.baekje-map .bm-badge-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--bm-accent); }
.baekje-map .bm-zoom-controls { position: absolute; z-index: 6; right: 15px; bottom: 16px; display: flex; flex-direction: column; align-items: center; width: 43px; padding: 4px; border: 1px solid #d7d0df55; border-radius: 9px; background: #241e2dec; box-shadow: 0 5px 18px #08081030; cursor: default; }
.baekje-map .bm-zoom-button { display: flex; justify-content: center; align-items: center; padding: 0; width: 34px; height: 35px; background: transparent; border: 0; border-radius: 5px; }
.baekje-map .bm-zoom-button:hover:not(:disabled) { background: #4a3d57; color: var(--bm-accent); }
.baekje-map .bm-zoom-value { font: 9px/1.4 ui-monospace, monospace; color: #d5c9e0; margin: 2px 0; }
.baekje-map .bm-control-divider { height: 1px; width: 22px; background: #6f607d; margin: 4px 0; }
.baekje-map .bm-loading { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 8; padding: 10px 16px; border: 1px solid #776287; border-radius: 7px; color: #eee3f5; background: #262032ed; font-size: 12px; pointer-events: none; }
.baekje-map .bm-image-error { position: absolute; inset: 0; z-index: 7; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 26px 65px 26px 26px; background: #211d2bef; text-align: center; cursor: default; }
.baekje-map .bm-image-error b { font-size: 15px; }
.baekje-map .bm-image-error p { max-width: 380px; margin: 9px 0 15px; color: var(--bm-muted); font-size: 12px; }
.baekje-map .bm-image-failed .bm-world { visibility: hidden; }
.baekje-map .bm-help { display: flex; justify-content: space-between; gap: 10px; padding: 10px 19px; border-top: 1px solid #46513d; border-bottom: 1px solid #3a3344; background: #24202c; color: #b0a5bd; font-size: 10px; }
.baekje-map .bm-place-list { display: flex; flex-wrap: wrap; gap: 7px; padding: 19px 20px 17px; }
.baekje-map .bm-discovery-hint { margin: 0; padding: 16px 20px 0; color: #cbbbd8; font-size: 11px; line-height: 1.8; }
.baekje-map .bm-place-chip { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 7px 11px; color: #beb3cd; background: #282230; border: 1px solid #42374f; border-radius: 7px; font-size: 11px; line-height: 1.4; white-space: nowrap; transition: background .15s, border-color .15s; }
.baekje-map .bm-place-chip .bm-chip-number { color: #8c7d9b; font: 9px/1 ui-monospace, monospace; }
.baekje-map .bm-place-chip .bm-chip-name { font: inherit; }
.baekje-map .bm-place-chip:hover { background: #392d46; border-color: #79628c; }
.baekje-map .bm-place-chip.is-selected { color: var(--bm-accent); background: #2d3627; border-color: #6b8357; }
.baekje-map .bm-place-chip.is-selected .bm-chip-number { color: #b1d593; }
.baekje-map .bm-place-chip.is-complete { border-color: #70885c; color: #c7e7ae; }
.baekje-map .bm-place-chip.is-facility { border-color: #637e99; background: #263340; color: #d6e9fa; }
.baekje-map .bm-place-chip.is-facility.is-selected { border-color: #b8d7f0; background: #344b60; }
.baekje-map .bm-place-chip.is-facility .bm-chip-number { color: #c6e0f5; }
.baekje-map .bm-info { display: flex; align-items: center; gap: 17px; margin: 0 20px 20px; padding: 18px 19px; border: 1px solid #51415e; border-radius: 9px; background: linear-gradient(110deg, #2d2538, #251f2e); }
.baekje-map .bm-info-number { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 43px; height: 43px; border: 1px solid #71617e; border-radius: 8px; background: #372d43; color: var(--bm-purple); font: 18px/1 ui-monospace, monospace; }
.baekje-map .bm-info-copy { flex: 1; min-width: 0; }
.baekje-map .bm-info.is-complete { border-color: #71875e; background: linear-gradient(110deg, #293722, #25282a); }
.baekje-map .bm-info.is-facility .bm-info-number { border-color: #7898b4; background: #2c4052; color: #d6eaff; }
.baekje-map .bm-info-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.baekje-map .bm-selected-name { margin: 0; color: #f5edf9; font: 700 16px/1.5 'Malgun Gothic', 'Apple SD Gothic Neo', system-ui, sans-serif; letter-spacing: -.3px; }
.baekje-map .bm-selected-type { padding: 1px 6px; border-radius: 3px; color: #d5bfef; background: #4a395a; font-size: 9px; line-height: 1.6; }
.baekje-map .bm-selected-description { margin: 5px 0 0; color: #c1b3cf; font-size: 11px; line-height: 1.8; }
.baekje-map .bm-mission-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; flex-shrink: 0; min-height: 42px; padding: 10px 14px; border: 1px solid #d8fbc0; border-radius: 6px; color: #26321f; background: var(--bm-accent); font-size: 11px; font-weight: 700; }
.baekje-map .bm-mission-button:hover { background: #d5fbbb; }
.baekje-map .bm-mission-button svg { width: 16px; height: 16px; }
.baekje-map .bm-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.baekje-map .bm-shell:fullscreen { width: 100%; height: 100dvh; border: 0; border-radius: 0; display: flex; flex-direction: column; overflow: auto; }
.baekje-map .bm-shell:fullscreen .bm-stage { flex: 1; min-height: 250px; max-height: none; aspect-ratio: auto; }
.baekje-map .bm-shell:fullscreen .bm-toolbar, .baekje-map .bm-shell:fullscreen .bm-help, .baekje-map .bm-shell:fullscreen .bm-place-list, .baekje-map .bm-shell:fullscreen .bm-info { flex-shrink: 0; }
@keyframes bm-reveal-wave { 0% { opacity: 0; transform: scale(.35); } 18% { opacity: 1; } 100% { opacity: 0; transform: scale(4); } }
@keyframes bm-reveal-spark { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.2); } 20% { opacity: 1; } 100% { opacity: 0; transform: translate(calc(-50% + var(--spark-x)), calc(-50% + var(--spark-y))) scale(.55) rotate(60deg); } }
@keyframes bm-name-glow { 0%, 100% { box-shadow: none; } 25% { box-shadow: 0 0 12px #e5ffbd, 0 0 26px #c9f6a780; } }
@media (max-width: 800px) {
  .baekje-map .bm-toolbar { flex-wrap: wrap; gap: 13px; padding: 17px; }
  .baekje-map .bm-heading h2 { font-size: 18px; }
  .baekje-map .bm-help { flex-wrap: wrap; justify-content: flex-start; gap: 3px 14px; }
  .baekje-map .bm-info { flex-wrap: wrap; }
  .baekje-map .bm-mission-button { margin-left: 60px; }
}
@media (max-width: 540px) {
  .baekje-map .bm-shell { border-radius: 11px; }
  .baekje-map .bm-toolbar { padding: 16px 13px 13px; }
  .baekje-map .bm-heading { width: 100%; }
  .baekje-map .bm-heading h2 { font-size: 18px; }
  .baekje-map .bm-tools { width: 100%; }
  .baekje-map .bm-tool { min-height: 38px; font-size: 10px; }
  .baekje-map .bm-fullscreen { margin-left: auto; width: 38px; }
  .baekje-map .bm-stage { aspect-ratio: 1.14 / 1; min-height: 290px; max-height: 430px; }
  .baekje-map .bm-map-badge { left: 11px; top: 11px; font-size: 9px; padding: 6px 8px; }
  .baekje-map .bm-zoom-controls { right: 10px; bottom: 11px; }
  .baekje-map .bm-pin-label { font-size: 10px; padding: 4px 8px; }
  .baekje-map .bm-help { padding: 10px 13px; font-size: 9px; }
  .baekje-map .bm-place-list { gap: 6px; padding: 14px 12px; }
  .baekje-map .bm-discovery-hint { padding: 13px 13px 0; font-size: 10px; }
  .baekje-map .bm-place-chip { min-height: 37px; padding: 7px 9px; font-size: 10px; gap: 5px; }
  .baekje-map .bm-info { gap: 12px; margin: 0 12px 13px; padding: 15px 13px; }
  .baekje-map .bm-info-number { width: 36px; height: 36px; font-size: 15px; }
  .baekje-map .bm-selected-name { font-size: 15px; }
  .baekje-map .bm-selected-description { font-size: 10px; }
  .baekje-map .bm-mission-button { margin-left: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .baekje-map *, .baekje-map *::before, .baekje-map *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
