html {
    scroll-behavior: smooth;
}

main {
    background-color: #1c1b17;
    color: #fdfdfd;
    padding-top: 200px;
    padding-bottom: 250px;
}

main .menu {
    display: block;
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

main .menu ul {
    display: inherit;
    background-color: #38312e;
    padding: 2px 0;
    border-radius: 10px;
}

main .menu ul li {
    background-color: #3d3029;
    color: #d9b7a6;
    margin: 10px 5px;
    border-radius: 5px;
    text-align: center;
    transition: color 300ms;
}
main .menu ul li.act,
main .menu ul li:hover {
    color: #e0c5b8;
}

main .menu ul li a {
    display: block;
    padding: 10px 25px;
}

main .menu ul li a p {
    position: relative;
    display: inline;
}

main .menu ul li a p::before {
    content: "";
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: #d9b7a6;
    height: 1px;
    width: 100%;
    border-radius: 1px;
    transform: scaleX(0);
    transition: color 300ms, transform 300ms;
}
main .menu ul li.act a p::before,
main .menu ul li:hover a p::before {
    background-color: #e0c5b8;
    transform: scaleX(1);
}

main .language {
    position: fixed;
    bottom: 75px;
    left: 60px;
}

main .language ul {
    display: flex;
}

main .language ul li {
    cursor: pointer;
    display: block;
    color: #d9b7a6;
    padding: 0 10px;
    margin-right: 20px;
}
main .language ul li.selected,
main .language ul li:hover {
    color: #e0c5b8;
    text-decoration: underline;
}

main .hide-lang {
    visibility: hidden;
    height: 0;
    opacity: 0;
}

article {
    background-color: #38312e;
    width: 970px;
    padding: 12px 0;
    margin: 0 auto;
    border-radius: 10px;
    text-align: center;
}

section {
    background-color: #3d3029;
    width: 950px;
    font-size: 18px;
    padding: 10px 0;
    margin: 80px auto;
    border-radius: 5px;
    text-shadow: 2px 2px 2px #000;
    scroll-margin-top: 150px;
}

section h1 {
    font-size: 36px;
    font-weight: bold;
    padding: 20px;
}

section code {
    background-color: #22222a;
    font-size: 16px;
    font-family: "JetBrainsMono";
    padding: 1px 4px;
    border-radius: 4px;
}

section ul li {
    border-top: 1px solid;
    border-image: linear-gradient(to right, rgba(248, 189, 19, 0.1), rgb(248, 189, 19), rgba(248, 189, 19, 0.1)) 1;
}
/* ------------------------------------------------- */
.overview {
    margin-top: 0;
}

.overview h1 {
    padding-bottom: 0;
}

.overview ul li {
    margin-bottom: 50px;
}

.overview ul .perks {
    margin-bottom: 10px;
}

.overview .wrap:not(.hide-lang) {
    padding: 10px 10px 30px 10px;
}
.overview p {
    margin-top: 30px;
}
/* ------------------------------------------------- */
.contents ul li {
    margin-bottom: 100px;
}

.contents .functions-list li .toggle-btn {
    cursor: pointer;
    display: flex;
    justify-content: center;
}

.contents .functions-list li .toggle-btn ul {
    display: flex;
    position: relative;
    background-color: rgba(163, 161, 168, 0.5);
    height: 50px;
    width: 150px;
    border: 3px solid #fefeff;
    border-radius: 10px;
    box-shadow: 5px 5px 5px #000;
}
.contents .functions-list li .toggle-btn ul.free {
    --trans: rgba(163, 161, 168, 0.2);
}
.contents .functions-list li .toggle-btn ul.paid {
    --trans: rgba(244, 160, 199, 0.2);
}

.contents .functions-list li .toggle-btn ul::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    background-color: black;
    height: 100%;
    width: 50%;
    transition: background-color 500ms cubic-bezier(0.4, 0.4, 0, 1), border-radius 500ms cubic-bezier(0.4, 0.4, 0, 1), transform 500ms cubic-bezier(0.4, 0.4, 0, 1), box-shadow 500ms cubic-bezier(0.4, 0.4, 0, 1);
}
.contents .functions-list li .toggle-btn ul.move::before {
    background-color: var(--trans) !important;
    border-radius: 20px !important;
    transform: translateX(-50%) scaleX(0.2) !important;
    box-shadow: 0 0 5px var(--trans) !important;
}
.contents .functions-list li.free .toggle-btn ul::before {
    background-color: #a3a1a8;
    border-radius: 10px 0 0 10px;
    transform: translateX(-100%) scaleX(1);
}
.contents .functions-list li.paid .toggle-btn ul::before {
    background-color: #f4a0c7;
    border-radius: 0 10px 10px 0;
    transform: translateX(0) scaleX(1);
    box-shadow: 0 0 5px #f4a0c7;
}

