:root{--bamboo:#3e5c3a;--bamboo2:#5b7b5a;--ink:#1e1e1a;--ink2:#2b2b26;--wood:#a8865b;--paper:#f7f3ec;--paper2:#faf8f3;--red:#9e3b2e;--line:rgba(62,92,58,.2);--serif:"Noto Serif SC","Songti SC","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.9}a{color:inherit;text-decoration:none}button{font:inherit}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:999;background:#fff;padding:.5rem 1rem}.skip-link:focus{top:1rem}.site-header{position:fixed;inset:0 0 auto 0;z-index:50;height:84px;padding:0 clamp(24px,5vw,96px);display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:1px solid rgba(255,255,255,.16);transition:.4s}.site-header.scrolled{height:68px;background:rgba(247,243,236,.94);color:var(--ink);backdrop-filter:blur(16px);border-color:rgba(30,30,26,.1)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--red);color:#fff;border-radius:50% 48% 46% 48%;font-size:17px}.brand strong{font-size:18px;letter-spacing:.2em}.brand small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.14em;opacity:.72}.site-header nav{display:flex;gap:clamp(18px,2vw,36px);font-size:14px;letter-spacing:.12em}.site-header nav a{position:relative}.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:currentColor;transition:.3s}.site-header nav a:hover:after{right:0}.menu-btn{display:none;background:none;border:0;color:inherit}.hero{height:100vh;min-height:720px;position:relative;color:#fff;overflow:hidden}.hero-bg{position:absolute;inset:0;background:url('yuping-hero.png') center/cover no-repeat;transform:scale(1.02)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,23,18,.9) 0%,rgba(16,23,18,.65) 34%,rgba(16,23,18,.15) 66%,rgba(16,23,18,.24)),linear-gradient(0deg,rgba(12,17,13,.48),transparent 40%)}.hero-content{position:absolute;left:clamp(32px,9vw,170px);top:49%;transform:translateY(-50%);max-width:740px}.eyebrow{font-family:var(--sans);font-size:12px;letter-spacing:.32em;color:var(--bamboo2);text-transform:uppercase}.eyebrow.light{color:#dbe5d4}.hero h1{font-weight:400;font-size:clamp(52px,5.3vw,92px);letter-spacing:.08em;line-height:1.25;margin:22px 0 28px;text-shadow:0 4px 30px rgba(0,0,0,.3)}.hero h1 em{font-style:normal;margin-left:1.2em}.hero-intro{max-width:600px;color:rgba(255,255,255,.78);font-size:17px;line-height:2}.text-link{display:inline-flex;gap:18px;align-items:center;margin-top:22px;padding-bottom:5px;border-bottom:1px solid rgba(62,92,58,.5);letter-spacing:.12em}.text-link.light{border-color:rgba(255,255,255,.5)}.heritage-seal{position:absolute;right:clamp(36px,7vw,130px);top:18%;width:88px;height:88px;display:grid;place-items:center;text-align:center;color:#f5dfd5;border:2px solid #bd5545;outline:1px solid #bd5545;outline-offset:5px;background:rgba(158,59,46,.8);font-size:13px;line-height:1.45;letter-spacing:.15em;transform:rotate(2deg)}.scroll-cue{position:absolute;bottom:30px;left:50%;font-family:var(--sans);font-size:10px;letter-spacing:.2em;opacity:.7;text-align:center}.scroll-cue span{display:block;width:1px;height:45px;background:rgba(255,255,255,.6);margin:0 auto 8px;animation:float 2s ease-in-out infinite}@keyframes float{50%{transform:scaleY(.55);transform-origin:top}}.section{padding:clamp(100px,9vw,170px) clamp(30px,7vw,130px);position:relative}.section-kicker{font-family:var(--sans);font-size:11px;letter-spacing:.5em;color:var(--bamboo2);writing-mode:vertical-rl;position:absolute;left:3vw;top:170px}.intro-heading{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:end;max-width:1320px;margin:0 auto 90px}.intro-heading h2,.section-head h2{font-size:clamp(40px,4vw,66px);line-height:1.35;font-weight:400;margin:0;letter-spacing:.08em}.intro-heading p,.section-head>p{max-width:620px;color:#615f56}.portal-grid{max-width:1450px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.portal{padding:42px 30px 44px;border-right:1px solid var(--line);transition:.4s}.portal:last-child{border:0}.portal:hover{background:var(--bamboo);color:white;transform:translateY(-8px)}.portal span{font-size:12px;color:var(--red)}.portal h3{font-size:24px;font-weight:500;letter-spacing:.12em;margin:40px 0 12px}.portal p{font-size:14px;line-height:1.8;opacity:.72}.milestones{display:flex;align-items:center;justify-content:center;gap:22px;max-width:1350px;margin:90px auto 0;text-align:center}.milestones div{min-width:125px}.milestones strong{display:block;font-size:22px;font-weight:500;color:var(--bamboo)}.milestones span{font-size:12px;color:#7b776d}.milestones i{height:1px;background:var(--line);flex:1}.dark{background:var(--ink);color:var(--paper)}.section-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:end;max-width:1450px;margin:0 auto 90px}.chapter{color:var(--red);font-family:var(--sans);font-size:12px;letter-spacing:.35em}.section-head>p{margin:0}.dark .section-head>p{color:rgba(247,243,236,.6)}.timeline-wrap{max-width:1450px;margin:auto;display:grid;grid-template-columns:1.05fr .95fr;min-height:430px;border:1px solid rgba(255,255,255,.12)}.timeline-tabs{display:grid;grid-template-columns:repeat(2,1fr)}.timeline-tabs button{background:transparent;color:#fff;border:0;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);padding:28px;text-align:left;cursor:pointer;transition:.3s}.timeline-tabs button:hover,.timeline-tabs button[aria-selected=true]{background:var(--bamboo)}.timeline-tabs b{display:block;font-size:18px;font-weight:500}.timeline-tabs span{font-size:12px;opacity:.55}.timeline-panel{padding:70px;background:#262721}.timeline-panel>span{color:var(--wood);font-size:12px;letter-spacing:.3em}.timeline-panel h3{font-size:34px;font-weight:400;line-height:1.45;margin:20px 0}.timeline-panel p{color:rgba(255,255,255,.65)}.legend-grid{max-width:1450px;margin:80px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.legend{padding:34px;border-top:1px solid rgba(255,255,255,.18)}.legend span{font-size:11px;color:#cfb391;letter-spacing:.25em}.legend h3{font-weight:400;font-size:22px}.legend p{font-size:14px;color:rgba(255,255,255,.6)}.meaning-strip{max-width:1450px;margin:70px auto 0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--paper);color:var(--ink)}.meaning-strip div{padding:28px;border-right:1px solid var(--line)}.meaning-strip b,.meaning-strip span{display:block}.meaning-strip b{font-size:18px}.meaning-strip span{color:#777267;font-size:12px}.process-nav{max-width:1450px;margin:auto;display:flex;border-bottom:1px solid var(--line)}.process-nav button{flex:1;padding:18px;border:0;background:transparent;color:#777267;cursor:pointer}.process-nav button.active{color:var(--red);border-bottom:2px solid var(--red)}.process-stage{max-width:1450px;margin:40px auto 0;display:grid;grid-template-columns:.35fr 1fr .7fr;gap:60px;padding:70px;background:#ece7dc}.process-number{font-size:100px;color:rgba(62,92,58,.12);line-height:1}.process-stage h3{font-size:38px;font-weight:400;margin:12px 0}.process-stage ul{padding:0;list-style:none;color:#6a665d;font-size:14px}.process-stage li:before{content:"—";margin-right:10px;color:var(--red)}blockquote{margin:0;padding-left:25px;border-left:2px solid var(--wood);font-size:20px;align-self:center}blockquote cite{display:block;margin-top:20px;font-size:12px;font-style:normal;color:#777267}.craft-facts{max-width:1450px;margin:70px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.craft-facts article{padding:30px;border-left:1px solid var(--line)}.craft-facts strong{font-size:48px;font-weight:400;color:var(--bamboo)}.craft-facts small{font-size:14px}.craft-facts p{font-size:14px;color:#6e6a61}.quote-wide{max-width:1100px;margin:110px auto;text-align:center}.quote-wide p{font-size:clamp(28px,3vw,46px);line-height:1.7}.mini-3d{max-width:1450px;margin:auto;display:grid;grid-template-columns:.7fr 1.3fr;background:#2b2b26;color:#fff;padding:50px;gap:50px;align-items:center}.mini-3d h3{font-size:28px;font-weight:400}.mini-3d p{color:rgba(255,255,255,.55)}.mini-3d>div>span{color:#c3aa88;font-size:12px}.stage-placeholder{height:210px;border:1px dashed rgba(255,255,255,.22);display:grid;place-items:center;align-content:center;gap:12px}.stage-placeholder i,.artifact-stage i{width:34px;height:34px;border:2px solid rgba(255,255,255,.18);border-top-color:#8dac82;border-radius:50%;animation:spin 2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lineage{background:#ede8dc}.family-story{max-width:1450px;margin:auto;display:grid;grid-template-columns:.5fr 1.5fr;gap:70px;padding:70px;background:var(--paper2);box-shadow:0 25px 80px rgba(50,46,35,.09)}.vertical-title{font-size:48px;line-height:1.5;writing-mode:vertical-rl;border-right:1px solid var(--line);padding-right:55px;letter-spacing:.18em}.family-story h3{font-size:34px;font-weight:400}.family-story p{color:#69655b}.family-line{display:flex;align-items:center;margin-top:45px}.family-line span{min-width:110px}.family-line small{color:#898479}.family-line i{height:1px;background:var(--line);flex:1;margin:0 15px}.people-grid{max-width:1450px;margin:35px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.person{padding:40px;background:var(--paper2);border-bottom:3px solid transparent}.person:hover{border-color:var(--red)}.person>span{font-size:11px;letter-spacing:.2em;color:var(--red)}.person h3{font-size:30px;font-weight:400}.person p{color:#6c685f;font-size:14px}.person em{display:block;margin-top:30px;font-style:normal;color:var(--bamboo);letter-spacing:.2em}.object-grid{max-width:1450px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(255,255,255,.12)}.object-card{min-height:290px;padding:42px;border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);transition:.4s}.object-card:hover{background:#31342e}.object-card>span{color:#bba17f;font-size:11px;letter-spacing:.2em}.object-card h3{font-size:32px;font-weight:400}.object-card p{font-size:14px;color:rgba(255,255,255,.58)}.object-card b{font-size:12px;color:#9eb194;font-weight:400;letter-spacing:.24em}.artifact-view{max-width:1450px;margin:90px auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:center}.artifact-view h3{font-size:40px;font-weight:400}.artifact-view p{color:rgba(255,255,255,.58)}.artifact-view button{margin-top:22px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;padding:12px 24px;cursor:pointer}.artifact-stage{height:500px;background:radial-gradient(circle at center,#3a4638,#151714 70%);border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;align-content:center;gap:12px}.artifact-stage small{color:rgba(255,255,255,.4)}.patterns{max-width:1450px;margin:auto;display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.14);padding-top:25px;color:#a9b5a5;letter-spacing:.2em}.impact-grid{max-width:1450px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.impact-grid article{padding:35px;border-top:2px solid var(--bamboo)}.impact-grid strong{font-size:54px;font-weight:400;color:var(--bamboo)}.impact-grid sup,.impact-grid small{font-size:18px}.impact-grid span{display:block;font-size:17px}.impact-grid p{font-size:12px;color:#888276}.today-grid{max-width:1450px;margin:80px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.today-grid article{padding:35px;background:#ede8dc}.today-grid span{color:var(--red)}.today-grid h3{font-size:24px;font-weight:400}.today-grid p{font-size:14px;color:#6d695f}.video-section{max-width:1450px;margin:120px auto}.video-section>div:first-child{display:grid;grid-template-columns:.5fr 1fr 1fr;gap:30px;align-items:end}.video-section h3{font-size:32px;font-weight:400;margin:0}.video-section p{color:#6b675e}.video-shell{position:relative;aspect-ratio:16/9;margin-top:35px;background:#20211d;border:1px solid var(--wood);overflow:hidden}.video-shell:before,.video-shell:after{content:"";position:absolute;width:45px;height:45px;border-color:var(--bamboo2);z-index:2}.video-shell:before{left:12px;top:12px;border-left:2px solid;border-top:2px solid}.video-shell:after{right:12px;bottom:12px;border-right:2px solid;border-bottom:2px solid}.video-shell video{position:absolute;width:100%;height:100%;object-fit:cover;z-index:1}.video-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;color:#e9e5da;gap:5px}.video-empty .flute-icon{font-size:50px;color:#8dac82;letter-spacing:-.35em;transform:rotate(-35deg);margin-bottom:18px}.video-empty small{opacity:.45}.video-meta{font-size:12px;text-align:right}.closing{text-align:center;margin-top:150px}.closing>span{font-size:12px;letter-spacing:.3em;color:var(--red)}.closing h2{font-size:clamp(38px,4vw,64px);font-weight:400;line-height:1.5}footer{background:#161713;color:#fff;padding:70px clamp(30px,7vw,130px) 40px;display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center}footer .footer-brand{display:flex;gap:16px;align-items:center}footer strong{font-size:22px;letter-spacing:.18em}footer p{color:rgba(255,255,255,.45);font-size:12px;margin:0}footer nav{display:flex;justify-content:flex-end;gap:25px;font-size:13px}footer>p{grid-column:1/-1;padding-top:25px;border-top:1px solid rgba(255,255,255,.1)}.music-control{position:fixed;right:25px;bottom:25px;z-index:45;display:flex;align-items:center;gap:10px}.music-control button{width:45px;height:45px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:var(--ink);color:#fff;cursor:pointer}.music-control button.playing span{display:inline-block;animation:spin 5s linear infinite}.music-control label{display:none;background:var(--ink);color:#fff;padding:6px 12px;border-radius:20px;font-family:var(--sans);font-size:11px}.music-control:hover label{display:flex;gap:8px}.music-control input{width:70px}dialog{max-width:540px;border:0;padding:50px;background:var(--paper);color:var(--ink);box-shadow:0 30px 100px #0008}dialog::backdrop{background:#111b;backdrop-filter:blur(4px)}dialog h3{font-size:30px;font-weight:400}dialog code{color:var(--red)}.dialog-close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:28px}.dialog-ok{background:var(--bamboo);color:#fff;border:0;padding:10px 24px;margin-top:15px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s,transform .75s}.reveal.in{opacity:1;transform:none}
@media(max-width:980px){.site-header nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--paper);color:var(--ink);padding:25px;flex-direction:column}.site-header nav.open{display:flex}.menu-btn{display:block}.hero{min-height:680px}.hero h1 em{margin-left:0}.heritage-seal{top:120px}.intro-heading,.section-head,.timeline-wrap,.process-stage,.family-story,.artifact-view{grid-template-columns:1fr}.portal-grid,.meaning-strip,.object-grid,.impact-grid{grid-template-columns:repeat(2,1fr)}.legend-grid,.people-grid,.today-grid{grid-template-columns:1fr}.process-stage{gap:20px}.process-number{font-size:60px}.vertical-title{writing-mode:horizontal-tb;border:0;border-bottom:1px solid var(--line);padding:0 0 25px}.video-section>div:first-child{grid-template-columns:1fr}.patterns{flex-wrap:wrap;gap:20px}.section-kicker{display:none}}
@media(max-width:620px){body{font-size:15px}.site-header{height:68px;padding:0 18px}.brand small{display:none}.hero-content{left:24px;right:24px}.hero h1{font-size:42px}.heritage-seal{width:68px;height:68px;right:24px;font-size:10px}.section{padding:85px 22px}.intro-heading,.section-head{margin-bottom:55px}.portal-grid,.meaning-strip,.object-grid,.impact-grid,.timeline-tabs{grid-template-columns:1fr}.portal,.meaning-strip div{border-right:0;border-bottom:1px solid var(--line)}.milestones{overflow:auto;justify-content:flex-start;padding-bottom:10px}.milestones i{min-width:30px}.timeline-panel{padding:35px}.process-nav{overflow:auto}.process-nav button{min-width:150px}.mini-3d{grid-template-columns:1fr;padding:28px}.family-story{padding:28px}.family-line{align-items:flex-start}.family-line i{min-width:15px}.artifact-stage{height:330px}.patterns{font-size:12px}footer{grid-template-columns:1fr}footer nav{justify-content:flex-start;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation:none!important}}

