/* MMUST CU Phase 50 — Pulse Loading + progressive rendering */
:root{--p50-blue:#0099FF;--p50-orange:#FF9900;--p50-white:#FFFFFF;--p50-ink:#111827;--p50-soft:#f5f9fc}
@view-transition{navigation:auto}
::view-transition-old(root){animation:p50-vt-out .16s ease both}::view-transition-new(root){animation:p50-vt-in .24s cubic-bezier(.2,.75,.2,1) both}
@keyframes p50-vt-out{to{opacity:.88;filter:blur(1.5px)}}@keyframes p50-vt-in{from{opacity:.2;transform:translateY(5px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.phase50-loader{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;background:linear-gradient(180deg,rgba(255,255,255,.91),rgba(245,250,254,.94));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:opacity .18s ease,visibility .18s ease}
.phase50-loader::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--p50-blue),#38bdf8,var(--p50-orange),var(--p50-blue));background-size:240% 100%;animation:p50-progress 1.15s linear infinite;box-shadow:0 3px 18px rgba(0,153,255,.22)}
html.phase50-booting .phase50-loader,html.phase50-navigating .phase50-loader{opacity:1;visibility:visible}
.phase50-loader-card{min-width:min(82vw,330px);padding:24px 25px 22px;border:1px solid rgba(0,153,255,.18);border-radius:24px;background:rgba(255,255,255,.92);box-shadow:0 28px 80px rgba(15,23,42,.16);text-align:center;transform:translateY(5px) scale(.985);opacity:0;animation:p50-card-in .34s .10s cubic-bezier(.2,.8,.2,1) forwards}
.phase50-loader-mark{position:relative;width:74px;height:74px;margin:0 auto 13px;display:grid;place-items:center}.phase50-loader-mark::before,.phase50-loader-mark::after{content:"";position:absolute;border-radius:999px;inset:0;border:2px solid transparent}.phase50-loader-mark::before{border-top-color:var(--p50-blue);border-right-color:rgba(0,153,255,.28);animation:p50-spin 1s linear infinite}.phase50-loader-mark::after{inset:7px;border-bottom-color:var(--p50-orange);border-left-color:rgba(255,153,0,.24);animation:p50-spin-rev 1.35s linear infinite}.phase50-loader-mark img{width:46px;height:46px;object-fit:contain;border-radius:50%;filter:drop-shadow(0 6px 14px rgba(0,153,255,.16))}
.phase50-loader-eyebrow{display:block;font:800 10px/1.2 "Montserrat",Arial,sans-serif;letter-spacing:.13em;color:var(--p50-blue);text-transform:uppercase;margin-bottom:7px}.phase50-loader-title{display:block;font:800 16px/1.35 "Montserrat",Arial,sans-serif;color:var(--p50-ink)}.phase50-loader-sub{display:block;margin-top:5px;font:500 11px/1.45 "Montserrat",Arial,sans-serif;color:#64748b}
@keyframes p50-progress{to{background-position:-240% 0}}@keyframes p50-spin{to{transform:rotate(360deg)}}@keyframes p50-spin-rev{to{transform:rotate(-360deg)}}@keyframes p50-card-in{to{opacity:1;transform:none}}
img[data-phase50-lazy],iframe[data-phase50-lazy]{transition:opacity .28s ease,filter .35s ease}img[data-phase50-lazy]:not(.phase50-media-ready){opacity:.72;filter:saturate(.85)}img.phase50-media-ready{opacity:1;filter:none}
.phase50-content-auto{content-visibility:auto;contain-intrinsic-size:auto 520px}.phase50-reveal{opacity:0;transform:translateY(9px);transition:opacity .36s ease,transform .42s cubic-bezier(.2,.75,.2,1)}.phase50-reveal.phase50-inview{opacity:1;transform:none}
.phase50-network-note{position:fixed;z-index:2147483001;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%,14px);opacity:0;pointer-events:none;padding:8px 12px;border-radius:999px;background:#111827;color:#fff;font:700 10px/1 "Montserrat",Arial,sans-serif;transition:.2s ease}html.phase50-slow .phase50-network-note{opacity:.92;transform:translate(-50%,0)}
@media(max-width:640px){.phase50-loader-card{min-width:min(86vw,310px);padding:21px 18px 19px;border-radius:21px}.phase50-loader-mark{width:66px;height:66px}.phase50-loader-mark img{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),.phase50-loader::before,.phase50-loader-mark::before,.phase50-loader-mark::after{animation:none!important}.phase50-reveal{opacity:1!important;transform:none!important;transition:none!important}}
@media print{.phase50-loader,.phase50-network-note{display:none!important}}
