@charset "UTF-8";
/* ==========================================================================
   視える人の話。 トップページ専用スタイル「瑞月空の夜の部屋」（2026-09-16・10点版）

   ★スコープの注意★
   SWELLは body_class() の出力を <body> ではなく <div id="body_wrap"> に付ける。
   なので `body.mf-front` と書くと一切マッチしない（1度これで背景が白のままになった）。
   必ず `.mf-front` と書くこと。#body_wrap にこのクラスが付く。
   .is-night / .is-return / .is-heavy は mieru-front.js が <html> に付ける。

   このファイルは front-page.php の中でのみ読み込まれる＝トップ1ページ目だけ。
   だから html / body への直指定も安全（他ページには読み込まれない）。

   配色は「夜の観測所」プラグイン(mieru-yoru.css)のブランド色に合わせている。
     夜の紫 #241f3d ／ 月の金 #f2e8c4 ／ ラベンダー #8b7bb8
   正本のモックアップ：テーマ開発\トップページ_10点版モックアップ.html
   ========================================================================== */

/* オーバースクロール時に白がのぞかないように */
html,
body {
	background-color: #0d1024;
}

:root,
.mf-front {
	/* 夜空 */
	--mf-sky-1: #0d1024;
	--mf-sky-2: #161834;
	--mf-sky-3: #241f3d;
	/* 面 */
	--mf-panel: #171a30;
	--mf-panel-2: #1f2140;
	--mf-panel-hi: #262a4d;
	/* 線 */
	--mf-line: rgba(242, 232, 196, 0.14);
	--mf-line-soft: rgba(242, 232, 196, 0.07);
	/* 月の金 */
	--mf-gold: #e8d9a8;
	--mf-gold-hi: #f2e8c4;
	/* 藤 */
	--mf-lav: #b3a8d6;
	/* 杏（話す） */
	--mf-apricot: #e9b48c;
	/* 文字（控えめ文字も読める明るさに：編集長指摘 2026-09-15） */
	--mf-text: #eeebf4;
	--mf-dim: #c9c4de;
	--mf-faint: #a29cbf;

	--mf-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Shippori Mincho", serif;
	--mf-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;

	--mf-radius: 14px;
	--mf-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--mf-wrap: 1180px;
}

.mf-front {
	background-color: var(--mf-sky-1);
	color: var(--mf-text);
	font-family: var(--mf-sans);
}

/* SWELLのメインビジュアルはこの部屋には無い */
.mf-front .p-mainVisual {
	display: none !important;
}

/* SWELLの白い枠・影を無効化（トップだけ） */
.mf-front #content,
.mf-front .l-content,
.mf-front #main_content,
.mf-front .l-mainContent,
.mf-front .l-mainContent__inner {
	background: transparent;
	box-shadow: none;
	border: none;
}
/* SWELLの #content は 64px/48px の余白と max-width:1296px を持っている。
   これを外さないとヒーローが左右48px内側に入り、上に隙間ができる（実物で確認済み）。
   横幅の管理は .mf-wrap 側で行う。 */
.mf-front #content.l-content {
	padding-top: 0;
	padding-left: 0;
	padding-right: 0;
	max-width: 100%;
	margin-bottom: 0;
}
.mf-front .l-mainContent {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}
.mf-front .l-mainContent__inner {
	padding: 0;
	max-width: 100%;
}
.mf-front .p-breadcrumb {
	display: none;
}

/* --------------------------------------------------------------------------
   ヘッダー（トップだけ夜色に）
   -------------------------------------------------------------------------- */
