/* v76 — entrance polish, responsive heroes, and interaction recovery */

/* A magnetic search only: no vertical hop or scale jump on the header mark. */
.universalNav > .brand,
.universalNav.menuOpen > .brand {
  transform-origin: 50% 50% !important;
  animation: headerMagneticSeekV76 8.5s cubic-bezier(.28,.06,.18,1) infinite !important;
  will-change: transform;
}
@keyframes headerMagneticSeekV76 {
  0%, 12%, 78%, 100% { transform: rotate(0deg); }
  24% { transform: rotate(13deg); }
  36% { transform: rotate(-9deg); }
  47% { transform: rotate(5deg); }
  57% { transform: rotate(-2deg); }
  66% { transform: rotate(0deg); }
}

/* Cover-screen hierarchy and the same restrained float/sheen language used by
   the page titles. */
.entranceCore {
  padding: clamp(22px,4vh,44px) 20px !important;
}
.entranceMotto {
  margin: 0 0 clamp(24px,3.5vh,38px) !important;
  font-family: Georgia,"Times New Roman",serif !important;
  font-size: clamp(25px,3.4vw,45px) !important;
  font-style: italic !important;
  letter-spacing: .045em !important;
  background-image: linear-gradient(105deg,#c18f43 0 34%,#fff0c3 48%,#d9aa55 58%,#f0d493 72%) !important;
  background-size: 240% 100% !important;
  animation: entranceMottoFloatV76 5.8s ease-in-out infinite,entranceSheenV76 8s linear infinite !important;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.55));
}
.entranceDialButton {
  margin: 0 !important;
}
.entranceCore > small {
  margin-top: clamp(25px,3.2vh,36px) !important;
  font-size: 10px !important;
  letter-spacing: .48em !important;
}
.entranceLogo {
  width: min(310px,64vw) !important;
  margin-top: 18px !important;
  animation: entranceLogoFloatV76 6.4s ease-in-out infinite !important;
  filter: brightness(1.05) drop-shadow(0 14px 28px rgba(0,0,0,.5));
}
@keyframes entranceMottoFloatV76 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes entranceLogoFloatV76 { 0%,100%{transform:translateY(0);filter:brightness(1.02) drop-shadow(0 14px 28px rgba(0,0,0,.5))} 50%{transform:translateY(-3px);filter:brightness(1.14) drop-shadow(0 18px 34px rgba(191,143,61,.2))} }
@keyframes entranceSheenV76 { from{background-position:180% 0} to{background-position:-80% 0} }
.entranceDoor {
  transition-duration: .72s !important;
  transition-timing-function: cubic-bezier(.62,.02,.16,1) !important;
  will-change: transform;
}
.avlrEntrance.opening {
  transition: background .28s .28s !important;
}
.avlrEntrance.opening .entranceCore {
  transition: opacity .18s,transform .3s !important;
}

/* The Guide stays still at rest, then acknowledges its own prompt/response. */
.experienceDock .guideToggle {
  animation: none !important;
}
.experienceDock.guidePrompt .guideToggle,
.experienceDock.guideResponding .guideToggle {
  animation: guideAliveV76 .56s cubic-bezier(.35,.02,.25,1) 1 !important;
}
@keyframes guideAliveV76 {
  0%,100% { transform: rotate(0) scale(1); }
  22% { transform: rotate(-4deg) scale(1.035); }
  45% { transform: rotate(4deg) scale(1.055); }
  68% { transform: rotate(-2deg) scale(1.035); }
}

/* A navigation swap must never inherit a modal/menu scroll lock. */
body:not(.entranceLocked):not(.mobileMenuOpen):not(.guideIsOpen):not(.dialogFallbackActive) {
  overflow-x: hidden;
  overflow-y: auto;
  touch-action: pan-y;
}

@media (max-width: 760px) {
  .entranceCore { width: 100% !important; min-height: 100dvh; justify-content:center !important; }
  .entranceMotto { max-width: 92vw; margin-bottom: 24px !important; font-size:clamp(23px,7.3vw,32px)!important; text-align:center; }
  .entranceDial { width:min(54vw,218px)!important; }
  .entranceCore > small { margin-top:27px!important; }
  .entranceLogo { width:min(265px,61vw)!important; margin-top:16px!important; }

  .hero,
  .companyHero,
  .divisionHero,
  .storyHero,
  .communityHero,
  .veteranHero,
  .categoryHero {
    box-sizing:border-box;
    width:100%;
    min-height:calc(100svh - 76px)!important;
    padding:clamp(102px,15vh,132px) 20px 64px!important;
    align-items:flex-end!important;
    overflow:hidden!important;
  }
  .heroContent,
  .divisionHero > div:last-child,
  .storyHero > div,
  .communityHero > div,
  .veteranHero > div,
  .categoryHero > div {
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .hero h1,
  .divisionHero h1,
  .storyHero h1,
  .communityHero h1,
  .veteranHero h1,
  .categoryHero h1,
  main > header h1 {
    width:100%!important;
    max-width:100%!important;
    margin:14px 0 18px!important;
    font-size:clamp(43px,14.2vw,68px)!important;
    line-height:.88!important;
    letter-spacing:-.05em!important;
    overflow-wrap:break-word;
    word-break:normal;
  }
  .hero .lead,
  .divisionHero p:not(.eyebrow),
  .storyHero .lead,
  .communityHero .lead,
  .veteranHero .lead,
  .categoryHero .lead {
    max-width:100%!important;
    font-size:clamp(16px,4.8vw,20px)!important;
    line-height:1.48!important;
  }
  .heroMotion,
  .storyHero > .heroMotion,
  .communityHero > .heroMotion {
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:56% center!important;
  }
  .companyHero .heroMotion { object-position:62% center!important; }
  .pageTransition { animation:pageArriveMobileV76 .22s ease-out both!important; }
  @keyframes pageArriveMobileV76 { from{opacity:.55} to{opacity:1} }
}

@media (max-width: 390px) {
  .hero,.companyHero,.divisionHero,.storyHero,.communityHero,.veteranHero,.categoryHero { padding-inline:16px!important; }
  .hero h1,.divisionHero h1,.storyHero h1,.communityHero h1,.veteranHero h1,.categoryHero h1,main>header h1 { font-size:clamp(40px,13.5vw,55px)!important; }
}

@media (prefers-reduced-motion: reduce) {
  .universalNav > .brand,.universalNav.menuOpen > .brand,.entranceMotto,.entranceLogo,.experienceDock.guidePrompt .guideToggle,.experienceDock.guideResponding .guideToggle { animation:none!important; }
}
