/* --------------------------------------------------------------------------
 * Single article shell
 * ----------------------------------------------------------------------- */
.review-v3 .content-layout.is-single-wide,
.review-v3 .single-main,
.review-v3 .single-main__inner {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: var(--rx3-bg);
}

.review-v3 .single-article.rx3-single {
	margin: 0;
	padding: 0;
	background: var(--rx3-bg);
	color: var(--rx3-text);
}

.review-v3 .rx3-single-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(390px, .85fr);
	min-height: max(720px, 94svh);
	border-bottom: 1px solid var(--rx3-line);
	background: #050506;
	overflow: hidden;
}

.review-v3 .rx3-single-hero__media {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 0;
	overflow: hidden;
	background:
		radial-gradient(circle at 50% 40%, rgba(237,91,145,.18), transparent 25rem),
		#1d1c21;
}

.review-v3 .rx3-single-hero__media img {
	display: block;
	width: 100%;
	height: auto;
	min-height: 0;
	max-height: none;
	object-fit: contain;
	object-position: center;
	background: #111114;
}

.review-v3 .rx3-single-hero__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: clamp(420px, 70svh, 760px);
	background: linear-gradient(140deg, #29262c, #111114);
}

.review-v3 .rx3-single-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, transparent 65%, rgba(5,5,6,.58)),
		linear-gradient(0deg, rgba(5,5,6,.35), transparent 32%);
	pointer-events: none;
}

.review-v3 .rx3-single-hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 1.15rem;
	padding: clamp(8rem, 15vh, 11rem) clamp(2rem, 5vw, 5rem) clamp(3rem, 6vw, 5rem);
}

.review-v3 .rx3-single-hero__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: auto;
}

.review-v3 .rx3-single-hero__eyebrow {
	margin: 0;
	color: var(--rx3-accent-2);
	font-size: .66rem;
	font-weight: 850;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.review-v3 .rx3-single-hero__title {
	max-width: 10.5ch;
	margin: 0;
	font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(3.2rem, 5.8vw, 6.6rem);
	font-weight: 500;
	line-height: .92;
	letter-spacing: -.06em;
	text-wrap: pretty;
}

.review-v3 .rx3-single-hero__summary {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: .6rem;
}

.review-v3 .rx3-single-hero__summary a,
.review-v3 .rx3-single-hero__summary span {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	padding: .38rem .62rem;
	border: 1px solid var(--rx3-line);
	border-radius: 999px;
	color: rgba(255,255,255,.7);
	font-size: .66rem;
	text-decoration: none;
}

.review-v3 .rx3-single-hero__summary .is-rating {
	border-color: rgba(223,181,111,.5);
	color: #efcd92;
}

.review-v3 .rx3-single-hero__summary .is-actress {
	border-color: rgba(237,91,145,.38);
	color: #ffabc8;
}

.review-v3 .rx3-single-hero__code {
	display: inline-block;
	max-width: 100%;
	margin: .35rem 0 0;
	color: rgba(255,255,255,.74);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .66rem;
	letter-spacing: .08em;
	white-space: nowrap;
}

.review-v3 .rx3-single-layout {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 6rem);
	width: min(calc(100% - 3rem), var(--rx3-max));
	margin-inline: auto;
	padding: clamp(5rem, 9vw, 9rem) 0;
}

.review-v3 .rx3-chapter-nav {
	position: sticky;
	top: 112px;
	align-self: start;
	display: grid;
	gap: .25rem;
}

