/* --------------------------------------------------------------------------
 * Managed ads & membership
 * ----------------------------------------------------------------------- */
.review-v3 .managed-ad {
	width: min(calc(100% - 3rem), var(--rx3-max));
	margin: 1rem auto;
}

.review-v3 .fanza-membership {
	border: 1px solid var(--rx3-line);
	border-radius: 18px;
	background: linear-gradient(135deg, #1e1218, #101014);
	color: #fff;
	box-shadow: none;
}

/* --------------------------------------------------------------------------
 * Footer
 * ----------------------------------------------------------------------- */
.review-v3 .site-footer.rx3-footer {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--rx3-line);
	background: #060607;
	color: var(--rx3-text);
}

.review-v3 .rx3-footer__inner {
	display: grid;
	grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr);
	gap: 3rem;
	width: min(calc(100% - 3rem), var(--rx3-max));
	margin-inline: auto;
	padding: clamp(4rem, 8vw, 8rem) 0 2rem;
}

.review-v3 .rx3-footer__eyebrow {
	margin: 0 0 .8rem;
	color: var(--rx3-accent);
	font-size: .64rem;
	font-weight: 850;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.review-v3 .rx3-footer__title {
	max-width: 10ch;
	margin: 0;
	font-family: Georgia, "Yu Mincho", serif;
	font-size: clamp(2.6rem, 5vw, 5.6rem);
	font-weight: 500;
	line-height: .94;
	letter-spacing: -.055em;
}

.review-v3 .rx3-footer__meta {
	display: grid;
	align-content: end;
	gap: 1rem;
}

.review-v3 .footer-legal-navigation {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem 1.1rem;
}

.review-v3 .footer-legal-navigation a {
	color: rgba(255,255,255,.76);
	font-size: .67rem;
	text-decoration: none;
}

.review-v3 .rx3-footer__copyright {
	margin: 0;
	color: rgba(255,255,255,.7);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .62rem;
	letter-spacing: .08em;
}

.review-v3 .rx3-footer__bottom {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 2rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--rx3-line);
	color: rgba(255,255,255,.32);
	font-size: .6rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}

/* --------------------------------------------------------------------------
 * Motion layer
 * ----------------------------------------------------------------------- */
.review-v3 [data-rx3-reveal] {
	opacity: 1;
	transform: none;
}

html.rx3-motion-ready .review-v3 [data-rx3-reveal] {
	opacity: 1;
	transform: translate3d(0, 14px, 0);
	transition: transform var(--rx3-motion-reveal) var(--rx3-ease-standard);
	transition-delay: var(--rx3-delay, 0ms);
}

html.rx3-motion-ready .review-v3 [data-rx3-reveal].is-visible {
	opacity: 1;
	transform: translate3d(0,0,0);
}

