:root{
  --red:#e31b2b;
  --red-bright:#f21f32;
  --black:#080808;
  --black2:#0d0d0d;
  --white:#f3f1eb;
  --gray:#898989;
  --line:#292929;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:76px;
}

body{
  margin:0;
  background:var(--black);
  color:var(--white);
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:hidden;
}

::selection{
  background:var(--red);
  color:#fff;
}

img{
  max-width:100%;
}

.noise{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.035;
  z-index:100;
  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='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}

.cursor-glow{
  position:fixed;
  width:450px;
  height:450px;
  border-radius:50%;
  pointer-events:none;
  z-index:-1;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,#e31b2b12 0%,transparent 65%);
}

.intro{
  position:fixed;
  inset:0;
  background:#050505;
  z-index:999;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  transition:opacity .7s ease,visibility .7s;
}

.intro.hide{
  opacity:0;
  visibility:hidden;
}

.intro img{
  width:95px;
  height:95px;
  object-fit:contain;
}

.intro span{
  font-weight:1000;
  letter-spacing:.35em;
  font-size:11px;
}

/* HEADER */

header{
  height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5vw;
  border-bottom:1px solid #262626;
  position:fixed;
  inset:0 0 auto;
  background:#080808dc;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  z-index:50;
}

.brand{
  display:flex;
  align-items:center;
  gap:11px;
  color:white;
  text-decoration:none;
  letter-spacing:.1em;
  font-size:13px;
}

.brand img{
  width:38px;
  height:38px;
  object-fit:contain;
}

nav{
  display:flex;
  gap:25px;
}

nav a{
  color:#aaa;
  text-decoration:none;
  text-transform:uppercase;
  font-size:9px;
  font-weight:900;
  letter-spacing:.18em;
  transition:.25s;
}

nav a:hover{
  color:white;
}

/* BUTTONS */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--red);
  color:#fff;
  border:0;
  text-decoration:none;
  padding:17px 23px;
  font-weight:1000;
  letter-spacing:.08em;
  font-size:12px;
  cursor:pointer;
  transition:
    transform .2s,
    background .2s,
    box-shadow .2s;
  position:relative;
  overflow:hidden;
}

.btn:hover{
  transform:translateY(-2px);
  background:var(--red-bright);
  box-shadow:0 14px 35px #e31b2b28;
}

.btn:disabled{
  opacity:.5;
  cursor:not-allowed;
  transform:none;
}

.small{
  padding:11px 17px;
  font-size:10px;
}

.register-type{
  font-family:"Arial Narrow","Helvetica Neue Condensed",Impact,sans-serif;
  font-style:italic;
  text-transform:uppercase;
  font-weight:1000;
  letter-spacing:.035em;
  transform:skew(-3deg);
}

.register-type:hover{
  transform:skew(-3deg) translateY(-2px);
}

.submit-register{
  font-size:16px;
  min-height:58px;
  letter-spacing:.025em;
}

/* COMMON */

.eyebrow{
  color:var(--red);
  font-size:10px;
  font-weight:900;
  letter-spacing:.25em;
  margin-bottom:20px;
  text-transform:uppercase;
}

.eyebrow i{
  display:inline-block;
  width:20px;
  height:1px;
  background:var(--red);
  vertical-align:middle;
  margin:0 8px;
}

.hero h1,
.event h2,
.prize h2,
.teams h2,
.path-section h2,
.vision h2,
.champions h2,
.media h2,
.rules h2,
.faq h2,
.register h2,
.manifesto h2{
  margin:0 0 30px;
  line-height:.78;
  letter-spacing:-.075em;
  font-weight:1000;
  text-transform:uppercase;
}

.hero h1 span,
.event h2 span,
.prize h2 span,
.teams h2 span,
.path-section h2 span,
.vision h2 span,
.champions h2 span,
.media h2 span,
.rules h2 span,
.faq h2 span,
.register h2 span,
.manifesto h2 span{
  color:var(--red);
}

/* HERO */

