/* Red VTuber Models – frontend */

/* ---------- Scroll animations ---------- */
html.rv-js .rv-anim{opacity:0;transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rv-delay,0ms);will-change:opacity,transform}
html.rv-js .rv-from-left{transform:translateX(-90px)}
html.rv-js .rv-from-right{transform:translateX(90px)}
html.rv-js .rv-fade-up{transform:translateY(34px)}
html.rv-js .rv-anim.is-in,html.rv-all-in .rv-anim{opacity:1;transform:none}
.elementor-editor-active .rv-anim{opacity:1!important;transform:none!important}
@media (max-width:767px){html.rv-js .rv-from-left{transform:translateX(-40px)}html.rv-js .rv-from-right{transform:translateX(40px)}}
@media (prefers-reduced-motion:reduce){html.rv-js .rv-anim{opacity:1;transform:none;transition:none}}

/* ---------- Grid (circle avatars) ---------- */
.rv-grid{--rv-size:260px;--rv-size-t:200px;--rv-size-m:140px;--rv-gap:50px;--rv-ring:#B50925;--rv-s:var(--rv-size);width:100%}
@media (max-width:1024px){.rv-grid{--rv-s:var(--rv-size-t)}}
@media (max-width:767px){.rv-grid{--rv-s:var(--rv-size-m);--rv-gap:28px}}
.rv-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--rv-gap) calc(var(--rv-gap) * .9)}
.rv-row + .rv-row{margin-top:var(--rv-gap)}
.rv-card{display:flex;flex-direction:column;align-items:center;width:var(--rv-s);text-decoration:none!important;color:inherit;outline:none}
.rv-circle{display:block;position:relative;width:var(--rv-s);height:var(--rv-s);border-radius:50%;overflow:hidden;background:#F8EFF1;
	box-shadow:0 0 0 0 #fff,0 0 0 0 var(--rv-ring),0 8px 22px rgba(74,7,18,.08);
	transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s}
