/* A quiet xuan-paper surface with existing painted garden ornaments. */
:root {--study-bg:#f4ecdd;--study-ink:#303a36;--xuan-surface:linear-gradient(#faf6ebcc,#faf6ebcc),url('assets/xuan-paper-fibres.png');--xuan-border:#d7cbb5}
body {background-color:var(--study-bg)!important;background-image:linear-gradient(#f4ecdda6,#f4ecdda6),url('assets/xuan-paper-fibres.png')!important;background-size:640px 640px}
body .topbar,body .mobile-jump-nav,body .study-strip,body .author-match-game,body .feihua-game,body .library,body .notebook-section,body .map,body .rewards-view,body .rhyme-portal,body .article-card,body .detail-panel,body .match-scroll,body .focus-reader,body .reader-text,body .account-dialog,body .quest-card,body .shop-card,body .reward-stats>div {background-size:640px 640px}
body main {position:relative;z-index:1}
body .topbar {display:flex!important;background-color:#faf6eb!important;background-image:var(--xuan-surface)!important;border-color:var(--xuan-border);gap:14px}
body .brand-mark {width:40px;height:40px;background:none;box-shadow:none;border-radius:0;outline:none;object-fit:contain}
body .brand,body .library-heading h2,body .author-match-heading h3,body .feihua-heading h2,body .rewards-heading h2,body .account-heading h2 {font-family:'Songti SC','STSong','Noto Serif SC',SimSun,serif;letter-spacing:.04em}
body .nav {flex:1}
body .nav a {padding:10px 9px}
body .study-strip,body .author-match-game,body .feihua-game,body .library,body .notebook-section,body .map,body .rewards-view,body .rhyme-portal,body .article-card,body .detail-panel,body .match-scroll,body .focus-reader,body .account-dialog,body .quest-card,body .shop-card,body .reward-stats>div {
  background-color:#faf6eb;background-image:var(--xuan-surface);border-color:var(--xuan-border);box-shadow:0 4px 18px #51442e07;
}
body .focus-reader,body .reader-text {background-color:#faf6eb;background-image:linear-gradient(#faf6ebe0,#faf6ebe0),url('assets/xuan-paper-fibres.png')}
body .search-shell,body .detail-panel {background-color:#faf6eb!important;background-image:var(--xuan-surface)!important;background-size:640px 640px;border-color:var(--xuan-border)!important}
body .reader-content {color:#303a36}
body .reader-toolbar,body .reading-preferences {background-color:#f5efdf;border-color:var(--xuan-border)}
body .author-match-stage {background:#efebde;border-color:var(--xuan-border)}
body .study-strip {box-shadow:none}
body .article-card.is-selected {background-color:#f1edde;border-color:#a3ad9a}
body .rhyme-portal {position:relative!important;overflow:hidden}
body .rhyme-portal::before {content:'';position:absolute;right:-35px;top:20px;width:160px;height:136px;background:url('assets/plum-corner.svg') center/contain no-repeat;opacity:.36;pointer-events:none;z-index:0}
body .rhyme-portal>* {position:relative;z-index:1}
body .reader .rhyme-portal .panel-head,body .reader .rhyme-portal .panel-head span,body .reader .rhyme-portal .classic-head>span {color:#687065;text-shadow:none}
.hero-title {display:flex;align-items:center;gap:18px}
.hero-title img {width:84px;height:84px;flex:none;background:#f1e4c8;border-radius:2px;padding:3px;transform:rotate(-7deg);opacity:.92}
body .library-heading {position:relative;padding-right:92px;min-height:76px}
body .library-heading::after {content:'';position:absolute;right:0;top:0;width:76px;height:76px;background:url('assets/zhaoming-seal-zhuan.png') center/contain no-repeat;opacity:.72;transform:rotate(-6deg);pointer-events:none}
.paper-garden {position:fixed;inset:90px 0 0;pointer-events:none;z-index:0;overflow:hidden}
.paper-plum {position:absolute;right:-22px;top:0;width:190px;opacity:.5;transform-origin:95% 10%;animation:paper-branch-sway 18s ease-in-out infinite alternate}
body .paper-garden .bamboo-drift {display:block;position:absolute;inset:0 auto auto 0;width:100%;height:100%;z-index:0;opacity:.34}
body .paper-garden .bamboo-drift span {background:#657c54;box-shadow:none;animation-name:paper-leaf-fall;animation-duration:28s;right:4%;width:26px;height:5px}
body .paper-garden .bamboo-drift span:nth-child(2) {right:96%;top:26%;animation-delay:-10s;animation-duration:36s}
body .paper-garden .bamboo-drift span:nth-child(3) {right:2%;top:52%;animation-delay:-20s;animation-duration:32s}
body .paper-garden .incense-wisps {display:block;position:absolute;left:4px;bottom:5%;width:50px;height:230px;mix-blend-mode:multiply;opacity:.48}
body .paper-garden .incense-wisps span {border-left-color:#aaa490;animation-duration:14s}
body .paper-garden .incense-wisps span::after {border-right-color:#b4ae9b}
body .paper-garden .incense-wisps span:nth-child(2) {animation-delay:-7s}
@keyframes paper-branch-sway {from {transform:rotate(-2deg)}to {transform:rotate(2deg)}}
@keyframes paper-leaf-fall {0% {opacity:0;transform:translate(0,-20px) rotate(10deg)}15% {opacity:.48}80% {opacity:.28}100% {opacity:0;transform:translate(-18px,300px) rotate(210deg)}}
@media(max-width:760px) {body .topbar {gap:10px}.paper-plum {width:125px;right:-32px;opacity:.4}.hero-title {gap:14px}.hero-title img {width:62px;height:62px}body .mobile-jump-nav {background-color:#faf6eb;background-image:var(--xuan-surface);border-color:var(--xuan-border)}body .paper-garden .incense-wisps {width:24px;opacity:.3}body .library-heading {padding-right:60px}body .library-heading::after {width:54px;height:54px}}
@media(max-width:640px) {body .topbar {padding:12px;flex-wrap:wrap;min-height:64px}body .brand {font-size:18px}body .account-open {margin-left:auto}body .topbar .study-wallet {padding:8px 10px}.paper-garden {top:80px}}

/* Muted reward colors and quiet botanical motifs. */
body .rewards-view .quest-card,body .rewards-view .shop-card,body .rewards-view .badge {position:relative;overflow:hidden}
body .rewards-view .quest-card {background-image:none;background-color:#f4eee2;border-color:#d7c8b5;box-shadow:none}
body .rewards-view .quest-card:nth-child(2) {background-color:#f4e7e0}
body .rewards-view .quest-card:nth-child(3) {background-color:#eaf0e6}
body .rewards-view .quest-card:nth-child(4) {background-color:#e9edf0}
body .rewards-view .quest-card::after {content:'';position:absolute;right:-7px;top:9px;width:96px;height:96px;background:url('assets/reward-scroll.svg') center/contain no-repeat;opacity:.13;pointer-events:none}
body .rewards-view .quest-card:nth-child(2)::after {background-image:url('assets/reward-plum.svg')}
body .rewards-view .quest-card:nth-child(3)::after {background-image:url('assets/reward-bamboo.svg')}
body .rewards-view .quest-card:nth-child(4)::after {background-image:url('assets/reward-moon.svg')}
body .rewards-view .quest-icon {color:#796448;background:#ffffff80;border:1px solid #cdbfa9}
body .rewards-view .quest-card:nth-child(2) .quest-icon {color:#995346}
body .rewards-view .quest-card:nth-child(3) .quest-icon {color:#54705c}
body .rewards-view .quest-card:nth-child(4) .quest-icon {color:#5e7083}
body .rewards-view .quest-card small {color:#695e4c}
body .rewards-view .badge {background:#f0ece3;border-color:#cfc7b6;color:#746e60;padding-top:18px;gap:9px}
.badge-art {width:58px;height:58px;opacity:.45;filter:grayscale(1)}
body .rewards-view .badge.earned {background:#f7ecd7;border:1px solid #c9aa73;color:#795b29}
body .rewards-view .badge.earned .badge-art {opacity:1;filter:none}
body .rewards-view .badge.earned::after {content:'已获得';position:absolute;right:10px;top:12px;font-size:12px;padding:4px 7px;border:1px solid #c8ab78;border-radius:6px;color:#856335}
body .rewards-view .shop-card {background-image:none;background-color:#edf0f0;border-color:#c3ced0}
body .rewards-view .shop-card.jade {background-color:#e9efe4;border-color:#b9c9b0}
body .rewards-view .shop-card.gold {background-color:#f5ead0;border-color:#d8c392}
.reward-art {width:72px;height:72px;object-fit:contain;background:#ffffff60;border:1px solid #ffffffb0;border-radius:16px;padding:8px;box-sizing:border-box}
body .rewards-view .shop-card button {color:#65533d;border-color:#c8bca6;background:#ffffffa0}
body .rewards-view .shop-card button:disabled {opacity:1;color:#827c6e;background:#ffffff50}
@media(max-width:640px){.reward-art{width:44px;height:54px;grid-row:1/3;padding:4px;border-radius:10px}.badge-art{width:48px;height:48px}body .rewards-view .badge.earned::after{font-size:12px;position:static;align-self:flex-start}body .rewards-view .quest-card::after{width:76px;height:76px}}

body[data-pet="rabbit"] .companion-avatar {background-image:url('assets/pet-moon-rabbit.svg')}
body[data-medal="collector"] [data-study-rank]::after {content:' · 藏书雅客';color:#9b7836;font-size:14px}
body[data-effect="starlight"] .focus-reader .reader-scroll {background-image:radial-gradient(circle at 12px 80px,#c4a25d66 1px,transparent 3px),radial-gradient(circle at calc(100% - 12px) 250px,#c4a25d55 1px,transparent 3px);background-size:100% 360px;animation:reader-star-drift 14s ease-in-out infinite alternate}
@keyframes reader-star-drift {from{background-position:0 0}to{background-position:0 70px}}
@media(prefers-reduced-motion:reduce){body[data-effect="starlight"] .focus-reader .reader-scroll{animation:none}}

.reader-pet-icon {display:none;pointer-events:none}
body[data-pet="rabbit"] .reader-pet-icon {display:block;position:absolute;width:36px;height:44px;left:48%;top:14px;object-fit:contain}
body[data-pet="rabbit"] .reader-companion {position:relative;inset:auto;width:100%;margin:20px auto;display:flex;justify-content:center}
body[data-pet="rabbit"] .reader-companion .companion-panel {position:relative;inset:auto}
@media(max-width:760px){body[data-pet="rabbit"] .reader-pet-icon{left:auto;right:14px;top:4px;width:22px;height:30px}body[data-pet="rabbit"] .reader-companion{display:flex}}

body .nav a.shop-nav-link,body .mobile-jump-nav>a.shop-nav-link {color:#943e32;background:#f5e7da;border:1px solid #cfa48b;border-radius:12px;font-weight:700}
.shop-goal {display:flex;gap:20px;align-items:center;border:1px solid #d5b7a2;border-radius:18px;background:#f6ebde;padding:22px;margin-bottom:18px}
.shop-goal>img {width:72px;height:72px;object-fit:contain;flex:none}.shop-goal>div {flex:1;min-width:0}.goal-label{font-size:14px;color:#965344}.shop-goal h4{font-size:22px;margin:6px 0}.shop-goal p{font-size:14px;line-height:1.7;margin:6px 0;color:#695a49}.shop-goal progress{width:100%;max-width:360px;height:10px;accent-color:#a55343}.shop-goal>a{color:#914234;font-size:14px;border:1px solid #c99e87;padding:12px 16px;border-radius:10px;background:#fff8ed;text-decoration:none}.collection-count{font-size:14px;color:#796548;margin-bottom:20px}.daily-wish a{color:#914234;font-size:14px}.shop-card .shop-preview-button{margin-top:12px;background:transparent!important;border-style:dashed!important}.shop-preview{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #c6b495;padding:24px;background:#faf4e7;color:#384338;border-radius:22px;box-sizing:border-box}.shop-preview::backdrop{background:#25271f77}.shop-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.shop-preview-heading h2{font-size:22px;margin:0}.shop-preview button{border:1px solid #bc9480;border-radius:10px;background:#f2e0d1;color:#893e32;font-size:14px;padding:12px 18px;cursor:pointer}.shop-preview-heading button{padding:8px 12px}.shop-preview h3{font-size:22px;margin:20px 0 8px}.shop-preview p:not(.preview-verse){font-size:14px;line-height:1.8;color:#786e5b}.preview-note{font-size:14px}.shop-preview-scene{margin-top:20px;padding:22px 24px;min-height:220px;border:1px solid #d0c4ac;border-radius:18px;background:#f1eadc;position:relative;overflow:hidden}.preview-rank{font-size:14px;color:#655b49;padding:8px 12px;border-radius:8px;display:inline-block;background:#e8e1d2}.preview-rank b{font-weight:400;color:#967335}.preview-verse{font-family:SimSun,serif;font-size:24px;line-height:1.9;position:relative;z-index:1}.shop-preview-scene img{width:80px;height:92px;object-fit:contain;position:absolute;right:12px;bottom:10px}.shop-preview-scene[data-preview-item="moon"] .preview-rank{background:#e2e9f0}.shop-preview-scene[data-preview-item="jade"] .preview-rank{background:#dceadc}.shop-preview-scene[data-preview-item="gold"] .preview-rank{background:#eddda9}.shop-preview-scene[data-preview-item="starlight"]::after{content:'✦　·　✧　　✦';position:absolute;bottom:18px;left:24px;color:#ad8b47;font-size:20px;animation:preview-glow 3s ease-in-out infinite alternate}@keyframes preview-glow{to{opacity:.3;transform:translateY(-4px)}}
@media(max-width:640px){.shop-goal{flex-wrap:wrap;padding:18px;gap:12px}.shop-goal>img{width:48px;height:48px}.shop-goal>a{width:100%;text-align:center}.shop-goal h4{font-size:20px}.shop-card .shop-preview-button{grid-column:2}.shop-preview{padding:20px}.preview-verse{font-size:22px}body .mobile-jump-nav em{font-size:13px}}
@media(prefers-reduced-motion:reduce){.shop-preview-scene[data-preview-item="starlight"]::after{animation:none}}

.badge-count{font-size:14px;font-weight:400;margin-left:12px}.badge-help{font-size:14px;line-height:1.8;color:#716956}.badge{--badge-color:#997546;--badge-tint:#f4ead8}.badge-jade{--badge-color:#48775b;--badge-tint:#e3eddf}.badge-rose{--badge-color:#a15b60;--badge-tint:#f5e2de}.badge-blue{--badge-color:#557a9a;--badge-tint:#e2eaf3}.badge-gold{--badge-color:#aa802c;--badge-tint:#f7ebc6}body .rewards-view .badge{align-items:center;text-align:center;gap:10px;padding:20px 12px}.badge-emblem{display:grid;place-items:center;width:92px;height:92px;background:var(--badge-tint);border:3px double var(--badge-color);box-shadow:inset 0 0 0 5px #ffffff50;margin-bottom:4px;opacity:.65}.emblem-round{border-radius:50%}.emblem-seal{border-radius:18px 4px 18px 4px}.emblem-shield{border-radius:14px 14px 40px 40px}.emblem-star{border-radius:22px;transform:rotate(45deg);width:78px;height:78px;margin:7px}.emblem-star .badge-art{transform:rotate(-45deg)}body .rewards-view .badge .badge-art{width:64px;height:64px;object-fit:contain;opacity:.8;filter:none}.badge-category{font-size:12px;color:var(--badge-color)}body .rewards-view .badge.earned{background:var(--badge-tint);border-color:var(--badge-color)}body .rewards-view .badge.earned::after{content:none}.badge.earned .badge-emblem{opacity:1;box-shadow:inset 0 0 0 5px #ffffff80,0 4px 12px #6c542c20}.badge progress{width:100%;height:7px;accent-color:var(--badge-color)}.badge-status{font-size:14px}.badge.earned .badge-status{color:var(--badge-color);font-weight:700}html[data-theme="dark"] .badge-help{color:#bbb9aa}html[data-theme="dark"] .badge-category,html[data-theme="dark"] .badge.earned .badge-status{color:#e3cd8e}@media(max-width:640px){.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.badge-count{display:block;margin:8px 0 0}.badge-emblem{width:78px;height:78px}.emblem-star{width:66px;height:66px}body .rewards-view .badge .badge-art{width:54px;height:54px}}

.checkin-action{display:flex;align-items:center;gap:12px}.checkin-seal{width:62px;height:62px;object-fit:contain;transform:rotate(-9deg)}.daily-checkin-card.just-checked .checkin-seal{animation:checkin-stamp .65s ease-out}@keyframes checkin-stamp{0%{transform:scale(1.8) rotate(-20deg);opacity:0}65%{transform:scale(.92) rotate(-9deg);opacity:1}100%{transform:scale(1) rotate(-9deg)}}.daily-checkin-card.is-checked{border-color:#a96550;background:#f1e4d7}body .daily-wish a{display:grid;gap:8px;text-decoration:none;max-width:540px}.daily-wish progress{width:100%;height:8px;accent-color:#a15d4d}.daily-wish small{font-size:14px;color:#796e60}.shop-filters{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 20px}.shop-filters button,.badge-expand{padding:11px 18px;border:1px solid #cbb9a1;border-radius:12px;background:#ffffff60;color:#69523e;font-size:15px;cursor:pointer}.shop-filters button[aria-pressed="true"]{background:#a65e4c;color:white;border-color:#a65e4c}.badge-expand{display:block;margin:18px auto 0}.shop-card[hidden],.shop-grid[hidden]{display:none!important}html[data-theme="dark"] .shop-filters button,html[data-theme="dark"] .badge-expand{background:#303c36;color:#e0d5bd;border-color:#65715d}html[data-theme="dark"] .shop-filters button[aria-pressed="true"]{background:#a65e4c;color:white}html[data-theme="dark"] .daily-wish small{color:#c7bda9}@media(max-width:640px){.checkin-seal{width:48px;height:48px}.checkin-action{gap:8px}.shop-filters{gap:8px}.shop-filters button{padding:10px 12px;font-size:14px}}@media(prefers-reduced-motion:reduce){.daily-checkin-card.just-checked .checkin-seal{animation:none}}

.journal-ink-effect{position:relative;display:inline-block;width:112px;height:44px;flex:0 0 112px;pointer-events:none;overflow:hidden;color:#3b3932}.journal-ink-effect>span{position:absolute;opacity:0}.ink-brush{font-size:32px;line-height:1;left:0;top:0;transform:rotate(-35deg)}.ink-stroke{left:9px;top:29px;width:76px;height:4px;background:currentColor;border-radius:50% 20% 45% 40%;transform-origin:left;filter:blur(.3px)}.ink-caption{left:38px;top:9px;font-size:18px;letter-spacing:3px;font-family:KaiTi,STKaiti,serif;white-space:nowrap}.is-writing .ink-brush{animation:journal-brush 1.25s ease-in-out}.is-writing .ink-stroke{animation:journal-ink 1.5s ease-out}.is-writing .ink-caption{animation:journal-caption 1.8s ease-out}@keyframes journal-brush{0%{opacity:0;transform:translate(-10px,-6px) rotate(-35deg)}15%{opacity:1}65%{opacity:1;transform:translate(67px,0) rotate(-20deg)}100%{opacity:0;transform:translate(83px,-14px) rotate(-10deg)}}@keyframes journal-ink{0%,12%{opacity:0;transform:scaleX(0)}60%{opacity:.75;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1.05) scaleY(2)}}@keyframes journal-caption{0%,48%{opacity:0;transform:translateY(4px)}65%,88%{opacity:1;transform:translateY(0)}100%{opacity:0}}html[data-theme="dark"] .journal-ink-effect{color:#ded3b8}@media(prefers-reduced-motion:reduce){.is-writing .ink-brush,.is-writing .ink-stroke,.is-writing .ink-caption{animation:none}}

.ink-brush{font-family:"Segoe UI Symbol","Noto Sans Symbols 2",serif;font-variant-emoji:text}
