/* Shows and venues (Flyermuur style) */
.shist{display:flex;align-items:flex-end;gap:2px;overflow-x:auto;padding:6px 2px 18px;min-height:90px}
.shist .hbar{position:relative;display:flex;align-items:flex-end;justify-content:center;flex:1 0 9px;max-width:22px;height:70px;background:none;border:0;padding:0;cursor:pointer;color:var(--ink);text-decoration:none}
.shist .hbar:disabled{cursor:default}
.shist .hbar span{display:block;width:100%;background:var(--red);border:2px solid #111;border-bottom-width:0}
.shist .hbar:nth-child(2n) span{background:var(--yel)}
.shist .hbar.on span,.shist .hbar:hover span{background:var(--pink)}
.shist .hbar small{position:absolute;top:100%;left:50%;transform:translateX(-50%);font-family:var(--label);font-size:11px;white-space:nowrap;padding-top:2px}
.shist.years{gap:3px}
.shist.years .hbar{flex-basis:12px}
.live-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 20px;margin:6px 0 12px}
.live-cols .kick,.sec>.kick{display:block;margin:6px 0}
.chip.ext{opacity:.8;border-style:dashed}
.chip small{opacity:.7}
.slist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.srow{display:grid;grid-template-columns:100px 1fr auto;gap:10px;align-items:center;text-decoration:none;color:var(--ink);background:var(--card);border:2px solid #111;padding:7px 10px;box-shadow:3px 3px 0 #111}
.srow:hover,.srow:focus-visible{transform:translate(-1px,-1px);box-shadow:4px 5px 0 #111}
.srow .sd{font-family:var(--label);font-size:15px;text-transform:uppercase;letter-spacing:.03em}
.srow .sv b{display:block;font-weight:700}
.srow .sv small{display:block;color:var(--muted);font-size:13px}
.srow .pill{margin-left:0;font-size:11px;white-space:nowrap}
@media (max-width:560px){.srow{grid-template-columns:1fr}.srow .pill{justify-self:start}}
.pill.ev-documented{color:var(--grn-ink,#0a7a3a)}
.pill.ev-archive,.pill.ev-announced{opacity:.75}
/* show page: the bill as a flyer */
.flyer{position:relative;margin:8px auto 18px;max-width:640px;background:var(--yel);color:#111;border:3px solid #111;box-shadow:9px 10px 0 #111;padding:22px 22px 18px;transform:rotate(-1deg);text-align:center;overflow:hidden}
.flyer.fl-1{background:var(--pink);transform:rotate(.8deg)}
.flyer.fl-2{background:#efe9d8}
.flyer.fl-3{background:var(--grn);transform:rotate(-.5deg)}
.flyer::before{content:"";position:absolute;inset:0;background:radial-gradient(rgba(17,17,17,.12) 1.2px,transparent 1.6px) 0 0/8px 8px;pointer-events:none}
.flyer>*{position:relative}
.fl-date{display:inline-block;background:#111;color:#efe9d8;font-family:var(--label);font-size:20px;letter-spacing:.08em;text-transform:uppercase;padding:2px 12px;transform:rotate(1.5deg)}
.fl-title{font-family:var(--label);font-size:18px;text-transform:uppercase;margin-top:10px}
.fl-bill{list-style:none;margin:14px 0;padding:0;display:grid;gap:4px}
.fl-bill li{font-family:var(--stencil);text-transform:uppercase;line-height:1.02;overflow-wrap:anywhere}
.fl-bill li.sz0{font-size:clamp(30px,8vw,58px)}
.fl-bill li.sz1{font-size:clamp(26px,6.5vw,44px)}
.fl-bill li.sz2{font-size:clamp(22px,5.5vw,36px)}
.fl-bill li.sz3{font-size:clamp(18px,4.5vw,28px)}
.fl-bill a{color:#111;text-decoration:none;border-bottom:4px solid #111}
.fl-bill a:hover{background:#111;color:var(--yel)}
.fl-bill .ext{opacity:.75}
.fl-venue{display:grid;gap:2px;border-top:3px dashed #111;padding-top:10px;font-family:var(--display);font-size:clamp(22px,5vw,32px);text-transform:uppercase}
.fl-venue a{color:#111}
.fl-venue span{font-family:var(--label);font-size:16px;letter-spacing:.06em}
/* band links */
.blinks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:6px 0 10px}
.blink{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;text-decoration:none;color:var(--ink);background:var(--card);border:2px solid #111;padding:6px 10px;box-shadow:3px 3px 0 #111;min-width:0}
.blink:hover,.blink:focus-visible{transform:translate(-1px,-1px);box-shadow:4px 5px 0 #111}
.blink .ic{display:grid;place-items:center;width:30px;height:30px;background:#111;color:var(--yel);font-family:var(--display);font-size:17px}
.blink.k-bandcamp .ic,.blink.k-release .ic{background:#1da0c3;color:#fff}
.blink.k-facebook .ic{background:#1877f2;color:#fff}
.blink.k-instagram .ic{background:var(--pink);color:#111}
.blink.k-spotify .ic{background:#1db954;color:#111}
.blink.k-youtube .ic{background:var(--red);color:#fff}
.blink b{display:block;font-family:var(--label);font-weight:400;text-transform:uppercase;letter-spacing:.04em}
.blink small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* live map */
.livemap{height:min(70vh,520px)}
.lm-ctl .row{gap:10px;align-items:center;margin:0;flex-wrap:nowrap}
.lm-ctl .btn{padding:2px 10px;font-size:14px;box-shadow:2px 2px 0 #111}
.lm-ctl .row label{font-size:13px;font-family:var(--label);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;gap:5px}
.lm-list{margin-top:10px;align-items:center}
.leaflet-popup-content a{color:#111;font-weight:700}
.cs2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media (max-width:520px){.cs2{grid-template-columns:1fr}}
.stats a:nth-child(5){background:var(--org);transform:rotate(-1.5deg)}
.stats a:nth-child(6){background:var(--yel);transform:rotate(2deg)}
.maptoggle{margin:0 0 10px}
.maptoggle button{font:inherit;cursor:pointer}
.pin.show-pin{background:var(--yel);color:#111}
.maptoggle button{padding:5px 14px;font-family:var(--label);text-transform:uppercase;letter-spacing:.05em;font-size:19px;border:2.5px solid #111;background:var(--card);color:var(--ink);box-shadow:2px 3px 0 #111;transform:rotate(-1deg)}
.maptoggle button:nth-child(2n){transform:rotate(1deg)}
.maptoggle button[aria-selected="true"]{background:var(--yel);color:#111}
/* shared the stage */
.stage-filters{display:flex;flex-wrap:wrap;gap:8px 14px;margin:8px 0}
.stage-filters label{display:grid;gap:2px;font-family:var(--label);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.stage-filters select{font:inherit;font-size:15px;text-transform:none;max-width:260px}
.weblegend .lg-line{display:inline-block;width:26px;height:0;border-top:3px solid var(--ink);vertical-align:middle;margin-right:6px}
.weblegend .lg-line.dash{border-top-style:dashed}
.weblegend .lg-act{display:inline-block;width:12px;height:12px;border:2px solid var(--muted);background:var(--paper);vertical-align:middle;margin-right:6px}
.stage-rank{margin:6px 0;padding-left:28px;display:grid;gap:4px}
.stage-rank li{display:flex;align-items:center;gap:8px}
.stage-row{flex:1;display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:10px;align-items:center;text-align:left;background:var(--card);color:var(--ink);border:2px solid #111;padding:4px 8px;font:inherit;cursor:pointer;box-shadow:2px 2px 0 #111}
.stage-row .n{font-weight:700}
.stage-row .bar{height:10px;background:linear-gradient(90deg,var(--red) var(--w),transparent var(--w));border:1px solid #111}
.stage-row.ext .n{opacity:.7;font-style:italic}
.stage-row small{white-space:nowrap;color:var(--muted)}
@media (max-width:560px){.stage-row{grid-template-columns:1fr auto}.stage-row .bar{display:none}}
.stage-card{max-height:46vh;overflow:auto}
.stage-shows{margin:6px 0 0;padding-left:18px;font-size:13px}
.stage-shows li.ann{opacity:.75;font-style:italic}
/* every show has a story */
.playorder{margin:4px 0;padding-left:26px;font-family:var(--stencil);text-transform:uppercase;font-size:20px;display:grid;gap:2px}
.there{margin-bottom:16px}
.there-form{gap:8px;flex-wrap:wrap;margin-top:8px}
.there-form input[name=name]{min-width:200px}
.there-chip{background:var(--grn)!important}
.memories{list-style:none;margin:8px 0 14px;padding:0;display:grid;gap:10px}
.memories.sub{margin:8px 0 0 18px;padding-left:12px;border-left:3px dashed var(--ink)}
.memory{background:var(--card);border:2px solid #111;box-shadow:3px 3px 0 #111;padding:8px 12px}
.memories.sub .memory{box-shadow:none}
.memory .mbody{margin:4px 0;white-space:normal;overflow-wrap:anywhere}
.memory .mact{font-size:13px}
.story-form{display:grid;gap:4px;margin-top:6px}
.story-form .field label{display:grid;gap:2px}
.muted.small{font-size:12px}
/* dna map */
.dna-ctl{display:grid;gap:6px;margin:8px 0}
.dna-layers{display:flex;flex-wrap:wrap;gap:6px 14px;border:0;padding:0;margin:0}
.dna-layers legend{font-family:var(--label);font-size:13px;text-transform:uppercase;letter-spacing:.05em;padding:0;margin-bottom:4px}
.dna-layers .lay{display:inline-flex;align-items:center;gap:6px;font-weight:700;cursor:pointer}
.dna-layers .lay i{display:inline-block;width:26px;height:0;border-top:4px solid var(--ink)}
.dna-layers .lay-bills i{border-top-color:var(--pink)}
.dna-layers .lay-labels i{border-top:4px dotted #1da0c3}
.dna-layers .lay-venues i{border-top:4px dashed var(--org)}
.dna-start{display:grid;gap:4px;margin-top:6px}
.dna-start label{font-family:var(--label);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.dna-start input{min-width:min(100%,360px)}
.dna-route{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end}
.dna-route label{display:grid;gap:2px;font-family:var(--label);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.dna-route input{min-width:min(100%,260px);font:inherit;text-transform:none}
.dna-steps{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.dna-steps li{display:flex;gap:10px;align-items:baseline;background:var(--card);border:2px solid #111;padding:6px 10px;box-shadow:2px 2px 0 #111}
.dna-steps .dot{flex:0 0 14px;height:14px;border:2px solid #111;background:var(--ink)}
.dna-steps .k-bills .dot{background:var(--pink)}
.dna-steps .k-labels .dot{background:#1da0c3}
.dna-steps .k-venues .dot{background:var(--org)}
.dna-rel{display:grid;gap:4px;font-size:13px;max-height:30vh;overflow:auto}
.dna-rel a{color:#111}
/* the info card of the networks sits under the web, never on top of it */
.webcard.netcard{position:relative;left:auto;right:auto;bottom:auto;margin:10px 0 0;max-height:none}
.webcard.netcard .dna-rel{max-height:none}
.webcard.netcard .stage-card{max-height:40vh}
/* sources page */
.src-warn{margin:12px 0 18px;padding:12px 14px;background:var(--yel);color:#111;border:2.5px solid #111;box-shadow:4px 4px 0 #111;transform:rotate(-.4deg)}
.src-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.src-list li{background:var(--card);border:2px solid #111;padding:3px 10px;box-shadow:2px 2px 0 #111}
.src-list a{color:var(--ink)}
/* guestbook */
.gb-show{cursor:pointer}
.gb-show:hover,.gb-show:focus-visible{transform:translate(-1px,-1px);box-shadow:4px 5px 0 #111}
.gb-ctx{font-size:13px;margin:2px 0}
.gb-ctx a{color:var(--ink);font-weight:700}
.gb-parent{margin:6px 0;padding:4px 10px;border-left:3px solid var(--pink);font-size:13px;color:var(--muted)}
.gb-parent b{color:var(--ink)}
.memory.hl{outline:4px solid var(--pink);outline-offset:3px}
.gb-own .gb-ctx{color:var(--muted)}
#gbNew .story-form{margin-top:12px;background:var(--card);border:2px solid #111;box-shadow:3px 3px 0 #111;padding:10px 12px}
.story-form .cs2{align-items:start;gap:4px 16px}
.story-form .field{margin:0 0 8px}
.story-form .field label{gap:6px}
.story-form .field small{display:block;margin-top:4px;font-size:12px;line-height:1.4}
.story-form .row{margin-top:4px}
/* agenda / upcoming shows */
.decade[hidden]{display:none}
.pill.up-pill{background:var(--yel);color:#111;border-color:#111}
.chip.go-chip{background:var(--yel)!important}
.slist.soon .srow{border-color:#111;background:var(--card);box-shadow:3px 3px 0 var(--pink)}
.there-form input[name=name]{width:auto;flex:1 1 220px;max-width:360px}
.scene-list a .up-acts{display:block;margin-top:6px;font-family:var(--body);font-size:13px;font-weight:700;text-transform:none;letter-spacing:0;line-height:1.35}
/* YouTube */
.ytgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:8px 0}
.yt{margin:0;background:var(--card);border:2px solid #111;box-shadow:3px 3px 0 #111;display:flex;flex-direction:column}
.yt-play{position:relative;display:block;padding:0;border:0;border-bottom:2px solid #111;background:#111;cursor:pointer;aspect-ratio:16/9;overflow:hidden}
.yt-play img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}
.yt-play:hover img,.yt-play:focus-visible img{opacity:1}
.yt-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:40px;display:grid;place-items:center;background:var(--red);color:#fff;border:2px solid #111;font-size:20px;box-shadow:2px 2px 0 #111}
.yt-frame{aspect-ratio:16/9;border-bottom:2px solid #111;background:#000}
.yt-frame iframe{width:100%;height:100%;border:0;display:block}
.yt figcaption{display:grid;gap:3px;padding:8px 10px;font-size:13px}
.yt figcaption b{font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.yt figcaption small{color:var(--muted)}
.yt figcaption a{color:var(--ink);font-size:12px}

.stats a.st-live{background:var(--org);transform:rotate(-1deg)}
.live-list .vid-pill{margin-left:auto;white-space:nowrap}
.realflyer{margin:0 auto 18px;max-width:640px;border:3px solid #111;box-shadow:8px 8px 0 #111;background:#111;transform:rotate(-.6deg)}
.realflyer img{display:block;width:100%;height:auto}
.fl-gen{margin:0 0 14px}.fl-gen summary{cursor:pointer;font-family:var(--label);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.flyer-prev{max-width:260px;max-height:340px;border:2px solid #111;display:block;margin:8px 0}

/* discovery layer */
.trail{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;margin:0 0 14px;padding:6px 10px;border:2px dashed #111;background:#fffef6}
.trail .kick{margin:0 4px 0 0}.trail a{color:inherit}.trail b{font-weight:700}
.trail .linkish{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;color:#666}
.hi{border:3px solid #111;background:var(--yel);padding:14px;box-shadow:6px 6px 0 #111}
.hi .hi-media{max-width:520px}.hi .ytgrid,.hi .yt{max-width:520px}
.hi-show{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;text-decoration:none;color:#111;font-size:20px}
.hi-show .hi-date{font-family:var(--label);text-transform:uppercase;font-size:15px}.hi-show span:last-child{font-size:15px}
.hi .chips{margin-top:8px}.hi .chip{cursor:pointer}
button.chip{font:inherit;border:2px solid #111;background:#fff}
.disc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.disc{display:flex;flex-direction:column;gap:6px;padding:14px;border:3px solid #111;background:#fffef6;color:#111;text-decoration:none;box-shadow:5px 5px 0 #111;transition:transform .12s}
.disc:nth-child(3n+1){border-top:10px solid var(--pink)}.disc:nth-child(3n+2){border-top:10px solid var(--grn)}.disc:nth-child(3n+3){border-top:10px solid var(--org)}
a.disc:hover,a.disc:focus-visible{transform:translate(-2px,-3px);box-shadow:7px 8px 0 #111}
.disc b{font-size:18px;line-height:1.2}.disc span:last-child{color:#444;font-size:14px}
.hub-pick{max-width:420px}.hub-cards .field{margin-top:6px}
