*{box-sizing:border-box}
:root{color-scheme:light;--bg:#fffbf3;--surface:#fffefa;--surface2:#eaf4fa;--ink:#2f4256;--muted:#71879a;--jade:#3a82b0;--jade-dark:#9ccbea;--btn-ink:#1f3a52;--jade-soft:#e4f1f9;--line:#ece6d3;--gold:#d2b574;--gold-deep:#4a93c2;--shadow:0 18px 40px #2f425618;--serif:"Libre Baskerville",Georgia,serif;--display:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--hero-glow:#dcecf6;--btn-shadow:#6aa5cf55;--pad:max(24px,calc((100% - 1180px)/2))}
:root[data-theme="night"]{color-scheme:dark;--bg:#1a2b3a;--surface:#233648;--surface2:#2d4458;--ink:#f7f1e1;--muted:#b3c6d6;--jade:#9fd0ee;--jade-dark:#3a86b5;--btn-ink:#ffffff;--jade-soft:#2b4357;--line:#3a5369;--gold:#d8bd84;--gold-deep:#8cc4e8;--shadow:0 18px 40px #0006;--hero-glow:#2f5873;--btn-shadow:#0a1c2c66}
:root[data-theme="sepia"]{color-scheme:light;--bg:#f4ecd8;--surface:#fbf5e6;--surface2:#eadfc4;--ink:#433422;--muted:#80705a;--jade:#8a5a2b;--jade-dark:#d3a869;--btn-ink:#2e1f0e;--jade-soft:#efe2c4;--line:#ddcfae;--gold:#c79a5c;--gold-deep:#a8782f;--shadow:0 18px 40px #4334221c;--hero-glow:#eadcb8;--btn-shadow:#c79a5c55}
:root[data-theme="black"]{color-scheme:dark;--bg:#0e0e0f;--surface:#18181a;--surface2:#222225;--ink:#ececec;--muted:#a1a1a8;--jade:#e0bb78;--jade-dark:#d9b36c;--btn-ink:#1a1408;--jade-soft:#2a2418;--line:#2e2e32;--gold:#d9b36c;--gold-deep:#e6c88a;--shadow:0 18px 40px #000a;--hero-glow:#2a2418;--btn-shadow:#00000066}
:root[data-theme="forest"]{color-scheme:dark;--bg:#13201a;--surface:#1b2a22;--surface2:#25382d;--ink:#e9efe6;--muted:#a3b8a8;--jade:#8fd0a4;--jade-dark:#7cc493;--btn-ink:#0d1a12;--jade-soft:#20352a;--line:#33483b;--gold:#d3c27f;--gold-deep:#9fd8b0;--shadow:0 18px 40px #0008;--hero-glow:#25523b;--btn-shadow:#00000066}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.65;transition:background .2s,color .2s}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit}
.hidden{display:none!important}

/* header */
.site-header{height:72px;position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.wordmark{display:flex;align-items:center;gap:11px;font:600 25px var(--display);letter-spacing:-.3px}
.wordmark b{font-style:italic;font-weight:600;color:var(--jade)}
.logo-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--jade);color:#fff;font:16px Georgia}
.main-nav{display:flex;gap:4px;padding:5px;border-radius:99px;background:var(--surface2)}
.nav-item{padding:7px 18px;border-radius:99px;font-size:12px;font-weight:500;color:var(--muted)}
.nav-item:hover{color:var(--jade)}
.nav-item.active{background:var(--surface);color:var(--jade);box-shadow:0 2px 8px #2f425618}
.header-actions{display:flex;align-items:center;gap:10px}
.theme-button,.menu-button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:99px;font-size:11px;cursor:pointer}
.theme-button span:first-child{font-size:15px;color:var(--jade)}
.menu-button{display:none}

/* shared bits */
.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700;color:var(--jade);margin:0 0 12px}
.button{display:inline-flex;align-items:center;gap:14px;padding:14px 26px;font-size:12px;font-weight:600;border-radius:99px;border:0;cursor:pointer}
.primary{background:var(--jade-dark);color:var(--btn-ink);box-shadow:0 10px 24px var(--btn-shadow)}
.primary:hover{filter:brightness(1.08)}
.quiet-link{font-size:12px;color:var(--jade);font-weight:500}
.quiet-link:hover{text-decoration:underline}

/* covers */
.book-cover{position:relative;aspect-ratio:2/3;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:20px;box-shadow:var(--shadow)}
.book-cover:before{content:"";position:absolute;inset:10px;border:1px solid #ffffff80;border-radius:13px}
.book-cover:after{content:"";position:absolute;width:56%;aspect-ratio:1;border:1px solid #ffffff55;border-radius:50%}
.book-cover.has-image:before,.book-cover.has-image:after{display:none}
.cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover-rose{background:linear-gradient(150deg,#f0cdb8,#cf8f77)}
.cover-jade{background:linear-gradient(150deg,#c3dccb,#7fae98)}
.cover-blue{background:linear-gradient(150deg,#bfdff2,#6aa5cf)}
.cover-gold{background:linear-gradient(150deg,#f4e3b5,#d8b565)}
.cover-plum{background:linear-gradient(150deg,#cbcbe6,#8c8cbd)}
.cover-ink{background:linear-gradient(150deg,#8aa6bd,#46627c)}
.chinese-title{position:absolute;z-index:1;writing-mode:vertical-rl;text-orientation:mixed;font:600 clamp(18px,2.1vw,26px) var(--display);letter-spacing:6px;color:#fffdf6;text-shadow:0 2px 10px #0004}
.cover-stamp{position:absolute;bottom:16px;left:16px;color:#fffdf6;border:1px solid #fffa;border-radius:6px;padding:2px 7px;font:9px Georgia;z-index:1}
.cover-status{position:absolute;top:16px;right:14px;background:#fffffff0;color:#2a6590;padding:3px 10px;border-radius:99px;font-size:8px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;z-index:2}

/* hero */
.hero{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:4%;align-items:center;padding:70px var(--pad) 80px;overflow:hidden}
.hero:before{content:"";position:absolute;inset:-20% -10% auto auto;width:60%;height:120%;background:radial-gradient(closest-side,var(--hero-glow),transparent);opacity:.8;pointer-events:none}
.hero-copy,.hero-covers{position:relative}
.hero h1{font:500 clamp(54px,7.4vw,98px)/.98 var(--display);letter-spacing:-1.5px;margin:0 0 24px}
.hero h1 em{color:var(--gold-deep);font-weight:600}
.hero-text{max-width:470px;font-size:15px;line-height:1.85;color:var(--muted);margin:0}
.hero-buttons{display:flex;align-items:center;gap:26px;margin-top:32px;flex-wrap:wrap}
.hero-stats{font-size:11px;color:var(--muted);margin:34px 0 0;letter-spacing:.3px}
.hero-covers{height:460px}
.hero-cover{position:absolute;width:36%;cursor:pointer;transition:transform .3s}
.hero-cover:nth-child(1){left:2%;top:80px;transform:rotate(-8deg)}
.hero-cover:nth-child(2){left:31%;top:10px;transform:rotate(2deg);z-index:2}
.hero-cover:nth-child(3){right:1%;top:90px;transform:rotate(9deg)}
.hero-cover:hover{transform:translateY(-10px) rotate(0)!important;z-index:5}
.hero-cover .chinese-title{font-size:clamp(20px,2.4vw,30px)}

/* sections */
.content-section{padding:60px var(--pad)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}
.section-heading h2{font:500 clamp(34px,4vw,50px)/1.1 var(--display);margin:0;letter-spacing:-.5px}
.library-section{background:linear-gradient(180deg,var(--bg),var(--surface2) 140%)}

/* shelf + fresh cards */
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.shelf-item,.fresh-card{display:flex;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:14px;cursor:pointer;transition:transform .2s,box-shadow .2s;min-width:0}
.shelf-item:hover,.fresh-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.mini{width:68px;flex:none}
.mini .book-cover{border-radius:12px;box-shadow:none}
.mini .book-cover:before,.mini .book-cover:after,.mini .cover-status,.mini .cover-stamp{display:none}
.mini .chinese-title{font-size:14px;letter-spacing:3px}
.fresh-row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 18px;margin:0 -2px}
.fresh-card{flex:0 0 330px;scroll-snap-align:start}
.card-body{min-width:0;display:grid;gap:2px}
.card-title{font:600 21px/1.2 var(--display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-sub{font-size:12px;color:var(--jade);font-weight:500}
.card-date{font-size:10px;color:var(--muted)}
.card-go{font-size:11px;color:var(--jade);font-weight:600;margin-top:4px}

/* library */
.library-tools{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:32px;flex-wrap:wrap}
.search-box{display:flex;align-items:center;gap:9px;max-width:380px;flex:1;min-width:240px;background:var(--surface);border:1px solid var(--line);padding:0 18px;border-radius:99px}
.search-box span{font-size:22px;color:var(--jade)}
.search-box input{border:0;outline:0;background:transparent;color:var(--ink);width:100%;padding:12px 0;font-size:12px}
.status-tabs{display:flex;gap:6px;flex-wrap:wrap}
.filter-tab{border:1px solid var(--line);background:var(--surface);padding:8px 16px;border-radius:99px;font-size:11px;font-weight:500;color:var(--muted);cursor:pointer}
.filter-tab.selected{background:var(--jade-dark);border-color:var(--jade-dark);color:var(--btn-ink)}
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:34px 24px}
.book-card{min-width:0}
.card-cover{cursor:pointer;transition:transform .25s;border-radius:20px}
.card-cover:hover{transform:translateY(-6px)}
.card-cover:focus-visible{outline:2px solid var(--jade);outline-offset:4px}
.book-card h3{font:600 22px/1.2 var(--display);margin:14px 0 4px}
.book-meta{font-size:11px;color:var(--muted)}
.book-card .book-genres{font-size:11px;color:var(--jade);margin-top:6px}
.empty-message{text-align:center;color:var(--muted);padding:30px;border:1px dashed var(--line);border-radius:20px;font-size:13px}
.closing-note{padding:70px 8%;text-align:center}
.closing-note p{font:500 clamp(24px,3vw,34px)/1.4 var(--display);margin:0}
.closing-note em{color:var(--jade)}

/* novel page */
.page-wrap{max-width:1080px;margin:auto;padding:34px 24px 60px}
.back-link{border:0;background:none;color:var(--jade);font-size:12px;font-weight:500;cursor:pointer;padding:0;margin-bottom:22px}
.novel-detail{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:center;padding:40px;border-radius:32px;background:linear-gradient(135deg,var(--jade-soft),var(--surface2));margin-bottom:46px}
.detail-cover{max-width:240px;border-radius:22px}
.detail-copy h1{font:600 clamp(38px,5vw,60px)/1.02 var(--display);letter-spacing:-1px;margin:0 0 6px}
.chinese-subtitle{font:500 22px var(--display);color:var(--jade);margin-bottom:12px}
.detail-byline{font-size:12px;color:var(--muted);margin-bottom:16px}
.status-pill{display:inline-block;padding:5px 12px;border-radius:99px;background:var(--jade);color:#fff;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-right:6px}
.genre-pill{display:inline-block;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:4px 11px;margin:0 5px 5px 0;font-size:10px;color:var(--muted)}
.synopsis{font-size:14px;line-height:1.9;color:var(--muted);max-width:620px;margin:18px 0}
.detail-actions{display:flex;gap:16px;align-items:center;margin:22px 0 0;flex-wrap:wrap}
.chapter-list-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}
.chapter-list-heading h2{font:500 36px var(--display);margin:0}
.chapter-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.chapter-row{display:flex;align-items:center;gap:16px;padding:14px 20px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:13px;cursor:pointer;transition:transform .2s,border-color .2s}
.chapter-row:hover{border-color:var(--jade);transform:translateX(4px);color:var(--jade)}
.ch-num{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--jade-soft);color:var(--jade);font:600 13px var(--sans)}
.ch-title{flex:1;min-width:0}
.chapter-date{color:var(--muted);font-size:11px;white-space:nowrap}

/* reader */
.reader-progress-track{height:3px;background:transparent;position:fixed;top:72px;left:0;right:0;z-index:35}
.reader-progress{height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--jade));transition:width .1s}
.reader-top{max-width:760px;margin:auto;padding:26px 24px 0}
.reader-top .back-link{margin:0}
.reading-column{max-width:760px;margin:20px auto 40px;padding:60px 64px;background:var(--surface);border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow)}
.chapter-heading{text-align:center;padding:0 0 34px;margin-bottom:34px}
.chapter-heading:after{content:"✿  ✿  ✿";display:block;color:var(--gold);letter-spacing:6px;font-size:12px;margin-top:26px}
.chapter-heading h1{font:600 clamp(32px,4.5vw,46px)/1.15 var(--display);margin:0 0 12px}
.chapter-meta{font-size:11px;color:var(--muted);margin:0}
.chapter-body{font-family:var(--serif);font-size:17px;line-height:2.1}
.chapter-body p{margin:0 0 1.5em}
.chapter-body p:first-child:first-letter{font:600 3.6em/.85 var(--display);float:left;padding:8px 12px 0 0;color:var(--jade)}
.translator-note{margin-top:46px;padding:20px 24px;border-radius:20px;background:var(--jade-soft);font-size:12px;line-height:1.8;color:var(--ink)}
.translator-note strong{display:block;color:var(--jade);font-size:9px;letter-spacing:2px;margin-bottom:6px}
.chapter-like-row{display:flex;justify-content:space-between;align-items:center;margin-top:30px}
.like-button{border:1px solid var(--line);background:var(--surface);padding:10px 18px;color:var(--jade);border-radius:99px;font-size:12px;font-weight:500;cursor:pointer}
.like-button.liked{background:var(--jade-soft)}
.like-count{font-size:11px;color:var(--muted)}
.reader-bar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:45;display:flex;align-items:center;gap:4px;padding:7px 10px;background:var(--surface);border:1px solid var(--line);border-radius:99px;box-shadow:0 14px 40px #2f425624;max-width:calc(100vw - 24px)}
.bar-button{border:0;background:none;padding:8px 13px;border-radius:99px;font-size:12px;font-weight:600;color:var(--jade);cursor:pointer}
.bar-button:hover{background:var(--jade-soft)}
.bar-button:disabled{opacity:.3;cursor:not-allowed;background:none}
.bar-count{font-size:11px;color:var(--muted);padding:0 4px;min-width:44px;text-align:center}
.tool-divider{height:20px;border-left:1px solid var(--line);margin:0 6px}
.font-toggle{min-width:58px}

/* footer */
.site-footer{padding:44px var(--pad);background:var(--surface2);text-align:center}
.footer-wordmark{justify-content:center;font-size:22px}
.site-footer p{font:italic 500 17px var(--display);color:var(--muted);margin:12px 0}
.site-footer small{font-size:10px;color:var(--muted)}

@media(max-width:900px){
.hero{grid-template-columns:1fr;padding:48px var(--pad) 40px;gap:20px}
.hero-covers{height:380px;max-width:520px;margin:0 auto;width:100%}
.novel-detail{grid-template-columns:180px 1fr;gap:28px;padding:28px}
.reading-column{padding:44px 36px}
}
@media(max-width:620px){
.site-header{height:64px}
.reader-progress-track{top:64px}
.wordmark{font-size:22px}.logo-mark{width:30px;height:30px}
.menu-button{display:block}
.main-nav{display:none;position:absolute;top:64px;left:12px;right:12px;flex-direction:column;border-radius:22px;padding:8px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.main-nav.open{display:flex}
.nav-item{padding:11px 16px}
.theme-button{padding:8px 11px}
.hero h1{font-size:52px}
.hero-covers{height:320px}
.content-section{padding:44px var(--pad)}
.section-heading{align-items:start}
.section-heading>.quiet-link{white-space:nowrap;margin-top:18px}
.shelf{grid-template-columns:1fr}
.fresh-card{flex-basis:84%}
.library-tools{flex-direction:column;align-items:stretch}
.search-box{max-width:none}
.status-tabs{display:grid;grid-template-columns:repeat(4,1fr)}
.filter-tab{padding:8px 4px}
.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}
.book-card h3{font-size:19px}
.page-wrap{padding:22px 16px 40px}
.novel-detail{grid-template-columns:1fr;justify-items:center;text-align:center;padding:26px 20px;gap:20px}
.detail-cover{width:170px}
.synopsis{font-size:13px}
.detail-actions{justify-content:center}
.chapter-row{padding:12px 14px;gap:12px}
.chapter-date{display:none}
.reader-top{padding:20px 16px 0}
.reading-column{margin:14px 12px 30px;padding:34px 22px;border-radius:26px}
.chapter-body{font-size:16px;line-height:2}
.bar-button{padding:8px 9px}
.tool-divider{margin:0 2px}
.font-toggle{min-width:50px}
}

/* copy deterrence for chapter text */
.reading-column.protected{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.cover-img{-webkit-user-drag:none;user-drag:none}
@media print{#readerView .reading-column,#readerView .reader-bar,#readerView .reader-top,#readerView .reader-progress-track{display:none!important}#readerView:before{content:"Chapters can't be printed. Please read them on Paper Lantern.";display:block;padding:40px;font:16px Georgia,serif}}

/* table of contents drawer */
.toc-button{white-space:nowrap}
.toc-overlay{position:fixed;inset:0;z-index:60;background:#1f2d3a66;display:flex;justify-content:flex-end;backdrop-filter:blur(2px)}
.toc-panel{width:min(400px,100%);height:100%;background:var(--surface);padding:26px 22px 30px;overflow-y:auto;box-shadow:-18px 0 40px #1f2d3a33;animation:tocIn .22s ease-out}
@keyframes tocIn{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.toc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;position:sticky;top:-26px;background:var(--surface);padding:0 0 12px}
.toc-head h2{font:600 30px/1.1 var(--display);margin:0}
.toc-head .eyebrow{margin-bottom:6px;max-width:260px}
.toc-close{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;border-radius:50%;cursor:pointer;color:var(--ink);flex:none}
.toc-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.toc-item{width:100%;display:flex;align-items:center;gap:14px;text-align:left;padding:11px 14px;border:1px solid var(--line);background:var(--surface);border-radius:16px;font-size:13px;cursor:pointer}
.toc-item:hover{border-color:var(--jade)}
.toc-item.current{background:var(--jade-soft);border-color:var(--jade);font-weight:600}

/* comments */
.comments{max-width:760px;margin:0 auto 150px;padding:0 24px}
.comments h2{font:600 32px var(--display);margin:0 0 18px}
.comments h2 span{font:500 16px var(--sans);color:var(--muted)}
.comment-form{display:grid;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:18px}
.comment-form input,.comment-form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);font:13px var(--sans);outline-color:var(--jade)}
.comment-form textarea{resize:vertical;line-height:1.7}
.comment-form-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.comment-form-row small{font-size:10px;color:var(--muted)}
.comment-list{display:grid;gap:12px;margin-top:20px}
.comment{display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px}
.avatar{flex:none;width:38px;height:38px;border-radius:50%;background:var(--jade-soft);color:var(--jade);display:grid;place-items:center;font:600 16px var(--display)}
.comment-main{min-width:0;flex:1}
.comment-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.comment-head strong{font-size:13px}
.comment-head span{font-size:10px;color:var(--muted)}
.comment p{margin:6px 0 10px;font-size:13px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}
.comment-actions{display:flex;gap:14px;align-items:center}
.c-like,.c-del{border:0;background:none;cursor:pointer;font-size:12px;color:var(--muted);padding:2px 0}
.c-like:hover{color:var(--jade)}.c-like.liked{color:var(--jade);font-weight:600}
.c-del:hover{color:#b3342a}
.comment-empty{text-align:center;color:var(--muted);font-size:13px;padding:24px;border:1px dashed var(--line);border-radius:20px;margin:0}
@media(max-width:620px){.comments{padding:0 12px;margin-bottom:140px}.comments h2{font-size:27px}.toc-panel{padding:22px 16px}}

/* inline translation notes */
.tn{display:inline;cursor:pointer;border-bottom:2px dotted var(--jade);border-radius:2px;transition:background .2s}
.tn sup{color:var(--jade);font:700 .62em var(--sans);margin-left:2px}
.tn:hover,.tn[aria-expanded="true"]{background:var(--jade-soft)}
.tn:focus-visible,.back-to-text:focus-visible,.note-pop-go:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.flash{animation:flash 1.8s ease-out}
@keyframes flash{0%,35%{background:var(--gold);color:var(--ink)}100%{background:transparent}}
.term-notes-box{margin-top:46px;padding:20px 24px;border-radius:20px;background:var(--surface2);font-size:12px;line-height:1.8}
.term-notes-box>strong{display:block;color:var(--jade);font-size:9px;letter-spacing:2px;margin-bottom:10px}
.term-notes-box ol{margin:0;padding-left:22px;display:grid;gap:12px}
.term-notes-box li{padding:4px 8px;margin-left:-8px;border-radius:10px}
.term-notes-box li::marker{color:var(--jade);font-weight:700}
.term-notes-box li b{font-weight:700}
.back-to-text{display:inline-block;margin-left:8px;border:0;background:none;color:var(--jade);font-size:11px;font-weight:600;cursor:pointer;padding:0}
.back-to-text:hover{text-decoration:underline}
.term-notes-box+.translator-note{margin-top:16px}
.note-pop{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:50;width:min(520px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--jade);border-radius:22px;padding:16px 18px 14px;box-shadow:0 18px 50px #2f425638;animation:popIn .18s ease-out}
@keyframes popIn{from{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
.note-pop-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.note-pop-head strong{font:600 20px var(--display)}
.note-pop-close{border:0;background:var(--jade-soft);width:28px;height:28px;border-radius:50%;cursor:pointer;color:var(--ink);flex:none}
.note-pop p{margin:6px 0 10px;font-size:13px;line-height:1.75;max-height:32vh;overflow-y:auto}
.note-pop-go{border:0;background:none;color:var(--jade);font-size:12px;font-weight:600;cursor:pointer;padding:0}

/* loading + errors */
.loading{color:var(--muted);font-size:13px;padding:22px 0;text-align:center;grid-column:1/-1}
.load-error{color:var(--ink);font-size:14px;padding:20px;border:1px dashed var(--line);border-radius:16px;text-align:center}
.empty-message .button{margin-top:12px}

/* paragraph comments */
.chapter-body p .pc{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:8px;padding:0 6px;vertical-align:middle;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--muted);font:600 11px var(--sans);cursor:pointer;opacity:.45;transition:opacity .15s,background .15s}
.chapter-body p:hover .pc,.chapter-body p .pc:focus-visible,.chapter-body p .pc.has{opacity:1}
.chapter-body p .pc.has{background:var(--jade-soft);color:var(--jade);border-color:var(--jade)}
.chapter-body p .pc:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.c-tag{border:0;background:var(--jade-soft);color:var(--jade);font:600 10px var(--sans);padding:2px 8px;border-radius:10px;cursor:pointer}
.para-sheet{position:fixed;inset:0;z-index:60;background:#1f2a3a55;display:flex;align-items:flex-end;justify-content:center}
.para-sheet[hidden]{display:none}
.para-panel{width:min(620px,100%);max-height:86vh;overflow-y:auto;background:var(--bg);border:1px solid var(--line);border-radius:24px 24px 0 0;padding:18px 18px 22px;animation:popIn .18s ease-out}
.para-quote{margin:10px 0 14px;padding:8px 12px;border-left:3px solid var(--jade);color:var(--muted);font:italic 13px/1.7 var(--serif)}
.para-panel .comment-list{margin:0 0 14px}
@media print{.pc{display:none}}

/* theme + font pickers */
.pick-menu{position:fixed;z-index:70;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:var(--shadow);display:grid;gap:2px;min-width:200px;max-width:calc(100vw - 24px);animation:popIn .15s ease-out}
.pick-menu[hidden]{display:none}
#themeMenu{top:66px;right:max(12px,calc((100vw - 1180px)/2))}
#fontMenu{left:50%;bottom:84px;transform:translateX(-50%)}
.pick-menu button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:none;color:var(--ink);padding:10px 12px;border-radius:12px;cursor:pointer;font:500 14px var(--sans)}
.pick-menu button:hover,.pick-menu button:focus-visible{background:var(--jade-soft)}
.pick-menu button[aria-checked="true"]{background:var(--jade-soft);color:var(--jade);font-weight:700}
.pick-menu button[aria-checked="true"]::after{content:"✓";margin-left:auto}
.swatch{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);box-shadow:inset 0 0 0 3px var(--sw-a);background:var(--sw-b)}
.pick-title{font:600 10px var(--sans);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);padding:6px 12px 4px}

/* reader accounts */
.account-button span{font-size:11px!important;color:var(--ink)!important;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:520px){#themeToggle span:last-child{display:none}.account-button span{max-width:70px}}
.auth-modal{position:fixed;inset:0;z-index:80;background:#10161d88;display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(2px)}
.auth-modal[hidden]{display:none}
.auth-panel{position:relative;width:min(420px,100%);max-height:92vh;overflow-y:auto;background:var(--bg);border:1px solid var(--line);border-radius:24px;padding:26px 24px 22px;box-shadow:var(--shadow);animation:popIn .18s ease-out}
.auth-close{position:absolute;top:14px;right:14px}
.auth-panel h2{font:600 28px var(--display);margin:0 36px 6px 0}
.auth-lead{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 14px}
.auth-panel form{display:grid;gap:12px}
.auth-panel label{display:grid;gap:5px;font-size:12px;color:var(--muted)}
.auth-panel input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:14px var(--sans);outline-color:var(--jade)}
.auth-panel small{font-size:11px;color:var(--muted)}
.auth-msg{min-height:1.2em;margin:0;font-size:12px;color:#b3342a}
.auth-msg.ok{color:var(--jade)}
.auth-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}
.auth-links button,.auth-danger{border:0;background:none;color:var(--jade);font:600 12px var(--sans);cursor:pointer;padding:0}
.auth-danger{color:#b3342a}
.auth-section{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.auth-email{font-size:13px;word-break:break-all}
#shelfToggle.on{background:var(--jade-soft);color:var(--jade);border-color:var(--jade)}

/* new-chapter badges */
.card-cover{position:relative}
.new-pill{display:inline-block;background:var(--jade-dark);color:var(--btn-ink);font:700 10px/1 var(--sans);letter-spacing:.3px;padding:5px 9px;border-radius:99px;box-shadow:0 4px 12px var(--btn-shadow)}
.new-pill.on-cover{position:absolute;top:12px;left:12px;z-index:3}
.new-pill.inline{margin-left:8px;vertical-align:middle}

/* report comments */
.c-report{border:0;background:none;color:var(--muted);font:500 11px var(--sans);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
.c-report:hover{color:var(--ink)}
.c-reported{font-size:11px;color:var(--muted)}
.report-choices{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:var(--muted)}
.report-choices button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:4px 10px;font:600 11px var(--sans);cursor:pointer}
.report-choices button:hover{background:var(--jade-soft);color:var(--jade)}

/* spoiler comments */
.spoiler-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--ink);cursor:pointer;line-height:1.5}
.spoiler-check input{width:auto!important;margin-top:3px;accent-color:var(--jade-dark)}
.spoiler-check small{color:var(--muted);font-size:11px}
.spoiler-cover{display:block;width:100%;text-align:left;border:1px dashed var(--jade);background:var(--jade-soft);color:var(--jade);border-radius:12px;padding:10px 14px;font:600 12px var(--sans);cursor:pointer;margin:2px 0 6px}
.spoiler-cover:hover,.spoiler-cover:focus-visible{background:var(--surface2)}
.spoiler-tag{display:inline-block;background:var(--jade-soft);color:var(--jade);font:700 9px/1 var(--sans);letter-spacing:.8px;text-transform:uppercase;padding:4px 8px;border-radius:99px;margin-bottom:4px}

/* show / hide password */
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:72px!important}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:var(--jade-soft,#e4f1f9);color:var(--jade,#3a82b0);font:600 11px var(--sans);padding:7px 12px;border-radius:99px;cursor:pointer;min-height:32px}
.pw-toggle:hover,.pw-toggle:focus-visible{outline:2px solid var(--jade,#3a82b0);outline-offset:1px}
