/* Novel V2 creator library / editor / public reader — scoped to #screen-novel. */
#screen-novel, #novelMarketPortal {
  --nl-bg: #120d09;
  --nl-panel: #20170f;
  --nl-panel-2: #2b1e13;
  --nl-line: rgba(220, 176, 93, .23);
  --nl-gold: #d9ae59;
  --nl-gold-bright: #f2cb74;
  --nl-text: #f5ecdf;
  --nl-muted: #a99885;
  background: var(--nl-bg);
  color: var(--nl-text);
}
#screen-novel #novelStage { min-height: 100%; }
#screen-novel button, #screen-novel input, #screen-novel textarea, #screen-novel select,
#novelMarketPortal button, #novelMarketPortal input { font: inherit; }
#screen-novel button, #novelMarketPortal button { cursor: pointer; }
.nlib-shell, .npub-detail, .npub-reader, .npub-buybar { font-family:var(--font-sans); }
.nlib-shell { min-height: 100%; padding: 0 0 calc(94px + env(safe-area-inset-bottom)); background:
  radial-gradient(circle at 82% 2%, rgba(151, 97, 32, .14), transparent 34%), var(--nl-bg); }
.nlib-head { height: 76px; padding: 16px 20px 10px; display:flex; align-items:center; justify-content:space-between;
  position:sticky; top:0; z-index:8; background:linear-gradient(180deg, rgba(18,13,9,.98) 72%, rgba(18,13,9,0)); }
