.tpc-music-catalog{
  --tpc-text:#202224;
  --tpc-teal:#2f6f73;
  --tpc-line:#d7d4ce;
  color:var(--tpc-text);
}
.tpc-music-jumps{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin:0 0 2.75rem;
}
.tpc-music-jumps a{
  text-decoration:none;
  border:1px solid var(--tpc-line);
  padding:.5rem .78rem;
  border-radius:999px;
  color:var(--tpc-text);
  font-size:.9rem;
  line-height:1.2;
}
.tpc-music-jumps a:hover,
.tpc-music-jumps a:focus{
  border-color:var(--tpc-teal);
  color:var(--tpc-teal);
}
.tpc-music-section{margin:0 0 3.75rem;}
.tpc-music-section h2{
  font-size:clamp(1.55rem,3vw,2.1rem);
  margin:0 0 1rem;
}
.tpc-work{border-top:1px solid var(--tpc-line);}
.tpc-work:last-child{border-bottom:1px solid var(--tpc-line);}
.tpc-work-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1.5rem;
  padding:1rem 0 .95rem;
}
.tpc-work h3{
  font-size:1.04rem;
  margin:0;
  font-weight:600;
  line-height:1.3;
}
.tpc-work-sub{
  margin:.22rem 0 0;
  font-size:.92rem;
  line-height:1.4;
  opacity:.72;
}
.tpc-music-catalog .tpc-work button.tpc-details-toggle{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline !important;
  width:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:.55rem 0 0 !important;
  color:var(--tpc-teal) !important;
  font:inherit !important;
  font-size:.89rem !important;
  font-weight:400 !important;
  line-height:1.3 !important;
  text-decoration:none !important;
  cursor:pointer;
}
.tpc-music-catalog .tpc-work button.tpc-details-toggle:hover,
.tpc-music-catalog .tpc-work button.tpc-details-toggle:focus{
  color:var(--tpc-text) !important;
  text-decoration:underline !important;
  text-underline-offset:3px;
  outline:none !important;
}
.tpc-work-meta{
  text-align:right;
  font-size:.91rem;
  line-height:1.4;
  white-space:nowrap;
  opacity:.78;
}
.tpc-work-details{padding:.15rem 0 1.35rem;}
.tpc-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.15rem 2.25rem;
  max-width:54rem;
}
.tpc-detail-grid p{margin:.5rem 0;line-height:1.45;}
.tpc-detail-grid strong,
.tpc-media-label{
  font-size:.79rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.tpc-links,
.tpc-video-links{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin:1rem 0 .25rem;
}
.tpc-links a,
.tpc-video-links a{
  color:var(--tpc-teal);
  text-underline-offset:3px;
}
.tpc-media{margin:1rem 0;}
.tpc-media-label{margin-bottom:.35rem;}
.tpc-media audio{width:min(100%,34rem);}
.tpc-empty{opacity:.62;}
@media (max-width:640px){
  .tpc-work-summary{grid-template-columns:1fr;gap:.45rem;}
  .tpc-work-meta{text-align:left;white-space:normal;}
  .tpc-detail-grid{grid-template-columns:1fr;gap:0;}
}

/* v0.5 — long-title and instrumentation handling */
.tpc-work-summary{
  grid-template-columns:minmax(280px,1fr) minmax(180px,38%);
  align-items:start;
}
.tpc-work-primary{
  min-width:0;
}
.tpc-work h3{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.tpc-work-meta{
  min-width:0;
  max-width:30rem;
  white-space:normal;
  overflow-wrap:break-word;
}
.tpc-work-meta > div:first-child{
  line-height:1.35;
}
@media (max-width:760px){
  .tpc-work-summary{
    grid-template-columns:1fr;
  }
  .tpc-work-meta{
    max-width:none;
    text-align:left;
  }
}


/* v0.6 — embedded video */
.tpc-video-blocks{margin-top:1rem;}
.tpc-video-item{margin:1rem 0 1.25rem;max-width:42rem;}
.tpc-video-embed{position:relative;width:100%;aspect-ratio:16/9;margin-top:.45rem;background:#000;overflow:hidden;}
.tpc-video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* v0.7 — destination cues */
.tpc-action-link{
  display:inline-flex;
  align-items:center;
  gap:.38rem;
  color:var(--tpc-teal);
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.tpc-action-icon{
  width:1em;
  height:1em;
  flex:0 0 1em;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tpc-media-label-icon{
  display:flex;
  align-items:center;
  gap:.4rem;
}
.tpc-media-label-icon .tpc-action-icon{
  width:.95em;
  height:.95em;
}


/* v0.7.1 — robust typographic destination cues.
   These do not depend on inline SVG rendering. */
.tpc-action-link::before,
.tpc-media-label-icon::before{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  color:currentColor;
  line-height:1;
  text-decoration:none;
}
.tpc-sample-link::before{
  content:"PDF";
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.02em;
  border:1px solid currentColor;
  border-radius:2px;
  padding:.12rem .18rem .1rem;
}
.tpc-purchase-link::before{
  content:"↗";
  font-size:1rem;
  font-weight:600;
}
.tpc-audio-label::before{
  content:"♪";
  font-size:1rem;
}
.tpc-video-label::before{
  content:"▶";
  font-size:.78rem;
}
.tpc-video-item > .tpc-action-link::before{
  content:"▶";
  font-size:.78rem;
}


/* v0.7.2 — unpublished-work contact branch */
.tpc-contact-composer-link {
  color: var(--tpc-teal, #2f6f73);
  text-decoration: none;
  text-underline-offset: 3px;
}
.tpc-contact-composer-link:hover,
.tpc-contact-composer-link:focus {
  color: var(--tpc-dark, #273033);
  text-decoration: underline;
}
.tpc-contact-composer-link [aria-hidden="true"] {
  display: inline-block;
  margin-left: .15em;
  font-size: .88em;
}


/* v0.7.3 — stable anchors for homepage Featured Works */
.tpc-music-catalog .tpc-work {
  scroll-margin-top: 2rem;
}

/* Give an anchored work a restrained visual cue after navigation. */
.tpc-music-catalog .tpc-work:target {
  background: rgba(220, 233, 232, 0.55);
  outline: 1px solid var(--tpc-line, #d7d4ce);
  outline-offset: 0;
}
