:root {
    --root-font-size-normal: 0.9vw;
    --root-font-size-medium: 50px;
}

html {
    scroll-behavior: smooth;
}

@import url('https://fonts.loli.net/css?family=Long+Cang&display=swap');
@import url('https://fonts.loli.net/css?family=Noto+Serif+SC:wght@300&display=swap');
@import url('https://fonts.loli.net/css?family=Noto+Sans+SC&display=swap');
@import url('https://fonts.loli.net/css?family=Noto+Serif+JP:wght@200&display=swap');
@import url('https://fonts.loli.net/css?family=Pacifico&display=swap');
@import url('https://fonts.loli.net/css?family=Judson&display=swap');
@import url('https://fonts.loli.net/css?family=Bebas+Neue&display=swap');
@import url('https://fonts.loli.net/css?family=Dela+Gothic+One&display=swap');
@import url('https://fonts.loli.net/css?family=Playfair+Display:wght@700&display=swap');
@import url('https://fonts.loli.net/css?family=Dancing+Script&display=swap');

.function-mobile-column {
    height: 1200px;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    z-index: 1;
}

.function-mobile-column-overlay {
    position: absolute;
    background-image: linear-gradient(to top, rgba(255, 255, 255, 0) 90%, rgba(0, 0, 0, 0.2) 100%);
    height: 1200px;
    width: 100%;
    z-index: 2;
}

.mobile-invisible {
    display: block;
}

body {
    color: #111111;
}

.template_text-s {
	text-decoration: none;
	color: #151515;
	vertical-align: baseline;
	font-size: 1.05rem;
	margin-bottom: 1.5%;
	font-weight: normal;
	line-height: 250%;
	font-family: 'Noto Serif SC';
	display: flex; 
	flex-direction: column; 
}

.template_text-s p {
	font-family: 'Noto Sans SC';
}

.template_text-s h1 {
	font-family: 'Noto Serif SC';
}

.template_text-s h2 {
	font-family: 'Noto Serif SC';
}

.template_text-s h3 {
	font-family: 'Noto Serif SC';
}

.template_text-t {
	text-decoration: none;
	color: #151515;
	vertical-align: baseline;
	font-size: 1.05rem;
	margin-bottom: 1.5%;
	font-weight: normal;
	line-height: 250%;
	font-family: 'Noto Serif SC';
}

