@font-face{font-family:Archive;src:local('Aptos'),local('Segoe UI');font-display:swap}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f5f2eb;color:#29231e;font-family:Archive,'Microsoft YaHei','PingFang SC',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.45}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,#viewport:focus-visible{outline:2px solid #9b3d2a;outline-offset:4px}button{color:inherit}a{color:inherit}button{border:0;background:none}button:hover{color:#922e20}button[aria-pressed=true]{color:#7b2b20}.skip{position:fixed;top:-60px;padding:12px;background:#fff;z-index:20}.skip:focus{top:4px}.masthead{height:87px;border-bottom:1px solid #dad5cb;display:flex;align-items:center;padding:0 34px;gap:29px;background:#fbf9f4;position:relative;z-index:3}.brand{text-decoration:none;font-size:31px;font-weight:850;letter-spacing:-1.7px;color:#75281e;line-height:1}.brand span{display:block;font-size:8px;letter-spacing:3.8px;margin:7px 0 0 3px}.masthead-title{display:flex;gap:24px;align-items:center;font-size:13px;font-weight:600;letter-spacing:1px}.masthead-title small{display:block;font-size:8px;letter-spacing:1.6px;color:#93887c;margin-top:6px}.sep{width:1px;height:31px;background:#dfdad1}.header-actions{margin-left:auto;display:flex;align-items:center;gap:26px}.version{font-size:11px;color:#96887c}.plain-button{border:1px solid #ccc2b5;padding:10px 15px;font-size:12px;border-radius:4px;display:flex;gap:25px;background:#fffdf8}.plain-button:hover{background:#efe8de}.workspace{height:calc(100dvh - 87px);min-height:600px;display:grid;grid-template-columns:290px minmax(0,1fr)}.sidebar{padding:34px 26px 19px;border-right:1px solid #dcd5ca;display:flex;flex-direction:column;background:#fbf9f4;z-index:2}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:600;color:#8b7b6c;margin:0 0 18px}.intro h1{font-size:29px;line-height:1.45;letter-spacing:1px;margin:0;font-weight:600}.intro-copy{color:#998a7a;font-size:11px;line-height:1.9;margin:15px 0 23px}.section-caption{font-size:10px;display:flex;justify-content:space-between;color:#7c6d5f;margin:0 0 12px}.section-caption span{font-size:8px;letter-spacing:1.4px;color:#a99b8b}.views{margin-bottom:22px}.view-button{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:13px 10px;border-top:1px solid #e6dfd4;font-size:13px;transition:background .2s;border-radius:2px}.view-button:last-child{border-bottom:1px solid #e6dfd4}.view-num{font-size:9px;font-variant-numeric:tabular-nums;color:#a29483}.view-button small{display:block;font-size:10px;color:#a08f7d;margin-top:4px;font-weight:400}.view-arrow{margin-left:auto;color:#b7a894;opacity:0}.view-button.active{background:#eee5d8;color:#71271e;font-weight:600;border-color:transparent}.view-button.active .view-arrow,.view-button:hover .view-arrow{opacity:1}.view-button:hover{background:#f0eae0}.sidebar-foot{margin-top:auto}.source-count{display:flex;gap:26px;align-items:center;padding-bottom:19px;border-bottom:1px solid #e0d8cd}.source-count b{font-size:24px;font-weight:500;letter-spacing:-1px;line-height:1.1}.source-count b small{display:block;font-size:9px;color:#9b8b7c;font-weight:400;letter-spacing:0;margin-top:6px}.source-count>span{font-size:9px;line-height:1.9;color:#9b8b7c;margin-left:auto}.about-button{display:flex;gap:7px;align-items:center;font-size:9px;padding:17px 0 0;color:#9d8b79;white-space:nowrap;width:100%}.about-button>span:last-child{margin-left:auto}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#907454;flex-shrink:0}.stage{position:relative;min-width:0;overflow:hidden;background:#e9e5db}.stage:fullscreen{width:100vw;height:100dvh}.stage-top{position:absolute;left:30px;right:27px;top:26px;display:flex;align-items:center;justify-content:space-between;gap:14px;z-index:1;pointer-events:none}.stage-top>*{pointer-events:auto}.stage-label{display:flex;align-items:center;gap:8px;color:#85786a;font-size:10px;letter-spacing:.6px}.stage-tools{display:flex;gap:7px}.stage-tools button{font-size:10px;border:1px solid #cfc7b9;padding:8px 10px;border-radius:3px;background:#f8f5edc9;backdrop-filter:blur(8px)}.stage-tools button:hover,.stage-tools button[aria-pressed=true]{background:#71271e;border-color:#71271e;color:#fff5e5}.stage-tools button:disabled{background:#ddd6c9;color:#8b7b6c}.stage-top .status-dot{background:#847e60}#viewport{height:100%;width:100%;touch-action:none;outline-offset:-5px}#viewport canvas{display:block;width:100%;height:100%;touch-action:none}.view-caption{position:absolute;left:34px;bottom:103px;pointer-events:none}.view-caption>span{font-size:9px;letter-spacing:1.8px;color:#9d8c76}.view-caption h2{font-size:22px;letter-spacing:2px;font-weight:500;margin:9px 0}.view-caption p{font-size:10px;line-height:1.6;color:#8d7c69;margin:0}.reference-preview{position:absolute;right:28px;bottom:103px;width:156px;background:#f9f6ef;box-shadow:0 4px 16px #47301f15;padding:5px;text-align:left;border-radius:3px;border:1px solid #cfc5b5;transition:transform .2s}.reference-preview:hover{transform:translateY(-3px)}.reference-preview img{width:100%;height:83px;object-fit:cover;display:block;border-radius:1px}.reference-preview span{display:flex;justify-content:space-between;font-size:9px;padding:9px 4px 5px;color:#806b55}.reference-preview b{font-weight:400;font-size:13px}.stage-bottom{position:absolute;left:30px;right:27px;bottom:23px;border-top:1px solid #c8bdab88;display:flex;align-items:center;padding-top:17px;gap:18px}.gesture{display:flex;gap:10px;margin:0;font-size:9px;color:#9e8b75}.gesture i{font-style:normal;color:#bbac98}.stage-bottom button{font-size:10px;margin-left:auto;color:#7e6951;padding:5px}.model-meta{font-size:8px;letter-spacing:1px;color:#aa9a87;padding-left:18px;border-left:1px solid #c8bdab88}.loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ece7dd;z-index:2;transition:opacity .7s;pointer-events:none}.loader.hidden{opacity:0;visibility:hidden;transition:opacity .7s,visibility 0s .7s}.loader-brand{font-size:42px;font-weight:850;letter-spacing:-2px;color:#75281e}.loader p{font-size:12px;color:#756655;margin-top:23px}.loader small{font-size:9px;color:#a2927e;margin-top:14px}.progress{height:2px;width:170px;background:#d8cdbe;margin-top:8px}.progress span{display:block;height:100%;width:5%;background:#8b3727;transition:width .3s}.mobile-views{display:none}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);border-radius:4px;background:#322920;color:#fff7e8;padding:12px 20px;opacity:0;pointer-events:none;transition:all .2s;z-index:30;font-size:12px}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #cfc3b0;border-radius:8px;padding:0;background:#fbf8f1;color:#332b23;box-shadow:0 30px 100px #1e120f55}dialog::backdrop{background:#21160fcc;backdrop-filter:blur(6px)}.reference-dialog{width:min(1120px,94vw);max-height:92dvh}.dialog-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e3d9ca;padding:25px 28px}.dialog-head .eyebrow{margin-bottom:7px;font-size:8px}.dialog-head h2{font-size:23px;font-weight:500;margin:0}.close-dialog{font-size:11px;padding:10px 0 10px 20px;color:#8c7a65}.reference-content{display:grid;grid-template-columns:minmax(0,1fr) 214px;padding:24px;gap:22px}.reference-main{min-width:0;display:flex;flex-direction:column;justify-content:center;background:#eee9df;border-radius:4px;overflow:hidden}.reference-main img{display:block;max-width:100%;width:100%;height: min(53vh,535px);object-fit:contain}.reference-caption{display:flex;gap:15px;justify-content:space-between;padding:16px;font-size:11px;background:#f5eee2}.reference-caption small{font-size:9px;color:#9b876e}.reference-list{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:10px;max-height:65vh;overflow:auto}.ref-item{padding:4px;text-align:left;border:1px solid transparent;border-radius:4px;min-width:0}.ref-item img{width:100%;height:62px;object-fit:cover;border-radius:2px}.ref-item span{display:block;font-size:9px;padding:4px 1px;white-space:nowrap}.ref-item.active{border-color:#a34f34;background:#eee2d1}.dialog-foot{padding:17px 28px;border-top:1px solid #e3d9ca;color:#9b876e;font-size:10px;line-height:1.6}.about-dialog{width:min(620px,94vw);max-height:90dvh}.about-content{padding:28px}.about-lead{font-size:23px;line-height:1.5;margin:0 0 25px;font-weight:500}.about-content dl{display:grid;grid-template-columns:75px 1fr;column-gap:20px;row-gap:22px;font-size:12px;line-height:1.9}.about-content dt{font-weight:600;color:#6e2b20}.about-content dd{margin:0;color:#907e67}.download-model{display:flex;justify-content:space-between;text-decoration:none;background:#752c21;color:#fff1db;border-radius:3px;padding:14px 17px;font-size:12px;margin-top:28px}.download-model:hover{background:#612017}.download-note{font-size:10px;color:#aa9780;line-height:1.7;margin:12px 0 0}.load-error{pointer-events:auto;padding:24px;text-align:center}.load-error a,.load-error button{pointer-events:auto;color:#75281e;text-decoration:underline;margin-top:18px;font-size:12px}
@media(min-width:1600px){.workspace{grid-template-columns:330px minmax(0,1fr)}.sidebar{padding:42px 34px 25px}.intro h1{font-size:34px}.view-button{padding:16px 12px}.intro-copy{margin-bottom:32px;font-size:12px}.stage-top{left:38px;right:38px;top:30px}.view-caption{left:40px}.reference-preview{width:186px;right:38px}.reference-preview img{height:100px}}
@media(max-height:830px) and (min-width:761px){.workspace{min-height:570px}.sidebar{padding-top:23px}.intro h1{font-size:25px}.intro-copy{margin:10px 0 16px}.eyebrow{margin-bottom:12px}.view-button{padding:10px}.source-count{padding-bottom:12px}.about-button{padding-top:13px}.views{margin-bottom:15px}}
@media(max-width:1100px){.workspace{grid-template-columns:250px minmax(0,1fr)}.sidebar{padding-left:20px;padding-right:20px}.intro h1{font-size:25px}.source-count{gap:20px}.version{display:none}.model-meta{display:none}.stage-top{left:22px;right:22px}.stage-tools{gap:4px}.stage-tools button{font-size:9px;padding:7px}.view-caption{left:25px}.reference-preview{right:22px;width:132px}.reference-preview img{height:72px}.view-caption p{max-width:190px}}
@media(max-width:760px){.masthead{height:72px;padding:0 19px;gap:18px}.brand{font-size:27px}.brand span{font-size:6px;letter-spacing:3.4px}.masthead-title{font-size:11px;gap:16px}.masthead-title small{font-size:7px;letter-spacing:.8px}.header-actions{gap:0}.plain-button{font-size:10px;padding:8px 10px;gap:10px}.workspace{height:calc(100dvh - 72px);min-height:550px;display:block}.sidebar{display:none}.stage{height:100%}.stage-top{top:20px;left:18px;right:18px;align-items:flex-start}.stage-label{font-size:9px;gap:5px;padding-top:7px}.stage-tools{gap:5px;flex-wrap:wrap;max-width:220px;justify-content:flex-end}.stage-tools button{font-size:9px;padding:7px 8px}#fullscreen{display:none}.view-caption{left:20px;bottom:155px}.view-caption h2{font-size:21px;margin:7px 0}.view-caption p{max-width:180px;font-size:9px}.reference-preview{right:18px;bottom:150px;width:112px}.reference-preview img{height:63px}.reference-preview span{font-size:8px;padding:6px 2px 3px}.stage-bottom{left:20px;right:20px;bottom:97px;padding-top:13px;gap:12px}.gesture{font-size:8px;gap:6px}.gesture span:last-child,.gesture i:last-of-type{display:none}.gesture span:first-child{font-size:0}.gesture span:first-child:after{content:'单指旋转';font-size:8px}.gesture span:nth-of-type(2){font-size:0}.gesture span:nth-of-type(2):after{content:'双指缩放 / 平移';font-size:8px}.stage-bottom button{font-size:9px}.mobile-views{display:flex;position:absolute;bottom:26px;left:18px;right:18px;background:#f8f4eae8;backdrop-filter:blur(10px);padding:6px;border:1px solid #d8cdbb;border-radius:5px;box-shadow:0 6px 20px #3c2a1520}.mobile-views button{flex:1;padding:12px 2px;font-size:11px;border-radius:3px}.mobile-views button.active{background:#762c21;color:#fff3de}.reference-content{grid-template-columns:1fr;padding:14px;gap:14px}.reference-list{grid-template-columns:repeat(4,1fr);gap:5px;max-height:none}.ref-item img{height:45px}.ref-item span{font-size:8px}.reference-main img{height:42vh}.reference-caption{padding:12px;font-size:10px;gap:8px}.reference-caption small{font-size:8px}.dialog-head{padding:19px}.dialog-head h2{font-size:19px}.dialog-foot{padding:13px 18px;font-size:9px}.about-content{padding:22px}.about-lead{font-size:20px}.about-content dl{grid-template-columns:60px 1fr;gap:17px;font-size:11px}.loader-brand{font-size:36px}.toast{width:max-content;max-width:90vw;text-align:center;font-size:11px}.stage:fullscreen .stage-bottom{bottom:100px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.stage-label{padding:8px 10px;background:#f8f5eddb;border:1px solid #d6cebf;border-radius:3px}.view-caption{background:#f8f5eddd;padding:13px 16px;border-radius:3px;backdrop-filter:blur(8px)}.stage-bottom{background:#ece7dce8;padding:13px 10px 8px;border-radius:3px}.view-caption>span{color:#8b745b}.view-caption p{color:#7c6953}.gesture,.stage-bottom button{color:#7f6c57}
@media(max-width:760px){.stage-label{padding:7px;font-size:8px}.view-caption{padding:10px 11px;left:18px;max-width:210px}.stage-bottom{padding:10px 7px 5px}.view-caption h2{font-size:18px}.view-caption p{max-width:190px}.view-caption>span{font-size:8px}.stage-tools{max-width:175px}}
