.piece-page{--piece-ink:#1a1a1a;--piece-muted:#737477;--piece-line:#dedfdf;--piece-accent:#424e6b;background:#fafafa;color:var(--piece-ink);min-height:100vh}.piece-page-inner{max-width:1344px;margin:auto;padding:28px 68px 100px}.piece-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--piece-muted);font-size:13px}.piece-heading{padding:28px 0 30px;border-bottom:1px solid var(--piece-line)}.piece-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;line-height:1.7;color:var(--piece-muted)}.piece-kind{color:var(--piece-accent)}.piece-title{max-width:24ch;margin:14px 0 12px;font-size:clamp(28px,3vw,44px);font-weight:600;line-height:1.3;letter-spacing:-.04em;overflow-wrap:anywhere}.piece-original-title{font-family:var(--font-libre-bodoni),Georgia,serif;font-size:23px;line-height:1.5;color:var(--piece-muted);margin:0 0 8px}.piece-composer{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:17px;color:var(--piece-accent)}.piece-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}.piece-action-like,.piece-action-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;font-size:14px;font-weight:500;border-radius:3px}.piece-action-primary{background:var(--piece-accent);color:white}.piece-action-like{border:1px solid var(--piece-line)}.piece-action-like[aria-pressed=true]{color:#a02d4a;border-color:#a02d4a;background:#fff2f5}.piece-action-like:disabled{opacity:.55;cursor:wait}.piece-record-count{display:flex;align-items:center;gap:6px;margin-left:auto;color:var(--piece-muted);font-size:13px}.piece-record-count b{color:var(--piece-ink)}.piece-timeline{display:inline-flex;gap:8px;align-items:center;min-height:44px;margin-top:10px;font-size:12px;color:var(--piece-muted)}.piece-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;padding-top:32px}.piece-context,.piece-main{min-width:0;display:flex;flex-direction:column;gap:36px}.piece-context{border-left:1px solid var(--piece-line);padding-left:28px}.piece-section{margin:0;scroll-margin-top:110px}.piece-section h2{font-size:16px;font-weight:600}.piece-list{margin-top:14px}.piece-list,.piece-list>*+*{border-top:1px solid var(--piece-line)}.piece-list-link{display:flex;align-items:center;gap:14px;padding:16px 0;min-height:52px}.piece-list-link:hover{color:var(--piece-accent);background:#f1f2f4}.piece-list-link .truncate{white-space:normal;overflow-wrap:anywhere}.piece-facts{margin-top:12px}.piece-fact{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--piece-line)}.piece-fact dd{text-align:right}.piece-instrument{font-size:14px;color:var(--piece-muted)}.piece-performance-poster{width:56px;height:78px;flex-shrink:0;-o-object-fit:contain;object-fit:contain;background:#f0f0ee}.piece-video{display:block;flex-shrink:0;width:220px}.piece-correction{border-top:1px solid var(--piece-line);margin-top:44px;padding-top:18px}.piece-page :is(a,button):focus-visible{outline:2px solid var(--piece-accent);outline-offset:4px}.piece-back:hover,.piece-composer:hover,.piece-timeline:hover{text-decoration:underline;text-underline-offset:4px}.piece-main>section[aria-label="악보 보기"]{margin:0;padding:0;background:transparent;border:0;border-radius:0}.piece-main>section[aria-label="악보 보기"] h2{font-size:16px}.piece-main>section[aria-label="악보 보기"] ul{border-width:1px 0;border-radius:0}.piece-context>section[aria-label="이 곡의 소식 받기"]{margin:0;padding-top:20px;border-top:1px solid var(--piece-line)}.piece-context>section[aria-label="이 곡의 소식 받기"]>div:first-child{align-items:flex-start;flex-direction:column}.piece-context>section[aria-label="이 곡의 소식 받기"]>div:first-child>:is(a,button){font-size:12px;color:var(--piece-accent);border-radius:3px}@media (max-width:1100px){.piece-page-inner{padding-inline:36px}.piece-body{gap:32px;grid-template-columns:minmax(0,1fr) 280px}.piece-context{padding-left:24px}}@media (max-width:767px){.piece-page-inner{padding:12px 22px 100px}.piece-heading{padding:18px 0 20px}.piece-title{margin-top:10px;font-size:30px}.piece-composer{font-size:16px}.piece-actions{gap:8px;margin-top:18px}.piece-action-like,.piece-action-primary{padding:10px 12px;font-size:13px}.piece-action-primary{flex:1}.piece-record-count{flex-basis:100%;margin:4px 0 0}.piece-body{display:flex;flex-direction:column;gap:32px;padding-top:24px}.piece-context,.piece-main{gap:28px}.piece-context{padding:0;border:0}.piece-list-link{padding:13px 0}}.piece-review-editor>div{border-width:1px 0;border-radius:0;background:transparent;padding:16px 0}.piece-review-editor textarea{border-radius:3px}.piece-review-editor :is(button,a){min-height:44px;border-radius:3px}.piece-review-editor :is(button,a).text-white{background:var(--piece-accent)}.piece-more{width:100%;min-height:44px;margin-top:8px;border-top:1px solid var(--piece-line);text-align:left;font-size:13px;color:var(--piece-accent)}