.entrance-future {
	--ef-ink: #564c47;
	--ef-muted: #7c716a;
	--ef-paper: #fcf8f1;
	--ef-rose: #b98791;
	--ef-blue: #778aa1;
	--ef-line: rgba(86, 76, 71, .16);
	width: 100%;
	overflow: hidden;
	padding: clamp(78px, 10vw, 148px) 24px 92px;
	color: var(--ef-ink);
	background:
		radial-gradient(circle at 14% 12%, rgba(228, 198, 179, .19), transparent 28%),
		radial-gradient(circle at 88% 38%, rgba(193, 208, 221, .2), transparent 26%),
		#fff;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", serif;
}

.entrance-future *,
.entrance-future *::before,
.entrance-future *::after { box-sizing: border-box; }

.entrance-future__header {
	width: min(760px, 100%);
	margin: 0 auto clamp(56px, 7vw, 88px);
	text-align: center;
}

.entrance-future__eyebrow,
.entrance-future__letter-kicker,
.entrance-future__stage,
.entrance-future__journey > span {
	margin: 0 0 18px;
	color: var(--ef-rose);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 12px;
	letter-spacing: .3em;
}

.entrance-future__title {
	margin: 0 0 28px;
	color: var(--ef-ink);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(32px, 5vw, 60px);
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: .06em;
}

.entrance-future__intro {
	margin: 0;
	color: var(--ef-muted);
	font-size: clamp(15px, 1.5vw, 18px);
	line-height: 2.15;
	letter-spacing: .06em;
}

.entrance-future__slider {
	position: relative;
	width: min(1080px, 100%);
	margin: 0 auto clamp(88px, 11vw, 156px);
}

.entrance-future__slides {
	position: relative;
	min-height: clamp(470px, 58vw, 650px);
	border: 1px solid rgba(101, 83, 72, .12);
	border-radius: 220px 220px 18px 18px;
	background:
		linear-gradient(155deg, rgba(255, 255, 255, .9), rgba(249, 241, 230, .92)),
		var(--ef-paper);
	box-shadow: 0 32px 85px rgba(72, 54, 43, .1);
}

.entrance-future__slides::before {
	position: absolute;
	inset: 22px;
	border: 1px solid rgba(185, 135, 145, .17);
	border-radius: inherit;
	content: "";
	pointer-events: none;
}

.entrance-future__slide {
	position: absolute;
	inset: 0;
	display: grid;
	visibility: hidden;
	align-items: center;
	padding: clamp(54px, 8vw, 110px);
	opacity: 0;
	transform: translateX(0);
	transition: opacity 1.25s ease, transform 1.25s ease, visibility 1.25s;
	pointer-events: none;
}

.entrance-future__slide.is-active {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.entrance-future__slide.is-entering,
.entrance-future__slide.is-leaving { visibility: visible; }
.entrance-future__slide.is-entering.from-right { transform: translateX(46px); }
.entrance-future__slide.is-entering.from-left { transform: translateX(-46px); }
.entrance-future__slide.is-leaving.to-left { opacity: 0; transform: translateX(-46px); }
.entrance-future__slide.is-leaving.to-right { opacity: 0; transform: translateX(46px); }

.entrance-future__slide-inner {
	width: min(670px, 100%);
	margin: auto;
	text-align: center;
}

.entrance-future__slide h3 {
	margin: 0 0 34px;
	color: var(--ef-ink);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(26px, 4vw, 46px);
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: .08em;
}

.entrance-future__slide p:last-child {
	margin: 0;
	color: #6b625d;
	font-size: clamp(16px, 2vw, 21px);
	line-height: 2.2;
	letter-spacing: .06em;
}

.entrance-future__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin-top: 28px;
}

.entrance-future__dots { display: flex; gap: 13px; }

.entrance-future__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(86, 76, 71, .22);
	transition: width .35s ease, border-radius .35s ease, background .35s ease;
	cursor: pointer;
}

.entrance-future__dot.is-active {
	width: 30px;
	border-radius: 999px;
	background: var(--ef-rose);
}