.origin-bottom {
    background-color: #111111;
    width: 100%;
    height: auto;
    overflow: hidden;
    color: F4F4F4;
    padding-top: 40px;
    padding-left: 0px;
    padding-bottom: 60px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.bottom-alt {
	width: 96%;
	background-color: #313131;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-left: 4%;
	flex-grow: 1;
	align-content: space-between;
	box-shadow: 0 0 16px 0  #313131;
}

.bottom_column-alt {
	padding: 3%;
	text-decoration: none;
	color: #F2F2F2;
	display: flex;
	flex: 1;
	flex-direction: column;
	height: 100%;
	line-height: 150%;
}

.bottom_column-alt a {
	text-decoration: none;
	color: #F2F2F2;
	font-size: 1rem;
    font-family: 'Noto Sans SC';
}

.bottom_column-alt h3 {
    font-size: 1.2rem;
	text-shadow: 0px 1.5px #3a3a3a;
    font-family: 'Noto Serif SC';
}

.bottom_column-alt a:hover {    
	text-decoration: underline;
}

.download-card {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    display: block;
    background-color: #F2F2F2;
    width: 980px;
    height: 480px;
    border-radius: 2rem;
    box-shadow: 8px 8px 13px rgba(0, 0, 0, 0.36);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;
    z-index: 18;
}

.download-card-text {
    width: 60%;
    color: #FFFFFF;
    display: inline-block;
    margin-top: 30px;
    margin-left: 50px;
}

.download-card-text p:nth-child(1) {
    font-family: 'Noto Serif SC';
    font-size: 60px;
    letter-spacing: -4px;
}

.download-card-text p:nth-child(2) {
    font-family: 'Noto Serif JP';
    margin-top: 10px;
    font-size: 24px;
    letter-spacing: -1px;
}

.download-card-text p:nth-child(3) {
    font-family: 'Noto Sans SC';
    margin-top: 50px;
    font-size: 17px;
}

.download-card-text p:last-child {
    margin-top: 50px;
}

.download-card-text p:last-child a {
    color: #FFFFFF;
    font-family: 'Noto Sans SC';
    margin-top: 50px;
    font-size: 17px;
}

.download-card img {
    position: absolute;
    z-index: -1;
}

.download-card-button {
    position: absolute;
    right: 45px;
    bottom: 45px;
}

.download-card-button a {
    color: #FFFFFF;
    font-family: 'Noto Sans SC';
    font-size: 17px;
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 45px;
    width: 200px;
    padding-bottom: 2px;
    transition: ease-out 0.1s;
    border-radius: 2rem;
}

.download-card-button a button {
    color: #F2C960;
    font-family: 'Noto Sans SC';
    font-size: 17px;
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 45px;
    width: 200px;
    padding-bottom: 2px;
    transition: ease-out 0.1s;
    border-radius: 2rem;
    background-color: none;
    background: none;
    border: none;
}

.download-card-button a button:hover {
    color: #FFFFFF;
}

.download-card-button a:nth-child(1) {
    background-color: none;
    border-style: solid;
    border-width: 2px;
    color: #F2C960;
    border-color: #F2C960;
}

.download-card-button a:nth-child(1):hover {
    background-color: #F2C960;
    text-decoration: underline;
    border-style: solid;
    border-width: 2px;
    color: #FFFFFF;
    border-color: #F2C960;
}

.download-card-button a:last-child {
    background-color: #222222;
    border-style: solid;
    border-width: 2px;
    color: #EEEEEE;
    border-color: #222222;
}

.download-card-button a:last-child:hover {
    text-decoration: underline;
    background-color: #333333;
    border-color: #333333;
}

.download-list {
    position: fixed;
    display: inline;
    width: 750px;
    height: 0px;
    left: 50%;
    transform: translateX(-50%);
    top: 14vh;
    z-index: 200;
    background-color: #F2F2F2;
    border-radius: 2rem;
    overflow: hidden;
    box-shadow: 0 0 0px 2500px rgba(0, 0, 0, 0.6);
    transition: cubic-bezier(0.075, 0.82, 0.165, 1) 0.5s;
    opacity: 0;
}

@media screen and (min-width: 1600px) {
    .download-list {
        top: 19vh;
    }
}

.download-list[data-visible="true"] {
    width: 800px;
    height: 500px;
    opacity: 1;
    z-index: 200;
}

.download-list-head {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    background-color: #F2C960;
    height: 25px;
    padding-top: 14px;
    padding-bottom: 14px;
    padding-right: 18px;
    opacity: inherit;
}

.download-list-head-title {
    color: #FFFFFF;
    display: inline;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Noto Sans SC';
    font-size: 1.1rem;
}

.download-list-head button {
    aspect-ratio: 1;
    border: none;
    background-image: url(./images/close-icon-gray.svg);
    background-color: #F2C960;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    color: rgba(0, 0, 0, 0);
    transition: ease-out 0.2s;
    margin: 0;
    padding: 0;
}

.download-list-head button:hover {
    transform: rotate(-90deg);
}

.download-list-list{
    opacity: inherit;
}

.downliad-list-item {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    align-items: left;
    width: 80%;
    margin-left: 10%;
    background-color: #F2F2F2;
}

.downliad-list-item div {
    font-family: 'Noto Serif SC';
    font-size: 1.4rem;
    background-color: #F2F2F2;
    color: #222222;
    padding-left: 2px;
    padding: 20px;
}

.downliad-list-item a {
    font-family: 'Noto Sans SC';
    font-size: 1.05rem;
    background-color: #F2F2F2;
    color: #555555;
    padding-left: 18px;
    padding: 12px;
    text-decoration: none;
    text-align: center;
    transition: ease-out 0.1s;
}

.downliad-list-item a:hover {
    background-color: #F2C960;
    color: #FFFFFF;
    padding-left: 18px;
    padding: 20px;
    text-decoration: none;
    text-align: center;
    text-decoration: underline;
    border-radius: 4rem;
}

@media screen and (max-width: 1129px) {

    .download-list-head-title {
        font-size: 2rem;
        margin-top: 8px;
    }

    .downliad-list-item {
        margin-top: 50px;
        width: 90%;
        margin-left: 5%;
    }
    
    .downliad-list-item div {
        font-size: 3rem;
    }
    
    .downliad-list-item a {
        font-size: 1.9rem;
        padding-left: 18px;
        padding: 12px;
        background-color: #F2C960;
        color: #FFFFFF;
        border-radius: 4rem;
        margin-top: 20px;
    }
    
    .downliad-list-item a:hover {
        background-color: #F2C960;
        color: #FFFFFF;
        padding-left: 18px;
        padding: 12px;
        border-radius: 4rem;
    }

    .download-list[data-visible="true"] {
        width: 900px;
        height: 1000px;
        top: 400px;
    }

    .download-list-head {
        height: 60px;
        padding-top: 20px;
        padding-bottom: 20px;
        padding-right: 18px;
    }

    .download-card {
        position: relative;
        left: 50%;
        transform: translateX(-50%);
        display: block;
        background-color: #F2F2F2;
        width: 900px;
        height: 810px;
    }
    
    .download-card-text {
        width: 80%;
    }

    .download-card-text p:nth-child(1) {
        font-size: 80px;
    }
    
    .download-card-text p:nth-child(2) {
        font-size: 40px;
    }
    
    .download-card-text p:nth-child(3) {
        font-size: 32px;
    }

    .download-card-text p:nth-child(4) {
        font-size: 32px;
    }

    .download-card-text p:nth-child(5) {
        font-size: 32px;
    }
    
    .download-card-text p:last-child {
        margin-top: 50px;
    }
    
    .download-card-text p:last-child a {
        font-size: 32px;
    }

    .download-card-button a {
        font-size: 32px;
        text-decoration: none;
        height: 60px;
        width: 400px;
        border-radius: 4rem;
    }

    .download-card-button a button {
        font-size: 32px;
        text-decoration: none;
        height: 60px;
        width: 400px;
        border-radius: 4rem;
    }

}


.feedback-means {
    overflow: hidden;
    background-color: #F2F2F2;
    display: flex; 
    flex-direction: row; 
    width: 90%; 
    margin-left: 5%; 
    justify-content: space-between;
}

.feedback-means:hover {
    overflow: hidden;
}

.feedback-means a {
    text-decoration: none;
    padding: 3px;
    width: 200px;
    height: 200px;
    font-size: 1.25rem;
    flex-direction: column;
    color: #151515;
    display: block;
    transform: translateY(0);
    transition: ease-out 0.15s;
    background-color: #F2C960;
}

.feedback-means a:hover {
    transform: translateY(-100%);
    background-color: #F2C960;
}

.feedback-means a p:nth-child(1) b {
    z-index: 1;
    text-align: center;
    font-family: 'Dancing Script';
    font-size: 2rem;
    color: #F2C960;
}

.feedback-means a p b {
    z-index: 1;
    text-align: center;
    font-family: 'Noto Sans SC';
}


.feedback-means a p:nth-child(1)::after {
    content: '';
    position: absolute;
    background-color: #F4F4F4;
    box-shadow: 0px 0px 0px 3px #F2C960;
    width: 200px;
    height: 200px;
    z-index: 0;
    transition: ease-out 0.15s;
}

.feedback-means a p:hover {
    background-color: #F2C960;
}

.feedback-means a p {
    height: 200px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: ease-out 0.15s;
}

@media screen and (max-width: 1129px) {

    .feedback-means {
        overflow: hidden;
        background-color: none;
        display: flex; 
        flex-direction: row; 
        width: 100%; 
        margin-left: 0%; 
        justify-content: space-between;
    }

    .feedback-means a {
        text-decoration: none;
        padding: 3px;
        width: 300px;
        height: 300px;
        font-size: 2.4rem;
        flex-direction: column;
        color: #151515;
        display: block;
        transform: translateY(-100%);
        transition: ease-out 0.15s;
        background-color: #F2C960;
    }

    .feedback-means a p:nth-child(1)::after {
        background-color: #F2C960;
    }
    
    .feedback-means a p:nth-child(1) b {
        z-index: 1;
        text-align: center;
        font-family: 'Dancing Script';
        font-size: 4rem;
        color: #F2C960;
    }
    
    .feedback-means a p:hover {
        background-color: #F2C960;
    }

    .feedback-means a p {
        background-color: #F2C960;
        height: 300px;
        display: flex;
        justify-content: center;
        align-items: center;
        transition: ease-out 0.15s;
        border-radius: 0rem;
        box-shadow: 0px 5px 8px rgba(0, 0, 0, 0.2);
    }

    .feedback-means a p b {
        z-index: 1;
        text-align: center;
        font-family: 'Noto Serif SC';
    }

}

#home-cover {
    padding-top: 200px;
    padding-bottom: 200px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 600px;
    overflow: hidden;
}

