/* PULSIA V2 ENHANCE — additive cinema layer */
::selection{background:#E8632C;color:#0D0E0F}
html{scroll-behavior:smooth}
:focus-visible{outline:2px solid #E8632C;outline-offset:3px;border-radius:4px}
/* film grain overlay */
#px-grain{position:fixed;inset:-60px;pointer-events:none;z-index:9990;opacity:.055;mix-blend-mode:overlay;
 background-image:url('/assets/noise.png');background-size:128px 128px;animation:pxg .42s steps(2) infinite}
@keyframes pxg{0%{transform:translate(0,0)}50%{transform:translate(-22px,14px)}100%{transform:translate(16px,-18px)}}
/* viewport vignette */
#px-vig{position:fixed;inset:0;pointer-events:none;z-index:9989;
 background:linear-gradient(to bottom,rgba(0,0,0,.20),transparent 9%,transparent 91%,rgba(0,0,0,.22))}
/* hero entrance */
.home-header h1{animation:pxHero 1.15s cubic-bezier(.19,.74,.22,1) .15s both}
@keyframes pxHero{from{opacity:0;filter:blur(10px);transform:translateY(16px)}to{opacity:1;filter:blur(0);transform:none}}
.home-header p{animation:pxHero 1.1s cubic-bezier(.19,.74,.22,1) .45s both}
/* marquee band */
#px-marquee{background:#0D0E0F;color:#D8D3C8;overflow:hidden;white-space:nowrap;border-top:1px solid #1c1d1f;border-bottom:1px solid #1c1d1f}
#px-marquee .inner{display:inline-block;padding:13px 0;font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:3px;animation:pxm 26s linear infinite}
@keyframes pxm{from{transform:translateX(0)}to{transform:translateX(-50%)}}
#px-marquee b{color:#E8632C;font-weight:400;margin:0 14px}
/* altitude meter */
#px-alt{position:fixed;right:18px;top:50%;transform:translateY(-50%);height:42vh;width:1px;background:rgba(13,14,15,.18);z-index:9991;pointer-events:none}
#px-alt .dot{position:absolute;left:-3.5px;width:8px;height:8px;border-radius:50%;background:#E8632C;box-shadow:0 0 0 3px rgba(232,99,44,.18)}
#px-alt .lab{position:absolute;right:14px;transform:translateY(-50%);font-family:ui-monospace,Menlo,monospace;font-size:10px;letter-spacing:2px;color:#0D0E0F;mix-blend-mode:difference;filter:invert(1);white-space:nowrap}
@media(max-width:980px){#px-alt{display:none}}
/* sticky apply pill */
#px-apply{position:fixed;left:50%;bottom:22px;transform:translate(-50%,90px);z-index:9992;background:#0D0E0F;color:#fff;
 border:1px solid #2a2c2e;border-radius:999px;padding:13px 26px;font-size:14px;text-decoration:none;display:flex;gap:12px;align-items:center;
 transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .3s;box-shadow:0 10px 36px rgba(0,0,0,.35)}
#px-apply.on{transform:translate(-50%,0)}
#px-apply:hover{box-shadow:0 14px 44px rgba(232,99,44,.35)}
#px-apply .d{width:7px;height:7px;border-radius:50%;background:#E8632C;animation:pxp 1.6s ease-in-out infinite}
#px-apply small{opacity:.55;font-family:ui-monospace,monospace;font-size:10px;letter-spacing:1.5px}
@keyframes pxp{50%{opacity:.35;transform:scale(.8)}}
/* sound pill */
#px-snd{position:fixed;left:20px;bottom:22px;z-index:9992;background:rgba(13,14,15,.85);backdrop-filter:blur(6px);color:#D8D3C8;border:1px solid #2a2c2e;
 border-radius:999px;padding:11px 18px;font-family:ui-monospace,monospace;font-size:10px;letter-spacing:2px;cursor:pointer;display:flex;gap:9px;align-items:center}
#px-snd .bars{display:flex;gap:2px;align-items:flex-end;height:10px}
#px-snd .bars i{width:2px;background:#E8632C;height:3px}
#px-snd.on .bars i{animation:pxb .9s ease-in-out infinite}
#px-snd.on .bars i:nth-child(2){animation-delay:.15s}#px-snd.on .bars i:nth-child(3){animation-delay:.3s}
@keyframes pxb{50%{height:10px}}
@media(max-width:560px){#px-snd{bottom:78px}}
/* card hover lift */
.mentor-card,.story-card-desktop,[class*="benefits__cards"]>div{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.mentor-card:hover,.story-card-desktop:hover{transform:translateY(-5px)}
/* scroll-linked drift on big stills (progressive) */
@supports (animation-timeline: view()) {
  .story-card-desktop__poster img,.home-campus,.accreditation-william-jewell-video video{animation:pxDrift both linear;animation-timeline:view();animation-range:entry 0% exit 100%}
  @keyframes pxDrift{from{transform:translateY(10px)}to{transform:translateY(-10px)}}
}
@media (prefers-reduced-motion: reduce){#px-grain,#px-alt{display:none}.home-header h1,.home-header p{animation:none}#px-marquee .inner{animation:none}}