.entrance-future__arrow {
	position: relative;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--ef-line);
	border-radius: 50%;
	background: rgba(255, 255, 255, .78);
	cursor: pointer;
	transition: transform .3s ease, border-color .3s ease;
}

.entrance-future__arrow:hover { transform: translateY(-2px); border-color: var(--ef-rose); }
.entrance-future__arrow::before {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	border-top: 1px solid var(--ef-ink);
	border-right: 1px solid var(--ef-ink);
	content: "";
}
.entrance-future__arrow--prev::before { transform: translate(-35%, -50%) rotate(-135deg); }
.entrance-future__arrow--next::before { transform: translate(-65%, -50%) rotate(45deg); }

.entrance-future__letter,
.entrance-future__founder,
.entrance-future__closing {
	width: min(820px, 100%);
	margin-right: auto;
	margin-left: auto;
}

.entrance-future__disclosure {
	width: min(920px, 100%);
	margin: 0 auto;
}

.entrance-future__disclosure-summary {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 26px;
	align-items: center;
	padding: clamp(28px, 4vw, 42px);
	border: 1px solid rgba(185, 135, 145, .28);
	border-radius: 8px;
	background: linear-gradient(145deg, rgba(251, 244, 242, .96), rgba(255, 255, 255, .98));
	box-shadow: 0 18px 48px rgba(96, 69, 73, .08);
	list-style: none;
	cursor: pointer;
}

.entrance-future__disclosure-summary::-webkit-details-marker { display: none; }

.entrance-future__disclosure-icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid var(--ef-rose);
	border-radius: 50%;
	color: var(--ef-rose);
	font-family: Georgia, serif;
	font-size: 20px;
	font-style: italic;
}

.entrance-future__disclosure-copy strong {
	display: block;
	margin-bottom: 10px;
	color: var(--ef-ink);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(19px, 2.2vw, 25px);
	font-weight: 400;
	letter-spacing: .08em;
}

.entrance-future__disclosure-copy > span {
	display: block;
	color: var(--ef-muted);
	font-size: 14px;
	line-height: 1.95;
	letter-spacing: .04em;
}

.entrance-future__disclosure-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 150px;
	min-height: 48px;
	padding: 10px 22px;
	border: 1px solid var(--ef-rose);
	border-radius: 999px;
	color: var(--ef-rose);
	font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 13px;
	letter-spacing: .12em;
	transition: color .3s ease, background .3s ease, transform .3s ease;
}

.entrance-future__disclosure-summary:hover .entrance-future__disclosure-button {
	color: #fff;
	background: var(--ef-rose);
	transform: translateY(-2px);
}

.entrance-future__disclosure-close { display: none; }
.entrance-future__disclosure[open] .entrance-future__disclosure-open { display: none; }
.entrance-future__disclosure[open] .entrance-future__disclosure-close { display: inline; }

.entrance-future__disclosure-content {
	padding-top: clamp(76px, 10vw, 138px);
	animation: entranceFutureReveal 1.05s ease both;
}

@keyframes entranceFutureReveal {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: translateY(0); }
}

.entrance-future__letters {
	width: min(820px, 100%);
	margin: 0 auto clamp(90px, 12vw, 170px);
}

.entrance-future__letters-guide {
	margin: 0 0 28px;
	color: var(--ef-muted);
	font-size: 14px;
	letter-spacing: .08em;
	text-align: center;
}

