/* ==========================================================================
   TICKETU · Página 404 (Views/Shared/NotFound.cshtml)
   ========================================================================== */
:root{
    /* Paleta cinematográfica del estadio */
    --navy-950:#05060f;
    --navy-900:#0a0e23;
    --navy-800:#101633;
    --indigo:#3b2c7a;
    --purple:#7c3aed;
    --violet:#a855f7;
    --cyan:#22d3ee;
    --cyan-soft:#67e8f9;
    --white:#f7f8ff;
    --muted:#a7b0d8;
    /* Acento de marca TICKETU */
    --orange:#ff6600;
    --orange-soft:#ff8a3d;

    --ease:cubic-bezier(.22,1,.36,1);
    --maxw:1180px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
    margin:0;
    min-height:100svh;
    font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
    color:var(--white);
    background:var(--navy-950);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    position:relative;
}
h1,h2,h3,p{margin:0}
a{color:inherit;text-decoration:none}

/* ================= ESCENARIO / FONDO ================= */
.stage{
    position:relative;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    isolation:isolate;
    background:
        radial-gradient(120% 90% at 50% -10%, rgba(124,58,237,.34), transparent 55%),
        radial-gradient(90% 70% at 85% 20%, rgba(34,211,238,.18), transparent 55%),
        radial-gradient(80% 60% at 12% 25%, rgba(168,85,247,.20), transparent 55%),
        linear-gradient(180deg, var(--navy-900) 0%, var(--navy-950) 60%, #02030a 100%);
}

/* Piso del estadio en perspectiva */
.field{
    position:absolute;
    left:50%;
    bottom:0;
    width:200%;
    height:46svh;
    transform:translateX(-50%);
    background:
        linear-gradient(180deg, transparent, rgba(34,211,238,.06) 70%, rgba(34,211,238,.12)),
        repeating-linear-gradient(90deg, transparent 0 78px, rgba(124,58,237,.16) 78px 80px);
    -webkit-mask-image:linear-gradient(180deg, transparent, #000 65%);
            mask-image:linear-gradient(180deg, transparent, #000 65%);
    transform-origin:bottom center;
    z-index:0;
    opacity:.55;
}
.field::after{
    content:"";
    position:absolute;inset:0;
    background:repeating-linear-gradient(0deg, transparent 0 78px, rgba(34,211,238,.10) 78px 80px);
}

/* Niebla / haz inferior */
.haze{
    position:absolute;left:0;right:0;bottom:0;height:38svh;
    background:radial-gradient(60% 100% at 50% 100%, rgba(124,58,237,.30), transparent 70%);
    filter:blur(8px);
    z-index:0;
    animation:hazePulse 9s var(--ease) infinite;
}
@keyframes hazePulse{0%,100%{opacity:.5}50%{opacity:.85}}

/* Reflectores que parpadean lentamente */
.spot{
    position:absolute;top:-6%;
    width:46vmax;height:74svh;
    pointer-events:none;
    mix-blend-mode:screen;
    transform-origin:top center;
    z-index:0;
}
.spot--l{left:-4%;rotate:14deg;
    background:conic-gradient(from 180deg at 50% 0, transparent 78deg, rgba(34,211,238,.22) 90deg, transparent 102deg);
    animation:flick 6.5s steps(1) infinite, sway 11s ease-in-out infinite alternate;}
.spot--r{right:-4%;rotate:-14deg;
    background:conic-gradient(from 180deg at 50% 0, transparent 78deg, rgba(168,85,247,.22) 90deg, transparent 102deg);
    animation:flick 7.7s steps(1) infinite, sway 13s ease-in-out infinite alternate-reverse;}
@keyframes flick{0%,7%,9%,100%{opacity:.9}8%{opacity:.45}40%{opacity:1}41%{opacity:.6}42%{opacity:1}}
@keyframes sway{from{transform:translateX(-1.5%)}to{transform:translateX(1.5%)}}

/* ================= CONTENIDO ================= */
.wrap{
    position:relative;z-index:3;
    width:100%;max-width:var(--maxw);
    margin-inline:auto;
    padding:clamp(20px,4vw,40px) clamp(18px,5vw,48px) clamp(40px,6vw,72px);
    flex:1;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    gap:clamp(28px,4vw,56px);
}

/* Marca */
.brand{
    position:absolute;top:clamp(18px,3vw,30px);left:clamp(18px,5vw,48px);
    z-index:5;
    display:inline-flex;align-items:center;
    font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
    font-size:1.5rem;letter-spacing:-.03em;color:#fff;
}
.brand .dot{width:7px;height:7px;border-radius:50%;background:var(--orange);margin-left:4px;
    align-self:flex-end;margin-bottom:6px;box-shadow:0 0 14px var(--orange)}

/* ----- Columna de texto ----- */
.copy{max-width:560px}
.reveal{opacity:0;transform:translateY(22px);animation:rise .9s var(--ease) forwards}
.reveal.d1{animation-delay:.10s}
.reveal.d2{animation-delay:.20s}
.reveal.d3{animation-delay:.32s}
.reveal.d4{animation-delay:.46s}
.reveal.d5{animation-delay:.60s}
@keyframes rise{to{opacity:1;transform:none}}

.badge{
    display:inline-flex;align-items:center;gap:9px;
    padding:7px 14px;border-radius:999px;
    font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:var(--cyan-soft);
    background:rgba(34,211,238,.08);
    border:1px solid rgba(34,211,238,.30);
    box-shadow:inset 0 0 18px rgba(34,211,238,.12);
}
.badge .live{width:8px;height:8px;border-radius:50%;background:var(--orange);
    box-shadow:0 0 0 0 rgba(255,102,0,.6);animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,102,0,.55)}70%{box-shadow:0 0 0 9px rgba(255,102,0,0)}100%{box-shadow:0 0 0 0 rgba(255,102,0,0)}}

h1{
    font-family:"Bricolage Grotesque",sans-serif;
    font-weight:800;letter-spacing:-.025em;line-height:1.02;
    font-size:clamp(2.1rem,5.6vw,3.6rem);
    margin:18px 0 0;
    text-wrap:balance;
}
h1 .grad{
    background:linear-gradient(100deg,var(--cyan) 0%,var(--violet) 55%,var(--orange-soft) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.lead{margin-top:16px;font-size:clamp(1.02rem,1.6vw,1.18rem);color:#dfe4ff;line-height:1.55}
.sub{margin-top:12px;font-size:.98rem;color:var(--muted);line-height:1.6;max-width:48ch}

/* Acciones */
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.btn{
    position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.55em;
    padding:.92em 1.5em;border-radius:999px;font-weight:700;font-size:1rem;
    border:1px solid transparent;transition:transform .25s var(--ease),box-shadow .25s,background .25s;
    min-height:52px;white-space:nowrap;
}
.btn:active{transform:translateY(1px) scale(.99)}
.btn svg{width:20px;height:20px}
.btn--primary{
    color:#fff;
    background:linear-gradient(135deg,var(--orange) 0%,#ff8a3d 100%);
    box-shadow:0 10px 30px rgba(255,102,0,.40), 0 0 0 1px rgba(255,138,61,.4) inset;
}
.btn--primary::before{
    content:"";position:absolute;inset:-2px;border-radius:inherit;z-index:-1;
    background:linear-gradient(135deg,var(--orange),var(--violet),var(--cyan));
    filter:blur(16px);opacity:.55;transition:opacity .3s;
}
.btn--primary:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(255,102,0,.5)}
.btn--primary:hover::before{opacity:.9}
.btn--ghost{
    color:#eef0ff;background:rgba(255,255,255,.05);
    border-color:rgba(167,176,216,.35);backdrop-filter:blur(6px);
}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(103,232,249,.6);transform:translateY(-3px);
    box-shadow:0 12px 34px rgba(34,211,238,.22)}

/* Buscador */
.search{margin-top:26px}
.search label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:9px;font-weight:600}
.search-box{
    display:flex;align-items:center;gap:10px;
    padding:6px 6px 6px 16px;border-radius:14px;
    background:rgba(8,11,30,.6);
    border:1px solid rgba(124,58,237,.35);
    box-shadow:inset 0 0 24px rgba(124,58,237,.10);
    transition:border-color .25s,box-shadow .25s;
    max-width:440px;
}
.search-box:focus-within{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(34,211,238,.16),inset 0 0 24px rgba(34,211,238,.10)}
.search-box svg{flex:0 0 auto;color:var(--cyan-soft)}
.search-box input{
    flex:1;min-width:0;background:none;border:none;outline:none;
    color:#fff;font-family:inherit;font-size:1rem;padding:10px 0;
}
.search-box input::placeholder{color:#8189b8}
.search-box button{
    flex:0 0 auto;padding:.7em 1.15em;border-radius:10px;font-weight:700;color:#fff;
    background:linear-gradient(135deg,var(--violet),var(--cyan));
    transition:transform .2s,filter .2s;
}
.search-box button:hover{transform:translateY(-1px);filter:brightness(1.12)}

/* ================= ILUSTRACIÓN: ESTADIO ================= */
.scene{
    position:relative;
    aspect-ratio:1/1;
    width:100%;max-width:560px;justify-self:center;
    transform-style:preserve-3d;
    animation:rise 1s var(--ease) .15s both;
}
.scene-parallax{position:absolute;inset:0;transition:transform .25s var(--ease);will-change:transform}

/* Jumbotron / pantalla gigante */
.jumbo{
    position:absolute;left:50%;top:6%;transform:translateX(-50%);
    width:74%;
    border-radius:18px;
    padding:10px;
    background:linear-gradient(180deg,#1b2350,#0c1130);
    border:1px solid rgba(103,232,249,.35);
    box-shadow:
        0 0 0 6px rgba(5,6,15,.6),
        0 30px 70px rgba(0,0,0,.55),
        0 0 90px rgba(124,58,237,.45);
    z-index:2;
}
.jumbo::before,.jumbo::after{ /* soportes / truss */
    content:"";position:absolute;top:100%;width:8px;height:9%;
    background:linear-gradient(180deg,#2a3470,#0b1030);
    border-radius:0 0 3px 3px;
}
.jumbo::before{left:22%}
.jumbo::after{right:22%}
.screen{
    position:relative;border-radius:11px;overflow:hidden;
    aspect-ratio:16/9;
    background:
        radial-gradient(120% 140% at 50% 0,rgba(34,211,238,.22),transparent 60%),
        linear-gradient(160deg,#0a1030,#070a1e);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;padding:6%;
    box-shadow:inset 0 0 60px rgba(34,211,238,.18);
}
.screen::after{ /* scanlines */
    content:"";position:absolute;inset:0;pointer-events:none;
    background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px);
    mix-blend-mode:overlay;opacity:.5;
    animation:scan 7s linear infinite;
}
@keyframes scan{from{background-position-y:0}to{background-position-y:120px}}
.screen .num{
    font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
    font-size:clamp(2.6rem,11vw,5.4rem);line-height:.9;letter-spacing:.02em;
    background:linear-gradient(180deg,#fff,var(--cyan-soft) 60%,var(--violet));
    -webkit-background-clip:text;background-clip:text;color:transparent;
    text-shadow:0 0 38px rgba(34,211,238,.5);
    animation:glow 3.2s ease-in-out infinite;
}
@keyframes glow{0%,100%{filter:drop-shadow(0 0 8px rgba(34,211,238,.45))}50%{filter:drop-shadow(0 0 22px rgba(168,85,247,.7))}}
.screen .scrline{margin-top:6px;font-size:clamp(.5rem,1.6vw,.78rem);color:#cdd6ff;line-height:1.35;font-weight:600;letter-spacing:.01em}
.screen .scrline b{color:var(--cyan-soft)}

/* Bulbos de luces del estadio que parpadean */
.lamps{position:absolute;left:50%;top:1.5%;transform:translateX(-50%);width:84%;display:flex;justify-content:space-between;z-index:3}
.lamps i{width:11px;height:11px;border-radius:50%;background:var(--cyan);
    box-shadow:0 0 10px var(--cyan),0 0 22px rgba(34,211,238,.7)}
.lamps i:nth-child(2n){background:var(--violet);box-shadow:0 0 10px var(--violet),0 0 22px rgba(168,85,247,.7);animation:blink 2.4s infinite .3s}
.lamps i:nth-child(3n){background:var(--orange);box-shadow:0 0 10px var(--orange),0 0 22px rgba(255,102,0,.7);animation:blink 3.1s infinite .7s}
.lamps i{animation:blink 2.8s infinite}
@keyframes blink{0%,100%{opacity:1}45%{opacity:.25}55%{opacity:.9}}

/* Ecualizador / barras de sonido del escenario */
.eq{
    position:absolute;left:50%;bottom:20%;transform:translateX(-50%);
    display:flex;align-items:flex-end;gap:clamp(3px,1vw,7px);
    width:74%;height:22%;z-index:1;
}
.eq span{
    flex:1;border-radius:5px 5px 0 0;transform-origin:bottom;
    background:linear-gradient(180deg,var(--cyan) 0%,var(--violet) 55%,var(--orange) 100%);
    box-shadow:0 0 12px rgba(124,58,237,.55);
    animation:eqb 1.1s ease-in-out infinite;
}
@keyframes eqb{0%,100%{transform:scaleY(.22)}50%{transform:scaleY(1)}}

/* Bocinas / torres de sonido a los lados del escenario */
.speaker{position:absolute;bottom:5%;width:13%;z-index:2;filter:drop-shadow(0 14px 22px rgba(0,0,0,.55))}
.speaker--l{left:-1%;rotate:4deg}
.speaker--r{right:-1%;rotate:-4deg}

/* Multitud con las manos en alto frente al escenario */
.crowd{position:absolute;left:50%;bottom:-1%;transform:translateX(-50%);width:106%;z-index:3;filter:drop-shadow(0 -2px 16px rgba(124,58,237,.45))}

/* Notas musicales flotando */
.note{position:absolute;z-index:3;color:var(--cyan-soft);
    filter:drop-shadow(0 0 10px rgba(103,232,249,.7));
    animation:float 7s ease-in-out infinite}
.note.n1{top:24%;left:1%;width:34px;animation-duration:6.5s}
.note.n2{top:48%;right:3%;width:26px;animation-duration:8s;animation-delay:-2.4s;color:var(--orange-soft)}
.note.n3{top:8%;left:18%;width:22px;animation-duration:9s;animation-delay:-4s;color:var(--violet)}

/* Tickets flotantes */
.ticket{
    position:absolute;z-index:2;width:104px;
    filter:drop-shadow(0 14px 24px rgba(0,0,0,.5));
    animation:float 7s ease-in-out infinite;
}
.ticket.t1{top:30%;left:-4%;rotate:-12deg;--r:-12deg;animation-duration:7.5s}
.ticket.t2{top:60%;right:-5%;rotate:10deg;--r:10deg;animation-duration:8.5s;animation-delay:-2s;width:92px}
.ticket.t3{bottom:8%;left:8%;rotate:-6deg;--r:-6deg;animation-duration:9.5s;animation-delay:-4s;width:78px}
@keyframes float{0%,100%{transform:translateY(0) rotate(var(--r,0))}50%{transform:translateY(-16px) rotate(var(--r,0))}}

/* QR flotante */
.qr{
    position:absolute;top:14%;right:-2%;z-index:3;width:74px;height:74px;
    border-radius:14px;padding:9px;background:#fff;
    box-shadow:0 16px 34px rgba(0,0,0,.5),0 0 30px rgba(34,211,238,.4);
    animation:float 8s ease-in-out infinite;
}
.qr svg{width:100%;height:100%}

/* Partículas */
.dust{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.dust span{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(103,232,249,.8);
    box-shadow:0 0 8px rgba(103,232,249,.9);animation:drift linear infinite}
@keyframes drift{from{transform:translateY(110%);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-20%);opacity:0}}

/* ================= RESPONSIVE ================= */
@media (max-width:920px){
    .wrap{grid-template-columns:1fr;text-align:center;padding-top:84px}
    .copy{margin-inline:auto}
    .badge{margin-inline:auto}
    .actions{justify-content:center}
    .search-box{margin-inline:auto}
    .sub{margin-inline:auto}
    .scene{order:-1;max-width:380px;margin-bottom:6px}
    .ticket.t1{left:-2%}.ticket.t2{right:-2%}
}
@media (max-width:520px){
    .scene{max-width:300px}
    h1{font-size:clamp(1.9rem,8vw,2.4rem)}
    .qr{width:58px;height:58px}
    .ticket{width:74px}
}

@media (prefers-reduced-motion:reduce){
    *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition:none !important}
    .reveal{opacity:1;transform:none}
}