.nlib-head small, .nedit-head small, .npub-reader header small, .npub-detail header small { display:block; color:var(--nl-gold); font-size:9px; letter-spacing:.18em; font-weight:800; }
.nlib-head h1 { margin:2px 0 0; font:700 27px/1.05 var(--font-serif); }
.nlib-head-actions { display:flex; align-items:center; gap:7px; }
.nlib-icon-btn { width:38px; height:38px; border:1px solid var(--nl-line); border-radius:50%; color:var(--nl-muted); background:#1c140e; letter-spacing:1px; }
#screen-novel .home-carat-chip, #screen-novel .chip-uni-welcome { position:static; }
#screen-novel .nlib-head .home-carat-chip {
  box-sizing:border-box; height:38px; padding:0 13px; display:inline-flex;
  align-items:center; justify-content:center; flex-shrink:0; gap:7px;
  border:1px solid rgba(200,155,74,.30); border-radius:999px;
  color:var(--nl-gold-bright); background:rgba(200,155,74,.08);
  font:700 14px/1 var(--font-sans); letter-spacing:.02em;
  font-feature-settings:"tnum"; white-space:nowrap; vertical-align:middle;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
#screen-novel .nlib-head .home-carat-chip:hover { background:rgba(200,155,74,.14); border-color:rgba(200,155,74,.50); box-shadow:0 0 14px rgba(200,155,74,.22); }
#screen-novel .nlib-head .home-carat-chip .hcc-emoji,
#screen-novel .nlib-head .home-carat-chip .hcc-value { line-height:36px; }
#screen-novel .nlib-head .home-carat-chip .hcc-emoji { font-size:13px; filter:drop-shadow(0 0 4px rgba(226,186,107,.4)); }
#screen-novel .nlib-head .home-carat-chip.low { border-color:rgba(255,200,100,.55); }
#screen-novel .nlib-head .home-carat-chip.empty { color:rgba(255,180,180,.95); border-color:rgba(220,90,90,.55); }
.nlib-tabs { margin:2px 20px 18px; padding:4px; display:grid; grid-template-columns:1fr 1fr; background:#1a120c; border:1px solid rgba(255,255,255,.055); border-radius:14px; }
.nlib-tabs button { height:39px; border:0; border-radius:10px; color:#8e7c6a; background:transparent; font-size:13px; font-weight:700; }
.nlib-tabs button.on { color:#21150b; background:linear-gradient(135deg, #e7c170, #b98435); box-shadow:0 5px 18px rgba(202,149,62,.18); }
.nlib-main { display:flex; flex-direction:column; gap:28px; }
.nlib-section { padding:0 20px; min-width:0; }
.nlib-section-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:12px; }
.nlib-section-head small { color:#96794d; letter-spacing:.15em; font-size:9px; font-weight:800; }
.nlib-section-head h2 { margin:3px 0 0; font:700 21px/1.1 var(--font-serif); }
.nlib-section-head > span { color:var(--nl-muted); font-size:12px; }
.nlib-section-head > button { border:0; background:transparent; color:var(--nl-gold); font-size:12px; }
.nlib-owned-rail, .nlib-public-rail { display:flex; gap:13px; overflow-x:auto; padding:2px 1px 9px; scrollbar-width:none; scroll-snap-type:x proximity; }
.nlib-owned-rail::-webkit-scrollbar, .nlib-public-rail::-webkit-scrollbar { display:none; }
.nlib-owned-card { width:150px; flex:0 0 150px; scroll-snap-align:start; }
.nlib-owned-open { width:100%; padding:0; border:0; color:inherit; background:transparent; text-align:left; }
.nlib-owned-cover { position:relative; height:210px; padding:18px 14px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; border-radius:7px 16px 16px 7px; border:1px solid rgba(224,181,95,.22); background:linear-gradient(150deg,#693721,#28180f 68%,#160e0a); box-shadow:-4px 5px 0 #0c0806, 0 14px 24px rgba(0,0,0,.3); }
.nlib-owned-cover::before { content:""; position:absolute; left:8px; top:0; bottom:0; width:1px; background:rgba(255,255,255,.15); z-index:2; }
.nlib-owned-cover img, .nlib-public-cover img, .npub-big-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.nlib-owned-shade, .nlib-public-cover > div, .npub-big-cover > div { position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,7,4,.05),rgba(12,7,4,.22) 42%,rgba(12,7,4,.92)); }
.nlib-owned-cover small, .nlib-owned-cover strong { position:relative; z-index:2; }
.nlib-resume-badge { position:absolute; top:11px; left:15px; z-index:3; padding:5px 8px; border:1px solid rgba(233,193,111,.42); border-radius:999px; color:#f2cf87; background:rgba(24,14,8,.82); box-shadow:0 4px 12px rgba(0,0,0,.24); font-size:8px; font-weight:800; }
.nlib-owned-cover small { margin-bottom:7px; color:#e7c276; font-size:8px; letter-spacing:.15em; }
.nlib-owned-cover strong { font:700 18px/1.28 Georgia, 'Noto Serif KR', serif; word-break:keep-all; }
.nlib-owned-meta { margin-top:12px; display:flex; justify-content:space-between; gap:6px; align-items:center; }
.nlib-owned-meta span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; font-size:13px; }
.nlib-owned-meta em { flex:0 0 auto; padding:3px 6px; border-radius:999px; color:#d1ad69; background:rgba(217,174,89,.09); font-size:9px; font-style:normal; }
.nlib-owned-stats { margin-top:4px; display:flex; gap:8px; color:#8e7f70; font-size:10px; }
.nlib-owned-sales { width:100%; margin-top:8px; padding:7px 8px; display:flex; align-items:center; gap:6px; overflow:hidden; border:1px solid rgba(218,174,87,.20); border-radius:9px; color:#bda276; background:rgba(218,174,87,.055); font-size:8.5px; white-space:nowrap; }
.nlib-owned-sales span { min-width:0; }
.nlib-owned-sales b { color:#e1bd72; font-weight:800; font-feature-settings:"tnum"; }
.nlib-owned-sales .nlib-owned-sales-more { margin-left:auto; color:#8f7b64; }
.nlib-owned-sales i { color:#d7ad5e; font-size:15px; font-style:normal; line-height:1; }
.nlib-owned-sales:focus-visible { outline:2px solid rgba(229,190,113,.7); outline-offset:2px; }
.nlib-owned-card.is-purchased .nlib-owned-cover { border-color:rgba(185,118,101,.38); box-shadow:-4px 5px 0 #0c0806,0 14px 24px rgba(70,24,24,.28); }
.nlib-owned-card.is-purchased .nlib-owned-cover small { color:#e0aa8b; }
.nlib-owned-card.is-purchased .nlib-owned-meta span { color:#e7c57f; }
.nlib-owned-card.is-purchased .nlib-owned-meta em { color:#c9b8a4; background:rgba(255,255,255,.055); }
.nlib-edit-link { margin-top:8px; padding:5px 0; border:0; color:#c89b52; background:transparent; font-size:10px; text-decoration:underline; }
.nlib-empty { min-height:176px; padding:24px 20px; display:flex; align-items:center; gap:22px; border:1px dashed rgba(219,175,89,.25); border-radius:20px; background:linear-gradient(135deg,rgba(51,34,22,.68),rgba(29,20,14,.68)); }
.nlib-empty-book { width:66px; height:94px; flex:0 0 auto; position:relative; border:1px solid rgba(226,188,108,.38); border-radius:4px 10px 10px 4px; background:#291b12; box-shadow:-4px 4px 0 #0e0907; }
.nlib-empty-book span { position:absolute; left:7px; top:0; bottom:0; border-left:1px solid rgba(255,255,255,.12); }
.nlib-empty-book i { position:absolute; inset:0; display:grid; place-items:center; color:#c99a4e; font-size:25px; font-style:normal; }
.nlib-empty h3 { margin:0 0 7px; font:700 18px/1.2 Georgia, 'Noto Serif KR', serif; }
.nlib-empty p { margin:0 0 14px; color:#a99a8c; font-size:11px; line-height:1.55; }
.nlib-empty button { padding:9px 13px; border:1px solid rgba(220,176,93,.4); border-radius:10px; color:#e4bf70; background:rgba(102,64,26,.26); font-size:11px; font-weight:700; }
.nlib-empty-v2 { min-width:0; }
.nlib-empty-v2.is-addition { margin:0 20px; padding:22px; border:1px solid rgba(220,176,93,.18); border-radius:20px; background:radial-gradient(circle at 92% 7%,rgba(178,112,38,.11),transparent 34%),linear-gradient(145deg,rgba(42,29,19,.78),rgba(25,17,12,.82)); }
.nlib-empty-v2.is-addition .nlib-empty-v2-head h2 { font-size:20px; }
.nlib-empty-v2-head { display:flex; justify-content:space-between; align-items:flex-end; gap:14px; }
.nlib-empty-v2-head h2 { margin:0; font:700 24px/1.32 Georgia,'Noto Serif KR',serif; word-break:keep-all; }
.nlib-empty-v2-head p { margin:7px 0 0; color:#aa9885; font-size:11px; }
.nlib-empty-v2-head > small { padding-bottom:2px; color:var(--nl-muted); font-size:11px; white-space:nowrap; }
.nlib-empty-v2-eyebrow { display:block; margin-bottom:5px; color:#ca9b48; font-size:8px; font-weight:800; letter-spacing:.14em; }
.nlib-character-picker-head { margin-top:22px; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.nlib-character-picker-head > div:first-child { display:grid; gap:4px; min-width:0; }
.nlib-character-picker-head small { color:#a38f78; font-size:10px; }
.nlib-character-picker-head strong { overflow:hidden; color:#ebdcc5; font:500 14px/1.25 Georgia,'Noto Serif KR',serif; text-overflow:ellipsis; white-space:nowrap; }
.nlib-character-picks { margin-top:11px; padding:2px 0 9px; display:flex; gap:10px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scroll-padding-inline:0; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.nlib-character-picks::-webkit-scrollbar { display:none; }
.nlib-character-pick { min-width:0; flex:0 0 calc((100% - 20px)/3); padding:0 0 9px; scroll-snap-align:start; text-align:left; border:0; border-bottom:1px solid rgba(220,176,93,.18); background:transparent; }
.nlib-character-picks.count-1 .nlib-character-pick { flex-basis:min(42%,132px); }
.nlib-character-picks.count-2 .nlib-character-pick { flex-basis:calc((100% - 10px)/2); max-width:140px; }
.nlib-character-picks.is-scrollable .nlib-character-pick { flex-basis:calc((100% - 20px)/3); }
.nlib-character-picks:focus-visible { outline:1px solid rgba(224,181,95,.62); outline-offset:3px; border-radius:8px; }
.nlib-character-nav { display:flex; flex:0 0 auto; justify-content:flex-end; gap:7px; }
.nlib-character-nav button { width:32px; height:32px; display:grid; place-items:center; border:1px solid rgba(220,176,93,.28); border-radius:999px; color:#d8b56e; background:rgba(70,43,23,.34); font:400 20px/1 Georgia,serif; transition:opacity .15s ease,border-color .15s ease,background .15s ease; }
.nlib-character-nav button:hover:not(:disabled) { border-color:rgba(229,190,107,.64); background:rgba(104,66,29,.56); }
.nlib-character-nav button:disabled { opacity:.25; cursor:default; }
.nlib-character-pick.is-selected { border-bottom-color:var(--nl-gold-bright); }
.nlib-character-photo { position:relative; aspect-ratio:4/5; height:auto; display:block; overflow:hidden; border:1px solid rgba(220,176,93,.28); border-radius:10px; background:radial-gradient(circle at 50% 26%,#9c684e,#382116 50%,#130b08 78%); transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.nlib-character-pick.is-selected .nlib-character-photo { transform:translateY(-1px); border-color:rgba(235,190,101,.88); box-shadow:0 0 0 2px rgba(224,177,80,.13),0 10px 24px rgba(0,0,0,.22); }
.nlib-character-photo img { width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.nlib-character-photo::after { content:""; position:absolute; inset:58% 0 0; background:linear-gradient(transparent,rgba(11,7,5,.34)); pointer-events:none; }
.nlib-character-photo > i { position:absolute; inset:0; display:grid; place-items:center; color:#ead3ad; font:700 24px/1 Georgia,'Noto Serif KR',serif; font-style:normal; }
.nlib-character-photo > b { position:absolute; top:7px; right:7px; z-index:2; width:20px; height:20px; display:none; place-items:center; border-radius:999px; color:#211409; background:#dfb45a; box-shadow:0 3px 10px rgba(0,0,0,.28); font:800 11px/1 var(--font-sans); }
.nlib-character-pick.is-selected .nlib-character-photo > b { display:grid; }
.nlib-character-pick > strong, .nlib-character-pick > small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nlib-character-pick > strong { margin-top:8px; font:600 13px/1.25 Georgia,'Noto Serif KR',serif; }
.nlib-character-pick > small { margin-top:3px; color:#978471; font-size:10px; }
.nlib-free-offer { margin-top:18px; padding:18px; display:grid; grid-template-columns:112px minmax(0,1fr); gap:18px; border:1px solid rgba(220,176,93,.32); border-radius:19px; background:radial-gradient(circle at 92% 8%,rgba(191,125,41,.20),transparent 38%),#21150e; }
.nlib-free-book { position:relative; min-height:158px; padding:15px 12px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; border:1px solid rgba(224,181,95,.50); border-radius:4px 11px 11px 4px; background:linear-gradient(150deg,rgba(91,43,27,.45),transparent 48%),linear-gradient(150deg,#382116,#110a07 74%); box-shadow:-7px 8px 0 #0a0604,0 15px 28px rgba(0,0,0,.31); }
.nlib-free-book.has-image::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(10,6,4,.18),rgba(10,6,4,.46) 42%,rgba(10,6,4,.94)); pointer-events:none; }
.nlib-free-book > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.nlib-free-book small, .nlib-free-book strong, .nlib-free-book span { position:relative; z-index:2; }
.nlib-free-book small { color:#d4a657; font-size:8px; letter-spacing:.15em; }
.nlib-free-book strong { font:700 15px/1.46 Georgia,'Noto Serif KR',serif; word-break:keep-all; text-shadow:0 2px 8px rgba(0,0,0,.7); }
.nlib-free-book span { color:#d4b273; font-size:8px; }
.nlib-free-copy { align-self:center; min-width:0; }
.nlib-free-copy > small { color:var(--nl-gold); font-size:9px; font-weight:800; }
.nlib-free-copy h3 { margin:5px 0 0; font:700 17px/1.3 Georgia,'Noto Serif KR',serif; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nlib-free-copy p { margin:7px 0 0; color:#b7a18a; font-size:10px; line-height:1.55; }
.nlib-free-copy b { display:block; margin-top:8px; color:#e0bd7b; font-size:9px; }
.nlib-free-copy button { margin-top:11px; padding:10px 11px; display:flex; align-items:center; gap:5px; border:0; border-radius:9px; color:#211409; background:linear-gradient(135deg,#e5c06b,#c78b35); box-shadow:0 7px 17px rgba(198,136,45,.2); font-family:var(--font-sans); font-size:11px; font-weight:800; white-space:nowrap; }
.nlib-free-copy button i { font-style:normal; }
.nlib-public-card { width:135px; flex:0 0 135px; min-width:0; scroll-snap-align:start; cursor:pointer; }
.nlib-public-cover { height:186px; position:relative; padding:13px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; border-radius:5px 13px 13px 5px; background:linear-gradient(145deg,#5f2c28,#241313 70%); border:1px solid rgba(255,255,255,.09); box-shadow:-3px 4px 0 #0b0705; }
.nlib-public-cover small, .nlib-public-cover strong { position:relative; z-index:2; }
.nlib-public-cover small { color:#ddb56a; font-size:7px; letter-spacing:.1em; }
.nlib-public-cover strong { margin-top:6px; font:700 16px/1.3 var(--font-serif); word-break:keep-all; }
.nlib-public-card-meta { margin-top:10px; display:flex; flex-direction:column; align-items:flex-start; gap:7px; min-width:0; }
.nlib-public-card-meta.is-original { color:#c9b59c; font-size:11px; }
.nlib-public-author { min-width:0; display:flex; align-items:center; gap:7px; }
.nlib-public-author > span { width:23px; height:23px; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(216,174,89,.34); border-radius:50%; color:#f0ca79; background:rgba(109,42,47,.52); font-size:9px; font-weight:800; }
.nlib-public-author > div { min-width:0; }
.nlib-public-author strong, .nlib-public-author small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nlib-public-author strong { color:#eee1d2; font-size:11px; }
.nlib-public-author small { margin-top:1px; color:#8f7e6b; font-size:8px; }
.nlib-public-price { min-height:22px; padding:3px 7px; display:inline-flex; align-items:center; gap:3px; border:1px solid rgba(216,174,89,.25); border-radius:999px; color:#e4bd70; background:rgba(216,174,89,.07); font-size:9px; font-weight:800; white-space:nowrap; }
.nlib-public-price i { font-size:9px; font-style:normal; filter:drop-shadow(0 0 3px rgba(75,168,255,.35)); }
.nlib-public-price.is-owned { color:#b9ab9a; border-color:rgba(255,255,255,.08); background:rgba(255,255,255,.035); }
.nlib-discover-hero { margin:0 20px; padding:16px 20px; border-radius:18px; background:radial-gradient(circle at 80% 20%,rgba(216,168,78,.22),transparent 30%), linear-gradient(145deg,#342015,#18100b); border:1px solid var(--nl-line); }
.nlib-discover-hero small { color:var(--nl-gold); letter-spacing:.18em; font-size:9px; }
.nlib-discover-hero h2 { margin:6px 0 5px; font:700 21px/1.25 var(--font-serif); word-break:keep-all; }
.nlib-discover-hero p { margin:0; color:#aa9987; font-size:11px; line-height:1.45; word-break:keep-all; }
.nlib-public-card.is-featured { width:100%; min-height:202px; padding:15px; display:grid; grid-template-columns:clamp(104px,31vw,146px) minmax(0,1fr); gap:16px; align-items:stretch; border:1px solid rgba(222,178,91,.28); border-radius:19px; color:inherit; text-align:left; background:radial-gradient(circle at 92% 5%,rgba(206,145,50,.18),transparent 36%),linear-gradient(145deg,#2b1c12,#18100b); box-shadow:0 16px 34px rgba(0,0,0,.24); cursor:pointer; }
.nlib-public-card.is-featured:focus-visible { outline:2px solid rgba(239,199,112,.78); outline-offset:3px; }
.nlib-featured-cover { min-width:0; position:relative; aspect-ratio:2/3; padding:13px 11px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; border:1px solid rgba(229,190,105,.34); border-radius:5px 12px 12px 5px; background:linear-gradient(150deg,#67332b,#281714 67%,#120b08); box-shadow:-5px 6px 0 #0b0705,0 13px 24px rgba(0,0,0,.30); }
.nlib-featured-cover::before { content:""; position:absolute; left:7px; top:0; bottom:0; z-index:2; width:1px; background:rgba(255,255,255,.14); }
.nlib-featured-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.nlib-featured-cover > span { position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,6,4,.02),rgba(10,6,4,.18) 40%,rgba(10,6,4,.92)); }
.nlib-featured-cover small, .nlib-featured-cover strong { position:relative; z-index:2; }
.nlib-featured-cover small { color:#e1b965; font-size:7px; font-weight:800; letter-spacing:.12em; }
.nlib-featured-cover strong { margin-top:6px; font:700 15px/1.28 var(--font-serif); word-break:keep-all; }
.nlib-featured-copy { min-width:0; display:flex; flex-direction:column; align-items:flex-start; padding:2px 0; }
.nlib-featured-copy > small { color:#d6a851; font-size:8px; font-weight:800; letter-spacing:.14em; }
.nlib-featured-title { width:100%; margin-top:7px; display:-webkit-box; overflow:hidden; -webkit-line-clamp:3; -webkit-box-orient:vertical; font:700 20px/1.28 var(--font-serif); word-break:keep-all; }
.nlib-featured-author { max-width:100%; margin-top:10px; display:flex; align-items:center; gap:7px; }
.nlib-featured-author i { width:24px; height:24px; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(216,174,89,.36); border-radius:50%; color:#f1cb7c; background:rgba(109,42,47,.48); font-size:9px; font-style:normal; font-weight:800; }
.nlib-featured-author b { overflow:hidden; color:#eadccc; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.nlib-featured-facts { margin-top:8px; display:flex; flex-wrap:wrap; gap:5px 10px; color:#9c8b79; font-size:9px; }
.nlib-featured-facts b { font-weight:500; }
.nlib-featured-synopsis { width:100%; margin-top:9px; display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; color:#aa9885; font-size:10px; line-height:1.55; word-break:keep-all; }
.nlib-featured-action { min-height:34px; margin-top:auto; padding:8px 10px; display:inline-flex; align-items:center; justify-content:center; gap:5px; border-radius:9px; color:#241509; background:linear-gradient(135deg,#e7c16f,#bd8231); box-shadow:0 7px 17px rgba(190,128,42,.17); font-size:10px; font-weight:900; white-space:nowrap; }
.nlib-featured-action > i { font-style:normal; }
.nlib-featured-action > b { margin-left:2px; font-size:13px; line-height:1; }
.nlib-featured-action.is-owned { border:1px solid rgba(218,175,89,.30); color:#dab56c; background:rgba(218,175,89,.07); box-shadow:none; }
.nlib-market-shelf-head { margin:23px 0 12px; padding-top:18px; display:flex; align-items:flex-end; justify-content:space-between; border-top:1px solid rgba(220,176,93,.14); }
.nlib-market-shelf-head small { display:block; color:#927347; font-size:8px; font-weight:800; letter-spacing:.15em; }
.nlib-market-shelf-head strong { display:block; margin-top:3px; font:700 17px/1.15 var(--font-serif); }
.nlib-market-shelf-head > span { color:#8f7d69; font-size:10px; }
.nlib-market-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 14px; }
.nlib-market-grid .nlib-public-card { width:auto; }
.nlib-market-grid .nlib-public-cover { height:225px; }
.nlib-official-grid { margin:0; }
.nlib-loading { padding:24px 20px; }
.nlib-skeleton { height:170px; margin:15px 0; border-radius:18px; background:linear-gradient(100deg,#1d1510 30%,#2a1e15 46%,#1d1510 62%); background-size:260% 100%; animation:nlibShimmer 1.5s infinite; }
.nlib-skeleton.wide { height:112px; }
@keyframes nlibShimmer { to { background-position:-160% 0; } }
.nlib-full-loading { min-height:70vh; display:grid; place-items:center; color:#a99276; font-size:13px; }

/* Private Our Story detail lives entirely inside the Novel tab. */
.nlib-story-shell { min-height:100%; padding-bottom:calc(94px + env(safe-area-inset-bottom)); background:radial-gradient(circle at 80% 0,rgba(151,97,32,.13),transparent 32%),var(--nl-bg); }
.nlib-story-head { min-height:72px; padding:12px 17px; display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:11px; align-items:center; position:sticky; top:0; z-index:12; background:rgba(18,13,9,.94); border-bottom:1px solid rgba(255,255,255,.045); backdrop-filter:blur(12px); }
.nlib-story-head > button { width:38px; height:38px; border:1px solid var(--nl-line); border-radius:50%; color:#ddbb78; background:#1e150e; }
.nlib-story-head > span { min-width:38px; }
.nlib-story-actions, .nedit-head-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.nlib-story-edit { width:auto; height:32px; padding:0 11px; border:1px solid rgba(207,161,83,.34); border-radius:999px; color:#ddb76f; background:rgba(207,161,83,.07); font-size:10px; font-weight:800; white-space:nowrap; }
.nlib-story-edit:focus-visible, .nlib-book-menu:focus-visible { outline:2px solid rgba(229,190,113,.7); outline-offset:2px; }
.nlib-book-menu { width:32px; height:32px; padding:0; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(207,161,83,.25); border-radius:50%; color:#aa9275; background:#1b130e; font-size:11px; letter-spacing:1px; }
.nlib-story-head small { display:block; color:var(--nl-gold); font-size:8px; font-weight:800; letter-spacing:.18em; }
.nlib-story-head h1 { margin:3px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 18px/1.2 Georgia,'Noto Serif KR',serif; }
.nlib-story-stage { padding:18px 20px 0; }
.nlib-story-sales { width:100%; margin:0 0 14px; padding:12px 13px; display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:8px 12px; align-items:center; border:1px solid rgba(218,174,87,.20); border-radius:13px; color:#b9a58e; background:linear-gradient(135deg,rgba(59,39,23,.72),rgba(31,22,15,.78)); text-align:left; font-size:10px; }
.nlib-story-sales small { overflow:hidden; color:#b98d49; font-size:8px; font-weight:900; letter-spacing:.14em; text-overflow:ellipsis; white-space:nowrap; }
.nlib-story-sales span { white-space:nowrap; }
.nlib-story-sales b { color:#e6c47d; font-weight:800; font-feature-settings:"tnum"; }
.nlib-story-sales i { color:#d7ad5e; font-size:18px; font-style:normal; line-height:1; }
.nlib-story-sales:focus-visible { outline:2px solid rgba(229,190,113,.7); outline-offset:2px; }
#novelLibraryV2Slot:empty { display:none; }
#novelLibraryV2Slot .crnv2-card { margin-bottom:0; }
.nlib-owned-card.is-failed .nlib-owned-cover { filter:saturate(.72); border-color:rgba(194,112,87,.34); }
.nlib-owned-card.is-generating .nlib-owned-cover::after { content:"장 만드는 중"; position:absolute; right:10px; top:10px; z-index:3; padding:4px 7px; border-radius:999px; color:#2a1908; background:#d8ad60; font-size:8px; font-weight:900; }

/* Editor */
.nedit-shell { min-height:100%; padding-bottom:calc(94px + env(safe-area-inset-bottom)); background:radial-gradient(circle at 10% 0,rgba(149,90,31,.12),transparent 28%),var(--nl-bg); }
.nedit-head { min-height:74px; padding:13px 17px; display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; position:sticky; top:0; z-index:12; background:rgba(18,13,9,.94); backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,.045); }
.nedit-head > button, .npub-reader header > button, .npub-detail header > button { width:38px; height:38px; border:1px solid var(--nl-line); border-radius:50%; color:#ddbb78; background:#1e150e; }
.nedit-head h1 { margin:3px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 17px/1.2 Georgia,'Noto Serif KR',serif; }
.nedit-head-actions { min-width:0; }
.nedit-status { padding:5px 8px; border-radius:999px; background:rgba(212,168,79,.11); color:#d9b56f; font-size:9px; font-style:normal; }
.nedit-status.pending_review { color:#dca2d1; background:rgba(195,89,160,.12); }
.nedit-status.published { color:#9fd6b1; background:rgba(63,155,93,.12); }
.nedit-review-note { margin:15px 18px 0; padding:12px 14px; border-left:3px solid #b85252; background:rgba(139,46,46,.12); color:#d9b3ad; font-size:12px; line-height:1.55; }
.nedit-review-note b { display:block; color:#e48e83; margin-bottom:4px; }
.nedit-jump { margin:12px 16px 2px; display:flex; gap:7px; overflow:auto; scrollbar-width:none; }
.nedit-jump a { padding:8px 11px; flex:0 0 auto; border:1px solid var(--nl-line); border-radius:999px; color:#b8a590; text-decoration:none; font-size:10px; }
.nedit-main { padding:0 16px; }
.nedit-panel { margin-top:18px; padding:20px 16px; border:1px solid rgba(220,176,93,.17); border-radius:19px; background:linear-gradient(145deg,rgba(40,28,19,.96),rgba(27,19,13,.96)); }
.nedit-panel-title { display:flex; align-items:center; gap:9px; margin-bottom:17px; }
.nedit-panel-title small { display:grid; place-items:center; width:25px; height:25px; border-radius:50%; color:#20150c; background:#c7984e; font-size:8px; font-weight:900; }
.nedit-panel-title h2 { margin:0; font:700 20px/1.1 Georgia,'Noto Serif KR',serif; }
.nedit-panel label { display:block; margin-top:14px; color:#c7b7a5; font-size:11px; font-weight:700; }
.nedit-panel input, .nedit-panel textarea, .nedit-panel select { width:100%; box-sizing:border-box; margin-top:7px; padding:12px 13px; border:1px solid rgba(212,169,84,.25); border-radius:11px; outline:none; color:#f4e9dc; background:#17100c; font-size:13px; line-height:1.6; }
.nedit-panel textarea { resize:vertical; min-height:90px; }
.nedit-panel input:focus, .nedit-panel textarea:focus, .nedit-panel select:focus { border-color:#c99a4c; box-shadow:0 0 0 3px rgba(201,154,76,.09); }
.nedit-two { display:grid; grid-template-columns:1fr 118px; gap:10px; }
.nedit-help { margin:-7px 0 13px; color:#958574; font-size:10px; line-height:1.55; }
.nedit-cover-picker { margin-top:16px; }
.nedit-cover-picker > span { display:block; color:#c7b7a5; font-size:11px; font-weight:700; }
.nedit-cover-picker > div { display:flex; gap:8px; overflow-x:auto; padding:8px 2px; scrollbar-width:none; }
.nedit-cover-choice { width:54px; height:72px; flex:0 0 54px; margin:0!important; border-radius:7px; overflow:hidden; position:relative; border:2px solid transparent; background:#17100c; }
.nedit-cover-choice input { position:absolute; opacity:0; }
.nedit-cover-choice:has(input:checked) { border-color:#d3a454; box-shadow:0 0 0 2px rgba(211,164,84,.18); }
.nedit-cover-choice img { width:100%; height:100%; object-fit:cover; }
.nedit-cover-choice.empty { display:grid; place-items:center; color:#9b8975; font-size:9px; text-align:center; border:1px dashed rgba(214,170,85,.25); }
.nedit-save { margin-top:16px; min-height:43px; padding:0 18px; border:0; border-radius:11px; color:#21150c; background:linear-gradient(135deg,#e2bb6c,#b98236); font-size:12px; font-weight:900; }
.nedit-save:disabled { opacity:.55; cursor:wait; }
.nedit-save-state { margin-left:10px; color:#b16d62; font-size:10px; }
.nedit-save-state.ok { color:#7fbd91; }
.nedit-chapter { margin-top:10px; border:1px solid rgba(255,255,255,.065); border-radius:13px; overflow:hidden; background:#18110c; }
.nedit-chapter summary { min-height:52px; padding:0 13px; display:grid; grid-template-columns:29px minmax(0,1fr) auto; gap:8px; align-items:center; list-style:none; }
.nedit-chapter summary::-webkit-details-marker { display:none; }
.nedit-chapter summary span { color:#bc8c47; font:italic 12px Georgia,serif; }
.nedit-chapter summary b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.nedit-chapter summary i { color:#8f7c6a; font-size:9px; font-style:normal; }
.nedit-chapter-body { padding:0 13px 14px; border-top:1px solid rgba(255,255,255,.05); }
.nedit-chapter-body > div:last-child { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.nedit-chapter-body > div small { margin-right:auto; color:#796b5f; }
.nedit-chapter-body > div button { padding:9px 12px; border:1px solid var(--nl-line); border-radius:9px; color:#dcb56c; background:#25180f; font-size:10px; }
.nedit-photo-chapter { padding:13px 0; border-bottom:1px solid rgba(255,255,255,.055); }
.nedit-photo-chapter > div:first-child { display:flex; justify-content:space-between; align-items:center; }
.nedit-photo-chapter b { font-size:11px; }
.nedit-photo-chapter > div:first-child button { border:0; color:#d2a75a; background:transparent; font-size:10px; }
.nedit-photo-row { display:flex; gap:8px; overflow-x:auto; padding-top:10px; min-height:82px; scrollbar-width:none; }
.nedit-photo-row figure { width:82px; flex:0 0 82px; margin:0; }
.nedit-photo-row img { width:82px; height:82px; object-fit:cover; border-radius:9px; }
.nedit-photo-row figcaption { display:flex; justify-content:space-between; margin-top:4px; }
.nedit-photo-row figcaption button { padding:3px; border:0; color:#92806d; background:transparent; font-size:9px; }
.nedit-photo-row > p { color:#73665b; font-size:10px; }
.nedit-publish > p { color:#a29281; font-size:11px; line-height:1.6; }
.nedit-publish-actions { display:grid; grid-template-columns:1fr 1.2fr; gap:8px; margin-top:16px; }
.nedit-publish-actions button { min-height:44px; border:1px solid var(--nl-line); border-radius:11px; color:#d7b267; background:#1a120c; font-size:11px; font-weight:800; }
.nedit-publish-actions button.primary { border:0; color:#24160b; background:linear-gradient(135deg,#edcb7d,#b97e31); }
.nedit-publish-actions button:disabled { opacity:.5; }
.nedit-unpublish { margin-top:15px; border:0; color:#a8746c; background:transparent; font-size:10px; text-decoration:underline; }
.nedit-sheet-backdrop { position:fixed; inset:0; z-index:9400; display:flex; align-items:flex-end; justify-content:center; background:rgba(0,0,0,.66); backdrop-filter:blur(3px); overscroll-behavior:contain; }
.nedit-sheet { width:min(100%,480px); max-height:78vh; padding:18px 18px calc(20px + env(safe-area-inset-bottom)); overflow:auto; border-radius:22px 22px 0 0; border:1px solid var(--nl-line); background:#1e1510; box-shadow:0 -18px 60px rgba(0,0,0,.45); }
.nedit-sheet header { display:flex; justify-content:space-between; align-items:center; }
.nedit-sheet header small { color:var(--nl-gold); letter-spacing:.15em; font-size:8px; }
.nedit-sheet header h3 { margin:3px 0 0; font:700 20px Georgia,'Noto Serif KR',serif; }
.nedit-sheet header button { width:34px; height:34px; border:1px solid var(--nl-line); border-radius:50%; color:#bca991; background:#17100c; font-size:20px; }
.nedit-album-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:16px; }
.nedit-album-grid button { padding:0; aspect-ratio:1; overflow:hidden; border:0; border-radius:10px; background:#100b08; }
.nedit-album-grid img { width:100%; height:100%; object-fit:cover; }
.nedit-sheet.consent { max-height:min(92dvh,680px); box-sizing:border-box; display:flex; flex-direction:column; overflow:hidden; }
.nedit-consent-scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding-right:2px; }
.nedit-consent-scroll > p { color:#b3a18e; font-size:11px; line-height:1.6; }
.nedit-consent-scroll > label { display:flex; align-items:flex-start; gap:9px; margin:11px 0; color:#d5c4b1; font-size:11px; line-height:1.4; }
.nedit-sheet.consent input { margin-top:2px; accent-color:#c99647; }
.nedit-consent-actions { flex:0 0 auto; margin-top:8px; padding-top:12px; border-top:1px solid rgba(255,255,255,.055); background:#1e1510; }
.nedit-consent-actions .nedit-save { width:100%; margin-top:0; }
.nauthor-sales-sheet { max-height:min(78dvh,560px); box-sizing:border-box; }
.nauthor-sales-book { margin:15px 0 0; overflow:hidden; color:#9f8d7a; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.nauthor-sales-grid { margin:14px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.nauthor-sales-grid > div { min-width:0; padding:13px 10px; border:1px solid rgba(220,176,93,.13); border-radius:12px; background:#17100c; }
.nauthor-sales-grid dt { color:#8f7c68; font-size:9px; }
.nauthor-sales-grid dd { margin:6px 0 0; overflow:hidden; color:#edca82; font-size:18px; font-weight:800; font-feature-settings:"tnum"; text-overflow:ellipsis; white-space:nowrap; }
.nauthor-sales-grid dd small { margin-left:3px; color:#a99173; font-size:8px; font-weight:700; }
.nauthor-sales-latest { margin-top:13px; padding:12px 2px 0; display:flex; justify-content:space-between; gap:14px; border-top:1px solid rgba(255,255,255,.055); font-size:10px; }
.nauthor-sales-latest span { flex:0 0 auto; color:#8e7c6a; }
.nauthor-sales-latest strong { overflow:hidden; color:#d8c4ab; font-weight:700; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.nauthor-sales-note { margin:13px 0 0; padding:10px 11px; border-radius:10px; color:#a3907b; background:rgba(217,174,89,.055); font-size:9.5px; line-height:1.55; }
.nlib-book-manage-copy { padding:2px 1px 0; text-align:center; }
.nlib-book-manage-copy strong { display:block; overflow:hidden; color:#efe2d1; font:700 15px/1.4 Georgia,'Noto Serif KR',serif; text-overflow:ellipsis; white-space:nowrap; }
.nlib-book-manage-copy p { margin:7px 0 0; color:#9f8c75; font-size:11px; }

/* Public detail / reader */
.npub-detail { min-height:100%; padding-bottom:170px; background:radial-gradient(circle at 50% 0,rgba(124,75,31,.18),transparent 30%),var(--nl-bg); }
.npub-detail > header, .npub-reader > header { min-height:68px; padding:12px 17px; display:grid; grid-template-columns:38px 1fr 38px; gap:10px; align-items:center; position:sticky; top:0; z-index:10; background:rgba(18,13,9,.92); backdrop-filter:blur(12px); }
.npub-detail > header small { text-align:center; }
.npub-hero { padding:12px 24px 25px; display:grid; grid-template-columns:142px minmax(0,1fr); gap:20px; align-items:center; }
.nedit-preview-hero { max-width:680px; margin:0 auto; padding-top:24px; }
.npub-big-cover { height:210px; position:relative; overflow:hidden; padding:15px; display:flex; flex-direction:column; justify-content:flex-end; border-radius:5px 14px 14px 5px; background:linear-gradient(145deg,#67362d,#211311 70%); border:1px solid rgba(224,180,90,.25); box-shadow:-5px 6px 0 #090604,0 20px 40px rgba(0,0,0,.35); }
.npub-big-cover small, .npub-big-cover h1, .npub-big-cover > span { position:relative; z-index:2; }
.npub-big-cover small { color:#e0b86d; font-size:7px; letter-spacing:.12em; }
.npub-big-cover h1 { margin:7px 0 4px; font:700 18px/1.3 var(--font-serif); }
.npub-big-cover > span { color:#d9b66f; font-size:8px; }
.npub-author { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.npub-author > span { width:30px; height:30px; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(216,174,89,.38); border-radius:50%; color:#f0ca79; background:rgba(109,42,47,.56); font-size:11px; font-weight:800; }
.npub-author > div { min-width:0; }
.npub-author small, .npub-author strong { display:block; }
.npub-author small { color:#9c7f53; font-size:7px; letter-spacing:.14em; }
.npub-author strong { margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#eadbca; font-size:11px; }
.npub-meta h2 { margin:7px 0; font:700 21px/1.25 var(--font-serif); }
.npub-meta p { margin:0; color:#a89785; font-size:10px; line-height:1.55; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.npub-facts { display:flex; gap:8px; margin-top:11px; color:#8e7d6c; font-size:9px; }
.npub-facts span + span::before { content:'·'; margin-right:8px; color:#5f4934; }
.npub-chapter-list, .npub-preview { margin:0 20px; padding:18px 16px; border:1px solid rgba(220,176,93,.15); border-radius:17px; background:#1a120d; }
.npub-chapter-list h3 { margin:0 0 10px; font:700 17px var(--font-serif); }
.npub-chapter-list button { width:100%; min-height:46px; display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:8px; align-items:center; border:0; border-top:1px solid rgba(255,255,255,.05); color:#e9ddd0; background:transparent; text-align:left; }
.npub-chapter-list button span { color:#a97d42; font:italic 11px Georgia,serif; }
.npub-chapter-list button b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.npub-chapter-list button em { color:#8f7d6b; font-size:9px; font-style:normal; }
.npub-preview { margin-top:16px; }
.npub-preview > small { display:block; color:#c7994f; letter-spacing:.15em; font-size:8px; }
.npub-buybar { position:fixed; left:50%; bottom:calc(62px + env(safe-area-inset-bottom)); z-index:1400; width:min(100%,480px); min-height:73px; box-sizing:border-box; transform:translateX(-50%); padding:10px 18px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:rgba(20,14,10,.96); border-top:1px solid var(--nl-line); backdrop-filter:blur(14px); }
.npub-buybar small { display:block; color:#8f7e6d; font-size:8px; }
.npub-buybar b { display:flex; align-items:center; gap:4px; color:#e5bf70; font-size:13px; white-space:nowrap; }
.npub-buy-price i { font-size:11px; font-style:normal; filter:drop-shadow(0 0 4px rgba(75,168,255,.4)); }
.npub-buybar button { min-height:45px; flex:1; border:0; border-radius:12px; color:#22150a; background:linear-gradient(135deg,#edc876,#b67c32); font-size:12px; font-weight:900; }
.npub-buybar button:disabled { color:#8d7f70; background:#2b2119; }
.npub-reader { min-height:100%; background:#17110d; }
.npub-reader header h1 { margin:3px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 16px var(--font-serif); }
.npub-reading { max-width:680px; margin:0 auto; padding:22px 23px 60px; }
.npub-chapter { padding:12px 0 32px; }
.npub-chapter > small { display:block; text-align:center; color:#b2874b; letter-spacing:.16em; font-size:8px; }
.npub-chapter > h2 { margin:10px 0 32px; text-align:center; font:700 24px/1.35 Georgia,'Noto Serif KR',serif; }
.npub-chapter > p { margin:0 0 1.25em; color:#e5d9cc; font:400 16px/1.95 Georgia,'Noto Serif KR',serif; letter-spacing:.01em; word-break:keep-all; }
.npub-chapter figure { margin:30px -5px 34px; }
.npub-chapter figure img { width:100%; max-height:560px; object-fit:cover; border-radius:13px; box-shadow:0 16px 35px rgba(0,0,0,.34); }
.npub-reader > footer { padding:20px 22px calc(94px + env(safe-area-inset-bottom)); text-align:center; color:#8f7e6c; font-size:11px; }
.npub-reader-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.npub-reader-nav button { min-width:84px; padding:10px 12px; border:1px solid var(--nl-line); border-radius:10px; color:#d8b46d; background:#21170f; }
.npub-reader-nav button:disabled { opacity:.35; }

@media (min-width:700px) {
  .nlib-shell, .nedit-shell, .npub-detail, .npub-reader { max-width:760px; margin:0 auto; border-left:1px solid rgba(255,255,255,.04); border-right:1px solid rgba(255,255,255,.04); }
  .nlib-public-card.is-featured { grid-template-columns:146px minmax(0,1fr); padding:18px; gap:20px; }
  .nlib-featured-title { font-size:23px; }
  .nlib-featured-synopsis { max-width:410px; -webkit-line-clamp:3; font-size:11px; }
  .nlib-market-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 18px; }
  .nlib-market-grid .nlib-public-cover { height:260px; }
}
@media (max-width:360px) {
  .nlib-head { padding-left:15px; padding-right:15px; }
  .nlib-story-head { padding-right:12px; padding-left:12px; gap:8px; }
  .nlib-story-head h1 { font-size:16px; }
  .nlib-story-edit { padding-right:9px; padding-left:9px; font-size:9.5px; }
  .nlib-story-actions, .nedit-head-actions { gap:5px; }
  .nlib-tabs, .nlib-discover-hero { margin-left:15px; margin-right:15px; }
  .nlib-section { padding-left:15px; padding-right:15px; }
  .nlib-public-card.is-featured { grid-template-columns:98px minmax(0,1fr); gap:13px; padding:13px; }
  .nlib-featured-title { font-size:17px; -webkit-line-clamp:2; }
  .nlib-featured-synopsis { -webkit-line-clamp:2; }
  .nlib-featured-action { padding-right:8px; padding-left:8px; font-size:9px; }
  .nlib-owned-card { width:138px; flex-basis:138px; }
  .nlib-owned-cover { height:194px; }
  .nlib-owned-sales { padding-right:6px; padding-left:6px; gap:4px; font-size:8px; }
  .nlib-story-sales { grid-template-columns:minmax(0,1fr) auto auto; gap:6px 9px; }
  .nlib-story-sales small { grid-column:1 / -1; }
  .nauthor-sales-grid { gap:5px; }
  .nauthor-sales-grid > div { padding-right:7px; padding-left:7px; }
  .nauthor-sales-grid dd { font-size:16px; }
  .nlib-empty { padding:20px 15px; gap:15px; }
  .nlib-empty-book { width:55px; height:80px; }
  .nlib-empty-v2-head h2 { font-size:21px; }
  .nlib-character-photo { height:auto; }
  .nlib-free-offer { grid-template-columns:96px minmax(0,1fr); gap:14px; padding:16px; }
  .nlib-free-book { min-height:148px; padding:13px 10px; }
  .nlib-free-copy h3 { font-size:15px; }
  .nlib-free-copy button { padding:9px; font-size:10px; }
  .nedit-two { grid-template-columns:1fr; }
  .npub-hero { padding-left:16px; padding-right:16px; grid-template-columns:120px minmax(0,1fr); gap:14px; }
  .npub-big-cover { height:180px; }
}
