﻿/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */
:root {
    --primary: #9b2418;
    --trans-white: #ffffff80;
    --trans-black: #000000cc;
}

@font-face {
    font-family: 'CP-Font';
    src: local('CP Font'), url('/fonts/CP-Font.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'NotoSansTC-ExtraBold';
    src: local('NotoSansTC-ExtraBold'), url('/fonts/NotoSansTC-ExtraBold.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'NotoSansTC-Thin';
    src: local('NotoSansTC-Thin'), url('/fonts/NotoSansTC-Thin.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'NotoSansTC-Black';
    src: local('NotoSansTC-Black'), url('/fonts/NotoSansTC-Black.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'Impact';
    src: local('Impact'), url('/fonts/IMPACT.TTF') format('truetype');
    font-display: swap;
}

.fm-cp {
    font-family: 'CP-Font';
}

* {
    color: white;
    font-family: 'NotoSansTC-Thin';
}

html {
    position: relative;
    min-height: 100%;
    font-size: 16px;
}

header {
    position:fixed;
    z-index: 1;
    right: 0;
    top: 0;
    height: 100vh;
}

body {
    background-color: black;
    overflow-x: hidden;
}

footer {
    position: fixed;
    top: 0;
    height: 100vh;
    transition: all 2s ease;
}

footer.move-up {
    top: -120px;
}

.ms-footer {
    margin-left: 76px;
}

.logo {
    height: 80px;
}

/*text-color*/
.text-custom-primary {
    color:var(--primary);
}

.text-trans-white{
    color: var(--trans-white)
}

/*text-layout*/
.space-prewrap {
    white-space: pre !important;
}

.letter-spacing-sm {
    letter-spacing: 5px;
}

.letter-spacing-lg {
    letter-spacing: 30px;
}

.text-verticle {
    writing-mode: vertical-lr;
}

.fs-sm {
    font-size: 0.75rem;
}
/*bg-color*/
.bg-trans-black {
    background-color: var(--trans-black);
}

.bg-custom-primary {
    background-color: var(--primary);
}

/*bg-image*/
.bg-banner {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
.bg-hero {
    background-image: url('/image/home-banner.png');
}

/*button*/
.btn-none {
    background-color: transparent;
    border: none;
    width: 100%;
    padding: 0;
}

/*section*/
.vh-200 {
    height: 200vh;
}

.navbar-custom {
    height: 100%;
    width: 76px;
    display: flex;
    flex-flow: column;
    justify-content: space-between;
    overflow: hidden;
    background-color: #00000080;
    position: relative;
}
    .navbar-custom::before {
        content: "";
        position: absolute;
        z-index: 2;
        height: 100%;
        border-left: 1px solid white;
    }

.bottom-box-rotate {
    background-color: #1a1a1acc;
    height: 75px; /*同nav寬度*/
    padding: 0 34px 0 59px;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translateY(75px) rotate(270deg);
    transform-origin: left top;
    position: absolute;
    bottom: 0;
    left: 0;
}

.nav-open {
    position: fixed;
    z-index: 10;
    top: 0;
    right: 0;
    width: 600px;
    height: 100vh;
    background: var(--primary);
    clip-path: polygon(100% 0%, 100% 0%, 100% 0%);
    padding: 1.5rem;
    transition: clip-path .3s linear;
}

    .nav-open.show {
        clip-path: polygon(100% 0%, -100% 0%, 100% 200%)
    }

.nav-close-box {
    height: 100%;
    width: 76px;
    position: absolute;
    top: 0;
    right: 0;
    border-left: 1px solid white;
    display: flex;
    justify-content: center;
}

.custom-footer {
    height: 100%;
    padding: 0 40px 40px 40px;
    display: flex;
    flex-flow: column;
}

.logo-box {
    margin-bottom: 1rem;
    margin: 40px 0 1rem 0;
    height: 160px;
    width: 76px;
}

.footer-white-border {
    flex-grow: 1;
    border-right: 1px solid white;
    pointer-events: none;
}

.sns-box {
    width: 76px;
}

.sns-item {
    position: relative;
    right: 0;
    transform: translateX(50%);
    text-align: center;
    padding: 1.5rem 0;
}

.nav-custom-item {
    color: white;
    font-weight: bolder;
    letter-spacing: 5px;
    padding: 2rem 1rem;
}

.nav-custom-link {
    color: white;
    text-decoration: none;
}

.nav-custom-link h1 {
    font-size: 1.5rem;
}

    .category-move {
        position: relative;
    }
    .category-move * {
        transition: .5s ease;
    }
        .category-move::before {
            content: "";
            position: absolute;
            bottom: 1rem;
            width: 2rem;
            opacity: 0;
            transform: scaleX(0);
            transform-origin: left;
            border-bottom: 1px solid white;
            transition: .5s ease;
        }
.nav-custom-link:hover .category-move h1 {
    transform: translateX(2rem);
}
    .nav-custom-link:hover .category-move::before {
        transform: scaleX(1);
        opacity: 1;
    }

    .section-title {
        font-size: 10rem;
        font-family: 'CP-Font';
        white-space: nowrap;
    }

.section-title-cn {
    font-size: 5rem;
    font-family: NotoSansTC-Black;
    white-space: nowrap;
}

.title-sm {
    font-size: 4rem;
}

.page-content {
    max-width: 1040px;
    width: 80%;
    margin-left: auto;
    margin-right: auto;
}

.core-value-item {
    display: flex;
    justify-content: center;
    padding: 1.5rem 0;
}
.core-value-item * {
    transition: .5s ease;
}

.img-core-value {
    max-width: 590px;
    width: 55%;
    filter: grayscale(1);
}
.img-core-value img {
    width: 100%;
    aspect-ratio: 590/550;
    object-fit: cover;
}

.img-coop {
    width: 100%;
    height: 80px;
    object-fit: contain;
}

.detail-core-value {
    opacity: 0;
}

.core-value-item:hover .detail-core-value, .core-value-item:hover .text-core-value {
    opacity: 1;
}
.core-value-item:hover .img-core-value {
    filter: unset;
}

.equal-width {
    flex: 1 1 0;
}

.text-core-value {
    font-size: 5rem;
    writing-mode: vertical-lr;
    margin: 0;
    opacity: 0;
}

.philosophy-box {
    padding: 2rem;
    color: var(--primary);
    border-bottom: 2px solid var(--primary);
    border-right: 2px solid var(--primary);
    position: relative;
    height: 100%;
}
    .philosophy-box::before {
        content: "";
        height: 50%;
        border-left: 2px solid var(--primary);
        position: absolute;
        left: 0;
        bottom: 0;
        transition: all 1s;
    }
    .philosophy-box::after {
        content: "";
        width: 50%;
        border-top: 2px solid var(--primary);
        position: absolute;
        right: 0;
        top: 0;
        transition: all 1s;
    }

    .philosophy-box .img-philosophy {
        width: 127px;
        position: absolute;
        left: 0;
        top: 0;
        transform: translate(0, -50%);
    }

    .philosophy-box, .philosophy-box * {
        transition: all 1s;
    }

    .philosophy-box:hover {
        border-color: white;
    }
.philosophy-box:hover::before, .philosophy-box:hover::after {
    border-color: white;
}
        .philosophy-box.primary-box:hover img {
            filter: brightness(0) invert(1);
        }
    .philosophy-box:hover * {
        color: white;
    }

        .philosophy-box.white-box, .philosophy-box.white-box *, .philosophy-box.white-box::before, .philosophy-box.white-box::after {
            color: white;
            border-color: white;
        }

.story-arrow {
    position: absolute;
    width: 3rem;
    height: 5rem;
}

.arrow-1 {
    top: 50%;
    right: 0;
    transform: translate(100%, -50%);
}

.arrow-2 {
    bottom: 0;
    left: 50%;
    transform-origin: 0 50%;
    transform: translateY(50%) rotate(90deg);
}

.arrow-3 {
    top: 0;
    left: 50%;
    transform-origin: 0 50%;
    transform: translateY(-50%) rotate(270deg);
}

.arrow-4 {
    top: 50%;
    left: 0;
    transform-origin: 0 50%;
    transform: translateY(-50%) rotate(180deg);
}

.service-section {
    background-color: var(--primary);
    background-image: url(/image/service-title.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    padding: 3rem 0 3rem 0;
}

.service-circle {
    opacity: 0.5;
    border-radius: 50%;
    transition: all 0.5s;
    cursor: pointer;
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
}
    .service-circle img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.service-item-1 {
    width: 60%;
    align-self: end;
}

.service-item-2 {
    position: absolute;
    bottom: 50%;
    width: 40%;
}

.service-item-3 {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 40%;
}

.service-item-4 {
    width: 50%;
}

.service-text-box {
    position: absolute;
    top: 50%;
    padding: 0 20%;
}
.service-circle:hover {
    opacity: 1;
    border: 4px solid white;
}
    .service-circle:hover * {
        text-shadow: 2px 3px 3px black
    }

.project-section {
    background-color: black;
    background-image: url(/image/project-title.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top;
}

.project-link {
    color: white;
    text-decoration: none;
    display: flex;
}
    .project-link h1 {
        position: relative;
    }

        .project-link h1::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            height: 2px;
            width: 0;
            background-color: white;
            transition: width 0.5s ease;
        }

    .project-link:hover h1::after {
        width: 100%;
    }

.coop-box {
    flex-grow: 1;
    overflow: auto;
    padding-top: 3rem;
    position: relative;
}
    .coop-box::-webkit-scrollbar{
        width: 0;
    }


    .input-box {
        margin-bottom: 3rem;
    }

.custom-input {
    width: 100%;
    background-color: transparent;
    padding: 1rem;
    border: none;
    border-bottom: 2px solid #b3b3b3;
    color: #b3b3b3;
}

textarea.custom-input {
    height: 200px;
}

.coop-line {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.coop-line::after {
    content: '';
    width: 50%;
    height: 6rem;
    border-right: 2px solid white;
    align-self: start;
}

.coop-num-box {
    width: 4rem;
    height: 4rem;
    color: var(--primary);
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 3rem;
    font-family: NotoSansTC-Black;
}

.white-stroke::before {
    content: "";
    position: absolute;
    height: 7rem;
    width: 150%;
    top: 0;
    left: 0;
    border-bottom: 2px solid white;
}

.btn-custom {
    border: none;
    color: white;
    background-color: #1a1a1acc;
    padding: 1.5rem 4rem;
    position: relative;
}
    .btn-custom span{
        position:relative;
        z-index: 1;
    }
    .btn-custom::before {
        content: '';
        position: absolute;
        z-index: 0;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: white;
        transition: clip-path .5s ease;
        clip-path: polygon(100% 0%,100% 0%,100% 0%)
    }
.btn-custom:hover span {
    color: black;
}

.btn-custom:hover::before {
    clip-path: polygon(100% 0%,-200% 0%,100% 200%)
}

.btn-next {
    border: none;
    color: #b3b3b3;
    background-color: #1a1a1acc;
    padding: 0 0.25rem;
    height: 100%;
    display: flex;
    align-items: center;
}

.btn-next:disabled img {
    opacity: 0.2;
}

.page-banner {
    height: 100vh;
    position: relative;
    overflow: hidden;
}
    .page-banner::before {
        content: '';
        position: absolute;
        z-index: -1;
        left: 0;
        top: 0;
        height: 70%;
        width: 100%;
        background-size: cover;
        background-repeat: no-repeat;
        background-position: top center;
    }

.bg-banner-about::before {
    background-image: url('/image/about-banner.png?v=0902');
}

.bg-banner-project::before {
    background-image: url('/image/project-banner.png?v=0902');
}
.bg-banner-service::before {
    background-image: url('/image/service-banner.png');
}
.bg-banner-news::before {
    background-image: url('/image/news-banner.png');
}
.bg-banner-client::before {
    background-image: url('/image/client-banner.jpg');
}
.bg-banner-connact::before {
    background-image: url('/image/connact-banner.jpg');
}
.bg-banner-joinus::before {
    background-image: url('/image/joinus-banner.png');
}

.banner-title {
    width: 100%;
    position: absolute;
    top: 57%;
    left: 0;
    text-align: center;
    letter-spacing: 1rem;
}

.about-image-top {
    position: relative;
    right: 3rem;
    margin-bottom: -1rem;
    z-index: -1;
    width: 100%;
    aspect-ratio: 431/251;
    object-fit: cover;
}

.about-image-bottom {
    width: 50%;
    aspect-ratio: 326/397;
    object-fit: cover;
}

.core-box {
    width: 100%;
    aspect-ratio: 460/152;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}
    .core-box::before {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        filter: grayscale(1);
        background-size: cover;
        background-position: center;
    }
    .core-box::after {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        background-color: var(--primary);
        clip-path: polygon(100% 0%, 100% 0%, 100% 0%);
        transition: 0.5s ease;
    }

.bg-core-box-1::before {
    background-image: url('/image/core1.jpg');
}
.bg-core-box-2::before {
    background-image: url('/image/core2.jpg');
}
.bg-core-box-3::before {
    background-image: url('/image/core3.jpg');
}
.bg-core-box-4::before {
    background-image: url('/image/core4.jpg');
}

.core-detail {
    font-weight: lighter;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    padding: 1rem 3rem;
    width: 100%;
    height: 100%;
    transition: 1s ease;
    z-index: 2;
}

.core-box:hover .core-detail {
    opacity: 1;
}
.core-box:hover::after {
    clip-path: polygon(100% 0%, -100% 0%, 100% 200%);
}

.category-list {
    display: flex;
    padding: 0.5rem 0;
    margin:0;
    transition: 0.5s ease;
}

.category-item {
    list-style: none;
    padding: 1.5rem 0;
    font-size: 1.5rem;
    text-align: center;
    flex: 1 0 auto;
    position: relative;
    cursor: pointer;
}
    .category-item::after {
        content: '';
        position: absolute;
        width: 100%;
        left: 0;
        bottom: 0;
        border-bottom: 6px solid var(--primary);
        transform-origin: center;
        opacity: 0;
        transform: scaleX(0);
        transition: .5s ease;
    }
    .category-item:hover::after, .category-item.active::after {
        opacity: 1;
        transform: scaleX(1);
    }

.project-row {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}
.project-container {
    width: 33.3333%;
    padding: 1.5rem .5rem;
}

.project-image {
    width: 100%;
    aspect-ratio: 327/184;
    object-fit: cover;
}

.project-intro {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 0 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    transition: 1s ease;
}
    .project-intro::before {
        content: '';
        position: absolute;
        background-color: #9b241899;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

.project-intro:hover {
    opacity: 1;
}

.pagination-container {
    display: flex;
    justify-content: center;
    margin-top: 100px;
}

.pagination-custom {
    display: flex;
    margin: 0;
    padding: 0;
}

.page-item-custom {
    list-style: none;
    width: 20px;
    height: 20px;
    margin: 0 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--trans-white);
    cursor: pointer;
    font-weight: bolder;
}

    .page-item-custom.active {
        border: 1px solid white;
        color: white;
        cursor: default;
    }
    .page-item-custom.disabled {
        cursor: default;
    }

    .page-item-custom img {
        height: 20px;
    }
    .page-item-custom.disabled img {
        opacity: 0.2;
    }

.video-section {
    width: 100%;
    aspect-ratio: 1132/637;
    background-color: #666666;
    margin-bottom: 44px;
}

.comment-box {
    display: flex;
    background-color: #1a1a1acc;
    padding: 2rem 1rem;
}

.comment-thumbnail {
    height: 6rem;
    width: 6rem;
    border-radius: 50%;
    margin-right: 1rem;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

.comment-thumbnail img {
    width: 100%;
}

.btn-prev-item, .btn-next-item {
    border: none;
    padding: 0.5rem 2rem;
    font-weight: bolder;
    font-size: 1.25rem;
}

.btn-prev-item {
    background-color: transparent;
}

.btn-next-item {
    background-color: var(--primary);
}

.btn-prev-item img,
.btn-next-item img {
    height: 2rem;
}

.service-title-box {
    width: 35%;
}

.service-img-box {
    width: 65%;
    display: flex;
    align-items: center;
}

.service-img-box img {
    width: 100%;
    aspect-ratio: 675/380;
    object-fit: cover;
}

.service-cnbox {
    font-size: 4rem;
    padding: 1.5rem 0;
    position: relative;
}
    .service-cnbox::before {
        content: '';
        position: absolute;
        z-index: -1;
        background-color: var(--primary);
        top: 0;
        width: 100vw;
        height: 100%;
    }
    .service-cnbox.cnbox-left::before {
        right: 0;
    }

    .service-cnbox.cnbox-right::before {
        left: 0;
    }

.contact-list li {
    list-style: none;
    padding: 2rem 0;
    text-decoration: underline;
    display: flex;
    align-items: center;
}

    .contact-list li span{
        width: 2.5rem;
        height: 2.5rem;
        background-color: var(--primary);
        display: inline-block;
        margin-right: 1rem;
        padding: 0.5rem;
    }

        .contact-list li span::before {
            content: "";
            height: 100%;
            width: 100%;
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
            display: inline-block;
        }

    .contact-list li span.contact-item-address::before {
        background-image: url('/image/address.svg');
    }

    .contact-list li span.contact-item-phone::before {
        background-image: url('/image/phone.svg');
    }

    .contact-list li span.contact-item-email::before {
        background-image: url('/image/email.svg');
    }

    .contact-list li span.contact-item-line::before {
        background-image: url('/image/line.svg');
    }

    .contact-list li span.contact-item-messenger::before {
        background-image: url('/image/messenger.svg');
    }

.contact-list li p {
    margin: 0;
}

.img-pc {
    display: inline;
}

.img-pad {
    display: none
}

.img-mobile {
    display: none;
}

.slogan {
    font-weight: bolder;
    white-space: pre;
    font-size: 3.5rem;
    letter-spacing: .5rem;
    margin-bottom: 1.25rem;
    text-shadow: 0 0 1rem black;
}

.slogan-desc {
    font-size: 1.5rem;
    letter-spacing: .25rem;
    font-weight: lighter;
}

.item-title {
    font-size: 3.5rem;
    font-weight: bolder;
    white-space: nowrap;
    text-shadow: 0 0 .5rem black; 
}

.item-text {
    white-space: pre;
    text-shadow: 0 0 .25rem black;
}

.about-en {
    font-size: 3.25rem;
    letter-spacing: .25rem;
    font-weight: bolder;
}

.about-cn {
    font-size: 3.75rem;
    text-align-last: justify;
    font-weight: bolder;
}

.about-text {
    white-space: pre;
    font-size: 1.25rem;
    letter-spacing: .15rem;
    line-height: 2.25rem;
    font-weight: lighter;
}

.cate-box {
    width: 100%;
}

/* 採用語意化 class 命名 */
.text-large-bold {
    font-size: 1.25rem; /* 或 1.25rem，視專案基準 */
    font-weight: bold; /* 700 */
    word-break: break-all;
    overflow-wrap: anywhere;
}

.no-shrink {
    flex-shrink: 0;
}


@media(max-width: 1400px) {
    .custom-footer {
        padding: 0 20px 20px 20px;
    }
}

@media(max-width: 1200px) {
    .section-title {
        font-size: 8rem;
    }

    .section-title-cn {
        font-size: 4rem;
    }
}

@media(max-width: 992px) {
    .section-title {
        font-size: 4rem;
    }

    .section-title-cn {
        font-size: 3.5rem;
        white-space: unset;
    }

    .custom-footer {
        padding: 0 0 40px 0;
    }

    .text-core-value {
        font-size: 3rem;
    }

    .img-pc {
        display: none;
    }

    .img-pad {
        display: inline
    }

    .img-mobile {
        display: none;
    }

    .about-cn{
        text-align-last: unset;
    }

    .cate-box {
        width: 75%;
    }

    .project-container {
        width: 50%;
    }
}

@media(max-width: 768px) {
    html {
        font-size: 8px;
    }

    .navbar-custom {
        width: 40px;
    }

    .nav-open {
        width: 100vw;
        padding: 40px 5px;
    }

    .nav-close-box {
        width: 40px;
    }

    .bottom-box-rotate {
        height: 39px;
        padding: 0 1rem 0 2rem;
        transform: translateY(39px) rotate(270deg);
    }

    .philosophy-box {
        padding: 2rem 1rem;
    }
    .philosophy-box .img-philosophy {
        width: 48px;
    }

    .service-text-box {
        top: 30%;
        padding: 0 10%;
    }

    .title-sm {
        font-size: 2rem;
    }

    .service-cnbox {
        font-size: 2rem;
    }

    .service-cnbox::before {
        width: 100%;
    }

    .w-md-100 {
        width: 100%;
        margin: 0;
    }

    .img-pc {
        display: none;
    }

    .img-pad {
        display: none
    }

    .img-mobile {
        display: inline;
    }

    .project-link h1 {
        font-size: 1.25rem;
    }

    .btn-custom{
        padding: 1.5rem 2rem;
    }

    .logo {
        height: 60px;
    }

    .logo-box {
        height: 60px;
        width: 40px;
    }

    .sns-box {
        padding: 2rem 0;
        width: 40px;
    }

    

    .img-coop {
        height: 60px;
    }
}

.img-white {
    filter: brightness(0) invert(1);
}

.img-about-1 {
    top: 7.6%;
    left: 0;
    width: 60%;
    aspect-ratio: 576/336;
}

.img-about-2 {
    top: 0;
    right: 0;
    width: 50%;
    aspect-ratio: 505/295;
}

.img-about-3 {
    bottom: 0;
    right: 40%;
    width: 45%;
    aspect-ratio: 432/252;
}

.img-about-4 {
    right: 20px;
    bottom: 50px;
    width: 30%;
    aspect-ratio: 288/351;
}

.project-left {
    width: 35%;
    margin-right: 2rem;
    flex-shrink: 0;
}

.project-right {
    flex-grow: 1;
}

.img-project-1 {
    width: 100%;
    aspect-ratio: 311/487;
    object-fit: cover;
}

.img-project-2 {
    width: 50%;
    margin-left: 1rem;
    aspect-ratio: 371/350;
    object-fit: cover;
}

.img-project-3 {
    width: 100%;
    margin-top: 1rem;
    aspect-ratio: 659/320;
    object-fit: cover;
}

.img-scene {
    width: 100%;
    aspect-ratio: 218/328;
    object-fit: contain;
    margin-bottom: 0.5rem;
}

.border-bottom-primary {
    border-bottom: 4px solid var(--primary);
}

.cursor-disabled {
    cursor: not-allowed !important;
}

    .grayscale-item img {
        width: 100%;
        aspect-ratio: 1;
        object-fit: cover;
        filter: grayscale(1);
        transition: all .5s;
    }

.grayscale-item:hover img {
    filter:unset;
    border: 4px solid white;
}

.btn-home-service {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
}

.text-shadow {
    text-shadow: 5px 5px 5px #4d4d4d;
}

.animate-bg-primary {
    animation: bgPrimary both;
    animation-timeline: view(95% 2%);
}

.fs-5r {
    font-size: 5rem;
}

@keyframes bgPrimary {
    from {
        background-color: black;
    }

    to {
        background-color: var(--primary);
    }
}

.animate-title-size {
    animation: titleSize both;
    animation-timeline: view(40% 40%);
}

@keyframes titleSize {
    from {
        width: 100%;
    }

    to {
        width: 60%;
    }
}
