/* ストレイター 作品ページ（2026-10-30 紅版2を本番に反映）
 * 前半：紅の土台（KILLTUBEのティザーサイトを参考にした紅一色・明朝・白抜きの帯）
 * 後半：新素材と「善し？悪し？」の差分、白黒の素顔の表紙
 */
/*
 * ストレイター 紅版（2026-10-29 作成）
 * 参考にしたテイスト：劇場アニメのティザーサイト。
 *   ・紅一色の地に、白い明朝。見出しは大きな英字の明朝
 *   ・あらすじは、紅く染めた絵の上に白抜きの帯で一行ずつ
 *   ・キャラクターは寄せ集めの格子と、縦書きの名札
 * 絵は採用デザインA（04_A_3Dアメコミ風_v1）を1枚だけ使い、切り抜きで格子を組む。
 */
.red-st {
	--red: #c40202; --red-deep: #8f0000; --ink: #140404; --paper: #f6f1ea;
	--mincho: "Zen Old Mincho", "Yu Mincho", serif;
	margin: 0; background: var(--red); color: #fff; font-family: var(--mincho); font-weight: 700;
}
.red-st main { overflow-x: clip; }
.red-st img { display: block; max-width: none; }

/* 上の帯 */
.rs-top { position: fixed; inset: 0 0 auto 0; z-index: 50; display: flex; justify-content: space-between; align-items: center; padding: 16px clamp(18px, 4vw, 56px); }
.rs-logo { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-family: var(--mincho); font-weight: 900; font-size: 17px; }
.rs-logo span { display: grid; place-items: center; width: 30px; height: 30px; border: 2px solid #fff; border-radius: 50%; font-size: 14px; }
.rs-nav { display: flex; gap: clamp(14px, 2vw, 30px); font-size: 13px; letter-spacing: 0.08em; }
.rs-nav a { color: #fff; text-decoration: none; text-shadow: 0 1px 4px rgb(0 0 0 / 0.35); }
.rs-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.rs-nav a:last-child { padding: 0 10px; border: 1px solid #fff; }

/* 左右の縁の縦書き */
.rs-edge { position: fixed; top: 50%; z-index: 40; margin: 0; writing-mode: vertical-rl; translate: 0 -50%; font-family: var(--mincho); font-size: 11px; letter-spacing: 0.3em; color: rgb(255 255 255 / 0.75); mix-blend-mode: difference; pointer-events: none; }
.rs-edge--l { left: 12px; rotate: 180deg; }
.rs-edge--r { right: 12px; }

/* 表紙 */
.rs-kv { position: relative; min-height: 100svh; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; background: var(--red); }
.rs-kv__art { position: relative; order: 2; overflow: hidden; }
.rs-kv__art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; animation: kv-in 1.6s cubic-bezier(.2, .8, .2, 1) both; }
.rs-kv__art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--red) 0%, transparent 22%); }
@keyframes kv-in { from { transform: scale(1.08); filter: brightness(0.4); } }
.rs-kv__plate { position: relative; z-index: 1; align-self: center; padding: 110px 0 90px clamp(36px, 6vw, 110px); }
.rs-kv__no { margin: 0; font-size: 14px; letter-spacing: 0.3em; }
.rs-kv__no b { font-size: 20px; }
.rs-kv__title { margin: 18px 0 0; display: grid; gap: 6px; font-weight: 900; line-height: 1; }
.rs-kv__ja { font-size: clamp(56px, 7.4vw, 118px); letter-spacing: 0.02em; white-space: nowrap; text-shadow: 0 6px 0 var(--red-deep); }
.rs-kv__en { font-size: clamp(22px, 2.6vw, 40px); letter-spacing: 0.42em; color: var(--ink); }
.rs-kv__type { display: inline-block; margin: 30px 0 0; padding: 6px 16px; border: 1px solid #fff; font-size: 14px; letter-spacing: 0.14em; }
.rs-kv__catch { margin: 26px 0 0; display: grid; gap: 8px; justify-items: start; font-size: clamp(16px, 1.6vw, 22px); line-height: 1.6; }
.rs-kv__catch span { padding: 4px 12px; background: var(--ink); }
.rs-kv__scroll { position: absolute; left: clamp(36px, 6vw, 110px); bottom: 26px; margin: 0; font-size: 12px; letter-spacing: 0.4em; }
.rs-kv__scroll::after { content: ""; display: block; width: 1px; height: 40px; margin: 10px 0 0 4px; background: #fff; animation: drop 1.8s ease-in-out infinite; transform-origin: top; }
@keyframes drop { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }

/* 問いかけ */
.rs-question { padding: clamp(90px, 13vw, 180px) 24px; background: var(--paper); color: var(--red); text-align: center; }
.rs-question p { margin: 0; font-weight: 900; font-size: clamp(26px, 4vw, 58px); line-height: 1.6; }

/* 見出し */
.rs-head { position: relative; margin: 0; padding: clamp(80px, 10vw, 140px) 24px 40px; text-align: center; }
.rs-head__en { display: block; font-family: var(--mincho); font-weight: 900; font-size: clamp(64px, 12vw, 190px); line-height: 0.9; letter-spacing: 0.02em; }
.rs-label { display: block; margin: 14px 0 0; font-size: clamp(15px, 1.4vw, 18px); font-weight: 700; letter-spacing: 0.3em; }

/* あらすじ */
.rs-story { position: relative; min-height: 100svh; display: grid; align-items: center; overflow: hidden; padding: 120px clamp(24px, 8vw, 140px) 120px clamp(110px, 18vw, 300px); }
.rs-story__bg { position: absolute; inset: 0; background: url("../assets/straighter/driver.jpg") 50% 30% / cover; filter: grayscale(1) contrast(1.25) brightness(1.15); }
.rs-story__bg::after { content: ""; position: absolute; inset: 0; background: var(--red); mix-blend-mode: multiply; }
.rs-story::after { content: ""; position: absolute; inset: 0; background: rgb(196 2 2 / 0.35); }
.rs-story__big { position: absolute; z-index: 1; left: clamp(10px, 2vw, 30px); top: 50%; translate: 0 -50%; margin: 0; writing-mode: vertical-rl; font-weight: 900; font-size: clamp(90px, 15vw, 230px); line-height: 1; color: #fff; }
.rs-story__body { position: relative; z-index: 2; max-width: 820px; }
.rs-story__body .rs-label { margin: 0 0 30px; }
.rs-story__body p { margin: 0 0 18px; font-size: clamp(15px, 1.35vw, 19px); line-height: 2.3; }
.rs-story__body p span { padding: 3px 10px; background: var(--red); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.rs-story__body p:last-child span { background: #fff; color: var(--red); font-weight: 900; }

/* 用語 */
.rs-terms { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: #fff; border-block: 2px solid #fff; }
.rs-term { padding: 40px clamp(20px, 3vw, 44px); background: var(--red); }
.rs-term__name { margin: 0; font-weight: 900; font-size: clamp(18px, 1.6vw, 22px); }
.rs-term__name::before { content: "── "; }
.rs-term__text { margin: 14px 0 0; font-size: 15px; line-height: 2; font-weight: 400; }

/* 主人公 */
.rs-hero { background: var(--paper); color: var(--ink); }
.rs-hero .rs-head__en { color: var(--red); }
.rs-hero__grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(24px, 5vw, 80px); align-items: center; width: min(1200px, 100%); margin: 0 auto; padding: 0 24px clamp(90px, 10vw, 140px); }
.rs-hero__face { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border: 6px solid var(--red); }
.rs-hero__face img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 49% 6%; transform: scale(1.9); transform-origin: 49% 6%; }
.rs-name { margin: 0; font-weight: 900; font-size: clamp(44px, 5vw, 72px); line-height: 1.2; color: var(--red); }
.rs-name span { margin-left: 0.5em; font-size: 0.3em; letter-spacing: 0.2em; color: var(--ink); }
.rs-profile { margin: 26px 0 0; padding: 0; list-style: none; border-top: 2px solid var(--red); }
.rs-profile li { display: grid; grid-template-columns: 9em 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid rgb(196 2 2 / 0.3); font-size: 15px; line-height: 1.8; }
.rs-profile li span:first-child { color: var(--red); font-weight: 900; }
.rs-profile li span:last-child { font-weight: 400; }
.rs-profile li:last-child span:last-child { font-weight: 900; color: var(--red); }

/* 縦の名札（格子の左端） */
.rs-vlabel { position: absolute; z-index: 2; left: 10px; top: 12px; margin: 0; writing-mode: vertical-rl; font-family: var(--mincho); font-weight: 700; font-size: 11px; letter-spacing: 0.22em; color: #fff; text-shadow: 0 1px 3px rgb(0 0 0 / 0.6); }

/* 決めゼリフ */
.rs-quote { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); min-height: 90svh; background: var(--ink); overflow: hidden; }
.rs-quote__art { position: relative; overflow: hidden; }
.rs-quote__art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 22% 60%; transform: scale(1.7); transform-origin: 22% 60%; }
.rs-quote__art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 50%, var(--ink) 100%); }
.rs-quote__text { position: relative; align-self: center; margin: 0; padding: 80px clamp(24px, 6vw, 100px) 80px 20px; }
.rs-quote__text p { margin: 0; font-weight: 900; font-size: clamp(28px, 3.8vw, 58px); line-height: 1.6; }
.rs-quote__text b { color: #ff2a2a; text-shadow: 0 0 24px rgb(255 30 30 / 0.6); }
.rs-quote__text cite { display: block; margin: 28px 0 0; font-style: normal; font-size: 16px; letter-spacing: 0.3em; color: rgb(255 255 255 / 0.7); }

/* 登場人物：格子 */
.rs-cast { padding-bottom: clamp(80px, 9vw, 120px); }
.rs-mosaic { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(200px, 22vw, 320px); gap: 10px; width: min(1320px, calc(100% - 48px)); margin: 0 auto; }
.tile { position: relative; margin: 0; overflow: hidden; background: var(--red-deep); }
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s cubic-bezier(.2, .8, .2, 1); }
.tile--nao { grid-column: span 2; grid-row: span 2; }
.tile--nao img { object-position: 50% 0%; }
.tile--hand img { object-position: 70% 17%; transform: scale(2.4); transform-origin: 70% 17%; }
.tile--baton img { object-position: 22% 58%; transform: scale(2.2); transform-origin: 22% 58%; }
.tile:hover img { scale: 1.04; }
.tile--who { padding: 22px 22px 22px 44px; display: flex; align-items: flex-end; background: var(--red-deep); }
.tile--who .rs-vlabel { text-shadow: none; }
.tile__kanji { position: absolute; right: -0.08em; top: -0.12em; font-weight: 900; font-size: clamp(150px, 15vw, 240px); line-height: 1; color: rgb(255 255 255 / 0.12); }
.tile__body { position: relative; }
.tile__name { margin: 0; font-weight: 900; font-size: clamp(24px, 2.2vw, 32px); }
.tile__role { margin: 2px 0 0; font-size: 12px; letter-spacing: 0.18em; opacity: 0.8; }
.tile__text { margin: 10px 0 0; font-size: 13px; line-height: 1.85; font-weight: 400; }
.tile--white { background: var(--paper); color: var(--ink); }
.tile--white .rs-vlabel { color: var(--red); }
.tile--white .tile__kanji { color: rgb(196 2 2 / 0.12); }
.tile--white .tile__name { color: var(--red); }
.tile--dark { background: var(--ink); }
.rs-cast__note { margin: 50px 0 0; text-align: center; font-size: clamp(20px, 2.4vw, 32px); font-weight: 900; }
.rs-cast__note span { padding: 6px 18px; background: #fff; color: var(--red); }

/* この物語から生まれるもの */
.rs-works { background: var(--paper); color: var(--ink); padding-bottom: clamp(80px, 9vw, 120px); }
.rs-head--red .rs-head__en { color: var(--red); }
.rs-media { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; width: min(1200px, calc(100% - 48px)); margin: 0 auto; }
.rs-media__item { padding: 30px 28px; border: 2px solid var(--red); }
.rs-media__kind { margin: 0; font-size: 12px; letter-spacing: 0.3em; color: var(--red); }
.rs-media__title { margin: 8px 0 0; font-weight: 900; font-size: 22px; }
.rs-media__text { margin: 10px 0 0; font-size: 14px; line-height: 1.9; font-weight: 400; }
.rs-media__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; }
.rs-btn { padding: 10px 18px; border: 1px solid var(--red); color: var(--red); font-size: 13px; }
.rs-btn--soon { opacity: 0.55; }
.rs-btn--soon::after { content: "（準備中）"; font-size: 11px; }

/* ほかのヒーロー・フッター（共通部品を紅地に合わせる） */
.red-st .rs-others { background: var(--red); }
.red-st .rs-others .work-section__en, .red-st .rs-others .work-section__title { color: #fff; font-family: var(--mincho); }
.red-st .site-footer { background: var(--ink); color: rgb(255 255 255 / 0.8); }

@media (max-width: 860px) {
	.rs-nav a:not(:last-child) { display: none; }
	.rs-edge { display: none; }
	.rs-kv { grid-template-columns: 1fr; min-height: auto; }
	.rs-kv__art { order: 0; height: 78svh; }
	.rs-kv__art::after { background: linear-gradient(0deg, var(--red) 0%, transparent 30%); }
	.rs-kv__plate { margin-top: -120px; padding: 0 22px 70px; }
	.rs-kv__ja { font-size: 14.5vw; }
	.rs-kv__scroll { display: none; }
	.rs-story { padding: 90px 20px 90px 78px; }
	.rs-story__big { font-size: 64px; left: 8px; }
	.rs-terms { grid-template-columns: 1fr; }
	.rs-hero__grid { grid-template-columns: 1fr; }
	.rs-profile li { grid-template-columns: 7em 1fr; }
	.rs-quote { grid-template-columns: 1fr; }
	.rs-quote__art { height: 60vw; }
	.rs-quote__art::after { background: linear-gradient(0deg, var(--ink) 0%, transparent 50%); }
	.rs-quote__text { padding: 10px 22px 70px; }
	.rs-mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: 46vw; width: calc(100% - 32px); gap: 6px; }
	.tile--who { grid-column: span 2; grid-row: span 1; min-height: 56vw; }
	.rs-media { grid-template-columns: 1fr; width: calc(100% - 32px); }
}
@media (prefers-reduced-motion: reduce) { .rs-kv__art img, .rs-kv__scroll::after { animation: none; } }

/* 確認後の手直し：見出しの帯を紅で塗る（白地の節で文字が消えるため）／あらすじの絵を明るく */
.rs-top { background: var(--red); padding-block: 12px; }
.rs-story__bg { filter: grayscale(1) contrast(1.1) brightness(1.7); }
.rs-story::after { background: rgb(196 2 2 / 0.12); }
/* あらすじの絵：紅の地に、白黒の絵を「明るいところだけ」重ねる（夜の絵でも沈まない） */
.rs-story__bg { background: var(--red); filter: none; }
.rs-story__bg::after { background: url("../assets/straighter/driver.jpg") 50% 30% / cover; filter: grayscale(1) contrast(1.3) brightness(1.4); mix-blend-mode: screen; opacity: 0.5; }
.rs-story::after { display: none; }
/* 決めゼリフは1行ずつ折り返さない */
.rs-quote__text p { font-size: clamp(26px, 3.3vw, 52px); }
.rs-quote__text .ln { white-space: nowrap; }
/* 黒田監督は横長の帯にして、格子の穴をなくす */
.tile--dark { grid-column: 1 / -1; }
@media (max-width: 860px) {
	.rs-quote__text p { font-size: 6.4vw; }
	.tile--dark { grid-column: span 2; }
}
@media (max-width: 860px) { .rs-kv__catch { font-size: min(15px, 3.9vw); } .rs-kv__catch span { padding-inline: 8px; } }

/*
 * ストレイター 紅版2（2026-10-30 作成）
 * 紅版（straighter-r.css）の上に重ねる差分。
 *   ・新しい素材（立ち姿・お辞儀・運転手を止める場面・スーツ・福田・ヨシアシ）に差し替え
 *   ・題はアルファベットで大きく
 *   ・「善し？悪し？」「15秒で、裁けますか？」「正しいって、何？」を紅の文法（明朝・白抜きの帯・縦の名札）で
 */

/* 表紙：題はアルファベット */
.rs2-kv .rs-kv__art img { object-position: 50% 20%; }
.rs2-title { margin: 18px 0 0; display: grid; gap: 10px; font-weight: 900; line-height: 0.9; }
.rs2-title__en { font-family: var(--mincho); font-size: clamp(56px, 7.6vw, 124px); letter-spacing: 0.01em; white-space: nowrap; text-shadow: 0 6px 0 var(--red-deep); }
.rs2-title__ja { width: fit-content; padding: 4px 14px; background: var(--ink); font-size: clamp(16px, 1.6vw, 22px); letter-spacing: 0.4em; }

/* 善し？ 悪し？ */
.rs2-ask { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: clamp(10px, 3vw, 50px); padding: clamp(90px, 11vw, 160px) clamp(20px, 5vw, 80px); background: var(--paper); color: var(--red); text-align: center; }
.rs2-ask__word { margin: 0; font-family: var(--mincho); font-weight: 900; font-size: clamp(64px, 11vw, 180px); line-height: 1; }
.rs2-ask__word--y { justify-self: end; }
.rs2-ask__word--a { justify-self: start; color: var(--ink); }
.rs2-ask__ball { width: clamp(110px, 14vw, 210px); height: auto; animation: ya-flip 5s ease-in-out infinite; }
@keyframes ya-flip { 0%, 40% { transform: rotate(-10deg); } 50%, 90% { transform: rotate(10deg) scaleX(-1); } 100% { transform: rotate(-10deg); } }
.rs2-ask__line { grid-column: 1 / -1; margin: 40px 0 0; }
.rs2-ask__line { font-size: clamp(18px, 2vw, 28px); font-weight: 900; color: #fff; }
.rs2-ask__line::before { content: none; }
.rs2-ask__line { justify-self: center; padding: 8px 20px; background: var(--red); }
.rs2-ask__q { grid-column: 1 / -1; margin: 40px 0 0; font-weight: 900; font-size: clamp(22px, 3vw, 44px); line-height: 1.6; color: var(--red); }

/* 白抜きの帯（紅版の語りの帯） */
.rs2-band { display: grid; gap: 10px; justify-items: start; margin: 0; font-weight: 900; font-size: clamp(20px, 2.4vw, 34px); line-height: 1.5; }
.rs2-band span { padding: 6px 16px; background: var(--red); color: #fff; }
.rs2-band--center { justify-items: center; margin-top: 40px; font-size: clamp(15px, 1.6vw, 22px); }

/* 15秒で、裁けますか？ */
.rs2-judge { padding-bottom: clamp(90px, 10vw, 140px); background: var(--ink); }
.rs2-judge .rs-head__en { color: var(--red); }
.rs2-judge__grid { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; width: min(1100px, calc(100% - 40px)); margin: 0 auto; }
.rs2-phone { padding: 18px 18px 22px; background: #fff; color: var(--ink); border-radius: 30px; box-shadow: 0 0 0 8px #222, 0 30px 60px -20px rgb(196 2 2 / 0.6); font-family: "Zen Kaku Gothic New", sans-serif; }
.rs2-phone__app { display: flex; align-items: center; gap: 8px; margin: 4px 6px 12px; color: #12909f; font-weight: 900; font-size: 20px; }
.rs2-phone__app img { width: 28px; height: 28px; }
.rs2-phone__video { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 12px; background: #000; }
.rs2-phone__video img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 40%; }
.rs2-phone__video span { position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 6px; background: rgb(0 0 0 / 0.7); color: #fff; font-size: 12px; }
.rs2-phone__desc { margin: 12px 4px 0; font-size: 13px; line-height: 1.7; font-weight: 400; color: #444; }
.rs2-phone__ask { margin: 16px 0 6px; text-align: center; font-weight: 900; font-size: 16px; }
.rs2-stars { display: flex; justify-content: center; gap: 4px; }
.rs2-stars button { width: 50px; height: 50px; border: 0; background: none; cursor: pointer; font-size: 40px; line-height: 1; color: #d9dfe2; transition: transform 0.15s, color 0.15s; }
.rs2-stars button:hover, .rs2-stars button:focus-visible { transform: scale(1.15); }
.rs2-stars button.is-on { color: #12b0c2; }
.rs2-judge__side { display: grid; gap: 22px; }
.rs2-judge__hint { margin: 0; font-size: 15px; color: rgb(255 255 255 / 0.75); }
.rs2-judge__hint::before { content: "── "; }

.rs2-reveal { width: min(1100px, calc(100% - 40px)); margin: 80px auto 0; opacity: 0; transform: translateY(30px); transition: opacity 0.7s, transform 0.8s cubic-bezier(.2, .8, .2, 1); }
.rs2-reveal.is-open { opacity: 1; transform: none; }
.rs2-reveal__score { margin: 0 0 16px; font-size: 14px; letter-spacing: 0.1em; }
.rs2-reveal__score b { font-size: 24px; color: #4fd6e6; }
.rs2-reveal__grid { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; }
.rs2-reveal__p { position: relative; min-height: 420px; overflow: hidden; background: #000; }
.rs2-reveal__p img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rs2-reveal__p--wide img { object-position: 50% 40%; }
.rs2-shout { position: absolute; left: 6%; top: 8%; margin: 0; padding: 8px 16px; background: #fff; color: var(--red); font-weight: 900; font-size: clamp(18px, 2vw, 28px); line-height: 1.5; }
.rs2-reveal__line { margin: 60px 0 0; text-align: center; font-weight: 900; font-size: clamp(24px, 3.4vw, 48px); line-height: 1.6; }

/* あらすじの背景は、運転手を止める場面 */
.rs2-story .rs-story__bg::after { background-image: url("../assets/straighter/driver.jpg"); background-position: 40% 40%; }

/* 正しいって、何？：縦書きの台詞 */
.rs2-right { padding-bottom: clamp(90px, 10vw, 140px); text-align: center; }
.rs2-voices { display: flex; justify-content: center; gap: clamp(10px, 3vw, 46px); width: min(1100px, calc(100% - 40px)); margin: 0 auto; }
.rs2-voice { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.rs2-voice__say { margin: 0; writing-mode: vertical-rl; padding: 18px 12px; background: #fff; color: var(--ink); font-weight: 900; font-size: clamp(20px, 2.2vw, 30px); letter-spacing: 0.12em; }
.rs2-voice__who { margin: 0; font-weight: 900; font-size: 17px; }
.rs2-voice__who small { display: block; font-size: 11px; font-weight: 400; opacity: 0.8; }
.rs2-voice--nao .rs2-voice__say { background: var(--ink); color: #fff; box-shadow: 0 0 0 3px #fff; }
.rs2-voices .rs2-voice:not(.rs2-voice--nao) .rs2-voice__say { opacity: 0.92; }
.rs2-voice--nao { margin-left: clamp(10px, 4vw, 60px); }
.rs2-right .rs-cast__note { margin-top: 60px; }
.rs2-right__sub { margin: 26px auto 0; padding: 0 20px; font-size: clamp(14px, 1.3vw, 17px); line-height: 2.1; font-weight: 400; }

/* 主人公：昼と夜 */
.rs2-dn { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: min(1100px, calc(100% - 48px)); margin: 0 auto; }
.rs2-dn__p { position: relative; height: clamp(360px, 42vw, 560px); overflow: hidden; margin: 0; }
.rs2-dn__p img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; }
.rs2-dn__p figcaption { position: absolute; left: 0; bottom: 0; padding: 10px 16px; background: var(--red); color: #fff; font-size: 13px; }
.rs2-dn__p figcaption b { display: block; font-size: clamp(28px, 3vw, 42px); line-height: 1; letter-spacing: 0.1em; }
.rs2-dn__p--night figcaption { left: auto; right: 0; background: var(--ink); text-align: right; }
.rs2-hero__text { width: min(900px, calc(100% - 48px)); margin: 50px auto 0; padding-bottom: clamp(90px, 10vw, 140px); }

/* 決めゼリフ */
.rs2-quote__art img { object-position: 50% 30%; transform: none; }
.rs2-quote__kicker { display: inline-block; margin: 0 0 30px !important; padding: 6px 16px; background: var(--red); font-size: clamp(18px, 2vw, 26px) !important; }

/* 登場人物の格子 */
.rs2-mosaic .tile--nao img { object-position: 50% 12%; }
.rs2-t-suit img { object-position: 50% 10%; }
.rs2-t-bow img { object-position: 55% 30%; }
.rs2-t-fukuda { grid-column: span 2; padding: 0; display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; background: var(--paper); color: var(--ink); }
.rs2-t-fukuda img { position: relative; inset: auto; width: 100%; height: 100%; object-fit: cover; object-position: 35% 20%; }
.rs2-t-fukuda .tile__body { padding: 22px; }
.rs2-t-fukuda .tile__name { color: var(--red); }
.rs2-t-fukuda .rs-vlabel { color: #fff; }
.rs2-t-kuroda { grid-column: span 2; background: var(--ink); }

/* この世界 */
.rs2-world { background: var(--red); padding-bottom: clamp(90px, 10vw, 140px); }
.rs2-world__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(24px, 4vw, 60px); align-items: center; width: min(1100px, calc(100% - 48px)); margin: 0 auto; }
.rs2-world__app { position: relative; margin: 0; background: #fff; }
.rs2-world__app img { width: 100%; height: auto; }
.rs2-world__app .rs-vlabel { color: var(--red); text-shadow: none; }
.rs2-terms { grid-template-columns: 1fr; border: 0; gap: 2px; }
.rs2-term--app { display: grid; grid-template-columns: 80px 1fr; gap: 18px; align-items: center; background: #fff; color: var(--ink); }
.rs2-term--app img { width: 80px; height: 80px; }

@media (max-width: 860px) {
	.rs2-title__en { font-size: 15.5vw; }
	.rs2-ask { grid-template-columns: 1fr; gap: 6px; }
	.rs2-ask__word--y, .rs2-ask__word--a { justify-self: center; font-size: 22vw; }
	.rs2-ask__ball { justify-self: center; width: 110px; }
	.rs2-ask__line { font-size: 15px; }
	.rs2-ask__q { font-size: 6vw; }
	.rs2-judge__grid { grid-template-columns: 1fr; }
	.rs2-band { font-size: 5.6vw; }
	.rs2-band--center { font-size: 14px; }
	.rs2-reveal__grid { grid-template-columns: 1fr; }
	.rs2-reveal__p { min-height: 64vw; }
	.rs2-reveal__p:nth-child(2) { min-height: 110vw; }
	.rs2-reveal__line { font-size: 6vw; }
	.rs2-voices { flex-wrap: wrap; gap: 14px; }
	.rs2-voice__say { font-size: 18px; }
	.rs2-voice--nao { margin-left: 0; }
	.rs2-dn { grid-template-columns: 1fr; width: calc(100% - 32px); }
	.rs2-dn__p { height: 100vw; }
	.rs2-hero__text { width: calc(100% - 32px); }
	.rs2-t-fukuda { grid-column: span 2; grid-template-columns: 1fr; }
	.rs2-t-fukuda img { height: 46vw; }
	.rs2-world__grid { grid-template-columns: 1fr; width: calc(100% - 32px); }
}
@media (prefers-reduced-motion: reduce) { .rs2-ask__ball { animation: none; } }

/* 確認後の手直し：スマホで題が画面からはみ出すため */
@media (max-width: 860px) {
	.rs2-kv, .red-st .rs-quote { grid-template-columns: minmax(0, 1fr); }
	.rs2-title__en { font-size: 11.6vw; }
}

/* ===== 表紙 v3：白黒の素顔（47_真柴直_白黒アップ_影を少し濃く_v4） ===== */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rs3-kv { position: relative; min-height: 100svh; overflow: hidden; background: #0d0d0d; isolation: isolate; }
.rs3-kv__face { position: absolute; inset: 0; }
.rs3-kv__face img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; animation: face-in 2s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes face-in { from { transform: scale(1.06); filter: brightness(0.3); } }
/* 左半分だけ紅く染める（白黒の明暗を残して、紅をかける） */
.rs3-kv__face--red { clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%); }
.rs3-kv__face--red::after { content: ""; position: absolute; inset: 0; background: var(--red); mix-blend-mode: multiply; }
.rs3-kv__face--red img { filter: contrast(1.15) brightness(1.25); }
/* 下に向かって暗く落として、題と帯を読ませる */
.rs3-kv::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgb(0 0 0 / 0.25) 0%, transparent 25%, transparent 50%, rgb(0 0 0 / 0.75) 100%); pointer-events: none; }
/* 境目の、誘導灯の赤い光 */
.rs3-kv__beam { position: absolute; z-index: 2; left: 50%; top: 0; bottom: 0; width: 4px; translate: -50% 0; background: #ff3b30; box-shadow: 0 0 12px 3px rgb(255 40 30 / 0.9), 0 0 40px 10px rgb(255 30 20 / 0.45); animation: beam 2.4s ease-in-out infinite, beam-in 1.2s 0.6s cubic-bezier(.7, 0, .2, 1) both; transform-origin: top; }
@keyframes beam { 50% { opacity: 0.75; } }
@keyframes beam-in { from { transform: scaleY(0); } }
/* 左右の小さな問い */
.rs3-kv__side { position: absolute; z-index: 2; top: 50%; margin: 0; translate: 0 -50%; writing-mode: vertical-rl; font-family: var(--mincho); font-weight: 900; font-size: clamp(22px, 2.6vw, 40px); letter-spacing: 0.3em; color: #fff; text-shadow: 0 2px 10px rgb(0 0 0 / 0.6); }
.rs3-kv__side--y { left: clamp(46px, 6vw, 100px); }
.rs3-kv__side--a { right: clamp(46px, 6vw, 100px); }
.rs3-kv__ja { position: absolute; z-index: 2; right: clamp(46px, 6vw, 100px); top: 96px; margin: 0; writing-mode: vertical-rl; font-family: var(--mincho); font-weight: 700; font-size: 14px; letter-spacing: 0.5em; color: rgb(255 255 255 / 0.85); }
/* 題と帯 */
.rs3-kv__plate { position: absolute; z-index: 3; left: 0; right: 0; bottom: 0; padding: 0 clamp(20px, 4vw, 60px) clamp(28px, 4vw, 54px); }
.rs3-kv__no { margin: 0 0 6px; font-size: clamp(12px, 1vw, 14px); letter-spacing: 0.24em; }
.rs3-kv__no b { font-size: 1.4em; color: #ff4a3d; }
.rs3-kv__title { margin: 0; font-family: var(--mincho); font-weight: 900; font-size: clamp(64px, 14.2vw, 230px); line-height: 0.86; letter-spacing: -0.01em; white-space: nowrap; color: #fff; text-shadow: 0 8px 30px rgb(0 0 0 / 0.5); }
.rs3-kv__catch { display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 18px 0 0; font-weight: 900; font-size: clamp(14px, 1.4vw, 20px); line-height: 1.6; }
.rs3-kv__catch span { padding: 4px 12px; background: var(--red); }
.rs3-kv__catch span + span { background: #fff; color: var(--red); }

@media (max-width: 860px) {
	.rs3-kv { min-height: 92svh; }
	.rs3-kv__face img { object-position: 50% 22%; }
	.rs3-kv__side { font-size: 18px; top: 40%; }
	.rs3-kv__side--y { left: 14px; }
	.rs3-kv__side--a { right: 14px; }
	.rs3-kv__ja { display: none; }
	.rs3-kv__title { font-size: 14.6vw; }
	.rs3-kv__catch { display: grid; justify-items: start; font-size: min(14px, 3.7vw); }
}
@media (prefers-reduced-motion: reduce) { .rs3-kv__face img, .rs3-kv__beam { animation: none; } }
.rs3-kv__face--red img { filter: contrast(1.05) brightness(1.75); }
.rs3-kv__title { font-size: clamp(60px, 12.6vw, 210px); }
@media (max-width: 860px) { .rs3-kv__title { font-size: 13.4vw; } }
.rs3-kv__side { padding: 14px 6px; text-shadow: none; }
.rs3-kv__side--y { background: var(--red); }
.rs3-kv__side--a { background: var(--ink); }
@media (max-width: 860px) {
	.rs3-kv__side { padding: 10px 4px; }
	.rs3-kv__no { font-size: 10.5px; letter-spacing: 0.12em; }
}