.hero{
  min-height:100svh;
  padding:150px 7vw 120px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 35%,#401016 0,transparent 27%),
    linear-gradient(115deg,#080808 60%,#0e0e0e);
}

.hero-grid{
  position:absolute;
  inset:0;
  opacity:.16;
  background-image:
    linear-gradient(#ffffff10 1px,transparent 1px),
    linear-gradient(90deg,#ffffff10 1px,transparent 1px);
  background-size:70px 70px;
  -webkit-mask-image:linear-gradient(to bottom,black,transparent 85%);
  mask-image:linear-gradient(to bottom,black,transparent 85%);
}

.court-lines{
  position:absolute;
  width:620px;
  height:620px;
  border:1px solid #ffffff10;
  border-radius:50%;
  right:-130px;
  top:120px;
}

.court-lines:before{
  content:"";
  position:absolute;
  left:50%;
  top:-300px;
  width:1px;
  height:1200px;
  background:#ffffff0d;
}

.court-lines:after{
  content:"";
  position:absolute;
  inset:120px;
  border:1px solid #ffffff0c;
  border-radius:50%;
}

.hero-orbit{
  position:absolute;
  border-radius:50%;
  border:1px solid #e31b2b18;
  pointer-events:none;
}

.orbit-one{
  width:800px;
  height:800px;
  right:-420px;
  top:60px;
}

.orbit-two{
  width:1050px;
  height:1050px;
  right:-560px;
  top:-60px;
}

.hero-copy{
  position:relative;
  z-index:2;
}

.hero h1{
  font-size:clamp(64px,10.5vw,160px);
}

.hero p{
  font-size:17px;
  color:#aaa;
  margin:0;
}

.facts{
  display:flex;
  align-items:center;
  gap:16px;
  margin:22px 0 34px;
  font-size:11px;
  letter-spacing:.14em;
}

.facts i{
  width:3px;
  height:3px;
  background:var(--red);
  border-radius:50%;
}

.hero-actions{
  display:flex;
  align-items:center;
  gap:25px;
}

.text-link{
  color:#aaa;
  text-decoration:none;
  font-size:9px;
  font-weight:900;
  letter-spacing:.15em;
}

.text-link span{
  color:var(--red);
  margin-left:8px;
}

.hero-badge{
  position:absolute;
  right:7vw;
  top:150px;
  width:150px;
  height:150px;
  border:1px solid #ffffff18;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:2;
}

.hero-badge span,
.hero-badge small{
  font-size:7px;
  letter-spacing:.18em;
  color:#777;
}

.hero-badge b{
  font-size:47px;
  line-height:1;
  color:var(--red);
  letter-spacing:-.08em;
}

.hero-mark{
  position:absolute;
  right:4vw;
  bottom:-7vw;
  font-size:31vw;
  line-height:1;
  font-weight:1000;
  letter-spacing:-.1em;
  color:#ffffff05;
  pointer-events:none;
}

.meter{
  position:absolute;
  right:7vw;
  bottom:80px;
  width:min(360px,35vw);
}

.meter>div:first-child{
  display:flex;
  align-items:end;
  gap:12px;
}

.meter b{
  font-size:28px;
  letter-spacing:-.05em;
}

.meter small,
.meter em{
  font-size:9px;
  letter-spacing:.18em;
  color:#777;
  font-style:normal;
}

.track{
  height:2px;
  background:#333;
  margin-top:10px;
}

.track span{
  display:block;
  height:100%;
  width:0;
  background:var(--red);
  transition:width 1.2s cubic-bezier(.2,.8,.2,1);
}

.meter em{
  display:block;
  margin-top:11px;
}

/* STATUS */

.status-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid #272727;
  border-bottom:1px solid #272727;
  background:#0d0d0d;
}

.status-strip>div{
  padding:23px 3vw;
  border-right:1px solid #272727;
}

.status-strip>div:last-child{
  border-right:0;
}

.status-strip span{
  display:block;
  font-size:8px;
  letter-spacing:.18em;
  color:#666;
  margin-bottom:8px;
}

.status-strip b{
  display:block;
  font-size:12px;
  letter-spacing:.06em;
  line-height:1.25;
}

/* EVENT */

.event,
.register{
  padding:130px 7vw;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:9vw;
  background:var(--white);
  color:#090909;
}

.event h2,
.register h2{
  font-size:clamp(58px,7.5vw,115px);
}

.event-number{
  display:inline-block;
  color:#111;
  font-size:11px;
  letter-spacing:.2em;
  font-weight:1000;
  margin-bottom:18px;
  border-bottom:2px solid var(--red);
  padding-bottom:7px;
}

.lede{
  max-width:430px;
  color:#555;
  font-size:17px;
  line-height:1.55;
}

.event-secondary{
  max-width:420px;
  color:#8a8a8a;
  font-size:13px;
  line-height:1.6;
}

.event-tag{
  display:inline-block;
  margin-top:34px;
  padding:9px 12px;
  border:1px solid #bbb;
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
}

.details{
  align-self:end;
  border-top:4px solid #111;
}

.details>div{
  padding:18px 0;
  border-bottom:1px solid #bbb;
  display:grid;
  grid-template-columns:120px 1fr;
  align-items:center;
}

.details span{
  font-size:9px;
  letter-spacing:.18em;
  color:#777;
  font-weight:900;
}

.details b{
  font-size:17px;
}

.details small{
  grid-column:2;
  color:#888;
  font-size:9px;
  letter-spacing:.1em;
  margin-top:4px;
}

.details .price strong{
  font-size:68px;
  color:var(--red);
  letter-spacing:-.07em;
}

/* TICKER */

.ticker{
  overflow:hidden;
  background:var(--red);
  color:white;
  padding:14px 0;
  white-space:nowrap;
  transform:rotate(-1deg) scale(1.02);
}

.ticker div{
  font-size:13px;
  font-weight:1000;
  letter-spacing:.1em;
  animation:ticker 22s linear infinite;
}

.ticker i{
  font-style:normal;
  font-size:7px;
  margin:0 22px;
}

@keyframes ticker{
  to{
    transform:translateX(-50%);
  }
}

/* PRIZE */

.prize{
  padding:140px 7vw 120px;
  position:relative;
}

.prize h2{
  font-size:clamp(62px,8vw,125px);
}

.cash{
  position:absolute;
  right:7vw;
  top:145px;
  text-align:right;
}

.cash span,
.cash small{
  display:block;
  font-size:9px;
  letter-spacing:.22em;
  color:#777;
}

.cash strong{
  display:block;
  color:var(--red);
  font-size:clamp(65px,9vw,140px);
  letter-spacing:-.08em;
  line-height:.8;
}

.prize-callout{
  max-width:430px;
  margin:42px 0 0;
}

.prize-callout span{
  font-size:8px;
  letter-spacing:.2em;
  color:var(--red);
}

.prize-callout b{
  display:block;
  font-size:17px;
  letter-spacing:.04em;
  margin:8px 0;
}

.prize-callout p{
  margin:0;
  color:#7e7e7e;
  line-height:1.6;
  font-size:13px;
}

.prizes{
  margin-top:75px;
  border-top:1px solid #333;
  display:grid;
  grid-template-columns:1fr 1fr;
}

.prizes span{
  padding:24px 0;
  border-bottom:1px solid #333;
  color:var(--red);
  font-size:10px;
}

.prizes span:nth-child(odd){
  border-right:1px solid #333;
  padding-right:25px;
}

.prizes span:nth-child(even){
  padding-left:25px;
}

.prizes b{
  color:white;
  font-size:12px;
  letter-spacing:.1em;
  margin-left:20px;
}

.prizes .wide{
  grid-column:1/-1;
  border-right:0!important;
}

/* TEAMS */

.teams{
  padding:130px 7vw;
  background:#101010;
}

.section-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
}

.teams h2{
  font-size:clamp(62px,8vw,120px);
}

.spots{
  text-align:right;
  margin-bottom:35px;
}

.spots b{
  display:block;
  font-size:50px;
  letter-spacing:-.07em;
}

.spots b span{
  color:var(--red);
}

.spots small{
  font-size:9px;
  letter-spacing:.2em;
  color:#666;
}

.teams-header-copy{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:30px;
  margin-bottom:38px;
}

.teams-intro{
  max-width:520px;
  color:#707070;
  font-size:13px;
  line-height:1.6;
  margin:0;
}

.team-claim-link{
  color:var(--red);
  text-decoration:none;
  font-size:9px;
  letter-spacing:.15em;
  font-weight:1000;
  white-space:nowrap;
}

.teamgrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border-top:1px solid #333;
}