#home-cover span {
    position: absolute;
    width: 1000px;
    height: 600px;
}

#home-cover span:nth-child(1) {
    background-color: #b7ceec;
    transform: rotate(10deg);
}

#home-cover span:nth-child(2) {
    background-color: #ffedc1;
    transform: rotate(7deg);
}

#home-cover span:nth-child(3) {
    background-image: url(https://s2.loli.net/2022/07/01/lrT8FAnDSe1jzso.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: rotate(4deg);
}

#home-cover-title {
    text-align: center;
    position: relative;
    width: 400px;
    left: 50%;
    transform: translateX(-50%);
    margin-top: -500px;
    margin-bottom: 10px;
    font-size: 5rem;
    line-height: 4rem;
    text-shadow: 0 0 30px rgba(0, 0, 0, 1);
    color: #FFFFFF;
    font-family: 'Noto Serif SC';
}

#home-cover-title span {
    font-size: 3rem;
    line-height: 2.2rem;
    font-family: 'Pacifico';
}


#home-cover-text {
    font-family: 'Noto Serif SC';
    font-size: 1.3rem;
    padding: 50px;
    text-align: justify;
    background-color: #F2F2F2;
    position: relative;
    width: 300px;
    aspect-ratio: 1;
    overflow: hidden;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 0;
    margin-bottom: 0;
}

