/* ====== RJB shared mechanics — theme-agnostic ====== */

/* reveal */
[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2,.7,.2,1) var(--d, 0ms), transform .8s cubic-bezier(.2,.7,.2,1) var(--d, 0ms); }
[data-reveal="left"] { transform: translateX(-30px); }
[data-reveal="right"] { transform: translateX(30px); }
[data-reveal="zoom"] { transform: scale(.94); }
[data-reveal].is-in { opacity: 1; transform: none; }

/* ticker */
[data-ticker] { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.rjb-ticker-track { display: flex; width: max-content; animation: rjb-marquee 60s linear infinite; }
[data-ticker]:hover .rjb-ticker-track { animation-play-state: paused; }
.rjb-ticker-set { display: flex; align-items: center; flex-shrink: 0; }
.rjb-tick { display: inline-flex; gap: .6em; align-items: baseline; white-space: nowrap; padding: 0 1.2em; }
.rjb-tick em { font-style: normal; }
.rjb-tick-sep { font-style: normal; opacity: .5; }
@keyframes rjb-marquee { to { transform: translateX(-50%); } }

/* audience switch */
[data-audience="candidate"] [data-audience-only="employer"],
[data-audience="employer"] [data-audience-only="candidate"] { display: none !important; }

/* quiz */
[data-quiz] [data-step][hidden] { display: none !important; }
[data-quiz] [data-step].is-current { animation: rjb-step .45s cubic-bezier(.2,.7,.2,1); }
@keyframes rjb-step { from { opacity: 0; transform: translateX(18px); } }
[data-quiz-progress] { --p: 0%; }

/* scroll progress */
[data-progress] { position: fixed; top: 0; left: 0; right: 0; height: 2px; transform-origin: 0 50%; transform: scaleX(0); z-index: 1000; pointer-events: none; }

/* punjabi / hindi hero sizing */
html[data-lang="pa"] [data-i18n^="heroTitle"],
html[data-lang="hi"] [data-i18n^="heroTitle"] { font-family: 'Mukta', 'Noto Sans Gurmukhi', 'Noto Sans Devanagari', sans-serif; font-weight: 700; letter-spacing: 0; line-height: 1.25; font-style: normal; }
html[data-lang="pa"] [data-i18n^="heroTitle"] { font-family: 'Noto Sans Gurmukhi', sans-serif; }

/* a11y */
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  [data-reveal] { opacity: 1; transform: none; }
}