.review-v3 .rx3-chapter-nav__label {
	margin: 0 0 1rem;
	color: rgba(255,255,255,.68);
	font-size: .61rem;
	font-weight: 850;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.review-v3 .rx3-chapter-nav a {
	display: grid;
	grid-template-columns: 2rem minmax(0,1fr);
	gap: .45rem;
	padding: .55rem 0;
	border-bottom: 1px solid rgba(255,255,255,.07);
	color: rgba(255,255,255,.72);
	font-size: .65rem;
	line-height: 1.35;
	text-decoration: none;
	transition: color .2s ease, padding-left .2s ease;
}

.review-v3 .rx3-chapter-nav a span:first-child {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	color: rgba(237,91,145,.7);
}

.review-v3 .rx3-chapter-nav a:hover,
.review-v3 .rx3-chapter-nav a.is-active {
	padding-left: .3rem;
	color: #fff;
}

.review-v3 .rx3-review-flow {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	min-width: 0;
}

.review-v3 .rx3-review-section {
	position: relative;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.review-v3 .rx3-review-section:empty {
	display: none;
}

.review-v3 .rx3-review-section__head {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: .8rem;
	padding-inline: .25rem;
}

.review-v3 .rx3-review-section__number {
	color: var(--rx3-accent);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .65rem;
	font-weight: 850;
	letter-spacing: .12em;
}

.review-v3 .rx3-review-section__label {
	margin: 0;
	color: rgba(255,255,255,.5);
	font-size: .63rem;
	font-weight: 850;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.review-v3 .rx3-review-section__content {
	min-width: 0;
	padding: clamp(1.25rem, 3vw, 2.6rem);
	border: 1px solid var(--rx3-line-dark);
	border-radius: var(--rx3-radius);
	background: var(--rx3-paper);
	color: var(--rx3-ink);
	box-shadow: 0 20px 52px rgba(0,0,0,.12);
	overflow: hidden;
}

.review-v3 .rx3-review-section.is-media .rx3-review-section__content {
	padding: clamp(1rem, 2vw, 1.5rem);
	background: #111114;
	color: var(--rx3-text);
	border-color: var(--rx3-line);
}

.review-v3 .rx3-review-section.is-video .rx3-review-section__content {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
}

.review-v3 iframe.rx3-sample-video {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 720 / 480;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.review-v3 video.rx3-sample-video {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	margin: 0;
	border: 0;
	background: #000;
}

.review-v3 .rx3-review-section.is-rating .rx3-review-section__content {
	background:
		radial-gradient(circle at 96% 10%, rgba(223,181,111,.16), transparent 20rem),
		var(--rx3-paper);
}

.review-v3 .rx3-review-section.is-membership .rx3-review-section__content {
	background: #111114;
	color: var(--rx3-text);
	border-color: var(--rx3-line);
}

/* Editorial feature list owned by Dekajiri Core's article-level highlights. */
.review-v3 .rx3-review-section.is-highlights .rx3-review-section__content {
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
}

.review-v3 .rx3-review-section.is-profile .rx3-review-section__content {
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
}

.review-v3 .rx3-review-highlights {
	position: relative;
	width: 100%;
	min-width: 0;
	padding: clamp(1.4rem, 3vw, 2.2rem) clamp(1.2rem, 3.4vw, 2.6rem);
	overflow: hidden;
	border: 1px solid rgba(143, 52, 83, .24);
	border-radius: var(--rx3-radius);
	background:
		radial-gradient(circle at 96% 0%, rgba(237, 91, 145, .1), transparent 18rem),
		linear-gradient(145deg, #fffaf6 0%, #fff5f7 100%);
	color: var(--rx3-ink);
	box-shadow: 0 20px 52px rgba(39, 17, 26, .13);
}

.review-v3 .rx3-review-highlights__head {
	display: grid;
	gap: clamp(.55rem, 1.2vw, .75rem);
	margin-bottom: clamp(1.1rem, 2vw, 1.45rem);
}

.review-v3 .rx3-review-highlights__meta {
	display: flex;
	align-items: center;
	gap: .7rem;
	margin: 0;
	color: var(--rx3-rose-dark);
	font-size: .65rem;
	font-weight: 850;
	letter-spacing: .18em;
	line-height: 1;
	text-transform: uppercase;
}

.review-v3 .rx3-review-highlights__rule {
	width: clamp(2.2rem, 5vw, 3.4rem);
	height: 2px;
	flex: 0 0 auto;
	background: linear-gradient(90deg, var(--rx3-accent), rgba(237, 91, 145, .18));
}

.review-v3 .rx3-review-highlights__count {
	white-space: nowrap;
}

.review-v3 .rx3-review-highlights__title {
	margin: 0;
	color: var(--rx3-burgundy);
	font-family: Georgia, "Yu Mincho", serif;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -.035em;
}

.review-v3 .rx3-review-highlights__list {
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(143, 52, 83, .17);
	list-style: none;
}

.review-v3 .rx3-review-highlights__item {
	display: grid;
	grid-template-columns: clamp(2.25rem, 4vw, 2.8rem) minmax(0, 1fr);
	gap: clamp(.85rem, 1.8vw, 1.15rem);
	align-items: center;
	margin: 0;
	padding: clamp(.95rem, 1.8vw, 1.25rem) 0;
	border-bottom: 1px solid rgba(143, 52, 83, .13);
	color: var(--rx3-burgundy-soft);
	font-size: clamp(.94rem, 1.35vw, 1.03rem);
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.review-v3 .rx3-review-highlights__item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.review-v3 .rx3-review-highlights__number {
	display: inline-flex;
	width: clamp(2.1rem, 3.8vw, 2.6rem);
	height: clamp(2.1rem, 3.8vw, 2.6rem);
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(180, 58, 101, .28);
	border-radius: 999px;
	background: rgba(237, 91, 145, .07);
	color: var(--rx3-rose-dark);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(.7rem, 1vw, .78rem);
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1;
}

.review-v3 .rx3-review-highlights__text {
	min-width: 0;
}

/* Editorial text inside media section. */
.review-v3 .single-article__content.entry-content {
	width: min(100%, 900px);
	margin: clamp(2rem, 4vw, 4rem) auto 0;
	padding: clamp(1.4rem, 3vw, 2.5rem);
	border-radius: 18px;
	background: var(--rx3-paper);
	color: var(--rx3-ink);
	font-size: 1rem;
	line-height: 1.95;
}

.review-v3 .single-article__content.entry-content h2,
.review-v3 .single-article__content.entry-content h3 {
	font-family: Georgia, "Yu Mincho", serif;
	letter-spacing: -.035em;
}

.review-v3 .single-article__content.entry-content h2 {
	font-size: clamp(1.7rem, 3vw, 2.6rem);
}

/* Video and gallery surfaces. */
.review-v3 .rx3-review-section.is-media iframe,
.review-v3 .rx3-review-section.is-media video,
.review-v3 .rx3-review-section.is-media .dkt-fanza-video,
.review-v3 .rx3-review-section.is-media .dkt-fanza-video iframe {
	max-width: 100%;
	border-radius: 16px;
	background: #000;
}

.review-v3 .rx3-review-section.is-media iframe,
.review-v3 .rx3-review-section.is-media .dkt-fanza-video iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
}

.review-v3 .rx3-review-section.is-media img {
	border-radius: 14px;
}

/* Keep plugin controls readable on the paper panels. */
.review-v3 .rx3-review-section__content a:not(.button):not([class*="cta"]),
.review-v3 .rx3-review-section__content button {
	max-width: 100%;
}

.review-v3 .rx3-review-section.is-membership a {
	color: inherit;
}

/* Situations / play / score: flatten legacy floating-card feeling. */
.review-v3 .rx3-review-section .play-bars,
.review-v3 .rx3-review-section .situation-bars,
.review-v3 .rx3-review-section .index-card,
.review-v3 .rx3-review-section .dekajiri-index,
.review-v3 .rx3-review-section .dc-highlights {
	margin-inline: 0;
	box-shadow: none;
}

/* --------------------------------------------------------------------------
 * Afterword / related / prev-next
 * ----------------------------------------------------------------------- */
.review-v3 .rx3-afterword {
	width: min(calc(100% - 3rem), var(--rx3-max));
	margin-inline: auto;
	padding: 0 0 clamp(6rem, 10vw, 10rem);
}

.review-v3 .rx3-terms {
	display: grid;
	grid-template-columns: 220px minmax(0,1fr);
	gap: 2rem;
	padding: 2rem 0;
	border-block: 1px solid var(--rx3-line);
}

.review-v3 .rx3-terms__title {
	margin: 0;
	color: var(--rx3-text-dim);
	font-size: .65rem;
	font-weight: 850;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.review-v3 .rx3-terms__list {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.review-v3 .rx3-term {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .45rem .7rem;
	border: 1px solid var(--rx3-line);
	border-radius: 999px;
	color: rgba(255,255,255,.68);
	font-size: .68rem;
	text-decoration: none;
}

.review-v3 .rx3-term.is-actress {
	border-color: rgba(237,91,145,.28);
	color: #ffabc8;
}

/* Optional article-closing editorial reaction. */
.review-v3 .rx3-footer-reaction {
	display: grid;
	grid-template-columns: clamp(132px, 15vw, 176px) minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: center;
	width: min(100%, 920px);
	min-width: 0;
	margin: clamp(3rem, 6vw, 5.5rem) auto;
}

.review-v3 .rx3-footer-reaction__character {
	position: relative;
	z-index: 1;
	width: 100%;
	margin: 0;
	padding: .45rem;
	border: 1px solid rgba(237, 91, 145, .32);
	border-radius: 28px;
	background:
		radial-gradient(circle at 50% 30%, rgba(237, 91, 145, .18), transparent 60%),
		#171419;
	box-shadow: 0 20px 46px rgba(0, 0, 0, .28);
}

.review-v3 .rx3-footer-reaction__image {
	display: block;
	width: 100%;
	height: clamp(132px, 15vw, 176px);
	border-radius: 21px;
	background: #211b20;
	object-fit: contain;
	object-position: center;
}

.review-v3 .rx3-footer-reaction__bubble {
	position: relative;
	min-width: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid #e0b8c6;
	border-radius: 24px;
	background: linear-gradient(145deg, #fffdf9, #fff0f4);
	color: var(--rx3-burgundy);
	box-shadow: 0 20px 46px rgba(0, 0, 0, .2);
}

.review-v3 .rx3-footer-reaction__bubble::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -9px;
	width: 16px;
	height: 16px;
	border-bottom: 1px solid #e0b8c6;
	border-left: 1px solid #e0b8c6;
	background: #fff8f8;
	transform: translateY(-50%) rotate(45deg);
}

.review-v3 .rx3-footer-reaction.is-bubble-left {
	grid-template-columns: minmax(0, 1fr) clamp(132px, 15vw, 176px);
}

.review-v3 .rx3-footer-reaction.is-bubble-left .rx3-footer-reaction__character {
	order: 2;
}

.review-v3 .rx3-footer-reaction.is-bubble-left .rx3-footer-reaction__bubble {
	order: 1;
}

.review-v3 .rx3-footer-reaction.is-bubble-left .rx3-footer-reaction__bubble::before {
	right: -9px;
	left: auto;
	border: 0;
	border-top: 1px solid #e0b8c6;
	border-right: 1px solid #e0b8c6;
}

.review-v3 .rx3-footer-reaction__eyebrow {
	margin: 0 0 .35rem;
	color: var(--rx3-rose-dark);
	font-size: .66rem;
	font-weight: 850;
	letter-spacing: .18em;
}

.review-v3 .rx3-footer-reaction__title {
	margin: 0;
	color: var(--rx3-burgundy);
	font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	line-height: 1.3;
}

.review-v3 .rx3-footer-reaction__comment {
	margin: .75rem 0 0;
	color: var(--rx3-rose-gray);
	font-size: clamp(.9rem, 1.5vw, 1rem);
	line-height: 1.85;
	overflow-wrap: anywhere;
}

.review-v3 .rx3-related {
	padding: clamp(4rem, 7vw, 7rem) 0;
}

.review-v3 .rx3-related__head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 2rem;
}

.review-v3 .rx3-related__eyebrow {
	margin: 0 0 .5rem;
	color: var(--rx3-accent);
	font-size: .63rem;
	font-weight: 850;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.review-v3 .rx3-related__title {
	margin: 0;
	font-family: Georgia, "Yu Mincho", serif;
	font-size: clamp(2.3rem, 4vw, 4.6rem);
	font-weight: 500;
	letter-spacing: -.05em;
}

.review-v3 .rx3-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0,1fr));
	gap: 1.2rem;
}

.review-v3 .rx3-related-card {
	position: relative;
	min-width: 0;
	border: 1px solid var(--rx3-line);
	border-radius: 18px;
	background: var(--rx3-panel);
	overflow: hidden;
}

.review-v3 .rx3-related-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #25242a;
}

.review-v3 .rx3-related-card__media img,
.review-v3 .rx3-related-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #25242a;
	transition: transform .4s ease;
}

.review-v3 .rx3-related-card:hover .rx3-related-card__media img {
	transform: scale(1.035);
}

.review-v3 .rx3-related-card__body {
	padding: 1rem;
}

.review-v3 .rx3-related-card__title {
	margin: 0;
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 1.15rem;
	line-height: 1.45;
}

.review-v3 .rx3-related-card__title a {
	text-decoration: none;
}

.review-v3 .rx3-related-card .dkjmf-card-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	margin-top: .9rem;
	padding-top: .8rem;
	border-top: 1px solid var(--rx3-line);
	font-size: .68rem;
}

.review-v3 .rx3-post-navigation {
	padding-top: 2rem;
	border-top: 1px solid var(--rx3-line);
}

.review-v3 .rx3-post-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 1rem;
}

