.xin-pagehead { padding: 28px 0 4px; }
.xin-pagehead h1 { margin-bottom: 6px; }
.xin-pagehead__sub { color: hsl(var(--muted-fg)); font-size: 14.5px; margin: 0; }
.xin-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 12.5px; color: hsl(var(--muted-fg)); }
.xin-crumbs a:hover { color: hsl(var(--primary)); }
.xin-crumbs svg { width: 12px; height: 12px; opacity: .6; }

.xin-novel-hero { position: relative; border-bottom: 1px solid hsl(var(--border)); }
.xin-novel-hero__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.xin-novel-hero__bg img { width: 100%; height: 100%; object-fit: cover; filter: blur(26px) saturate(1.05); transform: scale(1.18); opacity: .22; }
.xin-novel-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, hsl(var(--bg) / .78), hsl(var(--bg) / .94) 55%, hsl(var(--bg))); }
.xin-novel-hero__inner { position: relative; z-index: 1; display: grid; gap: 20px; padding: 26px 16px 30px; max-width: var(--wrap); margin-inline: auto; }
@media (min-width: 768px) { .xin-novel-hero__inner { grid-template-columns: 230px minmax(0, 1fr); gap: 32px; padding: 40px 16px 42px; } }
.xin-novel-hero__cover { position: relative; width: 168px; margin-inline: auto; aspect-ratio: 2/3; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-3); border: 1px solid hsl(var(--border)); background: hsl(var(--muted)); }
@media (min-width: 768px) { .xin-novel-hero__cover { width: 100%; margin: 0; } }
.xin-novel-hero__cover img { width: 100%; height: 100%; object-fit: cover; }
.xin-novel-hero__title { font-size: clamp(1.5rem, 1.15rem + 2vw, 2.5rem); margin-bottom: 4px; }
.xin-novel-hero__orig { font-size: 14px; color: hsl(var(--muted-fg)); margin-bottom: 10px; }
.xin-novel-hero__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.xin-novel-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
@media (max-width: 767px) { .xin-novel-hero__inner { text-align: center; } .xin-novel-hero__tags, .xin-novel-hero__actions { justify-content: center; } }

.xin-statbar { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 16px 0 0; padding: 14px 16px; border-radius: var(--radius); background: hsl(var(--card) / .7); border: 1px solid hsl(var(--border)); }
@media (min-width: 640px) { .xin-statbar { grid-template-columns: repeat(4, 1fr); } }
.xin-statbar div { text-align: center; }
.xin-statbar b { display: block; font-size: 17px; font-weight: 800; }
.xin-statbar span { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: hsl(var(--muted-fg)); }
.xin-statbar .is-gold { color: hsl(var(--gold)); }

.xin-novel-body { display: grid; gap: 28px; padding-top: 28px; }
@media (min-width: 1024px) { .xin-novel-body { grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; align-items: start; } }

.xin-panel { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 10px; padding: 18px; }
@media (min-width: 640px) { .xin-panel { padding: 22px; } }
.xin-panel + .xin-panel { margin-top: 20px; }
.xin-panel__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.xin-panel__head h2 { font-size: 18px; margin: 0; display: flex; align-items: center; gap: .5rem; }
.xin-panel__head h2 svg { width: 19px; height: 19px; color: hsl(var(--primary)); }

.xin-synopsis { position: relative; font-size: 15px; line-height: 1.75; }
.xin-synopsis.is-collapsed { max-height: 220px; overflow: hidden; }
.xin-synopsis.is-collapsed::after { content: ""; position: absolute; inset: auto 0 0 0; height: 90px; background: linear-gradient(to top, hsl(var(--card)), transparent); }
.xin-synopsis-toggle { margin-top: 10px; }

.xin-chaptertools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.xin-chaptertools input[type="search"], .xin-chaptertools input[type="text"] {
	flex: 1; min-width: 160px; padding: .5rem .875rem; font-family: inherit; font-size: 13.5px;
	color: hsl(var(--fg)); background: hsl(var(--bg)); border: 1px solid hsl(var(--input)); border-radius: 999px;
}
.xin-chaptertools input:focus { outline: none; border-color: hsl(var(--ring)); }
.xin-chapters { list-style: none; margin: 0; padding: 0; max-height: 620px; overflow-y: auto; scrollbar-width: thin; }
.xin-chapters li + li { border-top: 1px solid hsl(var(--border)); }
.xin-chapters a { display: flex; align-items: center; gap: 10px; padding: 10px 8px; border-radius: var(--radius-sm); transition: background-color .16s ease; }
.xin-chapters a:hover { background: hsl(var(--accent)); }
.xin-chapters .is-read { color: hsl(var(--muted-fg)); }
.xin-chapters .is-read .xin-chapters__title { opacity: .65; }
.xin-chapters__num { flex: none; min-width: 46px; font-family: var(--font-mono); font-size: 12.5px; color: hsl(var(--muted-fg)); font-variant-numeric: tabular-nums; }
.xin-chapters__title { flex: 1; min-width: 0; font-size: 14px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xin-chapters a:hover .xin-chapters__title { color: hsl(var(--primary)); }
.xin-chapters__date { flex: none; font-size: 11.5px; color: hsl(var(--muted-fg)); }
.xin-chapters__lock { flex: none; color: hsl(var(--gold)); display: grid; place-items: center; }
.xin-chapters__lock svg { width: 14px; height: 14px; }
.xin-chapters__empty { padding: 24px; text-align: center; color: hsl(var(--muted-fg)); font-size: 14px; }

.xin-infolist { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.xin-infolist li { display: flex; gap: 10px; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid hsl(var(--border)); }
.xin-infolist li:last-child { border-bottom: 0; }
.xin-infolist span { color: hsl(var(--muted-fg)); flex: none; }
.xin-infolist b { font-weight: 600; text-align: right; }

.xin-rating { display: flex; align-items: center; gap: 8px; }
.xin-stars { display: inline-flex; gap: 1px; color: hsl(var(--gold)); }
.xin-stars svg { width: 16px; height: 16px; }
.xin-stars .is-off { color: hsl(var(--border)); }

.xin-progress { position: fixed; top: 0; left: 0; z-index: 120; height: 3px; width: 0; background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--gold))); transition: width .1s linear; }

.xin-reader { --read-size: 18px; --read-height: 1.85; --read-width: 720px; }
.xin-reader__head { padding: 24px 0 12px; text-align: center; }
.xin-reader__novel { font-size: 13px; font-weight: 600; color: hsl(var(--primary)); }
.xin-reader__title { font-size: clamp(1.25rem, 1rem + 1.4vw, 2rem); margin: 6px 0 8px; }
.xin-reader__meta { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; font-size: 12.5px; color: hsl(var(--muted-fg)); }
.xin-reader__meta span { display: inline-flex; align-items: center; gap: 4px; }
.xin-reader__meta svg { width: 14px; height: 14px; }

.xin-reader__content {
	max-width: var(--read-width); margin: 20px auto 0; padding: 0 4px;
	font-family: var(--font-read); font-size: var(--read-size); line-height: var(--read-height);
	letter-spacing: .003em;
}
.xin-reader__content p { margin: 0 0 1.15em; text-align: justify; hyphens: auto; }
.xin-reader__content h2, .xin-reader__content h3 { font-family: var(--font); margin-top: 1.6em; }
.xin-reader__content img { margin: 1.5em auto; border-radius: var(--radius-sm); }
.xin-reader--sans .xin-reader__content { font-family: var(--font); }

.xin-reader__toolbar {
	position: sticky; bottom: 12px; z-index: 60; display: flex; flex-wrap: wrap; gap: 6px;
	align-items: center; justify-content: center; width: fit-content; margin: 26px auto 0;
	padding: 6px; border-radius: 999px;
	background: hsl(var(--popover) / .92); border: 1px solid hsl(var(--border));
	box-shadow: var(--shadow-3); backdrop-filter: blur(12px);
}
@media (max-width: 767px) { .xin-reader__toolbar { bottom: 70px; } }
.xin-reader__toolbar .xin-iconbtn { width: 36px; height: 36px; }
.xin-reader__toolbar .xin-iconbtn.is-active { background: hsl(var(--primary) / .14); color: hsl(var(--primary)); }
.xin-reader__sep { width: 1px; height: 22px; background: hsl(var(--border)); margin: 0 2px; }

.xin-chapnav { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 26px; }
.xin-chapnav > a, .xin-chapnav > span {
	display: flex; align-items: center; gap: 10px; padding: 14px 16px;
	border-radius: var(--radius); border: 1px solid hsl(var(--border)); background: hsl(var(--card));
	font-size: 13.5px; transition: all .2s ease; min-width: 0;
}
.xin-chapnav > a:hover { border-color: hsl(var(--primary) / .45); background: hsl(var(--accent)); }
.xin-chapnav > span { opacity: .45; }
.xin-chapnav__next { justify-content: flex-end; text-align: right; }
.xin-chapnav small { display: block; font-size: 11px; color: hsl(var(--muted-fg)); }
.xin-chapnav b { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xin-chapnav svg { width: 18px; height: 18px; flex: none; color: hsl(var(--muted-fg)); }

.xin-locked { text-align: center; padding: 34px 24px; border-radius: 12px; border: 1px solid hsl(var(--border)); background: hsl(var(--muted) / .6); }
.xin-locked h2 { font-size: 18px; margin-bottom: 6px; }
.xin-locked p { max-width: 46ch; margin-inline: auto; font-size: 14px; }
.xin-locked svg { display: block; width: 26px; height: 26px; color: hsl(var(--muted-fg)); margin: 0 auto 12px; }

.xin-reader--sepia .xin-reader__content { background: #f6efe2; color: #3b3227; padding: 26px 22px; border-radius: var(--radius); }
[data-theme="dark"] .xin-reader--sepia .xin-reader__content { background: #201c17; color: #d9cdb8; }

.xin-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 14px; margin-bottom: 20px; border-radius: var(--radius); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); }
.xin-filters select, .xin-filters input[type="search"] {
	padding: .5rem .875rem; font-family: inherit; font-size: 13.5px; color: hsl(var(--fg));
	background: hsl(var(--bg)); border: 1px solid hsl(var(--input)); border-radius: 999px;
}
.xin-filters select:focus, .xin-filters input:focus { outline: none; border-color: hsl(var(--ring)); }
.xin-filters__label { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: hsl(var(--muted-fg)); }
.xin-filters__label svg { width: 15px; height: 15px; }
.xin-filters__count { margin-left: auto; font-size: 13px; color: hsl(var(--muted-fg)); }

/* A native select paints its option list with the operating system, which lands a
   plain grey box in the middle of the page. The real select stays in the form and
   still works with scripting off; when scripting is on it is swapped for this. */
.xin-select { position: relative; display: inline-flex; }
.xin-select__btn {
	display: inline-flex; align-items: center; gap: .4rem;
	height: 32px; padding: 0 .7rem 0 .85rem;
	font-family: inherit; font-size: 13.5px; font-weight: 600; color: hsl(var(--fg));
	background: hsl(var(--bg)); border: 1px solid hsl(var(--input)); border-radius: 999px;
	cursor: pointer; white-space: nowrap;
	transition: border-color .16s ease, background-color .16s ease;
}
.xin-select__btn:hover { background: hsl(var(--accent)); }
.xin-select__btn:focus-visible { outline: none; border-color: hsl(var(--ring)); box-shadow: 0 0 0 3px hsl(var(--ring) / .18); }
.xin-select.is-open .xin-select__btn { border-color: hsl(var(--primary) / .55); }
.xin-select__btn svg { width: 14px; height: 14px; opacity: .6; transition: transform .18s ease; }
.xin-select.is-open .xin-select__btn svg { transform: rotate(180deg); }

.xin-select__list {
	position: absolute; z-index: 40; top: calc(100% + 6px); left: 0;
	min-width: 100%; max-width: min(280px, calc(100vw - 24px));
	margin: 0; padding: 6px; list-style: none;
	background: hsl(var(--popover)); border: 1px solid hsl(var(--border));
	border-radius: 10px; box-shadow: var(--shadow-3);
}
.xin-select__list[hidden] { display: none; }
.xin-select__opt {
	display: flex; align-items: center; gap: .5rem;
	padding: 7px 10px; border-radius: 7px; cursor: pointer;
	font-size: 13.5px; font-weight: 600; color: hsl(var(--fg)); white-space: nowrap;
}
.xin-select__opt:hover, .xin-select__opt.is-focus { background: hsl(var(--accent)); }
.xin-select__opt[aria-selected="true"] { color: hsl(var(--primary)); }
.xin-select__opt::before {
	content: ""; flex: none; width: 6px; height: 6px; border-radius: 999px;
	background: hsl(var(--primary)); opacity: 0;
}
.xin-select__opt[aria-selected="true"]::before { opacity: 1; }
.xin-select select { display: none; }

.xin-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 36px; }
.xin-pagination .page-numbers {
	display: grid; place-items: center; min-width: 38px; height: 38px; padding: 0 12px;
	border-radius: 999px; border: 1px solid hsl(var(--border)); background: hsl(var(--card));
	font-size: 14px; font-weight: 600; transition: all .18s ease;
}
.xin-pagination .page-numbers:hover { border-color: hsl(var(--primary) / .5); color: hsl(var(--primary)); }
.xin-pagination .page-numbers.current { background: hsl(var(--primary)); border-color: transparent; color: hsl(var(--primary-fg)); }
.xin-pagination .dots { border-color: transparent; background: transparent; }

