/* The homepage shares the campervan artwork, badge and animation with the standalone player. */
.live-deck,.native-schedule{max-width:1200px;margin:0 auto;padding:5rem 1.25rem}
.live-deck{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);align-items:center;gap:clamp(2rem,5vw,5rem);border-top:1px solid #333}
.live-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.live-copy>.eyebrow{margin:0 0 1.1rem}
.live-dot{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:#ff615b;box-shadow:0 0 0 5px #e21b2d22}
.now-artwork{width:min(100%,330px);aspect-ratio:1;object-fit:cover;border:1px solid #ffffff24;border-radius:22px;background:#101113;box-shadow:0 18px 40px #0008}
.live-track{display:grid;gap:.35rem;width:100%;margin:1.5rem 0 0;padding:1.25rem 0;border-top:1px solid #ffffff36;overflow-wrap:anywhere}
.live-kicker{font-size:.74rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#ffaaa5}
.live-track strong{font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.1;letter-spacing:-.025em}
.live-track span:last-child{color:#c7c5c9;font-size:1rem}
.live-status{min-height:1.5rem;margin:.5rem 0 0;color:#aaa;font-size:.84rem}
.live-visual{position:relative;min-width:0;padding:2rem 1.5rem 1.3rem;text-align:center;border:1px solid #ffffff24;border-radius:27px;background:radial-gradient(ellipse at 95% 55%,#702926 0%,transparent 58%),#101113;box-shadow:0 14px 35px #0005;overflow:hidden}
.live-visual-head{position:relative;z-index:2}
.live-visual-head .eyebrow{margin:0 0 .5rem;color:#ffaaa5;font-size:.75rem;letter-spacing:.07em}
.live-visual-head h2{margin:0;font-size:clamp(2rem,5vw,2.7rem);font-weight:800;line-height:1.07;letter-spacing:-.045em}
.live-visual-head p:last-child{margin:.5rem 0 0;color:#bfc0c6;font-size:.95rem}
.van-stage{position:relative;width:min(100%,420px);height:382px;margin:0 auto}
.van-orbit{position:absolute;left:50%;top:50%;width:360px;max-width:95%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#ffffff08,transparent 64%)}
.van-art{position:absolute;z-index:2;left:50%;bottom:28px;width:min(352px,94%);aspect-ratio:352/330;transform:translateX(-50%);filter:drop-shadow(0 15px 13px #0007)}
.van-art>img{position:absolute;z-index:1;top:15.5%;width:34.2%;height:27.5%;object-fit:cover;filter:brightness(.82) saturate(.92)}
#van-art-left{left:13.6%}#van-art-right{left:52.2%}
.van-art>.splittie-drawing{position:absolute;z-index:2;inset:0;width:100%;height:100%;overflow:visible}
.van-art .splittie-drawing *{vector-effect:non-scaling-stroke}
.van-art .body-red{fill:url(#red-paint);stroke:#121724;stroke-width:5}
.van-art .body-highlight{fill:none;stroke:#ffffff38;stroke-width:3}
.van-art .roof-cap,.van-art .cream-face{fill:url(#cream-paint);stroke:#121724;stroke-width:4}
.van-art .roof-rack{fill:none;stroke:#c9d1d8;stroke-width:4}
.van-art .window-fill{fill:#45667138}
.van-art .window-lines path,.van-art .v-seam{fill:none;stroke:#121724;stroke-width:5.5}
.van-art .side-pressings{fill:none;stroke:#62151a;stroke-width:2;stroke-linecap:round;opacity:.72}
.van-art .centre-seam{fill:none;stroke:#74191e;stroke-width:2.5;stroke-linecap:round;opacity:.8}
.van-art .mirrors path{fill:#d5dbe0;stroke:#121724;stroke-width:5}
.van-art .tyres path{fill:#20242b;stroke:#090b0f;stroke-width:5}
.van-art .tyres .tyre-treads path{fill:none;stroke:#737a80;stroke-width:2}
.van-art .indicators circle{fill:#f5a524;stroke:#121724;stroke-width:4}
.van-art .headlight-outer{fill:#d6dde1;stroke:#121724;stroke-width:6}
.van-art .headlight-lens{fill:url(#lamp-glass);stroke:#76818a;stroke-width:3;transition:fill .25s,filter .25s,stroke .25s}
.van-art .splittie-bumper path:first-child{fill:url(#cream-paint);stroke:#121724;stroke-width:5}
.van-art .splittie-bumper path:not(:first-child){fill:none;stroke:#121724;stroke-width:6}
.van-art .plate{fill:#f5df75;stroke:#121724;stroke-width:4}
.van-art .plate-text{fill:#121724;font:800 17px monospace;text-anchor:middle;letter-spacing:1px}
.van-play{position:absolute;z-index:4;left:50%;top:47%;width:60px;height:60px;transform:translateX(-50%);padding:0;border:4px solid #20242b;border-radius:50%;background:#f7f2e7;box-shadow:0 3px 0 #0006,inset 0 0 0 3px #b8c0c7,0 0 0 2px #ffffff59;cursor:pointer;touch-action:manipulation}
.van-play:hover{transform:translateX(-50%) scale(1.08)}
.van-play:focus-visible{outline:3px solid #ff8e88;outline-offset:5px}
.van-play svg{position:absolute;inset:10px;width:32px;height:32px;fill:#7f171d}
.van-play .pause-icon{display:none}
.van-play.playing .play-icon{display:none}
.van-play.playing .pause-icon{display:block}
.loading-spinner{display:none;position:absolute;inset:11px;border:4px solid #7f171d33;border-top-color:#cf2d2d;border-radius:50%;animation:van-spin .8s linear infinite}
.van-play.loading .loading-spinner{display:block}
.van-play.loading svg{display:none}
.exhaust-smoke{position:absolute;z-index:1;right:16px;bottom:28px;width:76px;height:64px;pointer-events:none}
.exhaust-smoke i{position:absolute;right:0;bottom:0;width:13px;height:13px;border-radius:50%;background:#d7dee677;filter:blur(1px);opacity:0}
.exhaust-smoke i:nth-child(2){width:10px;height:10px}.exhaust-smoke i:nth-child(3){width:8px;height:8px}
.music-notes{position:absolute;z-index:5;top:20px;right:0;width:110px;height:170px;pointer-events:none}
.music-notes-left{left:0;right:auto}
.music-notes span{position:absolute;bottom:0;color:#ffaaa5;font-size:1.7rem;font-weight:900;opacity:0}
.music-notes span:nth-child(2){left:30px;font-size:2rem}.music-notes span:nth-child(3){left:62px}.music-notes span:nth-child(4){left:88px;font-size:1.35rem}
.ground-line{position:absolute;left:8%;right:8%;bottom:25px;height:5px;border-radius:50%;background:#ffffff2e;box-shadow:0 7px 18px 5px #0008}
.van-caption{display:block;color:#bfc0c6;font-size:.75rem;letter-spacing:.08em}
.live-deck.is-playing .van-art{animation:splittie-idle .8s ease-in-out infinite alternate}
.live-deck.is-playing .headlight-lens{fill:#fff4ad;stroke:#ffe176;filter:drop-shadow(0 0 7px #ffd95a) drop-shadow(0 0 15px #ffd34dcc)}
.live-deck.is-playing .tyre-treads path{animation:tyre-tread-roll .44s linear infinite}
.live-deck.is-playing .exhaust-smoke i{animation:exhaust-puff 2.1s ease-out infinite}
.live-deck.is-playing .exhaust-smoke i:nth-child(2){animation-delay:.7s}.live-deck.is-playing .exhaust-smoke i:nth-child(3){animation-delay:1.4s}
.live-deck.is-playing .music-notes span{animation:notes-rise 2.6s ease-out infinite}
.live-deck.is-playing .music-notes span:nth-child(2){animation-delay:.55s}.live-deck.is-playing .music-notes span:nth-child(3){animation-delay:1.1s}.live-deck.is-playing .music-notes span:nth-child(4){animation-delay:1.65s}
.live-deck.is-playing .music-notes-left span{animation-name:notes-rise-left}
@keyframes splittie-idle{to{transform:translateX(-50%) translateY(-2px)}}
@keyframes tyre-tread-roll{to{transform:translateY(12px)}}
@keyframes exhaust-puff{0%{opacity:0;transform:translate(0,0) scale(.55)}18%{opacity:.42}100%{opacity:0;transform:translate(34px,-49px) scale(1.7)}}
@keyframes notes-rise{0%{opacity:0;transform:translate(0,0) rotate(-8deg)}20%{opacity:1}100%{opacity:0;transform:translate(20px,-145px) rotate(16deg)}}
@keyframes notes-rise-left{0%{opacity:0;transform:translate(0,0) rotate(8deg)}20%{opacity:1}100%{opacity:0;transform:translate(-20px,-145px) rotate(-16deg)}}
@keyframes van-spin{to{transform:rotate(360deg)}}
.native-schedule h2{font-size:clamp(2.8rem,6vw,5.5rem);line-height:.95;letter-spacing:-.065em;margin:.2em 0 .3em}
.native-schedule{padding-top:4rem;padding-bottom:6rem;border-top:1px solid #333}.schedule-intro{display:flex;align-items:end;justify-content:space-between;gap:1.5rem}.schedule-intro p:last-child{margin-bottom:0}.schedule-timezone{white-space:nowrap;color:#aaa;font-size:.8rem}.native-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem;margin:2rem 0 2.6rem}.native-day{min-width:0;display:grid;gap:.3rem;text-align:left;border:1px solid #343438;border-radius:14px;padding:.8rem;background:#17171a;color:white;cursor:pointer;font:inherit}.native-day:hover{border-color:#df5361}.native-day[aria-pressed=true]{background:#d91e31;border-color:#ed4556}.native-day .day-name{font-size:.69rem;text-transform:uppercase;font-weight:800;letter-spacing:.08em;color:#bbb}.native-day[aria-pressed=true] .day-name{color:#fff}.native-day .day-date{font-weight:900;font-size:1.4rem;line-height:1}.native-day .day-month{font-size:.7rem;color:#bbb}.native-day[aria-pressed=true] .day-month{color:#fff}.schedule-result-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid #444;margin-bottom:1rem}.schedule-result-head h3{font-size:1.5rem;margin:0 0 .9rem}.schedule-result-head span{color:#aaa;font-size:.8rem}.native-events{display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem}.native-event{min-width:0;display:grid;grid-template-columns:72px minmax(0,1fr);gap:1rem;align-items:center;padding:1rem;border:1px solid #303034;border-radius:16px;background:#151518}.native-event.on-air{border-color:#a42330;background:#241619}.native-event img{width:72px;height:72px;object-fit:cover;border-radius:10px;background:#28282b}.event-copy{min-width:0}.event-time{font-weight:800;color:#ff6b76;font-size:.8rem}.native-event h4{margin:.25rem 0;font-size:1.05rem;line-height:1.2}.event-presenter{color:#bbb;font-size:.82rem}.event-live{display:inline-block;margin-left:.5rem;color:#fff;background:#d91e31;border-radius:99px;padding:.1rem .4rem;font-size:.65rem;letter-spacing:.05em}.schedule-message{grid-column:1/-1;padding:2rem 0;color:#bbb}
.schedule-intro p:not(.eyebrow){max-width:520px;color:#c9c8cb;font-size:1.08rem}
@media(max-width:800px){
  .live-deck{grid-template-columns:1fr;gap:1.5rem;padding-top:3rem}
  .live-visual{grid-row:1}
  .live-copy{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;column-gap:1.25rem}
  .live-copy>.eyebrow,.live-status{grid-column:1/-1}
  .live-copy>.eyebrow{margin-bottom:.75rem}
  .now-artwork{width:120px;border-radius:14px}
  .live-track{margin:0;padding:0;border:0}
  .native-days{grid-template-columns:repeat(7,minmax(100px,1fr));overflow-x:auto;padding-bottom:.5rem}
  .native-events{grid-template-columns:1fr}
}
@media(max-width:520px){
  .live-deck,.native-schedule{padding-inline:1rem}
  .live-deck{padding-top:2rem}
  .live-visual{padding:1.3rem .7rem 1rem;border-radius:18px}
  .van-stage{height:350px}
  .van-art{width:min(326px,94%);bottom:24px}
  .live-copy{grid-template-columns:94px minmax(0,1fr);column-gap:1rem}
  .now-artwork{width:94px;border-radius:12px}
  .live-track strong{font-size:1.2rem}
  .live-track span:last-child{font-size:.83rem}
  .schedule-intro{display:block}
  .schedule-timezone{display:block;margin-top:1rem}
  .native-event{grid-template-columns:60px 1fr}
  .native-event img{width:60px;height:60px}
}
@media(prefers-reduced-motion:reduce){
  .live-deck.is-playing .van-art,.live-deck.is-playing .tyre-treads path,.live-deck.is-playing .exhaust-smoke i,.live-deck.is-playing .music-notes span{animation:none}
  .live-deck.is-playing .music-notes span{display:none}
}
#player,#schedule{scroll-margin-top:100px}
.schedule-page .native-schedule{min-height:70vh;padding-top:5rem;border-top:0}
.schedule-page .native-event{grid-template-columns:90px minmax(0,1fr)}
.schedule-page .native-event img{width:90px;height:90px}
@media(max-width:580px){.schedule-page .native-event{grid-template-columns:72px minmax(0,1fr)}.schedule-page .native-event img{width:72px;height:72px}}

/* A shared player enclosure joins artwork, van and listening controls. */
#player.live-deck{display:block;padding-block:3.5rem}
.live-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1000px;margin-inline:auto;align-items:center;border:1px solid #443137;border-radius:28px;background:radial-gradient(ellipse at 90% 25%,#61232c55,transparent 60%),linear-gradient(135deg,#1c191d,#101013);box-shadow:0 24px 70px #0005;overflow:hidden}
.live-panel .live-copy{padding:1.5rem;align-items:flex-start}
.live-panel .live-copy>.eyebrow{font-size:.73rem;letter-spacing:.12em;color:#ded7da;margin-bottom:.85rem}
.live-panel .now-artwork{width:100%;max-width:380px;border-radius:16px;box-shadow:0 12px 32px #0005}
.live-panel .live-track{margin:1rem 0 0;padding:0;border:0;gap:.45rem}
.live-panel .live-track strong{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.16}
.live-panel .live-visual{border:0;border-radius:0;background:none;box-shadow:none;padding:1.5rem 1rem}
.live-panel .van-stage{height:340px}
.live-panel .van-art{width:min(330px,94%)}
.live-panel .live-visual-head h2{font-size:1.7rem}
.live-panel .live-visual-head .eyebrow{display:none}
.live-panel .live-visual-head p:last-child{font-size:.8rem;color:#aaa2a8}
.live-toolbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 1.5rem;border-top:1px solid #ffffff14;background:#08080a55}
.live-toolbar .live-status{margin:0;font-size:.8rem;min-height:0;color:#bcb5bc}
.live-toolbar .live-options{display:flex;align-items:center;gap:1.5rem;max-width:none;margin:0;flex-shrink:0}
.live-volume-control{display:grid;gap:.4rem;width:170px}
.live-volume-control label{display:flex;justify-content:space-between;color:#ccc5ca;font-size:.7rem;font-weight:750}
.live-volume-control output{color:#928a93;font-variant-numeric:tabular-nums}
.live-volume-control input{padding:0;height:18px;cursor:pointer}
.live-toolbar #live-popout{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid #5a3a43;background:#2c1c22;border-radius:10px;padding:.7rem 1rem;font-size:.78rem;white-space:nowrap;color:#f6e8ed}
.live-toolbar #live-popout:hover{background:#45232e;border-color:#dc4b61}
@media(max-width:800px){
 .live-panel{grid-template-columns:1fr}.live-panel .live-visual{grid-row:1;padding:1.5rem 1rem .8rem}
 .live-panel .live-copy{display:grid;grid-template-columns:160px minmax(0,1fr);gap:.9rem 1.2rem;padding:1.25rem 1.5rem}
 .live-panel .live-copy>.eyebrow{grid-column:1/-1;margin:0}.live-panel .now-artwork{width:160px}.live-panel .live-track{margin:0}
 .live-toolbar{flex-wrap:wrap;gap:1rem;padding:1.2rem 2rem}.live-toolbar .live-options{width:100%;justify-content:space-between}.live-volume-control{width:min(50%,240px)}
}
@media(max-width:520px){
 #player.live-deck{padding-block:2rem}.live-panel{border-radius:20px}.live-panel .live-copy{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:1.25rem 1.25rem 1.5rem}
 .live-panel .live-copy>.eyebrow{margin:0 0 .9rem}
 .live-panel .now-artwork{display:block;width:calc(100% + 2.5rem);max-width:none;height:auto;margin-inline:-1.25rem;border:1px solid #ffffff38;border-radius:10px;aspect-ratio:1}
 .live-panel .live-track{width:100%;margin:1.2rem 0 0;gap:.5rem}
 .live-panel .live-track strong{font-size:clamp(1.45rem,5vw,1.9rem)}
 .live-panel .live-track span:last-child{font-size:.95rem}
 .live-toolbar{padding:1rem 1.25rem}.live-toolbar .live-options{gap:1rem}.live-toolbar #live-popout{padding:.7rem .8rem}.live-panel .van-stage{height:320px}.live-panel .van-art{width:min(300px,94%)}
}

/* A live UK clock and a visitor-time option accompany the compact schedule list. */
.native-schedule .schedule-timezone{display:grid;justify-items:end;gap:.45rem;min-width:205px;white-space:normal}
.schedule-clock-line{display:flex;align-items:baseline;justify-content:flex-end;gap:.6rem;color:#d0cbd0;font-size:.78rem;font-weight:750}
.schedule-clock-line time{color:#fff;font-size:1.35rem;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.schedule-timezone button{padding:.45rem .75rem;border:1px solid #6a424c;border-radius:9px;background:#291b20;color:#fff;font:750 .75rem system-ui;cursor:pointer}
.schedule-timezone button:hover,.schedule-timezone button:focus-visible{border-color:#ef6373;background:#3a2229}
.schedule-timezone-note{max-width:860px;margin:0 auto .5rem;color:#bdb6bd;font-size:.77rem}
.schedule-timezone-note[hidden]{display:none}
.native-schedule .schedule-result-head,.native-schedule .native-events{max-width:860px;margin-inline:auto}
.native-schedule .native-event{grid-template-columns:80px minmax(0,1fr);gap:1.25rem;width:100%;padding:1rem 1.25rem}
.native-schedule .native-event img{width:80px;height:80px}
.native-schedule .event-copy{display:grid;grid-template-columns:minmax(150px,.38fr) minmax(0,1fr);column-gap:1.25rem;align-items:center}
.native-schedule .event-time{grid-column:1;grid-row:1/3;color:#ff7783;font-size:1rem;line-height:1.25;font-variant-numeric:tabular-nums}
.native-schedule .event-time-range{font-weight:900}
.native-schedule .event-local-date{display:block;margin-top:.3rem;color:#bdb6bd;font-size:.72rem;font-weight:650}
.native-schedule .native-event h4{grid-column:2;grid-row:1;margin:0 0 .2rem;font-size:1.15rem}
.native-schedule .event-presenter{grid-column:2;grid-row:2}
@media(max-width:700px){
 .native-schedule .schedule-intro{display:block}
 .native-schedule .schedule-timezone{justify-items:start;margin-top:1rem}
 .native-schedule .schedule-clock-line{justify-content:flex-start}
 .native-schedule .native-event{grid-template-columns:64px minmax(0,1fr);gap:.85rem;padding:.85rem}
 .native-schedule .native-event img{width:64px;height:64px}
 .native-schedule .event-copy{display:block}
 .native-schedule .event-time{display:block;margin-bottom:.35rem;font-size:.87rem}
 .native-schedule .native-event h4{margin:0 0 .2rem;font-size:1rem}
}

/* Community shortcuts share the player toolbar with listening controls. */
.live-community{display:grid;gap:.5rem;min-width:0}
.live-community-links{display:flex;flex-wrap:wrap;gap:.6rem}
.live-toolbar .live-community-links .button,.live-toolbar #live-popout{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:44px;padding:.75rem 1.1rem;border:1px solid #e21b2d;border-radius:999px;background:#201619;color:#f8f7f5;font-size:.8rem;font-weight:800;line-height:1.2;white-space:nowrap;box-shadow:inset 0 1px 0 #ffffff08;transition:background .15s,border-color .15s,box-shadow .15s}
.live-toolbar .live-community-links .button:hover,.live-toolbar #live-popout:hover{background:#e21b2d;border-color:#ff4050;box-shadow:0 4px 16px #e21b2d28}
.live-toolbar .live-community-links .button:focus-visible,.live-toolbar #live-popout:focus-visible{outline:2px solid #fff;outline-offset:4px}
.live-toolbar .live-community-links .button svg,.live-toolbar #live-popout svg{width:17px;height:17px;flex:none}
.live-community-links svg{flex:none}
.live-toolbar .live-status:empty{display:none}
@media(max-width:800px){.live-community{width:100%}}