.review-v3 :focus-visible {
	outline: 3px solid rgba(237,91,145,.55);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
 * Mobile navigation
 * ----------------------------------------------------------------------- */
.review-v3 .rx3-mobile-menu {
	display: none;
}

/* --------------------------------------------------------------------------
 * Responsive
 * ----------------------------------------------------------------------- */
@media (max-width: 1100px) {
	body.review-v3 .site-header.rx3-site-header.is-scrolled {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.review-v3 .rx3-site-header__inner {
		grid-template-columns: minmax(0,1fr) auto;
	}

	.review-v3 .rx3-header__aside {
		grid-column: 2;
	}

	.review-v3 .primary-navigation.rx3-nav--desktop {
		display: none;
	}

	.review-v3 .rx3-mobile-menu {
		position: relative;
		display: block;
	}

	.review-v3 .rx3-mobile-menu > summary {
		list-style: none;
	}

	.review-v3 .rx3-mobile-menu > summary::-webkit-details-marker {
		display: none;
	}

	.review-v3 .rx3-mobile-menu .menu-toggle.rx3-menu-toggle {
		position: relative;
		z-index: 2202;
		display: inline-flex;
		min-width: 44px;
		min-height: 44px;
		cursor: pointer;
	}

	.review-v3 .rx3-mobile-menu.is-enhanced[open] > .menu-toggle.rx3-menu-toggle {
		z-index: 2100;
		pointer-events: none;
	}

	.review-v3 .rx3-mobile-menu[open] .menu-toggle__icon span:nth-child(1) {
		transform: translateY(5px) rotate(45deg);
	}

	.review-v3 .rx3-mobile-menu[open] .menu-toggle__icon span:nth-child(2) {
		opacity: 0;
	}

	.review-v3 .rx3-mobile-menu[open] .menu-toggle__icon span:nth-child(3) {
		transform: translateY(-5px) rotate(-45deg);
	}

	.review-v3 .rx3-mobile-menu__layer {
		position: fixed;
		z-index: 2150;
		inset: 0;
		display: flex;
		justify-content: flex-end;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 180ms cubic-bezier(.4,0,1,1), visibility 0s linear 180ms;
	}

	body.admin-bar.review-v3 .rx3-mobile-menu__layer {
		inset-block-start: var(--rx3-admin-bar-offset, 32px);
	}

	.review-v3 .rx3-mobile-menu__scrim {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		padding: 0;
		border: 0;
		background: rgba(3,3,5,.7);
		cursor: pointer;
	}

	.review-v3 .rx3-mobile-menu__panel {
		position: relative;
		display: flex;
		flex-direction: column;
		width: min(calc(100% - clamp(.75rem, 4vw, 3rem)), 46rem);
		height: 100vh;
		height: 100dvh;
		padding: max(1.25rem, env(safe-area-inset-top)) clamp(1.1rem, 5vw, 3.5rem) max(1.25rem, env(safe-area-inset-bottom));
		border-left: 1px solid rgba(237,91,145,.26);
		background-color: #09090b;
		background-image:
			linear-gradient(145deg, rgba(237,91,145,.1), transparent 34%),
			linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
			linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
		background-size: auto, 44px 44px, 44px 44px;
		box-shadow: -32px 0 80px rgba(0,0,0,.38);
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		opacity: 0;
		transform: translate3d(18px,0,0);
		transition: opacity 240ms cubic-bezier(.22,1,.36,1), transform 240ms cubic-bezier(.22,1,.36,1);
		-webkit-overflow-scrolling: touch;
		scrollbar-color: rgba(237,91,145,.45) transparent;
	}

	body.admin-bar.review-v3 .rx3-mobile-menu__panel {
		height: 100%;
	}

	.review-v3 .rx3-mobile-menu:not(.is-enhanced)[open] .rx3-mobile-menu__layer,
	.review-v3 .rx3-mobile-menu.is-enhanced.is-open .rx3-mobile-menu__layer {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transition-delay: 0s;
	}

	.review-v3 .rx3-mobile-menu:not(.is-enhanced)[open] .rx3-mobile-menu__panel,
	.review-v3 .rx3-mobile-menu.is-enhanced.is-open .rx3-mobile-menu__panel {
		opacity: 1;
		transform: translate3d(0,0,0);
	}

	.review-v3 .rx3-mobile-menu.is-enhanced.is-closing .rx3-mobile-menu__layer {
		visibility: visible;
		pointer-events: none;
	}

	.review-v3 .rx3-mobile-menu.is-enhanced.is-closing .rx3-mobile-menu__panel {
		transition-duration: 180ms;
	}

	.review-v3 .rx3-mobile-menu:not([open]) > .rx3-mobile-menu__layer {
		display: none;
	}

	.review-v3 .rx3-mobile-menu__header {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		gap: 1rem;
		padding-bottom: clamp(1.5rem, 5vh, 3rem);
		border-bottom: 1px solid rgba(255,255,255,.1);
	}

	.review-v3 .rx3-mobile-menu__header p {
		display: grid;
		gap: .35rem;
		margin: 0;
	}

	.review-v3 .rx3-mobile-menu__header p span,
	.review-v3 .rx3-mobile-menu__foot {
		color: var(--rx3-accent);
		font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
		font-size: .62rem;
		font-weight: 800;
		letter-spacing: .18em;
		text-transform: uppercase;
	}

	.review-v3 .rx3-mobile-menu__header p strong {
		color: rgba(255,255,255,.72);
		font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
		font-size: clamp(1rem, 3vw, 1.25rem);
		font-weight: 500;
	}

	.review-v3 .rx3-mobile-menu__close {
		display: none;
		place-items: center;
		width: 44px;
		height: 44px;
		flex: 0 0 auto;
		padding: 0;
		border: 1px solid rgba(255,255,255,.18);
		border-radius: 50%;
		background: rgba(255,255,255,.04);
		color: #fff;
		font-size: 1.45rem;
		line-height: 1;
		cursor: pointer;
		transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
	}

	.review-v3 .rx3-mobile-menu.is-enhanced .rx3-mobile-menu__close {
		display: inline-grid;
	}

	.review-v3 .rx3-mobile-menu__primary,
	.review-v3 .rx3-mobile-menu__submenu {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.review-v3 .rx3-mobile-menu__primary {
		margin-block: auto;
		padding-block: clamp(1rem, 3vh, 2rem);
	}

	.review-v3 .rx3-mobile-menu__direct,
	.review-v3 .rx3-mobile-menu__group {
		margin: 0;
		border-bottom: 1px solid rgba(255,255,255,.1);
	}

	.review-v3 .rx3-mobile-menu__direct > a,
	.review-v3 .rx3-mobile-menu__group > button {
		display: grid;
		grid-template-columns: 2rem minmax(0,1fr) 2rem;
		align-items: center;
		gap: clamp(.55rem, 2vw, 1rem);
		width: 100%;
		min-height: clamp(4.5rem, 10vh, 6.25rem);
		padding: .8rem 0;
		border: 0;
		background: transparent;
		color: #fff8fa;
		font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
		font-size: clamp(1.75rem, 6.5vw, 3.35rem);
		font-weight: 500;
		line-height: 1.08;
		letter-spacing: -.04em;
		text-align: left;
		text-decoration: none;
		cursor: pointer;
		transition: color 180ms ease, opacity 180ms ease, transform 180ms ease;
	}

	.review-v3 .rx3-mobile-menu__number {
		align-self: start;
		padding-top: .25rem;
		color: var(--rx3-accent);
		font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
		font-size: .62rem;
		font-weight: 800;
		letter-spacing: .1em;
	}

	.review-v3 .rx3-mobile-menu__arrow,
	.review-v3 .rx3-mobile-menu__group-icon {
		justify-self: end;
		color: var(--rx3-accent);
		font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
		font-size: 1.1rem;
		font-weight: 500;
		line-height: 1;
		transition: transform 180ms ease;
	}

	.review-v3 .rx3-mobile-menu__group.is-active > button .rx3-mobile-menu__group-icon {
		transform: rotate(45deg);
	}

	.review-v3 .rx3-mobile-menu__panel.has-active-group .rx3-mobile-menu__group:not(.is-active) > button {
		opacity: .48;
	}

	.review-v3 .rx3-mobile-menu__submenu {
		display: grid;
		gap: .2rem;
		padding: .15rem 0 1.1rem 2.55rem;
	}

	.review-v3 .rx3-mobile-menu__submenu[hidden] {
		display: none;
	}

	.review-v3 .rx3-mobile-menu__submenu a {
		display: grid;
		grid-template-columns: minmax(0,1fr) auto;
		align-items: center;
		gap: 1rem;
		min-height: 44px;
		padding: .55rem 0;
		border: 0;
		color: rgba(255,248,250,.72);
		font-size: clamp(.82rem, 2.4vw, 1rem);
		font-weight: 700;
		letter-spacing: .04em;
		text-decoration: none;
		transition: color 160ms ease, transform 160ms ease;
	}

	.review-v3 .rx3-mobile-menu__submenu a > span:last-child {
		color: var(--rx3-accent);
	}

	.review-v3 .rx3-mobile-menu a[aria-current="page"] {
		color: #ff91b8;
	}

	.review-v3 .rx3-mobile-menu a[aria-current="page"]::before {
		position: absolute;
		top: 50%;
		left: 0;
		width: 3px;
		height: 1.2rem;
		border-radius: 999px;
		background: var(--rx3-accent);
		content: "";
		transform: translate3d(-.75rem,-50%,0);
	}

	.review-v3 .rx3-mobile-menu__direct > a,
	.review-v3 .rx3-mobile-menu__submenu a {
		position: relative;
	}

	.review-v3 .rx3-mobile-menu.is-enhanced .rx3-mobile-menu__submenu:not([hidden]) > li {
		animation: rx3-mobile-menu-item-in 210ms cubic-bezier(.22,1,.36,1) both;
	}

	.review-v3 .rx3-mobile-menu.is-enhanced .rx3-mobile-menu__submenu:not([hidden]) > li:nth-child(2) { animation-delay: 24ms; }
	.review-v3 .rx3-mobile-menu.is-enhanced .rx3-mobile-menu__submenu:not([hidden]) > li:nth-child(3) { animation-delay: 48ms; }
	.review-v3 .rx3-mobile-menu.is-enhanced .rx3-mobile-menu__submenu:not([hidden]) > li:nth-child(n+4) { animation-delay: 72ms; }

	.review-v3 .rx3-mobile-menu__foot {
		margin: clamp(1rem, 4vh, 2rem) 0 0;
		padding-top: 1rem;
		border-top: 1px solid rgba(255,255,255,.08);
		color: rgba(255,255,255,.34);
	}

	html.menu-is-open,
	body.review-v3.menu-is-open {
		overflow: hidden;
		overscroll-behavior: none;
	}

	@keyframes rx3-mobile-menu-item-in {
		from { opacity: 0; transform: translate3d(8px,0,0); }
		to { opacity: 1; transform: translate3d(0,0,0); }
	}

	@media (hover: hover) and (pointer: fine) {
		.review-v3 .rx3-mobile-menu__direct > a:hover,
		.review-v3 .rx3-mobile-menu__group > button:hover {
			color: #ffb3ce;
			transform: translate3d(4px,0,0);
		}

		.review-v3 .rx3-mobile-menu__submenu a:hover {
			color: #fff;
			transform: translate3d(4px,0,0);
		}

		.review-v3 .rx3-mobile-menu__close:hover {
			border-color: rgba(237,91,145,.8);
			background: rgba(237,91,145,.12);
			transform: rotate(4deg);
		}
	}

	.review-v3 .rx3-review-card {
		grid-column: span 6;
	}

	.review-v3 .rx3-review-card.is-featured {
		grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
	}

	.review-v3 .rx3-single-layout {
		grid-template-columns: 1fr;
	}

	.review-v3 .rx3-chapter-nav {
		position: static;
		display: flex;
		gap: .35rem;
		overflow-x: auto;
		padding-bottom: .5rem;
		scrollbar-width: none;
	}

	.review-v3 .rx3-chapter-nav::-webkit-scrollbar { display: none; }
	.review-v3 .rx3-chapter-nav__label { display: none; }

	.review-v3 .rx3-chapter-nav a {
		flex: 0 0 auto;
		display: inline-flex;
		align-items: center;
		gap: .35rem;
		min-height: 44px;
		padding: .55rem .7rem;
		border: 1px solid var(--rx3-line);
		border-radius: 999px;
	}
}

@media (max-width: 1100px) {
	.review-v3 .footer-legal-navigation a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

@media (max-width: 820px) {
	.review-v3 .rx3-site-header__inner,
	.review-v3 .rx3-hero__inner,
	.review-v3 .rx3-reviews__inner,
	.review-v3 .rx3-home-extras__inner,
	.review-v3 .rx3-single-layout,
	.review-v3 .rx3-afterword,
	.review-v3 .rx3-footer__inner {
		width: min(calc(100% - 2rem), var(--rx3-max));
	}

	.review-v3 .rx3-brand__edition,
	.review-v3 .rx3-header__index {
		display: none;
	}

	.review-v3 .rx3-hero {
		min-height: max(780px, 100svh);
	}

	.review-v3 .rx3-hero__inner {
		grid-template-columns: 1fr;
		gap: 2.2rem;
		padding-top: 9rem;
	}

	.review-v3 .rx3-hero__rail {
		max-width: 520px;
	}

	.review-v3 .rx3-hero__notice {
		position: static;
		max-width: none;
		margin-top: 1rem;
		text-align: left;
	}

	.review-v3 .rx3-section-head {
		grid-template-columns: 1fr;
		gap: .8rem;
	}

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

	.review-v3 .rx3-review-card,
	.review-v3 .rx3-review-card.is-featured {
		grid-column: 1 / -1;
	}

	.review-v3 .rx3-review-card.is-featured {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.review-v3 .rx3-review-card.is-featured .rx3-review-card__media {
		aspect-ratio: 16 / 10;
	}

	.review-v3 .rx3-review-card.is-featured .rx3-review-card__body {
		min-height: 340px;
	}

	.review-v3 .rx3-single-hero {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.review-v3 .rx3-single-hero__media {
		min-height: 0;
	}

	.review-v3 .rx3-single-hero__media::after {
		background: linear-gradient(0deg, rgba(5,5,6,.72), transparent 52%);
	}

	.review-v3 .rx3-single-hero__copy {
		min-height: 520px;
		padding-top: 3rem;
	}

	.review-v3 .rx3-terms {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.review-v3 .rx3-related__grid {
		grid-template-columns: 1fr;
	}

	.review-v3 .rx3-post-navigation .nav-links {
		grid-template-columns: 1fr;
	}

	.review-v3 .rx3-footer__inner {
		grid-template-columns: 1fr;
	}

	.review-v3 .rx3-footer__bottom {
		grid-column: auto;
	}
}

@media (max-width: 520px) {
	.review-v3 .rx3-site-header__inner {
		min-height: 72px;
	}

	.review-v3 .rx3-brand .custom-logo {
		max-width: 180px;
		max-height: 36px;
	}

	.review-v3 .rx3-hero {
		min-height: max(720px, 100svh);
	}

	.review-v3 .rx3-hero__inner {
		padding: 7rem 0 2.4rem;
	}

	.review-v3 .rx3-hero__title {
		font-size: clamp(3.6rem, 18vw, 5.4rem);
	}

	.review-v3 .rx3-hero__rail {
		padding-left: 1rem;
	}

	.review-v3 .rx3-review-grid {
		display: block;
	}

	.review-v3 .rx3-review-card,
	.review-v3 .rx3-review-card.is-featured {
		margin-bottom: 1rem;
	}

	.review-v3 .rx3-review-card.is-featured .rx3-review-card__body {
		min-height: 0;
		padding: 1.4rem;
	}

	.review-v3 .rx3-review-card.is-featured .rx3-review-card__title {
		width: 100%;
		max-width: none;
		font-size: clamp(2rem, 8.5vw, 2.85rem);
		line-height: 1.08;
		letter-spacing: -.03em;
		text-wrap: pretty;
	}

	.review-v3 .rx3-review-card:not(.is-featured) {
		grid-template-columns: 42% 58%;
		display: grid;
	}

	.review-v3 .rx3-review-card:not(.is-featured) .rx3-review-card__media {
		aspect-ratio: auto;
		height: 100%;
	}

	.review-v3 .rx3-review-card:not(.is-featured) .rx3-review-card__body {
		padding: 1rem;
	}

	.review-v3 .rx3-review-card:not(.is-featured) .rx3-review-card__title {
		font-size: 1.12rem;
		overflow-wrap: anywhere;
	}

	.review-v3 .rx3-review-card:not(.is-featured) .rx3-review-card__actions {
		padding-top: .7rem;
	}

	.review-v3 .rx3-single-hero__media {
		min-height: 0;
	}

	.review-v3 .rx3-single-hero__copy {
		min-height: 0;
		padding: 2rem 1rem 2.6rem;
	}

	.review-v3 .rx3-single-hero__title {
		width: 100%;
		max-width: none;
		font-size: clamp(2.25rem, 9vw, 3.35rem);
		line-height: 1.08;
		letter-spacing: -.03em;
		text-wrap: pretty;
	}

	.review-v3 .rx3-single-layout,
	.review-v3 .rx3-afterword {
		width: calc(100% - 1rem);
	}

	.review-v3 .rx3-review-section__content {
		padding: 1rem;
		border-radius: 16px;
	}

	.review-v3 .rx3-review-section.is-media .rx3-review-section__content {
		padding: .6rem;
	}

	.review-v3 .rx3-post-navigation a {
		grid-template-columns: 86px minmax(0,1fr);
		min-height: 100px;
	}

	.review-v3 .single-post-navigation__media {
		width: 86px;
		height: 70px;
	}

	.review-v3 .rx3-footer__inner {
		width: calc(100% - 2rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	.review-v3 *,
	.review-v3 *::before,
	.review-v3 *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}

	.review-v3 [data-rx3-reveal] {
		opacity: 1 !important;
		transform: none !important;
	}

	.review-v3 .rx3-hero__media img {
		transform: scale(1.02) !important;
	}
}

/* The fixed header overlays the home hero only. Inner pages start below it. */
body.review-v3:not(.home) {
	padding-top: 84px;
}

body.admin-bar.review-v3:not(.home) {
	padding-top: 116px;
}

body.review-v3:not(.home) .rx3-brand__fallback a,
body.review-v3:not(.home) .menu-toggle.rx3-menu-toggle {
	color: #fff8fa;
}

body.review-v3:not(.home) .menu-toggle.rx3-menu-toggle {
	border-color: rgba(255, 255, 255, .25);
}

body.review-v3:not(.home) .primary-navigation.rx3-nav a {
	color: rgba(255, 248, 250, .82);
}

body.review-v3:not(.home) .primary-navigation.rx3-nav .current-menu-item > a,
body.review-v3:not(.home) .primary-navigation.rx3-nav .current_page_item > a,
body.review-v3:not(.home) .primary-navigation.rx3-nav .current-menu-ancestor > a {
	color: #ff91b8;
}

body.review-v3:not(.home) .rx3-brand__fallback a:hover,
body.review-v3:not(.home) .rx3-brand__fallback a:focus-visible,
body.review-v3:not(.home) .primary-navigation.rx3-nav a:hover,
body.review-v3:not(.home) .primary-navigation.rx3-nav a:focus-visible {
	color: #fff;
}

body.admin-bar.review-v3 .site-header.rx3-site-header {
	top: 32px;
}
