html.dosigny-loader-active,
html.dosigny-loader-active body {
    overflow: hidden !important;
    overscroll-behavior: none;
}

.dosigny-brand-loader {
    position: fixed;
    z-index: 2147483000;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: var(--dosigny-primary-dark, #0a293e);
    background:
        radial-gradient(circle at 50% 44%, rgba(165, 215, 213, .29), transparent 30%),
        radial-gradient(circle at 13% 17%, rgba(62, 163, 220, .1), transparent 24%),
        linear-gradient(145deg, #fff 0%, #f8fbfb 46%, #edf7f7 100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(1.018);
    transform-origin: 50% 50%;
    isolation: isolate;
    transition:
        opacity .72s cubic-bezier(.22, 1, .36, 1),
        transform .9s cubic-bezier(.22, 1, .36, 1),
        visibility 0s linear .72s;
}

html.dosigny-loader-active .dosigny-brand-loader {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1);
    transition-delay: 0s;
}

html.dosigny-loader-skip .dosigny-brand-loader,
.dosigny-brand-loader.is-leaving {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(1.012);
}

.dosigny-brand-loader__aura {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
}

.dosigny-brand-loader__aura--one {
    width: min(58rem, 98vw);
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(165, 215, 213, .2), transparent 66%);
    animation: dosigny-loader-aura 3.6s ease-in-out infinite alternate;
}

.dosigny-brand-loader__aura--two {
    width: min(27rem, 62vw);
    aspect-ratio: 1;
    border: 1px solid rgba(8, 116, 124, .08);
    box-shadow: 0 0 0 4rem rgba(255, 255, 255, .12), 0 0 0 8rem rgba(165, 215, 213, .035);
    animation: dosigny-loader-ring 4.2s cubic-bezier(.4, 0, .2, 1) infinite alternate;
}

.dosigny-brand-loader__field {
    position: absolute;
    z-index: -1;
    width: 112%;
    height: 112%;
    inset: -6%;
    pointer-events: none;
    animation: dosigny-loader-field 7s ease-in-out infinite alternate;
}

.dosigny-brand-loader__wash {
    opacity: 0;
    transform: translateY(4.5rem);
    animation: dosigny-loader-wash .8s cubic-bezier(.16, 1, .3, 1) .04s forwards;
}

.dosigny-brand-loader__line {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: dosigny-loader-line .74s cubic-bezier(.16, 1, .3, 1) forwards;
}

.dosigny-brand-loader__line--one { animation-delay: .04s; }
.dosigny-brand-loader__line--two { animation-delay: .11s; }
.dosigny-brand-loader__line--three { animation-delay: .18s; }

.dosigny-brand-loader__stage {
    position: relative;
    display: grid;
    width: min(42rem, 88vw);
    min-width: 0;
    place-items: center;
    padding: clamp(1.4rem, 4vw, 2.4rem);
}

.dosigny-brand-loader__eyebrow {
    margin: 0 0 clamp(1rem, 2.8vw, 1.55rem);
    color: var(--dosigny-accent, #08747c);
    font: 750 clamp(.68rem, 1.4vw, .82rem)/1.2 var(--dosigny-font, system-ui, sans-serif);
    letter-spacing: .22em;
    text-align: center;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(.65rem);
    animation: dosigny-loader-copy .45s cubic-bezier(.16, 1, .3, 1) .16s forwards;
}

.dosigny-brand-loader__logo-frame {
    position: relative;
    display: grid;
    width: min(37rem, 84vw);
    min-width: 0;
    place-items: center;
    padding: clamp(1.35rem, 4.5vw, 2.4rem) clamp(1rem, 4vw, 2.2rem);
    overflow: hidden;
    border: 1px solid rgba(10, 41, 62, .09);
    border-radius: clamp(1.5rem, 4vw, 2.35rem);
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 1.8rem 5rem rgba(10, 41, 62, .1), inset 0 1px 0 rgba(255, 255, 255, .95);
    opacity: 0;
    transform: translateY(1rem) scale(.985);
    animation: dosigny-loader-frame .58s cubic-bezier(.16, 1, .3, 1) .1s forwards;
}

.dosigny-brand-loader__logo-aura {
    position: absolute;
    width: 58%;
    aspect-ratio: 2.4;
    border-radius: 50%;
    background: rgba(165, 215, 213, .2);
    transform: rotate(-7deg);
    animation: dosigny-loader-logo-aura 2.5s ease-in-out infinite alternate;
}

.dosigny-brand-loader__logo {
    position: relative;
    display: block;
    width: min(100%, 32rem);
    height: auto;
    object-fit: contain;
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transform: translate3d(-.8rem, 0, 0);
    animation: dosigny-loader-logo .72s cubic-bezier(.16, 1, .3, 1) .12s forwards;
}

.dosigny-brand-loader__light {
    position: absolute;
    width: 12%;
    height: 170%;
    inset: -35% auto auto -24%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .88), transparent);
    transform: rotate(13deg);
    opacity: 0;
    animation: dosigny-loader-light .6s cubic-bezier(.4, 0, .2, 1) .32s both;
}

.dosigny-brand-loader__flow {
    position: relative;
    width: clamp(4.5rem, 12vw, 6.2rem);
    height: 2px;
    margin-top: clamp(1.35rem, 3vw, 1.9rem);
    overflow: hidden;
    border-radius: 999px;
    background: rgba(10, 41, 62, .1);
    opacity: 0;
    animation: dosigny-loader-copy .36s ease .45s forwards;
}

.dosigny-brand-loader__flow > span {
    display: block;
    width: 46%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--dosigny-brand-blue, #3ea3dc), var(--dosigny-brand-mint, #a5d7d5));
    animation: dosigny-loader-flow 1s cubic-bezier(.4, 0, .2, 1) infinite alternate;
}

@keyframes dosigny-loader-line { to { stroke-dashoffset: 0; } }
@keyframes dosigny-loader-wash { to { opacity: 1; transform: translateY(0); } }
@keyframes dosigny-loader-frame { to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes dosigny-loader-logo { to { opacity: 1; clip-path: inset(0 0 0 0); transform: translate3d(0, 0, 0); } }
@keyframes dosigny-loader-copy { to { opacity: 1; transform: translateY(0); } }
@keyframes dosigny-loader-light { 0% { opacity: 0; translate: 0; } 30% { opacity: 1; } 100% { opacity: 0; translate: 50rem; } }
@keyframes dosigny-loader-flow { to { translate: 118%; } }
@keyframes dosigny-loader-field { to { transform: translate3d(-1.2%, -.7%, 0) scale(1.015); } }
@keyframes dosigny-loader-aura { to { opacity: .68; transform: scale(1.07); } }
@keyframes dosigny-loader-ring { to { opacity: .55; transform: scale(1.08); } }
@keyframes dosigny-loader-logo-aura { to { opacity: .45; transform: rotate(-3deg) scale(1.07); } }

@media (max-width: 520px) {
    .dosigny-brand-loader__stage { width: 94vw; padding-inline: .75rem; }
    .dosigny-brand-loader__logo-frame { width: 88vw; padding: 1.45rem .9rem; border-radius: 1.55rem; }
    .dosigny-brand-loader__field { width: 150%; height: 112%; inset-inline: -25%; }
    .dosigny-brand-loader__eyebrow { max-width: 28ch; line-height: 1.45; }
}

@media (prefers-reduced-motion: reduce) {
    .dosigny-brand-loader { display: none !important; }
}
