:root{--ink:#182033;--yellow:#ffd84d;--cream:#fffaf0;--orange:#ff7356;--blue:#4b71f0;--muted:#6d7484;--line:#e7e8ec;--card:#fff;--shadow:0 12px 30px rgba(25,32,51,.09)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#f8f8fa;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
button,input{font:inherit}
.hero{position:relative;overflow:hidden;background:var(--yellow);padding:22px 20px 28px;border-radius:0 0 32px 32px}
.hero:after{content:"";position:absolute;width:170px;height:170px;border:34px solid rgba(255,255,255,.24);border-radius:50%;right:-72px;top:40px}
.hero-inner{position:relative;z-index:1}
.brand{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;position:relative;z-index:1}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--ink);color:#fff;font-weight:900}
.hero h1{font-size:43px;line-height:1.03;letter-spacing:-2px;margin:31px 0 9px;position:relative;z-index:1}
.hero h1 em{font-style:normal;color:#fff;-webkit-text-stroke:1.5px var(--ink);text-shadow:3px 3px 0 var(--ink)}
.hero p{margin:0 0 22px;font-size:16px}
.hero-note{position:absolute;font-weight:900;font-size:42px;color:rgba(24,32,51,.17);transform:rotate(12deg)}
.note-a{right:82px;top:24px}
.note-b{right:26px;top:128px}
.search-panel>strong,.search-panel>small{display:none}
.search-wrap{height:54px;background:#fff;display:flex;align-items:center;border-radius:18px;box-shadow:0 8px 18px rgba(102,76,0,.13);padding:0 14px;position:relative;z-index:2}
.search-wrap svg{width:22px;fill:none;stroke:var(--ink);stroke-width:2}
.search-wrap input{border:0;outline:0;flex:1;height:100%;font-size:16px;padding:0 10px;color:var(--ink);min-width:0}
.search-wrap button{border:0;background:#eef0f4;width:28px;height:28px;border-radius:50%;font-size:21px;line-height:1;color:#596070;display:none}
.search-wrap.has-value button{display:block}
main{max-width:1380px;margin:auto;padding:20px 16px 52px}
.filters{display:flex;overflow-x:auto;gap:10px;padding:1px 0 14px;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.filter{height:43px;border:1.5px solid #e1e3e8;background:#fff;border-radius:14px;padding:0 14px;white-space:nowrap;font-size:14px;font-weight:700;color:#52596a}
.filter.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 6px 13px rgba(24,32,51,.18)}
.result-head{display:flex;align-items:baseline;justify-content:space-between;margin:5px 2px 14px}
.result-head h2{font-size:21px;margin:0;letter-spacing:-.5px}
.result-head span{font-size:13px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.instrument{padding:0;text-align:left;border:0;background:var(--card);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);color:var(--ink);transition:transform .18s ease,box-shadow .18s ease;cursor:pointer}
.instrument:active{transform:scale(.975)}
.photo{aspect-ratio:1.18;position:relative;background:#e9ebef;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.instrument:hover .photo img{transform:scale(1.035)}
.cat-badge{position:absolute;left:9px;top:9px;background:rgba(255,255,255,.9);backdrop-filter:blur(7px);font-size:11px;font-weight:700;padding:5px 8px;border-radius:8px}
.fallback{position:absolute;inset:0;display:none;place-items:center;font-size:50px;background:linear-gradient(145deg,#f4ecd4,#dfe8f4)}
.instrument-copy{padding:13px 13px 14px}
.instrument h3{font-size:17px;margin:0 0 2px;line-height:1.3}
.en{font-size:12px;color:#808696;margin:0 0 11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.keywords{font-size:12px;color:#50586a;margin:0 0 13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.learn{display:flex;justify-content:space-between;align-items:center;color:var(--blue);font-size:13px;font-weight:800}
.learn i{font-style:normal;font-size:18px}
.empty{text-align:center;padding:60px 15px}
.empty span{font-size:44px}
.empty h3{margin:12px 0 6px}
.empty p{margin:0;color:var(--muted)}
footer{background:var(--ink);color:#fff;text-align:center;padding:30px 18px 36px;display:flex;flex-direction:column;align-items:center;gap:10px}
footer p{font-size:13px;margin:0;color:#cdd2df}
.small{width:30px;height:30px;background:var(--yellow);color:var(--ink)}
dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#f8f8fa;overflow-y:auto;transform:translateY(12px);opacity:0;transition:.22s ease}
dialog[open]{transform:none;opacity:1}
@starting-style{dialog[open]{transform:translateY(12px);opacity:0}
}
dialog::backdrop{background:rgba(9,12,20,.45)}
.detail-card{max-width:720px;min-height:100%;margin:auto;background:#f8f8fa}
.back{position:sticky;top:0;z-index:5;border:0;width:100%;height:54px;background:rgba(248,248,250,.92);backdrop-filter:blur(12px);text-align:left;padding:0 17px;font-weight:750;color:var(--ink)}
.back span{font-size:21px;margin-right:6px}
.detail-hero{position:relative;height:330px;background:#ddd;overflow:hidden}
.detail-hero img{width:100%;height:100%;object-fit:cover}
.detail-shade{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(9,12,20,.78))}
.detail-title{position:absolute;display:flex;align-items:center;gap:13px;left:20px;bottom:22px;color:#fff}
.detail-title>span{font-size:38px}
.detail-title h2{font-size:30px;margin:0}
.detail-title p{margin:2px 0 0;color:#eceff6}
.detail-body{padding:20px 17px 50px}
.keyword-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:23px}
.keyword-row span{padding:7px 11px;border-radius:10px;background:#fff2c3;color:#664f00;font-size:13px;font-weight:700}
.detail-body section{background:#fff;border:1px solid var(--line);padding:18px;border-radius:18px;margin:12px 0}
.detail-body section.history-section{background:#fffaf0;border-color:#f0dda0}
.detail-body h3{font-size:17px;margin:0 0 10px}
.detail-body h3 b{font-size:12px;color:var(--orange);margin-right:7px}
.detail-body section p{font-size:16px;line-height:1.8;color:#4b5263;margin:0}
.where{display:flex;gap:8px;flex-wrap:wrap}
.where span{background:#f0f3fa;padding:9px 11px;border-radius:10px;font-size:14px}
.audio-soon{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:17px;border-radius:18px;margin-top:18px}
.audio-soon>span:first-child{font-size:24px}
.audio-soon div{display:flex;flex-direction:column;flex:1}
.audio-soon small{color:#adb5c7;margin-top:3px}
.soon{font-size:11px;background:var(--yellow);color:var(--ink);padding:6px 8px;border-radius:8px;font-weight:800}
@media(min-width:620px){.hero{text-align:center;padding-bottom:34px}
.brand{justify-content:center}
.hero h1{font-size:52px}
.hero h1 br{display:none}
.hero h1 em{margin-left:10px}
.search-wrap{max-width:580px;margin:auto}
.grid{grid-template-columns:repeat(3,1fr);gap:18px}
.filters{justify-content:center}
.detail-hero{height:420px}
}
@media(min-width:930px){.grid{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:900px){body{background:#f4f5f8}
.hero{padding:28px 38px 30px;border-radius:0 0 40px 40px;text-align:left}
.hero-inner{max-width:1320px;margin:auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:center;gap:48px}
.brand{justify-content:flex-start}
.hero h1{font-size:58px;margin:22px 0 8px;line-height:.98}
.hero h1 br{display:none}
.hero h1 em{margin-left:12px}
.hero p{margin:0;font-size:17px}
.search-panel{background:rgba(255,255,255,.34);border:1px solid rgba(24,32,51,.09);border-radius:24px;padding:22px 24px 18px;box-shadow:0 16px 34px rgba(102,76,0,.09)}
.search-panel>strong,.search-panel>small{display:block}
.search-panel>strong{font-size:18px}
.search-panel>small{font-size:13px;color:#665b32}
.search-wrap{max-width:none;margin:10px 0 8px;height:58px}
.hero:after{width:260px;height:260px;border-width:48px;right:-72px;top:-80px}
.note-a{right:46%;top:34px}
.note-b{right:4%;top:160px}
main{padding:26px 30px 72px}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px 14px;margin-bottom:22px;box-shadow:0 8px 24px rgba(25,32,51,.06)}
.filters{flex:1;justify-content:flex-start;overflow:visible;flex-wrap:wrap;padding:0}
.filter{height:42px}
.result-head{flex:0 0 auto;gap:10px;margin:0 4px}
.result-head h2{font-size:18px}
.result-head span{font-size:13px}
.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.instrument:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(25,32,51,.14)}
.instrument:active{transform:translateY(-1px) scale(.99)}
.photo{aspect-ratio:1.35}
.instrument-copy{padding:16px 16px 17px}
.instrument h3{font-size:19px}
.en,.keywords{font-size:13px}
.learn{font-size:14px}
footer{flex-direction:row;justify-content:center;padding:24px 18px}
dialog{inset:24px;width:calc(100% - 48px);height:calc(100% - 48px);max-width:1180px;max-height:calc(100% - 48px);margin:auto;border-radius:28px;box-shadow:0 30px 80px rgba(9,12,20,.3)}
dialog::backdrop{background:rgba(9,12,20,.62);backdrop-filter:blur(4px)}
.detail-card{max-width:none;min-height:100%;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.25fr);grid-template-rows:54px auto;align-items:start}
.back{grid-column:1/-1;border-bottom:1px solid var(--line);padding:0 24px}
.detail-hero{grid-column:1;grid-row:2;position:sticky;top:54px;height:calc(100vh - 102px)}
.detail-title{left:28px;bottom:30px}
.detail-title h2{font-size:36px}
.detail-body{grid-column:2;grid-row:2;padding:24px 26px 40px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
.keyword-row{grid-column:1/-1;margin:0 0 4px}
.detail-body section{margin:0;padding:17px}
.detail-body section:nth-of-type(1),.detail-body section:nth-of-type(2),.detail-body section:nth-of-type(7){grid-column:1/-1}
.detail-body section p{line-height:1.7}
}
@media(min-width:1180px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:899px){.catalog-toolbar{display:block}
}
@media(max-width:350px){.grid{gap:9px}
.instrument-copy{padding:11px}
.instrument h3{font-size:15px}
}
