@charset "UTF-8";
/* FONT ------------------------------------------->
'Roboto': 100 - 900
'Noto Sans JP': 100 - 900
Thin: 100 / .w_thin
ExtraLight: 200 / .w_eLight
Light: 300 / .w_light
Regular: 400 / .w_reg
Medium: 500 / .w_med
SemiBold: 600 / .w_sBold
Bold: 700 / .w_bold
ExtraBold: 800 / .w_eBold
Black: 900 / .w_black


/*-------------------------------------------> font */
.w_thin {
  font-weight: 100;
}

.w_eLight {
  font-weight: 200;
}

.w_light {
  font-weight: 300;
}

.w_reg, .f_def {
  font-weight: 400;
}

.w_med {
  font-weight: 500;
}

.w_sBold {
  font-weight: 600;
}

.w_bold {
  font-weight: 700;
}

.w_eBold {
  font-weight: 800;
}

.w_black {
  font-weight: 900;
}

.f_serif {
  font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
}

.f_sans, .ja {
  font-family: YakuHanJP, "Noto Sans JP", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}

.f_en, .en {
  font-family: "Poppins", YakuHanJP, "Noto Sans JP", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}

/*-------------------------------------------> html / body style */
html, body {
  font-size: 10px;
  background: #FFF;
}

html, body, * {
  -webkit-font-smoothing: antialiased;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  font-variant: normal;
}

body {
  font-family: "Inter", YakuHanJP, "Noto Sans JP", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-optical-sizing: auto;
  line-height: 1;
  color: #000;
  background: #FFF;
}
@media screen and (min-width: 768px) {
  body .pc {
    display: block;
  }
  body .sp {
    display: none;
  }
  body img.pc, body .svg.pc {
    display: inline;
  }
}
@media screen and (max-width: 767px) {
  body {
    height: 100%;
  }
  body .pc {
    display: none;
  }
  body .sp {
    display: block;
  }
  body img.pc {
    display: none;
  }
  body img.sp, body .svg.sp {
    display: inline;
  }
}

.hide {
  display: none;
}

/*-------------------------------------------> link style */
a {
  color: inherit;
  outline: none;
  cursor: pointer;
}
a:link {
  text-decoration: none;
}
a:visited {
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}
a:active {
  text-decoration: none;
}

@media screen and (min-width: 768px) {
  .OverOpacity,
  .OverOpacityGroup a {
    opacity: 1;
    -webkit-transition: opacity 0.15s ease-out;
    transition: opacity 0.15s ease-out;
  }
  .OverOpacity:hover,
  .OverOpacityGroup a:hover {
    opacity: 0.4;
  }
}
/*-------------------------------------------> Common style */
.cqBase {
  container-type: inline-size;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
}

br.pc {
  display: block;
}
br.pc.sp {
  display: block;
}
br.sp {
  display: none;
}
@media screen and (max-width: 767px) {
  br.pc {
    display: none;
  }
  br.sp {
    display: block;
  }
  br.sp.pc {
    display: block;
  }
}

/*-------------------------------------------> reCAPTCHA */
.grecaptcha-badge {
  display: none !important;
}

html, body {
  height: 100%;
  -webkit-user-select: none;
  -moz-user-select: none;
   -ms-user-select: none;
       user-select: none;
  -webkit-touch-callout: none;
  -ms-touch-action: none;
      touch-action: none;
  -webkit-touch-callout: none;
}

html {
  scrollbar-width: none;
}
html::-webkit-scrollbar {
  width: 0;
  height: 0;
  background: transparent;
}