.rv-circle img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;border-radius:0!important;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.rv-card:hover .rv-circle,.rv-card:focus-visible .rv-circle{transform:translateY(-8px);box-shadow:0 0 0 5px #fff,0 0 0 8px var(--rv-ring),0 20px 34px rgba(74,7,18,.18)}
.rv-card:hover .rv-circle img{transform:scale(1.08)}
.rv-name{display:block;margin-top:22px;font-size:17px;font-weight:700;letter-spacing:.14em;line-height:1.3;color:#4A0712;text-align:center;transition:color .3s}
.rv-card:hover .rv-name{color:#B50925}
@media (max-width:767px){.rv-name{font-size:14px;letter-spacing:.08em;margin-top:14px}}
.rv-empty{padding:30px;text-align:center;border:2px dashed #E9DDE1;border-radius:10px;color:#51464B}

/* ---------- Single page ---------- */
.rv-single{--rv-lav:#F2F0F7;overflow:hidden;padding-bottom:70px}
.rv-wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.rv-back{display:inline-flex;align-items:center;gap:6px;margin:24px 0 0;font-size:14px;font-weight:600;letter-spacing:.04em;color:#B50925!important;text-decoration:none!important}
.rv-back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.rv-back:hover svg{transform:translateX(-4px)}

/* Character section.
   Desktop: full body on the left (35%), reference sheet on the right (65%),
   title above the sheet and the credits pill below it. */
.rv-character{
	display:grid;
	grid-template-columns:35% 65%;
	grid-template-areas:
		"chibi title"
		"chibi banner"
		"chibi credits"
		"desc  desc";
	grid-template-rows:auto auto 1fr auto;
	max-width:1300px;
	margin:0 auto;
	padding:20px 20px 40px;
}
.rv-character figure{margin:0}
.rv-character a.rv-zoom{display:block;line-height:0;cursor:zoom-in}
.rv-character img{display:block;width:100%!important;height:auto!important;max-width:100%!important}

.rv-full{grid-area:chibi;position:relative;z-index:2;width:100%;max-width:460px;justify-self:end}
.rv-full img{filter:drop-shadow(0 14px 24px rgba(74,7,18,.14));transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.rv-full a:hover img{transform:translateY(-6px)}

.rv-title{font-family: "Playfair Display", Sans-serif; grid-area:title;margin:40px 0 50px;text-align:center;font-size:clamp(32px,2.4vw,52px);line-height:1.2;font-weight:700;text-transform:capitalize;color:#B50925}

/* The sheet slides under the left edge of the full body image. */
.rv-character .rv-ref{grid-area:banner;width:112%;max-width:none;margin:0 0 0 -12%;position:relative;z-index:1}
.rv-ref img{box-sizing:border-box;border:4px solid #fff!important;border-radius:0!important;box-shadow:0 2px 10px rgba(0,0,0,.05)}

/* Credits card: white card, brand gradient strip on the left, label above value. */
.rv-character .rv-credits{grid-area:credits;justify-self:end;align-self:start;position:relative;display:flex;align-items:stretch;list-style:none;margin:56px 4% 0 0;padding:0;background:#fff;border:1px solid #E9DDE1;border-radius:20px;box-shadow:0 14px 34px rgba(181,9,37,.09);overflow:hidden}

.rv-credit{display:flex;flex-direction:column;justify-content:center;gap:5px;margin:0;padding:15px 26px;min-width:0}
.rv-credit:first-child{padding-left:32px}
.rv-credit + .rv-credit{border-left:1px dashed #E9DDE1}
.rv-k{font-size:11px;font-weight:700;line-height:1;letter-spacing:.18em;text-transform:uppercase;color:#E45B70}
.rv-v{font-size:17px;font-weight:700;line-height:1.2;letter-spacing:.02em;color:#4A0712;white-space:nowrap}
a.rv-v{display:inline-flex;align-items:center;gap:5px;color:#B50925!important;text-decoration:none!important;background:linear-gradient(currentColor,currentColor) 0 100% / 0 2px no-repeat;padding-bottom:2px;transition:background-size .3s}
a.rv-v:hover{background-size:100% 2px}
a.rv-v svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
a.rv-v:hover svg{transform:translate(2px,-2px)}

.rv-desc{grid-area:desc;max-width:720px;margin:40px auto 0;text-align:center;font-size:16px;line-height:1.75;color:#51464B}
.rv-desc p{margin:0 0 1em}

/* Only a reference sheet: centre it under the title. */
.rv-character--ref{grid-template-columns:1fr;grid-template-areas:"title" "banner" "credits" "desc";max-width:1000px}
.rv-character.rv-character--ref .rv-ref{width:100%;margin:0}
.rv-character.rv-character--ref .rv-credits{justify-self:center;margin:30px 0 0}
/* Only a full body image: title, image, credits stacked in the centre. */
.rv-character--body{grid-template-columns:1fr;grid-template-areas:"title" "chibi" "credits" "desc"}
.rv-character--body .rv-full{justify-self:center;max-width:400px}
.rv-character.rv-character--body .rv-credits{justify-self:center;margin:30px 0 0}

@media (max-width:900px){
	.rv-title{margin:30px 0}
	.rv-character .rv-credits{margin-top:30px}
	.rv-credit{padding:13px 20px}
	.rv-v{font-size:15px}
}

/* Mobile: title -> full body -> reference sheet -> credits, stacked. */
@media (max-width:640px){
	.rv-character,.rv-character--ref,.rv-character--body{
		grid-template-columns:1fr;
		grid-template-areas:"title" "chibi" "banner" "credits" "desc";
		grid-template-rows:auto;
		padding:10px 16px 30px;
	}
	.rv-title{font-size:20px;margin:20px 0 16px}
	.rv-full,.rv-character--body .rv-full{justify-self:center;max-width:260px}
	.rv-character .rv-ref{width:100%;margin:20px 0 0}
	.rv-character .rv-credits,.rv-character.rv-character--ref .rv-credits,.rv-character.rv-character--body .rv-credits{justify-self:stretch;flex-wrap:wrap;margin:22px 0 0;border-radius:16px}
	.rv-credit,.rv-credit:first-child{flex:1 1 90px;align-items:center;text-align:center;padding:12px 8px}
	.rv-credit + .rv-credit{border-left:1px dashed #E9DDE1}
	.rv-k{font-size:10px;letter-spacing:.14em}
	.rv-v{font-size:14.5px}
	.rv-desc{margin-top:26px;font-size:15px}
}

/* ---------- Curved band (video / images) ---------- */
.rv-band{position:relative;margin-top:20px}
.rv-curve{display:block;width:100%;fill:var(--rv-lav)}
.rv-curve-top{height:clamp(30px,5vw,70px);margin-bottom:-1px}
.rv-curve-bottom{height:clamp(50px,10vw,150px);margin-top:-1px}
.rv-band-body{background:var(--rv-lav);padding:50px 20px 40px}
.rv-media{max-width:800px;margin:0 auto}

.rv-video{position:relative;aspect-ratio:16/9;overflow:hidden;background:#000;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer}
.rv-video-poster{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s}
.rv-video:hover .rv-video-poster{transform:scale(1.03);filter:brightness(.85)}
.rv-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.rv-video .rv-video-play{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;background:#B50925!important;color:#fff!important;display:flex!important;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(181,9,37,.25)!important;cursor:pointer;transition:transform .25s,box-shadow .25s}
.rv-video:hover .rv-video-play{transform:translate(-50%,-50%) scale(1.08)!important;box-shadow:0 0 0 16px rgba(181,9,37,.2)!important}
.rv-video .rv-video-play svg{width:32px;height:32px;fill:currentColor;margin-left:4px}
.rv-video.is-playing{cursor:default}

.rv-media-imgs{display:grid;gap:14px}
.rv-media-imgs--2{grid-template-columns:1fr 1fr}
.rv-media-imgs--3{grid-template-columns:repeat(3,1fr)}
.rv-media-img{display:block;line-height:0;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.15);cursor:zoom-in}
.rv-media-img img{width:100%!important;height:auto!important;display:block;transition:transform .6s}
.rv-media-img:hover img{transform:scale(1.03)}

@media (max-width:640px){
	.rv-band-body{padding:30px 12px 24px}
	.rv-video .rv-video-play{width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important}
	.rv-video .rv-video-play svg{width:24px;height:24px}
	.rv-media-imgs--2,.rv-media-imgs--3{grid-template-columns:1fr}
}

/* ---------- Gallery section ---------- */
.rv-gallery{position:relative;z-index:2;margin-top:60px}
/* Overlaps the bottom curve of the band. */
.rv-gallery--overlap{margin-top:clamp(-120px,-8vw,-40px)}
.rv-gallery-title{margin:0 0 26px;text-align:center;font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#4A0712}

/* ---------- Gallery strip (simple scroll carousel, from the provided layout) ---------- */
.rv-strip{position:relative}
.rv-strip-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0 20px;scroll-padding-inline:20px}
.rv-strip-track::-webkit-scrollbar{display:none}
.rv-strip.is-dragging .rv-strip-track{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing}
.rv-strip-item{flex:0 0 auto;display:block;height:clamp(300px,34vw,640px);overflow:hidden;line-height:0;scroll-snap-align:start;cursor:zoom-in;border:0!important;border-radius:0!important;box-shadow:none!important;text-decoration:none!important}
.rv-strip-item img{display:block;height:100%!important;width:auto!important;max-width:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;user-select:none;-webkit-user-drag:none;transition:transform .4s ease,opacity .3s}
.rv-strip-item:hover img{transform:scale(1.04);opacity:.92}
.rv-strip .rv-strip-btn{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;z-index:3;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;background:rgba(255,255,255,.8)!important;color:#B50925!important;box-shadow:0 4px 14px rgba(74,7,18,.12)!important;display:flex!important;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s,opacity .2s}
.rv-strip .rv-strip-btn:hover,.rv-strip .rv-strip-btn:focus-visible{background:#B50925!important;color:#fff!important}
.rv-strip .rv-strip-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.rv-strip .rv-strip-btn[disabled]{opacity:0!important;pointer-events:none}
.rv-strip .rv-strip-prev{left:10px!important}
.rv-strip .rv-strip-next{right:10px!important}
@media (max-width:640px){
	.rv-strip-track{gap:8px;padding:0 12px;scroll-padding-inline:12px}
	.rv-strip-item{height:300px}
	.rv-strip .rv-strip-btn{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
	.rv-strip .rv-strip-btn svg{width:18px;height:18px}
}
@media (max-width:400px){.rv-strip-item{height:260px}}

/* ---------- Prev / Next model ---------- */
.rv-nav{display:flex;justify-content:space-between;gap:16px;margin-top:64px;padding-top:30px;border-top:1px solid #E9DDE1}
.rv-nav-link{display:flex;align-items:center;gap:14px;text-decoration:none!important;color:#4A0712!important;max-width:48%}
.rv-nav-link small{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#B50925;margin-bottom:2px}
.rv-nav-link > span:not(.rv-nav-pic){font-weight:700;letter-spacing:.06em;line-height:1.3}
.rv-nav-next{text-align:right;margin-left:auto}
.rv-nav-pic{flex:0 0 64px;width:64px;height:64px;border-radius:50%;overflow:hidden;background:#F8EFF1;transition:box-shadow .3s,transform .3s}
.rv-nav-pic img{width:100%!important;height:100%!important;object-fit:cover;display:block;border-radius:0!important}
.rv-nav-link:hover .rv-nav-pic{transform:scale(1.06);box-shadow:0 0 0 3px #fff,0 0 0 5px #B50925}
@media (max-width:767px){.rv-nav-pic{flex-basis:46px;width:46px;height:46px}.rv-nav-link{gap:10px;font-size:14px}}

/* ---------- Lightbox ---------- */
.rv-lb{position:fixed;inset:0;z-index:999999;background:rgba(20,4,8,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.rv-lb.open{opacity:1;visibility:visible}
.rv-lb-img{max-width:92vw;max-height:90vh;object-fit:contain;user-select:none;opacity:0;transition:opacity .25s}
.rv-lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.75);font-size:13px;letter-spacing:.05em}
.rv-lb .rv-lb-btn{position:absolute!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;background:rgba(74,7,18,.7)!important;color:#fff!important;box-shadow:none!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer;transition:background .2s;z-index:2}
.rv-lb .rv-lb-btn:hover,.rv-lb .rv-lb-btn:focus{background:#B50925!important;outline:none}
.rv-lb .rv-lb-btn svg{display:block;width:46%!important;height:46%!important;fill:none!important;stroke:currentColor!important;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.rv-lb .rv-lb-prev,.rv-lb .rv-lb-next{top:50%!important;transform:translateY(-50%)!important;width:56px!important;height:56px!important;min-width:56px!important;max-width:56px!important;min-height:56px!important;max-height:56px!important}
.rv-lb .rv-lb-prev{left:24px!important}.rv-lb .rv-lb-next{right:24px!important}
.rv-lb .rv-lb-close{top:20px!important;right:22px!important;width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;min-height:46px!important;max-height:46px!important}
@media (max-width:767px){
	.rv-lb .rv-lb-prev,.rv-lb .rv-lb-next{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;min-height:42px!important;max-height:42px!important}
	.rv-lb .rv-lb-prev{left:8px!important}.rv-lb .rv-lb-next{right:8px!important}
	.rv-lb .rv-lb-close{top:12px!important;right:12px!important;width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;min-height:40px!important;max-height:40px!important}
}
html.rv-lock,html.rv-lock body{overflow:hidden!important}
