  :root {
    --ink: #080b18;
    --ink-2: #0e1424;
    --navy: #13203c;
    --paper: #FFFFFF;
    --muted: #8b93ab;
    --gold: #2f6bff;
    --orange: #22d3ee;
    --pink: #7c5cff;
    --line: rgba(255,255,255,0.14);
    /* ===== モーション・トークン（一本の声：用途別3イージング＋標準時間） ===== */
    --e-enter: cubic-bezier(.22,1,.36,1);   /* 入場・stagger・ripple減衰：静かに着地する上質系 */
    --e-spring: cubic-bezier(.34,1.56,.64,1); /* ホバーのpop／弾性復帰のみ（既存維持） */
    --e-ramp: cubic-bezier(.76,0,.24,1);     /* 幕（イントロのカーテン上昇）など大きな面の移動専用 */
    --dur-rv: .62s;        /* セクション入場 */
    --dur-card: .56s;      /* カード入場 */
    --dur-veil: .72s;      /* イントロ幕 */
    --rv-dist: 30px;       /* セクション本体の縦移動 */
    --rv-side: -26px;      /* 横差し込み */
  }
  * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
  body { font-family: 'Zen Kaku Gothic New', sans-serif; background: var(--ink); color: #fff; overflow-x: hidden; line-height: 1.8; }
  a { color: inherit; text-decoration: none; }
  ::selection { background: var(--orange); color: #fff; }

  .bg-canvas { position: fixed; inset: 0; z-index: 0; width: 100%; height: 100%; display: block; }
  /* 背景動画（生成後に有効化）。canvasより前面・全画面カバー */
  .bg-video { position: fixed; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; display: none; }
  .bg-video.on { display: block; }
  .bg-scrim { position: fixed; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(10,10,18,0.30) 0%, rgba(10,10,18,0.05) 30%, transparent 46%, rgba(10,10,18,0.30) 66%, rgba(10,10,18,0.58) 100%); }

  /* モニター風フィルター（スキャンライン＋グリル＋フィルムグレイン）。動画の上・コンテンツの下 */
  .crt { position: fixed; inset: 0; z-index: 2; pointer-events: none; background: rgba(10,10,18,0.40); box-shadow: inset 0 0 220px 40px rgba(0,0,0,0.55); }
  .crt::before {
    content: ''; position: absolute; inset: 0;
    background-image:
      repeating-linear-gradient(0deg, rgba(0,0,0,0.22) 0 1px, transparent 1px 3px),
      repeating-linear-gradient(90deg, rgba(0,0,0,0.12) 0 1px, transparent 1px 3px);
    background-size: 100% 3px, 3px 100%;
  }
  .crt::after {
    content: ''; position: absolute; inset: -60%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    opacity: 0.24; animation: grain .55s steps(3) infinite;
  }
  @keyframes grain { 0%{transform:translate(0,0)} 33%{transform:translate(-4%,3%)} 66%{transform:translate(3%,-3%)} 100%{transform:translate(-3%,-2%)} }

  /* topbar + Lottie風ロゴ */
  .topbar { position: fixed; top: 0; left: 0; z-index: 40; padding: 18px 28px; display: flex; align-items: center; gap: 12px; }
  .topbar-logo img { height: 40px; width: auto; display: block; filter: drop-shadow(0 2px 12px rgba(0,0,0,0.55)); animation: pop .8s var(--e-spring) both; }
  @media (max-width: 1024px) { .topbar-logo img { height: 34px; } }
  .topbar .mark { position: relative; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; }
  .topbar .mark .ring { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, var(--gold), var(--orange), var(--pink), var(--gold)); -webkit-mask: radial-gradient(circle, transparent 56%, #000 58%); mask: radial-gradient(circle, transparent 56%, #000 58%); animation: spin 6s linear infinite; }
  .topbar .mark img { width: 26px; height: 26px; object-fit: contain; position: relative; z-index: 1; animation: pop .8s var(--e-spring) both; }
  @keyframes spin { to { transform: rotate(360deg); } }
  @keyframes pop { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: scale(1); } }
  .topbar .uni { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 12px; color: #fff; line-height: 1.15; }
  .topbar .uni small { display: block; font-size: 8.5px; color: var(--muted); letter-spacing: 0.18em; }

  /* 左固定ヒーロー */
  .hero-fixed { position: fixed; top: 0; left: 0; z-index: 20; width: 50vw; height: 100vh; padding: 96px 56px 44px; display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
  .hero-fixed > * { pointer-events: auto; }
  .hero-symbol .jp-label { font-size: 12px; letter-spacing: 0.14em; color: rgba(255,255,255,0.85); margin-bottom: 12px; }
  .hero-symbol .sdb { font-family: 'Anton', sans-serif; font-size: clamp(72px, 10vw, 156px); line-height: 0.82; letter-spacing: 0.01em; color: #fff; text-shadow: 0 4px 40px rgba(0,0,0,0.45); animation: rise 1s .15s both; }
  @media (max-width: 1024px) { .hero-symbol .sdb { font-size: clamp(82px, 23vw, 120px); } }
  .hero-symbol .en { margin-top: 16px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px; line-height: 1.6; letter-spacing: 0.04em; color: rgba(255,255,255,0.85); animation: rise 1s .35s both; }
  .teco-ico { display: inline-block; height: 1.5em; width: auto; vertical-align: -0.35em; margin-left: 6px; }
  @keyframes rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
  /* 第二回イベント情報ボックス（HUD調・コーナーブラケット） */
  .event-box { position: relative; margin-top: 24px; padding: 22px 22px 18px; text-align: center; background: linear-gradient(160deg, rgba(22,18,28,0.62), rgba(10,10,18,0.46)); border: 1px solid var(--line); border-radius: 0; backdrop-filter: blur(6px); animation: rise 1s .55s both; }
  .event-box .frame { position: absolute; inset: 0; pointer-events: none; }
  .event-box::before, .event-box::after, .event-box .frame::before, .event-box .frame::after { content: ''; position: absolute; width: 15px; height: 15px; border: 2px solid var(--orange); }
  .event-box::before { top: 6px; left: 6px; border-right-color: transparent; border-bottom-color: transparent; }
  .event-box::after { bottom: 6px; right: 6px; border-left-color: transparent; border-top-color: transparent; }
  .event-box .frame::before { top: 6px; right: 6px; border-left-color: transparent; border-bottom-color: transparent; }
  .event-box .frame::after { bottom: 6px; left: 6px; border-right-color: transparent; border-top-color: transparent; }
  .eb-tag { display: inline-block; font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.14em; color: #86dcff; border: 1px solid rgba(34,211,238,0.55); border-radius: 999px; padding: 4px 14px; margin-bottom: 13px; }
  .eb-title { font-weight: 800; font-size: 18px; color: #fff; margin-bottom: 10px; }
  .eb-date { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 14px; }
  .eb-date .d { font-family: 'Anton', sans-serif; font-size: clamp(54px, 6vw, 64px); line-height: 0.84; color: #fff; letter-spacing: -0.01em; text-shadow: 0 4px 28px rgba(34,211,238,0.3); }
  .eb-date .wd { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: 0.14em; color: var(--orange); border: 1px solid rgba(34,211,238,0.5); border-radius: 6px; padding: 3px 8px; line-height: 1; }
  .eb-date .tm { font-family: 'Anton', sans-serif; font-weight: 400; font-size: 26px; color: #fff; line-height: 1; letter-spacing: 0.01em; padding-left: 13px; border-left: 1px solid rgba(255,255,255,0.18); }
  .eb-date .tbd { font-family: 'Zen Kaku Gothic New', sans-serif; font-weight: 900; font-size: clamp(30px, 3.6vw, 40px); color: #fff; letter-spacing: 0.04em; line-height: 0.95; text-shadow: 0 4px 28px rgba(34,211,238,0.3); }
  .eb-venue { font-size: 11.5px; color: rgba(255,255,255,0.78); letter-spacing: 0.04em; line-height: 1.7; margin-bottom: 16px; }
  .eb-venue small { display: block; font-size: 10px; color: rgba(255,255,255,0.5); }
  /* 2カラム：左=日時情報／右=メリット訴求 */
  .eb-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; text-align: left; margin-bottom: 18px; }
  .eb-merits .eb-tag { margin-bottom: 4px; align-self: flex-start; }
  .eb-cols .eb-date { justify-content: flex-start; gap: 10px; }
  .eb-cols .eb-venue { margin-bottom: 0; }
  .eb-merits { display: flex; flex-direction: column; gap: 13px; border-left: 1px solid var(--line); padding-left: 26px; }
  .eb-merits .merit .m-amt { font-family: 'Anton', sans-serif; font-weight: 400; font-size: 27px; letter-spacing: 0.01em; line-height: 1; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; width: fit-content; }
  .eb-merits .merit .m-amt span { font-size: 13px; }
  .eb-merits .merit .m-lbl { font-size: 11.5px; color: rgba(255,255,255,0.64); margin-top: 4px; letter-spacing: 0.02em; }
  @media (max-width: 1024px) {
    .eb-cols { grid-template-columns: 1fr; gap: 18px; text-align: center; }
    .eb-cols .eb-date { justify-content: center; }
    .eb-merits { border-left: none; border-top: 1px solid var(--line); padding-left: 0; padding-top: 16px; align-items: center; }
    .eb-merits .eb-tag { align-self: center; }
    .eb-merits .merit .m-amt { width: auto; }
  }
  .eb-cta { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 8px; border: 2px solid transparent; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)) border-box; color: #fff; font-weight: 800; font-size: 13px; letter-spacing: 0.04em; padding: 11px 24px; border-radius: 6px; box-shadow: 0 8px 22px -10px rgba(34,211,238,0.8); transition: transform .3s var(--e-spring), box-shadow .3s, color .3s; }
  .eb-cta:hover { color: var(--orange); }
  .eb-cta span { transition: transform .3s; }
  .eb-cta:hover span { transform: translateX(3px); }
  .line-ico { position: relative; display: inline-block; width: 1.4em; height: 1.4em; flex-shrink: 0; }
  .line-ico img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
  .line-ico .hov { clip-path: inset(0 100% 0 0); transition: clip-path .55s cubic-bezier(.4,0,.2,1); }
  .eb-cta:hover .line-ico .hov, .btn-line:hover .line-ico .hov { clip-path: inset(0 0 0 0); }

  /* 右カラム：セクションごとに分離した浮遊カード（背景を隙間から見せる） */
  .content { position: relative; z-index: 10; margin-left: 50vw; width: 50vw; padding: 0 clamp(26px,3.5vw,60px); counter-reset: sec; }
  .sec { position: relative; max-width: 600px; margin: 0 auto 72px; padding: 54px clamp(28px,3.2vw,50px); border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,0.06); box-shadow: 0 36px 80px -34px rgba(0,0,0,0.65); }
  /* 単色セクションに、文字を邪魔しない“ゆらぎ”の淡いグロー */
  .sec::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(42% 52% at 12% 16%, rgba(34,211,238,0.13), transparent 72%), radial-gradient(48% 58% at 90% 86%, rgba(124,92,255,0.12), transparent 72%); animation: secGlow 16s ease-in-out infinite alternate; }
  .sec-light::before { background: radial-gradient(42% 52% at 12% 16%, rgba(47,107,255,0.08), transparent 72%), radial-gradient(46% 56% at 92% 88%, rgba(124,92,255,0.07), transparent 72%); }
  .sec > * { position: relative; z-index: 1; }
  @keyframes secGlow { from { transform: translate(0,0) scale(1); opacity: .82; } to { transform: translate(2.5%, -2%) scale(1.12); opacity: 1; } }
  .content .sec:first-of-type { margin-top: 7vh; }
  .sec-lead { min-height: 84vh; display: flex; flex-direction: column; justify-content: center; max-width: 600px; margin: 8vh auto 72px; padding: 58px clamp(30px,3.2vw,52px); border-radius: 18px; background: linear-gradient(155deg, rgba(30,22,44,0.40), rgba(10,10,18,0.66)); -webkit-backdrop-filter: blur(11px) saturate(1.1); backdrop-filter: blur(11px) saturate(1.1); border: 1px solid rgba(255,255,255,0.12); box-shadow: 0 40px 90px -36px rgba(0,0,0,0.6); }

  .tag-grad { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; width: fit-content; max-width: 100%; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; padding: 6px 14px; border-radius: 999px; color: #fff; margin-bottom: 26px; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); }
  .tag-grad .tt { display: inline-flex; align-items: center; white-space: nowrap; }
  .tag-grad .tag-teco { height: 1.5em; width: auto; margin-left: 7px; vertical-align: middle; }
  @media (max-width: 1024px) {
    /* スマホ：丸タグ背景を外し、動くグラデーション文字だけに */
    .tag-grad { flex-direction: column; align-items: center; align-self: center; text-align: center; gap: 2px; font-size: 12px; padding: 0; box-shadow: none; background: none; }
    /* グラデのclipはflexの.tag-gradではなく通常フローの.ttに当てる（flex×background-clip:textの全角グリフ欠け対策） */
    .tag-grad .tt { display: inline-block; line-height: 1.7;
      background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink), var(--gold)); background-size: 200% auto;
      -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
      animation: ctaText 2.4s linear infinite; }
    .tag-grad .tag-teco { -webkit-text-fill-color: initial; }
  }
  .lead-h { font-weight: 900; font-size: clamp(26px, calc(4.6vw - 14px), 48px); line-height: 1.36; letter-spacing: 0.01em; text-shadow: 0 2px 30px rgba(0,0,0,0.55); }
  .lead-p { margin-top: 26px; font-size: 15px; line-height: 2.2; color: rgba(255,255,255,0.92); max-width: 460px; text-shadow: 0 1px 12px rgba(0,0,0,0.5); }
  .scroll-cue { margin-top: 52px; font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 0.2em; color: rgba(255,255,255,0.7); display: flex; align-items: center; gap: 10px; }
  .scroll-cue::after { content: ''; width: 1px; height: 40px; background: linear-gradient(180deg, #fff, transparent); animation: cue 1.8s ease-in-out infinite; }
  @keyframes cue { 0%,100% { opacity: .3; transform: scaleY(.6); transform-origin: top; } 50% { opacity: 1; transform: scaleY(1); } }

  .sec-light { background: var(--paper); color: var(--navy); }
  .sec-title { display: flex; flex-direction: column; gap: 6px; margin-bottom: 38px; }
  .sec-title::before { counter-increment: sec; content: counter(sec, decimal-leading-zero); font-family: 'Anton', sans-serif; font-weight: 400; font-size: clamp(34px, 3.8vw, 48px); line-height: 0.95; letter-spacing: 0.02em; margin-bottom: 4px; background: linear-gradient(120deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; width: fit-content; }
  .sec-title .en { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 16px; letter-spacing: 0.22em; text-transform: uppercase; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; width: fit-content; }
  .sec-title .jp { font-family: "Stack Sans Notch", "General Sans", "Zen Kaku Gothic New", sans-serif; font-weight: 700; font-size: clamp(30px, 3.6vw, 50px); line-height: 1.25; letter-spacing: 0.01em; }

  /* タイトルの改行制御：日本語が語中で折り返さない */
  .lead-h, .sec-title .jp, .apply .big, .eb-title, .rhero-h { word-break: keep-all; overflow-wrap: anywhere; }

  /* ホバー演出：色変化＋縁をグラデーションが走る */
  @keyframes runBorder { to { background-position: 300% 0; } }
  .feat-card { position: relative; transition: transform .4s var(--e-spring); }
  .feat-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink), var(--gold)); background-size: 300% 100%; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .35s; pointer-events: none; }
  .feat-card:hover { transform: translateY(-4px); }
  .feat-card:hover::after { opacity: 1; animation: runBorder 2.4s linear infinite; }
  .feat-card .ico { transition: transform .4s var(--e-spring); }
  /* 参加資格アイコンはホバーで動かさない */
  .ben-row { transition: background .3s, transform .3s; border-radius: 10px; }
  .ben-row:hover { background: rgba(34,211,238,0.07); transform: translateX(5px); }
  .ben-row .bico { transition: transform .35s var(--e-spring); }
  /* BENEFITSアイコンはホバーで動かさない */
  .faq-item summary { transition: color .3s; }
  .faq-item summary:hover { color: var(--orange); }
  .event-box { transition: transform .4s var(--e-spring), box-shadow .4s; }
  .event-box:hover { transform: translateY(-3px); box-shadow: 0 22px 50px -26px rgba(34,211,238,0.5); }
  .btn-more:hover .circ { transform: translateX(4px) scale(1.05); }
  .sec-light .body { font-size: 15px; line-height: 2.1; color: #3a4768; max-width: 480px; }
  .btn-more { display: inline-flex; align-items: center; gap: 14px; margin-top: 32px; font-weight: 700; font-size: 14px; }
  .btn-more .circ { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(30,41,57,0.3); display: flex; align-items: center; justify-content: center; transition: all .4s; }
  .sec-light .btn-more { color: var(--navy); }
  .sec-light .btn-more:hover .circ { background: var(--pink); border-color: var(--pink); color: #fff; transform: translateX(4px); }

  /* About下のロゴ画像＋メタリック演出（ロゴ形状にマスクした光沢＆金属色シフト） */
  .about-logo { position: relative; display: inline-block; line-height: 0; margin: 0 0 38px; filter: drop-shadow(0 10px 26px rgba(0,0,0,0.22)); }
  .about-logo img { display: block; width: clamp(240px, 32vw, 420px); height: auto; }
  @media (max-width: 1024px) {
    .about-logo { display: block; width: min(100%, 460px); margin: 36px auto; }
    .about-logo img { width: 100%; }
  }
  .about-logo::before, .about-logo::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    -webkit-mask: url("assets/img_section1.png") center / contain no-repeat;
    mask: url("assets/img_section1.png") center / contain no-repeat;
  }
  /* 金属色のゆらぎ（シルバー〜ブルー） */
  .about-logo::before {
    background: linear-gradient(115deg, rgba(120,150,210,0) 10%, rgba(210,222,245,0.65) 40%, rgba(255,255,255,0) 58%, rgba(150,170,215,0.55) 85%);
    background-size: 230% 100%; mix-blend-mode: overlay; opacity: 0.7;
    animation: metalShift 6s ease-in-out infinite alternate;
  }
  /* 走る光沢（ハイライトのグリント） */
  .about-logo::after {
    background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,0.92) 49%, rgba(255,255,255,0.15) 55%, transparent 66%);
    background-size: 260% 100%; mix-blend-mode: screen;
    animation: sheen 3s linear infinite;
  }
  @keyframes sheen { 0% { background-position: 165% 0; } 100% { background-position: -65% 0; } }
  @keyframes metalShift { 0% { background-position: 0% 0; } 100% { background-position: 130% 0; } }

  .sec-dark { background: #0b1120; border-color: var(--line); }
  .sec-dark .body { font-size: 15px; line-height: 2.1; color: rgba(255,255,255,0.8); max-width: 520px; }
  /* 締めセクション */
  .closing-sec { text-align: center; }
  .closing-sec .closing-lead { font-weight: 900; font-size: clamp(22px, 3vw, 34px); line-height: 1.5; color: #fff; margin-bottom: 14px; }
  .closing-sec .closing-lead .g { background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
  .closing-sec .closing-sub { font-size: 14px; line-height: 2; color: rgba(255,255,255,0.66); }
  /* toB訴求セクション：背景色＋波打つアニメ */
  .sec-teco { background: linear-gradient(140deg, #0a1228, #070b1c); border-color: rgba(34,211,238,0.28); }
  .sec-teco::before { inset: -25%; background: radial-gradient(38% 42% at 22% 30%, rgba(47,107,255,0.40), transparent 62%), radial-gradient(44% 46% at 82% 36%, rgba(124,92,255,0.34), transparent 62%), radial-gradient(50% 52% at 48% 90%, rgba(34,211,238,0.34), transparent 62%); filter: blur(26px); animation: tecoFlow 11s ease-in-out infinite alternate; }
  @keyframes tecoFlow { 0% { transform: translate(0,0) scale(1) rotate(0deg); } 100% { transform: translate(-5%,-4%) scale(1.18) rotate(7deg); } }
  .sec-teco .teco-punch { font-weight: 900; font-size: clamp(20px, 2.4vw, 30px); line-height: 1.5; color: #fff; margin: 0 0 16px; }
  .sec-teco .teco-punch .g { background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
  .sec-teco .body strong { color: #fff; font-weight: 800; }
  .feat-grid { display: flex; flex-direction: column; gap: 18px; }
  .feat-card { background: var(--ink-2); border: 1px solid var(--line); border-radius: 6px; padding: 28px; display: flex; gap: 22px; align-items: flex-start; }
  .feat-card .ico { flex-shrink: 0; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; }
  .feat-card .ico img { width: 100%; height: 100%; object-fit: contain; display: block; }
  .feat-card .num { font-family: 'Anton', sans-serif; font-weight: 400; font-size: 16px; color: var(--muted); letter-spacing: 0.06em; }
  .feat-card .ct { font-weight: 900; font-size: 18px; line-height: 1.5; margin: 4px 0 10px; }
  .feat-card .cd { font-size: 13.5px; line-height: 1.95; color: rgba(255,255,255,0.7); }

  /* 特典（控えめ・明・アイコン付き） */
  .ben-row { display: flex; align-items: center; gap: 18px; padding: 20px 0; border-top: 1px solid rgba(30,41,57,0.14); }
  .ben-row .bico { flex-shrink: 0; width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; }
  .ben-row .bico img { width: 100%; height: 100%; object-fit: contain; display: block; }
  /* BENEFITS：厚遇を強調する大胆カード */
  .ben-grid { display: flex; flex-direction: column; gap: 16px; }
  .ben-card { position: relative; overflow: hidden; display: flex; align-items: center; gap: 22px; padding: 24px 30px; border-radius: 14px; background: #fff; border: 1px solid rgba(30,41,57,0.10); box-shadow: 0 18px 42px -24px rgba(124,92,255,0.45); transition: transform .35s var(--e-spring), box-shadow .35s; }
  .ben-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink), var(--gold)); background-size: 300% 100%; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .35s; pointer-events: none; }
  .ben-card:hover::after { opacity: 1; animation: runBorder 2.4s linear infinite; }
  .ben-card:hover { transform: translateY(-3px); box-shadow: 0 28px 56px -24px rgba(124,92,255,0.6); }
  .ben-card .b-ico { width: 62px; height: 62px; flex-shrink: 0; }
  .ben-card .b-ico img { width: 100%; height: 100%; object-fit: contain; display: block; }
  .ben-card .b-lbl { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: 0.1em; color: var(--orange); text-transform: uppercase; margin-bottom: 2px; }
  .ben-card .b-amt { font-family: 'Anton', sans-serif; font-size: clamp(36px, 5vw, 50px); line-height: 1.04; letter-spacing: 0.01em; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
  .ben-card .b-amt small { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 0.4em; -webkit-text-fill-color: var(--navy); color: var(--navy); }
  .ben-card .b-desc { font-size: 13px; color: #3a4768; margin-top: 5px; line-height: 1.65; }
  .ben-row .amt { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 22px; color: var(--navy); min-width: 122px; }
  .ben-row .amt small { font-size: 12px; color: var(--muted); }
  .ben-row .d { font-size: 14px; color: #3a4768; }

  /* フロー（アイコン付き） */
  .flow-step { display: flex; gap: 18px; padding: 20px 0; border-top: 1px solid var(--line); align-items: center; }
  .flow-step .fico { flex-shrink: 0; width: 50px; height: 50px; border-radius: 50%; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, rgba(47,107,255,0.20), rgba(124,92,255,0.20)); }
  .flow-step .n { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 13px; color: transparent; background: linear-gradient(135deg, var(--gold), var(--pink)); -webkit-background-clip: text; background-clip: text; min-width: 26px; }
  .flow-step .t { font-weight: 700; font-size: 16px; }
  .flow-step .s { font-size: 13px; color: rgba(255,255,255,0.6); margin-top: 3px; }

  /* FAQ */
  .faq-item { border-top: 1px solid rgba(30,41,57,0.14); }
  .faq-item summary { list-style: none; cursor: pointer; padding: 20px 0; font-weight: 700; font-size: 15.5px; display: flex; justify-content: space-between; gap: 16px; }
  .faq-item summary::-webkit-details-marker { display: none; }
  .faq-item summary .pm { color: var(--pink); transition: transform .3s; font-weight: 800; }
  .faq-item[open] summary .pm { transform: rotate(45deg); }
  .faq-item .a { font-size: 14px; line-height: 2; color: #3a4768; padding: 0 0 22px; }

  /* アクセス（アイコン付き） */
  .map-frame { aspect-ratio: 16/9; border-radius: 6px; overflow: hidden; position: relative; background: linear-gradient(135deg, #0e1630, #070b18); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; margin-bottom: 26px; }
  .map-frame::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(34,211,238,0.16) 1px, transparent 1px), linear-gradient(90deg, rgba(34,211,238,0.16) 1px, transparent 1px); background-size: 34px 34px; }
  /* 住所非公開：ロック座標＋レーダー演出 */
  .map-frame .sweep { position: absolute; top: 50%; left: 50%; width: 150%; height: 150%; transform: translate(-50%,-50%); background: conic-gradient(from 0deg, rgba(34,211,238,0.22), rgba(34,211,238,0) 70deg); animation: mapSweep 6s linear infinite; mix-blend-mode: screen; pointer-events: none; }
  @keyframes mapSweep { to { transform: translate(-50%,-50%) rotate(360deg); } }
  .map-frame .ring { position: absolute; top: 50%; left: 50%; width: 40px; height: 40px; border: 1.5px solid rgba(34,211,238,0.5); border-radius: 50%; transform: translate(-50%,-50%); animation: mapPing 3.2s ease-out infinite; pointer-events: none; }
  .map-frame .ring:nth-of-type(2) { animation-delay: 1.05s; }
  .map-frame .ring:nth-of-type(3) { animation-delay: 2.1s; }
  @keyframes mapPing { 0% { width: 34px; height: 34px; opacity: .85; } 100% { width: 78%; height: 78%; opacity: 0; } }
  .map-frame .locpin { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 50px; height: 50px; border-radius: 50%; background: linear-gradient(135deg, var(--gold), var(--orange), var(--pink)); display: flex; align-items: center; justify-content: center; color: #0b0d16; box-shadow: 0 0 34px rgba(124,92,255,0.6); z-index: 3; }
  .map-frame .locpin svg { width: 22px; height: 22px; }
  .map-frame .m-coord { position: absolute; top: 14px; right: 16px; font-family: 'JetBrains Mono','Space Grotesk',monospace; font-size: 10px; letter-spacing: 0.1em; color: rgba(255,255,255,0.42); z-index: 2; }
  .map-frame .m-label { position: absolute; left: 16px; bottom: 14px; font-family: 'JetBrains Mono','Space Grotesk',monospace; font-size: 10px; letter-spacing: 0.12em; color: rgba(255,255,255,0.7); z-index: 2; display: inline-flex; align-items: center; gap: 6px; }
  .map-frame .m-label b { color: var(--orange); letter-spacing: 0.18em; }
  .map-frame .m-label .led { width: 6px; height: 6px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 8px var(--orange); animation: ledBlink 1.4s steps(1) infinite; }
  @keyframes ledBlink { 50% { opacity: 0.25; } }
  .map-frame .m-note { position: absolute; left: 0; right: 0; top: calc(50% + 44px); text-align: center; font-size: 11.5px; color: rgba(255,255,255,0.6); z-index: 2; letter-spacing: 0.02em; }
  .acc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 24px; }
  .acc-grid .cell { display: flex; gap: 14px; align-items: flex-start; }
  .acc-grid .aico { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; background: rgba(255,255,255,0.05); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; color: #86dcff; }
  .acc-grid .k { font-family: 'Inter', sans-serif; font-size: 10px; letter-spacing: 0.16em; color: #86dcff; }
  .acc-grid .v { font-weight: 700; font-size: 15px; margin-top: 3px; }
  .acc-grid .v small { color: var(--muted); font-weight: 400; font-size: 12px; }

  /* Apply */
  .apply { background: linear-gradient(135deg, #0a1430, #070d1c); text-align: center; }
  .apply .big { font-weight: 900; font-size: clamp(34px, 4.5vw, 60px); line-height: 1.2; margin-bottom: 14px; }
  .apply .lead { color: rgba(255,255,255,0.8); margin-bottom: 30px; font-size: 14px; }
  .btn-line { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 10px; border: 2px solid transparent; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)) border-box; color: #fff; font-weight: 800; font-size: 16px; padding: 16px 32px; border-radius: 6px; transition: transform .35s var(--e-spring), color .3s; }
  .btn-line:hover { transform: translateY(-3px) scale(1.03); color: var(--orange); }
  /* CTA背景：白を左→右にワイプ（パッと切替えない） */
  .eb-cta::before, .btn-line::before { content: ''; position: absolute; inset: 0; z-index: 0; background: #fff; border-radius: inherit; clip-path: inset(0 100% 0 0); transition: clip-path .55s cubic-bezier(.4,0,.2,1); pointer-events: none; }
  .eb-cta:hover::before, .btn-line:hover::before { clip-path: inset(0 0 0 0); }
  .eb-cta > *, .btn-line > * { position: relative; z-index: 1; }
  /* CTAテキスト：ホバーで動くグラデーション */
  @keyframes ctaText { to { background-position: 200% center; } }
  .eb-cta:hover .cta-txt, .btn-line:hover .cta-txt { background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink), var(--gold)); background-size: 200% auto; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; animation: ctaText 1.6s linear infinite; }
  .apply .dl { margin-top: 22px; font-family: 'Inter', sans-serif; font-size: 12px; color: rgba(255,255,255,0.6); }

  .footer { background: #05070f; padding: 60px; border-top: 1px solid var(--line); }
  .footer .footer-punch { font-weight: 900; font-size: clamp(22px, 3vw, 36px); line-height: 1.45; color: #fff; margin-bottom: 12px; word-break: keep-all; }
  .footer .footer-punch .g { background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
  .footer .footer-sub { font-size: 13.5px; line-height: 1.9; color: rgba(255,255,255,0.6); margin-bottom: 34px; max-width: 560px; }
  .footer .sdb { font-family: 'Anton', sans-serif; font-size: 52px; line-height: 1; background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
  .footer .links { display: flex; gap: 18px; margin-top: 22px; font-size: 12px; color: var(--muted); flex-wrap: wrap; }
  .footer .links a { display: inline-flex; align-items: center; gap: 7px; transition: color .3s; }
  .footer .links a:hover { color: #fff; }
  .footer .links .sns-ico { width: 19px; height: 19px; flex-shrink: 0; }
  .footer .copy { margin-top: 28px; font-size: 11px; color: #4a4f60; font-family: 'Inter', sans-serif; }

  .ticker { position: fixed; right: 14px; top: 50%; transform: translateY(-50%); z-index: 40; display: flex; flex-direction: column; gap: 7px; }
  .ticker .t { width: 2px; height: 10px; background: rgba(255,255,255,0.25); border-radius: 2px; transition: all .3s; }
  .ticker .t.on { background: #fff; height: 24px; }

  .ic24 { width: 24px; height: 24px; }

  .rv { opacity: 0; transform: translateY(var(--rv-dist)); transition: opacity var(--dur-rv) var(--e-enter), transform var(--dur-rv) var(--e-enter); }
  .rv.in { opacity: 1; transform: none; }
  /* ===== 方向性セクション入場（種別で“入りの方向”を変える） =====
     白（料金・比較・声・FAQ・会社）＝左から差し込む／コンセプト（奥から前へ）／暗＝既定の下から上へ */
  .rv.rv-side { transform: translateX(var(--rv-side)); }
  .rv.rv-fwd { transform: translateY(18px) scale(.965); }
  .rv.in.rv-side, .rv.in.rv-fwd { transform: none; }

  @media (max-width: 1024px) {
    .hero-fixed { position: relative; width: 100%; height: auto; min-height: 90vh; padding: 92px 26px 44px; }
    .content { margin-left: 0; width: 100%; padding: 0 14px; }
    .bg-scrim { background: linear-gradient(180deg, transparent 42%, rgba(10,10,18,0.55) 100%); }
    .sec { max-width: 100%; margin: 0 auto 26px; padding: 44px 26px; }
    .content .sec:first-of-type { margin-top: 26px; }
    .sec-lead { max-width: 100%; margin: 26px auto; padding: 56px 26px; }
    .acc-grid { grid-template-columns: 1fr; }
    .ticker { display: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    /* メタリックロゴ(sec1)とレーダー地図(sec7)の微細なアンビエント演出は、reduced-motionでも維持（酔いを誘発しにくく、ブランド表現の要のため） */
    .scroll-cue::after, .topbar-logo img, .hero-symbol .sdb, .hero-symbol .en, .event-box, .crt::after, .feat-card:hover::after, .ben-card:hover::after, .eb-cta:hover .cta-txt, .btn-line:hover .cta-txt, .sec::before, .sec-teco::before, .tag-grad, .tag-grad .tt { animation: none !important; }
    .rv { opacity: 1; transform: none; }
    .rv-side, .rv-fwd { transform: none !important; }
  }
  /* スマホ：レーダー地図のテキスト重なりを解消（縦に余白を確保し、注記を下部ラベルの上へ固定） */
  @media (max-width: 640px) {
    .map-frame { aspect-ratio: 4 / 3; }
    .map-frame .m-coord { top: 12px; right: 12px; font-size: 9px; letter-spacing: 0.06em; }
    .map-frame .m-note { top: auto; bottom: 50px; padding: 0 18px; font-size: 11px; line-height: 1.5; text-shadow: 0 1px 6px rgba(0,0,0,0.85); }
    .map-frame .m-label { bottom: 16px; left: 14px; font-size: 9px; }
  }
