.cms-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.35rem;padding:clamp(2.5rem,8vw,4rem) 1.5rem;min-height:min(72vh,720px);width:100%;box-sizing:border-box}.cms-loading--compact{min-height:min(48vh,420px)}.cms-loading__visual{position:relative;width:64px;height:64px;flex-shrink:0}.cms-loading__ring{position:absolute;inset:0;border-radius:50%;border-color:#1a73e8 rgba(26,115,232,.35) transparent transparent;border-style:solid;border-width:3px;animation:cms-loading-spin 1.15s cubic-bezier(.45,.05,.55,.95) infinite}.cms-loading__ring--mid{inset:9px;border-top-color:#87ceeb;border-right-color:rgba(135,206,235,.4);animation-duration:.95s;animation-direction:reverse}.cms-loading__ring--core{inset:18px;border-width:2.5px;border-top-color:#0a2540;border-right-color:rgba(10,37,64,.25);animation-duration:1.4s}.cms-loading__core{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px;border-radius:50%;background:linear-gradient(145deg,#1a73e8,#87ceeb);box-shadow:0 0 18px rgba(26,115,232,.45);animation:cms-loading-pulse 1.6s ease-in-out infinite}.cms-loading__label{margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(10,37,64,.72)}.cms-loading__dots:after{content:"";animation:cms-loading-dots 1.4s steps(4) infinite}@keyframes cms-loading-spin{to{transform:rotate(1turn)}}@keyframes cms-loading-pulse{0%,to{transform:scale(.85);opacity:.75}50%{transform:scale(1.08);opacity:1}}@keyframes cms-loading-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.cms-content-gate{width:100%}.cms-content-gate--fade-in{animation:cms-content-gate-in .45s ease both}@keyframes cms-content-gate-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.cms-loading__ring{animation:cms-loading-spin 2.5s linear infinite}.cms-loading__ring--mid{animation-direction:normal}.cms-loading__core{animation:none}.cms-loading__dots:after{content:"…";animation:none}.cms-content-gate--fade-in{animation:none}}