.team{
  min-height:138px;
  padding:25px 8px;
  border-bottom:1px solid #333;
  display:grid;
  grid-template-columns:55px 1fr auto;
  align-items:center;
  transition:background .25s,padding .25s;
}

.team:nth-child(odd){
  border-right:1px solid #333;
  padding-right:28px;
}

.team:nth-child(even){
  padding-left:28px;
}

.team:hover{
  background:#171717;
}

.num{
  color:var(--red);
  font-size:11px;
  font-weight:900;
}

.team h3{
  margin:0 0 8px;
  font-size:25px;
  letter-spacing:-.03em;
}

.team p{
  margin:0;
  color:#777;
  font-size:11px;
}

.team.open h3{
  color:#555;
}

.team a{
  color:var(--red);
  text-decoration:none;
  font-size:10px;
  font-weight:900;
}

/* PATH */

.path-section{
  padding:140px 7vw;
  background:#090909;
}

.path-copy{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:8vw;
  align-items:end;
}

.path-copy .eyebrow{
  grid-column:1/-1;
}

.path-section h2{
  font-size:clamp(60px,8vw,125px);
}

.path-copy p{
  color:#767676;
  max-width:460px;
  line-height:1.65;
}

.path-steps{
  margin-top:75px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:4px solid var(--red);
}

.path-steps>div{
  padding:28px 22px 38px 0;
  min-height:230px;
  border-right:1px solid #2f2f2f;
}

.path-steps>div+div{
  padding-left:22px;
}

.path-steps>div:last-child{
  border-right:0;
}

.path-steps span{
  display:block;
  color:var(--red);
  font-size:10px;
  font-weight:1000;
  margin-bottom:65px;
}

.path-steps b{
  display:block;
  font-size:22px;
  letter-spacing:-.03em;
}

.path-steps p{
  color:#717171;
  font-size:12px;
  line-height:1.55;
  max-width:190px;
}

.overtime-banner{
  margin-top:60px;
  border:1px solid #333;
  border-left:5px solid var(--red);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  padding:30px;
  align-items:center;
}

.overtime-banner span{
  display:block;
  color:var(--red);
  font-size:9px;
  letter-spacing:.18em;
  font-weight:1000;
}

.overtime-banner strong{
  display:block;
  margin-top:8px;
  font-size:clamp(24px,4vw,52px);
  letter-spacing:-.05em;
}

.overtime-banner p{
  color:#777;
  line-height:1.6;
  margin:0;
}

/* VISION */

.vision{
  padding:140px 7vw;
  background:var(--white);
  color:#090909;
}

.vision h2{
  font-size:clamp(55px,7.7vw,120px);
}

.vision-copy{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  align-items:end;
  gap:8vw;
}

.vision-copy .eyebrow{
  grid-column:1/-1;
}

.vision-copy p{
  color:#686868;
  line-height:1.65;
  max-width:480px;
}

.ladder{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:75px;
  border-top:4px solid #111;
}

.ladder div{
  padding:25px 20px 35px 0;
  border-right:1px solid #c5c5c5;
  min-height:190px;
}

.ladder div+div{
  padding-left:20px;
}

.ladder div:last-child{
  border-right:0;
}

.ladder span{
  display:block;
  color:var(--red);
  font-size:10px;
  font-weight:900;
  margin-bottom:55px;
}

.ladder b{
  display:block;
  font-size:20px;
}

.ladder small{
  display:block;
  color:#777;
  margin-top:9px;
  line-height:1.4;
}

.city-road-label{
  margin-top:60px;
  font-size:8px;
  letter-spacing:.2em;
  color:#777;
  font-weight:900;
}

.cityline{
  margin-top:14px;
  border-top:1px solid #bbb;
  border-bottom:1px solid #bbb;
  padding:25px 0;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:17px;
  font-weight:1000;
  font-size:clamp(14px,2vw,28px);
  letter-spacing:-.04em;
}

.cityline i{
  font-size:8px;
  letter-spacing:.15em;
  color:var(--red);
  font-style:normal;
}

/* CHAMPIONS */

.champions{
  padding:140px 7vw;
  background:#0b0b0b;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:8vw;
  align-items:center;
}

