@charset "UTF-8";
:root{--desk:#bbb5a8;--paper:#f4efdf;--ink:#303f36;--muted:#75786b;--accent:#536956;--line:#c9c6b5;--cover:#425346;--serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",sans-serif;--page-height:624px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--desk);color:var(--ink);font-family:var(--sans);transition:background-color .48s,color .48s;overflow-x:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:default;opacity:.3}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #a2633f;outline-offset:5px}button{touch-action:manipulation}button:active:not(:disabled){translate:0 1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-60px;left:20px;background:var(--paper);padding:12px;z-index:1000}.skip:focus{top:12px}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url%28%23n%29' opacity='.25' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.desk-light{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 75% 24%,#fff6cd70 0%,#f6e4bd28 43%,#292d2115 100%);transition:opacity .5s}.desk-header{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:29px 46px}.wordmark{text-decoration:none;display:flex;align-items:center;gap:13px;font-size:12px;letter-spacing:1.6px}.brand-mark{font:italic 34px Georgia,serif;letter-spacing:-5px;margin-right:7px}.wordmark small{display:block;font:8px Georgia,serif;letter-spacing:2px;margin-top:7px}.menu-button{display:flex;align-items:center;gap:12px;font-size:13px;padding:12px}.menu-lines{display:block;width:19px;height:12px;border-top:1px solid;border-bottom:1px solid;position:relative}.menu-lines:after{content:"";position:absolute;top:5px;left:0;width:12px;border-top:1px solid}
.lamp{position:absolute;right:max(30px,calc((100vw - 1300px)/2));top:86px;width:175px;height:210px;z-index:2;padding:0;filter:drop-shadow(8px 15px 9px #2f33242a);transition:filter .5s;transform:rotate(7deg);transform-origin:center bottom}.lamp svg{display:block;width:100%;height:100%;overflow:visible}.lamp:hover .lamp-caption,.lamp:focus-visible .lamp-caption{opacity:1;transform:translateY(0)}.lamp-caption{position:absolute;bottom:5px;left:-140px;background:var(--paper);padding:10px 14px;text-align:left;white-space:nowrap;font-size:12px;box-shadow:0 4px 20px #0001;opacity:0;transform:translateY(4px);transition:.2s;pointer-events:none}.lamp-caption small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.lamp-bulb{transition:fill .5s}
.reading-room{position:relative;z-index:2;max-width:1080px;margin:55px auto 0;padding:0 16px}.book-surround{position:relative;margin:0 auto;isolation:isolate}.book-underlay{position:absolute;inset:1px -8px -14px;border-radius:6px 10px 7px 7px;background:var(--cover);box-shadow:0 30px 45px -12px #242a2355,0 5px 9px #262d3440;transform:rotate(-.25deg);z-index:-2}.book-underlay:before,.book-underlay:after{content:"";position:absolute;top:10px;bottom:4px;width:49.5%;background:repeating-linear-gradient(0deg,#cec9b8 0px,#cec9b8 1px,#eee8d8 1px,#eee8d8 3px);border-radius:0 0 5px 5px}.book-underlay:before{left:4px;transform:skewY(.5deg)}.book-underlay:after{right:4px;transform:skewY(-.5deg)}.book{position:relative;height:var(--page-height);perspective:1800px;touch-action:pan-y}.spread{position:relative;display:grid;grid-template-columns:1fr 1fr;height:100%;isolation:isolate}.book-paper{position:relative;min-width:0;height:var(--page-height);padding:36px 46px 36px;display:flex;flex-direction:column;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url%28%23n%29' opacity='.045' d='M0 0h120v120H0z'/%3E%3C/svg%3E");transition:background-color .45s;color:var(--ink)}.book-paper.left{border-radius:3px 0 0 6px;box-shadow:inset -28px 0 30px -28px #55574444}.book-paper.right{border-radius:0 5px 7px 0;box-shadow:inset 28px 0 25px -28px #414a3750}.spine{position:absolute;left:calc(50% - 9px);width:18px;top:0;bottom:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,#33372910 30%,#232a3128 48%,#fff4 51%,transparent)}.ribbon{position:absolute;right:41px;bottom:-37px;width:20px;height:55px;background:#966b4f;clip-path:polygon(0 0,100% 0,100% 100%,50% 84%,0 100%);z-index:-1;box-shadow:1px 2px 4px #0005}.page-top{font-size:10px;line-height:1.4;letter-spacing:1.5px;display:flex;justify-content:space-between;gap:10px;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:25px}.page-top span:last-child{font:10px Georgia,serif;letter-spacing:.8px}.page-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;color:var(--muted);padding-top:14px}.page-foot em{font:12px Georgia,serif;letter-spacing:1px;font-style:normal}.eyebrow{font-size:10px;letter-spacing:2px;line-height:1.7;color:var(--muted)}.lesson-title{font-family:var(--serif);font-size:34px;line-height:1.45;letter-spacing:1px;font-weight:500;margin:7px 0 12px;text-wrap:balance}.lesson-summary{font-family:var(--serif);font-size:19px;line-height:1.65;margin:0 0 15px}.lesson-body{font-size:14px;line-height:1.95;margin:0 0 17px;text-wrap:pretty}.takeaway{border-left:2px solid #78846a;padding:1px 0 1px 13px;font-size:12px;line-height:1.85;margin:0 0 20px;color:var(--accent)}.takeaway span{display:block;font-size:9px;letter-spacing:1.5px;margin-bottom:3px}.film-example{border-top:1px solid var(--line);padding-top:15px;font-size:12px;line-height:1.8;margin-top:auto}.film-example .film-name{display:block;font-size:11px;letter-spacing:.5px;margin:4px 0}.film-example .film-year{font-family:Georgia,serif;color:var(--muted);margin-left:7px}.film-example p{margin:4px 0 0;color:var(--muted)}.diagram-heading{display:flex;justify-content:space-between;align-items:center;margin:3px 0 10px;font-family:var(--serif);font-size:20px;font-weight:500}.diagram-heading small{font-family:var(--sans);font-size:9px;letter-spacing:1px;color:var(--muted)}.diagram-wrap{width:100%;aspect-ratio:460/328;min-height:0;position:relative;margin:0 0 9px;flex-shrink:1}.diagram-wrap>svg{width:100%;height:100%;display:block}.diagram-controls{display:flex;gap:6px;align-self:center;max-width:100%;border:1px solid var(--line);padding:3px;border-radius:3px}.diagram-controls button{font-size:11px;padding:7px 14px;border-radius:1px;transition:background .18s,color .18s}.diagram-controls button[aria-pressed=true]{background:var(--accent);color:var(--paper)}.diagram-description{font-size:12px;line-height:1.8;min-height:44px;color:var(--muted);text-align:center;margin:12px 0 17px}.exercise{display:flex;gap:12px;align-items:flex-start;border-top:1px solid var(--line);padding-top:13px;margin-top:auto}.exercise .pencil{font-size:22px;font-family:Georgia,serif}.exercise strong{font-size:10px;font-weight:500;letter-spacing:1px;display:block;margin-bottom:5px}.exercise p{font-size:12px;line-height:1.8;margin:0}.page-corner{position:absolute;bottom:0;width:46px;height:46px;z-index:8;opacity:.55;touch-action:none}.corner-next{right:0;background:linear-gradient(135deg,transparent 52%,#00000005 52%,#aca99440 95%);border-radius:0 0 7px 0}.corner-prev{left:0;background:linear-gradient(225deg,transparent 52%,#00000005 52%,#aca99440 95%);border-radius:0 0 0 7px}.page-corner:hover{opacity:1}.page-corner:disabled{opacity:0}.turn-layer{position:absolute;inset:0;pointer-events:none;z-index:7;transform-style:preserve-3d}.sheet-strip{position:absolute;left:50%;top:0;height:100%;transform-origin:0 50%;transform-style:preserve-3d;will-change:transform}.sheet-face{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;background:var(--paper)}.sheet-face.back{transform:rotateY(180deg)}.sheet-face>.book-paper{position:absolute;top:0;transition:none;border-radius:0;box-shadow:none;background-image:none}.sheet-shade{position:absolute;inset:0;pointer-events:none;background:#33392c;backface-visibility:hidden}.sheet-face:after{content:"";position:absolute;inset:0;pointer-events:none;background:#293122;opacity:var(--shade,0)}.book.is-turning .page-corner{pointer-events:none}.book.is-turning .spine{opacity:.35}.book.is-turning .spread{pointer-events:none}
.cover-page .page-top{margin-bottom:40px}.cover-title{font-family:var(--serif);font-size:76px;line-height:1.35;font-weight:500;letter-spacing:10px;margin:0 0 19px}.cover-subtitle{font-family:var(--serif);font-size:22px;letter-spacing:3px;margin:0}.cover-caption{font-size:11px;color:var(--muted);letter-spacing:2px;line-height:2.2;margin-top:26px}.cover-edition{display:flex;gap:11px;align-items:center;margin-top:auto;margin-bottom:14px}.edition-line{height:1px;width:32px;background:var(--muted)}.cover-edition span:last-child{font:9px Georgia,serif;letter-spacing:2px}.intro-page .diagram-wrap{margin-top:14px}.intro-title{font-family:var(--serif);font-size:25px;line-height:1.6;font-weight:500;margin:4px 0 4px}.intro-note{font-size:12px;line-height:1.9;color:var(--muted);text-align:center;margin:14px 0}.intro-quote{font-family:var(--serif);font-size:15px;text-align:center;margin:8px 0 13px;line-height:1.8}.intro-page .page-top{margin-bottom:22px}.reading-nav{display:flex;justify-content:space-between;align-items:center;padding:32px 22px 0;gap:18px}.nav-arrow{display:flex;align-items:center;gap:13px;font-size:11px;padding:9px 5px;min-width:90px}.nav-arrow span[aria-hidden]{font:24px Georgia,serif}.nav-arrow:hover:not(:disabled){color:#836044}.page-location{text-align:center;display:flex;flex-direction:column;gap:7px}.page-location span:first-child{font-size:11px;letter-spacing:1px}.page-location span:last-child{font:10px Georgia,var(--sans);color:var(--muted);letter-spacing:1px}.gesture-hint{text-align:center;font-size:10px;color:#5c6359;letter-spacing:.7px;margin:14px 0 0}.gesture-hint span{padding:0 8px}.desk-footer{display:flex;justify-content:space-between;gap:20px;padding:26px 46px 24px;color:#62675c;position:relative;font-size:9px;letter-spacing:1.7px}.desk-footer i{font-style:normal;padding:0 10px}.desk-footer button{font-size:10px;letter-spacing:1px}
dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);box-shadow:0 24px 100px #0003;max-height:85vh;max-height:85dvh;padding:32px;overscroll-behavior:contain}dialog::backdrop{background:#1d251c66;backdrop-filter:blur(4px)}dialog h2{font-family:var(--serif);font-weight:500;font-size:29px;line-height:1.55;margin:10px 0 15px}dialog p{font-size:14px;line-height:1.9}dialog button{font-size:12px}dialog .close{font:28px Georgia,serif;padding:0 8px;position:absolute;top:12px;right:12px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;position:relative;padding-right:25px}.dialog-heading .close{top:-12px;right:-18px}.small-dialog{width:min(480px,calc(100% - 32px));padding:38px}.small-dialog .muted{font-size:12px;color:var(--muted)}.dialog-actions{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}.dialog-actions button{border:1px solid var(--line);padding:11px 15px}.dialog-actions .solid{color:var(--paper);background:var(--accent);border-color:var(--accent)}.contents-dialog{width:min(720px,calc(100% - 24px));padding:35px 40px}.search-label span{display:block;font-size:10px;color:var(--muted);margin:3px 0 8px;letter-spacing:1px}.search-label input{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:10px 0;color:var(--ink);font-size:13px}.toc-chapter{margin:24px 0}.toc-chapter h3{font-size:12px;letter-spacing:1px;font-weight:500;border-bottom:1px solid var(--line);padding-bottom:10px;margin:0 0 6px}.toc-row{display:flex;gap:14px;text-align:left;width:100%;padding:9px 7px;line-height:1.6;transition:background .2s}.toc-row:hover,.toc-row.current{background:#7b8c6715}.toc-row .toc-num{font:11px Georgia,serif;min-width:22px;color:var(--muted);padding-top:3px}.toc-row .toc-title{flex:1}.toc-row .toc-arrow{color:var(--muted)}.menu-lamp{border-top:1px solid var(--line);width:100%;text-align:left;padding:20px 0 0;margin-top:10px;display:flex;gap:15px;align-items:center}.menu-lamp small{color:var(--muted);font-size:10px}.no-results{color:var(--muted);padding:30px 0;font-size:13px}.about-dialog h3{font-size:12px;margin-top:25px}.about-dialog #sources{font-size:11px;line-height:1.8;display:grid;gap:7px}.colophon{font-size:10px!important;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.review-toolbar{position:fixed;bottom:10px;left:14px;z-index:30;display:flex;align-items:center;gap:4px;background:#f8f4eaf2;border:1px solid #c4c3b4;box-shadow:0 2px 12px #0001;padding:7px 9px;color:#34453b;font-size:10px;border-radius:3px}.review-toolbar strong{font-weight:500;padding:0 8px 0 3px}.review-toolbar button{font-size:10px;padding:6px 9px;border:1px solid transparent}.review-toolbar button.active{border-color:#a9b2a1;background:#dce3d3}.review-toolbar .review-hint{font-size:9px;color:#626f60;margin-left:5px}#toast{position:fixed;bottom:72px;left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;max-width:min(500px,90vw);background:var(--ink);color:var(--paper);padding:12px 20px;font-size:12px;line-height:1.6;z-index:60;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.no-script{position:fixed;inset:40% 20%;padding:30px;background:var(--paper);z-index:90}
body.night{--desk:#252b27;--paper:#343c34;--ink:#e2dfca;--muted:#afb4a1;--accent:#c7cca8;--line:#56604f;--cover:#1a261f;color-scheme:dark}body.night .desk-light{opacity:.06}body.night .lamp-bulb{fill:#9d9b78}body.night .lamp{filter:drop-shadow(5px 8px 12px #0005);opacity:.78}body.night .book-underlay:before,body.night .book-underlay:after{background:repeating-linear-gradient(0deg,#252e25 0px,#252e25 1px,#59604b 1px,#59604b 3px)}body.night .gesture-hint,body.night .desk-footer{color:#a4ac98}body.night .wordmark,body.night .menu-button{color:#c3c9b3}body.night .page-corner{filter:brightness(1.8)}body.night .takeaway{color:#c1caac}body.night .sheet-face:after{background:#000}
@media(min-width:1500px) and (min-height:950px){:root{--page-height:680px}.reading-room{max-width:1160px;margin-top:68px}.book-paper{padding:42px 53px}.lesson-title{font-size:39px}.lesson-body{font-size:15px}.film-example{font-size:13px}.diagram-description,.exercise p{font-size:13px}.lamp{top:100px;width:205px;height:240px}.cover-title{font-size:86px}}
@media(max-height:820px) and (min-width:901px){:root{--page-height:565px}.desk-header{padding:20px 36px}.reading-room{max-width:1000px;margin-top:32px}.book-paper{padding:28px 37px}.page-top{margin-bottom:17px}.lesson-title{font-size:29px;margin-bottom:10px}.lesson-summary{font-size:17px;margin-bottom:10px}.lesson-body{font-size:13px;line-height:1.8;margin-bottom:13px}.takeaway{margin-bottom:14px;font-size:11px}.film-example{padding-top:11px;font-size:11px}.diagram-wrap{max-height:250px}.diagram-description{margin:8px 0 12px;min-height:40px}.cover-title{font-size:65px}.cover-page .page-top{margin-bottom:30px}.cover-caption{margin-top:20px}.reading-nav{padding-top:25px}.desk-footer{padding-top:17px}.lamp{top:67px;width:145px;height:175px}.gesture-hint{margin-top:5px}}
@media(max-width:1150px) and (min-width:901px){.reading-room{margin-left:30px;margin-right:30px;margin-top:60px}.lamp{top:55px;right:28px;width:135px;height:165px}.book-paper{padding-left:33px;padding-right:33px}}
@media(max-width:900px){:root{--page-height:590px}.desk-header{padding:22px 25px}.reading-room{margin:70px auto 0;max-width:740px;padding:0 22px}.book-paper{padding:30px 26px}.lesson-title{font-size:28px}.lesson-summary{font-size:16px}.lesson-body{font-size:13px;line-height:1.85}.page-top{font-size:8px;letter-spacing:.5px;margin-bottom:18px}.page-top span:last-child{font-size:8px}.film-example{font-size:11px}.diagram-description,.exercise p{font-size:11px}.diagram-controls button{padding:7px 8px;font-size:10px}.lamp{top:56px;width:130px;height:156px;right:27px}.cover-title{font-size:60px;letter-spacing:6px}.cover-subtitle{font-size:19px}.intro-title{font-size:23px}.diagram-heading{font-size:18px}.desk-footer{padding:25px;font-size:8px}.diagram-wrap{margin-top:12px;margin-bottom:20px}.intro-page .diagram-wrap{margin-top:30px}.intro-note{font-size:11px}.lamp-caption{display:none}}
@media(max-width:620px){:root{--page-height:auto}.desk-header{padding:20px}.wordmark{font-size:10px}.wordmark small{font-size:6px;letter-spacing:1.5px}.brand-mark{font-size:29px}.menu-button{font-size:11px}.reading-room{margin-top:64px;padding:0 20px;max-width:460px}.lamp{right:19px;top:53px;width:103px;height:123px}.book{height:auto;perspective:none;touch-action:pan-y}.spread{grid-template-columns:1fr}.book-paper{padding:28px 29px 24px;height:auto;min-height:550px}.book-paper.left{border-radius:4px 4px 0 0;box-shadow:inset 0 -10px 15px -15px #3335}.book-paper.right{border-top:1px solid var(--line);border-radius:0 0 4px 4px;min-height:550px;box-shadow:inset 0 14px 18px -22px #3339}.spine{display:none}.page-top{font-size:9px;margin-bottom:23px}.lesson-title{font-size:32px}.lesson-summary{font-size:19px}.lesson-body{font-size:14px;line-height:1.95;margin-bottom:20px}.takeaway{font-size:12px;margin-bottom:22px}.film-example{font-size:12px;margin-top:auto}.page-foot{margin-top:24px}.diagram-heading{font-size:22px}.diagram-wrap{margin:5px 0 15px}.diagram-description,.exercise p{font-size:12px}.diagram-controls button{font-size:11px;padding:9px 13px}.cover-page{min-height:550px}.cover-title{font-size:74px}.cover-subtitle{font-size:23px}.cover-caption{font-size:11px;margin-top:25px}.intro-page{min-height:530px}.intro-title{font-size:25px}.intro-page .diagram-wrap{margin-top:12px}.intro-note{font-size:12px}.intro-quote{font-size:15px}.reading-nav{padding:29px 0 0;gap:5px}.nav-arrow{min-width:70px;font-size:10px;gap:8px}.page-location span:first-child{font-size:9px;letter-spacing:0}.page-location span:last-child{font-size:9px}.gesture-hint{font-size:9px;margin-top:14px}.desk-footer{padding:26px 20px 70px;letter-spacing:1px}.desk-footer i{padding:0 4px}.contents-dialog{padding:27px 22px}.small-dialog{padding:32px 27px}dialog h2{font-size:25px}.review-toolbar{bottom:8px;left:8px;right:8px;justify-content:center;padding:5px 4px}.review-toolbar .review-hint{display:none}.review-toolbar strong{font-size:9px}.page-corner{width:50px;height:50px}.turn-layer{display:none}.book-underlay{inset:1px -5px -9px}.menu-lamp{flex-wrap:wrap;gap:7px}.toc-row{font-size:12px}.lamp .lamp-caption{display:none}}
.skip{clip-path:inset(100%)}.skip:focus{clip-path:none}.evidence-button{font-size:9px;padding:0;text-align:left}.evidence-button:hover{text-decoration:underline}.lesson-sources a{font-size:12px;line-height:1.7}.book-paper .film-example{flex-shrink:0}
.quiz-dialog fieldset{border:0;border-top:1px solid var(--line);padding:20px 0 16px;margin:20px 0}.quiz-dialog legend{font-family:var(--serif);font-size:17px;line-height:1.7;padding:0 12px 0 0}.quiz-intro{font-size:12px;color:var(--muted)}.quiz-choice,.practice-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.8;padding:7px 0;cursor:pointer}.quiz-choice input,.practice-check input{accent-color:#5e7459;margin-top:5px;flex-shrink:0}.quiz-feedback{font-size:12px;background:#a5744514;padding:12px 15px;margin-bottom:0}.quiz-feedback.correct{background:#718b6318}.quiz-submit{background:var(--accent);color:var(--paper);padding:12px 20px}.quiz-score{font-size:12px!important}.practical{border-top:1px solid var(--line);padding-top:22px;margin-top:25px}.practical>p{font-size:13px;line-height:1.9}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.turn-layer{display:none}}
