:root{--paper:#eeeae2;--ink:#322b25;--muted:#82786d;--accent:#c45938;--line:#cec5b8;font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0;background:transparent}a{color:inherit;text-decoration:none}button:hover,a:hover{color:var(--accent)}[hidden]{display:none!important}.masthead{position:absolute;top:0;left:0;right:0;height:91px;margin:0 4%;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:40px;z-index:20}.brand{font-family:"Arial Rounded MT Bold","Trebuchet MS",sans-serif;font-size:25px;font-weight:800;letter-spacing:-1.3px}.brand span{font-size:11px;font-weight:400;letter-spacing:2px;margin-left:20px}.masthead nav{margin-left:auto;display:flex;gap:27px;align-items:center;font-size:12px}.edition,.eyebrow,.progress-meta,.scene-caption,.model-note,.chapter-nav,.scroll-cue>span:last-child,.closing article>span{font-family:"SFMono-Regular",Consolas,monospace}.edition{font-size:11px;border-left:1px solid var(--line);padding-left:25px;color:var(--muted)}.scroll-track{height:660vh;position:relative}.workbench{height:100svh;min-height:630px;position:sticky;top:0;overflow:hidden;background:radial-gradient(ellipse at 61% 43%,#fbf8f1 0%,#eeeae2 67%)}.workbench:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.17;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.2' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.heading{position:absolute;left:5%;top:20%;z-index:4;max-width:400px;pointer-events:none;transition:top .6s}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:500}.heading h1{font-size:clamp(32px,4.4vw,62px);line-height:1.22;letter-spacing:-2.5px;font-weight:500;margin:22px 0}.heading h1 em,.closing em{font-family:"Songti SC","STSong",serif;font-weight:400;font-style:normal;color:var(--accent)}.heading>p:last-child{font-size:13px;line-height:1.95;color:var(--muted);margin:0;max-width:280px}.workbench.exploring .heading{top:13%}.workbench.exploring .heading h1{font-size:clamp(26px,2.6vw,39px);margin:12px 0;letter-spacing:-1px}.workbench.exploring .heading>p:last-child{font-size:12px;max-width:340px}.canvas-wrap{position:absolute;inset:9% 0 14%;z-index:2}canvas{display:block;width:100%;height:100%;touch-action:pan-y}#part-labels{position:absolute;inset:0;pointer-events:none}.part-label{position:absolute;transform:translate(-50%,0);white-space:nowrap;pointer-events:auto;font-size:11px;display:flex;align-items:center;gap:7px;padding:5px 9px;background:#eeeae2de;border-radius:3px;transition:opacity .2s}.part-label small{font-family:monospace;font-size:10px;color:var(--accent)}.part-label.selected{background:var(--ink);color:#fff}.part-label:before{content:"";position:absolute;width:1px;height:15px;background:var(--line);left:50%;bottom:100%}.scene-caption{position:absolute;right:5%;top:110px;display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);z-index:5}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.view-tools{position:absolute;right:5%;bottom:150px;z-index:6;display:flex;gap:16px;font-size:11px}.view-tools button{padding:9px 0;border-bottom:1px solid var(--line)}.view-tools button span{margin-left:12px}.view-tools button[aria-pressed="true"]{color:var(--accent)}.scroll-cue{position:absolute;left:5%;bottom:180px;font-size:12px;display:grid;grid-template-columns:30px auto;gap:6px 13px;align-items:center;z-index:5;transition:opacity .3s}.scroll-cue>span:last-child{grid-column:2;font-size:8px;letter-spacing:1.4px;color:var(--muted)}.mouse{grid-row:span 2;width:23px;height:37px;border:1px solid #aea394;border-radius:14px;display:flex;justify-content:center;padding-top:7px}.mouse i{width:2px;height:7px;background:var(--accent);animation:scroll 1.8s infinite}@keyframes scroll{0%,100%{transform:translateY(0);opacity:.3}60%{transform:translateY(9px);opacity:1}}.progress-dock{position:absolute;left:5%;right:5%;bottom:45px;z-index:8}.progress-meta{display:flex;align-items:center;font-size:11px;gap:15px;margin-bottom:15px}.progress-meta b{font-weight:400;color:var(--accent);margin-right:8px}.progress-meta output{margin-left:auto;color:var(--accent)}.progress-meta button{border-left:1px solid var(--line);padding-left:20px;font-size:11px}.rail{height:2px;background:var(--line)}#progress-fill{height:100%;background:var(--accent);width:0}.chapter-nav{display:flex;justify-content:space-between;margin-top:12px}.chapter-nav button{font-size:10px;padding:5px 0;color:var(--muted)}.chapter-nav button.active{color:var(--accent)}.model-note{position:absolute;left:5%;bottom:7px;color:#9b9287;font-size:9px;letter-spacing:.7px;z-index:3}.part-panel{position:absolute;right:4%;top:25%;z-index:15;width:290px;padding:30px;background:#faf8f2ee;box-shadow:0 15px 70px #392f2926;border:1px solid #d5cbbc;backdrop-filter:blur(18px)}.close{position:absolute;right:12px;top:8px;font-size:25px;line-height:1;padding:5px}.part-panel h2{font-size:23px;font-weight:500;margin:17px 0}.part-panel p{font-size:12px;line-height:1.9;color:var(--muted)}.part-panel dl{font-size:11px;line-height:1.8;border-top:1px solid var(--line);padding-top:15px}.part-panel dt{color:var(--muted);margin-top:9px}.part-panel dd{margin:0}.part-panel a{display:block;border-bottom:1px solid var(--accent);padding:12px 0 5px;font-size:11px;color:var(--accent)}.closing{padding:115px 8% 35px;background:#e5ded2;border-top:1px solid var(--line)}.closing h2{font-size:clamp(29px,3.5vw,50px);font-weight:400;line-height:1.5;letter-spacing:-1px}.closing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin:60px 0}.closing article>span{color:var(--accent);font-size:10px}.closing h3{font-weight:500;font-size:17px}.closing article p{font-size:12px;line-height:2;color:#7d7265}.closing-links{display:flex;gap:30px;align-items:center;font-size:12px}.solid-link{padding:15px 22px;background:var(--ink);color:var(--paper)}.source-note{font-size:10px;color:#928676;line-height:1.9;border-top:1px solid #c9beae;margin-top:75px;padding-top:25px}.source-note a{text-decoration:underline}dialog{max-width:540px;width:90%;padding:45px;background:#f6f2e9;border:1px solid var(--line);color:var(--ink)}dialog::backdrop{background:#31271dcc;backdrop-filter:blur(5px)}dialog h2{font-weight:500}dialog p{font-size:13px;color:var(--muted);line-height:1.9}dialog a{font-size:12px;color:var(--accent)}@media(min-width:1600px){.canvas-wrap{inset:9% 6% 14%}}@media(max-width:760px){.masthead{height:72px;gap:0}.brand{font-size:21px}.brand span{display:none}.masthead nav{gap:14px;font-size:10px}.edition{display:none}.workbench{min-height:570px}.heading{top:16%;left:7%}.heading h1{font-size:38px;letter-spacing:-1.5px;margin:15px 0}.heading>p:last-child{font-size:11px}.workbench.exploring .heading{top:12%}.workbench.exploring .heading h1{font-size:26px}.workbench.exploring .heading>p:last-child{font-size:10px;max-width:280px}.canvas-wrap{inset:24% 0 18%}.scene-caption{top:80px;right:7%;font-size:8px}.view-tools{bottom:131px;right:7%;left:7%;justify-content:flex-end;gap:15px;font-size:10px}.view-tools button span{margin-left:6px}.scroll-cue{bottom:180px;left:7%;font-size:10px}.scroll-cue>span:last-child{font-size:7px}.progress-dock{left:7%;right:7%;bottom:35px}.model-note{left:7%;font-size:8px;bottom:0}.part-label{font-size:9px;padding:3px 5px;gap:4px}.part-label small{font-size:8px}.part-label:before{height:7px}.part-panel{right:7%;left:7%;top:auto;bottom:150px;width:auto;padding:24px}.part-panel h2{font-size:20px;margin:10px 0}.part-panel dl{display:grid;grid-template-columns:65px 1fr;gap:8px;margin:10px 0;padding-top:10px}.part-panel dt{margin:0}.part-panel p{font-size:11px}.closing{padding:70px 7% 25px}.closing-grid{grid-template-columns:1fr;gap:25px;margin:35px 0}.closing-links{font-size:10px;gap:15px}.source-note{margin-top:45px}.scroll-track{height:700vh}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Yunbao: calm sky blue, cream textile and a single assembly axis. */
:root{--paper:#eef1f3;--ink:#293e50;--muted:#788995;--accent:#487dab;--line:#c4d1db;background:var(--paper)}
.workbench{background:radial-gradient(ellipse at 60% 44%,#fffdf8 0%,#eff2f4 65%,#e5ecf1 100%)}
.canvas-wrap{inset:17% 0 17%}.workbench.exploring .heading{top:13%}.heading h1 em,.closing em{color:#598ab6}.part-label{background:#f1f4f5de;font-size:10px;padding:5px 6px}.part-label:before{height:22px;background:#bfceda}.axis-label{position:absolute;right:5%;top:145px;font:11px "SFMono-Regular",Consolas,monospace;letter-spacing:2px;color:var(--accent);z-index:5}.closing{background:#e3ebf1}.solid-link{background:#385d7c}.part-panel{background:#f9fbfbee;border-color:#c9d6df}.part-panel.selected{background:var(--ink)}.scroll-track{height:600vh}.model-note{color:#8495a3}.scene-caption{color:#8296a5}
@media(min-width:1600px){.canvas-wrap{inset:17% 1% 17%}}
@media(max-width:760px){.scroll-track{height:640vh}.canvas-wrap{inset:21% 0 16%}.heading,.workbench.exploring .heading{top:12%;left:7%}.heading h1{font-size:31px;margin:9px 0}.workbench.exploring .heading h1{font-size:23px;margin:9px 0}.heading .eyebrow{font-size:8px}.heading>p:last-child{font-size:10px}.workbench.exploring .heading>p:last-child{display:none}.axis-label{top:82px;right:7%;font-size:9px}.scene-caption{display:none}.part-label{transform:translate(0,-50%);font-size:10px;padding:4px 7px;gap:7px}.part-label:before{height:1px;width:15px;right:100%;left:auto;bottom:50%}.view-tools{bottom:126px}.part-panel{bottom:155px}.workbench:not(.exploring) .scroll-cue{bottom:165px;left:7%}.workbench:not(.exploring) .heading>p:last-child{max-width:180px}.progress-dock{bottom:33px}}

/* Two appearances share the same scroll position and assembly axis. */
.variant-picker{position:absolute;top:104px;left:5%;z-index:9}
.variant-options{display:flex;gap:4px;padding:5px;border:1px solid #dce1d3;border-radius:99px;background:#fffdf6e8;box-shadow:0 5px 20px #34402c05}
.variant-options button{display:flex;align-items:center;gap:8px;padding:10px 17px;border-radius:99px;font-size:13px;white-space:nowrap;transition:background .25s}
.variant-options button[aria-pressed="true"]{background:#e0eacb;color:#344c36}
.variant-options button span{font-size:10px;color:#778271}
.variant-options button:focus-visible{outline:2px solid #708653;outline-offset:2px}
.swatch{width:10px;height:10px;border-radius:50%;background:#83b9e7}.swatch.peach{background:#de965f}
#variant-status{margin:9px 0 0 14px;font-size:10px;letter-spacing:.5px;color:#849079}
.heading{top:27%}.workbench.exploring .heading{top:195px}
@media(max-width:760px){.variant-picker{top:80px;left:7%;right:7%}.variant-options{width:fit-content}.variant-options button{font-size:12px;padding:8px 13px}.variant-options button span{font-size:9px}#variant-status{font-size:9px;margin-top:7px}.heading,.workbench.exploring .heading{top:156px}.heading h1{font-size:26px}.workbench.exploring .heading h1{font-size:21px}.heading .eyebrow{display:none}.workbench:not(.exploring) .heading>p:last-child{max-width:250px}.canvas-wrap{inset:29% 0 16%}.axis-label{top:auto;bottom:160px;font-size:8px}.scroll-cue{display:none}}
@media(max-height:700px) and (min-width:761px){.variant-picker{top:90px}.workbench.exploring .heading,.heading{top:175px}.heading h1{font-size:30px}}

/* Variant content updates must never move the scroll-driven assembly. */
body{overflow-anchor:none}

@media(min-width:761px){.workbench.exploring .heading{top:180px}.workbench.exploring .heading .eyebrow,.workbench.exploring .heading>p:last-child{display:none}.view-tools{bottom:135px}}
