:root{color-scheme:light;--paper:#f6f5ef;--ink:#233c30;--muted:#6a776c;--line:#dce0d3;--green:#356a45;--stage:#e9ece2}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Avenir Next","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible,#viewport:focus-visible{outline:2px solid var(--green);outline-offset:5px}header{height:82px;margin:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-family:"Songti SC","STSong",serif;font-size:25px;font-weight:700;letter-spacing:3px}.brand span{font-family:"PingFang SC",sans-serif;font-size:11px;font-weight:400;letter-spacing:2px;margin-left:28px;color:var(--muted)}.edition{font-size:11px;letter-spacing:2px;color:var(--muted)}main{display:grid;grid-template-columns:300px minmax(0,1fr);margin:34px 4vw 0;column-gap:38px}aside{padding:24px 0 16px;grid-row:span 2}.eyebrow{font-size:9px;letter-spacing:2px;display:flex;gap:8px;align-items:center}.eyebrow span{width:5px;height:5px;background:var(--green);border-radius:50%}h1{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:clamp(38px,4vw,62px);font-weight:500;line-height:1.3;letter-spacing:1px;margin:30px 0 20px}.intro{line-height:1.95;color:var(--muted);font-size:12px;margin:0}.dimensions{display:flex;gap:0;margin:34px 0 30px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.dimensions div{flex:1}.dimensions dt{font-size:10px;color:var(--muted);margin-bottom:8px}.dimensions dd{margin:0;font-size:23px;font-weight:500;font-variant-numeric:tabular-nums}.dimensions small{font-size:10px;font-weight:400;color:var(--muted)}.primary{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:#f7f8ee;padding:15px 18px;font-size:12px}.primary:hover{background:#295536}.primary span{font-size:20px;line-height:16px}.other-downloads{display:flex;justify-content:space-between;margin:14px 2px 28px;font-size:11px;color:var(--muted)}.other-downloads a:hover,.source-link:hover{text-decoration:underline}details{font-size:11px;color:var(--muted);line-height:1.9}summary{cursor:pointer;color:var(--ink);font-size:11px;list-style:none}summary::after{content:'＋';float:right;margin-right:2px}details[open] summary::after{content:'−'}details p{margin:10px 0}.source-link{display:inline-block;font-size:11px;color:var(--muted);margin-top:16px}.stage{position:relative;min-height:540px;height:calc(100vh - 240px);max-height:850px;background:var(--stage);overflow:hidden}.stage-heading{position:absolute;top:22px;left:26px;right:26px;z-index:2;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;pointer-events:none}#load-state{color:var(--muted);letter-spacing:0}#viewport{width:100%;height:100%;touch-action:none;cursor:grab}#viewport:active{cursor:grabbing}#viewport canvas{display:block}.stage-footer{position:absolute;left:26px;right:26px;bottom:20px;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:10px}.gesture{font-size:10px;color:var(--muted);margin:0}.actions{display:flex;gap:18px}.actions button{padding:5px 0;border:0;background:transparent;font-size:10px}.actions button[aria-pressed="true"]{color:var(--green);text-decoration:underline;text-underline-offset:5px}.views{display:flex;gap:5px;align-items:center;min-height:66px;border-bottom:1px solid var(--line)}.views>span:first-child{font-size:10px;color:var(--muted);margin-right:14px}.views button{background:transparent;border:0;border-radius:2px;padding:8px 12px;font-size:11px}.views button:hover{background:#e8ebdf}.views button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}.scale-note{font-size:10px;color:var(--muted);margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}footer{display:flex;justify-content:space-between;margin:30px 4vw 20px;font-size:9px;color:var(--muted);letter-spacing:1.5px}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:var(--stage);z-index:3;font-size:11px;letter-spacing:2px}#loading.hidden{display:none}.loader{width:24px;height:24px;border:1px solid #b9c8b7;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loader{animation:none}}@media(min-width:1500px){main{grid-template-columns:340px minmax(0,1fr);column-gap:60px}aside{padding-top:46px}.dimensions{margin-top:45px}}@media(max-width:1080px){main{grid-template-columns:250px minmax(0,1fr);gap:22px}.stage-footer{flex-direction:column;align-items:center}.views{gap:0;flex-wrap:wrap;padding:10px 0}.views button{padding:8px 10px}.scale-note{display:none}.stage{min-height:520px}.brand span{margin-left:16px}}@media(max-width:740px){header{height:65px}.brand{font-size:20px}.brand span{font-size:9px;letter-spacing:1px;margin-left:12px}.edition{display:none}main{display:flex;flex-direction:column;margin-top:20px;gap:0}aside{display:contents}.eyebrow,h1,.intro,.dimensions,.downloads,details,.source-link{order:3}.stage{order:1;height:64vh;min-height:420px;max-height:650px}.views{order:2;margin-bottom:28px;min-height:58px;justify-content:center}.views>span:first-child{display:none}.eyebrow{margin-top:0}h1{font-size:38px;margin:18px 0 10px}h1 br{display:none}.intro{font-size:12px}.dimensions{margin:20px 0}.downloads{max-width:100%}details{margin-top:0}.source-link{margin-top:15px}.stage-heading{left:16px;right:16px;top:17px}.stage-footer{left:14px;right:14px;bottom:16px}.actions{gap:24px}footer{margin-top:28px;font-size:8px}}
.model-tabs{display:flex;gap:22px;margin:-14px 0 28px;border-bottom:1px solid var(--line)}.model-tabs a{padding:0 0 11px;font-size:12px;color:var(--muted)}.model-tabs a[aria-current="page"]{color:var(--ink);border-bottom:2px solid var(--green)}.model-tabs a:hover{color:var(--green)}#model-intro{white-space:pre-line}@media(max-width:740px){.model-tabs{order:0;margin:0 0 16px;justify-content:center;gap:35px}.stage{order:1}}
