.linocks-brand-logo {
    --linocks-wordmark-color: #15131a;
    display: inline-flex;
    align-items: center;
    gap: .58em;
    max-width: 100%;
    color: var(--linocks-wordmark-color);
    line-height: 1;
    white-space: nowrap;
}

.public-theme.dark-mode .linocks-brand-logo,
[data-theme-preference="dark"] .public-theme .linocks-brand-logo,
.userend-dashboard .linocks-brand-logo,
.footer-section .linocks-brand-logo {
    --linocks-wordmark-color: #f8f7fb;
}

.linocks-brand-logo__mark {
    display: block;
    width: 1.28em;
    height: 1.28em;
    flex: 0 0 auto;
    object-fit: contain;
}

.linocks-brand-logo__word {
    font-family: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
    font-size: 1em;
    font-weight: 800;
    letter-spacing: -.045em;
}

.linocks-brand-logo--compact {
    gap: 0;
}

.linocks-loader {
    --linocks-loader-size: 32px;
    --linocks-loader-track: rgba(124, 84, 196, .16);
    --linocks-loader-arc: #9667ed;
    --linocks-loader-glow: rgba(139, 92, 246, .16);
    position: relative;
    display: inline-grid;
    width: var(--linocks-loader-size);
    height: var(--linocks-loader-size);
    place-items: center;
    flex: 0 0 auto;
    vertical-align: middle;
    perspective: calc(var(--linocks-loader-size) * 4);
}

.linocks-loader--xs { --linocks-loader-size: 18px; }
.linocks-loader--sm { --linocks-loader-size: 24px; }
.linocks-loader--md { --linocks-loader-size: 32px; }
.linocks-loader--lg { --linocks-loader-size: 48px; }
.linocks-loader--page { --linocks-loader-size: 84px; }

.linocks-loader__ring {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    border: 1px solid var(--linocks-loader-track);
    border-radius: 50%;
    box-shadow: 0 0 calc(var(--linocks-loader-size) * .12) var(--linocks-loader-glow);
}

.linocks-loader__ring::before {
    position: absolute;
    inset: -1px;
    border: 1.5px solid transparent;
    border-top-color: var(--linocks-loader-arc);
    border-radius: 50%;
    content: "";
    filter: drop-shadow(0 0 3px var(--linocks-loader-glow));
    animation: linocksRingTurn 3.4s linear infinite;
}

.linocks-loader__logo {
    position: relative;
    display: block;
    width: 58%;
    height: 58%;
    transform-style: preserve-3d;
    filter: drop-shadow(0 0 calc(var(--linocks-loader-size) * .06) rgba(139, 92, 246, .22));
    animation: linocksLogoBreathe 1.75s ease-in-out infinite;
}

.linocks-loader__piece {
    position: absolute;
    inset: 0;
    display: block;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    will-change: transform, opacity;
}

.linocks-loader__piece img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.linocks-loader__piece--left {
    clip-path: polygon(0 0, 60% 0, 60% 56%, 48% 100%, 0 100%);
    transform-origin: 58% 54%;
    animation: linocksFoldLeft 1.75s ease-in-out infinite;
}

.linocks-loader__piece--upper {
    clip-path: polygon(46% 0, 100% 0, 100% 72%, 56% 72%, 46% 50%);
    transform-origin: 48% 51%;
    animation: linocksFoldUpper 1.75s ease-in-out infinite;
}

.linocks-loader__piece--lower {
    clip-path: polygon(31% 48%, 100% 48%, 100% 100%, 31% 100%);
    transform-origin: 48% 57%;
    animation: linocksFoldLower 1.75s ease-in-out infinite;
}

.linocks-page-loader {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: radial-gradient(circle at 50% 46%, rgba(139, 92, 246, .08), transparent 27%), #fffdf9;
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s ease, visibility .22s ease;
}

.linocks-page-loader[hidden] {
    display: none;
}

.linocks-page-loader.is-visible {
    opacity: 1;
    visibility: visible;
}

.linocks-page-loader.is-dark,
.dark-mode .linocks-page-loader,
[data-theme-preference="dark"] .linocks-page-loader,
.userend-dashboard .linocks-page-loader {
    --linocks-loader-track: rgba(167, 139, 250, .16);
    --linocks-loader-arc: #a77af5;
    --linocks-loader-glow: rgba(139, 92, 246, .2);
    background: radial-gradient(circle at 50% 50%, rgba(124, 58, 237, .07), transparent 18%), #09090b;
}

body.linocks-page-loading {
    overflow: hidden;
}

@keyframes linocksRingTurn {
    to { transform: rotate(360deg); }
}

@keyframes linocksFoldLeft {
    0%, 100% { opacity: .9; transform: translate3d(6%, 4%, 0) rotateY(-24deg) rotateZ(-5deg) scale(.94); }
    24%, 80% { opacity: 1; transform: translate3d(0, 0, 0) rotateY(0deg) rotateZ(0deg) scale(1); }
}

@keyframes linocksFoldUpper {
    0%, 12%, 100% { opacity: .86; transform: translate3d(-6%, 5%, 0) rotateY(26deg) rotateZ(7deg) scale(.92); }
    36%, 72% { opacity: 1; transform: translate3d(0, 0, 0) rotateY(0deg) rotateZ(0deg) scale(1); }
    90% { opacity: .86; transform: translate3d(-6%, 5%, 0) rotateY(26deg) rotateZ(7deg) scale(.92); }
}

@keyframes linocksFoldLower {
    0%, 24%, 100% { opacity: .84; transform: translate3d(-3%, -7%, 0) rotateX(-22deg) rotateZ(-6deg) scale(.92); }
    46%, 64% { opacity: 1; transform: translate3d(0, 0, 0) rotateX(0deg) rotateZ(0deg) scale(1); }
    82% { opacity: .84; transform: translate3d(-3%, -7%, 0) rotateX(-22deg) rotateZ(-6deg) scale(.92); }
}

@keyframes linocksLogoBreathe {
    0%, 46%, 64%, 100% { transform: scale(1); }
    55% { transform: scale(1.03); }
}

@media (prefers-reduced-motion: reduce) {
    .linocks-loader__logo {
        animation: linocksReducedPulse 2.2s ease-in-out infinite;
    }

    .linocks-loader__piece {
        opacity: 1;
        transform: none;
        animation: none;
    }

    .linocks-loader__ring::before {
        animation: none;
    }
}

@keyframes linocksReducedPulse {
    0%, 100% { opacity: .82; transform: scale(.98); }
    50% { opacity: 1; transform: scale(1); }
}
