:root{
  --bg:#050505;
  --paper:#f4f4f0;
  --muted:#9c9c9c;
  --line:rgba(255,255,255,.15);
  --max:1440px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--paper);
  font-family:Inter,Arial,sans-serif;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{font:inherit}
/* =============================
   ORIGEN INTRO / 3D LOGO
   ============================= */
.origin-intro{
  position:fixed;inset:0;z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:#000;overflow:hidden;
  opacity:1;visibility:visible;
  transition:opacity .85s ease,visibility .85s ease;
}
.origin-intro.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.origin-intro-stage{
  position:relative;width:min(720px,82vw);aspect-ratio:1;
  display:grid;place-items:center;perspective:1200px;
}
.origin-intro-logo{
  position:relative;width:min(650px,78vw);aspect-ratio:2048/1448;
  transform-style:preserve-3d;
  animation:originLogo3D 3.1s cubic-bezier(.45,.05,.25,1) infinite;
  filter:drop-shadow(0 24px 35px rgba(0,0,0,.7));
}
.origin-logo-depth,
.origin-logo-face{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  display:block;transform-style:preserve-3d;
}
.origin-logo-depth img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;
  opacity:.22;
  filter:brightness(.35);
}
.origin-logo-depth img:nth-child(1){transform:translateZ(-3px)}
.origin-logo-depth img:nth-child(2){transform:translateZ(-6px)}
.origin-logo-depth img:nth-child(3){transform:translateZ(-9px)}
.origin-logo-depth img:nth-child(4){transform:translateZ(-12px)}
.origin-logo-depth img:nth-child(5){transform:translateZ(-15px)}
.origin-logo-depth img:nth-child(6){transform:translateZ(-18px)}
.origin-logo-depth img:nth-child(7){transform:translateZ(-21px)}
.origin-logo-depth img:nth-child(8){transform:translateZ(-24px)}
.origin-logo-face{
  transform:translateZ(2px);
  backface-visibility:hidden;
}
.origin-intro-ring{
  position:absolute;border:1px solid rgba(255,255,255,.13);
  border-radius:50%;pointer-events:none;
}
.ring-one{inset:4%;animation:originRing 5s linear infinite}
.ring-two{inset:13%;border-color:rgba(255,255,255,.06);animation:originRingReverse 7s linear infinite}
.origin-intro-name{
  margin-top:-35px;font-size:11px;font-weight:700;letter-spacing:.42em;
  padding-left:.42em;color:#f4f4f0;text-align:center;
}
.origin-intro-name span{font-weight:400;font-size:7px;letter-spacing:.32em;margin-left:5px;color:#9c9c9c}
.origin-intro-line{
  width:90px;height:1px;background:#fff;margin-top:22px;
  transform-origin:left;animation:originLine 2.2s ease-in-out infinite alternate;
}
@keyframes originLogo3D{
  0%{transform:rotateY(0deg) rotateX(2deg) scale(.82)}
  25%{transform:rotateY(90deg) rotateX(-2deg) scale(1)}
  50%{transform:rotateY(180deg) rotateX(2deg) scale(.96)}
  75%{transform:rotateY(270deg) rotateX(-2deg) scale(1)}
  100%{transform:rotateY(360deg) rotateX(2deg) scale(.82)}
}
@keyframes originRing{to{transform:rotate(360deg) scale(1.04)}}
@keyframes originRingReverse{to{transform:rotate(-360deg) scale(.96)}}
@keyframes originLine{from{transform:scaleX(.35);opacity:.25}to{transform:scaleX(1);opacity:1}}
@media (prefers-reduced-motion:reduce){
  .origin-intro-logo,.origin-intro-ring,.origin-intro-line{animation-duration:0s;animation-iteration-count:1}
}
@media(max-width:600px){
  .origin-intro-stage{width:94vw}
  .origin-intro-logo{width:92vw}
  .origin-intro-name{margin-top:-15px}
}

.intro-active{overflow:hidden}

.noise{
  position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
}
.site-header{
  position:fixed;top:0;left:0;width:100%;height:88px;padding:0 4vw;
  display:flex;align-items:center;justify-content:space-between;z-index:40;
  mix-blend-mode:normal;
}
.brand img{width:155px;height:auto;display:block}
.desktop-nav{display:flex;gap:34px;font-size:11px;font-weight:700;letter-spacing:.16em}
.desktop-nav a,.header-cta,.text-link,.socials a{transition:opacity .25s}
.desktop-nav a:hover,.text-link:hover,.socials a:hover{opacity:.55}
.header-cta{
  border:1px solid rgba(255,255,255,.6);padding:12px 19px;
  font-size:10px;letter-spacing:.18em;font-weight:700;
}
.menu-btn{display:none;background:none;border:0;color:white;width:42px;height:42px}
.menu-btn span{display:block;height:1px;background:white;margin:7px 0}
.mobile-menu{display:none}

.hero{height:100svh;min-height:700px;position:relative;overflow:hidden}
.hero-bg,.hero-overlay{position:absolute;inset:0}
.placeholder-bg{
  background-image:url("../images/hero-origen.png");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.hero-overlay{
  background:linear-gradient(to bottom,rgba(0,0,0,.35),rgba(0,0,0,.12) 45%,rgba(0,0,0,.72));
}
.hero-content{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding-top:70px;
}
.eyebrow{font-size:10px;letter-spacing:.28em;font-weight:700;color:#bdbdbd;margin-bottom:18px}
.hero h1{
  font-size:clamp(80px,17vw,260px);line-height:.78;letter-spacing:-.09em;
  font-weight:900;
}
.hero-subtitle{font-size:13px;letter-spacing:.72em;margin:25px 0 35px;padding-left:.72em}
.btn{
  display:inline-flex;align-items:center;gap:22px;padding:15px 21px;
  border:1px solid currentColor;font-size:10px;letter-spacing:.17em;font-weight:800;
  transition:background .25s,color .25s,transform .25s;
}
.btn span{font-size:15px}
.btn:hover{transform:translateY(-2px)}
.btn-light{background:white;color:#050505;border-color:white}
.btn-light:hover{background:transparent;color:white}
.btn-outline:hover{background:white;color:black}
.hero-bottom{
  position:absolute;bottom:27px;left:4vw;right:4vw;display:flex;
  justify-content:space-between;font-size:9px;letter-spacing:.2em;color:#c6c6c6;
}

.section{padding:130px 5vw;max-width:1600px;margin:auto}
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:65px}
.section h2,.contact h2,.vip h2{
  font-size:clamp(55px,8vw,125px);line-height:.82;letter-spacing:-.07em;font-weight:800;
}
.section h2 em,.contact h2 em,.vip h2 em,.manifesto h2 em{font-style:normal;font-weight:300}
.text-link{font-size:10px;letter-spacing:.18em;font-weight:800;padding-bottom:8px;border-bottom:1px solid white}
.text-link span{font-size:14px;margin-left:10px}

.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.fourvenues-wrap{
  background:#0b0b0b;
  border:1px solid #202020;
  padding:26px;
  overflow:hidden;
}
.fourvenues-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 0 22px;
  margin-bottom:6px;
  border-bottom:1px solid #202020;
}
.fourvenues-heading p{
  font-size:9px;
  letter-spacing:.2em;
  font-weight:800;
}
.fourvenues-heading span{
  font-size:8px;
  letter-spacing:.16em;
  color:#777;
}
.fourvenues-calendar{
  width:100%;
  min-height:420px;
  padding-top:10px;
}
.fourvenues-calendar > iframe{
  display:block;
  width:100%;
  min-height:420px;
  border:0;
}
.fourvenues-calendar iframe{
  width:100% !important;
  max-width:100% !important;
  border:0 !important;
}

.event-card{position:relative;overflow:hidden;background:#101010}
.event-image{height:520px;overflow:hidden;background:#111;transition:transform .7s}
.event-image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .7s,filter .4s}
.event-card:hover .event-image img{transform:scale(1.035);filter:brightness(1.08)}
.event-info{
  position:absolute;bottom:0;left:0;right:0;padding:25px;
  display:flex;gap:20px;align-items:start;background:linear-gradient(transparent,rgba(0,0,0,.95));
  padding-top:100px;
}
.event-date{display:flex;gap:5px;align-items:start;min-width:65px}
.event-date strong{font-size:42px;line-height:.8;letter-spacing:-.06em}
.event-date span{font-size:8px;line-height:1.15;letter-spacing:.12em}
.event-tag{font-size:8px;letter-spacing:.2em;color:#bbb;margin-bottom:9px}
.event-info h3{font-size:19px;letter-spacing:-.02em;margin-bottom:8px}
.event-meta{font-size:8px;letter-spacing:.15em;color:#aaa}
.card-arrow{
  position:absolute;right:22px;top:22px;width:42px;height:42px;border:1px solid rgba(255,255,255,.55);
  display:grid;place-items:center;font-size:18px;transition:.25s;
}
.card-arrow:hover{background:white;color:black}

.manifesto{background:#e9e9e4;color:#090909;padding:170px 8vw}
.manifesto-inner{max-width:1000px}
.manifesto .eyebrow{color:#555}
.manifesto h2{font-size:clamp(60px,9vw,140px);line-height:.82;letter-spacing:-.08em}
.manifesto-copy{max-width:560px;margin:50px 0 35px;font-size:16px;line-height:1.7;color:#404040}
.manifesto .btn-outline{border-color:#111}

.gallery{background:#050505}
.gallery-grid{
  display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:380px 380px;gap:12px;
}
.gallery-item{overflow:hidden;position:relative}
.placeholder-photo{
  background:
    linear-gradient(135deg,rgba(255,255,255,.15),transparent 50%),
    linear-gradient(145deg,#383838,#111 50%,#262626);
  transition:transform .5s,filter .5s;
}
.placeholder-photo:hover{transform:scale(.985);filter:brightness(1.2)}
.g1{grid-row:span 2}
.g4{grid-column:span 2}

.vip{min-height:720px;display:grid;grid-template-columns:1.1fr .9fr}
.placeholder-vip{
  background:
    radial-gradient(circle at 55% 45%,rgba(255,255,255,.22),transparent 20%),
    linear-gradient(135deg,#303030,#070707 58%,#242424);
}
.vip-content{display:flex;flex-direction:column;justify-content:center;padding:8vw;background:#111}
.vip-content p:not(.eyebrow){max-width:410px;color:#aaa;line-height:1.7;font-size:15px;margin:35px 0}
.vip-content .btn{width:max-content}

.section-dark{background:#080808}
.contact{padding:150px 8vw}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:45px}
.contact-details span{display:block;color:#777;font-size:9px;letter-spacing:.2em;margin-bottom:12px}
.contact-details a,.contact-details p{font-size:16px;line-height:1.5}
.socials{display:flex;gap:20px;grid-column:span 2;padding-top:15px}
.socials a{font-size:10px;letter-spacing:.16em;font-weight:700}

.footer{
  min-height:120px;border-top:1px solid #202020;padding:35px 5vw;
  display:flex;align-items:center;justify-content:space-between;gap:30px;
}
.footer img{width:130px}
.footer div{display:flex;gap:28px;color:#777;font-size:8px;letter-spacing:.16em}
.footer a:hover{color:white}

@media(max-width:900px){
  .site-header{height:74px;padding:0 20px}
  .brand img{width:120px}
  .desktop-nav,.header-cta{display:none}
  .menu-btn{display:block}
  .mobile-menu{
    position:fixed;inset:0;background:#050505;z-index:35;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:26px;font-size:25px;font-weight:700;letter-spacing:-.03em;
    opacity:0;visibility:hidden;transition:.3s;
  }
  .mobile-menu.open{opacity:1;visibility:visible}
  .hero{min-height:620px}
  .hero h1{font-size:24vw}
  .hero-bottom{font-size:7px;left:20px;right:20px}
  .section{padding:90px 20px}
  .section-head{align-items:start;gap:30px;flex-direction:column}
  .events-grid{grid-template-columns:1fr}
  .fourvenues-wrap{padding:16px}
  .fourvenues-heading{align-items:flex-start;gap:15px;flex-direction:column}
  .fourvenues-calendar{min-height:700px}

  .event-image{height:480px}
  .manifesto{padding:100px 20px}
  .manifesto-copy{font-size:14px;margin:35px 0}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:260px 260px 260px}
  .g1{grid-row:span 2}
  .g4{grid-column:span 1}
  .vip{min-height:800px;grid-template-columns:1fr}
  .placeholder-vip{min-height:420px}
  .vip-content{padding:70px 20px}
  .contact{padding:100px 20px}
  .contact-inner{grid-template-columns:1fr;gap:60px}
  .contact-details{grid-template-columns:1fr;gap:30px}
  .socials{grid-column:auto;flex-wrap:wrap}
  .footer{padding:30px 20px;align-items:start;flex-direction:column}
  .footer div{flex-wrap:wrap}
}

@media(max-width:480px){
  .hero-subtitle{font-size:10px;letter-spacing:.55em}
  .event-image{height:420px}
  .gallery-grid{display:grid;grid-template-columns:1fr;grid-template-rows:300px 300px 300px 300px 300px}
  .g1,.g4{grid-row:auto;grid-column:auto}
  .section h2,.contact h2,.vip h2{font-size:20vw}
}

.fourvenues-error{padding:50px 10px;text-align:center;color:#aaa;font-size:11px;letter-spacing:.12em}
.fourvenues-error p{margin-bottom:18px}
.fourvenues-error a{color:#fff;font-size:9px;letter-spacing:.16em;font-weight:800}

/* Main navigation */
.desktop-nav {
  gap: 28px;
}

.desktop-nav a {
  white-space: nowrap;
}

/* Contact social icons */
.socials {
  display: flex;
  align-items: center;
  gap: 14px;
}

.social-icon {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
}

.social-icon:hover {
  transform: translateY(-2px);
  background: #fff;
  color: #000;
  border-color: #fff;
}

.social-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.location-link {
  display: inline-block;
}

.location-link span {
  display: inline-block;
  margin-left: 6px;
}

@media (max-width: 1100px) {
  .desktop-nav {
    gap: 18px;
  }

  .desktop-nav a {
    font-size: 10px;
  }
}

/* =============================
   RESERVA / MAPA 3D INTERACTIVO
   ============================= */
.reservation-section{padding:140px 5vw 150px;background:#070707;position:relative;overflow:hidden}
.reservation-head{max-width:1500px;margin:0 auto 55px;display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end}
.reservation-head h2{font-size:clamp(58px,8vw,125px);line-height:.82;letter-spacing:-.07em;font-weight:800}
.reservation-head h2 em{font-style:normal;font-weight:300}
.reservation-intro{max-width:470px;color:#999;font-size:14px;line-height:1.8;margin-bottom:5px}
.reservation-layout{max-width:1500px;margin:auto;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,.55fr);gap:18px;align-items:stretch}
.club-map{position:relative;min-height:690px;background:#030303;border:1px solid #242424;overflow:hidden;touch-action:none;cursor:grab;user-select:none}
.club-map.is-dragging{cursor:grabbing}
.map-viewport{position:absolute;inset:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.map-canvas{position:absolute;width:min(1000px,90vw);aspect-ratio:1;transform:translate3d(0,0,0) scale(1);transform-origin:center center;will-change:transform}
.map-canvas>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
.map-toolbar{position:absolute;z-index:10;top:20px;right:20px;display:flex;gap:7px}
.map-control{width:42px;height:42px;border:1px solid rgba(255,255,255,.28);background:rgba(0,0,0,.72);color:#fff;cursor:pointer;font-size:19px;backdrop-filter:blur(10px);transition:.2s}
.map-control:hover{background:#fff;color:#000}
.map-hint{position:absolute;z-index:10;left:20px;bottom:18px;font-size:8px;letter-spacing:.16em;color:#8f8f8f;background:rgba(0,0,0,.68);padding:10px 12px;pointer-events:none}
.table-marker{position:absolute;z-index:4;transform:translate(-50%,-50%);border:0;background:transparent;color:#fff;cursor:pointer;padding:8px;display:flex;flex-direction:column;align-items:center;gap:7px;transition:transform .2s}
.marker-dot{width:23px;height:23px;border-radius:50%;background:#fff;border:3px solid rgba(255,255,255,.42);box-shadow:0 0 0 6px rgba(255,255,255,.12),0 0 25px rgba(255,255,255,.3)}
.marker-label{font-size:8px;font-weight:800;letter-spacing:.13em;white-space:nowrap;background:rgba(0,0,0,.78);border:1px solid rgba(255,255,255,.2);padding:7px 9px;backdrop-filter:blur(8px)}
.table-marker:hover,.table-marker.is-selected{transform:translate(-50%,-50%) scale(1.12);z-index:8}
.table-marker.is-selected .marker-dot{background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.16),0 0 35px rgba(255,255,255,.55)}
.table-marker.is-selected .marker-label{background:#fff;color:#000}
.reservation-panel{border:1px solid #242424;background:#0b0b0b;padding:38px;display:flex;flex-direction:column;justify-content:center;min-height:690px}
.reservation-panel h3{font-size:29px;letter-spacing:-.04em;margin-bottom:18px}
.reservation-panel>p:not(.eyebrow){color:#888;font-size:13px;line-height:1.7;margin-bottom:25px}
.reservation-status{font-size:8px;letter-spacing:.15em;color:#aaa;display:flex;align-items:center;gap:9px;margin-bottom:28px}
.reservation-status span{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 12px rgba(255,255,255,.65)}
.reservation-action{width:100%;justify-content:center}
.reservation-action:disabled{opacity:.45;cursor:not-allowed;transform:none}
.reservation-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;opacity:0;visibility:hidden;transition:.25s}
.reservation-modal.open{opacity:1;visibility:visible}
.reservation-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}
.reservation-dialog{position:relative;width:min(500px,calc(100% - 36px));background:#101010;border:1px solid #2a2a2a;padding:38px;z-index:1;box-shadow:0 25px 100px rgba(0,0,0,.6)}
.reservation-close{position:absolute;right:16px;top:12px;border:0;background:none;color:#fff;font-size:27px;cursor:pointer}
.reservation-dialog h3{font-size:38px;letter-spacing:-.06em;margin-bottom:12px}
.reservation-dialog>p:not(.eyebrow):not(.reservation-note){color:#888;font-size:12px;line-height:1.6;margin-bottom:25px}
#reservationForm{display:grid;gap:14px}
#reservationForm label{display:grid;gap:7px;font-size:8px;letter-spacing:.15em;color:#999}
#reservationForm input{width:100%;border:1px solid #292929;background:#080808;color:#fff;padding:14px;font:inherit;font-size:13px;letter-spacing:0;outline:none}
#reservationForm input:focus{border-color:#fff}
#reservationForm .btn{justify-content:center;margin-top:8px}
.reservation-note{font-size:9px!important;color:#666!important;line-height:1.5;margin:18px 0 0!important}
@media(max-width:1000px){
  .reservation-head{grid-template-columns:1fr;gap:28px}
  .reservation-layout{grid-template-columns:1fr}
  .club-map{min-height:620px}
  .reservation-panel{min-height:0;padding:30px}
}
@media(max-width:600px){
  .reservation-section{padding:95px 20px 110px}
  .reservation-head{margin-bottom:35px}
  .reservation-layout{gap:12px}
  .club-map{min-height:520px}
  .map-canvas{width:850px}
  .map-toolbar{top:12px;right:12px}
  .map-control{width:38px;height:38px}
  .map-hint{left:12px;bottom:12px;font-size:7px}
  .marker-label{font-size:7px;padding:6px 7px}
  .marker-dot{width:19px;height:19px}
  .reservation-dialog{padding:30px 24px}
}

/* =============================
   RESERVA / 3D WEBGL EXPERIENCE
   ============================= */
.reservation-layout-3d{grid-template-columns:minmax(0,1.75fr) minmax(300px,.55fr)}
.club-map-3d{min-height:720px;background:#020204;border:1px solid #222;position:relative;overflow:hidden;cursor:grab;touch-action:none}
.club-map-3d:active{cursor:grabbing}
.club-scene{position:absolute;inset:0;overflow:hidden}
.club-scene canvas{display:block;width:100%!important;height:100%!important}
.map-badge{position:absolute;z-index:5;top:22px;left:22px;font-size:8px;letter-spacing:.18em;color:#a8b7df;border:1px solid rgba(132,153,220,.28);background:rgba(2,3,7,.7);padding:10px 12px;backdrop-filter:blur(10px);pointer-events:none}
.club-map-3d .map-toolbar{top:18px;right:18px}
.club-map-3d .map-hint{bottom:18px;left:18px;z-index:5}
.scene-loading{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#020204;color:#aeb7d1;font-size:9px;letter-spacing:.2em;transition:opacity .55s ease;pointer-events:none}
.scene-loading span{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 20px rgba(87,121,255,.9);margin-right:10px}
.scene-loading.is-ready{opacity:0}
@media(max-width:1000px){.reservation-layout-3d{grid-template-columns:1fr}.club-map-3d{min-height:620px}}
@media(max-width:600px){.club-map-3d{min-height:520px}.map-badge{top:12px;left:12px;font-size:7px}.club-map-3d .map-hint{left:12px;bottom:12px;font-size:7px}}