.xin-post-card { display: flex; flex-direction: column; height: 100%; background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: var(--radius); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.xin-post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); border-color: hsl(var(--primary) / .35); }
.xin-post-card__media { position: relative; display: block; aspect-ratio: 16/9; background: hsl(var(--muted)); overflow: hidden; }
.xin-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.xin-post-card:hover .xin-post-card__media img { transform: scale(1.05); }
.xin-post-card__media--empty { display: grid; place-items: center; background: linear-gradient(135deg, hsl(var(--primary) / .18), hsl(var(--muted))); }
.xin-post-card__media--empty svg { width: 30px; height: 30px; color: hsl(var(--primary) / .6); }
.xin-post-card__cat { position: absolute; left: 10px; top: 10px; z-index: 2; }
.xin-post-card__body { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
.xin-post-card__title { font-size: 16px; line-height: 1.35; margin: 0 0 6px; }
.xin-post-card:hover .xin-post-card__title a { color: hsl(var(--primary)); }
.xin-post-card__excerpt { font-size: 13.5px; color: hsl(var(--muted-fg)); margin: 0 0 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.xin-post-card__foot { display: flex; align-items: center; gap: 8px; margin-top: auto; font-size: 12px; color: hsl(var(--muted-fg)); }
.xin-post-card__foot img { width: 24px; height: 24px; border-radius: 999px; }
.xin-post-card__foot .sep { opacity: .5; }

.xin-post-list { display: grid; gap: 12px; }
.xin-post-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; padding: 10px; border-radius: var(--radius); transition: background-color .18s ease; }
.xin-post-row:hover { background: hsl(var(--accent)); }
.xin-post-row__media { aspect-ratio: 16/9; border-radius: var(--radius-sm); overflow: hidden; background: hsl(var(--muted)); }
.xin-post-row__media img { width: 100%; height: 100%; object-fit: cover; }
.xin-post-row h3 { font-size: 14px; margin: 0 0 4px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.xin-post-row p { font-size: 11.5px; color: hsl(var(--muted-fg)); margin: 0; }

.xin-single__hero { position: relative; margin-bottom: 24px; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 21/9; background: hsl(var(--muted)); }
.xin-single__hero img { width: 100%; height: 100%; object-fit: cover; }
.xin-single__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-bottom: 20px; font-size: 13px; color: hsl(var(--muted-fg)); }
.xin-single__meta a { color: inherit; }
.xin-single__meta a:hover { color: hsl(var(--primary)); }
.xin-single__meta img { width: 28px; height: 28px; border-radius: 999px; }
.xin-single__meta span { display: inline-flex; align-items: center; gap: 5px; }
.xin-single__meta svg { width: 14px; height: 14px; }

.xin-content { font-size: 16.5px; line-height: 1.8; }
.xin-content > * + * { margin-top: 1.1em; }
.xin-content h2 { font-size: 1.5rem; margin-top: 1.8em; }
.xin-content h3 { font-size: 1.25rem; margin-top: 1.6em; }
.xin-content img, .xin-content figure { border-radius: var(--radius); }
.xin-content ul, .xin-content ol { padding-left: 1.35em; }
.xin-content li + li { margin-top: .4em; }
.xin-content a { color: hsl(var(--primary)); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.xin-content .wp-caption-text, .xin-content figcaption { font-size: 12.5px; color: hsl(var(--muted-fg)); text-align: center; margin-top: 6px; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-inline: auto; }
.alignwide { width: min(1100px, 96vw); margin-inline: auto; }
.alignfull { width: 100vw; margin-inline: calc(50% - 50vw); max-width: none; }
.sticky .xin-post-card { border-color: hsl(var(--primary) / .4); }

.xin-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 28px 0; }
.xin-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 16px 0; border-top: 1px solid hsl(var(--border)); border-bottom: 1px solid hsl(var(--border)); margin: 24px 0; }
.xin-share span { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: hsl(var(--muted-fg)); margin-right: 4px; }

.xin-authorbox { display: grid; gap: 14px; grid-template-columns: 64px minmax(0, 1fr); align-items: start; padding: 18px; border-radius: var(--radius); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); margin: 28px 0; }
.xin-authorbox img { width: 64px; height: 64px; border-radius: 999px; }
.xin-authorbox h3 { font-size: 16px; margin: 0 0 4px; }
.xin-authorbox p { font-size: 13.5px; color: hsl(var(--muted-fg)); margin: 0; }

.xin-postnav { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 28px 0; }
.xin-postnav a { padding: 14px 16px; border-radius: var(--radius); border: 1px solid hsl(var(--border)); background: hsl(var(--card)); transition: all .2s ease; }
.xin-postnav a:hover { border-color: hsl(var(--primary) / .45); }
.xin-postnav small { display: block; font-size: 11px; color: hsl(var(--muted-fg)); margin-bottom: 3px; }
.xin-postnav b { font-size: 14px; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.xin-postnav .is-next { text-align: right; }

.xin-comments { margin-top: 44px; }
.xin-comments__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 18px; }
.xin-comments__title { font-size: 20px; margin: 0; display: flex; align-items: center; gap: .5rem; }
.xin-comments__title svg { width: 20px; height: 20px; color: hsl(var(--primary)); }
.xin-comments__last { font-size: 12.5px; color: hsl(var(--muted-fg)); }

.comment-list { list-style: none; margin: 0 0 28px; padding: 0; }
.comment-list ol.children { list-style: none; margin: 10px 0 0 14px; padding-left: 16px; border-left: 2px solid hsl(var(--border)); }
@media (min-width: 640px) { .comment-list ol.children { margin-left: 28px; } }

.xin-comment { list-style: none; }
.xin-comment__body {
	display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px;
	padding: 14px 16px; margin-bottom: 10px;
	border-radius: var(--radius); background: hsl(var(--card)); border: 1px solid hsl(var(--border));
	transition: border-color .2s ease;
}
.xin-comment__body:hover { border-color: hsl(var(--border)); }
.xin-comment__avatar img, .xin-comment__avatar .xin-avatar { width: 44px; height: 44px; border-radius: 999px; }
.xin-comment__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; }
.xin-comment__name { font-size: 14.5px; font-weight: 700; }
.xin-comment__time { font-size: 11.5px; color: hsl(var(--muted-fg)); }
.xin-comment__text { font-size: 14.5px; line-height: 1.7; }
.xin-comment__text p:last-child { margin-bottom: 0; }
.xin-comment__pending { font-size: 12.5px; color: hsl(var(--gold)); margin: 0 0 6px; }
.xin-comment__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.xin-comment__actions svg { width: 13px; height: 13px; }
.bypostauthor > .xin-comment__body { border-color: hsl(var(--primary) / .4); background: hsl(var(--primary) / .05); }
.comment-reply-link, .comment-edit-link {
	display: inline-flex; align-items: center; gap: .3rem;
	font-size: 12.5px; font-weight: 700; color: hsl(var(--muted-fg));
}
.comment-reply-link:hover, .comment-edit-link:hover { color: hsl(var(--primary)); }

.xin-commentform { display: grid; gap: 14px; }
.xin-commentform__lead {
	display: flex; align-items: center; gap: 12px; padding: 14px 16px;
	border-radius: var(--radius); border: 1px dashed hsl(var(--border)); color: hsl(var(--muted-fg));
}
.xin-commentform__lead svg { width: 22px; height: 22px; color: hsl(var(--primary)); flex: none; }
.xin-commentform__lead b { display: block; color: hsl(var(--fg)); font-size: 14.5px; }
.xin-commentform__lead span { font-size: 13px; }
.xin-commentform__me { display: flex; align-items: center; gap: 10px; font-size: 13.5px; }
.xin-commentform__me img { border-radius: 999px; }
.xin-commentform__me a { margin-left: 8px; font-size: 12.5px; text-decoration: underline; }
.xin-req { color: hsl(var(--primary)); }

.comment-respond { padding: 18px; border-radius: var(--radius); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); }
@media (min-width: 640px) { .comment-respond { padding: 22px; } }
.comment-reply-title { font-size: 17px; margin-bottom: 14px; }
.comment-reply-title small { font-size: 12.5px; font-weight: 500; margin-left: 8px; }
.comment-form { display: grid; gap: 14px; }
.comment-form p { margin: 0; }
.comment-form .comment-form-author, .comment-form .comment-form-email { display: block; }
@media (min-width: 700px) {
	.comment-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.comment-form .comment-form-comment, .comment-form .form-submit,
	.comment-form .comment-form-cookies-consent { grid-column: 1 / -1; }
}
.comment-form label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 6px; color: hsl(var(--muted-fg)); text-transform: uppercase; letter-spacing: .06em; }
.comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 8px; }
.comment-form-cookies-consent label {
	margin: 0; font-size: 12.5px; font-weight: 500;
	text-transform: none; letter-spacing: normal; line-height: 1.5;
}
.comment-form-cookies-consent input { margin-top: 3px; accent-color: hsl(var(--primary)); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; padding: .625rem .875rem; font-family: inherit; font-size: 14px;
	color: hsl(var(--fg)); background: hsl(var(--bg)); border: 1px solid hsl(var(--input)); border-radius: var(--radius-sm);
}
.comment-form textarea { min-height: 120px; resize: vertical; }
.comment-form input:focus, .comment-form textarea:focus { outline: none; border-color: hsl(var(--ring)); box-shadow: 0 0 0 3px hsl(var(--ring) / .16); }
.comment-form .form-submit input, .comment-form .submit {
	display: inline-flex; padding: .625rem 1.5rem; border: 0; border-radius: 999px; cursor: pointer;
	background: hsl(var(--primary)); color: hsl(var(--primary-fg)); font-family: inherit; font-size: 14px; font-weight: 700;
}
.comment-form .form-submit input:hover { background: hsl(var(--primary) / .88); }
.comment-form-cookies-consent { display: flex; align-items: center; gap: 8px; }
.comment-form-cookies-consent label { margin: 0; }
.comment-notes, .logged-in-as { font-size: 12.5px; color: hsl(var(--muted-fg)); }
.no-comments { color: hsl(var(--muted-fg)); font-size: 14px; }

