/* NEO EARTH — signature identity opening.
   Base artwork/brand colors are immutable. One restrained blue beam travels
   along the existing diagonal mark. No particle cloud or mouse-following. */
.neo-intro{
  background:radial-gradient(ellipse 58% 48% at 50% 46%,rgba(238,247,254,.83),transparent 82%),
             linear-gradient(140deg,#f7fafc 0%,#fff 51%,#eef4f8 100%);
}
.neo-intro::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 36% 30% at 50% 53%,rgba(43,139,219,.07),transparent 75%),
             repeating-linear-gradient(90deg,rgba(12,69,112,.018) 0 1px,transparent 1px 98px);
  opacity:.6;
}
.neo-intro-center{isolation:isolate}
.neo-intro-mark{
  position:relative;display:block;
  width:min(74vw,540px);max-width:100%;
  aspect-ratio:680/429;flex:0 0 auto;pointer-events:none;
}
.neo-intro-mark .neo-intro-logo{
  position:relative;z-index:1;display:block;
  width:100%;height:100%;max-height:none;object-fit:contain;
  opacity:0;transform:translate3d(0,18px,0) scale(.982);
  filter:blur(5px);
  transition:opacity .96s cubic-bezier(.16,1,.3,1),
    transform 1.1s cubic-bezier(.16,1,.3,1),filter .96s ease;
}
.neo-intro.is-ready .neo-intro-mark .neo-intro-logo{
  opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0);
}
/* Track the silver-blue slash: from its lower-left origin toward upper-right.
   It is a drawn line on top of the real logo, NOT a recolored copy. */
.neo-intro-mark .neo-intro-glint{
  position:absolute;z-index:2;pointer-events:none;
  inset:auto;left:9%;top:64%;width:84%;height:2px;
  opacity:0;transform:rotate(-21deg) scaleX(0);transform-origin:left center;
  background:linear-gradient(90deg,transparent 0%,rgba(31,105,198,.18) 12%,
    rgba(77,185,253,.65) 47%,rgba(183,247,255,.94) 73%,transparent 100%);
  box-shadow:0 0 8px rgba(47,150,235,.14);
  filter:drop-shadow(0 0 6px rgba(47,151,239,.22));
}
.neo-intro.is-ready .neo-intro-glint{
  animation:neo-signature-light .95s cubic-bezier(.2,.6,.2,1) 1.02s both;
}
@keyframes neo-signature-light{
  0%{opacity:0;transform:rotate(-21deg) scaleX(0)}
  14%{opacity:.52}
  61%{opacity:.92;transform:rotate(-21deg) scaleX(.95)}
  100%{opacity:0;transform:rotate(-21deg) scaleX(1.03)}
}
.neo-intro-flare{
  width:min(170px,34vw);height:1px;margin-top:clamp(4px,1.4vh,15px);
  background:linear-gradient(90deg,transparent,#184f83 42%,#56b4e9 62%,transparent);
  box-shadow:0 0 10px rgba(66,166,223,.15);
  opacity:0;transform:scaleX(0);
  transition:transform .85s cubic-bezier(.2,.65,.2,1) .78s,opacity .7s ease .78s;
}
.neo-intro.is-ready .neo-intro-flare{opacity:.65;transform:scaleX(1)}
.neo-intro-caption{
  display:block!important;position:relative;z-index:2;
  margin:20px 0 0!important;
  color:#536b7f!important;
  font:600 10px/1.6 'DM Sans','Noto Sans JP',sans-serif!important;
  letter-spacing:.36em!important;text-align:center;
  opacity:0!important;transform:translate3d(0,8px,0)!important;
  transition:opacity .85s ease .85s,transform .85s ease .85s!important;
}
.neo-intro.is-ready .neo-intro-caption{
  opacity:.85!important;transform:translate3d(0,0,0)!important;
}
.neo-intro.is-exiting .neo-intro-caption{opacity:0!important}
.neo-intro.is-exiting .neo-intro-glint{animation:none;opacity:0}
.neo-intro.is-exiting .neo-intro-logo{
  opacity:0;transform:translate3d(0,-7px,0) scale(1.015);filter:blur(2px);
}
.neo-intro:focus,.neo-intro:focus-visible{outline:none!important}
@media(max-width:900px){
  .neo-intro-mark{width:min(89vw,410px)}
  .neo-intro-flare{margin-top:8px;width:min(100px,28vw)}
  .neo-intro-caption{margin-top:16px!important;font-size:9px!important;letter-spacing:.22em!important}
}
@media(max-width:380px){.neo-intro-mark{width:min(92vw,350px)}}
@media(prefers-reduced-motion:reduce){
  .neo-intro-mark .neo-intro-glint{display:none!important;animation:none!important}
  .neo-intro-caption{opacity:.85!important;transform:none!important;transition:none!important}
  .neo-intro-logo{transition:none!important}
}