.mf-front .l-header,
.mf-front .l-header__bar,
.mf-front .l-header__inner,
.mf-front .l-header__gnav,
.mf-front .c-gnavWrap {
	background-color: transparent;
	box-shadow: none;
}
.mf-front .l-header {
	background-color: var(--mf-sky-1);
	border-bottom: 1px solid var(--mf-line-soft);
}
.mf-front .l-header__bar {
	background-color: rgba(0, 0, 0, 0.18);
}
.mf-front .c-headLogo__link,
.mf-front .c-headLogo,
.mf-front .l-header a,
.mf-front .l-header button,
.mf-front .c-gnav > li > a {
	color: var(--mf-text);
}
.mf-front .c-headLogo__link {
	font-family: var(--mf-serif);
	letter-spacing: 0.08em;
}
.mf-front .c-gnav > li > a .ttl {
	color: var(--mf-text);
}
.mf-front .c-gnav > li > a:hover .ttl {
	color: var(--mf-gold-hi);
}
.mf-front .c-gnav .sub-menu {
	background: var(--mf-panel-2);
	border: 1px solid var(--mf-line-soft);
}
.mf-front .c-gnav .sub-menu a {
	color: var(--mf-text);
}
.mf-front .l-header__menuBtn,
.mf-front .c-iconBtn {
	color: var(--mf-text);
}
.mf-front .c-iconBtn__icon {
	color: inherit;
}

/* --------------------------------------------------------------------------
   共通
   -------------------------------------------------------------------------- */
.mf {
	overflow-x: clip;
	font-size: 15px;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
}
.mf *,
.mf *::before,
.mf *::after {
	box-sizing: border-box;
}
.mf a {
	color: inherit;
}
.mf button {
	font: inherit;
	color: inherit;
	cursor: pointer;
}
.mf-wrap {
	max-width: var(--mf-wrap);
	margin: 0 auto;
	padding-inline: clamp(16px, 3vw, 32px);
}
.mf h2,
.mf h3 {
	border: 0;
	background: none;
	padding: 0;
}
.mf h2::before,
.mf h2::after,
.mf h3::before,
.mf h3::after {
	display: none;
}
.mf .mf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none;
	border: 1px solid var(--mf-gold);
	color: var(--mf-gold-hi);
	background: transparent;
	border-radius: 999px;
	padding: 10px 20px;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.4;
	transition: background 0.2s;
}
.mf .mf-btn:hover {
	background: rgba(242, 232, 196, 0.1);
	color: var(--mf-gold-hi);
}
.mf .mf-btn--solid {
	background: var(--mf-gold-hi);
	color: var(--mf-sky-1);
	font-weight: 700;
}
.mf .mf-btn--solid:hover {
	background: var(--mf-gold);
	color: var(--mf-sky-1);
}
.mf-pr {
	font-size: 0.66rem;
	letter-spacing: 0.14em;
	color: var(--mf-faint);
	border: 1px solid var(--mf-line-soft);
	border-radius: 4px;
	padding: 1px 6px;
}
.mf :focus-visible {
	outline: 2px solid var(--mf-gold-hi);
	outline-offset: 3px;
}

/* 昼／深夜（23〜4時）の出し分け。.is-night は JS が <html> に付ける */
.mf-night-only {
	display: none;
}
.is-night .mf-night-only {
	display: block;
}
.is-night .mf-day-only {
	display: none;
}

/* --------------------------------------------------------------------------
   ヒーロー
   -------------------------------------------------------------------------- */
