    :root {
      /* Paleta Nadie Dice Nada */
      --ndn-light: #F5F5F5;
      --ndn-black: #111111;
      --ndn-dark: #202020;
      --ndn-teal: #57BDB9;
      --ndn-yellow: #F6C216;
      --ndn-pink: #F29FC1;
      --ndn-red: #E51D40;
      --ndn-red-ink: #C4122F;   /* rojo más oscuro para textos chicos sobre blanco */
      --ndn-grad: linear-gradient(90deg, #57BDB9, #F6C216 38%, #F29FC1 70%, #E51D40);

      /* Tokens de la página (nombres heredados) */
      --cyan: var(--ndn-teal);
      --cyan-dark: #2E8F8B;
      --cyan-soft: rgba(87, 189, 185, .14);
      --cyan-glow: rgba(17, 17, 17, .18);
      --bg: #ffffff;
      --bg-2: var(--ndn-light);
      --line: #E4E4E4;
      --text: var(--ndn-black);
      --muted: #555555;
      --live: var(--ndn-red);
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body { background: var(--bg); color: var(--text); font-family: 'PulsoLight', 'Roboto', sans-serif; line-height: 1.6; overflow-x: hidden; }
    h1, h2, h3, .btn, .tag, .num, .hour { font-family: 'PulsoRegular', 'Roboto', sans-serif; font-weight: 400; }
    a { color: inherit; text-decoration: none; }
    .wrap { width: min(1080px, 100% - 32px); margin-inline: auto; }

    /* Top bar */
    .topbar { position: fixed; inset: 0 0 auto 0; z-index: 50; background: rgba(255,255,255,.88); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
    .topbar .wrap { display: flex; align-items: center; justify-content: space-between; height: 66px; }
    .topbar img, footer img { filter: brightness(0); height: 28px; }

    .btn { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; background: var(--cyan); color: #00131c; border: 1.5px solid var(--cyan);
      padding: 12px 26px; border-radius: 999px; font-size: 1rem; transition: transform .2s, box-shadow .2s; }
    .btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px -8px var(--cyan-glow); }
    .btn:focus-visible { outline: 3px solid var(--text); outline-offset: 3px; }
    .btn.ghost { background: #fff; color: var(--text); border-color: var(--line); }
    .btn.ghost:hover { border-color: var(--cyan); box-shadow: none; }

    /* 1. Hero */
    .hero { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 100px 0 40px;
      background: radial-gradient(45% 50% at 88% 30%, var(--cyan-soft), transparent 70%), var(--bg); }
    .hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
    .tag { display: inline-flex; align-items: center; gap: 10px; font-size: .65rem; letter-spacing: .16em; text-transform: uppercase;
      padding: 8px 16px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg-2); }
    .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--live); animation: pulse 1.4s infinite; }
    @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(229,36,59,.6); } 100% { box-shadow: 0 0 0 10px rgba(229,36,59,0); } }
    h1 { font-size: clamp(2.6rem, 7vw, 2.57rem); line-height: .98; margin: 22px 0 18px; letter-spacing: -.02em; }
    h1 span { color: var(--cyan); }
    .lead { font-size: 1.1rem; color: var(--muted); max-width: 500px; }
    .meta { display: flex; flex-wrap: wrap; gap: 22px; margin: 26px 0 34px; }
    .meta div { display: flex; align-items: center; gap: 8px; }
    .meta i { color: var(--cyan); font-size: 1.2rem; }
    .cta { display: flex; flex-wrap: wrap; gap: 14px; }

    /* Foto del artista */
    .photo { position: relative; aspect-ratio: 4 / 5; border-radius: 28px; overflow: hidden; display: grid; place-items: end center;
      background: linear-gradient(170deg, #e9f8fe, #9fdcf4); border: 1px solid var(--line); box-shadow: 0 40px 80px -40px var(--cyan-glow); }
    .photo .silhouette { font-size: 17rem; line-height: .8; color: rgba(255,255,255,.75); }
    .photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
    .live-chip { position: absolute; z-index: 2; top: 14px; left: 14px; background: var(--live); color: #fff; font-family: 'PulsoRegular'; font-size: .72rem; letter-spacing: .12em; padding: 4px 12px; border-radius: 6px; }
    .viewers { position: absolute; z-index: 2; top: 14px; right: 14px; font-size: .85rem; background: #fff; padding: 4px 12px; border-radius: 6px; }
    .photo .name { position: absolute; z-index: 2; inset: auto 16px 16px; background: #fff; border-radius: 14px; padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; }
    .photo .name b { font-family: 'PulsoRegular'; font-weight: 400; }
    .photo .name span { color: var(--muted); font-size: .85rem; }
    /* Retoque: poster con marco y velo cian */
    .photo.poster { aspect-ratio: auto; display: block; background: #05080f; }
    .photo.poster img { position: static; display: block; height: auto; }
    .photo.poster::after { content: ""; position: absolute; inset: 0; pointer-events: none;
      background: linear-gradient(200deg, rgba(0,176,235,.28), transparent 45%, rgba(0,176,235,.22)); mix-blend-mode: soft-light; }
    .banner { position: relative; border-radius: 24px; overflow: hidden; box-shadow: 0 40px 80px -40px var(--cyan-glow); border: 1px solid var(--line); }
    .banner img { display: block; width: 100%; height: auto; }
    .banner::after { content: ""; position: absolute; inset: 0; pointer-events: none;
      background: linear-gradient(90deg, rgba(0,176,235,.25), transparent 50%, rgba(0,176,235,.25)); mix-blend-mode: soft-light; }
    .note { font-size: .78rem; color: var(--muted); margin-top: 10px; text-align: center; }

    /* Countdown (dentro del hero) */
    .countdown { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px;
      background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 20px 28px; box-shadow: 0 20px 50px -35px var(--cyan-glow); }
    .countdown h2 { font-size: 1.2rem; }
    .clock { display: flex; gap: 12px; }
    .clock div { min-width: 80px; text-align: center; padding: 12px 8px; background: var(--bg-2); border-radius: 14px; }
    .num { display: block; font-size: 2rem; color: var(--cyan-dark); line-height: 1; font-variant-numeric: tabular-nums; }
    .clock small { color: var(--muted); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }

    /* Secciones */
    section.block { padding: 92px 0; }
    .alt { background: var(--bg-2); }
    .title1 { text-align: center; margin-bottom: 52px; }
    .title { text-align: center; margin-bottom: 52px; }
    .title h2 { font-size: clamp(1.8rem, 4.2vw, 1.8rem); letter-spacing: -.01em; }
    .title h2 span { color: var(--cyan); }
    .title p { color: var(--muted); margin-top: 10px; }

    /* 2. Vivir */
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
    .card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 28px; transition: transform .25s, box-shadow .25s, border-color .25s; }
    .card:hover { transform: translateY(-4px); border-color: var(--cyan); box-shadow: 0 18px 40px -22px var(--cyan-glow); }
    .card i { font-size: 1.9rem; color: var(--cyan); }
    .card h3 { font-size: 1.15rem; margin: 14px 0 6px; }
    .card p { color: var(--muted); font-size: .95rem; }

    /* 3. Line-up */
    .artists { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
    .artist { text-align: center; }
    .pic { position: relative; aspect-ratio: 3 / 4; border-radius: 16px; overflow: hidden; display: grid; place-items: end center;
      background: linear-gradient(170deg, #e9f8fe, #a8dff5); border: 1px solid var(--line); transition: transform .25s; }
    .artist:hover .pic { transform: translateY(-6px); }
    .pic i { font-size: 5.5rem; line-height: .85; color: rgba(255,255,255,.85); }
    .pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    .artist b { display: block; margin-top: 12px; font-family: 'PulsoRegular'; font-weight: 400; text-transform: uppercase; letter-spacing: .04em; font-size: .9rem; }
    .artist span { color: var(--muted); font-size: .85rem; text-transform: uppercase; }

    /* 4. Programa */
    .timeline { max-width: 760px; margin-inline: auto; display: grid; gap: 12px; }
    .slot { display: grid; grid-template-columns: 96px 1fr; gap: 20px; align-items: center; padding: 20px 24px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
    .hour { font-size: 1.4rem; color: var(--cyan-dark); }
    .slot h3 { font-size: 1.08rem; }
    .slot p { color: var(--muted); font-size: .92rem; }
    .slot.main { border-color: var(--cyan); background: var(--cyan-soft); }

    /* 5. Registro */
    .box { max-width: 880px; margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-radius: 26px; overflow: hidden; box-shadow: 0 30px 80px -45px var(--cyan-glow); }
    .side { padding: 44px 36px; background: var(--cyan); color: #00131c; }
    .side h2 { font-size: 2rem; line-height: 1.05; }
    .side ul { list-style: none; margin-top: 22px; display: grid; gap: 10px; }
    .side li { display: flex; gap: 10px; align-items: center; }
    form { padding: 44px 36px; background: #fff; display: grid; gap: 16px; align-content: center; }
    label { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
    input { width: 100%; margin-top: 6px; padding: 14px 16px; border-radius: 12px; background: var(--bg-2); color: var(--text); border: 1.5px solid var(--line); font: inherit; font-size: 1rem; }
    input:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 4px var(--cyan-soft); background: #fff; }
    form .btn { justify-content: center; width: 100%; }
    .fine { font-size: .75rem; color: var(--muted); }

    footer { padding: 44px 0; border-top: 1px solid var(--line); text-align: center; color: var(--muted); font-size: .85rem; }
    footer img { margin-bottom: 14px; }

    @media (max-width: 900px) {
      .hero-grid, .box { grid-template-columns: 1fr; }
      .hero { padding-top: 88px; }
      .banner img { min-height: 160px; object-fit: cover; }
      .clock div { min-width: 64px; }
      .num { font-size: 1.5rem; }
      .slot { grid-template-columns: 1fr; gap: 4px; }
    }
    @media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }


        .snd .snd-title { font-family: 'PulsoRegular', 'Roboto', sans-serif; font-weight: 400; font-size: clamp(2rem, 4.6vw, 3.4rem); line-height: 1.02; margin: 22px 0 18px; letter-spacing: -.02em; }
    .snd .snd-title span { color: var(--cyan); }
    @media (min-width: 901px) { .snd .hero-grid { grid-template-columns: .9fr 1.1fr; } }
    .snd .lead span { color: var(--text); }
    @media (max-width: 900px) { .snd .snd-img { order: 2; } }

    /* Promo Luzu x Samsung */
    .promo-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
    .promo-title { font-family: 'PulsoRegular', 'Roboto', sans-serif; font-weight: 400; font-size: clamp(1.9rem, 4.2vw, 3rem); line-height: 1.04; margin: 18px 0 14px; letter-spacing: -.01em; max-width: 680px; }
    .promo-title span { color: var(--cyan); }
    .promo .lead b { font-family: 'PulsoRegular'; font-weight: 400; color: var(--text); }
    .promo-nav { display: flex; gap: 10px; flex-shrink: 0; }
    .nav-btn { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--line); background: #fff; color: var(--text); font-size: 1.1rem; cursor: pointer; transition: border-color .2s, background .2s; }
    .nav-btn:hover { border-color: var(--cyan); background: var(--cyan-soft); }
    .nav-btn:disabled { opacity: .35; cursor: default; }

    .phones { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * 16px) / 3); gap: 16px;
      overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 4px 2px 18px; scrollbar-width: none; }
    .phones::-webkit-scrollbar { display: none; }
    .phones:focus-visible { outline: 3px solid var(--cyan); outline-offset: 4px; border-radius: 12px; }
    .phone { position: relative; scroll-snap-align: start; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 18px 18px 20px;
      transition: border-color .25s, box-shadow .25s, transform .25s; }
    .phone:hover { border-color: var(--cyan); transform: translateY(-4px); box-shadow: 0 18px 40px -24px var(--cyan-glow); }
    .phone { display: flex; flex-direction: column; }
    .phone-btn { justify-content: center; width: 100%; margin-top: auto; padding: 8px 18px; font-size: .85rem; }
    .gifts { margin-bottom: 18px; }
    .off { position: absolute; z-index: 2; top: 14px; left: 14px; background: var(--cyan); color: #00131c; font-family: 'PulsoRegular'; font-size: 1rem; padding: 4px 12px; border-radius: 999px; }
    .phone-img { position: relative; aspect-ratio: 1 / 1; border-radius: 14px; background: var(--bg-2); display: grid; place-items: center; overflow: hidden; }
    .phone-img i { font-size: 4.5rem; color: rgba(0,176,235,.35); }
    .phone-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 4px; }
    .phone h3 { font-size: 1.05rem; margin: 16px 0 10px; }
    .gifts { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
    .gifts li { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; padding: 4px 10px; border-radius: 999px; background: var(--bg-2); color: var(--muted); }
    .gifts li i { color: var(--cyan-dark); }
    .gifts li.ticket { background: var(--cyan-soft); color: var(--text); font-family: 'PulsoRegular'; }

    .promo-cta { text-align: center; margin-top: 30px; }
    .promo-cta .fine { margin-top: 12px; }

    @media (max-width: 900px) {
      .phones { grid-auto-columns: calc((100% - 16px) / 2); }
      .promo-head { flex-direction: column; align-items: flex-start; }
    }
    @media (max-width: 520px) { .phones { grid-auto-columns: 78%; } }

    /* Promo Fibra + Flow */
    .ff-box { display: grid; grid-template-columns: .8fr 1.2fr; border: 1px solid var(--line); border-radius: 26px; overflow: hidden; background: #fff; box-shadow: 0 30px 80px -45px var(--cyan-glow); }
    .ff-badge { background: linear-gradient(160deg, var(--cyan), var(--cyan-dark)); color: #fff; padding: 44px 36px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
    .ff-logo { height: 34px; width: auto; margin-bottom: 28px; }
    .ff-big { font-family: 'PulsoRegular', 'Roboto', sans-serif; font-size: clamp(6rem, 14vw, 9rem); line-height: .85; }
    .ff-unit { font-family: 'PulsoRegular', 'Roboto', sans-serif; font-size: 1.5rem; line-height: 1.1; margin-top: 8px; }
    .ff-text { padding: 44px 40px; }
    .ff-list { list-style: none; display: grid; gap: 10px; margin: 22px 0 28px; }
    .ff-list li { display: flex; gap: 10px; align-items: baseline; color: var(--muted); }
    .ff-list i { color: var(--cyan); }

    /* FAQ */
    .faq { max-width: 820px; margin-inline: auto; display: grid; gap: 12px; }
    .faq details { background: #fff; border: 1px solid var(--line); border-radius: 16px; transition: border-color .2s; }
    .faq details[open] { border-color: var(--cyan); }
    .faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px;
      font-family: 'PulsoRegular', 'Roboto', sans-serif; font-size: 1.05rem; }
    .faq summary::-webkit-details-marker { display: none; }
    .faq summary i { color: var(--cyan); flex-shrink: 0; transition: transform .2s; }
    .faq details[open] summary i { transform: rotate(45deg); }
    .faq summary:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; border-radius: 16px; }
    .faq details p { padding: 0 24px 22px; color: var(--muted); }
    .faq details a { color: var(--cyan-dark); text-decoration: underline; }

    @media (max-width: 900px) {
      .ff-box { grid-template-columns: 1fr; }
      .ff-badge, .ff-text { padding: 32px 24px; }
    }

    /* Hero escenario (foto) */
    .hero-stage { position: relative; isolation: isolate; overflow: hidden; padding: 40px 0 64px; color: #fff;
      background: radial-gradient(60% 50% at 75% 40%, rgba(0,176,235,.28), transparent 70%), #050b16; }
    .hero-bg { position: absolute; inset: -40px; z-index: -1; background: url("assets/img/ndn-teatro-sin-logo.jpg") center 30% / cover no-repeat;
      filter: blur(38px) saturate(1.3); opacity: .38; }
    .hero-stage::after { content: ""; position: absolute; inset: 0; z-index: -1;
      background: linear-gradient(180deg, rgba(5,11,22,.35), rgba(5,11,22,.15) 50%, rgba(5,11,22,.85)); }
    .presenter { display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 28px; margin-bottom: 44px; }
    .presenter img { height: 44px; width: auto; }
    .presenter-sep { width: 1px; height: 32px; background: rgba(255,255,255,.3); }
    .presenter span { font-size: .75rem; letter-spacing: .35em; text-transform: uppercase; color: rgba(255,255,255,.7); }
    .hero-stage .tag { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); color: #fff; }
    .hero-stage h1 { color: #fff; }
    .hero-stage .lead { color: rgba(255,255,255,.78); }
    .hero-stage .lead span { color: #fff; }
    .hero-stage .meta { color: #fff; }
    .hero-stage .meta i { color: var(--cyan); }
    .hero-title { margin-top: 18px; }
    .ndn-logo { display: block; width: min(420px, 100%); height: auto; margin: 0 0 14px -10px;
      filter: drop-shadow(0 12px 28px rgba(0,0,0,.55)); }
    .hero-stage .countdown { background: rgba(255,255,255,.96); color: var(--text); }

    .hero-stage .hero-grid { grid-template-columns: 1.05fr .95fr; }

    /* Foto a la derecha en tarjeta */
    .stage-photo { position: relative; aspect-ratio: 1 / 1; margin-inline: auto; border-radius: 28px; overflow: hidden;
      border: 1px solid rgba(255,255,255,.14); box-shadow: 0 0 0 8px rgba(0,176,235,.10), 0 40px 100px -30px rgba(0,176,235,.55); }
    .stage-photo img { width: 100%; height: 100%; object-fit: cover; display: block;
      filter: saturate(1.1) contrast(1.05); }
    /* retoque: velo cian + viñeta */
    .stage-photo::after { 
      content: ""; 
      position: absolute; inset: 0; 
      pointer-events: none;
      background: linear-gradient(200deg, rgba(0,176,235,.22), transparent 40%), radial-gradient(120% 90% at 50% 55%, transparent 60%, rgba(5,11,22,.45)); }

    @media (max-width: 900px) {
      .hero-stage { padding-top: 28px; }
      .presenter { margin-bottom: 24px; }
      .presenter img { height: 34px; }
      .hero-stage .hero-grid { grid-template-columns: 1fr; gap: 32px; }
      .hero-stage .hero-grid > div:last-child { order: -1; }
    }


    /* Lo que vas a vivir: versión compacta */
    #vivir { padding: 56px 0; }
    #vivir .title { margin-bottom: 28px; }
    #vivir .title p { max-width: 620px; margin-inline: auto; font-size: .95rem; }
    #vivir .grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
    #vivir .card { display: flex; flex-direction: column; gap: 14px; align-items: center; text-align: center; padding: 22px 18px; border-radius: 14px; }
    #vivir .card:hover { transform: none; }
    #vivir .vivir-icon { flex-shrink: 0; width: 64px; height: 64px; object-fit: contain; }
    #vivir .card i { flex-shrink: 0; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px;
      background: var(--cyan-soft); font-size: 1.25rem; }
    #vivir .card h3 { font-size: 1rem; margin: 0 0 2px; }
    #vivir .card p { font-size: 1.1rem; line-height: 1.45; }
    #vivir .card p span { font-family: "PulsoRegular";}
    @media (max-width: 1000px) { #vivir .grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 560px) { #vivir .grid { grid-template-columns: 1fr; } #vivir { padding: 44px 0; } }

    /* ==========================================================
       PALETA NADIE DICE NADA
       Claro por defecto (#FFF / #F5F5F5 + texto #111).
       Oscuro solo en Hero, SND Arena y footer.
       Amarillo = acción · Rojo = destacado sobre claro · Turquesa y rosa = apoyo
       ========================================================== */

    /* Base */
    .btn { background: var(--ndn-yellow); border-color: var(--ndn-yellow); color: var(--ndn-black); }
    .btn:hover { box-shadow: 0 10px 28px -8px rgba(246,194,22,.55); }
    .promo-title span { color: #57BDB9; }
    .title1 h2 span{ font-family: "PulsoRegular"; color: #000;}
    .title h2 span{ font-family: "PulsoRegular"; color: #57BDB9;}
    .tag { background: #fff; }
    .card:hover, .phone:hover { border-color: var(--ndn-yellow); box-shadow: 0 18px 40px -24px rgba(17,17,17,.25); }
    .meta i { color: var(--ndn-teal); }

    /* Hero oscuro */
    .hero-stage { background:
        radial-gradient(45% 45% at 85% 30%, rgba(87,189,185,.20), transparent 70%),
        radial-gradient(40% 40% at 5% 95%, rgba(242,159,193,.14), transparent 70%),
        var(--ndn-black); }
    .hero-stage::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: #57BDB9; z-index: 1; }
    .hero-bg { opacity: .22; }
    .hero-stage::after { background: linear-gradient(180deg, rgba(17,17,17,.25), rgba(17,17,17,.1) 50%, rgba(17,17,17,.85)); }

    /* Video de fondo en loop + capa oscura */
    .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2;
      filter: saturate(.9) brightness(.55) blur(1px); transform: scale(1.03); }
    .hero-stage:has(.hero-video) .hero-bg { display: none; }
    .hero-stage:has(.hero-video)::after { background:
        linear-gradient(90deg, rgba(17,17,17,.82) 0%, rgba(17,17,17,.55) 55%, rgba(17,17,17,.35) 100%),
        linear-gradient(180deg, rgba(17,17,17,.2), transparent 40%, rgba(17,17,17,.9)); }
    @media (max-width: 900px) { .hero-stage:has(.hero-video)::after { background: linear-gradient(180deg, rgba(17,17,17,.45), rgba(17,17,17,.6) 45%, rgba(17,17,17,.9)); } }
    @media (prefers-reduced-motion: reduce) { .hero-video { display: none; } .hero-stage:has(.hero-video) .hero-bg { display: block; } }
    .hero-stage h1 span { color: var(--ndn-yellow); }
    .hero-stage .meta i { color: var(--ndn-yellow); }
    .hero-stage .btn:focus-visible, .snd .btn:focus-visible { outline-color: #fff; }

    /* Foto del hero: marco con el degradé de la paleta */
    .stage-photo { 
      padding: 5px; 
      background:#e51d40; 
      border: 0; border-radius: 30px;
      box-shadow: 0 40px 100px -40px rgba(0,0,0,.8); 
    }
    .stage-photo img { border-radius: 25px; }
    .stage-photo::after { inset: 5px; border-radius: 25px;
      background: radial-gradient(120% 90% at 50% 55%, transparent 60%, rgba(17,17,17,.4)); }
    .stage-photo .live-chip { top: 19px; left: 19px; }

    /* Cuenta regresiva */
    .hero-stage .countdown { background: var(--ndn-dark); color: #fff; border: 1px solid rgba(255,255,255,.1); box-shadow: none; }
    .hero-stage .clock div { background: var(--ndn-black); border: 1px solid rgba(255,255,255,.08); }
    .hero-stage .num { color: var(--ndn-yellow); }
    .hero-stage .clock small { color: rgba(255,255,255,.6); }

    /* Contador compacto */
    .hero-stage .countdown { display: inline-flex; flex-wrap: nowrap; gap: 18px; padding: 10px 12px 10px 20px; border-radius: 14px; margin-top: 22px; }
    .hero-stage .countdown h2 { font-size: .9rem; color: rgba(255,255,255,.75); white-space: nowrap; }
    .hero-stage .clock { gap: 6px; }
    .hero-stage .clock div { min-width: 0; display: flex; align-items: baseline; gap: 4px; padding: 6px 10px; border-radius: 10px; }
    .hero-stage .num { display: inline; font-size: 1.25rem; }
    .hero-stage .clock small { font-size: .62rem; letter-spacing: .08em; }
    @media (max-width: 520px) {
      .hero-stage .countdown { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px; }
      .hero-stage .clock { width: 100%; justify-content: space-between; }
      .hero-stage .clock div { flex: 1; justify-content: center; padding: 6px 4px; }
      .hero-stage .num { font-size: 1.1rem; }
    }

    /* Line-up: sin velo cian */
    .banner { box-shadow: 0 30px 70px -40px rgba(17,17,17,.45); }
    .banner::after, .photo.poster::after { display: none; }

    /* SND Arena oscuro */
    .snd.alt { background: var(--ndn-dark); color: #fff; }
    .snd .tag { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); color: #fff; }
    .snd .snd-title span { color: var(--ndn-yellow); }
    .snd .lead { color: rgba(255,255,255,.75); }
    .snd .lead span { color: #fff; }
    .snd .meta i { color: var(--ndn-yellow); }
    .snd .photo.poster { border: 0; box-shadow: 0 0 0 5px var(--ndn-pink), 0 40px 90px -40px rgba(0,0,0,.9); }

    /* Promo Samsung */
    .off { background: var(--ndn-red); color: #fff; }
    .phone-img i { color: var(--ndn-teal); }
    .gifts li i { color: var(--ndn-black); }
    .gifts li.ticket { background: var(--ndn-yellow); color: var(--ndn-black); }
    .nav-btn:hover { border-color: var(--ndn-black); background: var(--ndn-light); }

    /* Fibra + Flow: panel con el degradé completo */
    .ff-box { box-shadow: 0 30px 80px -50px rgba(17,17,17,.4); }
    .ff-badge { background: #57BDB9; color: var(--ndn-black); }
    .ff-logo { filter: brightness(0); }
    .ff-list i { color: var(--ndn-teal); }

    /* FAQ */
    .faq details[open] { border-color: var(--ndn-teal); }
    .faq summary i { color: var(--ndn-red); }
    .faq details a { color: var(--ndn-red-ink); }

    /* Footer oscuro */
    footer { position: relative; background: var(--ndn-black); color: rgba(255,255,255,.6); border-top: 0; }
    footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--ndn-grad); }
    footer img { filter: none; }
    /* Fibra + Flow: panel izquierdo rediseñado (estilo sticker NDN) */
    .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .ff-badge { position: relative; isolation: isolate; overflow: hidden; gap: 0; padding: 40px 36px;
      background:
        radial-gradient(circle at 115% -10%, rgba(255,255,255,.35) 0 18%, transparent 18.5%),
        radial-gradient(circle at 115% -10%, transparent 0 26%, rgba(255,255,255,.18) 26.5% 27.5%, transparent 28%),
        radial-gradient(circle at 115% -10%, transparent 0 36%, rgba(255,255,255,.12) 36.5% 37.5%, transparent 38%),
        radial-gradient(rgba(17,17,17,.12) 1.2px, transparent 1.4px) 0 0 / 14px 14px,
        var(--ndn-teal);
      color: var(--ndn-black); }
    .ff-logo { height: 50px; margin-bottom: 26px; filter: none; }
    .ff-offer { display: flex; align-items: center; gap: 14px; }
    .ff-big { font-size: clamp(7rem, 13vw, 10rem); line-height: .8; color: #fff;
      -webkit-text-stroke: 5px var(--ndn-black); paint-order: stroke fill;
      text-shadow: 7px 8px 0 var(--ndn-black); }
    .ff-unit { margin: 0; font-size: 1.35rem; line-height: 1.1; max-width: 8ch; }
    .ff-unit b { display: block; font-weight: 400; font-size: 2.1rem; line-height: 1; text-transform: uppercase; letter-spacing: -.01em; }
    .ff-free { display: inline-block; margin: 22px 0 0 4px; padding: 6px 18px 8px; transform: rotate(-4deg);
      font-family: 'PulsoRegular', 'Roboto', sans-serif; font-size: 1.6rem; line-height: 1; text-transform: uppercase;
      background: var(--ndn-yellow); color: var(--ndn-black); border: 3px solid var(--ndn-black); border-radius: 10px;
      box-shadow: 5px 5px 0 var(--ndn-black); }
    .ff-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
    .ff-chips li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px;
      background: rgba(255,255,255,.85); font-size: .8rem; }
    .ff-chips i { color: var(--ndn-red); }
    @media (max-width: 900px) {
      .ff-badge { padding: 32px 24px; }
      .ff-big { font-size: 7rem; }
    }

    /* Fibra + Flow: contenido del panel centrado */
    .ff-badge { align-items: center; justify-content: center; text-align: center; }
    .ff-offer { justify-content: center; }
    .ff-unit { text-align: left; }
    .ff-free { margin-left: 0; }
    .ff-chips { justify-content: center; }
