/* Shared identity and loading treatment for the website and operation. */
:root{--nova-loader-surface:#f3f6f8;--nova-loader-text:#526674;--nova-loader-accent:#049b97}
html.dark{--nova-loader-surface:#07121c;--nova-loader-text:#b9ceda;--nova-loader-accent:#02cfce}
.nova-loader{display:grid;justify-items:center;align-content:center;gap:18px;text-align:center;color:var(--nova-loader-text);font-family:Montserrat,Arial,sans-serif}
.nova-loader__mark{display:block;width:92px;height:92px;animation:nova-mark-breathe 1.8s ease-in-out infinite;will-change:transform}
.nova-loader__mark img{display:block;width:100%;height:100%;object-fit:contain}
.nova-loader__track{display:block;position:relative;width:64px;height:2px;border-radius:4px;overflow:hidden;background:color-mix(in srgb,var(--nova-loader-accent) 16%,transparent)}
.nova-loader__track::after{content:"";position:absolute;inset:0;background:var(--nova-loader-accent);transform-origin:left;animation:nova-loading-track 1.5s ease-in-out infinite}
.nova-loader__label{margin:0;font-size:14px;font-weight:400;letter-spacing:.015em;line-height:1.7}
.nova-loader--page{min-height:60vh;padding:40px 20px}.nova-loader--area{min-height:260px;padding:30px 20px}.nova-loader--compact{padding:24px 12px;gap:12px}.nova-loader--compact .nova-loader__mark{width:60px;height:60px}
.nova-boot .nova-loader__mark{width:92px;height:92px}
.nova-busy-icon{width:22px;height:22px;object-fit:contain;animation:nova-mark-breathe 1.8s ease-in-out infinite}
.nova-boot{display:none;position:fixed;inset:0;z-index:10000;background:var(--nova-loader-surface);place-items:center;opacity:1;visibility:visible;transition:opacity .22s ease,visibility .22s ease;pointer-events:auto}
html.nova-is-loading .nova-boot{display:grid}
html.nova-brand-ready .nova-boot{opacity:0;visibility:hidden;pointer-events:none}
@keyframes nova-mark-breathe{0%,100%{transform:translateY(2px) scale(.96);opacity:.78}50%{transform:translateY(-2px) scale(1);opacity:1}}
@keyframes nova-loading-track{0%{transform:translateX(-100%) scaleX(.4)}50%{transform:translateX(0) scaleX(.8)}100%{transform:translateX(100%) scaleX(.4)}}
@media(prefers-reduced-motion:reduce){.nova-loader__mark,.nova-busy-icon,.nova-loader__track::after{animation:none;transform:none;opacity:1;will-change:auto}.nova-boot{transition:none}.nova-loader__track::after{width:60%}}
@media print{.nova-boot{display:none!important}}
