.site-loader[hidden] { display: none; }
.site-loader { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; overflow: hidden; pointer-events: none; background: #f7f5ef; color: #182e3f; font-family: Arial, sans-serif; animation: loader-failsafe .45s 3.6s forwards; }
.site-loader::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 45%, #bfd5ce35, transparent 52%); }
.loader-frame { position: absolute; inset: 20px; border: 1px solid #738e9324; }
.loader-frame::before, .loader-frame::after { content: '+'; position: absolute; top: -8px; font-size: 14px; color: #719494; font-weight: 300; }
.loader-frame::before { left: -5px; }
.loader-frame::after { right: -5px; }
.loader-center { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.loader-coordinate { font-size: 8px; letter-spacing: .28em; color: #6b858a; text-transform: uppercase; margin-bottom: 32px; }
.loader-orbit { width: 180px; height: 180px; position: relative; display: grid; place-items: center; }
.loader-orbit::before { content: ''; position: absolute; inset: 0; border: 1px solid #7a9c9e24; border-radius: 50%; }
.loader-orbit::after { content: ''; position: absolute; inset: -13px; border: 1px dashed #7a9c9e1f; border-radius: 50%; animation: loader-orbit 15s linear infinite reverse; }
.loader-symbol { width: 126px; height: 126px; fill: none; stroke: #356575; stroke-width: .65; animation: loader-symbol 3.2s cubic-bezier(.4,0,.2,1) infinite; }
.loader-symbol .loader-dot { fill: #43868e; stroke: #f7f5ef; stroke-width: 1.6; }
.loader-satellite { position: absolute; inset: 0; animation: loader-orbit 2.4s linear infinite; }
.loader-satellite::after { content: ''; position: absolute; width: 5px; height: 5px; border-radius: 50%; top: -2px; left: calc(50% - 2px); background: #55908c; box-shadow: 0 0 18px #55908c70; }
.loader-wordmark { width: 140px; height: auto; margin-top: 41px; }
.loader-line { margin-top: 27px; width: 150px; height: 1px; background: #839f972b; overflow: hidden; }
.loader-line::after { content: ''; display: block; width: 60%; height: 100%; background: linear-gradient(90deg, transparent, #43868e, transparent); animation: loader-scan 1.4s ease-in-out infinite; }
.loader-status { min-height: 12px; margin: 17px 0 0; font-size: 8px; letter-spacing: .18em; text-transform: uppercase; color: #627e85; }
.loader-bottom { position: absolute; bottom: 43px; left: 6%; right: 6%; display: flex; justify-content: space-between; gap: 20px; font-size: 7px; letter-spacing: .16em; color: #7a8f92; text-transform: uppercase; }
.site-loader.is-ready .loader-line::after { width: 100%; animation: none; background: #43868e; }
.site-loader.is-complete { opacity: 0; visibility: hidden; transition: opacity 500ms ease, visibility 0s 500ms; }
.site-loader.is-complete .loader-center { transform: translateY(-12px) scale(1.02); transition: transform 500ms ease; }
@keyframes loader-orbit { to { transform: rotate(360deg); } }
@keyframes loader-symbol { 0%, 100% { transform: rotate(-12deg); } 50% { transform: rotate(24deg); } }
@keyframes loader-scan { from { transform: translateX(-110%); } to { transform: translateX(280%); } }
@keyframes loader-failsafe { to { opacity: 0; visibility: hidden; } }
@media (max-width: 760px) { .loader-frame { inset: 12px; } .loader-bottom { bottom: 29px; font-size: 6px; } .loader-orbit { width: 150px; height: 150px; } .loader-symbol { width: 110px; height: 110px; } }
@media (prefers-reduced-motion: reduce) { .site-loader { display: none !important; } }
@media print { .site-loader { display: none !important; } }