.xin-sidebar { display: grid; gap: 18px; }
@media (min-width: 1024px) { .xin-sidebar { position: sticky; top: calc(var(--header-h) + 16px); } }
.widget { padding: 18px; border-radius: var(--radius); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); }
.widget-title, .widget h2 { font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid hsl(var(--border)); }
.widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; font-size: 14px; }
.widget ul ul { margin-top: 9px; padding-left: 14px; }
.widget li a { color: hsl(var(--fg) / .85); }
.widget li a:hover { color: hsl(var(--primary)); }
.widget select { width: 100%; padding: .5rem .75rem; border-radius: var(--radius-sm); border: 1px solid hsl(var(--input)); background: hsl(var(--bg)); color: hsl(var(--fg)); font-family: inherit; }
.widget_tag_cloud a, .tagcloud a {
	display: inline-flex; margin: 0 4px 6px 0; padding: .25rem .7rem; border-radius: 999px;
	background: hsl(var(--muted)); font-size: 12.5px !important; font-weight: 600;
}
.widget_tag_cloud a:hover, .tagcloud a:hover { background: hsl(var(--primary) / .12); color: hsl(var(--primary)); }
.widget_search .xin-searchform input { background: hsl(var(--bg)); }

.xin-widget-novels { display: grid; gap: 12px; }
.xin-widget-novel { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 10px; align-items: center; }
.xin-widget-novel__cover { aspect-ratio: 2/3; border-radius: 6px; overflow: hidden; background: hsl(var(--muted)); }
.xin-widget-novel__cover img { width: 100%; height: 100%; object-fit: cover; }
.xin-widget-novel h4 { font-size: 13.5px; font-weight: 600; margin: 0 0 2px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.xin-widget-novel small { font-size: 11px; color: hsl(var(--muted-fg)); display: flex; gap: 8px; }

.xin-library__empty { padding: 60px 20px; text-align: center; color: hsl(var(--muted-fg)); }
.xin-continue { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; }
.xin-continue__item { flex: 0 0 260px; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; padding: 10px; border-radius: var(--radius); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); }
.xin-continue__item img { width: 48px; aspect-ratio: 2/3; object-fit: cover; border-radius: 6px; }
.xin-continue__item h4 { font-size: 13px; margin: 0 0 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xin-continue__item small { font-size: 11.5px; color: hsl(var(--muted-fg)); }
.xin-continue__bar { grid-column: 1 / -1; height: 4px; border-radius: 999px; background: hsl(var(--muted)); overflow: hidden; }
.xin-continue__bar i { display: block; height: 100%; background: hsl(var(--primary)); }

.xin-404 { text-align: center; padding: 80px 16px; }
.xin-404__code { font-size: clamp(4rem, 3rem + 8vw, 9rem); font-weight: 900; line-height: 1; letter-spacing: -.04em; background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--gold))); -webkit-background-clip: text; background-clip: text; color: transparent; }
.xin-404 p { color: hsl(var(--muted-fg)); max-width: 46ch; margin-inline: auto; }