/* Instrument gallery */
.objects .object-grid{grid-template-columns:1fr}
.objects .object-card{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);min-height:500px;padding:0;border-right:0}
.objects .object-card:last-child{border-bottom:0}
.objects .object-card:nth-child(even) .object-media{order:2}
.object-media{position:relative;margin:0;min-height:500px;background:#ede9df;overflow:hidden}
.object-media img{width:100%;height:100%;display:block;object-fit:contain}
.object-media figcaption{position:absolute;left:0;right:0;bottom:0;padding:42px 24px 18px;background:linear-gradient(transparent,rgba(18,19,16,.94));color:#f7f3ec;font-family:var(--sans);font-size:13px;line-height:1.7}
.object-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(42px,6vw,90px)}
.object-copy>span{color:#bba17f;font-size:11px;letter-spacing:.2em}
.objects .object-card h3{font-size:clamp(34px,4vw,52px);margin:20px 0}
.objects .object-card p{max-width:560px;font-size:16px;color:rgba(255,255,255,.62)}
.objects .object-card b{margin-top:24px}
@media(max-width:760px){.objects .object-card{grid-template-columns:1fr;min-height:0}.objects .object-card:nth-child(even) .object-media{order:0}.object-media{min-height:0;aspect-ratio:4/5}.object-copy{padding:38px 28px 48px}.object-media figcaption{font-size:12px;padding:36px 18px 16px}}

/* Documentary image plates */
.legend-featured{padding-top:0}.legend-image{height:310px;margin:0 0 30px;overflow:hidden;background:#f7f3ec}.legend-image img{width:100%;height:100%;display:block;object-fit:contain}.process-media{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.process-media figure{margin:0;height:300px;overflow:hidden;background:#d8d0c1}.process-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s}.process-media figure:hover img{transform:scale(1.025)}.person{overflow:hidden}.person-media{height:230px;margin:-40px -40px 30px;overflow:hidden;background:#ddd5c8}.person-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s}.person:hover .person-media img{transform:scale(1.025)}
@media(max-width:980px){.process-media{grid-template-columns:repeat(2,minmax(0,1fr))}.process-media figure{height:260px}}
@media(max-width:620px){.legend-image{height:280px}.process-media{grid-template-columns:1fr}.process-media figure{height:220px}.person-media{height:210px}}

/* Oral-history dialog */
.interview-btn{margin-top:18px;padding:10px 18px;border:1px solid var(--bamboo);background:transparent;color:var(--bamboo);cursor:pointer;letter-spacing:.08em;transition:.25s}.interview-btn:hover,.interview-btn:focus-visible{background:var(--bamboo);color:#fff}.person .interview-btn+em{margin-top:22px}.interview-dialog{width:min(720px,calc(100vw - 40px));max-width:720px;max-height:78vh;padding:0;overflow:hidden;border-top:4px solid var(--red)}.interview-dialog-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;padding:30px 40px 22px;border-bottom:1px solid var(--line);background:var(--paper)}.interview-dialog-head h3{margin:8px 0 2px}.interview-dialog-head p{margin:0;color:#777267;font-size:13px}.interview-close{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:26px;line-height:1;cursor:pointer}.interview-close:hover,.interview-close:focus-visible{background:var(--ink);color:#fff}.interview-transcript{max-height:calc(78vh - 145px);overflow-y:auto;padding:24px 40px 40px;scrollbar-color:var(--wood) transparent}.interview-transcript p{margin:0;padding:13px 0;border-bottom:1px solid rgba(62,92,58,.1);font-size:16px;line-height:2;color:#4f4c45}.interview-transcript strong{color:var(--red);font-weight:600}.interview-transcript p:last-child{border-bottom:0}
@media(max-width:620px){.interview-dialog{width:calc(100vw - 24px);max-height:90vh}.interview-dialog-head{padding:22px 20px 16px;gap:15px}.interview-dialog-head h3{font-size:25px}.interview-transcript{max-height:calc(90vh - 126px);padding:12px 20px 28px}.interview-transcript p{font-size:15px;line-height:1.9}}
