.manga-page { position: relative; overflow: hidden; }
.manga-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 1024px;
  height: 1536px;
  transform-origin: top left;
  pointer-events: none;
}
.manga-overlay[hidden] { display: none; }
.dialogue-link {
  position: absolute;
  left: 660px;
  top: 448px;
  width: 284px;
  height: 310px;
  padding: 38px 0 0;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  justify-content: center;
  gap: 22px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #1476a8;
  font-family: "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 34px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  cursor: pointer;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.dialogue-link span {
  writing-mode: vertical-rl;
  text-orientation: upright;
  white-space: nowrap;
  line-height: 1;
}
.dialogue-link[data-popup="lesson-support"] {
  left: 357px;
  top: 514px;
  width: 185px;
  height: 239px;
  padding-top: 31px;
  gap: 15px;
  font-size: 27px;
}
.dialogue-link[data-popup="flex-work"] {
  left: 697px;
  top: 800px;
  width: 207px;
  height: 253px;
  padding-top: 58px;
  gap: 24px;
  font-size: 34px;
}
.dialogue-link[data-popup="flex-work"] > span { text-orientation: mixed; }
.dialogue-link .tate-chu-yoko { text-combine-upright: all; }
.dialogue-link:focus-visible { outline: 3px solid #1476a8; outline-offset: -12px; }
@media (hover: hover) {
  .dialogue-link:hover { color: #085980; background: rgb(20 118 168 / 5%); }
}
.info-dialog {
  width: calc(100% - 32px);
  max-width: 480px;
  max-height: 80vh;
  max-height: 80dvh;
  margin: auto;
  padding: 32px 28px;
  border: 1px solid #d9e2e4;
  border-top: 4px solid #1476a8;
  border-radius: 8px;
  background: #fff;
  color: #272d30;
  box-shadow: 0 16px 60px rgb(0 0 0 / 18%);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.info-dialog::backdrop { background: rgb(25 30 32 / 48%); }
.info-dialog h2 {
  padding-right: 28px;
  margin: 0 0 20px;
  font-size: 20px;
  line-height: 1.6;
  font-weight: 600;
}
.info-dialog p {
  margin: 0;
  font-size: 16px;
  line-height: 1.95;
  overflow-wrap: anywhere;
  white-space: pre-line;
}
.dialog-close-form { margin: 0; }
.dialog-close {
  position: absolute;
  top: 8px;
  right: 8px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #4a555a;
  font: 28px/1 system-ui, sans-serif;
  cursor: pointer;
}
.dialog-close:hover { background: #eff4f5; }
.dialog-close:focus-visible { outline: 2px solid #1476a8; outline-offset: -3px; }
.manga-print-original { display: none; }
@media (max-width: 420px) {
  .info-dialog { padding: 28px 22px; }
}
@media print {
  .info-dialog, .manga-overlay, .manga-page > .manga-screen-image { display: none !important; }
  .manga-print-original { display: block; }
}
