@charset "utf-8";

.gjs-dashed .loading{
  opacity: 1 !important;
  position: relative;
  visibility: visible !important;
}

.gjs-dashed .loading__logo {
  opacity:1 !important;
}

.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeOut 1s 3s forwards;
  flex-direction: column;
  gap: 3rem;
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    visibility: hidden;
  }
}

.loading__logo {
  opacity: 0;
  animation: logo_fade 2s 0.5s forwards;
  text-align:center;
  font-size:clamp(1.125rem, 0.807rem + 1.06vw, 2rem);
}

.loading__logo img{
  width:120px;
  margin:0 auto 2rem;
}

@keyframes logo_fade {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }

  60% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.range {
  position: relative;
  background-color: #fff;
  width: 70%;
  height: 64px;
  transform: skew(30deg);
  font-family: 'Orbitron', monospace;
  --p: 0; /* 初期値 */
  border: 1px solid #040080;
  max-width: 770px;
}

.range::before {
  --width: calc(var(--p) * 1%);
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width:var(--width);
  height: 100%;
  background-color: #040080;
  z-index: 0;
  animation: glitch_load 2s infinite linear;
  transition: width 0.2s linear; /* ← 徐々に伸びるアニメ効果 */
}

.range::after {
  counter-reset: progress var(--p);
  content: counter(progress) '%';
  color: #fff;
  position: absolute;
  left: 5%;
  top: 50%;
  transform: translateY(-50%) skewX(-30deg);
  z-index: 1;
}

.range__label {
  transform: skew(-30deg) translateY(-100%);
  line-height: 1.5;
  color:#040080;
  font-size:clamp(1.25rem, 1.023rem + 0.76vw, 1.875rem);
}

@keyframes load {
  to {
    width: var(--width);
  }
}

@keyframes glitch_load {
  0%, 5% {
    transform: translate(0, 0);
  }
  1% {
    transform: translate(-5%, -10%);
  }
  2% {
    transform: translate(10%, 30%);
  }
  3% {
    transform: translate(-43%, 10%);
  }
  4% {
    transform: translate(2%, -23%);
  }
}


.gjs-dashed .fv-txt h1 em{
  -webkit-animation: transition-vertical 0.6s 0.2s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards, text-gradient-anim 0.4s 1s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
  animation: transition-vertical 0.6s 0.2s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards, text-gradient-anim 0.4s 1s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
  opacity: 1;
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
}

.gjs-dashed .fv-txt h1 {
  -webkit-transform: translateY(0);
  transform: translateY(0);
  opacity: 1;
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  -webkit-animation: transition-vertical 0.4s 0.2s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
  animation: transition-vertical 0.4s 0.2s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
}

.fv{
  margin-bottom:180px;
}

.fv-txt{
  padding:120px 0 40px 10%;
  font-size: 48px;
  font-weight: bold;
  text-align: center;
  line-height: 1.3;
  overflow: hidden;
  position:relative;
  display: block;
  margin-left: auto;
  width: fit-content;
}

.fv-txt p{
  position:absolute;
  top: 140px;
  right: 12.5%;
  font-weight: 900;
  line-height: 1.1;
  font-size: clamp(1rem, 0.455rem + 1.82vw, 2.5rem);
  color: #040080;
}

.fv-txt p strong{
  margin-left: -1rem;
  font-weight:900;
  font-size:clamp(1.5rem, 0.591rem + 3.03vw, 4rem);
}

.fv-txt p em{
  font-style:normal;
  display: inline-block;
  background: radial-gradient(circle at center,
    #B49963,
    #040080
  );
  background-size: 200% 200%;
  background-position: 0 100%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0;
}

.fv-txt h1{
  font-size:clamp(3rem, 0.909rem + 6.97vw, 8.75rem);
  font-weight:900;
  line-height: 1.1;
  display: inline-block;
  height: auto;
  position: relative;
  transform: translateY(12.5%);
  transition: transform 1.2s 0.2s  cubic-bezier(0.230, 1.000, 0.320, 1.000);
  opacity: 0;
}

