:root{--paper:#f8f5ec;--ink:#223a30;--muted:#697569;--rule:#d4d9ce;--accent:#a34b33;font-family:system-ui,-apple-system,'Microsoft YaHei',sans-serif;color:var(--ink);background:#e5e8df;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}
.site-masthead{max-width:1500px;margin:auto;padding:23px 42px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-family:'Songti SC',SimSun,serif;font-size:27px;letter-spacing:2px;white-space:nowrap}.brand span{font-family:system-ui,sans-serif;font-size:14px;letter-spacing:0;margin-left:10px}.edition{font-size:12px;letter-spacing:2px;color:var(--muted)}.site-masthead nav{display:flex;gap:25px;align-items:center;font-size:14px}.site-masthead nav button{padding:10px 0}
main{max-width:1440px;margin:0 auto;padding:8px 42px 28px}.book-heading{display:flex;justify-content:space-between;align-items:center;margin:6px 0 17px;font-size:11px;letter-spacing:2px;color:var(--muted)}.book-heading p{margin:0}.book-heading span{letter-spacing:1px}.book{background:var(--paper);box-shadow:0 18px 50px #26392d0d,0 2px 0 #c5ccbd,0 6px 0 #f4f2e8,0 8px 0 #cbd2c3;position:relative}
.chapter-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--rule);overflow:auto;scrollbar-width:thin}.chapter-tabs button{padding:19px 13px;min-height:55px;font-size:13px;flex:1;position:relative;color:var(--muted);white-space:nowrap}.chapter-tabs button small{font:11px Georgia,serif;margin-right:9px}.chapter-tabs button[aria-current=page]{color:var(--accent)}.chapter-tabs button[aria-current=page]:after{content:'';position:absolute;bottom:0;left:13px;right:13px;height:2px;background:var(--accent)}
.lesson-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 36px;border-bottom:1px solid var(--rule)}.lesson-track,.lesson-actions{display:flex;align-items:center;gap:16px}.lesson-track{min-width:0}#lesson-phase{font-size:12px;min-width:48px;color:var(--accent)}#lesson-dots{display:flex;gap:1px}#lesson-dots button{width:24px;height:32px;padding:7px}#lesson-dots span{display:block;width:6px;height:6px;border-radius:50%;background:#ccd1c5;transition:background .3s,transform .3s}#lesson-dots [aria-current] span{background:var(--accent);transform:scale(1.5)}#lesson-count{font:11px Georgia,serif;letter-spacing:1px;white-space:nowrap;color:var(--muted)}#lesson-prev{font-size:20px;min-width:38px;min-height:38px}#lesson-next{font-size:13px;min-height:38px;padding:9px 15px;background:var(--ink);color:var(--paper);min-width:122px}#lesson-next span{margin-left:16px}
.spread{display:grid;grid-template-columns:44% 56%;position:relative;isolation:isolate;overflow:hidden}.text-page{padding:35px 40px 24px;min-width:0;display:flex;flex-direction:column}#copy{min-height:530px;will-change:opacity,transform}.page-kicker{font-size:11px;letter-spacing:2px;color:var(--accent);margin:0 0 24px}h1{font-family:'Songti SC',SimSun,'Noto Serif SC',serif;font-size:clamp(30px,3.1vw,43px);line-height:1.45;font-weight:500;letter-spacing:1px;margin:0 0 22px}.page-intro{font-size:16px;line-height:1.95;margin:0 0 24px}.knowledge{border-top:1px solid var(--rule);padding-top:8px}.knowledge p{font-size:14px;line-height:1.95;margin:12px 0;color:#526154}.question{margin-top:23px;border-top:1px solid var(--rule);padding-top:17px}.question summary{cursor:pointer;list-style:none;display:flex;gap:12px;align-items:baseline}.question summary:after{content:'＋';margin-left:auto;color:var(--accent)}.question[open] summary:after{content:'−'}.question summary span{font-size:11px;color:var(--accent);white-space:nowrap}.question summary strong{font-size:14px;line-height:1.7;font-weight:500}.question p{font-size:13px;line-height:1.95;color:var(--muted)}.reading-sources{font-size:11px;color:var(--muted);margin:19px 0 12px;line-height:1.8}.reading-sources summary{cursor:pointer}.reading-sources a{display:block;margin-top:8px;text-decoration:underline;text-underline-offset:3px}.page-folio{margin:20px 0 0;padding-top:18px;display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:1px;flex-grow:1;align-items:flex-end}.page-folio span:last-child{font:15px Georgia,serif}
.visual-page{min-width:0;padding:29px 28px 20px;border-left:1px solid #d4d8cb;background:linear-gradient(90deg,#263a3009,transparent 25px),var(--paper)}.visual-sticky{position:sticky;top:14px}.plate-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:11px;line-height:1.6;color:var(--muted);min-height:24px}.geometry-status{font-size:10px;white-space:nowrap}.geometry-status[data-error=true]{color:#a83d28}.model-stage{height:480px;position:relative;isolation:isolate;background:radial-gradient(ellipse at 52% 50%,#e7e9d87a,transparent 69%)}#book-canvas{width:100%;height:100%;position:absolute;inset:0;touch-action:none;cursor:grab}#book-canvas:active{cursor:grabbing}.plate-number,.space-note{position:absolute;bottom:10px;font-size:10px;letter-spacing:2px;color:#809080;pointer-events:none}.plate-number{left:0}.space-note{right:0;letter-spacing:1px}.observation{font-size:13px;line-height:1.85;margin:6px 0 9px;color:var(--ink);min-height:48px}.model-boundary{font-size:11px;line-height:1.85;color:var(--muted);padding-bottom:13px;margin:0;border-bottom:1px solid var(--rule);min-height:53px}.model-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px 0 0}.model-controls button{font-size:12px;padding:9px 12px;border:1px solid #bdc6b6;min-height:38px}.model-controls button:hover{border-color:var(--accent)}.interaction-help{font-size:11px;line-height:1.8;color:var(--muted);margin:10px 0 0}.parts-overlay{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.part-label{position:absolute;transform:translate(-50%,-50%);font-size:10px;line-height:1.4;padding:4px 7px;max-width:115px;color:var(--muted);background:#f8f5ecdf;border:1px solid #d4d9ce;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .5s,background .5s}.expanded .part-label{opacity:.85;pointer-events:auto}.part-label.current{background:var(--ink);border-color:var(--ink);color:var(--paper);opacity:1}.part-label:hover{opacity:1;border-color:var(--accent)}.model-loading{position:absolute;inset:0;z-index:4;display:grid;align-content:center;justify-content:center;gap:14px;text-align:center;padding:24px;background:var(--paper);color:var(--muted);font-size:14px;line-height:1.8}.model-loading button{color:var(--accent);text-decoration:underline;padding:10px}
.book-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 34px;border-top:1px solid var(--rule);padding:16px 0}.book-footer>button{font-size:13px;min-height:46px;min-width:130px;padding:12px 14px;text-align:left}.book-footer #page-next{text-align:right;color:var(--accent)}.book-footer #next-name{margin:0 9px}.book-footer p{margin:0;text-align:center;color:var(--muted)}#page-count{font:15px/1.5 Georgia,serif;letter-spacing:3px}.book-footer small{display:block;font-size:10px;margin-top:5px}.book-colophon{display:flex;justify-content:space-between;gap:20px;font-size:10px;line-height:1.9;color:var(--muted);margin:22px 0 0}.book-colophon a{text-decoration:underline}
dialog{color:var(--ink);background:var(--paper);border:0;padding:32px;width:min(620px,90vw);max-height:85dvh;box-shadow:0 30px 100px #101f3040}dialog::backdrop{background:#10221980;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialog-heading p{font-size:12px;color:var(--muted)}.dialog-heading h2{font:500 26px/1.5 SimSun,serif;margin:0}.dialog-heading button{font-size:30px;min-height:44px;min-width:44px}.library-intro{font-size:14px;line-height:1.8;color:var(--muted);margin:20px 0}#library-items{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}#library-items button{display:flex;justify-content:space-between;gap:12px;padding:18px 0;border-top:1px solid var(--rule);font-size:15px;text-align:left}#library-items small{font-size:11px;color:var(--muted)}.clothing-link{display:block;font-size:12px;color:var(--muted);padding-top:20px}
@media(min-width:1450px){.model-stage{height:535px}.text-page{padding:42px 50px 25px}}
@media(max-width:1050px){.site-masthead{padding:20px 24px}.edition{display:none}main{padding:8px 24px 28px}.text-page{padding:29px}.visual-page{padding:25px 20px}.model-stage{height:410px}.chapter-tabs{padding:0 12px}.chapter-tabs button{padding:16px 10px}.chapter-tabs button small{display:none}.lesson-navigation{padding:10px 24px}.lesson-track,.lesson-actions{gap:10px}.book-footer{margin:0 24px}}
@media(max-width:720px){.site-masthead{padding:15px 16px;flex-wrap:wrap;gap:8px}.brand{font-size:23px}.brand span{font-size:13px}.site-masthead nav{font-size:12px;gap:17px}.site-masthead nav button{font-size:12px}main{padding:6px 12px 25px}.book-heading{font-size:10px;letter-spacing:1px;padding:0 4px}.book-heading span{display:none}.chapter-tabs{padding:0 8px}.chapter-tabs button{min-height:48px;padding:14px 13px;font-size:12px}.lesson-navigation{padding:9px 14px;gap:3px;flex-wrap:wrap}.lesson-track{flex:1;gap:7px}#lesson-phase{font-size:10px;min-width:40px}#lesson-dots{gap:0}#lesson-dots button{width:19px;padding:6px}#lesson-count{font-size:10px}.lesson-actions{gap:4px}#lesson-next{min-width:112px;font-size:12px}#lesson-prev{min-width:32px}.spread{display:flex;flex-direction:column}.text-page{order:2;padding:22px 24px 25px}#copy{min-height:0}.visual-page{order:1;border-left:0;background:var(--paper);padding:17px 22px 0}.visual-sticky{position:static}.model-stage{height:335px}.plate-heading{gap:7px;flex-wrap:wrap}.geometry-status{font-size:9px}.observation{min-height:0;font-size:12px}.model-boundary{min-height:0;font-size:10px}.model-controls button{min-height:42px}.interaction-help{margin-bottom:0;font-size:10px}.page-kicker{padding-top:18px;border-top:1px solid var(--rule);margin-bottom:17px}h1{font-size:33px}.page-intro{font-size:16px}.knowledge p{font-size:14px}.page-folio{display:none}.book-footer{margin:0 14px;gap:5px}.book-footer>button{min-width:80px;font-size:12px;padding:9px 4px}.book-footer #next-name{margin:0 3px}.book-footer small{display:none}#page-count{font-size:12px;letter-spacing:2px}.book-colophon>span{display:none}dialog{padding:22px}#library-items{grid-template-columns:1fr}.space-note{font-size:9px;letter-spacing:0}.part-label{font-size:9px;padding:3px 5px;max-width:95px}}
@media(max-width:720px){.lesson-track{flex-basis:100%;width:100%}#lesson-dots{flex:1;min-width:0}#lesson-dots button{flex:1;width:auto;min-width:12px;padding:6px}.lesson-actions{width:100%;justify-content:flex-end;margin-top:2px}}
.gesture-panel{background:var(--paper);border:1px solid var(--rule);margin:0 0 21px;z-index:1}.gesture-bar{padding:13px 20px}.gesture-heading strong{font-family:'Songti SC',SimSun,serif;font-size:17px}.gesture-heading>span:last-child{font-size:11px;color:var(--muted)}.gesture-toggle{color:var(--ink);border:1px solid #bdc6b6;border-radius:2px;background:transparent;font-size:12px;min-height:38px}.gesture-toggle:hover{background:#e8eddf}.gesture-body{grid-template-columns:150px minmax(0,1fr);padding:0 20px 16px;gap:22px}.gesture-camera{border-radius:3px}.gesture-feedback strong{font-size:13px;color:var(--ink)}.gesture-feedback>span{color:var(--muted)}.gesture-meter{background:#d4d9ce}.gesture-meter span{background:var(--accent)}.gesture-moves b{color:var(--ink);font-size:12px}.gesture-moves span,.gesture-guide p{color:var(--muted);font-size:11px}.gesture-guide p{margin:9px 0 5px}.gesture-actions button,.gesture-actions a{color:var(--accent);font-size:12px;min-height:30px}.gesture-actions>span{color:var(--muted)}.gesture-panel[data-state=error] #gesture-status{color:var(--accent)}.gesture-panel[data-state=active] .gesture-orb{background:#557747;box-shadow:0 0 0 5px #55774714}.gesture-panel[data-state=paused] .gesture-orb{background:#b28c50}
@media(max-width:720px){.gesture-panel{margin-bottom:17px}.gesture-bar{padding:10px 13px;gap:8px}.gesture-heading strong{font-size:15px}.gesture-body{grid-template-columns:100px minmax(0,1fr);padding:0 13px 13px;gap:12px}.gesture-feedback strong{font-size:12px}.gesture-moves{grid-template-columns:1fr 1fr;gap:8px}.gesture-moves span{font-size:10px}.gesture-moves b{font-size:11px}.gesture-guide p{font-size:10px}.gesture-actions{gap:8px}.gesture-toggle{font-size:11px;padding:7px 10px}}
@media(max-width:380px){.gesture-body{grid-template-columns:1fr}.gesture-camera{width:140px;justify-self:center}.gesture-moves{grid-template-columns:1fr 1fr}.gesture-heading strong{font-size:14px}}
.gesture-dock{display:flow-root;overflow-anchor:none}.gesture-drag{display:none}
.gesture-panel.is-floating{position:fixed;z-index:30;width:min(340px,calc(100vw - 24px));max-height:calc(100dvh - 24px);margin:0;overflow:auto;border-radius:8px;box-shadow:0 10px 36px #14291f30}.gesture-panel.is-floating .gesture-bar{padding:8px 11px;gap:8px}.gesture-panel.is-floating .gesture-heading{display:none}.gesture-panel.is-floating .gesture-drag{display:flex;align-items:center;align-self:stretch;flex:1;padding:4px 0;font-size:13px;min-height:34px;text-align:left;cursor:grab;touch-action:none;user-select:none}.gesture-panel.is-floating.is-dragging .gesture-drag{cursor:grabbing}.gesture-panel.is-floating .gesture-toggle{font-size:11px;padding:6px 9px;min-height:34px}.gesture-panel.is-floating .gesture-body{grid-template-columns:108px minmax(0,1fr);gap:10px;padding:0 11px 11px}.gesture-panel.is-floating .gesture-camera{width:100%;margin:0;justify-self:stretch}.gesture-panel.is-floating .gesture-local{font-size:9px;padding:3px 0}.gesture-panel.is-floating .gesture-feedback{display:block;min-height:0}.gesture-panel.is-floating .gesture-feedback strong{display:block;font-size:12px;line-height:1.5}.gesture-panel.is-floating .gesture-feedback>span{display:block;font-size:10px;white-space:normal;line-height:1.4}.gesture-panel.is-floating .gesture-meter{margin:6px 0 8px}.gesture-panel.is-floating .gesture-moves{grid-template-columns:1fr 1fr;gap:6px 7px}.gesture-panel.is-floating .gesture-moves b{font-size:10px;line-height:1.5}.gesture-panel.is-floating .gesture-moves span{font-size:9px;line-height:1.5}.gesture-panel.is-floating .gesture-guide>p,.gesture-panel.is-floating .gesture-actions>span{display:none}.gesture-panel.is-floating .gesture-actions{gap:8px;margin-top:7px}.gesture-panel.is-floating .gesture-actions button,.gesture-panel.is-floating .gesture-actions a{font-size:11px;min-height:32px;padding:3px 0}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
