@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap');
:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#242637;background:#f7f8fc;font-size:16px;--purple:#6354ba;--muted:#777b8d}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #ac9df1;outline-offset:3px}a{color:inherit;text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#fff;border-right:1px solid #e9eaf1;padding:37px 24px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-family:"Noto Serif SC",serif;font-weight:700;font-size:23px;letter-spacing:2px}.brand-icon{display:grid;place-items:center;background:#6254a8;color:#fff;width:42px;height:46px;border-radius:4px;font-size:25px}.brand small{display:block;font:9px/2.2 sans-serif;letter-spacing:2.3px;color:#808096}.college{font-size:14px;line-height:1.9;margin:29px 7px 39px;color:#575c6e}.college span{font-size:13px;color:#9195a4}.nav-label{font-size:12px;letter-spacing:1px;color:#9296a5;margin:0 13px 14px}nav{display:grid;gap:7px}nav button{border:0;background:none;display:flex;align-items:center;width:100%;text-align:left;padding:13px 12px;border-radius:7px;color:#676c7b;font-size:14px;gap:12px}nav button.active{background:#eeebf9;color:#6551ad;font-weight:600}nav button:hover{background:#f3f1fa}nav .nav-icon{font-size:19px;width:21px;text-align:center}nav .nav-count{margin-left:auto;font-size:12px;font-weight:400}.sidebar-bottom{margin-top:auto;padding:40px 13px 0;color:#9091a0}.little-mark{font-size:35px;color:#c5bfdf}.sidebar-bottom p{font-family:"Noto Serif SC",serif;font-size:15px;line-height:1.9;margin:0 0 18px}.sidebar-bottom small{font-size:9px;letter-spacing:1.8px}.workspace{margin-left:244px}header{height:77px;border-bottom:1px solid #e7e9f1;padding:0 46px;display:flex;align-items:center;justify-content:space-between;background:#fff;font-size:13px;color:#737888}.slash{margin:0 13px;color:#c0c2cd}.header-note{font-size:12px;color:#9195a1}main{max-width:1340px;margin:auto;padding:39px 46px 23px}.intro{display:flex;justify-content:space-between;gap:24px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2.4px;color:#8c80b2;margin:0 0 14px}h1{font:600 32px/1.5 "Noto Serif SC",serif;letter-spacing:1px;margin:0 0 12px}.description{font-size:14px;color:var(--muted);margin:0}.edition{border-left:1px solid #d9d6e5;padding:6px 0 6px 22px;color:#6b6389;font-family:"Noto Serif SC",serif;font-size:14px;white-space:nowrap}.edition span{display:block;font:11px sans-serif;letter-spacing:2px;color:#a09aaF;margin-top:12px}.search-wrap{display:flex;align-items:center;gap:14px;background:white;border:1px solid #dedeea;border-radius:8px;padding:0 18px;margin-top:29px;height:55px;color:#9698aa;box-shadow:0 3px 9px #28214403}.search-wrap input{border:0;outline:0;min-width:0;width:100%;height:100%;background:none;font-size:14px;color:#303044}.search-wrap input::placeholder{color:#9698aa}kbd{white-space:nowrap;font-size:11px;border:1px solid #e8e8ed;border-radius:4px;padding:4px 6px}.start-strip{display:flex;align-items:center;background:#efedf8;border:1px solid #e6e2f4;border-radius:8px;padding:19px 23px;margin-top:18px;gap:18px}.strip-symbol{display:grid;place-items:center;color:#8d7ac3;background:#e3ddf2;width:38px;height:38px;border-radius:50%;font-size:25px}.start-strip strong{font-size:15px;color:#4a405f;font-weight:600}.start-strip p{font-size:13px;color:#8b819e;margin:6px 0 0}.start-strip button{border:0;background:none;color:#7763aa;margin-left:auto;font-size:13px;white-space:nowrap}.start-strip button span{margin-left:12px}.library{margin-top:33px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading>div{display:flex;align-items:center;gap:13px}h2{font-size:19px;margin:0;font-weight:600}#count{font-size:12px;color:#9498a6}.sort{font-size:12px;color:#9295a4}.sort select{font-size:12px;color:#616676;border:0;background:transparent;padding:6px}.filter-row{display:flex;align-items:center;justify-content:space-between;margin:22px 0 21px;gap:12px}#subjects{display:flex;gap:8px}#subjects button{border:1px solid transparent;border-radius:5px;background:transparent;color:#818594;padding:7px 11px;font-size:13px}#subjects button.active{border-color:#e1dced;background:white;color:#6c57a6}#subjects button:hover{background:#eeebf7}.example-label{font-size:11px;color:#9995a5}.books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.book{background:#fff;border:1px solid #e7e8ee;border-radius:9px;overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}.book:hover{transform:translateY(-3px);box-shadow:0 8px 23px #2e215c0a;border-color:#d3cbe4}.book-head{padding:21px 21px 18px;border-bottom:1px solid #f0f0f5;position:relative;min-height:135px}.book-meta{font-size:10px;letter-spacing:1.3px;color:var(--tone);display:flex;align-items:center;justify-content:space-between}.book-meta span:last-child{color:#aaa9b3;font-size:10px;letter-spacing:0}.book h3{font:600 21px/1.5 "Noto Serif SC",serif;margin:17px 0 7px;color:#353247}.author{font-size:12px;color:#858594;margin:0}.book-body{padding:17px 21px 0;display:flex;flex-direction:column;flex:1}.book-description{font-size:13px;line-height:1.8;color:#777a8a;margin:0 0 17px;flex:1}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:11px;background:#f4f3f8;color:#90839f;padding:4px 7px;border-radius:3px}.card-bottom{border-top:1px solid #f1f1f5;display:flex;justify-content:space-between;align-items:center;padding:13px 0;margin-top:17px}.status{font-size:11px;color:#a09bab}.details{border:0;background:none;color:#75649d;font-size:12px;padding:4px 0}.details:hover{text-decoration:underline}footer{display:flex;justify-content:space-between;border-top:1px solid #e6e7ef;margin-top:37px;padding-top:21px;color:#a2a4b0;font-size:11px}footer b{font-weight:400;margin:0 7px}dialog{border:1px solid #e3dfed;border-radius:14px;padding:34px;width:min(540px,calc(100% - 32px));color:#343245;box-shadow:0 24px 100px #17122629}dialog::backdrop{background:#21193f55;backdrop-filter:blur(3px)}.close{position:absolute;top:12px;right:14px;border:0;background:none;font-size:26px;color:#8f879f}dialog h2{font-family:"Noto Serif SC",serif;font-size:27px;margin:20px 0 12px}dialog p{line-height:1.9;font-size:15px;color:#7c7789}.availability{background:#f2eff8;border-radius:7px;padding:17px;margin-top:24px;font-size:14px;line-height:1.8;color:#776d8c}.availability strong{display:block;color:#5a4b77}#empty{text-align:center;padding:55px 15px;background:#fff;border:1px dashed #d9d4e6;border-radius:10px;color:#888094}#empty button{background:#6554ab;color:#fff;border:0;border-radius:5px;padding:10px 18px}#empty p{font-size:14px}[hidden]{display:none!important}@media(min-width:1500px){main{padding-top:49px}.books{gap:24px}.book-head{min-height:149px}}@media(max-width:1150px){.sidebar{width:214px;padding-left:18px;padding-right:18px}.workspace{margin-left:214px}main{padding:32px 28px}.books{grid-template-columns:repeat(2,minmax(0,1fr))}.edition{display:none}header{padding:0 28px}.example-label{display:none}}@media(max-width:700px){.sidebar{position:static;width:100%;padding:20px 20px 13px;border-right:0;border-bottom:1px solid #e9eaf1}.brand{font-size:21px}.brand small{font-size:8px}.brand-icon{width:36px;height:39px}.college,.nav-label,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;margin-top:19px;gap:6px;padding-bottom:3px}nav button{white-space:nowrap;width:auto;padding:10px 12px;font-size:13px;gap:6px}nav .nav-icon{display:none}nav .nav-count{display:none}.workspace{margin-left:0}header{display:none}main{padding:27px 20px 22px}h1{font-size:26px}.description{font-size:13px;line-height:1.8}.eyebrow{font-size:9px}.search-wrap{margin-top:23px}.start-strip{padding:16px 13px;gap:12px}.start-strip strong{font-size:14px}.start-strip p{font-size:11px}.start-strip button{font-size:12px;padding:0}.strip-symbol{display:none}.books{gap:14px}.book-head{padding:17px;min-height:139px}.book h3{font-size:19px}.book-body{padding:14px 17px 0}.book-description{font-size:12px}.book-meta{font-size:9px;letter-spacing:.5px}.book-meta span:last-child{display:none}.filter-row{margin:18px 0}.sort{font-size:11px}#subjects{gap:2px}#subjects button{font-size:12px;padding:7px 10px}footer{line-height:1.8;gap:16px}footer span:last-child{max-width:115px;text-align:right}}@media(max-width:390px){.books{grid-template-columns:1fr}h1{font-size:23px}.book-head{min-height:0}.book h3{font-size:22px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.book-title-row{display:flex;gap:15px;margin-top:17px;align-items:flex-start}.cover{width:63px;height:93px;object-fit:contain;object-position:top;flex-shrink:0}.book h3{margin:0 0 9px;font-size:18px;line-height:1.55}.book-head{min-height:170px}.book-description{font-size:14px}.book-body{padding-top:17px}.book-meta{font-size:12px;letter-spacing:0}.author{line-height:1.65}.details{font-size:14px}.tag{font-size:12px}.status{font-size:12px}#subjects{flex-wrap:wrap}#subjects button{font-size:14px}.example-label{white-space:nowrap}.detail-cover{width:100px;max-height:155px;object-fit:contain;float:right;margin:15px 0 18px 20px}.availability{clear:both}.file-info{font-size:13px!important}.filter-row{align-items:flex-start}.book-title-row>div{min-width:0}@media(max-width:700px){.books{grid-template-columns:1fr}.cover{width:70px;height:100px}.book-head{min-height:0}.book h3{font-size:21px}.book-meta{font-size:12px}.book-meta span:last-child{display:inline}.book-description{font-size:14px}.book-body{padding-top:15px}.start-strip p{font-size:12px}#subjects{gap:3px}#subjects button{font-size:13px}.filter-row{margin-top:16px}}

