/*!
 * rinka-novel-engine.css  v1.0.0（2026-09-28）
 * りんかワールドの全年齢ノベルの共通エンジン（rinka-novel-engine.js）の見た目。
 * 前半＝「りんかと、放課後の5秒」の rinka-novel-jk.css をそのまま写した物（同じ見た目・同じクラス名 rinka-nj-*）。
 *   ※ rinka-novel-jk.css を直した時は、ここの前半にも同じ直しを入れる（放課後の5秒はこのファイルで表示している）。
 * 後半＝エンジンで足した物（rinka-nv-*）：全画面の動画・上下の帯・道具ボタン・スコア・重ねる画面・アルバム。
 * rds-* は上書きしない（var(--rds-*, fallback) 参照のみ）。谷間NG・全年齢。
 */


.rinka-nj-stage-wrap {
	display: flex;
	justify-content: center;
	margin: 1.2em 0 1.6em;
}

.rinka-nj {
	width: 100%;
	max-width: 460px;
}

.rinka-nj__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 9 / 16;
	max-height: 78vh;
	border-radius: var(--rds-radius-lg, 18px);
	overflow: hidden;
	background: #14141a;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
}

.rinka-nj__loading {
	color: #fff;
	text-align: center;
	padding-top: 40%;
	opacity: 0.7;
}

/* ---- タイトル / エンディング終了画面 ---- */
.rinka-nj-title {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.7em;
	padding: 1.6em 1.4em;
	text-align: center;
	color: #fff;
	font-family: var(--rds-font, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif);
	background:
		linear-gradient(180deg, rgba(194, 86, 140, 0.35), rgba(20, 20, 26, 0.92) 60%),
		radial-gradient(circle at 50% 15%, rgba(247, 168, 200, 0.35), transparent 60%);
	overflow: hidden;
}

/* 背景に薄く敷く演出画像（タイトル/エンディング専用・任意設定）。
   本文の可読性を最優先し、常にopacity低め＋上のグラデで沈める。 */
.rinka-nj-title__bgimg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.34;
	z-index: 0;
	pointer-events: none;
}
.rinka-nj-title > *:not(.rinka-nj-title__bgimg) { position: relative; z-index: 1; }

.rinka-nj-title__eyebrow {
	font-family: var(--rds-font-latin, "Quicksand", sans-serif);
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	font-weight: 600;
	opacity: 0.75;
	margin: 0;
}

.rinka-nj-title__h {
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin: 0.1em 0 0.2em;
	line-height: 1.45;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.rinka-nj-title__lead {
	font-size: 0.88rem;
	opacity: 0.92;
	line-height: 1.75;
	letter-spacing: 0.01em;
	margin: 0 0 0.4em;
	max-width: 30em;
}

.rinka-nj-btn {
	appearance: none;
	border: none;
	cursor: pointer;
	font: inherit;
	font-family: inherit;
	letter-spacing: 0.03em;
	border-radius: 999px;
	padding: 0.75em 1.6em;
	font-size: 0.95rem;
	font-weight: 700;
	color: #fff;
	background: var(--rinka-accent-strong, #c2568c);
	box-shadow: 0 6px 16px rgba(194, 86, 140, 0.4);
	transition: transform 0.15s ease, filter 0.15s ease;
}
.rinka-nj-btn:hover { filter: brightness(1.06); }
.rinka-nj-btn:active { transform: translateY(1px) scale(0.98); }

.rinka-nj-btn--back {
	display: inline-block;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.32);
	box-shadow: none;
	font-size: 0.82rem;
	font-weight: 600;
	padding: 0.6em 1.3em;
	text-decoration: none;
	margin-top: 0.2em;
}
.rinka-nj-btn--back:hover { background: rgba(255, 255, 255, 0.18); }

.rinka-nj-btn--choice {
	display: block;
	width: 100%;
	background: rgba(30, 26, 32, 0.86);
	border: 1px solid rgba(255, 255, 255, 0.4);
	backdrop-filter: blur(3px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
	text-align: center;
	margin: 0 0 0.5em;
	font-weight: 600;
	font-size: 0.86rem;
}
.rinka-nj-btn--choice:last-child { margin-bottom: 0; }

.rinka-nj-title__gallery { width: 100%; margin-top: 0.6em; }
.rinka-nj-title__gallery-label { font-size: 0.76rem; opacity: 0.8; margin: 0 0 0.5em; }
.rinka-nj-title__end-list { display: flex; flex-direction: column; gap: 0.4em; }
.rinka-nj-title__end {
	display: flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.45em 0.8em;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.08);
	font-size: 0.82rem;
	opacity: 0.55;
}
.rinka-nj-title__end.is-got { opacity: 1; background: rgba(247, 168, 200, 0.22); }
.rinka-nj-title__end-ic { font-size: 1em; }

.rinka-nj-title--end .rinka-nj-title__h { font-size: 1.5rem; }

/* ---- サウンド切替 ---- */
.rinka-nj-mute {
	appearance: none;
	border: none;
	cursor: pointer;
	position: absolute;
	top: 0.7em;
	right: 0.7em;
	width: 36px;
	height: 36px;
	min-height: 36px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.4);
	color: #fff;
	font-size: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 5;
}
.rinka-nj-title .rinka-nj-mute { top: 0.9em; right: 0.9em; }