@media screen and (max-width: 1129px) {

    #home-cover span {
        margin-left: 5px;
    }

    #home-cover-title {
        width: 1000px;
        margin-top: -500px;
        margin-bottom: 10px;
        font-size: 10rem;
    }
    
    #home-cover-title span {
        font-size: 4rem;
        line-height: 2.2rem;
        font-family: 'Pacifico';
    }
    
    
    #home-cover-text {
        font-family: 'Noto Serif SC';
        font-size: 2.2rem;
        padding: 70px;
        width: 500px;
    }

}


.home-dual-presentation {
    margin-top: 50px;
    width: 100%;
    height: 550px;
    display: flex;
}

.home-dual-presentation div {
    width: 50%;
    flex-grow: 1;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.home-dual-presentation div:nth-child(2) {
    justify-content: end;
    align-items: center;
}

.home-dual-presentation-img {
    overflow: hidden;
}

.home-dual-presentation div span {
    margin-top: -100px;
    position: absolute;
    background-color: rgba(0, 0, 0, 0.5);
    color: #FFFFFF;
    font-family: 'Noto Sans SC';
    font-size: 1.2rem;
    padding: 7px;
}

.home-dual-presentation div:nth-child(1) b {
    position: absolute;
    right: 54%;
    margin-top: 300px;
    background-color: rgba(0, 0, 0, 0.5);
    color: #FFFFFF;
    font-style: normal;
    font-weight: normal;
    font-family: 'Noto Sans SC';
    font-size: 1.2rem;
    padding: 7px;
}

.home-dual-presentation div:nth-child(2) b {
    position: absolute;
    left: 54%;
    margin-top: 300px;
    background-color: rgba(0, 0, 0, 0.5);
    color: #FFFFFF;
    font-style: normal;
    font-weight: normal;
    font-family: 'Noto Sans SC';
    font-size: 1.2rem;
    padding: 7px;
}

.home-dual-presentation-title {
    position: absolute;
    width: 100%;
    left: 0;
    z-index: 23;
    text-align: center;
    letter-spacing: -8px;
    color: #FFFFFF;
    font-size: 5rem;
    font-family: 'Noto Serif SC';
    text-shadow: 0px 5px 15px rgba(0, 0, 0, 0.8);
    margin-top: 7rem;
}

.dual-2 span {
    text-align: end;
}

@media screen and (max-width: 1129px) {

    .home-dual-presentation {
        height: 840px;
    }

    .home-dual-presentation-title {
        font-size: 7.6rem;
    }

    .home-dual-presentation div span {
        text-align: center;
        font-size: 2.2rem;
        width: 48%;
        padding: 7px;
    }
    
    .home-dual-presentation div:nth-child(1) b {
        font-size: 2.2rem;
    }
    
    .home-dual-presentation div:nth-child(2) b {
        font-size: 2.2rem;
    }

    .dual-2 span {
        text-align: center;
    }

}

.home-template-title {
    text-align: center;
    font-family: 'Noto Serif SC';
    color: #FFFFFF;
    background-color: #313131;
    position: relative;
    width: 20%;
    left: 40%;
    font-size: 2.4rem;
    padding: 10px;
}

.home-slide {
    width: 1600px;
    height: 800px;
    margin: 0px auto;
    overflow: hidden;
    display: flex;
    justify-content: center;
}

.home-slide li {
    float: left;
    position: relative;
    width: 228.57px;
    height: 800px;
    overflow: hidden;
    transition: ease-in-out 0.3s;
    box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.8);
    background-position: center;
    background-size: cover;
}

