/* 忘却のリヴェリオン｜読書画面テーマ「勿忘草の夜と書簡」（reader-theme.css）
   見た目とレイアウトのみ。表示／非表示・ロック・解放条件・本文には触れない
   （display:none / .hidden / #lockPanel の表示切替を上書きしない）。
   左＝みんなで読む「夜」、右＝自分だけの「書簡（紙）」。 */

:root{
  --rv-ink:#071222; --rv-night:#0c1a2e; --rv-night2:#12233b;
  --rv-text:#ece6d6; --rv-sub:#b7c3d3; --rv-faint:#7f8ea3;
  --rv-gold:#d8c08a; --rv-gold2:#f0dda6; --rv-blue:#8fb0ee; --rv-blue2:#5f86d6;
  --rv-paper:#f5efe1; --rv-paper2:#ebe2cd; --rv-paper-ink:#1c2740; --rv-paper-sub:#4a5672; --rv-seal:#8a2a3a;
  --rv-serif:"Shippori Mincho","Zen Old Mincho","Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP","Noto Serif CJK JP",serif;
  --rv-sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Noto Sans JP","Noto Sans CJK JP",system-ui,sans-serif;
}

/* ---------- 全体：夜空と勿忘草の気配 ---------- */
html body.reading-compact[data-view]:not(.rv-x){background:var(--rv-ink)}
html body.reading-compact[data-view]:not(.rv-x) #pageBackdrop{filter:saturate(.85) brightness(.55)}
html body.reading-compact[data-view]:not(.rv-x) #commonReader.common-reader{
  background:
    radial-gradient(1200px 500px at 15% -10%,rgba(95,134,214,.16),transparent 60%),
    radial-gradient(900px 400px at 110% 110%,rgba(216,192,138,.08),transparent 60%),
    linear-gradient(180deg,rgba(9,20,38,.94),rgba(6,14,27,.97))!important;
  border-right:1px solid rgba(216,192,138,.18);
}

