/* Bloomington Listen 0.1.0 */
.bl{--bl-red:#9b0000;--bl-ink:#1b1b1b;--bl-muted:#595959;--bl-line:#d9d9d6;--bl-card:#fff;--bl-glow:#ffb347;--bl-glow-rgb:255,179,71;--bl-wood:#2b1a12;--bl-panel:#17110d;max-width:1100px;margin:0 auto;padding:0 16px 48px;color:var(--bl-ink)}
.bl *{box-sizing:border-box}
.bl-hero{padding:28px 0 12px}
.bl-kicker{margin:0;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bl-red);font-weight:700}
.bl-hero h2{margin:.15em 0 .25em;font-size:clamp(1.9rem,5vw,3rem);line-height:1.08}
.bl-lede{margin:0;font-size:1.1rem;color:var(--bl-muted);max-width:44rem}
.bl h2{margin-top:0}
.bl-group{margin-top:36px}
.bl-group>h2{margin:0;font-size:1.5rem}
.bl-sub{margin:.2em 0 14px;color:var(--bl-muted)}
.bl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.bl-card,.bl-tile{background:var(--bl-card);border:1px solid var(--bl-line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px}
.bl-card header{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.bl-card h3,.bl-tile h3{margin:0;font-size:1.15rem}
.bl-dialtag{margin:0;font-weight:700;color:var(--bl-red);white-space:nowrap}
.bl-format{margin:0;font-weight:600}
.bl-meta,.bl-also{margin:0;font-size:.9rem;color:var(--bl-muted)}
.bl-actions,.bl-acts{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:auto;padding-top:8px}
.bl-actions a,.bl-acts a,.bl-ext{font-size:.92rem;color:var(--bl-red);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.bl-play{appearance:none;border:0;background:var(--bl-red);color:#fff;font:inherit;font-weight:700;padding:10px 16px;border-radius:999px;cursor:pointer;min-height:44px}
.bl-play:hover{filter:brightness(1.12)}
.bl button:focus-visible,.bl a:focus-visible,.bl-glass:focus-visible,.bl-static input:focus-visible{outline:3px solid #1a73e8;outline-offset:2px}
.bl-tile{text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s}
.bl-tile:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(0,0,0,.12)}
.bl-tile p{margin:0;color:var(--bl-muted)}
.bl-tiles{margin-top:22px}
.bl-ico{width:44px;height:44px;border-radius:12px;background:#f6e9e9;display:block;position:relative}
.bl-ico::after{content:"";position:absolute;inset:0;background-color:var(--bl-red);-webkit-mask:var(--m) center/26px no-repeat;mask:var(--m) center/26px no-repeat}
.bl-ico-radio{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6H8.3l8.3-3.3-.6-1.5L3 6.1A2 2 0 0 0 2 8v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zM8 19a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm12-7h-2v-2h-2v2H4V8h16z'/%3E%3C/svg%3E")}
.bl-ico-music{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v10.55A4 4 0 1 0 14 17V7h4V3z'/%3E%3C/svg%3E")}
.bl-ico-mic{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-6 0v6a3 3 0 0 0 3 3zm5-3a5 5 0 0 1-10 0H5a7 7 0 0 0 6 6.9V21h2v-3.1A7 7 0 0 0 19 11z'/%3E%3C/svg%3E")}
.bl-ico-wave{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 10h2v4H3zm4-4h2v12H7zm4-4h2v20h-2zm4 4h2v12h-2zm4 4h2v4h-2z'/%3E%3C/svg%3E")}
.bl-ico-map{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.3 7 13 7 13s7-7.7 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E")}
.bl-soundnow{margin:14px 0 0;padding:10px 14px;background:#fff7e6;border-left:4px solid var(--bl-glow);border-radius:6px}
.bl-share,.bl-note{margin-top:30px;color:var(--bl-muted)}
.bl-note{border-top:1px solid var(--bl-line);padding-top:20px}
.bl-note h2{font-size:1.2rem;color:var(--bl-ink)}

/* ---- the radio set ---- */
.bl-dialwrap{margin-top:18px}
.bl-set{background:linear-gradient(180deg,#3a2418,var(--bl-wood));border-radius:20px;padding:18px;color:#f3e6d6;box-shadow:0 14px 34px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.12)}
.bl-glass{position:relative;height:104px;border-radius:12px;background:linear-gradient(180deg,#2c2118,#120d09);border:2px solid #0a0705;overflow:hidden;cursor:ew-resize;touch-action:none;box-shadow:inset 0 0 28px rgba(var(--bl-glow-rgb),.18)}
.bl-dialwrap.is-locked .bl-glass{box-shadow:inset 0 0 36px rgba(var(--bl-glow-rgb),.4)}
.bl-ticks{position:absolute;inset:0}
.bl-t{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,224,170,.28)}
.bl-t b{position:absolute;bottom:4px;left:3px;font:600 10px/1 system-ui,sans-serif;color:rgba(255,224,170,.55)}
.bl-mark{position:absolute;appearance:none;border:0;background:none;padding:0;width:28px;height:18px;transform:translateX(-14px);cursor:pointer}
.bl-mark::before{content:"";position:absolute;left:13px;top:0;bottom:0;width:2px;background:var(--bl-glow);border-radius:2px;box-shadow:0 0 8px var(--bl-glow)}
.bl-mark.hi{top:4px}.bl-mark.mid{top:30px}.bl-mark.lo{top:56px}
.bl-mark span{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:2px;font:700 10px/1 system-ui,sans-serif;color:var(--bl-glow);white-space:nowrap;letter-spacing:.02em}
.bl-needle{position:absolute;top:0;bottom:0;width:3px;margin-left:-1px;background:#ff3b30;box-shadow:0 0 10px #ff3b30,0 0 2px #fff;transition:left .16s ease-out;z-index:2;pointer-events:none}
.bl-dialwrap.is-off .bl-needle{opacity:.2}
.bl-readout{display:flex;align-items:center;gap:16px;margin:14px 2px 6px;flex-wrap:wrap}
.bl-freq{font:700 clamp(2.2rem,8vw,3.4rem)/1 ui-monospace,Menlo,monospace;color:var(--bl-glow);text-shadow:0 0 14px rgba(var(--bl-glow-rgb),.6);min-width:3.6ch}
.bl-who{font-size:1.2rem;font-weight:700;flex:1;min-width:8ch}
.bl-eq{display:flex;align-items:flex-end;gap:3px;height:26px;opacity:.25}
.bl-eq i{width:5px;height:6px;background:var(--bl-glow);border-radius:2px}
.is-playing .bl-eq,.bl-eq.on{opacity:1}
.is-playing .bl-eq i,.bl-eq.on i{animation:bl-eq .9s ease-in-out infinite alternate}
.bl-eq i:nth-child(2){animation-delay:.18s!important}.bl-eq i:nth-child(3){animation-delay:.36s!important}.bl-eq i:nth-child(4){animation-delay:.1s!important}
@keyframes bl-eq{from{height:5px}to{height:24px}}
.bl-controls{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.bl-controls button,.bl-chip{appearance:none;border:1px solid rgba(255,224,170,.4);background:rgba(255,255,255,.07);color:#f3e6d6;font:inherit;font-weight:600;padding:10px 16px;border-radius:999px;cursor:pointer;min-height:44px}
.bl-controls button:hover,.bl-chip:hover{background:rgba(255,255,255,.16)}
.bl-controls .bl-surprise{background:var(--bl-glow);color:#2b1a12;border-color:var(--bl-glow)}
.bl-offdial{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;font-size:.9rem;color:#d8c6b0}
.bl-stage{margin-top:10px;padding:14px;border-radius:12px;background:rgba(0,0,0,.28);min-height:64px}
.bl-stage p{margin:0 0 6px}
.bl-now span{display:block;color:#d8c6b0;font-size:.92rem}
.bl-fact{font-size:.95rem}
.bl-hint{font-size:.88rem;color:#d8c6b0}
.bl-stage .bl-ext{color:var(--bl-glow)}
.bl-stage .bl-play{background:var(--bl-glow);color:#2b1a12}
.bl-static{display:inline-flex;gap:8px;align-items:center;margin-top:10px;font-size:.88rem;color:#d8c6b0}
.bl-bar{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 16px;background:var(--bl-panel);color:#f3e6d6;box-shadow:0 -4px 18px rgba(0,0,0,.3)}
.bl-bar[hidden],.bl-dialwrap[hidden]{display:none}
.bl-bar a{color:var(--bl-glow)}
.bl-bar button{appearance:none;border:1px solid rgba(255,224,170,.5);background:none;color:#f3e6d6;border-radius:999px;padding:8px 14px;font:inherit;cursor:pointer;min-height:44px}
.bl-barname{flex:1;min-width:10ch}
@media (max-width:600px){.bl-set{padding:12px}.bl-glass{height:112px}.bl-mark span{font-size:9px}}
@media (prefers-reduced-motion:reduce){.bl-needle{transition:none}.bl-tile{transition:none}.is-playing .bl-eq i,.bl-eq.on i{animation:none;height:14px}}

/* season skin */
.bl[data-season=winter]{--bl-glow:#9fd0ff;--bl-glow-rgb:159,208,255}
.bl[data-season=spring]{--bl-glow:#c5e48a;--bl-glow-rgb:197,228,138}
.bl[data-season=summer]{--bl-glow:#ffc857;--bl-glow-rgb:255,200,87}
.bl[data-season=fall]{--bl-glow:#ffb347;--bl-glow-rgb:255,179,71}
.bl-pick{font-weight:700;color:var(--bl-glow)}
.bl-link{appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;font-weight:600;color:var(--bl-red);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px}
.bl-stage .bl-link{color:var(--bl-glow)}
/* passport, sound of the hour, live music shelf */
.bl-passport,.bl-hour,.bl-shelf{margin-top:30px}
.bl-passport h2,.bl-hour h2,.bl-shelf h2{font-size:1.3rem;margin:0}
.bl-stamps{list-style:none;margin:12px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.bl-stamps li a{display:inline-block;padding:8px 12px;border-radius:999px;border:2px dashed var(--bl-line);color:var(--bl-muted);text-decoration:none;font-weight:700;font-size:.85rem}
.bl-stamps li.on a{border:2px solid var(--bl-red);background:#fbeeee;color:var(--bl-red);transform:rotate(-2deg)}
.bl-shelf .ics-calendar-list,.bl-shelf ul{margin-left:0;padding-left:0}

/* link-styled buttons keep readable text on the theme's link colour */
.bl a.bl-play,.bl a.bp-play{color:#fff;text-decoration:none;display:inline-flex;align-items:center}
.bl .bm-plan a.bl-play{color:#2b1a12}

/* the slider is an overlay for keyboard and screen readers; the marks (buttons) sit beside it, not inside it */
.bl-slider{position:absolute;inset:0;pointer-events:none;border-radius:10px}
.bl-slider:focus-visible{outline:3px solid #8ab4f8;outline-offset:-3px}
.bl-glass:focus-visible{outline:none}

/* reserve the dial's space before the script draws it, so nothing jumps */
.bl-dialwrap{min-height:430px}
@media (max-width:600px){.bl-dialwrap{min-height:620px}}