.home-slide-text {
    position: absolute;
    left: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.4);
    color: rgba(255, 255, 255, 0.5);
    text-align: center;
    width: 100%;
    font-size: 1.05rem;
    line-height: 3rem;
    transition: ease-in-out 0.3s;
    white-space: nowrap;
    font-family: 'Noto Sans SC';
}

.home-slide:hover li {
    width: 66.6px;
}

.home-slide:hover li .home-slide-text {
    color: rgba(0, 0, 0, 0);
}

.home-slide li:hover .home-slide-text {
    color: #FFFFFF;
}

.home-slide li:hover {
    width: 1200px;
}

@media screen and (max-width: 1129px) {

    .home-template-title {
        width: 50%;
        left: 25%;
        font-size: 4rem;
        padding: 10px;
    }

    .home-slide {
        width: 100%;
        height: 600px;
        margin: 0px auto;
    }

    .home-slide li {
        width: 228.57px;
        height: 600px;
    }

    .home-slide-text {
        font-size: 2rem;
        line-height: 4rem;
        opacity: 0;
    }

    .home-slide li:hover .home-slide-text {
        color: #FFFFFF;
        opacity: 1;
    }

}

.home-description {
    display: flex;
    flex-direction: row;
    width: 60%;
    margin-left: 20%;
    justify-content: space-between;
    align-items: center;
    min-height: 400px;
}

.home-description[aria-controls="true"] {
    display: flex;
    flex-direction: row-reverse;
    width: 60%;
    margin-left: 20%;
    justify-content: space-between;
    align-items: center;
    min-height: 400px;
}

.home-description div:first-child {
    width: 70%;
}

.home-description div:last-child {
    min-height: 270px;
}