.champions h2{
  font-size:clamp(55px,7.5vw,115px);
}

.champions-copy p{
  max-width:430px;
  color:#737373;
  line-height:1.6;
}

.champion-placeholder{
  min-height:370px;
  border:1px solid #303030;
  border-top:5px solid var(--red);
  position:relative;
  display:flex;
  align-items:end;
  padding:35px;
  overflow:hidden;
  background:
    radial-gradient(circle at 80% 30%,#4c101655,transparent 28%),
    linear-gradient(135deg,#111,#080808);
}

.champion-number{
  position:absolute;
  left:28px;
  top:25px;
  color:var(--red);
  font-size:10px;
  font-weight:1000;
  letter-spacing:.15em;
}

.champion-placeholder span{
  display:block;
  color:#777;
  font-size:8px;
  letter-spacing:.18em;
}

.champion-placeholder strong{
  display:block;
  font-size:clamp(30px,5vw,65px);
  letter-spacing:-.055em;
  margin-top:8px;
}

.champion-placeholder small{
  display:block;
  margin-top:8px;
  color:#666;
  letter-spacing:.12em;
}

.champion-mark{
  position:absolute;
  right:25px;
  top:-15px;
  font-size:220px;
  line-height:1;
  font-weight:1000;
  color:#ffffff05;
}

/* MEDIA */

.media{
  padding:140px 7vw;
  background:#090909;
}

.media h2{
  font-size:clamp(55px,7.7vw,120px);
}

.media-copy{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:8vw;
  align-items:end;
}

.media-copy .eyebrow{
  grid-column:1/-1;
}

.media-copy p{
  color:#747474;
  line-height:1.6;
  max-width:470px;
}

.media-subline{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:45px;
}

.media-subline span{
  border:1px solid #333;
  padding:8px 11px;
  color:#707070;
  font-size:8px;
  letter-spacing:.15em;
  font-weight:900;
}

.media-grid{
  margin-top:45px;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:12px;
}

.media-card{
  grid-column:span 6;
  min-height:340px;
  border:1px solid #292929;
  background:
    radial-gradient(circle at 75% 25%,#64141c44,transparent 25%),
    linear-gradient(135deg,#111,#070707);
  overflow:hidden;
  position:relative;
  padding:30px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.media-card.big{
  grid-column:span 8;
  min-height:480px;
}

.media-card.red-card{
  grid-column:span 4;
  background:var(--red);
}

.media-card span{
  color:var(--red);
  font-size:8px;
  letter-spacing:.18em;
  font-weight:900;
  margin-bottom:9px;
}

.media-card.red-card span{
  color:white;
}

.media-card b{
  font-size:clamp(24px,4vw,50px);
  letter-spacing:-.05em;
  max-width:620px;
}

.media-card p{
  color:#777;
  max-width:470px;
  line-height:1.5;
  font-size:12px;
}

.media-card i{
  position:absolute;
  right:28px;
  top:28px;
  width:50px;
  height:50px;
  border:1px solid #ffffff2f;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-style:normal;
}

.media-card a{
  position:absolute;
  inset:0;
  font-size:0;
}

.media-photo{
  background-size:cover!important;
  background-position:center!important;
}

.media-photo:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(transparent 35%,#000d);
  pointer-events:none;
}

.media-photo>*{
  position:relative;
  z-index:1;
}

/* RULES */

.rules{
  padding:140px 7vw;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:9vw;
  background:#101010;
}

.rules h2{
  font-size:clamp(55px,7.7vw,120px);
}

.rules>div:first-child p{
  color:#747474;
  max-width:420px;
  line-height:1.6;
}

.rule-highlight{
  margin-top:45px;
  border-top:1px solid #333;
  padding-top:25px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px 22px;
  align-items:center;
}

.rule-highlight span{
  color:#666;
  font-size:8px;
  letter-spacing:.15em;
  font-weight:900;
}

.rule-highlight b{
  font-size:15px;
  letter-spacing:.04em;
}

.rule-list{
  border-top:1px solid #333;
}

.rule-list details{
  border-bottom:1px solid #333;
}

.rule-list summary{
  list-style:none;
  cursor:pointer;
  padding:27px 0;
  font-size:18px;
  font-weight:900;
  letter-spacing:.03em;
  display:flex;
  gap:25px;
}

.rule-list summary::-webkit-details-marker{
  display:none;
}

.rule-list summary:after{
  content:"+";
  margin-left:auto;
  color:var(--red);
}

.rule-list details[open] summary:after{
  content:"−";
}

.rule-list summary span{
  color:var(--red);
  font-size:10px;
  padding-top:5px;
}

.rule-list p{
  color:#888;
  line-height:1.65;
  padding:0 45px 25px;
  margin:0;
}

/* FAQ */

.faq{
  padding:130px 7vw;
  background:#0b0b0b;
}

.faq h2{
  font-size:clamp(55px,7.7vw,120px);
}

.faq-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid #333;
}

.faq-grid details{
  border-bottom:1px solid #333;
  padding:0 22px 0 0;
}

.faq-grid details:nth-child(even){
  padding-left:22px;
  border-left:1px solid #333;
}

.faq-grid summary{
  list-style:none;
  cursor:pointer;
  padding:25px 0;
  font-weight:900;
  font-size:15px;
}

.faq-grid summary::-webkit-details-marker{
  display:none;
}

.faq-grid summary:after{
  content:"+";
  float:right;
  color:var(--red);
}

.faq-grid details[open] summary:after{
  content:"−";
}

.faq-grid p{
  color:#777;
  line-height:1.55;
  margin:0 0 26px;
  max-width:540px;
}

/* REGISTER */

.register{
  position:relative;
}

.register-copy{
  position:sticky;
  top:130px;
  align-self:start;
}

.register p{
  color:#666;
  max-width:400px;
  line-height:1.6;
}

.registration-note{
  display:flex;
  align-items:center;
  gap:15px;
  margin-top:45px;
}

.registration-note b{
  font-size:60px;
  color:var(--red);
  letter-spacing:-.08em;
}

.registration-note span{
  font-size:9px;
  letter-spacing:.15em;
  font-weight:900;
}

.register-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:28px;
}

.register-meta span{
  font-size:8px;
  letter-spacing:.14em;
  border:1px solid #bbb;
  padding:8px 10px;
  color:#666;
  font-weight:900;
}

.registration-process{
  margin-top:40px;
  border-top:1px solid #bbb;
}

.registration-process>div{
  display:grid;
  grid-template-columns:40px 1fr;
  gap:10px;
  padding:14px 0;
  border-bottom:1px solid #ccc;
}

.registration-process span{
  color:var(--red);
  font-size:9px;
  font-weight:1000;
}

.registration-process b{
  font-size:11px;
  letter-spacing:.1em;
}

.register form{
  background:#0b0b0b;
  color:white;
  padding:34px;
  border-top:4px solid var(--red);
  box-shadow:0 40px 100px #00000024;
}

.form-head{
  display:flex;
  justify-content:space-between;
  padding-bottom:25px;
  margin-bottom:18px;
  border-bottom:1px solid #333;
  font-size:10px;
  letter-spacing:.15em;
}

.form-head span{
  color:var(--red);
}

.form-status{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 0 22px;
  margin-bottom:20px;
  border-bottom:1px solid #242424;
}

.form-status span{
  color:#656565;
  font-size:8px;
  letter-spacing:.14em;
  font-weight:900;
}

.form-status b{
  font-size:11px;
  letter-spacing:.08em;
}

.register label{
  display:block;
  font-size:9px;
  letter-spacing:.17em;
  font-weight:900;
  margin-bottom:18px;
  color:#aaa;
}

.register input,
.register textarea{
  display:block;
  width:100%;
  margin-top:8px;
  padding:14px 2px;
  background:transparent;
  border:0;
  border-bottom:1px solid #444;
  color:#fff;
  font:inherit;
  outline:none;
  transition:border .2s;
}

.register input:focus,
.register textarea:focus{
  border-color:var(--red);
}

.register input::placeholder,
.register textarea::placeholder{
  color:#5e5e5e;
}

.register textarea{
  min-height:115px;
  resize:vertical;
}

.two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.roster-tip{
  margin:-5px 0 20px;
  color:#595959;
  font-size:8px;
  letter-spacing:.08em;
}

.check{
  display:flex!important;
  gap:10px;
  align-items:center;
}

.check input{
  width:auto;
  margin:0;
  accent-color:var(--red);
}

.register button{
  width:100%;
  margin-top:8px;
}

.register form>small{
  display:block;
  color:#666;
  margin-top:12px;
  font-size:9px;
  line-height:1.5;
}

/* MANIFESTO */

.manifesto{
  min-height:85vh;
  text-align:center;
  padding:140px 7vw;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.giant-r{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:.055;
  transform:scale(4);
}

.giant-r img{
  width:330px;
  height:330px;
  object-fit:contain;
}

.manifesto-inner{
  position:relative;
}

.manifesto-kicker{
  color:#666;
  font-size:9px;
  letter-spacing:.25em;
  font-weight:900;
  margin-bottom:20px;
}

.manifesto h2{
  font-size:clamp(50px,7.5vw,115px);
}

.manifesto p{
  color:#888;
  max-width:500px;
  margin:0 auto;
  line-height:1.6;
}

.outline{
  background:transparent;
  border:1px solid #555;
  margin-top:25px;
}

.outline:hover{
  background:white;
  color:black;
}

/* FOOTER */

footer{
  border-top:1px solid #292929;
  padding:30px 5vw;
  color:#666;
  font-size:9px;
  letter-spacing:.15em;
}

.footer-main{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  width:100%;
  gap:25px;
}

.footer-main>span{
  text-align:right;
}

.footer-links{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

.footer-links a{
  color:#666;
  text-decoration:none;
  font-size:9px;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.footer-links a:hover{
  color:white;
}

.footer-bottom{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid #222;
  margin-top:24px;
  padding-top:22px;
}

.founder{
  color:#d8d8d8;
  font-weight:900;
  letter-spacing:.12em;
}

/* ANIMATIONS */

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:
    opacity .8s ease,
    transform .8s cubic-bezier(.2,.8,.2,1);
}

.reveal.visible{
  opacity:1;
  transform:none;
}

/* TOAST */

.toast{
  position:fixed;
  right:25px;
  bottom:25px;
  background:var(--white);
  color:#111;
  padding:18px 22px;
  z-index:80;
  transform:translateY(150%);
  transition:.45s cubic-bezier(.2,.8,.2,1);
  box-shadow:0 20px 60px #0008;
}

.toast.show{
  transform:none;
}

.toast b{
  display:block;
  color:var(--red);
  font-size:20px;
}

.toast span{
  font-size:11px;
}

/* SUCCESS */

.success-modal{
  position:fixed;
  inset:0;
  background:#000d;
  z-index:500;
  display:grid;
  place-items:center;
  padding:22px;
  opacity:0;
  visibility:hidden;
  transition:.3s;
}

.success-modal.show{
  opacity:1;
  visibility:visible;
}

.success-card{
  width:min(680px,100%);
  background:#0b0b0b;
  border-top:5px solid var(--red);
  padding:55px;
  position:relative;
  box-shadow:0 50px 160px #000;
}

.success-card>button{
  position:absolute;
  right:20px;
  top:15px;
  background:none;
  border:0;
  color:#777;
  font-size:30px;
  cursor:pointer;
}

.success-kicker{
  font-size:9px;
  letter-spacing:.22em;
  color:var(--red);
  font-weight:900;
}

.lock{
  margin:38px 0 20px;
  width:54px;
  height:54px;
  border-radius:50%;
  background:var(--red);
  display:grid;
  place-items:center;
  font-size:24px;
  font-weight:900;
}

.success-card h2{
  font-size:clamp(52px,9vw,100px);
  line-height:.8;
  letter-spacing:-.075em;
  margin:0 0 25px;
}

.success-card h2 em{
  font-style:normal;
  color:var(--red);
}

.success-card p{
  color:#8a8a8a;
  line-height:1.6;
  max-width:520px;
  margin-bottom:30px;
}

.menu-btn{
  display:none;
}

.mobile-menu{
  display:none;
}

/* =========================
   MOBILE
   ========================= */

@media(max-width:800px){

  html{
    scroll-padding-top:68px;
  }

  body{
    width:100%;
    overflow-x:hidden;
    font-size:16px;
    line-height:1.45;
  }

  section{
    scroll-margin-top:68px;
  }

  .eyebrow{
    font-size:10px;
    line-height:1.4;
    letter-spacing:.24em;
    margin-bottom:22px;
  }

  /* HEADER */

  header{
    height:68px;
    padding:
      0 max(5vw,env(safe-area-inset-right))
      0 max(5vw,env(safe-area-inset-left));
  }

  .brand{
    gap:12px;
    font-size:13px;
    letter-spacing:.12em;
  }

  .brand img{
    width:40px;
    height:40px;
  }

  nav,
  .desktop-cta{
    display:none;
  }

  /* MENU */

  .menu-btn{
    display:block;
    position:relative;
    background:none;
    border:0;
    width:44px;
    height:44px;
    padding:10px;
    cursor:pointer;
    z-index:2;
  }

  .menu-btn span{
    display:block;
    position:absolute;
    left:10px;
    width:24px;
    height:2px;
    background:#fff;
    transition:
      transform .3s ease,
      top .3s ease;
  }

  .menu-btn span:first-child{
    top:16px;
  }

  .menu-btn span:last-child{
    top:25px;
  }

  .menu-btn[aria-expanded="true"] span:first-child{
    top:21px;
    transform:rotate(45deg);
  }

  .menu-btn[aria-expanded="true"] span:last-child{
    top:21px;
    transform:rotate(-45deg);
  }

  .mobile-menu{
    display:flex;
    position:fixed;
    z-index:49;
    top:68px;
    left:0;
    right:0;
    background:#080808fa;
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border-bottom:1px solid #292929;
    padding:18px 7vw 28px;
    flex-direction:column;
    transform:translateY(-125%);
    opacity:0;
    visibility:hidden;
    transition:
      transform .35s cubic-bezier(.2,.8,.2,1),
      opacity .25s,
      visibility .35s;
  }

  .mobile-menu.open{
    transform:none;
    opacity:1;
    visibility:visible;
  }

  .mobile-menu a{
    padding:17px 0;
    border-bottom:1px solid #222;
    color:white;
    text-decoration:none;
    font-size:17px;
    font-weight:900;
    text-transform:uppercase;
  }

  .mobile-menu a:last-child{
    color:var(--red);
    border-bottom:0;
  }

  /* HERO */

  .hero{
    min-height:100svh;
    padding:
      140px
      7vw
      180px;
    justify-content:flex-start;
  }

  .hero-copy{
    width:100%;
  }

  .hero .eyebrow{
    margin-bottom:28px;
    font-size:9px;
    letter-spacing:.22em;
    white-space:nowrap;
  }

  .hero h1{
    font-size:18.5vw;
    line-height:.79;
    letter-spacing:-.075em;
    margin-bottom:34px;
  }

  .hero p{
    font-size:17px;
    line-height:1.35;
  }

  .facts{
    width:100%;
    gap:12px;
    margin:27px 0 36px;
    font-size:10px;
    line-height:1.3;
    letter-spacing:.13em;
    flex-wrap:wrap;
  }

  .facts b{
    white-space:nowrap;
  }

  .hero-badge{
    display:none;
  }

  .hero-actions{
    width:100%;
    gap:27px;
    align-items:flex-start;
    flex-direction:column;
  }

  .hero-actions .register-type{
    width:100%;
    max-width:none;
    min-height:62px;
    font-size:16px;
  }

  .text-link{
    display:inline-flex;
    align-items:center;
    font-size:9px;
    line-height:1;
    letter-spacing:.2em;
    min-height:22px;
  }

  .hero-mark{
    right:-5vw;
    bottom:-1vw;
    font-size:47vw;
  }

  .court-lines{
    width:500px;
    height:500px;
    right:-290px;
    top:155px;
  }

  .orbit-one{
    width:590px;
    height:590px;
    right:-390px;
    top:130px;
  }

  .orbit-two{
    display:none;
  }

  /* METER */

  .meter{
    left:7vw;
    right:7vw;
    bottom:54px;
    width:auto;
  }

  .meter>div:first-child{
    gap:16px;
    align-items:baseline;
  }

  .meter b{
    font-size:36px;
    line-height:1;
    letter-spacing:-.055em;
    white-space:nowrap;
  }

  .meter small{
    font-size:9px;
    line-height:1;
    letter-spacing:.2em;
    white-space:nowrap;
  }

  .track{
    margin-top:17px;
    height:2px;
  }

  .meter em{
    display:block;
    margin-top:14px;
    font-size:9px;
    line-height:1.3;
    letter-spacing:.18em;
  }

  /* STATUS */

  .status-strip{
    grid-template-columns:1fr 1fr;
  }

  .status-strip>div{
    min-height:145px;
    padding:29px 5vw 27px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }

  .status-strip>div:nth-child(2n){
    border-right:0;
  }

  .status-strip>div:nth-child(-n+2){
    border-bottom:1px solid #292929;
  }

  .status-strip span{
    margin:0 0 23px;
    font-size:8px;
    line-height:1;
    letter-spacing:.2em;
  }

  .status-strip b{
    display:block;
    margin:0;
    font-size:16px;
    line-height:1.3;
    letter-spacing:.035em;
    font-weight:900;
  }

  .status-strip b span{
    display:inline;
    margin:0;
    font-size:inherit;
    line-height:inherit;
    letter-spacing:inherit;
    color:inherit;
    font-weight:inherit;
  }

  #gameMinutesStrip::after{
    content:" ";
  }

  .status-strip>div:nth-child(2) b{
    white-space:nowrap;
  }

  .status-strip>div:nth-child(3) b{
    white-space:nowrap;
  }

  .status-strip>div:nth-child(4) b{
    font-size:15px;
    line-height:1.45;
    max-width:150px;
  }

  #prizeStrip{
    white-space:nowrap;
  }

  /* EVENT */

  .event,
  .register{
    grid-template-columns:1fr;
    padding:105px 7vw;
    gap:58px;
  }

  .event h2,
  .register h2{
    font-size:15vw;
    line-height:.8;
    margin-bottom:30px;
  }

  .lede{
    font-size:16px;
    line-height:1.6;
  }

  .event-secondary{
    font-size:13px;
    line-height:1.65;
  }

  .details>div{
    grid-template-columns:100px 1fr;
    column-gap:15px;
    padding:20px 0;
  }

  .details span{
    font-size:8px;
  }

  .details b{
    font-size:16px;
    line-height:1.25;
  }

  .details small{
    font-size:8px;
    line-height:1.35;
  }

  .details .price strong{
    font-size:58px;
  }

  /* TICKER */

  .ticker{
    padding:13px 0;
  }

  .ticker div{
    font-size:12px;
  }

  /* PRIZE */

  .prize{
    padding:105px 7vw;
  }

  .prize h2{
    font-size:15vw;
    line-height:.8;
  }

  .cash{
    position:static;
    text-align:left;
    margin-top:55px;
  }

  .cash strong{
    font-size:23vw;
    line-height:.82;
  }

  .cash span,
  .cash small{
    font-size:9px;
  }

  .prize-callout{
    margin-top:45px;
  }

  .prize-callout b{
    font-size:17px;
    line-height:1.25;
  }

  .prize-callout p{
    font-size:13px;
    line-height:1.65;
  }

  .prizes{
    grid-template-columns:1fr;
    margin-top:55px;
  }

  .prizes span,
  .prizes span:nth-child(odd),
  .prizes span:nth-child(even){
    display:flex;
    align-items:flex-start;
    gap:18px;
    padding:22px 0;
    border-right:0;
    line-height:1.3;
  }

  .prizes b{
    margin-left:0;
    font-size:11px;
    line-height:1.4;
  }

  /* TEAMS */

  .teams{
    padding:105px 7vw;
  }

  .teams h2{
    font-size:15vw;
    line-height:.8;
  }

  .section-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .spots{
    text-align:left;
    margin:5px 0 35px;
  }

  .spots b{
    font-size:45px;
  }

  .spots small{
    display:block;
    margin-top:8px;
  }

  .teams-header-copy{
    align-items:flex-start;
    flex-direction:column;
  }

  .teams-intro{
    font-size:13px;
    line-height:1.65;
    margin-bottom:35px;
  }

  .teamgrid{
    grid-template-columns:1fr;
  }

  .team{
    min-height:125px;
    grid-template-columns:48px 1fr auto;
    padding-top:24px;
    padding-bottom:24px;
  }

  .team:nth-child(odd),
  .team:nth-child(even){
    border-right:0;
    padding-left:5px;
    padding-right:5px;
  }

  .team h3{
    font-size:22px;
    line-height:1.1;
  }

  .team p{
    font-size:10px;
    line-height:1.4;
  }

  /* PATH */

  .path-section{
    padding:105px 7vw;
  }

  .path-copy{
    grid-template-columns:1fr;
    gap:25px;
  }

  .path-copy .eyebrow{
    grid-column:auto;
  }

  .path-section h2{
    font-size:15vw;
    line-height:.8;
  }

  .path-copy p{
    font-size:14px;
    line-height:1.65;
  }

  .path-steps{
    grid-template-columns:1fr 1fr;
    margin-top:55px;
  }

  .path-steps>div{
    min-height:200px;
  }

  .path-steps>div:nth-child(2){
    border-right:0;
  }

  .path-steps>div:nth-child(-n+2){
    border-bottom:1px solid #333;
  }

  .path-steps span{
    margin-bottom:45px;
  }

  .path-steps b{
    font-size:18px;
  }

  .overtime-banner{
    grid-template-columns:1fr;
    gap:22px;
    padding:24px;
  }

  /* VISION */

  .vision{
    padding:105px 7vw;
  }

  .vision-copy{
    grid-template-columns:1fr;
    gap:0;
  }

  .vision-copy .eyebrow{
    grid-column:auto;
  }

  .vision h2{
    font-size:14vw;
    line-height:.82;
  }

  .vision-copy p{
    font-size:14px;
    line-height:1.65;
  }

  .ladder{
    grid-template-columns:1fr 1fr;
    margin-top:55px;
  }

  .ladder div{
    min-height:180px;
  }

  .ladder div:nth-child(2){
    border-right:0;
  }

  .ladder div:nth-child(-n+2){
    border-bottom:1px solid #c5c5c5;
  }

  .ladder span{
    margin-bottom:40px;
  }

  .ladder b{
    font-size:17px;
  }

  .ladder small{
    font-size:11px;
    line-height:1.45;
  }

  .cityline{
    justify-content:flex-start;
    gap:10px;
    font-size:16px;
    line-height:1.2;
  }

  /* CHAMPIONS */

  .champions{
    padding:105px 7vw;
    grid-template-columns:1fr;
  }

  .champions h2{
    font-size:14vw;
    line-height:.82;
  }

  .champion-placeholder{
    min-height:320px;
  }

  /* MEDIA */

  .media{
    padding:105px 7vw;
  }

  .media-copy{
    grid-template-columns:1fr;
    gap:0;
  }

  .media-copy .eyebrow{
    grid-column:auto;
  }

  .media h2{
    font-size:14vw;
    line-height:.82;
  }

  .media-copy p{
    font-size:13px;
    line-height:1.65;
  }

  .media-grid{
    grid-template-columns:1fr;
    margin-top:45px;
    gap:14px;
  }

  .media-card,
  .media-card.big,
  .media-card.red-card{
    grid-column:1;
    padding:25px;
    min-height:300px;
  }

  .media-card.big{
    min-height:360px;
  }

  .media-card b{
    font-size:31px;
    line-height:.95;
  }

  .media-card p{
    font-size:12px;
    line-height:1.55;
  }

  .media-card i{
    right:20px;
    top:20px;
    width:44px;
    height:44px;
  }

  /* RULES */

  .rules{
    padding:105px 7vw;
    grid-template-columns:1fr;
    gap:45px;
  }

  .rules h2{
    font-size:15vw;
    line-height:.8;
  }

  .rules>div:first-child p{
    font-size:13px;
    line-height:1.65;
  }

  .rule-list summary{
    padding:23px 0;
    gap:18px;
    font-size:15px;
    line-height:1.3;
  }

  .rule-list summary span{
    min-width:20px;
  }

  .rule-list p{
    padding:0 5px 24px 38px;
    font-size:13px;
    line-height:1.65;
  }

  /* FAQ */

  .faq{
    padding:105px 7vw;
  }

  .faq h2{
    font-size:15vw;
    line-height:.8;
  }

  .faq-grid{
    grid-template-columns:1fr;
  }

  .faq-grid details{
    padding-right:0;
  }

  .faq-grid details:nth-child(even){
    padding-left:0;
    border-left:0;
  }

  .faq-grid summary{
    padding:23px 0;
    font-size:14px;
    line-height:1.35;
  }

  .faq-grid p{
    font-size:13px;
    line-height:1.65;
  }

  /* REGISTER */

  .register-copy{
    position:static;
  }

  .registration-note{
    margin-top:32px;
  }

  .registration-note b{
    font-size:55px;
  }

  .two{
    grid-template-columns:1fr;
    gap:0;
  }

  .register form{
    padding:28px 22px;
  }

  .register label{
    margin-bottom:20px;
  }

  .register input,
  .register textarea{
    font-size:16px;
  }

  .submit-register{
    min-height:60px;
    font-size:14px;
    line-height:1.2;
    padding-left:15px;
    padding-right:15px;
  }

  /* MANIFESTO */

  .manifesto{
    min-height:70vh;
    padding:105px 7vw;
  }

  .manifesto h2{
    font-size:14vw;
    line-height:.82;
  }

  /* FOOTER */

  footer{
    padding:
      30px 7vw
      calc(30px + env(safe-area-inset-bottom));
  }

  .footer-main{
    grid-template-columns:1fr;
    gap:25px;
  }

  .footer-main>span{
    text-align:left;
  }

  .footer-links{
    gap:15px 18px;
  }

  .footer-bottom{
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }

  .footer-bottom>span:nth-child(2){
    display:none;
  }

  .founder{
    color:#eee;
  }

  .success-card{
    padding:42px 25px;
  }

  .toast{
    left:18px;
    right:18px;
    bottom:calc(18px + env(safe-area-inset-bottom));
  }
}

/* EXTRA SMALL PHONES */

@media(max-width:390px){

  .hero{
    padding-left:6vw;
    padding-right:6vw;
  }

  .hero h1{
    font-size:18vw;
  }

  .hero .eyebrow{
    font-size:8px;
    letter-spacing:.18em;
  }

  .facts{
    font-size:9px;
    gap:9px;
  }

  .status-strip>div{
    padding-left:17px;
    padding-right:17px;
  }

  .status-strip b{
    font-size:15px;
  }

  .status-strip>div:nth-child(4) b{
    font-size:14px;
  }

  .path-steps,
  .ladder{
    grid-template-columns:1fr;
  }

  .path-steps>div,
  .path-steps>div+div{
    border-right:0;
    border-bottom:1px solid #333;
    padding-left:0;
  }

  .ladder div,
  .ladder div+div{
    border-right:0;
    border-bottom:1px solid #c5c5c5;
    padding-left:0;
  }

  .path-steps>div:last-child,
  .ladder div:last-child{
    border-bottom:0;
  }
}
