/* エンジンの仕組みに必要な最小限(見た目は tokens.css / map.css / print.css) */
.hm-stage { position: relative; overflow: hidden; }
body[data-layout="bilateral"] .hm-stage { touch-action: none; cursor: grab; }
body[data-layout="bilateral"] .hm-stage.is-dragging { cursor: grabbing; }
/* スマホ: 地図の箱は中だけスクロールさせない(iPhoneで指のスクロールが箱に取られ、ページが下へ進まなかった 10/20) */
body[data-layout="cascade"] .hm-stage { overflow-x: clip !important; overflow-y: visible !important; overscroll-behavior: auto !important; }
.hm-world { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; }
.hm-node { position: absolute; left: 0; top: 0; }
.hm-lines { position: absolute; overflow: visible; pointer-events: none; }
.hm-lines path { vector-effect: non-scaling-stroke; }
.hm-guide[data-hidden="true"] { opacity: 0; pointer-events: none; }
[hidden] { display: none !important; }
:lang(ja) .hm-node__label, :lang(ja) .hm-panel__desc, :lang(ja) .hm-panel__title, :lang(ja) .hm-intro, :lang(ja) .pm-node__label, :lang(ja) .hm-tree__desc { word-break: keep-all; overflow-wrap: anywhere; }
.pm-plane { position: absolute; left: 0; top: 0; }
.pm-qr__box svg { width: 100%; height: 100%; display: block; }
.pm-map { position: relative; overflow: hidden; }
@page { size: 420mm 297mm; margin: 0; }
@media print { .pm-toolbar { display: none !important; } html, body { margin: 0; padding: 0; } }
.pm-rel-label { white-space: nowrap; }
.pm-node__out { width: 3.2mm; height: 3.2mm; margin-left: 1mm; vertical-align: -0.4mm; display: inline-block; }
.pm-outside { position: absolute; right: 0; top: 0; width: 84mm; z-index: 4; }
.pm-node__body { width: max-content; max-width: 70mm; }