.home-description-img {
    width: 80%;
    margin-left: 10%;
    aspect-ratio: 1;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.home-description-title {
    font-size: 3rem;
    font-family: 'Noto Serif SC';
    letter-spacing: -2px;
    margin-left: 5%;
    width: 100%;
}

.home-description-text {
    font-size: 1.1rem;
    font-family: 'Noto Sans SC';
    width: 90%;
    margin-top: 50px;
    margin-left: 5%;
    line-height: 2.2rem;
}

@media screen and (max-width: 1129px) {

    .home-description div:last-child {
        min-height: 0;
    }
    

    .home-description {
        margin-left: 5%;
        width: 90%;
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
        text-align: justify;
    }

    .home-description[aria-controls="true"] {
        margin-left: 5%;
        width: 90%;
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
        text-align: justify;
    }

    .home-description-img {
        width: 90%;
        margin-left: 3%;
        margin-top: 50px;
        aspect-ratio: 1;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        transform: scale(1.3);
    }

    .home-description-text {
        font-size: 2.2rem;
        font-family: 'Noto Sans SC';
        width: 100%;
        margin-top: 50px;
        margin-left: 0%;
        line-height: 4rem;
    }

    .home-description-title {
        font-size: 5rem;
        font-family: 'Noto Serif SC';
        letter-spacing: -2px;
        margin-left: 0%;
        width: 100%;
    }

}

.home-application {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 400px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.home-application span {
    background-image: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3));
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.home-application div {
    position: absolute;
    right: 30px;
    top: 30px;
    color: #FFFFFF;
    opacity: 0.7;
    font-family: 'Noto Serif SC';
    font-size: 4rem;
}

.home-application span[aria-expanded="true"] {
    background-image: linear-gradient(-90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3));
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.home-application div[aria-expanded="true"] {
    position: absolute;
    left: 30px;
    top: 30px;
    opacity: 0.7;
    color: #FFFFFF;
    font-family: 'Noto Serif SC';
    font-size: 4rem;
}

.home-opensource-title {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-top: 180px;
}

.home-opensource-title span {
    position: absolute;
    font-family: 'Pacifico';
    font-size: 3rem;
    color: #ffd66f;
}

.home-opensource-title h {
    position: absolute;
    font-family: 'Noto Serif SC';
    font-size: 3.3rem;
    margin-top: 10px;
}

.home-opensource-button {
    text-align: center;
    display: block;
    margin-top: 5rem;
    padding: 1%;
    font-size: 1.2rem;
    text-decoration: none;
    border-radius: 2rem;
    background-color: #FFFFFF;
    width: 40%;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    color: #222222;
    transition: ease-out 0.1s;
    overflow: hidden;
}

.home-opensource-button:hover {
    width: 96%;
    border-radius: 0rem;
    text-decoration: underline;
    background-color: #ffd66f;
    color: #FFFFFF;
}

@media screen and (max-width: 1129px) {

    .home-opensource-title span {
        font-size: 5rem;
    }
    
    .home-opensource-title h {
        font-size: 5.4rem;
        margin-top: 24px;
    }

    .home-opensource-button {
        margin-top: 7rem;
        padding: 2%;
        font-size: 2rem;
        border-radius: 17rem;
        width: 60%;
    }

}

.nav-bar {
    position: fixed;
    inset: 0 0 0 73vw;
    background-color: rgba(0, 0, 0, 0.6);
    display: flex;
    flex-direction: column;
    justify-content: center;
    top: 0;
    z-index: 75;
    transition: cubic-bezier(0.075, 0.82, 0.165, 1) 0.4s;
    transform: translateX(100%) scaleX(0);
    opacity: 0;
}

.nav-bar a {
    text-decoration: none;
    color: #FFFFFF;
    font-size: 1.2rem;
    font-family: 'Noto Sans SC';
    text-align: start;
    padding: 16px;
    transition: ease-out 0.1s;
}

.nav-bar a:hover {
    background-color: rgba(255, 209, 109, 0.9);
}

.nav-bar b {
    text-decoration: none;
    font-size: 1.2rem;
    font-family: 'Noto Sans SC';
    text-align: start;
    padding: 30px;
}

.nav-bar[data-visible="true"] {
    transform: translateX(0%) scaleX(1);
    opacity: 1;
}

@media screen and (min-width: 1600px) {
    .nav-bar {
        inset: 0 0 0 84vw;
    }

    .nav-bar a {
        padding: 28px;
        padding-left: 20px;
    }
}

.nav-control {
    display: block;
    position: fixed;
    z-index: 85;
    width: 2rem;
    aspect-ratio: 1;
    background: url(./images/menu-icon.svg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    border: none;
    cursor: pointer;
    top: 2rem;
    right: 2rem;
    transition: cubic-bezier(0.075, 0.82, 0.165, 1) 0.4s;
}

.nav-control:hover {
    transform: rotate(-90deg);
}

.nav-control[aria-expanded="true"] {
    background: url(./images/close-icon.svg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}

#top-buttons {
    display: flex;
    position: absolute;
    width: 40%;
    justify-content: space-between;
    align-items: center;
    z-index: 40;
    margin-left: 20px;
    color: #FFFFFF;
  }

  #top-buttons a {
    flex-grow: 1;
    width: 10%;
    font-style: normal;
    text-decoration: none;
    color: inherit;
    padding: 10px;
    margin: 20px;
    font-size: 18px;
    font-family: 'Noto Sans SC';
    transition: 0.1s ease-out;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  #top-buttons span {
    color: inherit;
  }


  #top-buttons a::after {
    content: '';
    background-color: #FFFFFF;
    width: 1px;
    padding: 2px;
    padding-top: 0;
    padding-bottom: 0;
    height: 2px;
    position: absolute;
    transform: translateX(0%) translateY(25px);
    transition: 0.1s ease-out;
    z-index: 6;
  }

  #top-buttons a:hover::after {
    width: 60px;
  }

  #top-buttons[aria-expanded="true"] {
    color: #111111;
  }

  #top-buttons[aria-expanded="true"] a::after {
    content: '';
    background-color: #111111;
  }

