/* =========================================================
   画像素材（同じフォルダ内のファイル名）
   ※ 割り当てが違う場合はここのURLを差し替えてください
   ========================================================= */
:root{
  /* BBアイコン（画像を埋め込み済み） */
  --bb-icon:url("data:image/webp;base64,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");
  --img-hero:     url("../img/hero.png");
  --img-about:    url("../img/about-bg.png");

  --navy:#0b1838;
  --navy-deep:#0a1430;
  --blue:#0a5cff;
  --blue-2:#2f7bff;
  --text:#1d2433;
  --muted:#5b6475;
  --line:#e3e9f3;
  --bg-soft:#f5f8fd;
  --white:#fff;
  --en:"Inter",system-ui,sans-serif;
  --jp:"Noto Sans JP","Hiragino Sans",sans-serif;
  --logo:"Tinos","Times New Roman",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--jp);color:var(--text);background:var(--white);line-height:1.8;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(1120px,100% - 48px);margin-inline:auto}
.eyebrow{font-family:var(--en);font-size:11px;letter-spacing:.32em;color:var(--blue-2);font-weight:500;text-transform:uppercase}
.section-title{font-family:var(--en);font-weight:300;font-size:clamp(28px,3.6vw,40px);letter-spacing:-.01em;color:var(--navy);line-height:1.2;margin-top:18px}

/* ボタン（CSSのみで光沢ブルーを表現） */
.btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
  color:#fff;font-weight:500;letter-spacing:.08em;border-radius:10px;
  background:linear-gradient(180deg,#3d8bff 0%,#0a5cff 55%,#0047e0 100%);
  border:1px solid rgba(255,255,255,.25);
  box-shadow:0 10px 28px rgba(10,92,255,.35), inset 0 1px 0 rgba(255,255,255,.45);
  transition:transform .25s, box-shadow .25s, filter .25s;
}
.btn::before{content:"";position:absolute;left:0;right:0;top:0;height:50%;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0));pointer-events:none}
.btn:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 16px 38px rgba(10,92,255,.45), inset 0 1px 0 rgba(255,255,255,.45)}
.btn-lg{padding:16px 40px;font-size:15px;min-width:220px}
.btn-sm{padding:8px 18px;font-size:12px;border-radius:999px}