.brand{font-size:17px;letter-spacing:1px;align-items:center}.brand-text{line-height:1.55}.brand small{font-size:8px;letter-spacing:1px;line-height:2.2}.brand-icon{width:38px;height:45px;flex-shrink:0}.login-story .brand{font-size:21px}.login-story .brand-icon{width:45px;height:52px}.login-card h2{line-height:1.6}

.curriculum-notes{font-size:12px;line-height:1.8;color:var(--muted);margin-top:12px}.curriculum-notes summary{cursor:pointer}.curriculum-notes p{margin:10px 0}

.book{position:relative}.book-open{font:inherit;color:inherit;text-align:left;border:0;background:none;padding:0}.book-open::after{content:"";position:absolute;inset:0;border-radius:9px;cursor:pointer}.book:has(.book-open:focus-visible){outline:3px solid #ab99d5;outline-offset:3px}.book-open:focus-visible{outline:0}.book-source{position:relative;z-index:1;display:block;width:fit-content;max-width:100%;font-size:11px;line-height:1.7;color:#9b8bab;margin:-7px 0 14px;overflow-wrap:anywhere}.book-source[href]:hover{text-decoration:underline;color:#69518c}.book-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:none;margin-bottom:14px}.book .tags{margin-top:auto;max-height:96px;overflow:auto;position:relative;pointer-events:none}.tag-thinker{color:#705390;background:#ede7f5}.tag-course{color:#879499;background:#f0f5f5}.detail-tags{margin:16px 0}.course-panel>h2{padding:20px;font-size:19px}.role-teacher .book-source{color:#799789}.role-teacher .book:has(.book-open:focus-visible){outline-color:#7aaca1}

.book .tags{max-height:none;overflow:visible}
.book .book-head{position:static}

/* Uiverse cssbuttons-io/calm-tiger-42 hover fill, adapted for small nav icons. */
#categories .nav-icon{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:9px;margin:-4px 0;color:inherit;transition:background .25s,box-shadow .25s}#categories .nav-icon::before{content:"";position:absolute;left:50%;top:100%;width:140%;height:180%;border-radius:50%;background:color-mix(in srgb,var(--purple) 12%,transparent);transform:translateX(-50%) scaleY(1) scaleX(1.25);transition:all .5s .05s cubic-bezier(.55,0,.1,1);z-index:-1}#categories button:is(:hover,:focus-visible) .nav-icon::before{top:-35%;transform:translateX(-50%) scaleY(1.3) scaleX(.8)}#categories .nav-icon .bi{width:19px;height:19px;overflow:visible;transition:transform .45s cubic-bezier(.22,1,.36,1)}#categories button.active .nav-icon{background:#ffffff9c;box-shadow:0 2px 7px #6254a80a}#categories button:is(:hover,:focus-visible) .icon-graduation-cap .bi{transform:translateY(-2px) rotate(-5deg)}#categories button:is(:hover,:focus-visible) .icon-library-big .bi{transform:rotate(-7deg)}#categories .icon-compass .bi{transform-origin:12px 12px;transition:transform .65s cubic-bezier(.22,1,.36,1)}#categories button:is(:hover,:focus-visible) .icon-compass .bi{transform:rotate(45deg)}#categories button:is(:hover,:focus-visible) .icon-book-open .bi{transform:scale(1.12)}#categories button:is(:hover,:focus-visible) .icon-scan-search .bi{transform:translate(1px,-1px) scale(1.08)}#categories button:is(:hover,:focus-visible) .icon-messages-square .bi{transform:rotate(6deg) translateY(-1px)}#categories button:active .nav-icon .bi{transform:scale(.92)}@media(max-width:700px){#categories .nav-icon{display:grid;width:24px;height:24px;flex-basis:24px}#categories .nav-icon .bi{width:17px;height:17px}}
.favorite-toggle{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:6px;background:transparent;color:#9485a4;padding:6px 8px;font-size:12px;white-space:nowrap;transition:color .2s,background .2s}.favorite-toggle .bi{width:16px;height:18px;transition:transform .2s,fill .2s}.favorite-toggle:hover{background:#f0ebf7;color:var(--purple)}.favorite-toggle:hover .bi{transform:translateY(-1px)}.favorite-toggle.saved{color:var(--purple)}.favorite-toggle.saved .bi{color:var(--purple)}.favorite-toggle:disabled{opacity:.5;cursor:wait}.book .card-bottom{align-items:center;padding-top:8px;padding-bottom:8px}.detail-save{margin:14px 0}.detail-save .favorite-toggle{font-size:14px;padding:10px 14px;background:#f4f0f9}.favorites-dialog{width:min(700px,calc(100% - 28px));max-height:85dvh;padding:32px;overflow:auto}.favorites-dialog h2{margin:10px 0}.favorites-dialog #favorites-total{font-size:13px;margin:0 0 20px;color:#a092ac}.favorites-search-label{display:block;font-size:13px;color:#887799;margin-bottom:8px}#favorites-search{width:100%;border:1px solid #e2dae9;border-radius:7px;padding:12px;font-size:14px;color:#5c4b70;background:white;margin-bottom:16px}.favorite-row{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid #eee8f4}.favorite-row>img,.favorite-cover{width:42px;height:60px;object-fit:cover;border-radius:3px;flex-shrink:0}.favorite-cover{display:grid;place-items:center;background:#f0ebf7;color:#a99abb}.favorite-row>div{flex:1;min-width:0}.favorite-title{text-align:left;line-height:1.7;font-size:15px;font-weight:500;color:#564069;border:0;padding:0;background:none}.favorite-title:hover{color:var(--purple);text-decoration:underline}.favorite-row p{font-size:12px;margin:5px 0;color:#93849f}.favorite-row small{font-size:11px;color:#aaa0b4}.favorites-empty{text-align:center;padding:45px 15px;color:#a899b7}.favorites-empty>svg{width:28px;height:32px}.favorites-empty h3{font-size:17px;font-weight:500;margin:16px 0 8px}.favorites-empty p{font-size:13px;margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.role-teacher .favorite-toggle:hover,.role-teacher .detail-save .favorite-toggle{background:#eaf3ef}@media(max-width:600px){.favorites-dialog{padding:25px 20px}.favorite-row{gap:11px}.favorite-row>.favorite-toggle{font-size:11px;padding:6px 2px}.favorite-title{font-size:14px}}
@media(prefers-reduced-motion:reduce){#categories .nav-icon,#categories .nav-icon::before,#categories .nav-icon .bi,#categories .icon-compass .bi,.favorite-toggle,.favorite-toggle .bi{transition:none!important}#categories button .nav-icon .bi,#categories button .icon-compass .bi,.favorite-toggle:hover .bi{transform:none!important}}
#categories .nav-icon .bi{font-size:19px;line-height:1;display:inline-block}.favorite-toggle .bi{font-size:16px;line-height:1;display:inline-block}.favorites-empty>.bi{font-size:28px;display:inline-block}.semester-mark .bi{font-size:29px;display:inline-block;line-height:1}.profile-avatar>.bi{font-size:22px;line-height:1}.search-wrap>.bi{font-size:18px;color:#a298b3;line-height:1}@media(max-width:700px){#categories .nav-icon .bi{font-size:17px}.semester-mark .bi{font-size:23px}}
.book .tags,.detail-tags{display:block}.tag-groups{display:grid;gap:10px;width:100%;padding:4px 0 6px}.tag-group{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:10px}.tag-group-label{font-size:11px;line-height:22px;color:#a399ad;white-space:nowrap}.tag-group-values{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}.tag-group .tag{margin:0;line-height:1.6}.tag-group .tag-thinker{background:#eee8f7;color:#76608f}.tag-group .tag-topic{background:#f3f1f6;color:#95879f}.tag-group .tag-course{background:transparent;border:1px solid #eee8f3;color:#9b8cab}.tag-unset{font-size:11px;line-height:22px;color:#b5acbe}.recommendation{padding-top:9px;margin-top:2px;border-top:1px dashed #eee8f3}.rating-stars{position:relative;display:inline-block;font-family:Arial,sans-serif;font-size:17px;letter-spacing:2px;line-height:22px;color:#d5c7a5;white-space:nowrap}.rating-stars-fill{position:absolute;top:0;left:0;overflow:hidden;color:#b9954d}.rating-stars.unrated{color:#d8d1df}.rating-caption{font-size:11px;color:#a799b1;margin-left:3px}.role-teacher .tag-group .tag-thinker{background:#e5f0eb;color:#568675}.role-teacher .tag-group .tag-topic{background:#f0f5f2;color:#839b8f}.role-teacher .tag-group .tag-course{background:transparent;border-color:#e1eae5;color:#839b8f}.role-teacher .tag-group-label{color:#94a59b}.role-teacher .recommendation{border-color:#e4ece6}.rating-picker{border:0;padding:0;margin:20px 0}.rating-picker legend{font-size:14px;color:#6c5b7b;margin-bottom:12px}.rating-picker>div{display:flex;gap:10px}.rating-picker .rating-choice{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;padding:12px 4px;border:1px solid #e7e0ed;border-radius:8px;cursor:pointer;margin:0;background:#faf8fc}.rating-choice input{position:absolute;width:1px;height:1px;opacity:0}.rating-choice>span{font-size:25px;color:#cfc4d9}.rating-choice small{font-size:12px;color:#9788a4}.rating-choice:has(input:checked){border-color:#b49658;background:#fbf7ec;box-shadow:0 0 0 1px #b49658}.rating-choice:has(input:checked)>span{color:#b9954d}.rating-choice:has(input:focus-visible){outline:3px solid #ac9df1;outline-offset:3px}.rating-picker p,.rating-explanation{font-size:12px!important;line-height:1.9!important;color:#a193ab!important}.rating-picker p{margin-bottom:0}.rating-explanation{margin:0 0 20px}@media(max-width:700px){.tag-group{grid-template-columns:38px minmax(0,1fr);gap:6px}.rating-stars{font-size:15px;letter-spacing:1px}.rating-caption{font-size:10px}.rating-picker>div{gap:6px}}

.library-nav-parent{display:flex;align-items:center}.library-nav-parent>button:first-child{flex:1;min-width:0}#categories .library-nav-children{padding-left:16px;margin-left:15px;border-left:1px solid #dedbe8}#categories .library-nav-children button{font-size:13px}#personal-tools{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:20px;border:1px solid #dfdbe7;border-radius:10px;background:#fff}#personal-tools p{margin:0;line-height:1.8;color:#7a718c}#personal-tools button{white-space:nowrap}@media(max-width:650px){#personal-tools{align-items:stretch;flex-direction:column}}

.development-badge{font-size:11px;letter-spacing:.03em;border:1px solid currentColor;border-radius:4px;padding:2px 5px;margin-left:5px;opacity:.7}.publication-year{font-size:12px;color:#9891a2;white-space:nowrap}.intro-slogans{display:grid;min-height:2.8em}.intro-slogans .description{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .65s ease,visibility .65s}.intro-slogans .description.active{opacity:1;visibility:visible}#categories .library-nav-parent{position:relative;border-radius:10px}#categories .library-nav-children{margin-bottom:8px}

/* A continuous vertical handoff instead of a crossfade. */
.quote-slides,.intro-slogans{overflow:hidden;isolation:isolate}
.quote-slides .quote-slide,.intro-slogans .description{transition:none;transform:translateY(110%);opacity:1;visibility:hidden}
.quote-slides .quote-slide.active,.intro-slogans .description.active{transform:translateY(0);visibility:visible}
.quote-slides .quote-slide.leaving,.intro-slogans .description.leaving{visibility:visible;pointer-events:none;animation:reading-line-out 1.3s cubic-bezier(.65,0,.25,1) both}
.quote-slides .quote-slide.entering,.intro-slogans .description.entering{animation:reading-line-in 1.3s cubic-bezier(.65,0,.25,1) both}
@keyframes reading-line-out{from{transform:translateY(0);opacity:1}to{transform:translateY(-70%);opacity:0}}
@keyframes reading-line-in{from{transform:translateY(70%);opacity:0}to{transform:translateY(0);opacity:1}}

.book-introductions{display:grid;overflow:hidden;isolation:isolate;margin-bottom:14px}.book-intro-slide{grid-area:1/1;min-width:0;visibility:hidden;transform:translateY(110%)}.book-intro-slide.active{visibility:visible;transform:translateY(0)}.book-intro-slide.leaving{visibility:visible;animation:reading-line-out 1.3s cubic-bezier(.65,0,.25,1) both}.book-intro-slide.entering{animation:reading-line-in 1.3s cubic-bezier(.65,0,.25,1) both}.book-introductions .book-source{margin:6px 0 0}.book-introductions .book-description{margin-bottom:0}.book-source,.role-teacher .book-source{color:#9a9ca6;font-weight:400}

.intro>div:first-child{min-width:0;flex:1}.intro h1{margin-bottom:2px}.intro-slogans{height:36px;min-height:0;align-items:center}.intro-slogans .description{margin:0;line-height:1.7;width:100%}.intro+.search-wrap{margin-top:12px}@media(max-width:600px){.intro-slogans{height:48px}.intro+.search-wrap{margin-top:10px}}

.sidebar-support{display:flex;flex-direction:column;gap:8px;font-family:inherit;color:#9091a0}.sidebar-support summary,.sidebar-support button{display:flex;align-items:center;gap:8px;font:inherit;font-size:12px;font-weight:400;line-height:1.7;padding:4px 0;background:none;border:0;color:inherit;cursor:pointer;list-style:none;text-align:left}.sidebar-support summary::-webkit-details-marker{display:none}.sidebar-support summary:hover,.sidebar-support button:hover{color:#535c66}.sidebar-support i{font-size:13px}.sidebar-support details p{font-family:inherit;font-size:12px;line-height:1.8;margin:5px 0 8px;overflow-wrap:anywhere}.sidebar-support strong{font-weight:500}.sidebar-support summary:focus-visible,.sidebar-support button:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px}@media(max-width:800px){.sidebar .sidebar-bottom{display:block;padding:12px 0 0;margin-top:0}.sidebar-bottom>.little-mark,.sidebar-bottom>p{display:none}.sidebar-support{flex-direction:row;gap:24px}.sidebar-support details{max-width:220px}}

.book-source,.book-introductions .book-source{width:100%;text-align:right}.sidebar-quotation{padding:0;letter-spacing:0}

.sidebar-bottom .sidebar-quotation{position:relative;margin:0 0 22px;padding:24px 10px 22px 8px}.sidebar-quotation p{font:inherit;line-height:1.9;margin:0!important;color:#9395a1}.quote-corner{position:absolute;font:42px/1 Georgia,serif;color:#c4c3d3;opacity:.6;pointer-events:none}.quote-corner-start{top:0;left:-2px}.quote-corner-end{right:0;bottom:-7px}.close:focus{outline:none;box-shadow:none}.close:focus-visible{outline:none;background:rgba(120,120,135,.1);border-radius:6px}@media(max-width:800px){.sidebar-bottom .sidebar-quotation{display:none}}

#detail{width:min(680px,calc(100% - 32px));padding:36px;max-height:85vh} .entry-heading{display:flex;align-items:flex-start;gap:28px;padding-right:12px}.entry-heading>div{flex:1;min-width:0}#detail .entry-heading h2{font-size:25px;line-height:1.5;margin:18px 0 12px}.entry-cover{width:84px;max-height:132px;object-fit:contain;margin-top:24px}#detail .entry-author{font-size:12px;line-height:1.8;margin:0;color:var(--muted)}.entry-intro{margin:20px 0}#detail .entry-intro p{font-size:14px;margin:0;line-height:1.9}.entry-actions{display:flex;gap:12px;align-items:stretch;margin:24px 0}.entry-actions>a,.entry-actions>button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;padding:12px 8px;border-radius:7px;font-size:13px;text-decoration:none;white-space:nowrap}.entry-download{border:1px solid #dedde7;color:var(--accent,#6551ad)}.entry-actions .favorite-toggle{border:1px solid #e6e3ed;background:transparent}.teacher-entry{width:100%;display:flex;justify-content:space-between;align-items:center;padding:20px 0 0;margin-top:22px;border:0;border-top:1px solid #e9e7ef;background:transparent;color:inherit;text-align:left}.teacher-entry strong{font-size:15px}.teacher-entry small{display:block;color:#9692a2;font-size:12px;margin-top:7px}.teacher-entry>span:last-child{color:#9692a2}.teacher-entry-tools{display:flex;gap:14px;flex-wrap:wrap;margin:22px 0}.entry-actions~.detail-tags{margin-top:20px}@media(max-width:600px){#detail{padding:25px}.entry-heading{gap:16px}.entry-cover{width:62px}#detail .entry-heading h2{font-size:21px}.entry-actions{gap:6px}.entry-actions>a,.entry-actions>button{font-size:12px;padding:12px 6px}}
/* Personal bookshelf: real covers, oak shelves and lightweight CSS book depth. */
.personal-subtitle{display:none}.view-mine .personal-subtitle{display:block;color:var(--muted);margin:10px 0 0;font-size:14px}.view-mine .intro-slogans,.view-mine .edition{display:none}.view-mine #personal-tools{display:flex;justify-content:flex-end;align-items:center;gap:20px;border:0;background:none;padding:0;margin:0 0 24px}.view-mine #personal-tools p{display:none}.view-mine .section-heading{margin-top:0}.view-mine #books{--book-height:240px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:40px 0;padding:32px 8px 12px;isolation:isolate}.shelf-slot{position:relative;min-width:0;padding:0 16px 0;perspective:1000px}.shelf-slot::after,.shelf-empty::after{content:"";position:absolute;z-index:-1;left:0;right:0;top:calc(var(--book-height) + 3px);height:19px;border-top:3px solid #e8d0ac;border-bottom:2px solid #b99567;background:repeating-linear-gradient(2deg,transparent 0 3px,#79552e0c 4px,transparent 5px 9px),repeating-linear-gradient(178deg,#ffffff14 0 1px,transparent 2px 7px),linear-gradient(#d9bb91,#cba574);box-shadow:0 12px 13px -8px #76573555,0 2px 3px #61462220}.shelf-book{display:block;width:100%;padding:0;border:0;background:none;color:inherit;cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent}.shelf-cover-stage{height:var(--book-height);display:flex;align-items:flex-end;justify-content:center;perspective:900px;padding-bottom:1px}.shelf-volume{position:relative;display:block;height:94%;max-width:100%;transform-style:preserve-3d;transform:rotateY(-6deg);transform-origin:50% 95%;transition:transform .55s cubic-bezier(.2,.75,.25,1),filter .55s;filter:drop-shadow(5px 7px 4px #443c3528)}.shelf-volume img{display:block;height:100%;max-width:100%;width:auto;object-fit:contain;border-radius:1px 3px 3px 1px;position:relative;z-index:1}.shelf-volume::before{content:"";position:absolute;top:1%;bottom:1%;left:100%;width:8px;background:repeating-linear-gradient(#f8f5eb 0 1px,#d9d4c7 1px 2px);transform-origin:left;transform:rotateY(75deg);border-radius:0 2px 2px 0}.shelf-volume::after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(90deg,#00000018,transparent 3%,#ffffff30 4%,transparent 7%,transparent 94%,#0000000b);border-radius:2px}.shelf-title{display:block;min-height:66px;margin:33px auto 0;font-size:13px;line-height:1.7;max-width:190px;font-weight:400;overflow-wrap:anywhere}.shelf-fallback{height:100%;width:142px;max-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:linear-gradient(115deg,#8ca49a,#506f65);border:1px solid #ffffff50;color:#eee7d5}.shelf-fallback i{font-size:34px}.shelf-fallback>span{font:9px Georgia,serif;letter-spacing:2px}.shelf-book:focus-visible{outline:none}.shelf-book:focus-visible .shelf-volume{outline:2px solid var(--accent,#36796e);outline-offset:5px;transform:translateY(-14px) rotateY(-15deg) rotateZ(-2deg)}.shelf-book:active .shelf-volume{transform:translateY(-10px) rotateY(-14deg) scale(1.02)}@media(hover:hover){.shelf-book:hover .shelf-volume{transform:translateY(-17px) rotateY(-17deg) rotateZ(-2deg);filter:drop-shadow(10px 18px 9px #443c353b)}}.shelf-empty{grid-column:1/-1;position:relative;text-align:center;padding:55px 20px 85px;min-height:285px;color:var(--muted)}.shelf-empty>i{font-size:32px;opacity:.4}.shelf-empty h3{font-size:18px;font-weight:400;margin:16px 0 10px}.shelf-empty p{font-size:13px}.shelf-empty::after{top:auto;bottom:12px}.view-mine .filter-row{margin-bottom:4px}@media(max-width:1200px){.view-mine #books{grid-template-columns:repeat(4,minmax(0,1fr));--book-height:215px}}@media(max-width:950px){.view-mine #books{grid-template-columns:repeat(3,minmax(0,1fr));--book-height:210px}}@media(max-width:600px){.view-mine #books{grid-template-columns:repeat(2,minmax(0,1fr));--book-height:195px;padding:24px 0 0;row-gap:22px}.shelf-slot{padding:0 15px}.shelf-title{font-size:12px;margin-top:29px;min-height:62px}.view-mine #personal-tools{gap:12px;flex-wrap:wrap;margin-bottom:22px}.view-mine #personal-tools button{font-size:12px;padding:10px 12px}.shelf-volume{height:90%}.shelf-fallback{width:118px}.shelf-empty{padding-left:10px;padding-right:10px}}

/* Keep stationary cover text crisp; enable perspective only during interaction. */
.view-mine #books{--book-height:300px}.shelf-volume{transform:none;filter:none;transition:transform .55s cubic-bezier(.2,.75,.25,1)}.shelf-volume img{box-shadow:4px 5px 8px #443c3526}.shelf-volume::before{transform:none;left:auto;right:-4px;width:4px;z-index:0}.shelf-volume::after{background:linear-gradient(90deg,#00000012,transparent 3%,#ffffff18 4%,transparent 6%)}
@media(max-width:1200px){.view-mine #books{--book-height:275px}}@media(max-width:950px){.view-mine #books{--book-height:260px}}@media(max-width:600px){.view-mine #books{--book-height:230px}.shelf-slot{padding:0 10px}}

/* Shelf → lifted book → opening cover → book detail. */
.shelf-picked-up{visibility:hidden!important}
dialog.shelf-opening{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;margin:0;border:0;border-radius:0;background:transparent;overflow:hidden;box-shadow:none;outline:none;perspective:1400px;pointer-events:auto}
dialog.shelf-opening::backdrop{background:rgba(34,39,45,.23);animation:shelf-backdrop-in .4s ease both}
@keyframes shelf-backdrop-in{from{background:transparent}to{background:rgba(34,39,45,.23)}}
.book-flight{position:absolute;transform-origin:0 0;perspective:1100px;isolation:isolate;pointer-events:none}
.flight-pages{position:absolute;inset:2px -3px 2px 0;background:linear-gradient(90deg,#d3caba,#fffdf7 9%,#f8f4e9 97%,#d2c8b8);border:1px solid #dcd5c8;border-radius:1px 5px 5px 1px;box-shadow:7px 15px 30px #25242238,inset -3px 0 #e9e1d0,inset -5px 0 #fffaf0;display:flex;flex-direction:column;justify-content:center;padding:12%;gap:12px;color:#514a40;text-align:center}
.flight-page-title{font-family:Georgia,'Songti SC',serif;font-size:15px;line-height:1.8}.flight-page-author{font-size:8px;opacity:.55}.flight-page-rule{width:32%;height:1px;margin:10px auto;background:#c9bea8}
.flight-cover{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d;z-index:2}
.flight-front,.flight-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:1px 3px 3px 1px;overflow:hidden}
.flight-front{background:#faf7ef;transform:translateZ(1px);box-shadow:3px 4px 9px #29251b25}.flight-front img{display:block;width:100%;height:100%;object-fit:fill}.flight-back{transform:rotateY(180deg) translateZ(1px);background:linear-gradient(90deg,#f5eedf 0%,#fffaf0 85%,#d6ccba 100%);border:1px solid #ddd3c0;box-shadow:-8px 12px 25px #25242225}.flight-placeholder{display:grid;place-items:center;width:100%;height:100%;background:#5c7b70;color:#ede7d9;font-size:36px}

/* Compact dimensional covers share the shelf-to-detail transition. */
.book-title-row{perspective:800px}.card-volume{position:relative;display:block;flex:0 0 auto;transform-style:preserve-3d;transform-origin:50% 90%;transition:transform .38s cubic-bezier(.2,.75,.25,1);box-shadow:3px 5px 8px #37362e20}.card-volume .cover{display:block;margin:0;border-radius:1px 2px 2px 1px}.card-volume::before{content:"";position:absolute;top:2%;bottom:1%;right:-4px;width:4px;background:repeating-linear-gradient(#f8f5eb 0 1px,#d9d4c7 1px 2px);border-radius:0 2px 2px 0}.card-volume::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#00000018,transparent 4%,#ffffff35 5%,transparent 9%)}.book:has(.book-open:focus-visible) .card-volume{transform:translateY(-4px) rotateY(-16deg) rotateZ(-2deg)}@media(hover:hover){.book:hover .card-volume{transform:translateY(-4px) rotateY(-16deg) rotateZ(-2deg)}}

/* One continuous paper surface expands into the measured detail bounds. */
#detail.book-transition-preparing{visibility:hidden;pointer-events:none}#detail.book-transition-preparing::backdrop{background:transparent;backdrop-filter:none}
.flight-spread{position:absolute;box-sizing:border-box;background:#fffaf0;border-radius:3px;box-shadow:0 15px 35px #25242230;overflow:hidden;pointer-events:none}.flight-crease{position:absolute;inset:0;background:linear-gradient(90deg,transparent 47%,#ac9a7518 49.5%,#ac9a7540 50%,#ffffff70 51%,transparent 54%)}

.shelf-opening .flight-pages,.shelf-opening .flight-back,.shelf-opening .flight-spread{background:var(--opening-paper,#fff)}.shelf-opening .flight-pages{box-shadow:7px 15px 30px #25242228,inset -2px 0 #00000008;border-color:#0000000a}.shelf-opening .flight-back{border-color:#0000000a}

/* Cover travels directly into its final place while details fade in. */
.book{cursor:pointer}.book-open::after{display:none}dialog.cover-transfer::backdrop{background:transparent;backdrop-filter:none;animation:none}.transferring-cover{position:absolute;display:block;margin:0;object-fit:contain;border-radius:1px 2px 2px 1px;pointer-events:none;box-shadow:3px 5px 8px #37362e15}

#detail.book-transition-active::backdrop{animation:detail-backdrop-arrive .5s linear both}@keyframes detail-backdrop-arrive{from{background:#21193f00;backdrop-filter:blur(0)}to{background:#21193f55;backdrop-filter:blur(3px)}}

.review-dots{display:flex;align-items:center;gap:2px;margin:0 0 4px -6px}.review-dots button{display:grid;place-items:center;width:24px;height:24px;border:0;background:transparent;padding:0;border-radius:50%}.review-dots button span{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.25;transition:opacity .2s,transform .2s}.review-dots button[aria-pressed="true"] span{opacity:.75;transform:scale(1.25)}.review-dots button:hover span{opacity:.65}.detail-review-slides{display:grid}.detail-review-slide{grid-area:1/1;min-width:0}.detail-review-slide[aria-hidden="true"]{visibility:hidden;pointer-events:none}.detail-review-slide p{margin-top:0}.detail-review-slide .book-source{margin-bottom:0}