.top-banner {
    width: 100%;
    height: 1000px;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    background-color: #F2F2F2;
    transition: ease-out 0.5s;
}

.top-banner-arrow {
    position: absolute;
    bottom: 40px;
    width: 100%;
    text-align: center;
    color: #FFFFFF;
    font-size: 3.6rem;
    font-weight: bolder;
    font-family: 'Dela Gothic One';
    text-shadow: 0px 5px 8px rgba(0, 0, 0, 0.2);
    animation: floating_ 3s infinite cubic-bezier(0.075, 0.82, 0.165, 1);
    z-index: 48;
}

  @keyframes floating_ {
	50% {
		transform: translateY(-60%);
	}
}

.top-banner-img {
    background-repeat: no-repeat;
    background-size: cover;
    box-shadow: 5px 5px 18px rgba(0, 0, 0, 0.4);
    width: 50%;
    height: 100%;
    z-index: 30;
    overflow: hidden;
}

.top-banner-img img {
    height: 1000px;
    width: auto;
}

.top-banner-text {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
}

.top-banner-title {
    width: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    transition: ease-out 0.5s;
}

.top-banner-title div:nth-child(1) {
    font-size: 5.4rem;
    font-family: 'Noto Serif SC';
    margin-top: 250px;
    z-index: 14;
    color: #222222;
    letter-spacing: 0.2rem;
    transition: ease-out 0.5s;
}

.top-banner-title div:nth-child(2) {
    position: absolute;
    font-size: 11rem;
    font-family: 'Dancing Script';
    color: rgba(255, 214, 102, 1);
    z-index: 13;
    opacity: 1;
    margin-top: 190px;
    letter-spacing: -0.1rem;
    white-space: nowrap;
    transition: ease-out 0.5s;
}



.top-banner-text:nth-child(2) p {
    font-family: 'Noto Serif SC';
    color: #222222;
    margin: 160px;
    margin-bottom: 260px;
}





@media screen and (max-width: 1129px) {

    .top-banner {
        width: 100%;
        height: 1400px;
        overflow: hidden;
        display: flex;
        flex-direction: column-reverse;
        align-items: center;
    }

    .top-banner-img img {
        height: 1400px;
        width: auto;
    }

    .top-banner-arrow {
        display: none;
    }

    .top-banner-img {
        flex-grow: 1;
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;
        box-shadow: 5px 5px 9px rgba(0, 0, 0, 0.4);
        width: 100%;
        height: 100%;
        z-index: 1;
        opacity: 0.2;
    }

    .top-banner-text {
        width: 80%;
        height: 0%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-between;
        z-index: 2;
    }

    .top-banner-text:nth-child(2) p {
        margin: 20px;
        margin-bottom: 30px;
        margin-top: 100px;
    }
    
    .template_text-s {
		text-decoration: none;
		color: #151515;
		vertical-align: baseline;
		font-size: 175%;
		margin-bottom: 1.5%;
		font-weight: normal;
        padding-left: 5%;
        padding-right: 5%;
		line-height: 300%;
	}

    .template_text-t {
		text-decoration: none;
		color: #151515;
		vertical-align: baseline;
		font-size: 2.5rem;
		margin-bottom: 1.5%;
		font-weight: normal;
		line-height: 300%;
	}

    :root {
      --root-font-size-normal: 1.9vw;
      --root-font-size-medium: 60px;
    }

    .nav-bar {
        inset: 0 0 0 30%;
    }

    .nav-bar a {
        font-size: 2.6rem;
        padding: 60px;
    }

    .nav-control {
        width: 4.5rem;
        aspect-ratio: 1;
        top: 4rem;
        right: 3rem;
    }

    .bottom-alt {
        display: flex;
        flex-direction: column;
        justify-content: left;
        align-items: flex-start;
    }

    .bottom_column-alt a {
        text-decoration: none;
        color: #F2F2F2;
        font-size: 2rem;
        line-height: 3.5rem;
    }

    .bottom_column-alt h3 {
        font-size: 3rem;
        line-height: 4rem;
        text-shadow: 0px 1.5px #3a3a3a;
    }

    .function-mobile-column {
      flex-direction: row;
      flex-wrap: wrap;
      width: 100vw;
      height: 2000px;
    }

    .mobile-invisible {
        display: none;
        opacity: 0;
        z-index: -1;
    }

    .origin-bottom {
        height: auto;
        flex-direction: column;
        justify-content: left;
        align-items: flex-start;
        padding-bottom: 100px;
    }

    .origin-bottom div {
        padding-left: 50px;
    }

    #home-button {
        background: url(./images/home-icon.png); 
        width: 90px; 
        height: 90px; 
        margin: 33px; 
        background-repeat: no-repeat; 
        background-size: 100%; 
        position: fixed; 
        left: 0;
        background-position: center;
        z-index: 5;
    }

}



