@font-face {
  font-family:'Soyboy Roboto Mono'; font-style:normal; font-weight:100 700;
  font-display:swap; src:url('./fonts/RobotoMono-Variable.ttf') format('truetype');
}
.soy-player {
  --player-text:#fff; --player-highlight:#86cceb; --player-background:transparent;
  position:relative; isolation:isolate; display:grid; align-items:center;
  grid-template-rows:minmax(0,1fr) 30px 43px 44px 100px 24px;
  gap:4px; width:100%; height:100%; min-height:410px; padding:14px 24px;
  color:var(--player-text); background:var(--player-background); overflow:hidden;
  font-family:'Soyboy Roboto Mono','Courier New',monospace; font-weight:100; text-align:center;
  box-sizing:border-box; line-height:1.25;
}
.soy-player *, .soy-player *::before, .soy-player *::after { box-sizing:border-box; }
.soy-player [hidden] { display:none !important; }
.soy-player button, .soy-player input { font:inherit; }
.soy-player button { cursor:pointer; color:inherit; -webkit-tap-highlight-color:transparent; }
.soy-player button:focus-visible, .soy-player a:focus-visible, .soy-player input:focus-visible {
  outline:2px solid var(--player-highlight); outline-offset:5px;
}
.soy-player__visualizer { position:absolute; inset:0; width:100%; height:100%; z-index:-1; pointer-events:none; }
.soy-player__cover-block { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; height:100%; min-height:0; margin:0; }
.soy-player__cover-link { flex-shrink:0; display:block; width:auto; height:calc(100% - 16px); max-height:190px; aspect-ratio:1; margin:0 auto; color:inherit; }
.soy-player__cover { display:block; width:100%; height:100%; object-fit:contain; border:0; }
.soy-player__cover-credit { margin:3px auto 0; text-align:center; font:10px/1.1 'Courier New',monospace; }
.soy-player__cover-credit a { color:var(--player-highlight); text-underline-offset:3px; }
.soy-player--store-art .soy-player__cover-link { height:calc(100% - 40px); max-height:164px; }
.soy-player__cover-credit img { display:block; width:110px; height:37px; margin:0 auto; object-fit:contain; }
.soy-player__line { width:100%; min-width:0; overflow:hidden; white-space:nowrap; }
.soy-player__line span { display:inline-block; min-width:100%; }
.soy-player__station { font-size:24px; margin:0; }
.soy-player__title { font-size:34px; margin:0; min-height:43px; }
.soy-player__line.is-overflowing { text-align:left; }
.soy-player__line.is-overflowing span { animation:soy-scroll var(--scroll-duration,16s) ease-in-out infinite alternate; }
.soy-player__line.is-overflowing[data-direction='right'] span { animation-direction:alternate-reverse; }
.soy-player__line:hover span, .soy-player:focus-within .soy-player__line span { animation-play-state:paused; }
.soy-player__volume-row { display:flex; align-items:center; width:100%; gap:12px; margin:0; }
.soy-player__icon-button { display:grid; place-items:center; background:none; border:0; padding:7px; min-width:44px; min-height:44px; }
.soy-player__icon-button svg, .soy-player__volume-icon { display:block; width:29px; height:29px; fill:currentColor; }
.soy-player__mute { flex:none; }
.soy-player__volume { flex:1; min-width:40px; width:100%; height:32px; margin:0; accent-color:var(--player-text); cursor:pointer; }
.soy-player__volume::-webkit-slider-runnable-track { height:4px; background:linear-gradient(to right,var(--player-text) var(--volume,50%),#ffffff35 var(--volume,50%)); border:0; }
.soy-player__volume::-webkit-slider-thumb { margin-top:-6px; }
.soy-player__volume::-moz-range-track { height:4px; background:#ffffff35; }
.soy-player__volume::-moz-range-progress { height:4px; background:var(--player-text); }
.soy-player__volume-label { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex:none; min-width:88px; }
.soy-player__volume-label output { min-width:3.5ch; font-size:17px; }
.soy-player__controls { display:grid; grid-template-columns:60px 100px 60px; gap:36px; align-items:center; justify-content:center; width:100%; }
.soy-player__play { display:grid; place-items:center; width:100px; height:100px; padding:25px; border:0; border-radius:50%; background:var(--player-text); color:#050607 !important; }
.soy-player__play:hover { background:var(--player-highlight); }
.soy-player__play:disabled { cursor:default; opacity:.45; background:var(--player-text); }
.soy-player__play svg { width:100%; height:100%; fill:currentColor; }
.soy-player__visualizer-toggle[aria-pressed='true'] { color:var(--player-highlight); }
.soy-player__live { display:flex; flex-direction:column; align-items:center; color:var(--player-text); opacity:.65; font-size:12px; letter-spacing:.12em; }
.soy-player__live svg { width:38px; height:29px; fill:none; stroke:currentColor; stroke-width:2.5; }
.soy-player[data-audio-state='playing'] .soy-player__live { color:var(--player-highlight); opacity:1; }
.soy-player__status { min-height:0; max-width:100%; margin:0; font:12px/1.5 'Courier New',monospace; color:var(--player-text); }
.soy-player__direct { margin-left:5px; color:var(--player-highlight); }
@keyframes soy-scroll { 0%,15% { transform:translateX(0); } 85%,100% { transform:translateX(var(--scroll-distance)); } }
@media (max-width:600px) {
  .soy-player { padding:10px 8px; min-height:410px; grid-template-rows:minmax(0,1fr) 25px 34px 40px 84px 32px; }
  .soy-player__cover-link { max-height:155px; }
  .soy-player--store-art .soy-player__cover-link { max-height:132px; }
  .soy-player__station { font-size:20px; }
  .soy-player__title { font-size:26px; min-height:34px; }
  .soy-player__volume-row { gap:5px; margin:0; }
  .soy-player__volume-label { min-width:75px; gap:3px; }
  .soy-player__volume-label output { font-size:15px; }
  .soy-player__volume-icon { width:24px; }
  .soy-player__controls { grid-template-columns:48px 84px 48px; gap:25px; }
  .soy-player__play { width:84px; height:84px; padding:21px; }
  .soy-player__status { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) { .soy-player__line span { animation:none !important; } }
.soy-radio-environment { width:min(800px,100%); margin:8px auto 0; padding:8px; color:#b8efee; border:1px dotted #47616e; font:11px/1.6 'Courier New',monospace; text-align:center; }
.soy-radio-environment[hidden] { display:none; }
.soy-station-info { width:min(752px,100%); margin:6px auto 20px; color:#d7eef8; font:13px/1.6 'Courier New',monospace; text-align:left; }
.soy-station-info__status { margin:0 0 8px; text-align:center; color:#b8efee; }
.soy-station-info__status.is-online::before { content:''; display:inline-block; width:6px; height:6px; margin-right:7px; vertical-align:1px; border-radius:50%; background:#829c7c; box-shadow:0 0 5px #829c7c66,0 0 1px #b0c5a9; }
.soy-station-info details { border-top:1px solid #47616e; border-bottom:1px solid #47616e; padding:8px 0; }
.soy-station-info summary { cursor:pointer; min-height:32px; padding:5px; color:#85d0ec; }
.soy-station-info ol { margin:8px 0 10px; padding:0 0 0 26px; }
.soy-station-info li { margin:7px 0; overflow-wrap:anywhere; }
.soy-station-info time { color:#92a9b7; font-size:11px; }
.soy-station-info__empty { margin:10px 5px; }

/* Keep the existing Luna-sized slot and station artwork, with room for errors. */
[data-soyboy-radio] { width:min(800px,100%) !important; height:auto !important; min-width:0; margin-inline:auto; }
.sbr-radio #lunaradio[data-soyboy-radio], .sbr-legacy-new #lunaradio[data-soyboy-radio] { height:auto !important; }
[data-soyboy-radio] .soy-player { height:auto; grid-template-rows:190px 30px minmax(44px,auto) 44px 100px minmax(32px,auto); }
[data-soyboy-radio] .soy-player--track { grid-template-rows:190px 30px minmax(44px,auto) auto 44px 100px minmax(32px,auto); }
.soy-player__track-details { min-width:0; margin:0 0 8px; font:13px/1.6 'Courier New',monospace; overflow-wrap:anywhere; }
.soy-player__track-details p { margin:3px 0; }
.soy-player__artist { color:var(--player-highlight); font-size:19px; }
.soy-player__album, .soy-player__playlist { color:#d7eef8; }
.soy-player__position { display:flex; justify-content:center; align-items:center; gap:12px; margin:9px 0 0; font-size:11px; }
.soy-player__position progress { max-width:150px; width:30%; height:3px; accent-color:var(--player-highlight); }
.soy-station-info__next { margin:4px 0 12px; text-align:center; overflow-wrap:anywhere; }
/* A quiet, early-web radio face. Artwork and song text lead; controls stay compact. */
.sbr-home [data-soyboy-radio] .soy-player { padding:8px 16px; gap:6px; min-height:0; grid-template-rows:182px 20px minmax(34px,auto) 44px minmax(24px,auto); }
.sbr-home [data-soyboy-radio] .soy-player--track { grid-template-rows:182px 20px minmax(34px,auto) auto 44px minmax(24px,auto); }
.sbr-home .soy-player__transport { display:flex; align-items:center; justify-content:center; gap:12px; width:min(420px,100%); min-width:0; margin:0 auto; }
.sbr-home .soy-player__visualizer { position:absolute; inset:auto 16px 30px; z-index:-1; width:calc(100% - 32px); height:150px; mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.sbr-home .soy-player__footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; width:min(460px,100%); margin:4px auto 0; }
.sbr-home .soy-player__footer .soy-player__status { flex:1 1 130px; text-align:left; }
.sbr-home .soy-player__footer .soy-player__position { justify-content:flex-end; margin:0 0 0 auto; }
.sbr-home .sbr-chat-panel .soy-player__position { position:absolute; left:0; right:0; bottom:calc(100% + 5px); justify-content:flex-start; gap:6px; margin:0; color:#9bafaf; font:9px/1.4 'Courier New',monospace; white-space:nowrap; text-shadow:0 1px 2px #000; }
.sbr-home .sbr-chat-panel .soy-player__position[hidden] { display:none; }
.sbr-home .sbr-chat-panel .soy-player__position progress { width:36px; height:2px; }
.sbr-home .soy-player__cover { padding:3px; border:1px solid #687d7a; background:#070e13; box-shadow:0 0 0 3px #070e1366; }
.sbr-home .soy-player__station { color:#9db5b1; font:11px/1.4 'Courier New',monospace; letter-spacing:.18em; text-transform:uppercase; }
.sbr-home .soy-player__title { color:#e0e8e4; font-size:27px; min-height:34px; }
.sbr-home .soy-player__track-details { margin-bottom:2px; font-size:11px; line-height:1.5; }
.sbr-home .soy-player__artist { color:#b4d1cb; font:14px/1.5 'Courier New',monospace; }
.sbr-home .soy-player__album, .sbr-home .soy-player__playlist { color:#a1b4b5; }
.sbr-home .soy-player__position { gap:8px; color:#a1b4b5; font-size:10px; }
.sbr-home .soy-player__position progress { width:64px; height:2px; accent-color:#87aaa3; }
.sbr-home .soy-player__volume-row { flex:1; min-width:128px; width:auto; gap:6px; margin:0; color:#a1b4b5; }
.sbr-home .soy-player__mute { min-width:44px; min-height:44px; padding:13px; }
.sbr-home .soy-player__mute svg { width:16px; height:16px; }
.sbr-home .soy-player__volume { appearance:none; -webkit-appearance:none; height:32px; background:transparent; accent-color:#9ebcb4; }
.sbr-home .soy-player__volume::-webkit-slider-runnable-track { height:2px; background:linear-gradient(to right,#8eaaa3 var(--volume,50%),#53656a var(--volume,50%)); }
.sbr-home .soy-player__volume::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:7px; height:11px; margin-top:-4.5px; border:1px solid #c0d1c9; border-radius:0; background:#6e8780; }
.sbr-home .soy-player__volume::-moz-range-track { height:2px; background:#53656a; }
.sbr-home .soy-player__volume::-moz-range-progress { height:2px; background:#8eaaa3; }
.sbr-home .soy-player__volume::-moz-range-thumb { width:5px; height:9px; border:1px solid #c0d1c9; border-radius:0; background:#6e8780; }
.sbr-home .soy-player__volume-label { min-width:32px; gap:0; }
.sbr-home .soy-player__volume-icon { display:none; }
.sbr-home .soy-player__volume-label output { font:10px/1.4 'Courier New',monospace; }
.sbr-home .soy-player__controls { display:flex; align-items:center; justify-content:center; flex:none; width:auto; gap:12px; }
.sbr-home .soy-player__visualizer-toggle { display:none; }
.sbr-home .soy-player__play { width:56px; height:44px; padding:12px 18px; border:1px solid; border-color:#8ba19c #344c4a #344c4a #8ba19c; border-radius:2px; background:#101e24; color:#d0ded6 !important; box-shadow:inset 0 0 0 1px #1e3036; }
.sbr-home .soy-player__play:hover { background:#1a3037; border-color:#b2c7bf; }
.sbr-home .soy-player__play:active { border-color:#344c4a #8ba19c #8ba19c #344c4a; }
.sbr-home .soy-player__play:disabled { background:#101e24; }
.sbr-home .soy-player__visualizer-toggle svg { width:16px; height:16px; }
.sbr-home .soy-player__live { display:none; }
.sbr-home .soy-player[data-audio-state='playing'] .soy-player__play { box-shadow:inset 0 0 0 1px #688a77; }
.sbr-home .soy-player[data-audio-state='loading'] .soy-player__play::after,
.sbr-home .soy-player[data-audio-state='buffering'] .soy-player__play::after { inset:-4px; border-color:#8eaaa344; border-top-color:#b2c7bf; }
.sbr-home .soy-player__status { color:#a1b4b5; font-size:10px; }
.sbr-home .soy-station-info { width:min(460px,100%); color:#a1b4b5; font-size:11px; }
.sbr-home .soy-station-info__status { color:#a1b4b5; }
.sbr-home .soy-station-info details { border:0; }
.sbr-home .soy-station-info summary { color:#adc5c3; }
.sbr-home { padding-bottom:calc(48px + env(safe-area-inset-bottom,0px)); }
.sbr-home .soy-station-info__next { position:fixed; z-index:4; left:50%; bottom:0; transform:translateX(-50%); width:min(800px,calc(100% - 568px)); margin:0; padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px)); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; border-top:1px solid #617b7c55; background:#070e13ed; color:#a1b4b5; font:11px/1.5 'Courier New',monospace; }
.soy-player__recovery { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; font:13px/1.5 'Courier New',monospace; }
.soy-player__retry { min-height:44px; padding:8px 16px; color:#fff; background:#0b2635; border:1px solid var(--player-highlight); border-radius:3px; }
.soy-player__play { position:relative; transition:background-color .18s,box-shadow .18s; }
.soy-player[data-audio-state='playing'] .soy-player__play { box-shadow:0 0 0 6px #86cceb16; }
.soy-player[data-audio-state='loading'] .soy-player__play::after,
.soy-player[data-audio-state='buffering'] .soy-player__play::after { content:''; position:absolute; inset:-6px; border:2px solid #86cceb35; border-top-color:#86cceb; border-radius:50%; animation:soy-connect 1.2s linear infinite; }
.soy-station-info summary:focus-visible { outline:2px solid #86cceb; outline-offset:3px; }
@keyframes soy-connect { to { transform:rotate(360deg); } }
@media (max-width:1000px) {
  .sbr-home .sbr-chat-panel { position:relative; }
  .sbr-home .soy-station-info__next { width:100%; }
}
@media (max-width:600px) {
  .sbr-home .soy-player__visualizer { height:100px; }
  [data-soyboy-radio] .soy-player { grid-template-rows:145px 25px minmax(34px,auto) 44px 84px minmax(34px,auto); }
  [data-soyboy-radio] .soy-player--track { grid-template-rows:145px 25px minmax(34px,auto) auto 44px 84px minmax(34px,auto); }
  .soy-player__title { font-size:clamp(16px,4.4vw,26px); }
}
@media (prefers-reduced-motion:reduce) {
  .soy-player__play { transition:none; }
  .soy-player__play::after { animation:none !important; }
}
