:root{
  --bg:#080c26;
  --bg2:#0c1233;
  --card:#121a4a;
  --line:rgba(255,255,255,.09);
  --txt:#eef2f9;
  --muted:#9fb0d0;
  --blue:#00A3FF;
  --acc:#A855F7;
  --acc-d:#7C3AED;
  --acc-l:#C084FC;
  --radius:1.1rem;
  --font-d:'Archivo',sans-serif;
  --font-b:'Inter',sans-serif;
  --font-p:'Press Start 2P',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:62.5%}
body{background:var(--bg);color:var(--txt);font-family:var(--font-b);font-size:1.6rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit}
.wrap{max-width:118rem;margin:0 auto;padding:0 2.4rem}
.wrap--narrow{max-width:86rem}
.pixel{font-family:var(--font-p);font-size:1.1rem;letter-spacing:.06em}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;font-family:var(--font-d);font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;border-radius:.9rem;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;cursor:pointer;border:0}
.btn--primary{background:linear-gradient(135deg,var(--acc),var(--acc-d));color:#fff;box-shadow:0 8px 28px rgba(168,85,247,.4)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(168,85,247,.55)}
.btn--ghost{background:rgba(255,255,255,.06);color:var(--txt);border:1px solid var(--line)}
.btn--ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.btn--lg{padding:1.5rem 3rem;font-size:1.5rem}
.btn--sm{padding:1rem 2rem;font-size:1.3rem}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(8,12,38,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav__inner{max-width:128rem;margin:0 auto;padding:1.4rem 2.4rem;display:flex;align-items:center;gap:2.4rem}
.nav__logo{display:flex;align-items:baseline;gap:.8rem;text-decoration:none;margin-right:auto}
.nav__logo-pixel{font-family:var(--font-p);font-size:1.9rem;background:linear-gradient(120deg,#ffffff,var(--acc-l));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:.02em}
.nav__logo-sub{font-size:1rem;color:var(--acc);letter-spacing:.28em}
.nav__links{display:flex;gap:2.4rem}
.nav__links a{text-decoration:none;font-size:1.45rem;font-weight:500;color:var(--muted);transition:color .15s}
.nav__links a:hover{color:var(--txt)}
.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:.6rem}
.nav__burger span{width:24px;height:2px;background:var(--txt);border-radius:2px}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:12rem 0 7rem}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,12,38,.8) 0%,rgba(8,12,38,.55) 45%,var(--bg) 100%)}
.hero__content{position:relative;z-index:2;max-width:118rem;margin:0 auto;padding:0 2.4rem;width:100%}
.hero__badge{display:inline-flex;align-items:center;gap:1.2rem;background:rgba(168,85,247,.12);border:1px solid rgba(168,85,247,.45);border-radius:99rem;padding:1rem 2rem;font-size:1.35rem;font-weight:600;letter-spacing:.08em;margin-bottom:2.4rem}
.hero__badge .pixel{color:var(--acc-l);font-size:1rem}
.hero__dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--acc)}
.hero__title{font-family:var(--font-p);font-size:clamp(3.4rem,7.5vw,7.2rem);line-height:1.15;text-transform:uppercase;margin-bottom:2rem;text-shadow:0 6px 40px rgba(0,0,0,.6)}
.hero__title-accent{background:linear-gradient(120deg,var(--acc-l),var(--acc));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero__sub{max-width:64rem;font-size:1.9rem;color:#cdd6ea;margin-bottom:3.2rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:1.4rem;margin-bottom:4.5rem}

/* Countdown */
.countdown{display:flex;gap:1.2rem;flex-wrap:wrap}
.countdown__box{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 2rem;min-width:9.5rem;text-align:center;backdrop-filter:blur(6px)}
.countdown__num{display:block;font-family:var(--font-d);font-weight:900;font-size:3.2rem;color:var(--txt);font-variant-numeric:tabular-nums}
.countdown__label{font-size:1.25rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}

/* Marquee */
.marquee{background:linear-gradient(90deg,#1a1040,#141a4d);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:1.6rem 0}
.marquee__track{display:flex;gap:3rem;white-space:nowrap;width:max-content;animation:scroll 28s linear infinite;font-family:var(--font-d);font-weight:800;font-size:1.6rem;letter-spacing:.1em}
.marquee__track i{color:var(--acc);font-style:normal}
@keyframes scroll{to{transform:translateX(-50%)}}

/* Sections */
.section{padding:8rem 0}
.section--alt{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kicker{color:var(--acc);margin-bottom:1.4rem}
.h2{font-family:var(--font-p);font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.35;text-transform:uppercase;letter-spacing:.02em;margin-bottom:1.8rem}
.lead{color:var(--muted);font-size:1.75rem;max-width:76rem;margin-bottom:4rem}
.lead--center{margin-left:auto;margin-right:auto;text-align:center}
.h2{text-align:left}
.section .kicker,.section .h2{text-align:left}
#billetterie .kicker,#billetterie .h2,#faq .kicker,#faq .h2{text-align:center}
#contact .kicker{text-align:center}

/* Cards */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.8rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:3rem 2.6rem;transition:transform .18s ease,border-color .18s ease}
.card:hover{transform:translateY(-4px);border-color:rgba(168,85,247,.5)}
.card__icon{font-size:3rem;color:var(--acc);margin-bottom:1.6rem}
.card h3{font-family:var(--font-d);font-weight:800;font-size:2rem;text-transform:uppercase;margin-bottom:1rem}
.card p{color:var(--muted);font-size:1.5rem}
.card--info{text-align:left}
.card__label{color:var(--acc);margin-bottom:1.2rem;font-size:1rem}
.card__big{font-family:var(--font-d);font-weight:800;font-size:2.3rem;line-height:1.25;color:var(--txt)}
.card__note{margin-top:1rem;font-size:1.35rem}

/* Ticket box */
.ticketbox{background:#fff;border:3px solid var(--acc);border-radius:.9rem;padding:.4rem;box-shadow:0 0 0 4px rgba(168,85,247,.22),0 20px 60px rgba(168,85,247,.28);min-height:40rem}
.ticketbox .ot-iframe{min-height:38rem}
.ticketbox--modal{min-height:30rem}
.ticketbox--modal .ot-iframe{min-height:28rem}

/* Modal */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:2rem}
.modal.open{display:flex}
.modal__backdrop{position:absolute;inset:0;background:rgba(4,6,18,.82);backdrop-filter:blur(6px)}
.modal__box{position:relative;background:var(--bg2);border:1px solid var(--line);border-radius:1.4rem;max-width:74rem;width:100%;max-height:92svh;overflow:auto;padding:3rem}
.modal__close{position:absolute;top:1.2rem;right:1.2rem;width:3.6rem;height:3.6rem;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--txt);font-size:1.6rem;cursor:pointer;z-index:2}
.modal__close:hover{background:var(--acc);border-color:var(--acc)}
.modal__title{font-family:var(--font-p);font-size:1.7rem;margin-bottom:1rem;color:var(--txt)}
.modal__sub{color:var(--muted);font-size:1.5rem;margin-bottom:2rem}

/* Accès */
.accessgrid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.4rem;align-items:start}
.accessmap iframe{width:100%;height:40rem;border:0;border-radius:var(--radius);display:block}
.accessmap__link{margin-top:1.4rem}
.transport{display:grid;gap:1.4rem}
.transport__item{display:flex;gap:1.6rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 2.2rem}
.transport__icon{font-size:2.8rem;line-height:1}
.transport__item h3{font-family:var(--font-d);font-weight:800;font-size:1.6rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem;color:var(--txt)}
.transport__item p{color:var(--muted);font-size:1.5rem}
.transport__item strong{color:var(--txt)}

/* Galerie */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.gallery img,.standstrip img{width:100%;height:24rem;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);transition:transform .2s ease}
.gallery img:hover,.standstrip img:hover{transform:scale(1.02)}
.standstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:4rem}

