#lineup .lineup-intro { margin-bottom: 34px; }
#lineup .lineup-intro h2 { margin: 20px 0 10px; font-size: 30px; }
#lineup .lineup-intro>p:last-child { line-height: 1.8; }
.lineup-group + .lineup-group { margin-top: 44px; }
.lineup-group__heading { display:flex; align-items:center; gap:16px; margin:0 0 20px; font-size:16px; font-weight:500; letter-spacing:.15em; color:#dce2d6; }
.lineup-group__heading::after { content:""; flex:1; height:1px; background:#dce2d62e; }
#lineup .lineup-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 18px; }
.performer { min-width:0; }
.performer__button { display:block; padding:0; width:100%; border:0; background:none; color:#f2f0e9; text-align:left; cursor:pointer; font:inherit; }
.performer__photo { position:relative; display:block; overflow:hidden; background:#374238; aspect-ratio:1; }
.performer__photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.performer__plus { position:absolute; right:10px; bottom:10px; width:32px; height:32px; border:1px solid #f5f4e6a0; border-radius:50%; background:#253028ce; color:white; }
.performer__plus::before, .performer__plus::after { content:""; position:absolute; top:50%; left:50%; width:14px; height:1px; background:currentColor; transform:translate(-50%,-50%); }
.performer__plus::after { transform:translate(-50%,-50%) rotate(90deg); }
.performer__name { display:block; margin:12px 0 4px; font-size:clamp(16px,1.3vw,21px); line-height:1.4; font-weight:500; overflow-wrap:anywhere; }
.performer__button:hover .performer__photo img { transform:scale(1.035); }
.performer__button:focus-visible { outline:2px solid #dbe8b0; outline-offset:6px; }
.performer__fallback { margin-top:12px; color:#e5e9df; font-size:13px; }
.performer__fallback p { white-space:pre-line; line-height:1.9; }
.js .performer__fallback { display:none; }
.artist-dialog { padding:0; border:0; width:min(880px,calc(100% - 48px)); max-width:none; max-height:calc(100dvh - 48px); margin:auto; background:#f6f5ef; color:#243028; box-shadow:0 24px 100px #0006; overflow-y:auto; overscroll-behavior:contain; }
.artist-dialog::backdrop { background:rgba(13,21,16,.8); backdrop-filter:blur(5px); }
.artist-dialog__bar { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; padding:12px 20px; border-bottom:1px solid #24302822; background:#f6f5ef; }
.artist-dialog__label { font-size:11px; letter-spacing:.18em; }
.artist-dialog__close { display:flex; align-items:center; gap:10px; min-width:44px; min-height:44px; padding:0 6px 0 12px; border:0; background:none; color:inherit; font:inherit; font-size:12px; cursor:pointer; }
.artist-dialog__close span { font-size:30px; font-weight:300; line-height:1; }
.artist-dialog__close:focus-visible { outline:2px solid #526b46; outline-offset:1px; }
.artist-dialog__layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:start; gap:32px; padding:30px; }
.artist-dialog__image { display:block; width:100%; max-height:65dvh; object-fit:contain; background:#e5e7de; }
.artist-dialog__category { margin:0 0 10px; font-size:11px; letter-spacing:.18em; color:#62705c; }
.artist-dialog__title { margin:0 0 24px; font-size:clamp(26px,3vw,38px); line-height:1.25; font-weight:500; overflow-wrap:anywhere; }
.artist-dialog__profile { margin:0; white-space:pre-line; font-size:14px; line-height:1.95; overflow-wrap:anywhere; }
html.artist-dialog-open { overflow:hidden; }
@media (max-width:639px) {
  #lineup .lineup-grid { gap:24px 14px; }
  .artist-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px); }
  .artist-dialog__bar { padding:8px 16px; }
  .artist-dialog__layout { grid-template-columns:1fr; gap:24px; padding:20px; }
  .artist-dialog__image { max-height:40dvh; }
  .artist-dialog__title { margin-bottom:20px; }
  .artist-dialog__profile { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) { .performer__photo img { transition:none; } }