.mf-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(1200px 520px at 20% -10%, rgba(139, 123, 184, 0.22), transparent 60%),
		radial-gradient(900px 500px at 90% 20%, rgba(242, 232, 196, 0.08), transparent 55%),
		linear-gradient(180deg, var(--mf-sky-1) 0%, var(--mf-sky-2) 100%);
}
.is-night .mf-hero {
	background:
		radial-gradient(900px 420px at 18% 0%, rgba(139, 123, 184, 0.12), transparent 60%),
		linear-gradient(180deg, #0a0c1c, var(--mf-sky-1));
}
.mf-hero__stars {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		radial-gradient(1.2px 1.2px at 12% 22%, rgba(242, 232, 196, 0.9), transparent 60%),
		radial-gradient(1px 1px at 28% 68%, rgba(242, 232, 196, 0.6), transparent 60%),
		radial-gradient(1.4px 1.4px at 44% 14%, rgba(242, 232, 196, 0.8), transparent 60%),
		radial-gradient(1px 1px at 61% 48%, rgba(242, 232, 196, 0.5), transparent 60%),
		radial-gradient(1.3px 1.3px at 73% 78%, rgba(242, 232, 196, 0.7), transparent 60%),
		radial-gradient(1px 1px at 86% 30%, rgba(242, 232, 196, 0.6), transparent 60%),
		radial-gradient(1.1px 1.1px at 93% 62%, rgba(242, 232, 196, 0.5), transparent 60%);
	opacity: 0.8;
}
.mf-hero__in {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
	gap: clamp(28px, 5vw, 64px);
	align-items: center;
	padding-block: clamp(48px, 7vw, 88px);
}
.mf-hero__eyebrow {
	font-size: 0.72rem;
	letter-spacing: 0.32em;
	color: var(--mf-gold);
	margin: 0 0 18px;
}
.mf-hero__ttl {
	font-family: var(--mf-serif);
	font-weight: 600;
	font-size: clamp(1.75rem, 3.4vw, 2.9rem);
	line-height: 1.45;
	letter-spacing: 0.04em;
	margin: 0 0 20px;
	color: var(--mf-text);
	text-wrap: balance;
}
.mf-hero__ttl em {
	font-style: normal;
	color: var(--mf-gold-hi);
}
.mf-hero__lead {
	margin: 0 0 28px;
	color: var(--mf-dim);
	font-size: 1.02rem;
	max-width: 34em;
}
.mf .mf-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--mf-gold-hi);
	color: var(--mf-sky-1);
	border: 0;
	border-radius: 999px;
	padding: 13px 24px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	transition: transform 0.25s var(--mf-ease), box-shadow 0.25s;
}
.mf .mf-hero__cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 30px rgba(242, 232, 196, 0.22);
	color: var(--mf-sky-1);
}
.mf-hero__sub {
	margin: 12px 0 0;
	font-size: 0.86rem;
	color: var(--mf-dim);
}
.mf-hero__moon {
	justify-self: center;
	width: min(300px, 70%);
	filter: drop-shadow(0 0 40px rgba(242, 232, 196, 0.18));
}
.mf-hero__moon svg {
	width: 100%;
	height: auto;
	display: block;
}
.mf-night-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.74rem;
	letter-spacing: 0.2em;
	color: var(--mf-gold);
	border: 1px solid var(--mf-line);
	border-radius: 999px;
	padding: 5px 12px;
	margin-bottom: 16px;
}
.mf-night-tag i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--mf-gold-hi);
	box-shadow: 0 0 10px var(--mf-gold-hi);
}

/* 2回目の人への声かけ（.is-return は JS が付ける） */
.mf-return {
	background: rgba(242, 232, 196, 0.06);
	border: 1px solid var(--mf-line);
	border-radius: var(--mf-radius);
	padding: 16px 18px;
	margin: 0 0 24px;
}
.mf-return[hidden] {
	display: none;
}
.mf-return p {
	margin: 0 0 10px;
	font-family: var(--mf-serif);
	font-size: 1.02rem;
}
.mf-return small {
	display: block;
	color: var(--mf-dim);
	font-size: 0.78rem;
	margin-bottom: 10px;
}
.mf-return__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.mf-chip {
	background: transparent;
	border: 1px solid var(--mf-line);
	border-radius: 999px;
	padding: 7px 14px;
	font-size: 0.84rem;
	color: var(--mf-text);
	transition: background 0.2s, border-color 0.2s;
}
.mf-chip:hover,
.mf-chip[aria-pressed="true"] {
	background: rgba(242, 232, 196, 0.12);
	border-color: var(--mf-gold);
}

/* --------------------------------------------------------------------------
   共通セクション（部ごとに空の色を変える：上から夜が深まり、最後に明ける）
   -------------------------------------------------------------------------- */