/* Conditions */
.terms{list-style:none;counter-reset:term;display:grid;gap:1.2rem;margin-bottom:3rem}
.terms li{counter-increment:term;position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 2.4rem 2rem 6.4rem;font-size:1.55rem;color:var(--muted)}
.terms li::before{content:counter(term);position:absolute;left:2rem;top:1.8rem;font-family:var(--font-p);font-size:1.3rem;color:var(--acc)}
.terms li strong{color:var(--acc-l)}
.terms__org{text-align:center;color:var(--muted);font-size:1.4rem}
.terms__org a{color:var(--acc-l)}

/* Split / exposants */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:5rem;align-items:center}
.ticks{list-style:none;margin:0 0 3rem;display:grid;gap:1rem}
.ticks li{position:relative;padding-left:3rem;color:#cdd6ea;font-size:1.6rem}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--acc);font-weight:800}
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2.6rem 2rem;text-align:center}
.stat__num{display:block;font-family:var(--font-d);font-weight:900;font-size:3.4rem;color:var(--acc)}
.stat__label{font-size:1.3rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}

/* FAQ */
.faq{display:grid;gap:1.2rem}
.faq__item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.faq__item summary{cursor:pointer;list-style:none;padding:2rem 2.4rem;font-family:var(--font-d);font-weight:700;font-size:1.7rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-size:2.4rem;color:var(--acc);flex-shrink:0}
.faq__item[open] summary::after{content:"–"}
.faq__item p{padding:0 2.4rem 2.2rem;color:var(--muted);font-size:1.55rem}
.faq__item a{color:var(--acc)}