/* ---- 全画面切替（ゲーム枠のみ・ページ全体は対象外） ---- */
.rinka-nj-fullscreen {
	appearance: none;
	border: none;
	cursor: pointer;
	position: absolute;
	top: 0.7em;
	left: 0.7em;
	width: 36px;
	height: 36px;
	min-height: 36px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.4);
	color: #fff;
	font-size: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 5;
}
.rinka-nj-title .rinka-nj-fullscreen { top: 0.9em; left: 0.9em; }
.rinka-nj-title--end .rinka-nj-fullscreen { position: static; margin-top: 0.3em; width: auto; height: auto; padding: 0.5em 1em; border-radius: 999px; font-size: 0.82rem; }

.rinka-nj__frame:fullscreen,
.rinka-nj__frame:-webkit-full-screen {
	max-height: 100vh;
	width: 100vw;
	height: 100vh;
	aspect-ratio: auto;
	border-radius: 0;
}

/* iOS Safari 等、要素のネイティブ全画面APIが無い端末むけのCSS疑似フルスクリーン
   （JS側 enterPseudoFullscreen/exitPseudoFullscreen が is-pseudo-fullscreen を付け外しする）。
   position:fixedで実際のビューポート全体を占有する。100dvh 未対応ブラウザ向けに 100vh を先に
   フォールバックとして書いてから 100dvh で上書き（対応ブラウザではアドレスバー分のズレを防ぐ）。 */
.rinka-nj__frame.is-pseudo-fullscreen {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	height: 100dvh;
	max-height: none;
	max-width: none;
	aspect-ratio: auto;
	border-radius: 0;
	z-index: 99999;
}
html.rinka-nj-lock-scroll,
body.rinka-nj-lock-scroll {
	overflow: hidden !important;
	height: 100%;
}

/* フルスクリーン中（ネイティブ／疑似どちらも）は、キャラクター立ち絵の最大幅制限
   （通常表示のスマホ縦カード用 430px 上限）を外す。外さないと画面を広げても
   キャラだけ小さいまま＝「被写体が小さくなる」状態になる。高さ基準でスケールさせ、
   横長画面（PC全画面）でも不自然に横へ伸び切らないようにする。 */
.rinka-nj__frame:fullscreen .rinka-nj__portrait-wrap,
.rinka-nj__frame:-webkit-full-screen .rinka-nj__portrait-wrap,
.rinka-nj__frame.is-pseudo-fullscreen .rinka-nj__portrait-wrap {
	max-width: min(70vh, 96vw);
}

/* フルスクリーン中はセリフ文字が通常表示のままだと小さすぎる（ユーザー指摘：
   PCで最大化すると文字が小さい）。box自体も中央寄せ・幅を制限して読みやすい
   行長に整え、文字サイズは clamp() で画面サイズに応じて拡大する。
   スマホの疑似フルスクリーン（縦長・幅が狭い）でも clamp の下限で通常表示と
   同程度のサイズに収まる。 */