.xin-auth { position: relative; padding: 0; }
.xin-auth__veil {
	position: absolute; inset: -120px 0 0; z-index: 0; pointer-events: none; overflow: hidden;
	background:
		radial-gradient(52% 46% at 50% 8%, hsl(var(--primary) / .22), transparent 72%),
		radial-gradient(38% 34% at 82% 26%, hsl(var(--gold) / .10), transparent 72%),
		radial-gradient(34% 30% at 16% 34%, hsl(var(--primary) / .10), transparent 72%);
	mask-image: linear-gradient(to bottom, #000 55%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent);
}
.xin-auth__veil::after {
	content: ""; position: absolute; inset: 0;
	background-image: linear-gradient(hsl(var(--border) / .55) 1px, transparent 1px), linear-gradient(90deg, hsl(var(--border) / .55) 1px, transparent 1px);
	background-size: 60px 60px;
	mask-image: radial-gradient(58% 55% at 50% 24%, #000, transparent 78%);
	-webkit-mask-image: radial-gradient(58% 55% at 50% 24%, #000, transparent 78%);
	opacity: .7;
}

.xin-auth__stage {
	position: relative; z-index: 1;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 22px; min-height: min(76vh, 700px); padding: 52px 20px 68px;
}

.xin-auth__card {
	width: 100%; max-width: 428px; position: relative;
	padding: 34px 32px 28px; border-radius: 18px;
	background: hsl(var(--card) / .82);
	border: 1px solid hsl(var(--border));
	box-shadow: 0 1px 0 hsl(var(--fg) / .04) inset, 0 24px 60px -24px hsl(var(--shadow) / .55);
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
	animation: xin-auth-rise .5s cubic-bezier(.22, .68, .28, 1) both;
}
.xin-auth__card::before {
	content: ""; position: absolute; inset-inline: 18%; top: -1px; height: 1px;
	background: linear-gradient(90deg, transparent, hsl(var(--primary)), transparent);
	opacity: .9;
}

@keyframes xin-auth-rise {
	from { opacity: 0; transform: translateY(14px) scale(.985); }
	to   { opacity: 1; transform: none; }
}

.xin-auth__brand { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: 14px; letter-spacing: -.01em; color: hsl(var(--muted-fg)); text-decoration: none; transition: color .2s ease; }
.xin-auth__brand:hover { color: hsl(var(--fg)); }
.xin-auth__brand svg { width: 18px; height: 18px; color: hsl(var(--primary)); }

.xin-auth__title { font-size: 25px; letter-spacing: -.025em; margin: 18px 0 6px; }
.xin-auth__lead { color: hsl(var(--muted-fg)); font-size: 14px; line-height: 1.6; margin: 0 0 22px; }

.xin-auth__seg { position: relative; display: flex; gap: 24px; margin-bottom: 22px; border-bottom: 1px solid hsl(var(--border)); }
.xin-auth__seg a {
	position: relative; padding: 0 0 11px; font-size: 14px; font-weight: 600;
	color: hsl(var(--muted-fg)); text-decoration: none; transition: color .2s ease;
}
.xin-auth__seg a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px;
	background: hsl(var(--primary)); transform: scaleX(0); transform-origin: left;
	transition: transform .28s cubic-bezier(.22, .68, .28, 1);
}
.xin-auth__seg a:hover { color: hsl(var(--fg)); }
.xin-auth__seg a.is-active { color: hsl(var(--fg)); }
.xin-auth__seg a.is-active::after { transform: scaleX(1); }

.xin-auth .xin-notice { margin-bottom: 18px; font-size: 13.5px; align-items: flex-start; animation: xin-auth-rise .4s ease both; }

.xin-auth__form { display: grid; gap: 16px; }
.xin-auth__field { display: block; }
.xin-auth__field > span { display: block; font-size: 12.5px; font-weight: 600; color: hsl(var(--muted-fg)); margin-bottom: 7px; }
.xin-auth__field-top { display: flex !important; align-items: baseline; justify-content: space-between; gap: 10px; }
.xin-auth__field-top a { font-weight: 500; color: hsl(var(--muted-fg)); text-decoration: none; transition: color .2s ease; }
.xin-auth__field-top a:hover { color: hsl(var(--primary)); }
.xin-auth__field input {
	width: 100%; height: 44px; padding: 0 14px; font-size: 15px; font-family: inherit;
	color: hsl(var(--fg)); background: hsl(var(--bg) / .6);
	border: 1px solid hsl(var(--border)); border-radius: 11px; outline: none;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.xin-auth__field input::placeholder { color: hsl(var(--muted-fg) / .7); }
.xin-auth__field input:hover { border-color: hsl(var(--border) / .7); }
.xin-auth__field input:focus { border-color: hsl(var(--primary) / .8); background: hsl(var(--bg) / .9); box-shadow: 0 0 0 4px hsl(var(--primary) / .13); }
.xin-auth__pair { display: grid; gap: 16px; }
@media (min-width: 520px) { .xin-auth__pair { grid-template-columns: 1fr 1fr; } }

.xin-auth__remember { display: inline-flex; align-items: center; gap: .55rem; font-size: 13.5px; color: hsl(var(--muted-fg)); cursor: pointer; }
.xin-auth__remember input { width: 16px; height: 16px; accent-color: hsl(var(--primary)); }

.xin-auth__submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	width: 100%; height: 46px; margin-top: 2px; padding: 0 18px;
	font-family: inherit; font-size: 15px; font-weight: 650; letter-spacing: -.01em;
	color: hsl(var(--primary-fg)); background: linear-gradient(180deg, hsl(var(--primary) / .94), hsl(var(--primary)));
	border: 0; border-radius: 10px; cursor: pointer;
	box-shadow: 0 1px 0 hsl(0 0% 100% / .16) inset, 0 10px 26px -18px hsl(var(--primary));
	transition: filter .2s ease, box-shadow .25s ease, transform .12s ease;
}
.xin-auth__submit svg { width: 16px; height: 16px; transition: transform .25s cubic-bezier(.22, .68, .28, 1); }
.xin-auth__submit:hover { filter: brightness(1.06); box-shadow: 0 1px 0 hsl(0 0% 100% / .2) inset, 0 14px 30px -18px hsl(var(--primary)); }
.xin-auth__submit:hover svg { transform: translateX(3px); }
.xin-auth__submit:active { transform: translateY(1px); box-shadow: 0 1px 0 hsl(0 0% 100% / .12) inset; }
.xin-auth__submit:focus-visible { outline: none; box-shadow: 0 0 0 4px hsl(var(--primary) / .3); }

.xin-auth__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.xin-auth__closed { font-size: 14px; color: hsl(var(--muted-fg)); line-height: 1.65; margin: 0; }
.xin-auth__fine { font-size: 12.5px; color: hsl(var(--muted-fg)); text-align: center; margin: 2px 0 0; line-height: 1.6; }
.xin-auth__fine a { color: hsl(var(--muted-fg)); text-decoration: underline; text-underline-offset: 3px; }
.xin-auth__fine a:hover { color: hsl(var(--fg)); }

.xin-auth__switch { margin: 24px 0 0; padding-top: 18px; border-top: 1px solid hsl(var(--border)); font-size: 13.5px; color: hsl(var(--muted-fg)); text-align: center; }
.xin-auth__switch a { color: hsl(var(--fg)); font-weight: 600; text-decoration: none; }
.xin-auth__switch a:hover { color: hsl(var(--primary)); }

.xin-auth__meta {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: center;
	margin: 0; font-size: 12.5px; color: hsl(var(--muted-fg) / .85);
	animation: xin-auth-rise .5s .12s cubic-bezier(.22, .68, .28, 1) both;
}
.xin-auth__meta i { width: 3px; height: 3px; border-radius: 50%; background: hsl(var(--muted-fg) / .5); }

@media (prefers-reduced-motion: reduce) {
	.xin-auth__card, .xin-auth__meta, .xin-auth .xin-notice { animation: none; }
	.xin-auth__submit, .xin-auth__submit svg, .xin-auth__seg a::after { transition: none; }
}

@media print {
	.xin-header, .xin-footer, .xin-bottomnav, .xin-reader__toolbar, .xin-totop, .xin-chapnav, .xin-comments { display: none !important; }
	body { background: #fff; color: #000; }
	.xin-reader__content { max-width: none; font-size: 12pt; }
}

.xin-nv__hero { position: relative; border-bottom: 1px solid hsl(var(--border)); }
.xin-nv__backdrop { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.xin-nv__backdrop img { width: 100%; height: 100%; object-fit: cover; filter: blur(34px) saturate(1.05); transform: scale(1.2); opacity: .14; }
.xin-nv__backdrop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, hsl(var(--bg) / .82), hsl(var(--bg) / .96) 60%, hsl(var(--bg))); }
.xin-nv__heroin { position: relative; z-index: 1; display: grid; gap: 22px; padding-top: 24px; padding-bottom: 28px; }
@media (min-width: 768px) { .xin-nv__heroin { grid-template-columns: 178px minmax(0, 1fr); gap: 30px; padding-top: 32px; padding-bottom: 36px; } }

.xin-nv__cover { width: 148px; margin-inline: auto; aspect-ratio: 2/3; border-radius: 10px; overflow: hidden; background: hsl(var(--muted)); border: 1px solid hsl(var(--border)); box-shadow: var(--shadow-2); }
@media (min-width: 768px) { .xin-nv__cover { width: 100%; margin: 0; } }
.xin-nv__cover img { width: 100%; height: 100%; object-fit: cover; }

.xin-nv__intro { min-width: 0; }
.xin-nv__title { font-size: clamp(1.45rem, 1.15rem + 1.5vw, 2.1rem); margin: 6px 0 4px; letter-spacing: -.025em; }
.xin-nv__orig { font-size: 13.5px; color: hsl(var(--muted-fg)); margin: 0 0 6px; }
.xin-nv__by { font-size: 14px; color: hsl(var(--muted-fg)); margin: 0 0 12px; }
.xin-nv__by b { color: hsl(var(--fg)); font-weight: 600; }
.xin-nv__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.xin-nv__numbers { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 13px; color: hsl(var(--muted-fg)); }
.xin-nv__numbers b { font-size: 15.5px; font-weight: 700; color: hsl(var(--fg)); }
.xin-nv__numbers i { width: 3px; height: 3px; border-radius: 50%; background: hsl(var(--muted-fg) / .45); }
.xin-nv__cta { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 767px) { .xin-nv__heroin { text-align: center; } .xin-nv__chips, .xin-nv__numbers, .xin-nv__cta { justify-content: center; } }

.xin-push-bell { gap: .5rem; }
.xin-push-bell-icon { display: inline-flex; }
.xin-push-bell svg { width: 18px; height: 18px; }
.xin-push-bell.is-active {
	--bs-btn-bg: hsl(var(--primary) / .14);
	--bs-btn-color: hsl(var(--primary));
	--bs-btn-border-color: hsl(var(--primary) / .45);
	--bs-btn-hover-bg: hsl(var(--primary) / .2);
	--bs-btn-hover-color: hsl(var(--primary));
	--bs-btn-hover-border-color: hsl(var(--primary) / .6);
}
.xin-push-bell.is-active svg { animation: xin-bell-ring .8s ease; }
.xin-push-bell.is-denied,
.xin-push-bell.is-unsupported { opacity: .55; cursor: not-allowed; }
.xin-push-bell.is-busy { opacity: .85; cursor: wait; }
.xin-push-bell.is-busy .xin-push-bell-icon { animation: xin-push-spin .8s linear infinite; }
.xin-push-bell-label { white-space: nowrap; }
@keyframes xin-bell-ring {
	0%, 100% { transform: rotate(0); }
	15% { transform: rotate(14deg); }
	30% { transform: rotate(-12deg); }
	45% { transform: rotate(8deg); }
	60% { transform: rotate(-6deg); }
	75% { transform: rotate(3deg); }
}
@keyframes xin-push-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	.xin-push-bell.is-active svg,
	.xin-push-bell.is-busy .xin-push-bell-icon { animation: none; }
}

.xin-nv__grid { display: grid; gap: 32px; padding-top: 26px; padding-bottom: 56px; }
@media (min-width: 1024px) { .xin-nv__grid { grid-template-columns: minmax(0, 1fr) 296px; gap: 44px; align-items: start; } }

.xin-nv__sec + .xin-nv__sec { margin-top: 30px; padding-top: 26px; border-top: 1px solid hsl(var(--border)); }
.xin-nv__sechead { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.xin-nv__sechead h2 { font-size: 16.5px; margin: 0; letter-spacing: -.015em; }
.xin-nv__count { font-size: 13px; color: hsl(var(--muted-fg)); }

.xin-nv__more {
	margin-top: 8px; padding: 0; border: 0; background: none; cursor: pointer;
	font-family: inherit; font-size: 13.5px; font-weight: 600; color: hsl(var(--primary));
	text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
.xin-nv__more:hover { opacity: .75; }

.xin-nv__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.xin-nv__tags a {
	font-size: 12.5px; color: hsl(var(--muted-fg)); text-decoration: none;
	padding: 3px 9px; border: 1px solid hsl(var(--border)); border-radius: 7px; transition: all .16s ease;
}
.xin-nv__tags a::before { content: "#"; opacity: .5; margin-right: 2px; }
.xin-nv__tags a:hover { color: hsl(var(--fg)); border-color: hsl(var(--muted-fg) / .5); }

.xin-nv__tools { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.xin-nv__tools input[type="search"] {
	flex: 1; min-width: 180px; height: 36px; padding: 0 12px; font-family: inherit; font-size: 13.5px;
	color: hsl(var(--fg)); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 9px;
}
.xin-nv__tools input:focus { outline: none; border-color: hsl(var(--primary) / .55); box-shadow: 0 0 0 3px hsl(var(--primary) / .1); }
.xin-nv__sort {
	display: inline-flex; align-items: center; gap: .4rem; height: 36px; padding: 0 12px; cursor: pointer;
	font-family: inherit; font-size: 13px; font-weight: 600; color: hsl(var(--muted-fg));
	background: none; border: 1px solid hsl(var(--border)); border-radius: 9px; transition: all .16s ease;
}
.xin-nv__sort:hover { color: hsl(var(--fg)); border-color: hsl(var(--muted-fg) / .45); }
.xin-nv__sort svg { width: 15px; height: 15px; }

.xin-nv__chapters { list-style: none; margin: 6px 0 0; padding: 0; }
.xin-nv__chapters li + li { border-top: 1px solid hsl(var(--border)); }
.xin-nv__chapters a {
	display: grid; grid-template-columns: 42px minmax(0, 1fr) auto auto; align-items: center; gap: 12px;
	padding: 11px 10px; margin-inline: -10px; border-radius: 8px; text-decoration: none; transition: background-color .16s ease;
}
.xin-nv__chapters a:hover { background: hsl(var(--accent) / .7); }
.xin-nv__num { font-family: var(--font-mono); font-size: 12px; color: hsl(var(--muted-fg)); font-variant-numeric: tabular-nums; }
.xin-nv__num::before { content: "#"; opacity: .55; }
.xin-nv__name { font-size: 14.5px; font-weight: 500; color: hsl(var(--fg)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xin-nv__chapters a:hover .xin-nv__name { color: hsl(var(--primary)); }
.xin-nv__lock { display: grid; place-items: center; color: hsl(var(--gold)); }
.xin-nv__lock svg { width: 14px; height: 14px; }
.xin-nv__date { font-size: 12px; color: hsl(var(--muted-fg)); white-space: nowrap; }
.xin-nv__empty { padding: 22px 0; text-align: center; color: hsl(var(--muted-fg)); font-size: 14px; }
@media (max-width: 520px) { .xin-nv__chapters a { grid-template-columns: 34px minmax(0, 1fr) auto; } .xin-nv__date { display: none; } }

.xin-nv__block + .xin-nv__block, .xin-nv__aside .widget { margin-top: 24px; padding-top: 22px; border-top: 1px solid hsl(var(--border)); }
.xin-nv__aside .widget { background: none; border-radius: 0; padding-inline: 0; padding-bottom: 0; box-shadow: none; border-left: 0; border-right: 0; border-bottom: 0; }
.xin-nv__aside .widget-title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-fg)); margin: 0 0 12px; padding: 0; border: 0; }
.xin-nv__aside .widget-title::after { display: none; }
.xin-nv__block h2 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-fg)); margin: 0 0 12px; }

.xin-nv__facts { margin: 0; font-size: 13.5px; }
.xin-nv__facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 7px 0; }
.xin-nv__facts > div + div { border-top: 1px dotted hsl(var(--border)); }
.xin-nv__facts dt { color: hsl(var(--muted-fg)); }
.xin-nv__facts dd { margin: 0; font-weight: 600; text-align: right; }

.xin-nv__rate { display: flex; align-items: center; gap: 10px; }
.xin-nv__stars { display: inline-flex; gap: 2px; }
.xin-nv__stars button {
	display: grid; place-items: center; width: 26px; height: 26px; padding: 0; cursor: pointer;
	background: none; border: 0; color: hsl(var(--gold)); border-radius: 6px; transition: transform .14s ease, background-color .14s ease;
}
.xin-nv__stars button:hover { background: hsl(var(--accent)); transform: translateY(-1px); }
.xin-nv__stars svg { width: 19px; height: 19px; }
.xin-nv__stars .is-off { color: hsl(var(--border)); }
.xin-nv__rate.is-voted .xin-nv__stars button { pointer-events: none; }
.xin-nv__ratenum b { font-size: 16px; font-weight: 700; }
.xin-nv__ratenum small { color: hsl(var(--muted-fg)); font-size: 12.5px; margin-left: 3px; }