body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 100vh;
  margin: 0;
  overflow: hidden;
  background: #fff;
  color: #000;
  text-align: center;
  overflow-x: clip;
  overflow-y: clip;
  -ms-scroll-chaining: none;
      overscroll-behavior: none;
  -ms-touch-action: none;
      touch-action: none;
  cursor: none;
  /*
  &.error__tap {
    #switch {
      .switch__desc {
        &.tap_message {
          display: block;
        }
      }
    }
  }
  */
}
@media screen and (max-width: 767px) {
  body {
    min-height: 100svh;
  }
}
@supports not (overflow: clip) {
  body {
    overflow-x: hidden;
    overflow-y: hidden;
  }
}
body.is-pc #switch {
  pointer-events: none;
}
body.is-pc #switch .switch__desc.pc_message {
  display: block;
}
body.is-pc #switch .switch__desc.sp_message {
  display: none;
}
body.active #switch {
  pointer-events: none;
  opacity: 0;
}

#switch {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2147483647;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  text-align: center;
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
  pointer-events: auto;
  opacity: 1;
}
#switch .switch__desc {
  margin: 0;
  display: none;
}

#scope {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100svh;
  overflow-x: clip;
  pointer-events: none;
}

.info {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: 1rem;
  color: #000;
  pointer-events: none;
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
  opacity: 1;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 10px;
}
.info .brand {
  color: #003595;
}
.info.hide {
  opacity: 0;
}

.cursor-indicator {
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #000;
  pointer-events: none;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: width 0.1s, height 0.1s, background-color 0.1s;
  transition: width 0.1s, height 0.1s, background-color 0.1s;
  top: -40px;
  left: -40px;
  pointer-events: none;
}
.cursor-indicator.active {
  width: 40px;
  height: 40px;
  background: #003595;
}

#Contents {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  pointer-events: none;
  -ms-touch-action: none;
      touch-action: none;
  position: relative;
  z-index: 100;
  width: 100%;
  height: 100vh;
}
@media screen and (max-width: 767px) {
  #Contents {
    height: 100svh;
  }
}
#Contents .logo, #Contents .contact, #Contents .copyright {
  position: absolute;
  z-index: 100;
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}
#Contents .logo {
  width: 100%;
  max-width: 500px;
  z-index: 200;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
@media screen and (max-width: 767px) {
  #Contents .logo {
    max-width: initial;
    width: 68.2666666667vw;
    -webkit-transform: translate(-50%, -56%);
            transform: translate(-50%, -56%);
  }
}
#Contents .contact {
  color: #003595;
  font-size: 1.2rem;
  left: 50%;
  bottom: 30px;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}
#Contents .copyright {
  font-size: 1rem;
  left: calc(100% - 20px);
  bottom: 30px;
  white-space: nowrap;
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
  rotate: -90deg;
}

#typeA {
  /*
  &.error__tap {
    #switch {
      @media screen and ($less-tab) {
        .switch__desc {
          &.sp_message {
            display: none;
          }
          &.tap_message {
            display: block;
          }
        }
      }
    }
  }
  */
}
#typeA #switch {
  color: #000;
  background: rgba(0, 0, 0, 0);
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}
#typeA #switch .switch__title {
  font-size: 1.6rem;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 10px;
  font-weight: 400;
  margin-bottom: 2em;
}
#typeA #switch .switch__title strong {
  color: #003595;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  #typeA #switch .switch__title {
    line-height: 1.5;
    white-space: nowrap;
  }
}
@media screen and (max-width: 767px) {
  #typeA #switch .switch__desc {
    font-size: 1.2rem;
    margin-top: 1em;
    display: none;
  }
  #typeA #switch .switch__desc.sp_message {
    display: block;
  }
}
#typeA #Contents .logo, #typeA #Contents .contact, #typeA #Contents .copyright {
  opacity: 0;
}
#typeA.active #switch {
  pointer-events: none;
  -ms-touch-action: none;
      touch-action: none;
}
#typeA.active #Contents .logo, #typeA.active #Contents .contact, #typeA.active #Contents .copyright {
  opacity: 1;
}
#typeA.active #Contents .contact a {
  pointer-events: auto;
  -ms-touch-action: auto;
      touch-action: auto;
  cursor: pointer;
}
#typeA.return #switch .switch__title {
  display: none;
}
#typeA.return #switch .switch__desc.sp_message {
  display: none;
}
#typeA.return #switch .switch__desc.restart {
  display: block;
}

