:root{--tech-cyan:#5fe6f0;--tech-blue:#2f4cff;--tech-dark:#070b14}
.hero{--hero-x:0px;--hero-y:0px;overflow:hidden;isolation:isolate}
.hero::before,.hero::after{z-index:0}
.hero::after{animation:heroGridDrift 18s linear infinite}
.hero-motion{position:absolute;inset:-10%;z-index:1;pointer-events:none;transform:translate3d(var(--hero-x),var(--hero-y),0);transition:transform .9s cubic-bezier(.16,1,.3,1)}
.hero-orb{position:absolute;border-radius:50%;filter:blur(2px);mix-blend-mode:screen;opacity:.34}
.hero-orb--one{width:34vw;height:34vw;min-width:340px;min-height:340px;right:-7%;top:2%;background:radial-gradient(circle at 42% 45%,rgba(95,230,240,.36),rgba(47,76,255,.12) 42%,transparent 70%);animation:heroOrbOne 12s ease-in-out infinite alternate}
.hero-orb--two{width:26vw;height:26vw;min-width:280px;min-height:280px;right:20%;bottom:-18%;background:radial-gradient(circle,rgba(47,76,255,.28),transparent 68%);animation:heroOrbTwo 15s ease-in-out infinite alternate}
.model-grid{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:48px}
.model-vis{padding:30px}
#company{background:var(--bg)}
.biz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.bcard{border-right:1px solid var(--line)}
.bcard:nth-child(3n){border-right:1px solid var(--line)}
.bcard:nth-child(2n){border-right:0}
.tech-ribbon{position:relative;overflow:hidden;background:var(--tech-dark);color:#fff;border-top:1px solid rgba(95,230,240,.18);border-bottom:1px solid rgba(95,230,240,.18)}
.tech-ribbon::before{content:"";position:absolute;inset:-60%;background:radial-gradient(circle at 50% 50%,rgba(47,76,255,.25),transparent 42%);animation:techPulse 7s ease-in-out infinite}
.tech-ribbon__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr 1fr;gap:72px;align-items:center;padding-top:92px;padding-bottom:92px}
.tech-ribbon__eyebrow{font-size:12px;font-weight:900;letter-spacing:.24em;color:var(--tech-cyan);text-transform:uppercase}
.tech-ribbon h2{font-size:clamp(28px,4.2vw,52px);line-height:1.3;margin:18px 0 20px}
.tech-ribbon p{color:rgba(255,255,255,.72);max-width:640px}
.tech-orbit{position:relative;min-height:320px;display:grid;place-items:center}
.tech-orbit__core{width:134px;height:134px;border-radius:34px;display:grid;place-items:center;background:linear-gradient(145deg,#5fe6f0,#2f4cff 58%,#19287d);font-weight:900;box-shadow:0 0 80px rgba(95,230,240,.28);animation:coreFloat 5s ease-in-out infinite}
.tech-orbit__ring{position:absolute;border:1px solid rgba(95,230,240,.28);border-radius:50%;animation:orbitSpin 18s linear infinite}
.tech-orbit__ring:nth-child(2){width:250px;height:250px}
.tech-orbit__ring:nth-child(3){width:310px;height:190px;animation-direction:reverse}
.tech-orbit__node{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--tech-cyan);box-shadow:0 0 18px var(--tech-cyan)}
.tech-orbit__node.n1{top:32px;left:46%}.tech-orbit__node.n2{right:18px;top:52%}.tech-orbit__node.n3{bottom:24px;left:27%}
.bcard-link{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-weight:900;color:var(--accent-strong)}
.bcard-link span{transition:transform .25s}.bcard-link:hover span{transform:translateX(5px)}
@keyframes heroGridDrift{to{background-position:60px 60px}}
@keyframes heroOrbOne{50%{transform:translate3d(-5%,6%,0) scale(1.08)}100%{transform:translate3d(3%,-4%,0) scale(.96)}}
@keyframes heroOrbTwo{50%{transform:translate3d(7%,-9%,0) scale(.92)}100%{transform:translate3d(-4%,4%,0) scale(1.08)}}
@keyframes techPulse{50%{transform:translate3d(9%,-4%,0) scale(1.08)}}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
@keyframes coreFloat{50%{transform:translateY(-10px) rotate(2deg)}}
@media(max-width:940px){
  .hero-orb--one{right:-28%;top:8%}.hero-orb--two{right:2%;bottom:-14%}
  .model-grid{grid-template-columns:1fr;gap:48px}.model-vis{padding:28px}
  .tech-ribbon__inner{grid-template-columns:1fr;gap:30px}.tech-orbit{min-height:280px}
  .biz-grid{grid-template-columns:1fr!important}.bcard,.bcard:nth-child(3n),.bcard:nth-child(2n){border-right:0}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .reveal{opacity:1!important;transform:none!important}
}

/* ===== 2026-08-19 追加: AIが思考・実行している様の動的演出 ===== */

/* ヒーロー画像(脳の回路イメージ)の上に重ねる光の演出。preserveAspectRatio=xMidYMid slice
   により、背景写真の background-size:cover と同じ切り取り方をするため、
   ビューポート幅が変わっても写真上の対象位置とずれにくい。 */
.hero-circuit{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.92}
/* About 画像(ハブ&スポークのAIネットワーク)の上に重ねる光の演出。.frame は position:relative 済み。 */
.about-circuit{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.85}

/* モデル図(人間→AI共同経営者→4部門)の光が階層順に下りていく演出。無限ループ。 */
.model-vis svg{overflow:visible}
.flow-node{transform-box:fill-box;transform-origin:center}
.flow-dot{opacity:0}
.flow-dot--trunk{animation:flowTrunk 5s cubic-bezier(.3,0,.7,1) infinite}
.flow-dot--leaf1{animation:flowLeaf1 5s cubic-bezier(.3,0,.7,1) infinite}
.flow-dot--leaf2{animation:flowLeaf2 5s cubic-bezier(.3,0,.7,1) infinite}
.flow-dot--leaf3{animation:flowLeaf3 5s cubic-bezier(.3,0,.7,1) infinite}
.flow-dot--leaf4{animation:flowLeaf4 5s cubic-bezier(.3,0,.7,1) infinite}
.flow-node--person{animation:nodeFlashPerson 5s ease infinite}
.flow-node--core{animation:nodeFlashCore 5s ease infinite}
.flow-node--leaf{animation:nodeFlashLeaf 5s ease infinite}
@keyframes flowTrunk{
  0%,6%{opacity:0;cy:76px}
  10%{opacity:1}
  28%{opacity:1;cy:138px}
  30%,100%{opacity:0;cy:138px}
}
@keyframes flowLeaf1{
  0%,32%{opacity:0;cx:260px;cy:216px}
  36%{opacity:1}
  54%{opacity:1;cx:98px;cy:300px}
  56%,100%{opacity:0;cx:98px;cy:300px}
}
@keyframes flowLeaf2{
  0%,32%{opacity:0;cx:260px;cy:216px}
  36%{opacity:1}
  54%{opacity:1;cx:206px;cy:310px}
  56%,100%{opacity:0;cx:206px;cy:310px}
}
@keyframes flowLeaf3{
  0%,32%{opacity:0;cx:260px;cy:216px}
  36%{opacity:1}
  54%{opacity:1;cx:314px;cy:310px}
  56%,100%{opacity:0;cx:314px;cy:310px}
}
@keyframes flowLeaf4{
  0%,32%{opacity:0;cx:260px;cy:216px}
  36%{opacity:1}
  54%{opacity:1;cx:422px;cy:300px}
  56%,100%{opacity:0;cx:422px;cy:300px}
}
@keyframes nodeFlashPerson{
  0%,4%{filter:none}
  8%{filter:drop-shadow(0 0 14px #5fe6f0) drop-shadow(0 0 26px #5fe6f0)}
  16%,100%{filter:none}
}
@keyframes nodeFlashCore{
  0%,26%{filter:url(#glow)}
  32%{filter:url(#glow) drop-shadow(0 0 20px #5fe6f0) drop-shadow(0 0 36px #2f4cff)}
  42%,100%{filter:url(#glow)}
}
@keyframes nodeFlashLeaf{
  0%,52%{filter:none}
  58%{filter:drop-shadow(0 0 12px #5fe6f0) drop-shadow(0 0 22px #5fe6f0)}
  68%,100%{filter:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-circuit,.about-circuit{display:none}
}

/* ══ AI COGNITION ══════════════════════════════════════════════════════════
   AI の思考と活動を 4 面で見せる節。写真も外部素材も使わず、手描きの SVG と
   CSS だけで組んである。署名色はシアン(#5fe6f0)と青(#2f4cff)。
   絵の中に <text> は 1 つも置いていない。
   生成元 = _作業/カンパニーサイト_AI思考演出_2026-08-21/gen_mind_section.py
   ══════════════════════════════════════════════════════════════════════════ */
.mind{position:relative;background:var(--tech-dark);color:#fff;padding:116px 0 124px;overflow:hidden;--play:paused}
.mind.live{--play:running}
.mind::before{content:"";position:absolute;inset:-34%;pointer-events:none;
  background:radial-gradient(circle at 22% 14%,rgba(47,76,255,.34),transparent 46%),
             radial-gradient(circle at 84% 86%,rgba(95,230,240,.17),transparent 44%);
  animation:mindAura 13s ease-in-out infinite alternate}
@keyframes mindAura{to{transform:translate3d(5%,-4%,0) scale(1.12)}}
.mind>.wrap{position:relative;z-index:1}
.mind-head{max-width:840px;margin:0 auto 62px;text-align:center}
.mind-eyebrow{font-size:13px;font-weight:900;letter-spacing:.24em;color:var(--tech-cyan);text-transform:uppercase}
.mind-head h2{font-size:clamp(27px,3.6vw,44px);font-weight:900;line-height:1.34;letter-spacing:.01em;margin-top:20px}
.mind-head p{margin:26px auto 0;max-width:730px;font-size:15.5px;line-height:1.95;color:rgba(255,255,255,.72)}
.mind-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}

/* 上 = 絵の帯 / 下 = 文字。重ねない。帯の aspect-ratio は SVG の viewBox と同値。 */
.mind-cell{position:relative;overflow:hidden;border:1px solid rgba(95,230,240,.20);border-radius:18px;
  background:linear-gradient(180deg,rgba(13,19,36,.94),rgba(7,11,20,.97))}
.mind-cell::after{content:"";position:absolute;left:0;top:0;height:2px;width:0;z-index:2;
  background:linear-gradient(90deg,var(--tech-cyan),var(--tech-blue));
  transition:width .85s cubic-bezier(.22,.68,.24,1)}
.mind-art{position:relative;width:100%;aspect-ratio:440/220;overflow:hidden;
  border-bottom:1px solid rgba(95,230,240,.14)}
.mind-art::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(157,179,255,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(157,179,255,.055) 1px,transparent 1px);
  background-size:36px 36px;animation:mindGrid 30s linear infinite}
@keyframes mindGrid{to{background-position:36px 36px}}
.mind-art::after{content:"";position:absolute;inset:0;pointer-events:none;transition:opacity .7s ease;
  background:radial-gradient(122% 134% at 50% 34%,transparent 0%,rgba(7,11,20,.34) 78%,rgba(7,11,20,.7) 100%)}
.mind-art svg{position:absolute;inset:0;width:100%;height:100%}
.mind-body{position:relative;z-index:1;display:flex;flex-direction:column;gap:13px;padding:30px 32px 34px}
.mind-tag{font-size:13px;font-weight:900;letter-spacing:.2em;color:var(--tech-cyan)}
.mind-cell h3{font-size:clamp(19px,1.55vw,23px);font-weight:700;line-height:1.32;letter-spacing:.01em;margin:0}
.mind-cell p{font-size:14.5px;line-height:1.92;color:rgba(255,255,255,.68);margin:0}

/* 覆いは clip-path、持ち上げは transform(opacity も scale(0) も使わない)。
   隠すのは JS が動いたときだけ = .mind-js が付かなければ節はそのまま出る。 */
.ai-rise{opacity:1}
html.mind-js .ai-rise{transform:translateY(34px);clip-path:inset(0 0 100% 0);
  transition:transform 1s cubic-bezier(.16,1,.3,1) var(--d,0s),
             clip-path 1s cubic-bezier(.16,1,.3,1) var(--d,0s)}
html.mind-js .ai-rise.in{transform:none;clip-path:inset(0)}
.mind-grid .mind-cell:nth-child(2){--d:.07s}
.mind-grid .mind-cell:nth-child(3){--d:.05s}
.mind-grid .mind-cell:nth-child(4){--d:.11s}


/* ── ① 入ってくる情報のどれとどれを結ぶかを、毎秒張り替える ── */
.at-m{fill:#9db3ff;opacity:.1;animation:atMote 3.2s ease-in-out infinite alternate}
@keyframes atMote{to{opacity:.5}}
.at-m.m1{animation-delay:-0.00s}
.at-m.m2{animation-delay:-0.41s}
.at-m.m3{animation-delay:-0.82s}
.at-m.m4{animation-delay:-1.23s}
.at-m.m5{animation-delay:-1.64s}
.at-m.m6{animation-delay:-2.05s}
.at-m.m7{animation-delay:-2.46s}
.at-m.m8{animation-delay:-2.87s}
.at-m.m9{animation-delay:-0.08s}
.at-m.m10{animation-delay:-0.49s}
.at-in{stroke:#9db3ff;stroke-width:2;stroke-linecap:round;stroke-opacity:0;animation:atIn 2.4s ease-in infinite}
.at-in.i2{animation-delay:-.8s}.at-in.i3{animation-delay:-1.6s}
@keyframes atIn{0%{stroke-opacity:0;transform:translateY(0)}18%{stroke-opacity:.9}72%{stroke-opacity:.5;transform:translateY(22px)}100%{stroke-opacity:0;transform:translateY(28px)}}
.at-l{fill:none;stroke:url(#mdAt);stroke-width:1;stroke-opacity:.16;stroke-linecap:round;animation:atLink 4.8s ease-in-out infinite}
@keyframes atLink{0%{stroke-width:1;stroke-opacity:.14}7%{stroke-width:3.6;stroke-opacity:.95}19%{stroke-width:3.4;stroke-opacity:.86}30%{stroke-width:1;stroke-opacity:.14}100%{stroke-width:1;stroke-opacity:.14}}
.at-l.l1{animation-delay:-0.0000s}
.at-l.l2{animation-delay:-2.6667s}
.at-l.l3{animation-delay:-1.0667s}
.at-l.l4{animation-delay:-3.7333s}
.at-l.l5{animation-delay:-2.1333s}
.at-l.l6{animation-delay:-0.5333s}
.at-l.l7{animation-delay:-3.2000s}
.at-l.l8{animation-delay:-1.6000s}
.at-l.l9{animation-delay:-4.2667s}
.at-t{fill:#5fe6f0;fill-opacity:.16;stroke:#5fe6f0;stroke-opacity:.30;stroke-width:1;transform-box:fill-box;transform-origin:center;animation:atTok 4.8s ease-in-out infinite}
@keyframes atTok{0%{fill-opacity:.16;transform:scale(1)}7%{fill-opacity:1;transform:scale(1.26)}20%{fill-opacity:.9;transform:scale(1.16)}32%{fill-opacity:.16;transform:scale(1)}100%{fill-opacity:.16;transform:scale(1)}}
.at-t.t1{animation-delay:-0.0000s}
.at-t.t2{animation-delay:-2.6667s}
.at-t.t3{animation-delay:-1.0667s}
.at-t.t4{animation-delay:-3.7333s}
.at-t.t5{animation-delay:-2.1333s}
.at-t.t6{animation-delay:-0.5333s}
.at-t.t7{animation-delay:-3.2000s}
.at-t.t8{animation-delay:-1.6000s}
.at-t.t9{animation-delay:-4.2667s}
.at-g{stroke:#0a1020;stroke-width:2;stroke-opacity:.75;stroke-linecap:round}
.at-p{fill:#eafcff;opacity:0}
@keyframes atPulse2{0%{opacity:0}6.6%{opacity:0}7.00%{transform:translate(0.00px,0.00px);opacity:1}8.44%{transform:translate(-4.63px,12.43px)}9.89%{transform:translate(-17.04px,22.25px)}11.33%{transform:translate(-35.00px,30.26px)}12.78%{transform:translate(-56.30px,37.26px)}14.22%{transform:translate(-78.70px,44.04px)}15.67%{transform:translate(-100.00px,51.41px)}17.11%{transform:translate(-117.96px,60.16px)}18.56%{transform:translate(-130.37px,71.09px)}20.00%{transform:translate(-135.00px,85.00px);opacity:1}20.6%{opacity:0}100%{opacity:0}}
.at-p.p2{animation:atPulse2 4.8s linear infinite;animation-delay:-2.6667s}
@keyframes atPulse5{0%{opacity:0}6.6%{opacity:0}7.00%{transform:translate(0.00px,0.00px);opacity:1}8.44%{transform:translate(0.00px,12.43px)}9.89%{transform:translate(0.00px,22.25px)}11.33%{transform:translate(0.00px,30.26px)}12.78%{transform:translate(0.00px,37.26px)}14.22%{transform:translate(0.00px,44.04px)}15.67%{transform:translate(0.00px,51.41px)}17.11%{transform:translate(0.00px,60.16px)}18.56%{transform:translate(0.00px,71.09px)}20.00%{transform:translate(0.00px,85.00px);opacity:1}20.6%{opacity:0}100%{opacity:0}}
.at-p.p5{animation:atPulse5 4.8s linear infinite;animation-delay:-2.1333s}
@keyframes atPulse8{0%{opacity:0}6.6%{opacity:0}7.00%{transform:translate(0.00px,0.00px);opacity:1}8.44%{transform:translate(4.63px,12.43px)}9.89%{transform:translate(17.04px,22.25px)}11.33%{transform:translate(35.00px,30.26px)}12.78%{transform:translate(56.30px,37.26px)}14.22%{transform:translate(78.70px,44.04px)}15.67%{transform:translate(100.00px,51.41px)}17.11%{transform:translate(117.96px,60.16px)}18.56%{transform:translate(130.37px,71.09px)}20.00%{transform:translate(135.00px,85.00px);opacity:1}20.6%{opacity:0}100%{opacity:0}}
.at-p.p8{animation:atPulse8 4.8s linear infinite;animation-delay:-1.6000s}
.at-base{stroke:#9db3ff;stroke-opacity:.18;stroke-width:1}
.at-w{fill:#5fe6f0;fill-opacity:.3;transform-box:fill-box;transform-origin:top center;animation:atW 4.8s ease-in-out infinite}
@keyframes atW{0%{transform:scaleY(.14);fill-opacity:.28}7%{transform:scaleY(1);fill-opacity:.95}20%{transform:scaleY(.86);fill-opacity:.8}34%{transform:scaleY(.14);fill-opacity:.28}100%{transform:scaleY(.14);fill-opacity:.28}}
.at-w.w1{animation-delay:-0.0000s}
.at-w.w2{animation-delay:-2.6667s}
.at-w.w3{animation-delay:-1.0667s}
.at-w.w4{animation-delay:-3.7333s}
.at-w.w5{animation-delay:-2.1333s}
.at-w.w6{animation-delay:-0.5333s}
.at-w.w7{animation-delay:-3.2000s}
.at-w.w8{animation-delay:-1.6000s}
.at-w.w9{animation-delay:-4.2667s}
.at-head{fill:none;stroke:#5fe6f0;stroke-width:2;stroke-opacity:.85;transform-box:fill-box;transform-origin:center;animation:atHead 2.4s ease-in-out infinite}
@keyframes atHead{50%{transform:scale(1.2);stroke-opacity:1}}
.at-halo{fill:#2f4cff;opacity:.3;transform-box:fill-box;transform-origin:center;animation:atHalo 2.4s ease-in-out infinite}
@keyframes atHalo{50%{transform:scale(1.55);opacity:.5}}
.at-ping{fill:none;stroke:#5fe6f0;stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:atPing 2.4s ease-out infinite}
@keyframes atPing{0%{transform:scale(1);stroke-opacity:.7}70%,100%{transform:scale(2.3);stroke-opacity:0}}
.at-core{fill:#eafcff;animation:atCore 2.4s ease-in-out infinite}
@keyframes atCore{50%{fill:#5fe6f0}}

/* ── ② 何通りも枝を伸ばし、行き止まりは縮めて捨てる ── */
.tr-fd{stroke:#9db3ff;stroke-opacity:.3;stroke-width:1.2}
.tr-fdot{fill:#9db3ff;fill-opacity:.35;animation:trFeed 2.6s ease-in-out infinite}
@keyframes trFeed{0%,60%{fill-opacity:.2}30%{fill-opacity:.95}100%{fill-opacity:.2}}
.tr-fdot.f2{animation-delay:-.85s}.tr-fdot.f3{animation-delay:-1.7s}
.tr-d{fill:none;stroke:#9db3ff;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:320;stroke-dashoffset:320;stroke-opacity:.06;animation:trGrow 4.8s cubic-bezier(.3,0,.4,1) infinite}
@keyframes trGrow{0%{stroke-dashoffset:320;stroke-opacity:.06}16%{stroke-dashoffset:0;stroke-opacity:.46}48%{stroke-dashoffset:0;stroke-opacity:.38}66%{stroke-dashoffset:320;stroke-opacity:.05}100%{stroke-dashoffset:320;stroke-opacity:.05}}
.tr-d.d1{animation-delay:0.00s}
.tr-d.d2{animation-delay:-3.40s}
.tr-d.d3{animation-delay:-1.20s}
.tr-d.d4{animation-delay:-5.10s}
.tr-d.d5{animation-delay:-2.30s}
.tr-d.d6{animation-delay:-4.20s}
.tr-d.d7{animation-delay:-0.60s}
.tr-d.d8{animation-delay:-1.90s}
.tr-d.d9{animation-delay:-4.70s}
.tr-d.d10{animation-delay:-2.90s}
.tr-d.d11{animation-delay:-3.90s}
.tr-s{fill:none;stroke:#5fe6f0;stroke-width:1.8;stroke-linecap:round;stroke-opacity:.3;animation:trTrunk 9.6s ease-in-out infinite}
@keyframes trTrunk{0%{stroke-width:1.6;stroke-opacity:.22}8%{stroke-width:3.8;stroke-opacity:1}44%{stroke-width:3.4;stroke-opacity:.9}50%{stroke-width:1.6;stroke-opacity:.22}100%{stroke-width:1.6;stroke-opacity:.22}}
.tr-s.sb{animation-delay:-4.8s}
.tr-n{fill:#0d1424;stroke:#9db3ff;stroke-width:1.4;stroke-opacity:.5}
.tr-x{fill:#0d1424;stroke:#9db3ff;stroke-width:1.2;stroke-opacity:.26}
.tr-root{fill:#5fe6f0;stroke:#5fe6f0;stroke-width:1.6;animation:trRoot 2.4s ease-in-out infinite}
@keyframes trRoot{50%{fill:#eafcff}}
.tr-leaf{fill:#0d1424;stroke:#5fe6f0;stroke-width:1.6;stroke-opacity:.62}
.tr-fl{fill:#5fe6f0;opacity:0;animation:trFlash 9.6s ease-out infinite}
@keyframes trFlash{0%,36%{opacity:0}40%{opacity:.95}52%,100%{opacity:0}}
.tr-fl.fb{animation-delay:-4.8s}
@keyframes trPulseA{0%{opacity:0}13.6%{opacity:0}14.00%{transform:translate(0.00px,0.00px);opacity:1}15.47%{transform:translate(19.11px,-4.44px)}16.94%{transform:translate(34.49px,-15.56px)}18.41%{transform:translate(48.00px,-30.00px)}19.88%{transform:translate(61.51px,-44.44px)}21.35%{transform:translate(76.89px,-55.56px)}22.82%{transform:translate(96.00px,-60.00px)}24.29%{transform:translate(118.69px,-58.22px)}25.76%{transform:translate(136.96px,-53.78px)}27.24%{transform:translate(153.00px,-48.00px)}28.71%{transform:translate(169.04px,-42.22px)}30.18%{transform:translate(187.31px,-37.78px)}31.65%{transform:translate(210.00px,-36.00px)}33.12%{transform:translate(242.24px,-38.29px)}34.59%{transform:translate(267.52px,-43.74px)}36.06%{transform:translate(290.48px,-50.26px)}37.53%{transform:translate(315.76px,-55.71px)}39.00%{transform:translate(348.00px,-58.00px);opacity:1}39.6%{opacity:0}100%{opacity:0}}
.tr-pa{fill:#eafcff;animation:trPulseA 9.6s cubic-bezier(.4,0,.5,1) infinite}
@keyframes trPulseB{0%{opacity:0}13.6%{opacity:0}14.00%{transform:translate(0.00px,0.00px);opacity:1}15.47%{transform:translate(19.11px,0.00px)}16.94%{transform:translate(34.49px,0.00px)}18.41%{transform:translate(48.00px,0.00px)}19.88%{transform:translate(61.51px,0.00px)}21.35%{transform:translate(76.89px,0.00px)}22.82%{transform:translate(96.00px,0.00px)}24.29%{transform:translate(118.69px,1.93px)}25.76%{transform:translate(136.96px,6.74px)}27.24%{transform:translate(153.00px,13.00px)}28.71%{transform:translate(169.04px,19.26px)}30.18%{transform:translate(187.31px,24.07px)}31.65%{transform:translate(210.00px,26.00px)}33.12%{transform:translate(242.24px,24.34px)}34.59%{transform:translate(267.52px,20.37px)}36.06%{transform:translate(290.48px,15.63px)}37.53%{transform:translate(315.76px,11.66px)}39.00%{transform:translate(348.00px,10.00px);opacity:1}39.6%{opacity:0}100%{opacity:0}}
.tr-pb{fill:#eafcff;animation:trPulseB 9.6s cubic-bezier(.4,0,.5,1) infinite;animation-delay:-4.8s}
.tr-mote{fill:#9db3ff;opacity:.08;animation:trMote 3.6s ease-in-out infinite alternate}
@keyframes trMote{to{opacity:.42}}
.tr-mote.m1{animation-delay:-0.00s}
.tr-mote.m2{animation-delay:-0.47s}
.tr-mote.m3{animation-delay:-0.94s}
.tr-mote.m4{animation-delay:-1.41s}
.tr-mote.m5{animation-delay:-1.88s}
.tr-mote.m6{animation-delay:-2.35s}
.tr-mote.m7{animation-delay:-2.82s}
.tr-mote.m8{animation-delay:-3.29s}
.tr-mote.m9{animation-delay:-0.16s}
.tr-mote.m10{animation-delay:-0.63s}
.tr-mote.m11{animation-delay:-1.10s}
.tr-mote.m12{animation-delay:-1.57s}
.tr-mote.m13{animation-delay:-2.04s}
.tr-mote.m14{animation-delay:-2.51s}
.tr-mote.m15{animation-delay:-2.98s}
.tr-mote.m16{animation-delay:-3.45s}
.tr-mote.m17{animation-delay:-0.32s}
.tr-mote.m18{animation-delay:-0.79s}

/* ── ③ 二つの独立した読みを重ね、食い違ったところだけを潰す ── */
.v2-rule{stroke:#9db3ff;stroke-opacity:.08;stroke-width:1;stroke-dasharray:2 6}
.v2-b{fill:none;stroke:#9db3ff;stroke-width:1.8;stroke-opacity:.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;animation:v2B 9.6s cubic-bezier(.35,0,.4,1) infinite}
@keyframes v2B{0%,4%{stroke-dashoffset:900;stroke-opacity:.5}20%{stroke-dashoffset:0;stroke-opacity:.5}88%{stroke-dashoffset:0;stroke-opacity:.62}97%,100%{stroke-dashoffset:900;stroke-opacity:.5}}
.v2-a1{fill:none;stroke:#5fe6f0;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;stroke-opacity:0;animation:v2A1 9.6s cubic-bezier(.35,0,.4,1) infinite}
@keyframes v2A1{0%{stroke-dashoffset:900;stroke-opacity:.9}16%{stroke-dashoffset:0;stroke-opacity:.9}36%{stroke-dashoffset:0;stroke-opacity:.9}56%,100%{stroke-dashoffset:0;stroke-opacity:0}}
.v2-a2{fill:none;stroke:#5fe6f0;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;stroke-opacity:0;animation:v2A2 9.6s cubic-bezier(.35,0,.4,1) infinite}
@keyframes v2A2{0%,36%{stroke-dashoffset:900;stroke-opacity:0}38%{stroke-dashoffset:900;stroke-opacity:.95}58%{stroke-dashoffset:0;stroke-opacity:.95}74%{stroke-dashoffset:0;stroke-opacity:1}88%{stroke-dashoffset:0;stroke-opacity:.95}97%,100%{stroke-dashoffset:900;stroke-opacity:0}}
.v2-gl{fill:none;stroke:#eafcff;stroke-width:3.4;stroke-linecap:round;stroke-dasharray:34 900;stroke-dashoffset:34;stroke-opacity:0;animation:v2GL 9.6s cubic-bezier(.4,0,.4,1) infinite}
@keyframes v2GL{0%,58%{stroke-dashoffset:34;stroke-opacity:0}61%{stroke-dashoffset:0;stroke-opacity:.9}83%{stroke-dashoffset:-900;stroke-opacity:.9}86%,100%{stroke-dashoffset:-934;stroke-opacity:0}}
.v2-h{fill:#ff6a4d;fill-opacity:0;transform-box:fill-box;animation-duration:9.6s;animation-timing-function:cubic-bezier(.35,0,.35,1);animation-iteration-count:infinite}
.v2-h.h1{transform-origin:50% 100%;animation-name:v2H1}
@keyframes v2H1{0%,19.00%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}24.00%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}38.00%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}50.00%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}58.00%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h2{transform-origin:50% 100%;animation-name:v2H2}
@keyframes v2H2{0%,19.31%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}24.31%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}38.31%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}50.31%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}58.31%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h3{transform-origin:50% 100%;animation-name:v2H3}
@keyframes v2H3{0%,19.62%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}24.62%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}38.62%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}50.62%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}58.62%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h4{transform-origin:50% 100%;animation-name:v2H4}
@keyframes v2H4{0%,19.93%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}24.93%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}38.93%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}50.93%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}58.93%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h5{transform-origin:50% 100%;animation-name:v2H5}
@keyframes v2H5{0%,20.24%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}25.24%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}39.24%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}51.24%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}59.24%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h6{transform-origin:50% 100%;animation-name:v2H6}
@keyframes v2H6{0%,20.55%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}25.55%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}39.55%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}51.55%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}59.55%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h7{transform-origin:50% 100%;animation-name:v2H7}
@keyframes v2H7{0%,20.86%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}25.86%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}39.86%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}51.86%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}59.86%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h8{transform-origin:50% 100%;animation-name:v2H8}
@keyframes v2H8{0%,21.17%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}26.17%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}40.17%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}52.17%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}60.17%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h9{transform-origin:50% 100%;animation-name:v2H9}
@keyframes v2H9{0%,21.48%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}26.48%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}40.48%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}52.48%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}60.48%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h10{transform-origin:50% 100%;animation-name:v2H10}
@keyframes v2H10{0%,21.79%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}26.79%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}40.79%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}52.79%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}60.79%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h11{transform-origin:50% 100%;animation-name:v2H11}
@keyframes v2H11{0%,22.10%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}27.10%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}41.10%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}53.10%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}61.10%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h12{transform-origin:50% 0%;animation-name:v2H12}
@keyframes v2H12{0%,22.41%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}27.41%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}41.41%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}53.41%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}61.41%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h13{transform-origin:50% 0%;animation-name:v2H13}
@keyframes v2H13{0%,22.72%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}27.72%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}41.72%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}53.72%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}61.72%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h14{transform-origin:50% 0%;animation-name:v2H14}
@keyframes v2H14{0%,23.03%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}28.03%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}42.03%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}54.03%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}62.03%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h15{transform-origin:50% 0%;animation-name:v2H15}
@keyframes v2H15{0%,23.34%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}28.34%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}42.34%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}54.34%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}62.34%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h16{transform-origin:50% 0%;animation-name:v2H16}
@keyframes v2H16{0%,23.66%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}28.66%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}42.66%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}54.66%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}62.66%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h17{transform-origin:50% 0%;animation-name:v2H17}
@keyframes v2H17{0%,23.97%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}28.97%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}42.97%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}54.97%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}62.97%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h18{transform-origin:50% 0%;animation-name:v2H18}
@keyframes v2H18{0%,24.28%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}29.28%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}43.28%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}55.28%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}63.28%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h19{transform-origin:50% 0%;animation-name:v2H19}
@keyframes v2H19{0%,24.59%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}29.59%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}43.59%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}55.59%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}63.59%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h20{transform-origin:50% 0%;animation-name:v2H20}
@keyframes v2H20{0%,24.90%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}29.90%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}43.90%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}55.90%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}63.90%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h21{transform-origin:50% 0%;animation-name:v2H21}
@keyframes v2H21{0%,25.21%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}30.21%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}44.21%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}56.21%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}64.21%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h22{transform-origin:50% 100%;animation-name:v2H22}
@keyframes v2H22{0%,25.52%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}30.52%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}44.52%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}56.52%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}64.52%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h23{transform-origin:50% 100%;animation-name:v2H23}
@keyframes v2H23{0%,25.83%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}30.83%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}44.83%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}56.83%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}64.83%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h24{transform-origin:50% 100%;animation-name:v2H24}
@keyframes v2H24{0%,26.14%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}31.14%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}45.14%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}57.14%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}65.14%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h25{transform-origin:50% 100%;animation-name:v2H25}
@keyframes v2H25{0%,26.45%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}31.45%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}45.45%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}57.45%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}65.45%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h26{transform-origin:50% 100%;animation-name:v2H26}
@keyframes v2H26{0%,26.76%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}31.76%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}45.76%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}57.76%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}65.76%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h27{transform-origin:50% 100%;animation-name:v2H27}
@keyframes v2H27{0%,27.07%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}32.07%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}46.07%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}58.07%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}66.07%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h28{transform-origin:50% 100%;animation-name:v2H28}
@keyframes v2H28{0%,27.38%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}32.38%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}46.38%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}58.38%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}66.38%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h29{transform-origin:50% 100%;animation-name:v2H29}
@keyframes v2H29{0%,27.69%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}32.69%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}46.69%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}58.69%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}66.69%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-h.h30{transform-origin:50% 100%;animation-name:v2H30}
@keyframes v2H30{0%,28.00%{transform:scaleY(.02);fill:#ff6a4d;fill-opacity:0}33.00%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.85}47.00%{transform:scaleY(1);fill:#ff6a4d;fill-opacity:.9}59.00%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:.5}67.00%,100%{transform:scaleY(.02);fill:#5fe6f0;fill-opacity:0}}
.v2-m{fill:none;stroke:#ff6a4d;stroke-width:2;stroke-opacity:0;transform-box:fill-box;transform-origin:center;animation:v2M 9.6s ease-out infinite}
@keyframes v2M{0%,26%{transform:scale(.5);stroke-opacity:0}30%{transform:scale(1);stroke-opacity:.95}40%{transform:scale(1.5);stroke-opacity:0}44%{transform:scale(1);stroke-opacity:.7}52%,100%{transform:scale(1.7);stroke-opacity:0}}
.v2-m.m2{animation-delay:.16s}.v2-m.m3{animation-delay:.32s}
@keyframes v2DA{0%{opacity:0}0.20%{opacity:0}0.60%{transform:translate(0.00px,0.00px);opacity:1}1.70%{transform:translate(30.15px,-3.64px)}2.80%{transform:translate(60.31px,-22.42px)}3.90%{transform:translate(90.46px,-31.85px)}5.00%{transform:translate(120.62px,-11.84px)}6.10%{transform:translate(150.77px,-12.41px)}7.20%{transform:translate(180.92px,-18.79px)}8.30%{transform:translate(211.08px,-11.60px)}9.40%{transform:translate(241.23px,-31.67px)}10.50%{transform:translate(271.38px,-32.06px)}11.60%{transform:translate(301.54px,-44.12px)}12.70%{transform:translate(331.69px,-47.64px)}13.80%{transform:translate(361.85px,-15.56px)}14.90%{transform:translate(392.00px,7.85px)}16.00%{transform:translate(392.00px,7.85px);opacity:1}17.20%{opacity:0}100%{opacity:0}}
.v2-da{fill:#eafcff;opacity:0;animation:v2DA 9.6s cubic-bezier(.35,0,.4,1) infinite}
@keyframes v2DB{0%{opacity:0}4.20%{opacity:0}4.60%{transform:translate(0.00px,0.00px);opacity:1}5.70%{transform:translate(30.15px,-0.88px)}6.80%{transform:translate(60.31px,-3.25px)}7.90%{transform:translate(90.46px,1.88px)}9.00%{transform:translate(120.62px,3.52px)}10.10%{transform:translate(150.77px,-12.03px)}11.20%{transform:translate(180.92px,-37.60px)}12.30%{transform:translate(211.08px,-51.32px)}13.40%{transform:translate(241.23px,-44.55px)}14.50%{transform:translate(271.38px,-31.39px)}15.60%{transform:translate(301.54px,-26.60px)}16.70%{transform:translate(331.69px,-24.99px)}17.80%{transform:translate(361.85px,-12.65px)}18.90%{transform:translate(392.00px,7.78px)}20.00%{transform:translate(392.00px,7.78px);opacity:1}21.20%{opacity:0}100%{opacity:0}}
.v2-db{fill:#eafcff;opacity:0;animation:v2DB 9.6s cubic-bezier(.35,0,.4,1) infinite}

/* ── ④ 人の側には勤務時間がある。AI の側には無い ──
   1 本の軸の上が人、下が AI。棒は「動ける時間帯」を表す。
   走査線は 2 本を半周ずらしてあり、折り返しは必ず画面の外で起きる。
   各棒の光り始めは、走査線がその棒の中心を通過する時刻から逆算した遅延値。 */
.dy-rule{stroke:#9db3ff;stroke-opacity:.10;stroke-width:1;stroke-dasharray:2 5}
.dy-h{fill:#9db3ff;fill-opacity:.45}
.dy-h.flat{fill-opacity:.13}
.dy-a{fill:#5fe6f0;fill-opacity:.28}
.dy-axis{stroke:#9db3ff;stroke-opacity:.30;stroke-width:1}
.dy-tick{stroke:#9db3ff;stroke-opacity:.4;stroke-width:1.6}
@keyframes dyTickH{0%{fill-opacity:.45}4%{fill-opacity:.95}12%{fill-opacity:.66}22%,100%{fill-opacity:.45}}
@keyframes dyTickA{0%{fill-opacity:.28}4%{fill-opacity:1}12%{fill-opacity:.62}22%,100%{fill-opacity:.28}}
.dy-a{animation:dyTickA 6.0s linear infinite}
.dy-h:not(.flat){animation:dyTickH 6.0s linear infinite}
.dy-a.b0,.dy-h.b0{animation-delay:-4.759s}
.dy-a.b1,.dy-h.b1{animation-delay:-4.346s}
.dy-a.b2,.dy-h.b2{animation-delay:-3.934s}
.dy-a.b3,.dy-h.b3{animation-delay:-3.521s}
.dy-a.b4,.dy-h.b4{animation-delay:-3.108s}
.dy-a.b5,.dy-h.b5{animation-delay:-2.695s}
.dy-a.b6,.dy-h.b6{animation-delay:-2.282s}
.dy-a.b7,.dy-h.b7{animation-delay:-1.870s}
.dy-a.b8,.dy-h.b8{animation-delay:-1.457s}
.dy-a.b9,.dy-h.b9{animation-delay:-1.044s}
.dy-a.b10,.dy-h.b10{animation-delay:-0.631s}
.dy-a.b11,.dy-h.b11{animation-delay:-0.218s}
.dy-a.b12,.dy-h.b12{animation-delay:-5.806s}
.dy-a.b13,.dy-h.b13{animation-delay:-5.393s}
.dy-a.b14,.dy-h.b14{animation-delay:-4.980s}
.dy-a.b15,.dy-h.b15{animation-delay:-4.567s}
.dy-a.b16,.dy-h.b16{animation-delay:-4.154s}
.dy-a.b17,.dy-h.b17{animation-delay:-3.742s}
.dy-a.b18,.dy-h.b18{animation-delay:-3.329s}
.dy-a.b19,.dy-h.b19{animation-delay:-2.916s}
.dy-a.b20,.dy-h.b20{animation-delay:-2.503s}
.dy-a.b21,.dy-h.b21{animation-delay:-2.090s}
.dy-a.b22,.dy-h.b22{animation-delay:-1.678s}
.dy-a.b23,.dy-h.b23{animation-delay:-1.265s}
.dy-sw{animation:dySweep 12.0s linear infinite}
.dy-sw.s2{animation-delay:-6.0s}
@keyframes dySweep{from{transform:translateX(-30px)}to{transform:translateX(470px)}}
.dy-swg{fill:#5fe6f0;fill-opacity:.10}
.dy-swl{fill-opacity:.9}

@media(hover:hover){
  .mind-cell:hover::after{width:100%}
  .mind-cell:hover .mind-art::after{opacity:.45}
}
@media(max-width:940px){
  .mind{padding:92px 0 96px}
  .mind-head{margin-bottom:44px}
  .mind-grid{grid-template-columns:1fr;gap:20px}
  .mind-body{padding:26px 24px 30px}
}
@media(max-width:420px){
  .mind-body{padding:22px 20px 26px}
  .mind-cell h3{font-size:19px}
}

/* ── 画面外では止める(この 4 行は必ずこのブロックの最後)────────────────
   各部品の `animation:` 一括指定は animation-play-state を running へ戻すため、
   先に書くと 1 本も止まらない。id を 1 つ足して確実に勝たせている。
   ★1 行目 = JS が届かないときは止めない。止めたまま出すと節が凍って見える。 */
html:not(.mind-js) .mind{--play:running}
#cognition::before{animation-play-state:var(--play)}
#cognition .mind-art *{animation-play-state:var(--play)}
#cognition .mind-art::before{animation-play-state:var(--play)}

/* 動きを減らす設定のときは、全部を「到達後の姿」で静止させる。
   ★clip-path を戻さないと、覆いが掛かったまま中身が見えない。
   ★animation-duration:.01ms + iteration-count:1 で動きは即終了するが、fill-mode が none の
     ため各要素は **アニメーション前の値** に戻る。伸びる前の枝(dashoffset:320)や
     引かれる前の曲線(dashoffset:900)はそれだと見えないので、静止時の値をここで与える。 */
@media(prefers-reduced-motion:reduce){
  .ai-rise{transform:none!important;clip-path:none!important}
  .mind{--play:running}
  .mind::before{display:none}
  .tr-d{stroke-dashoffset:0;stroke-opacity:.34}
  .at-w{transform:scaleY(.55);fill-opacity:.5}
  .at-l{stroke-width:2;stroke-opacity:.4}
  .v2-b{stroke-dashoffset:0;stroke-opacity:.5}
  .v2-a2{stroke-dashoffset:0;stroke-opacity:.95}
  .at-p,.tr-pa,.tr-pb,.tr-fl,.v2-a1,.v2-h,.v2-m,.v2-da,.v2-db,.v2-gl{display:none}
}