.xin-nv__related { display: grid; gap: 12px; }
.xin-nv__related a { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.xin-nv__relcover { flex: none; width: 42px; aspect-ratio: 2/3; border-radius: 6px; overflow: hidden; background: hsl(var(--muted)); }
.xin-nv__relcover img { width: 100%; height: 100%; object-fit: cover; }
.xin-nv__reltext { min-width: 0; }
.xin-nv__reltext b { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.35; color: hsl(var(--fg)); }
.xin-nv__related a:hover .xin-nv__reltext b { color: hsl(var(--primary)); }
.xin-nv__reltext small { font-size: 12px; color: hsl(var(--muted-fg)); }

.xin-manage { padding-bottom: 60px; }
.xin-manage__tabs { display: flex; flex-wrap: wrap; gap: 20px; margin: 18px 0 20px; border-bottom: 1px solid hsl(var(--border)); }
.xin-manage__tabs a {
	position: relative; display: inline-flex; align-items: center; gap: .45rem; padding: 0 0 11px;
	font-size: 14px; font-weight: 600; color: hsl(var(--muted-fg)); text-decoration: none; transition: color .18s ease;
}
.xin-manage__tabs a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px;
	background: hsl(var(--primary)); transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.xin-manage__tabs a:hover { color: hsl(var(--fg)); }
.xin-manage__tabs a.is-active { color: hsl(var(--fg)); }
.xin-manage__tabs a.is-active::after { transform: scaleX(1); }
.xin-manage__tabs b { min-width: 20px; padding: 1px 6px; border-radius: 999px; background: hsl(var(--primary) / .14); color: hsl(var(--primary)); font-size: 11px; }

.xin-manage__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 18px; }
.xin-manage__card { padding: 16px 18px; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); }
.xin-manage__card span { display: block; font-size: 12px; color: hsl(var(--muted-fg)); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; }
.xin-manage__card b { font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.xin-manage__card.is-warn b { color: hsl(var(--primary)); }
.xin-manage__links { display: flex; flex-wrap: wrap; gap: 8px; }

.xin-manage__search { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.xin-manage__search input[type="search"] {
	flex: 1; min-width: 200px; max-width: 380px; height: 36px; padding: 0 12px; font-family: inherit; font-size: 14px;
	color: hsl(var(--fg)); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 9px;
}
.xin-manage__search input:focus { outline: none; border-color: hsl(var(--primary) / .7); box-shadow: 0 0 0 3px hsl(var(--primary) / .12); }

.xin-manage__table { border: 1px solid hsl(var(--border)); border-radius: var(--radius); overflow: hidden; background: hsl(var(--card)); }
.xin-manage__row { display: grid; gap: 12px; padding: 14px 16px; align-items: center; }
.xin-manage__row + .xin-manage__row { border-top: 1px solid hsl(var(--border)); }
@media (min-width: 900px) { .xin-manage__row { grid-template-columns: minmax(0, 1fr) auto auto; } }
.xin-manage__who { display: flex; align-items: center; gap: 12px; min-width: 0; }
.xin-manage__who img { border-radius: 50%; flex: none; }
.xin-manage__who a { font-weight: 600; font-size: 14.5px; }
.xin-manage__who small { display: block; font-size: 12.5px; color: hsl(var(--muted-fg)); }
.xin-manage__state { display: flex; flex-wrap: wrap; gap: 6px; }
.xin-manage__act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.xin-manage__act form { display: flex; align-items: center; gap: 6px; }
.xin-manage__act select, .xin-manage__settings select {
	height: 32px; padding: 0 8px; font-family: inherit; font-size: 13px; color: hsl(var(--fg));
	background: hsl(var(--bg)); border: 1px solid hsl(var(--border)); border-radius: 8px;
}
.xin-manage__act select:focus, .xin-manage__settings select:focus { outline: none; border-color: hsl(var(--primary) / .7); }
.xin-manage__pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 16px; font-size: 13px; color: hsl(var(--muted-fg)); }

.xin-manage__settings { display: grid; gap: 18px; max-width: 460px; padding: 22px; border: 1px solid hsl(var(--border)); border-radius: var(--radius); background: hsl(var(--card)); }
.xin-manage__toggle { display: flex; align-items: flex-start; gap: .7rem; cursor: pointer; }
.xin-manage__toggle input { width: 17px; height: 17px; margin-top: 2px; accent-color: hsl(var(--primary)); }
.xin-manage__toggle b { display: block; font-size: 14px; }
.xin-manage__toggle small { color: hsl(var(--muted-fg)); font-size: 12.5px; }
.xin-manage__field { display: grid; gap: 6px; }
.xin-manage__field > span { font-size: 12.5px; font-weight: 600; color: hsl(var(--muted-fg)); }
.xin-manage__field select { height: 38px; width: 100%; }
.xin-manage__field > small { font-size: 12px; line-height: 1.45; color: hsl(var(--muted-fg)); }
.xin-manage__roles { display: grid; gap: 2px; padding: 8px 10px; border: 1px solid hsl(var(--border)); border-radius: 10px; background: hsl(var(--bg)); }
.xin-manage__roles label { display: flex; align-items: center; gap: .55rem; padding: 4px 2px; font-size: 13.5px; cursor: pointer; }
.xin-manage__roles input { width: 16px; height: 16px; accent-color: hsl(var(--primary)); }
.xin-manage__roles i { margin-left: auto; font-style: normal; font-size: 11.5px; color: hsl(var(--muted-fg)); }
.xin-manage__settings .btn { justify-self: start; }

.xin-nv__dl { position: relative; }
.xin-nv__dlmenu {
	position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; min-width: 210px; max-width: min(280px, calc(100vw - 24px)); padding: 6px;
	background: hsl(var(--popover)); border: 1px solid hsl(var(--border)); border-radius: 10px; box-shadow: var(--shadow-3);
}
@media (max-width: 767px) { .xin-nv__dlmenu { text-align: left; } }
.xin-nv__dlmenu a { display: block; padding: 8px 10px; border-radius: 7px; font-size: 13.5px; font-weight: 600; text-decoration: none; color: hsl(var(--fg)); }
.xin-nv__dlmenu a:hover { background: hsl(var(--accent)); }
.xin-nv__dlmenu small { display: block; font-weight: 400; font-size: 12px; color: hsl(var(--muted-fg)); }

.xin-nv__team { display: grid; gap: 10px; }
.xin-nv__member { display: flex; align-items: center; gap: 9px; text-decoration: none; }
.xin-nv__member img { border-radius: 50%; flex: none; }
.xin-nv__member b { display: block; font-size: 13.5px; font-weight: 600; color: hsl(var(--fg)); }
.xin-nv__member small { font-size: 12px; color: hsl(var(--muted-fg)); }
.xin-nv__member:hover b { color: hsl(var(--primary)); }
.xin-nv__talk { grid-column: 1 / -1; }

.xin-locked__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 14px; }

.xin-profile__streak { display: inline-flex; align-items: center; gap: .5rem; margin: 10px 0 0; font-size: 13.5px; color: hsl(var(--muted-fg)); }
.xin-profile__streak svg { width: 16px; height: 16px; color: hsl(var(--gold)); }

.xin-awards { padding: 26px 0 40px; border-top: 1px solid hsl(var(--border)); margin-top: 30px; }
.xin-awards__title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: hsl(var(--muted-fg)); margin-bottom: 14px; }
.xin-awards__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.xin-award {
	display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px;
	border: 1px solid hsl(var(--border)); background: hsl(var(--card)); opacity: .45;
}
.xin-award.is-open { opacity: 1; border-color: hsl(var(--primary) / .35); }
.xin-award svg { width: 20px; height: 20px; flex: none; color: hsl(var(--muted-fg)); }
.xin-award.is-open svg { color: hsl(var(--primary)); }
.xin-award b { font-size: 13px; font-weight: 600; line-height: 1.3; }
.xin-award small { display: block; font-size: 11.5px; color: hsl(var(--muted-fg)); font-variant-numeric: tabular-nums; }

.xin-talk { max-width: var(--read-width, 720px); margin: 40px auto 0; padding-top: 26px; border-top: 1px solid hsl(var(--border)); }
.xin-talk__head-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.xin-talk__head-row h2 { font-size: 16.5px; margin: 0; }
.xin-talk__head-row span { font-size: 12.5px; color: hsl(var(--muted-fg)); }

.xin-talk__form { display: grid; gap: 10px; margin-bottom: 24px; }
.xin-talk__form textarea {
	width: 100%; padding: 12px 14px; font-family: inherit; font-size: 14.5px; line-height: 1.6; resize: vertical;
	color: hsl(var(--fg)); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 10px;
}
.xin-talk__form textarea:focus { outline: none; border-color: hsl(var(--primary) / .6); box-shadow: 0 0 0 3px hsl(var(--primary) / .1); }
.xin-talk__formfoot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.xin-talk__formfoot small { font-size: 12px; color: hsl(var(--muted-fg)); font-family: var(--font-mono); }
.xin-talk__reply-to { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: hsl(var(--muted-fg)); }
.xin-talk__reply-to button { border: 0; background: none; padding: 0; color: hsl(var(--primary)); cursor: pointer; font-family: inherit; font-size: 12.5px; text-decoration: underline; text-underline-offset: 3px; }
.xin-talk__guest { font-size: 14px; color: hsl(var(--muted-fg)); padding: 14px 16px; border: 1px solid hsl(var(--border)); border-radius: 10px; }

.xin-talk__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.xin-talk__list--nested { margin-top: 14px; padding-left: 14px; border-left: 2px solid hsl(var(--border)); gap: 14px; }
.xin-talk__item { display: flex; gap: 12px; }
.xin-talk__avatar img { border-radius: 50%; }
.xin-talk__body { min-width: 0; flex: 1; }
.xin-talk__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; }
.xin-talk__head b { font-size: 13.5px; }
.xin-talk__head time { font-size: 12px; color: hsl(var(--muted-fg)); }
.xin-talk__text { font-size: 14.5px; line-height: 1.65; }
.xin-talk__text p { margin: 0 0 .6em; }
.xin-talk__spoiler {
	background: hsl(var(--fg)); color: transparent; border-radius: 4px; padding: 0 3px; cursor: pointer;
	transition: color .18s ease, background-color .18s ease;
}
.xin-talk__spoiler.is-open { background: hsl(var(--accent)); color: inherit; }
.xin-talk__tools { display: flex; align-items: center; gap: 14px; margin-top: 7px; }
.xin-talk__tools button { border: 0; background: none; padding: 0; cursor: pointer; font-family: inherit; font-size: 12.5px; color: hsl(var(--muted-fg)); display: inline-flex; align-items: center; gap: .35rem; }
.xin-talk__tools button:hover { color: hsl(var(--fg)); }
.xin-talk__like svg { width: 14px; height: 14px; }
.xin-talk__like.is-on { color: hsl(var(--primary)); }
.xin-talk__empty { font-size: 14px; color: hsl(var(--muted-fg)); padding: 18px 0; text-align: center; }

.xin-rd__text { hanging-punctuation: first last; text-wrap: pretty; }
.xin-rd__text p { margin: 0 0 1.15em; text-align: justify; text-indent: 1.4em; hyphens: auto; }
.xin-rd__text p:first-of-type, .xin-rd__text h2 + p, .xin-rd__text h3 + p, .xin-rd__text hr + p { text-indent: 0; }
.xin-rd__text[lang="en"] { --read-height: 1.72; hyphens: manual; }
.xin-rd__text[lang="en"] p { text-align: left; text-indent: 0; margin-bottom: 1.35em; }
.xin-rd__inner { --read-width: min(68ch, 100%); }
.xin-rd__text em, .xin-rd__text i { font-style: italic; }
.xin-rd__text blockquote { margin: 1.6em 0; padding-left: 1.2em; border-left: 2px solid hsl(var(--border)); font-style: italic; text-indent: 0; }
.xin-rd__text blockquote p { text-indent: 0; }

.xin-rd__text p[data-paragraph-id] { position: relative; cursor: pointer; }
.xin-rd__text p.is-selected {
	background: linear-gradient(90deg, hsl(var(--gold) / .16), transparent 12px);
	box-shadow: inset 3px 0 0 hsl(var(--gold));
}
.xin-rd__text p.is-bookmarked {
	box-shadow: inset 3px 0 0 hsl(var(--bm, var(--primary)));
}
.xin-rd__text p[data-bm-color="default"] { --bm: 222 28% 28%; }
.xin-rd__text p[data-bm-color="beta"] { --bm: 162 42% 32%; }
.xin-rd__text p[data-bm-color="gamma"] { --bm: 36 72% 42%; }
.xin-rd__text p[data-bm-color="delta"] { --bm: 2 62% 42%; }
.xin-rd__text p.is-speaking {
	background: hsl(var(--gold) / .12);
}