.entrance-future__letter {
	width: 100%;
	margin: 0 0 16px;
	border: 1px solid rgba(185, 135, 145, .18);
	border-radius: 4px 34px 4px 34px;
	background: linear-gradient(145deg, #fbf4f2, #fff);
	box-shadow: 0 14px 40px rgba(111, 79, 83, .07);
	overflow: hidden;
}

.entrance-future__letter--thirties {
	border-color: rgba(119, 138, 161, .2);
	border-radius: 34px 4px 34px 4px;
	background: linear-gradient(145deg, #f3f6f8, #fff);
	box-shadow: 0 14px 40px rgba(76, 94, 115, .06);
}

.entrance-future__letter--all {
	border-color: rgba(164, 143, 101, .2);
	background: linear-gradient(145deg, #faf7ef, #fff);
}

.entrance-future__letter summary {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	min-height: 118px;
	padding: 28px clamp(26px, 5vw, 52px);
	list-style: none;
	cursor: pointer;
}

.entrance-future__letter summary::-webkit-details-marker { display: none; }

.entrance-future__letter summary .entrance-future__letter-kicker {
	grid-column: 1;
	margin: 0 0 8px;
}

.entrance-future__letter--thirties .entrance-future__letter-kicker { color: var(--ef-blue); }
.entrance-future__letter--all .entrance-future__letter-kicker { color: #a48f65; }

.entrance-future__letter summary strong {
	grid-column: 1;
	color: var(--ef-ink);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(21px, 2.7vw, 30px);
	font-weight: 400;
	letter-spacing: .08em;
}

.entrance-future__letter-toggle {
	position: relative;
	grid-row: 1 / 3;
	grid-column: 2;
	width: 42px;
	height: 42px;
	margin-left: 24px;
	border: 1px solid var(--ef-line);
	border-radius: 50%;
}

.entrance-future__letter-toggle::before,
.entrance-future__letter-toggle::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 13px;
	height: 1px;
	background: var(--ef-ink);
	content: "";
	transform: translate(-50%, -50%);
	transition: transform .35s ease;
}

.entrance-future__letter-toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.entrance-future__letter[open] .entrance-future__letter-toggle::after { transform: translate(-50%, -50%) rotate(0); }

.entrance-future__letter-body {
	padding: 0 clamp(26px, 5vw, 52px) clamp(36px, 5vw, 58px);
	animation: entranceFutureReveal .85s ease both;
}

.entrance-future__letter-body p {
	margin: 0;
	padding-top: 30px;
	border-top: 1px solid var(--ef-line);
	color: #68605b;
	font-size: clamp(15px, 1.6vw, 18px);
	line-height: 2.2;
	letter-spacing: .045em;
}

.entrance-future__letter h3,
.entrance-future__founder h3,
.entrance-future__closing h3 {
	margin: 0 0 32px;
	color: var(--ef-ink);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(27px, 3.7vw, 43px);
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: .08em;
}

.entrance-future__founder > p:not(.entrance-future__letter-kicker):not(.entrance-future__signature),
.entrance-future__closing > p:not(.entrance-future__final) {
	margin: 0;
	color: #68605b;
	font-size: clamp(15px, 1.6vw, 18px);
	line-height: 2.2;
	letter-spacing: .045em;
}

.entrance-future__founder {
	position: relative;
	margin-bottom: clamp(94px, 12vw, 170px);
	padding: clamp(54px, 8vw, 94px);
	border: 1px solid var(--ef-line);
	background: rgba(255, 255, 255, .82);
}

.entrance-future__founder::after {
	position: absolute;
	right: 22px;
	bottom: 22px;
	width: 44px;
	height: 44px;
	border-right: 1px solid var(--ef-rose);
	border-bottom: 1px solid var(--ef-rose);
	content: "";
}

.entrance-future__signature {
	margin: 32px 0 0;
	color: var(--ef-blue);
	font-family: Georgia, serif;
	font-size: 14px;
	letter-spacing: .18em;
	text-align: right;
}

.entrance-future__closing {
	text-align: center;
}

.entrance-future__closing > p:not(.entrance-future__final) {
	width: min(700px, 100%);
	margin: 0 auto;
}

.entrance-future__final {
	margin: clamp(58px, 8vw, 90px) 0 38px;
	color: var(--ef-ink);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(24px, 3.5vw, 39px);
	line-height: 1.8;
	letter-spacing: .1em;
}

.entrance-future__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: min(330px, 100%);
	min-height: 62px;
	padding: 16px 34px;
	border: 1px solid var(--ef-rose);
	border-radius: 999px;
	color: #fff !important;
	background: var(--ef-rose);
	font-size: 15px;
	letter-spacing: .13em;
	text-decoration: none !important;
	box-shadow: 0 14px 34px rgba(140, 91, 101, .2);
	transition: transform .35s ease, box-shadow .35s ease, background .35s ease;
}

.entrance-future__cta:hover {
	color: #fff !important;
	background: #a87882;
	transform: translateY(-3px);
	box-shadow: 0 19px 38px rgba(140, 91, 101, .25);
}

.entrance-future__journey {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	width: min(920px, 100%);
	margin: 120px auto 0;
	padding: 30px 36px;
	border-top: 1px solid var(--ef-line);
	border-bottom: 1px solid var(--ef-line);
	text-align: left;
}

.entrance-future__journey > span { grid-column: 1; margin-bottom: 7px; color: var(--ef-blue); }
.entrance-future__journey p { grid-column: 1; margin: 0; color: var(--ef-muted); font-size: 14px; letter-spacing: .04em; }
.entrance-future__journey a {
	grid-row: 1 / 3;
	grid-column: 2;
	margin-left: 30px;
	color: var(--ef-ink) !important;
	font-size: 14px;
	letter-spacing: .08em;
	text-decoration: none !important;
}
.entrance-future__journey a::after { margin-left: 12px; content: "→"; color: var(--ef-rose); }

@media (max-width: 767px) {
	.entrance-future { padding: 68px 18px 72px; }
	.entrance-future__header { margin-bottom: 48px; text-align: left; }
	.entrance-future__eyebrow { font-size: 10px; letter-spacing: .24em; }
	.entrance-future__title { margin-bottom: 22px; font-size: 32px; line-height: 1.55; }
	.entrance-future__intro { font-size: 15px; line-height: 2; }
	.entrance-future__slider { margin-bottom: 92px; }
	.entrance-future__slides {
		min-height: 510px;
		border-radius: 150px 150px 14px 14px;
	}
	.entrance-future__slides::before { inset: 12px; }
	.entrance-future__slide { align-items: center; padding: 78px 34px 48px; }
	.entrance-future__slide h3 { margin-bottom: 28px; font-size: 27px; }
	.entrance-future__slide p:last-child { font-size: 15px; line-height: 2.15; }
	.entrance-future__founder { padding: 45px 27px; }
	.entrance-future__letters { margin-bottom: 94px; }
	.entrance-future__letters-guide { text-align: left; }
	.entrance-future__letter { border-radius: 3px 28px 3px 28px; }
	.entrance-future__letter--thirties { border-radius: 28px 3px 28px 3px; }
	.entrance-future__letter summary { min-height: 104px; padding: 24px 22px; }
	.entrance-future__letter summary strong { font-size: 21px; }
	.entrance-future__letter-toggle { width: 38px; height: 38px; margin-left: 14px; }
	.entrance-future__letter-body { padding: 0 22px 34px; }
	.entrance-future__letter-body p { padding-top: 25px; font-size: 15px; line-height: 2.05; }
	.entrance-future__founder { margin-bottom: 94px; }
	.entrance-future__letter h3,
	.entrance-future__founder h3,
	.entrance-future__closing h3 { margin-bottom: 25px; font-size: 27px; }
	.entrance-future__founder > p:not(.entrance-future__letter-kicker):not(.entrance-future__signature),
	.entrance-future__closing > p:not(.entrance-future__final) {
		font-size: 15px;
		line-height: 2.05;
		text-align: left;
	}
	.entrance-future__final { margin: 56px 0 32px; font-size: 24px; line-height: 1.75; text-align: left; }
	.entrance-future__disclosure-summary {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
		padding: 30px 24px;
	}
	.entrance-future__disclosure-icon { width: 40px; height: 40px; }
	.entrance-future__disclosure-copy > span { font-size: 13px; line-height: 1.85; }
	.entrance-future__disclosure-button { width: 100%; }
	.entrance-future__disclosure-content { padding-top: 84px; }
	.entrance-future__journey {
		display: block;
		margin-top: 88px;
		padding: 27px 4px;
	}
	.entrance-future__journey a { display: inline-block; margin: 20px 0 0; }
}

@media (prefers-reduced-motion: reduce) {
	.entrance-future *,
	.entrance-future *::before,
	.entrance-future *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
