/* ─── ページローディング・トランジション（全ページ共通） ─── */
#pageLoader{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  background:var(--navy,#0F1B2D);
  transition:transform .7s cubic-bezier(.76,0,.24,1);
}
#pageLoader.done{transform:translateY(-100%);}
#pageLoader .loader-inner{
  position:relative;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1.1rem;
}
#pageLoader .loader-logo{
  width:82px;height:auto;margin-bottom:0.2rem;
  background-color:#ffffff;border-radius:15px;padding:0.5rem;
  animation:loaderLogo .7s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes loaderLogo{
  from{opacity:0;transform:scale(.85) translateY(8px);filter:blur(4px);}
  to{opacity:1;transform:scale(1) translateY(0);filter:blur(0);}
}

@keyframes loaderPulse{
  0%,100%{opacity:.35;transform:scale(1);}
  50%{opacity:.8;transform:scale(1.08);}
}
#pageLoader .loader-en{
  font-family:'Playfair Display',serif;
  font-size:0.72rem;letter-spacing:0.35em;text-transform:uppercase;
  color:rgba(184,149,58,0.85);
  animation:loaderFadeUp .5s ease .15s both;
}
#pageLoader .loader-title{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(1.6rem,4vw,2.2rem);font-weight:300;letter-spacing:0.18em;
  color:#F5EDD8;
  animation:loaderFadeUp .6s ease .3s both;
}
#pageLoader .loader-rule{
  width:0;height:1px;
  background:linear-gradient(90deg,transparent,#B8953A,transparent);
  animation:loaderLine .6s cubic-bezier(.76,0,.24,1) .5s both;
}
#pageLoader .loader-dots{
  display:flex;gap:0.55rem;margin-top:0.3rem;
  animation:loaderFadeUp .4s ease .7s both;
}
#pageLoader .loader-dots span{
  width:4px;height:4px;border-radius:50%;
  background:#B8953A;
  animation:loaderDot 1.2s ease-in-out infinite;
}
#pageLoader .loader-dots span:nth-child(2){animation-delay:.15s;}
#pageLoader .loader-dots span:nth-child(3){animation-delay:.3s;}
@keyframes loaderFadeUp{
  from{opacity:0;transform:translateY(14px);filter:blur(4px);}
  to{opacity:1;transform:translateY(0);filter:blur(0);}
}
@keyframes loaderLine{
  from{width:0;}
  to{width:min(260px,46vw);}
}
@keyframes loaderDot{
  0%,100%{opacity:.25;transform:translateY(0);}
  50%{opacity:1;transform:translateY(-5px);}
}

/* ページ遷移時のblurフェード */
#pageFade{
  position:fixed;inset:0;z-index:9998;
  background:rgba(15,27,45,0.55);
  backdrop-filter:blur(0px);
  -webkit-backdrop-filter:blur(0px);
  opacity:0;pointer-events:none;
  transition:opacity .3s ease,backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease;
}
#pageFade.active{
  opacity:1;pointer-events:all;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

@media (prefers-reduced-motion: reduce){
  #pageLoader,#pageFade{display:none!important;}
}