.xin-pkit {
	position: absolute;
	left: 0;
	top: calc(100% + 8px);
	z-index: 40;
	width: min(312px, calc(100vw - 24px));
	margin: 0;
	padding: 8px 10px 10px 12px;
	border: 1px solid hsl(var(--border));
	background: hsl(var(--card));
	color: hsl(var(--fg));
	box-shadow: 0 14px 36px hsl(220 18% 8% / .18);
}
.xin-pkit[hidden] { display: none !important; }
.xin-pkit.is-above { top: auto; bottom: calc(100% + 8px); }
.xin-pkit.is-end { left: auto; right: 0; }
.xin-pkit__rule {
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 3px;
	background: linear-gradient(180deg, hsl(var(--gold)), hsl(var(--primary)));
}
.xin-pkit__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 6px;
}
.xin-pkit__kicker,
.xin-pkit__col h3 {
	font-size: 9.5px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: hsl(var(--muted-fg));
}
.xin-pkit__x {
	border: 0;
	background: none;
	color: inherit;
	padding: 2px;
	cursor: pointer;
	opacity: .7;
}
.xin-pkit__x svg { width: 13px; height: 13px; }
.xin-pkit__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 10px;
	align-items: start;
}
.xin-pkit__col h3 { margin: 0 0 4px; }
.xin-pkit__act,
.xin-pkit__voice {
	display: flex;
	align-items: center;
	gap: 6px;
	width: 100%;
	margin: 0 0 4px;
	padding: 5px 8px;
	border: 1px solid hsl(var(--border));
	background: hsl(var(--bg));
	color: inherit;
	font: 600 12px/1.2 var(--font);
	text-align: left;
	cursor: pointer;
}
.xin-pkit__act svg,
.xin-pkit__voice svg { width: 13px; height: 13px; flex: none; }
.xin-pkit__act:hover,
.xin-pkit__voice:hover { border-color: hsl(var(--primary) / .45); }
.xin-pkit__act.is-on,
.xin-pkit__act--loud {
	background: hsl(var(--primary));
	border-color: hsl(var(--primary));
	color: hsl(var(--primary-fg));
}
.xin-pkit__act--ghost { background: transparent; }
.xin-pkit__col--listen {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 8px;
	align-items: center;
}
.xin-pkit__col--listen h3 { grid-column: 1 / -1; }
.xin-pkit__col--listen .xin-pkit__act { width: auto; margin: 0; }
.xin-pkit__col--listen .xin-pkit__voice { margin: 0; }
.xin-pkit__inks {
	display: flex;
	gap: 4px;
	margin: 0 0 4px;
}
.xin-pkit__inks button {
	width: 16px;
	height: 16px;
	padding: 0;
	border: 1px solid hsl(var(--border));
	background: transparent;
	cursor: pointer;
	position: relative;
}
.xin-pkit__inks button span { display: none; }
.xin-pkit__inks button::before {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	margin: 3px auto;
	border-radius: 50%;
}
.xin-pkit__inks [data-xin-bm-color="default"]::before { background: hsl(222 28% 28%); }
.xin-pkit__inks [data-xin-bm-color="beta"]::before { background: hsl(162 42% 32%); }
.xin-pkit__inks [data-xin-bm-color="gamma"]::before { background: hsl(36 72% 42%); }
.xin-pkit__inks [data-xin-bm-color="delta"]::before { background: hsl(2 62% 42%); }
.xin-pkit__inks button.is-on { border-color: hsl(var(--fg) / .55); }
.xin-pkit__voice {
	font-weight: 500;
	color: hsl(var(--muted-fg));
	min-width: 0;
}
.xin-pkit__voice span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xin-ptools-toast {
	position: fixed;
	left: 50%;
	bottom: calc(76px + env(safe-area-inset-bottom, 0px));
	transform: translateX(-50%);
	z-index: 120;
	padding: 8px 14px;
	border-radius: 999px;
	background: hsl(220 14% 12% / .92);
	color: #fff;
	font-size: 13px;
	pointer-events: none;
}
body.xin-tts-open .xin-ptools-toast {
	bottom: calc(132px + env(safe-area-inset-bottom, 0px));
}
.xin-ptools-toast[hidden] { display: none !important; }

.xin-suggest {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: grid;
	place-items: center;
	padding: 18px;
	background: hsl(220 14% 6% / .55);
}
.xin-suggest[hidden] { display: none !important; }
.xin-suggest__panel {
	position: relative;
	width: min(640px, 100%);
	max-height: min(88vh, 720px);
	overflow: auto;
	padding: 22px 22px 18px;
	border-radius: 16px;
	background: hsl(var(--card, 0 0% 100%));
	color: hsl(var(--fg));
	box-shadow: 0 24px 60px hsl(220 20% 4% / .35);
}
.xin-suggest__panel h2 { margin: 0 0 14px; font-size: 18px; }
.xin-suggest__x {
	position: absolute;
	top: 10px;
	right: 10px;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	padding: 6px;
}
.xin-suggest__x svg { width: 16px; height: 16px; }
.xin-suggest__box {
	padding: 10px 12px;
	border-radius: 10px;
	background: hsl(var(--muted, 220 14% 96%));
	font-size: 14.5px;
	line-height: 1.55;
	white-space: pre-wrap;
}
.xin-suggest__input {
	display: block;
	width: 100%;
	margin: 10px 0;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid hsl(var(--border));
	background: hsl(var(--bg, 0 0% 100%));
	color: inherit;
	font: inherit;
	line-height: 1.55;
	resize: vertical;
	min-height: 88px;
}
.xin-suggest__diff ins { background: hsl(150 70% 45% / .28); text-decoration: none; }
.xin-suggest__diff del { background: hsl(0 70% 50% / .28); }
.xin-suggest__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.xin-talk__quote {
	margin: .4em 0 0;
	padding: .55em .8em;
	border-left: 3px solid hsl(var(--primary));
	background: hsl(var(--primary) / .06);
	border-radius: 0 8px 8px 0;
}
.xin-talk__quote ins { background: hsl(150 70% 45% / .28); text-decoration: none; }
.xin-talk__quote del { background: hsl(0 70% 50% / .28); text-decoration: line-through; }
.xin-talk__anchor { margin-left: .35em; color: hsl(var(--primary)); text-decoration: none; font-weight: 700; }

.xin-tts {
	position: fixed;
	left: 50%;
	bottom: calc(62px + env(safe-area-inset-bottom, 0px));
	transform: translateX(-50%);
	z-index: 105;
	display: flex;
	flex-direction: column;
	width: min(680px, calc(100% - 16px));
	max-height: min(70vh, 560px);
	border: 1px solid hsl(var(--border));
	background: hsl(var(--card));
	color: hsl(var(--fg));
	box-shadow: 0 18px 40px hsl(220 18% 6% / .18);
}
.xin-tts[hidden] { display: none !important; }
.xin-tts__transport {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 8px 10px;
	border-bottom: 1px solid hsl(var(--border) / .7);
}
.xin-tts__btn {
	border: 0;
	background: none;
	color: inherit;
	padding: 7px;
	cursor: pointer;
}
.xin-tts__btn svg { width: 16px; height: 16px; }
.xin-tts.is-playing [data-xin-tts-play],
.xin-tts:not(.is-paused):not(.is-playing) [data-xin-tts-pause] { opacity: .35; }
.xin-tts.is-paused [data-xin-tts-pause] { opacity: .35; }
.xin-tts__now {
	flex: 1;
	min-width: 0;
	padding: 0 8px;
}
.xin-tts__now small {
	display: block;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: hsl(var(--muted-fg));
}
.xin-tts__now span {
	display: block;
	font-size: 13px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.xin-tts__voices-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	max-width: 42%;
	margin: 0;
	padding: 6px 10px;
	border: 1px solid hsl(var(--border));
	background: hsl(var(--bg));
	color: inherit;
	font: 600 12px/1.2 var(--font);
	cursor: pointer;
}
.xin-tts__voices-toggle svg { width: 14px; height: 14px; flex: none; }
.xin-tts__voices-toggle span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xin-tts__studio {
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 10px 12px 12px;
	overflow: hidden;
}
.xin-tts__studio[hidden] { display: none !important; }
.xin-tts__studio-head {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-bottom: 8px;
}
.xin-tts__search {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 6px;
	min-width: 140px;
	padding: 6px 8px;
	border: 1px solid hsl(var(--border));
	background: hsl(var(--bg));
}
.xin-tts__search svg { width: 14px; height: 14px; opacity: .6; }
.xin-tts__search input {
	flex: 1;
	border: 0;
	background: none;
	color: inherit;
	font: 14px/1.3 var(--font);
	outline: none;
}
.xin-tts__local {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: hsl(var(--muted-fg));
	cursor: pointer;
}
.xin-tts__list {
	flex: 1;
	min-height: 120px;
	max-height: 240px;
	overflow: auto;
	border: 1px solid hsl(var(--border));
	background: hsl(var(--bg));
}
.xin-tts__group {
	padding: 8px 10px 4px;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: hsl(var(--muted-fg));
}
.xin-tts__voice {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	padding: 8px 10px;
	border: 0;
	border-top: 1px solid hsl(var(--border) / .6);
	background: none;
	color: inherit;
	font: 500 13.5px/1.3 var(--font);
	text-align: left;
	cursor: pointer;
}
.xin-tts__voice:hover { background: hsl(var(--accent, 220 14% 96%)); }
.xin-tts__voice.is-on { background: hsl(var(--primary) / .1); font-weight: 700; }
.xin-tts__voice b { flex: 1; font-weight: inherit; }
.xin-tts__badge {
	flex: none;
	padding: 1px 6px;
	border: 1px solid hsl(var(--border));
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: hsl(var(--muted-fg));
}
.xin-tts__badge--local {
	border-color: hsl(var(--gold));
	color: hsl(var(--gold));
}
.xin-tts__dials {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr auto;
	gap: 10px;
	align-items: end;
	margin-top: 10px;
}
.xin-tts__dials label {
	display: grid;
	gap: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: hsl(var(--muted-fg));
}
.xin-tts__dials output { font-variant-numeric: tabular-nums; color: hsl(var(--fg)); }
.xin-tts__dials input[type="range"] { width: 100%; }
.xin-tts__hint {
	margin: 8px 0 0;
	font-size: 12px;
	color: hsl(var(--muted-fg));
}
@media (max-width: 640px) {
	.xin-tts__dials { grid-template-columns: 1fr; }
	.xin-tts__voices-toggle span { display: none; }
	.xin-tts__now small { display: none; }
}

/* Рейтинг — отдельная доска: переключатели, подиум, строки с местом и полосой
   относительно лидера. Подиум и строки берут готовые .xin-podium и .xin-rankrow,
   здесь только то, что есть на этой странице и больше нигде. */
.xin-rank { padding-bottom: 20px; }
.xin-rank__controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

.xin-rank__value { display: block; margin-top: 6px; font-size: 12.5px; color: hsl(var(--muted-fg)); }
.xin-rank__value b { font-size: 15px; font-weight: 800; color: hsl(var(--fg)); }
.xin-rank__value small { font-size: 11.5px; }

/* The rows hold a title set to nowrap, and a grid item refuses to shrink below
   its own min-content, so on a phone the row grew past the screen and the
   score column was clipped away. Every box down the chain is allowed to
   shrink so the ellipsis can do its job. */
.xin-rank__list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; }
.xin-rank__list li { min-width: 0; }
.xin-rank__list .xin-rankrow { gap: 12px; min-width: 0; }
.xin-rank__list .xin-rankrow__num { width: 30px; }

.xin-rank__bar { display: block; height: 4px; margin-top: 7px; border-radius: 999px; background: hsl(var(--muted)); overflow: hidden; }
.xin-rank__bar i { display: block; height: 4px; border-radius: 999px; background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--gold))); }

