/* Shared progressive effects; content is never hidden while waiting for JS. */
.hero-btn i, .tts-talk i, .text-link i, .solution-card a i, .btn-tts .btna {
  transition: translate .24s ease;
}
:is(.hero-btn,.tts-talk,.text-link,.solution-card a,.btn-tts):is(:hover,:focus-visible) :is(i,.btna) { translate: 4px 0; }
.hr-service-card, .journey-card { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
@media (hover:hover) and (pointer:fine) {
  .hr-service-card:hover, .journey-card:hover { transform: translateY(-4px); border-color: #c9a96e; box-shadow: 0 14px 32px #071a3b14; }
  .homepage-landscape .solution-card:hover { border-color: #c9a96e; box-shadow: 0 14px 36px #071a3b18; }
}
.hr-service-card:focus-within, .journey-card:focus-within { border-color: #c9a96e; }
.effect-reveal { animation: section-arrival .7s cubic-bezier(.2,.7,.2,1) both; animation-delay: var(--reveal-delay,0ms); }
@keyframes section-arrival { from { opacity: .25; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }
.hr-hero.hero-motion { position: relative; isolation: isolate; overflow: hidden; background-image: none; background-color: #071a3b; }
.hr-hero.hero-motion::before { content: ''; position: absolute; inset: 0; z-index: -1; background-image: var(--hero-art); background-size: cover; background-position: inherit; animation: hero-drift 16s ease-out forwards; pointer-events: none; }
@keyframes hero-drift { from { transform: scale(1); } to { transform: scale(1.045); } }
.hr-hero.hero-motion:is(:hover,:focus-within)::before { animation-play-state: paused; }
.service-reading { display: flex; align-items: center; gap: 16px; margin: 18px 0 26px; color: #526077; }
.service-reading-label { font: 500 12px/1.4 Inter,sans-serif; flex-shrink: 0; }
.service-reading-track { height: 3px; flex: 1; border-radius: 3px; overflow: hidden; background: #ddd8cf; }
.service-reading-fill { display: block; height: 100%; background: #b59055; transform: scaleX(var(--service-progress,0)); transform-origin: left; transition: transform .18s ease-out; }
.service-story-nav a { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.story-hint { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.story-swipe-cue { font-size: 24px; color: #98764a; animation: swipe-invitation 1.8s ease-in-out 3; }
@keyframes swipe-invitation { 0%,100% { translate: 0; } 50% { translate: 7px 0; } }
.story-track { scroll-padding-inline: 2px; }
.story-track .journey-card { flex-basis: 38%; }
@media(max-width:991px) { .story-track .journey-card { flex-basis: 64%; } }
@media(max-width:575px) { .story-track .journey-card { flex-basis: 84%; } .service-reading { gap: 10px; } }
@media(prefers-reduced-motion:reduce) {
 .effect-reveal, .story-swipe-cue, .hr-hero.hero-motion::before { animation: none !important; }
 .hero-btn i, .tts-talk i, .text-link i, .solution-card a i, .btn-tts .btna, .hr-service-card, .journey-card, .service-reading-fill { transition: none !important; }
 .hr-service-card:hover, .journey-card:hover { transform: none !important; }
 :is(.hero-btn,.tts-talk,.text-link,.solution-card a,.btn-tts):is(:hover,:focus-visible) :is(i,.btna) { translate: none; }
}

/* Brand aurora: soft ribbons behind the content, never over text or controls. */
.aurora-section { position: relative; isolation: isolate; }
.brand-aurora { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; border-radius: inherit; }
.brand-aurora::before, .brand-aurora::after {
  content: ''; position: absolute; inset: -25% -15%;
  background:
    radial-gradient(ellipse 65% 24% at 25% 36%, #c9a96e55, transparent 72%),
    radial-gradient(ellipse 55% 20% at 72% 62%, #29496d25, transparent 74%),
    radial-gradient(ellipse 48% 15% at 54% 48%, #e0c89866, transparent 72%);
  filter: blur(24px); opacity: .7;
  transform: rotate(-12deg);
  animation: brand-aurora-drift 22s ease-in-out infinite alternate;
}
.brand-aurora::after { opacity: .4; transform: rotate(16deg) scale(1.1); animation-name: brand-aurora-return; animation-duration: 29s; }
.aurora-dark .brand-aurora::before, .aurora-dark .brand-aurora::after {
  background:
    radial-gradient(ellipse 65% 22% at 20% 45%, #c9a96e55, transparent 72%),
    radial-gradient(ellipse 55% 24% at 75% 55%, #5085ad66, transparent 75%),
    radial-gradient(ellipse 40% 16% at 55% 35%, #e0c89833, transparent 72%);
  opacity: .65;
}
@keyframes brand-aurora-drift {
  from { transform: translate(-4%, -3%) rotate(-12deg) scale(1); }
  to { transform: translate(5%, 5%) rotate(-3deg) scale(1.08); }
}
@keyframes brand-aurora-return {
  from { transform: translate(4%, 3%) rotate(16deg) scale(1.1); }
  to { transform: translate(-5%, -4%) rotate(6deg) scale(1); }
}
@media(max-width:767px) {
  .brand-aurora::before { filter: blur(16px); opacity: .55; }
  .brand-aurora::after { display: none; }
}
@media(prefers-reduced-motion:reduce) {
  .brand-aurora::before, .brand-aurora::after { animation: none !important; }
}

/* Line-by-line masked caption reveal; preserve selectable, accessible text. */
.masked-heading .heading-mask { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
.masked-heading .heading-mask > * { display: block; }
.masked-heading.effect-reveal { animation: none; }
.masked-heading.effect-reveal .heading-mask > * {
  animation: heading-unmask .9s cubic-bezier(.16,1,.3,1) both;
}
.masked-heading.effect-reveal .heading-mask:nth-child(2) > * { animation-delay: .16s; }
.masked-heading.effect-reveal .heading-mask:nth-child(3) > * { animation-delay: .32s; }
@keyframes heading-unmask {
  from { transform: translateY(115%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
@media(prefers-reduced-motion:reduce) {
  .masked-heading.effect-reveal .heading-mask > * { animation: none !important; transform: none; opacity: 1; }
}
/* Replace older whole-heading entrances with the shared line mask. */
.homepage-landscape .hero-ref h1.masked-heading,
.hr-page .hr-hero h1.masked-heading { animation: none; }