.rinka-nj__frame:fullscreen .rinka-nj__box,
.rinka-nj__frame:-webkit-full-screen .rinka-nj__box,
.rinka-nj__frame.is-pseudo-fullscreen .rinka-nj__box {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: min(92vw, 62em);
	bottom: 2.2vh;
	padding: 1.3em 1.7em 1.6em;
}
.rinka-nj__frame:fullscreen .rinka-nj__name,
.rinka-nj__frame:-webkit-full-screen .rinka-nj__name,
.rinka-nj__frame.is-pseudo-fullscreen .rinka-nj__name {
	font-size: clamp(0.78rem, 1.6vw, 1.25rem);
}
.rinka-nj__frame:fullscreen .rinka-nj__text,
.rinka-nj__frame:-webkit-full-screen .rinka-nj__text,
.rinka-nj__frame.is-pseudo-fullscreen .rinka-nj__text {
	font-size: clamp(0.94rem, 2.1vw, 1.7rem);
	line-height: 1.75;
}
.rinka-nj__frame:fullscreen .rinka-nj__next,
.rinka-nj__frame:-webkit-full-screen .rinka-nj__next,
.rinka-nj__frame.is-pseudo-fullscreen .rinka-nj__next {
	font-size: clamp(0.8rem, 1.4vw, 1.1rem);
}

/* ---- オートモード切替（セリフは自動送り・選択は必ず手動） ---- */
.rinka-nj-auto {
	appearance: none;
	border: none;
	cursor: pointer;
	position: absolute;
	top: 0.7em;
	left: 50%;
	transform: translateX(-50%);
	padding: 0.4em 0.95em;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.4);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	z-index: 5;
	transition: background 0.15s ease;
}
.rinka-nj-auto.is-on { background: var(--rinka-accent-strong, #c2568c); }

/* ---- プレイ画面 ---- */
.rinka-nj__stage {
	position: absolute;
	inset: 0;
}

.rinka-nj__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	filter: saturate(1.02);
}

.rinka-nj__portrait-wrap {
	position: absolute;
	left: 50%;
	bottom: -2%;
	transform: translateX(-50%);
	width: 100%;
	max-width: 430px;
	display: flex;
	justify-content: center;
	pointer-events: none;
}

.rinka-nj__portrait {
	width: 100%;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 14px 18px rgba(0, 0, 0, 0.32));
}

.rinka-nj__box {
	position: absolute;
	left: 0.6em;
	right: 0.6em;
	bottom: 0.6em;
	min-height: 6.2em;
	padding: 0.9em 1.05em 1.2em;
	border-radius: 14px;
	background: rgba(18, 16, 20, 0.82);
	backdrop-filter: blur(3px);
	color: #fff;
	cursor: pointer;
}

.rinka-nj__name {
	margin: 0 0 0.35em;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--rinka-accent, #f7a8c8);
	letter-spacing: 0.04em;
}

.rinka-nj__text {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.72;
	min-height: 3.4em;
	white-space: pre-wrap;
}

.rinka-nj__next {
	position: absolute;
	right: 1em;
	bottom: 0.5em;
	font-size: 0.8rem;
	opacity: 0;
	transition: opacity 0.2s ease;
}
.rinka-nj__next.is-ready {
	opacity: 0.75;
	animation: rinka-nj-bounce 1.1s ease-in-out infinite;
}

@keyframes rinka-nj-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(3px); }
}

/* 選択肢はセリフ枠（右下タップで進める領域）と絶対に重ねない。
   下寄り・中央寄せの独立した帯に置き、出現直後は少しの間タップを受け付けない
   （opacity/pointer-events を is-ready まで殺す）ことで「進めるつもりが誤って
   選んでしまう」事故を防ぐ（2026-08-17 実機フィードバックで判明・恒久対策）。 */
