/* Initial app entry only. Navigation/AJAX loading remains independent. */
html.cms-splash-active, html.cms-splash-active body { overflow: hidden !important; }
html.cms-splash-active { background: #102f31; }
#cmsSplash {
    position: fixed; inset: 0; z-index: 2147483000; isolation: isolate;
    display: grid; place-items: center; box-sizing: border-box;
    background: #f2f7f6; color: #213c40; overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Malgun Gothic", sans-serif;
    opacity: 1; transition: opacity 220ms ease;
}
#cmsSplash.cms-splash-leaving { opacity: 0; pointer-events: none; }
#cmsSplash .cms-splash-light {
    position: absolute; inset: -25%; z-index: -2;
    background: radial-gradient(ellipse at 50% 43%, #fff 0%, transparent 60%);
    animation: cms-splash-light 2200ms ease both;
}
#cmsSplash .cms-splash-shade {
    position: absolute; inset: 0; z-index: -1; background: #102f31;
    animation: cms-splash-dawn 2200ms cubic-bezier(.24,.55,.3,1) both;
}
#cmsSplash .cms-splash-brand { text-align: center; padding: 32px 20px 44px; }
#cmsSplash .cms-splash-logo {
    display: block; width: 82px; height: 105px; object-fit: contain; margin: 0 auto 28px;
    animation: cms-splash-emerge 2200ms cubic-bezier(.22,.61,.36,1) both;
}
#cmsSplash .cms-splash-copy, #cmsSplash .cms-splash-foot { animation: cms-splash-words 2200ms ease both; }
#cmsSplash .cms-splash-eyebrow { margin: 0 0 12px; color: #647d7d; font-size: 10px; line-height: 1.5; letter-spacing: 3.2px; font-weight: 600; }
#cmsSplash .cms-splash-title { display: block; margin: 0; color: #213c40; font-size: clamp(25px, 5vw, 32px); line-height: 1.4; letter-spacing: -1.2px; font-weight: 750; }
#cmsSplash .cms-splash-title span { color: #187b70; font-weight: 500; letter-spacing: -.5px; }
#cmsSplash .cms-splash-line { margin: 23px auto 0; width: 28px; height: 3px; border-radius: 3px; background: #187b70; }
#cmsSplash .cms-splash-foot { position: absolute; bottom: max(29px, env(safe-area-inset-bottom)); left: 16px; right: 16px; text-align: center; color: #647d7d; font-size: 11px; letter-spacing: 1px; }
@keyframes cms-splash-dawn { 0% { opacity: 1; } 25% { opacity: .83; } 85%, 100% { opacity: 0; } }
@keyframes cms-splash-emerge {
    0%, 8% { opacity: 0; transform: translateY(8px) scale(.96); filter: brightness(.55); }
    72%, 100% { opacity: 1; transform: translateY(0) scale(1); filter: brightness(1); }
}
@keyframes cms-splash-words { 0%, 25% { opacity: 0; transform: translateY(7px); } 90%, 100% { opacity: 1; transform: translateY(0); } }
@keyframes cms-splash-light { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: scale(1); } }
@media (max-height: 380px) {
    #cmsSplash .cms-splash-logo { width: 55px; height: 70px; margin-bottom: 16px; }
    #cmsSplash .cms-splash-brand { padding: 16px 16px 34px; }
    #cmsSplash .cms-splash-line { margin-top: 14px; }
    #cmsSplash .cms-splash-foot { bottom: max(12px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
    #cmsSplash, #cmsSplash * { animation: none !important; transition: none !important; }
}
@media print { #cmsSplash { display: none !important; } }
