/* 支給画像に光と奥行きを重ねる、トップページ専用の演出。 */
.hero{
  --hero-x:0px;--hero-y:0px;
  isolation:isolate;min-height:700px;padding:0;
  background:#092caf;color:#fff;animation:none;
}
.hero:before,.hero:after{content:none}
.hero-visual{
  position:absolute;inset:-4%;z-index:-2;pointer-events:none;
  transform:translate3d(var(--hero-x),var(--hero-y),0);
  transition:transform 1.6s cubic-bezier(.16,1,.3,1);
}
.hero-visual:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(4,19,89,.3),rgba(5,31,128,.12) 48%,transparent 78%);
}
.hero-backdrop{
  position:absolute;inset:0;width:100%;height:100%;max-width:none;
  object-fit:cover;object-position:center;
  animation:hero-image-drift 24s ease-in-out infinite alternate;
}
.hero-glow{
  position:absolute;inset:-25% -15% 0 35%;
  background:radial-gradient(ellipse at 65% 30%,rgba(125,225,255,.28),rgba(64,138,255,.1) 38%,transparent 65%);
  mix-blend-mode:screen;animation:hero-glow-drift 14s ease-in-out infinite alternate;
}
.hero-flow{
  position:absolute;inset:0;width:100%;height:100%;opacity:.7;
  animation:hero-wave-drift 18s ease-in-out infinite alternate;
}
.hero-light-trace{stroke-dasharray:12 88;animation:hero-trace-flow 11s linear infinite}
.hero-light-trace-secondary{stroke-dasharray:8 92;animation-duration:15s;animation-delay:-6s;opacity:.65}
.hero-particles{position:absolute;inset:0}
.hero-particles span{
  position:absolute;left:69%;top:30%;width:3px;height:3px;border-radius:50%;
  background:#d6f4ff;box-shadow:0 0 12px 3px rgba(144,214,255,.35);opacity:0;
  animation:hero-particle-drift 10s ease-in-out infinite;
}
.hero-particles span:nth-child(2){left:84%;top:52%;animation-delay:-3s;animation-duration:13s}
.hero-particles span:nth-child(3){left:57%;top:69%;animation-delay:-7s;animation-duration:12s}
.hero-particles span:nth-child(4){left:91%;top:23%;animation-delay:-5s;animation-duration:14s}
.hero-particles span:nth-child(5){left:75%;top:77%;animation-delay:-1s;animation-duration:11s}
.hero-particles span:nth-child(6){left:50%;top:44%;animation-delay:-8s;animation-duration:15s}
.hero-grid{
  width:min(var(--max),calc(100% - 40px));min-height:700px;
  grid-template-columns:minmax(0,1fr);gap:0;padding:100px 0;
}
.hero-grid>div{min-width:0}
.hero h1{font-size:clamp(48px,5.15vw,74px);line-height:1.22;letter-spacing:.015em;margin:20px 0 30px}
.hero h1.fixed-copy{--copy-max:74px}
.hero h1.fixed-copy br{display:initial}
.hero h1 em{display:block;width:fit-content}
.hero h1 em:after{bottom:-4px;height:5px}
.hero-lead{--copy-max:18px;max-width:none;line-height:1.95;color:#f1f5ff;text-wrap:pretty}
.hero-actions{gap:12px;margin-top:36px}
.hero .btn-outline-white{background:rgba(8,35,131,.16);border-color:rgba(230,245,255,.65)}
.hero .btn-outline-white:hover{background:rgba(255,255,255,.14)}
.hero[data-motion="paused"] .hero-visual *{animation-play-state:paused!important}
@keyframes hero-image-drift{
  from{transform:scale(1.02) translate3d(-.6%,.3%,0)}
  to{transform:scale(1.085) translate3d(.7%,-.6%,0)}
}
@keyframes hero-glow-drift{
  from{transform:translate3d(-3%,3%,0) scale(.95);opacity:.45}
  to{transform:translate3d(4%,-4%,0) scale(1.12);opacity:.9}
}
@keyframes hero-wave-drift{
  from{transform:translate3d(-12px,12px,0)}
  to{transform:translate3d(18px,-15px,0)}
}
@keyframes hero-trace-flow{from{stroke-dashoffset:100}to{stroke-dashoffset:-100}}
@keyframes hero-particle-drift{
  0%,100%{transform:translate3d(-14px,26px,0);opacity:0}
  25%,65%{opacity:.5}
  85%{transform:translate3d(22px,-38px,0);opacity:0}
}
@media(max-width:980px){
  .hero,.hero-grid{min-height:660px}
  .hero-grid{grid-template-columns:1fr;padding:88px 0;gap:0}
    .hero h1{font-size:clamp(44px,6.5vw,64px)}
  .hero-backdrop{object-position:65% center}
}
@media(max-width:640px){
  .hero{min-height:620px}
  .hero-grid{width:calc(100% - 28px);min-height:620px;padding:68px 0 76px}
  .hero h1{font-size:clamp(29px,8.9vw,52px);line-height:1.35;letter-spacing:0;margin:20px 0 28px}
  .hero-lead{font-size:15px;line-height:1.9}
  .hero-actions{margin-top:30px}
  .hero-backdrop{object-position:73% center}
  .hero-flow{width:160%;left:-35%;opacity:.48}
  .hero-visual:after{background:linear-gradient(90deg,rgba(4,19,89,.45),rgba(4,23,96,.22))}
  .hero-glow{opacity:.4}
  .hero-particles span:nth-child(n+4){display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-visual{transform:none;transition:none}
  .hero-visual *{animation:none!important}
  .hero-grid>div:first-child>*{opacity:1;transform:none}
  .hero h1 em:after{transform:skewX(-18deg) scaleX(1)}
  .hero-light-trace{stroke-dasharray:none;opacity:.2}
  .hero-particles{display:none}
}