.rinka-nj__choices {
	position: absolute;
	left: 50%;
	bottom: 9.6em;
	transform: translateX(-50%);
	width: calc(100% - 3.2em);
	max-width: 300px;
	display: flex;
	flex-direction: column;
	gap: 0.5em;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.rinka-nj__choices.is-ready {
	opacity: 1;
	pointer-events: auto;
}

.rinka-nj__stage--ending .rinka-nj__box { min-height: 5.4em; }

.rinka-nj__ending-badge {
	position: absolute;
	top: 1.1em;
	left: 0.9em;
	right: 3em;
	color: #fff;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
.rinka-nj__ending-kicker { margin: 0; font-size: 0.68rem; letter-spacing: 0.16em; opacity: 0.8; }
.rinka-nj__ending-title { margin: 0.15em 0 0; font-size: 1.15rem; }

@media (prefers-reduced-motion: reduce) {
	.rinka-nj__next.is-ready { animation: none; }
	.rinka-nj-btn { transition: none; }
}

@media (prefers-color-scheme: dark) {
	.rinka-nj__frame { box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55); }
}

/* ---- UIの印（絵文字→Codex の絵・線のSVG／2026-09-28） ----
   遊ぶ枠の中だけ。大きさは今までの絵文字（1rem 前後）に合わせる＝配置は変えない。
   ページの外側は新デザイン（body.rw26）になったので、枠の中にはそのCSSが効かないよう念のため打ち消す。 */
.rinka-nj-ico {
	display: inline-block;
	width: 1.3em;
	height: 1.3em;
	object-fit: contain;
	vertical-align: -0.28em;
	flex: none;
	pointer-events: none;
}
.rinka-nj-mute .rinka-nj-ico,
.rinka-nj-fullscreen .rinka-nj-ico { width: 22px; height: 22px; vertical-align: middle; }
.rinka-nj-ico--svg { width: 20px; height: 20px; color: #fff; }
.rinka-nj-title--end .rinka-nj-fullscreen .rinka-nj-ico--svg { width: 18px; height: 18px; }
.rinka-nj-title__end-ic { display: inline-flex; align-items: center; }
.rinka-nj-title__end-ic .rinka-nj-ico { width: 1.25em; height: 1.25em; }
.rinka-nj-title__end:not(.is-got) .rinka-nj-title__end-ic .rinka-nj-ico { filter: grayscale(0.35); }
.rinka-nj-btn--back { display: inline-flex; align-items: center; justify-content: center; gap: 0.4em; min-height: 44px; }
.rinka-nj-btn--back .rinka-nj-ico { width: 1.35em; height: 1.35em; vertical-align: middle; }
/* 押せる範囲だけ 44px に（見た目の丸は 36px のまま） */
.rinka-nj-mute::after,
.rinka-nj-fullscreen::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: 44px;
	height: 44px;
	transform: translate(-50%, -50%);
}
.rinka-nj-title--end .rinka-nj-fullscreen { position: relative; min-height: 44px; }
/* 新デザイン（body.rw26）の共通の動き・影を枠の中へ持ち込まない */
body.rw26 .rinka-nj__frame,
body.rw26 .rinka-nj__frame * { animation-timeline: auto; }
body.rw26 .rinka-nj__frame :is(.rinka-nj-btn, .rinka-nj-mute, .rinka-nj-fullscreen, .rinka-nj-auto) { scale: none; translate: none; }

/* 読んでいる間（はじめる を押したあと）は、右下のりんか・最新ポスト・かくれうさぎ・上へ戻る を
   ノベルの画面に重ねない（セリフ枠や選択肢を押しまちがえないように・2026-09-28） */
body:has(#rinka-nj-frame .rinka-nj__stage) :is(.rinka-mascot, .rinka-fs-xwidget-open, .rinka-fs-xwidget, .rinka-fs-bunny, .rinka-totop) {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* 疑似フルスクリーン（iOS など）の時は、祖先の transform / z-index の箱に閉じこめられないようにし、
   サイトのヘッダー・下部ナビ・浮いている部品を隠す（前からヘッダーが上にかぶっていた・2026-09-28） */
body:has(.rinka-nj__frame.is-pseudo-fullscreen) :is(.rinka-homepage, #main, .main, #content, .content, .content-in, #container, .container, #wrap) {
	transform: none !important;
	animation: none !important;
	filter: none !important;
	z-index: auto !important;
	contain: none !important;
}
body:has(.rinka-nj__frame.is-pseudo-fullscreen) :is(#header-container, .header-container, .rinka-bottom-nav, .mobile-menu-buttons, #navi, .rw26-chip, .rw26-progress) {
	visibility: hidden !important;
}

/* =====================================================================
 * ここから下＝共通エンジンで足した物（rinka-nv-*）
 * ===================================================================== */

/* ---- 放課後の5秒の絵文字（▶ ⏸ ▼）を SVG に替えた分の並び ---- */
.rinka-nj-auto {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.3em;
	white-space: nowrap;
}
.rinka-nj-auto .rinka-nj-ico--svg { width: 1.05em; height: 1.05em; }
.rinka-nj-auto::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: max(100%, 44px);
	height: 44px;
	transform: translate(-50%, -50%);
}
.rinka-nj__next .rinka-nv-next-ico { width: 1em; height: 1em; vertical-align: middle; color: #fff; }
/* 結末の名前が左上の全画面ボタンと重なっていたのを直す（旧エンジンから続いていた重なり・単体版と同じ直し） */
.rinka-nj__ending-badge { top: 3.6em; }

/* ---- 全画面の動画・絵（1個の <video> を使い回す） ---- */
.rinka-nv-media {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background: #0b0b0e;
}
.rinka-nv-media [hidden] { display: none !important; }
/* 縦 3:4 の動画を 9:16 の枠へ入れた時の上下の帯（同じ絵をぼかして敷く／data.letterbox:'color' なら色だけ） */
.rinka-nv-media__band {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}
.rinka-nv-media__band.is-blur {
	filter: blur(22px) brightness(0.55) saturate(1.1);
	transform: scale(1.15);
}
.rinka-nv-media__video,
.rinka-nv-media__cg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain; /* クロップしない（cover 禁止） */
	object-position: center;
	display: block;
	background: transparent;
}
.rinka-nv-media__spin {
	position: absolute;
	left: 50%;
	top: 42%;
	width: 42px;
	height: 42px;
	margin: -21px 0 0 -21px;
	pointer-events: none;
}
.rinka-nv-media__spin span {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	border: 3px solid rgba(255, 255, 255, 0.25);
	border-top-color: #fff;
	animation: rinka-nv-spin 0.9s linear infinite;
}
@keyframes rinka-nv-spin { to { transform: rotate(360deg); } }
.rinka-nv-unmute {
	appearance: none;
	position: absolute;
	left: 50%;
	top: 3.6em;
	transform: translateX(-50%);
	z-index: 6;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	min-height: 44px;
	padding: 0 1.1em;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.62);
	color: #fff;
	font: inherit;
	font-size: 0.8rem;
	font-weight: 700;
	cursor: pointer;
}

