/* JoyLand Radio — "la strada è la radio"
   Western (logo e titoli) · Roadscript (la scritta a mano) · Overpass (il carattere dei cartelli stradali) */
@font-face{font-family:Western;src:url('../fonts/western.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Roadscript;src:url('../fonts/handwritten.ttf') format('truetype');font-weight:600;font-display:swap}

:root{
  --night:#0d1412; --night-2:#14201c; --night-3:#1c2b25;
  --paper:#efe3c6; --paper-2:#e4d2a9; --ink:#1d1812; --ink-soft:#4a3f31;
  --sand:#f4cd88; --sand-deep:#c99a4e;
  --green:#2e9447; --green-deep:#1f6e33; --neon:#9be37f;
  --amber:#ff9d3a; --red:#e2482f;
  --sign:#1d6b3a;
  --pad:clamp(20px,6vw,96px);
  --max:1360px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --display:Western,Georgia,serif;
  --script:Roadscript,cursive;
  --text:Overpass,Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px;overflow-x:clip}
body{margin:0;font-family:var(--text);color:var(--paper);background:var(--night);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;color:inherit}
svg{width:22px;height:22px;flex-shrink:0}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
:focus-visible{outline:3px solid var(--neon);outline-offset:4px}
::selection{background:var(--sand);color:var(--ink)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip{position:fixed;top:-60px;left:16px;z-index:100;background:var(--neon);color:var(--ink);padding:12px 16px;font-weight:800}
.skip:focus{top:12px}
.icon-button{border:0;background:transparent;padding:10px;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--neon);flex-shrink:0;animation:on-air 2.6s ease-in-out infinite}
.kicker{font-size:14px;font-weight:800;letter-spacing:.06em;margin:0 0 14px;color:var(--green)}

/* ---------- HEADER ---------- */
.header{position:sticky;top:0;z-index:40;height:84px;padding:0 var(--pad);display:flex;align-items:center;gap:32px;background:var(--night);transition:background .3s}
.route-brand{display:flex;flex-direction:column;flex-shrink:0}
.route-name{font-family:var(--display);font-size:30px;line-height:1.1;color:#fff;text-shadow:0 0 5px #7bdcb5,0 0 15px #00d084,0 0 30px #00d084,0 0 60px #186605;animation:original-flicker 4s infinite alternate}
.route-radio{font-size:11px;font-weight:800;letter-spacing:.3em;color:#7bdcb5;text-shadow:0 0 10px #00d084}
.header nav{display:flex;gap:30px;margin-left:auto;font-size:15px;font-weight:600}
.header nav a{position:relative;padding:6px 0}
.header nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--neon);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.header nav a:hover::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:12px}
.header-platforms{display:flex;gap:8px}
.header-platforms a{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;min-height:40px;padding:0 14px;background:var(--sign);color:#fff;border-radius:6px;box-shadow:inset 0 0 0 2px #ffffffcc;transition:transform .2s var(--ease),background .2s}
.header-platforms a:hover{transform:translateY(-2px);background:var(--green)}
.header-platforms svg{width:17px;height:17px}
.menu-button{display:none!important}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:min(100svh,940px);display:grid;place-items:center;overflow:hidden;background:#173a40;isolation:isolate}
.hero-media{position:absolute;inset:-6% 0 0;z-index:-2;will-change:transform}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:center 60%;animation:kenburns 28s ease-in-out infinite alternate}
.hero-shade{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 70% 55% at 50% 38%,rgba(6,18,22,.5),rgba(6,18,22,.12) 70%),linear-gradient(to bottom,rgba(6,18,22,.35),transparent 30%,transparent 70%,rgba(13,20,18,.9))}
.hero-content{text-align:center;padding:72px var(--pad) 120px;max-width:1200px}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:800;letter-spacing:.08em;margin:0 0 20px;color:#f6efe0;text-shadow:0 1px 4px #0009}
.western-star{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 auto 6px;color:var(--sand)}
.western-star span{height:6px;width:clamp(70px,14vw,190px);background:var(--sand);clip-path:polygon(0 50%,100% 0,100% 100%);box-shadow:0 2px 3px #0008}
.western-star span:last-child{clip-path:polygon(0 0,100% 50%,0 100%)}
.western-star svg{width:46px;height:46px;fill:var(--sand);stroke:#7a5524;stroke-width:.7;filter:drop-shadow(0 3px 2px #0009)}

/* il logo: la "scritta musicale" */
.logo{margin:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:clamp(8px,2vw,28px);font-weight:400}
.logo-joyland{grid-column:2;font-family:var(--display);font-size:clamp(64px,13.5vw,196px);line-height:.95;letter-spacing:.01em;color:var(--sand);text-shadow:0 2px 0 #b3803e,0 4px 0 #8a5a27,0 7px 0 #5a3a1b,0 10px 2px #2a1a0c,0 16px 26px #0009}
.logo .o{color:var(--green);text-shadow:0 2px 0 #1d6b30,0 4px 0 #165226,0 7px 0 #0f3a1b,0 10px 2px #07210f,0 16px 26px #0009}
.logo-radio{grid-column:1/-1;font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(26px,4.6vw,64px);letter-spacing:.42em;margin:8px 0 0 .42em;color:var(--sand);text-shadow:0 3px 0 #6b4520,0 8px 16px #0009}
.logo-radio .o{text-shadow:0 3px 0 #0f3a1b,0 8px 16px #0009}
.wave{height:clamp(40px,7vw,110px);display:flex;align-items:center;gap:clamp(2px,.4vw,5px)}
.wave-left{justify-content:flex-end}
.wave i{display:block;width:clamp(2px,.35vw,5px);border-radius:3px;background:var(--neon);box-shadow:0 0 8px #2e944799;height:calc(var(--h)*100%);transform-origin:center;animation:wave 1.4s ease-in-out infinite alternate;animation-delay:var(--d)}
.is-playing .wave i{animation-duration:.45s}
.hero-tagline{position:relative;display:inline-block;font-family:var(--script);font-weight:600;font-size:clamp(34px,5.4vw,72px);line-height:1.1;margin:18px 0 22px;color:#fff6e4;text-shadow:0 3px 8px #0a1a14}
.hero-tagline>span{position:relative;z-index:1}
.swoosh{position:absolute;left:4%;right:-2%;bottom:-.28em;width:98%;height:.6em;overflow:visible}
.swoosh path{fill:none;stroke:var(--green);stroke-width:9;stroke-linecap:round;stroke-dasharray:700;stroke-dashoffset:700;animation:draw 1.6s .6s var(--ease) forwards;filter:drop-shadow(0 2px 2px #0008)}
.hero-copy{font-size:clamp(18px,1.8vw,22px);margin:0 0 30px;color:#fff;text-shadow:0 1px 6px #000b}
.hero-copy strong{color:var(--neon)}
.hero-actions{display:flex;justify-content:center;align-items:center;gap:28px;flex-wrap:wrap}
.on-air-button{display:inline-flex;align-items:center;gap:14px;border:0;border-radius:999px;padding:8px 26px 8px 8px;background:var(--red);color:#fff;font-weight:800;font-size:17px;letter-spacing:.02em;transition:transform .2s var(--ease),background .2s}
.on-air-button:hover{transform:translateY(-2px) scale(1.02);background:#f05638}
.on-air-button:active{transform:scale(.97)}
.on-air-icon{width:52px;height:52px;border-radius:50%;background:#fff;color:var(--red);display:grid;place-items:center}
.on-air-icon svg{width:24px;height:24px;fill:currentColor}
.is-playing .on-air-button{background:var(--green-deep)}
.is-playing .on-air-icon{color:var(--green-deep)}
.explore{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:15px;color:#fff;padding:10px 2px;border-bottom:2px solid #ffffff80;text-shadow:0 1px 4px #000a;transition:border-color .2s}
.explore:hover{border-color:var(--neon)}
.explore svg{width:18px;height:18px;animation:nudge 1.8s ease-in-out infinite}
.hero-caption{position:absolute;right:var(--pad);bottom:28px;display:flex;flex-direction:column;align-items:flex-end;font-size:12px;font-weight:800;letter-spacing:.08em;line-height:1.7;color:#fcf4e6;text-shadow:0 1px 4px #000c}

/* ---------- PLAYER: console dello studio ---------- */
.player{position:relative;display:grid;grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:clamp(18px,3vw,44px);padding:30px var(--pad);background:var(--night-2);border-top:4px solid var(--green)}
.on-air-sign{display:grid;place-items:center;padding:12px 18px;border-radius:6px;background:#2a1a12;box-shadow:inset 0 0 0 3px #4a3324;transition:background .4s,box-shadow .4s}
.on-air-sign span{font-weight:800;font-size:22px;letter-spacing:.08em;color:#6b4632;transition:color .4s,text-shadow .4s}
.is-playing .on-air-sign{background:#4b170f;box-shadow:inset 0 0 0 3px #ff7a45,0 0 40px #ff5a2f66}
.is-playing .on-air-sign span{color:#ffd9a8;text-shadow:0 0 8px #ff8a3c,0 0 22px #ff5a2f}
.player-label{display:none}
.deck{position:relative;width:132px;height:132px}
.vinyl{position:absolute;inset:0;border-radius:50%;background:repeating-radial-gradient(circle,#0b0b0b 0 2px,#1d1d1d 2px 4px);box-shadow:0 0 0 2px #2b2b2b;display:grid;place-items:center;animation:spin 3.2s linear infinite;animation-play-state:paused}
.vinyl img{width:52%;height:52%;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #0b0b0b}
.vinyl::after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--night-2)}
.is-playing .vinyl{animation-play-state:running}
.play-main{position:absolute;right:-14px;bottom:-6px;width:62px;height:62px;border-radius:50%;border:0;background:var(--neon);color:var(--ink);display:grid;place-items:center;transition:transform .2s var(--ease)}
.play-main:hover{transform:scale(1.08)}
.play-main:active{transform:scale(.94)}
.play-main svg{width:26px;height:26px;fill:currentColor}
.track{min-width:0}
.track p{margin:0;font-size:15px;color:#c9d6cc}
.track h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.2vw,44px);line-height:1.05;margin:6px 0;color:var(--sand);overflow-wrap:anywhere}
.track .artist{font-size:18px;font-weight:600;color:#fff}
.equalizer{width:200px;height:64px}
.volume{display:flex;align-items:center;gap:4px}
.volume button{color:var(--neon)}
.volume input{width:110px;accent-color:var(--neon)}

/* ---------- SEZIONI ---------- */
.section{padding:clamp(80px,11vw,170px) var(--pad)}
.section>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.section h2{font-family:var(--display);font-weight:400;font-size:clamp(44px,6.4vw,96px);line-height:.98;letter-spacing:.005em;margin:0}
.paper{background-color:var(--paper);color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .33 0 0 0 0 .18 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.paper .kicker{color:var(--green-deep)}

/* il nostro mondo: cartoline */
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:clamp(48px,6vw,90px)}
.section-heading>p{font-size:clamp(18px,1.6vw,22px);line-height:1.5;margin:0;max-width:30ch;color:var(--ink-soft)}
.postcards{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:clamp(28px,4vw,56px) clamp(28px,4vw,64px)}
.postcard{display:block;background:#fbf5e6;padding:14px 14px 22px;box-shadow:0 1px 0 #d6c39b,0 18px 30px -18px #3b2a1477;transition:transform .5s var(--ease),box-shadow .5s;--r:0deg;transform:rotate(var(--r))}
.pc-stories{grid-row:1/3;--r:-1.2deg;display:flex;flex-direction:column}
.pc-stories .pc-photo{flex:1;aspect-ratio:auto;min-height:420px}
.pc-music{--r:1.4deg}
.pc-road{--r:-.8deg;margin-left:8%}
.postcard:hover{transform:rotate(0deg) translateY(-8px);box-shadow:0 1px 0 #d6c39b,0 30px 40px -20px #3b2a1499}
.pc-photo{position:relative;overflow:hidden;aspect-ratio:4/3;background:#cdbb92}
.pc-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.postcard:hover .pc-photo img{transform:scale(1.05)}
.stamp{position:absolute;top:14px;left:14px;padding:6px 10px;background:var(--paper);color:var(--green-deep);font-weight:800;font-size:13px;letter-spacing:.06em;border:2px dashed var(--green-deep)}
.pc-text{position:relative;padding:18px 60px 0 6px}
.pc-text h3{font-family:var(--display);font-weight:400;font-size:clamp(26px,2.4vw,36px);line-height:1.05;margin:0 0 8px;color:var(--ink)}
.pc-stories .pc-text h3{font-size:clamp(32px,3.2vw,48px)}
.pc-text p{margin:0;font-size:17px;color:var(--ink-soft)}
.pc-go{position:absolute;right:4px;top:18px;width:46px;height:46px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;transition:transform .3s var(--ease)}
.postcard:hover .pc-go{transform:rotate(45deg)}

/* manifesto */
.manifesto{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,100px);align-items:center;background:var(--night);overflow:hidden}
.poster{margin:0;transform:rotate(-2deg);box-shadow:0 30px 60px -20px #000;max-width:560px}
.poster img{width:100%;height:auto}
.manifesto blockquote{margin:0 0 34px}
.manifesto blockquote p{font-family:var(--display);font-size:clamp(34px,4.2vw,62px);line-height:1.02;margin:0;color:var(--sand)}
.manifesto blockquote.small p{font-family:var(--script);font-size:clamp(28px,2.8vw,40px);line-height:1.15;color:#fff}
.manifesto cite{display:block;margin-top:12px;font-style:normal;font-weight:800;font-size:15px;letter-spacing:.06em;color:var(--neon)}
.since{font-size:19px;margin:0 0 26px;color:#e6eadf;max-width:38ch}
.since strong{color:var(--sand)}
.text-link{display:inline-flex;align-items:center;gap:10px;font-weight:800;padding-bottom:6px;border-bottom:2px solid var(--green)}
.text-link:hover{color:var(--neon)}
.genres{grid-column:1/-1;max-width:none!important;margin:clamp(30px,5vw,70px) calc(-1*var(--pad)) 0!important;overflow:hidden;background:var(--green);transform:rotate(-1.5deg)}
.genres-track{display:flex;width:max-content;animation:marquee 32s linear infinite}
.genres span{font-family:var(--display);font-size:clamp(34px,4.5vw,64px);line-height:1;padding:18px 0;color:#0d2a16;white-space:nowrap}
.genres span::after{content:"\2605";margin:0 .6em;color:var(--sand);font-family:Georgia,serif;font-size:.6em;vertical-align:.2em}

/* archivio */
.archive{background:var(--night-2)}
.archive-intro{margin-bottom:clamp(50px,7vw,100px)}
.archive .kicker{color:var(--neon)}
.archive h2{color:#fff}
.shelf{margin-bottom:clamp(60px,8vw,110px)}
.shelf:last-child{margin-bottom:0}
.shelf-head{display:flex;align-items:center;gap:20px;margin-bottom:28px;max-width:640px}
.shelf-head h3{font-family:var(--display);font-weight:400;font-size:clamp(30px,3vw,44px);margin:0;line-height:1;color:var(--sand)}
.shelf-head p{margin:6px 0 0;font-size:17px;color:#d4ddd5}
.shelf-head>svg{margin-left:auto;transition:transform .3s var(--ease)}
.shelf-head:hover>svg{transform:translate(4px,-4px)}
.archive-icon{width:62px;height:62px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;flex-shrink:0}
.archive-icon.pink{background:var(--red)}
.filmstrip{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,32px);padding:22px clamp(14px,2vw,26px);background:#070a09;--hole:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='14'%3E%3Crect x='6' y='3' width='14' height='8' rx='2' fill='%2314201c'/%3E%3C/svg%3E");background-image:var(--hole),var(--hole);background-repeat:repeat-x;background-position:0 4px,0 calc(100% - 4px)}
.frame{position:relative;display:block;overflow:hidden}
.frame img{width:100%;height:auto;transition:transform .8s var(--ease),filter .5s}
.frame:hover img{transform:scale(1.04)}
.frame span,.sleeve-cap{display:block;padding:12px 0 0;font-weight:700;font-size:16px;color:#e9eee6;background:#070a09}
.crate{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,40px)}
.sleeve{position:relative;display:block}
.sleeve img{position:relative;z-index:1;width:100%;height:auto;transition:transform .6s var(--ease)}
.sleeve .disc{position:absolute;z-index:0;top:4%;right:4%;width:76%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--red) 0 15%,#111 15.5% 17%,transparent 17.5%),repeating-radial-gradient(circle,#0b0b0b 0 2px,#202020 2px 4px);transition:transform .6s var(--ease)}
.sleeve:hover img{transform:translateX(-8%) rotate(-2deg)}
.sleeve:hover .disc{transform:translateX(28%) rotate(120deg)}
.sleeve-cap{background:none;position:relative;z-index:1}

/* piattaforme: cartelli autostradali */
.platforms{background:var(--night)}
.platforms .kicker{color:var(--sand)}
.platforms h2{color:#fff;margin-bottom:clamp(36px,5vw,64px)}
.platform-links{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px)}
.road-sign{position:relative;display:flex;align-items:center;gap:20px;padding:34px 34px 30px;background:var(--sign);color:#fff;border-radius:14px;box-shadow:inset 0 0 0 4px var(--sign),inset 0 0 0 7px #fff;transition:transform .35s var(--ease),background .35s}
.road-sign:hover{transform:translateY(-6px);background:#227a43;box-shadow:inset 0 0 0 4px #227a43,inset 0 0 0 7px #fff}
.road-sign>svg:first-of-type{width:44px;height:44px}
.road-sign>svg:last-of-type{margin-left:auto;width:30px;height:30px;transition:transform .3s var(--ease)}
.road-sign:hover>svg:last-of-type{transform:translate(4px,-4px)}
.road-sign h3{font-size:clamp(30px,3.4vw,48px);font-weight:800;line-height:1;margin:0 0 6px;letter-spacing:-.01em}
.road-sign p{margin:0;font-size:17px}
.exit{position:absolute;top:-16px;right:30px;padding:4px 14px;background:var(--sign);border-radius:6px;box-shadow:inset 0 0 0 3px #fff;font-weight:800;font-size:14px;letter-spacing:.1em}
.shows{margin-top:clamp(60px,7vw,100px)}
.shows-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:26px}
.shows-head h3{font-family:var(--display);font-weight:400;font-size:clamp(30px,3vw,44px);margin:0;line-height:1;color:var(--sand)}
.shows-head p{margin:0;color:#c9d6cc;max-width:36ch}
.shows-reel{list-style:none;margin:0;padding:0 0 14px;display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,22vw,300px);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:var(--green) transparent}
.shows-reel li{scroll-snap-align:start}
.show{width:100%;border:0;padding:0;background:none;text-align:left;color:#fff}
.show-cover{position:relative;aspect-ratio:1;overflow:hidden;background:var(--night-3)}
.show-cover img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.show:hover .show-cover img{transform:scale(1.06)}
.show-play{position:absolute;left:14px;bottom:14px;width:52px;height:52px;border-radius:50%;background:var(--neon);color:var(--ink);display:grid;place-items:center;transition:transform .3s var(--ease)}
.show-play svg{fill:currentColor}
.show:hover .show-play{transform:scale(1.12)}
.show.is-current .show-play{background:var(--red);color:#fff}
.show strong{display:block;margin-top:12px;font-size:17px;line-height:1.3}
.show small{display:block;margin-top:4px;font-size:14px;color:#aebcb2}

/* community */
.community{display:flex;justify-content:space-between;align-items:center;gap:40px;background:var(--green);color:#0b2414;padding-top:clamp(70px,8vw,120px);padding-bottom:clamp(70px,8vw,120px)}
.community>div:first-child{margin:0}
.community .kicker{color:#0b2414}
.community h2{font-size:clamp(40px,5vw,76px)}
.community p:last-child{font-size:19px;margin:14px 0 0}
.socials{display:flex;gap:14px;margin:0!important}
.socials a{width:68px;height:68px;border-radius:50%;background:#0b2414;color:var(--paper);display:grid;place-items:center;transition:transform .3s var(--ease),background .3s}
.socials a:hover{transform:translateY(-5px) rotate(-6deg);background:var(--night)}
.socials svg{width:26px;height:26px}
.socials span{font-weight:800;font-size:24px}

/* footer */
.footer{background:var(--night);padding-top:clamp(70px,9vw,130px);padding-bottom:40px}
.footer-logo{display:block;font-family:var(--display);font-size:clamp(40px,10vw,160px);line-height:.9;color:var(--sand);text-align:center;white-space:nowrap}
.footer-logo .o{color:var(--green)}
.footer-radio{font-size:.45em;letter-spacing:.2em;vertical-align:.5em}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:30px;padding-bottom:34px}
.footer-script{font-family:var(--script);font-size:clamp(26px,2.6vw,36px);margin:0;color:#fff}
.footer-top a{display:inline-flex;gap:10px;align-items:center;font-weight:800}
.footer-top a:hover{color:var(--neon)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:26px;background:linear-gradient(var(--night-3),var(--night-3)) top/100% 2px no-repeat;color:#c3cdc5;font-size:15px}
.footer-bottom p{margin:0}
.footer-bottom>div{display:flex;gap:24px;flex-wrap:wrap}
.footer-bottom a:hover{color:var(--neon)}
.licenses{width:100%;font-size:14px;line-height:1.7}
.licenses small{font-size:13px;color:#93a198}

/* mini player + dock Mixcloud */
.mini-player{position:fixed;bottom:18px;left:50%;z-index:50;display:flex;align-items:center;gap:14px;width:340px;max-width:calc(100% - 32px);padding:10px 12px 10px 20px;background:var(--night-3);border-radius:999px;box-shadow:0 12px 30px #0008;transform:translate(-50%,140px);transition:transform .35s var(--ease)}
.mini-player.visible{transform:translate(-50%,0)}
.mini-player>div{flex:1;min-width:0}
.mini-player strong{display:block;font-size:15px}
#mini-status{display:block;font-size:13px;color:#c2c9bd}
.mini-player button{background:var(--neon);color:var(--ink);border-radius:50%}
.mini-player button svg{fill:currentColor}
.mixcloud-dock{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;background:#fff;box-shadow:0 -10px 30px #0006}
.mixcloud-dock[hidden]{display:none}
.mixcloud-dock iframe{border:0;display:block;flex:1}
.mixcloud-dock button{color:var(--ink)}
body:has(.mixcloud-dock:not([hidden])) .mini-player{bottom:80px}
body:has(.mini-player.visible) .footer{padding-bottom:110px}

/* entrate */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--delay,0s)}
.js .postcard.reveal{transform:translateY(28px) rotate(var(--r))}
.js .reveal.in{opacity:1;transform:none}
.js .postcard.reveal.in{transform:rotate(var(--r))}
.js .postcard.reveal.in:hover{transform:rotate(0deg) translateY(-8px)}

@keyframes on-air{0%,100%{opacity:1;box-shadow:0 0 10px var(--neon)}50%{opacity:.55;box-shadow:0 0 2px var(--neon)}}
@keyframes original-flicker{0%,18%,22%,25%,53%,57%,100%{opacity:1}20%,24%,55%{opacity:.4}}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.12) translateY(-1.5%)}}
@keyframes wave{from{transform:scaleY(.25)}to{transform:scaleY(1)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes nudge{0%,100%{transform:none}50%{transform:translateY(4px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1180px){
  .header{gap:16px;justify-content:space-between}
  .header .menu-button{display:flex!important}
  .header nav{display:none;position:absolute;top:84px;left:0;right:0;margin:0;padding:12px var(--pad) 24px;background:var(--night);flex-direction:column;gap:0;font-size:20px;box-shadow:0 20px 30px #0008}
  .header nav.open{display:flex}
  .header nav a{padding:14px 0}
  .player{grid-template-columns:auto auto 1fr auto}
  .equalizer{display:none}
}
@media(max-width:900px){
  .postcards{grid-template-columns:1fr 1fr}
  .pc-stories{grid-row:auto;grid-column:1/-1}
  .pc-stories .pc-photo{aspect-ratio:16/10;min-height:0;flex:none}
  .pc-road{margin-left:0}
  .manifesto{grid-template-columns:1fr}
  .poster{max-width:420px}
  .crate{grid-template-columns:1fr 1fr}
  .platform-links{grid-template-columns:1fr}
  .community{flex-direction:column;align-items:flex-start}
  .player{grid-template-columns:auto 1fr;grid-template-areas:"deck track" "sign volume"}
  .deck{grid-area:deck}.track{grid-area:track}.on-air-sign{grid-area:sign;justify-self:start}.volume{grid-area:volume}
}
@media(max-width:640px){
  body{font-size:16px}
  .header{height:72px}
  .header nav{top:72px}
  .route-name{font-size:24px}
  .route-radio{font-size:9px}
  .header-platforms a{padding:0 10px;font-size:12px}
  .header-platforms a span:not(.sr-only){display:none}
  .hero{min-height:calc(100svh - 72px)}
  .hero-content{padding:44px 18px 110px}
  .hero-kicker{font-size:11px;letter-spacing:.04em}
  .logo{column-gap:6px}
  .logo-radio{letter-spacing:.32em}
  .hero-tagline{margin:14px 0 18px}
  .hero-actions{flex-direction:column;gap:14px}
  .hero-caption{left:18px;right:18px;align-items:center;bottom:20px;font-size:11px}
  .player{padding:26px 18px;gap:18px 22px}
  .deck{width:104px;height:104px}
  .play-main{width:54px;height:54px;right:-12px}
  .on-air-sign span{font-size:17px}
  .section-heading{flex-direction:column;align-items:flex-start;gap:16px}
  .postcards{grid-template-columns:1fr}
  .pc-stories,.pc-music,.pc-road{--r:0deg}
  .pc-stories{--r:-.6deg}.pc-music{--r:.8deg}
  .filmstrip{grid-template-columns:1fr}
  .crate{grid-template-columns:1fr}
  .sleeve .disc{display:none}
  .road-sign{padding:30px 22px 24px;gap:14px}
  .road-sign>svg:first-of-type{width:34px;height:34px}
  .shows-head{flex-direction:column;align-items:flex-start;gap:8px}
  .shows-reel{grid-auto-columns:72%}
  .socials a{width:58px;height:58px}
  .footer-top{flex-direction:column;align-items:flex-start}
  .footer-bottom{flex-direction:column}
}
@media(max-width:380px){
  .header-platforms{display:none}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .swoosh path{stroke-dashoffset:0}
  .js .reveal{opacity:1;transform:none}
  .js .postcard.reveal{transform:rotate(var(--r))}
}