.contents .functions-list li .toggle-btn ul::after {
    content: "\f004";
    display: block;
    position: absolute;
    top: 25%;
    left: 50%;
    font-family: "Font Awesome 7 Pro";
    font-size: 20px;
    font-weight: 600;
    height: 50%;
    width: 50%;
    transition: color 500ms cubic-bezier(0.4, 0.4, 0, 1), transform 500ms cubic-bezier(0.4, 0.4, 0, 1), box-shadow 500ms cubic-bezier(0.4, 0.4, 0, 1), text-shadow 500ms cubic-bezier(0.4, 0.4, 0, 1);
}
.contents .functions-list li .toggle-btn ul.move::after {
    transform: translateX(-50%) scale(2) !important;
}
.contents .functions-list li.free .toggle-btn ul::after {
    color: #919495;
    transform: translateX(-100%) scale(1);
    text-shadow: 0 0 10px #000;
}
.contents .functions-list li.paid .toggle-btn ul::after {
    color: #ea609e;
    transform: translateX(0) scale(1.4);
    text-shadow: 0 0 20px #fefeff;
}

.contents .functions-list .hide {
    visibility: hidden;
    opacity: 0;
}

.contents .functions-list video,
.contents .functions-list img,
.contents .description p {
    transition: visibility 500ms cubic-bezier(0.4, 0.4, 0, 1), transform 500ms cubic-bezier(0.4, 0.4, 0, 1), opacity 500ms cubic-bezier(0.4, 0.4, 0, 1);
}

.contents .functions-list .bancho-lb.free .media {
    height: 710px;
}
.contents .functions-list .bancho-lb.free .media img {
    margin-top: 490px;
}

.contents .media {
    position: relative;
    height: 490px;
    width: 850px;
    margin: 0 auto;
    overflow: hidden;
    transition: height 400ms cubic-bezier(0.4, 0.4, 0, 1);
}
.contents .wipe.free .media {
    height: 50px;
    transition: height 600ms cubic-bezier(0.4, 0.4, 0, 1);
    transition-delay: 500ms;
}
.contents .score-based-ranking .media {
    height: 220px;
}
.contents .role .media {
    height: 190px;
}
.contents .colored .media {
	width: 500px;
	height: 150px;
}

.contents .media video,
.contents .media img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.contents .media video.free.hide,
.contents .media img.free.hide {
    transform: translateX(-30%);
}
.contents .media video.paid.hide,
.contents .media img.paid.hide {
    transform: translateX(30%);
}

.contents .web {
    margin-bottom: 30px;   
}

.contents .web img {
    filter: grayscale(80%) blur(1px);
    mask-image: radial-gradient(ellipse 50% 50% at center, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 85%);
}

.contents .description {
    position: relative;
    height: 75px;
    overflow: hidden;
}

.contents .description p {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}

.contents .description p.free.hide {
    transform: translateX(-30%);
}
.contents .description p.paid.hide {
    transform: translateX(30%);
}
/* ------------------------------------------------- */
.subscription {
    margin-bottom: 0
}

.subscription h1 {
    padding-bottom: 0;
}

.subscription ul li {
    margin-bottom: 30px;
}

.subscription .wrap:not(.hide-lang) {
    padding: 10px 10px 30px 10px;
}

.subscription p {
    margin-top: 30px;
}

.subscription ul .prices .price-bar {
    --scaleWidth: 0;
    --leftPos: 0;
    --pickPos: 0;
    display: block;
    position: relative;
    background-color: #463e39;
    height: 8px;
    width: 80%;
    border-radius: 8px;
    margin: 100px auto;
}

.subscription ul .prices .price-bar .weeks-scale {
    display: flex;
    position: relative;
    top: -10px;
}