/* ---- 上の道具（自動・スキップ・ログ・音量） ---- */
.rinka-nv-tools {
	position: absolute;
	top: 0.7em;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 0.35em;
	z-index: 5;
}
.rinka-nv-tools .rinka-nj-auto { position: relative; top: auto; left: auto; transform: none; }
.rinka-nv-tools .rinka-nj-auto,
.rinka-nv-tool {
	height: 36px;
	min-height: 36px;
	padding: 0 0.85em;
	font-size: 0.72rem;
}
.rinka-nv-tool {
	appearance: none;
	border: none;
	cursor: pointer;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.3em;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.4);
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	letter-spacing: 0.02em;
	white-space: nowrap;
	transition: background 0.15s ease;
}
.rinka-nv-tool.is-on { background: var(--rinka-accent-strong, #c2568c); }
.rinka-nv-tool--ic { width: 36px; padding: 0; }
.rinka-nv-tool .rinka-nj-ico--svg { width: 1.05em; height: 1.05em; }
.rinka-nv-tool--ic .rinka-nj-ico--svg { width: 18px; height: 18px; }
.rinka-nv-tool::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: max(100%, 44px);
	height: 44px;
	transform: translate(-50%, -50%);
}
@media (max-width: 359px) {
	.rinka-nv-tool span, .rinka-nv-tools .rinka-nj-auto span { display: none; }
}

/* ---- スコア（好感度・距離感など） ---- */
.rinka-nv-score {
	position: absolute;
	top: 3.9em;
	left: 50%;
	transform: translateX(-50%);
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.25em 0.9em;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.45);
	color: #fff;
	font-size: 0.72rem;
	white-space: nowrap;
	pointer-events: none;
}
.rinka-nv-score b { font-size: 0.9rem; min-width: 1.4em; text-align: center; }
.rinka-nv-score__pop {
	position: absolute;
	right: -0.4em;
	top: -0.9em;
	font-weight: 800;
	font-size: 0.95rem;
	color: #ffd67a;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
	animation: rinka-nv-pop 1.4s ease-out forwards;
}
.rinka-nv-score__pop.is-down { color: #9fd0ff; }
@keyframes rinka-nv-pop {
	0% { opacity: 0; transform: translateY(6px) scale(0.7); }
	20% { opacity: 1; transform: translateY(0) scale(1.1); }
	100% { opacity: 0; transform: translateY(-14px) scale(1); }
}

/* ---- タイトル・締めの画面に足した物 ---- */
.rinka-nv-btn--resume { display: inline-flex; align-items: center; justify-content: center; gap: 0.45em; min-height: 44px; }
.rinka-nv-btn--resume .rinka-nj-ico--svg { width: 18px; height: 18px; }
.rinka-nv-btn--sub,
.rinka-nv-btn--album {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	min-height: 44px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.4);
	box-shadow: none;
	font-size: 0.86rem;
}
.rinka-nv-btn--album { font-size: 0.82rem; padding: 0.5em 1.3em; }
.rinka-nv-btn--album .rinka-nj-ico { width: 1.3em; height: 1.3em; }
.rinka-nj-title .rinka-nj-btn--main { min-height: 44px; }
.rinka-nv-credit { margin: 0.2em 0 0; font-size: 0.64rem; line-height: 1.6; opacity: 0.72; }
.rinka-nv-picks {
	width: 100%;
	max-width: 22em;
	padding: 0.55em 0.9em;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.08);
	font-size: 0.8rem;
	text-align: left;
}
.rinka-nv-picks__h { margin: 0 0 0.25em; font-size: 0.72rem; opacity: 0.8; letter-spacing: 0.06em; }
.rinka-nv-picks ol { margin: 0; padding-left: 1.4em; line-height: 1.7; }

