*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--background);color:#fff;overflow-x:hidden}.abstract-bg{position:fixed;inset:0;z-index:-2;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--background) 94%,#000),var(--background))}.abstract-bg span{position:absolute;border-radius:999px;filter:blur(75px);opacity:.42}.motion-on .abstract-bg span{animation:drift 18s ease-in-out infinite alternate}.abstract-bg span:nth-child(1){width:48vw;height:48vw;left:-14vw;top:-18vw;background:var(--primary)}.abstract-bg span:nth-child(2){width:44vw;height:44vw;right:-12vw;bottom:-20vw;background:color-mix(in srgb,var(--primary) 45%,#745cff)}.abstract-bg span:nth-child(3){width:26vw;height:26vw;left:42%;top:38%;background:color-mix(in srgb,var(--background) 50%,#fff);opacity:.16}.abstract-bg i{position:absolute;inset:-20%;opacity:.22;background:repeating-radial-gradient(ellipse at 50% 50%,transparent 0 23px,color-mix(in srgb,var(--primary) 44%,transparent) 24px 25px,transparent 26px 42px);transform:rotate(-9deg) scale(1.25)}.bg-malla i{background-image:linear-gradient(color-mix(in srgb,var(--primary) 24%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--primary) 20%,transparent) 1px,transparent 1px);background-size:58px 58px}.bg-halo i{background:radial-gradient(circle at center,transparent 0 18%,color-mix(in srgb,var(--primary) 28%,transparent) 18.2% 18.5%,transparent 19% 32%,color-mix(in srgb,var(--primary) 22%,transparent) 32.2% 32.5%,transparent 33%)}.bg-solido i{display:none}.texture-on .abstract-bg:after{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.radio-shell{min-height:100dvh;display:grid;place-content:center;padding:44px 18px 56px}.radio-card{width:min(100%,480px);position:relative;padding:42px 36px 34px;border-radius:34px;border:1px solid rgba(255,255,255,.28);background:linear-gradient(160deg,rgba(255,255,255,.2),rgba(255,255,255,.09));box-shadow:0 30px 90px rgba(0,0,0,.28);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.live-badge{position:absolute;right:28px;top:24px;display:flex;gap:8px;align-items:center;font-size:12px;font-weight:900;letter-spacing:.12em}.live-badge span{width:10px;height:10px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 7px color-mix(in srgb,var(--primary) 18%,transparent);animation:pulse 1.8s infinite}.brand{text-align:center}.logo-wrap{width:136px;height:136px;margin:0 auto 22px;display:grid;place-items:center;overflow:hidden;transition:transform .3s ease}.motion-on .logo-wrap{animation:breathe 8s ease-in-out infinite}.logo-wrap img{width:100%;height:100%;object-fit:contain}.logo-rounded{border-radius:28px;padding:10px;background:rgba(255,255,255,.94);box-shadow:0 12px 28px rgba(0,0,0,.12)}.logo-circle{border-radius:50%;padding:10px;background:rgba(255,255,255,.94)}.logo-square{border-radius:0;padding:10px;background:rgba(255,255,255,.94)}.logo-none{background:none;padding:0;border-radius:0;overflow:visible}.eyebrow,.section-label{font-size:11px;letter-spacing:.2em;font-weight:900;color:rgba(255,255,255,.68);margin:0 0 8px}.brand h1{font-size:34px;line-height:1.05;margin:0;font-weight:850}.brand h1 strong{display:block;color:var(--primary);font-size:58px;line-height:1;margin-top:10px;text-shadow:0 12px 28px color-mix(in srgb,var(--primary) 28%,transparent)}.slogan{font-size:18px;font-weight:800;margin:17px 0 0}.location{font-size:14px;color:rgba(255,255,255,.68);margin:7px 0 0}.player{margin-top:30px;display:grid;grid-template-columns:70px minmax(0,1fr) 38px 50px;gap:14px;align-items:center;min-height:104px;padding:14px 16px 14px 14px;border-radius:26px;background:rgba(8,18,24,.56);box-shadow:inset 0 1px rgba(255,255,255,.05)}button,a{-webkit-tap-highlight-color:transparent}.play-button,.mute-button{border:0;color:#fff;cursor:pointer}.play-button{width:70px;height:70px;border-radius:50%;background:var(--primary);display:grid;place-items:center;box-shadow:0 13px 26px color-mix(in srgb,var(--primary) 35%,transparent);transition:.2s}.play-button:hover{transform:scale(1.05)}.play-button svg{width:27px;height:27px;fill:currentColor}.icon-pause,.loader{display:none}.player.is-playing .icon-play{display:none}.player.is-playing .icon-pause{display:block}.player.is-loading svg{display:none}.player.is-loading .loader{display:block;width:25px;height:25px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.player-copy{min-width:0}.player-copy strong,.player-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-copy strong{font-size:16px}.player-copy span{font-size:13px;color:rgba(255,255,255,.62);margin-top:7px}.equalizer{height:28px;display:flex;align-items:center;justify-content:center;gap:3px}.equalizer i{width:4px;height:8px;border-radius:4px;background:var(--primary)}.player.is-playing .equalizer i{animation:eq .8s ease-in-out infinite alternate}.equalizer i:nth-child(2){animation-delay:-.3s!important}.equalizer i:nth-child(3){animation-delay:-.6s!important}.equalizer i:nth-child(4){animation-delay:-.15s!important}.mute-button{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1)}.mute-button svg{width:23px;fill:currentColor}.apps-block,.desktop-actions{margin-top:22px}.section-label{text-align:center;margin-bottom:11px}.install-button,.contact-button{width:100%;min-height:82px;border:1px solid rgba(255,255,255,.26);border-radius:20px;background:rgba(255,255,255,.08);color:#fff;display:grid;grid-template-columns:54px 1fr 24px;gap:14px;align-items:center;text-align:left;padding:12px 16px;text-decoration:none;cursor:pointer;transition:.2s}.install-button:hover,.contact-button:hover{transform:translateY(-2px);background:rgba(255,255,255,.12)}.install-icon,.contact-icon{width:54px;height:54px;border-radius:16px;background:var(--primary);display:grid;place-items:center;box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 24%,transparent)}.install-icon svg,.contact-icon svg{width:26px;height:26px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.install-button strong,.install-button small,.contact-button strong,.contact-button small{display:block}.install-button strong,.contact-button strong{font-size:16px}.install-button small,.contact-button small{font-size:12px;color:rgba(255,255,255,.65);margin-top:5px}.chevron{width:22px;height:22px;fill:none;stroke:rgba(255,255,255,.68);stroke-width:2}.contact-button{margin-top:14px;border-color:color-mix(in srgb,#25d366 45%,transparent);background:color-mix(in srgb,#25d366 9%,rgba(255,255,255,.06))}.contact-icon{background:#25d366;box-shadow:0 10px 24px rgba(37,211,102,.2)}.social-block{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}.socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.socials.count-1{grid-template-columns:1fr}.social-card{min-height:56px;padding:10px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;color:#fff;font-size:13px;font-weight:800;transition:.2s}.social-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.12)}.social-card svg,.sheet-links svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.social-card svg .fill,.sheet-links svg .fill{fill:currentColor;stroke:none}.social-instagram:hover{border-color:#e1306c}.social-facebook:hover{border-color:#1877f2}.social-youtube:hover{border-color:#ff0033}.social-tiktok:hover{border-color:#25f4ee}.radio-shell footer{text-align:center;margin-top:24px;color:rgba(255,255,255,.56);font-size:12px}.radio-shell footer a{color:inherit;text-decoration:none}.mobile-dock{display:none}.sheet{display:none;position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.55);padding:20px;align-items:flex-end}.sheet.open{display:flex}.sheet-card{position:relative;width:min(100%,480px);margin:auto;background:#14262e;border:1px solid rgba(255,255,255,.15);border-radius:26px;padding:28px;color:#fff}.sheet-close{position:absolute;right:18px;top:14px;border:0;background:none;color:#fff;font-size:30px}.sheet-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sheet-links a{display:flex;gap:10px;align-items:center;justify-content:center;padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:15px;color:#fff;text-decoration:none;font-weight:700}.sheet-icon svg{width:30px;fill:none;stroke:#fff;stroke-width:2}.sheet ol{padding-left:22px;line-height:1.7}@keyframes drift{to{transform:translate(8vw,5vh) scale(1.12)}}@keyframes breathe{0%,100%{transform:scale(.99)}50%{transform:scale(1.01)}}@keyframes pulse{50%{box-shadow:0 0 0 10px transparent}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes eq{to{height:26px}}
@media(max-width:600px){body{background:var(--background)}.abstract-bg{display:none}.radio-shell{display:block;min-height:100dvh;padding:0 0 calc(92px + env(safe-area-inset-bottom))}.radio-card{width:100%;min-height:calc(100dvh - 86px);border:0;border-radius:0;padding:calc(28px + env(safe-area-inset-top)) 22px 34px;background:linear-gradient(180deg,color-mix(in srgb,var(--secondary) 78%,#fff),var(--secondary));box-shadow:none;backdrop-filter:none}.live-badge{top:calc(21px + env(safe-area-inset-top));right:22px}.logo-wrap{width:120px;height:120px;margin-top:15px}.brand h1{font-size:32px}.brand h1 strong{font-size:56px}.slogan{font-size:17px}.player{grid-template-columns:64px minmax(0,1fr) 32px 48px;gap:10px;padding:12px;min-height:96px}.play-button{width:64px;height:64px}.player-copy strong{font-size:15px}.player-copy span{font-size:12px}.apps-block,.desktop-actions{margin-top:20px}.socials{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-actions .social-block{display:none}.radio-shell footer{display:none}.mobile-dock{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;justify-content:space-around;align-items:center;min-height:76px;padding:8px 18px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--secondary) 90%,#000);border-top:1px solid rgba(255,255,255,.12);backdrop-filter:blur(18px)}.mobile-dock button,.mobile-dock a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;color:rgba(255,255,255,.64);font-size:11px;font-weight:800;text-decoration:none}.mobile-dock .active{color:var(--primary)}.mobile-dock svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}.mobile-dock .active svg{fill:currentColor;stroke:none}.sheet{padding-bottom:calc(18px + env(safe-area-inset-bottom))}}
@media(max-width:390px){.radio-card{padding-left:16px;padding-right:16px}.player{grid-template-columns:58px minmax(0,1fr) 28px 44px}.play-button{width:58px;height:58px}.player-copy strong{font-size:14px}.player-copy span{font-size:11px}.install-button,.contact-button{grid-template-columns:48px 1fr 20px}.install-icon,.contact-icon{width:48px;height:48px}}

/* ===== V8.1: escala móvil y panel de redes ===== */
@media(max-width:600px){
  .radio-card{padding-left:18px;padding-right:18px;padding-bottom:24px}
  .logo-wrap{width:104px;height:104px;margin-top:10px;margin-bottom:17px}
  .eyebrow,.section-label{font-size:10px}
  .brand h1{font-size:29px}
  .brand h1 strong{font-size:49px;margin-top:7px}
  .slogan{font-size:15px;margin-top:13px}
  .location{font-size:13px}
  .player{margin-top:24px;grid-template-columns:58px minmax(0,1fr) 28px 44px;min-height:86px;padding:10px;gap:8px;border-radius:23px}
  .play-button{width:58px;height:58px}
  .mute-button{width:44px;height:44px}
  .player-copy strong{font-size:14px}
  .player-copy span{font-size:11px;margin-top:5px}
  .install-button,.contact-button{min-height:72px;grid-template-columns:48px 1fr 20px;padding:10px 13px;border-radius:17px}
  .install-icon,.contact-icon{width:48px;height:48px;border-radius:14px}
  .install-button strong,.contact-button strong{font-size:15px}
  .install-button small,.contact-button small{font-size:11px}
  .sheet{align-items:flex-end;padding:0;background:rgba(0,0,0,.48)}
  .sheet-card{width:100%;max-width:none;margin:0;border-radius:24px 24px 0 0;padding:24px 18px calc(22px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--secondary) 92%,#111);box-shadow:0 -18px 50px rgba(0,0,0,.38);animation:sheetUp .22s ease-out}
  .sheet-card h2{margin:0 0 18px;font-size:23px}
  .sheet-close{right:15px;top:10px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);font-size:26px;line-height:1}
  .sheet-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .sheet-links a{min-height:58px;padding:13px 10px;border-radius:15px;background:rgba(255,255,255,.06);font-size:14px}
  .sheet-links a:only-child{grid-column:1/-1}
}
@keyframes sheetUp{from{transform:translateY(22px);opacity:.65}to{transform:translateY(0);opacity:1}}

/* ===== V8.2: motion visible + social popover móvil ===== */
.motion-on .abstract-bg i{animation:lineDrift 22s ease-in-out infinite alternate}
.motion-on .abstract-bg span:nth-child(1){animation-duration:16s}
.motion-on .abstract-bg span:nth-child(2){animation-duration:22s;animation-delay:-6s}
.motion-on .abstract-bg span:nth-child(3){animation-duration:19s;animation-delay:-3s}
.motion-on .logo-wrap{animation:breathe82 5.5s ease-in-out infinite}
@keyframes lineDrift{from{transform:rotate(-9deg) scale(1.25) translate3d(-1.5%,0,0)}to{transform:rotate(-7deg) scale(1.31) translate3d(2.5%,1.5%,0)}}
@keyframes breathe82{0%,100%{transform:scale(.975)}50%{transform:scale(1.025)}}

@media(max-width:600px){
  .abstract-bg{display:block;opacity:.58}
  .abstract-bg i{opacity:.15}
  .abstract-bg span{filter:blur(62px);opacity:.28}
  .radio-card{background:linear-gradient(180deg,color-mix(in srgb,var(--secondary) 74%,transparent),color-mix(in srgb,var(--secondary) 90%,#000));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .sheet{align-items:flex-end;padding:0 16px calc(88px + env(safe-area-inset-bottom));background:rgba(0,0,0,.44)}
  .sheet-card{width:100%;max-width:440px;margin:0 auto;border-radius:22px;padding:22px 18px 18px;background:color-mix(in srgb,var(--secondary) 90%,#111);box-shadow:0 18px 55px rgba(0,0,0,.42);animation:popoverUp .2s ease-out}
  .sheet-card h2{font-size:20px;margin:0 0 14px}
  .sheet-close{right:12px;top:10px;width:36px;height:36px;font-size:23px}
  .sheet-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .sheet-links a{min-height:52px;padding:11px 9px;font-size:13px;border-radius:14px}
}
@keyframes popoverUp{from{transform:translateY(14px) scale(.98);opacity:.5}to{transform:translateY(0) scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.motion-on .abstract-bg i,.motion-on .abstract-bg span,.motion-on .logo-wrap{animation:none!important}}

/* ===== V8.3: logo fijo + fondo animado visible en móvil ===== */
.motion-on .logo-wrap,.logo-wrap{animation:none!important;transform:none!important}
.abstract-bg{z-index:0;pointer-events:none}
.radio-shell{position:relative;z-index:1}
@media(max-width:600px){
  body{background:var(--background)}
  .abstract-bg{display:block!important;opacity:1}
  .abstract-bg i{opacity:.22}
  .abstract-bg span{opacity:.34;filter:blur(54px)}
  .abstract-bg span:nth-child(1){width:95vw;height:95vw;left:-45vw;top:-20vw}
  .abstract-bg span:nth-child(2){width:100vw;height:100vw;right:-54vw;bottom:-20vw}
  .abstract-bg span:nth-child(3){width:72vw;height:72vw;left:18%;top:34%;opacity:.13}
  .motion-on .abstract-bg i{animation:lineDriftMobile 16s ease-in-out infinite alternate}
  .motion-on .abstract-bg span:nth-child(1){animation:driftMobileOne 14s ease-in-out infinite alternate}
  .motion-on .abstract-bg span:nth-child(2){animation:driftMobileTwo 18s ease-in-out infinite alternate}
  .motion-on .abstract-bg span:nth-child(3){animation:driftMobileThree 16s ease-in-out infinite alternate}
  .radio-card{background:linear-gradient(180deg,color-mix(in srgb,var(--secondary) 78%,transparent),color-mix(in srgb,var(--secondary) 88%,#000));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
}
@keyframes lineDriftMobile{from{transform:rotate(-9deg) scale(1.25) translate3d(-4%,0,0)}to{transform:rotate(-6deg) scale(1.34) translate3d(5%,2%,0)}}
@keyframes driftMobileOne{to{transform:translate3d(13vw,8vh,0) scale(1.16)}}
@keyframes driftMobileTwo{to{transform:translate3d(-11vw,-7vh,0) scale(1.13)}}
@keyframes driftMobileThree{to{transform:translate3d(4vw,-6vh,0) scale(1.1)}}

/* ===== V8.5: fondo independiente de la tarjeta ===== */
/* La tarjeta usa únicamente --secondary. El color --background queda reservado
   para el lienzo exterior, halos, líneas y degradados. */
.radio-card{
  background:linear-gradient(
    160deg,
    color-mix(in srgb,var(--secondary) 92%,#fff 8%),
    color-mix(in srgb,var(--secondary) 96%,#000 4%)
  );
  border-color:color-mix(in srgb,#fff 24%,var(--secondary));
}
.mobile-dock{
  background:color-mix(in srgb,var(--secondary) 94%,#000 6%);
}
.sheet-card{
  background:color-mix(in srgb,var(--secondary) 94%,#111 6%);
}
@media(max-width:600px){
  .radio-card{
    background:linear-gradient(
      180deg,
      color-mix(in srgb,var(--secondary) 94%,#fff 6%),
      color-mix(in srgb,var(--secondary) 97%,#000 3%)
    );
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

/* ===== V8.7: aislamiento definitivo del fondo + cache bust ===== */
/* En escritorio la tarjeta es opaca y depende SOLO de --secondary. */
@media(min-width:601px){
  .radio-card{
    background:var(--secondary)!important;
    background-image:linear-gradient(160deg,rgba(255,255,255,.07),rgba(0,0,0,.05))!important;
    border-color:rgba(255,255,255,.24)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}
/* El fondo exterior depende SOLO de --background; los halos usan el color principal como acento. */
.abstract-bg{
  background:linear-gradient(135deg,color-mix(in srgb,var(--background) 94%,#000),var(--background))!important;
}

/* ===== V8.7: marco circular más fino ===== */
.logo-circle{
  padding:2px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.logo-circle img{
  object-fit:cover;
  border-radius:50%;
}
/* El logo permanece fijo aunque el fondo tenga movimiento. */
.motion-on .logo-wrap{animation:none!important}

/* ===== Corrección instalación 8.7.1 ===== */
.sheet-note{
  margin:18px 0 0;
  padding:13px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.5;
}
.sheet-card ol li{margin-bottom:8px}

/* ===== V8.7.2: marcos de logo unificados ===== */
/* Circular, redondeado y cuadrado comparten el mismo borde fino y sombra. */
.logo-circle,
.logo-rounded,
.logo-square{
  padding:2px!important;
  border:2px solid rgba(255,255,255,.9);
  overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.logo-circle{border-radius:50%}
.logo-rounded{border-radius:22px}
.logo-square{
  width:150px;
  height:150px;
  border-radius:14px;
}
.logo-circle img,
.logo-rounded img,
.logo-square img{
  width:100%;
  height:100%;
  display:block;
}
.logo-circle img{border-radius:50%}
.logo-rounded img{border-radius:18px}
.logo-square img{border-radius:10px}

/* PNG y WebP: respetan la transparencia real del archivo. */
.logo-file-transparent{
  background:transparent!important;
}
.logo-file-transparent img{
  object-fit:contain!important;
}

/* JPG/JPEG: usan fondo blanco porque no admiten transparencia. */
.logo-file-solid{
  background:rgba(255,255,255,.96)!important;
}
.logo-file-solid img{
  object-fit:cover!important;
}

/* Sin marco conserva el archivo tal cual fue subido. */
.logo-none{
  width:150px;
  height:150px;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.logo-none img{object-fit:contain!important;border-radius:0!important}

@media(max-width:600px){
  .logo-circle,.logo-rounded{width:120px;height:120px}
  .logo-square,.logo-none{width:132px;height:132px}
}
