*{box-sizing:border-box}
:root{color-scheme:dark;font-family:Inter,Manrope,"Segoe UI",system-ui,-apple-system,sans-serif;background:#111116;color:#f8f6f7;font-synthesis:none;text-rendering:optimizeLegibility}
body{min-height:100vh;min-height:100svh;margin:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 42%,#53151d4f,transparent 55%),#111116}
a{color:inherit}
.radio-header{height:78px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(20px,5vw,72px);border-bottom:1px solid #ffffff12;background:#111116}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:0;font-size:13px;font-weight:850;letter-spacing:.07em}
.brand img{width:42px;height:42px;border-radius:50%;object-fit:cover}
.brand small{display:block;margin-top:5px;color:#aaa4ad;font-size:8px;font-weight:650;letter-spacing:.14em}
.radio-header nav{display:flex;align-items:center;gap:22px}
.radio-header nav a{font-size:12px;text-decoration:none;color:#d9d5db}
.radio-header nav a:hover,.radio-header nav a:focus-visible{color:#fff}
.radio-header nav .contact-link{padding:10px 15px;border:1px solid #ffffff36;border-radius:999px}
.radio-section{width:100%;flex:1;display:grid;place-items:center;padding:38px 20px 44px}
.radio-wrap{width:min(100%,560px)}
.radio-card{position:relative;overflow:hidden;padding:30px clamp(24px,6vw,48px) 26px;border:1px solid #ffffff18;border-radius:30px;background:radial-gradient(ellipse at 95% 5%,#c9202b55,transparent 32%),linear-gradient(155deg,#20202a 0%,#17151d 47%,#101116 100%);box-shadow:0 30px 100px #000b,inset 0 1px #ffffff16}
.radio-card:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,#ffffff50,transparent)}
.radio-card>*{position:relative;z-index:1}
.app-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:25px}
.app-brand{display:flex;align-items:center;gap:10px;min-width:0;font-size:12px;font-weight:850;letter-spacing:.08em}
.app-brand img{width:38px;height:38px;border-radius:50%;object-fit:cover}
.app-brand small{display:block;margin-top:4px;color:#aaa;font-size:8px;font-weight:600;letter-spacing:.15em}
.radio-state{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #ffffff25;border-radius:999px;background:#ffffff0b;color:#aaa;font-size:9px;font-weight:800;letter-spacing:.1em;white-space:nowrap;transition:all .25s}
.state-dot{width:7px;height:7px;border-radius:50%;background:#888}
.radio-card.is-playing .radio-state{color:#fff;border-color:#ff666d;background:#c9202b;box-shadow:0 0 18px #c9202b77}
.radio-card.is-playing .state-dot{background:#fff;box-shadow:0 0 9px #fff}
.radio-art{position:relative;width:min(100%,320px);aspect-ratio:1;margin:0 auto 24px;display:grid;place-items:center;overflow:hidden;border:1px solid #ffffff22;border-radius:28px;background:radial-gradient(circle at 50% 45%,#d72d3877,transparent 50%),linear-gradient(145deg,#3b1720,#17151d 72%);box-shadow:0 18px 45px #0008,inset 0 1px #ffffff20}
.radio-art:before,.radio-art:after{content:"";position:absolute;aspect-ratio:1;width:80%;border:1px solid #ffffff13;border-radius:50%}
.radio-art:after{width:57%;border-color:#ffffff18}
.radio-art img{position:relative;z-index:1;width:55%;height:55%;object-fit:contain;filter:drop-shadow(0 15px 20px #0008)}
.equalizer{position:absolute;z-index:2;bottom:17%;display:flex;align-items:center;gap:5px;height:28px;opacity:.8}
.equalizer i{display:block;width:3px;height:30%;border-radius:8px;background:#fff}
.equalizer i:nth-child(3n){height:90%}.equalizer i:nth-child(2n){height:56%}
.radio-card.is-playing .equalizer i{animation:level .7s ease-in-out infinite alternate}
.radio-card.is-playing .equalizer i:nth-child(2n){animation-delay:-.35s}
@keyframes level{to{transform:scaleY(.35)}}
.radio-copy{text-align:center}
.eyebrow{margin:0;color:#ff626a;font-size:9px;font-weight:800;letter-spacing:.17em}
.radio-copy h1{margin:9px 0 0;font-size:clamp(25px,5vw,34px);line-height:1.2;letter-spacing:-.045em;overflow-wrap:anywhere}
.track-artist,.track-details{margin:6px 0 0;color:#b1adb5;font-size:13px;overflow-wrap:anywhere}
.track-details{font-size:11px;color:#95909a}
.radio-playlist{display:flex;justify-content:center;gap:8px;margin:11px 0 0;color:#d5d1d7;font-size:11px}
.radio-playlist span{color:#85818a;font-size:9px;letter-spacing:.12em}
#radio-status{min-height:1.4em;margin:9px 0 0;color:#a9a5ad;font-size:10px;line-height:1.5}
.radio-volume{display:flex;align-items:center;gap:12px;margin:24px 5px 18px;color:#eee}
.radio-volume svg{width:20px;height:20px;flex:none;fill:currentColor}
.radio-volume input{--volume-level:85%;appearance:none;-webkit-appearance:none;width:100%;height:22px;margin:0;background:linear-gradient(#ff4b55,#ff4b55) left center/var(--volume-level) 4px no-repeat,linear-gradient(#ffffff35,#ffffff35) center/100% 4px no-repeat;cursor:pointer;transition:background-size .22s ease}
.radio-volume input::-webkit-slider-runnable-track{height:4px;background:transparent;border:0}
.radio-volume input::-moz-range-track{height:4px;background:transparent;border:0}
.radio-volume input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;border:2px solid #fff;border-radius:50%;background:#d9d9df;box-shadow:0 0 0 2px #ffffff22;transition:transform .16s ease,box-shadow .16s ease}
.radio-volume input::-moz-range-thumb{width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:#d9d9df;box-shadow:0 0 0 2px #ffffff22;transition:transform .16s ease,box-shadow .16s ease}
.radio-volume input:hover::-webkit-slider-thumb,.radio-volume input:focus-visible::-webkit-slider-thumb{transform:scale(1.14);box-shadow:0 0 0 4px #ff4b5540}
.radio-volume input:hover::-moz-range-thumb,.radio-volume input:focus-visible::-moz-range-thumb{transform:scale(1.14);box-shadow:0 0 0 4px #ff4b5540}
.radio-volume input:active::-webkit-slider-thumb{transform:scale(1.24)}
.radio-volume input:active::-moz-range-thumb{transform:scale(1.24)}
.radio-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin:23px 0 11px}
.quiet-button{width:46px;height:46px;display:grid;place-items:center;border:1px solid #ffffff22;border-radius:50%;background:#ffffff0a;color:#eee;cursor:pointer}
.quiet-button svg{width:22px;height:22px;fill:currentColor}
.quiet-button .muted-cross{display:none}
.quiet-button[aria-pressed="true"] .sound-wave{display:none}
.quiet-button[aria-pressed="true"] .muted-cross{display:block}
.play-button{width:78px;height:78px;flex:none;display:grid;place-items:center;border:0;border-radius:50%;background:linear-gradient(145deg,#ed303b,#a70f1a);color:#fff;box-shadow:0 0 0 8px #c9202b20,0 12px 30px #0007,0 0 28px #c9202b55;transition:transform .2s,box-shadow .2s;cursor:pointer}
.play-button:hover{transform:scale(1.05);box-shadow:0 0 0 9px #c9202b2b,0 12px 30px #0007,0 0 34px #c9202b88}
.play-button svg{width:29px;height:29px;fill:currentColor}
.play-button .icon-pause{display:none}
.radio-card.is-active .icon-play{display:none}.radio-card.is-active .icon-pause{display:block}
.play-button:focus-visible,.quiet-button:focus-visible,.share-row button:focus-visible,.radio-header a:focus-visible{outline:2px solid #ff626a;outline-offset:4px}
#radio-audio{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.up-next{display:flex;align-items:center;gap:13px;margin:20px 0 0;padding:14px;border:1px solid #ffffff17;border-radius:16px;background:#ffffff08;text-align:left}
.up-next[hidden]{display:none!important}
.next-art{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:12px;background:linear-gradient(140deg,#c9202b,#65151f);color:#fff;font-size:18px}
.next-copy{min-width:0}.next-copy>span{display:block;margin-bottom:3px;color:#ff747b;font-size:8px;font-weight:800;letter-spacing:.14em}
.next-copy strong{display:block;color:#eee;font-size:12px;font-weight:650;overflow-wrap:anywhere}
.next-copy small{display:block;margin-top:3px;color:#96919a;font-size:10px;overflow-wrap:anywhere}
.stream-link{display:flex;justify-content:center;min-height:30px;margin-top:6px;color:#aaa;font-size:10px;text-decoration:none;align-items:center}
.stream-link:hover{text-decoration:underline;color:#fff}
.player-note{margin:4px 0 0;color:#777;font-size:9px;line-height:1.5;text-align:center}
.share-station{margin-top:17px;padding-top:14px;border-top:1px solid #ffffff17;text-align:center}
.share-station>.eyebrow{color:#aaa;font-size:8px}
.share-row{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:9px}
.share-row a{color:#ddd;font-size:10px;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.share-row button{flex:none;padding:9px 12px;border:1px solid #c9202b;border-radius:8px;background:#c9202b;color:#fff;font-size:10px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px #c9202b44}
.share-status{min-height:1em;margin:8px 0 0;color:#777;font-size:9px}
.radio-footer{flex:none;padding:17px 20px;border-top:1px solid #ffffff12;color:#a9a5ad;font-size:11px;text-align:center}
.radio-footer a{color:#eee;text-underline-offset:3px}
@media(max-width:600px){
  .radio-header{height:auto;min-height:68px;padding:10px 16px;gap:10px}
  .brand{font-size:11px}.brand img{width:38px;height:38px}.brand small{font-size:7px;letter-spacing:.12em}
  .radio-header nav{gap:10px}.radio-header nav a{font-size:10px}.radio-header nav .contact-link{padding:8px 10px}.radio-header nav>a:first-child{display:none}
  .radio-section{min-height:calc(100svh - 132px);padding:clamp(22px,5vh,40px) 14px 28px;align-content:center}
  .radio-card{padding:23px 21px 21px;border-radius:27px}.app-top{margin-bottom:20px}
  .radio-art{width:min(78vw,300px);margin-bottom:20px;border-radius:25px}
  .radio-volume{margin:21px 3px 17px}.radio-controls{gap:20px;margin-top:20px}.play-button{width:72px;height:72px}.quiet-button{width:42px;height:42px}
  .up-next{margin-top:17px;padding:12px}.share-row{flex-wrap:wrap}
  .radio-footer{padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px))}
}
@media(max-height:900px){
  .radio-header{height:62px;min-height:62px;padding-top:8px;padding-bottom:8px}
  .radio-section{padding:10px 16px}
  .radio-card{padding:9px clamp(18px,4vw,30px) 8px;border-radius:22px}
  .app-top{margin-bottom:5px}
  .radio-art{width:min(16vh,128px);margin-bottom:5px;border-radius:16px}
  .radio-copy h1{margin-top:3px;font-size:clamp(20px,3.5vw,24px);line-height:1.08}
  .track-artist,.track-details{margin-top:2px;font-size:11px;line-height:1.25}
  .radio-copy h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .track-meta{display:flex;justify-content:center;align-items:center;gap:0 8px;min-height:14px}
  .track-meta .track-artist,.track-meta .track-details{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .radio-playlist{gap:6px;margin-top:4px;font-size:10px}
  .radio-playlist span{font-size:8px}
  #radio-status{min-height:1em;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
  .radio-volume{margin:7px 5px 5px}
  .radio-controls{gap:16px;margin:6px 0 4px}
  .play-button{width:52px;height:52px}
  .quiet-button{width:34px;height:34px}
  .up-next{gap:7px;margin-top:5px;padding:5px}
  .next-art{width:30px;height:30px}
  .next-copy strong{font-size:11px}
  .next-copy small{font-size:9px}
  .stream-link{min-height:19px;margin-top:1px;font-size:9px}
  .player-note{display:none}
  .share-station{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;padding-top:5px}
  .share-station>.eyebrow{flex:none;font-size:7px}
  .share-row{gap:7px;margin-top:0}
  .share-row a{font-size:9px}
  .share-row button{padding:7px 9px;font-size:9px}
  .share-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .radio-footer{padding-top:9px;padding-bottom:9px}
}
@media(max-height:760px){
  .radio-art{width:min(14vh,105px);margin-bottom:4px}
  .radio-card{padding-top:7px;padding-bottom:6px}
  .app-top{margin-bottom:4px}
  .radio-copy h1{font-size:clamp(18px,3.5vw,22px)}
  .radio-volume{margin:5px 5px 4px}
  .radio-controls{margin-top:4px}
  .play-button{width:48px;height:48px}
  .quiet-button{width:32px;height:32px}
  .up-next{margin-top:4px;padding:4px}
  .share-station{margin-top:4px;padding-top:4px}
}
@media(max-width:600px){
  body{height:100svh;min-height:0;overflow:hidden}
  .radio-header,.radio-footer,.share-station{display:none}
  main{display:flex;flex:1;min-height:0}
  .radio-section{display:flex;flex:1;min-height:0;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
  .radio-wrap{width:100%;height:100%;min-height:0}
  .radio-card{display:flex;width:100%;height:100%;min-height:0;flex-direction:column;justify-content:space-between;padding:14px 20px 12px;border:0;border-radius:0;box-shadow:none}
  .app-top{flex:none;margin:0 0 5px}
  .radio-player{display:flex;flex:1;min-height:0;flex-direction:column;align-items:stretch;justify-content:space-evenly}
  .radio-art{width:clamp(120px,28svh,220px);flex:none;margin:4px auto 8px;border-radius:24px}
  .radio-copy{flex:none}
  .radio-copy h1{margin-top:3px;font-size:clamp(19px,5.5vw,25px);line-height:1.1}
  .track-artist,.track-details{margin-top:3px;font-size:11px}
  .radio-playlist{margin-top:4px}
  #radio-status{margin-top:4px}
  .radio-volume{flex:none;margin:5px 4px}
  .radio-controls{flex:none;gap:20px;margin:5px 0}
  .play-button{width:64px;height:64px}
  .quiet-button{width:40px;height:40px}
  .up-next{flex:none;margin:4px 0 0;padding:8px}
  .next-art{width:36px;height:36px}
  .stream-link,.player-note{display:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