.fv-txt h1 strong{
  font-size:clamp(4rem, 13.33vw, 15rem);
  font-weight:900;
}

.fv-txt h1 em{
  font-style:normal;
  display: inline-block;
  background: radial-gradient(circle at center,
    #B49963,
    #040080,
    #040080,
    #040080
  );
  background-size: 200% 200%;
  background-position: 0 100%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0;
}

.fv-txt.fadeUp h1,
.fv-txt.fadeUp p{
  transform: translateY(0);
  opacity: 1;
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  animation: transition-vertical 0.4s 3.3s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
}

.fv-txt.fadeUp h1 em,
.fv-txt.fadeUp p em{
  animation: transition-vertical 0.6s 3.3s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards, text-gradient-anim 0.6s 4.5s 
    cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
  opacity: 1;
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
}



.catch1{
  padding-bottom:8px;
}

.catch1::before{
  content:"";
  position:absolute;
  width:100%;
  height:2px;
  background: radial-gradient(circle at center,
    #B49963,
    #040080
  );
  top:0;
  left:0;
  opacity:0;
}

.fv-txt.fadeUp .catch1::before{
  animation: fv-border 0.5s forwards 4.5s;
}


@keyframes fv-border{
  0% {
    opacity:0;
  }
  20% {
    opacity:0;
  }
  30% {
    opacity:1;
  }
  100% {
    opacity:0;
  }
}

.catch1::after{
  content:"";
  position:absolute;
  width:100%;
  height:2px;
  background: radial-gradient(circle at center,
    #B49963,
    #040080
  );
  bottom:0;
  left:0;
  opacity:0;
}

.fv-txt.fadeUp .catch1::after{
  animation: fv-border2 0.5s forwards 4.5s;
}

@keyframes fv-border2{
  0% {
    opacity:0;
  }
  50% {
    opacity:0;
  }
  60% {
    opacity:1;
  }
  70% {
    opacity:0;
  }
  80% {
    opacity:0;
  }
  90% {
    opacity:1;
  }
  100% {
    opacity:0;
  }
}

.catch2{
  padding-bottom:8px;
}

.catch2::before{
  content:"";
  position:absolute;
  width:100%;
  height:2px;
  background: radial-gradient(circle at center,
    #B49963,
    #040080
  );
  bottom:0;
  left:0;
  opacity:0;
}

.fv-txt.fadeUp .catch2::before{
  animation: fv-border3 0.5s forwards 4.5s;
}


@keyframes fv-border3{
  0% {
    opacity:0;
  }
  60% {
    opacity:0;
  }
  70% {
    opacity:1;
  }
  80% {
    opacity:0;
  }
  90% {
    opacity:1;
  }
  100% {
    opacity:0;
  }
}

.fv-bottom{
  border-top:10px solid #040080;
  border-bottom:10px solid #040080;
  padding:1.5rem 10%;
  font-size:clamp(1.25rem, 0.25rem + 3.33vw, 4rem);
  color:#040080;
  font-weight:900;
  position: relative;
}

.fv-bottom strong{
  font-weight:900;
  color:#fff;
  -webkit-text-stroke: 5px #040080;
  text-stroke: 5px #040080;
  paint-order: stroke;
}