.review-v3 .rx3-post-navigation .nav-previous,
.review-v3 .rx3-post-navigation .nav-next {
	min-width: 0;
}

.review-v3 .rx3-post-navigation a {
	display: grid;
	grid-template-columns: 120px minmax(0,1fr);
	gap: 1rem;
	align-items: center;
	min-height: 120px;
	padding: .8rem;
	border: 1px solid var(--rx3-line);
	border-radius: 16px;
	background: var(--rx3-panel);
	text-decoration: none;
}

.review-v3 .single-post-navigation__media {
	display: block;
	width: 120px;
	height: 88px;
	overflow: hidden;
	border-radius: 10px;
	background: #25242a;
}

.review-v3 .single-post-navigation__image,
.review-v3 .single-post-navigation__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #25242a;
}

.review-v3 .single-post-navigation__label {
	display: block;
	margin-bottom: .35rem;
	color: var(--rx3-accent);
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.review-v3 .single-post-navigation__title {
	display: block;
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 1.05rem;
	line-height: 1.45;
}

/* Article-end ranking banner */
.review-v3 .rx3-ranking-banner {
	width: min(calc(100% - 2rem), 400px);
	margin: 1.5rem auto 2.5rem;
}

.review-v3 .rx3-ranking-banner__link {
	display: block;
	width: 100%;
	border-radius: 20px;
	text-decoration: none;
	transition: transform .2s ease, opacity .2s ease;
}

.review-v3 .rx3-ranking-banner__link:hover,
.review-v3 .rx3-ranking-banner__link:focus-visible {
	transform: translateY(-2px);
	opacity: .94;
}

.review-v3 .rx3-ranking-banner__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 1;
	border-radius: 20px;
}

@media (max-width: 640px) {
	.review-v3 .rx3-ranking-banner {
		width: min(calc(100% - 2rem), 400px);
		margin-top: 1.1rem;
	}

	.review-v3 .rx3-ranking-banner__link,
	.review-v3 .rx3-ranking-banner__image {
		border-radius: 16px;
	}
}
