@font-face{font-family:HelveticaNeue;src:url('fonts/HelveticaNeue-Roman.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:HelveticaNeue;src:url('fonts/HelveticaNeue-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Jabbing;src:url('fonts/JabbingDemoRegular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:dark;background:#000}
*{box-sizing:border-box}
html,body{width:100%;min-height:100%;margin:0;background:#000}
body{font-family:HelveticaNeue,Arial,sans-serif;color:#f1f1f1;overflow:hidden}
.landing{position:relative;min-height:100svh;min-height:100vh;background:#000;isolation:isolate;overflow:hidden}
.landing:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 45% at 50% 46%,rgba(37,4,5,.17),transparent 67%);pointer-events:none}
.ambient{position:absolute;width:72vw;height:42vw;max-width:1300px;max-height:680px;border:1px solid rgba(130,12,18,.11);border-radius:50%;filter:blur(.1px);pointer-events:none;z-index:-1}
.ambient--one{top:-14vw;left:-23vw;transform:rotate(-12deg)}
.ambient--two{right:-28vw;bottom:-18vw;transform:rotate(17deg)}
.hero{width:100%;min-height:100svh;min-height:100vh;display:grid;place-items:center;padding:7vh 28px 6vh}
.hero-inner{width:min(100%,980px);display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateY(-2.5vh)}
.event-logo{display:block;width:min(58vw,610px);min-width:260px;height:auto;opacity:0;filter:drop-shadow(0 0 20px rgba(255,255,255,.035));animation:logoReveal 3.7s cubic-bezier(.22,.7,.2,1) forwards}
@keyframes logoReveal{0%{opacity:0;transform:scale(.975);filter:blur(8px) drop-shadow(0 0 0 rgba(255,255,255,0))}35%{opacity:.28;filter:blur(2px) drop-shadow(0 0 8px rgba(255,255,255,.02))}72%{opacity:.76;transform:scale(1.006);filter:blur(.4px) drop-shadow(0 0 18px rgba(255,255,255,.03))}100%{opacity:1;transform:scale(1);filter:blur(0) drop-shadow(0 0 20px rgba(255,255,255,.035))}}



.registration-wrap{
  margin-top:60px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  opacity:0;
  transform:translateY(10px);
  animation:registrationReveal 1.1s ease 3.85s forwards;
}
.registration-title{
  margin:0 0 22px;
  font-family:Jabbing,HelveticaNeue,Arial,sans-serif;
  font-size:clamp(11px,1.05vw,15px);
  line-height:1.2;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(238,238,238,.72);
}
.registration-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
}
.registration-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:12px 18px;
  border:1px solid rgba(255,255,255,.22);
  font-family:HelveticaNeue,Arial,sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
.registration-button--primary{
  color:#fff;
  background:#e30613;
  border-color:#e30613;
}
.registration-button--primary:hover{
  background:#f20a18;
  border-color:#f20a18;
  transform:translateY(-1px);
}
.registration-button--secondary{
  color:rgba(255,255,255,.86);
  background:rgba(255,255,255,.025);
}
.registration-button--secondary:hover{
  color:#fff;
  border-color:rgba(255,255,255,.48);
  background:rgba(255,255,255,.07);
  transform:translateY(-1px);
}

.terms-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease,visibility .25s ease;
}
.terms-modal.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}
.terms-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(5px);
}
.terms-dialog{
  position:relative;
  z-index:1;
  width:min(760px,100%);
  max-height:min(82vh,760px);
  overflow:hidden;
  background:#090909;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 25px 80px rgba(0,0,0,.65);
  outline:none;
}
.terms-content{
  max-height:min(82vh,760px);
  overflow-y:auto;
  padding:38px 42px 42px;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.22) transparent;
}
.terms-eyebrow{
  margin:0 0 10px;
  font-family:Jabbing,HelveticaNeue,Arial,sans-serif;
  font-size:10px;
  letter-spacing:.17em;
  color:rgba(238,238,238,.48);
  text-transform:uppercase;
}
.terms-content h2{
  margin:0 40px 26px 0;
  font-family:HelveticaNeue,Arial,sans-serif;
  font-size:clamp(22px,2.3vw,31px);
  font-weight:400;
  line-height:1.08;
  color:#f3f3f3;
}
.terms-content h3{
  margin:26px 0 14px;
  font-family:HelveticaNeue,Arial,sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#fff;
}
.terms-content p,
.terms-content li{
  font-family:HelveticaNeue,Arial,sans-serif;
  font-size:14px;
  line-height:1.65;
  color:rgba(238,238,238,.73);
}
.terms-content p{margin:0 0 18px}
.terms-content ul{
  margin:0;
  padding-left:20px;
}
.terms-content li{margin:0 0 14px}
.terms-content strong{color:#f2f2f2}
.terms-content em{font-style:italic}
.terms-close{
  position:absolute;
  z-index:2;
  top:13px;
  right:15px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.72);
  font-family:Arial,sans-serif;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.terms-close:hover{color:#fff}

body.modal-open{overflow:hidden}

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

@media (max-width:600px){
  .hero{padding:8vh 20px 7vh}
  .hero-inner{transform:translateY(-1vh)}
  .event-logo{width:min(82vw,480px);min-width:0}
  .registration-wrap{margin-top:60px}
  .registration-title{font-size:10px;letter-spacing:.10em;margin-bottom:18px}
  .registration-actions{flex-direction:column;gap:9px;width:100%}
  .registration-button{width:min(270px,100%);min-height:40px;font-size:10px}
  .terms-modal{padding:12px}
  .terms-dialog{max-height:90vh}
  .terms-content{max-height:90vh;padding:34px 24px 28px}
  .terms-content p,.terms-content li{font-size:13px;line-height:1.6}
}