.subscription ul .prices .price-bar .weeks-scale li {
    cursor: pointer;
    position: inherit;
    height: 28px;
    width: var(--scaleWidth);
    border-top: none;
    margin-bottom: 0;
    z-index: 10;
}
.subscription ul .prices .price-bar .weeks-scale li:first-child {
    margin-left: -5px;
}
.subscription ul .prices .price-bar .weeks-scale li:last-child {
    margin-right: -5px;
}

.subscription ul .prices .price-bar .weeks-scale li .tooltip-element,
.subscription ul .prices .price-bar .color .tooltip-element {
    display: block;
    position: inherit;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}
.subscription ul .prices .price-bar .color .tooltip-element {
    top: -10px !important;
    height: 28px !important;
}
.subscription ul .prices .price-bar .weeks-scale li:not(.selected):hover .tooltip-element .tooltip {
    visibility: visible;
    bottom: 140%;
    opacity: 1;
}
.subscription ul .prices .price-bar .color .tooltip-element .tooltip {
    visibility: visible !important;
    opacity: 1 !important;
}
.subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip,
.subscription ul .prices .price-bar .color .tooltip-element .tooltip {
    visibility: hidden;
    display: flex;
    line-height: 10px;
    width: 100px;
    position: absolute;
    left: 50%;
    bottom: 70%;
    transform: translateX(-50%);
    margin-bottom: 8px;
    padding: 8px 5px;
    border-radius: 10px;
    flex-direction: column;
    background-color: #463e39;
    color: #fdfdfd;
    text-align: center;
    box-shadow: 2px 2px 2px #000;
    opacity: 0;
    z-index: 2;
    transition: visibility 300ms, background-color 300ms, margin 500ms, bottom 300ms, opacity 300ms;
}
.subscription ul .prices .price-bar .weeks-scale li.selected .tooltip-element .tooltip {
    z-index: 0;
}
.subscription ul .prices .price-bar .color .tooltip-element .tooltip {
    left: 0 !important;
    bottom: 140% !important;
    background-color: #ff66ab !important;
    margin-left: var(--leftPos) !important;
    transition-delay: 50ms !important;
    z-index: 1 !important;
}
.subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip::before,
.subscription ul .prices .price-bar .color .tooltip-element .tooltip::before {
    content: "";
    width: 0;
    height: 0;
    border: 10px solid transparent;
    border-top: 12px solid #463e39;
    position: absolute;
    top: 100%;
    left: 50%;
    filter: drop-shadow(2px 2px #000);
    transform: translateX(-50%);
    transition: border 300ms;
}
.subscription ul .prices .price-bar .color .tooltip-element .tooltip::before {
    border-top: 12px solid #ff66ab !important;
}

.subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip span,
.subscription ul .prices .price-bar .color .tooltip-element .tooltip span {
    display: block;
}

.subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip .price,
.subscription ul .prices .price-bar .color .tooltip-element .tooltip .price {
    font-size: 1.2em;
    font-weight: bold;
    padding-top: 5px;
    padding-bottom: 10px;
}

.subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip .weeks:not(.hide-lang),
.subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip .discount:not(.hide-lang),
.subscription ul .prices .price-bar .color .tooltip-element .tooltip .weeks:not(.hide-lang),
.subscription ul .prices .price-bar .color .tooltip-element .tooltip .discount:not(.hide-lang) {
    font-size: 0.7em;
    padding-top: 5px;
}

.subscription ul .prices .price-bar .color {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #ff66ab;
    height: 8px;
    width: var(--leftPos);
    border-radius: 8px;
    transition: width 500ms;
}
.subscription ul .prices .price-bar .color::before {
    content: "";
    cursor: pointer;
    display: block;
    position: absolute;
    top: -10px;
    left: 0;
    background-color: #ff66ab;
    height: 28px;
    width: 8px;
    border-radius: inherit;
    margin-left: var(--pickPos);
    transition: margin 500ms;
}

.subscription ul .prices .price-bar div.weeks {
    display: flex;
    font-size: 14px;
    margin-top: 20px;
    justify-content: flex-end;
    align-items: center;
}

.subscription ul .prices .price-bar div.weeks input {
    background-color: #222222;
    caret-color: #fdfdfd;
    color: #8b8b8b;
    width: 60px;
    padding: 10px 5px;
    border-radius: 5px;
    margin-right: 5px;
    box-shadow: 3px 3px 3px 0 rgba(0, 0, 0, 0.3);
    outline: none;
}

.subscription ul .purchase {
    margin-bottom: 30px;
}

.subscription .purchase a {
    display: inline-block;
    position: relative;
    height: 50px;
    --glow-color: #ff5a16;
}
.subscription .purchase a:hover {
    --glow-color: #72a4f2;
}
.subscription .purchase a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    background-image: url("/image/donation/ko-fi_hover.png");
    background-size: auto 100%;
    background-position: center;
    background-repeat: no-repeat;
    height: 100%;
    width: 0;
    transform: translateX(-50%);
    transition: width 300ms, transfrom 300ms;
}
.subscription .purchase a:hover::after {
    width: 100%;
}