/* Contact */
.contactrow{display:flex;gap:1.6rem;justify-content:center;flex-wrap:wrap;margin-top:3rem}
.contactcard{display:flex;flex-direction:column;gap:.4rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2.4rem 3rem;text-decoration:none;min-width:24rem;transition:transform .18s ease,border-color .18s ease}
.contactcard:hover{transform:translateY(-4px);border-color:rgba(168,85,247,.5)}
.contactcard__icon{font-size:2.6rem;color:var(--acc)}
.contactcard__label{font-size:1.25rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.contactcard__value{font-weight:600;font-size:1.7rem}

/* Footer */
.footer{border-top:1px solid var(--line);padding:4.5rem 0 0;background:#05081c}
.footer__inner{display:flex;justify-content:space-between;gap:3rem;flex-wrap:wrap;margin-bottom:3.5rem}
.footer__note{color:var(--muted);font-size:1.45rem;margin-top:1.2rem}
.footer__links{display:flex;gap:2rem;flex-wrap:wrap;align-content:flex-start}
.footer__links a{color:var(--muted);text-decoration:none;font-size:1.45rem}
.footer__links a:hover{color:var(--txt)}
.footer__bottom{border-top:1px solid var(--line);padding:2rem 0 2.6rem}
.footer__bottom p{color:var(--muted);font-size:1.35rem}

/* Responsive */
@media (max-width:900px){
  .cards3{grid-template-columns:1fr}
  .cards4{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .accessgrid{grid-template-columns:1fr}
  .gallery,.standstrip{grid-template-columns:1fr 1fr}
  .nav__links{position:fixed;top:0;right:0;bottom:0;width:min(78vw,32rem);background:#0a0e2a;flex-direction:column;padding:8rem 3rem;gap:2rem;transform:translateX(100%);transition:transform .25s ease;z-index:60;border-left:1px solid var(--line)}
  .nav__links.open{transform:none}
  .nav__burger{display:flex;z-index:70}
  .nav .btn--sm{display:none}
}
@media (max-width:560px){
  .cards4{grid-template-columns:1fr}
  .gallery,.standstrip{grid-template-columns:1fr}
  .hero__sub{font-size:1.65rem}
  .countdown__box{min-width:calc(50% - .6rem);flex:1}
  .section{padding:5.5rem 0}
}
