@charset "UTF-8";

body.lock{
    overflow: hidden;
}

.v-enter-active,
.v-leave-active {
  transition: opacity 0.5s ease;
}

.v-enter-from,
.v-leave-to {
  opacity: 0;
}

.modal{
    position: fixed;
    top: 0;
    left: 0;
	width: 100vw;
	height: 100dvh;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background-color: rgba(90, 90, 90, 0.8);
    overflow: auto;
    z-index: 10;
}

.modal::-webkit-scrollbar{
    width: 0;
	height: 0;
}

.modal::-webkit-scrollbar-thumb {
	background-color: transparent;
}

.modal.list-on::-webkit-scrollbar{
    width: 1.2rem;
	height: 0;
}

.modal.list-on::-webkit-scrollbar-thumb {
	background-color: var(--color-text);
}

.modal.caution > div{
    margin: 0 auto;
	color: #fff;
	text-align: center;
}

.modal.caution > div p{
    margin: 0 auto 1em;
}

.modal.caution > div input{
	padding: 0 0.5em;
	width: 15em;
    background-color: #fff;
	color: var(--color-text);
	line-height: 4rem;
	text-align: left;
}

.modal.caution > div button{
	padding: 0 1.5em;
	font-family: var(--font-alphanumeric);
	line-height: 4rem;
	letter-spacing: 0.1em;
    background-color: var(--color-text);
}

.modal figure{
    display: none;
    margin: 0 auto;
}

.modal figure.fig-on{
    display: table;
}

.fade{
	animation: fade 0.5s ease;
}