.subscription .purchase a img {
    height: inherit;
    transition: filter 3000ms;
}
.subscription .purchase a img.glow {
    filter: drop-shadow(0px 0px 10px var(--glow-color));
}
.subscription .purchase a img.fade {
    filter: drop-shadow(0px 0px 5px var(--glow-color));
}

@media(max-width: 1232px) {
    main {
        padding-top: 50px;
    }

    main .menu {
        position: unset;
        margin-bottom: 60px;
    }

    main .menu ul {
        display: flex;
        padding: 0;
        justify-content: center;
    }

    main .menu ul li.act a p::before {
        visibility: hidden;
    }

    main .language {
        position: unset;
        margin-bottom: 60px;
    }

    main .language ul {
        display: flex;
        justify-content: center;
    }

    main .language ul li {
        padding: 15px;
        margin: 0 20px;
    }

    article {
        width: 760px;
    }

    section {
        width: 740px;
        font-size: 16px;
    }
    
    section h1 {
        font-size: 30px;
    }

    section code {
        font-size: 14px;
    }
    /* ------------------------------------------------- */
    .contents .media {
        height: 410px;
        width: 720px;
    }
    .contents .score-based-ranking .media {
        height: 190px;
    }
    .contents .role .media {
        height: 160px;
    }
	.contents .colored .media {
		height: 120px;
	}

    .contents .description {
        height: 65px;
    }
}

@media(max-width: 767px) {
    body {
        min-width: 348px;
    }

    main {
        padding-top: 30px;
    }

    main .menu {
        display: block;
        margin-top: 80px;
        margin-bottom: 0;
    }

    main .menu ul {
        width: 50%;
        flex-direction: column;
        margin: 0 auto;
    }

    main .menu ul li {
        font-size: 14px;
        margin: 5px;
    }

    main .language {
        margin: 0;
    }

    main .language ul {
        font-size: 14px;
    }

    main .language ul li {
        padding: 15px;
        margin: 0 20px;
    }

    article {
        width: 370px;
        padding: 10px 0;
    }

    section {
        font-size: 14px;
        width: 360px;
        margin: 20px auto;
        scroll-margin-top: 100px;
    }

    section h1 {
        font-size: 26px;
        padding: 0 5px;
    }

    section code {
        font-size: 12px;
    }
    /* ------------------------------------------------- */
    .contents h1 {
        font-size: 24px;
        padding: 10px 5px;
    }

    .contents ul li {
        margin-bottom: 80px;
    }

    .contents .media {
        height: 200px;
        width: 350px;
    }
    .contents .score-based-ranking .media {
        height: 95px;
    }
    .contents .role .media {
        height: 80px;
    }
	.contents .colored .media {
		height: 40px;
	}

    .contents .description {
        height: 60px;
    }

    .contents .functions-list li .toggle-btn ul {
        height: 40px;
        width: 120px;
    }

    .contents .functions-list li .toggle-btn ul::after {
        top: 25%;
        font-size: 15px;
    }
    /* ------------------------------------------------- */
    .subscription ul .prices .price-bar {
        width: 85%;
    }

    .subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip,
    .subscription ul .prices .price-bar .color .tooltip-element .tooltip {
        width: 70px;
    }

    .subscription ul .prices .price-bar .weeks-scale li .tooltip-element .tooltip .price,
    .subscription ul .prices .price-bar .color .tooltip-element .tooltip .price {
        padding-bottom: 5px;
    }

    .subscription ul .prices .price-bar div.weeks {
        font-size: 12px;
        margin-top: 20px;
    }

    .subscription ul .prices .price-bar div.weeks input {
        width: 40px;
        padding: 7px 5px;
    }

    .subscription .purchase a {
        height: 40px;
    }
}