   /* ============================================================
      LOADER
      ============================================================ */
   #page-loader {
     position: fixed;
     inset: 0;
     background: #07080E;
     display: flex;
     align-items: center;
     justify-content: center;
     z-index: 9990;
     transition: opacity 0.8s var(--ease), visibility 0.8s;
   }
   #page-loader.out { opacity: 0; visibility: hidden; pointer-events: none; }
   
   .loader-inner { text-align: center; }
   
   .loader-wordmark {
     font-family: var(--font-display);
     /* font-size: clamp(1.6rem, 3vw, 2.4rem); */
     font-size: clamp(2.3rem, 3vw, 2.4rem);
     font-weight: 500;
     letter-spacing: 0.1em;
     color: #E8EBF5;
     text-transform: uppercase;
     overflow: hidden;
     text-align: center;
     justify-content: center;
     display: flex;
   }

   .loader-wordmark p {
	font-family: var(--font-body);
	font-size: 0.65rem;
	letter-spacing: 0.73em;
	text-transform: uppercase;
	color: rgba(200,206,223,0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	opacity: 0;
	animation: loaderFade 0.5s var(--ease) 0.5s forwards;
	margin-bottom: 0;
   }
   .loader-wordmark span {
     display: inline-block;
     transform: translateY(110%);
     animation: loaderChar 0.6s var(--ease) forwards;
     opacity: 0;
   }
   .loader-wordmark span:nth-child(1) { animation-delay: 0.04s; }
   .loader-wordmark span:nth-child(2) { animation-delay: 0.08s; }
   .loader-wordmark span:nth-child(3) { animation-delay: 0.12s; }
   .loader-wordmark span:nth-child(4) { animation-delay: 0.16s; }
   .loader-wordmark span:nth-child(5) { animation-delay: 0.20s; }
   .loader-wordmark span:nth-child(6) { animation-delay: 0.24s; }
   .loader-wordmark span:nth-child(7) { animation-delay: 0.28s; }
   .loader-wordmark span:nth-child(8) { animation-delay: 0.32s; }
   .loader-wordmark span:nth-child(9) { animation-delay: 0.36s; }
   .loader-wordmark span:nth-child(10){ animation-delay: 0.40s; }
   
   @keyframes loaderChar {
     to { transform: translateY(0); opacity: 1; }
   }
   
   .loader-rule {
     width: 0;
     height: 1px;
     background: var(--blue);
     margin: 10px auto 20px;
     animation: loaderRule 0.7s var(--ease) 0.6s forwards;
     box-shadow: var(--glow-sm);
   }
   @keyframes loaderRule { to { width: 100%; } }
   
   .loader-sub {
     font-family: var(--font-body);
     font-size: 0.65rem;
     letter-spacing: 0.22em;
     text-transform: uppercase;
     color: rgba(200,206,223,0.45);
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 12px;
     opacity: 0;
     animation: loaderFade 0.5s var(--ease) 0.9s forwards;
   }

    .loader-sub-title {
     font-family: var(--font-display);
     font-size: 0.85rem;
     letter-spacing: 0.22em;
     text-transform: uppercase;
     color: #E8EBF5;
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 12px;
     opacity: 0;
     animation: loaderFade 0.5s var(--ease) 0.9s forwards;
   }
   .loader-sub img { filter: brightness(0) invert(1); opacity: 0.7; max-height: 16px; width: auto; }
   @keyframes loaderFade { to { opacity: 1; } }