/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/opening/opening.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************/
/* =========================================================
   Fac-Trust オープニング演出（v5 プロトタイプ準拠）
   色は globals.css の :root トークンを参照（ハードコード禁止）
   ========================================================= */

.opening_stage__O1HPS {
  position: fixed;
  inset: 0;
  z-index: 60;
  font-family: var(--font);
  /* iOS Safari の自動文字拡大を無効化（拡大されて文字がはみ出すのを防ぐ） */
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
  background: radial-gradient(120% 90% at 50% 16%,
              var(--blue-800) 0%, var(--blue-900) 42%, var(--blue-950) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding-inline: 14px;
}
.opening_content__gDDVn { max-width: 100%; }
.opening_tagMain__0ld9W, .opening_tagSub__rp7ec { max-width: 100%; padding-inline: 6px; overflow-wrap: anywhere; }

/* 星空 */
.opening_bg__2am90 { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.opening_star____C_D {
  position: absolute; width: 2px; height: 2px; border-radius: 50%;
  background: #fff; animation: opening_tw__1eJ2T 4s ease-in-out infinite;
}
@keyframes opening_tw__1eJ2T { 0%, 100% { opacity: .06 } 50% { opacity: .5 } }

.opening_content__gDDVn {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center;
  opacity: 0; animation: opening_fadeUp__v4dno .9s .1s cubic-bezier(.2, .8, .2, 1) forwards;
}
@keyframes opening_fadeUp__v4dno {
  from { opacity: 0; transform: translateY(14px) }
  to   { opacity: 1; transform: none }
}

/* ── ロゴ額縁（大きく） ── */
.opening_lock__sObB4 { display: flex; align-items: center; gap: 20px; margin-bottom: 52px; }
.opening_flogo__ru7u1 {
  width: 78px; height: 78px; border-radius: 20px; display: grid; place-items: center;
  font-weight: 800; font-size: 44px; color: #fff;
  background: linear-gradient(150deg, var(--blue-500), var(--blue-700));
  box-shadow: 0 14px 40px rgba(0, 0, 0, .4);
}
.opening_nm__VjlJ6 { color: #fff; font-weight: 800; font-size: 46px; letter-spacing: -.02em; line-height: 1; }
.opening_sub__8EqkA { color: var(--blue-200); font-size: 12px; letter-spacing: .24em; font-weight: 700; margin-top: 9px; }

/* ── 吹き出し群＋楕円ループ ── */
.opening_pairwrap__uNxac {
  position: relative;
  width: min(460px, 95vw);
  height: clamp(236px, 36vh, 280px);
  margin-bottom: 24px;
}
/* 3吹き出しの三角形は約690px幅。狭い画面では構図ごと縮小して見切れを防ぐ
   （箱の物理幅は変わらないので FL の自動縮小ロジックには影響しない）。
   transform:scale はレイアウト高さを縮めないため、height も併せて詰めて
   余分な空きで縦にあふれないようにする。 */
@media (max-width: 780px) { .opening_pairwrap__uNxac { transform: scale(.92); height: clamp(220px, 34vh, 260px); } }
@media (max-width: 620px) { .opening_pairwrap__uNxac { transform: scale(.80); height: 220px; } }
@media (max-width: 500px) { .opening_pairwrap__uNxac { transform: scale(.66); height: 188px; } }
@media (max-width: 420px) { .opening_pairwrap__uNxac { transform: scale(.52); height: 152px; } }
@media (max-width: 360px) { .opening_pairwrap__uNxac { transform: scale(.48); height: 140px; } }
.opening_node__IcI1c { position: absolute; width: auto; max-width: 264px; z-index: 2; }
/* 楕円周 120°：JP=真上 / FL=30°(右下) / 逆翻訳=150°(左下)。loopwrap基準 */
.opening_node__IcI1c.opening_jp___CUYy   { left: 50%;   top: 4%;  transform: translate(-50%, -64%); }
.opening_node__IcI1c.opening_fl__8hV86   { left: 89.8%; top: 73%; transform: translate(-8%, -50%); }
.opening_node__IcI1c.opening_back__yxTFl { left: 10.2%; top: 73%; transform: translate(-92%, -50%); }

.opening_bubble__mTc21 {
  padding: 11px 14px; border-radius: 15px;
  font-size: 15px; font-weight: 600; line-height: 1.45;
  overflow: hidden; box-shadow: 0 12px 32px rgba(0, 0, 0, .32); position: relative;
}
.opening_bJp__c6QoG, .opening_bFl__94h4s, .opening_bBack__drTLK { width: 248px; }
.opening_bJp__c6QoG { white-space: nowrap; }
.opening_bubble__mTc21 .opening_tag___v_HP {
  font-family: var(--mono); font-size: 10px; font-weight: 700;
  display: block; margin-bottom: 4px; opacity: .62;
}

.opening_bJp__c6QoG {
  background: var(--jp); color: #fff;
  border-bottom-left-radius: 5px; font-size: 12px; font-weight: 600;
  opacity: 0; animation: opening_inJP__8_aY_ .7s .5s cubic-bezier(.2, .8, .2, 1) forwards;
}
.opening_bJp__c6QoG .opening_tag___v_HP { color: #fff; opacity: .7; }

.opening_bFl__94h4s {
  background: var(--fl); color: #fff; border-bottom-right-radius: 5px;
  opacity: 0; animation: opening_inFL__39Ksm .7s 1.0s cubic-bezier(.2, .8, .2, 1) forwards;
}

.opening_bBack__drTLK {
  background: var(--blue-400); color: #fff; border: none;
  border-bottom-right-radius: 5px; font-size: 13px; font-weight: 500;
  opacity: 0; animation: opening_inBack__D8r0u .7s 1.5s cubic-bezier(.2, .8, .2, 1) forwards;
}
.opening_bBack__drTLK .opening_tag___v_HP { color: var(--blue-100); opacity: .95; }
.opening_bBack__drTLK .opening_score__lzpSH { font-family: var(--mono); font-weight: 700; color: var(--score); float: right; }

@keyframes opening_inJP__8_aY_   { from { opacity: 0; transform: translateX(-26px) } to { opacity: 1; transform: none } }
@keyframes opening_inFL__39Ksm   { from { opacity: 0; transform: translateX(26px) }  to { opacity: 1; transform: none } }
@keyframes opening_inBack__D8r0u { from { opacity: 0; transform: translateY(10px) }  to { opacity: 1; transform: none } }

/* 吹き出しの箱は固定。中の文字だけクロスフェードで差し替える */
.opening_fade__BZJFZ { display: block; transition: opacity .5s ease; }
.opening_fade__BZJFZ.opening_out__H6_OS { opacity: 0; }
.opening_flText___U1Lz { display: inline-block; white-space: nowrap; transform-origin: left center; }

/* ── 楕円ループ（吹き出しの裏を通す） ── */
.opening_loopwrap__5chJh {
  position: absolute; inset: 0; margin: auto;
  --cw: clamp(244px, 42vh, 290px);
  --ch: clamp(168px, 28vh, 200px);
  width: var(--cw); height: var(--ch);
}
.opening_circ__1G0aN { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; z-index: 1; }
.opening_seg__VqcHn {
  fill: none; stroke-width: 3; stroke-linecap: round; vector-effect: non-scaling-stroke;
  stroke-dasharray: 620; stroke-dashoffset: 620; opacity: .92;
}
.opening_arcA___8Xyo { animation: opening_draw__8VtGh .6s 1.2s ease forwards; }
.opening_arcB__Xj39g { animation: opening_draw__8VtGh .5s 1.7s ease forwards; }
.opening_arcC__7bwSu { animation: opening_draw__8VtGh .6s 2.1s ease forwards; }
@keyframes opening_draw__8VtGh { to { stroke-dashoffset: 0 } }
.opening_traveler__c8NXj { opacity: 0; filter: drop-shadow(0 0 7px rgba(255, 255, 255, .9)); }

/* ── タグライン ── */
.opening_tagMain__0ld9W {
  color: #fff; font-size: clamp(20px, 3.4vw, 30px); font-weight: 800;
  letter-spacing: -.01em; text-align: center;
  opacity: 0; animation: opening_fadeUp__v4dno .8s 2.0s ease forwards;
}
.opening_tagBar__Qt1B7 {
  width: 50px; height: 4px; border-radius: 2px; margin: 16px auto 14px;
  background: linear-gradient(90deg, var(--jp), var(--fl));
  transform: scaleX(0); animation: opening_grow__Vw9fj .7s 2.3s ease forwards;
}
@keyframes opening_grow__Vw9fj { to { transform: scaleX(1) } }
.opening_tagSub__rp7ec {
  color: var(--blue-200); font-size: 14px; font-weight: 500; text-align: center;
  opacity: 0; animation: opening_fadeUp__v4dno .8s 2.45s ease forwards;
}

/* ── 言語インジケータ（ドット） ── */
.opening_langdot__qasMg { display: flex; gap: 6px; margin-top: 24px; opacity: 0; animation: opening_fadeUp__v4dno .8s 2.7s ease forwards; }
.opening_langdot__qasMg i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .22); transition: .3s; }
.opening_langdot__qasMg i.opening_on__WpHXS { background: var(--fl); transform: scale(1.25); }

/* ── 言語選択へ進む CTA ── */
.opening_cta__cVHuF {
  margin-top: 28px;
  display: inline-flex; flex-direction: column; align-items: center; gap: 2px;
  font-family: var(--font);
  font-size: 17px; font-weight: 800; color: #fff;
  background: linear-gradient(150deg, var(--blue-500), var(--blue-700));
  border: none; border-radius: 999px; padding: 13px 40px; cursor: pointer;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
  opacity: 0; animation: opening_fadeUp__v4dno .8s 2.7s ease forwards;
  transition: transform .15s ease, box-shadow .15s ease;
}
.opening_cta__cVHuF:hover { transform: translateY(-2px); box-shadow: 0 14px 38px rgba(0, 0, 0, .45); }
.opening_cta__cVHuF:active { transform: translateY(0); }
.opening_ctaSub__X6RUM {
  font-size: 10px; font-weight: 600; letter-spacing: .12em;
  color: var(--blue-200); text-transform: uppercase;
}

/* 狭い画面：ロックアップと余白を縮めて1画面に収める（はみ出し防止） */
@media (max-width: 480px) {
  .opening_lock__sObB4 { gap: 12px; margin-bottom: 22px; }
  .opening_flogo__ru7u1 { width: 52px; height: 52px; font-size: 28px; border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.4); }
  .opening_nm__VjlJ6 { font-size: 30px; }
  .opening_sub__8EqkA { font-size: 8px; letter-spacing: .16em; margin-top: 6px; }
  .opening_tagMain__0ld9W { font-size: 19px; }
  .opening_tagSub__rp7ec { font-size: 12px; }
  .opening_langdot__qasMg { margin-top: 16px; }
  .opening_cta__cVHuF { margin-top: 18px; padding: 11px 32px; font-size: 16px; }
}
/* 低い画面：縦の余白をさらに圧縮して CTA まで収める */
@media (max-height: 750px) {
  .opening_lock__sObB4 { margin-bottom: 16px; }
  .opening_pairwrap__uNxac { margin-bottom: 8px; }
  .opening_langdot__qasMg { margin-top: 12px; }
  .opening_cta__cVHuF { margin-top: 14px; }
}

/* 動きを減らす設定：周回・点滅を止める（静止表示） */
@media (prefers-reduced-motion: reduce) {
  .opening_content__gDDVn, .opening_bJp__c6QoG, .opening_bFl__94h4s, .opening_bBack__drTLK, .opening_tagMain__0ld9W, .opening_tagBar__Qt1B7, .opening_tagSub__rp7ec, .opening_langdot__qasMg { animation: none !important; opacity: 1 !important; }
  .opening_tagBar__Qt1B7 { transform: scaleX(1) !important; }
  .opening_seg__VqcHn { stroke-dashoffset: 0 !important; animation: none !important; }
  .opening_star____C_D { animation: none !important; }
}

