:root{--bg:#0f1420;--card:#171d2b;--tx:#e8ecf4;--dim:#9aa6bd;--ac:#7aa2ff;--line:#263048}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);
  font-family:"Pretendard","Noto Sans KR",-apple-system,"Segoe UI",sans-serif;
  line-height:1.9;font-size:17px;-webkit-text-size-adjust:100%}
a{color:var(--ac);text-decoration:none}
a:hover{text-decoration:underline}
.nv-top{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:14px 20px;border-bottom:1px solid var(--line);background:#121726;
  position:sticky;top:0;z-index:5}
.nv-brand{font-weight:700;font-size:15px;color:var(--tx)}
.nv-app{font-size:13px;padding:7px 14px;border:1px solid var(--ac);border-radius:999px}
.nv-main{max-width:720px;margin:0 auto;padding:28px 20px 60px}
h1{font-size:29px;line-height:1.4;margin:.3em 0}
h2{font-size:22px;margin:1.8em 0 .6em;padding-bottom:.3em;border-bottom:1px solid var(--line)}
h3{font-size:19px;margin:1.6em 0 .5em}
p{margin:0 0 1.3em}
hr{border:0;border-top:1px solid var(--line);margin:2.2em 0}
figure{margin:1.8em 0}
figure img{width:100%;height:auto;border-radius:12px;display:block}
.nv-lead{color:var(--dim)}
.nv-meta{color:var(--dim);font-size:14px}
.nv-sub{font-size:19px;color:var(--ac);margin:.2em 0 .6em}
.nv-crumb{font-size:13px;color:var(--dim);margin-bottom:18px}
.nv-head{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:28px}
.nv-season{margin:34px 0}
.nv-sdesc{color:var(--dim);font-size:15px}
.nv-list{list-style:none;padding:0;margin:14px 0}
.nv-list li{border-bottom:1px solid var(--line)}
.nv-list a{display:flex;align-items:baseline;gap:12px;padding:13px 4px;color:var(--tx)}
.nv-list a:hover{background:#1b2232;text-decoration:none}
.nv-no{min-width:50px;color:var(--dim);font-size:13px}
.nv-ti{flex:1}
.nv-rt{color:var(--dim);font-size:12px}
.nv-nav{display:flex;justify-content:space-between;gap:12px;margin:36px 0}
.nv-nav a{padding:11px 16px;background:var(--card);border-radius:10px;font-size:14px}
.nv-cta{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:34px}
.nv-cta h3{margin-top:0;font-size:17px}
.nv-cta p{font-size:14px;color:var(--dim)}
.nv-btn{display:inline-block;padding:11px 22px;background:var(--ac);color:#0f1420;
  border-radius:999px;font-weight:700;font-size:14px}
.nv-foot{border-top:1px solid var(--line);padding:26px 20px 40px;text-align:center;
  font-size:13px;color:var(--dim)}
.nv-copy{font-size:12px}
@media(max-width:480px){body{font-size:16px}h1{font-size:24px}.nv-main{padding:20px 16px 48px}}
/* R035-b: 푸터를 본 사이트 법적 고지 구성과 정렬 */
.nv-foot-nav { margin: 0 0 8px; }
.nv-foot-legal { margin: 0 0 6px; }
.nv-foot-date { margin: 0; font-size: 12px; opacity: 0.65; }
.nv-foot-nav a, .nv-foot-legal a { margin: 0 2px; }
/* ============================================================
   R042: 본앱 디자인 정렬 (2026-10-07)
   종이톤 배경 #fafaf7 + 보라 포인트 #5b6fed / #7c5cff
   episode-reader.css, content-screen.css 팔레트와 일치시킴
   ※ 아래 블록이 상단 정의를 덮어씁니다 (원문 보존)
   ============================================================ */
:root{
  --bg:#fafaf7;
  --card:#ffffff;
  --tx:#333333;
  --dim:#888888;
  --ac:#5b6fed;
  --line:#ececec;
}
body{color:#333}
h1,h2,h3{color:#222}

/* 상단 바 — 앱 헤더와 동일한 보라 그라데이션 */
.nv-top{
  background:linear-gradient(135deg,#7c5cff,#5b6fed);
  border-bottom:none;
  box-shadow:0 1px 6px rgba(0,0,0,.08);
}
.nv-brand{color:#ffffff}
.nv-brand:hover{text-decoration:none;opacity:.9}
.nv-app{
  color:#ffffff;
  border:1px solid rgba(255,255,255,.75);
  background:transparent;
}
.nv-app:hover{text-decoration:none;background:rgba(255,255,255,.18)}

/* 카드형 요소 — 흰 배경 + 옅은 테두리 */
.nv-item,.nv-season,.nv-box,.nv-learn,.nv-nav a,blockquote{
  background:#ffffff;
  border-color:#ececec;
}
.nv-item,.nv-season,.nv-box,.nv-learn{
  border-radius:12px;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.nv-item a:hover{background:#f6f6fb;text-decoration:none}
blockquote{border-left:3px solid #5b6fed;color:#444}
.nv-nav a:hover{border-color:#5b6fed;color:#5b6fed;text-decoration:none}

/* 푸터 */
.nv-foot{
  border-top:1px solid #ececec;
  color:#999;
  text-align:center;
  padding:22px 20px 34px;
  font-size:13px;
  line-height:1.9;
}
.nv-foot a{color:#888}
/* ============================================================
   R042-b: hover / 버튼 색상 보정 (2026-10-07)
   31행 .nv-list a:hover 가 다크 테마 값(#1b2232)으로 남아 있어
   목록에 마우스를 올리면 배경이 검게 변하던 문제 수정.
   실제 마크업은 .nv-list(ul) > li > a 구조 (novel_ssr.py 181, 186행)
   ============================================================ */
.nv-list a{color:#333}
.nv-list a:hover{background:#f3f2ff;text-decoration:none}
.nv-list li:hover .nv-no,
.nv-list li:hover .nv-rt{color:#5b6fed}
.nv-list a:hover .nv-ti{color:#5b6fed}

/* 보라 버튼 위 글자는 흰색으로 */
.nv-btn{color:#ffffff}
.nv-btn:hover{background:#4a5cd8;text-decoration:none}

/* 본문 링크 기본색 */
a{color:#5b6fed}