:root{--text-9:9px;--text-10:10px;--text-11:11px;--text-12:12px;--text-13:13px;--text-14:14px;--text-15:15px;--text-16:16px;--text-17:17px;--text-21:21px;--text-23:23px;--text-24:24px;--text-25:25px;--text-26:26px;--text-27:27px;--text-29:29px;--text-35:35px;--leading-1-5:1.5;--leading-1-6:1.6;--leading-1-7:1.7;--leading-1-8:1.8;--leading-1-9:1.9;--selection-bg:#d4b47c12;--selection-line:#d4b47c75;--space-unit:4px;}
:root{--bg:#152d2c;--panel:#1d3634;--panel-soft:#243f3b;--line:#b6c3a82b;--text:#e8e7da;--muted:#a9bab0;--accent:#d4b47c;--paper:#f1debb;--radius:5px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(#152d2cf0,#152d2cfa),var(--hall-image,none) center top/cover fixed}button,input,select{font:inherit}button,summary{cursor:pointer}button,select{color:var(--text);background:transparent;border:1px solid var(--line);border-radius:3px}button{min-height:40px;padding:8px 13px}button:hover,button[aria-pressed=true]{background:#b8c6a820}button:disabled{opacity:.55;cursor:wait}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip{position:fixed;left:12px;top:-70px;background:var(--paper);color:#152d2c;padding:12px;z-index:20}.skip:focus{top:8px}header{height:82px;margin:0 4%;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line)}.brand{font-family:"Songti SC",serif;font-size:var(--text-27);letter-spacing:.16em;text-decoration:none;white-space:nowrap}.brand span{font-size:var(--text-16);margin-left:16px;color:var(--muted)}.header-note{font-size:var(--text-12);letter-spacing:.22em;color:var(--muted)}.about-link{margin-left:auto;font-size:var(--text-12);color:var(--muted);text-decoration:none}main{display:grid;grid-template-columns:204px minmax(0,1fr);gap:28px;max-width:1580px;margin:auto;padding:26px 4% 40px}.panel{background:linear-gradient(135deg,#a3b49306,transparent 70%),var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.section-kicker{font-size:var(--text-10);letter-spacing:.14em;color:var(--muted)}h1,h2,h3{font-family:"Songti SC","Noto Serif SC",serif;font-weight:400}h1{font-size:var(--text-21);line-height:var(--leading-1-5);margin:16px 0 8px}.catalog{padding:23px 15px;align-self:start}.catalog-mobile-hint{display:none}.catalog-intro,.catalog-foot{font-size:var(--text-12);color:var(--muted);line-height:var(--leading-1-8)}.catalog-intro{margin:0 0 22px}#catalog-list{display:grid;gap:5px}.catalog-item{border:1px solid transparent;display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;padding:10px 7px;text-align:left;width:100%;min-height:64px}.catalog-item img{width:38px;height:38px;object-fit:contain;opacity:.8}.catalog-item strong{display:block;font-weight:400;font-size:var(--text-14)}.catalog-item small{display:block;font-size:var(--text-10);color:var(--muted);margin-top:6px}.catalog-item[aria-pressed=true]{background:#d4b47c12;border-color:#d4b47c75}.catalog-item[aria-pressed=true] strong{color:#edcf9c}.catalog-foot{margin:24px 7px 0;padding-top:18px;border-top:1px solid var(--line);font-size:var(--text-10)}.exhibit{position:relative;height:clamp(590px,calc(100svh - 118px),720px);min-width:0;background:radial-gradient(ellipse at 45% 45%,#b9cab00e,transparent 65%);border-bottom:1px solid var(--line)}.exhibit-heading{position:absolute;left:24px;top:18px;z-index:1;pointer-events:none}.exhibit-heading h2{font-size:var(--text-35);letter-spacing:.08em;margin:12px 0}.exhibit-heading p{font-size:var(--text-13);color:var(--muted);margin:0}.exhibit-heading #exhibit-name{transition:opacity .2s}#stage{position:absolute;inset:105px 228px 70px 0;touch-action:none}canvas{display:block;width:100%;height:100%}.viewer-hint{position:absolute;bottom:27px;left:20px;color:var(--muted);font-size:var(--text-10);line-height:var(--leading-1-6);pointer-events:none}.touch-hint{display:none}.view-buttons{position:absolute;bottom:63px;left:0;right:228px;display:flex;justify-content:center;gap:6px}.view-buttons button{font-size:var(--text-11);padding:7px 12px;min-height:36px;background:#152d2c8c}.controls{position:absolute;right:0;bottom:64px;width:215px;padding:0 15px;background:#1d3634eb}.controls summary{font-size:var(--text-12);padding:15px 0;list-style:none;display:flex;align-items:center;justify-content:space-between}.controls summary::-webkit-details-marker{display:none}.controls summary span{color:var(--accent)}.control{margin:12px 0 16px}.control label{font-size:var(--text-12);display:flex;justify-content:space-between}output{color:var(--accent);font-variant-numeric:tabular-nums}input[type=range]{width:100%;height:25px;accent-color:var(--accent);margin:9px 0 0}.range-caption{display:flex;justify-content:space-between;color:var(--muted);font-size:var(--text-9)}.field{font-size:var(--text-12);display:block}.field select{width:100%;display:block;height:36px;padding:0 7px;margin-top:10px;font-size:var(--text-12);background:var(--panel)}.toggle-row{display:flex;flex-wrap:wrap;gap:10px;font-size:var(--text-11);line-height:var(--leading-1-8)}.toggle-row label{display:flex;align-items:center;gap:3px;min-height:28px}.toggle-row input{accent-color:var(--accent);width:16px;height:16px}.part-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:15px}.part-buttons button{font-size:var(--text-11);min-height:32px;padding:5px}.part-buttons button[aria-pressed=true]{background:var(--accent);color:var(--bg)}#part-description{font-size:var(--text-11);line-height:var(--leading-1-8);color:var(--muted);min-height:58px;margin-bottom:15px}.model-note{position:absolute;bottom:5px;width:100%;text-align:center;font-size:var(--text-10);color:var(--muted);pointer-events:none}.scene-status{position:absolute;left:5%;right:245px;top:47%;text-align:center;font-size:var(--text-12);line-height:var(--leading-1-8);z-index:2;background:#152d2cf2;padding:16px;border-radius:4px}.scene-status[hidden]{display:none}.scene-status button{display:block;margin:10px auto 0}.culture{grid-column:2;padding:23px 28px;min-width:0}.culture-top{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:var(--text-11)}.tabs{display:flex;gap:32px;margin:19px 0 22px;border-bottom:1px solid var(--line)}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 1px 13px;font-size:var(--text-15);letter-spacing:.18em}.tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent)}[role=tabpanel]{font-size:var(--text-14);line-height:var(--leading-1-9)}[hidden]{display:none!important}.shape-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px}.shape-grid h3,.pattern-copy h3{font-size:var(--text-27);margin:0 0 13px}.shape-grid p{margin:0 0 15px;color:#cfdbcf}.fact-label{display:block;font-size:var(--text-10);letter-spacing:.1em;color:var(--accent);margin-bottom:5px}.shape-facts{padding-left:26px;border-left:1px solid var(--line)}.shape-facts p{font-size:var(--text-12)}.evidence-note{padding:13px 16px;background:#b4c6a50a;border-left:2px solid #b4c6a53b;color:var(--muted);font-size:var(--text-11);line-height:var(--leading-1-8)}.craft-intro{font-size:var(--text-12);color:var(--muted);margin:0 0 20px}.craft-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 18px;list-style:none;padding:0;margin:0}.craft-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px;background:#eee2cb}.craft-grid h3{font-size:var(--text-17);margin:12px 0 5px}.craft-grid p{font-size:var(--text-12);line-height:var(--leading-1-8);color:var(--muted);margin:0}.craft-grid .step-number{font:10px sans-serif;color:var(--accent);margin-right:7px}.source-refs{font-size:var(--text-10);color:var(--accent);display:block;margin-top:6px}.pattern-layout{display:grid;grid-template-columns:150px 1fr;gap:30px}.pattern-preview{width:150px;height:150px;object-fit:contain}.pattern-copy p{font-size:var(--text-13);margin:0 0 10px;color:var(--muted)}.pattern-swatches{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.pattern-swatches button{font-size:var(--text-11);display:flex;align-items:center;gap:8px;min-height:38px}.pattern-swatches img{height:26px;width:26px;object-fit:contain}.sources{border-top:1px solid var(--line);margin-top:24px;padding-top:15px;color:var(--muted);font-size:var(--text-11);line-height:var(--leading-1-9)}.sources summary{font-size:var(--text-12)}.sources a{text-decoration-thickness:1px;text-underline-offset:3px;color:#c8d6c1}.sources li{margin:8px 0}.sources p{max-width:800px}footer{border-top:1px solid var(--line);margin:0 4%;padding:22px 0 28px;display:flex;justify-content:space-between;gap:18px;font-size:var(--text-11);color:var(--muted)}
@media(min-width:1400px){main{grid-template-columns:224px minmax(0,1fr)}.exhibit{height:clamp(620px,calc(100svh - 118px),760px)}#stage{right:245px}.view-buttons{right:245px}.controls{width:230px}}
@media(max-width:1100px) and (min-width:851px){main{grid-template-columns:170px minmax(0,1fr);gap:18px}.catalog{padding:19px 10px}.catalog-item{grid-template-columns:30px 1fr;gap:7px}.catalog-item img{width:30px;height:30px}.exhibit{height:640px}.controls{width:185px;padding:0 12px}#stage{right:185px}.view-buttons{right:185px}.exhibit-heading{left:8px}.scene-status{right:200px}.culture{padding:22px}.craft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){header{height:68px;margin:0 5%}.brand{font-size:var(--text-24)}.brand span{font-size:var(--text-14);margin-left:12px}.header-note{display:none}.about-link{font-size:var(--text-10)}main{display:flex;flex-direction:column;padding:20px 5% 30px;gap:18px}.catalog{padding:14px 12px;order:0;align-self:stretch;min-width:0;width:100%}.catalog h1{display:inline;font-size:var(--text-16);margin:0}.catalog .section-kicker{font-size:var(--text-9);display:block;margin-bottom:10px}.catalog-mobile-hint{display:none}.catalog-intro,.catalog-foot{display:none}.catalog-mobile-hint{display:inline;float:right;font-size:var(--text-10);color:var(--muted);line-height:24px}#catalog-list{display:flex;gap:7px;overflow-x:auto;padding:12px 2px 2px;scroll-snap-type:x proximity}.catalog-item{flex:0 0 130px;min-height:57px;grid-template-columns:30px 1fr;padding:6px;scroll-snap-align:start}.catalog-item img{height:30px;width:30px}.catalog-item strong{font-size:var(--text-12)}.catalog-item small{font-size:var(--text-9)}.exhibit{order:1;height:620px}.exhibit-heading{left:8px;top:5px}.exhibit-heading h2{font-size:var(--text-29);margin:10px 0}.exhibit-heading p{font-size:var(--text-12)}.exhibit-heading .section-kicker{font-size:var(--text-9)}#stage{inset:104px 0 150px}.viewer-hint{left:8px;bottom:54px;font-size:var(--text-10)}.desktop-hint{display:none}.touch-hint{display:inline}.view-buttons{right:0;bottom:99px}.view-buttons button{min-height:44px;min-width:50px;font-size:var(--text-12)}.controls{z-index:4;right:0;bottom:47px;width:46px;padding:0 12px;box-shadow:0 8px 32px #07181722}.controls summary{font-size:0;padding:12px 0;min-height:44px}.controls summary span{font-size:var(--text-17)}.controls[open]{width:230px;bottom:47px;padding:0 15px}.controls[open] summary{font-size:var(--text-12)}.controls input[type=range]{height:40px}.controls .field select{height:44px}.controls .part-buttons button{min-height:44px}.controls .toggle-row label{min-height:40px}.controls .toggle-row input{width:20px;height:20px}.controls[open] .control{margin:4px 0 10px}.controls[open] .control-body{max-height:400px;overflow-y:auto;overscroll-behavior:contain}.scene-status{right:5%;top:43%}.model-note{font-size:var(--text-9);bottom:9px;line-height:var(--leading-1-7);padding:0 4px}.culture{order:2;padding:20px 17px}.culture-top .section-kicker{font-size:var(--text-9)}.tabs{gap:30px}.shape-grid{display:block}.shape-grid h3{font-size:var(--text-25)}.shape-facts{padding:15px 0 0;border-left:0;border-top:1px solid var(--line)}.shape-grid p{font-size:var(--text-13)}.craft-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.craft-grid p{font-size:var(--text-11)}.craft-grid h3{font-size:var(--text-16)}.pattern-layout{grid-template-columns:90px 1fr;gap:16px}.pattern-preview{width:90px;height:90px}.pattern-copy h3{font-size:var(--text-23)}.pattern-copy p{font-size:var(--text-12)}.pattern-swatches button{min-height:44px}.sources{font-size:var(--text-11)}footer{margin:0 5%;font-size:var(--text-10)}.culture-top{gap:6px}.exhibit-count{white-space:nowrap}}
@media(max-width:360px){header{gap:10px}.about-link{font-size:var(--text-9)}.brand{font-size:var(--text-21)}.brand span{margin-left:7px}.exhibit{height:590px}.exhibit-heading h2{font-size:var(--text-26)}.craft-grid{gap:20px 10px}.pattern-layout{display:block}.pattern-preview{float:right;margin:0 0 12px 14px}.sources{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
#catalog-list{scrollbar-width:thin;scrollbar-color:#758c7c transparent}#catalog-list::-webkit-scrollbar{height:4px}#catalog-list::-webkit-scrollbar-track{background:transparent}#catalog-list::-webkit-scrollbar-thumb{background:#758c7c;border-radius:4px}

.catalog-item[aria-pressed=true],.tabs button[aria-selected=true]{background:var(--selection-bg);border-color:var(--selection-line);color:var(--accent)}
.claim{margin:0 0 16px}.claim p{margin:0 0 8px}.claim-level{display:inline-block;font-size:var(--text-10);color:var(--accent);border:1px solid var(--line);border-radius:3px;padding:0 6px;margin-right:8px;line-height:var(--leading-1-8)}.claim-evidence{font-size:var(--text-10);color:var(--muted);line-height:var(--leading-1-8)}.claim-evidence p{font-size:inherit;margin:8px 0}.claim-evidence summary{min-height:28px}.craft-grid .claim{margin:8px 0}.craft-grid .claim p{font-size:var(--text-12);line-height:var(--leading-1-8)}.claim-evidence a{overflow-wrap:anywhere}
@media(max-width:850px){
 .exhibit{height:calc(50svh + 136px)}.exhibit-heading{display:none}#stage{inset:0 0 136px;height:50svh}.view-buttons{bottom:84px}.viewer-hint{bottom:44px}.controls,.controls[open]{bottom:32px}.controls[open] .control-body{max-height:min(340px,45svh)}.model-note{bottom:4px}.claim-evidence summary{min-height:36px}.craft-grid .claim p{font-size:var(--text-12)}
}

/* 无纹样时没有预览图，正文独占一列，不能落在图片的90/150px窄列。 */
.pattern-layout--plain{grid-template-columns:minmax(0,1fr)}.pattern-copy{min-width:0}
