/* Z3RO ARENA — tournaments page */
.page-hero{
  position:relative;overflow:hidden;isolation:isolate;padding:70px 0 90px;border-bottom:1px solid var(--line);
}
.page-hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:linear-gradient(90deg,var(--bg) 5%,rgba(7,5,15,.82) 45%,rgba(7,5,15,.45)),linear-gradient(0deg,var(--bg),transparent 55%),url('assets/hub-floor.jpg') center/cover;
}
.page-hero::after{
  content:"";position:absolute;left:-40%;right:-40%;bottom:0;height:50%;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,46,136,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(34,240,255,.55) 1px,transparent 1px);
  background-size:64px 64px;transform:perspective(380px) rotateX(64deg);transform-origin:50% 100%;
  -webkit-mask-image:linear-gradient(to top,#000,transparent 80%);mask-image:linear-gradient(to top,#000,transparent 80%);
  opacity:.22;animation:gridRun 2.4s linear infinite;
}
.page-hero .hero-kr{font-size:clamp(2.6rem,5.5vw,5.6rem);top:44px}
.tournament-hero h1,.page-hero h1{font-size:clamp(3rem,6.4vw,6.2rem);line-height:.92;margin:22px 0}
.page-hero p:not(.eyebrow){max-width:520px;font-size:1.05rem;color:#dcd5ee}
.page-hero .button{margin-top:18px}

.tournament-notice{padding:16px 20px;border-left:2px solid var(--violet);background:linear-gradient(90deg,rgba(157,77,255,.12),transparent);font-size:.88rem}
.tournament-notice strong{color:var(--text)}
.eligibility-filters{margin:24px 0}
.tournament-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.tournament-banner{
  --mx:50%;--my:0%;--c:var(--cyan);
  position:relative;isolation:isolate;overflow:hidden;text-align:left;width:100%;padding:34px;color:var(--text);
  border:1px solid rgba(34,240,255,.4);
  background:radial-gradient(520px circle at var(--mx) var(--my),rgba(34,240,255,.14),transparent 45%),radial-gradient(ellipse at 100% 0%,rgba(34,240,255,.14),transparent 65%),var(--panel);
  display:flex;flex-direction:column;clip-path:var(--clip);--cut:20px;transition:transform .25s,border-color .25s;font:inherit;
}
.tournament-banner:nth-child(even){--c:var(--pink);border-color:rgba(255,46,136,.45);background:radial-gradient(520px circle at var(--mx) var(--my),rgba(255,46,136,.14),transparent 45%),radial-gradient(ellipse at 100% 0%,rgba(255,46,136,.16),transparent 65%),var(--panel)}
.tournament-banner:not(:disabled):hover{transform:translateY(-4px);border-color:var(--c)}
.tournament-banner:disabled{opacity:.55;cursor:not-allowed}
.banner-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font:.74rem var(--mono);letter-spacing:.14em;color:var(--c)}
.banner-top>span:first-child::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;margin-right:8px;vertical-align:1px;animation:pulse 1.6s infinite}
.format-mark{font:700 5.5rem/1 var(--heading);margin:30px 0 12px;color:transparent;-webkit-text-stroke:1.5px var(--c);text-shadow:0 0 30px color-mix(in srgb,var(--c) 30%,transparent)}
.event-name{font:700 2.1rem/1.05 var(--heading);text-transform:uppercase;margin-bottom:10px}
.event-meta{font:.85rem var(--mono);letter-spacing:.06em;color:var(--muted)}
.event-money{display:grid;grid-template-columns:1fr 1fr;gap:15px;border-block:1px dashed var(--line2);padding:20px 0;margin:24px 0}
.event-money small{display:block;font:.7rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.event-money strong{display:block;font:700 2.4rem/1.1 var(--heading);color:var(--cyan)}
.event-money>span:last-child strong{background:linear-gradient(90deg,var(--amber),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.banner-cta{display:flex;justify-content:space-between;font:700 .85rem var(--heading);letter-spacing:.14em;text-transform:uppercase;margin-top:auto}
.eligibility-badge{align-self:flex-start;border:1px solid rgba(157,77,255,.6);background:rgba(157,77,255,.14);padding:5px 12px;font:.74rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#dcc6ff;margin-top:18px}
.empty-events{
  grid-column:1/-1;position:relative;padding:48px 32px;margin:0;text-align:center;border:1px dashed rgba(34,240,255,.35);
  background:radial-gradient(ellipse at 50% 0%,rgba(34,240,255,.08),transparent 60%),var(--panel);font-family:var(--mono);letter-spacing:.04em;
}
.empty-events::before{content:"대기 중 · STANDBY";display:block;margin-bottom:12px;font:1.6rem var(--kr);color:var(--pink);letter-spacing:.06em;text-shadow:0 0 18px rgba(255,46,136,.5)}

.tournament-location{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:40px;margin-bottom:80px;border:1px solid var(--line2);background:var(--panel);clip-path:var(--clip);--cut:20px}
.tournament-location h3{text-transform:uppercase}
.tournament-location a{overflow-wrap:anywhere}

#registration-dialog{max-width:700px}
#registration-title{font-size:clamp(2rem,5vw,2.6rem);text-transform:uppercase}
#registration-form label:not(.consent){display:block;font:.72rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
#registration-form input:not([type=checkbox]){margin-top:8px}
.captain-fields,.player-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.roster{margin-top:16px}
.roster legend{color:var(--cyan)}
#roster-hint{display:block;margin:6px 0 14px;font:400 .85rem var(--body);letter-spacing:0;text-transform:none;color:var(--muted)}
.player-row{border-top:1px solid var(--line);padding-top:16px}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:.86rem;color:var(--muted);margin-bottom:12px}
.consent input{margin-top:4px;flex-shrink:0;width:18px;height:18px}
#registration-form>.button{margin-top:18px}
#registration-review .button{margin-top:14px}
#review-details dd{overflow-wrap:anywhere;white-space:pre-line;max-width:70%}
#registration-status{font-family:var(--mono);color:var(--cyan);margin-top:14px}
#eligibility-confirmation{margin-bottom:18px}

@media(max-width:760px){
  .tournament-grid,.tournament-location{grid-template-columns:1fr}
  .tournament-banner{padding:24px}
  .captain-fields,.player-row{grid-template-columns:1fr;gap:0}
  .format-mark{font-size:4.2rem}
  .page-hero{padding:40px 0 64px}
  .tournament-location{gap:16px;padding:26px}
  #registration-dialog{padding:22px}
}
@media(max-width:380px){.event-money{grid-template-columns:1fr}#review-details dd{max-width:100%}}

.event-teams{display:flex;flex-direction:column;gap:6px;margin-top:16px;font:.8rem var(--mono);letter-spacing:.06em;color:#dcd5ee}
.event-teams small{color:var(--muted);font-size:.74rem}
.teams-bar{display:block;height:6px;background:rgba(255,255,255,.08);overflow:hidden}
.teams-bar i{display:block;height:100%;background:var(--c);box-shadow:0 0 10px var(--c)}