#home-button:hover {
    background-size: 110%;
  }

#column-1 {
    background: url(./images/Mht8QcADwlfS7WK.jpg); 
    background-size: cover;
    width: 50%; 
    height: 1200px;
    transition: 0.3s ease-in-out;
}

#column-2 {
    width: 22.5%;
    height: 1200px;
    z-index: 3;
    transition: 0.3s ease-in-out;
}

#column-3 {
    width: 27.5%;
    height: 1200px;
    display: flex;
    flex-direction: column;
    transition: 0.3s ease-in-out;
}

#block-2 {
    background: #F2C960; 
    width: 100%; 
    height: 50%; 
    display: flex; 
    flex-direction: column; 
    position: relative;
    transition: 0.3s ease-in-out;
}

#block-2-space {
    height: 30%;
}

#block-3 {
    width: 100%; 
    height: 50%;
    background: #F4F4F4;
    transition: 0.3s ease-in-out;
}

#block-4 {
    background: url(./images/ItuwVG6lOo1bN8x.jpg); 
    background-size: cover; 
    width: 100%; 
    height: 45%;
}

#block-5 {
    width: 100%;
    height: 55%;
}

#block-5-1 {
    background: url(./images/1wNGDKkxsV8ejYC.jpg); 
    background-size: cover; 
    width: 100%; 
    height: 80%;
    display: flex;
}

#block-5-2 {
    width: 100%;
    height: 20%;
    display: flex;
    justify-content: end;
    background-color: #F2F2F2;
}

#block-5-2 span {
    width: 120px;
    height: 120px;
    background: #111111;
    color: #F4F4F4;
    font-family: 'Playfair Display';
    font-size: 100px;
    overflow: hidden;
}


.avatar {
    width: 300px; 
    height: 300px; 
    background-image: url(./images/sonic.png); 
    background-size: contain; 
    background-repeat: no-repeat;
    border-radius: 23rem;
    box-shadow: 10px 10px 0px rgba(255, 214, 102, 1);
    position: absolute; 
    right: 40px; 
    top: 40px;
    transform: translateX(0%);
}

@media screen and (max-width: 1100px) {

    #column-1 {
        width: 40%; 
    }
    
    #column-2 {
        width: 60%;
    }

    #column-3 {
        width: 100%;
        height: 800px;
        display: flex;
        flex-direction: row;
    }

    #block-2 {
        height: 70%; 
    }

    #block-2-space {
        height: 20%;
    }
    
    #block-3 {
        height: 30%;
    }

    #block-4 {
        height: 100%;
    }
    
    #block-5 {
        height: 100%;
    }

    .avatar {
        position: relative; 
        right: 0; 
        top: 50px;
        left: 50%;
        transform: translateX(-50%);
    }

    #arrow {
        opacity: 0;
      }
}