/* Intro Reveal Pro 1.3.8c-hotfix2 — words/tagline blur-out before overlay fade */

/* Base/stacking */
#intro-reveal-pro { position: fixed; inset: 0; background: var(--ir-bg, #0f0f0f); color: #fff; z-index: 2147483647; display: grid; place-items: center; overflow: hidden; font: inherit; }
#intro-reveal-pro .ir__center, #intro-reveal-pro .ir__logo, #intro-reveal-pro .ir__tagline { position: relative; z-index: 2; text-align: center; }
#intro-reveal-pro .ir__wipe { position: absolute; inset: 0; background: var(--ir-bg, #0f0f0f); transform: translateY(0%); z-index: 1; pointer-events: none; }

/* Sizing precise */
#intro-reveal-pro .ir__logo img, #intro-reveal-pro .ir__logo-fallback { width: var(--ir-logo-d, 180px) !important; height: auto; display: block; max-width: 100%; margin-left: auto; margin-right: auto; }
@media (max-width: 768px){
  #intro-reveal-pro .ir__logo img, #intro-reveal-pro .ir__logo-fallback { width: var(--ir-logo-m, 112px) !important; }
}

/* Typography */
#intro-reveal-pro .ir__logo-fallback { font-weight: var(--ir-fw, 700); letter-spacing: .06em; font-size: clamp(20px, 5vw, 38px); }
#intro-reveal-pro .ir__tagline { display: inline-block; opacity: 0; filter: blur(10px); font-size: var(--ir-text-d, 46px); line-height: 1.1; font-weight: var(--ir-fw, 700); }
@media (max-width: 768px){ #intro-reveal-pro .ir__tagline { font-size: var(--ir-text-m, 30px); } }
#intro-reveal-pro .ir__word { color: var(--ir-color, #fff); display: inline-block; opacity: 0; transform: translate3d(0,0,0); filter: blur(12px); margin: 0 .35rem; }

/* Entrance sequencing */
#intro-reveal-pro .ir__center { opacity: 0; transform: translateY(10px) scale(.98); filter: blur(8px); animation: irCenterIn 800ms cubic-bezier(.22,.9,.24,1) forwards 60ms; }
#intro-reveal-pro .ir__logo img, #intro-reveal-pro .ir__logo-fallback { opacity: 0; filter: blur(14px); }

/* Exit overlay behavior */
#intro-reveal-pro.is-exiting { animation: none; }
#intro-reveal-pro.is-gone { pointer-events: none; opacity: 0; visibility: hidden; }

/* Keyframes */
@keyframes irCenterIn { to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } }
@keyframes irLogoIn   { to { opacity: 1; transform: none; filter: blur(0); } }
/* Wrapper-based logo out for robustness (matches 1.3.8c-hotfix) */
@keyframes irLogoOutWrap { to { opacity: 0; transform: translateY(-8px) scale(.98); filter: blur(12px); } }

@keyframes irTagIn    { to { opacity: 1; filter: blur(0); } }
@keyframes irTagOut   { to { opacity: 0; filter: blur(12px); transform: translateY(-6px); } }

/* Word motions with blur (in) */
@keyframes irWordUp    { from { transform: translateY(var(--ir-dist, 26px));  opacity: 0; filter: blur(12px); } to { transform: translateY(0); opacity: 1; filter: blur(0); } }
@keyframes irWordDown  { from { transform: translateY(calc(var(--ir-dist, 26px) * -1)); opacity: 0; filter: blur(12px); } to { transform: translateY(0); opacity: 1; filter: blur(0); } }
@keyframes irWordLeft  { from { transform: translateX(var(--ir-dist, 26px));  opacity: 0; filter: blur(12px); } to { transform: translateX(0); opacity: 1; filter: blur(0); } }
@keyframes irWordRight { from { transform: translateX(calc(var(--ir-dist, 26px) * -1)); opacity: 0; filter: blur(12px); } to { transform: translateX(0); opacity: 1; filter: blur(0); } }

/* Word exit (direction-aware) */
@keyframes irWordExitUp    { to { transform: translateY(-10px); opacity: 0; filter: blur(12px); } }
@keyframes irWordExitDown  { to { transform: translateY(10px);  opacity: 0; filter: blur(12px); } }
@keyframes irWordExitLeft  { to { transform: translateX(-10px); opacity: 0; filter: blur(12px); } }
@keyframes irWordExitRight { to { transform: translateX(10px);  opacity: 0; filter: blur(12px); } }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  #intro-reveal-pro { display: none !important; }
}