.xin-rank__score { flex: none; text-align: right; line-height: 1.2; }
.xin-rank__score b { display: block; font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.xin-rank__score small { font-size: 10.5px; color: hsl(var(--muted-fg)); }

.xin-rank__note {
	margin: 22px 0 0; padding: 12px 14px; border-radius: var(--radius);
	background: hsl(var(--muted) / .5); border: 1px solid hsl(var(--border));
	font-size: 12.5px; color: hsl(var(--muted-fg));
}

@media (max-width: 520px) {
	.xin-rank__controls { gap: 8px; }
	.xin-rank__score b { font-size: 13.5px; }
}

/* Уголок читателя ---------------------------------------------------------
   Терминал, а не страница: собственное тёмное полотно поверх любой темы,
   сетка и бегущая развёртка на фоне, моноширинные подписи, срезанные углы
   вместо скруглений, сегментные шкалы вместо гладких полос. Палитра своя и
   замкнутая — на светлой теме сайта уголок остаётся тёмным, иначе неон
   выглядеть не будет. */

.xin-rh {
	--rh-bg: #04070f;
	--rh-fg: #dceeff;
	--rh-dim: #6f88a6;
	--rh-cy: #22e3ff;
	--rh-mg: #ff2e7e;
	--rh-am: #ffcf5c;
	--rh-line: rgba(34, 227, 255, .16);
	--rh-line-2: rgba(34, 227, 255, .08);
	--rh-mono: ui-monospace, "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	--rh-cut: 10px;

	position: relative;
	isolation: isolate;
	margin-bottom: -1px;
	padding-bottom: 54px;
	background: var(--rh-bg);
	color: var(--rh-fg);
	overflow: clip;

	/* Полотно тёмное при любой теме сайта, поэтому низ страницы обрывается
	   стыком с подвалом. Неоновая кромка делает обрыв намеренным. */
	border-bottom: 1px solid var(--rh-cy);
	box-shadow: 0 0 26px rgba(34, 227, 255, .28);
}

/* полотно ------------------------------------------------------------- */

.xin-rh__deck { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.xin-rh__deck > span { position: absolute; inset: 0; display: block; }

/* сетка: два набора линий, вертикальные реже горизонтальных */
.xin-rh__grid {
	background-image:
		linear-gradient(to right, var(--rh-line-2) 1px, transparent 1px),
		linear-gradient(to bottom, var(--rh-line-2) 1px, transparent 1px);
	background-size: 72px 72px;
	mask-image: linear-gradient(to bottom, #000 0%, #000 62%, transparent 100%);
}

/* два пятна света: холодное сверху слева, тёплое справа */
.xin-rh__glow {
	background:
		radial-gradient(760px 420px at 12% -8%, rgba(34, 227, 255, .17), transparent 70%),
		radial-gradient(680px 460px at 96% 6%, rgba(255, 46, 126, .14), transparent 72%),
		radial-gradient(900px 500px at 60% 108%, rgba(34, 227, 255, .07), transparent 70%);
}

/* развёртка: тонкая строка, медленно идущая сверху вниз */
.xin-rh__beam {
	inset: -30% 0 auto;
	height: 34%;
	background: linear-gradient(to bottom, transparent, rgba(34, 227, 255, .07) 46%, rgba(34, 227, 255, .22) 50%, rgba(34, 227, 255, .07) 54%, transparent);
	animation: xin-rh-sweep 9s linear infinite;
}

/* строчная маска поверх всего — она и даёт «экран» */
.xin-rh__lines {
	background: repeating-linear-gradient(to bottom, rgba(0, 0, 0, .22) 0 1px, transparent 1px 3px);
	opacity: .55;
	mix-blend-mode: multiply;
}

@keyframes xin-rh-sweep {
	from { transform: translateY(0); }
	to   { transform: translateY(400%); }
}

.xin-rh > *:not(.xin-rh__deck) { position: relative; z-index: 1; }

/* ссылки внутри уголка живут по своей палитре */
.xin-rh a { color: var(--rh-fg); }
.xin-rh a:hover { color: var(--rh-cy); }
.xin-rh .xin-crumbs,
.xin-rh .xin-crumbs a { color: var(--rh-dim); font-family: var(--rh-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.xin-rh .xin-crumbs a:hover { color: var(--rh-cy); }

/* шапка --------------------------------------------------------------- */

.xin-rh__top { padding: 26px 0 30px; }

.xin-rh__kicker {
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
	margin: 14px 0 12px;
	font-family: var(--rh-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
	color: var(--rh-cy);
}
.xin-rh__kicker span { color: var(--rh-dim); letter-spacing: .12em; }
.xin-rh__dot {
	width: 7px; height: 7px; flex: none;
	background: var(--rh-cy);
	box-shadow: 0 0 0 3px rgba(34, 227, 255, .18), 0 0 12px var(--rh-cy);
	animation: xin-rh-pulse 1.9s ease-in-out infinite;
}
@keyframes xin-rh-pulse {
	0%, 100% { opacity: 1; }
	50%      { opacity: .25; }
}

/* заголовок с двойным неоновым сдвигом: слои включаются только при наведении,
   чтобы рябь не мешала читать */
.xin-rh__title {
	position: relative;
	margin: 0 0 10px;
	font-size: clamp(2.1rem, 1.2rem + 4vw, 4.1rem);
	line-height: 1;
	letter-spacing: -.045em;
	text-transform: uppercase;
	color: #fff;
	text-shadow: 0 0 22px rgba(34, 227, 255, .35);
}
.xin-rh__title::before,
.xin-rh__title::after {
	content: attr(data-text);
	position: absolute; inset: 0;
	opacity: 0; pointer-events: none;
	transition: opacity .2s ease;
}
.xin-rh__title::before { color: var(--rh-mg); transform: translate(-2px, 1px); }
.xin-rh__title::after  { color: var(--rh-cy); transform: translate(2px, -1px); }
.xin-rh__title:hover::before,
.xin-rh__title:hover::after { opacity: .55; }

.xin-rh__lede { max-width: 52ch; margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--rh-dim); }

/* строка счётчиков: шесть ячеек со срезанным углом и неоновой кромкой */
.xin-rh__ticker {
	display: grid; gap: 1px;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	margin: 28px 0 0;
	background: var(--rh-line-2);
	border: 1px solid var(--rh-line);
	clip-path: polygon(var(--rh-cut) 0, 100% 0, 100% calc(100% - var(--rh-cut)), calc(100% - var(--rh-cut)) 100%, 0 100%, 0 var(--rh-cut));
}
.xin-rh__ticker > div {
	position: relative;
	min-width: 0;
	padding: 14px 16px 15px;
	background: rgba(4, 10, 22, .72);
}
.xin-rh__ticker > div::before {
	content: ""; position: absolute; inset: 0 auto auto 0;
	width: 22px; height: 2px; background: var(--rh-cy);
	box-shadow: 0 0 10px var(--rh-cy);
}
.xin-rh__ticker dt {
	margin: 0 0 6px;
	font-family: var(--rh-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
	color: var(--rh-dim);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xin-rh__ticker dd {
	margin: 0;
	font-family: var(--rh-mono); font-size: clamp(1.35rem, 1rem + 1.2vw, 1.9rem); font-weight: 700;
	letter-spacing: -.02em; font-variant-numeric: tabular-nums;
	color: #fff;
	text-shadow: 0 0 16px rgba(34, 227, 255, .4);
}

/* три факта ------------------------------------------------------------ */

.xin-rh__facts {
	list-style: none; display: grid; gap: 1px;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	margin: 22px 0 0; padding: 0;
	background: var(--rh-line-2);
	border-block: 1px solid var(--rh-line);
}
.xin-rh__facts li { min-width: 0; padding: 13px 16px; background: rgba(4, 10, 22, .55); }
.xin-rh__facts span {
	display: block; margin-bottom: 4px;
	font-family: var(--rh-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
	color: var(--rh-mg);
}
.xin-rh__facts a {
	font-size: 15px; font-weight: 600;
	display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xin-rh__facts a::before { content: "> "; color: var(--rh-dim); font-family: var(--rh-mono); }

/* полосы разделов ------------------------------------------------------- */

.xin-rh__band { padding: 34px 0; border-bottom: 1px solid var(--rh-line-2); }
.xin-rh__band--last { border-bottom: 0; }
.xin-rh__split { display: grid; gap: 22px; align-items: start; }
.xin-rh__split > * { min-width: 0; }
@media (min-width: 960px) {
	.xin-rh__split { grid-template-columns: 236px minmax(0, 1fr); gap: 44px; }
	.xin-rh__aside { position: sticky; top: calc(var(--header-h) + 20px); }
}

.xin-rh__idx {
	margin: 0 0 2px;
	font-family: var(--rh-mono); font-size: 11px; letter-spacing: .2em;
	color: var(--rh-cy);
}
.xin-rh__idx::after { content: " //"; color: var(--rh-dim); }
.xin-rh__h {
	margin: 0 0 8px;
	font-size: 20px; font-weight: 800; letter-spacing: -.01em; text-transform: uppercase;
	color: #fff;
}
.xin-rh__note { margin: 0; font-size: 12.5px; line-height: 1.65; color: var(--rh-dim); }
.xin-rh__note a { color: var(--rh-cy); }
.xin-rh__empty {
	margin: 0; padding: 18px 16px;
	font-family: var(--rh-mono); font-size: 13px; color: var(--rh-dim);
	border: 1px dashed var(--rh-line);
}

/* переключатель — квадратные кнопки со срезом */
.xin-rh__switch { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.xin-rh__switch a {
	padding: 5px 11px;
	font-family: var(--rh-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
	color: var(--rh-dim);
	border: 1px solid var(--rh-line);
	clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
	transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}
.xin-rh__switch a:hover { color: var(--rh-fg); border-color: rgba(34, 227, 255, .45); }
.xin-rh__switch .is-on {
	color: #04070f; background: var(--rh-cy); border-color: var(--rh-cy);
	box-shadow: 0 0 16px rgba(34, 227, 255, .45);
}

/* общие детали строк ---------------------------------------------------- */

.xin-rh__place {
	flex: none; width: 40px;
	font-family: var(--rh-mono); font-size: 15px; font-weight: 700;
	letter-spacing: -.02em; font-variant-numeric: tabular-nums;
	color: rgba(111, 136, 166, .55);
	transition: color .18s ease, text-shadow .18s ease;
}

.xin-rh__lv {
	font-family: var(--rh-mono); font-style: normal; font-size: 9.5px; letter-spacing: .1em;
	padding: 2px 5px; margin-right: 7px;
	color: var(--rh-cy);
	border: 1px solid rgba(34, 227, 255, .35);
	white-space: nowrap;
}

/* сегментная шкала: полоса нарезана на деления, заполненная часть светится */
.xin-rh__meter {
	--p: 0%;
	display: none; flex: 0 1 150px; height: 9px; min-width: 0;
	background: repeating-linear-gradient(90deg, rgba(111, 136, 166, .3) 0 4px, transparent 4px 7px);
}
.xin-rh__meter i {
	display: block; height: 100%; width: var(--p);
	background: repeating-linear-gradient(90deg, var(--rh-cy) 0 4px, transparent 4px 7px);
	filter: drop-shadow(0 0 5px rgba(34, 227, 255, .8));
	animation: xin-rh-fill 1s cubic-bezier(.2, .8, .2, 1) both;
}
@keyframes xin-rh-fill {
	from { width: 0; }
}
@media (min-width: 760px) { .xin-rh__meter { display: block; } }

/* пара «число + подпись»; активная метрика раздела горит */
/* На узком экране остаётся только та метрика, по которой раздел отсортирован:
   строка без единой цифры выглядит пустой, а три цифры туда не влезают. */
.xin-rh__pair { flex: none; display: none; text-align: right; min-width: 60px; }
.xin-rh__pair.is-key { display: block; }
@media (min-width: 620px) { .xin-rh__pair { display: block; } }
@media (max-width: 900px) { .xin-rh__pair.is-dim { display: none; } }
.xin-rh__pair b {
	display: block;
	font-family: var(--rh-mono); font-size: 14px; font-weight: 700;
	font-variant-numeric: tabular-nums; color: var(--rh-fg);
}
.xin-rh__pair small {
	display: block;
	font-family: var(--rh-mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase;
	color: var(--rh-dim);
}
.xin-rh__pair.is-key b { color: var(--rh-cy); text-shadow: 0 0 14px rgba(34, 227, 255, .55); }
.xin-rh__pair.is-dim b { color: var(--rh-dim); font-weight: 400; }

/* кто говорит ----------------------------------------------------------- */

.xin-rh__board { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.xin-rh__board li {
	position: relative;
	display: flex; align-items: center; gap: 14px; min-width: 0;
	padding: 11px 16px 11px 12px;
	background: rgba(8, 15, 28, .55);
	border: 1px solid var(--rh-line-2);
	clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
	transition: background-color .18s ease, border-color .18s ease;
}
.xin-rh__board li::before {
	content: ""; position: absolute; inset: 0 auto 0 0; width: 2px;
	background: var(--rh-line); transition: background-color .18s ease, box-shadow .18s ease;
}
.xin-rh__board li:hover { background: rgba(12, 22, 40, .8); border-color: rgba(34, 227, 255, .22); }
.xin-rh__board li:hover::before { background: var(--rh-cy); box-shadow: 0 0 12px var(--rh-cy); }
.xin-rh__board li:hover .xin-rh__place { color: var(--rh-cy); }

.xin-rh__board .is-first { background: rgba(20, 10, 26, .7); border-color: rgba(255, 46, 126, .28); }
.xin-rh__board .is-first::before { background: var(--rh-mg); box-shadow: 0 0 14px var(--rh-mg); }
.xin-rh__board .is-first .xin-rh__place { color: var(--rh-mg); font-size: 20px; text-shadow: 0 0 14px rgba(255, 46, 126, .6); }
.xin-rh__board .is-first .xin-rh__meter i { background: repeating-linear-gradient(90deg, var(--rh-mg) 0 4px, transparent 4px 7px); filter: drop-shadow(0 0 5px rgba(255, 46, 126, .8)); }
.xin-rh__board .is-first .xin-rh__pair.is-key b { color: var(--rh-mg); text-shadow: 0 0 14px rgba(255, 46, 126, .55); }

.xin-rh__person { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; text-decoration: none; }
.xin-rh__ava { flex: none; line-height: 0; }
.xin-rh__ava img {
	border-radius: 0;
	clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px);
	outline: 1px solid var(--rh-line);
	filter: saturate(.85);
}
.xin-rh__board .is-first .xin-rh__ava img { outline-color: rgba(255, 46, 126, .5); }
.xin-rh__who { display: grid; gap: 3px; min-width: 0; }
.xin-rh__who b {
	font-size: 14.5px; color: #fff;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xin-rh__board .is-first .xin-rh__who b { font-size: 17px; letter-spacing: -.01em; }
.xin-rh__who small {
	display: flex; align-items: center; min-width: 0;
	font-family: var(--rh-mono); font-size: 10.5px; color: var(--rh-dim);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* о чём спорят ----------------------------------------------------------- */

.xin-rh__chapters { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.xin-rh__chapters li {
	display: flex; align-items: center; gap: 12px; min-width: 0;
	padding-left: 12px;
	background: rgba(8, 15, 28, .4);
	border-left: 2px solid var(--rh-line-2);
	transition: background-color .18s ease, border-color .18s ease;
}
.xin-rh__chapters li:hover { background: rgba(12, 22, 40, .75); border-left-color: var(--rh-cy); }
.xin-rh__chapters li:hover .xin-rh__place { color: var(--rh-cy); }
.xin-rh__chapters a {
	display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0;
	padding: 10px 14px 10px 0; text-decoration: none;
}
.xin-rh__thumb {
	flex: none; position: relative; width: 40px; aspect-ratio: 2 / 3; overflow: hidden;
	background: #0a1220;
	clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}
.xin-rh__thumb img {
	width: 100%; height: 100%; object-fit: cover;
	filter: grayscale(1) contrast(1.15) brightness(.85);
	transition: filter .3s ease;
}
.xin-rh__thumb::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(160deg, rgba(34, 227, 255, .32), rgba(255, 46, 126, .22));
	mix-blend-mode: screen;
	transition: opacity .3s ease;
}
.xin-rh__chapters a:hover .xin-rh__thumb img { filter: none; }
.xin-rh__chapters a:hover .xin-rh__thumb::after { opacity: 0; }

.xin-rh__what { display: grid; gap: 4px; min-width: 0; flex: 1; }
.xin-rh__what b {
	font-size: 14.5px; color: #fff;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xin-rh__chapters a:hover .xin-rh__what b { color: var(--rh-cy); }
.xin-rh__what small {
	font-family: var(--rh-mono); font-size: 10.5px; color: var(--rh-dim);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xin-rh__what .xin-rh__meter { display: block; flex: none; width: 100%; max-width: 190px; height: 5px; margin-top: 2px; }

/* сказано ---------------------------------------------------------------- */

.xin-rh__quotes { display: grid; gap: 8px; }
@media (min-width: 860px) { .xin-rh__quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.xin-rh__quotes figure {
	display: flex; flex-direction: column; min-width: 0;
	margin: 0; padding: 13px 15px;
	background: rgba(6, 12, 24, .66);
	border: 1px solid var(--rh-line-2);
	border-left: 2px solid var(--rh-line);
	transition: border-color .18s ease, background-color .18s ease;
}
.xin-rh__quotes figure:hover { background: rgba(10, 20, 36, .85); border-left-color: var(--rh-cy); }
.xin-rh__quotes figcaption {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; min-width: 0;
	padding-bottom: 9px; margin-bottom: 10px;
	border-bottom: 1px dashed var(--rh-line-2);
	font-family: var(--rh-mono); font-size: 11px;
}
.xin-rh__prompt { color: var(--rh-cy); }
.xin-rh__quotes figcaption b { color: #fff; font-size: 12px; font-weight: 700; }
.xin-rh__quotes figcaption a { color: var(--rh-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.xin-rh__quotes figcaption time { margin-left: auto; color: var(--rh-dim); white-space: nowrap; }
.xin-rh__quotes blockquote {
	flex: 1;
	margin: 0; padding: 0; border: 0;
	font-family: var(--font-read, inherit);
	font-size: 15px; line-height: 1.62; color: var(--rh-fg);
	text-wrap: pretty;
}
.xin-rh__sig { margin: 11px 0 0; text-align: right; }
.xin-rh__sig span {
	display: inline-block; padding: 2px 8px;
	font-family: var(--rh-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
	color: var(--rh-am);
	border: 1px solid rgba(255, 207, 92, .3);
}

/* прямо сейчас ----------------------------------------------------------- */

.xin-rh__me {
	margin: 14px 0 0; padding: 14px 15px;
	background: rgba(6, 12, 24, .72);
	border: 1px solid var(--rh-line);
	clip-path: polygon(var(--rh-cut) 0, 100% 0, 100% calc(100% - var(--rh-cut)), calc(100% - var(--rh-cut)) 100%, 0 100%, 0 var(--rh-cut));
}
.xin-rh__meh {
	margin: 0 0 6px;
	font-family: var(--rh-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
	color: var(--rh-mg);
}
.xin-rh__melv {
	margin: 0 0 8px;
	font-family: var(--rh-mono); font-size: 12px; letter-spacing: .12em; color: var(--rh-dim);
}
.xin-rh__melv b {
	font-size: 30px; font-weight: 700; letter-spacing: -.03em; color: #fff;
	text-shadow: 0 0 20px rgba(34, 227, 255, .5);
}
.xin-rh__meter--wide { display: block; width: 100%; flex: none; height: 7px; margin-bottom: 12px; }
.xin-rh__me dl { display: grid; gap: 6px; margin: 0; }
.xin-rh__me dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.xin-rh__me dt { min-width: 0; font-family: var(--rh-mono); font-size: 10.5px; color: var(--rh-dim); }
.xin-rh__me dd {
	margin: 0;
	font-family: var(--rh-mono); font-size: 14px; font-weight: 700;
	font-variant-numeric: tabular-nums; color: var(--rh-fg);
}

.xin-rh__stream { list-style: none; margin: 0; padding: 0; font-family: var(--rh-mono); }
.xin-rh__stream li {
	display: flex; align-items: baseline; gap: 10px; min-width: 0;
	padding: 8px 12px;
	border-bottom: 1px solid var(--rh-line-2);
}
.xin-rh__stream li:first-child { background: rgba(34, 227, 255, .05); }
.xin-rh__stream time { flex: none; font-size: 11px; color: var(--rh-cy); font-variant-numeric: tabular-nums; }
.xin-rh__stream .xin-rh__lv { flex: none; margin-right: 0; }
.xin-rh__stream li > span { min-width: 0; flex: 1; font-size: 12.5px; line-height: 1.55; color: var(--rh-dim); }
.xin-rh__stream b { color: var(--rh-fg); font-weight: 700; }
.xin-rh__stream a { color: var(--rh-fg); }
.xin-rh__stream a:hover { color: var(--rh-cy); }
.xin-rh__stream u { flex: none; font-size: 10px; color: rgba(111, 136, 166, .7); text-decoration: none; white-space: nowrap; }

/* мигающий курсор в конце ленты — знак, что она живая */
.xin-rh__caret { border-bottom: 0 !important; }
.xin-rh__caret time { opacity: .35; }
.xin-rh__caret i {
	display: inline-block; width: 8px; height: 14px;
	background: var(--rh-cy);
	animation: xin-rh-blink 1.1s steps(1) infinite;
}
@keyframes xin-rh-blink {
	0%, 49%   { opacity: 1; }
	50%, 100% { opacity: 0; }
}

.xin-rh__foot {
	margin: 26px auto 0;
	font-family: var(--rh-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase;
	color: rgba(111, 136, 166, .65);
}
.xin-rh__foot::before { content: "// "; }

/* узкие экраны ------------------------------------------------------------ */

@media (max-width: 620px) {
	.xin-rh { --rh-cut: 7px; }
	.xin-rh__ticker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.xin-rh__place { width: 26px; font-size: 12px; }
	.xin-rh__board li { padding: 10px 12px 10px 10px; gap: 10px; }
	.xin-rh__chapters a { gap: 11px; padding-right: 10px; }
	.xin-rh__stream li { flex-wrap: wrap; gap: 6px 8px; }
	.xin-rh__stream li > span { flex: 1 1 100%; }
	.xin-rh__stream u { margin-left: auto; }
}

/* меньше движения — гасим развёртку, пульс, курсор и наполнение шкал */
@media (prefers-reduced-motion: reduce) {
	.xin-rh__beam,
	.xin-rh__dot,
	.xin-rh__caret i,
	.xin-rh__meter i { animation: none; }
	.xin-rh__beam { opacity: .35; }
}