.fv-bottom span{
  background-image: radial-gradient(#2c26fa, #040080);
  padding:0 8px;
}

.scroll_down{
  position:absolute;
  right: 10%;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  width: 150px;
  animation: arrowmove 1s ease-in-out infinite;
  height: 150px;
  pointer-events:none;
}

.scroll_down a{
  text-decoration: none;
  writing-mode: vertical-rl;
  font-size:clamp(0.875rem, 0.466rem + 1.36vw, 2rem);
  width: 100%;
  height: 100%;
  display: block;
}

.arrow {
  position: absolute;
  width: 100px; /* 横幅を100pxに拡大 */
  height: 20px; /* 高さも少し大きめに調整 */
  opacity: 0;
  transform: scale3d(0.5, 0.5, 0.5);
  animation: move 3s ease-out infinite;
  left: 0;
}

.arrow:first-child {
  animation: move 3s ease-out 1s infinite;
}

.arrow:nth-child(2) {
  animation: move 3s ease-out 2s infinite;
}

.arrow:before,
.arrow:after {
  content: ' ';
  position: absolute;
  top: 0;
  height: 100%;
  animation: move-color 3s ease-out infinite;
  border-radius: 20px; /* 丸みを追加 */
}

.arrow:first-child:before,
.arrow:first-child:after{
  animation: move-color 3s ease-out 1s infinite;
}

.arrow:nth-child(2):before,
.arrow:nth-child(2):after{
  animation: move-color 3s ease-out 2s infinite;
}

.arrow:before {
  left: 0;
  width: 65%; /* 幅を調整 */
  transform: rotate(40deg);
}

.arrow:after {
  right: 0;
  width: 65%; /* 幅を調整 */
  transform: rotate(-40deg);
}

.scroll_down .accent{
  position: absolute;
  height: max-content;
  right: 0;
  top: 0;
  background: linear-gradient(180deg, #0043F0, #0600C9, #040080);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
  min-height: 100%;
}

@keyframes move {
  25% { opacity: 1; }
  33% { opacity: 1; transform: translateY(40px); }
  67% { opacity: 1; transform: translateY(80px); }
  100% { opacity: 0; transform: translateY(130px) scale3d(0.5, 0.5, 0.5); }
}

@keyframes move-color {
  0% { background:#0043F0;}
  33% { background:#0043F0;}
  67% { background:#0600C9;}
  100% { background:#040080; }
}


.top-about{
  display:flex;
  margin-bottom:7.5rem;
  gap: 5%;
  align-items: center;
}

.top-about-img{
  width:50%;
  position:relative;
}

.top-about-txt{
  padding-right:5%;
  width:45%;
  font-weight:400;
  font-size:clamp(1.125rem, 0.989rem + 0.45vw, 1.5rem);
}

.top-about-txt > p strong{
  font-weight:700;
  color:#0600C9;
  position:relative;
}

.top-about-txt > p > strong::before{
  content:"";
  position:absolute;
  width:84%;
  height:4px;
  background:#0600C9;
  bottom:-8px;
  left:8%;
}

.top-about-txt h2{
  font-size:clamp(1.5rem, 0.591rem + 3.03vw, 4rem);
  color: #0600C9;
  width: 184%;
  transform: translateX(-42.5%);
  margin-bottom: 4rem;
  line-height: 1.1;
  max-width: 1300px;
}

.top-about-txt h2 strong{
  font-size:clamp(1.125rem, 0.261rem + 2.88vw, 3.5rem);
}

.top-about-txt h2 em{
  color:#fff;
  font-style:normal;
  font-size:clamp(4rem, 2.727rem + 4.24vw, 7.5rem);
}

.top-about-txt h2 em{
  margin-left: 10%;
  padding-right:1rem;
}

.top-about-txt h2 em:first-child{
  margin-left: 0%;
}

.top-about-txt h2 em u{
  text-decoration:none;
  font-size:clamp(3rem, 1.818rem + 3.94vw, 6.25rem);
}

.top-swiper .swiper-wrapper ,
.top-swiper2 .swiper-wrapper {
  transition-timing-function: linear;
}

.top-swiper{
  margin-bottom:2.5rem;
}

.top-swiper2{
  margin-top:2.5rem;
}


.banner-wrap{
  padding:10rem 5%;
  display:flex;
  position:relative;
  overflow: hidden; 
  justify-content: space-between;
  background:url(https://nps-express.com/system_panel/uploads/images/20251029182605762148.png) no-repeat center/cover;
}

.banner2{
  border-top:1rem solid #0600C9;
  border-bottom:1rem solid #0600C9;
  background:url(https://nps-express.com/system_panel/uploads/images/20251029182605192791.png) no-repeat left center/cover;
}

.banner3{
  padding:5rem 5%;
  flex-direction: column;
  gap: 3rem;
  background:url(https://nps-express.com/system_panel/uploads/images/20251029182605893519.png) no-repeat left center/cover;
}

.banner3.banner-wrap .text-link{
  margin-top:2rem;
}

.banner3 .banner-txt2{
  padding-left:3%;
}

.banner-wrap::before{
  content:"";
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  inset: 0;
  background: radial-gradient(circle at center, #2C26FA, #040080);
  mix-blend-mode: hue; /* 色相だけを上書き */
  opacity: 1;
  transition:0.3s;
}

.banner-wrap:hover::before{
  opacity:0;
}

.banner-txt,
.banner-txt2{
  position:relative;
  z-index:10;
}

.banner-txt .accent{
  color:#0600C9;
  font-size:clamp(1.25rem, 0.795rem + 1.52vw, 2.5rem);
}

.banner-txt{
  display:flex;
  gap:1rem;
  align-items:flex-start;
}

.banner-txt h2{
  line-height: 1;
  color:#fff;
  font-size:clamp(1.5rem, 0.591rem + 3.03vw, 4rem);
}

.banner-txt h2 span{
  display:block;
  padding: 0.5rem 0 0.5rem 1rem;
  background:#0600C9;
  width: fit-content;
}

.banner-txt h2 span:first-child{
  margin-bottom:0.5rem;
}

.banner-txt h2 strong{
  font-size:clamp(2rem, 0.909rem + 3.64vw, 5rem);
}

.banner-txt2 > p{
  font-size:clamp(1rem, 0.818rem + 0.61vw, 1.5rem);
  line-height:2;
  text-shadow: 1px 1px 1px #fff;
}

.banner-txt2 > p > strong{
  color:#0600C9;
  font-weight:900;
  line-height:1.5;
  font-size:clamp(1.125rem, 0.807rem + 1.06vw, 2rem);
  position:relative;
  padding: 0 4px;
}

.banner-txt2 > p > strong::before{
  content:"";
  position:absolute;
  width:100%;
  height:4px;
  background:#0600C9;
  bottom:-4px;
  left:0;
}


.banner-wrap .text-link{
  margin-top:5rem;
  pointer-events:none;
}

.banner1 .text-link p:first-child::before, 
.banner1 .text-link p:first-child::after{
  content: '他社との違いを見る';
}

.banner2 .text-link p:first-child::before, 
.banner2 .text-link p:first-child::after{
  content: '強み・特徴を見る';
}

.banner3 .text-link p:first-child::before, 
.banner3 .text-link p:first-child::after{
  content: '働く環境を見る';
}

.top-greeting{
  margin:200px 5% 0;
  position:relative;
  padding:20px 5% 20px 2.5%;
  display: flex;
  flex-direction: row-reverse;
  align-items: stretch;
  color: #fff;
  justify-content: space-between;
  z-index:1;
}

.noise_btn {
  cursor: pointer;
}

.noise_btn.canvas-ready {
  opacity: 1;
}

.noise-canvas {
  position: absolute;
  top: -20px;
  left: -20px;
  width:calc(100% + 40px) !important;
  height: calc(100% + 40px) !important;
  pointer-events: none;
  z-index: -1;
  background:#040080;
}
.top-greeting > img{
  width:62%;
}

.top-greeting h2{
  writing-mode: vertical-rl;
  font-size:clamp(1.125rem, 0.261rem + 2.88vw, 3.5rem);
  letter-spacing: 4px;
  line-height: 2;
  color: #fff;
}

.top-greeting h2 em{
  font-style:normal;
  font-size:clamp(1.25rem, 0.25rem + 3.33vw, 4rem);
}

.top-greeting h2 strong{
  background:#fff;
  color:#040080;
  font-size:clamp(1.5rem, 0.227rem + 4.24vw, 5rem);
  line-height: 1.2;
}

.top-greeting h2 > span{
  display: block;
  margin-top: auto;
  height: fit-content;
}

.top-greeting h2 strong:has(span){
  margin-right:2rem;
  margin-top: auto;
  display: block;
  height: fit-content;
}

.top-greeting h2 strong em{
  font-size:clamp(1.25rem, 0.25rem + 3.33vw, 4rem);
}

.top-greeting h2 strong span{
  font-size:clamp(1.75rem, 0.114rem + 5.45vw, 6.25rem);
}

.top-greeting .text-link{
  position:absolute;
  left:5%;
  bottom:5%;
  color: #fff;
  pointer-events:none;
}

.top-greeting:hover .text-link p:first-child::before ,
.banner-wrap:hover .text-link p:first-child::before{
  animation: glitchy 0.3s ease 0.3s infinite;
}

.top-greeting:hover .text-link p:first-child::after ,
.banner-wrap:hover .text-link p:first-child::after{
  animation: glitchy 0.3s ease infinite reverse;
}

.top-greeting:hover .text-link div::before,
.banner-wrap:hover .text-link div::before{
  animation: glitchy 0.3s ease 0.3s infinite;
}

.top-greeting:hover .text-link div::after ,
.banner-wrap:hover .text-link div::after {
  animation: glitchy 0.3s ease infinite reverse;
}

.top-greeting:hover .text-link div,
.banner-wrap:hover .text-link div{
  animation: glitchy 0.3s ease 1;
}

.top-greeting .text-link p:first-child::before, 
.top-greeting .text-link p:first-child::after{
  content: '代表挨拶を見る';
}

.top-news{
  margin:180px 0 10rem;
}

.top-news h2{
  text-align:center;
  color:#040080;
  font-size:clamp(2rem, 1.273rem + 2.42vw, 4rem);
  margin-bottom:2.5rem;
  font-weight:900;
}

.top-news .webgene-item{
  margin-top:8px;
}

.top-news .webgene-item a{
  padding:1.5rem 5% 1.5rem 1.5rem;
  border:4px solid #040080;
  position:relative;
}

.top-news .webgene-item a::before{
  content:"";
  position:absolute;
  width:14px;
  height:24px;
  top: 50%;
  right:2.5%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transition:0.3s;
  z-index: 10;
  background:url(https://nps-express.com/system_panel/uploads/images/20251030085641892707.png) no-repeat center/contain;
}

.top-news .webgene-item a:hover::before{
  background:url(https://nps-express.com/system_panel/uploads/images/20251030085641167072.png) no-repeat center/contain;
}

.top-news .webgene-item a::after{
  content:"";
  position:absolute;
  width:0;
  height:100%;
  top:0;
  left:0;
  transition:0.3s;
  background:#040080;
}

.top-news .webgene-item a:hover::after{
  width:100%;
}

.top-news .webgene-item a h3{
  font-size:clamp(0.875rem, 0.784rem + 0.3vw, 1.125rem);
  font-weight:bold;
  z-index: 10;
  position: relative;
  transition:0.3s;
}

.top-news .webgene-item .newsItemText{
  font-size:clamp(0.75rem, 0.705rem + 0.15vw, 0.875rem);
  color:#0600C9;
  font-weight:bold;
  margin-bottom:4px;
  z-index: 10;
  position: relative;
  transition:0.3s;
}

.top-news .webgene-item a:hover .newsItemText,
.top-news .webgene-item a:hover h3{
  color:#fff;
}

.top-insta{
  margin-bottom:180px;
}

.top-insta-wrap{
  display:flex;
  justify-content: space-between;
  align-items: center;
}

.insta-title{
  display:flex;
  gap:2rem;
  align-items: center;
}

.insta-title img{
  width:3rem;
}

.insta-title h2{
  font-size:clamp(1.375rem, 1.148rem + 0.76vw, 2rem);
  color:#040080;
}

.top-insta-wrap .text-link{
  margin:0;
}

.top-insta-wrap .text-link p:first-child::before, 
.top-insta-wrap .text-link p:first-child::after{
  content:"インスタグラムを見る";
}

.contact-banner{
  padding:200px 0 120px;
  background-image: radial-gradient(#2c26fa, #040080);
  color:#fff;
  overflow:hidden;
  position:relative;
}

.contact-banner::before{
  content:"";
  position:absolute;
  width:100%;
  height:100%;
  inset: 0;
  z-index: 2;
  background-image: url(https://nps-express.com/system_panel/uploads/images/20251030102343741006.gif);
  mix-blend-mode: multiply;
  pointer-events: none;
}

.contact-banner h2{
  text-align:left;
 	margin: 0;
}

.contact-banner-txt{
  position:relative;
  z-index:10;
  transform: rotate(-4deg);
}

.contact-banner-txt > div{
  position:absolute;
  top: -10%;
  right: -1rem;
  color:#040080;
  font-size:clamp(1.25rem, 0.25rem + 3.33vw, 4rem);
  font-weight:900;
}

.contact-banner-txt > div p{
  background:#fff;
  width: fit-content;
  margin-left: auto;
  margin-bottom: 10px;
  padding: 0 2rem 0 1rem;
}

.contact-banner-txt > div p strong{
  color:#B49963;
  font-weight:900;
  font-size:clamp(1.5rem, 0.227rem + 4.24vw, 5rem);
  line-height: 1.2;
}

.contact-banner-txt h2{
  font-size:clamp(4rem, 0.909rem + 10.3vw, 12.5rem);
  width: max-content;
  letter-spacing: -14px;
  line-height: 1.1;
}

.contact-banner-txt h2 strong{
  font-size:clamp(5rem, 16.67vw, 18.75rem);
  transform: translateX(-1%);
}

.contact-banner-txt h2 strong span{
  font-size:clamp(4.5rem, -0.227rem + 15.76vw, 17.5rem);
  letter-spacing: -30px;
}

.contact-banner .text-link{
  color:#fff;
  width: fit-content;
  margin: 5rem 5% 0 auto;
  position:relative;
  z-index:10;
}

.contact-banner .text-link p:last-child strong{
  background:#fff;
  color:#040080;
}

.contact-banner .text-link p:first-child::before, 
.contact-banner .text-link p:first-child::after{
  content: 'エントリーする';
}


.glitch {
  position: relative;
  text-shadow:
    0px -5px 10px rgba(255,255,255,1),
    0px 0px 5px rgba(255,255,255,0),
    0px 0px 10px rgba(255,255,255,0),
    0px 0px 15px rgba(255,255,255,0),
    0px 0px 20px rgba(255,255,255,0);
  animation:
    noise-anim-2 3s infinite linear alternate-reverse,
    shift 4s ease-in-out infinite alternate,
    blur 8s ease-in-out infinite alternate;
  transform: skewX(0deg);
}

@keyframes blur {
  0%,40%,50%,60%,90%,95%,100% {
    text-shadow:
      0px -5px 10px rgba(255,255,255,1),
      0px 0px 5px rgba(255,255,255,0),
      0px 0px 10px rgba(255,255,255,0),
      2px 1px 15px rgba(100,240,255,0),
      0px 0px 20px rgba(255,255,255,0);
  }
  45%,75% {
    text-shadow:
      0px -5px 10px rgba(255,255,255,1),
      0px 0px 5px rgba(255,255,255,1),
      0px 0px 10px rgba(255,255,255,1),
      2px 1px 15px rgba(100,240,255,1),
      0px 0px 20px rgba(255,255,255,1);
  }
  97.5% {
    text-shadow:
      0px -5px 10px rgba(255,255,255,0),
      0px 0px 5px rgba(255,255,255,0),
      0px 0px 10px rgba(255,255,255,0),
      2px 1px 4px rgba(255,100,100,1),
      0px 0px 20px rgba(255,255,255,0);
  }
}

/* noiseアニメーション（固定的に定義） */
@keyframes noise-anim-2 {
  0%   { clip: rect(10px, 9999px, 85px, 0); }
  10%  { clip: rect(50px, 9999px, 90px, 0); }
  20%  { clip: rect(25px, 9999px, 65px, 0); }
  30%  { clip: rect(70px, 9999px, 100px, 0); }
  40%  { clip: rect(40px, 9999px, 80px, 0); }
  50%  { clip: rect(15px, 9999px, 60px, 0); }
  60%  { clip: rect(60px, 9999px, 90px, 0); }
  70%  { clip: rect(20px, 9999px, 75px, 0); }
  80%  { clip: rect(35px, 9999px, 95px, 0); }
  90%  { clip: rect(10px, 9999px, 70px, 0); }
  100% { clip: rect(50px, 9999px, 100px, 0); }
}

/* shiftアニメーション */
@keyframes shift {
  0%,40%,44%,58%,61%,65%,69%,73%,100% { transform: skewX(0deg); }
  41% { transform: skewX(10deg); }
  42% { transform: skewX(-10deg); }
  59% { transform: skewX(40deg) skewY(10deg); }
  60% { transform: skewX(-40deg) skewY(-10deg); }
  63% { transform: skewX(10deg) skewY(-5deg); }
  70% { transform: skewX(-50deg) skewY(-20deg); }
  71% { transform: skewX(10deg) skewY(-10deg); }
}


@media screen and (max-width: 1600px) {
  .fv-txt{
    padding: 100px 0 40px 10%;
  }
  .fv-txt p{
    right: 10%;
    top: 120px;
  }
  .banner3{
    background: url(https://nps-express.com/system_panel/uploads/images/20251029182605893519.png) no-repeat 25% center / cover;
  }
  .top-about-txt h2{
    width: 190%;
  }
}

@media screen and (max-width: 1400px) {
  .top-about-txt h2{
    transform: translateX(-44%);
    margin-bottom: 2rem;
  }
  .top-about-txt .text-link {
    margin-top: 60px;
  }
}

@media screen and (max-width: 1279px) {
  .fv-txt p{
    top: 100px;
  }
  .arrow{
    width: 80px;
    height: 15px;
  }
  .top-about{
    flex-direction: column;
    align-items: flex-start;
  }
  .top-about-img{
    width:66%;
  }
  .top-about-txt{
    width:100%;
    padding-right: 0%;
    margin-top: -12rem;
    position: relative;
  }
  .top-about-txt h2 {
    transform: none;
    width: fit-content;
    margin: 0 15% 0 auto;
  }
  .top-about-txt h2 em {
    margin-left: 17%;
  }
  .top-about-txt h2 span{
    display:block;
    margin: 2rem 0 0 auto;
    width: fit-content;
  }
  .top-about-txt > p{
    padding:0 5%;
  }
  .top-about-txt .text-link{
    margin:60px 5% 0;
  }
}

@media screen and (max-width: 1024px) {
  .banner-wrap{
    background-position:30% center;
    flex-direction: column;
    gap: 1.5rem;
  }
  .banner2{
    background-position:15% center;
  }
  .banner3{
    background-position: 47% center;
    padding: 5rem 5% 20rem;
  }
  .banner-wrap .text-link {
    margin-top: 1rem;
  }
  .fv-txt p {
    right: 5%;
  }
  .fv-bottom{
    padding: 1.5rem 5%;
  }
}

@media screen and (max-width: 767px) {
  .fv-txt {
    padding: 200px 0 70px 0%;
  }
  .contact-banner-txt h2 {
    font-size: 2rem;
    letter-spacing: 0;
  }
  .contact-banner-txt > div {
    position: relative;
    top: auto;
    right: auto;
    transform: translateX(5%);
  }
  .contact-banner-txt{
    display: flex;
    flex-direction: column-reverse;
    gap: 2rem;
  }
  .contact-banner-txt h2 strong {
    font-size: 3.5rem;
  }
  .contact-banner-txt h2 strong span {
    font-size: 3.5rem;
    letter-spacing: -8px;
  }
  .contact-banner {
    padding: 2.5rem 0;
  }
  .contact-banner .text-link{
    margin-top:2rem;
  }
  .top-insta-wrap{
    flex-direction: column;
    gap: 1.5rem;
  }
  .top-news .webgene-item a::before{
    width: 10px;
    height: 16px;
  }
  .top-news .webgene-item a {
    padding: 1rem 5% 1rem 1.5rem;
  }
  .top-insta {
    margin-bottom: 7.5rem;
  }
  .top-news {
    margin: 5rem 0;
  }
  .fv-txt h1 {
    font-size: 2.5rem;
  }
  .fv-txt h1 strong {
    font-size: 3.5rem;
  }
  .fv-txt p{
    font-size:10px;
    top: 200px;
  }
  .fv-txt p strong {
    margin-left: -.2rem;
    font-size: 20px;
  }
  .insta-title img {
    width: 2rem;
  }
  .insta-title{
    gap: 1rem;
  }
  .noise-canvas,
  .top-greeting > img{
    display:none;
  }
  .noise_btn{
    background:#040080;
  }
  .noise_btn::before{
    content:"";
    position:absolute;
    width:100%;
    height:100%;
    top: 0;
    z-index: -1;
    left: 0;
    background:url( https://nps-express.com/system_panel/uploads/images/20251105184135872402.png) no-repeat center/cover;
  }
  .top-greeting {
    margin: 120px 0% 0;
  }
  .top-greeting h2{
    width:100%;
  }
  .top-greeting h2 strong:has(span) {
    margin-right: 55%;
    margin-top: 5rem;
  }
  .top-greeting .text-link {
    left: auto;
    right: 5%;
  }
  .top-greeting h2 strong{
    font-size:2rem;
  }
  .top-greeting h2 {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  .top-greeting h2 em {
    font-size: 2rem;
  }
  .top-greeting h2 > span{
    font-size: 1.5rem;
  }
  .top-greeting h2 strong em {
    font-size: 1.8rem;
  }
  .top-greeting h2 strong span {
    font-size: 3rem;
  }
  .fv-bottom {
    border-top: 6px solid #040080;
    border-bottom: 6px solid #040080;
    width: 90%;
    margin: 0 auto;
    padding: 1rem 0%;
  }
  .scroll_down {
    position: relative;
    right: auto;
    top: auto;
    transform:none;
    width:4rem;
    height:4rem;
    margin-left: auto;
    margin-top: -2rem;
  }
  .arrow {
    width: 44px;
    height: 8px;
  }
  @keyframes move {
    25% { opacity: 1; }
    33% { opacity: 1; transform: translateY(20px); }
    67% { opacity: 1; transform: translateY(40px); }
    100% { opacity: 0; transform: translateY(65px) scale3d(0.5, 0.5, 0.5); }
  }
  .fv-bottom{
    font-size: 24px;
  }
  .fv-bottom strong{
    font-size: 2rem;
    margin: 0 4px;
    line-height: 1;
  }
  .fv {
    margin-bottom: 100px;
  }
  .catch1{
    padding-top:1rem;
  }
  .top-about-txt h2 em{
    font-size: 3rem;
    padding-right: 0.5rem;
  }
  .top-about-txt h2 em u{
    font-size: 2.5rem;
  }
  .top-about-txt h2{
    margin: 0 6% 0 auto;
  }
  .top-about-txt h2 span {
    margin: 1rem 0 0 auto;
  }
  .top-about-txt{
    margin-top: -7rem;
  }
  .top-about-txt{
    font-size:1rem;
  }
  .top-about-txt .text-link{
    margin-top: 2.5rem;
  }
  .banner-wrap{
    background:transparent;
    padding:0;
  }
  .banner-txt{
    aspect-ratio: 390 / 350;
    align-items: end;
    justify-content: center;
    padding-bottom: 2rem;
    background: url(https://nps-express.com/system_panel/uploads/images/20251105190517288623.png) no-repeat center / cover;
  }
  .banner-txt h2 span{
    display: inline;
    padding: 0.25rem 4px;
  }
  .banner-txt2{
    margin: 0 auto 2rem;
  }
  .banner-txt h2 strong {
    font-size: 1.5rem;
  }
  .banner2  .banner-txt{
    background: url(https://nps-express.com/system_panel/uploads/images/20251105190517184107.png) no-repeat center / cover;
  }
  .banner3  .banner-txt{
    background: url(https://nps-express.com/system_panel/uploads/images/20251105190517607534.png) no-repeat center / cover;
  }
  .banner3  .banner-txt h2 span{
    display: block;
  }
  .banner3 .banner-txt .accent{
    padding-bottom: 1.2rem;
  }
  .top-about{
    max-width: 380px;
    margin: 0 auto 7.5rem;
  }
  .range{
    width: 80%;
    height: 40px;
  }
  .loading__logo img{
    width:80px;
  }
  .fv-bottom span{
    display: inline-block;
    line-height: 1.5;
  }
  .banner-wrap::before{
    display:none;
  }
}