* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0a0a0e;
    background-image:
        repeating-linear-gradient(
            105deg,
            transparent,
            transparent 24px,
            rgba(255, 255, 255, 0.018) 24px,
            rgba(255, 255, 255, 0.018) 25px
        ),
        linear-gradient(180deg, #0d0d12 0%, #0a0a0e 35%, #08080c 100%);
    font-family: 'Segoe UI', system-ui, sans-serif;
    overflow: hidden;
    -webkit-tap-highlight-color: transparent;
    overscroll-behavior: none;
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

.loader-wrap {
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 32px;
    width: 100%;
    max-width: 320px;
    margin: auto;
    padding: 24px;
    background: transparent;
    z-index: 1000;
}

body.loaded .loader-wrap {
    display: none !important;
}

.logo-static {
    width: 88px;
    height: 88px;
    object-fit: contain;
}

.progress-wrap {
    width: 100%;
    height: 4px;
    background: #1a1a20;
    border-radius: 2px;
    overflow: hidden;
}

.progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #2a2a35 0%, #3d3d4a 100%);
    border-radius: 2px;
    transition: width 0.1s linear;
}

.loader-wrap.ready .progress-bar {
    animation: fill 1.8s ease-out forwards;
}

@keyframes fill {
    to {
        width: 100%;
    }
}

.loading-percent {
    color: rgba(255, 255, 255, 0.7);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
}
