:root { color-scheme: light dark; }
body { margin:0; font-family:"Hiragino Sans","Yu Gothic",system-ui,sans-serif; color:#1c1a22; background:#fbf8f6; line-height:1.7; }
.wrap { max-width:760px; margin:0 auto; padding:24px 20px 64px; }
.crumbs { font-size:13px; color:#7a7484; margin-bottom:18px; }
.crumbs a { color:#8b4054; text-decoration:none; }
h1 { font-size:clamp(26px,5vw,38px); margin:0 0 6px; }
h2 { font-size:18px; margin:32px 0 10px; }
.reading { color:#5a5566; font-size:14px; margin:0 0 20px; }
.profile { border-collapse:collapse; width:100%; background:#fff; border:1px solid #ecdfe2; border-radius:10px; overflow:hidden; }
.profile th, .profile td { text-align:left; padding:11px 14px; border-bottom:1px solid #f2e8ea; font-size:15px; }
.profile th { width:9em; background:#fdf6f7; color:#6b6474; font-weight:600; }
.profile tr:last-child th, .profile tr:last-child td { border-bottom:0; }
.thin { background:#fff; border:1px solid #ecdfe2; border-radius:10px; padding:14px; color:#6b6474; font-size:14px; }
.lead-block { display:flex; gap:18px; align-items:flex-start; flex-wrap:wrap; }
.lead-block .profile, .lead-block .thin { flex:1 1 300px; }
.photo { margin:0; flex:0 0 auto; }
.photo img { display:block; width:160px; height:auto; border-radius:10px; border:1px solid #ecdfe2; background:#fff; }
.photo figcaption { font-size:11px; color:#8a838f; margin-top:4px; text-align:center; }
.works { margin:22px 0; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.works .button + .button { background:#7a4bb5; }
.button { display:inline-block; background:#e0574a; color:#fff; text-decoration:none; padding:11px 20px; border-radius:8px; font-weight:700; font-size:15px; }
.pr { font-size:11px; color:#8a838f; border:1px solid #ddd6dc; border-radius:4px; padding:1px 6px; }
.source-block { margin-top:34px; border-top:1px solid #ecdfe2; padding-top:8px; }
.sources { padding-left:1.2em; font-size:14px; color:#5a5566; margin:8px 0; }
.sources a { color:#8b4054; }
.confirmed { font-size:13px; color:#8a838f; margin:6px 0 0; }
.related, .history { margin-top:30px; border-top:1px solid #ecdfe2; padding-top:8px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chips a { color:#8b4054; text-decoration:none; font-size:13px; border:1px solid #ecdfe2; border-radius:18px; padding:4px 12px; background:#fff; }
.kana-nav { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; }
.kana-nav a, .kana-nav .current { color:#8b4054; text-decoration:none; font-size:14px; border:1px solid #ecdfe2; border-radius:8px; padding:6px 12px; background:#fff; }
.kana-nav .current { background:#8b4054; color:#fff; border-color:#8b4054; }
.kana-nav.big { gap:12px; }
.kana-nav.big a { display:flex; flex-direction:column; align-items:center; min-width:88px; padding:14px 12px; font-size:18px; font-weight:700; }
.kana-nav.big a span { font-size:12px; font-weight:400; color:#8a838f; margin-top:2px; }
.reading-small { display:block; font-size:11px; color:#8a838f; }
.name-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:2px 12px; }
.name-list a { display:block; padding:3px 0; color:#3b3546; text-decoration:none; font-size:14px; }
.name-list a:hover { color:#8b4054; text-decoration:underline; }
footer { margin-top:44px; border-top:1px solid #ecdfe2; padding-top:16px; font-size:13px; color:#7a7484; }
footer a { color:#8b4054; }
.credit { margin-top:10px; }
.ugc { margin-top:34px; border-top:1px solid #ecdfe2; padding-top:8px; }
.vote-box { display:flex; align-items:center; gap:12px; margin:12px 0 4px; }
.vote { background:#8b4054; color:#fff; border:0; border-radius:8px; padding:10px 20px; font-size:15px; font-weight:700; cursor:pointer; }
.vote[disabled] { background:#c9c2cf; cursor:default; }
.vote-count { font-size:15px; color:#5a5566; }
.reviews { list-style:none; padding:0; margin:10px 0; }
.reviews li { background:#fff; border:1px solid #ecdfe2; border-radius:10px; padding:12px 14px; margin-bottom:10px; }
.review-body { margin:0 0 6px; font-size:15px; white-space:pre-wrap; }
.review-meta { margin:0; font-size:12px; color:#8a838f; }
.review-form { display:flex; flex-direction:column; gap:6px; margin-top:16px; }
.review-form label { font-size:13px; color:#6b6474; }
.review-form input, .review-form textarea { font:inherit; padding:10px 12px; border:1px solid #ecdfe2; border-radius:8px; background:#fff; color:inherit; }
.review-form .button { align-self:flex-start; border:0; cursor:pointer; }
.note { font-size:13px; color:#8a838f; }
.rank-list { padding-left:1.6em; }
.rank-list li { margin-bottom:6px; font-size:15px; }
.rank-list a { color:#8b4054; text-decoration:none; }
.rank-count { font-size:13px; color:#8a838f; margin-left:8px; }
@media (prefers-color-scheme: dark) {
  .reviews li, .review-form input, .review-form textarea { background:#211e28; border-color:#332d3d; }
}
.adult { font-weight:700; color:#b0453c; }
@media (prefers-color-scheme: dark) {
  body { background:#16141a; color:#ece8f0; }
  .profile, .thin, .chips a, .kana-nav a { background:#211e28; }
  .profile th { background:#272230; color:#b8b1c2; }
  .profile th, .profile td, .profile, .thin, .chips a, .kana-nav a { border-color:#332d3d; }
  .name-list a { color:#ded8e6; }
  .crumbs a, .sources a, .chips a, .kana-nav a, footer a, .name-list a:hover { color:#f0908a; }
}
