@import 'styles/anims';

$logo-anim-delay: 0s;
.logo {
    width: clamp(700px, 100%, 2000px);
    height: clamp(400px, 100%, 1000px);
    path, rect, .en-square {
        fill: #fff;
    }
    *[data-inverse] {
        fill: #000;
    }
    *[char-outline] {
        stroke: #fff;
        stroke-width: 0;
    }
    .main-t, .main-b, .char-2 {
        stroke-width: 0.15px;
        stroke: #fff
    }
    #en g {
        mix-blend-mode: exclusion;
    }
    &[data-noanim] {
        .cover, .cover-char-3, #inverse {
            opacity: 0;
        }
    }

    &:not([data-noanim]) {
        $endfield-cn-chr3-delay: calc(#{$logo-anim-delay} + 2.3s);
        #cn {
            $arknights-cn-anim-delay: calc(#{$logo-anim-delay} + 0s);
            .arknights path {
                opacity: 0;
                transform: translateY(-10px);

                $delay: calc(
                    #{applyPlaybackSpeed(#{$arknights-cn-anim-delay})} +
                    #{applyPlaybackSpeed(0.05s)} * var(--order)
                );
                animation:
                    opacity_spawn
                    applyPlaybackSpeed(0.5s)
                    #{$delay} steps(1) forwards,
                    slide_UD
                    applyPlaybackSpeed(0.8s)
                    #{$delay} $forceful forwards;
            }
            .endfield {
                g {
                    path, rect { opacity: 0; }
                }
                $endfield-cn-chr1-delay: calc(#{$logo-anim-delay} + 0.8s);
                .char-1 {
                    #stroke-tl-1 {
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$endfield-cn-chr1-delay})
                            steps(1) forwards,
                            slide_LR
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(#{$endfield-cn-chr1-delay})
                            $forceful forwards;
                    }
                    #main-t {
                        $delay: calc(#{$endfield-cn-chr1-delay} + 0.1s);
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$delay})
                            steps(1) forwards,
                            slide_DU
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(#{$delay})
                            $forceful forwards;
                    }
                    #main-t-inner-l {
                        $delay: calc(#{$endfield-cn-chr1-delay} + 0.15s);
                        // M12.5 31.767 L9.1 31.767 L11.6 26.388 L13.9 26.388 L15.7 23.888 L18.4 27.667 L12.5 31.767Z
                        // M12.5 29.888 L9.1 29.888 L11.6 26.388 L13.9 26.388 L15.7 23.888 L18.4 25.788 L12.5 29.888Z
                        // M12.5 29.888 H9.10       L11.6 26.388 H13.9        L15.7 23.888 L18.4 25.788 L12.5 29.888Z
                        @keyframes main-t-inner-l_path {
                            from { d: path("M12.5,31.767l-3.4,0l2.5,-5.379l2.3,0l1.8,-2.5l2.7,3.779l-5.9,4.1z"); }
                            to { d: path("M12.5,29.8879l-3.4,0l2.5,-3.5l2.3,0l1.8,-2.5l2.7,1.9l-5.9,4.1z"); }
                        }
                        @keyframes main-t-inner-l_translate {
                            from { transform: translateY(-20px) scaleY(2.5); }
                            to { transform: translateY(0) scaleY(1); }
                        }
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$delay})
                            steps(1) forwards,
                            main-t-inner-l_translate
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(calc(#{$delay} + 0.1s))
                            $slow-down forwards,
                            main-t-inner-l_path
                            applyPlaybackSpeed(0.8s)
                            applyPlaybackSpeed(calc(#{$delay} + 0.1s))
                            $slow-down forwards;
                    }
                    #main-t-inner-r {
                        $delay: calc(#{$endfield-cn-chr1-delay} + 0.15s);
                        @keyframes main-t-inner-r_translate {
                            from { transform: translateY(0px) scaleY(2.5); }
                            to { transform: translateY(0) scaleY(1); }
                        }
                        // M22.053 26.821 L18.9 21.088 H25.1 L22.053 26.821Z
                        // M21.95  22.788 L18.9 21.088 H25.1 L21.95  22.788Z
                        @keyframes main-t-inner-r_path {
                            from { d: path("M22.053,26.821l-3.153,-5.733h6.2l-3.047,5.733z"); }
                            to { d: path("M21.95,22.788l-3.05,-1.7h6.2l-3.15,1.7z"); }
                        }
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$delay}) steps(1) forwards,
                            main-t-inner-r_translate
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(calc(#{$delay} + 0.1s)) $slow-down forwards,
                            main-t-inner-r_path
                            applyPlaybackSpeed(0.8s)
                            applyPlaybackSpeed(calc(#{$delay} + 0.1s)) $slow-down forwards;
                    }
                    #stroke-bl-1 {
                        $delay: calc(#{$endfield-cn-chr1-delay} + 0.3s);
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$delay}) steps(1) forwards,
                            slide_DU
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(#{$delay}) $forceful forwards;
                    }
                    #stroke-bl-2 {
                        $delay: calc(#{$endfield-cn-chr1-delay} + 0.35s);
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$delay}) steps(1) forwards,
                            slide_DU
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(#{$delay}) $forceful forwards;
                    }
                    #main-b {
                        $delay: calc(#{$endfield-cn-chr1-delay} + 0.45s);
                        // M12,37.6 V29.8 H14.5 L17.785,27.4 L27.614,34.635 L31.805,37.6   L24.385,37.6 L16.505,32.01 L16.505,37.61 V37.61Z
                        // M12,37.6 V29.8 H14.5 L17.785,27.4 L28.085,34.4   L31.805,31.85  L31.805,37.6 L24.385,37.6  L16.505,32.01 V37.61Z

                        // M12.3 43.688 L 12.3 35.888 L 14.8 35.888 L18.085 33.488 L28.259 40.74 L32.136 43.622 L32.105 43.652  L24.671 43.652   L16.805 38.098 L16.805 43.698Z
                        // M12.3 43.688 L 12.3 35.888 L 14.8 35.888 L18.085 33.488 L28.385 40.488L32.105 37.86  L32.105 43.6523 L24.6714 43.6523 L16.805 38.098 L16.805 43.698Z
                        d: path("M12.3 43.688 L 12.3 35.888 L 14.8 35.888 L18.085 33.488 L28.259 40.74 L32.136 43.622 L32.105 43.652  L24.671 43.652   L16.805 38.098 L16.805 43.698Z");
                        @keyframes main-b_path {
                            from { d: path("M12.3 43.688 L 12.3 35.888 L 14.8 35.888 L18.085 33.488 L28.259 40.74 L32.136 43.622 L32.105 43.652  L24.671 43.652   L16.805 38.098 L16.805 43.698Z"); }
                            to {   d: path("M12.3 43.688 L 12.3 35.888 L 14.8 35.888 L18.085 33.488 L28.385 40.488L32.105 37.86  L32.105 43.6523 L24.6714 43.6523 L16.805 38.098 L16.805 43.698Z"); }
                        }
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$delay}) steps(1) forwards,
                            slide_LR
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(#{$delay}) $forceful forwards,
                            main-b_path
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(calc(#{$delay} + 0.4s)) $forceful forwards,
                    }
                    #stroke-br-1 {
                        $delay: calc(#{$endfield-cn-chr1-delay} + 0.52s);
                        @keyframes stroke-br-1_translate {
                            from { transform: translate(-3px, -2px); }
                            to { transform: translate(0, 0); }
                        }
                        animation:
                            opacity_spawn
                            applyPlaybackSpeed(0.3s)
                            applyPlaybackSpeed(#{$delay}) steps(1) forwards,
                            stroke-br-1_translate
                            applyPlaybackSpeed(0.5s)
                            applyPlaybackSpeed(#{$delay}) $forceful forwards;
                    }
                }
                $endfield-cn-chr2-delay: calc(#{$endfield-cn-chr1-delay} - 0.2s);
                .char-2 {
                    .corner-o {
                        transform-origin: 150px 84px;
                        transform: scale(1.2);
                        @keyframes chr2-cO {
                            from {
                                transform: scale(1.2);
                                transform-origin: 150px 84px;
                            }
                            60% {
                                opacity: 1;
                            }
                            80% {
                                transform: scale(1.05);
                                transform-origin: 348px 278px;
                            }
                            to { opacity: 0; }
                        }
                        animation:
                            chr2-cO
                            applyPlaybackSpeed(1.5s)
                            applyPlaybackSpeed(#{$endfield-cn-chr2-delay})
                            steps(1) forwards;
                    }
                    .corner-i {
                        opacity: 1;
                        @keyframes chr2-cI {
                            from { opacity: 0; }
                            50% { opacity: 1; }
                            60% { opacity: 0; }
                            90% { opacity: 1; }
                            to { opacity: 0; }
                        }
                        animation:
                            chr2-cI
                            applyPlaybackSpeed(1.5s)
                            applyPlaybackSpeed(#{$endfield-cn-chr2-delay})
                            steps(1) forwards;
                    }
                    .main {
                        @keyframes chr2-main {
                            from {}
                            50% {
                                opacity: 1;
                                clip-path: polygon(0 70%, 30% 70%, 30% 100%, 0 100%);
                            }
                            75% {
                                clip-path: polygon(5% 60%, 40% 60%, 40% 85%, 5% 85%);
                            }
                            90% {
                                clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
                            }
                            to { opacity: 1 }
                        }
                        animation:
                            chr2-main
                            applyPlaybackSpeed(1.5s)
                            applyPlaybackSpeed(#{$endfield-cn-chr2-delay})
                            steps(1) forwards;
                    }
                    .fragment-l {
                        clip-path: polygon(0 0, 45% 0, 45% 45%, 0 45%);
                        transform: translate(0, 0);
                        @keyframes chr2-fL {
                            20% { opacity: 1; }
                            40% { transform: translate(0, -8px) }
                            80% { transform: translate(0, 0) }
                        }
                        animation:
                            chr2-fL
                            applyPlaybackSpeed(1.5s)
                            applyPlaybackSpeed(#{$endfield-cn-chr2-delay})
                            steps(1) forwards;
                    }
                    .fragment-r {
                        clip-path: polygon(50% 50%, 100% 50%, 100% 100%, 50% 100%);
                        @keyframes chr2-fR {
                            30% {
                                opacity: 1;
                            }
                            50% {
                                clip-path: polygon(50% 0%, 100% 0%, 100% 40%, 50% 40%);
                            }
                            70% {
                                clip-path: polygon(50% 50%, 100% 50%, 100% 100%, 50% 100%);
                            }
                            to {

                            }
                        }
                        animation:
                            chr2-fR
                            applyPlaybackSpeed(1.5s)
                            applyPlaybackSpeed(#{$endfield-cn-chr2-delay})
                            steps(1) forwards;
                    }
                }
            }
            .char-3 {
                .l {
                    opacity: 1;
                    transform: translateY(8px);
                    $delay: calc(#{$endfield-cn-chr3-delay} + 0.1s);
                    @keyframes chr3-l-slide {
                        from { transform: translateY(8px) }
                        to { transform: translateY(0) }
                    }
                    animation:
                        chr3-l-slide
                        applyPlaybackSpeed(0.8s)
                        applyPlaybackSpeed(#{$delay})
                        $slow-down forwards;
                }
                .r {
                    opacity: 1;
                    transform: translateY(4.5px);
                    $delay: calc(#{$endfield-cn-chr3-delay} + 0.13s);
                    @keyframes chr3-r-slide {
                        from { transform: translateY(4.5px) }
                        to { transform: translateY(0) }
                    }
                    animation:
                        chr3-r-slide
                        applyPlaybackSpeed(0.8s)
                        applyPlaybackSpeed(#{$delay})
                        $slow-down forwards;
                }
            }
        }
        #en {
            $en-arknights-anim-delay: 3.2s;
            .arknights path {
                opacity: 0;
                transform: translateY(10px);
                // applyPlaybackSpeed(0.02s) * var(--order)
                $delay: calc(#{applyPlaybackSpeed(#{$en-arknights-anim-delay})});
                animation:
                    opacity_spawn
                    #{applyPlaybackSpeed(0.5s)}
                    #{$delay} steps(1) forwards,
                    slide_DU
                    #{applyPlaybackSpeed(0.8s)}
                    #{$delay} $forceful forwards;
            }

            // $en-endfield-anim-delay: 3.4s;
            $en-endfield-anim-delay: 3.35s;
            .endfield path {
                opacity: 0;
                transform: translateY(10px);
                // applyPlaybackSpeed(0.02s) * var(--order)
                $delay: calc(
                    #{applyPlaybackSpeed(#{$en-endfield-anim-delay})}
                );
                animation:
                    opacity_spawn
                    #{applyPlaybackSpeed(0.5s)}
                    #{$delay} steps(1) forwards,
                    slide_DU
                    #{applyPlaybackSpeed(0.7s)}
                    #{$delay} $forceful forwards;
            }
        }
        #inverse {
            mix-blend-mode: exclusion;
            clip-path: polygon(0 100%, 0 100%, 100% 100%, 100% 100%);
            $delay: calc(#{$endfield-cn-chr3-delay} + 0.1s);
            animation:
                expand_DU
                applyPlaybackSpeed(0.3s)
                applyPlaybackSpeed(#{$delay})
                $forceful forwards,
                collapse_DU
                applyPlaybackSpeed(0.3s)
                applyPlaybackSpeed(calc(#{$delay} + 0.8s))
                $slow-down forwards,
        }
        .cover-char-3 {
            $delay: calc(#{$endfield-cn-chr3-delay} + 0.1s);
            animation:
                collapse_DU
                applyPlaybackSpeed(0.3s)
                applyPlaybackSpeed(#{$delay})
                $forceful forwards,
        }
        .cover {
            y: 73.38px;
            $delay: calc(#{$endfield-cn-chr3-delay} + 0.1s);
            @keyframes cover-slide {
                from { y: 73.38px }
                to { y: 73.82px }
            }
            animation:
                cover-slide
                applyPlaybackSpeed(0.3s)
                applyPlaybackSpeed(#{$delay})
                $forceful forwards,
        }
        .en-square {
            $delay: applyPlaybackSpeed(3.2s);
            clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
            animation:
                expand_LR
                applyPlaybackSpeed(0.5s) #{$delay} $forceful forwards,
        }
    }
}