@keyframes fade {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.modal.zoom-in img.image:active {
	cursor:grabbing;
} 

.modal.zoom-in figure{
    padding: 3rem;
}

.modal figcaption{
    padding: 1em 1.8em;
    display: table-caption;
    caption-side: bottom;
    background-color: #fff;
    font-size: 0.9em;
    line-height: 1.4;
}

.modal figure img.image{
    display: block;
    width: auto;
    height: auto;
    max-width: calc(100vw - 15rem);
    max-height: calc(100vh - 15rem);
    pointer-events: none;
    -webkit-touch-callout:none;
    -webkit-user-select:none;
    -moz-touch-callout:none;
    -moz-user-select:none;
    user-select:none;
}

.modal.comic figure img.image{
    max-width: 100vw;
    max-height: calc(100dvh - 9em);
}

.modal.comic.p2 figure img.image,
.modal.p2 figure img.image{
    max-height: calc(100dvh - 6em);
}

.modal.comic{
    padding: 3em 3em 6em;
}

.modal.comic.p2{
    padding: 3em 3em 3em;
}

.modal.comic figure.fig-on{
    display: flex;
    width: auto;
    height: fit-content !important;
    max-height: calc(100dvh - 6em) !important;
    overflow: hidden;
}

.modal.comic figure.fig-on div.pages{
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row-reverse;
    justify-content: flex-start;
    max-height: 100dvh !important;
}

.modal.zoom-in.comic figure.fig-on{
    max-height: fit-content !important;
}

.modal.comic figure img.page{
    display: block;
    max-width: 50%;
    height: auto;
}

.modal.comic figure div.pageleft{
    max-width: 50%;
    height: auto;
    max-height: auto;
}

.modal.zoom-in figure.fig-on{
	cursor: grab;
}

.modal.zoom-in figure.fig-on:active{
	cursor: grabbing;
}

.modal.zoom-in img.image,
.modal.zoom-in.p2 figure img.image{
    max-width: fit-content;
    max-height: fit-content;
}

.modal > button{
    position: fixed;
    height: fit-content;
    font-size: 3em;
    color: #fff;
}

.modal > button,
.modal .number{
    filter: drop-shadow(0 0 0.3rem rgba(90, 90, 90, 0.8));
}

.modal > button::after{
	font-family: var(--font-icon);
    font-variation-settings:'wght' 400;
}

.modal > button.stop{
    pointer-events: none;
	opacity: 0.5;
}

.modal.zoom-in button {
	opacity: 0.5;
} 

.modal button.prev,
.modal button.next{
    top: 0;
    bottom: 0;
    margin: auto;
}

.modal button.prev{
    right: 1rem;
}

.modal button.prev::after{
	content:'\e5e1';
}

.modal button.next{
    left: 1rem;
}

.modal button.next::after{
	content:'\e5e0';
}


.modal button.close{
    top: 1rem;
    right: 1rem;
}

.modal button.close::after{
	content:'\e5cd';
}

.modal button.zoom{
    top: 1rem;
    right: 1.4em;
}

.modal button.zoom::after{
	content:'\e8ff';
}

.modal .zoom.zoom-in::after{
	content:'\e900';
}

.modal button.list{
    top: 1rem;
    right: 2.7em;
}

.modal button.list::after{
	content:'\f191';
}

.modal .number{
    position: fixed;
    top: 1em;
    left: 1em;
    font-family: var(--font-alphanumeric);
    color: #fff;
}

.modal .imagelist{
    margin: auto;
    padding: 3rem;
    height: fit-content;
    width: fit-content;
    max-width: calc(20rem * 6 + 3rem * 7);
    display: flex;
    flex-wrap: wrap;
    gap: 3rem;
}

.modal .imagelist .listtmb{
    width: 20rem;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.modal .loading{
    position: fixed;
    inset: 0;
    margin: auto;
    height: fit-content;
    width: fit-content;
    color: #fff;
}

.modal .loading.load{
    display: none;
}

.modal .loading::after{
    display: block;
	font-family: var(--font-icon);
    font-variation-settings:'wght' 500;
	content:'\e9d0';
    font-size: 4em;
    line-height: 4em;
	animation:2s linear infinite rotation;
    background: linear-gradient(100deg, rgba(255,255,255,1) 30%, rgba(255,255,255,0) 70%); /* 背景色にグラデーションを指定 */
    background-clip: text; /* テキストで切り抜く */
    -webkit-text-fill-color: transparent; /* 切り抜いた部分は背景を表示 */
}

@keyframes rotation{
    0%{
        transform:rotate(0);
    }
    100%{
        transform:rotate(360deg);
    }
}

.none{
    display: none !important;
}

.modal.comic .comic-title{
    transform: translateY(0);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 4.5rem;
    padding: 0 1em;
    line-height: 4.5rem;
    background-color: rgba(0,0,0,0.8);
    color: #fff;
    transition : all 0.5s;
}

.modal.comic .comic-title.info-off{
    transform: translateY(-4.5em);
}

.modal button.close.comic-close{
    top: 0;
    right: 0;
    filter: none;
    height: 4.5rem;
    width: 4.5rem;
    font-size: 1.5em;
    color: var(--color-text);
    background-color: rgba(255,255,255,0.8);
    text-align: center;
}

div.pageslider{
    transform: translateY(0);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1em;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    padding: 1em 3em;
    width: 100%;
    height: 5.8em;
    z-index: 99;
    background-color: rgba(0,0,0,0.8);
    transition : all 0.5s;
}

div.pageslider.info-off{
    transform: translateY(5.8em);
}

div.pageslider.min{
    display: none;
}

div.slidernum{
    font-family: var(--font-alphanumeric);
    font-weight: 700;
    color: #fff;
}

div.pageslider input{
    direction: rtl;
    width: 100%;
    appearance:none;
}

div.pageslider input::-webkit-slider-runnable-track{
        background-color:#fff;
        height:3px;
}

div.pageslider input::-webkit-slider-thumb{
        appearance:none;
        background-color:#fff;
        height:3px;
        width:3px;
        border-radius: 50%;
        transform:scale(5);
        border:none;
}

div.pageslider input::-moz-range-track {
        background-color:#fff;
        height:3px;
}

div.pageslider input::-moz-range-thumb {
        appearance:none;
        background-color:#fff;
        height:3px;
        width:3px;
        border-radius: 50%;
        transform:scale(5);
        border:none;
}



@media screen and (max-width: 768px) {
	.modal figcaption{
        padding: 0.6em 1.2em;
    }

    .modal figure img.image{
        max-width: calc(100vw - 4rem);
        max-height: calc(100vh - 4rem);
    }

    .modal > button{
        font-size: 2.4em;
    }

    .modal.comic,
    .modal.comic.p2{
        padding: 0;
    }
    
    .modal.comic figure.fig-on{
        aspect-ratio: 141/200 !important;
        max-height: 100dvh;
    }

    .modal.comic figure img.page{
        max-width: 100%;
        max-height: calc(100vh - 3em);
    }

    .modal.comic figure div.pageleft{
        display: none;
    }

.modal.comic .comic-title{
    height: 4rem;
    line-height: 4rem;
}

.modal.comic .comic-title.info-off{
    transform: translateY(-4em);
}

.modal button.close.comic-close{
    height: 4rem;
    width: 4rem;
    font-size: 1.5em;
}
    
    div.pageslider.max{
        display: none;
    }
    
    div.pageslider.min{
        display: flex;
        height: 3em;
        padding: 1em 1.5em;
    }

    div.pageslider.info-off{
        transform: translateY(3em);
    }
}
