/* Web 1.0 terminal study: static type, muted phosphor, ordinary text controls. */
:root{color-scheme:dark;--paper:#302d27;--ink:#b5dac0;--muted:#9fb2a0;--line:#5b5d4d;--accent:#d5b67c;--sans:"Courier New",Courier,monospace;--display:var(--sans);--mono:var(--sans)}
body{font-family:var(--mono);background:var(--paper);color:var(--ink);font-size:13px;-webkit-font-smoothing:auto}
::selection{background:var(--ink);color:var(--paper)}
a,footer a{color:var(--ink)}
a:hover,button:not(:disabled):hover{color:#e1f4db;text-shadow:none}
a:active,button:not(:disabled):active{color:var(--accent);filter:none;transform:none;top:auto}
a:focus-visible,button:focus-visible,input:focus-visible{outline-color:var(--accent)}
.skip{background:var(--ink);color:var(--paper)}
.masthead{border-bottom:1px solid var(--line);padding-bottom:10px}
.brand{font-family:var(--mono);font-size:17px;letter-spacing:-.5px;color:var(--ink)}
.brand img{filter:url(#brand-ink);mix-blend-mode:normal;opacity:.78}
.brand-radio{color:var(--ink);letter-spacing:inherit;font-size:inherit}
.place,.eyebrow,.intro,.station-descriptor,.player-message,.mute,.track-meta,.listen-note,.lower-grid p:not(.eyebrow),.small,footer,.frequency-strip .wrap{color:var(--muted)}
.masthead nav{font-family:var(--mono);font-size:12px}
.masthead nav a[aria-current=page]{color:var(--accent);font-weight:400}
.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-rows:auto auto;align-items:start;gap:28px 46px;padding-block:22px}
.hero-copy{--heading-size:42px;display:block;grid-column:1;grid-row:1;min-width:0}
.hero-copy h1{font-family:var(--mono);font-weight:400;color:var(--ink);font-size:var(--heading-size);line-height:1.08;letter-spacing:-1.5px;margin:0 0 16px}
.hero-copy h1::after{content:none}
.name-line{display:block;width:13ch;white-space:nowrap;letter-spacing:0}
.name-line-spread{letter-spacing:calc(1ch / 3)}
.station-descriptor{container-type:inline-size;font-size:var(--heading-size);width:13ch;max-width:100%;line-height:normal;margin:0}
.descriptor-line{--tracking:calc((100cqw - 22ch) / 21);display:block;font-size:13px;line-height:1.5;white-space:nowrap}
.descriptor-line-long{--tracking:calc((100cqw - 24ch) / 23)}
.descriptor-line>span{display:inline-block;letter-spacing:var(--tracking);margin-right:calc(-1 * var(--tracking))}
.signal-card{display:block;grid-column:2;grid-row:1;min-width:0;padding:0}
.now-playing-title{font-family:var(--mono);font-size:23px;letter-spacing:-.7px;color:var(--ink);margin:0 0 12px}
.now-playing-title::before{content:"// ";color:var(--muted)}
.signal-card>#track-kicker{margin:0 0 10px;font-size:10px;color:var(--accent)}
.track-panel{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "artist" "meta" "support";column-gap:12px;align-items:start;margin:0;padding:0;max-width:none}
.track-panel:has(.cover:not([hidden])){grid-template-columns:minmax(0,1fr) clamp(56px,26%,96px);grid-template-areas:"title cover" "artist cover" "meta cover" "support ."}
.track-panel #track-title{grid-area:title;min-width:0}
.track-panel #track-artist{grid-area:artist;min-width:0}
.track-panel #track-meta{grid-area:meta;min-width:0}
.track-panel #track-meta:empty{display:none}
.track-panel #artist-link{grid-area:support;min-width:0}
.track-panel h3{font-family:var(--mono);font-size:26px;font-weight:400;letter-spacing:-.8px;line-height:1.15;margin:0 0 8px;color:var(--ink)}
.track-panel #track-artist{font-size:13px;margin:0;line-height:1.4}
.track-panel #track-meta{font-size:11px;line-height:1.45;margin:7px 0 0!important;max-width:none}
/* Only text sets row heights; the complete artwork fits the title-to-album span. */
.cover-frame{grid-area:cover;position:relative;align-self:stretch;min-width:0;min-height:0}
.cover-frame:has(.cover[hidden]){display:none}
.track-panel .cover{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;object-fit:contain;object-position:right top;filter:none;mask-image:none;opacity:1}
.track-panel #artist-link{font-size:11px;margin:7px 0 0}
.player-section{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:6px 46px;border-top:1px solid var(--line);padding-top:18px;min-width:0}
.listen-controls{grid-column:1;grid-row:1;margin:0;padding:0;gap:20px;flex-wrap:nowrap;align-items:start}
.play-button,.play-button:disabled{font-family:var(--mono);font-size:12px;color:var(--ink);min-width:145px;min-height:32px;padding:0;gap:9px;white-space:nowrap}
.play-button span:first-child{color:var(--accent)}
.volume-group{display:grid;grid-template-columns:auto 90px;grid-template-rows:32px auto;column-gap:8px;row-gap:4px;align-items:center}.volume-group .mute{grid-column:1;grid-row:1}.volume-group input{grid-column:2;grid-row:1}.mute{font-size:10px}
input[type=range]{width:90px}
input[type=range]::-webkit-slider-thumb{background:var(--accent)}
input[type=range]::-moz-range-thumb{background:var(--accent)}
.player-message{grid-column:1;grid-row:3;font-size:10px;line-height:1.5;min-height:0;max-width:none;margin:0}
.player-message:empty{display:none}
.volume-group .normalise-toggle{grid-column:2;grid-row:2;justify-self:center;white-space:nowrap;line-height:1.2;min-height:20px;padding:0;border:0;background:transparent;color:var(--muted);font:9px var(--mono)}
.normalise-toggle[aria-pressed=true]{color:var(--accent)}
.normalise-toggle:disabled{color:var(--muted)}
.programme-line{grid-column:2;grid-row:1 / 4;font-family:var(--mono);font-size:16px;line-height:1.4;margin:0;gap:5px;color:var(--ink)}
.programme-line #programme-now{font-weight:400;color:var(--accent)}
.programme-line a{font-size:10px;color:var(--muted)}
.status i,.status.live i{background:var(--ink)}
.frequency-strip .wrap{font-size:9px;letter-spacing:0;gap:7px 20px}
footer{font-family:var(--mono);font-size:8px;letter-spacing:0;border:0;padding-block:8px 0;justify-content:flex-start;gap:20px}
.lower-grid h2,.schedule-view h2{font-family:var(--mono);font-size:32px;font-weight:400;color:var(--ink);letter-spacing:-1px}
.lower-grid p:not(.eyebrow){font-size:13px;line-height:1.6}
.submit-button,.text-link{font-size:12px}
.schedule-list time{color:var(--muted)}
.track-panel a.record-link{display:inline;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;margin:0;text-decoration:none}
.track-panel a.record-link:hover{color:var(--accent);text-decoration:none}
@media(min-width:621px) and (max-width:800px){.hero,.player-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:25px}.hero-copy{--heading-size:35px}.now-playing-title{font-size:20px}.listen-controls{gap:10px}.play-button{min-width:120px}}
@media(max-width:620px){
 .track-panel{column-gap:10px}
 .brand{font-size:16px}.place{font-size:8px}
 .masthead nav{font-size:clamp(9px,2.75vw,11px);gap:4px}
 .hero{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;gap:18px;padding-block:12px}
 .hero-copy{--heading-size:32px;grid-column:1;grid-row:1}.hero-copy h1{letter-spacing:-1px;margin-bottom:9px}
 .descriptor-line{font-size:12px;line-height:1.4}
 .signal-card{grid-column:1;grid-row:2}
 .now-playing-title{font-size:21px;margin-bottom:6px}
 .signal-card>#track-kicker{font-size:9px;margin-bottom:6px}
 .track-panel h3{font-size:23px;margin-bottom:4px}
 .track-panel #track-artist{font-size:12px}
 .track-panel #track-meta{font-size:10px;margin-top:4px!important}
 .player-section{grid-column:1;grid-row:3;grid-template-columns:minmax(0,1fr);gap:5px;padding-top:10px}
 .listen-controls{grid-column:1;grid-row:1;justify-content:space-between;gap:8px}
 .play-button{min-width:125px;font-size:12px}
 .player-message{grid-column:1;grid-row:3;font-size:10px;line-height:1.4}
 .programme-line{grid-column:1;grid-row:4;font-size:15px;gap:3px;margin-top:6px}
 .programme-line a{font-size:10px}
 .frequency-strip .wrap{font-size:8px;gap:5px 8px}
 footer{font-size:6px;gap:4px 12px;padding-top:8px}
 .lower-grid p:not(.eyebrow){font-size:12px;line-height:1.45}
}
@media(max-width:620px) and (max-height:700px){
 .hero{gap:10px;padding-block:8px}
 .hero-copy{--heading-size:28px}.hero-copy h1{margin-bottom:6px}
 .descriptor-line{font-size:11px}
 .now-playing-title{font-size:19px;margin-bottom:5px}
 .signal-card>#track-kicker{font-size:8px;margin-bottom:4px}
 .track-panel h3{font-size:21px}
 .track-panel #track-artist{font-size:11px}
 .track-panel #track-meta{font-size:9px;line-height:1.3;margin-top:3px!important}
 .player-section{gap:3px;padding-top:7px}
 .play-button{min-height:28px}
 .player-message{font-size:9px}
 .programme-line{font-size:14px;line-height:1.35;gap:2px;margin-top:4px}
 .lower-grid h2{font-size:26px}.lower-grid p:not(.eyebrow){font-size:11px;line-height:1.4}
}
@media(min-width:621px) and (max-height:650px){
 .hero{gap:14px 32px;padding-block:10px}.hero-copy{--heading-size:34px}.hero-copy h1{margin-bottom:10px}
 .now-playing-title{font-size:21px;margin-bottom:7px}
 .descriptor-line{font-size:12px}.track-panel h3{font-size:23px}
 .player-section{padding-top:10px;column-gap:32px}
 .programme-line{font-size:14px;gap:3px}
 .lower-grid p:not(.eyebrow){font-size:12px;line-height:1.4}
}
@media(min-width:621px) and (max-height:450px){
 .hero{row-gap:8px;padding-block:3px}
 .signal-card>#track-kicker{margin-bottom:5px}
 .player-section{padding-top:7px}
 .lower-grid h2{font-size:26px;margin-block:7px}
 .lower-grid p:not(.eyebrow){font-size:11px;line-height:1.35}
 .lower-grid .small{font-size:10px!important;line-height:1.35!important}
 .submit-button{padding-block:4px;line-height:1.4;margin-top:6px}
 .schedule-view{padding-block:6px}
}
@media(prefers-contrast:more){:root{--ink:#e0f5e4;--muted:#b7cfbd;--line:#819e8c}}

/* Code punctuation stays amber while link text keeps the phosphor ink. */
a,a:hover{text-decoration:none}
.code-bracket{color:var(--accent)}
.masthead nav a{text-decoration:none}
.record-link::before,footer a::before,.programme-line a::before,.text-link::before{content:"[";color:var(--accent)}
.record-link::after,footer a::after,.programme-line a::after,.text-link::after{content:"]";color:var(--accent)}

/* The uploader lives inside the submit view; the stream continues playing. */
body.has-submission-form[data-view=submit] main{justify-content:flex-start}
body.has-submission-form[data-view=submit] .lower-grid{width:calc(100% - 56px);max-width:760px}
#submission-frame{display:block;width:100%;height:1760px;border:0;background:var(--paper);color-scheme:dark}
.has-submission-form #submit-link{margin-top:12px;font-size:10px}
@media(max-width:620px){body.has-submission-form[data-view=submit] .lower-grid{width:100%}#submission-frame{height:2440px}}

#submission-help{margin-top:14px;font-size:11px;color:var(--muted)}
#submission-help summary{cursor:pointer;color:var(--ink)}
#submission-loading{padding-block:12px}