/* ---------- 章の帯（オープニング〜あとがき） ---------- */
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.phase-reading-nav{
  background:linear-gradient(180deg,rgba(7,16,31,.97),rgba(7,16,31,.9))!important;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(216,192,138,.22)!important;box-shadow:0 10px 24px -14px rgba(0,0,0,.8);
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs .reading-stage-row{counter-reset:rv-stage}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab{
  counter-increment:rv-stage;position:relative;
  min-height:44px!important;padding:8px 10px 8px 12px!important;border-radius:10px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01))!important;
  border:1px solid rgba(183,195,211,.14)!important;color:var(--rv-sub)!important;
  font-family:var(--rv-serif)!important;font-weight:600!important;letter-spacing:.06em!important;
  transition:background .25s,border-color .25s,color .25s,transform .2s;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab::before{
  content:counter(rv-stage,upper-roman);display:inline-block;min-width:1.6em;margin-right:.45em;
  font-family:var(--rv-serif);font-size:.78em;color:var(--rv-faint);letter-spacing:0;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab:hover{border-color:rgba(216,192,138,.4)!important;color:var(--rv-text)!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab[aria-current="true"]{
  color:var(--rv-gold2)!important;border-color:rgba(216,192,138,.65)!important;
  background:linear-gradient(180deg,rgba(216,192,138,.18),rgba(216,192,138,.05))!important;
  box-shadow:inset 0 -2px 0 var(--rv-gold),0 0 18px -6px rgba(216,192,138,.55)!important;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab[aria-current="true"]::before{color:var(--rv-gold)}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab:disabled{opacity:.42!important}

/* 章の中の場面（食事のはじまり…） */
html body.reading-compact[data-view]:not(.rv-x) #commonReader .reading-stage-panel button{
  min-height:40px!important;border-radius:999px!important;padding:6px 14px!important;
  border:1px solid rgba(143,176,238,.22)!important;background:rgba(143,176,238,.06)!important;color:var(--rv-sub)!important;
  font-family:var(--rv-sans)!important;letter-spacing:.04em!important;transition:background .2s,color .2s,border-color .2s;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .reading-stage-panel button:hover{color:var(--rv-text)!important;border-color:rgba(143,176,238,.5)!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .reading-stage-panel button.active,
html body.reading-compact[data-view]:not(.rv-x) #commonReader .reading-stage-panel button[aria-current="true"],
html body.reading-compact[data-view]:not(.rv-x) #commonReader .reading-stage-panel button[aria-pressed="true"]{
  color:#0b1628!important;background:linear-gradient(180deg,var(--rv-gold2),var(--rv-gold))!important;border-color:transparent!important;font-weight:700!important;
}

/* ---------- 読み合わせ本文（夜） ---------- */
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingPanel{
  background:linear-gradient(180deg,rgba(13,26,46,.78),rgba(8,17,32,.9))!important;
  border:1px solid rgba(216,192,138,.16)!important;border-radius:16px!important;
  box-shadow:0 30px 60px -40px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.04)!important;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingText{max-width:720px;margin-inline:auto}

/* 地の文：吹き出しの外で、静かに */
html body.reading-compact[data-view]:not(.rv-x) :is(#reader,#commonReader) .story-prose{line-height:1.95!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .story-prose{color:#cdd6e3!important;font-family:var(--rv-serif)!important;letter-spacing:.02em!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .story-prose.prose-start{margin-top:1.3em!important}

/* 見出し【…】 */
html body.reading-compact[data-view]:not(.rv-x) :is(#reader,#commonReader) .story-marker:not(.scene-marker){
  border:0!important;background:none!important;position:relative;padding-bottom:14px!important;
}
html body.reading-compact[data-view]:not(.rv-x) :is(#reader,#commonReader) .story-marker:not(.scene-marker)::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,var(--rv-gold) 0,rgba(216,192,138,.35) 30%,transparent 85%);
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .story-marker:not(.scene-marker) h4{
  font-family:var(--rv-serif)!important;color:var(--rv-gold2)!important;letter-spacing:.08em!important;font-weight:600!important;
}

/* 場面バナー（既存の背景画像を活かして額装） */
html body.reading-compact[data-view]:not(.rv-x) :is(#reader,#commonReader) .story-marker.scene-marker{
  border-radius:14px!important;overflow:hidden;
  border:1px solid rgba(216,192,138,.45)!important;
  box-shadow:0 18px 40px -22px rgba(0,0,0,.95),inset 0 0 0 1px rgba(255,255,255,.05),inset 0 -60px 60px -30px rgba(4,10,20,.85)!important;
  margin:34px 0 20px!important;
}
html body.reading-compact[data-view]:not(.rv-x) :is(#reader,#commonReader) .story-marker.scene-marker h4{
  font-family:var(--rv-serif)!important;letter-spacing:.12em!important;color:#fff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.85)!important;
}
html body.reading-compact[data-view]:not(.rv-x) :is(#reader,#commonReader) .story-scene-break{
  border:0!important;height:22px!important;margin:30px auto!important;width:60%;opacity:.8;
  background:
    radial-gradient(circle at 50% 50%,var(--rv-blue) 0 3px,transparent 3.5px),
    linear-gradient(90deg,transparent,rgba(216,192,138,.55) 30%,rgba(216,192,138,.55) 44%,transparent 46%,transparent 54%,rgba(216,192,138,.55) 56%,rgba(216,192,138,.55) 70%,transparent) center/100% 1px no-repeat!important;
}

/* 台詞：半透明の濃紺＋人物色の縁 */
html body.reading-compact[data-view]:not(.rv-x) #commonReader .dialogue-row{gap:12px}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .dialogue-bubble{
  background:linear-gradient(180deg,rgba(26,42,70,.92),rgba(15,27,48,.94))!important;
  border:1px solid rgba(255,255,255,.07)!important;border-radius:14px!important;
  box-shadow:0 10px 26px -18px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.05)!important;
  padding:12px 16px 13px!important;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .dialogue-row.alternate-left .dialogue-bubble{border-left:3px solid var(--speaker-color,#8fb0ee)!important;border-top-left-radius:4px!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .dialogue-row.alternate-right .dialogue-bubble{border-right:3px solid var(--speaker-color,#8fb0ee)!important;border-top-right-radius:4px!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .dialogue-row .dialogue-bubble p{color:var(--rv-text)!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .dialogue-name{
  color:color-mix(in srgb,var(--speaker-color,#8fb0ee) 55%,#ffffff)!important;
  font-family:var(--rv-serif)!important;font-size:.78rem!important;letter-spacing:.16em!important;font-weight:600!important;margin-bottom:6px!important;
}
html body.reading-compact[data-view]:not(.rv-x) :is(#reader,#commonReader) .dialogue-avatar{
  box-shadow:0 0 0 3px rgba(7,18,34,.9),0 0 0 4px rgba(216,192,138,.55),0 8px 18px -8px rgba(0,0,0,.8)!important;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader .reading-workspace .dialogue-avatar{width:46px!important;height:46px!important;flex-basis:46px!important}
html body.reading-compact[data-view]:not(.rv-x) #commonReader ruby rt{color:var(--rv-faint)}

/* 読み合わせ開始カード（READY?） */
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingConfirm{
  background:radial-gradient(600px 220px at 50% 0,rgba(95,134,214,.18),transparent 70%)!important;
}
html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingConfirm h2,html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingConfirmTitle{font-family:var(--rv-serif)!important;letter-spacing:.1em!important}

/* ---------- ボタン ---------- */
html body.reading-compact[data-view]:not(.rv-x) button.primary,html body.reading-compact[data-view]:not(.rv-x) .primary:is(button,a){
  background:linear-gradient(180deg,var(--rv-gold2),var(--rv-gold))!important;color:#13203a!important;
  border:0!important;border-radius:999px!important;font-weight:700!important;letter-spacing:.06em!important;
  box-shadow:0 10px 24px -12px rgba(216,192,138,.7),inset 0 1px 0 rgba(255,255,255,.6)!important;
  transition:transform .2s,box-shadow .2s;
}
html body.reading-compact[data-view]:not(.rv-x) button.primary:hover{transform:translateY(-1px);box-shadow:0 14px 28px -12px rgba(216,192,138,.85),inset 0 1px 0 rgba(255,255,255,.6)!important}
html body.reading-compact[data-view]:not(.rv-x) button:focus-visible,html body.reading-compact[data-view]:not(.rv-x) a:focus-visible{outline:2px solid var(--rv-gold2)!important;outline-offset:3px!important}

/* ---------- ハンドアウト（書簡＝紙） ---------- */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader.reader{
  background:linear-gradient(180deg,#0b1729,#091424)!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader .handout-nav-dock{
  background:linear-gradient(180deg,rgba(9,20,36,.98),rgba(9,20,36,.94))!important;
  border-bottom:1px solid rgba(216,192,138,.3)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader .handout-nav-dock #chapterTabs button{
  border-radius:10px!important;font-family:var(--rv-serif)!important;letter-spacing:.06em!important;min-height:44px!important;
  border:1px solid rgba(183,195,211,.14)!important;background:rgba(255,255,255,.02)!important;color:var(--rv-sub)!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader .handout-nav-dock #chapterTabs button.active{
  color:var(--rv-gold2)!important;border-color:rgba(216,192,138,.65)!important;
  background:linear-gradient(180deg,rgba(216,192,138,.18),rgba(216,192,138,.05))!important;box-shadow:inset 0 -2px 0 var(--rv-gold)!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader .handout-nav-dock .chapter-local-nav button{
  border-radius:999px!important;color:var(--rv-sub)!important;min-height:36px!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader .handout-nav-dock .chapter-local-nav button:hover{color:var(--rv-gold2)!important}

/* 本文の紙 */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel{
  background:
    radial-gradient(120% 60% at 50% 0,rgba(255,255,255,.55),transparent 60%),
    repeating-radial-gradient(circle at 20% 30%,rgba(120,100,60,.025) 0 1px,transparent 1px 3px),
    linear-gradient(180deg,var(--rv-paper),var(--rv-paper2))!important;
  color:var(--rv-paper-ink)!important;border-radius:14px!important;
  border:1px solid rgba(216,192,138,.55)!important;
  box-shadow:0 30px 60px -36px rgba(0,0,0,.95),inset 0 0 0 6px rgba(255,255,255,.35),inset 0 0 0 7px rgba(138,106,52,.18)!important;
  padding:28px clamp(18px,4vw,40px) 36px!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel :is(.story-prose,p,li,dd,dt,.story-list){color:var(--rv-paper-ink)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .story-prose{font-family:var(--rv-serif)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel ruby rt{color:#6a7590!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .story-marker:not(.scene-marker) h4{
  color:var(--rv-seal)!important;font-family:var(--rv-serif)!important;letter-spacing:.08em!important;font-weight:700!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .story-marker:not(.scene-marker)::after{
  background:linear-gradient(90deg,rgba(138,42,58,.7),rgba(138,42,58,.2) 35%,transparent 85%);
}
/* 秘匿情報：封蝋の囲み */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .story-marker.important{
  padding:14px 56px 14px 16px!important;border-radius:10px!important;margin-top:30px!important;
  background:linear-gradient(180deg,rgba(138,42,58,.08),rgba(138,42,58,.03))!important;
  border:1px solid rgba(138,42,58,.45)!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .story-marker.important::after{
  content:"";position:absolute;right:12px;top:50%;left:auto;bottom:auto;width:32px;height:32px;margin-top:-16px;border-radius:50%;
  background:radial-gradient(circle at 38% 35%,#c25a68,#8a2a3a 60%,#5e1724);
  box-shadow:0 2px 6px rgba(94,23,36,.5),inset 0 0 0 3px rgba(255,255,255,.12);
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .story-marker.important h4{color:var(--rv-seal)!important}
/* 書簡の中の台詞 */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .dialogue-bubble{
  background:rgba(255,255,255,.72)!important;border:1px solid rgba(28,39,64,.12)!important;border-radius:12px!important;
  box-shadow:0 6px 16px -12px rgba(28,39,64,.5)!important;
}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .dialogue-row.alternate-left .dialogue-bubble{border-left:3px solid var(--speaker-color,#5f86d6)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .dialogue-row.alternate-right .dialogue-bubble{border-right:3px solid var(--speaker-color,#5f86d6)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .dialogue-row .dialogue-bubble p{color:var(--rv-paper-ink)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .dialogue-name{color:color-mix(in srgb,var(--speaker-color,#5f86d6) 75%,#1c2740)!important;font-family:var(--rv-serif)!important;letter-spacing:.14em!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .dialogue-avatar{box-shadow:0 0 0 3px var(--rv-paper),0 0 0 4px rgba(138,106,52,.45)!important}
/* 人物関係などの表 */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel :is(.relationship-entry,dl){border-color:rgba(28,39,64,.14)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .relationship-entry{background:rgba(255,255,255,.45)!important;border-radius:10px!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel dt{color:var(--rv-paper-sub)!important}
/* 自分の人物カード（ハンドアウト冒頭） */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel > :first-child:is(header,.handout-hero,.character-card){border-radius:12px!important}
/* HO1末尾の案内（entry-flow.js） */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .entry-next p{color:var(--rv-seal)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .entry-next small{color:var(--rv-paper-sub)!important}
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel .entry-next::before{background:linear-gradient(90deg,transparent,rgba(138,42,58,.6),transparent)!important}

/* 未開封（鍵）の案内：紙の封筒 */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #lockPanel{
  border-radius:14px!important;border:1px dashed rgba(216,192,138,.5)!important;
  background:radial-gradient(400px 160px at 50% 0,rgba(216,192,138,.12),transparent 70%),rgba(10,22,40,.7)!important;
}

/* 左右の境界 */
html body.reading-compact[data-view]:not(.rv-x) :is(.reader-resizer,.pane-resizer,.split-resizer,[data-resizer]){background:linear-gradient(180deg,transparent,rgba(216,192,138,.55),transparent)!important}

/* ---------- 公開プロフィール ---------- */
html body.reading-compact[data-view]:not(.rv-x) #publicProfile.public-profile{
  border:1px solid rgba(216,192,138,.35)!important;border-radius:18px!important;
  background:
    radial-gradient(700px 300px at 20% 0,rgba(95,134,214,.18),transparent 60%),
    linear-gradient(180deg,rgba(14,28,50,.96),rgba(8,17,32,.97))!important;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.05)!important;
}
html body.reading-compact[data-view]:not(.rv-x) #publicProfile .cast-guide>img{filter:drop-shadow(0 18px 30px rgba(0,0,0,.6)) drop-shadow(0 0 24px rgba(143,176,238,.18))}
html body.reading-compact[data-view]:not(.rv-x) #publicProfile :is(h2,h3){font-family:var(--rv-serif)!important;letter-spacing:.08em!important}

/* ---------- 投票 ---------- */
html body.reading-compact[data-view]:not(.rv-x) .vote-form fieldset{
  border:1px solid rgba(216,192,138,.22)!important;border-radius:14px!important;background:rgba(255,255,255,.025)!important;
}
html body.reading-compact[data-view]:not(.rv-x) .vote-form legend{font-family:var(--rv-serif)!important;color:var(--rv-gold2)!important;letter-spacing:.06em!important}
html body.reading-compact[data-view]:not(.rv-x) .vote-form label:has(input:checked){border-color:var(--rv-gold)!important;box-shadow:0 0 0 1px var(--rv-gold),0 0 16px -6px rgba(216,192,138,.7)!important}

/* ---------- スマホ：見出しの重なりを減らし、本文を広く ---------- */
@media (max-width:760px){
  html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab{letter-spacing:.02em!important;padding:6px!important}
  html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingTabs.tiered-reading-nav.phase-reading-nav .reading-stage-row button.reading-stage-tab::before{content:none!important}
  html body.reading-compact[data-view]:not(.rv-x) #commonReader #readingPanel{border-radius:12px!important}
  html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel{padding:22px 16px 30px!important;border-radius:12px!important}
  html body.reading-compact[data-view]:not(.rv-x) #commonReader .reading-workspace .dialogue-avatar{width:40px!important;height:40px!important;flex-basis:40px!important}
}

@media (prefers-reduced-motion:reduce){
  html body.reading-compact[data-view]:not(.rv-x) :is(button,a){transition:none!important}
}

/* 紙の上の小さな金文字は読みにくいので、封蝋寄りの濃い金茶に */
html body.reading-compact[data-view]:not(.rv-x):not(.gm-mode) #reader #textPanel :is(.relationship-entry,.relationship-list,.person-marker) :is(small,span,em,b){color:#7a5320!important}
