:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#303c34;background:#f6f4ed;font-weight:400;-webkit-font-smoothing:antialiased;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #62856e;outline-offset:4px}a{color:inherit;text-decoration:none}button{transition:background .2s,opacity .2s,transform .2s}button:hover:not(:disabled){background:#e8e9df}input{min-width:0}::selection{background:#d5dfce}.home{position:relative;height:100dvh;min-height:690px;overflow:hidden;background:#f6f4ed}.home-header{position:absolute;z-index:4;top:0;width:100%;padding:31px 48px;display:flex;justify-content:space-between;align-items:center}.wordmark{font:600 26px Georgia,serif;letter-spacing:-1px}.wordmark span{color:#879776;margin-left:2px}.header-note{font-size:11px;letter-spacing:2px;color:#7c8176;display:flex;align-items:center;gap:12px}.header-note i,.home-footer i{height:5px;width:5px;border-radius:50%;display:inline-block;background:#7d9275}.hero{position:absolute;z-index:3;left:50%;top:46%;transform:translate(-50%,-50%);width:min(650px,calc(100% - 40px));text-align:center;transition:opacity .7s,transform 1s}.eyebrow{font-size:9px;letter-spacing:2.7px;font-weight:500;color:#8c9183;display:flex;align-items:center;justify-content:center;gap:9px}.eyebrow>span{width:16px;height:1px;background:#94a185}h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(76px,9.2vw,132px);font-weight:400;line-height:1.08;letter-spacing:-8px;margin:24px 0 15px;color:#354739}h1>span{color:#98a284}.hero-subtitle{font-size:17px;letter-spacing:7px;color:#6f796a;margin:0 0 43px;padding-left:7px}.search-form{display:flex;align-items:center;gap:15px;height:76px;border:1px solid #e0e1d5;background:#fffffcf0;border-radius:15px;padding:10px 11px 10px 24px;box-shadow:0 10px 35px #55583a07,0 2px 4px #55583a03;text-align:left;transition:box-shadow .3s,border-color .3s}.search-form:focus-within{border-color:#9fae92;box-shadow:0 12px 40px #626d4510}.search-form svg{width:21px;flex-shrink:0;fill:none;stroke:#919884;stroke-width:1.5}.search-form input{flex:1;width:100%;border:0;outline:none;background:none;color:#354739;font-size:14px;letter-spacing:.3px}.search-form input::placeholder{color:#9ca195}.search-form button{width:52px;height:52px;border-radius:10px;background:#3e5142;color:#fafbf6;font-size:29px;font-family:Arial,sans-serif;font-weight:300;flex-shrink:0}.search-form button:hover:not(:disabled){background:#536c50;transform:translateY(-1px)}.search-hint{display:flex;justify-content:space-between;margin:14px 4px 0;font-size:10px;letter-spacing:.5px;color:#979c90}.search-hint>span{color:#aaada1}.search-hint kbd{font-family:inherit;border:1px solid #dcded3;border-radius:3px;padding:0 4px;margin:0 3px}.suggestions{margin-top:27px;display:flex;justify-content:center;gap:8px;align-items:center;font-size:11px;color:#8d9585}.suggestions>span{margin-right:3px;font-size:10px}.suggestions button{padding:7px 10px;border:1px solid #e1e4d8;border-radius:20px;background:#f7f8f1a6;font-size:10px;color:#798772}.suggestions button span{margin-left:4px;color:#9ca891}.home-footer{position:absolute;bottom:28px;left:48px;right:48px;z-index:3;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1px;color:#939889}.home-footer>span{display:flex;align-items:center;gap:9px}.textbook-source{font-size:8px;font-weight:400;letter-spacing:.4px;color:#b1b5aa;margin-left:5px}.footer-mark{font-size:25px;padding-left:14px;color:#889776}.book-field{position:absolute;inset:0;transition:opacity 1.1s,filter 1.1s;opacity:.72}.floating-book{position:absolute;left:0;top:0;width:156px;height:219px;padding:0;background:none;cursor:pointer;opacity:var(--book-opacity,.7);filter:drop-shadow(5px 13px 11px #34423618);transition:filter .25s,opacity .2s;will-change:transform;transform-origin:center;backface-visibility:hidden}.floating-book:hover:not(:disabled){background:none;filter:drop-shadow(7px 18px 14px #34423624)}.floating-book.focused{opacity:0}.bookshelf-glass{position:absolute;z-index:5;inset:-16px;pointer-events:none;background:#f6f4ed00;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);transition:background var(--bookshelf-duration) ease-in-out,-webkit-backdrop-filter var(--bookshelf-duration) ease-in-out,backdrop-filter var(--bookshelf-duration) ease-in-out}.home.shelf-entering .bookshelf-glass,.home.shelf-bookshelf .bookshelf-glass{background:#f6f4ed61;-webkit-backdrop-filter:blur(11px) saturate(.82);backdrop-filter:blur(11px) saturate(.82)}.home.shelf-entering .book-field,.home.shelf-bookshelf .book-field,.home.shelf-exiting .book-field{z-index:6}.home.shelf-entering .book-field,.home.shelf-bookshelf .book-field:not(.field-muted){opacity:1}.home.shelf-entering .book-field,.home.shelf-exiting .book-field{pointer-events:none}.home.shelf-entering .book-field,.home.shelf-exiting .book-field{transition:opacity var(--bookshelf-duration) ease-in-out,filter 1.1s}.home.shelf-entering .floating-book,.home.shelf-bookshelf .floating-book{opacity:.98}.home.shelf-entering .floating-book,.home.shelf-exiting .floating-book{transition:filter .25s,opacity var(--bookshelf-duration) ease-in-out}.home-leaving .floating-book.focused{opacity:0}.bookshelf-toggle{position:absolute;z-index:7;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #dfe2d7;border-radius:18px;background:#f8f7f1d9;color:#7d8678;font-size:10px;letter-spacing:1px;box-shadow:0 5px 18px #34423608;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bookshelf-toggle span{font-size:13px;line-height:1;color:#7b8f74}.bookshelf-toggle:hover:not(:disabled){background:#eeefe7;transform:translate(-50%) translateY(-1px)}.bookshelf-toggle:disabled{opacity:.68}.book-cover{height:100%;width:100%;position:relative;overflow:hidden;border-radius:3px 6px 6px 3px;background:var(--cover);box-shadow:inset 4px 0 3px #ffffff35,inset 8px 0 8px #26312210,inset -3px 0 #fff5;color:#fafbf2;display:flex;flex-direction:column;isolation:isolate}.book-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,#fff2,transparent 30%,#30382409);border:1px solid #ffffff30;border-radius:inherit;z-index:2;pointer-events:none}.book-cover:after{content:"";position:absolute;left:7px;top:0;bottom:0;width:1px;background:#26352b20}.cover-top{font-size:6px;letter-spacing:1px;margin:15px 13px 0 18px;color:#f8f9edb0;display:flex;flex-direction:column;gap:4px}.cover-top span{font-size:3px;letter-spacing:1.2px}.cover-title{position:relative;z-index:1;font-family:Songti SC,"Noto Serif CJK SC",Georgia,serif;letter-spacing:5px;font-size:27px;margin:18px 10px 0 18px;white-space:nowrap}.cover-title small{display:block;white-space:normal;font-family:inherit;font-size:6px;letter-spacing:1px;margin-top:7px;line-height:1.8}.cover-art{position:absolute;right:-10%;top:49%;width:100%;aspect-ratio:1}.cover-art i{display:block;position:absolute;border:1px solid #f9fae770;border-radius:50%;width:72%;height:72%;transform:rotate(-35deg)}.cover-art i:nth-child(2){left:19%;top:9%;width:57%;height:57%}.cover-art i:nth-child(3){left:43%;top:-7%;width:50%;height:50%;background:#f9fae715}.pattern-1 .cover-art i{border-radius:0;transform:rotate(35deg);height:63%;width:63%}.pattern-2 .cover-art i{border-radius:70% 20% 60% 30%;height:90%;width:48%;transform:rotate(37deg)}.pattern-3 .cover-art i{border-radius:0;border-width:1px 0 0 1px;transform:rotate(-35deg);height:110%;width:45%}.cover-bottom{margin-top:auto;position:relative;font-size:5px;letter-spacing:1px;padding:12px 15px 12px 18px;display:flex;justify-content:space-between}.home-vignette{position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse 37% 45% at 50% 45%,#f6f4ed 12%,#f6f4edf5 53%,#f6f4ed30)}.home-leaving .hero{opacity:0;transform:translate(-50%,-47%)}.field-muted{opacity:.08;filter:blur(3px)}.home-leaving .home-header,.home-leaving .home-footer{opacity:0;transition:opacity .6s}.search-results{position:absolute;top:calc(100% + 16px);left:0;right:0;background:#fffffcfa;border:1px solid #e1e4d8;border-radius:14px;box-shadow:0 16px 50px #34423614;text-align:left;padding:8px 18px;max-height:min(220px,20dvh);overflow:auto}.results-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#838d7c;padding:5px 0 9px}.results-heading button{font-size:20px}.candidate-list>button{border-top:1px solid #eceee5;width:100%;display:flex;align-items:center;gap:12px;padding:13px 3px;text-align:left;font-size:12px}.candidate-list>button>span:nth-child(2){flex:1}.candidate-list small{display:block;color:#8b9482;margin-top:4px}.candidate-subject{font-size:9px;padding:5px 6px;border-radius:4px;background:#edf0e6;color:#76866d}.search-results>p{font-size:12px;line-height:1.9;color:#89927e;margin:10px 0 18px}.transition-book{position:fixed;z-index:20;background:#fdfcf7;box-shadow:0 25px 100px #293c2c20;perspective:1200px;pointer-events:none}.transition-cover{position:absolute;inset:0;transform-origin:left;animation:open-cover var(--transition-duration,1.05s) cubic-bezier(.3,0,.2,1) forwards;backface-visibility:hidden}.transition-cover .book-cover{border-radius:inherit}.transition-cover .cover-title{font-size:clamp(27px,4vw,44px)}.transition-paper{position:absolute;inset:0;overflow:hidden;border-radius:inherit;background:linear-gradient(90deg,#e8e8dc,#fdfcf7 5% 97%,#e4e4d8);display:flex;flex-direction:column;padding:20%;gap:12px}.transition-paper span{height:1px;background:#dfe3d5;width:80%}.transition-paper span:nth-child(2){width:100%}.transition-paper span:nth-child(3){width:50%}.subject-view{position:fixed;z-index:10;inset:0;overflow:auto;background:#f6f4ed;color:#354739;padding:0 max(28px,calc((100vw - 1240px)/2)) 72px}.subject-header{height:112px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #dfe2d7;margin-bottom:44px}.subject-header button{justify-self:start;display:flex;gap:9px;align-items:center;padding:9px 12px;border-radius:7px;font-size:12px;color:#73806f}.subject-header h2{margin:0;font:400 25px/1.2 Songti SC,"Noto Serif CJK SC",Georgia,serif;letter-spacing:5px;color:#354739}.subject-header small{justify-self:end;color:#9aa092;font-size:10px;letter-spacing:1px}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:44px 34px;align-items:start}.subject-book{min-width:0;padding:0 4px;background:none;text-align:center;border-radius:8px}.subject-book:hover:not(:disabled){background:none}.subject-cover{display:block;position:relative;width:min(100%,154px);aspect-ratio:5/7;margin:0 auto 17px;border-radius:3px 7px 7px 3px;overflow:hidden;background:#e6e8dd;box-shadow:0 11px 25px #34423618,2px 2px 1px #fff inset;transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s}.subject-cover:after{content:"";position:absolute;z-index:2;inset:0;border-radius:inherit;box-shadow:inset 6px 0 8px #26312212,inset -2px 0 #fff5;pointer-events:none}.subject-cover img{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover}.cover-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font:400 24px Songti SC,"Noto Serif CJK SC",Georgia,serif;letter-spacing:4px;color:#72806f;background:linear-gradient(145deg,#edf0e6,#d9dfd2)}.cover-fallback i{display:block;width:28px;height:1px;background:#96a28e}.cover-fallback small{font:500 6px Inter,sans-serif;letter-spacing:2px;color:#98a291}.subject-book-name{display:block;color:#697466;transition:color .25s}.subject-book-name strong,.subject-book-name small{display:block;overflow:hidden;text-overflow:ellipsis}.subject-book-name strong{font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.subject-book-name small{font-size:10px;line-height:1.7;color:#92998d;white-space:nowrap;margin-top:2px}@media(hover:hover){.subject-book:hover .subject-cover{transform:translateY(-6px) scale(1.025);box-shadow:0 17px 32px #34423622,2px 2px 1px #fff inset}.subject-book:hover .subject-book-name{color:#354739}}@keyframes open-cover{0%,38%{transform:rotateY(0);opacity:1}64%{transform:rotateY(-150deg);opacity:0}to{transform:rotateY(-150deg);opacity:0}}.reader{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;background:#f4f3ed;opacity:0;transition:opacity .55s}.reader-ready{opacity:1}.reader-header{height:78px;display:flex;align-items:center;gap:26px;padding:0 30px;border-bottom:1px solid #e0e3d9;background:#fafaf5;flex-shrink:0}.back{display:flex;align-items:center;gap:12px;font-size:20px;padding:8px;border-radius:5px}.back span{font:500 25px Georgia,serif;letter-spacing:-1px}.reader-title{border-left:1px solid #dfe3d5;padding-left:26px;flex:1;min-width:0}.reader-title span{display:block;font-size:9px;color:#929a89;letter-spacing:1px;margin-bottom:6px}.reader-title strong{font-size:13px;font-weight:500;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.download{border:1px solid #d5ddce;border-radius:7px;padding:9px 13px;font-size:11px}.reader-toolbar{display:flex;align-items:center;justify-content:space-between;padding:9px 30px;background:#fafaf5;border-bottom:1px solid #e1e4da;gap:8px;flex-shrink:0;font-size:12px;height:52px}.reader-toolbar button{padding:6px 10px;border-radius:5px}.page-controls,.zoom-controls{display:flex;align-items:center;gap:5px}.page-controls form{display:flex;align-items:center;gap:8px;color:#89907f}.page-controls input{width:68px;text-align:center;padding:4px;border:1px solid #dce1d3;border-radius:4px;background:#fff;color:#475641;-moz-appearance:textfield}.page-controls input::-webkit-inner-spin-button{appearance:none}.reader-body{display:flex;flex:1;min-height:0}.thumbnails{width:178px;flex-shrink:0;overflow:auto;padding:17px 16px 30px;border-right:1px solid #dce1d5;background:#f0f1e8;scrollbar-width:thin}.thumbnails>p{display:flex;justify-content:space-between;font-size:10px;color:#8f9884;margin:0 8px 16px;letter-spacing:1px}.thumbnail{display:block;padding:8px 9px;margin:0 auto 11px;border:1px solid transparent;border-radius:7px}.thumbnail>div{width:112px;background:#fff;box-shadow:0 2px 6px #3442360d}.thumbnail>span{display:block;font-size:9px;color:#96a08b;margin-top:8px;white-space:nowrap}.thumbnail.active{border-color:#93a384;background:#e1e8d7}.thumbnail.active>span{color:#41573b;font-weight:600}.pages{flex:1;min-width:0;overflow:auto;padding:24px 32px 40px;scrollbar-width:thin;overflow-anchor:none}.pdf-sheet{position:relative;margin:0 auto 28px;flex-shrink:0;background:#fff;box-shadow:0 3px 15px #263b2610}.page-render{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.page-render canvas{display:block;max-width:100%;max-height:100%;object-fit:contain}.page-loading{position:absolute;color:#9aa28f;font-size:11px;letter-spacing:1px}.page-error{position:absolute;background:#fff9ef;padding:15px;border-radius:6px;font-size:12px}.page-error button{display:block;margin:8px auto 0}.reading-end{text-align:center;color:#959e8a;font-size:11px;padding:20px}.reader-notice{background:#e8eddf;display:flex;justify-content:center;gap:20px;align-items:center;font-size:12px;padding:6px}.reader-notice button{text-decoration:underline}.download-status{width:min(520px,80vw);display:flex;align-items:center;gap:14px;font-variant-numeric:tabular-nums}.download-status>span{white-space:nowrap}.download-status>i{height:3px;flex:1;background:#d5ddcc;border-radius:3px;overflow:hidden}.download-status b{display:block;height:100%;background:#718668;transition:width .15s}.preparing-overlay{position:absolute;inset:130px 0 0;z-index:5;background:#f4f3edf0;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px}.preparing-overlay h2{font-family:Songti SC,Georgia,serif;font-size:23px;font-weight:400;letter-spacing:2px;margin:5px 0 10px}.preparing-overlay p{font-size:11px;color:#8e9784}.preparing-overlay .loading-book{margin-bottom:25px}.loading-stage{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px}.loading-stage h2{font-family:Songti SC,Georgia,serif;font-weight:400;font-size:25px;letter-spacing:3px;margin:18px 0}.loading-stage>p:not(.eyebrow){font-size:12px;color:#89917f;text-align:center;line-height:1.7}.loading-stage small{color:#a6ad9c;font-size:10px;margin-top:28px;letter-spacing:1px}.progress-track{height:3px;background:#e0e5d7;width:min(310px,90%);margin-top:28px;overflow:hidden;border-radius:3px}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#718668,#9aaa8b);transition:width .2s ease-out}.progress-label{width:min(310px,90%);display:flex;justify-content:space-between;font-size:10px;color:#8b967f;margin-top:12px;font-variant-numeric:tabular-nums}.progress-label b{font-weight:600;color:#627357}.loading-book{width:57px;height:70px;position:relative;margin-bottom:35px;border:1px solid #b7c2a8;border-radius:2px 5px 5px 2px;transform:rotate(-6deg);background:#e5eadc}.loading-book:before{content:"";position:absolute;top:0;bottom:0;left:6px;border-left:1px solid #bbc6ab}.loading-book span{position:absolute;height:1px;width:23px;top:25px;left:18px;background:#b0bd9d}.loading-book span:nth-child(2){top:31px}.loading-book span:nth-child(3){top:37px;width:14px}.preparing-overlay .loading-book,.loading-stage .loading-book{animation:loading-book 1.8s ease-in-out infinite}@keyframes loading-book{50%{transform:rotate(-3deg) translateY(-4px);box-shadow:0 8px 18px #52624812}}.primary{background:#465c40;color:#fff;padding:11px 23px;border-radius:6px;margin-top:15px}.catalog-loading{font-size:11px;color:#919a86}@media(min-width:1600px){.floating-book{width:185px;height:260px}.cover-title{font-size:32px}.hero{width:700px}}@media(max-width:760px){.home{min-height:620px}.home-header{padding:24px}.header-note{font-size:9px;letter-spacing:1px}.hero{top:44%}.hero .eyebrow{font-size:7px;letter-spacing:1.5px}h1{letter-spacing:-5px;margin-top:22px}.hero-subtitle{font-size:14px;letter-spacing:5px;margin-bottom:34px}.search-form{height:66px;padding-left:16px;gap:10px;border-radius:12px}.search-form input{font-size:11px}.search-form button{width:43px;height:43px}.search-hint{font-size:9px}.search-hint>span{display:none}.suggestions{gap:5px;margin-top:23px}.suggestions button{font-size:9px;padding:7px 8px}.home-footer{left:24px;right:24px;font-size:9px;bottom:23px}.textbook-source{font-size:7px;margin-left:1px}.home-footer>span:nth-child(2){font-size:0}.footer-mark{font-size:23px}.floating-book{width:126px;height:177px;opacity:.7}.floating-book:nth-child(7),.floating-book:nth-child(8){opacity:.2}.bookshelf-toggle{bottom:16px;padding:7px 10px}.home-vignette{background:radial-gradient(ellipse 59% 40% at 50% 43%,#f6f4ed 12%,#f6f4edf0 64%,#f6f4ed20)}.cover-title{font-size:22px}.cover-top{font-size:5px;margin-top:12px}.reader-header{height:70px;padding:0 12px;gap:10px}.back{padding:4px;gap:5px}.back span{font-size:19px}.reader-title{padding-left:12px}.reader-title strong{font-size:11px}.reader-title span{font-size:8px}.download{font-size:10px;padding:8px}.reader-toolbar{padding:8px}.reader-toolbar>button>span{display:none}.reader-toolbar button{padding:6px 8px}.thumbnails{width:140px;padding:12px 4px}.pages{padding:18px 16px 30px}.search-results{max-height:min(220px,20dvh)}.candidate-list>button{font-size:11px}.subject-view{padding:0 20px 52px}.subject-header{height:86px;margin-bottom:30px;grid-template-columns:1fr auto 1fr}.subject-header button{padding:8px 5px}.subject-header button span{display:none}.subject-header h2{font-size:22px;letter-spacing:4px}.subject-header small{font-size:9px}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:34px 18px}.subject-cover{margin-bottom:13px}.subject-book-name strong{font-size:11px}.subject-book-name small{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.transition-cover{opacity:0}}