#typeB #switch {
  color: #000;
  background: rgba(0, 0, 0, 0);
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}
#typeB #switch .switch__inner {
  position: absolute;
  right: 30px;
  top: 30px;
  font-size: 1.4rem;
  padding: 1.4rem;
  background: rgba(255, 255, 255, 0.5);
  background: #FFF;
  border-radius: 10px;
  -webkit-filter: drop-shadow(0 0 3px #CCC);
          filter: drop-shadow(0 0 3px #CCC);
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}
@media screen and (max-width: 767px) {
  #typeB #switch .switch__inner {
    font-size: 1rem;
    padding: 1rem;
    right: auto;
    left: 50%;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
    will-change: filter;
  }
}
#typeB #switch .switch__desc {
  display: none;
}
#typeB #switch .switch__title {
  font-size: 1.6rem;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 10px;
  font-weight: 400;
  margin: 0;
}
#typeB #switch .switch__title strong {
  color: #003595;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  #typeB #switch .switch__title {
    font-size: 1.2rem;
    line-height: 1.5;
    white-space: nowrap;
  }
}
@media screen and (max-width: 767px) {
  #typeB #switch .switch__desc {
    font-size: 1rem;
    margin-top: 1em;
    display: none;
  }
  #typeB #switch .switch__desc.sp_message {
    display: block;
  }
}
@media screen and (max-width: 767px) {
  #typeB.error__tap #switch .switch__desc.sp_message {
    display: none;
  }
  #typeB.error__tap #switch .switch__desc.tap_message {
    display: block;
  }
}

/* ===== Debug HUD ===== */
.debug-hud {
  position: fixed;
  top: 10px;
  right: 10px;
  width: min(38vw, 480px);
  max-height: 60vh;
  padding: 10px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.7);
  color: #e7f0ff;
  font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  z-index: 99999;
  -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
          box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 6px;
  pointer-events: auto;
}
@media screen and (max-width: 767px) {
  .debug-hud {
    width: calc(100% - 40px);
  }
}

.debug-hud .row {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 120px 8px 1fr;
  grid-template-columns: 120px 1fr;
  gap: 8px;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}

.debug-hud .row .key {
  color: #a7c4ff;
  opacity: 0.9;
}

.debug-hud .row .val {
  color: #fff;
  word-break: break-all;
}

.debug-hud .sep {
  height: 1px;
  background: rgba(255, 255, 255, 0.15);
  margin: 6px 0;
}

.debug-hud .log {
  overflow: auto;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.3);
  padding: 6px;
  white-space: pre-wrap;
  -webkit-overflow-scrolling: touch;
}

.debug-hud .btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 8px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.debug-hud .btns button {
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  cursor: pointer;
}

/* HUD は“普通のUI”、本体は全画面操作 */
.debug-hud, .debug-hud *,
.debug-modal, .debug-modal * {
  -ms-touch-action: auto;
      touch-action: auto;
  -moz-user-select: text;
   -ms-user-select: text;
       user-select: text;
  -webkit-user-select: text;
  pointer-events: auto;
  cursor: auto;
}

/* 既存と整合（本体操作用） */
body {
  -ms-touch-action: none;
      touch-action: none;
  cursor: none;
}

#scope {
  pointer-events: none;
}

/* ===== 手動コピー用モーダル ===== */
.debug-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 2147483648;
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 16px;
}

.debug-modal.show {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  pointer-events: auto;
}

.debug-modal .panel {
  width: min(96vw, 780px);
  height: min(80vh, 560px);
  background: #111;
  color: #e7f0ff;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px;
  padding: 12px;
}

.debug-modal .panel .head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  font-weight: bold;
}

.debug-modal .panel .btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 8px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.debug-modal .panel button {
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  cursor: pointer;
}

.debug-modal textarea {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  width: 100%;
  resize: none;
  border-radius: 6px;
  background: #000;
  color: #eef;
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 8px;
  -webkit-user-select: text;
  -moz-user-select: text;
   -ms-user-select: text;
       user-select: text;
  white-space: pre;
}