/* ---- 重ねる画面（ログ・音量・アルバム・外部サイトの確認） ---- */
.rinka-nv-ov {
	position: absolute;
	inset: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1em;
	background: rgba(8, 8, 12, 0.95);
	color: #fff;
	font-family: var(--rds-font, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif);
}
.rinka-nv-ov__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7em;
	width: min(100%, 26em);
	max-height: 100%;
	text-align: center;
}
.rinka-nv-ov__h { margin: 0; font-size: 1rem; letter-spacing: 0.06em; }
.rinka-nv-ov__msg { margin: 0; font-size: 0.9rem; line-height: 1.7; }
.rinka-nv-ov__url { margin: 0; font-size: 0.74rem; opacity: 0.7; word-break: break-all; }
.rinka-nv-ov__close {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	min-height: 44px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.4);
	box-shadow: none;
	font-size: 0.86rem;
}
.rinka-nv-ov__close .rinka-nj-ico--svg { width: 16px; height: 16px; }
.rinka-nv-log {
	flex: 1 1 auto;
	min-height: 0;
	width: 100%;
	margin: 0;
	padding: 0.2em 0.4em;
	list-style: none;
	overflow-y: auto;
	text-align: left;
	font-size: 0.86rem;
	line-height: 1.7;
}
.rinka-nv-log li { padding: 0.45em 0.2em; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.rinka-nv-log b { display: block; font-size: 0.72rem; color: var(--rinka-accent, #f7a8c8); }
.rinka-nv-range { display: flex; flex-direction: column; gap: 0.35em; width: 100%; font-size: 0.84rem; text-align: left; }
.rinka-nv-range input { width: 100%; min-height: 44px; accent-color: var(--rinka-accent-strong, #c2568c); }
.rinka-nv-album {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.6em;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rinka-nv-album__cell { display: flex; flex-direction: column; gap: 0.3em; font-size: 0.7rem; line-height: 1.4; }
.rinka-nv-album__pic {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 4;
	border-radius: 10px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.08);
}
.rinka-nv-album__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rinka-nv-album__cell.is-locked { opacity: 0.55; }
.rinka-nv-album__gift { display: flex; flex-direction: column; align-items: center; gap: 0.4em; font-size: 0.78rem; }
.rinka-nv-album__gift img { width: min(46vw, 180px); aspect-ratio: 1080 / 1512; object-fit: cover; border-radius: 12px; box-shadow: 0 0 24px rgba(255, 210, 120, 0.55); }
.rinka-nv-album__gift p { margin: 0; }
.rinka-nv-album__giftlock { display: flex; align-items: center; justify-content: center; width: 64px; height: 88px; border-radius: 10px; border: 2px dashed rgba(255, 255, 255, 0.3); }
.rinka-nv-album__gift.is-locked { opacity: 0.7; }

.rinka-nv-toast {
	position: absolute;
	left: 50%;
	bottom: 9.8em;
	transform: translateX(-50%);
	z-index: 25;
	margin: 0;
	padding: 0.5em 1.1em;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.75);
	color: #fff;
	font-size: 0.78rem;
	white-space: nowrap;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	.rinka-nv-score__pop, .rinka-nv-media__spin span { animation: none; }
}
body.rw26 .rinka-nj__frame :is(.rinka-nv-tool, .rinka-nv-unmute, .rinka-nv-ov__close) { scale: none; translate: none; }