.mf-sec {
	padding-block: clamp(48px, 7vw, 84px);
	position: relative;
}
.mf-sec::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(242, 232, 196, 0.22), transparent);
}
.mf-sec--feel {
	background:
		radial-gradient(1000px 500px at 50% -10%, rgba(139, 123, 184, 0.2), transparent 60%),
		linear-gradient(180deg, #141733, #1a1c3a);
}
.mf-sec--wall {
	background:
		radial-gradient(900px 500px at 50% 50%, rgba(139, 123, 184, 0.16), transparent 65%),
		#0a0c1c;
}
.mf-sec--exits {
	background: linear-gradient(180deg, #161834, #1c1e3e);
}
.mf-sec--sora {
	background:
		radial-gradient(800px 420px at 85% 50%, rgba(242, 232, 196, 0.1), transparent 60%),
		linear-gradient(180deg, #241f3d, #2b2447);
}
.mf-sec--who {
	background: linear-gradient(180deg, #141733, #0d1024);
}
.mf-sec__head {
	margin-bottom: clamp(24px, 3vw, 36px);
}
.mf-sec__orn {
	display: block;
	width: 34px;
	height: 1px;
	background: var(--mf-gold);
	margin-bottom: 14px;
	position: relative;
}
.mf-sec__orn::after {
	content: "";
	position: absolute;
	left: 14px;
	top: -3px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--mf-gold-hi);
}
.mf-sec__ttl {
	font-family: var(--mf-serif);
	font-weight: 600;
	font-size: clamp(1.35rem, 2.6vw, 1.9rem);
	margin: 0 0 8px;
	letter-spacing: 0.04em;
	color: var(--mf-text);
	text-wrap: balance;
}
.mf-sec__sub {
	margin: 0;
	color: var(--mf-dim);
	font-size: 0.9rem;
}

/* --------------------------------------------------------------------------
   気持ちの扉
   -------------------------------------------------------------------------- */
.mf-feel {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.mf-feel__btn {
	text-align: left;
	background: rgba(13, 16, 36, 0.55);
	border: 1px solid var(--mf-line-soft);
	border-radius: var(--mf-radius);
	padding: 22px 20px 18px;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 16px;
	row-gap: 2px;
	align-items: center;
	position: relative;
	overflow: hidden;
	color: var(--mf-text);
	transition: transform 0.3s var(--mf-ease), border-color 0.3s, background 0.3s;
}
.mf-feel__btn::before {
	content: "";
	position: absolute;
	inset: auto -30% -50% auto;
	width: 60%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(242, 232, 196, 0.14), transparent 65%);
	opacity: 0;
	transition: opacity 0.4s;
}
.mf-feel__btn:hover,
.mf-feel__btn[aria-pressed="true"] {
	transform: translateY(-3px);
	border-color: var(--mf-gold);
	background: var(--mf-panel-2);
}
.mf-feel__btn:hover::before,
.mf-feel__btn[aria-pressed="true"]::before {
	opacity: 1;
}
.mf-feel__icon {
	grid-row: 1 / 3;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: var(--mf-gold-hi);
	background: radial-gradient(circle, rgba(242, 232, 196, 0.16), rgba(242, 232, 196, 0.04));
	border: 1px solid var(--mf-line);
	transition: background 0.3s, color 0.3s;
}
.mf-feel__icon svg {
	width: 30px;
	height: 30px;
}
.mf-feel__btn:hover .mf-feel__icon,
.mf-feel__btn[aria-pressed="true"] .mf-feel__icon {
	background: var(--mf-gold-hi);
	color: var(--mf-sky-1);
}
.mf-feel__word {
	font-family: var(--mf-serif);
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.3;
}
.mf-feel__meta {
	font-size: 0.72rem;
	color: var(--mf-faint);
	letter-spacing: 0.1em;
}
.mf-feel__meta.is-new {
	color: var(--mf-gold);
}

/* 3回タップ */
.mf-flow {
	margin-top: 26px;
	background: var(--mf-panel);
	border: 1px solid var(--mf-line);
	border-radius: 18px;
	padding: clamp(20px, 3vw, 34px);
	display: none;
	scroll-margin-top: 80px;
}
.mf-flow.is-open {
	display: block;
}
.mf-flow__step {
	display: none;
}
.mf-flow__step.is-on {
	display: block;
}
.mf-flow__q {
	font-family: var(--mf-serif);
	font-size: 1.15rem;
	margin: 0 0 6px;
	font-weight: 600;
}
.mf-flow__who {
	font-size: 0.8rem;
	color: var(--mf-dim);
	margin: 0 0 16px;
}
.mf-flow__opts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.mf-opt {
	background: var(--mf-panel-2);
	border: 1px solid var(--mf-line-soft);
	border-radius: 999px;
	padding: 10px 18px;
	font-size: 0.92rem;
	color: var(--mf-text);
	transition: border-color 0.2s, background 0.2s;
}
.mf-opt:hover {
	border-color: var(--mf-gold);
	background: var(--mf-panel-hi);
}
.mf-flow__back {
	margin-top: 16px;
	background: none;
	border: 0;
	color: var(--mf-faint);
	font-size: 0.8rem;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.mf-flow__prog {
	display: flex;
	gap: 6px;
	margin-bottom: 18px;
}
.mf-flow__prog i {
	width: 26px;
	height: 3px;
	border-radius: 2px;
	background: var(--mf-line);
}
.mf-flow__prog i.is-done {
	background: var(--mf-gold);
}

/* 結果 */
.mf-res {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: clamp(20px, 3vw, 36px);
}
.mf-res__sora {
	font-family: var(--mf-serif);
	font-size: 1.05rem;
	line-height: 2;
	margin: 0 0 20px;
	padding-left: 16px;
	border-left: 2px solid var(--mf-gold);
}
.mf-res__sora small {
	display: block;
	font-family: var(--mf-sans);
	font-size: 0.76rem;
	color: var(--mf-gold);
	letter-spacing: 0.2em;
	margin-bottom: 6px;
}
.mf-res__label {
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	color: var(--mf-gold);
	margin: 0 0 8px;
}
.mf-res__article {
	display: block;
	text-decoration: none;
	background: var(--mf-panel-2);
	border: 1px solid var(--mf-line-soft);
	border-radius: var(--mf-radius);
	padding: 18px 20px;
	margin-bottom: 18px;
	transition: border-color 0.2s;
}
.mf-res__article:hover {
	border-color: var(--mf-gold);
}
.mf-res__article strong {
	display: block;
	font-family: var(--mf-serif);
	font-size: 1.08rem;
	font-weight: 600;
	line-height: 1.6;
	margin-bottom: 6px;
}
.mf-res__article span {
	font-size: 0.82rem;
	color: var(--mf-dim);
}
.mf-res__article.is-soon {
	border-style: dashed;
}
.mf-res__act {
	background: rgba(242, 232, 196, 0.07);
	border-radius: var(--mf-radius);
	padding: 18px 20px;
	margin-bottom: 18px;
}
.mf-res__act p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.9;
}
.mf-res__act b {
	font-family: var(--mf-serif);
	font-size: 1.06rem;
	display: block;
	margin-bottom: 4px;
}
.mf-res__act small {
	display: block;
	color: var(--mf-dim);
	font-size: 0.8rem;
	margin-top: 8px;
}
.mf-doors {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}
.mf-door {
	--c: var(--mf-gold);
	display: grid;
	gap: 4px;
	text-decoration: none;
	text-align: left;
	background: var(--mf-panel-2);
	border: 1px solid var(--mf-line-soft);
	border-top: 3px solid var(--c);
	border-radius: 12px;
	padding: 14px 14px 12px;
	transition: border-color 0.2s, transform 0.25s var(--mf-ease);
}
.mf-door:hover {
	border-color: var(--mf-gold);
	border-top-color: var(--c);
	transform: translateY(-2px);
}
.mf-door b {
	font-family: var(--mf-serif);
	font-size: 1.12rem;
	font-weight: 600;
	color: var(--c);
}
.mf-door span {
	font-size: 0.76rem;
	color: var(--mf-dim);
	line-height: 1.6;
}
.mf-door--read { --c: var(--mf-lav); }
.mf-door--write { --c: var(--mf-gold-hi); }
.mf-door--talk { --c: var(--mf-apricot); }
.mf-door--talk em {
	font-style: normal;
	font-size: 0.66rem;
	color: var(--mf-faint);
	letter-spacing: 0.14em;
	border: 1px solid var(--mf-line-soft);
	border-radius: 4px;
	padding: 0 5px;
	justify-self: start;
	margin-bottom: 2px;
}
/* 「まだ重い」と答えた人には「話す」をいちばん前に */
.is-heavy .mf-door--talk,
.is-heavy .mf-exit--talk {
	order: -1;
}
.is-heavy .mf-door--talk {
	background: rgba(233, 180, 140, 0.1);
}
.mf-res__foot {
	margin: 18px 0 0;
	font-size: 0.78rem;
	color: var(--mf-faint);
}

/* --------------------------------------------------------------------------
   たどり着いた言葉の壁
   -------------------------------------------------------------------------- */
.mf-wall {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	align-items: baseline;
	justify-content: center;
	padding: clamp(18px, 3vw, 32px) 0;
	font-family: var(--mf-serif);
}
.mf-wall span {
	color: var(--mf-dim);
	line-height: 1.5;
	transition: color 0.3s;
}
.mf-wall span:hover {
	color: var(--mf-gold-hi);
}
.mf-wall .w1 { font-size: 0.9rem; opacity: 0.7; }
.mf-wall .w2 { font-size: 1.1rem; opacity: 0.85; }
.mf-wall .w3 { font-size: 1.4rem; color: var(--mf-text); }
.mf-wall .w4 { font-size: 1.9rem; color: var(--mf-gold-hi); font-weight: 600; }
.mf-wall__after {
	text-align: center;
	font-family: var(--mf-serif);
	font-size: 1.08rem;
	margin: 26px 0 0;
	line-height: 2;
}

/* --------------------------------------------------------------------------
   読む・書く・話す（藤／金／杏。見出しの高さを揃える）
   -------------------------------------------------------------------------- */
.mf-exits {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.mf-exit {
	--c: var(--mf-gold);
	--c-soft: rgba(242, 232, 196, 0.07);
	background: linear-gradient(180deg, var(--c-soft), transparent 55%), var(--mf-panel);
	border: 1px solid var(--mf-line-soft);
	border-top: 3px solid var(--c);
	border-radius: 18px;
	padding: clamp(20px, 2.6vw, 28px);
	display: grid;
	grid-template-rows: auto auto 1fr auto;
	gap: 12px;
	margin: 0;
	scroll-margin-top: 80px;
}
.mf-exit--read { --c: var(--mf-lav); --c-soft: rgba(179, 168, 214, 0.12); }
.mf-exit--write { --c: var(--mf-gold-hi); --c-soft: rgba(242, 232, 196, 0.1); }
.mf-exit--talk { --c: var(--mf-apricot); --c-soft: rgba(233, 180, 140, 0.12); }
.mf-exit__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 22px;
}
.mf-exit__k {
	font-size: 0.72rem;
	letter-spacing: 0.3em;
	color: var(--c);
}
.mf-exit__t {
	font-family: var(--mf-serif);
	font-size: 1.45rem;
	font-weight: 600;
	margin: 0;
	line-height: 1.4;
	color: var(--mf-text);
}
.mf .mf-exit--read .mf-btn,
.mf .mf-exit--write .mf-btn {
	border-color: var(--c);
	color: var(--c);
	justify-self: start;
}
.mf .mf-exit--talk .mf-btn--solid {
	background: var(--c);
	color: var(--mf-sky-1);
	justify-self: start;
}
.mf .mf-exit--talk .mf-btn--solid:hover {
	background: #f0c4a4;
}
.mf-exit__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.mf-exit__list li {
	margin: 0;
	padding: 0;
}
.mf-exit__list a {
	text-decoration: none;
	font-size: 0.9rem;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
	align-items: baseline;
	padding: 8px 0;
	border-top: 1px solid var(--mf-line-soft);
}
.mf-exit__list a:hover {
	color: var(--mf-gold-hi);
}
.mf-exit__list i {
	font-style: normal;
	font-size: 0.7rem;
	color: var(--c);
	opacity: 0.8;
	letter-spacing: 0.1em;
}
.mf-exit__note {
	font-size: 0.8rem;
	color: var(--mf-dim);
	margin: 0;
}
.mf-exit__note a {
	color: var(--mf-gold-hi);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.mf-exit__pixel {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.mf-exit__talkp {
	margin: 0;
	font-family: var(--mf-serif);
	line-height: 1.9;
	font-size: 0.98rem;
}
.mf-tiles {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}
.mf-tiles li {
	display: grid;
	justify-items: center;
	gap: 2px;
	text-align: center;
	background: rgba(13, 16, 36, 0.5);
	border: 1px solid var(--mf-line-soft);
	border-radius: 12px;
	padding: 12px 6px 10px;
	margin: 0;
}
.mf-tiles svg {
	width: 26px;
	height: 26px;
	color: var(--c);
	margin-bottom: 4px;
}
.mf-tiles b {
	font-size: 0.86rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.mf-tiles span {
	font-size: 0.7rem;
	color: var(--mf-dim);
}

/* 「言えなかった一言」フォーム（プラグイン側の出力に当てる） */
.mf-exit .myoru-hitokoto,
.mf-exit form {
	display: grid;
	gap: 8px;
	margin: 0;
}
.mf-exit textarea {
	width: 100%;
	min-height: 96px;
	resize: vertical;
	background: var(--mf-sky-1);
	border: 1px solid var(--mf-line);
	border-radius: 10px;
	color: var(--mf-text);
	padding: 10px 12px;
	font: inherit;
	font-size: 0.9rem;
}
.mf-exit textarea::placeholder {
	color: var(--mf-faint);
}
.mf-exit textarea:focus {
	outline: 2px solid var(--mf-gold);
	outline-offset: 2px;
}
.mf-exit .myoru-hitokoto__submit,
.mf-exit button[type="submit"] {
	justify-self: start;
	border: 1px solid var(--mf-gold-hi);
	color: var(--mf-gold-hi);
	background: transparent;
	border-radius: 999px;
	padding: 10px 20px;
	font-size: 0.9rem;
	font-weight: 500;
}
.mf-exit .myoru-hitokoto__submit:hover,
.mf-exit button[type="submit"]:hover {
	background: rgba(242, 232, 196, 0.1);
}
.mf-exit .myoru-hitokoto__msg {
	margin: 0;
	font-size: 0.86rem;
	color: var(--mf-gold-hi);
}
.mf-exit .myoru-hitokoto__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   今夜の空と手放す日取り
   -------------------------------------------------------------------------- */
.mf-sora-band {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 460px);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}
.mf-sora-band__link {
	margin: 18px 0 0;
}
.mf-sora-plan {
	margin: 18px 0 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: center;
	background: rgba(242, 232, 196, 0.06);
	border-radius: 10px;
	padding: 10px 14px;
	max-width: 30em;
}
.mf-sora-plan b {
	font-family: var(--mf-serif);
	font-size: 1.3rem;
	color: var(--mf-gold-hi);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.mf-sora-plan b .mf-sora-plan__unit {
	display: inline;
	font-size: 0.7rem;
	margin-left: 2px;
	color: var(--mf-gold-hi);
}
.mf-sora-plan span {
	font-size: 0.8rem;
	color: var(--mf-dim);
	display: block;
}
.mf-sora-plan strong {
	display: block;
	font-size: 0.88rem;
	color: var(--mf-text);
	font-weight: 500;
}
/* プラグインのカードを部屋の色に溶け込ませる */
.mf-sora-card {
	min-width: 0;
}
.mf-sora-card .w-frontTop,
.mf-sora-card .c-widget {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
}
.mf-sora-card .c-widget__title,
.mf-sora-card .c-secTitle {
	display: none;
}
.mf-sora-card .myoru-sora {
	margin: 0;
	background: linear-gradient(160deg, var(--mf-panel-2), var(--mf-panel));
	border: 1px solid var(--mf-line);
	border-radius: 18px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}
.mf-sora-card .myoru-sora__name,
.mf-sora-card .myoru-sora__kotoba p {
	font-family: var(--mf-serif);
}
.mf-sora-card .myoru-sora__links a {
	color: var(--mf-gold-hi);
}

/* --------------------------------------------------------------------------
   この部屋の主
   -------------------------------------------------------------------------- */
.mf-who {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(20px, 4vw, 44px);
	align-items: center;
}
.mf-who__av {
	width: clamp(88px, 12vw, 118px);
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	border: 1px solid var(--mf-line);
	box-shadow: 0 0 0 8px rgba(242, 232, 196, 0.05);
}
.mf-who__av img,
.mf-who__av svg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.mf-who__label {
	font-size: 0.68rem;
	letter-spacing: 0.3em;
	color: var(--mf-gold);
	margin: 0 0 6px;
}
.mf-who__name {
	font-family: var(--mf-serif);
	font-size: 1.5rem;
	margin: 0 0 10px;
	font-weight: 600;
	color: var(--mf-text);
}
.mf-who__bio {
	margin: 0 0 14px;
	font-size: 0.88rem;
	color: var(--mf-dim);
	max-width: 58em;
}
.mf-who__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* --------------------------------------------------------------------------
   トップページ下部ウィジェット（外観→ウィジェット→「トップページ下部」）
   背景は全幅・中身だけ1180pxに絞る（背景に max-width を付けると継ぎ目が見える）
   -------------------------------------------------------------------------- */
.mf-front .w-frontBottom {
	max-width: 100%;
	margin: 0;
	padding: clamp(48px, 7vw, 80px) 0 clamp(56px, 8vw, 96px);
	background: var(--mf-sky-3);
	border-top: 1px solid var(--mf-line-soft);
}
.mf-front .w-frontBottom .c-widget {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
}
/* ウィジェットの見出しはSWELLの `h2.c-secTitle.-widget > span`（`.c-widget__title` ではない） */
.mf-front .w-frontBottom .c-secTitle {
	margin: 0 0 clamp(24px, 4vw, 36px);
	padding: 0;
	border: 0;
	background: none;
	text-align: center;
	font-family: var(--mf-serif);
	font-weight: 600;
	font-size: clamp(1.45rem, 3.4vw, 2rem);
	letter-spacing: 0.13em;
	line-height: 1.5;
	color: #fff;
}
.mf-front .w-frontBottom .c-secTitle::before,
.mf-front .w-frontBottom .c-secTitle::after {
	display: none;
}
.mf-front .w-frontBottom .c-secTitle > span {
	padding: 0;
	border: 0;
	background: none;
}
.mf-front .w-frontBottom .custom-html-widget > * {
	max-width: 620px;
	margin-inline: auto;
}
.mf-front .w-frontBottom,
.mf-front .w-frontBottom p,
.mf-front .w-frontBottom li {
	color: var(--mf-text);
}
.mf-front .w-frontBottom a {
	color: var(--mf-gold-hi);
}

/* --------------------------------------------------------------------------
   フッター（トップだけ夜色に）
   -------------------------------------------------------------------------- */
.mf-front .w-beforeFooter,
.mf-front #footer,
.mf-front .l-footer,
.mf-front .l-footer__foot,
.mf-front .l-footer__inner {
	background-color: var(--mf-sky-1);
	color: var(--mf-dim);
}
.mf-front #footer {
	border-top: 1px solid var(--mf-line-soft);
}
.mf-front #footer a,
.mf-front #footer .c-listMenu a {
	color: var(--mf-dim);
}
.mf-front #footer a:hover {
	color: var(--mf-gold-hi);
}
.mf-front #footer .c-widget__title,
.mf-front #footer .l-footer__copyright {
	color: var(--mf-faint);
}
.mf-front .p-fixBtnWrap .c-fixBtn {
	background: var(--mf-panel-2);
	color: var(--mf-gold-hi);
}

/* --------------------------------------------------------------------------
   レスポンシブ
   -------------------------------------------------------------------------- */
@media (max-width: 880px) {
	.mf-hero__in {
		grid-template-columns: 1fr;
	}
	.mf-hero__moon {
		display: none;
	}
	.mf-sora-band {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 820px) {
	.mf-feel {
		grid-template-columns: repeat(2, 1fr);
	}
	.mf-res {
		grid-template-columns: 1fr;
	}
	.mf-exits {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 600px) {
	.mf-wrap {
		padding-inline: 16px;
	}
	.mf-who {
		grid-template-columns: 1fr;
	}
	.mf-hero__eyebrow {
		font-size: 0.66rem;
		letter-spacing: 0.24em;
	}
}
@media (max-width: 520px) {
	.mf-doors {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 460px) {
	.mf-feel {
		grid-template-columns: 1fr;
	}
}

/* 動きを減らす設定を尊重 */
@media (prefers-reduced-motion: reduce) {
	.mf-front *,
	.mf-front *::before,
	.mf-front *::after {
		animation-duration: 0.001s !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001s !important;
	}
}
