    /* ── VARIABLES ─────────────────────────────────────── */
    :root {
      --bg:       #050508;
      --bg2:      #09090f;
      --fuchsia:  #d946ef;
      --purple:   #7c3aed;
      --pink:     #ec4899;
      --cyan:     #0ea5e9;
      --gold:     #d97706;
      --white:    #1a0a2e;   /* dark navy — body text on light bg */
      --muted:    #4a2d80;   /* purple body text on light bg — más legible que antes */
      --border:   rgba(124,58,237,.22);
      --font:     'Outfit', sans-serif;
      --font2:    'Outfit', sans-serif;
      --surface:  rgba(255,255,255,.42);
      --surface2: rgba(255,255,255,.28);
    }

    /* ── SCROLL OFFSET (fixed nav compensation) ─────────── */
    html { scroll-padding-top: 72px; }
    section[id] { scroll-margin-top: 72px; }
    #pillars { scroll-margin-top: 0; }

    /* ── RESET ─────────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: auto; }
    :focus-visible { outline: 2px solid var(--fuchsia); outline-offset: 3px; border-radius: 2px; }
    body {
      background: none;
      color: var(--white);
      font-family: var(--font);
      overflow-x: hidden;
      cursor: none;
    }
    body::before {
      content: '';
      position: fixed; inset: 0; z-index: -2;
      background: linear-gradient(160deg,
        #6bd3fa 0%, #f8f4f5 20%,
        #ffd4f0 44%, #f9f1ff 66%,
        #c3b4ef 88%, #6bd3fa 100%);
      pointer-events: none;
    }
    img { display: block; max-width: 100%; }

    /* scrollbar */
    ::-webkit-scrollbar { width: 4px; }
    ::-webkit-scrollbar-track { background: rgba(255,255,255,.3); }
    ::-webkit-scrollbar-thumb { background: var(--fuchsia); border-radius: 2px; }

    /* ── PAGE-WIDE Y2K BACKGROUND LAYER ────────────────────── */
    #page-y2k {
      position: fixed; inset: 0; z-index: 1;
      pointer-events: none; overflow: hidden;
    }
    /* HUD corner brackets */
    .py-hud {
      position: absolute; width: 32px; height: 32px;
      border-color: rgba(124,58,237,.22); border-style: solid;
      border-width: 2px 0 0 2px; border-radius: 3px 0 0 0;
    }
    .py-hud-tr { border-width: 2px 2px 0 0; border-radius: 0 3px 0 0; }
    .py-hud-bl { border-width: 0 0 2px 2px; border-radius: 0 0 0 3px; }
    .py-hud-br { border-width: 0 2px 2px 0; border-radius: 0 0 3px 0; }
    .py-hud-sm { width: 18px; height: 18px; border-color: rgba(14,165,233,.18); }
    /* Floating diamonds */
    .py-diamond {
      position: absolute; width: 7px; height: 7px;
      background: rgba(124,58,237,.28); transform: rotate(45deg);
      animation: lyDiaBlink var(--d, 2.5s) var(--delay, 0s) ease-in-out infinite;
    }
    .py-d-fuchsia { background: rgba(217,70,239,.32); }
    .py-d-cyan    { background: rgba(14,165,233,.32); }
    /* Crosshair targets */
    .py-crosshair {
      position: absolute; width: 28px; height: 28px;
      border: 1px solid rgba(14,165,233,.22); border-radius: 50%;
      animation: lyPulse var(--d, 3s) var(--delay, 0s) ease-in-out infinite;
    }
    .py-crosshair::before { content: ''; position: absolute; width: 1px; height: 7px; background: rgba(14,165,233,.22); left: 50%; top: -3px; transform: translateX(-50%); }
    .py-crosshair::after  { content: ''; position: absolute; width: 7px; height: 1px; background: rgba(14,165,233,.22); top: 50%; left: -3px; transform: translateY(-50%); }
    .py-ch-sm { width: 18px; height: 18px; border-color: rgba(217,70,239,.2); }
    .py-ch-sm::before, .py-ch-sm::after { background: rgba(217,70,239,.2); }
    /* Scan bars */
    .py-scanbar {
      position: absolute; display: flex; align-items: center; gap: .35rem;
      opacity: 0;
      animation: lyScanIn var(--d, 2.5s) var(--delay, 0s) ease-in-out infinite;
    }
    .py-scanbar::before { content: ''; display: block; width: 24px; height: 1px; background: linear-gradient(90deg, transparent, rgba(217,70,239,.35)); }
    .py-scanbar span { font-family: var(--font); font-size: .44rem; font-weight: 800; letter-spacing: .2em; color: rgba(217,70,239,.38); }
    /* right-aligned scanbar */
    .py-sb-r { flex-direction: row-reverse; }
    .py-sb-r::before { background: linear-gradient(270deg, transparent, rgba(14,165,233,.35)); }
    .py-sb-r span { color: rgba(14,165,233,.38); }
    /* Horizontal rule lines */
    .py-hline {
      position: absolute; left: 3%; right: 3%; height: 1px;
      background: linear-gradient(90deg, transparent 0%, rgba(124,58,237,.08) 20%, rgba(217,70,239,.1) 50%, rgba(124,58,237,.08) 80%, transparent 100%);
    }

    /* ── SCROLL PROGRESS BAR ───────────────────────────────── */
    #scroll-progress {
      position: fixed; top: 0; left: 0; height: 2px; z-index: 9997;
      background: linear-gradient(90deg, var(--fuchsia) 0%, var(--purple) 50%, var(--cyan) 100%);
      width: 0%; transition: width .1s linear;
      box-shadow: 0 0 8px rgba(217,70,239,.6);
    }

    /* ── FLOATING CTA ──────────────────────────────────────── */
    #float-cta {
      position: fixed; bottom: calc(2rem + env(safe-area-inset-bottom, 0px)); right: calc(2rem + env(safe-area-inset-right, 0px)); z-index: 600;
      background: var(--fuchsia); color: #fff;
      font-family: var(--font); font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
      padding: .8rem 1.6rem; border-radius: 3px; text-decoration: none;
      box-shadow: 0 8px 32px rgba(217,70,239,.45);
      transform: translateY(100px); opacity: 0;
      transition: transform .4s cubic-bezier(.34,1.56,.64,1), opacity .3s;
      pointer-events: none;
    }
    #float-cta.show { transform: translateY(0); opacity: 1; pointer-events: all; }
    #float-cta:hover { background: var(--pink); box-shadow: 0 12px 40px rgba(217,70,239,.6); }

    /* ── BACK TO TOP ───────────────────────────────────────── */
    #back-top {
      position: fixed; bottom: calc(2rem + env(safe-area-inset-bottom, 0px)); left: calc(2rem + env(safe-area-inset-left, 0px)); z-index: 600;
      width: 44px; height: 44px; border-radius: 50%;
      background: rgba(255,255,255,.35);
      border: 1px solid rgba(255,255,255,.3);
      display: flex; align-items: center; justify-content: center;
      font-size: .9rem; color: var(--fuchsia); cursor: pointer;
      transform: translateY(80px); opacity: 0;
      transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .25s;
      pointer-events: none; text-decoration: none;
    }
    #back-top.show { transform: translateY(0); opacity: 1; pointer-events: all; }
    #back-top:hover { background: rgba(217,70,239,.25); border-color: var(--fuchsia); }

    /* ── NAV active state ──────────────────────────────────── */
    .nav-links a { position: relative; }
    .nav-links a.nav-active { color: #fff; }
    .nav-links a.nav-active::before {
      content: ''; position: absolute; top: 50%; left: -10px;
      transform: translateY(-50%);
      width: 5px; height: 5px;
      background: var(--fuchsia); border-radius: 50%;
      box-shadow: 0 0 6px var(--fuchsia);
    }

    /* ── MOBILE NAV ────────────────────────────────────────── */
    .nav-burger {
      display: none; flex-direction: column; gap: 5px; cursor: pointer;
      padding: .4rem; background: none; border: none;
    }
    .nav-burger span {
      display: block; width: 22px; height: 2px;
      background: rgba(255,255,255,.8); border-radius: 2px;
      transition: transform .3s, opacity .3s;
    }
    .nav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .nav-burger.open span:nth-child(2) { opacity: 0; }
    .nav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    #mobile-nav {
      display: none; position: fixed; inset: 0; z-index: 490;
      background: rgba(5,5,8,.97); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
      flex-direction: column; align-items: center; justify-content: center; gap: 2.5rem;
      padding: 2rem;
      overflow-y: auto; -webkit-overflow-scrolling: touch;
    }
    #mobile-nav.open { display: flex; }
    #mobile-nav a {
      font-family: var(--font); font-size: 2rem; font-weight: 800; letter-spacing: .04em;
      color: rgba(255,255,255,.6); text-decoration: none; text-transform: uppercase;
      transition: color .2s;
    }
    #mobile-nav a:hover, #mobile-nav a.nav-active { color: #fff; }
    #mobile-nav .mob-cta {
      margin-top: .5rem; background: var(--fuchsia); color: #fff;
      padding: .9rem 2.8rem; border-radius: 3px;
      font-size: 1rem; font-weight: 800; letter-spacing: .1em;
    }
    #mobile-nav .mob-sub { font-size: 1rem; color: rgba(255,255,255,.3); font-weight: 400; letter-spacing: .06em; }

    /* ── CURSOR ────────────────────────────────────────── */
    #cursor, #cursor-ring { position: fixed; pointer-events: none; z-index: 9999; }
    #cursor {
      width: 22px; height: 20px;
      background: linear-gradient(135deg, #ff9ee0 0%, var(--fuchsia) 55%, #a855f7 100%);
      clip-path: path('M11,18.5 C11,18.5 1,12 1,6.5 A5,5,0,0,1,11,4.5 A5,5,0,0,1,21,6.5 C21,12 11,18.5 11,18.5Z');
      transform: translate(-50%,-45%);
      filter: drop-shadow(0 0 5px rgba(217,70,239,.7));
      transition: transform .15s, filter .15s;
    }
    .cur-big #cursor {
      transform: translate(-50%,-45%) scale(1.5);
      filter: drop-shadow(0 0 10px rgba(217,70,239,.9));
    }
    #cursor-ring { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(217,70,239,.35); transform: translate(-50%,-50%); transition: width .25s, height .25s, border-color .25s; }
    .cur-big #cursor-ring { width: 58px; height: 58px; border-color: rgba(217,70,239,.6); }

    /* ── NOISE ─────────────────────────────────────────── */
    #noise {
      position: fixed; inset: 0; z-index: 9998; pointer-events: none; opacity: .025;
      background: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") repeat;
      background-size: 150px;
    }


    /* ── NAV ───────────────────────────────────────────── */
    #nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 500;
      padding: 1.4rem 0;
      background: rgba(5,5,8,.0);
      transition: padding .4s, background .4s, border-color .4s;
      border-bottom: 1px solid transparent;
      touch-action: manipulation;
    }
    #nav.solid {
      padding: .9rem 0;
      background: rgba(5,5,8,.92);
      -webkit-backdrop-filter: blur(20px);
      backdrop-filter: blur(20px);
      border-color: rgba(255,255,255,.06);
    }
    .nav-inner {
      max-width: 1440px; margin: 0 auto; padding: 0 2rem;
      display: flex; align-items: center; justify-content: space-between;
      gap: 1rem;
    }
    .nav-logo {
      font-family: var(--font); text-decoration: none;
      display: inline-flex; flex-direction: column; align-items: flex-start;
      gap: .05em; line-height: 1;
    }
    .nl-lyv {
      color: #fff; font-size: 1.15rem; font-weight: 900; letter-spacing: .04em;
    }
    .nl-sep { display: none; }
    .nl-meet {
      font-size: .52rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
      background: linear-gradient(90deg, var(--fuchsia) 0%, var(--pink) 55%, var(--purple) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      display: block; white-space: nowrap;
    }
    .nav-links { display: flex; gap: clamp(.8rem, 1.8vw, 2.5rem); list-style: none; }
    .nav-links a {
      font-size: clamp(.62rem, .9vw, .78rem); font-weight: 600;
      letter-spacing: clamp(.06em, .08vw, .12em); text-transform: uppercase;
      color: rgba(255,255,255,.6); text-decoration: none; transition: color .2s;
      white-space: nowrap;
    }
    .nav-links a:hover { color: #fff; }

    /* Dropdown "Artistas" */
    .nav-has-drop { position: relative; }
    .nav-has-drop > a::after { content: ' ▾'; font-size: .6rem; opacity: .5; }
    /* Puente invisible que cubre el gap entre el link y el dropdown */
    .nav-has-drop::after {
      content: ''; position: absolute; top: 100%; left: 0; right: 0; height: 1.2rem;
    }
    .nav-drop {
      position: absolute; top: calc(100% + .6rem); left: 50%;
      background: rgba(5,5,8,.97); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
      border: 1px solid rgba(255,255,255,.1); border-radius: 8px;
      min-width: 200px; padding: .5rem 0;
      opacity: 0; pointer-events: none; visibility: hidden;
      transition: opacity .18s, transform .18s;
      transform: translateX(-50%) translateY(-6px);
    }
    .nav-has-drop:hover .nav-drop,
    .nav-has-drop:focus-within .nav-drop {
      opacity: 1; pointer-events: all; visibility: visible;
      transform: translateX(-50%) translateY(0);
    }
    .nav-drop a {
      display: flex; flex-direction: column; gap: 2px;
      padding: .7rem 1.2rem;
      font-size: .72rem; letter-spacing: .1em; color: rgba(255,255,255,.65);
      text-transform: uppercase; transition: color .15s, background .15s;
      white-space: nowrap; text-decoration: none;
    }
    .nav-drop a:hover { color: #fff; background: rgba(255,255,255,.05); }
    .nav-drop a span {
      font-size: .6rem; letter-spacing: .06em; opacity: .4;
      text-transform: none; font-weight: 400; line-height: 1.2;
    }

    /* scroll-margin-top so fixed nav doesn't cover sections */
    section[id], div[id="pillars"] { scroll-margin-top: 72px; }
    .nav-cta {
      font-family: var(--font); font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
      background: var(--fuchsia); color: var(--bg); padding: .6rem 1.6rem; border-radius: 2px;
      text-decoration: none; transition: opacity .2s, transform .2s;
    }
    .nav-cta:hover { opacity: .85; transform: translateY(-1px); }

    .lang-drop { position: relative; }
    .lang-drop-btn {
      display: flex; align-items: center; gap: .35rem;
      font-family: var(--font); font-size: .7rem; font-weight: 700;
      letter-spacing: .1em; background: transparent;
      border: 1px solid rgba(255,255,255,.25); border-radius: 3px;
      color: rgba(255,255,255,.75); padding: .28rem .55rem;
      cursor: pointer; transition: border-color .2s, color .2s;
    }
    .lang-drop-btn:hover { border-color: var(--fuchsia); color: #fff; }
    .lang-flag { font-size: .9rem; line-height: 1; }
    .lang-arrow { font-size: .55rem; opacity: .6; transition: transform .2s; }
    .lang-drop.open .lang-arrow { transform: rotate(180deg); }
    .lang-menu {
      display: none; position: absolute; top: calc(100% + 6px); right: 0;
      background: #0d0d18; border: 1px solid rgba(255,255,255,.12);
      border-radius: 4px; list-style: none; padding: .3rem 0; margin: 0;
      min-width: 90px; z-index: 999;
      box-shadow: 0 8px 24px rgba(0,0,0,.6);
    }
    .lang-drop.open .lang-menu { display: block; }
    .lang-opt {
      display: flex; align-items: center; gap: .45rem;
      padding: .45rem .75rem; font-size: .72rem; font-weight: 700;
      letter-spacing: .08em; color: rgba(255,255,255,.6);
      cursor: pointer; transition: background .15s, color .15s;
    }
    .lang-opt:hover { background: rgba(217,70,239,.12); color: #fff; }
    .lang-opt.active { color: var(--fuchsia); }
    .lang-opt span { font-size: .95rem; }

    /* ── HERO PANEL (inside pillars pin) ─────────────────── */
    .pp-hero {
      display: flex; align-items: center; justify-content: stretch;
      overflow: hidden;
      padding-top: 72px;
      padding-bottom: 90px;
      background: linear-gradient(149deg, #6bd3fa 0%, #f8f4f5 42%, #f8f4f5 58%, #fbcbcb 100%);
    }
    /* ── IMAGE BACKGROUND ─────────────────────────────── */
    .hero-video-wrap {
      position: absolute; inset: 0; z-index: 0; overflow: hidden;
    }
    .hero-video-wrap img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: 70% center;
      display: block;
    }
    /* Crystal overlay — lighter so the blue+white gradient bleeds through */
    .hero-video-overlay {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(to bottom,
        rgba(107,211,250,.18) 0%,
        rgba(248,244,245,.12) 35%,
        rgba(5,5,8,.55) 80%,
        rgba(5,5,8,.82) 100%);
    }

    /* Crystal color tints — vowels.ae cyan/blush palette */
    .hero-bg {
      position: absolute; inset: 0; z-index: 2;
      background:
        radial-gradient(ellipse 80% 60% at 50% 30%, rgba(107,211,250,.28) 0%, transparent 60%),
        radial-gradient(ellipse 55% 45% at 10% 80%, rgba(251,203,203,.22) 0%, transparent 55%),
        radial-gradient(ellipse 45% 40% at 90% 15%, rgba(248,244,245,.18) 0%, transparent 50%);
    }
    .hero-grid {
      position: absolute; inset: 0; z-index: 3;
      background-image: linear-gradient(rgba(217,70,239,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(217,70,239,.05) 1px, transparent 1px);
      background-size: 70px 70px;
      -webkit-mask-image: radial-gradient(ellipse at 50% 50%, black 30%, transparent 72%);
      mask-image: radial-gradient(ellipse at 50% 50%, black 30%, transparent 72%);
    }
    /* Vignette — más apertura hacia el centro, foco en la artista */
    .hero-vignette {
      position: absolute; inset: 0; z-index: 4;
      background:
        linear-gradient(to right, rgba(5,5,8,.88) 0%, rgba(5,5,8,.45) 28%, transparent 50%, transparent 100%),
        linear-gradient(to bottom, rgba(5,5,8,.1) 0%, transparent 15%, transparent 68%, rgba(5,5,8,.6) 100%);
    }
    #hero-canvas { position: absolute; inset: 0; z-index: 5; pointer-events: none; opacity: .45; }

    .h-orb { position: absolute; border-radius: 50%; filter: blur(90px); pointer-events: none; will-change: transform; z-index: 5; }
    .h-orb-1 { width: 600px; height: 600px; background: radial-gradient(circle, rgba(217,70,239,.5), transparent 65%); top: -10%; left: 4%; }
    .h-orb-2 { width: 450px; height: 450px; background: radial-gradient(circle, rgba(147,51,234,.38), transparent 65%); bottom: -8%; right: 4%; }
    .h-orb-3 { width: 320px; height: 320px; background: radial-gradient(circle, rgba(244,114,182,.22), transparent 65%); top: 40%; right: 15%; }

    /* Content — starts hidden, JS animates in */
    .hero-content {
      position: relative; z-index: 10;
      width: 100%; max-width: 100%;
      padding: 0 4rem 4rem;
      display: flex; align-items: center; justify-content: flex-start;
    }
    .hero-left {
      width: clamp(300px, 36vw, 480px);
      display: flex; flex-direction: column; align-items: flex-start;
    }
    /* Glow drop-shadow on the whole title for readability over video */
    .hero-title {
      filter: drop-shadow(0 0 60px rgba(147,51,234,.5)) drop-shadow(0 4px 20px rgba(0,0,0,.8));
    }

    .hero-eyebrow {
      display: flex; align-items: center; justify-content: flex-start; gap: 1rem; margin-bottom: 2rem;
      opacity: 0; /* animated in */
    }
    .h-line { height: 1px; width: 36px; background: var(--fuchsia); }
    .hero-eyebrow span { font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--fuchsia); }

    /* Line-by-line reveal: overflow hidden on .line, span starts below */
    .hero-title {
      font-family: var(--font); font-size: clamp(3.8rem, 10vw, 8.5rem);
      font-weight: 900; line-height: .88; letter-spacing: -.04em; margin-bottom: 1.5rem;
      filter: drop-shadow(0 0 80px rgba(217,70,239,.6)) drop-shadow(0 4px 24px rgba(0,0,0,.9));
    }
    .hero-title .line { display: block; overflow: hidden; }
    .hero-title .line-inner { display: block; transform: translateY(110%); } /* starts below — CSS initial state */
    .t1 { color: #fff; white-space: nowrap; }
    .t2 {
      font-size: clamp(1.1rem, 3vw, 2.2rem); letter-spacing: .18em; font-weight: 700;
      background: linear-gradient(90deg, var(--fuchsia) 0%, var(--pink) 55%, var(--purple) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }

    .hero-sub { font-size: clamp(.88rem, 1.8vw, 1.05rem); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.72); margin-bottom: 2.8rem; opacity: 0; }
    .hero-sub em { font-style: normal; color: #fff; font-weight: 700; }

    .hero-cta { display: flex; gap: .6rem; justify-content: flex-start; flex-wrap: wrap; margin: 1.6rem 0 0; opacity: 0; }
    .hero-cta .btn-fill, .hero-cta .btn-outline {
      font-size: .8rem; padding: .8rem 1.8rem;
    }

    /* ── Radar animations ──────────────────────────────────── */
    @keyframes radar-pulse {
      0%   { transform: scale(1);   opacity: .55; }
      100% { transform: scale(1.9); opacity: 0;   }
    }
    @keyframes radar-ripple {
      0%   { transform: scale(0);   opacity: .6; }
      100% { transform: scale(2.5); opacity: 0;  }
    }
    /* Continuous pulse ring on primary CTAs */
    .btn-fill::before,
    .tic-btn::before,
    #float-cta::before {
      content: ''; position: absolute; inset: 0;
      border-radius: inherit;
      border: 2px solid rgba(217,70,239,.6);
      animation: radar-pulse 2s ease-out infinite;
      pointer-events: none; z-index: 0;
    }
    /* Click ripple */
    .btn-radar-ripple {
      position: absolute; border-radius: inherit;
      inset: 0; background: rgba(255,255,255,.25);
      animation: radar-ripple .5s ease-out forwards;
      pointer-events: none; z-index: 5;
    }

    .btn-fill {
      display: inline-flex; align-items: center; gap: .5rem;
      background: linear-gradient(135deg, var(--fuchsia) 0%, #c026d3 100%);
      color: #fff;
      font-family: var(--font); font-weight: 800; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase;
      padding: 1rem 2.6rem; border-radius: 3px; text-decoration: none; border: none;
      position: relative; overflow: hidden; transition: transform .25s, box-shadow .25s;
      box-shadow: 0 4px 20px rgba(217,70,239,.35);
    }
    .btn-fill::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent); transform: translateX(-100%); transition: transform .5s; }
    .btn-fill:hover::after { transform: translateX(100%); }
    .btn-fill:hover { transform: translateY(-3px); box-shadow: 0 12px 36px rgba(217,70,239,.6); }

    .btn-outline {
      display: inline-flex; align-items: center; gap: .5rem;
      background: rgba(255,255,255,.06); color: rgba(255,255,255,.85);
      font-family: var(--font); font-weight: 700; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase;
      padding: 1rem 2.6rem; border-radius: 3px; border: 1px solid rgba(255,255,255,.22); text-decoration: none;
      transition: border-color .25s, color .25s, background .25s, transform .25s;
    }
    .btn-outline:hover {
      background: rgba(217,70,239,.15);
      border-color: var(--fuchsia);
      color: #fff;
      text-shadow: 0 0 20px rgba(217,70,239,.8);
      transform: translateY(-3px);
    }

    /* Countdown — esquina inferior derecha del hero */
    .hero-cd {
      position: absolute; bottom: 5.5rem; right: 3rem; z-index: 10;
      opacity: 0;
    }
    .hero-cd .cd-wrap {
      background: rgba(5,5,8,.55);
    }
    .hero-cd .cd-item { padding: .5rem .9rem; }
    .hero-cd .cd-num  { font-size: 1.25rem; }
    .hero-cd .cd-lbl  { font-size: .65rem; }
    /* GioWolf guest chip in hero */
    .hero-guest-chip {
      display: flex; align-items: center;
      justify-content: space-between;
      width: 100%;
      background: rgba(5,5,8,.92);
      border: 1px solid rgba(217,166,10,.5);
      border-left: 3px solid #f0a80a;
      padding: .7rem 1.2rem .7rem .9rem;
      margin: 0 0 1.4rem; opacity: 0;
      gap: .8rem;
    }
    .hgc-left { display: flex; align-items: center; gap: .75rem; }
    .hgc-av {
      width: 48px; height: 48px; border-radius: 50%;
      object-fit: contain; object-position: center;
      background: #fff; padding: 4px;
      border: 2px solid rgba(240,168,10,.7); flex-shrink: 0;
    }
    .hgc-text { display: flex; flex-direction: column; gap: .15rem; }
    .hgc-label { font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; color: #f0a80a; font-weight: 700; }
    .hgc-name  { font-size: 1.1rem; font-weight: 800; color: #fff; letter-spacing: .02em; line-height: 1; }
    .hgc-time  { font-size: .65rem; color: rgba(255,255,255,.45); letter-spacing: .06em; white-space: nowrap; }
    /* Countdown — compact pill inside pillar panels */
    .p-cd { margin-top: 1.4rem; }
    .p-cd .cd-item { padding: .5rem .9rem; }
    .p-cd .cd-num { font-size: 1.35rem; }
    .hero-manifesto {
      margin-top: 1.5rem; padding-top: 1.5rem;
      border-top: 1px solid rgba(255,255,255,.1);
      opacity: 0;
    }
    .hero-manifesto .manifesto-text {
      font-family: var(--font); font-size: clamp(.95rem, 1.8vw, 1.25rem);
      font-weight: 600; line-height: 1.7; letter-spacing: -.01em;
      color: rgba(255,255,255,.75);
    }
    .hero-manifesto .mword { opacity: 1; }
    .hero-manifesto .mword.ac { font-weight: 700; }
    .cd-wrap  { display: inline-flex; border: 1px solid rgba(255,255,255,.12); border-radius: 2px; overflow: hidden; background: rgba(5,5,8,.55); }
    .cd-item  { padding: .9rem 1.6rem; text-align: center; border-right: 1px solid rgba(255,255,255,.08); }
    .cd-item:last-child { border-right: none; }
    .cd-num {
      font-family: var(--font); font-size: 1.9rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums;
      background: linear-gradient(180deg, #fff, rgba(255,255,255,.75));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .cd-lbl { font-size: .65rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-top: .25rem; }



    /* Scroll hint */
    /* Scroll hint — positioned so it never overlaps the manifesto text */
    .hero-scroll-hint { position: absolute; bottom: 1.2rem; left: 50%; transform: translateX(-50%); z-index: 11; display: flex; flex-direction: column; align-items: center; gap: .5rem; opacity: 0; }
    .scroll-lbl { font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.45); }
    .scroll-bar { width: 1px; height: 55px; background: linear-gradient(to bottom, var(--fuchsia), transparent); animation: grow 2s ease-in-out infinite; transform-origin: top; }
    @keyframes grow { 0%,100% { transform: scaleY(0); opacity: 1; } 60% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }

    /* ── SECTION SHARED ────────────────────────────────── */
    .s-tag  { font-size: .65rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--fuchsia); display: block; margin-bottom: .7rem; }
    .s-title { font-family: var(--font); font-size: clamp(1.9rem, 4.5vw, 3rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.08; }
    .s-sub   { color: var(--muted); margin-top: .65rem; font-size: .9rem; line-height: 1.7; }
    .gtext   {
      background: linear-gradient(90deg, var(--fuchsia), var(--pink));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .wrap    { max-width: 1240px; margin: 0 auto; padding: 0 2.5rem; }

    /* ── SECTION BRIDGE ──────────────────────────────────── */
    .section-bridge {
      position: relative; z-index: 10;
      background: rgba(5,5,8,.92);
      border-top: 1px solid rgba(255,255,255,.06);
      border-bottom: 1px solid rgba(255,255,255,.06);
      padding: 1.25rem 0;
      text-align: center;
    }
    .bridge-inner {
      display: flex; align-items: center; justify-content: center; gap: 1.5rem;
      max-width: 960px; margin: 0 auto; padding: 0 2rem;
    }
    .bridge-tag {
      font-family: var(--font); font-size: .72rem; font-weight: 700;
      letter-spacing: .2em; text-transform: uppercase;
      color: var(--fuchsia); white-space: nowrap;
    }
    .bridge-label {
      font-size: .65rem; font-weight: 500; letter-spacing: .12em;
      text-transform: uppercase; color: rgba(255,255,255,.32);
      white-space: nowrap;
    }
    .bridge-line {
      flex: 1; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
    }

    /* ── MANIFESTO ──────────────────────────────────────── */
    #manifesto { padding: 3rem 0; }
    .manifesto-inner { text-align: center; max-width: 820px; margin: 0 auto; padding: 0 2rem; }
    .manifesto-text  { font-family: var(--font); font-size: clamp(1.8rem, 4vw, 3.2rem); font-weight: 700; line-height: 1.35; letter-spacing: -.02em; }
    .m-line { display: block; }
    .mword { display: inline; opacity: .12; transition: opacity .35s; }
    .mword.lit { opacity: 1; }
    .mword.ac {
      background: linear-gradient(90deg, var(--fuchsia), var(--pink));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }

    /* ── PILLARS (fullscreen carousel) ───────────────────── */
    #pillars { position: relative; height: 100vh; min-height: 700px; overflow: hidden; }
    .pillars-pin { position: relative; height: 100%; }
    .pillar-panel {
      position: absolute; inset: 0;
      opacity: 0; pointer-events: none;
      /* no CSS transition — GSAP owns the opacity animation */
    }
    .pillar-panel.active { pointer-events: auto; }

    /* Image background — more visible, lighter overlay */
    .p-img-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
    .p-img-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center top; opacity: 0; display: block; transition: opacity 1s; }
    .p-img-bg img.loaded { opacity: 1; }
    .pp-kpop .p-img-bg img.loaded { opacity: .72; object-position: center center; }
    .p-img-bg::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(to bottom,
        rgba(5,5,8,.55) 0%,
        rgba(5,5,8,.22) 22%,
        rgba(5,5,8,.18) 55%,
        rgba(5,5,8,.72) 100%);
    }
    .p-glow { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
    .pp-esports .p-glow { background: radial-gradient(ellipse at 50% 50%, rgba(14,165,233,.18), transparent 60%); }
    .pp-kpop    .p-glow { background: radial-gradient(ellipse at 50% 50%, rgba(217,70,239,.2), transparent 60%); }
    .pp-show    .p-glow { background: radial-gradient(ellipse at 50% 50%, rgba(217,119,6,.16), transparent 60%); }

    /* Big watermark word */
    .p-bg-num {
      position: absolute; font-family: var(--font); font-weight: 900;
      font-size: clamp(10rem, 22vw, 18rem); line-height: 1; opacity: .06; z-index: 1;
      pointer-events: none; top: 50%; left: 30%; transform: translate(-50%, -48%);
      letter-spacing: -.04em; white-space: nowrap; text-transform: uppercase; color: #fff;
    }

    /* Content — per-panel absolute positioning */
    .p-left {
      position: absolute; z-index: 2;
      max-width: 560px; padding: 1.5rem 2rem 2rem;
      background: rgba(5,5,8,.62);
      border-radius: 3px;
    }
    /* Panel 1 (Esports) — top-left */
    .pp-esports .p-left {
      top: 16%; left: 7%;
      max-width: 440px;
      text-align: left;
    }
    .pp-esports .p-eyebrow { justify-content: flex-start; }
    .pp-esports .p-chips   { justify-content: flex-start; }
    /* Panel 2 (K-Pop) — bottom-right */
    .pp-kpop .p-left {
      bottom: 16%; right: 7%;
      text-align: right;
    }
    .pp-kpop .p-eyebrow { justify-content: flex-end; }
    .pp-kpop .p-chips   { justify-content: flex-end; }
    .pp-kpop .p-desc    { margin-left: auto; }
    /* Panel 3 (Show) — center */
    .pp-show .p-left {
      top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      text-align: center; max-width: 700px;
    }
    .pp-show .p-eyebrow { justify-content: center; }
    .pp-show .p-chips   { justify-content: center; }

    .p-eyebrow { display: inline-flex; align-items: center; gap: .7rem; margin-bottom: 1.4rem; }
    .p-eyebrow-line { height: 1px; width: 28px; }
    .pp-esports .p-eyebrow-line { background: var(--cyan); }
    .pp-kpop    .p-eyebrow-line { background: var(--fuchsia); }
    .pp-show    .p-eyebrow-line { background: var(--gold); }
    .p-tag { font-size: .65rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
    .pp-esports .p-tag { color: var(--cyan); }
    .pp-kpop    .p-tag { color: var(--fuchsia); }
    .pp-show    .p-tag { color: var(--gold); }
    .p-title {
      font-family: var(--font); font-size: clamp(4rem, 9vw, 7.5rem);
      font-weight: 900; line-height: .88; letter-spacing: -.04em; text-transform: uppercase; margin-bottom: 1.4rem;
    }
    .pp-esports .p-title {
      background: linear-gradient(135deg, #fff 0%, var(--cyan) 70%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      font-size: clamp(2.4rem, 5.5vw, 4.8rem); margin-bottom: 1rem;
    }
    .pp-kpop    .p-title {
      background: linear-gradient(135deg, #fff 0%, var(--pink) 50%, var(--fuchsia) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      font-size: clamp(2.4rem, 5.5vw, 4.8rem); margin-bottom: 1rem;
    }
    .pp-show    .p-title { background: linear-gradient(135deg, #fff 0%, var(--gold) 70%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
    .p-desc { font-size: 1rem; color: rgba(255,255,255,.62); line-height: 1.75; max-width: 480px; }

    .p-chips { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: 2rem; }
    .p-chip { font-size: .72rem; font-weight: 700; letter-spacing: .06em; padding: .38rem 1.1rem; border-radius: 2px; background: rgba(255,255,255,.04); }
    .pp-esports .p-chip { border: 1px solid rgba(14,165,233,.3); color: var(--cyan); }
    .pp-kpop    .p-chip { border: 1px solid rgba(217,70,239,.3); color: var(--fuchsia); }
    .pp-show    .p-chip { border: 1px solid rgba(217,119,6,.3);  color: var(--gold); }

    /* K-Pop panel feature cards — fuchsia theme */
    .pp-kpop .p-feat {
      --pf-ac: #d946ef;
      background: rgba(217,70,239,.05); border-color: rgba(217,70,239,.18);
    }
    .pp-kpop .p-feat:hover {
      background: rgba(217,70,239,.1); border-color: rgba(217,70,239,.4);
      box-shadow: 0 4px 20px rgba(217,70,239,.12);
    }
    .pp-kpop .p-feat-name { color: #fff; }

    /* Show panel feature cards — gold theme */
    .pp-show .p-feat {
      --pf-ac: #d97706;
      background: rgba(217,119,6,.05); border-color: rgba(217,119,6,.18);
    }
    .pp-show .p-feat:hover {
      background: rgba(217,119,6,.1); border-color: rgba(217,119,6,.45);
      box-shadow: 0 4px 20px rgba(217,119,6,.12);
    }
    .pp-show .p-feat-name { color: #fff; }
    .pp-show .p-feat-sub { color: rgba(255,255,255,.42); }
    /* Show countdown pill */
    .p-show-pill {
      display: inline-flex; align-items: center; gap: .55rem;
      background: rgba(217,119,6,.13); border: 1px solid rgba(217,119,6,.35);
      border-radius: 20px; padding: .38rem 1rem; margin-bottom: 1.2rem;
      font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
      color: var(--gold);
    }
    .p-show-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); animation: pulse 1.4s ease-in-out infinite; }
    /* Show title override */
    .pp-show .p-title {
      background: linear-gradient(135deg, #fff 0%, #fbbf24 60%, var(--gold) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      font-size: clamp(2.6rem, 6vw, 5.2rem); margin-bottom: 1rem;
    }
    /* K-Pop time badge */
    .p-time-badge {
      display: inline-flex; align-items: center; gap: .5rem;
      background: rgba(217,70,239,.12); border: 1px solid rgba(217,70,239,.28);
      border-radius: 20px; padding: .35rem 1rem; margin-bottom: 1.2rem;
      font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
      color: var(--fuchsia);
    }
    .p-time-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--fuchsia); animation: pulse 1.4s ease-in-out infinite; }

    /* ── Panel Esports — feature grid ─────────────────────── */
    .p-features {
      display: grid; grid-template-columns: 1fr 1fr; gap: .6rem;
      margin-top: 1.4rem;
    }
    .p-feat {
      --pf-ac: #0ea5e9;
      background: rgba(14,165,233,.05);
      border: 1px solid rgba(14,165,233,.15);
      border-radius: 4px; padding: .75rem .9rem;
      position: relative; overflow: hidden;
      transition: background .25s, border-color .3s, box-shadow .3s;
    }
    /* Top accent line — slides in on hover like pz-card */
    .p-feat::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
      background: var(--pf-ac);
      transform: scaleX(0); transform-origin: left;
      transition: transform .4s cubic-bezier(.4,0,.2,1);
    }
    .p-feat:hover::before { transform: scaleX(1); }
    .p-feat:hover {
      background: rgba(14,165,233,.1);
      border-color: rgba(14,165,233,.4);
      box-shadow: 0 4px 20px rgba(14,165,233,.12);
    }
    .p-feat-icon { font-size: 1.1rem; line-height: 1; margin-bottom: .3rem; }
    .p-feat-name {
      font-family: var(--font); font-size: .75rem; font-weight: 800;
      letter-spacing: .06em; text-transform: uppercase; color: #fff;
    }
    .p-feat-sub { font-size: .62rem; color: rgba(255,255,255,.38); letter-spacing: .04em; margin-top: 2px; }

    /* Tab bar */
    .pillar-tabs {
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 10;
      display: flex;
      background: rgba(5,5,8,.72);
      border-top: 1px solid rgba(255,255,255,.08);
    }
    .ptab { flex: 1; padding: 1.2rem 1rem; display: flex; align-items: center; justify-content: center; gap: .9rem; cursor: pointer; border: none; background: transparent; position: relative; overflow: hidden; transition: background .3s; }
    .ptab::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--fuchsia); transform: scaleX(0); transform-origin: left; transition: transform .4s cubic-bezier(.4,0,.2,1); }
    .ptab:not(:last-child) { border-right: 1px solid rgba(255,255,255,.07); }
    .ptab:hover { background: rgba(255,255,255,.04); }
    .ptab.on { background: rgba(217,70,239,.08); }
    .ptab.on::before { transform: scaleX(1); }
    .ptab-num { font-size: .7rem; font-weight: 700; letter-spacing: .12em; color: rgba(255,255,255,.35); transition: color .3s; }
    .ptab-label { font-family: var(--font); font-size: .88rem; font-weight: 700; letter-spacing: .06em; color: rgba(255,255,255,.4); text-transform: uppercase; transition: color .3s; }
    .ptab-icon { font-size: 1.1rem; opacity: .5; transition: opacity .3s; }
    .ptab.on .ptab-num, .ptab.on .ptab-label { color: #fff; }
    .ptab.on .ptab-icon { opacity: 1; }

    /* Arrows */
    .pillar-arrows { position: absolute; top: 50%; left: 0; right: 0; z-index: 10; transform: translateY(-50%); display: flex; justify-content: space-between; padding: 0 2rem; pointer-events: none; }
    .parrow { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.1); background: rgba(5,5,8,.75); display: flex; align-items: center; justify-content: center; font-size: 1rem; cursor: pointer; color: var(--muted); transition: border-color .2s, color .2s, background .2s; pointer-events: auto; }
    .parrow:hover { border-color: var(--fuchsia); color: var(--fuchsia); background: rgba(217,70,239,.08); }
    @media (max-width: 960px) {
      .pp-esports .p-left { top: 10%; left: 5%; }
      .pp-kpop    .p-left { bottom: 18%; right: 5%; }
      .p-left { max-width: 90vw; }
    }


    /* ── SPONSORS ────────────────────────────────────────── */
    #sponsors { padding: 0; overflow: hidden; }
    .sp-hero { padding: 1.5rem 2rem 1rem; text-align: center; }
    .sp-hero h2 { margin-top: .4rem; }
    .sp-wrap { max-width: 1100px; margin: 0 auto; padding: 0 1rem 1.5rem; display: flex; flex-direction: column; gap: .75rem; }

    /* ── Main card: Movistar × SGG ── */
    /* ── Fila 1: patrocinadores principales ── */
    .sp-main-row {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem;
    }
    @media (max-width: 720px) { .sp-main-row { grid-template-columns: 1fr; } }

    .sp-brand { display: flex; align-items: center; gap: .8rem; }
    .sp-brand-img {
      width: 48px; height: 48px; object-fit: cover;
      border-radius: 10px; flex-shrink: 0;
    }
    .sp-brand-img--round { border-radius: 50%; }

    /* ── Fila 2: aliados ── */
    .sp-partners-row {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem;
    }
    @media (max-width: 720px) { .sp-partners-row { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 400px) { .sp-partners-row { grid-template-columns: 1fr; } }

    /* ── Fila 3: slot ── */
    .sp-slot-row {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem;
    }
    .sp-slot-row .sp-partner-card { grid-column: 2; }
    @media (max-width: 720px) {
      .sp-slot-row { grid-template-columns: 1fr; }
      .sp-slot-row .sp-partner-card { grid-column: 1; }
    }

    /* ── Social links en tarjetas ── */
    .sp-socials { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-top: auto; padding-top: .5rem; }
    .sp-soc-link {
      display: inline-flex; align-items: center; gap: .3rem;
      font-size: .58rem; font-weight: 600; letter-spacing: .02em;
      color: var(--muted); text-decoration: none;
      padding: .28rem .55rem; border-radius: 4px;
      border: 1px solid rgba(124,58,237,.18);
      transition: color .18s, border-color .18s, background .18s;
    }
    .sp-soc-link svg { width: 11px; height: 11px; flex-shrink: 0; }
    .sp-soc-link:hover { color: var(--purple); border-color: var(--purple); background: rgba(124,58,237,.05); }

    /* ── Stats inline (Movistar) ── */
    .sp-mgc-stats {
      font-size: .58rem; font-weight: 500; letter-spacing: .04em;
      color: var(--muted); margin-left: .3rem;
    }

    .sp-partner-card {
      position: relative; border-radius: 10px; overflow: hidden;
      background: #fff;
      border: 1px solid rgba(180,160,220,.28);
      box-shadow: 0 2px 14px rgba(80,30,160,.07);
      padding: 1.1rem 1.3rem;
      display: flex; flex-direction: column; gap: .55rem;
      transition: box-shadow .3s;
      min-height: 100px;
    }
    .sp-partner-card:hover { box-shadow: 0 5px 24px rgba(80,30,160,.12); }
    .sp-partner-card .pz-shell { border-radius: 10px; }
    .sp-partner-card--open {
      align-items: center; justify-content: center; text-align: center;
    }
    .sp-partner-cat {
      font-size: .48rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase;
      color: var(--muted);
    }
    .sp-partner-brand { display: flex; align-items: center; gap: .7rem; }
    .sp-partner-name { display: flex; align-items: baseline; gap: .35rem; }


    /* Java Shoppu logo bg */
    .sp-java-logo-bg {
      display: flex; align-items: center; justify-content: center;
      width: 44px; height: 44px; border-radius: 9px; flex-shrink: 0;
      background: #000;
      text-decoration: none;
    }
    .sp-logo-img {
      height: 40px; width: auto; max-width: 110px;
      object-fit: contain; object-position: left center; flex-shrink: 0;
    }
    .sp-java-logo-bg { width: 44px; height: 44px; }
    .sp-java-logo-img { width: 32px; height: 32px; object-fit: contain; }
    .sp-partner-desc {
      font-size: .7rem; line-height: 1.5; color: var(--muted); margin: 0; margin-top: auto;
      text-align: justify;
    }

    /* Text overrides for light bg */
    .sp-logo-mtext .mgc-m  { font-size: 1.1rem; font-weight: 800; letter-spacing: -.02em; color: var(--white); }
    .sp-logo-mtext .mgc-gc { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
    .sp-partner-title { font-family: var(--font); font-size: 1rem; font-weight: 800; letter-spacing: -.01em; line-height: 1.1; }
    .sp-partner-subtitle { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
    .sp-partner-title--mgc    { color: #019DF4; }
    .sp-partner-title--sgg    { color: #2db84b; }
    .sp-partner-title--aji    { color: #cc2229; }
    .sp-partner-title--miniso { color: #E60012; }
    .sp-partner-title--oppo   { color: #1a1a1a; }
    .sp-java-j { font-family: var(--font); font-size: 1rem; font-weight: 800; color: #000; letter-spacing: -.01em; }
    .sp-java-s { font-size: .65rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
    .sp-slot-plus {
      width: 32px; height: 32px; border: 1.5px solid rgba(124,58,237,.3); border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.1rem; color: var(--purple);
    }
    .sp-slot-title {
      font-family: var(--font); font-size: .72rem; font-weight: 700;
      letter-spacing: .12em; text-transform: uppercase; color: var(--muted);
    }
    .sp-slot-email { font-size: .58rem; color: var(--muted); }

    /* Marquee strip */
    .sp-marquee-section {
      padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.05);
      border-bottom: 1px solid rgba(255,255,255,.05);
      overflow: hidden; position: relative;
    }
    .sp-marquee-section::before,
    .sp-marquee-section::after {
      content: ''; position: absolute; top: 0; bottom: 0; width: 120px; z-index: 2; pointer-events: none;
    }
    .sp-marquee-section::before { left: 0; background: linear-gradient(90deg, rgba(248,244,245,.9), transparent); }
    .sp-marquee-section::after  { right: 0; background: linear-gradient(270deg, rgba(248,244,245,.9), transparent); }
    .sp-marquee-track {
      display: flex; gap: 0; width: max-content;
      animation: marqueeScroll 28s linear infinite;
    }
    @keyframes marqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
    .sp-marquee-item {
      padding: 0 3.5rem; border-right: 1px solid rgba(0,0,0,.06);
      display: flex; align-items: center; gap: 1rem; white-space: nowrap;
      font-family: var(--font); font-size: .85rem; font-weight: 700; letter-spacing: .1em;
      text-transform: uppercase; color: rgba(60,20,80,.45);
    }
    .sp-marquee-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--fuchsia); opacity: .5; flex-shrink: 0; }

    /* Partner slots grid */
    .sp-partners {
      padding: 5rem 2rem; max-width: 1100px; margin: 0 auto;
    }
    .sp-partners-label {
      text-align: center; font-size: .65rem; font-weight: 700; letter-spacing: .22em;
      text-transform: uppercase; color: var(--muted); margin-bottom: 2.5rem;
    }
    .sp-slots-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
      background: rgba(255,255,255,.05); border-radius: 4px; overflow: hidden;
    }
    .sp-slot-new {
      background: #07070c; padding: 3rem 2rem;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: .6rem; text-align: center; min-height: 150px;
      transition: background .3s;
      position: relative; overflow: hidden;
    }
    .sp-slot-new:hover { background: rgba(217,70,239,.04); }
    .sp-slot-new::before {
      content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
      width: 40px; height: 1px; background: var(--fuchsia); opacity: 0;
      transition: opacity .3s;
    }
    .sp-slot-new:hover::before { opacity: 1; }
    .sp-slot-plus {
      width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.1rem; color: rgba(255,255,255,.45); margin-bottom: .3rem;
    }
    .sp-slot-txt { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.6); }
    .sp-slot-email { font-size: .65rem; color: rgba(200,200,220,.55); margin-top: .1rem; }

    /* Right-side scroll indicator */
    .scroll-right {
      position: fixed; right: 1.4rem; top: 50%; transform: translateY(-50%);
      display: flex; flex-direction: column; align-items: center; gap: .7rem;
      z-index: 80; pointer-events: none;
      opacity: 0; transition: opacity .6s;
      background: rgba(255,255,255,.25);
      border: 1px solid rgba(255,255,255,.25);
      border-radius: 20px;
      padding: .8rem .45rem 1rem;
    }
    .scroll-right.show { opacity: 1; }
    .scroll-right-txt {
      writing-mode: vertical-rl; transform: rotate(180deg);
      font-size: .56rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
      color: var(--fuchsia);
      text-shadow: 0 0 8px rgba(217,70,239,.4);
    }
    .scroll-right-line {
      width: 1px; height: 52px; overflow: hidden;
      background: rgba(217,70,239,.2);
      position: relative;
    }
    .scroll-right-line::after {
      content: ''; position: absolute; top: 0; left: 0; right: 0;
      height: 100%; background: var(--fuchsia);
      animation: scrollLineAnim 1.8s ease-in-out infinite;
      transform-origin: top;
    }
    @keyframes scrollLineAnim {
      0%   { transform: scaleY(0) translateY(0); opacity: 1; }
      50%  { transform: scaleY(1) translateY(0); opacity: 1; }
      100% { transform: scaleY(1) translateY(100%); opacity: 0; }
    }

    /* ── TORNEO SECTION (FNCS-inspired) ──────────────────── */
    #torneo-section {
      position: relative; background: #03060e;
      overflow: hidden; display: flex; flex-direction: column;
    }

    /* Background: grid + teal glow */
    .tn-bg {
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background:
        radial-gradient(ellipse 60% 80% at 75% 55%, rgba(14,165,233,.14) 0%, transparent 60%),
        radial-gradient(ellipse 40% 50% at 20% 80%, rgba(147,51,234,.12) 0%, transparent 55%),
        linear-gradient(180deg, #03060e 0%, #050a14 100%);
    }
    .tn-bg-grid {
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background-image:
        linear-gradient(rgba(14,165,233,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(14,165,233,.035) 1px, transparent 1px);
      background-size: 64px 64px;
    }

    /* Hero: text left (padded) + visual right (bleeds to edge) */
    .tn-hero {
      display: grid; grid-template-columns: 1fr 28%;
      align-items: stretch; gap: 0;
      width: 100%;
      padding: 3rem 0 2rem clamp(2rem, 4vw, 5rem);
      position: relative; z-index: 5;
    }
    .tn-hero-left {
      padding-right: clamp(1.5rem, 3vw, 3rem);
      padding-bottom: 1.5rem;
      display: flex; flex-direction: column; justify-content: center; gap: 0;
    }

    /* Collab badge */
    .tn-collab {
      display: inline-flex; align-items: center; gap: .6rem;
      background: rgba(0,171,222,.07);
      border: 1px solid rgba(0,171,222,.2);
      border-radius: 4px;
      padding: .5rem 1.1rem;
      margin-bottom: 1.1rem;
      width: fit-content;
    }
    .tn-collab-brand {
      font-family: var(--font); font-size: .72rem; font-weight: 800;
      letter-spacing: .05em; text-transform: uppercase;
    }
    .tn-collab-lyv { color: var(--fuchsia); }
    .tn-collab-mgc { color: rgba(255,255,255,.8); }
    .tn-collab-x {
      font-size: .7rem; font-weight: 700;
      color: rgba(255,255,255,.25);
    }

    /* Dual-brand socials */
    .tn-socials {
      display: flex; flex-direction: column; gap: 0;
      margin-top: 1.6rem;
      border: 1px solid rgba(14,165,233,.12);
      border-radius: 6px; overflow: hidden;
    }
    .tn-social-row {
      display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
      padding: .75rem 1.1rem;
      background: rgba(14,165,233,.04);
    }
    .tn-social-row:last-child { background: rgba(0,171,222,.04); }
    .tn-social-brand {
      font-size: .56rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
      color: rgba(255,255,255,.3);
      min-width: 72px; flex-shrink: 0;
    }
    .tn-social-sep { height: 1px; background: rgba(14,165,233,.1); }
    .tn-social-sep--inline {
      height: auto; background: none;
      color: rgba(255,255,255,.18); font-size: .8rem;
      padding: 0 .2rem; flex-shrink: 0;
    }
    .ss-mgc { color: #00ABDE !important; border-color: rgba(0,171,222,.25) !important; }
    .tn-eyebrow {
      font-size: .63rem; font-weight: 700; letter-spacing: .32em; text-transform: uppercase;
      color: var(--cyan); display: block; margin-bottom: .8rem;
    }
    .tn-venue-badge {
      display: flex; align-items: center; gap: .55rem;
      background: rgba(0,171,222,.12); border: 1px solid rgba(0,171,222,.35);
      border-radius: 4px; padding: .55rem 1.2rem; margin-bottom: 1.2rem;
    }
    .tn-venue-badge-logo {
      display: inline-flex; align-items: center; gap: .3rem;
      font-family: var(--font); font-size: .72rem; font-weight: 800; letter-spacing: .06em;
    }
    .tn-venue-badge-logo .vbl-m { color: #00ABDE; }
    .tn-venue-badge-logo .vbl-gc { color: #1a0a2e; }
    /* Global MGC brand helper */
    .mgc-m { color: #00ABDE !important; }
    .mgc-gc { color: #1a0a2e !important; }
    /* Override for dark backgrounds (torneo section) */
    #torneo-section .mgc-gc,
    #torneo-section .vbl-gc,
    .tn-vloc-title .mgc-gc { color: rgba(255,255,255,.9) !important; -webkit-text-fill-color: rgba(255,255,255,.9) !important; }
    .tn-venue-badge-sep { width: 1px; height: 14px; background: rgba(0,171,222,.4); }
    .tn-venue-badge-label {
      font-size: .58rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
      color: rgba(255,255,255,.45);
    }
    .tn-title {
      font-family: var(--font); font-size: clamp(2.6rem, 5vw, 5rem);
      font-weight: 900; font-style: italic; line-height: .92; letter-spacing: -.04em;
      color: #fff; margin: 0 0 1rem;
      text-shadow: 0 0 80px rgba(14,165,233,.25), 0 4px 30px rgba(0,0,0,.9);
    }
    .tn-desc {
      font-size: .9rem; color: rgba(255,255,255,.6); line-height: 1.82; margin-bottom: 1.6rem;
    }
    .tn-desc strong { color: #fff; font-weight: 700; }

    /* Key stats */
    .tn-stats { display: flex; gap: 0; margin-bottom: 1.4rem; justify-content: flex-start; }
    .tn-stat { padding-right: 2rem; border-right: 1px solid rgba(14,165,233,.15); }
    .tn-stat:last-child { border-right: none; padding-right: 0; }
    .tn-stat-num {
      font-family: var(--font); font-size: 2.1rem; font-weight: 900; letter-spacing: -.04em; line-height: 1;
      background: linear-gradient(135deg, #fff 0%, var(--cyan) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .tn-stat-lbl {
      font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
      color: rgba(255,255,255,.3); margin-top: .25rem;
    }
    .tn-hero-cta {
      display: inline-flex; align-items: center; gap: .6rem;
      align-self: flex-start; /* stay compact, don't stretch full-width */
      background: var(--cyan); color: #03060e;
      padding: .85rem 2rem; font-family: var(--font);
      font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
      text-decoration: none; border-radius: 2px;
      transition: opacity .2s, transform .2s;
    }
    .tn-hero-cta:hover { opacity: .88; transform: translateY(-2px); }

    /* Right: visual — full-bleed to right edge */
    .tn-visual {
      position: relative; overflow: hidden;
      align-self: stretch; min-height: 260px;
      /* fallback when image fails to load */
      background:
        radial-gradient(ellipse 80% 60% at 65% 40%, rgba(14,165,233,.18) 0%, transparent 60%),
        radial-gradient(ellipse 55% 50% at 30% 80%, rgba(124,58,237,.12) 0%, transparent 55%),
        linear-gradient(135deg, #03060e 0%, #060c1a 50%, #04080f 100%);
    }
    /* Subtle cyber grid on fallback */
    .tn-visual::before {
      content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
      background-image: linear-gradient(rgba(14,165,233,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(14,165,233,.05) 1px, transparent 1px);
      background-size: 48px 48px;
      -webkit-mask-image: radial-gradient(ellipse at 60% 40%, black 20%, transparent 70%);
      mask-image: radial-gradient(ellipse at 60% 40%, black 20%, transparent 70%);
    }
    .tn-visual-img {
      position: absolute; inset: 0; z-index: 2;
      width: 100%; height: 100%; border-radius: 0; overflow: hidden;
      border: none; border-left: 1px solid rgba(14,165,233,.2);
      box-shadow: inset 30px 0 60px rgba(3,6,14,.6);
    }
    .tn-visual-img img {
      width: 100%; height: 100%; object-fit: cover; object-position: center;
      display: block; filter: saturate(1.15);
    }
    .tn-visual-img::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(135deg, rgba(3,6,14,.7) 0%, transparent 50%, rgba(3,6,14,.3) 100%);
    }
    .tn-visual-badge {
      position: absolute; bottom: -1px; left: 0; right: 0; z-index: 4;
      padding: 1.2rem 1.6rem;
      background: linear-gradient(to top, rgba(3,6,14,.95) 0%, transparent 100%);
      display: flex; align-items: flex-end; justify-content: space-between;
    }
    .tn-vb-title { font-family: var(--font); font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; color: #fff; }
    .tn-vb-sub { font-size: .65rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--cyan); margin-top: .2rem; }
    .tn-vb-tag {
      background: rgba(14,165,233,.15); border: 1px solid rgba(14,165,233,.35);
      color: var(--cyan); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
      padding: .4rem .9rem; border-radius: 2px; flex-shrink: 0;
    }

    /* Bottom tab nav */
    .tn-tabs-bar {
      display: flex; align-items: center; justify-content: center; gap: .4rem;
      padding: .9rem 2rem;
      background: rgba(3,6,14,.96);
      border-top: 1px solid rgba(14,165,233,.1);
      position: relative; z-index: 5;
    }
    .tn-tab {
      padding: .8rem 2rem;
      font-family: var(--font); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
      color: rgba(255,255,255,.35); background: transparent;
      border: 1px solid rgba(255,255,255,.06); border-radius: 3px;
      cursor: pointer; transition: all .22s; position: relative;
    }
    .tn-tab:hover { color: rgba(255,255,255,.75); border-color: rgba(14,165,233,.25); background: rgba(14,165,233,.05); }
    .tn-tab.active {
      background: rgba(14,165,233,.1); border-color: rgba(14,165,233,.55);
      color: #fff;
      box-shadow: 0 0 18px rgba(14,165,233,.15);
    }
    .tn-tab.active::after {
      content: ''; position: absolute; bottom: -1px; left: 20%; right: 20%; height: 2px;
      background: var(--cyan); border-radius: 2px 2px 0 0;
    }

    /* Tab content panels — full width */
    .tn-panels {
      width: 100%;
      padding: 2rem clamp(2rem, 4vw, 5rem) 3rem;
      position: relative; z-index: 5;
    }
    .tn-panel { display: none; }
    .tn-panel.active { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
    .tn-panel-wide.active { grid-template-columns: repeat(3, 1fr); }

    .tn-card {
      background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07);
      border-radius: 6px; padding: 1.8rem 2rem; position: relative; overflow: hidden;
      transition: border-color .3s, background .3s, transform .3s;
    }
    .tn-card:hover { border-color: rgba(14,165,233,.3); background: rgba(14,165,233,.05); transform: translateY(-3px); }
    .tn-card::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
      background: linear-gradient(90deg, var(--cyan), var(--purple), transparent);
      opacity: 0; transition: opacity .3s;
    }
    .tn-card:hover::before { opacity: 1; }
    .tn-card-num {
      font-family: var(--font); font-size: 4rem; font-weight: 900; letter-spacing: -.05em;
      line-height: 1; color: rgba(14,165,233,.1);
      position: absolute; bottom: .4rem; right: 1rem;
    }
    .tn-card-tag {
      font-size: .6rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
      color: var(--cyan); margin-bottom: .75rem; display: block;
    }
    .tn-card-head {
      font-family: var(--font); font-size: 1.1rem; font-weight: 800; letter-spacing: -.01em;
      color: #fff; margin-bottom: .55rem;
    }
    .tn-card-text { font-size: .83rem; color: rgba(255,255,255,.45); line-height: 1.7; }

    .tn-card-prize {
      background: linear-gradient(135deg, rgba(14,165,233,.12) 0%, rgba(147,51,234,.1) 100%);
      border-color: rgba(14,165,233,.2);
      text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center;
    }
    .tn-prize-num {
      font-family: var(--font); font-size: 3.5rem; font-weight: 900; letter-spacing: -.04em; line-height: 1;
      background: linear-gradient(135deg, var(--cyan), var(--purple));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      margin-bottom: .4rem;
    }
    .tn-prize-lbl { font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.4); }

    @media (max-width: 1024px) {
      .tn-hero { grid-template-columns: 1fr; padding: 3.5rem 1.8rem 1.5rem; gap: 2rem; }
      .tn-hero-left { padding-right: 0; }
      .tn-panel.active, .tn-panel-wide.active { grid-template-columns: 1fr; }
      .tn-panels { padding: 2rem 1.8rem 3rem; }
      .tn-details { grid-template-columns: 1fr; }
    }

    /* ── Torneo details: scoring + rules ── */
    .tn-details {
      display: grid;
      grid-template-columns: 320px 1fr;
      gap: 2px;
      margin: 0;
      border-top: 1px solid rgba(14,165,233,.1);
      position: relative; z-index: 5;
    }
    @media (max-width: 860px) { .tn-details { grid-template-columns: 1fr; } }

    /* Scoring table */
    .tn-scoring {
      background: rgba(0,0,0,.35);
      border-right: 1px solid rgba(14,165,233,.08);
      padding: 2rem clamp(1.5rem, 3vw, 4rem);
    }
    .tn-scoring-eyebrow {
      display: block;
      font-size: .6rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase;
      color: var(--cyan); opacity: .8;
      margin-bottom: 1rem;
    }
    .tn-scoring-note {
      font-size: .78rem; color: rgba(255,255,255,.4); margin-bottom: 1.6rem; line-height: 1.5;
    }
    .tn-scoring-note strong { color: var(--cyan); }
    .tn-pts-table { display: flex; flex-direction: column; gap: 2px; }
    .tn-pts-row {
      display: flex; align-items: center; justify-content: space-between;
      padding: .52rem .8rem;
      background: rgba(255,255,255,.025);
      border-left: 2px solid rgba(14,165,233,.2);
    }
    .tn-pts-row:hover { background: rgba(14,165,233,.06); }
    .tn-pts-pos { font-size: .75rem; color: rgba(255,255,255,.5); }
    .tn-pts-val {
      font-family: var(--font); font-size: .82rem; font-weight: 800;
      color: #eee8ff;
    }
    .tn-pts-victory {
      background: rgba(14,165,233,.08);
      border-left-color: var(--cyan);
    }
    .tn-pts-victory .tn-pts-pos { color: var(--cyan); font-weight: 700; }
    .tn-pts-victory .tn-pts-val { font-size: .92rem; color: #fff; }
    .tn-pts-clasif {
      background: rgba(14,165,233,.04);
      border-left-color: rgba(14,165,233,.45);
    }
    .tn-pts-clasif .tn-pts-pos { color: rgba(14,165,233,.75); }
    .tn-pts-clasif .tn-pts-val { color: rgba(255,255,255,.85); }
    .tn-pts-repechaje {
      background: rgba(217,119,6,.08);
      border-left-color: var(--gold);
      margin-top: 4px;
    }
    .tn-pts-repechaje .tn-pts-pos { color: var(--gold); font-weight: 700; }
    .tn-pts-repechaje .tn-pts-val { color: var(--gold); }

    /* Rules list */
    .tn-rules {
      background: rgba(0,0,0,.25);
      padding: 2rem clamp(1.5rem, 3vw, 3rem);
    }
    .tn-rules-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: .6rem;
      margin-top: 1rem;
    }
    .tn-rule-card {
      background: rgba(14,165,233,.04);
      border: 1px solid rgba(14,165,233,.1);
      border-radius: 6px;
      padding: 1rem 1.1rem 1.1rem;
      display: flex; flex-direction: column; gap: .55rem;
      transition: border-color .2s, background .2s;
    }
    .tn-rule-card:hover {
      background: rgba(14,165,233,.07);
      border-color: rgba(14,165,233,.22);
    }
    .tn-rule-hd {
      display: flex; align-items: center; gap: .55rem;
    }
    .tn-rule-num {
      font-family: var(--font); font-size: .68rem; font-weight: 900;
      color: rgba(14,165,233,.4); letter-spacing: .05em; flex-shrink: 0;
    }
    .tn-rule-tag {
      font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
      color: var(--cyan);
      background: rgba(14,165,233,.08);
      border: 1px solid rgba(14,165,233,.18);
      padding: .18rem .55rem;
      border-radius: 3px;
    }
    .tn-rule-text {
      font-size: .78rem; color: rgba(255,255,255,.45);
      line-height: 1.6; margin: 0;
    }
    @media (max-width: 640px) { .tn-rules-grid { grid-template-columns: 1fr; } }

    /* ── SCHEDULE ───────────────────────────────────────── */
    #schedule { padding: 3rem 0; }
    .sched-head { text-align: center; margin-bottom: 1.5rem; }

    .spotlights { display: flex; flex-direction: column; gap: 1px; margin-bottom: 2rem; }
    .spot {
      display: flex; align-items: center; gap: 2rem; padding: 1.8rem 2.2rem;
      border: 1px solid rgba(217,70,239,.35);
      border-radius: 3px; position: relative; overflow: hidden;
      background: linear-gradient(90deg, rgba(147,51,234,.1), rgba(217,70,239,.04));
      opacity: 0; transform: translateY(24px);
    }
    .spot::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--purple), var(--fuchsia)); }
    .spot-t  { font-family: var(--font); font-size: 1.1rem; font-weight: 800; color: var(--fuchsia); min-width: 85px; }
    .spot-info { flex: 1; }
    .spot-name {
      font-family: var(--font); font-size: 1.7rem; font-weight: 800; letter-spacing: -.02em;
      background: linear-gradient(90deg, var(--white), var(--pink));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .spot-desc { font-size: .85rem; color: var(--muted); margin-top: .25rem; }
    .sbadge { font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .3rem .85rem; border-radius: 1px; }
    .sbadge.main { background: rgba(217,70,239,.2); color: var(--fuchsia); border: 1px solid rgba(217,70,239,.3); }
    .sbadge.open { background: rgba(245,158,11,.18); color: var(--gold); border: 1px solid rgba(245,158,11,.3); }

    .tl-wrap { border: 1px solid rgba(0,0,0,.1); border-radius: 3px; overflow: hidden; background: rgba(255,255,255,.55); }
    .tl-head { display: grid; grid-template-columns: 86px 1fr 1fr 1fr 1fr; background: rgba(0,0,0,.04); border-bottom: 1px solid rgba(0,0,0,.08); }
    .tl-head > div { padding: .8rem 1rem; font-size: .67rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); border-right: 1px solid rgba(0,0,0,.06); }
    .tl-head > div:last-child { border-right: none; }
    .tl-head > div:nth-child(2) { color: var(--purple);  border-top: 2px solid var(--purple); }
    .tl-head > div:nth-child(3) { color: var(--cyan);    border-top: 2px solid var(--cyan); }
    .tl-head > div:nth-child(4) { color: var(--fuchsia); border-top: 2px solid var(--fuchsia); }
    .tl-head > div:nth-child(5) { color: var(--gold);    border-top: 2px solid var(--gold); }

    .tl-row {
      display: grid; grid-template-columns: 86px 1fr 1fr 1fr 1fr;
      border-bottom: 1px solid rgba(0,0,0,.05);
      opacity: 0; transform: translateX(-8px); /* animated in */
    }
    .tl-row:last-child { border-bottom: none; }
    .tl-row.tl-hi { background: rgba(147,51,234,.06); }
    .tl-row > div { padding: .65rem 1rem; font-size: .8rem; display: flex; align-items: center; border-right: 1px solid rgba(0,0,0,.05); }
    .tl-row > div:last-child { border-right: none; }
    .tl-t  { font-size: .74rem; font-weight: 600; color: var(--muted); justify-content: center; border-right: 1px solid rgba(0,0,0,.07) !important; }
    .tl-hi .tl-t { color: var(--fuchsia); font-weight: 800; }
    .cm  { font-weight: 600; color: var(--white); line-height: 1.3; }
    .cm.dim  { color: rgba(80,50,110,.45); font-weight: 400; font-size: .74rem; }
    .cm.stp  { color: rgba(239,68,68,.45); font-size: .74rem; }
    .cm.hi   {
      font-weight: 700;
      background: linear-gradient(90deg, var(--fuchsia), var(--pink));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }

    /* ── LYV BIO ─────────────────────────────────────────── */
    #lyv-bio {
      padding: 0; position: relative; overflow: visible;
      background: linear-gradient(138deg,
        #f0cbf2 0%, #fce5ff 16%, #ffd4f0 33%,
        #fff2fb 50%, #ecdeff 66%, #d8eeff 82%, #f0cbf2 100%);
      min-height: auto; display: flex; align-items: center;
    }
    /* Foto de LYV como textura suave de fondo */
    .lyv-bg-img {
      position: absolute; inset: 0; pointer-events: none;
      background-image: url('img/lyv-photo-2.jpg');
      background-size: cover; background-position: center 15%;
      opacity: .07; mix-blend-mode: multiply;
    }
    /* Shimmer iridiscente perla */
    .lyv-bg-overlay {
      position: absolute; inset: 0; pointer-events: none;
      background:
        radial-gradient(ellipse 70% 55% at 12% 18%, rgba(255,255,255,.65) 0%, transparent 60%),
        radial-gradient(ellipse 55% 40% at 88% 80%, rgba(107,211,250,.18) 0%, transparent 55%),
        radial-gradient(ellipse 45% 35% at 50% 3%,  rgba(255,255,255,.5)  0%, transparent 52%);
    }
    /* Y2K "LYV" watermark text */
    .lyv-y2k {
      position: absolute; top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      font-family: var(--font); font-weight: 900;
      font-size: clamp(14rem, 28vw, 22rem);
      letter-spacing: -.06em; line-height: 1;
      white-space: nowrap; pointer-events: none; user-select: none; z-index: 0;
      background: linear-gradient(135deg,
        #f4a7c9 0%, #e879c0 22%, #c65fa8 40%,
        #f472b6 56%, #e879c0 72%, #f4a7c9 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      opacity: .14;
    }
    /* Photo column — full-stretch panel, frame floats inside with border visible */
    .lyv-frame-wrap {
      position: relative;
      overflow: hidden;
      order: -1;
      background:
        radial-gradient(ellipse 70% 55% at 45% 35%, rgba(244,114,182,.32) 0%, transparent 60%),
        radial-gradient(ellipse 55% 55% at 12% 85%, rgba(147,51,234,.22) 0%, transparent 55%),
        linear-gradient(160deg, rgba(255,226,246,.5) 0%, rgba(240,200,255,.4) 55%, rgba(218,190,248,.45) 100%);
      border-right: 1px solid rgba(217,70,239,.22);
    }
    /* Accent line at top of panel */
    .lyv-frame-wrap::before {
      content: ''; position: absolute;
      top: 0; left: 0; right: 0; height: 3px; z-index: 1;
      background: linear-gradient(90deg, transparent 0%, rgba(244,114,182,.6) 45%, rgba(217,70,239,.6) 100%);
    }
    /* Generic floating deco element */
    .fd {
      position: absolute; pointer-events: none; user-select: none; z-index: 8;
      animation: lyvDecoFloat var(--dd, 5s) ease-in-out infinite var(--dl, 0s);
    }
    /* CSS 10-point glitter star */
    .fd-star {
      width: var(--fds, 44px); height: var(--fds, 44px);
      clip-path: polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
      background: var(--fdc, #ff80b5);
      filter: drop-shadow(0 2px 10px var(--fdc, #ff80b5));
    }
    /* CSS 4-point sparkle */
    .fd-sparkle {
      width: var(--fds, 28px); height: var(--fds, 28px);
      clip-path: polygon(50% 0%,56% 44%,100% 50%,56% 56%,50% 100%,44% 56%,0% 50%,44% 44%);
      background: var(--fdc, #fff);
      filter: drop-shadow(0 0 8px var(--fdc, #fff));
    }
    /* PNG stickers around the frame */
    .lyv-deco {
      position: absolute; pointer-events: none; user-select: none; z-index: 9;
      animation: lyvDecoFloat var(--dd, 5s) ease-in-out infinite var(--dl, 0s);
      filter: drop-shadow(0 4px 16px rgba(217,70,239,.28)) drop-shadow(0 2px 6px rgba(0,0,0,.12));
    }
    .lyv-deco img { display: block; width: var(--ds, 100px); height: auto; }
    @keyframes lyvDecoFloat {
      0%, 100% { transform: rotate(var(--dr, 0deg)) translateY(0) scale(1); }
      50%       { transform: rotate(var(--dr, 0deg)) translateY(var(--dy, -12px)) scale(1.05); }
    }
    /* Text colors for Y2K light bg */
    #lyv-bio .s-tag { color: #7c3aed; }
    #lyv-bio .lyv-heading .sub { color: #7a4fa0; letter-spacing: .3em; }
    #lyv-bio .lyv-heading .name {
      background: linear-gradient(120deg, var(--fuchsia) 0%, #f472b6 50%, #7c3aed 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    #lyv-bio .lyv-bio-text { color: #3d2270; font-size: .92rem; line-height: 1.82; }
    #lyv-bio .lyv-bio-text strong { color: var(--fuchsia); font-weight: 700; }
    #lyv-bio .lyv-bio-text em { font-style: normal; color: #7c3aed; font-weight: 600; }
    #lyv-bio .lyv-event-chip { border-color: rgba(217,70,239,.5); color: var(--fuchsia); background: rgba(217,70,239,.08); font-weight: 700; }
    #lyv-bio .lyv-music-label { color: #6d3fa0; }
    .lyv-bio-inner {
      display: flex; flex-direction: column;
      position: relative; z-index: 5;
      width: 100%; padding: 0;
    }
    .lyv-top-row {
      display: grid; grid-template-columns: 44% 56%;
      gap: 0; align-items: stretch; min-height: 75vh;
    }
    /* Text column — padded, vertically centered */
    .lyv-info {
      padding: 3rem clamp(2rem, calc((100vw - 1260px)/2 + 2.5rem), 6rem) 3rem clamp(2rem, 3.5vw, 3.5rem);
      display: flex; flex-direction: column; justify-content: center;
    }
    .lyv-logo-img {
      width: clamp(180px, 24vw, 260px); height: auto;
      display: block; margin-bottom: 1rem;
      mix-blend-mode: multiply;
    }
    /* Spotify — Y2K styled wrapper */
    .lyv-spotify-row {
      margin-top: 1rem;
      padding-top: 1.2rem;
      border-top: 1px solid rgba(217,70,239,.14);
    }
    .lyv-spotify-row .lyv-music-label { margin-bottom: .8rem; }
    .lyv-spotify-wrap {
      position: relative;
      border-radius: 10px;
      overflow: hidden;
      /* Holographic rainbow border */
      padding: 2px;
      background: linear-gradient(
        135deg,
        #ff80cc 0%,
        #d946ef 20%,
        #7c3aed 40%,
        #22d3ee 55%,
        #ff80cc 70%,
        #d946ef 85%,
        #7c3aed 100%
      );
      background-size: 300% 300%;
      animation: spHolo 5s linear infinite;
      box-shadow: 0 0 22px rgba(217,70,239,.5), 0 0 50px rgba(124,58,237,.25);
    }
    @keyframes spHolo {
      0%   { background-position: 0% 50%; }
      50%  { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }
    .lyv-spotify-wrap iframe {
      display: block; position: relative; z-index: 1;
    }

    /* ── Spotify Y2K Pink Card ─────────────────────────── */
    .sp-y2k-card {
      border-radius: 12px;
      overflow: hidden;
      box-shadow:
        0 0 0 2px rgba(255,80,170,.6),
        0 0 28px rgba(217,70,239,.45),
        0 0 60px rgba(255,100,180,.22);
    }
    .sp-y2k-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 1rem 1.3rem;
      background: linear-gradient(135deg,
        #ff4fa3 0%,
        #e8369a 28%,
        #c9248e 55%,
        #a01880 80%,
        #c92494 100%
      );
      background-size: 200% 200%;
      animation: spHdrShift 8s ease-in-out infinite;
    }
    @keyframes spHdrShift {
      0%, 100% { background-position: 0% 50%; }
      50%       { background-position: 100% 50%; }
    }
    .sp-y2k-header-left { display: flex; flex-direction: column; gap: .15rem; }
    .sp-y2k-label {
      font-family: var(--font); font-size: 1.05rem; font-weight: 800;
      letter-spacing: .01em; color: #fff;
      text-shadow: 0 1px 8px rgba(0,0,0,.3);
    }
    .sp-y2k-sub {
      font-size: .65rem; font-weight: 600; letter-spacing: .12em;
      text-transform: uppercase; color: rgba(255,255,255,.65);
    }
    .sp-y2k-icon { color: rgba(255,255,255,.9); flex-shrink: 0; }
    /* Wrap the iframe tightly — no gap between header and player */
    .sp-y2k-card .lyv-spotify-wrap {
      padding: 0; animation: none; box-shadow: none; border-radius: 0;
      background: #121212; /* matches Spotify dark bg — no gap shows */
      line-height: 0; font-size: 0; /* eliminate inline whitespace */
    }

    /* Photo — full bleed, frame is overlaid on top */
    .lyv-img-frame {
      position: absolute;
      inset: 0;
      border-radius: 0; overflow: hidden;
      display: flex; align-items: center; justify-content: center;
    }

    /* ── Y2K + Esports frame overlay ─────────────────────── */
    .lyv-y2k-overlay {
      position: absolute;
      inset: 1.8rem 2.2rem 1.8rem 1.8rem;
      z-index: 25; pointer-events: none;
      border-radius: 6px;
      /* Chrome white border + pink neon glow */
      border: 2px solid rgba(255,255,255,.92);
      box-shadow:
        0 0 0 1.5px rgba(217,70,239,.9),
        0 0 18px rgba(217,70,239,.6),
        0 0 50px rgba(255,100,200,.35),
        inset 0 0 0 1px rgba(255,255,255,.12);
    }
    /* Holographic rainbow sweep */
    .lyv-y2k-overlay::before {
      content: ''; position: absolute; inset: 0; z-index: 1; border-radius: 4px;
      background: linear-gradient(
        110deg,
        transparent 0%,
        rgba(255,255,255,.0) 28%,
        rgba(255,200,240,.12) 42%,
        rgba(200,150,255,.10) 50%,
        rgba(150,220,255,.10) 58%,
        rgba(255,255,255,.0) 72%,
        transparent 100%
      );
      background-size: 300% 100%;
      animation: y2kHolo 5s linear infinite;
    }
    @keyframes y2kHolo {
      0%   { background-position: 130% 0; }
      100% { background-position: -130% 0; }
    }
    /* Scanlines — subtle CRT texture */
    .lyv-y2k-overlay::after {
      content: ''; position: absolute; inset: 0; z-index: 2; border-radius: 4px;
      background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 3px,
        rgba(0,0,0,.055) 3px,
        rgba(0,0,0,.055) 4px
      );
      pointer-events: none;
    }
    /* HUD corner brackets */
    .y2k-corner {
      position: absolute; width: 22px; height: 22px;
      border-color: #fff; border-style: solid; z-index: 6;
      filter: drop-shadow(0 0 5px rgba(217,70,239,.95)) drop-shadow(0 0 10px rgba(255,100,200,.7));
    }
    .y2k-tl { top: -2px; left: -2px; border-width: 3px 0 0 3px; border-radius: 3px 0 0 0; }
    .y2k-tr { top: -2px; right: -2px; border-width: 3px 3px 0 0; border-radius: 0 3px 0 0; }
    .y2k-bl { bottom: -2px; left: -2px; border-width: 0 0 3px 3px; border-radius: 0 0 0 3px; }
    .y2k-br { bottom: -2px; right: -2px; border-width: 0 3px 3px 0; border-radius: 0 0 3px 0; }
    /* Diamond midpoint accents — esports HUD */
    .y2k-diamond {
      position: absolute; z-index: 6;
      width: 7px; height: 7px; background: #fff;
      transform: rotate(45deg);
      box-shadow: 0 0 6px rgba(217,70,239,1), 0 0 14px rgba(255,100,200,.8);
    }
    .y2k-d-t { top: -4px; left: calc(50% - 3.5px); }
    .y2k-d-b { bottom: -4px; left: calc(50% - 3.5px); }
    .y2k-d-l { left: -4px; top: calc(50% - 3.5px); }
    .y2k-d-r { right: -4px; top: calc(50% - 3.5px); }
    .lyv-img-frame img {
      width: auto;
      height: 100%;
      max-width: none;
      display: block;
    }
    .lyv-img-frame::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(to bottom, transparent 55%, rgba(140,40,100,.4) 100%);
      pointer-events: none;
    }

    /* Info col */
    .lyv-info { display: flex; flex-direction: column; gap: 0; width: 100%; }
    .lyv-heading {
      font-family: var(--font); font-size: clamp(2.8rem, 6vw, 5rem);
      font-weight: 800; letter-spacing: -.05em; line-height: .9;
      margin-bottom: 0; padding-bottom: .06em;
    }
    .lyv-heading .sub { display: block; font-size: .28em; font-weight: 400; letter-spacing: .25em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: .5em; }
    .lyv-heading .name {
      display: block;
      background: linear-gradient(120deg, #fff 0%, var(--fuchsia) 50%, var(--purple) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .lyv-bio-text { font-size: .9rem; color: rgba(255,255,255,.55); line-height: 1.75; margin-bottom: 1rem; }
    .lyv-event-chip {
      display: inline-flex; align-items: center; gap: .7rem;
      border: 1px solid rgba(217,70,239,.28); padding: .6rem 1.2rem; border-radius: 1px;
      font-size: .8rem; font-weight: 600; margin-bottom: 1.4rem;
      background: transparent;
    }
    .lyv-event-chip .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--fuchsia); box-shadow: 0 0 8px var(--fuchsia); flex-shrink: 0; }

    /* Music embed */
    .lyv-music-label {
      font-size: .68rem; font-weight: 700; letter-spacing: .2em;
      text-transform: uppercase; color: var(--muted); margin-bottom: 1rem; display: block;
    }

    @media (max-width: 1024px) {
      .lyv-top-row { grid-template-columns: 1fr; min-height: auto; }
      /* order: -1 on .lyv-frame-wrap keeps image on top in single-col layout */
      .lyv-frame-wrap { height: 75vw; min-height: 380px; border-right: none; border-bottom: 1px solid rgba(217,70,239,.22); }
      .lyv-img-frame { inset: 2rem; }
      .lyv-info { padding: 2.5rem 2rem 2.5rem; }
    }

    /* ── ARTISTS ────────────────────────────────────────── */
    #artists { position: relative; }
    .artist-sec {
      min-height: auto; display: flex; align-items: center;
      position: relative; overflow: clip; padding: 2rem 0;
    }
    .a-bg { position: absolute; inset: 0; pointer-events: none; }
    .artist-lyv .a-bg { background: radial-gradient(ellipse 65% 70% at 65% 50%, rgba(147,51,234,.18), transparent 70%); }
    .a-divider { height: 1px; background: linear-gradient(90deg, transparent, var(--border), transparent); }
    .a-inner {
      max-width: 1200px; margin: 0 auto; padding: 0 3.5rem;
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 5rem; align-items: center; position: relative; z-index: 2;
    }

    .a-tag  { font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; display: block; margin-bottom: 1rem; }
    .artist-lyv .a-tag { color: var(--fuchsia); }

    .a-name {
      font-family: var(--font);
      font-size: clamp(4.5rem, 11vw, 7.5rem);
      font-weight: 800; line-height: .88; letter-spacing: -.04em; margin-bottom: 1.5rem;
    }
    .artist-lyv .a-name {
      background: linear-gradient(135deg, var(--white) 0%, var(--fuchsia) 55%, var(--purple) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .a-desc { font-size: .98rem; color: var(--muted); line-height: 1.8; margin-bottom: 2rem; max-width: 420px; }

    .a-time {
      display: inline-flex; align-items: center; gap: .7rem;
      border: 1px solid var(--border); padding: .65rem 1.3rem; border-radius: 1px;
      font-size: .82rem; font-weight: 600;
    }
    .a-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
    .artist-lyv .a-dot { background: var(--fuchsia); box-shadow: 0 0 8px var(--fuchsia); }

    /* Photo slot */
    .a-photo-wrap {
      aspect-ratio: 3/4; max-height: 500px;
      position: relative; overflow: hidden; border-radius: 2px;
      border: 1px solid var(--border);
    }
    .a-photo-wrap img {
      width: 100%; height: 100%; object-fit: cover; object-position: top center;
      display: block;
    }
    /* Fallback shown when img fails / no src */
    .a-photo-fallback {
      position: absolute; inset: 0;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      text-align: center; padding: 2rem;
      background: linear-gradient(160deg, var(--bg), rgba(147,51,234,.15));
    }
    .afl-name { font-family: var(--font); font-size: 5rem; font-weight: 800; opacity: .06; line-height: 1; }
    .afl-hint { font-size: .78rem; color: var(--muted); margin-top: 1rem; line-height: 1.5; }
    /* gradient overlay bottom */
    .a-photo-wrap::after {
      content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
      background: linear-gradient(to top, rgba(5,5,8,.7), transparent);
    }
    /* animated frame border */
    .a-photo-wrap::before {
      content: ''; position: absolute; inset: 0; z-index: 2; border-radius: 2px;
      background: linear-gradient(180deg, transparent 50%, var(--fuchsia) 100%);
      mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      mask-composite: exclude; padding: 1px;
    }

    /* ── GIO GAME UI SECTION ──────────────────────────────── */
    .artist-gio {
      background: #030810 !important;
      padding: 0 !important;
      height: 100vh; min-height: 620px;
      overflow: hidden; position: relative;
    }

    /* Atmospheric background */
    .gio-bg {
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background:
        radial-gradient(ellipse 65% 90% at 85% 55%, rgba(10,90,85,.65) 0%, transparent 62%),
        radial-gradient(ellipse 55% 60% at 15% 80%, rgba(90,12,20,.55) 0%, transparent 52%),
        radial-gradient(ellipse 40% 40% at 55% 10%, rgba(20,35,75,.4) 0%, transparent 50%),
        linear-gradient(160deg, #050c14 0%, #030810 55%, #060c10 100%);
    }

    /* Background character illustration layers */
    .gio-char-bg-l {
      position: absolute; z-index: 1; pointer-events: none;
      left: -2%; bottom: 0; height: 85%; width: auto;
      display: flex; align-items: flex-end;
    }
    .gio-char-bg-l img {
      height: 100%; width: auto; display: block;
      object-fit: contain; object-position: center bottom;
      opacity: .28;
      mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.5) 30%, rgba(0,0,0,.8) 70%, black 100%);
      -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.5) 30%, rgba(0,0,0,.8) 70%, black 100%);
    }
    .gio-char-bg-r {
      position: absolute; z-index: 1; pointer-events: none;
      right: 0; bottom: 0; height: 78%; width: auto;
      display: flex; align-items: flex-end;
    }
    .gio-char-bg-r img {
      height: 100%; width: auto; display: block;
      object-fit: contain; object-position: center bottom;
      opacity: .18;
      transform: scaleX(-1);
      mask-image: linear-gradient(to left, transparent 0%, rgba(0,0,0,.5) 30%, rgba(0,0,0,.75) 70%, black 100%);
      -webkit-mask-image: linear-gradient(to left, transparent 0%, rgba(0,0,0,.5) 30%, rgba(0,0,0,.75) 70%, black 100%);
    }

    /* Vignette edges */
    .gio-vignette {
      position: absolute; inset: 0; z-index: 8; pointer-events: none;
      background:
        linear-gradient(to bottom, rgba(3,8,16,.7) 0%, transparent 12%, transparent 82%, rgba(3,8,16,.85) 100%);
    }

    /* ── LEFT: character selector ── */
    .gio-selector {
      position: absolute; z-index: 15;
      left: 3rem; top: 50%; transform: translateY(-50%);
      display: flex; flex-direction: column; align-items: center;
    }
    .gio-sel-track {
      position: relative;
      display: flex; flex-direction: column; align-items: center; gap: 1.1rem;
    }
    .gio-sel-track::before {
      content: ''; position: absolute;
      left: 50%; top: 10%; bottom: 10%;
      width: 1px;
      background: linear-gradient(to bottom, transparent, rgba(200,134,10,.5) 20%, rgba(200,134,10,.5) 80%, transparent);
      transform: translateX(-50%); z-index: 0;
    }
    .gio-avatar {
      position: relative; z-index: 1;
      width: 64px; height: 64px; border-radius: 50%;
      border: 2px solid rgba(200,134,10,.25);
      background: rgba(3,8,16,.85);
      overflow: hidden; cursor: pointer;
      transition: border-color .3s, box-shadow .3s, transform .3s;
      padding: 0; flex-shrink: 0;
    }
    .gio-avatar img {
      width: 100%; height: 100%; object-fit: cover; object-position: right center;
      display: block; filter: brightness(.85) saturate(.9);
      transition: filter .3s;
    }
    /* Arte en el lado derecho de las imágenes landscape */
    .gio-sel-track button:nth-child(1) img { object-position: 80% center; }
    .gio-sel-track button:nth-child(2) img { object-position: 75% center; }
    .gio-avatar:hover img { filter: brightness(1) saturate(1.1); }
    .gio-avatar.active img { filter: brightness(1.1) saturate(1.2); }
    .gio-avatar.active {
      border-color: #c8860a;
      box-shadow: 0 0 0 3px rgba(200,134,10,.12), 0 0 22px rgba(200,134,10,.35);
      transform: scale(1.12);
    }
    .gio-avatar:hover:not(.active) {
      border-color: rgba(200,134,10,.55); transform: scale(1.07);
    }

    /* ── LEFT: info panel — full-height column ── */
    .gio-info-panel {
      position: absolute; z-index: 12;
      left: 0; right: 48%; top: 0; bottom: 0;
      display: flex; flex-direction: column; justify-content: center;
      /* left padding clears the avatar selector (~7.5rem) */
      padding: 3rem 3.2rem 3rem 8.5rem;
      text-align: left;
      background: rgba(3,8,16,.94);
      /* angled bottom-right corner for game-UI feel */
      clip-path: polygon(0 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%);
    }

    /* Gaming divider — glowing vertical line on right edge */
    .gio-info-panel::before {
      content: ''; position: absolute;
      right: 0; top: 0; bottom: 0; width: 2px;
      background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(200,134,10,.25) 6%,
        rgba(200,134,10,.9)  22%,
        #c8860a              50%,
        rgba(200,134,10,.9)  78%,
        rgba(200,134,10,.25) 94%,
        transparent 100%
      );
      box-shadow: 0 0 10px rgba(200,134,10,.5), 0 0 28px rgba(200,134,10,.2);
      z-index: 1;
    }

    /* Diamond node at the midpoint of the divider */
    .gio-info-panel::after {
      content: ''; position: absolute;
      right: -5px; top: 50%; transform: translateY(-50%) rotate(45deg);
      width: 10px; height: 10px;
      background: #c8860a;
      box-shadow: 0 0 0 2px rgba(3,8,16,1), 0 0 14px rgba(200,134,10,.9);
      z-index: 2;
    }
    .gio-emblem {
      width: 150px; height: auto; margin: 0 0 1.6rem;
    }
    .gio-emblem img {
      width: 100%; height: auto; display: block;
      filter: invert(1);
      opacity: .92;
    }
    .gio-hero-name {
      font-family: var(--font);
      font-size: clamp(2.4rem, 4.5vw, 4rem);
      font-weight: 800; letter-spacing: -.02em; line-height: .9;
      color: #fff; margin: 0 0 .5rem;
      text-shadow: 0 0 60px rgba(200,134,10,.3), 0 4px 24px rgba(0,0,0,.9);
    }
    .gio-hero-role {
      font-size: .6rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
      color: #c8860a; margin-bottom: 1.4rem;
      display: flex; align-items: center; gap: .6rem;
    }
    .gio-hero-role::before {
      content: ''; display: block; width: 18px; height: 1px;
      background: #c8860a; flex-shrink: 0;
    }
    .gio-hero-desc {
      font-size: .85rem; color: rgba(255,255,255,.68); line-height: 1.82;
      margin-bottom: 1.2rem;
    }
    /* Specialty tags */
    .gio-tags {
      display: flex; flex-wrap: wrap; justify-content: flex-start; gap: .45rem;
      margin-bottom: 1.4rem;
    }
    .gio-tag {
      font-size: .58rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
      color: rgba(200,134,10,.8); border: 1px solid rgba(200,134,10,.3);
      padding: .28rem .7rem; background: rgba(200,134,10,.07);
    }
    /* Event chip */
    .gio-event-chip {
      display: inline-flex; align-items: center; gap: .55rem;
      font-size: .65rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase;
      color: rgba(255,255,255,.5); border: 1px solid rgba(255,255,255,.1);
      padding: .4rem .9rem; margin-bottom: 1.6rem;
      background: rgba(255,255,255,.04);
    }
    .gio-event-chip .chip-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: #c8860a; box-shadow: 0 0 6px #c8860a;
      animation: pulse-gold 2s ease-in-out infinite;
    }
    @keyframes pulse-gold {
      0%,100% { opacity: 1; } 50% { opacity: .35; }
    }
    .gio-hero-actions {
      display: flex; align-items: center; justify-content: flex-start; gap: .9rem; flex-wrap: wrap;
    }
    .gio-btn-gold {
      display: inline-flex; align-items: center; gap: .45rem;
      background: rgba(200,134,10,.1); border: 1px solid rgba(200,134,10,.7);
      color: #c8860a; padding: .72rem 1.4rem;
      font-size: .73rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
      text-decoration: none; transition: background .25s, color .25s, border-color .25s;
    }
    .gio-btn-gold:hover { background: #c8860a; color: #030810; border-color: #c8860a; }
    .gio-btn-ghost {
      display: inline-flex; align-items: center; gap: .45rem;
      border: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.45);
      padding: .72rem 1.2rem;
      font-size: .73rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
      text-decoration: none; transition: border-color .25s, color .25s;
    }
    .gio-btn-ghost:hover { border-color: rgba(255,255,255,.35); color: #fff; }

    /* ── RIGHT: character art ── */
    .gio-art-wrap {
      position: absolute; z-index: 5;
      right: 0; bottom: 0;
      height: 95%; width: 48%;
      display: flex; align-items: flex-end; justify-content: flex-end;
      pointer-events: none;
    }
    .gio-art-wrap img {
      height: 100%; width: 100%; display: block;
      object-fit: cover; object-position: right center;
      filter: drop-shadow(0 0 55px rgba(10,95,90,.7)) drop-shadow(-20px 0 50px rgba(3,8,16,.9));
      transition: opacity .45s ease;
    }
    /* Decorative gold corner brackets around art */
    .gio-art-corners {
      position: absolute; inset: 8% 2% 0 15%;
      pointer-events: none; z-index: 6;
    }
    .gio-art-corners::before,
    .gio-art-corners::after {
      content: ''; position: absolute;
      width: 36px; height: 36px;
      border-color: rgba(200,134,10,.45);
      border-style: solid;
    }
    .gio-art-corners::before { top: 0; right: 0; border-width: 2px 2px 0 0; }
    .gio-art-corners::after  { bottom: 0; right: 0; border-width: 0 2px 2px 0; }

    /* GioWolf stat highlights — hidden below 1400px */
    .gio-highlights { display: none; margin-bottom: 1.4rem; }
    .gio-hl-row {
      display: flex; border: 1px solid rgba(200,134,10,.2);
      background: rgba(200,134,10,.04);
    }
    .gio-hl-item {
      flex: 1; padding: .55rem .8rem; text-align: center;
      border-right: 1px solid rgba(200,134,10,.14);
    }
    .gio-hl-item:last-child { border-right: none; }
    .gio-hl-val {
      font-family: var(--font); font-size: 1.1rem; font-weight: 800;
      color: #c8860a; display: block; line-height: 1;
    }
    .gio-hl-lbl {
      font-size: .5rem; letter-spacing: .12em; text-transform: uppercase;
      color: rgba(255,255,255,.35); margin-top: .2rem; display: block;
    }
    /* Mini artwork strip — hidden below 1400px */
    .gio-mini-gallery { display: none; gap: .45rem; margin-top: 1.2rem; }
    .gio-mini-gallery img {
      width: 72px; height: 72px; object-fit: cover; object-position: center top;
      border: 1px solid rgba(200,134,10,.22); opacity: .7;
      transition: opacity .25s, border-color .25s;
    }
    .gio-mini-gallery img:hover { opacity: 1; border-color: #c8860a; }

    @media (min-width: 1400px) {
      .gio-info-panel { right: 36%; }
      .gio-art-wrap { width: 40%; }
      .gio-highlights { display: block; }
      .gio-mini-gallery { display: flex; }
    }

    @media (max-width: 1100px) {
      .gio-info-panel { right: 46%; padding: 2.5rem 2.4rem 2.5rem 7.5rem; }
      .gio-art-wrap { width: 54%; }
    }
    @media (max-width: 820px) {
      .artist-gio { height: auto; min-height: auto; display: flex; flex-direction: column-reverse; }
      .gio-selector { display: none; }
      .gio-info-panel {
        position: relative; left: auto; right: auto; top: auto; bottom: auto;
        width: 100%; padding: 2.5rem 1.8rem; text-align: center;
        background: rgba(3,8,16,.9);
        clip-path: none;
      }
      .gio-info-panel::before { display: none; }
      .gio-info-panel::after  { display: none; }
      .gio-emblem { margin: 0 auto 1.4rem; }
      .gio-hero-role { justify-content: center; }
      .gio-tags { justify-content: center; }
      .gio-hero-actions { justify-content: center; }
      .gio-art-wrap { display: none; }
      .gio-art-corners { display: none; }
      .gio-emblem { width: 100px; margin-bottom: .8rem; }
      .gio-bg { display: none; }
      .gio-char-bg-l, .gio-char-bg-r { display: none; }
      .gio-vignette { display: none; }
      .gio-art-corners { display: none; }
    }

    /* ── SOCIAL LINKS (shared across sections) ─────────── */
    .section-social { display: flex; align-items: center; gap: .45rem; margin-top: .9rem; flex-wrap: wrap; }
    .ss-link {
      display: inline-flex; align-items: center; gap: .38rem;
      padding: .35rem .7rem; border: 1px solid rgba(255,255,255,.13);
      color: rgba(255,255,255,.45); text-decoration: none;
      font-size: .62rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
      transition: border-color .2s, color .2s, background .2s;
    }
    .ss-link svg { width: 13px; height: 13px; flex-shrink: 0; }
    .ss-link:hover { color: #fff; border-color: rgba(255,255,255,.4); }
    .ss-fuchsia .ss-link:hover { color: var(--fuchsia); border-color: var(--fuchsia); }
    .ss-gold    .ss-link:hover { color: #c8860a; border-color: #c8860a; }
    .ss-cyan    .ss-link:hover { color: var(--cyan); border-color: var(--cyan); }
    /* LYV bio section — light background adaptation */
    #lyv-bio .ss-link { border-color: rgba(124,58,237,.28); color: rgba(80,30,130,.6); }
    #lyv-bio .ss-link:hover { color: var(--fuchsia); border-color: var(--fuchsia); background: rgba(217,70,239,.06); }

    /* ── TICKETS ────────────────────────────────────────── */
    #tickets { padding: 3rem 0; position: relative; }
    #tickets::before {
      content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
      width: 1px; height: 100%;
      background: linear-gradient(to bottom, transparent, rgba(217,70,239,.1), transparent);
    }
    .tic-head { text-align: center; margin-bottom: 1.5rem; }

    .tic-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      align-items: stretch;
      border: 1px solid rgba(255,255,255,.55); border-radius: 4px; overflow: visible;
      max-width: 1060px; margin: 0 auto;
    }
    .tic-card {
      padding: 2.4rem 2.2rem 2.6rem;
      background: rgba(255,255,255,.45);
      display: flex; flex-direction: column;
      position: relative; overflow: hidden;
      transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
      opacity: 0; transform: translateY(40px);
    }
    .tc2--featured { padding-top: calc(2.4rem + 1.8rem); }
    .tic-card:not(:last-child) { border-right: 1px solid rgba(255,255,255,.4); }
    .tc1 { border-top: 4px solid var(--cyan); }
    .tc2 { border-top: 4px solid var(--fuchsia); }
    .tc3 { border-top: 4px solid var(--gold); }

    /* ── Tarjeta destacada ───────────────────────────────── */
    .tc2--featured {
      background: rgba(255,255,255,.58);
      box-shadow: 0 24px 60px rgba(217,70,239,.22), 0 0 0 2px rgba(217,70,239,.3);
      z-index: 2;
    }
    .tc2--featured .tic-btn {
      background: linear-gradient(135deg, var(--fuchsia), #c026d3);
      color: #fff; border-color: var(--fuchsia);
      box-shadow: 0 4px 20px rgba(217,70,239,.4);
    }

    .tic-popular-flag {
      position: absolute; top: 0; left: 50%; transform: translateX(-50%);
      background: linear-gradient(135deg, var(--fuchsia), #c026d3);
      color: #fff; font-size: .54rem; font-weight: 900; letter-spacing: .16em;
      text-transform: uppercase; padding: .38rem 1.4rem; border-radius: 0 0 8px 8px;
      white-space: nowrap; box-shadow: 0 4px 12px rgba(217,70,239,.4);
      z-index: 3;
    }

    /* Hover por tarjeta */
    .tic-card:hover { transform: translateY(-6px); }
    .tc1:hover { background: linear-gradient(160deg, rgba(14,165,233,.14), rgba(255,255,255,.42)); box-shadow: 0 16px 40px rgba(14,165,233,.12); }
    .tc2:hover { background: linear-gradient(160deg, rgba(217,70,239,.16), rgba(255,255,255,.42)); box-shadow: 0 16px 40px rgba(217,70,239,.15); }
    .tc3:hover { background: linear-gradient(160deg, rgba(217,119,6,.14), rgba(255,255,255,.42)); box-shadow: 0 16px 40px rgba(217,119,6,.12); }

    /* Badge — same height slot across all cards */
    .tic-badge {
      display: inline-block; width: fit-content;
      font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
      padding: .22rem .75rem; border-radius: 3px;
      margin-bottom: 1.1rem;
    }
    .tc1-badge { background: rgba(14,165,233,.12); border: 1px solid rgba(14,165,233,.3); color: var(--cyan); }
    .tc2-badge { background: rgba(217,70,239,.12); border: 1px solid rgba(217,70,239,.3); color: var(--fuchsia); }
    .tc3-badge { background: rgba(217,119,6,.12);  border: 1px solid rgba(217,119,6,.3);  color: var(--gold); }

    .tic-tier { font-size: .65rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: .4rem; }
    .tic-tagline { font-size: .88rem; color: rgba(26,10,46,.6); line-height: 1.6; margin-bottom: 1.2rem; }
    .tic-price { font-family: var(--font); font-size: 3.2rem; font-weight: 900; letter-spacing: -.03em; line-height: 1; margin-bottom: 1.6rem; }
    .tic-price sup { font-size: 1rem; vertical-align: super; font-weight: 800; opacity: .8; }
    .tc1 .tic-price { color: var(--cyan); }
    .tc2 .tic-price { color: var(--fuchsia); }
    .tc3 .tic-price { color: var(--gold); }

    .tic-sep { height: 1px; background: rgba(0,0,0,.08); margin-bottom: 1.6rem; }
    .tic-list { list-style: none; display: flex; flex-direction: column; gap: .7rem; margin-bottom: 2rem; flex: 1; }
    .tic-list li { display: flex; align-items: flex-start; gap: .6rem; font-size: .88rem; color: var(--muted); line-height: 1.5; }
    .chk { flex-shrink: 0; margin-top: .05rem; }
    .chk.yes  { color: #34d399; }
    .chk.star { color: var(--gold); }

    .tic-btn {
      display: block; width: 100%; padding: 1rem;
      font-family: var(--font); font-weight: 800; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
      text-align: center; text-decoration: none; border-radius: 3px;
      transition: all .28s cubic-bezier(.16,1,.3,1);
    }
    .tc1 .tic-btn { background: transparent; border: 1px solid rgba(14,165,233,.3); color: var(--cyan); }
    .tc1:hover .tic-btn { background: var(--cyan); color: #050508; border-color: var(--cyan); box-shadow: 0 4px 20px rgba(14,165,233,.3); }
    .tc2 .tic-btn { background: transparent; border: 1px solid rgba(217,70,239,.35); color: var(--fuchsia); }
    .tc2:hover .tic-btn { background: linear-gradient(135deg, var(--fuchsia), #c026d3); color: #fff; border-color: var(--fuchsia); box-shadow: 0 4px 20px rgba(217,70,239,.4); }
    .tc3 .tic-btn { background: transparent; border: 1px solid rgba(217,119,6,.3); color: var(--gold); }
    .tc3:hover .tic-btn { background: var(--gold); color: #050508; border-color: var(--gold); box-shadow: 0 4px 20px rgba(217,119,6,.3); }

    /* ── 2×1 diagonal ribbon ─────────────────────────────── */
    .tic-2x1-ribbon {
      position: absolute; top: 20px; right: -30px;
      background: linear-gradient(135deg, var(--purple), var(--fuchsia));
      color: #fff; font-size: .54rem; font-weight: 900;
      letter-spacing: .1em; padding: .28rem 2.8rem;
      transform: rotate(45deg); text-transform: uppercase;
      z-index: 2; text-align: center; white-space: nowrap;
      box-shadow: 0 3px 10px rgba(124,58,237,.4);
    }
    /* ── 2×1 promo block ─────────────────────────────────── */
    .tic-2x1-block {
      margin-top: .75rem; padding-top: .75rem;
      border-top: 1px dashed rgba(124,58,237,.18);
    }
    .tic-2x1-or {
      font-size: .6rem; font-weight: 700; letter-spacing: .14em;
      text-transform: uppercase; color: rgba(26,10,46,.36);
      text-align: center; margin-bottom: .5rem;
    }
    .tic-2x1-pricing {
      display: flex; align-items: center; justify-content: center;
      gap: .5rem; margin-bottom: .65rem;
    }
    .tic-2x1-was {
      font-size: .75rem; color: rgba(26,10,46,.35);
      text-decoration: line-through; font-weight: 600;
    }
    .tic-2x1-now {
      font-size: .92rem; font-weight: 900;
      color: var(--purple); letter-spacing: -.02em;
    }
    .tic-2x1-now small {
      font-size: .62rem; font-weight: 700;
      color: rgba(124,58,237,.65); letter-spacing: .04em; margin-left: .15rem;
    }
    .tic-btn-2x1 {
      display: block; text-align: center;
      padding: .82rem 1.5rem; border-radius: 6px;
      font-family: var(--font); font-size: .76rem; font-weight: 900;
      letter-spacing: .04em; text-transform: uppercase;
      background: linear-gradient(105deg, var(--purple) 0%, var(--fuchsia) 100%);
      color: #fff; border: none; cursor: pointer;
      text-decoration: none; position: relative; overflow: hidden;
      transition: transform .28s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
      box-shadow: 0 5px 18px rgba(217,70,239,.35), 0 1px 0 rgba(255,255,255,.12) inset;
    }
    .tic-btn-2x1::before {
      content: ''; position: absolute;
      top: -50%; left: -75%; width: 50%; height: 200%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
      transform: skewX(-20deg);
      animation: btn-shine 2.8s ease-in-out infinite;
      pointer-events: none;
    }
    @keyframes btn-shine {
      0%   { left: -75%; }
      50%  { left: 125%; }
      100% { left: 125%; }
    }
    .tic-btn-2x1:hover {
      transform: translateY(-3px) scale(1.015);
      box-shadow: 0 12px 28px rgba(217,70,239,.55);
    }

    /* ── SPONSORS ───────────────────────────────────────── */
    #sponsors {
      padding: 2rem 0 1rem;
      background: transparent;
    }
    .sp-head { text-align: center; margin-bottom: 4rem; }


    /* ── VENUE / LOCATION ───────────────────────────────── */
    /* Venue block inside torneo section */
    .tn-venue-loc {
      border-top: 1px solid rgba(14,165,233,.1);
      padding: 3rem 0 3.5rem;
      position: relative; z-index: 5;
    }
    .tn-vloc-inner {
      display: grid; grid-template-columns: 1fr 1.2fr;
      gap: 3.5rem; align-items: start;
      width: 100%; max-width: 1200px;
      margin: 0 auto;
      padding: 0 clamp(2rem, 4vw, 5rem);
    }
    .tn-vloc-title {
      font-family: var(--font); font-size: clamp(1.8rem, 3.2vw, 2.8rem);
      font-weight: 900; line-height: .9; letter-spacing: -.03em;
      color: #fff;
      margin: .5rem 0 1rem;
      display: flex; flex-direction: column; gap: .55rem;
    }
    .tn-vloc-former {
      display: block;
      font-size: .58rem; font-weight: 700; letter-spacing: .2em;
      text-transform: uppercase; color: rgba(255,255,255,.38);
      line-height: 1;
    }
    .tn-vloc-desc {
      font-size: .83rem; color: rgba(255,255,255,.42);
      line-height: 1.78; margin-bottom: 1.4rem;
    }
    .tn-vloc-facts {
      display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.8rem;
    }
    .tn-vloc-fact { display: flex; flex-direction: column; gap: .2rem; }
    .tn-vloc-fact-label {
      font-size: .56rem; font-weight: 700; letter-spacing: .22em;
      text-transform: uppercase; color: var(--cyan);
    }
    .tn-vloc-fact-val {
      font-size: .82rem; color: rgba(255,255,255,.7); line-height: 1.45;
    }
    .tn-vloc-map-wrap {
      position: relative; border-radius: 10px;
      border: 1px solid rgba(14,165,233,.2);
      overflow: hidden;
      box-shadow: 0 12px 40px rgba(0,0,0,.45);
    }
    .tn-vloc-map-wrap iframe {
      width: 100%; height: 320px; border: none; display: block;
      filter: saturate(.8) contrast(.95);
    }
    .tn-vloc-badge {
      position: absolute; top: .75rem; left: .75rem; z-index: 2;
      display: flex; align-items: center; gap: .45rem;
      background: rgba(3,6,14,.96); border: 1px solid rgba(14,165,233,.28);
      border-radius: 5px; padding: .35rem .75rem;
      font-family: var(--font); font-size: .68rem; font-weight: 700;
      color: #fff;
    }
    .tn-vloc-badge-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: #0ea5e9; box-shadow: 0 0 5px #0ea5e9;
      animation: pulse-dot 2s ease-in-out infinite;
    }
    @keyframes pulse-dot {
      0%,100% { opacity:1; transform:scale(1); }
      50% { opacity:.4; transform:scale(1.5); }
    }
    @media (max-width:900px) {
      .tn-vloc-inner { grid-template-columns: 1fr; gap: 2rem; }
      .tn-vloc-map-wrap iframe { height: 260px; }
    }

    #venue { padding: 3rem 0; }
    .venue-inner {
      display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center;
    }
    .venue-info { }
    .venue-info h2 { font-family: var(--font); font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 800; letter-spacing: -.03em; margin-bottom: 1rem; }
    .venue-info p  { color: var(--muted); line-height: 1.8; margin-bottom: 2rem; font-size: .98rem; }
    .venue-details-list { display: flex; flex-direction: column; gap: .8rem; margin-bottom: 2rem; }
    .vd-item {
      display: flex; align-items: center; gap: .9rem;
      font-size: .88rem; color: var(--muted);
    }
    .vd-icon { font-size: 1rem; flex-shrink: 0; }
    .vd-item strong { color: var(--white); }

    /* Map card — Google Maps embed */
    .venue-map {
      border-radius: 12px; border: 1px solid rgba(124,58,237,.2);
      overflow: hidden; position: relative;
      display: flex; flex-direction: column;
      box-shadow: 0 8px 40px rgba(124,58,237,.12);
      height: 420px;
    }
    .venue-map iframe {
      width: 100%; flex: 1; border: none; display: block; min-height: 340px;
      filter: saturate(.9) contrast(.95);
    }
    .map-footer {
      background: rgba(255,255,255,.95);
      padding: 1rem 1.4rem; border-top: 1px solid rgba(124,58,237,.15);
      display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    }
    .map-footer-info { display: flex; flex-direction: column; gap: .18rem; }
    .map-footer-name { font-family: var(--font); font-size: .95rem; font-weight: 800; letter-spacing: .02em; color: #1a0a2e; }
    .map-footer-addr { font-size: .73rem; color: var(--muted); }
    .map-pin-badge {
      display: inline-flex; align-items: center; gap: .4rem;
      background: var(--fuchsia); color: #fff;
      padding: .35rem .8rem; border-radius: 20px;
      font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
      flex-shrink: 0;
    }
    .map-pin-badge::before { content: '📍'; font-style: normal; }
    .map-btn {
      display: inline-flex; align-items: center; gap: .4rem;
      font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
      color: var(--fuchsia); border: 1px solid rgba(217,70,239,.3);
      padding: .45rem 1rem; border-radius: 4px; text-decoration: none;
      transition: background .2s; flex-shrink: 0;
    }
    .map-btn:hover { background: rgba(217,70,239,.08); }


    /* ── FOOTER ─────────────────────────────────────────── */
    footer { padding: 2rem 0 1.5rem; border-top: 1px solid rgba(255,255,255,.07); background: #050508; }
    .ft-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 3rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
    /* ── Footer text overrides for dark bg ──────────────── */
    .ft-brand p         { color: rgba(255,255,255,.55) !important; }
    .ft-nav-g h4        { color: rgba(255,255,255,.35) !important; }
    .ft-nav-g a         { color: rgba(255,255,255,.62) !important; }
    .ft-nav-g a:hover   { color: #fff !important; }
    .ft-bottom p        { color: rgba(255,255,255,.38) !important; }
    .ft-logo {
      font-family: var(--font); font-weight: 900;
      display: flex; flex-direction: column; align-items: flex-start; gap: .35rem;
      line-height: 1; margin-bottom: .6rem;
    }
    .ft-logo-img {
      width: 120px; height: auto; display: block;
      border-radius: 8px;
    }
    .ft-logo .nl-meet {
      font-size: .6rem; font-weight: 700; letter-spacing: .2em;
      background: linear-gradient(90deg, var(--fuchsia) 0%, var(--pink) 55%, var(--purple) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .ft-brand p { font-size: .85rem; color: var(--muted); max-width: 230px; line-height: 1.7; }
    .ft-nav { display: flex; gap: 4rem; flex-wrap: wrap; }
    .ft-nav-g h4 { font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 1rem; }
    .ft-nav-g ul { list-style: none; display: flex; flex-direction: column; gap: .65rem; }
    .ft-nav-g a  { font-size: .87rem; color: var(--muted); text-decoration: none; transition: color .2s; }
    .ft-nav-g a:hover { color: var(--white); }
    .ft-social { display: flex; gap: .7rem; }
    .soc { width: 38px; height: 38px; border: 1px solid rgba(0,0,0,.12); border-radius: 2px; display: flex; align-items: center; justify-content: center; font-size: .9rem; text-decoration: none; transition: border-color .2s, background .2s; }
    .soc:hover { border-color: var(--fuchsia); background: rgba(217,70,239,.12); }
    .ft-bottom { border-top: 1px solid rgba(0,0,0,.08); padding-top: 1.5rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .8rem; }
    .ft-bottom p { font-size: .8rem; color: var(--muted); }

    /* ── RESPONSIVE ─────────────────────────────────────── */
    @media (max-width: 1024px) {
      .pillar-dots { display: none; }
      .a-inner { grid-template-columns: 1fr; gap: 2.5rem; }
      .tic-grid { grid-template-columns: 1fr; }
      .tic-card:not(:last-child) { border-right: none; border-bottom: 1px solid rgba(255,255,255,.07); }
      .tc2--featured { padding-top: calc(2.4rem + 1.8rem); box-shadow: 0 24px 60px rgba(217,70,239,.22), 0 0 0 2px rgba(217,70,239,.3); }
      .venue-inner { grid-template-columns: 1fr; gap: 3rem; }
      .sp-others { grid-template-columns: 1fr; }
      .sp-slot { border-right: none; border-bottom: 1px solid rgba(255,255,255,.06); }
    }

    /* ── TABLET ─── */
    @media (max-width: 860px) {
      /* Hero: tighten spacing between elements (no font changes) */
      .hero-content { padding: 0 2rem 3rem; }
      .hero-left  { width: clamp(260px, 38vw, 400px); }
      .hero-eyebrow { margin-bottom: 1.2rem; }
      .hero-title { margin-bottom: 1rem; }
      .hero-cta { margin-bottom: 1.8rem; gap: .75rem; }
      .hero-manifesto { margin-top: 1rem; padding-top: 1rem; }
    }

    /* ── SHORT VIEWPORTS (laptops ~800px height) ─── */
    /* Hide manifesto in hero to prevent SCROLL overlap — it still appears in its own section */
    @media (max-height: 820px) and (min-width: 769px) {
      .hero-manifesto { display: none; }
      .pp-hero { padding-bottom: 60px; }
    }

    /* ── MOBILE ─── */
    @media (max-width: 768px) {
      .nav-links { display: none; }
      .nav-cta { display: none; }
      .nav-burger { display: flex; }
      #float-cta { bottom: 1.2rem; right: 1.2rem; padding: .7rem 1.2rem; }
      #back-top { bottom: 1.2rem; left: 1.2rem; }

      /* Hero mobile panel */
      .pp-hero {
        padding-bottom: 5rem;
      }
      .hero-content { padding: 1rem 1.5rem 0; }
      .hero-left  { width: 100%; }
      .hero-cd    { right: 1.2rem; bottom: 4.5rem; }
      .hero-cd .cd-item { padding: .4rem .7rem; }
      .hero-cd .cd-num  { font-size: 1rem; }
      .hero-eyebrow { margin-bottom: 1rem; gap: .6rem; }
      .hero-cta { margin-bottom: 1.5rem; gap: .6rem; }
      .hero-cd .cd-item { padding: .6rem 1rem; }
      .p-cd .cd-item { padding: .4rem .7rem; }
      .hero-manifesto { margin-top: .8rem; padding-top: .8rem; }

      /* Other sections */
      .zones-grid { grid-template-columns: 1fr; grid-template-rows: repeat(4, 70vw); }
      .scroll-right { display: none; }
      .zcard { width: 290px; height: 440px; }
      .a-inner { padding: 0 1.5rem; }
      .ft-nav { flex-direction: column; gap: 2rem; }
      .ptab-label { display: none; }
      .pillar-arrows { display: none; }
    }

    /* ── SMALL PHONES ─── */
    @media (max-width: 480px) {
      /* Hide scroll hint on very small screens */
      .hero-scroll-hint { display: none; }
      /* Reduce countdown: hide Min + Seg */
      .cd-item:nth-child(3), .cd-item:nth-child(4) { display: none; }
    }

    /* ── 2K / LARGE SCREENS ─── */
    @media (min-width: 1800px) {
      .hero-content { padding: 0 6rem 4rem; }
      .hero-left  { width: min(520px, 30vw); }
    }

    /* ── ACTIVIDADES & PREMIOS — Eluune-inspired ────────── */
    #actividades { position: relative; overflow: hidden; background: #030208; }

    /* ─ Carousel ─ */
    .act-carousel-outer {
      position: relative; overflow: hidden;
      width: 100%; height: 90vh; min-height: 620px;
    }
    .act-carousel-track { display: flex; height: 100%; will-change: transform; }
    .act-slide {
      min-width: 100vw; height: 100%; flex-shrink: 0;
      position: relative; display: flex; align-items: center; justify-content: center;
      overflow: hidden;
    }
    .s-gaming { background: radial-gradient(ellipse 110% 90% at 50% 25%, #001526 0%, #020112 55%, #030208 100%); }
    .s-kpop   { background: radial-gradient(ellipse 110% 90% at 50% 25%, #170025 0%, #0d0118 55%, #030208 100%); }
    .s-show   { background: radial-gradient(ellipse 110% 90% at 50% 25%, #1c0900 0%, #100508 55%, #030208 100%); }

    /* Atmospheric glows */
    .act-sg { position: absolute; border-radius: 50%; filter: blur(90px); pointer-events: none; z-index: 0; }
    .s-gaming .act-sg-1 { width: 650px; height: 550px; background: rgba(14,165,233,.16); top: -8%; left: 50%; transform: translateX(-50%); }
    .s-gaming .act-sg-2 { width: 350px; height: 350px; background: rgba(14,165,233,.08); bottom: 0; right: 8%; filter: blur(60px); }
    .s-kpop  .act-sg-1 { width: 650px; height: 550px; background: rgba(217,70,239,.16); top: -8%; left: 50%; transform: translateX(-50%); }
    .s-kpop  .act-sg-2 { width: 350px; height: 350px; background: rgba(147,51,234,.08); bottom: 0; left: 6%; filter: blur(60px); }
    .s-show  .act-sg-1 { width: 650px; height: 550px; background: rgba(240,168,10,.14); top: -8%; left: 50%; transform: translateX(-50%); }
    .s-show  .act-sg-2 { width: 350px; height: 350px; background: rgba(251,146,60,.07); bottom: 0; right: 5%; filter: blur(70px); }

    /* Wireframe SVG deco */
    .act-deco-wrap {
      position: absolute; inset: 0; z-index: 1;
      display: flex; align-items: flex-end; justify-content: center;
      pointer-events: none; padding-bottom: 8%;
    }
    .act-deco-wrap svg { width: clamp(300px,52vw,560px); opacity: .12; }

    /* Ghost number */
    .act-ghost {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%,-54%);
      font-family: var(--font); font-size: clamp(12rem, 28vw, 22rem);
      font-weight: 900; color: rgba(255,255,255,.03);
      letter-spacing: -.06em; pointer-events: none; user-select: none;
      z-index: 0; line-height: 1;
    }

    /* Slide content */
    .act-slide-content {
      position: relative; z-index: 3;
      display: flex; flex-direction: column; align-items: center;
      text-align: center; padding: 2rem 3rem 8rem;
      max-width: 900px; width: 100%;
    }
    .act-slide-eyebrow {
      font-size: .62rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase;
      color: var(--sac); margin-bottom: 1.8rem;
      display: flex; align-items: center; gap: .9rem;
    }
    .act-slide-eyebrow::before,
    .act-slide-eyebrow::after {
      content: ''; height: 1px; width: 32px; background: var(--sac); opacity: .55; flex-shrink: 0;
    }
    .act-slide-title {
      font-family: var(--font); font-size: clamp(3.5rem, 9vw, 7rem);
      font-weight: 900; letter-spacing: .05em; text-transform: uppercase;
      color: #fff; line-height: .92; margin-bottom: 1.4rem;
      text-shadow: 0 0 100px var(--sac), 0 4px 30px rgba(0,0,0,.6);
    }
    .act-slide-desc {
      font-size: clamp(.84rem, 1.5vw, 1rem); color: rgba(255,255,255,.48);
      max-width: 480px; line-height: 1.74; margin-bottom: 2.2rem;
    }
    .act-feat-row {
      display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-bottom: 2.4rem;
    }
    .act-feat {
      display: inline-flex; align-items: center; gap: .48rem;
      background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
      padding: .5rem 1.1rem; font-size: .72rem; font-weight: 600;
      letter-spacing: .07em; color: rgba(255,255,255,.68);
      transition: background .25s, border-color .25s, color .25s;
    }
    .act-feat:hover { background: rgba(255,255,255,.1); border-color: var(--sac); color: #fff; }
    .act-fdot { width: 4px; height: 4px; border-radius: 50%; background: var(--sac); box-shadow: 0 0 7px var(--sac); flex-shrink: 0; }
    .act-incl {
      font-size: .6rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
      border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.28); padding: .32rem 1rem;
    }

    /* Per-slide accent var */
    .s-gaming { --sac: #0ea5e9; }
    .s-kpop   { --sac: #d946ef; }
    .s-show   { --sac: #f0a80a; }

    /* Bottom nav */
    .act-carousel-nav {
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 10;
      display: flex; align-items: center; justify-content: center; gap: 1.8rem;
      padding: 1.8rem 0 2.4rem;
      background: linear-gradient(to top, rgba(3,2,8,.92) 0%, transparent 100%);
    }
    .act-nav-btn {
      width: 46px; height: 46px; border-radius: 50%; cursor: pointer;
      background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
      color: rgba(255,255,255,.6); font-size: 1rem;
      display: flex; align-items: center; justify-content: center;
      transition: background .2s, border-color .2s, color .2s;
    }
    .act-nav-btn:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); color: #fff; }
    .act-nav-btn:disabled { opacity: .3; pointer-events: none; }
    .act-dots { display: flex; gap: .55rem; align-items: center; }
    .act-dot {
      height: 4px; border-radius: 2px; cursor: pointer; border: none; padding: 0; background: rgba(255,255,255,.18);
      transition: width .45s cubic-bezier(.34,1.56,.64,1), background .3s;
      width: 16px;
    }
    .act-dot.on { width: 38px; background: var(--fuchsia); }

    /* ─ Bridge ─ */
    .act-bridge {
      padding: 1.8rem 0; background: #030208;
      border-top: 1px solid rgba(255,255,255,.05);
      border-bottom: 1px solid rgba(255,255,255,.05);
      display: flex; align-items: center; justify-content: center; gap: 1.4rem;
    }
    .act-bline { flex: 1; max-width: 320px; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent); }
    .act-btxt { font-size: .58rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; color: rgba(255,255,255,.2); white-space: nowrap; }

    /* ─ Prizes section ─ */
    .prizes-section {
      position: relative; overflow: hidden;
      background: linear-gradient(180deg, #030208 0%, #060118 55%, #030208 100%);
      padding: 2rem 0 4rem;
    }
    .pz-word {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
      font-family: var(--font); font-size: clamp(8rem, 24vw, 20rem);
      font-weight: 900; letter-spacing: .06em; text-transform: uppercase;
      color: rgba(255,255,255,.018); white-space: nowrap; pointer-events: none; user-select: none; z-index: 0;
    }
    .pz-bg1 { position: absolute; width: 700px; height: 500px; border-radius: 50%; filter: blur(50px); pointer-events: none; background: rgba(217,70,239,.06); top: -10%; left: -5%; }
    .pz-bg2 { position: absolute; width: 500px; height: 400px; border-radius: 50%; filter: blur(50px); pointer-events: none; background: rgba(14,165,233,.05); bottom: 0; right: -2%; }

    /* Prizes header */
    .pz-header {
      display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
      gap: 1rem; margin-bottom: 2rem; padding: 0; position: relative; z-index: 2;
    }
    .pz-header-left { display: flex; flex-direction: column; gap: .6rem; }
    .pz-kicker { display: inline-flex; align-items: center; gap: .8rem; }
    .pz-kicker::before, .pz-kicker::after { content: '✦'; font-size: .44rem; color: var(--fuchsia); opacity: .7; }
    .pz-kicker span { font-size: .62rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; color: var(--fuchsia); }
    .pz-title {
      font-family: var(--font); font-size: clamp(2rem, 4.5vw, 4rem);
      font-weight: 900; letter-spacing: .04em; text-transform: uppercase;
      color: #fff; line-height: 1; white-space: nowrap;
    }
    .pz-title em {
      font-style: normal;
      background: linear-gradient(90deg, var(--fuchsia) 0%, var(--pink) 50%, var(--purple) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .pz-sub { font-size: clamp(.84rem, 1.4vw, .98rem); color: rgba(255,255,255,.36); max-width: 360px; line-height: 1.7; }
    @media (max-width: 768px) { .pz-header { flex-direction: column; } .pz-title { white-space: normal; } }

    /* Prize cards */
    .pz-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; position: relative; z-index: 2; align-items: stretch; }
    .pz-card {
      position: relative; border-radius: 3px; overflow: hidden;
      transition: transform .45s cubic-bezier(.34,1.56,.64,1);
      will-change: transform; isolation: isolate;
    }
    .pz-card:hover { transform: translateY(-12px) scale(1.025); }
    /* Shell (border + bg) */
    .pz-shell {
      position: absolute; inset: 0; z-index: 0;
      background: var(--pzb, rgba(255,255,255,.04));
      border: 1px solid var(--pzbo, rgba(255,255,255,.1));
      border-radius: 3px;
      transition: border-color .35s;
    }
    .pz-card:hover .pz-shell { border-color: var(--pzac); }
    /* Radial glow inside card */
    .pz-glow {
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background: radial-gradient(ellipse 90% 55% at 50% 0%, var(--pzgc, rgba(217,70,239,.1)) 0%, transparent 72%);
      border-radius: 3px;
    }
    /* Top accent line */
    .pz-card::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 3;
      background: var(--pzac, var(--fuchsia));
      transform: scaleX(0); transform-origin: left;
      transition: transform .45s cubic-bezier(.4,0,.2,1);
    }
    .pz-card:hover::before { transform: scaleX(1); }
    /* Scan-line shimmer on hover */
    .pz-card::after {
      content: ''; position: absolute; top: -100%; left: 0; right: 0; height: 40%; z-index: 4;
      background: linear-gradient(to bottom, transparent, rgba(255,255,255,.03), transparent);
      transition: top .5s ease;
      pointer-events: none;
    }
    .pz-card:hover::after { top: 120%; }

    /* Card image area */
    .pz-img {
      position: relative; overflow: hidden; aspect-ratio: 16/9;
      background: var(--pzib, rgba(217,70,239,.08));
    }
    .pz-img img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transition: transform .5s cubic-bezier(.4,0,.2,1);
    }
    .pz-img img[src=""], .pz-img img:not([src]) { display: none; }
    .pz-card:hover .pz-img img { transform: scale(1.02); }
    /* Gradient fallbacks when no image */
    .pz-fortnite .pz-img { background: linear-gradient(145deg, #001e3c 0%, #004d80 55%, #0ea5e9 100%); }
    .pz-kpop-c   .pz-img { background: linear-gradient(145deg, #1a002e 0%, #4a0080 55%, #d946ef 100%); }
    .pz-gaming   .pz-img { background: linear-gradient(145deg, #001428 0%, #002a5c 55%, #0ea5e9 100%); }

    .pz-kpop-c .pz-img img  { object-position: center 15%; }
    .pz-gaming  .pz-img img  { object-position: center 20%; }
    .pz-mystery  .pz-img { background: linear-gradient(145deg, #0a0118 0%, #1e0540 55%, rgba(217,70,239,.4) 100%); }
    .pz-mystery  .pz-img img { object-position: center 15%; }
    .pz-fortnite .pz-img img { object-position: right top; }

    .pz-body { position: relative; z-index: 1; padding: 1.2rem 1.4rem 1.4rem; display: flex; flex-direction: column; gap: .75rem; min-height: 0; }

    .pz-cat { font-size: .54rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.25); display: flex; align-items: center; gap: .5rem; }
    .pz-cat::before { content: ''; width: 14px; height: 1px; background: rgba(255,255,255,.18); }
    .pz-ico {
      width: 80px; height: 80px; border-radius: 50%; flex-shrink: 0;
      background: var(--pzib, rgba(217,70,239,.1));
      display: flex; align-items: center; justify-content: center;
      font-size: 2.4rem; position: relative;
      box-shadow:
        0 0 0 1px var(--pzibb, rgba(217,70,239,.35)),
        0 0 0 5px rgba(3,2,8,.7),
        0 0 0 7px var(--pzib, rgba(217,70,239,.1)),
        0 0 32px var(--pzgc, rgba(217,70,239,.25));
      transition: box-shadow .4s, transform .4s cubic-bezier(.34,1.56,.64,1);
    }
    .pz-card:hover .pz-ico {
      transform: scale(1.1);
      box-shadow:
        0 0 0 1px var(--pzibb),
        0 0 0 5px rgba(3,2,8,.7),
        0 0 0 12px var(--pzib),
        0 0 52px var(--pzgc);
    }
    .pz-rank {
      display: inline-block; width: fit-content;
      font-size: .55rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
      padding: .22rem .65rem;
      background: var(--pzrb, rgba(217,70,239,.1));
      border: 1px solid var(--pzrbo, rgba(217,70,239,.28));
      color: var(--pzac, var(--fuchsia));
    }
    .pz-name { font-family: var(--font); font-size: 1.1rem; font-weight: 800; color: #fff; letter-spacing: -.01em; line-height: 1.2; }
    .pz-list { list-style: none; display: flex; flex-direction: column; gap: .48rem; flex: 1; }
    .pz-list li { font-size: .78rem; color: rgba(255,255,255,.5); line-height: 1.38; display: flex; align-items: flex-start; gap: .48rem; }
    .pz-list li::before { content: '—'; color: var(--pzac, var(--fuchsia)); font-weight: 700; flex-shrink: 0; }

    /* Dual-tier layout (PIU unified) */
    .pz-tiers { display: flex; gap: 1.5rem; flex: 1; }
    .pz-tier   { display: flex; flex-direction: column; gap: .75rem; flex: 1; }
    .pz-tier-sep { width: 1px; background: rgba(255,255,255,.08); align-self: stretch; flex-shrink: 0; }
    .pz-tier-tag {
      display: inline-block; width: fit-content;
      font-size: .52rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
      padding: .2rem .6rem;
      background: var(--pzrb, rgba(14,165,233,.1));
      border: 1px solid var(--pzrbo, rgba(14,165,233,.28));
      color: var(--pzac, #0ea5e9);
    }
    @media (max-width: 640px) { .pz-tiers { flex-direction: column; } .pz-tier-sep { width: 100%; height: 1px; align-self: auto; } }

    /* Card themes */
    .pz-gaming {
      --pzac: #0ea5e9; --pzbo: rgba(14,165,233,.15); --pzgc: rgba(14,165,233,.1);
      --pzib: rgba(14,165,233,.08); --pzibb: rgba(14,165,233,.22);
      --pzrb: rgba(14,165,233,.1); --pzrbo: rgba(14,165,233,.28);
    }
    .pz-kpop-c {
      --pzac: #d946ef; --pzbo: rgba(217,70,239,.15); --pzgc: rgba(217,70,239,.1);
      --pzib: rgba(217,70,239,.08); --pzibb: rgba(217,70,239,.22);
      --pzrb: rgba(217,70,239,.1); --pzrbo: rgba(217,70,239,.28);
    }
    .pz-fortnite {
      --pzac: #00b4ff; --pzbo: rgba(0,180,255,.15); --pzgc: rgba(0,180,255,.1);
      --pzib: rgba(0,180,255,.08); --pzibb: rgba(0,180,255,.22);
      --pzrb: rgba(0,180,255,.1); --pzrbo: rgba(0,180,255,.28);
    }
    .pz-mystery {
      --pzac: #d946ef; --pzbo: rgba(217,70,239,.2); --pzgc: rgba(217,70,239,.14);
      --pzib: rgba(217,70,239,.1); --pzibb: rgba(217,70,239,.32);
      --pzrb: rgba(217,70,239,.12); --pzrbo: rgba(217,70,239,.32);
    }
    .pz-mystery .pz-body { align-items: center; text-align: center; }
    .pz-mystery .pz-ico  { margin: 0 auto; }
    .pz-mystery .pz-cat  { justify-content: center; }
    .pz-mystery .pz-cat::before { display: none; }
    .myst-lock {
      display: block;
      animation: mPulse 3s ease-in-out infinite;
      filter: drop-shadow(0 0 12px rgba(217,70,239,.8));
    }
    @keyframes mPulse {
      0%,100% { transform: scale(1); filter: drop-shadow(0 0 10px rgba(217,70,239,.6)); }
      50%      { transform: scale(1.14); filter: drop-shadow(0 0 24px rgba(217,70,239,1)); }
    }
    .pz-mystery-hint { font-size: .79rem; color: rgba(255,255,255,.45); line-height: 1.58; }
    .pz-mystery-hint strong { color: #fff; font-weight: 700; }
    .pz-bts-badge {
      display: flex; align-items: center; justify-content: center; gap: .4rem; width: 100%;
      background: rgba(217,70,239,.08); border: 1px solid rgba(217,70,239,.28);
      padding: .38rem .7rem; font-size: .57rem; font-weight: 700;
      letter-spacing: .14em; text-transform: uppercase; color: var(--fuchsia);
    }
    .pz-mystery-date { font-size: .54rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.2); }

    @media (max-width: 1024px) { .pz-grid { grid-template-columns: repeat(2,1fr); } }
    @media (max-width: 560px)  { .pz-grid { grid-template-columns: 1fr; } .act-slide-title { letter-spacing: .02em; } }

    /* ── PRIZES — galería horizontal draggable ───────────── */
    .pr-section {
      background: #030208; padding: 5rem 0 6rem; overflow: hidden;
    }
    .pr-head { margin-bottom: 3rem; }
    .pr-kicker {
      font-size: .6rem; letter-spacing: .22em; text-transform: uppercase;
      color: var(--fuchsia); margin-bottom: .9rem;
    }
    .pr-title {
      font-family: var(--font); font-size: clamp(2.4rem, 6vw, 5rem);
      font-weight: 900; text-transform: uppercase; letter-spacing: .04em;
      color: #fff; line-height: .92;
    }
    .pr-title em {
      font-style: normal;
      background: linear-gradient(90deg, var(--fuchsia), #f472b6, var(--purple));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }

    /* Track */
    .pr-track-wrap { overflow: hidden; }
    .pr-track {
      display: flex; gap: 6px;
      overflow-x: auto; scroll-snap-type: x mandatory;
      cursor: grab; user-select: none;
      padding: 0 calc(50vw - 15vw * 2);
      scrollbar-width: none;
    }
    .pr-track::-webkit-scrollbar { display: none; }

    /* Card */
    .pr-card {
      flex: 0 0 30vw; scroll-snap-align: start;
      display: flex; flex-direction: column;
      min-width: 280px; max-width: 520px;
    }
    .pr-card-tall .pr-visual { aspect-ratio: 9/12; }

    /* Visual area */
    .pr-visual {
      position: relative; aspect-ratio: 4/3;
      overflow: hidden; border-radius: 4px;
    }
    .pr-vis-emoji {
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      font-size: clamp(4rem, 8vw, 7rem); z-index: 1;
      transition: transform .5s cubic-bezier(.34,1.56,.64,1);
    }
    .pr-card:hover .pr-vis-emoji { transform: scale(1.15); }
    .pr-vis-overlay {
      position: absolute; inset: 0; z-index: 2;
      background: rgba(3,2,8,.15);
      transition: background .35s;
    }
    .pr-card:hover .pr-vis-overlay { background: rgba(3,2,8,0); }

    /* Gradient backgrounds */
    .pr-vis-piu-a {
      background: radial-gradient(circle at 65% 35%, #f472b6 0%, #d946ef 35%, #7c3aed 70%, #030208 100%);
    }
    .pr-vis-piu-b {
      background: radial-gradient(circle at 35% 65%, #d946ef 0%, #7c3aed 45%, #1e0a3c 80%, #030208 100%);
    }
    .pr-vis-kpop {
      background: radial-gradient(circle at 50% 30%, #a78bfa 0%, #7c3aed 40%, #2e1065 80%, #030208 100%);
    }
    .pr-vis-myst {
      background:
        radial-gradient(circle at 50% 50%, rgba(217,70,239,.35) 0%, transparent 55%),
        linear-gradient(160deg, #0d0520, #030208);
    }
    .pr-vis-lock { animation: mPulse 3s ease-in-out infinite; }

    /* Info below card */
    .pr-info { padding: 1.1rem .1rem .5rem; }
    .pr-info-cat {
      font-size: .58rem; letter-spacing: .18em; text-transform: uppercase;
      color: rgba(255,255,255,.35); margin-bottom: .3rem;
    }
    .pr-info-name {
      font-size: clamp(1rem, 2vw, 1.3rem); font-weight: 800;
      color: #fff; letter-spacing: -.01em; line-height: 1.2; margin-bottom: .65rem;
    }
    .pr-info-list {
      list-style: none; padding: 0; margin: 0;
      display: flex; flex-direction: column; gap: .28rem;
    }
    .pr-info-list li {
      font-size: .78rem; color: rgba(255,255,255,.42);
      padding-left: .9rem; position: relative;
    }
    .pr-info-list li::before { content: '—'; position: absolute; left: 0; color: rgba(255,255,255,.18); }
    .pr-info-hint { font-size: .78rem; color: rgba(255,255,255,.42); line-height: 1.55; }
    .pr-info-hint strong { color: rgba(255,255,255,.7); }

    @media (max-width: 640px) {
      .pr-card { flex: 0 0 78vw; }
      .pr-track { padding: 0 1.5rem; }
    }

    /* ── AWARDS — nueva propuesta ─────────────────────────── */
    .aw-section {
      position: relative; background: #030208;
      padding: 6rem 0 5.5rem; overflow: hidden;
    }
    .aw-bg {
      position: absolute; inset: 0; pointer-events: none;
      background:
        radial-gradient(ellipse 70% 55% at 20% 30%, rgba(217,70,239,.06), transparent 65%),
        radial-gradient(ellipse 50% 40% at 80% 70%, rgba(124,58,237,.07), transparent 60%);
    }
    .aw-head { text-align: center; margin-bottom: 3.5rem; position: relative; z-index: 2; }
    .aw-kicker {
      font-size: .6rem; letter-spacing: .22em; text-transform: uppercase;
      color: var(--fuchsia); margin-bottom: 1rem;
    }
    .aw-title {
      font-family: var(--font); font-size: clamp(2.6rem, 7vw, 5.2rem);
      font-weight: 900; text-transform: uppercase; letter-spacing: .04em;
      color: #fff; line-height: .94; margin-bottom: .6rem;
    }
    .aw-title em {
      font-style: normal;
      background: linear-gradient(90deg, var(--fuchsia), #f472b6, var(--purple));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }
    .aw-sub { font-size: .9rem; color: rgba(255,255,255,.35); }

    /* Grid */
    .aw-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 1.25rem; position: relative; z-index: 2;
    }
    @media (max-width: 860px)  { .aw-grid { grid-template-columns: 1fr; } }

    /* Card base */
    .aw-card {
      border-radius: .75rem; overflow: hidden;
      background: rgba(255,255,255,.03);
      border: 1px solid rgba(255,255,255,.07);
      transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
    }
    .aw-card:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(0,0,0,.35); }

    /* Colored top bar */
    .aw-top-bar { height: 3px; width: 100%; }
    .aw-piu  .aw-top-bar { background: linear-gradient(90deg, var(--fuchsia), #f472b6); }
    .aw-kp   .aw-top-bar { background: linear-gradient(90deg, var(--purple), #a78bfa); }
    .aw-myst .aw-top-bar { background: linear-gradient(90deg, var(--fuchsia), var(--purple)); }

    .aw-card-body { padding: 1.75rem; display: flex; flex-direction: column; gap: 1rem; height: 100%; }

    /* Zone row */
    .aw-zone-row { display: flex; align-items: center; gap: .6rem; }
    .aw-zone-ico  { font-size: 1.5rem; line-height: 1; }
    .aw-zone-name {
      font-size: .62rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
    }
    .aw-piu  .aw-zone-name { color: var(--fuchsia); }
    .aw-kp   .aw-zone-name { color: #a78bfa; }
    .aw-myst .aw-zone-name { color: rgba(255,255,255,.4); }

    .aw-heading {
      font-size: 1rem; font-weight: 800; color: #fff; line-height: 1.25;
    }

    /* Tier blocks (PIU) */
    .aw-tier-block { display: flex; flex-direction: column; gap: .4rem; }
    .aw-tier-label {
      font-size: .72rem; font-weight: 700; color: var(--fuchsia);
      letter-spacing: .08em;
    }
    .aw-divider { height: 1px; background: rgba(255,255,255,.07); margin: .15rem 0; }

    /* Items list */
    .aw-items { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .35rem; }
    .aw-items li {
      font-size: .8rem; color: rgba(255,255,255,.48);
      padding-left: 1rem; position: relative; line-height: 1.4;
    }
    .aw-items li::before { content: '—'; position: absolute; left: 0; color: rgba(255,255,255,.18); }

    /* Mystery card extras */
    .aw-myst-ico { animation: mPulse 3s ease-in-out infinite; display: inline-block; }
    .aw-myst-hint { font-size: .82rem; color: rgba(255,255,255,.45); line-height: 1.6; }
    .aw-myst-hint strong { color: #fff; font-weight: 700; }
    .aw-myst-badge {
      display: inline-block; margin-top: auto;
      background: rgba(217,70,239,.08); border: 1px solid rgba(217,70,239,.25);
      padding: .35rem .9rem; border-radius: 99px;
      font-size: .65rem; font-weight: 700; letter-spacing: .12em;
      text-transform: uppercase; color: var(--fuchsia);
    }


    /* CROSS-BROWSER: Safari backdrop-filter fallback ─── */
    @supports not (backdrop-filter: blur(1px)) {
      .gio-info-panel { background: rgba(3,8,16,.96); }
      #nav.solid { background: rgba(5,5,8,.97); }
      #mobile-nav { background: rgba(5,5,8,.99); }
      .p-left { background: rgba(5,5,8,.72); }
      .nav-drop { background: rgba(5,5,8,.99); }
    }

    /* ── CROSS-BROWSER: Firefox scrollbar ─── */
    html { scrollbar-width: thin; scrollbar-color: var(--fuchsia) rgba(255,255,255,.3); }

    /* ── TOUCH DEVICES: restore native cursor, hide custom cursor ─── */
    @media (hover: none) and (pointer: coarse) {
      body, a, button, [role="button"], .tic-btn, .tic-btn-2x1, .nav-burger,
      .ptab, .parrow, .tn-tab, .gio-avatar, .lang-toggle,
      .act-nav-btn, .act-dot { cursor: auto !important; }
      #cursor, #cursor-ring { display: none !important; }
    }

    /* ── SAFE-AREA: nav top padding for iPhone notch ─── */
    #nav { padding-top: max(1.4rem, calc(1rem + env(safe-area-inset-top, 0px))); }

    /* ── CROSS-BROWSER: reduce motion ─── */
    @media (prefers-reduced-motion: reduce) {
      .scroll-bar { animation: none; opacity: .6; }
      *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
    }

    /* ── LOADING SCREEN ──────────────────────────────────── */
    #lyv-loader {
      position: fixed; inset: 0; z-index: 99999;
      /* Match body gradient (boletas section) */
      background:
        linear-gradient(rgba(217,70,239,.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(217,70,239,.07) 1px, transparent 1px),
        linear-gradient(160deg,
          #6bd3fa 0%, #f8f4f5 20%,
          #ffd4f0 44%, #f9f1ff 66%,
          #c3b4ef 88%, #6bd3fa 100%);
      background-size: 32px 32px, 32px 32px, 100% 100%;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      gap: 0;
      transform: translateY(0);
      transition: transform .85s cubic-bezier(.76,0,.24,1);
      will-change: transform;
      overflow: hidden;
    }
    #lyv-loader.ldr-out { transform: translateY(-100%); }

    /* CRT scanlines overlay */
    #lyv-loader::before {
      content: '';
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background: repeating-linear-gradient(
        0deg,
        transparent 0px, transparent 3px,
        rgba(0,0,0,.18) 3px, rgba(0,0,0,.18) 4px
      );
    }

    /* Corner pixel diamonds — Y2K accent */
    #lyv-loader::after {
      content: '';
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background:
        radial-gradient(ellipse 55% 45% at 50% 55%,
          rgba(217,70,239,.22) 0%, rgba(14,165,233,.12) 45%, transparent 72%);
      filter: blur(40px);
    }

    /* ── 8-BIT PIXEL ART EMOJI ───────────────────────────── */
    .ldr-pxl-wrap {
      position: absolute; inset: 0; z-index: 4; pointer-events: none; overflow: visible;
    }
    .ldr-pxl {
      position: absolute; line-height: 0;
      animation: ldrPxlFloat var(--d, 3s) var(--delay, 0s) ease-in-out infinite;
    }
    .ldr-pxl svg, .ldr-pxl img {
      display: block; height: 44px; width: auto;
      image-rendering: pixelated; image-rendering: crisp-edges;
    }
    .ldr-pxl img { image-rendering: auto; height: 44px; width: 44px; }
    @keyframes ldrPxlFloat {
      0%, 100% { transform: translateY(0px)   scale(1);    }
      50%      { transform: translateY(-10px) scale(1.05); }
    }

    /* ── Y2K DECORATIVE ELEMENTS ─────────────────────────── */
    .ldr-y2k {
      position: absolute; inset: 0; z-index: 1; pointer-events: none;
    }
    /* HUD corner brackets */
    .ly-hud {
      position: absolute; width: 28px; height: 28px;
      border-color: rgba(124,58,237,.5); border-style: solid;
      border-width: 2px 0 0 2px; border-radius: 3px 0 0 0;
      filter: drop-shadow(0 0 4px rgba(217,70,239,.6));
    }
    .ly-hud::before { content: ''; position: absolute; width: 6px; height: 1px; background: rgba(217,70,239,.4); top: -1px; left: 6px; }
    .ly-hud::after  { content: ''; position: absolute; width: 1px; height: 6px; background: rgba(217,70,239,.4); left: -1px; top: 6px; }
    .ly-hud-br { border-width: 0 2px 2px 0; border-radius: 0 0 3px 0; }
    .ly-hud-sm { width: 18px; height: 18px; border-color: rgba(14,165,233,.45); }
    /* Floating diamonds */
    .ly-diamond {
      position: absolute; width: 8px; height: 8px;
      background: rgba(124,58,237,.5); transform: rotate(45deg);
      animation: lyDiaBlink var(--d, 2.5s) var(--delay, 0s) ease-in-out infinite;
    }
    .ly-d-fuchsia { background: rgba(217,70,239,.6); box-shadow: 0 0 6px rgba(217,70,239,.5); }
    .ly-d-cyan    { background: rgba(14,165,233,.6);  box-shadow: 0 0 6px rgba(14,165,233,.5); }
    @keyframes lyDiaBlink {
      0%, 100% { opacity: .2; transform: rotate(45deg) scale(.7); }
      50%       { opacity: 1;  transform: rotate(45deg) scale(1.2); }
    }
    /* Scan bars */
    .ly-scanbar {
      position: absolute; display: flex; align-items: center; gap: .4rem;
      opacity: 0;
      animation: lyScanIn var(--d, 2s) var(--delay, 0s) ease-in-out infinite;
    }
    .ly-scanbar::before { content: ''; display: block; width: 30px; height: 1px; background: linear-gradient(90deg, transparent, rgba(217,70,239,.7)); }
    .ly-scanbar span { font-family: var(--font); font-size: .5rem; font-weight: 800; letter-spacing: .2em; color: rgba(217,70,239,.7); }
    @keyframes lyScanIn {
      0%, 100% { opacity: 0; transform: translateX(-6px); }
      30%, 70%  { opacity: 1; transform: translateX(0); }
    }
    /* Crosshair targets */
    .ly-crosshair {
      position: absolute; width: 30px; height: 30px;
      border: 1px solid rgba(14,165,233,.45); border-radius: 50%;
      animation: lyPulse var(--d, 3s) var(--delay, 0s) ease-in-out infinite;
    }
    .ly-crosshair::before { content: ''; position: absolute; width: 1px; height: 8px; background: rgba(14,165,233,.45); left: 50%; top: -4px; transform: translateX(-50%); }
    .ly-crosshair::after  { content: ''; position: absolute; width: 8px; height: 1px; background: rgba(14,165,233,.45); top: 50%; left: -4px; transform: translateY(-50%); }
    .ly-ch-sm { width: 20px; height: 20px; border-color: rgba(217,70,239,.4); }
    .ly-ch-sm::before, .ly-ch-sm::after { background: rgba(217,70,239,.4); }
    @keyframes lyPulse {
      0%, 100% { opacity: .2; transform: scale(.85); }
      50%       { opacity: .8; transform: scale(1.1); }
    }
    /* Status text lines */
    .ly-status {
      position: absolute; font-family: var(--font); font-size: .48rem;
      font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
      color: rgba(124,58,237,.5); white-space: nowrap;
      animation: lyFade 3s 1s ease-in-out infinite;
    }
    @keyframes lyFade {
      0%, 100% { opacity: .3; }
      50%       { opacity: .8; }
    }

    /* Pixel star field */
    .ldr-stars {
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      overflow: hidden;
    }
    .ldr-star {
      position: absolute;
      width: 3px; height: 3px;
      background: rgba(124,58,237,.35);
      image-rendering: pixelated;
      animation: ldrBlink var(--d, 1.4s) var(--delay, 0s) ease-in-out infinite;
    }
    .ldr-star.s-fuchsia { background: var(--fuchsia); width: 4px; height: 4px; }
    .ldr-star.s-cyan    { background: var(--cyan);    width: 4px; height: 4px; }

    @keyframes ldrBlink {
      0%, 100% { opacity: 0;    transform: scale(.6); }
      50%       { opacity: 1;   transform: scale(1.4); }
    }

    /* Atmospheric glow behind brand */
    .ldr-glow {
      position: absolute; width: 600px; height: 400px; z-index: 1;
      background: radial-gradient(ellipse 60% 60% at 50% 50%,
        rgba(217,70,239,.25) 0%, rgba(14,165,233,.14) 50%, transparent 80%);
      filter: blur(55px); pointer-events: none;
    }

    .ldr-inner {
      position: relative; z-index: 2;
      display: flex; flex-direction: column;
      align-items: center; gap: 1.8rem;
    }

    /* LYV MARZ wordmark */
    .ldr-brand {
      font-family: var(--font); font-weight: 900; line-height: 1;
      display: flex; flex-direction: column; align-items: center; gap: .15em;
      opacity: 0; transform: translateY(18px);
      animation: ldrIn .7s cubic-bezier(.22,1,.36,1) .15s forwards;
    }
    .ldr-logo-img {
      width: clamp(180px, 32vw, 280px); height: auto;
      display: block; margin: 0 auto .3rem;
      mix-blend-mode: multiply;
    }
    .ldr-brand .lb-meet {
      font-size: clamp(.75rem, 2vw, 1.1rem); letter-spacing: .22em; font-weight: 700;
      background: linear-gradient(90deg, var(--fuchsia) 0%, var(--pink) 55%, var(--purple) 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    }

    /* Venue block */
    .ldr-venue {
      display: flex; flex-direction: column; align-items: center; gap: .25rem;
      opacity: 0;
      animation: ldrIn .5s cubic-bezier(.22,1,.36,1) .38s forwards;
    }
    .ldr-venue-name {
      font-family: var(--font); font-weight: 800;
      font-size: clamp(.8rem, 2.2vw, 1rem);
      letter-spacing: .14em; text-transform: uppercase;
      color: #1e0a3c;
    }
    .ldr-venue-former {
      font-family: var(--font); font-weight: 600;
      font-size: .6rem; letter-spacing: .16em;
      text-transform: uppercase;
      color: rgba(30,10,60,.38);
    }

    /* Separator */
    .ldr-div {
      width: 40px; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(124,58,237,.3), transparent);
      opacity: 0;
      animation: ldrIn .4s ease .6s forwards;
    }

    /* Sponsor logos strip in loader */
    .ldr-sponsors {
      display: flex; flex-direction: column; align-items: center; gap: .6rem;
      position: relative; z-index: 2;
      opacity: 0;
      animation: ldrIn .6s cubic-bezier(.22,1,.36,1) .7s forwards;
    }
    .ldr-sp-label {
      font-size: .72rem; font-weight: 700; letter-spacing: .18em;
      text-transform: uppercase; color: rgba(30,10,60,.35);
    }
    .ldr-sp-logos {
      display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; justify-content: center;
    }
    .ldr-sp-logo {
      height: 36px; width: auto; max-width: 100px;
      object-fit: contain; opacity: .85;
    }
    .ldr-sp-sq    { width: 38px; height: 38px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
    .ldr-sp-round { border-radius: 50%; }
    .ldr-sp-inv   { /* logos shown as-is on light bg */ }
    .ldr-sp-dark  {
      background: #111; border-radius: 8px;
      padding: 5px 8px; height: auto;
      display: flex; align-items: center; justify-content: center;
    }
    .ldr-sp-dark img { height: 32px; width: auto; object-fit: contain; }

    .ldr-sp-light {
      background: #fff; border-radius: 8px;
      padding: 5px 10px; height: auto;
      display: flex; align-items: center; justify-content: center;
    }
    .ldr-sp-light img { height: 26px; width: auto; object-fit: contain; }
    .ldr-sp-miniso { padding: 4px 8px; }
    .ldr-sp-miniso img { height: 34px; }

    /* Percentage row — 8-bit style, bottom of loader */
    .ldr-pct-row {
      display: flex; align-items: center; gap: .8rem;
      width: min(400px, 70vw);
      z-index: 2;
      opacity: 0;
      animation: ldrIn .5s ease .1s forwards;
      order: -1;
    }
    /* Pixel diamond dot */
    .ldr-pct-dot {
      width: 7px; height: 7px; flex-shrink: 0;
      background: var(--fuchsia);
      clip-path: polygon(50% 0%,100% 50%,50% 100%,0% 50%);
      animation: ldrBlink 1.2s .2s ease-in-out infinite;
    }
    .ldr-pct-num {
      font-family: var(--font); font-size: .78rem; font-weight: 800;
      letter-spacing: .18em; color: var(--fuchsia);
      min-width: 3.5rem; flex-shrink: 0;
      text-shadow: 0 0 8px rgba(217,70,239,.7);
    }
    /* Pixel progress bar — segmented blocks */
    .ldr-pct-line {
      flex: 1; height: 6px;
      background: rgba(124,58,237,.08);
      border: 1px solid rgba(217,70,239,.3);
      overflow: hidden;
      image-rendering: pixelated;
    }
    .ldr-pct-line-fill {
      height: 100%; width: 0%;
      background: linear-gradient(90deg, var(--fuchsia), var(--cyan));
      box-shadow: 0 0 8px rgba(217,70,239,.6);
      transition: width .12s linear;
    }

    @keyframes ldrIn {
      to { opacity: 1; transform: translateY(0); }
    }

    /* ═══ REGLAMENTO ══════════════════════════════════════════════ */
    .rg-section {
      position: relative;
      padding: 7rem 0 8rem;
      overflow: hidden;
    }
    .rg-bg {
      position: absolute; inset: 0;
      background:
        radial-gradient(ellipse 80% 60% at 20% 30%, rgba(124,58,237,.14) 0%, transparent 60%),
        radial-gradient(ellipse 60% 50% at 80% 70%, rgba(217,70,239,.10) 0%, transparent 55%),
        rgba(3,2,8,.85);
    }
    .rg-section .wrap { position: relative; z-index: 1; }

    /* Header */
    .rg-head {
      text-align: center;
      margin-bottom: 3rem;
    }
    .rg-eyebrow {
      display: inline-block;
      font-family: var(--font);
      font-size: .75rem;
      font-weight: 700;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--fuchsia);
      opacity: .85;
      margin-bottom: .85rem;
    }
    .rg-title {
      font-family: var(--font);
      font-size: clamp(2.2rem, 5vw, 4rem);
      font-weight: 900;
      color: #f0eaff;
      line-height: 1.1;
      letter-spacing: -.02em;
    }
    .rg-title em {
      font-style: normal;
      background: linear-gradient(90deg, var(--fuchsia), var(--purple));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    /* Tab bar */
    .rg-tabs {
      display: flex;
      justify-content: center;
      gap: .5rem;
      margin-bottom: 2.8rem;
      flex-wrap: wrap;
    }
    .rg-tab {
      background: rgba(255,255,255,.04);
      border: 1px solid rgba(124,58,237,.25);
      color: rgba(200,180,230,.65);
      font-family: var(--font);
      font-size: .85rem;
      font-weight: 600;
      letter-spacing: .06em;
      padding: .6rem 1.6rem;
      border-radius: 8px;
      cursor: pointer;
      transition: background .2s, border-color .2s, color .2s, box-shadow .2s;
    }
    .rg-tab:hover {
      background: rgba(124,58,237,.14);
      border-color: rgba(124,58,237,.5);
      color: #e8d8ff;
    }
    .rg-tab--active {
      background: rgba(124,58,237,.22);
      border-color: var(--purple);
      color: #f0eaff;
      box-shadow: 0 0 18px rgba(124,58,237,.3);
    }

    /* Panels */
    .rg-panel { display: none; }
    .rg-panel--active { display: block; }

    /* Card grid */
    .rg-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.4rem;
    }
    @media (max-width: 800px) {
      .rg-cards { grid-template-columns: 1fr; }
    }

    /* Individual card */
    .rg-card {
      position: relative;
      background: rgba(10,6,28,.7);
      border: 1px solid rgba(124,58,237,.2);
      border-radius: 16px;
      padding: 2rem 1.8rem 2.4rem;
      overflow: hidden;
      transition: border-color .3s, box-shadow .3s;
    }
    .rg-card:hover {
      border-color: rgba(124,58,237,.5);
      box-shadow: 0 8px 36px rgba(124,58,237,.18);
    }
    .rg-card-label {
      display: inline-block;
      font-family: var(--font);
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--fuchsia);
      margin-bottom: .9rem;
      opacity: .9;
    }
    .rg-card-title {
      font-family: var(--font);
      font-size: 1.25rem;
      font-weight: 800;
      color: #f0eaff;
      margin-bottom: .75rem;
      line-height: 1.2;
    }
    .rg-card-desc {
      font-size: .88rem;
      line-height: 1.65;
      color: rgba(200,180,230,.7);
    }
    /* Large background number */
    .rg-card-num {
      position: absolute;
      bottom: -0.6rem;
      right: 1rem;
      font-family: var(--font);
      font-size: 5rem;
      font-weight: 900;
      color: rgba(124,58,237,.1);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }

    /* Highlight card — big number variant */
    .rg-card--highlight {
      background: linear-gradient(140deg, rgba(124,58,237,.25) 0%, rgba(217,70,239,.12) 100%);
      border-color: rgba(217,70,239,.35);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      min-height: 200px;
    }
    .rg-card--highlight:hover {
      border-color: var(--fuchsia);
      box-shadow: 0 8px 48px rgba(217,70,239,.25);
    }
    .rg-card--highlight .rg-card-label { margin-bottom: 1rem; }
    .rg-card-big {
      font-family: var(--font);
      font-size: clamp(3.5rem, 8vw, 6rem);
      font-weight: 900;
      line-height: 1;
      background: linear-gradient(135deg, #fff 0%, var(--fuchsia) 60%, var(--purple) 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      margin-bottom: .6rem;
    }
    .rg-card-sub {
      font-size: .88rem;
      line-height: 1.55;
      color: rgba(200,180,230,.75);
    }

    /* ═══ BRACKET ════════════════════════════════════════════════ */
    .bk-section {
      position: relative;
      background: #030208;
      padding: 0 0 7rem;
      overflow: hidden;
    }
    .bk-noise {
      position: absolute; inset: 0; z-index: 0; pointer-events: none;
      background:
        radial-gradient(ellipse 70% 50% at 10% 50%, rgba(14,165,233,.07) 0%, transparent 55%),
        radial-gradient(ellipse 50% 45% at 90% 55%, rgba(124,58,237,.07) 0%, transparent 50%),
        radial-gradient(ellipse 40% 30% at 50% 80%, rgba(217,70,239,.05) 0%, transparent 45%);
    }

    /* ── Title bar ── */
    .bk-wrap {
      width: 100%;
      padding: 0 2.5rem;
      box-sizing: border-box;
    }

    .bk-bracket {
      margin: 0 -2.5rem;
      padding: 0 2.5rem;
    }

    .bk-titlebar {
      display: flex; align-items: center; justify-content: space-between;
      flex-wrap: wrap; gap: 1.5rem;
      padding: 4rem 0 2.8rem;
      border-bottom: 1px solid rgba(14,165,233,.12);
      margin-bottom: 3rem;
      position: relative; z-index: 1;
    }
    .bk-titlebar-left { display: flex; align-items: center; gap: 1.2rem; }
    .bk-fn-badge {
      width: 52px; height: 52px; border-radius: 10px; flex-shrink: 0;
      background: linear-gradient(135deg, rgba(0,180,255,.15), rgba(124,58,237,.25));
      border: 1px solid rgba(0,180,255,.28);
      display: flex; align-items: center; justify-content: center;
    }
    .bk-fn-super {
      font-size: .58rem; letter-spacing: .2em; text-transform: uppercase;
      color: rgba(14,165,233,.65); margin-bottom: .28rem;
    }
    .bk-fn-title {
      font-family: var(--font);
      font-size: clamp(1.4rem, 3.5vw, 2.6rem);
      font-weight: 900; letter-spacing: .06em; text-transform: uppercase;
      color: #fff; line-height: 1;
    }
    .bk-titlebar-right { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
    .bk-chip {
      font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
      padding: .3rem .85rem;
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.1);
      color: rgba(255,255,255,.5);
      border-radius: 4px;
    }
    .bk-chip--cyan { background: rgba(14,165,233,.1); border-color: rgba(14,165,233,.3); color: #0ea5e9; }
    .bk-chip--gold { background: rgba(217,119,6,.1); border-color: rgba(217,119,6,.3); color: #d97706; }

    /* ── Bracket layout ── */
    .bk-bracket {
      display: flex; align-items: stretch; gap: 0;
      position: relative; z-index: 1;
      overflow-x: auto;
    }

    /* Stage columns */
    .bk-col {
      flex: 1; min-width: 140px; flex-shrink: 0;
      display: flex; flex-direction: column; gap: .75rem;
    }
    .bk-col-hd {
      display: flex; flex-direction: column; gap: .2rem;
      padding-bottom: .75rem;
      border-bottom: 2px solid var(--bk-accent, rgba(255,255,255,.1));
      margin-bottom: .4rem;
    }
    .bk-col-name {
      font-family: var(--font); font-size: .64rem; font-weight: 800;
      letter-spacing: .18em; text-transform: uppercase;
      color: var(--bk-accent, rgba(255,255,255,.35));
    }
    .bk-col-time {
      font-size: .66rem; font-weight: 500;
      color: rgba(255,255,255,.28);
    }

    /* Stage accent tokens */
    .bk-col--entry  { --bk-accent: rgba(255,255,255,.28); }
    .bk-col--clasif { --bk-accent: #0ea5e9; }
    .bk-col--clasif2{ --bk-accent: #7c3aed; }
    .bk-col--final  { --bk-accent: #d946ef; }

    /* Match boxes */
    .bk-matches {
      display: flex; flex-direction: column; gap: .5rem;
      flex: 1; justify-content: center;
    }
    /* 4 heats en 2x2 */
    .bk-matches--grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: .5rem;
      align-items: start; flex: 1;
    }
    .bk-match {
      background: rgba(255,255,255,.025);
      border: 1px solid rgba(255,255,255,.07);
      border-left: 3px solid var(--bk-accent, rgba(255,255,255,.15));
      border-radius: 0 6px 6px 0;
      transition: background .25s, box-shadow .25s;
    }
    .bk-match:hover {
      background: rgba(255,255,255,.05);
      box-shadow: 0 2px 20px rgba(0,0,0,.3);
    }
    .bk-match-inner {
      padding: .75rem .9rem;
      display: flex; flex-direction: column; gap: .22rem;
    }
    .bk-match-tag {
      font-size: .48rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
      color: var(--bk-accent, rgba(255,255,255,.35));
    }
    .bk-match-title {
      font-family: var(--font); font-size: .84rem; font-weight: 700;
      color: #eee8ff; line-height: 1.2;
    }
    .bk-match-info {
      font-size: .65rem; line-height: 1.5;
      color: rgba(255,255,255,.32);
    }

    /* Gran Final — partida decisiva */
    .bk-match--champion {
      background: linear-gradient(135deg, rgba(217,70,239,.12) 0%, rgba(124,58,237,.08) 100%);
      border-color: rgba(217,70,239,.3);
      border-left-color: #d946ef;
      box-shadow: 0 0 40px rgba(217,70,239,.12), inset 0 0 30px rgba(217,70,239,.04);
      flex: 1;
    }
    .bk-match--champion .bk-match-tag  { color: #d946ef; letter-spacing: .12em; }
    .bk-match--champion .bk-match-title { font-size: 1rem; color: #fff; }
    .bk-match--champion .bk-match-info  { color: rgba(217,70,239,.7); }

    /* Connectors */
    .bk-conn {
      width: 28px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      position: relative;
    }
    .bk-conn span {
      display: block; width: 100%; height: 1px;
      background: linear-gradient(90deg, rgba(14,165,233,.25), rgba(124,58,237,.25));
    }
    .bk-conn::after {
      content: '›';
      position: absolute; right: 0;
      font-size: 1.1rem; line-height: 1;
      color: rgba(124,58,237,.45);
    }
    .bk-conn--final span {
      background: linear-gradient(90deg, rgba(124,58,237,.3), rgba(217,70,239,.45));
    }
    .bk-conn--final::after { color: rgba(217,70,239,.7); }

    @media (max-width: 900px) {
      .bk-conn { width: 18px; }
      .bk-conn::after { font-size: .9rem; }
    }
    @media (max-width: 640px) {
      .bk-matches--grid { grid-template-columns: 1fr; }
    }

        /* ── Footer info bar ── */
    .bk-footer {
      display: flex; flex-wrap: wrap; gap: 1px;
      margin-top: 3rem;
      border: 1px solid rgba(255,255,255,.07);
      border-radius: 10px; overflow: hidden;
      position: relative; z-index: 1;
    }
    .bk-info {
      flex: 1; min-width: 130px;
      padding: 1rem 1.4rem;
      background: rgba(255,255,255,.025);
      border-right: 1px solid rgba(255,255,255,.05);
      display: flex; flex-direction: column; gap: .22rem;
    }
    .bk-info:last-child { border-right: none; }
    .bk-info-label {
      font-size: .52rem; letter-spacing: .15em; text-transform: uppercase;
      color: rgba(255,255,255,.25);
    }
    .bk-info-val {
      font-family: var(--font); font-size: .9rem; font-weight: 700;
      color: #eee8ff;
    }


/* ════════════════════════════════════════════════════════════════
   @media print — PDF export
   ════════════════════════════════════════════════════════════════ */
@media print {

  @page { size: A4 portrait; margin: 0; }

  /* Forzar fondos e imágenes en la impresión */
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    animation-duration: 0.001ms !important;
    animation-delay: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }

  /* ── Ocultar chrome interactivo y decoración ─────────────── */
  #lyv-loader,
  #cursor, #cursor-ring,
  #noise,
  #page-y2k,
  #scroll-progress,
  #float-cta,
  #back-top,
  .scroll-right,
  #scrollHint,
  .hero-scroll-hint,
  #mobile-nav,
  nav#nav,
  .pillar-arrows, .pillar-tabs,
  .h-orb,
  #hero-canvas,
  .hero-bg, .hero-grid, .hero-vignette, .hero-video-overlay,
  .p-glow, .p-bg-num, .p-cd,
  .hero-cd,
  .tn-bg, .tn-bg-grid,
  .tn-socials,
  .bk-noise,
  #test-pay-bar { display: none !important; }

  /* ── VISIBILIDAD: elementos con opacity:0 en CSS (estado inicial)
     GSAP anima estos a opacity:1 en scroll, pero en print no hay
     scroll, así que los forzamos visibles directamente.            */
  .hero-eyebrow,
  .hero-sub,
  .hero-cta,
  .hero-guest-chip,
  .hero-manifesto,
  .pillar-panel,
  .spot,
  .tl-row,
  .tic-card { opacity: 1 !important; }

  /* Imágenes de fondo (JS añade .loaded) */
  .p-img-bg img { opacity: .85 !important; }

  /* Elementos con fromTo opacity:0 inline (GSAP) */
  #sp1, #sp2,
  .sched-head, .tic-head,
  .ft-brand, .ft-nav, .ft-social { opacity: 1 !important; }

  /* ── TRANSFORMS: solo los elementos que GSAP/CSS desplazan ──
     (no se usa * { transform:none } para no romper los translate
     de posicionamiento como .lyv-y2k, .act-ghost, etc.)           */

  /* CSS pone .line-inner a translateY(110%) para el reveal */
  .hero-title .line-inner { transform: translateY(0) !important; }

  /* GSAP seteó y:20 inline en estos antes de animar */
  .hero-sub,
  .hero-guest-chip,
  .hero-cta { transform: translateY(0) !important; }

  /* Animaciones de secciones con offset inicial en CSS/GSAP */
  .spot         { transform: translateY(0) !important; }
  .tl-row       { transform: translateX(0) !important; }
  .tic-card     { transform: translateY(0) !important; }
  #sp1, #sp2,
  .sched-head, .tic-head,
  .ft-brand, .ft-nav, .ft-social { transform: translateY(0) !important; }

  /* ── Pillars carousel → paneles apilados ─────────────────── */
  #pillars {
    position: static !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .pillars-pin {
    position: static !important;
    height: auto !important;
  }

  .pillar-panel {
    position: relative !important;
    height: 100vh !important;
    min-height: 600px !important;
    overflow: hidden !important;
    break-before: page;
    break-inside: avoid;
  }

  /* ── Saltos de página por sección ────────────────────────── */
  #torneo-section,
  #bracket,
  #lyv-bio,
  #artists,
  #premios,
  #sponsors,
  #venue,
  #tickets,
  footer { break-before: page; }

  /* ── Layout general ──────────────────────────────────────── */
  html { scroll-padding-top: 0 !important; }

  body {
    background: #050508 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .wrap {
    max-width: 100% !important;
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }

  #venue   { background: #03060e !important; }
  #tickets { background: #050508 !important; }

  .tic-card, .tn-rule-card, .prize-card,
  .bk-match, .sponsor-card { break-inside: avoid; }
}


/* ── Lyv Bio — segunda foto ──────────────────────────────────── */
.lyv-photo2-wrap {
  display: flex;
  justify-content: center;
  margin-top: 3.5rem;
  padding: 0 1rem;
}

.lyv-photo2-frame {
  position: relative;
  width: min(420px, 100%);
  border-radius: 4px;
  overflow: hidden;
}

.lyv-photo2-frame img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  object-fit: cover;
}

@media (min-width: 900px) {
  .lyv-photo2-frame {
    width: 380px;
  }
}

/* ── K-POP ZONE ─────────────────────────────────────────────── */
#kpop-zone {
  position: relative; background: #03060e;
  overflow: hidden; display: flex; flex-direction: column;
}
.kz-bg {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 60% 80% at 75% 55%, rgba(217,70,239,.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 20% 80%, rgba(147,51,234,.1) 0%, transparent 55%),
    linear-gradient(180deg, #03060e 0%, #07030e 100%);
}
.kz-bg-grid {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(217,70,239,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(217,70,239,.025) 1px, transparent 1px);
  background-size: 64px 64px;
}
.kz-hero {
  display: grid; grid-template-columns: 1fr 28%;
  align-items: stretch; gap: 0; width: 100%;
  padding: 3rem 0 2rem clamp(2rem, 4vw, 5rem);
  position: relative; z-index: 5;
}
.kz-hero-left {
  padding-right: clamp(1.5rem, 3vw, 3rem); padding-bottom: 1.5rem;
  display: flex; flex-direction: column; justify-content: center; gap: 0;
}
.kz-collab {
  display: inline-flex; align-items: center; gap: .6rem;
  background: rgba(217,70,239,.07); border: 1px solid rgba(217,70,239,.2);
  border-radius: 4px; padding: .5rem 1.1rem;
  margin-bottom: 1.1rem; width: fit-content;
}
.kz-collab-brand { font-family: var(--font); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.kz-collab-x { font-size: .7rem; font-weight: 700; color: rgba(255,255,255,.25); }
.kz-col-lyv { color: var(--fuchsia); }
.kz-col-kp  { color: rgba(255,255,255,.8); }
.kz-eyebrow {
  font-size: .63rem; font-weight: 700; letter-spacing: .32em; text-transform: uppercase;
  color: var(--fuchsia); display: block; margin-bottom: .8rem;
}
.kz-title {
  font-family: var(--font); font-size: clamp(2.2rem, 4.5vw, 4.5rem);
  font-weight: 900; font-style: italic; line-height: .92; letter-spacing: -.04em;
  color: #fff; margin: 0 0 1rem; white-space: nowrap;
  text-shadow: 0 0 80px rgba(217,70,239,.25), 0 4px 30px rgba(0,0,0,.9);
}
.kz-desc { font-size: .9rem; color: rgba(255,255,255,.65); line-height: 1.82; margin-bottom: 1.6rem; }
.kz-desc strong { color: var(--fuchsia); font-weight: 700; }
.kz-cta {
  display: inline-flex; align-items: center; gap: .6rem; align-self: flex-start;
  background: var(--fuchsia); color: #fff;
  padding: .85rem 2rem; font-family: var(--font);
  font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none; border-radius: 2px;
  transition: opacity .2s, transform .2s;
}
.kz-cta:hover { opacity: .88; transform: translateY(-2px); }
.kz-visual {
  position: relative; overflow: hidden; align-self: stretch; min-height: 260px;
  background:
    radial-gradient(ellipse 80% 60% at 65% 40%, rgba(217,70,239,.18) 0%, transparent 60%),
    linear-gradient(135deg, #03060e 0%, #0a0318 50%, #04080f 100%);
}
.kz-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  opacity: .38;
}
.kz-visual-badge {
  position: absolute; bottom: 1.5rem; left: 1.5rem;
  background: rgba(217,70,239,.12); border: 1px solid rgba(217,70,239,.28);
  border-radius: 4px; padding: .55rem 1.1rem;
}
.kz-vb-title {
  font-family: var(--font); font-size: .78rem; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase; color: #fff;
}
.kz-vb-sub { font-size: .58rem; color: rgba(255,255,255,.38); letter-spacing: .06em; margin-top: .15rem; }

/* Activities detail — similar a tn-details */
.kz-details {
  display: grid; grid-template-columns: 1fr 1px 1fr;
  position: relative; z-index: 5;
  border-top: 1px solid rgba(217,70,239,.1);
  padding: 2.5rem clamp(2rem, 4vw, 5rem) 3.5rem;
}
.kz-details-sep { background: rgba(217,70,239,.1); }
.kz-act { padding: 0 2.5rem; }
.kz-act:first-child { padding-left: 0; }
.kz-act:last-child  { padding-right: 0; }
.kz-act-header { margin-bottom: .9rem; }
.kz-act-eyebrow {
  display: block; font-size: .58rem; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; color: var(--fuchsia); margin-bottom: .4rem;
}
.kz-act-name {
  font-family: var(--font); font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 900; letter-spacing: -.02em; color: #fff; line-height: 1;
}
.kz-act-desc { font-size: .82rem; color: rgba(255,255,255,.45); line-height: 1.7; margin-bottom: 1.3rem; }
.kz-act-table { display: flex; flex-direction: column; }
.kz-act-row {
  display: flex; align-items: baseline; gap: 1rem;
  padding: .65rem 0; border-bottom: 1px solid rgba(255,255,255,.05);
}
.kz-act-row:last-child { border-bottom: none; }
.kz-act-lbl {
  font-size: .58rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,255,255,.28); flex-shrink: 0; width: 72px;
}
.kz-act-val { font-size: .8rem; color: rgba(255,255,255,.52); line-height: 1.4; }
.kz-val-hl  { color: #fff; font-weight: 600; }

@media (max-width: 860px) {
  .kz-hero { grid-template-columns: 1fr; padding-right: clamp(2rem, 4vw, 5rem); }
  .kz-visual { min-height: 200px; }
  .kz-details { grid-template-columns: 1fr; }
  .kz-details-sep { height: 1px; }
  .kz-act { padding: 1.5rem 0; }
}

/* ── KARAOKE COREANO ─────────────────────────────────────────── */
#karaoke { position: relative; overflow: hidden; }
.kk-bg-overlay {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 55% 40% at 80% 60%, rgba(217,70,239,.06), transparent 60%),
    radial-gradient(ellipse 45% 35% at 20% 40%, rgba(124,58,237,.04), transparent 55%);
}
.kk-watermark {
  position: absolute; right: -4%; top: 50%; transform: translateY(-50%);
  font-family: var(--font); font-size: clamp(8rem, 22vw, 18rem);
  font-weight: 900; letter-spacing: -.04em;
  color: rgba(26,10,46,.055); line-height: 1;
  pointer-events: none; user-select: none; z-index: 0;
}
.kk-bio-inner {
  padding: clamp(3rem, 6vw, 6rem) clamp(1.5rem, 4vw, 4rem);
  max-width: 1240px; margin: 0 auto; position: relative; z-index: 2;
}
.kk-top-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem); align-items: stretch;
}
@media (max-width: 860px) {
  .kk-top-row { grid-template-columns: 1fr; }
  .kk-watermark { display: none; }
}
.kk-heading { display: flex; flex-direction: column; gap: .3rem; margin-bottom: 1.4rem; }
.kk-heading .sub {
  font-size: .75rem; font-weight: 600; letter-spacing: .2em;
  text-transform: uppercase; color: var(--muted); display: block;
}
.kk-name {
  font-family: var(--font); font-size: clamp(2.4rem, 6vw, 4.5rem);
  font-weight: 900; letter-spacing: -.03em; line-height: .9;
  background: linear-gradient(135deg, var(--fuchsia) 0%, var(--purple) 60%, #a78bfa 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.kk-bio-text { font-size: .85rem; color: var(--muted); line-height: 1.75; margin-bottom: 1.6rem; }
.kk-bio-text strong { color: var(--fuchsia); font-weight: 700; }
.kk-feat-rows {
  display: flex; flex-direction: column;
  border: 1px solid rgba(124,58,237,.18); border-radius: 6px; overflow: hidden;
  margin-bottom: 1.8rem;
}
.kk-feat-row {
  display: flex; align-items: center; gap: 1.2rem;
  padding: .85rem 1.1rem; border-bottom: 1px solid rgba(124,58,237,.1);
  background: rgba(255,255,255,.3);
}
.kk-feat-row:last-child { border-bottom: none; }
.kk-feat-lbl {
  font-family: var(--font); font-size: .62rem; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; color: var(--fuchsia); flex-shrink: 0; width: 110px;
}
.kk-feat-desc {
  font-family: var(--font); font-size: .78rem; font-weight: 500;
  color: var(--muted); line-height: 1.45; letter-spacing: .01em;
}

/* Hangul card visual */
.kk-frame-wrap { position: relative; aspect-ratio: 2/3; }
.kk-card-photo {
  padding: 0 !important;
  aspect-ratio: 2/3;
  display: flex; flex-direction: column;
}
.kk-card-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  border-radius: 7px; z-index: 0;
}
.kk-card-overlay {
  position: absolute; inset: 0; z-index: 1; border-radius: 7px;
  background: linear-gradient(
    to bottom,
    rgba(5,2,14,.82) 0%,
    rgba(5,2,14,.08) 25%,
    rgba(5,2,14,.08) 72%,
    rgba(5,2,14,.85) 100%
  );
}
.kk-card-photo .kk-hangul-top,
.kk-card-photo .kk-hangul-title,
.kk-card-photo .kk-hangul-footer { position: relative; z-index: 2; }
.kk-card-photo .kk-hangul-top { padding: 2rem 2rem .6rem; }
.kk-card-photo .kk-hangul-title { padding: 0 2rem; }
.kk-card-photo .kk-hangul-footer { padding: 0 2rem 2rem; margin-top: auto; }
.kk-hangul-card {
  background:
    radial-gradient(ellipse 80% 60% at 25% 20%, rgba(217,70,239,.2), transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(124,58,237,.14), transparent 55%),
    linear-gradient(160deg, #0d0520 0%, #03060e 60%, #030208 100%);
  border: 1px solid rgba(217,70,239,.22);
  border-top: 3px solid var(--fuchsia);
  border-radius: 8px;
  padding: 2.5rem 2rem; display: flex; flex-direction: column; gap: 1.4rem;
  position: relative; overflow: hidden;
  box-shadow: 0 12px 50px rgba(217,70,239,.14), 0 0 0 1px rgba(217,70,239,.06) inset;
}
.kk-hangul-card::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(110deg, transparent 28%, rgba(255,150,255,.05) 42%, rgba(150,200,255,.06) 58%, transparent 72%);
  background-size: 300% 100%;
  animation: y2kHolo 6s linear infinite;
  pointer-events: none;
}
.kk-hangul-top { display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 1; }
.kk-hangul-tag {
  font-family: var(--font); font-size: .72rem; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase; color: var(--fuchsia);
}
.kk-hangul-year {
  font-size: .6rem; font-weight: 700; letter-spacing: .22em; color: rgba(255,255,255,.3);
}
.kk-hangul-title {
  font-family: var(--font); font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 900; text-transform: uppercase; letter-spacing: .02em; line-height: .9;
  background: linear-gradient(135deg, #fff 20%, #f472b6 70%, var(--fuchsia) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  position: relative; z-index: 1;
}
.kk-hangul-footer {
  display: flex; align-items: center; gap: .6rem;
  font-size: .52rem; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255,255,255,.18);
  position: relative; z-index: 1;
}
.kk-frame-corner {
  position: absolute; width: 20px; height: 20px;
  border-color: rgba(217,70,239,.55); border-style: solid; z-index: 3;
}
.kk-fc-tl { top: .3rem; left: .3rem; border-width: 2px 0 0 2px; }
.kk-fc-tr { top: .3rem; right: .3rem; border-width: 2px 2px 0 0; }
.kk-fc-bl { bottom: .3rem; left: .3rem; border-width: 0 0 2px 2px; }
.kk-fc-br { bottom: .3rem; right: .3rem; border-width: 0 2px 2px 0; }

/* ── @media print — PDF export ───────────────────────────────── */
@media print {
  /* Ocultar elementos de navegación y UX */
  #loader, #float-cta, #back-top, #scroll-progress,
  nav, .nav-wrap, .mob-nav, .mob-overlay,
  .ldr-outer, [data-action], .pago-overlay { display: none !important; }

  /* Fondo blanco, texto oscuro */
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { background: #fff !important; color: #111 !important; font-size: 11pt; }

  /* Secciones en página completa */
  section { break-inside: avoid; page-break-inside: avoid; }

  /* Hero — altura reducida para PDF */
  #pillars, .pillar-panel { height: auto !important; min-height: 0 !important; }
  .hero-video-wrap { position: relative !important; }
  .hero-video-wrap img { height: 300px !important; object-fit: cover; }

  /* Bracket — ancho completo */
  .bk-bracket { overflow: visible !important; }

  /* Tickets — quitar sombras pesadas */
  .tic-card { box-shadow: 0 0 0 1px #ddd !important; }

  /* Imágenes — no cortar entre páginas */
  img { break-inside: avoid; max-width: 100%; }

  /* Links — no subrayar en PDF */
  a { text-decoration: none !important; color: inherit !important; }

  /* Mostrar solo el primer panel del hero */
  .pillar-panel:not(.pp-hero) { display: none !important; }
  .pp-hero { display: block !important; }
}

/* ═══════════════════════════════════════════════════════════
   TYPOGRAPHY NORMALIZATION — single source of truth
   Overrides scattered values across all sections
   ═══════════════════════════════════════════════════════════ */

/* Body paragraphs — secciones oscuras */
.tn-desc,
.tn-card-text,
.tn-rule-text,
.kz-desc,
.kz-act-desc,
.gio-hero-desc,
.pz-sub {
  font-size: .88rem !important;
  line-height: 1.8 !important;
}

/* Text opacity — secciones oscuras */
.tn-card-text,
.tn-rule-text,
.kz-act-desc {
  color: rgba(255,255,255,.62) !important;
}
.pz-sub { color: rgba(255,255,255,.52) !important; }
.gio-hero-desc { color: rgba(255,255,255,.7) !important; }

/* Body paragraphs — secciones claras */
.kk-bio-text {
  font-size: .88rem !important;
  line-height: 1.82 !important;
  color: #3d2270 !important;
}
.kk-feat-desc {
  font-size: .84rem !important;
  line-height: 1.55 !important;
}

/* Eyebrows / labels — todos al mismo tamaño */
.kz-act-eyebrow,
.kz-eyebrow,
.kk-kicker,
.kk-hangul-tag,
.tn-eyebrow,
.pz-kicker span,
.s-tag,
.venue-tag,
.sp-tag {
  font-size: .62rem !important;
  letter-spacing: .2em !important;
}

/* Ticket list items */
.tic-list li,
.tic-tagline { font-size: .88rem !important; }

/* ── RESPONSIVE FIXES — multi-device ─────────────────────────── */

/* Lang dropdown mobile */
@media (max-width: 768px) {
  .lang-drop-btn { padding: .22rem .45rem; }
  .lang-code { display: none; }
  .lang-menu { right: 0; min-width: 80px; }
}

/* kz-title overflow fix */
@media (max-width: 860px) {
  .kz-title { white-space: normal !important; }
  .hero-title .t1, .hero-title .t2 { white-space: normal; }
}

/* karaoke card — portrait aspect ratio on mobile becomes auto */
@media (max-width: 860px) {
  .kk-frame-wrap { aspect-ratio: unset; min-height: 380px; }
  .kk-card-photo { aspect-ratio: unset; min-height: 380px; }
}
@media (max-width: 480px) {
  .kk-frame-wrap { min-height: 300px; }
  .kk-card-photo { min-height: 300px; }
}

/* Hero countdown — hide on very small phones */
@media (max-width: 380px) {
  .hero-cd { display: none; }
}

/* Esports p-left — full width on mobile */
@media (max-width: 960px) {
  .pp-esports .p-left { max-width: 80vw; }
}
@media (max-width: 768px) {
  .pp-esports .p-left { max-width: 92vw; left: 4%; right: 4%; }
}

/* Torneo venue map — smaller on mobile */
@media (max-width: 640px) {
  .tn-vloc-map-wrap iframe { height: 220px; }
  .tn-vloc-inner { gap: 1.5rem; }
}

/* Tickets grid — 1 column on small phones */
@media (max-width: 480px) {
  .tic-grid { grid-template-columns: 1fr !important; gap: 1rem; }
}

/* Bracket — scroll horizontal on mobile */
@media (max-width: 768px) {
  .bk-wrap {
    padding: 0 1rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .bk-bracket {
    margin: 0;
    min-width: max-content;
    flex-wrap: nowrap;
    padding: 0;
    gap: 0;
  }
  .bk-col {
    min-width: 120px;
    scroll-snap-align: start;
  }
  .bk-titlebar { padding: 2rem 1rem 1.5rem; }
  .bk-fn-title { font-size: 1.1rem; }
  .bk-titlebar-left { flex-wrap: wrap; gap: .5rem; }
  .bk-chip { font-size: .5rem; padding: .25rem .6rem; }
}

/* GioWolf section — stack on small tablet */
@media (max-width: 820px) {
  .gio-art-wrap { height: 55vw; }
}

/* Sponsors — 1 col on phone */
@media (max-width: 480px) {
  .sp-partners-row { grid-template-columns: 1fr !important; }
}

/* Premios grid — 1 col on phone */
@media (max-width: 480px) {
  .pz-grid { grid-template-columns: 1fr !important; }
}

/* Padding tablet (768-1024) */
@media (max-width: 1024px) and (min-width: 769px) {
  .kk-bio-inner { padding: 3rem 2rem; }
  .kz-hero { padding: 2rem; }
  .tn-hero { padding: 3rem 2rem; }
}

/* Nav safe area iPhone notch */
@media (max-width: 768px) {
  nav { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
  .hero-cd { bottom: calc(4.5rem + env(safe-area-inset-bottom)); }
  #float-cta { bottom: calc(1.2rem + env(safe-area-inset-bottom)); }
}

/* Reduce decorative backgrounds on low-end mobile */
@media (max-width: 480px) {
  .ldr-pxl-wrap, .ldr-y2k, #page-y2k { display: none; }
}

/* ── MERCH SECTION ────────────────────────────────────────────── */
#merch {
  background: linear-gradient(180deg, #060310 0%, #0a0520 50%, #060310 100%);
  padding: clamp(4rem, 8vw, 7rem) 0;
  position: relative; overflow: hidden;
  scroll-margin-top: 70px;
}
#merch::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 40% at 80% 50%, rgba(217,70,239,.08), transparent 70%);
  pointer-events: none;
}
.merch-inner { max-width: 1100px; margin: 0 auto; padding: 0 clamp(1.5rem, 4vw, 4rem); }

.merch-header { text-align: center; margin-bottom: 3.5rem; }
.merch-title {
  font-family: var(--font); font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900; color: #fff; margin: .5rem 0;
}
.merch-title em { color: var(--fuchsia); font-style: normal; }
.merch-sub { font-size: .82rem; color: rgba(255,255,255,.35); letter-spacing: .12em; text-transform: uppercase; }
.merch-delivery {
  font-size: .78rem; color: rgba(255,255,255,.45); margin-top: .6rem;
  line-height: 1.6;
}

.merch-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 2rem; align-items: start;
}

/* Product card */
.merch-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(217,70,239,.15);
  border-radius: 12px; overflow: hidden;
  transition: border-color .3s, box-shadow .3s;
}
.merch-card:hover {
  border-color: rgba(217,70,239,.4);
  box-shadow: 0 8px 40px rgba(217,70,239,.12);
}

.merch-img-wrap {
  position: relative; aspect-ratio: 1/1; overflow: hidden;
  background: #0d0d1a; cursor: pointer;
}
.merch-badge {
  position: absolute; top: .9rem; left: .9rem; z-index: 3;
  background: var(--fuchsia); color: #fff;
  font-size: .6rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  padding: .3rem .7rem; border-radius: 3px;
}
.merch-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; transition: opacity .4s ease;
}
.merch-img-back { opacity: 0; }
.merch-img-wrap:hover .merch-img-front { opacity: 0; }
.merch-img-wrap:hover .merch-img-back  { opacity: 1; }
.merch-hover-hint {
  position: absolute; bottom: .8rem; right: .8rem; z-index: 3;
  background: rgba(0,0,0,.6); color: rgba(255,255,255,.6);
  font-size: .58rem; letter-spacing: .1em; text-transform: uppercase;
  padding: .28rem .6rem; border-radius: 3px;
  transition: opacity .3s;
}
.merch-img-wrap:hover .merch-hover-hint { opacity: 0; }

.merch-info { padding: 1.6rem; }
.merch-brand { font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--fuchsia); margin-bottom: .5rem; }
.merch-name {
  font-family: var(--font); font-size: 1.3rem; font-weight: 800; color: #fff;
  line-height: 1.2; margin-bottom: 1.2rem;
}
.merch-name span { color: rgba(255,255,255,.45); font-weight: 600; font-size: 1rem; }

.merch-sizes { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem; flex-wrap: wrap; }
.merch-size-lbl { font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.35); }
.merch-size {
  width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.2); border-radius: 4px;
  font-size: .7rem; font-weight: 700; color: rgba(255,255,255,.6);
  transition: border-color .2s, color .2s;
}
.merch-size:hover { border-color: var(--fuchsia); color: #fff; }
.merch-size[data-size] { cursor: pointer; background: transparent; }
.merch-size.selected { border-color: var(--fuchsia); color: #fff; background: rgba(217,70,239,.15); }
.merch-cta:disabled { opacity: .4; pointer-events: none; cursor: not-allowed; }
.merch-size-msg { font-size: .62rem; color: rgba(255,255,255,.3); margin-top: .5rem; letter-spacing: .06em; }

.merch-price-row { display: flex; align-items: baseline; gap: .8rem; margin-bottom: 1.4rem; }
.merch-price { font-family: var(--font); font-size: 1.6rem; font-weight: 900; color: #fff; }
.merch-price small { font-size: .7rem; font-weight: 600; color: rgba(255,255,255,.4); }
.merch-ship { font-size: .68rem; color: rgba(255,255,255,.3); letter-spacing: .06em; }

.merch-cta {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; padding: .85rem 1.5rem;
  font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none;
}

/* Coming soon card */
.merch-coming {
  border: 1px dashed rgba(217,70,239,.2); border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  min-height: 400px;
  background: rgba(217,70,239,.03);
}
.merch-coming-inner { text-align: center; padding: 3rem 2rem; }
.merch-coming-icon { font-size: 2rem; color: rgba(217,70,239,.3); margin-bottom: 1rem; }
.merch-coming-title { font-family: var(--font); font-size: 1.2rem; font-weight: 800; color: rgba(255,255,255,.5); margin-bottom: .6rem; }
.merch-coming-sub { font-size: .78rem; color: rgba(255,255,255,.25); line-height: 1.6; margin-bottom: 1.4rem; }
.merch-store-link {
  font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--fuchsia); text-decoration: none; opacity: .7;
  transition: opacity .2s;
}
.merch-store-link:hover { opacity: 1; }

@media (max-width: 768px) {
  .merch-grid { grid-template-columns: 1fr; }
  .merch-coming { min-height: 220px; }
}
