@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;1,400&family=Source+Serif+4:wght@300;400&display=swap');

:root{--font-size:17px;--line-height:1.9;--font-family:'Lora',Georgia,serif;--topbar-fg:#e8e8e8;}

body.theme-dark  {--bg:#0f0f0f;--surface:#1a1a1a;--surface2:#222;--border:#2a2a2a;--text:#e0e0e0;--muted:#666;}
body.theme-light {--bg:#f5f0e8;--surface:#ede8de;--surface2:#e0dbd0;--border:#ccc8be;--text:#1a1a1a;--muted:#888;}
body.theme-sepia {--bg:#1a1410;--surface:#221e18;--surface2:#2a2420;--border:#332e28;--text:#d4c4a0;--muted:#6a5a40;}
body{transition:background 0.3s,color 0.3s;padding-bottom:60px;background:var(--bg);color:var(--text);}

.reader-topbar{position:fixed;top:0;left:0;right:0;height:54px;background:#0a0a0a;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 14px;gap:10px;z-index:100;}
.topbar-back{color:var(--topbar-fg);display:flex;align-items:center;flex-shrink:0;}
.reader-topbar-center{flex:1;min-width:0;}
.reader-novel-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--topbar-fg);}
.reader-ch-label{font-size:11px;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.reader-topbar-actions{display:flex;gap:2px;flex-shrink:0;}
.topbar-btn{color:var(--topbar-fg);padding:6px;display:flex;align-items:center;border-radius:6px;background:none;border:none;cursor:pointer;}

.settings-panel{position:fixed;right:0;top:54px;width:240px;background:var(--surface);border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0 0 0 12px;padding:16px;z-index:150;transform:translateX(100%);transition:transform 0.25s ease;box-shadow:-4px 4px 20px rgba(0,0,0,0.4);}
.settings-panel.open{transform:none;}
.settings-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:14px 0 8px;}
.settings-label:first-child{margin-top:0;}
.font-size-row{display:flex;align-items:center;gap:8px;}
.fsz-btn{width:32px;height:32px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.fsz-display{flex:1;text-align:center;font-size:13px;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:6px;background:var(--surface2);}
.font-btns{display:flex;flex-direction:column;gap:5px;}
.font-btn{padding:7px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);font-size:12px;cursor:pointer;text-align:left;}
.font-btn.active{border-color:var(--red-bright,#e74c3c);color:var(--red-bright,#e74c3c);}
.theme-btns{display:flex;gap:6px;}
.theme-btn{flex:1;height:30px;border-radius:6px;border:2px solid var(--border);cursor:pointer;font-size:10px;font-weight:600;}
.theme-btn.active{border-color:var(--red-bright,#e74c3c);}

.ch-nav-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);margin-top:54px;}
.ch-list-btn{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);cursor:pointer;}
.nav-btn-ch{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);text-decoration:none;transition:all 0.15s;}
.nav-btn-ch.next{color:var(--red-bright,#e74c3c);border-color:var(--red-dim,#7b1a13);background:rgba(192,57,43,0.06);}
.nav-btn-ch.disabled{opacity:0.35;pointer-events:none;}

.reader-wrap{max-width:680px;margin:0 auto;padding:28px 20px 40px;}
.chapter-heading{font-size:22px;font-weight:700;margin-bottom:6px;font-family:'Cinzel',serif;color:var(--red-bright,#e74c3c);}
.novel-sub-heading{font-size:13px;color:var(--muted);margin-bottom:28px;}
.chapter-content{font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);color:var(--text);}
.chapter-content p{margin-bottom:1.2em;text-indent:1.5em;}
.chapter-content p:first-child{text-indent:0;}
.chapter-content img{max-width:100%;border-radius:8px;margin:12px auto;display:block;}
.chapter-content hr{border:none;border-top:1px solid var(--border);margin:24px 0;}

.ch-nav-bottom{display:flex;gap:10px;justify-content:center;padding:20px 16px 28px;border-top:1px solid var(--border);}

.reader-bottom-bar{position:fixed;bottom:0;left:0;right:0;height:60px;background:var(--surface);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 14px;gap:10px;z-index:100;}
.progress-slider{-webkit-appearance:none;appearance:none;flex:1;height:4px;background:var(--surface2);border-radius:2px;outline:none;cursor:pointer;}
.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--red-bright,#e74c3c);}
.bot-nav-ch{color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap;text-decoration:none;display:flex;align-items:center;gap:4px;}
.bot-nav-ch.disabled{opacity:0.35;pointer-events:none;}

.scroll-top-btn{position:fixed;bottom:72px;right:16px;width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;z-index:90;opacity:0;pointer-events:none;transition:opacity 0.2s;cursor:pointer;}
.scroll-top-btn.visible{opacity:1;pointer-events:all;}

.cs-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:200;opacity:0;pointer-events:none;transition:opacity 0.25s;}
.cs-overlay.open{opacity:1;pointer-events:all;}
.chapter-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);border-radius:16px 16px 0 0;z-index:201;transform:translateY(100%);transition:transform 0.3s ease;max-height:80vh;display:flex;flex-direction:column;}
.chapter-sheet.open{transform:none;}
.sheet-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 0;}
.sheet-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.sheet-list{overflow-y:auto;flex:1;}
.cs-vol-header{padding:10px 20px 6px;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:600;background:var(--surface2);border-bottom:1px solid var(--border);}
.cs-ch-item{display:flex;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;transition:background 0.15s;}
.cs-ch-item:hover{background:var(--surface2);}
.cs-ch-item.active{background:rgba(192,57,43,0.08);}
.cs-ch-label{flex:1;font-size:13px;font-weight:500;}
.cs-ch-date{font-size:11px;color:var(--muted);}

.comments-section{padding:20px 16px 32px;border-top:1px solid var(--border);}
.comments-title{font-size:15px;font-weight:700;margin-bottom:16px;}
.comment-form-row{display:flex;gap:10px;}
.comment-avatar{width:36px;height:36px;border-radius:50%;background:var(--red-dim,#7b1a13);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden;}
.comment-input{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:8px;font-size:13px;font-family:'DM Sans',sans-serif;resize:vertical;min-height:70px;outline:none;}
.comment-post-btn{background:var(--red,#c0392b);color:#fff;border:none;padding:7px 18px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;}
.comment-item{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--border);}
.comment-item:last-child{border-bottom:none;}
.comment-body{flex:1;min-width:0;}
.comment-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.comment-name{font-size:13px;font-weight:600;}
.comment-time{font-size:11px;color:var(--muted);}
.comment-text{font-size:13px;line-height:1.6;word-break:break-word;}
.load-more-btn{width:100%;padding:10px;margin-top:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:13px;cursor:pointer;}

.reply-box{background:var(--surface2);border-radius:8px;padding:10px;margin-top:6px;}
.replies-list .comment-item{border-bottom:none;padding:8px 0 4px;}
.replies-list{border-left:2px solid var(--border);padding-left:10px;margin-top:6px;margin-left:46px;display:none;}
.replies-list:empty{display:none;}

div[data-note] {background-color: #1e1e1e;color: #ffdd57;padding: 12px;border-left: 4px solid #9e993c;border-radius: 6px;margin: 15px 0;}
div[data-warning] {background-color: #2a1a1a;color: #ff6b6b;padding: 12px;border-left: 4px solid #ff4444;border-radius: 6px;margin: 15px 0;}
div[data-info] {background-color: #1a1f2a;color: #67d3ff;padding: 12px;border-left: 4px solid #00bfff;border-radius: 6px;margin: 15px 0;}

.img {filter: contrast(1) saturate(1.35) brightness(0.95);drop-shadow(0 0 3px rgba(0, 0, 0, 0.3));transition: 0.3s ease-in-out;box-shadow: 0 2px 4px rgba(0,0,0,0.15);image-rendering: crisp-edges;}

#bookmarkBtn {display: none !important;}

.avatar-wrap{position:relative;display:inline-block;flex-shrink:0;}
.avatar-wrap.is-premium .comment-avatar{box-shadow:0 0 0 2px #f5c518,0 0 8px rgba(245,197,24,0.3);}
.comment-name.is-premium{background:linear-gradient(90deg,#f5c518,#ffaa00);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.avatar-wrap.is-tl .comment-avatar{box-shadow:0 0 0 2px #00b4d8,0 0 8px rgba(0,180,216,0.3);}
.comment-name.is-tl{color:#00b4d8;font-weight:700;}
.avatar-wrap.is-admin .comment-avatar{box-shadow:0 0 0 2px #e74c3c,0 0 12px rgba(231,76,60,0.45);}
.comment-name.is-admin{background:linear-gradient(90deg,#ff6b6b,#e74c3c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700;}

.avatar-role-icon{position:absolute;bottom:-3px;right:-3px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;border:1.5px solid var(--bg,#0a0a0a);z-index:2;pointer-events:none;line-height:1;}
.avatar-role-icon.tl-icon{background:linear-gradient(135deg,#00b4d8,#0096b7);font-size:7px;font-weight:900;color:#fff;letter-spacing:-0.5px;}
.avatar-role-icon.admin-icon{background:linear-gradient(135deg,#e74c3c,#c0392b);}

.role-pill{display:inline-flex;align-items:center;gap:2px;padding:1px 5px;border-radius:4px;font-size:9px;font-weight:800;letter-spacing:0.4px;vertical-align:middle;margin-left:4px;line-height:1.6;}
.role-pill.tl-pill{background:rgba(0,180,216,0.12);color:#00b4d8;border:1px solid rgba(0,180,216,0.35);}
.role-pill.admin-pill{background:rgba(231,76,60,0.12);color:#e74c3c;border:1px solid rgba(231,76,60,0.35);}

.replies-toggle-btn{display:none;margin-top:6px;background:none;border:none;font-size:11px;color:var(--muted,#666);cursor:pointer;align-items:center;gap:4px;padding:2px 0;}
.replies-toggle-btn:hover{color:var(--text,#e8e8e8);}

.comment-media-preview{margin-top:8px;border-radius:8px;overflow:hidden;max-width:190px;}
.comment-media-preview img{width:100%;height:auto;display:block;border-radius:8px;cursor:zoom-in;transition:opacity 0.15s;}
.comment-media-preview img:hover{opacity:0.88;}

.comment-url-preview{margin-top:8px;border-radius:8px;overflow:hidden;max-width:190px;}
.comment-url-preview img{width:100%;height:auto;display:block;border-radius:8px;cursor:zoom-in;transition:opacity 0.15s;}
.comment-url-preview img:hover{opacity:0.88;}

.comment-toolbar{display:flex;align-items:center;gap:6px;margin-top:8px;}
.comment-attach-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:1px solid var(--border,#333);background:none;color:var(--muted,#666);cursor:pointer;transition:color 0.15s,border-color 0.15s,background 0.15s;flex-shrink:0;}
.comment-attach-btn:hover{color:var(--text,#e8e8e8);border-color:var(--muted,#666);background:rgba(255,255,255,0.04);}

.pending-media-wrap{margin-top:8px;position:relative;display:inline-block;}
.pending-media-wrap img{max-width:160px;max-height:120px;border-radius:8px;display:block;border:1px solid var(--border,#333);}
.pending-media-wrap .remove-media{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#e74c3c;color:#fff;font-size:11px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;}

.img-lightbox-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.88);z-index:9999;align-items:center;justify-content:center;cursor:zoom-out;}
.img-lightbox-overlay.open{display:flex;}
.img-lightbox-overlay img{max-width:92vw;max-height:88vh;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,0.6);}

.comment-edit-area{display:none;margin-top:6px;}
.comment-edit-area textarea{width:100%;box-sizing:border-box;}
.comment-edit-area.open{display:block;}
.comment-edited-tag{font-size:10px;color:var(--muted,#666);margin-left:4px;font-style:italic;}

#commentSection{padding-bottom:80px;}

.comment-post-btn{position:relative;transition:opacity 0.15s;}
.comment-post-btn:disabled{opacity:0.6;cursor:not-allowed;}
.comment-post-btn .btn-spinner{display:none;width:12px;height:12px;border:2px solid rgba(255,255,255,0.35);border-top-color:#fff;border-radius:50%;animation:spin 0.65s linear infinite;flex-shrink:0;}
.comment-post-btn.loading .btn-spinner{display:inline-block;}
.comment-post-btn.loading .btn-label{display:none;}

.upload-progress{display:none;font-size:11px;color:var(--muted,#666);margin-top:4px;align-items:center;gap:6px;}
.upload-progress.show{display:flex;}
.upload-spinner{width:12px;height:12px;border:2px solid var(--border,#333);border-top-color:var(--red-bright,#e74c3c);border-radius:50%;animation:spin 0.7s linear infinite;flex-shrink:0;}
@keyframes spin{to{transform:rotate(360deg);}}

.premium-choice-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:9998;align-items:center;justify-content:center;padding:20px;}
.premium-choice-overlay.open{display:flex;}
.premium-choice-modal{position:relative;background:var(--surface,#1a1a1a);border:1px solid var(--border,#333);border-radius:16px;padding:28px 22px 22px;max-width:340px;width:100%;text-align:center;}
.pc-close{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--muted,#888);cursor:pointer;padding:6px;display:flex;}
.pc-icon{width:52px;height:52px;margin:0 auto 12px;border-radius:14px;background:linear-gradient(135deg,#f5c518,#ffaa00);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(245,197,24,0.35);}
.premium-choice-modal h3{font-size:17px;font-weight:700;color:var(--text,#e8e8e8);margin-bottom:6px;}
.premium-choice-modal p{font-size:13px;color:var(--muted,#888);margin-bottom:20px;line-height:1.5;}
.pc-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border-radius:10px;font-size:14px;font-weight:700;border:none;cursor:pointer;margin-bottom:10px;transition:opacity 0.15s;}
.pc-btn:last-of-type{margin-bottom:0;}
.pc-btn:hover{opacity:0.9;}
.pc-btn:disabled{opacity:0.5;cursor:not-allowed;}
.pc-btn.coins{background:linear-gradient(135deg,#18c596,#00e0a0);color:#00201a;}
.pc-btn.premium{background:linear-gradient(135deg,#f5c518,#ffaa00);color:#1a0e00;}
.pc-status{margin-top:12px;font-size:12px;color:var(--muted,#888);min-height:16px;}

.cs-coin-chip{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;border-radius:10px;background:rgba(24,197,150,0.12);border:1px solid rgba(24,197,150,0.35);color:#18c596;font-size:10px;font-weight:700;vertical-align:middle;}

.cs-ch-item.read .cs-ch-label{color:var(--muted,#666);opacity:0.75;}

#coinBalanceChip{display:flex;align-items:center;gap:4px;padding:5px 10px;border-radius:20px;background:rgba(24,197,150,0.12);border:1px solid rgba(24,197,150,0.35);color:#18c596;font-size:12px;font-weight:700;text-decoration:none;margin-right:2px;transition:opacity 0.15s;}
#coinBalanceChip:hover{opacity:0.85;}

.spoiler-text{background:var(--surface2,#222);color:transparent;border-radius:4px;padding:0 2px;cursor:pointer;transition:color 0.15s,background 0.15s;}
.spoiler-text::selection{color:transparent;background:var(--surface2,#222);}
.spoiler-text.revealed{color:inherit;background:rgba(255,255,255,0.06);cursor:text;}

.comments-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;}
.comments-header .comments-title{margin-bottom:0;}
.discord-cta-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;color:var(--muted);font-size:15px;font-weight:700;text-decoration:none;flex-shrink:0;transition:opacity 0.15s;}
.discord-cta-btn:hover{opacity:0.75;}
.s-s {font-family: 'Georgia', 'Palatino Linotype', Palatino, serif;font-weight: 700;font-style: italic;letter-spacing: 0.04em;white-space: nowrap;}
.chapter-content, .chapter-content * {-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;-webkit-touch-callout: none;}
.comment-input, .comment-input *,
.comment-text, .comment-text *,
input, textarea {-webkit-user-select: text;-moz-user-select: text;user-select: text;}
.chapter-content img {-webkit-user-drag: none;user-drag: none;pointer-events: none;}
@media print {.chapter-content { display: none !important; }body::before {content: "This content is not available for printing.";display: block;padding: 40px;font-family: sans-serif;}}
body.devtools-open .chapter-content {filter: blur(8px);pointer-events: none;}
