@font-face {
  font-family: "Noto Sans JP";
  src: url("../font/NotoSansJP-Regular.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans JP";
  src: url("../font/NotoSansJP-Bold.ttf") format("truetype");
  font-weight: 700 900;
  font-display: swap;
}
body, body * {
  font-family: "Noto Sans JP", sans-serif !important;
}
.jp-quest-banner { position: relative; }
.jp-quest-banner > img { display: block; width: 100%; }
.jp-quest-title {
  position: absolute;
  left: 12%; top: 25%; width: 37%; height: 51%;
  background: #32aaed;
  color: white;
  display: flex; flex-direction: column; justify-content: center;
  padding-left: 2%;
}
.jp-quest-title small { font-size: clamp(11px, 3.6vw, 18px); font-weight: 700; }
.jp-quest-title strong { font-size: clamp(21px, 7vw, 36px); line-height: 1.2; }
#intro .quest-context { font-size: clamp(10px, 1.7dvh, 14px); line-height: 1.6; }
#startARText { font-size: clamp(8px, 1.4dvh, 11px); line-height: 1.55; }
.tutorial_popup { min-height: 0; height: min(580px, 84dvh); }
.tutorial_popup .slides { height: auto; max-width: 260px; }
.tutorial_popup .slide { overflow: hidden; justify-content: center; gap: 12px; padding: 6px 10px 18px; }
.jp-tutorial-art { position: relative; width: 100%; aspect-ratio: 240 / 325; overflow: hidden; flex-shrink: 1; min-height: 0; }
.jp-tutorial-art > img { display: block; width: 100%; }
.slide > .jp-tutorial-caption { position: static; color: white; font-size: 12px; line-height: 1.6; white-space: pre-line; margin: 0; flex-shrink: 0; }
.jp-tutorial-step { color: #cdff62; font-size: 11px; flex-shrink: 0; }
.jp-tutorial-example { position: absolute; top: 39%; left: 3%; right: 3%; padding: 16px 8px; background: #e9f7ff; color: #111; border-radius: 14px; text-align: center; font-size: 13px; }
.jp-tutorial-example p { margin: 12px 0; }
.jp-tutorial-example span { display: inline-block; background: #6043ff; color: white; border-radius: 20px; padding: 6px 18px; margin: 0 3px; }
#location_permission_guide img { display: none; }
#guest_notice { flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
#landing .quest-banner { max-height: 29dvh; object-fit: contain; margin-top: 5dvh; }
#landing .landing-content-title { font-size: clamp(17px, 4.9vw, 24px); margin-top: 5dvh; padding: 0 12px; }
#landing .landing-content-notice { margin-top: 5dvh; min-height: 54px; height: 8dvh; }
#landing .landing-content-schedule { font-size: 13px; margin-top: 4dvh; padding: 0 20px; }
#landing .landing-content-location { color: white; font-size: 14px; margin: 2dvh 0; }