/* ===== Header ===== */
.header{position:absolute;inset:0 0 auto;z-index:10}
.header .container{display:flex;align-items:center;justify-content:space-between;height:76px}
/* ===== Brand（ロゴ） ===== */
.brand{display:inline-flex;align-items:center;gap:12px;--mark:42px;--name:21px}
.brand__mark{
  position:relative;flex:none;width:var(--mark);height:var(--mark);border-radius:calc(var(--mark) * .23);overflow:hidden;
  background:#0a4fe0;
  box-shadow:0 8px 22px rgba(10,92,255,.35);
  animation:markIn .9s cubic-bezier(.2,1.4,.4,1) 1.15s backwards;
  transition:transform .4s cubic-bezier(.2,1.4,.4,1);
}
.brand__icon{position:absolute;inset:0;background:var(--bb-icon) center/102% 102% no-repeat}
/* アイコン右上の水玉にぴったり重ねて、ふわっと光らせる */
.brand__spark{
  position:absolute;z-index:2;left:83.6%;top:21.5%;
  width:22%;height:22%;border-radius:50%;
  background:radial-gradient(circle,rgba(230,250,255,.95) 0%,rgba(160,230,255,.55) 32%,rgba(120,210,255,0) 70%);
  mix-blend-mode:screen;transform:translate(-50%,-50%);
  animation:sparkPulse 2.4s ease-in-out infinite;
}
@keyframes sparkPulse{0%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.15;transform:translate(-50%,-50%) scale(.7)}}
/* 見出しと同じタイミングで光が走る */
.brand__mark::after{
  content:"";position:absolute;inset:-30%;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.85) 50%,transparent 62%);
  transform:translateX(-110%);
  animation:markShine 3.6s cubic-bezier(.65,0,.35,1) 2.4s infinite;
}
.brand:hover .brand__mark{transform:rotate(-8deg) scale(1.06)}
.brand__text{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--en);font-weight:800;font-size:var(--name);letter-spacing:-.025em;color:var(--navy);white-space:nowrap}
.brand__name b{font-weight:800;background:linear-gradient(90deg,#0a5cff,#38b6ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.brand__name small{font-size:.5em;font-weight:600;letter-spacing:.14em;color:#7a87a3;margin-left:6px;vertical-align:.35em}
.brand__tag{font-family:var(--en);font-size:calc(var(--name) * .41);font-weight:500;letter-spacing:.32em;color:#6f7f9f;text-transform:uppercase;margin-top:7px;white-space:nowrap}
.brand--light .brand__name{color:#fff}
.brand--light .brand__name small{color:#9fb3d9}
.brand--light .brand__name b{background-image:linear-gradient(90deg,#4da3ff,#8ee0ff)}
.brand--light .brand__tag{color:#8fb0e6}
.brand--light .brand__mark{box-shadow:0 10px 30px rgba(47,123,255,.55)}
.brand--lg{--mark:60px;--name:32px;gap:16px}
.brand--sm{--mark:34px;--name:18px}
@keyframes markIn{from{opacity:0;transform:scale(.4) rotate(-25deg)}to{opacity:1;transform:none}}
@keyframes markShine{0%{transform:translateX(-110%)}18%,100%{transform:translateX(110%)}}
@media (prefers-reduced-motion:reduce){.brand__mark,.brand__mark::after,.brand__spark{animation:none}}
.nav{display:flex;align-items:center;gap:32px;font-family:var(--en);font-size:13px;color:var(--navy)}
.nav a:not(.btn):hover{color:var(--blue)}
.menu-toggle{display:none}

/* ===== Hero ===== */
/* --- FV ---
   画像は右端からはみ出させて躍動感を出しつつ、
   ・上端はヘッダーの下（--hero-top）から開始 → ナビ/ボタンに被らない
   ・幅に上限（--hero-w）→ 大画面で巨大化してヘッダーへめり込まない
   ・左端はフェード → テキスト側と自然になじむ */
.hero{
  --hero-top:88px;
  --hero-w:min(60vw,1040px);
  position:relative;overflow:hidden;
  min-height:max(600px,calc(var(--hero-top) + var(--hero-w) * .62 + 24px));
  padding-top:76px;
  background:radial-gradient(ellipse 50% 60% at 78% 45%,#e4eefd 0%,rgba(228,238,253,0) 70%),linear-gradient(180deg,#f3f7fe 0%,#fff 100%);
}
.hero__grid{width:min(1120px,100% - 48px);margin-inline:auto;display:flex;align-items:center;min-height:calc(var(--hero-top) + var(--hero-w) * .62 - 76px)}
.hero__inner{position:relative;z-index:2;max-width:580px;padding:40px 0 64px}
.hero__stage{
  position:absolute;z-index:1;
  top:var(--hero-top);
  /* 「Navigating〜」テキストの右端と画面右端のちょうど中間に画像の中心を置く */
  --text-end:calc(max(24px,(100vw - 1120px) / 2) + 500px);
  /* 末尾の clamp() が「中間から左へずらす量」。もっと左に寄せたい時はここを大きく */
  left:calc((var(--text-end) + 100vw) / 2 - var(--hero-w) / 2 - clamp(30px,4vw,90px));
  width:var(--hero-w);aspect-ratio:3/2;
  /* マウスに合わせて立体的に傾く（JSが --rx/--ry を更新） */
  transform:perspective(1400px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
}
.hero__visual{
  position:absolute;inset:0;
  background:var(--img-hero) center/contain no-repeat;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%),linear-gradient(180deg,#000 82%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 16%),linear-gradient(180deg,#000 82%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect;
  animation:heroIn 1.4s cubic-bezier(.16,1,.3,1) 1.25s both, heroFloat 7s ease-in-out 2.65s infinite;
  filter:drop-shadow(0 30px 50px rgba(30,80,180,.12));
}
/* 見出しのシャイン（左→右に光が「シュインッ」と走る） */
/* 文字本体は紺のまま。光の帯だけを、同じ文字の透明なコピー（JSで生成）に流す */
.hero__title{position:relative}
.hero__title-shine{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 0%,transparent 42%,#1f6bff 46.5%,#8fd3ff 50%,#1f6bff 53.5%,transparent 58%,transparent 100%);
  background-size:300% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:titleShine 3.6s cubic-bezier(.65,0,.35,1) 2.4s infinite;
}
/* 0.65秒で一気に走り抜け、残りは静止 → 約3.6秒ごとに繰り返し */
@keyframes titleShine{0%{background-position:100% 0}18%,100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.hero__title-shine{display:none}}
/* ===== FV：虹色に揺らめく2つの淡い光（ゆっくり螺旋運動） =====
   外側(.orb)が回転＝公転、内側(span)が中心からの距離を伸縮 → 合わさって螺旋を描く */
.hero__orbs{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
/* 位置・色・透明度はページ下部のスクリプトで計算（トルネード型の螺旋） */
.orb{position:absolute;left:0;top:0;width:var(--orb,60px);height:var(--orb,60px);margin:calc(var(--orb,60px) / -2) 0 0 calc(var(--orb,60px) / -2);
  border-radius:50%;filter:blur(12px);opacity:0;will-change:transform,opacity,background}
.orb--b{--orb:52px}
@keyframes heroIn{from{opacity:0;transform:translate(120px,40px) scale(.88) rotate(-3deg);filter:blur(14px) drop-shadow(0 30px 50px rgba(30,80,180,.12))}to{opacity:1;transform:none;filter:blur(0) drop-shadow(0 30px 50px rgba(30,80,180,.12))}}
@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media (prefers-reduced-motion:reduce){.hero__visual{animation:none}}
.hero__title{font-family:var(--en);font-weight:800;font-size:clamp(40px,5.4vw,64px);line-height:1.12;letter-spacing:-.025em;color:var(--navy);margin:26px 0 24px;padding-bottom:.14em}
.hero__lead{font-size:15px;line-height:2;max-width:380px;margin-bottom:28px}

/* ===== Services ===== */
.services{padding:40px 0 40px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:36px}
.service-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 16px 18px;box-shadow:0 6px 24px rgba(20,50,120,.05);transition:transform .3s,box-shadow .3s;overflow:hidden}
.service-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(20,50,120,.12)}
.service-card__head{position:relative;height:120px}
.service-card__num{font-family:var(--logo);font-size:28px;color:var(--blue);line-height:1}
.service-card__en{font-family:var(--en);font-weight:300;font-size:17px;line-height:1.2;color:var(--navy);margin-top:12px;position:relative;z-index:1}
.service-card__img{position:absolute;right:-6px;top:6px;width:58%;height:110px;object-fit:contain;mix-blend-mode:multiply}
.service-card h3{font-size:14px;font-weight:700;margin:12px 0 10px;color:var(--navy)}
.service-card{container-type:inline-size}
/* 説明文は常に1行。カード幅が狭い時は文字サイズを自動で縮めて収める */
.service-card p{font-size:min(12.5px,calc(100cqi / 28.6));white-space:nowrap;color:var(--muted);line-height:1.9}

/* ===== Results ===== */
.results{background:var(--bg-soft);padding:80px 0 88px;margin-top:72px}
.results__top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.results__catch{font-size:19px;line-height:1.6;color:var(--navy);letter-spacing:.06em}
.stats{display:grid;grid-template-columns:repeat(5,1fr);margin-top:36px}
.stat{text-align:center;padding:4px 8px}
.stat+.stat{border-left:1px solid #d7deea}
.stat__num{font-family:var(--en);font-weight:500;font-size:clamp(28px,3vw,34px);color:var(--blue);line-height:1.2;letter-spacing:-.02em}
.stat__num small{font-size:.6em;font-weight:600;margin-left:2px}
.stat__label{font-size:12.5px;color:var(--muted);margin-top:6px}

/* ===== Approach ===== */
.approach{position:relative;padding:112px 0 120px;background:radial-gradient(ellipse 60% 70% at 70% 50%,#e3edfd 0%,rgba(240,245,253,.6) 50%,#f7f9fd 100%);overflow:hidden}
.approach .container{display:grid;grid-template-columns:300px 1fr;align-items:center;gap:20px}
.approach__title{font-family:var(--en);font-weight:300;font-size:clamp(30px,3.4vw,38px);line-height:1.15;color:var(--navy);margin:18px 0 22px}
.approach__text{font-size:15px;line-height:2}
.circles{display:flex;justify-content:center}
.circle{
  width:210px;aspect-ratio:1;border-radius:50%;margin-left:-38px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.95),rgba(232,240,253,.65) 60%,rgba(214,228,252,.55));
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 20px 50px rgba(40,90,190,.14), inset 0 0 30px rgba(255,255,255,.8), inset 0 -10px 30px rgba(120,160,240,.15);
  backdrop-filter:blur(6px);
}
.circle:first-child{margin-left:0}
.circle__icon{width:54px;height:54px;object-fit:contain;margin-bottom:8px;mix-blend-mode:multiply}
.circle h3{font-family:var(--en);font-weight:500;font-size:21px;color:var(--navy);line-height:1.2;margin-bottom:10px}
.circle p{font-size:12px;color:var(--muted);line-height:1.8}

/* ===== About ===== */
.about{position:relative;color:#fff;padding:120px 0 128px;background:var(--img-about) center/cover no-repeat, var(--navy-deep);overflow:hidden}
.about::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,16,42,.9) 0%,rgba(8,16,42,.82) 45%,rgba(8,16,42,.7) 72%,rgba(8,16,42,.4) 100%)}
.about .container{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:0}
.about__intro{padding-right:56px}
.about .eyebrow{color:#5aa2ff;display:flex;align-items:center;gap:14px}
.about .eyebrow::after{content:"";width:44px;height:1px;background:currentColor;opacity:.8}
.about .brand{margin:22px 0 22px}
.about__tag{font-family:var(--en);font-size:17px;font-weight:500;letter-spacing:.08em;color:#e6edfb}
.about__body{border-left:1px solid rgba(255,255,255,.22);padding:8px 0 8px 64px}
.about__head{font-family:var(--en);font-weight:600;font-size:clamp(34px,3.6vw,52px);line-height:1.1;letter-spacing:-.02em;color:#fff}
.about__head-ja{display:block;font-family:var(--jp);font-weight:500;font-size:clamp(22px,2.2vw,30px);letter-spacing:.12em;margin-top:14px;color:#fff}
.about__story{margin-top:34px;display:grid;gap:18px}
.about__story p{font-size:15px;line-height:2;letter-spacing:.08em;color:#f1f5ff;font-weight:500;text-shadow:0 1px 2px rgba(4,10,30,.9),0 0 18px rgba(4,10,30,.85)}
.about__story p.about__closing{margin-top:6px;color:#fff;font-weight:700;font-size:16px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.about__story em{font-style:normal;color:#9fd4ff;font-weight:700}
/* 右上に輝く星（ロゴの「次の成長を示す光」） */
.about__star{position:absolute;top:13%;right:9%;width:10px;height:10px;border-radius:50%;background:#fff;z-index:0;
  box-shadow:0 0 12px 4px #9fd0ff,0 0 40px 14px rgba(70,150,255,.6),0 0 90px 30px rgba(40,110,255,.35);animation:starTwinkle 3.2s ease-in-out infinite}
.about__star::before,.about__star::after{content:"";position:absolute;left:50%;top:50%;background:linear-gradient(90deg,transparent,rgba(200,230,255,.95),transparent);transform:translate(-50%,-50%)}
.about__star::before{width:160px;height:2px}
.about__star::after{width:2px;height:120px;background:linear-gradient(180deg,transparent,rgba(200,230,255,.95),transparent)}
@keyframes starTwinkle{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.75}}
@media (prefers-reduced-motion:reduce){.about__star{animation:none}}

/* ===== Footer ===== */
.footer{padding:36px 0 40px;background:#fff}
.footer .container{display:flex;align-items:center;gap:48px}
.footer__nav{display:flex;gap:28px;font-family:var(--en);font-size:13px;color:var(--navy)}
.footer__nav a:hover{color:var(--blue)}
.footer__right{margin-left:auto;display:flex;align-items:center;gap:22px}
.sns{display:flex;gap:18px;padding-right:22px;border-right:1px solid var(--line)}
.sns svg{width:20px;height:20px;fill:var(--navy)}
.copy{font-family:var(--en);font-size:12px;color:var(--navy)}

/* ===== Responsive ===== */
@media (max-width:960px){
  .nav{gap:20px;font-size:12px}
  .hero{min-height:0;padding-bottom:40px}
  .hero__grid{display:block;min-height:0}
  .hero__inner{padding:40px 0 8px}
  .hero__stage{position:relative;top:auto;left:auto;right:auto;width:calc(100% + 24px);margin-left:auto}
  .hero__visual{
    -webkit-mask-image:linear-gradient(180deg,#000 85%,transparent 100%);mask-image:linear-gradient(180deg,#000 85%,transparent 100%)}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(3,1fr);row-gap:24px}
  .stat:nth-child(4){border-left:none}
  .approach .container{grid-template-columns:1fr}
  .about{padding:88px 0 96px}
  .about .container{grid-template-columns:1fr;gap:40px}
  .about__intro{padding-right:0}
  .about__body{border-left:none;padding:32px 0 0;border-top:1px solid rgba(255,255,255,.22)}
  .about__story p br.pc{display:none}
  .about__star{top:6%;right:8%}
  .footer .container{flex-wrap:wrap;gap:20px}
  .footer__right{margin-left:0;width:100%}
}
@media (max-width:600px){
  .container{width:calc(100% - 32px)}
  .nav{display:none}
  .orb{--orb:40px}
  .orb--b{--orb:34px}
  .brand--lg{--mark:50px;--name:26px}
  .service-grid{grid-template-columns:1fr}
  .results__top{flex-direction:column}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(odd){border-left:none}
  .stat:nth-child(4){border-left:1px solid #d7deea}
  .circles{flex-direction:column;align-items:center}
  .circle{margin:-26px 0 0}
  .circle:first-child{margin-top:0}
  .footer__nav{flex-wrap:wrap;gap:16px}
}

/* =========================================================
   スクロール演出（JSが html に .anim を付けた時だけ有効）
   ========================================================= */
.scroll-bar{position:fixed;left:0;top:0;height:3px;width:100%;z-index:50;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,#0a5cff,#38b6ff,#9b8cff);pointer-events:none}
/* 共通：下からふわっと */
.anim .rv{opacity:0;transform:translateY(48px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.anim .rv.is-in{opacity:1;transform:none}
/* 見出し：単語ごとにマスクの下からせり上がる */
.anim .split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.anim .split .w>span{display:inline-block;transform:translateY(105%) rotate(4deg);transform-origin:0 100%;transition:transform 1.1s cubic-bezier(.2,.85,.2,1);transition-delay:calc(var(--i) * 70ms)}
.anim .split.is-in .w>span{transform:none}
/* 英字の小見出し：字間がキュッと締まりながら現れる */
.anim .eyebrow{opacity:0;letter-spacing:.9em;transition:opacity 1s ease,letter-spacing 1.2s cubic-bezier(.2,.8,.2,1)}
.anim .eyebrow.is-in{opacity:1;letter-spacing:.32em}
/* カード画像：左から右へワイプ */
.anim .service-card__img{clip-path:inset(0 100% 0 0);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1) calc(var(--d,0s) + .35s)}
.anim .service-card.is-in .service-card__img{clip-path:inset(0 0 0 0)}
/* カード本体：少し傾いた状態から起き上がる */
.anim .service-card.rv{transform:translateY(60px) rotateX(18deg);transform-origin:50% 100%}
.anim .service-card.rv.is-in{transform:none}
.service-grid{perspective:1200px}
/* 実績：区切り線が上から伸びる */
.anim .stat+.stat{border-left-color:transparent;position:relative}
.anim .stat+.stat::before{content:"";position:absolute;left:-1px;top:4px;bottom:4px;width:1px;background:#d7deea;transform:scaleY(0);transform-origin:50% 0;transition:transform 1s cubic-bezier(.2,.8,.2,1) calc(var(--d,0s) + .2s)}
.anim .stat.is-in::before{transform:scaleY(1)}
/* 3つの円：ぼかしが晴れながらポンと現れる */
.anim .circle.pop{opacity:0;transform:scale(.6);filter:blur(12px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,1.3,.3,1),filter .9s ease;transition-delay:var(--d,0s)}
.anim .circle.pop.is-in{opacity:1;transform:none;filter:none}
/* About：小さな角丸の窓が画面いっぱいに広がる */
.anim .about.curtain{clip-path:inset(10% 8% 10% 8% round 32px);transition:clip-path 1.4s cubic-bezier(.7,0,.2,1)}
.anim .about.curtain.is-in{clip-path:inset(0 0 0 0 round 0)}
@media (prefers-reduced-motion:reduce){.scroll-bar{display:none}}

/* =========================================================
   FV オープニング演出
   0.0s  白い幕にBBアイコンが光りながら登場
   0.8s  幕が上へスッと抜けて、ページが現れる
   1.0s〜 ヘッダー → 小見出し → 見出し（単語ごと）→ 本文 → 画像 の順に登場
   ※ CSSだけで動くので、JSが動かない環境でも幕は自動で消えます
   ========================================================= */
.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,#ffffff 0%,#eef4ff 60%,#dfe9fd 100%);
  animation:introOut .75s cubic-bezier(.7,0,.2,1) .85s forwards}
.intro__mark{width:84px;height:84px;border-radius:20px;position:relative;overflow:hidden;
  background:var(--bb-icon) center/102% 102% no-repeat,#0a4fe0;
  box-shadow:0 18px 50px rgba(10,92,255,.45);
  animation:introMark .9s cubic-bezier(.2,1.4,.4,1) both}
.intro__mark::after{content:"";position:absolute;inset:-30%;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.9) 50%,transparent 62%);
  transform:translateX(-110%);animation:markShine .7s cubic-bezier(.65,0,.35,1) .35s both}
.intro__ring{position:absolute;width:84px;height:84px;border-radius:50%;border:2px solid rgba(47,123,255,.5);
  animation:introRing 1.1s cubic-bezier(.2,.8,.2,1) .15s both}
@keyframes introMark{from{opacity:0;transform:scale(.3) rotate(-30deg)}to{opacity:1;transform:none}}
@keyframes introRing{from{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(3.2)}}
@keyframes introOut{to{transform:translateY(-100%);visibility:hidden}}

/* 登場の順番 */
.header .container{animation:fvDown 1s cubic-bezier(.16,1,.3,1) 1.05s both}
.hero .eyebrow{animation:fvTrack 1.2s cubic-bezier(.16,1,.3,1) 1.15s both}
.hero__title .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.16em;margin-bottom:-.16em}
.hero__title .w>span{display:inline-block;animation:fvWord 1.1s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(1.25s + var(--i) * 90ms)}
.hero__lead{animation:fvUp 1.1s cubic-bezier(.16,1,.3,1) 1.75s both}
.hero__orbs{animation:fvFade 2s ease 2s both}
@keyframes fvDown{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
@keyframes fvTrack{from{opacity:0;letter-spacing:1em}to{opacity:1;letter-spacing:.32em}}
@keyframes fvWord{from{transform:translateY(110%) rotate(6deg)}to{transform:none}}
@keyframes fvUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fvFade{from{opacity:0}to{opacity:1}}

/* マウスに追従するやわらかいスポットライト */
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:var(--spot,0);transition:opacity .6s ease;
  background:radial-gradient(520px circle at var(--mx,50%) var(--my,40%),rgba(120,170,255,.22),transparent 60%)}
/* 画像の上を走る光の反射（マウスに合わせて移動） */
.hero__glare{position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;opacity:var(--spot,0);transition:opacity .6s ease;
  background:radial-gradient(420px circle at var(--gx,60%) var(--gy,30%),rgba(255,255,255,.55),transparent 60%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%);mask-image:linear-gradient(90deg,transparent 0,#000 16%)}

@media (prefers-reduced-motion:reduce){
  .intro{display:none}
  .header .container,.hero .eyebrow,.hero__title .w>span,.hero__lead,.hero__orbs{animation:none}
}
