@import url("dp-font.css?v=20261016a");
*, *::before, *::after {
    font-family: Plus Jakarta Sans, Arial, sans-serif !important;
}

@keyframes dialpink-content-enter {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes dialpink-content-leave {
    to { opacity: 0; transform: translateY(-3px); }
}

body main {
    animation: dialpink-content-enter 260ms ease-out both;
}

body.is-leaving {
    pointer-events: none;
}

body.is-leaving main {
    animation: dialpink-content-leave 180ms ease-in both;
}

/* Loading dots shown after the fade-out while the next page is still on its way (app-transition.js). */
.page-loader {
    position: fixed;
    z-index: 1001;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid #17151a;
    border-radius: 999px;
    box-shadow: 3px 3px 0 #17151a;
    transform: translate(-50%, -50%);
    animation: dialpink-loader-in 200ms ease-out both;
}

.page-loader span {
    width: 9px;
    height: 9px;
    background: #191919;
    border-radius: 50%;
    animation: dialpink-loader-dot 900ms ease-in-out infinite;
}

.page-loader span:nth-child(2) { animation-delay: 150ms; }
.page-loader span:nth-child(3) { animation-delay: 300ms; }

.page-loader em {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

@keyframes dialpink-loader-in {
    from { opacity: 0; transform: translate(-50%, -50%) scale(.92); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes dialpink-loader-dot {
    0%, 80%, 100% { opacity: .3; transform: translateY(0); }
    40% { opacity: 1; transform: translateY(-4px); }
}

.home-intro {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    background: linear-gradient(115deg, #fdfdfd 0%, #fff 56%, #f4f4f4 100%);
    pointer-events: none;
    animation: dialpink-home-intro-exit 200ms ease-in 700ms forwards;
}

.home-intro img {
    display: block;
    width: min(220px, 58vw);
    height: auto;
    object-fit: contain;
    animation: dialpink-logo-reveal 600ms cubic-bezier(.2, .8, .25, 1) both;
}

@keyframes dialpink-logo-reveal {
    0% { opacity: 0; transform: translateY(12px) scale(.9); }
    65% { opacity: 1; transform: translateY(-2px) scale(1.025); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes dialpink-home-intro-exit {
    to { opacity: 0; visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
    body main,
    .home-intro,
    .home-intro img {
        animation: none;
    }

    body.is-leaving main { animation: none; }
    .page-loader, .page-loader span { animation: none; }
    .page-loader span { opacity: .7; }
    .home-intro { display: none; }
}
