/* Approved BookBook Dusk design. Palette is intentionally fixed. */
:root{--paper:#EFF0EB;--paper-2:#fff;--rose:#72393F;--rose-dark:#72393F;--rose-soft:rgba(114,57,63,.08);--taupe:#A9634A;--sage:#9EABB4;--sage-dark:#9EABB4;--ink:#29090A;--muted:#656a70;--line:rgba(41,9,10,.12);--shadow:none;--serif:Georgia,"Times New Roman",serif}
html,body{background:var(--paper);color:var(--ink)}body{font-size:16px;line-height:1.5;background:var(--paper)}
.stage{padding:0}.app{width:min(100%,640px);min-height:100svh;border:0;border-radius:0;box-shadow:none;background:var(--paper);overflow:clip}
.topbar{padding:22px 24px 16px;background:rgba(239,240,235,.96);border-bottom:0}.title-wrap h1{font-size:32px;letter-spacing:-.5px}.title-wrap p{font-size:14px}.title-wrap p:empty{display:none}.botanical{display:none}.content{padding:12px 24px 120px}
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);width:min(100%,640px);grid-template-columns:repeat(4,1fr);background:rgba(239,240,235,.97);padding:14px 12px calc(14px + env(safe-area-inset-bottom))}.bottom-nav:empty{display:none}.bottom-nav button{font-size:12px;gap:7px;color:var(--muted)}.bottom-nav button.active:after{display:none}.nav-symbol{height:25px;width:25px}.bottom-nav .ui-icon{width:24px;height:24px}
.card{border-radius:14px;background:rgba(255,255,255,.42);box-shadow:none}.section-head{margin:30px 0 16px;align-items:center}.section-head h2{font-size:23px;line-height:1.25}.section-head button,.section-head a,.section-meta{font-size:14px;font-weight:400}.screen h2,.screen h3{color:var(--ink)}
.primary,.secondary,.soft-btn,.round-add,.shelf-actions button.active{padding:12px 18px;border:1px solid rgba(114,57,63,.32);border-radius:10px;background:var(--rose-soft);color:var(--ink);font-size:14px;font-weight:500;box-shadow:none;line-height:1.4}.primary:disabled{opacity:.5}.primary:hover,.secondary:hover{background:rgba(114,57,63,.12)}.chip{font-size:14px;background:rgba(211,219,230,.35);color:var(--muted);border:0;padding:8px 14px;border-radius:22px}.chip.active{background:var(--rose-soft);color:var(--rose-dark)}
.bar{height:7px;background:rgba(158,171,180,.25)}.bar i{background:#9EABB4}.settings-btn,.notification-btn,.avatar-btn{background:transparent;box-shadow:none;color:var(--ink)}
.rating,.stars{color:#A9634A}.tag,.shelf-chip{font-size:12px;background:rgba(211,219,230,.3);color:var(--muted)}.empty{padding:32px 20px}.empty p{font-size:14px;line-height:1.5}.empty h2{font-size:24px}
.reading-card p,.list-book p,.catalog-copy p,.detail-cover p{font-size:14px}.reading-card h3,.list-book h3{font-size:23px}.progress-line strong,.shelf-progress-label span,.shelf-progress-label strong{font-size:13px}
.list-book{padding:18px;gap:18px}.shelf-review-status,.shelf-date,.book-date{font-size:13px}.shelf-stat{background:rgba(255,255,255,.4);box-shadow:none}.shelf-stat.active,.shelf-stat:nth-child(2).active,.shelf-stat:nth-child(3).active{background:var(--rose-soft);border-color:var(--line);box-shadow:none}.shelf-stat i,.shelf-stat:nth-child(2) i,.shelf-stat:nth-child(3) i,.shelf-stat.active i{background:transparent;color:var(--rose-dark)}.shelf-stat small{font-size:12px}.shelf-stat strong{font-size:25px}.shelf-section-head h2{font-size:26px}.shelf-section-tools small{font-size:13px}.shelf-section-head span{font-size:12px}
.search{background:rgba(211,219,230,.28);box-shadow:none;border:0}.search input{font-size:15px}.catalog-toolbar span,.catalog-sort{font-size:13px}.catalog-copy .catalog-description{font-size:13px}.catalog-action .primary,.catalog-action .secondary{font-size:13px}.catalog-row{gap:16px;padding:16px}.catalog-copy h3{font-size:22px}.detail-cover h2{font-size:32px}.detail-section p{font-size:15px;color:var(--ink);line-height:1.65}.detail-section h3{font-size:24px}.detail-stats span{font-size:13px;background:rgba(211,219,230,.3)}.shelf-actions button{font-size:13px;background:rgba(255,255,255,.4)}
.journal-hero{position:relative;overflow:hidden;border-radius:12px;min-height:230px;display:flex;align-items:center;padding:26px;background:#29090A}.journal-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.64}.journal-hero>div{position:relative;max-width:75%;color:#EFF0EB}.journal-hero h2{font:400 30px/1.15 var(--serif);color:#EFF0EB;margin:0 0 12px}.journal-hero p{font-size:14px;margin:0 0 20px}.journal-hero .primary{background:#EFF0EB;border:0;color:#29090A;text-decoration:none;display:inline-block}
.club-card,.month-card,.collections-hero,.challenge-feature{background:rgba(255,255,255,.42);padding:18px}.club-book{background:transparent;padding:14px 0;border:0;border-bottom:1px solid var(--line)}.club-book-grid{grid-template-columns:1fr}.club-book h3{font-size:22px}.club-book p,.club-note,.club-period{font-size:14px}.month-card{grid-template-columns:78px 1fr}.month-card:after,.month-art{display:none}.month-card h3{font-size:22px}.month-card p{font-size:14px}.social-footnote{font-size:13px}.collections-hero h2,.challenge-feature h2{font-size:29px}.collections-hero p,.challenge-feature p,.collection-card p{font-size:14px}.collection-card h3{font-size:25px}.collection-tile{background:#D3DBE6;color:var(--ink);box-shadow:none}.collection-tile:nth-child(n){background:#D3DBE6}.collection-tile h3{font-size:18px}.challenge-row h3{font-size:23px}.challenge-row p,.challenge-row .reward,.challenge-meta{font-size:13px}.challenge-thumb,.challenge-row:nth-child(2n) .challenge-thumb{background:var(--rose-soft)}.challenge-mini strong{font-size:22px}.challenge-mini small{font-size:13px}.task strong{font-size:15px}.task small,.task b{font-size:13px}.task.done button{background:#72393F}
.profile-card{display:block;padding:0;border:0;background:transparent}.reader-cover{position:relative;margin:0 -24px;height:210px;background:#D3DBE6;overflow:hidden}.reader-cover img{width:100%;height:100%;object-fit:cover}.reader-cover .cover-edit{position:absolute;right:18px;bottom:16px;background:#EFF0EB;font-size:12px;padding:8px 12px}.reader-avatar{display:grid;place-items:center;width:112px;height:112px;margin:-56px auto 18px;position:relative;background:#EFF0EB;border:5px solid #EFF0EB;border-radius:50%;overflow:hidden;font:400 32px var(--serif)}.reader-avatar img{width:100%;height:100%;object-fit:cover}.reader-intro{text-align:center}.reader-intro h2{font:400 40px/1.15 var(--serif);margin:0 0 6px}.profile-handle{font-size:14px;color:var(--muted);margin:0}.profile-bio{font-size:15px;line-height:1.5;margin:12px 0 0;color:var(--muted)}.reader-xp{text-align:center;margin:26px auto;max-width:420px}.reader-xp strong{font:400 21px var(--serif)}.reader-xp .bar{margin:12px 0 8px}.reader-xp small{font-size:13px;color:var(--muted)}.reader-actions{display:flex;gap:12px;margin:26px 0}.reader-actions button{flex:1;min-height:48px}.founder-title{width:100%;display:flex;align-items:center;gap:18px;margin:20px 0 26px;padding:20px;border:1px solid rgba(114,57,63,.22);border-radius:12px;background:rgba(114,57,63,.035);text-align:left}.founder-title img{width:52px;height:64px;object-fit:contain}.founder-title strong{display:block;font:400 24px var(--serif);color:#72393F}.founder-title small{display:block;margin-top:8px;color:var(--muted);font-size:14px}.founder-title .chevron{margin-left:auto;color:#72393F}.profile-summary{margin:24px 0;padding:0 0 24px;display:grid;grid-template-columns:repeat(3,1fr);border-top:0;border-bottom:1px solid var(--line)}.profile-summary strong{font-size:26px}.profile-summary span{font-size:13px}.reader-section{margin:28px 0}.reader-section h3{font:400 24px var(--serif);margin:0 0 16px}.character-strip{display:grid;grid-auto-flow:column;grid-auto-columns:24%;gap:12px;overflow:auto}.character-preview{border:0;background:transparent;text-align:center;padding:0}.character-preview img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:9px}.character-preview span{display:block;margin-top:8px;font-size:12px}.reader-tropes{display:flex;flex-wrap:wrap;gap:8px}.reader-tropes span{padding:7px 12px;border-radius:20px;background:var(--rose-soft);font-size:13px;color:var(--muted)}.favorite-book{display:flex;gap:20px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:12px;width:100%;background:transparent;text-align:left}.favorite-book h4{font:400 23px var(--serif);margin:0 0 8px}.favorite-book p{font-size:14px;color:var(--muted);margin:0}.reader-quote,.post-quote{font:italic 20px/1.65 var(--serif);color:var(--ink);margin:20px 0}.reader-private-wallet{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--rose-soft);margin:28px 0}.reader-private-wallet small{display:block;color:var(--muted);font-size:13px}.reader-private-wallet strong{font:400 25px var(--serif)}.reader-feed{margin-top:36px;border-top:1px solid var(--line);padding-top:28px}.reader-feed h3{font:400 27px var(--serif);margin:0 0 20px}
.social-post{padding:22px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;box-shadow:none}.social-post-body{font-size:15px;line-height:1.65}.social-author strong{font-size:18px}.social-author small,.social-actions button,.social-comment p{font-size:13px}.social-post-image{border-radius:10px;max-height:480px;object-fit:cover}.social-post-book{font-size:14px;background:transparent}.social-actions{gap:12px}.social-actions button{background:transparent;border:0;padding:6px;color:var(--muted)}.social-feed-tabs{border-bottom:1px solid var(--line);padding-bottom:14px}.network-tools{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.social-comment{font-size:14px}.social-comment strong{font-size:16px}.feed-author-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.feed-item-header{display:flex;align-items:center;gap:12px}.feed-item-header strong{font:400 20px var(--serif)}.feed-item-header small{display:block;color:var(--muted);font-size:12px}.feed-create{width:100%;padding:18px;border:1px solid var(--line);border-radius:12px;text-align:left;background:rgba(255,255,255,.4);color:var(--muted)}.feed-more{display:block;margin:24px auto}.post-character{display:flex;gap:14px;align-items:center;width:100%;text-align:left;background:transparent;border:1px solid var(--line);border-radius:10px;padding:12px;margin:16px 0}.post-character img{width:64px;height:82px;object-fit:cover;border-radius:6px}.post-character strong{font:400 22px var(--serif)}
.overlay{background:rgba(41,9,10,.45);padding:24px;backdrop-filter:blur(2px)}.modal{border:1px solid var(--line);border-radius:18px;background:#EFF0EB;padding:26px;max-width:560px;max-height:90svh;overflow:auto;box-shadow:none}.modal h2{font:400 29px var(--serif);margin:0 30px 24px 0}.modal label{font-size:15px;margin-top:18px;font-weight:400}.modal input,.modal textarea,.modal select{font-size:16px;background:rgba(255,255,255,.55);border:1px solid rgba(158,171,180,.5);padding:12px;border-radius:9px}.modal small{font-size:12px}.modal .primary{width:100%;margin-top:24px}.modal .close{font-size:26px}.founder-sheet{text-align:center;max-width:520px;padding:32px}.founder-sheet>img{width:80px;height:100px;object-fit:contain;margin:10px 0 16px}.founder-sheet h2{margin:0 0 10px;font-size:32px}.founder-sheet .subtitle{color:var(--muted);margin:0 0 32px}.founder-sheet .explanation{font-size:18px;margin:28px 0;line-height:1.6}.founder-sheet .primary{margin-top:16px}
.auth-screen{text-align:center}.auth-screen .auth-logo{font:400 28px var(--serif);margin:12px 0 22px}.auth-screen h1{font:400 35px/1.2 var(--serif);margin:0 0 8px}.auth-screen .auth-subtitle{font-size:16px;color:var(--muted);margin:0 0 10px}.auth-photo{display:block;width:calc(100% + 48px);height:auto;aspect-ratio:1.85;object-fit:cover;margin:0 -24px}.auth-panel{position:relative;margin:-2px -24px 0;padding:24px;border-radius:18px 18px 0 0;background:rgba(255,255,255,.65);text-align:left}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:28px;border-bottom:1px solid var(--line)}.auth-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:12px;font-size:18px;color:var(--muted)}.auth-tabs button.active{border-color:#72393F;color:var(--ink);font-weight:600}.auth-panel label{display:block;font-size:16px;margin:0 0 18px}.auth-panel input:not([type=checkbox]){display:block;width:100%;height:54px;border:1px solid rgba(158,171,180,.55);border-radius:9px;background:rgba(255,255,255,.4);padding:12px;margin-top:6px;font-size:16px}.password-field{position:relative}.password-field input{padding-right:48px!important}.password-field button{position:absolute;right:12px;top:14px;border:0;background:transparent;color:var(--muted);font-size:22px}.auth-panel .primary{width:100%;min-height:50px;font-size:17px;margin:10px 0}.auth-panel .consent-check{font-size:14px;display:flex;gap:12px;align-items:flex-start}.auth-panel .consent-check input{width:20px;height:20px;margin:0;flex-shrink:0}.auth-link,.auth-panel a{font-size:14px;font-weight:400;color:#72393F;text-decoration:underline}.auth-panel .auth-divider{font-size:14px;margin:26px 0}.vk-login-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:52px;border:1px solid rgba(114,57,63,.4);border-radius:10px;background:transparent;font-size:16px}.vk-logo{display:grid;place-items:center;width:28px;height:28px;background:#0077ff;color:#fff;border-radius:7px;font-size:13px;font-weight:700}.auth-switch-note{text-align:center;margin:22px 0;font-size:15px}.auth-legal{text-align:center;font-size:12px;color:var(--muted);line-height:1.7}.auth-legal a{font-size:12px;color:var(--muted)}.auth-modal{padding:0}.auth-modal .auth-screen{padding:24px 24px 0}.app.is-auth .topbar{display:none}.app.is-auth .content{padding-top:0;padding-bottom:0}.app.is-auth .bottom-nav{display:none}
.setting-copy strong{font-size:20px}.setting-copy small,.setting-status,.setting-action{font-size:13px}.setting-row{padding:20px 16px}.settings-screen .primary{font-size:15px}.bookcoin-note{background:var(--rose-soft);font-size:14px}.bookcoin-note i{background:rgba(169,99,74,.2);color:var(--ink)}.award-art{filter:none;--award-main:#72393F;--award-deep:#29090A;--award-soft:#A9634A;--award-edge:#D3DBE6;--award-ink:#EFF0EB;--award-leaf:#A9634A}.award-art.gold,.award-art.sage,.award-art.bronze{--award-main:#A9634A;--award-deep:#72393F;--award-soft:#EFF0EB;--award-edge:#D3DBE6;--award-ink:#EFF0EB;--award-leaf:#9EABB4}.achievement-badge strong{font-size:16px}.achievement-badge small,.achievement-category p{font-size:13px}.achievement-category h3{font-size:23px}.title-card{background:var(--rose-soft);color:var(--ink)}.title-card.dark{background:var(--rose-soft);color:var(--ink)}.title-card h3{font-size:20px}.title-card small{font-size:13px}.wallet-card h2{font-size:30px}.wallet-card p,.coin-history,.reward-card p{font-size:14px}.reward-card h3{font-size:23px}.reward-card{background:rgba(255,255,255,.4)}.notification-item strong{font-size:18px}.notification-item p,.notification-item small{font-size:13px}
.character-detail .character-heading{display:flex;gap:22px;align-items:center;margin:20px 0 28px}.character-heading>img{width:128px;height:172px;object-fit:cover;border-radius:10px}.character-heading h2{font:400 31px/1.2 var(--serif);margin:0 0 12px}.character-detail p{font-size:15px;line-height:1.65}.character-detail h3{font:400 24px var(--serif);margin:28px 0 12px}.character-detail details{padding:18px;border:1px solid var(--line);border-radius:12px;margin:24px 0}.character-detail summary{cursor:pointer;font:400 22px var(--serif)}.character-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.character-gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px}.character-source{font-size:12px!important;color:var(--muted)}.character-actions{display:flex;gap:12px;margin-top:28px}.character-actions button{flex:1}.character-search-list{display:grid;gap:14px}.character-search-row{display:flex;gap:15px;text-align:left;border:1px solid var(--line);padding:14px;background:transparent;border-radius:12px}.character-search-row img{width:60px;height:80px;object-fit:cover}.character-search-row strong{font:400 22px var(--serif)}.character-search-row small{display:block;font-size:13px;color:var(--muted)}
@media(min-width:800px){.stage{padding:28px 0}.app{border:1px solid var(--line);border-radius:20px}.bottom-nav{border:1px solid var(--line);border-bottom:0;border-radius:16px 16px 0 0}.reader-cover{height:240px}}
@media(max-width:390px){.topbar{padding-left:18px;padding-right:18px}.content{padding-left:18px;padding-right:18px}.reader-cover{margin-left:-18px;margin-right:-18px}.reader-cover{height:180px}.auth-panel{padding:22px 18px}.reader-intro h2{font-size:34px}.founder-title{gap:14px;padding:16px}.founder-title strong{font-size:22px}.shelf-overview{gap:5px}.shelf-stat{display:block;text-align:center}.shelf-stat i{margin:auto}.shelf-stat small{font-size:11px}.character-strip{grid-auto-columns:28%}}

.dragon-emblem{display:inline-block;width:32px;height:32px;background:#72393F;mask:url(/bookbook-design/crowned-dragon.png) center/contain no-repeat;-webkit-mask:url(/bookbook-design/crowned-dragon.png) center/contain no-repeat;flex:none}

.reader-empty{font-size:14px;line-height:1.6;color:var(--muted)}.initials-avatar{display:grid;place-items:center;background:#D3DBE6;font-size:16px;color:#29090A}.feed-item-header{border:0;background:transparent;text-align:left;padding:0;color:var(--ink)}.auth-link{display:block;border:0;background:transparent;margin:0 auto;padding:0;cursor:pointer}.auth-link.inline{display:inline;margin:0}.founder-sheet>.dragon-emblem{width:60px;height:74px;margin-bottom:20px}.journal-poll{padding:20px;border:1px solid var(--line);border-radius:12px;margin:24px 0;background:transparent}.journal-poll h3{font:400 23px var(--serif);margin:0 0 18px}.poll-footer{font-size:12px;color:var(--muted);margin-top:16px}.poll-percent{margin-left:auto;font-size:13px}

.app:has(.reader-profile){position:relative}.app:has(.reader-profile) .topbar{position:absolute;top:0;left:0;right:0;z-index:3;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.app:has(.reader-profile) .title-wrap,.app:has(.reader-profile) .notification-btn{visibility:hidden}.app:has(.reader-profile) .settings-btn{background:#EFF0EB;border:1px solid var(--line)}.app:has(.reader-profile) .content{padding-top:0}.reader-cover{margin-top:0}.profile-summary>div+div{border-left:1px solid var(--line)}.quote-attribution{font-size:13px;text-align:right;color:var(--muted);margin:12px 0 20px}.overlay:has(.founder-sheet){align-items:flex-end;padding:0}.founder-sheet{width:min(100%,640px);border-radius:26px 26px 0 0;margin:0 auto;padding:38px 24px 28px}.founder-sheet:before{content:"";display:block;width:36px;height:4px;border-radius:4px;background:#9EABB4;margin:-22px auto 24px}.admin-entry{display:inline-block;text-decoration:none}.journal-poll label{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:14px}.journal-poll label>span{flex:1}.journal-poll label .bar{display:block;margin-top:8px}.journal-poll .poll-footer{display:flex;justify-content:space-between;align-items:center}.post-character small{display:block;color:var(--muted);font-size:13px}

.shelf-block{border:1px solid var(--line);border-radius:14px;padding:12px;margin:14px 0;background:rgba(255,255,255,.4)}.shelf-block-heading{display:flex;gap:12px;align-items:center;text-align:left;width:100%;border:0;background:transparent;padding:0 0 12px;color:var(--ink)}.shelf-block-heading strong{font:400 23px var(--serif)}.shelf-block-heading small{display:block;color:var(--muted);font-size:12px}.shelf-block-heading .chevron{margin-left:auto}.shelf-emblem{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--rose-soft);color:#72393F}.shelf-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.shelf-mini-card[hidden]{display:none}.shelf-mini-open{border:0;background:transparent;text-align:left;padding:0;width:100%;color:var(--ink)}.shelf-mini-open .cover{width:100%;height:auto;aspect-ratio:2/3}.shelf-mini-open h3{font:400 16px/1.2 var(--serif);margin:8px 0 5px}.shelf-mini-open p{font-size:12px;line-height:1.3;color:var(--muted);margin:0 0 8px}.shelf-mini-card .secondary{width:100%;padding:6px;font-size:12px}.shelf-mini-card .progress-line{gap:5px;margin-bottom:8px}.shelf-mini-card .progress-line small{font-size:12px;color:var(--muted)}.shelf-mini-card .bar{flex:1;height:5px}.shelf-create{width:100%;margin:16px 0 0}.shelf-book-picker{border:0;padding:0;margin-top:20px;max-height:45vh;overflow:auto}.shelf-book-picker label{display:flex;gap:12px;align-items:center;margin:12px 0}.shelf-book-picker input{width:18px;height:18px;flex:none}.shelf-book-picker small{display:block;color:var(--muted);font-size:12px}

.dusk-page-heading{margin:0 0 20px}.dusk-page-heading h1{font:400 32px/1.2 var(--serif);margin:0 0 8px}.dusk-page-heading p{font-size:14px;line-height:1.5;color:var(--muted);margin:0}.app:has(.dusk-page-heading) .title-wrap h1{font-size:26px}.profile-cover-back{position:absolute;top:22px;left:24px;z-index:4;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#EFF0EB;color:#29090A;font-size:24px}.app:has(.reader-profile) .topbar{pointer-events:none}.app:has(.reader-profile) .topbar button{pointer-events:auto}.admin-reading-card{padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent}.admin-reading-card .club-book{border:0}.admin-reading-card small{font-size:13px;color:var(--muted)}
.editorial-art,.editorial-art.sunset,.editorial-art.moon,.editorial-art.rose,.editorial-art.sage{background:#D3DBE6;box-shadow:none;color:#72393F}.collections-hero.with-art{position:relative;overflow:hidden;min-height:260px;display:flex;align-items:flex-end;padding:24px}.collections-hero.with-art>.collections-hero-art{position:absolute;inset:0;width:100%;height:100%;border-radius:0}.collections-hero.with-art>div:first-child{position:relative;z-index:1;max-width:85%}.collections-hero.with-art:has(img):after,.collection-card:has(img):after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(41,9,10,.76));pointer-events:none}.collections-hero.with-art:has(img) h2,.collections-hero.with-art:has(img) p,.collections-hero.with-art:has(img) small,.collection-card:has(img) h3,.collection-card:has(img) p{color:#EFF0EB}.collections-hero.with-art:has(img) .secondary,.collection-card:has(img) .secondary{background:#EFF0EB;color:#29090A}.collections-hero-art img,.collection-card-art img{width:100%;height:100%;object-fit:cover}.collection-list{display:grid;gap:14px}.collection-card{position:relative;overflow:hidden;min-height:170px;display:flex;align-items:flex-end;padding:22px}.collection-card-art{position:absolute;inset:0;width:100%;height:100%;border-radius:0}.collection-card-copy{position:relative;z-index:1;max-width:85%}.challenge-feature{display:flex;flex-direction:column;overflow:hidden}.challenge-feature>.challenge-illustration{width:calc(100% + 36px);margin:-18px -18px 18px;height:180px;border-radius:0}.challenge-illustration img{width:100%;height:100%;object-fit:cover}.directory-intro p,.directory-author-description{font-size:15px;line-height:1.6}.directory-book h3{font-size:19px}.directory-book p{font-size:13px}.journal-tools{display:flex;gap:10px;margin:16px 0}.journal-tools button{flex:1}

/* Search results have their own geometry, independent of profile headers. */
.reader-row{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:16px;align-items:center;min-width:0}
.reader-result-avatar{display:grid;place-items:center;width:48px;height:48px;margin:0;border-radius:50%;overflow:hidden;background:#D3DBE6;font:400 18px var(--serif)}
.reader-result-avatar img{width:100%;height:100%;object-fit:cover}
.reader-result-copy{min-width:0}.reader-row .reader-result-copy h3{margin:0 0 5px;font:400 21px/1.2 var(--serif);overflow-wrap:anywhere}.reader-row .reader-result-copy p{margin:0;font-size:13px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}
.reader-result-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;margin:0}.reader-result-actions button{flex:1;min-width:0;min-height:42px;padding:9px 12px;margin:0;font-size:14px;white-space:normal}.modal .reader-result-actions .primary{width:auto;margin-top:0}
.book-detail-screen .series-note{width:100%;background:transparent;border:0;border-block:1px solid var(--line);border-radius:0;padding:14px 0;gap:16px}
.book-detail-screen .series-note span{min-width:0;font-size:12px}.book-detail-screen .series-note strong{font-size:17px;color:var(--ink)}.book-detail-screen .series-note b{font:400 15px/1.3 var(--serif);color:#72393F;text-align:right;flex-shrink:0}.directory-group-head button{font:400 15px var(--serif);color:#72393F}
.app:has(.book-detail-screen) .topbar{display:none}.book-detail-screen .detail-head strong{display:none}.book-detail-screen .detail-head{position:absolute;z-index:2;top:18px;left:20px;margin:0}.book-detail-screen .detail-head .back{width:38px;height:38px;border-radius:50%;background:#EFF0EB;border:1px solid var(--line)}
.book-detail-screen{position:relative}.book-detail-screen .detail-cover{display:block;text-align:left}.book-art-hero{display:grid;place-items:center;height:300px;box-sizing:border-box;margin:0 -24px 18px;padding:30px 24px;background:#EFF0EB url('/bookbook-design/book-studio-dusk.webp') center/100% 100% no-repeat;overflow:hidden}
.book-detail-screen .book-art-hero .cover.large{width:166px;height:240px;max-width:100%;border-radius:8px;align-self:center;box-shadow:0 10px 22px rgba(41,9,10,.16)}.book-detail-screen .detail-cover h2{font-size:30px;line-height:1.15}.book-detail-screen .detail-cover p{margin:7px 0 12px;font-size:15px}.book-detail-screen .detail-tags{justify-content:flex-start}.book-detail-screen .detail-tags span{background:rgba(211,219,230,.3);font-size:12px;color:var(--muted)}.book-detail-screen .detail-rating-card{justify-content:flex-start;background:transparent;border:0;padding:8px 0;font-size:13px}.book-detail-screen .detail-rating-card strong{color:#72393F}
.book-detail-screen .shelf-actions button{background:transparent;box-shadow:none;border:1px solid rgba(114,57,63,.3);border-radius:9px;min-height:52px;font:400 14px var(--serif)}.book-detail-screen .shelf-actions button.active{background:rgba(114,57,63,.08);color:#72393F;box-shadow:none;border:1px solid #72393F}
@media(max-width:390px){.book-art-hero{margin-inline:-18px}.book-detail-screen .series-note b{font-size:13px;max-width:110px}.reader-result-actions button{font-size:13px}}

.book-detail-screen .book-art-hero .cover.large img{object-fit:contain;background:#EFF0EB}

/* Character editor and title suggestions. */
.overlay:has(> .character-editor){place-items:center;grid-template-columns:minmax(0,1fr);padding:12px;overflow:hidden}
.character-editor.modal{width:100%;max-width:560px;min-width:0;max-height:calc(100dvh - 24px);box-sizing:border-box;margin:0;padding:0;overflow:auto;border-radius:22px;scroll-padding-top:90px}
.character-editor-heading{position:sticky;top:0;z-index:3;padding:24px 64px 20px 24px;background:var(--paper);border-bottom:1px solid var(--line)}.character-editor-heading h2{margin:0;font:400 26px/1.2 var(--serif);overflow-wrap:anywhere}
.character-editor .close{position:sticky;top:16px;float:right;z-index:5;margin:16px 16px -54px 0;width:38px;height:38px;font:28px/1 sans-serif}
.character-editor form{display:block;margin:0;padding:20px 24px 0}.character-editor label{display:block;margin:0 0 20px;font:500 14px/1.4 sans-serif}.character-editor input:not([type=hidden]),.character-editor textarea{width:100%;box-sizing:border-box;min-height:46px;margin:7px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.6);font:400 16px/1.4 sans-serif;color:var(--ink)}.character-editor textarea{resize:vertical;min-height:100px}.character-editor input:focus,.character-editor textarea:focus{outline:2px solid var(--rose);outline-offset:2px}.character-field-hint{display:block;margin:7px 0 0;color:var(--muted);font:13px/1.4 sans-serif}
.character-editor .character-portrait-upload{position:relative;display:flex;align-items:center;gap:16px;border:1px dashed rgba(114,57,63,.3);border-radius:16px;padding:16px;background:var(--rose-soft);cursor:pointer}.character-portrait-preview{display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border-radius:14px;overflow:hidden;background:var(--paper);color:var(--rose)}.character-portrait-preview img{width:100%;height:100%;object-fit:cover}.character-portrait-preview svg{width:26px;height:26px}.character-portrait-upload strong{font:600 15px/1.4 sans-serif}.character-portrait-upload small{display:block;font:13px/1.5 sans-serif;color:var(--muted);margin-top:4px}.character-editor .character-portrait-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.character-portrait-upload:focus-within{outline:2px solid var(--rose);outline-offset:2px}
.character-book-results{margin:-10px 0 20px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.character-book-results[hidden]{display:none}.character-book-option{display:block;width:100%;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink);cursor:pointer}.character-book-option:last-child{border-bottom:0}.character-book-option:hover,.character-book-option:focus-visible{background:var(--rose-soft);outline:2px solid var(--rose);outline-offset:-2px}.character-book-option strong{display:block;font:500 15px/1.4 sans-serif;overflow-wrap:anywhere}.character-book-option small{display:block;margin-top:3px;font:13px/1.4 sans-serif;color:var(--muted)}.character-book-results p{padding:12px 14px;margin:0;font:14px/1.4 sans-serif;color:var(--muted)}
.character-extra-fields{border-top:1px solid var(--line);padding:16px 0}.character-extra-fields summary{cursor:pointer;color:var(--rose);font:500 14px/1.5 sans-serif;margin-bottom:16px}.character-extra-fields label:last-child{margin-bottom:0}.character-editor-footer{position:sticky;bottom:0;z-index:2;margin:0 -24px;padding:12px 24px max(16px,env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}.character-editor-footer .primary{width:100%;min-height:48px;border-radius:12px;font:600 16px/1.4 sans-serif}.character-editor-footer .form-error:empty{display:none}.character-editor-footer .form-error{font:14px/1.4 sans-serif;margin:0 0 10px}
@media(max-width:480px){.character-editor-heading{padding-left:20px}.character-editor-heading h2{font-size:24px}.character-editor form{padding-left:20px;padding-right:20px}.character-editor-footer{margin-inline:-20px;padding-inline:20px}}

.account-email-form{padding:20px 24px 24px!important}.account-email-form p{font:15px/1.6 sans-serif;color:var(--muted)}.account-email-form .primary{width:100%;min-height:48px}.account-email-form .form-error{color:#8b3434}.account-email-form .account-email-status{color:var(--rose)}

/* Email has no icon: keep address and status in the same full-width column. */
.setting-row.email-setting-row{grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
.email-setting-row .setting-copy{grid-column:1;min-width:0}
.email-setting-row .setting-copy strong{overflow-wrap:anywhere;line-height:1.35}
.email-setting-row .setting-status,.email-setting-row .setting-action{grid-column:1;justify-self:start;max-width:100%;white-space:normal}

/* Publication cards use the existing Dusk palette and stable media geometry. */
.social-post{padding:20px;margin:16px 0;background:rgba(255,255,255,.38);border:1px solid var(--line);border-radius:18px;min-width:0}
.feed-item-header{border:0;background:transparent;padding:0;text-align:left;max-width:100%;margin-bottom:18px}
.feed-item-header>span:last-child{min-width:0}.feed-item-header strong{overflow-wrap:anywhere}.feed-author-avatar{flex-shrink:0}
.social-post-body{margin:16px 0 20px;font-size:16px;line-height:1.65}.social-post-image{object-fit:contain;background:var(--paper-2);max-height:480px}
.social-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:18px}
.social-actions button{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;min-height:40px;min-width:40px;padding:8px 10px;line-height:1;white-space:nowrap;border-radius:10px;font-size:14px}
.social-actions button:hover{background:var(--rose-soft)}.social-actions button[aria-pressed=true]{color:var(--rose-dark);background:var(--rose-soft)}.social-actions .ui-icon{width:20px;height:20px;flex-shrink:0}
.post-book{background:rgba(255,255,255,.35);border-radius:14px;gap:14px;padding:14px;min-width:0}.post-book>span:last-child{min-width:0}.post-book strong{font-size:20px;line-height:1.3;overflow-wrap:anywhere}.post-book small{margin-top:5px}.post-book .stars{display:block;margin-top:8px;font-size:17px;letter-spacing:2px}
.feed-book-cover{position:relative;display:grid;place-items:center;flex:0 0 56px;width:56px;height:80px;border-radius:6px;overflow:hidden;background:#D3DBE6;color:#72393F;font:20px var(--serif)}.post-book .feed-book-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:0;background:var(--paper-2)}
.social-editor [data-post-book][hidden]{display:none!important}
@media(max-width:430px){.social-post{padding:16px}.post-book strong{font-size:18px}.social-actions{gap:4px}.social-actions button{padding:8px}}

/* Refined publication surface. */
.publication-card{padding:24px;margin:20px 0;border:1px solid rgba(158,171,180,.22);border-radius:22px;background:rgba(255,255,255,.58);box-shadow:0 4px 20px rgba(41,9,10,.025);scroll-margin-top:18px}
.publication-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:22px}.publication-card .feed-item-header{gap:12px;margin-bottom:0;align-items:center;min-width:0}
.publication-card .feed-author-avatar{width:42px;height:42px;border:1px solid rgba(158,171,180,.18)}
.publication-card .feed-item-header strong{font:600 16px/1.35 var(--sans,Arial,sans-serif);letter-spacing:0}
.publication-card .feed-item-header small{font-size:12px;line-height:1.5;margin-top:3px;color:var(--muted)}
.publication-card .social-post-body{margin:0 0 24px;font-size:16px;line-height:1.75;color:var(--ink)}
.publication-card .social-post-image{border-radius:16px;margin:18px 0 24px}
.publication-card .post-quote{margin:20px 0 26px;padding:4px 0 4px 18px;border-left:2px solid rgba(114,57,63,.45);font:400 23px/1.6 var(--serif);color:var(--rose-dark);overflow-wrap:anywhere}
.publication-card .post-book{border:0;background:rgba(211,219,230,.23);padding:14px;border-radius:14px;margin:0 0 22px}
.publication-card .post-book strong{font-size:19px}.publication-card .post-book small{font-size:13px}
.publication-card .social-actions{margin-top:0;padding-top:14px;border-color:rgba(158,171,180,.18);gap:10px}
.publication-card .social-actions>button{padding:8px 10px;color:var(--muted);font-size:13px;background:transparent}
.publication-card .social-actions>button:hover{background:rgba(211,219,230,.3)}
.publication-card .social-actions>button[aria-pressed=true]{color:#72393F;background:rgba(114,57,63,.06)}
.publication-card .social-actions [data-action=dusk-like][aria-pressed=true] .ui-icon{fill:currentColor}
.publication-card .publication-save{margin-left:auto}
.publication-menu{position:relative;flex-shrink:0}.publication-menu summary{list-style:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;color:var(--muted);cursor:pointer;font:24px/1 Arial,sans-serif}.publication-menu summary::-webkit-details-marker{display:none}.publication-menu summary:hover,.publication-menu[open] summary{background:rgba(211,219,230,.3)}
.publication-menu-items{position:absolute;top:48px;right:0;z-index:5;min-width:156px;padding:6px;background:#FAFAF7;border:1px solid rgba(158,171,180,.25);border-radius:12px;box-shadow:0 8px 24px rgba(41,9,10,.08)}
.publication-card .publication-menu-items button{width:100%;justify-content:flex-start;padding:12px;font-size:14px}.publication-card .publication-menu-items [data-action=dusk-delete-post]{color:#983c32}
@media(max-width:430px){.publication-card{padding:20px 18px;border-radius:18px;margin:16px 0}.publication-card .post-quote{font-size:21px}.publication-card .social-actions{gap:6px}}

.publication-header .publication-menu-items button{display:flex;border:0;background:transparent;border-radius:8px;text-align:left;cursor:pointer;color:var(--ink)}.publication-header .publication-menu-items button:hover{background:var(--rose-soft)}
/* Compact subscription action and notifications in the BookBook palette. */
.feed-follow{flex:none;width:36px;height:36px;min-width:36px;margin-left:auto;border:1px solid rgba(114,57,63,.22);border-radius:50%;display:grid;place-items:center;background:var(--rose-soft);color:var(--rose-dark);padding:0;cursor:pointer}.feed-follow .ui-icon{width:19px;height:19px}.feed-follow[aria-pressed=true]{background:transparent;color:var(--muted);border-color:var(--line)}.feed-follow:disabled{opacity:.5}.publication-header .feed-item-header{flex:1}.publication-header .publication-menu{flex:none}.notification-btn .ui-icon{width:22px;height:22px}.notification-count{font-size:10px;min-width:18px;height:18px;line-height:1}
.notification-modal{padding:28px!important;width:min(100%,520px);max-height:calc(100dvh - 32px);overflow:auto}.notification-heading{padding-right:34px;margin-bottom:20px}.notification-heading h2{margin:12px 0 7px;font-size:28px}.notification-heading p{font:14px/1.5 var(--sans);margin:0;color:var(--muted)}.notification-heading-icon{width:44px;height:44px;border-radius:14px;background:var(--rose-soft);color:var(--rose-dark);display:grid;place-items:center}.notification-heading-icon .ui-icon{width:23px;height:23px}.notification-read-all{border:0;background:none;color:var(--rose-dark);padding:0 0 18px;font:500 13px/1.4 var(--sans);text-align:left;cursor:pointer}.notification-list{gap:10px}.notification-modal .notification-item{position:relative;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--line);background:rgba(255,255,255,.55);border-radius:16px;color:var(--ink)}.notification-modal .notification-item.unread{background:rgba(114,57,63,.045);border-color:rgba(114,57,63,.17)}.notification-modal .notification-item>i{width:38px;height:38px;border-radius:12px;background:var(--rose-soft);color:var(--rose-dark)}.notification-item i .ui-icon{width:20px;height:20px}.notification-modal .notification-item strong{font:600 14px/1.4 var(--sans);padding-right:8px}.notification-body{display:block;font:14px/1.5 var(--sans);color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.notification-modal .notification-item small{font:12px/1.4 var(--sans);margin-top:8px}.notification-unread-dot{position:absolute;top:18px;right:12px;width:6px;height:6px;border-radius:50%;background:var(--rose-dark)}.notification-empty{text-align:center;padding:32px 0 22px;color:var(--muted)}.notification-empty>.ui-icon{width:36px;height:36px;color:var(--rose-dark);opacity:.65}.notification-empty h3{font:26px var(--serif);color:var(--ink);margin:14px 0 8px}.notification-empty p{font:14px/1.6 var(--sans)}
.report-modal{max-width:480px}.report-intro,.report-optional{color:var(--muted);font:14px/1.5 var(--sans)}.report-reasons{display:grid;gap:8px;margin:20px 0}.report-reasons label{display:flex;align-items:center;gap:12px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px;font:15px var(--sans)}.report-reasons input[type=radio]{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--rose-dark)}.report-modal textarea{min-height:88px}.report-modal .primary{width:100%;margin-top:14px}.report-modal .form-error:empty{display:none}
@media(max-width:430px){.notification-modal{padding:22px!important}.notification-heading h2{font-size:26px}.notification-modal .notification-item{padding:14px 12px;gap:10px}.publication-header{gap:8px}}
