:root {
  --bg: #02040b;
  --bg-soft: #07101d;
  --panel: rgba(7, 18, 34, 0.72);
  --panel-strong: rgba(6, 15, 30, 0.92);
  --line: rgba(121, 190, 255, 0.20);
  --line-strong: rgba(121, 190, 255, 0.50);
  --blue: #1e8bff;
  --blue-2: #7cc6ff;
  --cyan: #97e9ff;
  --text: #f4f8ff;
  --muted: #8fa2bb;
  --silver-1: #ffffff;
  --silver-2: #b7c5d4;
  --silver-3: #6f8298;
  --header-height: 90px;
  --max-width: 1380px;
  --accent-color: #4caeff;
  --muted-text: #8fa2bb;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  background:
    radial-gradient(circle at 50% -10%, rgba(0, 102, 255, 0.18), transparent 28%),
    linear-gradient(180deg, #02040b 0%, #030712 55%, #02040b 100%);
  color: var(--text);
  font-family: "Rajdhani", sans-serif;
  overflow-x: hidden;
  min-height: 100vh;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
}

.page-noise,
.page-grid {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -2;
}

.page-grid {
  background-image:
    linear-gradient(rgba(54, 134, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(54, 134, 255, 0.035) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: linear-gradient(to bottom, black, transparent 85%);
}

.page-noise {
  opacity: .14;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.15) 0 1px, transparent 1.5px),
    radial-gradient(circle at 80% 40%, rgba(255,255,255,.12) 0 1px, transparent 1.5px);
  background-size: 18px 18px, 26px 26px;
}

/* HEADER */
.site-header {
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 0 clamp(22px, 5vw, 78px);
  border-bottom: 1px solid rgba(145, 201, 255, 0.09);
  background: linear-gradient(180deg, rgba(1, 5, 13, 0.93), rgba(2, 7, 17, 0.70));
  backdrop-filter: blur(16px);
  transition: box-shadow .3s ease, background .3s ease;
}

.site-header.scrolled {
  background: rgba(2, 6, 15, 0.96);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
}

.brand-group {
    display: flex;
    align-items: center;
    gap: 12px;
}


/* NSBM clickable wrapper */
.nsbm-logo-link {
    display: flex;
    align-items: center;

    flex-shrink: 0;

    padding: 0;
    margin: 0;

    line-height: 0;

    text-decoration: none;
}


/* NSBM */
.nsbm-header-logo {
    width: 65px;
    height: 50px;

    display: block;

    object-fit: contain;

    margin: 0;
    padding: 0;
}


/* Department */
.department-header-logo {
    width: 50px;
    height: 50px;

    display: block;

    object-fit: contain;

    margin: 0;
    padding: 0;
}


/* SCAF */
.scaf-header-logo {
    width: 45px;
    height: 45px;

    display: block;

    object-fit: contain;

    margin: 0;
    padding: 0;
}

.logo-main {
  border-color: rgba(90, 177, 255, .55);
  box-shadow:
    inset 0 0 22px rgba(59, 153, 255, .14),
    0 0 22px rgba(30, 139, 255, .10);
}

.main-nav {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.3vw, 38px);
}

.main-nav a {
  position: relative;
  font-family: "Rajdhani", sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #b6c6d8;
  transition: color .25s ease;
}

.main-nav a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -11px;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--blue-2), transparent);
  transform: translateX(-50%);
  box-shadow: 0 0 10px var(--blue);
  transition: width .25s ease;
}

.main-nav a:hover,
.main-nav a.active {
  color: #ffffff;
}

.main-nav a:hover::after,
.main-nav a.active::after {
  width: 100%;
}

.main-nav .nav-admin {
  border: 1px solid rgba(102, 174, 255, .38);
  padding: 10px 16px;
  border-radius: 4px;
  background: rgba(33, 111, 202, .07);
}

.main-nav .nav-admin::after {
  display: none;
}

.menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  background: rgba(7, 18, 34, .7);
  border-radius: 5px;
  cursor: pointer;
  padding: 10px;
}

.menu-toggle span {
  display: block;
  width: 100%;
  height: 1px;
  margin: 5px 0;
  background: #dbeeff;
  transition: transform .25s ease, opacity .25s ease;
}

/* HERO */
.hero {
  min-height: 100vh;
  padding: calc(var(--header-height) + 72px) clamp(22px, 5vw, 78px) 84px;
  max-width: 1600px;
  margin: 0 auto;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(440px, .95fr);
  gap: clamp(45px, 7vw, 100px);
  align-items: center;
  overflow: hidden;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 14% auto auto 33%;
  width: 2px;
  height: 72%;
  background: linear-gradient(transparent, rgba(66, 156, 255, .42), transparent);
  transform: rotate(42deg);
  box-shadow: 0 0 18px rgba(0, 115, 255, .32);
  opacity: .8;
}

.hero::after {
  content: "";
  position: absolute;
  width: 720px;
  height: 720px;
  left: -320px;
  top: 180px;
  border-radius: 50%;
  border: 1px solid rgba(63, 143, 255, .11);
  box-shadow:
    0 0 0 80px rgba(63, 143, 255, .025),
    0 0 0 160px rgba(63, 143, 255, .018);
}

.hero-orb {
  position: absolute;
  border-radius: 999px;
  filter: blur(80px);
  pointer-events: none;
}

.hero-orb-one {
  width: 360px;
  height: 360px;
  background: rgba(0, 104, 255, .17);
  left: 20%;
  top: 33%;
}

.hero-orb-two {
  width: 300px;
  height: 300px;
  background: rgba(49, 174, 255, .11);
  right: 8%;
  bottom: 5%;
}

.hero-copy,
.leaderboard-panel {
  position: relative;
  z-index: 3;
}

.hero-title-image img {
  width: min(100%, 920px);
  display: block;
}

.eyebrow {
  font-family: "Orbitron", sans-serif;
  font-size: clamp(10px, 1vw, 13px);
  color: #d7e4f4;
  letter-spacing: .40em;
  line-height: 1.9;
  margin-bottom: 18px;
  text-transform: uppercase;
}

.presents-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 15px;
}

.presents-row span {
  display: block;
  width: 120px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(124, 198, 255, 0.85), transparent);
  box-shadow: 0 0 10px rgba(30, 139, 255, 0.45);
}

.presents-text {
  font-family: "Orbitron", sans-serif;
  font-size: 16px;
  letter-spacing: .45em;
  color: #9fd4ff;
  text-transform: uppercase;
}

.event-mark {
  position: relative;
  display: inline-block;
  line-height: 1;
}

.event-mark h1 {
  position: relative;
  z-index: 2;
  font-family: "Orbitron", sans-serif;
  font-size: clamp(72px, 9vw, 150px);
  font-weight: 800;
  letter-spacing: -.04em;
  text-transform: uppercase;
  margin: 0;
  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f2f5f8 12%,
      #cbd3dc 28%,
      #8d99a5 45%,
      #eef3f8 62%,
      #b2bcc7 78%,
      #717d89 100%
    );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow:
    0 1px 0 rgba(255,255,255,0.35),
    0 3px 0 rgba(35, 50, 68, 0.9),
    0 0 16px rgba(72, 157, 255, 0.15),
    0 0 32px rgba(39, 123, 255, 0.12);
  filter: drop-shadow(0 0 10px rgba(72, 157, 255, 0.15));
}

.event-x {
  position: absolute;
  left: 22%;
  top: 50%;
  transform: translate(-50%, -52%);
  z-index: 3;
  font-family: "Orbitron", sans-serif;
  font-size: clamp(92px, 11vw, 185px);
  font-weight: 800;
  line-height: 1;
  color: #eaf8ff;
  text-shadow:
    0 0 6px #ffffff,
    0 0 12px #70c4ff,
    0 0 24px #2196ff,
    0 0 44px #005eff,
    0 0 75px #003d99;
  pointer-events: none;
  mix-blend-mode: screen;
}

.event-year {
  margin-top: 22px;
  font-family: "Orbitron", sans-serif;
  font-size: clamp(34px, 4vw, 72px);
  font-weight: 800;
  letter-spacing: .22em;
  color: #dceaff;
  text-transform: uppercase;
  text-shadow:
    0 0 10px rgba(255,255,255,0.18),
    0 0 22px rgba(62, 143, 255, 0.32);
}

.hero-line {
  height: 1px;
  width: min(520px, 82%);
  margin: 22px 0 18px;
  background: linear-gradient(90deg, transparent, rgba(119, 193, 255, .8), transparent);
  position: relative;
}

.hero-line::after {
  content: "";
  position: absolute;
  left: 54%;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: white;
  box-shadow: 0 0 12px #3fa6ff;
  transform: translate(-50%, -50%);
}

.hero-subtitle {
  margin-top: 34px;
  font-family: "Orbitron", sans-serif;
  font-size: clamp(18px, 2vw, 34px);
  letter-spacing: .35em;
  color: #8ec8ff;
  text-transform: uppercase;
}

.hero-tagline {
  margin-top: 12px;
  font-family: "Orbitron", sans-serif;
  font-size: clamp(11px, 1.1vw, 18px);
  letter-spacing: .42em;
  color: #d9e6f3;
  text-transform: uppercase;
  opacity: 0.92;
}

.hero-actions {
  display: flex;
  gap: 14px;
  margin-top: 38px;
  flex-wrap: wrap;
}

.primary-btn,
.ghost-btn {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  font-family: "Orbitron", sans-serif;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 4px;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.primary-btn {
  background: linear-gradient(135deg, #0e75e5, #39a6ff);
  box-shadow: 0 10px 32px rgba(0, 110, 255, .24);
}

.primary-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 38px rgba(0, 110, 255, .36);
}

.ghost-btn {
  color: #b9d4ec;
  border: 1px solid rgba(117, 185, 255, .34);
  background: rgba(9, 23, 43, .45);
}

.ghost-btn:hover {
  background: rgba(23, 73, 126, .22);
  transform: translateY(-2px);
}

/* LEADERBOARD */
.leaderboard-panel {
  border: 1px solid rgba(103, 170, 238, .20);
  border-radius: 10px;
  padding: clamp(26px, 3vw, 42px);
  background:
    linear-gradient(180deg, rgba(10, 29, 53, .48), rgba(4, 12, 25, .82)),
    radial-gradient(circle at 50% 0%, rgba(35, 143, 255, .16), transparent 38%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 30px 80px rgba(0,0,0,.32);
  backdrop-filter: blur(12px);
}

.section-heading span {
  display: block;
  font-family: "Orbitron", sans-serif;
  font-size: 11px;
  letter-spacing: .28em;
  color: #63b5ff;
}

.section-heading h2 {
  font-family: "Orbitron", sans-serif;
  font-size: clamp(28px, 3.5vw, 48px);
  line-height: 1.1;
  letter-spacing: .02em;
}

.section-heading p {
  margin-top: 14px;
  max-width: 720px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.6;
}

/* =========================================
   ROUND COUNTDOWN HEADING ALIGNMENT
========================================= */

.rounds-section .section-heading {
    width: min(var(--max-width), calc(100% - 44px));
    margin: 0 auto 35px;

    text-align: left;
}

.rounds-section .section-heading span,
.rounds-section .section-heading h2 {
    text-align: left;
}

.rounds-section .section-heading p {
    margin: 8px 0 0;

    text-align: left;

    max-width: 650px;
}

.compact-heading {
    margin-bottom: 0;
}

.compact-heading h2 {
    margin-bottom: 0;
}

.podium {
  min-height: auto;
  margin-top: 15px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  align-items: end;
}

.team-card {
  position: relative;
  text-align: center;
  padding: 26px 12px 20px;
  border: 1px solid rgba(114, 179, 245, .15);
  background: linear-gradient(180deg, rgba(17, 42, 73, .38), rgba(4, 13, 26, .86));
  min-height: 210px;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
}

.team-card.first {
  min-height: 275px;
  border-color: rgba(93, 180, 255, .52);
  box-shadow: inset 0 0 44px rgba(43, 143, 255, .12), 0 0 28px rgba(0, 110, 255, .08);
}

.team-card.second {
  min-height: 235px;
}

.team-card.third {
  min-height: 220px;
}

.rank-badge {
  font-family: "Orbitron", sans-serif;
  font-size: 12px;
  color: #7ebeff;
  letter-spacing: .08em;
}

.crown {
  position: absolute;
  left: 50%;
  top: -24px;
  transform: translateX(-50%);
  color: #cfeaff;
  text-shadow: 0 0 14px #1e8bff;
}

.team-logo {
  margin: 18px auto 14px;
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-family: "Orbitron", sans-serif;
  font-size: 26px;
  font-weight: 800;
  color: #edf8ff;
  border: 1px solid rgba(126, 199, 255, .45);
  background:
    radial-gradient(circle at 35% 30%, rgba(255,255,255,.18), transparent 24%),
    linear-gradient(145deg, #0e2b4d, #07111e);
  box-shadow: 0 0 26px rgba(43, 151, 255, .17);
}

.team-card h3 {
  font-family: "Orbitron", sans-serif;
  font-size: 15px;
  letter-spacing: .10em;
}

.team-card p {
  margin-top: 6px;
  color: #7ec0ff;
  font-size: 16px;
  font-weight: 700;
}

.placement-line {
  width: 58%;
  height: 1px;
  margin: 18px auto 0;
  background: linear-gradient(90deg, transparent, rgba(104, 187, 255, .7), transparent);
}

.leaderboard-link {
  display: inline-flex;
  gap: 10px;
  margin-top: 24px;
  color: #99cfff;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: 13px;
}

.leaderboard-link span {
  transition: transform .2s ease;
}

.leaderboard-link:hover span {
  transform: translateX(5px);
}

.scroll-indicator {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 25px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: #65829f;
  font-size: 10px;
  letter-spacing: .26em;
}

.scroll-indicator i {
  width: 1px;
  height: 42px;
  background: linear-gradient(var(--blue-2), transparent);
  box-shadow: 0 0 8px rgba(59, 168, 255, .4);
}

/* GENERAL SECTIONS */
.section-shell {
  width: min(var(--max-width), calc(100% - 44px));
  margin: 0 auto;
}

/* =========================================
   ROUND COUNTDOWN SECTION
========================================= */

.rounds-section {
    padding: 90px 0 100px;
}


/* =========================================
   GRID
========================================= */

.rounds-grid {
    width: min(var(--max-width), calc(100% - 44px));

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;
}


/* =========================================
   ROUND CARD
========================================= */

.round-card {
    position: relative;

    min-height: 330px;

    padding: 25px 28px 28px;

    background:
        linear-gradient(
            145deg,
            #071728 0%,
            #03101f 100%
        );

    border: 1px solid rgba(76, 157, 225, 0.22);

    clip-path:
        polygon(
            12px 0,
            100% 0,
            100% calc(100% - 12px),
            calc(100% - 12px) 100%,
            0 100%,
            0 12px
        );

    overflow: hidden;
}


/* =========================================
   TOP ROW
========================================= */

.round-card-top {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 28px;
}


.round-number {
    font-family: "Orbitron", sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .14em;

    color: #77baff;
}


.round-status {
    font-family: "Orbitron", sans-serif;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: .14em;

    color: rgba(190, 208, 228, .55);
}


/* =========================================
   ROUND TITLE
========================================= */

.round-title {
    margin: 0;

    font-family: "Orbitron", sans-serif;

    font-size: clamp(24px, 2.3vw, 34px);

    font-weight: 700;

    letter-spacing: .02em;

    line-height: 1.1;

    color: #eef5ff;
}


/* =========================================
   DATE
========================================= */

.round-date {
    margin: 8px 0 34px;

    font-family: "Orbitron", sans-serif;

    font-size: 9px;

    letter-spacing: .09em;

    color: rgba(154, 183, 211, .65);
}


/* =========================================
   COUNTDOWN BOXES
========================================= */

.countdown {
    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 7px;

    width: 100%;
}


.countdown-box {
    height: 76px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    background:
        linear-gradient(
            180deg,
            #061423,
            #030d18
        );

    border: 1px solid rgba(63, 127, 183, .17);

    min-width: 0;
}

.countdown-box strong {
    font-family: "Orbitron", sans-serif;

    font-size: 26px;

    font-weight: 600;

    line-height: 1;

    letter-spacing: .04em;

    color: #edf5ff;

    font-variant-numeric: tabular-nums;
}


.countdown-box span {
    margin-top: 9px;

    font-family: "Orbitron", sans-serif;

    font-size: 7px;

    font-weight: 600;

    letter-spacing: .16em;

    color: rgba(100, 151, 196, .55);
}


/* =========================================
   BOTTOM BLUE LINE
========================================= */

.round-progress {
    position: absolute;

    left: 28px;
    right: 28px;

    bottom: 27px;

    height: 2px;

    background:
        rgba(58, 104, 145, .18);
}


.round-progress span {
    display: block;

    width: 50%;

    height: 100%;

    background:
        linear-gradient(
            90deg,
            #147de5,
            #5bbcff
        );

    box-shadow:
        0 0 7px rgba(60, 165, 255, .28);
}

.rounds-section .section-heading {
    width: min(var(--max-width), calc(100% - 44px));
    margin: 0 auto 35px;
    text-align: left;
}


.rounds-grid {
    width: min(var(--max-width), calc(100% - 44px));

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 22px;
}


.round-card:hover {
    border-color:
        rgba(82, 169, 244, .42);

    transform: translateY(-3px);
}

/* =========================================
   HEADER
========================================= */

.round-card-header {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 25px;
}


.round-card-header span {
    font-family: "Orbitron", sans-serif;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: .15em;

    color: #dbeaff;
}


.round-card-header small {
    font-family: "Orbitron", sans-serif;

    font-size: 8px;

    letter-spacing: .12em;

    color: rgba(166, 198, 225, .58);
}


.round-card.active-round {
  border-color: rgba(89, 176, 255, .48);
  box-shadow: inset 0 0 45px rgba(35, 143, 255, .07);
}

.round-topline {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: #6ebaff;
  font-family: "Orbitron", sans-serif;
  font-size: 11px;
  letter-spacing: .18em;
}

.round-status {
  color: #7c8da2;
}

.active-round .round-status {
  color: #bde7ff;
}

.round-card h3 {
  margin-top: 20px;
  font-family: "Orbitron", sans-serif;
  font-size: clamp(22px, 2.3vw, 34px);
}

.round-date {
  margin-top: 6px;
  color: var(--muted);
  font-size: 17px;
}

/* =========================================
   DD : HH : MM : SS
========================================= */

.countdown-value strong {
    display: block;

    font-family: "Orbitron", sans-serif;

    font-size: clamp(28px, 3vw, 42px);

    font-weight: 600;

    line-height: 1;

    letter-spacing: .04em;

    color: #e7f2ff;

    font-variant-numeric: tabular-nums;
}


/* =========================================
   DD HH MM SS LABELS
========================================= */

.countdown-labels {
    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    margin-top: 9px;

    padding: 0 29px;
}


.countdown-labels span {
    text-align: center;

    font-family: "Orbitron", sans-serif;

    font-size: 14px;

    letter-spacing: .18em;

    color: rgba(133, 178, 216, .48);
}

.round-progress {
  height: 2px;
  margin-top: 25px;
  background: rgba(255,255,255,.05);
  overflow: hidden;
}

.round-progress span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #0e6bd0, #72c7ff);
  box-shadow: 0 0 12px rgba(56, 163, 255, .7);
}

.live-status {
    display: block;
    width: 100%;
    white-space: nowrap;

    text-align: center;

    font-family: "Orbitron", sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .08em;

    color: #4caeff;
}

/* =========================================
   ACTIVE ROUND STATUS
========================================= */

.round-card.round-live .round-status {
    font-size: 26px;

    color: #32df82;

    text-shadow:
        0 0 12px rgba(50, 223, 130, .45),
        0 0 28px rgba(50, 223, 130, .22);

    animation:
        activePulse
        1.5s
        ease-in-out
        infinite;
}

/* =========================================
   LIVE ROUND
========================================= */

.live-countdown-message {
    width: 100%;

    margin-bottom: 16px;

    font-family: "Orbitron", sans-serif;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: .08em;

    color: #4caeff;

    white-space: nowrap;

    text-align: left;

    text-shadow:
        0 0 6px rgba(76, 174, 255, .35);
}


.countdown-active {
    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 7px;
}


/* =========================================
   ROUND OVER STATE
========================================= */

.round-over-message {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 90px;

    font-family: "Orbitron", sans-serif;

    font-size: 20px;

    font-weight: 700;

    letter-spacing: .08em;

    line-height: 1.2;

    color: #ff4d5a;

    text-align: center;

    white-space: nowrap;

    text-shadow:
        0 0 6px rgba(255, 50, 65, .65),
        0 0 16px rgba(255, 50, 65, .45),
        0 0 30px rgba(255, 50, 65, .22);

    animation: overPulse 1.8s ease-in-out infinite;
}

/* =========================================
   CURRENT LEADER — LIVE FLASH
========================================= */

.current-leader-status {
    animation: liveFlash 1.5s ease-in-out infinite;
}

.current-leader-status span {
    animation: liveDotFlash 1.5s ease-in-out infinite;
}


@keyframes liveFlash {

    0%, 100% {
        opacity: 1;
        text-shadow: 0 0 8px rgba(76, 174, 255, 0.7);
    }

    50% {
        opacity: 0.35;
        text-shadow: none;
    }

}


@keyframes liveDotFlash {

    0%, 100% {
        opacity: 1;

        box-shadow:
            0 0 10px #4caeff;
    }

    50% {
        opacity: 0.25;

        box-shadow: none;
    }

}


@keyframes overPulse {

    0%,
    100% {
        opacity: .78;

        text-shadow:
            0 0 6px rgba(255, 50, 65, .55),
            0 0 14px rgba(255, 50, 65, .35);
    }

    50% {
        opacity: 1;

        text-shadow:
            0 0 8px rgba(255, 50, 65, .8),
            0 0 20px rgba(255, 50, 65, .55),
            0 0 34px rgba(255, 50, 65, .3);
    }

}

.sponsors-section {
  padding-top: 90px;
}

/* =========================================
   SPONSORS SECTION
========================================= */

.sponsors-section {
    padding: 110px 0 120px;
    position: relative;
    overflow: hidden;
}


/* SECTION HEADING */

.sponsor-heading {
    width: min(var(--max-width), calc(100% - 44px));
    margin: 0 auto 55px;
}

.sponsor-heading p {
    max-width: 600px;
}


/* =========================================
   INFINITE SPONSOR MARQUEE
========================================= */

.sponsor-marquee {
    width: 100%;
    overflow: hidden;
    position: relative;

    padding: 28px 0;

    /* No boxes / cards */
    border: none;
    background: transparent;
}


/* Subtle fade at the edges */

.sponsor-marquee::before,
.sponsor-marquee::after {
    content: "";
    position: absolute;
    z-index: 5;
    top: 0;
    bottom: 0;
    width: 100px;
    pointer-events: none;
}

.sponsor-marquee::before {
    left: 0;
    background: linear-gradient(
        90deg,
        #030712,
        transparent
    );
}

.sponsor-marquee::after {
    right: 0;
    background: linear-gradient(
        -90deg,
        #030712,
        transparent
    );
}


/* Moving track */

.sponsor-track {
    display: flex;
    width: max-content;
    align-items: center;

    gap: 70px;

    animation: sponsorScroll 28s linear infinite;
}


/* Individual logo */

.marquee-logo {
    width: 160px;
    height: 70px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: transparent;
    border: none;

    cursor: pointer;

    transition: transform 0.3s ease;
}


/* HOVER */

.marquee-logo:hover {
    transform: scale(1.04);
}



/* =========================================
   SPONSOR VIDEO SHOWCASE
========================================= */

.sponsor-video-section {
    width: 100%;
    padding: 70px 0 30px;
    overflow: hidden;
}


.sponsor-video-container {
    width: min(1100px, calc(100% - 44px));
    margin: 0 auto;

    padding: 14px;

    border: 1px solid rgba(70, 150, 230, 0.30);
    border-radius: 10px;

    background:
        linear-gradient(
            145deg,
            rgba(5, 18, 35, 0.92),
            rgba(2, 8, 18, 0.96)
        );

    box-shadow:
        inset 0 0 35px rgba(20, 90, 160, 0.04);
}


/* =========================================
   LABEL
========================================= */

.sponsor-video-label {
    display: flex;
    align-items: center;

    gap: 8px;

    padding: 0 2px 14px;

    font-family: "Orbitron", sans-serif;

    font-size: 10px;

    letter-spacing: .18em;

    color: #76bfff;
}


.sponsor-video-label small {
    font-size: 8px;

    letter-spacing: .12em;

    color: rgba(190, 210, 230, 0.48);
}


.label-dot {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: #3ca8ff;

    box-shadow:
        0 0 6px rgba(60, 168, 255, 0.45);
}


/* =========================================
   VIDEO FRAME
========================================= */

.sponsor-video-frame {
    display: block;

    width: 100%;

    aspect-ratio: 16 / 9;

    overflow: hidden;

    border: 1px solid rgba(74, 157, 232, 0.20);

    border-radius: 6px;

    background: #020711;

    cursor: pointer;
}


.sponsor-video-frame video {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    opacity: 1;

    transition: opacity .5s ease;
}


/* =========================================
   BOTTOM LABEL
========================================= */

.sponsor-video-footer {
    display: flex;
    align-items: center;

    gap: 6px;

    padding-top: 13px;

    font-family: "Orbitron", sans-serif;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: .12em;

    color: #72baff;
}


.sponsor-arrow-small {
    font-size: 13px;

    color: #72baff;

    transition:
        transform .25s ease;
}


.sponsor-video-frame:hover
~ .sponsor-video-footer
.sponsor-arrow-small {
    transform: translateX(5px);
}


/* =========================================
   VIDEO HOVER
========================================= */

.sponsor-video-frame {
    transition:
        border-color .3s ease,
        box-shadow .3s ease;
}


.sponsor-video-frame:hover {
    border-color:
        rgba(70, 165, 245, 0.42);

    box-shadow:
        0 0 22px rgba(30, 115, 210, 0.08);
}

/* INFINITE ANIMATION */

@keyframes sponsorScroll {

    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(calc(-50% - 14px));
    }

}

/* =========================================
   OFFICIAL SPONSORS
========================================= */

.official-sponsors-section {
    margin-top: 70px;
    padding: 70px 0 75px;
    background: #ffffff;
}


/* =========================================
   MAIN HEADING
========================================= */

.official-sponsors-heading {
    width: min(var(--max-width), calc(100% - 44px));

    margin: 0 auto 70px;

    text-align: center;
}


.official-sponsors-heading span {
    display: block;

    font-family: "Orbitron", sans-serif;

    font-size: 10px;

    letter-spacing: .28em;

    color: #2178c5;

    margin-bottom: 10px;
}


.official-sponsors-heading h3 {
    margin: 0;

    font-family: "Orbitron", sans-serif;

    font-size: clamp(24px, 3vw, 38px);

    letter-spacing: .08em;

    color: #102334;
}


/* =========================================
   TIER
========================================= */

.sponsor-tier {
    width: 100%;

    margin-bottom: 35px;
}


.sponsor-tier:last-child {
    margin-bottom: 0;
}


/* =========================================
   TIER HEADING
========================================= */

.tier-heading {
    width: min(var(--max-width), calc(100% - 44px));
    margin: 0 auto 18px;

    display: flex;
    align-items: center;
    gap: 12px;
}

.tier-heading span {
    font-family: "Orbitron", sans-serif;

    font-size: 9px;

    letter-spacing: .18em;

    color: #5997ca;
}


.tier-heading h4 {
    margin: 0;

    font-family: "Orbitron", sans-serif;

    font-size: 14px;

    letter-spacing: .25em;

    color: #152d40;
}


/* LINE BESIDE TIER TITLE */

.tier-heading::after {
    content: "";

    flex: 1;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            rgba(30, 106, 171, .30),
            transparent
        );
}


/* =========================================
   MARQUEE
========================================= */

.tier-marquee {
    width: 100%;

    overflow: hidden;

    position: relative;
}


/* EDGE FADE */

.tier-marquee::before,
.tier-marquee::after {
    content: "";

    position: absolute;

    top: 0;
    bottom: 0;

    width: 90px;

    z-index: 5;

    pointer-events: none;
}


.tier-marquee::before {
    left: 0;

    background:
        linear-gradient(
            90deg,
            #ffffff,
            rgba(255,255,255,0)
        );
}


.tier-marquee::after {
    right: 0;

    background:
        linear-gradient(
            -90deg,
            #ffffff,
            rgba(255,255,255,0)
        );
}


/* =========================================
   MOVING TRACK
========================================= */

.tier-track {
    display: flex;

    align-items: flex-start;

    width: max-content;

    gap: 65px;

    animation:
        platinumScroll 32s linear infinite;
}


/* =========================================
   INDIVIDUAL SPONSOR
========================================= */

.tier-sponsor {
    width: 175px;

    min-height: 105px;

    flex-shrink: 0;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: flex-start;

    text-align: center;

    text-decoration: none;

    color: inherit;

    cursor: pointer;
}


/* LOGO */

.tier-sponsor img {
    width: 145px;

    height: 62px;

    object-fit: contain;

    display: block;

    margin-bottom: 10px;

    transition:
        transform .3s ease,
        opacity .3s ease;
}


/* ROLE TEXT */

.tier-sponsor span {
    display: block;

    width: 100%;

    min-height: 28px;

    font-family:
        Arial,
        sans-serif;

    font-size: 11px;

    font-weight: 600;

    line-height: 1.25;

    color: #203746;
}


/* HOVER */

.tier-sponsor:hover img {
    transform: scale(1.06);

    opacity: .82;
}


/* =========================================
   TIER DIRECTIONS
========================================= */

/* PLATINUM → */
.platinum-tier .tier-track {
    animation-name: platinumScroll;
}


/* GOLD ← */
.gold-tier .tier-track {
    animation-name: goldScroll;
}


/* SILVER → */
.silver-tier .tier-track {
    animation-name: silverScroll;
}


/* BRONZE ← */
.bronze-tier .tier-track {
    animation-name: bronzeScroll;
}


/* =========================================
   INFINITE ANIMATIONS
========================================= */

@keyframes platinumScroll {

    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(
            calc(-50% - 32.5px)
        );
    }

}


@keyframes goldScroll {

    from {
        transform: translateX(
            calc(-50% - 32.5px)
        );
    }

    to {
        transform: translateX(0);
    }

}


@keyframes silverScroll {

    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(
            calc(-50% - 32.5px)
        );
    }

}


@keyframes bronzeScroll {

    from {
        transform: translateX(
            calc(-50% - 32.5px)
        );
    }

    to {
        transform: translateX(0);
    }

}

/* =========================================================
   EXODUS FOOTER
========================================================= */

.site-footer {
    position: relative;
    overflow: hidden;

    margin-top: 40px;

    border-top:
        1px solid rgba(108, 177, 247, .12);

    background:
        linear-gradient(
            180deg,
            #020711 0%,
            #01040a 100%
        );
}


/* GLOW */

.footer-glow {
    position: absolute;

    width: 650px;
    height: 150px;

    left: 50%;
    top: -115px;

    transform: translateX(-50%);

    background:
        rgba(0, 105, 255, .14);

    filter: blur(90px);

    pointer-events: none;
}


/* =========================================================
   MAIN GRID
========================================================= */

.footer-grid {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, 1.7fr)
        minmax(180px, .8fr)
        minmax(220px, 1fr);

    gap: clamp(45px, 7vw, 100px);

    align-items: start;

    padding-top: 55px;
    padding-bottom: 42px;
}


/* =========================================================
   BRAND
========================================================= */

.footer-brand {
    font-family:
        "Orbitron",
        sans-serif;

    font-size:
        clamp(26px, 2.8vw, 40px);

    font-weight: 800;

    letter-spacing: -.02em;

    background:
        linear-gradient(
            #ffffff,
            #7e91a7
        );

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;
}


.footer-brand span {
    color: #4aa9ff;

    -webkit-text-fill-color:
        #4aa9ff;

    font-size: .62em;
}


.footer-description {
    max-width: 390px;

    margin-top: 14px;

    color: #788aa0;

    font-size: 16px;

    line-height: 1.6;
}


/* =========================================================
   HEADINGS
========================================================= */

.footer-grid h3 {
    margin-bottom: 18px;

    color: #d5eaff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .14em;
}


/* =========================================================
   LINKS
========================================================= */

.footer-links a {
    display: block;

    width: fit-content;

    margin: 8px 0;

    color: #8196ae;

    font-size: 15px;

    transition:
        color .2s ease,
        transform .2s ease;
}


.footer-links a:hover {
    color: #70bbff;

    transform: translateX(3px);
}


/* =========================================================
   CONTACT
========================================================= */

.footer-contact p {
    margin: 8px 0;

    color: #8196ae;

    font-size: 15px;

    line-height: 1.5;
}


/* =========================================================
   SOCIAL ICONS
========================================================= */

.footer-socials {
    display: flex;

    align-items: center;

    gap: 13px;

    margin-top: 24px;
}


.footer-social-link {
    width: 34px;
    height: 34px;

    display: flex !important;

    align-items: center;
    justify-content: center;

    margin: 0 !important;

    color: #8196ae;

    transition:
        color .25s ease,
        transform .25s ease;
}


.footer-social-link svg {
    width: 18px;
    height: 18px;

    display: block;

    fill: currentColor;
}


.footer-social-link svg rect,
.footer-social-link svg circle {
    fill: none;

    stroke: currentColor;

    stroke-width: 1.8;
}


.footer-social-link:hover {
    color: #4aaeff;

    transform: translateY(-3px);
}


.footer-social-link:hover svg {
    transform: none;
}


/* =========================================================
   BOTTOM BAR
========================================================= */

.footer-bottom {
    position: relative;
    z-index: 2;

    min-height: 58px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    border-top:
        1px solid rgba(255, 255, 255, .055);

    color: #506278;

    font-size: 12px;

    letter-spacing: .07em;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .footer-grid {
        grid-template-columns:
            1.3fr
            .8fr
            1fr;

        gap: 30px;

        padding-top: 45px;
        padding-bottom: 35px;
    }

}


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

@media (max-width: 680px) {

    .site-footer {
        margin-top: 20px;
    }


    .footer-grid {
        grid-template-columns: 1fr;

        gap: 32px;

        padding-top: 42px;
        padding-bottom: 35px;
    }


    .footer-description {
        max-width: 100%;
    }


    .footer-socials {
        margin-top: 20px;
    }


    .footer-bottom {
        min-height: auto;

        padding-top: 18px;
        padding-bottom: 18px;

        flex-direction: column;

        align-items: flex-start;

        gap: 7px;

        font-size: 10px;
    }

}

/* RESPONSIVE */
@media (max-width: 1120px) {
  .hero {
    grid-template-columns: 1fr;
    padding-top: calc(var(--header-height) + 20px);
    align-items: start;
  }

  .hero-copy {
    max-width: 900px;
  }

  .leaderboard-panel {
    max-width: 850px;
    width: 100%;
    margin: 0 auto;
  }

  .event-mark h1 {
    font-size: clamp(70px, 13vw, 126px);
  }

  .event-x {
    left: clamp(150px, 28vw, 270px);
    font-size: clamp(90px, 16vw, 154px);
  }

  .scroll-indicator {
    display: none;
  }

}

@media (max-width: 900px) {
  :root {
    --header-height: 90px;
  }

  .site-header {
    padding: 0 20px;
  }

.brand-group {
    display: flex;
    align-items: center;
    gap: 10px;
    width: auto;
    flex-shrink: 0;
}


.header-logo {
    object-fit: contain;
    display: block;
}


.nsbm-logo {
    width: 55px;
    height: 55px;
}


.exodus-logo {
    width: 65px;
    height: 65px;
}

  .menu-toggle {
    display: block;
    z-index: 1002;
  }

  .menu-toggle.open span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

  .menu-toggle.open span:nth-child(2) {
    opacity: 0;
  }

  .menu-toggle.open span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  .main-nav {
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 18px 20px 28px;
    background: rgba(1, 6, 15, .98);
    border-bottom: 1px solid var(--line);
    transform: translateY(-130%);
    opacity: 0;
    pointer-events: none;
    transition: transform .3s ease, opacity .3s ease;
  }

  .main-nav.open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .main-nav a {
    padding: 15px 4px;
    border-bottom: 1px solid rgba(255,255,255,.045);
  }

  .main-nav a::after {
    display: none;
  }

  .main-nav .nav-admin {
    margin-top: 10px;
    text-align: center;
  }

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

  .sponsor-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 680px) {
 .hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.hero-copy {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hero-title-image {
    width: 100%;
    display: flex;
    justify-content: center;
}

.hero-title-image img {
    width: 95%;
    max-width: 450px;
}

  .eyebrow {
    letter-spacing: .20em;
  }

  .eyebrow {
    text-align: center;
}

  .event-mark h1 {
    font-size: clamp(55px, 17vw, 94px);
  }

  .event-x {
    left: clamp(112px, 35vw, 190px);
    font-size: clamp(72px, 22vw, 120px);
  }

  .event-year {
    font-size: 30px;
  }

.hero-subtitle,
.hero-tagline {
    text-align: center;
}

.hero-actions {
    justify-content: center;
}

  .leaderboard-panel {
    padding: 24px 14px;
  }

.team-card {
    min-height: 150px !important;
    padding: 15px 5px;
}

.team-card.first {
    order: initial;
}

.team-logo {
    width: 45px;
    height: 45px;
    font-size: 18px;
}

.team-card h3 {
    font-size: 10px;
    letter-spacing: .05em;
}

.team-card p {
    font-size: 12px;
}

.rank-badge {
    font-size: 9px;
}

.leaderboard-panel {
    width: 100%;
    padding: 18px 12px;
}

  .countdown {
    gap: 6px;
  }

  .countdown > div {
    padding: 10px 4px;
  }

  .sponsor-grid {
    grid-template-columns: repeat(2, 1fr);
  }

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

  .footer-grid > div:last-child {
    grid-column: auto;
  }
}

@media (max-width: 680px) {
  .presents-row {
    gap: 10px;
    margin-bottom: 15px;
  }

  .presents-row span {
    width: 55px;
  }

  .presents-text {
    font-size: 11px;
    letter-spacing: .28em;
  }

  .event-x {
    left: 23%;
    font-size: clamp(78px, 24vw, 120px);
  }

  .hero-subtitle {
    letter-spacing: .20em;
  }

  .hero-tagline {
    letter-spacing: .16em;
    line-height: 1.6;
  }
}

@media(max-width:680px){

    .brand-group {
        gap: 15px;
    }


    .nsbm-header-logo {
        width: 85px;
        height: 75px;
    }


    .department-header-logo {
        width: 65px;
        height: 65px;
    }


    .scaf-header-logo {
        width: 45px;
        height: 45px;
    }

}

@media (max-width: 680px) {

@media (max-width: 680px) {

    .rounds-section .section-heading {
        width: calc(100% - 28px);
        margin: 0 auto 25px;

        text-align: left;
    }

    .rounds-section .section-heading p {
        margin: 8px 0 0;
        text-align: left;
    }

}


.rounds-grid {
    width: calc(100% - 28px);

    grid-template-columns: 1fr;

    gap: 12px;
}


.round-card {
    padding: 20px 15px 18px;
}


.round-card-header {
    margin-bottom: 20px;
}


.round-card-header span {
    font-size: 10px;
}


.round-card-header small {
    font-size: 7px;
}


.countdown {
    gap: 5px;
}


.countdown-value {
    min-width: 54px;
}


.countdown-value strong {
    font-size: 27px;
}


.countdown-separator {
    font-size: 21px;
}


.countdown-labels {
    padding: 0 14px;

    margin-top: 8px;
}


.countdown-labels span {
    font-size: 6px;
}
}

@media (max-width: 680px) {

    .hero-title-image {
        margin-bottom: 10px;
    }

}

@media (max-width: 680px) {

    .event-year {
        margin-top: 8px;
    }

}

@media (max-width: 680px) {

    .hero-subtitle {
        margin-top: 16px;
    }

}

@media (max-width: 680px) {

    .hero-tagline {
        margin-top: 6px;
    }

}

.sponsors-section {
    padding-top: 75px;
    padding-bottom: 90px;
}


.sponsor-heading {
    margin-bottom: 35px;
}


.sponsor-heading p {
    font-size: 18px;
}


/* MARQUEE */

.sponsor-marquee {
    padding: 18px 0;
}


.sponsor-marquee::before,
.sponsor-marquee::after {
    width: 55px;
}


.sponsor-track {
    gap: 12px;
    animation-duration: 22s;
}


.marquee-logo {
    width: 145px;
    height: 68px;
}


.marquee-logo img {
    max-width: 105px;
    max-height: 42px;
}


/* =========================================
   MOBILE OFFICIAL SPONSORS
========================================= */

.official-sponsors-section {
    margin-top: 45px;
    padding: 50px 0 55px;
}


.official-sponsors-heading {
    width: calc(100% - 28px);

    margin-bottom: 50px;
}


.official-sponsors-heading h3 {
    font-size: 22px;
}


.sponsor-tier {
    margin-bottom: 30px;
}


.tier-heading {
    width: calc(100% - 28px);

    margin-bottom: 18px;
}


.tier-heading h4 {
    font-size: 12px;

    letter-spacing: .20em;
}


.tier-marquee::before,
.tier-marquee::after {
    width: 45px;
}


.tier-track {
    gap: 35px;
}


.tier-sponsor {
    width: 135px;

    min-height: 90px;
}


.tier-sponsor img {
    width: 115px;

    height: 52px;

    margin-bottom: 8px;
}


.tier-sponsor span {
    font-size: 9px;

    line-height: 1.25;
}

@media (max-width: 680px) {

    .sponsor-video-section {
        padding: 45px 0 20px;
    }


    .sponsor-video-container {
        width: calc(100% - 28px);

        padding: 10px;

        border-radius: 8px;
    }


    .sponsor-video-label {
        flex-wrap: wrap;

        padding-bottom: 10px;

        font-size: 8px;
    }


    .sponsor-video-label small {
        width: 100%;

        margin-left: 14px;

        font-size: 7px;

        color: rgba(190, 210, 230, 0.45);
    }


    .sponsor-video-frame {
        aspect-ratio: 16 / 9;

        border-radius: 5px;
    }


    .sponsor-video-footer {
        padding-top: 10px;

        font-size: 8px;
    }

}

@media (max-width: 680px) {

    .rounds-section {
        padding: 55px 0 70px;
    }


    .rounds-grid {
        width: calc(100% - 22px);

        grid-template-columns: 1fr;

        gap: 16px;
    }


    .round-card {
        min-height: 272px;

        padding: 20px 16px 24px;
    }


    .round-card-top {
        margin-bottom: 22px;
    }


    .round-number {
        font-size: 9px;
    }


    .round-status {
        font-size: 8px;
    }


    .round-title {
        font-size: 22px;
    }


    .round-date {
        margin-top: 7px;

        margin-bottom: 28px;

        font-size: 8px;
    }


    .countdown {
        grid-template-columns:
            repeat(4, 1fr);

        gap: 6px;
    }


    .countdown-box {
        height: 66px;
    }


    .countdown-box strong {
        font-size: 21px;
    }


    .countdown-box span {
        margin-top: 7px;

        font-size: 6px;
    }


    .round-progress {
        left: 16px;
        right: 16px;

        bottom: 18px;
    }

}

@media (max-width: 680px) {
    .round-card.round-live .round-status {
        font-size: 20px;
    }
}

@media (max-width: 680px) {

    .live-countdown-message {
        font-size: 10px;

        letter-spacing: .04em;

        margin-bottom: 13px;
    }


    .countdown-active {
        gap: 6px;
    }


    .round-over-message {
        font-size: 10px;

        letter-spacing: .04em;
    }

}

@media (max-width: 680px) {

    .live-countdown-message {
        font-size: 10px;

        margin-bottom: 14px;

        letter-spacing: .04em;
    }


    .active-countdown {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));

        gap: 5px;
    }


    .active-countdown .countdown-box {
        height: 66px;
    }


    .active-countdown .countdown-box strong {
        font-size: 20px;
    }

}

@media (max-width: 680px) {

    .round-card.round-live .active-countdown {
        display: grid;

        grid-template-columns: repeat(4, minmax(0, 1fr));

        gap: 6px;

        width: 100%;
    }


    .round-card.round-live .active-countdown .countdown-box {
        height: 66px;
    }


    .round-card.round-live .active-countdown .countdown-box strong {
        font-size: 20px;
    }


    .round-card.round-live .active-countdown .countdown-box span {
        margin-top: 7px;

        font-size: 6px;
    }


    .round-card.round-live .live-countdown-message {
        font-size: 10px;

        margin-bottom: 14px;

        white-space: nowrap;
    }

}

@media (max-width: 680px) {

    .round-over-message {
        min-height: 80px;

        font-size: 13px;

        letter-spacing: .05em;

        white-space: nowrap;
    }

}

/* =========================================
   ACTIVE ROUND
========================================= */

.round-card.round-live .countdown {
    display: block;
    width: 100%;
}


/* LIVE MESSAGE */

.round-card.round-live .live-countdown-message {
    display: block;

    width: 100%;

    margin: 0 0 18px 0;

    font-family: "Orbitron", sans-serif;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: .06em;

    line-height: 1.2;

    color: #4caeff;

    text-align: left;

    white-space: nowrap;

    text-shadow:
        0 0 6px rgba(76, 174, 255, .35);
}


/* =========================================
   ACTIVE TIMER — FOUR HORIZONTAL BOXES
========================================= */

.round-card.round-live .active-countdown {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 10px;

    width: 100%;

    margin: 0;

    padding: 0;
}


.round-card.round-live .active-countdown .countdown-box {
    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    width: 100%;

    height: 76px;

    box-sizing: border-box;

    min-width: 0;
}


.round-card.round-live .active-countdown .countdown-box strong {
    font-family: "Orbitron", sans-serif;

    font-size: 26px;

    line-height: 1;

    white-space: nowrap;
}


.round-card.round-live .active-countdown .countdown-box span {
    margin-top: 9px;
}

/* =========================================
   LEADERBOARD — TOP 3 PODIUM
========================================= */

.leaderboard-top {
    width: min(var(--max-width), calc(100% - 44px));
    margin: 0 auto 90px;
}


/* Section title */

.leaderboard-section-title {
    margin-bottom: 35px;
    text-align: center;
}

.leaderboard-section-title span {
    display: block;

    font-family: "Orbitron", sans-serif;

    font-size: 9px;

    letter-spacing: .25em;

    color: #4caeff;

    margin-bottom: 8px;
}

.leaderboard-section-title h2 {
    margin: 0;

    font-family: "Orbitron", sans-serif;

    font-size: 28px;

    letter-spacing: .05em;

    color: #edf5ff;
}

/* =========================================
   POINTS
========================================= */

.podium-card strong {
    font-family: "Orbitron", sans-serif;

    font-size: 24px;

    font-weight: 600;

    letter-spacing: .04em;

    color: #cfe6ff;
}


.podium-first strong {
    font-size: 32px;

    color: #4caeff;

    text-shadow:
        0 0 10px rgba(76, 174, 255, .25);
}


/* POINT LABEL */

.points-label {
    margin-top: 6px;

    font-family: "Orbitron", sans-serif;

    font-size: 7px;

    letter-spacing: .22em;

    color: rgba(126, 170, 208, .5);
}


/* =========================================
   FIRST PLACE ACCENT
========================================= */

.podium-first::after {
    content: "";

    position: absolute;

    left: 15%;
    right: 15%;

    bottom: 16px;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #4caeff,
            transparent
        );

    box-shadow:
        0 0 10px rgba(76, 174, 255, .35);
}


/* =========================================
   FULL LEADERBOARD
========================================= */

.leaderboard-results {
    width: min(var(--max-width), calc(100% - 44px));

    margin: 0 auto 100px;
}


/* HEADER */

.leaderboard-results-header {
    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    margin-bottom: 30px;
}


.leaderboard-results-header h2 {
    margin: 0;

    font-family: "Orbitron", sans-serif;

    font-size: 28px;

    letter-spacing: .05em;

    color: #edf5ff;
}

.leaderboard-title-row {
    display: flex;
    align-items: flex-end;
    gap: 16px;
}


.leaderboard-title-row h2 {
    margin: 0;
}


/* =========================================
   FULL LEADERBOARD — LIVE STATUS
========================================= */

.live-status {
    display: flex;

    align-items: center;

    gap: 6px;

    font-family: "Orbitron", sans-serif;

    font-size: 20px;

    font-weight: 700;

    letter-spacing: .12em;

    color: #38e6a3;

    white-space: nowrap;

    animation: leaderboardLiveFlash 1.5s ease-in-out infinite;
}


.live-status span {
    font-size: 8px;

    line-height: 1;
}

/* =========================================
   LIVE FLASH
========================================= */

@keyframes leaderboardLiveFlash {

    0%,
    100% {
        opacity: 1;

        text-shadow:
            0 0 8px rgba(76, 174, 255, .7);
    }

    50% {
        opacity: .35;

        text-shadow: none;
    }

}


.live-status span {
    font-size: 9px;

    text-shadow:
        0 0 8px rgba(76, 174, 255, .7);
}


/* =========================================
   FILTERS
========================================= */

.round-filters {
    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: 22px;
}


.round-filter {
    padding: 11px 18px;

    border: 1px solid rgba(76, 157, 225, .2);

    background: rgba(4, 16, 29, .7);

    color: rgba(172, 199, 224, .65);

    font-family: "Orbitron", sans-serif;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: .08em;

    cursor: pointer;

    transition:
        color .25s ease,
        border-color .25s ease,
        background .25s ease;
}


.round-filter:hover {
    color: #edf5ff;

    border-color:
        rgba(76, 174, 255, .5);
}


.round-filter.active {
    color: #ffffff;

    border-color: #2798f5;

    background:
        rgba(30, 135, 225, .14);

    box-shadow:
        inset 0 -2px 0 #2798f5;
}


/* =========================================
   TABLE
========================================= */

.leaderboard-table-wrapper {
    width: 100%;

    overflow-x: auto;

    border: 1px solid rgba(76, 157, 225, .18);

    background:
        linear-gradient(
            145deg,
            rgba(6, 22, 38, .88),
            rgba(2, 11, 20, .95)
        );

    clip-path:
        polygon(
            12px 0,
            100% 0,
            100% calc(100% - 12px),
            calc(100% - 12px) 100%,
            0 100%,
            0 12px
        );
}


.leaderboard-table {
    width: 100%;

    border-collapse: collapse;

    font-family: "Orbitron", sans-serif;
}


/* HEADER */

.leaderboard-table thead {
    background:
        rgba(20, 57, 88, .22);
}


.leaderboard-table th {
    padding: 17px 15px;

    text-align: left;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: .12em;

    color: rgba(144, 186, 224, .65);

    border-bottom:
        1px solid rgba(76, 157, 225, .15);

    white-space: nowrap;
}


/* BODY */

.leaderboard-table td {
    padding: 18px 15px;

    font-size: 11px;

    color: rgba(211, 228, 245, .72);

    border-bottom:
        1px solid rgba(76, 157, 225, .08);

    white-space: nowrap;
}


.leaderboard-table tbody tr {
    transition:
        background .25s ease;
}


.leaderboard-table tbody tr:hover {
    background:
        rgba(40, 143, 229, .06);
}


/* TEAM NAME */

.leaderboard-table .team-name {
    font-weight: 700;

    color: #eaf3ff;

    letter-spacing: .05em;
}


/* TOTAL */

.leaderboard-table .total-points {
    font-weight: 700;

    color: #4caeff;

    text-shadow:
        0 0 7px rgba(76, 174, 255, .18);
}


/* FIRST PLACE */

.leaderboard-table .rank-first td:first-child {
    color: #4caeff;

    font-weight: 700;
}


/* =========================================
   MOBILE TABLE — HIDDEN BY DEFAULT
========================================= */

.mobile-leaderboard {
    display: none;
}

@media (max-width: 680px) {

    .leaderboard-results {
        width: calc(100% - 28px);

        margin-bottom: 70px;
    }


    .leaderboard-results-header {
        align-items: flex-end;

        margin-bottom: 20px;
    }


    .leaderboard-results-header h2 {
        font-size: 20px;
    }


    .live-status {
        font-size: 15px;
    }


    /* FILTERS */

    .round-filters {
        display: flex;

        flex-wrap: nowrap;

        overflow-x: auto;

        padding-bottom: 5px;

        scrollbar-width: none;
    }


    .round-filters::-webkit-scrollbar {
        display: none;
    }


    .round-filter {
        flex: 0 0 auto;

        padding: 9px 13px;

        font-size: 7px;
    }


    /* HIDE DESKTOP TABLE */

    .leaderboard-table-wrapper {
        display: none;
    }


    /* SHOW MOBILE CARDS */

    .mobile-leaderboard {
        display: flex;

        flex-direction: column;

        gap: 10px;
    }


    .mobile-team-card {
        padding: 18px 15px 15px;

        border: 1px solid rgba(76, 157, 225, .18);

        background:
            linear-gradient(
                145deg,
                #071a2c,
                #030d18
            );

        clip-path:
            polygon(
                9px 0,
                100% 0,
                100% calc(100% - 9px),
                calc(100% - 9px) 100%,
                0 100%,
                0 9px
            );
    }


    .mobile-team-card.rank-first {
        border-color:
            rgba(76, 174, 255, .42);

        box-shadow:
            inset 3px 0 0 #2798f5;
    }


    /* TOP ROW */

    .mobile-team-top {
        display: grid;

        grid-template-columns:
            35px 1fr auto;

        align-items: center;

        gap: 8px;

        margin-bottom: 15px;
    }


    .mobile-rank {
        font-family: "Orbitron", sans-serif;

        font-size: 9px;

        color: #4caeff;
    }


    .mobile-team-name {
        font-family: "Orbitron", sans-serif;

        font-size: 13px;

        font-weight: 700;

        letter-spacing: .06em;

        color: #edf5ff;
    }


    .mobile-team-top strong {
        font-family: "Orbitron", sans-serif;

        font-size: 15px;

        color: #4caeff;
    }


    /* ROUND SCORES */

    .mobile-team-rounds {
        display: grid;

        grid-template-columns:
            repeat(4, 1fr);

        gap: 5px;
    }


    .mobile-team-rounds div {
        display: flex;

        flex-direction: column;

        align-items: center;

        justify-content: center;

        min-height: 48px;

        border: 1px solid rgba(76, 157, 225, .1);

        background:
            rgba(2, 13, 24, .6);
    }


    .mobile-team-rounds span {
        margin-bottom: 5px;

        font-family: "Orbitron", sans-serif;

        font-size: 6px;

        letter-spacing: .08em;

        color: rgba(126, 170, 208, .5);
    }


    .mobile-team-rounds strong {
        font-family: "Orbitron", sans-serif;

        font-size: 9px;

        color: #dcecff;
    }

}

/* =========================================
   LEADERBOARD PAGE — HEADER OFFSET
========================================= */

.leaderboard-page {
    padding-top: 110px;
}


@media (max-width: 680px) {

    .leaderboard-page {
        padding-top: 115px;
    }

    .leaderboard-intro {
        width: calc(100% - 28px);
        margin-bottom: 40px;
    }

    .leaderboard-intro h1 {
        font-size: 28px;
    }

    .leaderboard-intro p {
        font-size: 9px;
        line-height: 1.7;
    }

}

/* =========================================
   LEADERBOARD PAGE INTRO
========================================= */

.leaderboard-intro {
    width: min(var(--max-width), calc(100% - 44px));
    margin: 0 auto 55px;
}

.leaderboard-intro .section-eyebrow {
    margin-bottom: 8px;
    color: #7cc6ff
}

.leaderboard-intro h1 {
    margin: 0 0 10px;

    font-family: "Orbitron", sans-serif;

    font-size: 42px;
    letter-spacing: .04em;

    color: #edf5ff;
}

.leaderboard-intro p {
    margin: 0;

    font-family: "Orbitron", sans-serif;

    font-size: 11px;

    color: rgba(166, 194, 220, .7);

    letter-spacing: .02em;
}

/* =========================================
   CURRENT LEADER PANEL
========================================= */


.current-leader {

    width: min(var(--max-width), calc(100% - 44px));

    margin: 0 auto 70px;


    padding: 25px 35px;


    background:
    linear-gradient(
        145deg,
        rgba(8,27,45,.95),
        rgba(3,13,23,.95)
    );


    border:1px solid rgba(76,157,225,.22);


    clip-path:
    polygon(
        15px 0,
        100% 0,
        100% calc(100% - 15px),
        calc(100% - 15px) 100%,
        0 100%,
        0 15px
    );

}


/* LIVE LABEL */

.current-leader-status {

    display:flex;

    align-items:center;

    gap:8px;


    font-family:"Orbitron",sans-serif;

    font-size:13px;

    letter-spacing:.15em;

    color:#38e6a3;

}


.current-leader-status span {

    width:10px;

    height:10px;

    border-radius:50%;

    background:#38e6a3;


    box-shadow:
    0 0 10px #38e6a3;

}



/* CONTENT */

.current-leader-content {


    margin-top:20px;


    display:flex;

    justify-content:space-between;

    align-items:center;

}



.current-leader-content p {


    margin:0 0 8px;


    font-family:"Orbitron",sans-serif;

    font-size:9px;

    letter-spacing:.2em;

    color:#7da4c9;

}



.current-leader-content h2 {


    margin:0;


    font-family:"Orbitron",sans-serif;


    font-size:32px;


    color:#ffffff;

}



.current-leader-content small {


    font-family:"Orbitron",sans-serif;

    font-size:9px;


    color:rgba(180,210,235,.6);

}




/* SCORE */


.current-score {


    text-align:right;

}



.current-score strong {


    display:block;


    font-family:"Orbitron",sans-serif;


    font-size:45px;


    color:#4caeff;


    text-shadow:

    0 0 15px rgba(76,174,255,.35);

}



.current-score span {


    font-family:"Orbitron",sans-serif;


    font-size:8px;

    letter-spacing:.25em;

    color:#7da4c9;

}

@media(max-width:680px){


.current-leader{

    width:calc(100% - 28px);

    padding:20px;

    margin-bottom:45px;

}


.current-leader-content{

    margin-top:18px;

}



.current-leader-content h2{

    font-size:24px;

}



.current-score strong{

    font-size:30px;

}



}

@media (max-width: 680px) {

    .leaderboard-title-row {
        gap: 10px;
    }

    .live-status {
        font-size: 15px;
        gap: 4px;
    }

    .live-status span {
        font-size: 6px;
    }

}

/* =========================================
   ACTIVE STATUS PULSE
========================================= */

@keyframes activePulse {

    0%,
    100% {
        opacity: 1;

        text-shadow:
            0 0 12px rgba(76, 174, 255, .45),
            0 0 28px rgba(76, 174, 255, .22);
    }

    50% {
        opacity: .35;

        text-shadow:
            0 0 4px rgba(76, 174, 255, .15);
    }

}

/* ============================================================
   EXODUS LOGIN PAGES
   ============================================================ */

.login-page {
    min-height: 100vh;
}


/* MAIN */

.login-main {
    min-height: calc(100vh - var(--header-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 120px 24px 80px;
}


.login-section {
    width: 100%;
}


.login-content {
    width: min(560px, 100%);
    margin: 0 auto;
}


/* INTRO */

.login-eyebrow {
    color: var(--accent-color);
    font-size: 12px;
    letter-spacing: 3px;
    font-weight: 700;
    margin-bottom: 14px;
}


.login-content h1 {
    margin: 0;
    font-size: clamp(42px, 6vw, 68px);
    line-height: 0.95;
}


.login-description {
    margin: 20px 0 32px;
    color: var(--muted-text);
    line-height: 1.7;
    max-width: 500px;
}


/* LOGIN CARD */

.login-card {
    position: relative;
    background: rgba(4, 20, 34, 0.92);
    border: 1px solid rgba(48, 145, 220, 0.35);
    padding: 30px;
    clip-path: polygon(
        0 14px,
        14px 0,
        100% 0,
        100% calc(100% - 14px),
        calc(100% - 14px) 100%,
        0 100%
    );
}


.login-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    font-size: 12px;
    letter-spacing: 2px;
    color: var(--accent-color);
}


.login-status {
    font-size: 10px;
    letter-spacing: 1.5px;
    opacity: 0.9;
}


/* FORM */

.form-group {
    margin-bottom: 22px;
}


.form-group label {
    display: block;
    margin-bottom: 9px;
    font-size: 11px;
    letter-spacing: 2px;
    color: #8fa8bd;
}


.form-group input {
    width: 100%;
    height: 54px;
    padding: 0 16px;

    background: rgba(1, 12, 22, 0.9);

    border: 1px solid rgba(48, 145, 220, 0.28);

    color: #eaf4ff;

    font-family: inherit;
    font-size: 14px;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.form-group input:focus {
    border-color: var(--accent-color);

    box-shadow:
        0 0 0 1px rgba(48, 145, 220, 0.15),
        0 0 18px rgba(48, 145, 220, 0.08);
}


.form-group input::placeholder {
    color: #4f6477;
}


/* PASSWORD */

.password-wrapper {
    position: relative;
}


.password-wrapper input {
    padding-right: 80px;
}


.password-toggle {
    position: absolute;

    right: 12px;
    top: 50%;

    transform: translateY(-50%);

    background: none;
    border: none;

    color: var(--accent-color);

    font-family: inherit;
    font-size: 9px;

    letter-spacing: 1px;

    cursor: pointer;
}


/* LOGIN BUTTON */

.login-submit {
    width: 100%;
    height: 56px;

    margin-top: 8px;

    background: transparent;

    border: 1px solid var(--accent-color);

    color: #eaf4ff;

    font-family: inherit;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 2px;

    cursor: pointer;

    transition:
        background 0.2s ease,
        box-shadow 0.2s ease,
        color 0.2s ease;
}


.login-submit:hover {
    background: rgba(48, 145, 220, 0.12);

    box-shadow:
        0 0 22px rgba(48, 145, 220, 0.12);
}


.login-submit:disabled {
    opacity: 0.55;
    cursor: wait;
}


/* MESSAGE */

.login-message {
    min-height: 20px;

    margin-top: 18px;

    font-size: 11px;
    line-height: 1.5;

    letter-spacing: 0.5px;
}


.login-message.error {
    color: #ff5d68;
}


.login-message.success {
    color: var(--accent-color);
}


/* NOTE */

.login-note {
    margin-top: 18px;

    color: #63798c;

    font-size: 10px;

    line-height: 1.6;

    letter-spacing: 0.5px;
}


.login-note span {
    color: var(--accent-color);
}


/* ADMIN */

.admin-login-page .login-card {
    border-color: rgba(48, 145, 220, 0.45);
}


.admin-login-page .login-status {
    color: var(--accent-color);
}


/* MOBILE */

@media (max-width: 700px) {

    .login-main {
        padding:
            calc(var(--header-height) + 55px)
            20px
            60px;
    }


    .login-content h1 {
        font-size: 42px;
    }


    .login-card {
        padding: 22px;
    }


    .login-card-header {
        margin-bottom: 24px;
    }

}

/* =========================================================
   TEAM PORTAL
   ========================================================= */

.team-portal-page {
    min-height: calc(100vh - var(--header-height));
    padding: 110px 0 100px;
}

.team-portal {
    width: min(1350px, calc(100% - 60px));
    margin: 0 auto;
}


/* =========================
   PORTAL HEADER
   ========================= */

.team-portal-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 55px;
}

.team-portal-eyebrow {
    margin: 0 0 12px;
    color: #39a9ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 3px;
}

.team-portal-header h1 {
    margin: 0;
    color: #f4f8ff;
    font-family: 'Orbitron', sans-serif;
    font-size: clamp(38px, 5vw, 68px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 1px;
}

.team-portal-header h1 span {
    color: #39a9ff;
}

.team-portal-description {
    max-width: 600px;
    margin: 20px 0 0;
    color: #8293a8;
    font-family: 'Rajdhani', sans-serif;
    font-size: 17px;
    line-height: 1.5;
}


/* =========================
   TEAM ID
   ========================= */

.team-identity {
    min-width: 190px;
    padding: 18px 22px;
    border: 1px solid rgba(52, 150, 220, 0.35);
    background: rgba(5, 22, 38, 0.75);
    text-align: right;
}

.team-identity span {
    display: block;
    margin-bottom: 8px;
    color: #62788f;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    letter-spacing: 2px;
}

.team-identity strong {
    color: #eaf4ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 15px;
    letter-spacing: 1px;
}


/* =========================
   ROUND GRID
   ========================= */

.team-rounds-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(420px, 1fr));
    gap: 22px;
    width: 100%;
}


/* =========================
   ROUND CARD
   ========================= */

.team-round-panel {
    position: relative;
    min-height: 330px;
    padding: 30px;
    overflow: hidden;

    border: 1px solid rgba(40, 116, 166, 0.35);
    background:
        linear-gradient(
            135deg,
            rgba(6, 27, 45, 0.96),
            rgba(3, 14, 27, 0.96)
        );

    transition:
        border-color 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


/* angular corner */

.team-round-panel::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;

    width: 28px;
    height: 28px;

    background: #030b14;

    clip-path: polygon(
        100% 0,
        100% 100%,
        0 0
    );
}


/* bottom glow line */

.team-round-panel::after {
    content: "";
    position: absolute;

    left: 30px;
    right: 30px;
    bottom: 0;

    height: 2px;

    background: #168fe0;

    box-shadow:
        0 0 12px rgba(22, 143, 224, 0.5);

    opacity: 0.45;
}


/* =========================
   ROUND TOP
   ========================= */

.team-round-top {
    display: flex;
    justify-content: space-between;
    align-items: center;

    margin-bottom: 35px;
}

.team-round-top > span:first-child {
    color: #3ca9ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
}

.team-round-status {
    color: #61758a;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    letter-spacing: 1.5px;
}


/* =========================
   ROUND TITLE
   ========================= */

.team-round-panel h2 {
    margin: 0;

    color: #eef5ff;

    font-family: 'Orbitron', sans-serif;
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 600;

    letter-spacing: 1px;
}

.team-round-panel p {
    max-width: 500px;

    margin: 15px 0 28px;

    color: #8193a8;

    font-family: 'Rajdhani', sans-serif;
    font-size: 16px;
    line-height: 1.5;
}


/* =========================
   ROUND BUTTON
   ========================= */

.team-round-button {
    width: 100%;
    min-height: 48px;

    border: 1px solid rgba(53, 151, 216, 0.35);
    background: rgba(5, 21, 36, 0.9);

    color: #60758a;

    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;

    cursor: not-allowed;
}


/* =========================
   LOGOUT
   ========================= */

.team-portal-footer {
    display: flex;
    justify-content: flex-end;

    margin-top: 35px;
}

.team-logout-button {
    padding: 13px 28px;

    border: 1px solid rgba(255, 70, 70, 0.45);
    background: transparent;

    color: #c97a7a;

    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.5px;

    cursor: pointer;

    transition:
        color 0.25s ease,
        border-color 0.25s ease,
        background 0.25s ease;
}

.team-logout-button:hover {
    color: #ff7d7d;
    border-color: #ff4d4d;
    background: rgba(255, 50, 50, 0.06);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 800px) {

    .team-portal-page {
        padding: 80px 0 70px;
    }

    .team-portal {
        width: min(100% - 30px, 600px);
    }

    .team-portal-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
        margin-bottom: 40px;
    }

    .team-portal-header h1 {
        font-size: 38px;
    }

    .team-identity {
        width: 100%;
        text-align: left;
    }

    .team-rounds-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .team-round-panel {
        min-height: auto;
        padding: 25px;
    }

    .team-round-top {
        margin-bottom: 28px;
    }

    .team-round-panel h2 {
        font-size: 25px;
    }

    .team-portal-footer {
        justify-content: stretch;
    }

    .team-logout-button {
        width: 100%;
    }
}

@media (max-width: 800px) {

    .team-identity {
        width: 100%;
        padding: 24px 22px;
        text-align: left;

        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        column-gap: 20px;
    }

    /* Team name + ID stay on the left */
    .team-identity > span,
    .team-identity > strong {
        grid-column: 1;
        text-align: left;
    }

    /* Total score moves to the right */
    .team-total-score {
        grid-column: 2;
        grid-row: 1 / span 3;

        margin-top: 0;
        text-align: right;
        align-self: center;
    }

    .team-total-score span {
        display: block;
        font-size: 9px;
        letter-spacing: 2px;
        margin-bottom: 6px;
    }

    .team-total-score strong {
        font-size: 42px;
        line-height: 1;
    }
}


@media (max-width: 480px) {

    .team-portal-page {
        padding-top: 70px;
    }

    .team-portal-header h1 {
        font-size: 31px;
    }

    .team-portal-description {
        font-size: 15px;
    }

    .team-round-panel {
        padding: 22px;
    }

    .team-round-panel h2 {
        font-size: 22px;
    }

    .team-round-panel p {
        font-size: 15px;
    }

}

/* =========================================================
   TEAM PORTAL — ROUND STATES
========================================================= */


/* =========================
   TOTAL SCORE
========================= */

.team-total-score {
    margin-top: 14px;
}

.team-total-score span {
    display: block;

    margin-bottom: 5px;

    color: #62788f;

    font-family: 'Orbitron', sans-serif;
    font-size: 8px;
    letter-spacing: 2px;
}

.team-total-score strong {
    color: #39a9ff;

    font-family: 'Orbitron', sans-serif;
    font-size: 28px;

    text-shadow:
        0 0 12px rgba(57, 169, 255, 0.35);
}


/* =========================
   COUNTDOWN
========================= */

.team-round-countdown {
    margin-top: 25px;
}

.countdown-label {
    display: block;

    margin-bottom: 10px;

    color: #62788f;

    font-family: 'Orbitron', sans-serif;
    font-size: 8px;
    letter-spacing: 2px;
}

.team-countdown-values {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 8px;
}

.team-countdown-values > div {
    padding: 10px 5px;

    border: 1px solid
        rgba(39, 111, 158, 0.3);

    background:
        rgba(2, 13, 25, 0.65);

    text-align: center;
}

.team-countdown-values strong {
    display: block;

    color: #e8f2ff;

    font-family: 'Orbitron', sans-serif;
    font-size: 20px;
}

.team-countdown-values span {
    display: block;

    margin-top: 4px;

    color: #50667b;

    font-family: 'Orbitron', sans-serif;
    font-size: 6px;
    letter-spacing: 1px;
}


/* =========================
   ACTIVE STATE
========================= */

.team-round-panel.round-live {
    border-color:
        rgba(43, 220, 126, 0.45);

    box-shadow:
        0 0 25px
        rgba(43, 220, 126, 0.06);
}

.team-round-panel.round-live
.team-round-status {
    color: #32df82;

    animation:
        teamActivePulse 1.5s ease-in-out infinite;
}

.team-round-panel.round-live
.team-round-status::first-letter {
    color: #32df82;
}


/* Active countdown */

.team-round-panel.round-live
.countdown-label {
    color: #32df82;
}


/* =========================
   ENTER ROUND BUTTON
========================= */

.team-enter-round {
    width: 100%;

    min-height: 48px;

    margin-top: 18px;

    border: 1px solid
        rgba(43, 220, 126, 0.65);

    background:
        rgba(21, 117, 65, 0.12);

    color: #39e58a;

    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    font-weight: 700;

    letter-spacing: 2px;

    cursor: pointer;

    transition:
        background 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}

/* =========================================================
   TEAM PORTAL - HIDE ENTER BUTTON UNTIL ROUND IS LIVE
========================================================= */

.team-enter-round {
    display: none;
}

.team-round-panel.round-live .team-enter-round {
    display: block;
}

.team-round-panel.round-live
.team-enter-round {
    animation:
        enterRoundPulse 1.8s ease-in-out infinite;
}

.team-round-panel.round-live
.team-enter-round:hover {
    background:
        rgba(43, 220, 126, 0.18);

    border-color: #39e58a;

    box-shadow:
        0 0 20px
        rgba(43, 220, 126, 0.2);
}


/* =========================
   ROUND OVER
========================= */

.team-round-over {
    display: none;

    margin-top: 30px;

    text-align: center;
}

.team-round-panel.round-over
.team-round-countdown,
.team-round-panel.round-over
.team-enter-round,
.team-round-panel.round-over
.team-round-description {
    display: none;
}

.team-round-panel.round-over
.team-round-over {
    display: block;
}

.team-round-panel.round-over {
    border-color:
        rgba(255, 61, 61, 0.4);

    box-shadow:
        0 0 25px
        rgba(255, 40, 40, 0.05);
}

.round-over-message {
    color: #ff4b4b;

    font-family: 'Orbitron', sans-serif;
    font-size: 25px;
    font-weight: 700;

    letter-spacing: 1.5px;

    animation:
        roundOverPulse 1.5s ease-in-out infinite;
}

.round-score-label {
    margin-top: 25px;

    color: #63788c;

    font-family: 'Orbitron', sans-serif;
    font-size: 8px;

    letter-spacing: 2px;
}

.round-score {
    display: block;

    margin-top: 5px;

    color: #7cc6ff;

    font-family: 'Orbitron', sans-serif;
    font-size: 34px;

    text-shadow:
        0 0 15px
        rgba(84, 117, 148, 0.3);
}

.round-score-unit {
    color: #63788c;

    font-family: 'Orbitron', sans-serif;
    font-size: 7px;

    letter-spacing: 2px;
}


/* =========================
   ANIMATIONS
========================= */

@keyframes teamActivePulse {

    0%,
    100% {
        opacity: 1;

        text-shadow:
            0 0 5px
            rgba(43, 220, 126, 0.2);
    }

    50% {
        opacity: 0.45;

        text-shadow:
            0 0 14px
            rgba(43, 220, 126, 0.7);
    }

}


@keyframes enterRoundPulse {

    0%,
    100% {
        box-shadow:
            0 0 0
            rgba(43, 220, 126, 0);
    }

    50% {
        box-shadow:
            0 0 18px
            rgba(43, 220, 126, 0.18);
    }

}


@keyframes roundOverPulse {

    0%,
    100% {
        opacity: 1;

        text-shadow:
            0 0 5px
            rgba(255, 50, 50, 0.2);
    }

    50% {
        opacity: 0.45;

        text-shadow:
            0 0 15px
            rgba(255, 50, 50, 0.7);
    }

}


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

@media (max-width: 800px) {

    .team-countdown-values {
        gap: 5px;
    }

    .team-countdown-values strong {
        font-size: 17px;
    }

    .team-countdown-values span {
        font-size: 5px;
    }

    .round-over-message {
        font-size: 20px;
    }

    .round-score {
        font-size: 30px;
    }

}

/* =========================================
   TEAM PORTAL - MOBILE HEADER CLEARANCE
========================================= */

@media (max-width: 800px) {

    .team-portal-page {
        padding-top: 115px;
    }

}

@media (max-width: 480px) {

    .team-portal-page {
        padding-top: 110px;
    }

}

/* =========================================================
   ADMIN PORTAL
========================================================= */

.admin-portal-page {
    min-height: calc(100vh - var(--header-height));
    padding: 110px 0 100px;
}

.admin-portal {
    width: min(1180px, calc(100% - 44px));
    margin: 0 auto;
}


/* =========================================================
   ADMIN HEADER
========================================================= */

.admin-portal-header {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 50px;
    align-items: center;
    margin-bottom: 55px;
}

.admin-portal-eyebrow {
    margin: 0 0 12px;
    color: #35a9ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
}

.admin-portal-header h1 {
    margin: 0;
    color: #f3f7ff;
    font-family: 'Orbitron', sans-serif;
    font-size: clamp(42px, 5vw, 70px);
    font-weight: 800;
    line-height: .95;
    letter-spacing: -2px;
}

.admin-portal-header h1 span {
    color: #35a9ff;
}

.admin-portal-description {
    max-width: 650px;
    margin: 20px 0 0;
    color: #8091a8;
    font-family: 'Rajdhani', sans-serif;
    font-size: 17px;
    line-height: 1.5;
}


/* =========================================================
   ADMIN IDENTITY
========================================================= */

.admin-identity {
    padding: 22px;
    border: 1px solid rgba(53, 169, 255, .28);
    background: rgba(5, 20, 35, .82);
    text-align: right;
    clip-path: polygon(
        0 0,
        calc(100% - 16px) 0,
        100% 16px,
        100% 100%,
        0 100%
    );
}

.admin-identity span {
    display: block;
    margin-bottom: 6px;
    color: #51657c;
    font-family: 'Orbitron', sans-serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 2px;
}

.admin-identity strong {
    display: block;
    margin-bottom: 18px;
    color: #eaf2ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 15px;
    letter-spacing: 1px;
}

.admin-identity .admin-status {
    margin: 0;
    color: #38e6a3;
    font-size: 10px;
    animation: activePulse 1.5s ease-in-out infinite;
}


/* =========================================================
   ADMIN SECTION HEADINGS
========================================================= */

.admin-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 24px;
}

.admin-section-heading > div:first-child > span {
    display: block;
    margin-bottom: 7px;
    color: #35a9ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

.admin-section-heading h2 {
    margin: 0;
    color: #eef5ff;
    font-family: 'Orbitron', sans-serif;
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.5px;
}

.admin-live-indicator,
.admin-round-note {
    color: #4c6580;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1.5px;
}


/* =========================================================
   COMPETITION STATUS
========================================================= */

.admin-status-panel,
.admin-score-section {
    position: relative;
    padding: 30px;
    border: 1px solid rgba(53, 169, 255, .18);
    background: rgba(4, 17, 30, .78);
    clip-path: polygon(
        0 0,
        calc(100% - 18px) 0,
        100% 18px,
        100% 100%,
        18px 100%,
        0 calc(100% - 18px)
    );
}

.admin-status-panel {
    margin-bottom: 45px;
}


/* =========================================================
   ROUND STATUS GRID
========================================================= */

.admin-round-status-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.admin-round-status {
    min-height: 105px;
    padding: 18px;
    border: 1px solid rgba(53, 169, 255, .13);
    background: rgba(2, 11, 21, .72);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.admin-round-status > div span {
    display: block;
    margin-bottom: 8px;
    color: #3e9bd8;
    font-family: 'Orbitron', sans-serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

.admin-round-status > div strong {
    display: block;
    color: #cbd8e8;
    font-family: 'Orbitron', sans-serif;
    font-size: 12px;
    line-height: 1.25;
}

.admin-round-status b {
    color: #52667d;
    font-family: 'Orbitron', sans-serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1px;
}

.admin-round-status.active {
    border-color: rgba(56, 230, 163, .45);
}

.admin-round-status.active b {
    color: #38e6a3;
    animation: activePulse 1.5s ease-in-out infinite;
}


/* =========================================================
   SCORE SECTION
========================================================= */

.admin-score-section {
    padding: 30px;
}

.admin-section-description {
    margin: -8px 0 25px;
    color: #70839a;
    font-family: 'Rajdhani', sans-serif;
    font-size: 15px;
}


/* =========================================================
   SCORE TABLE
========================================================= */

.admin-score-table-wrapper {
    width: 100%;
    overflow-x: auto;
    border: 1px solid rgba(53, 169, 255, .12);
}

.admin-score-table {
    width: 100%;
    min-width: 1020px;
    border-collapse: collapse;
    font-family: 'Rajdhani', sans-serif;
}

.admin-score-table th {
    height: 45px;
    padding: 0 14px;
    border-bottom: 1px solid rgba(53, 169, 255, .18);
    background: rgba(7, 28, 46, .85);
    color: #58718c;
    font-family: 'Orbitron', sans-serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1px;
    text-align: center;
    white-space: nowrap;
}

.admin-score-table th:nth-child(2) {
    text-align: left;
}

.admin-score-table td {
    height: 62px;
    padding: 8px 10px;
    border-bottom: 1px solid rgba(53, 169, 255, .08);
    color: #b8c7d8;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.admin-score-table td:first-child {
    color: #3d7199;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
}

.admin-score-table td:nth-child(2) {
    color: #eaf2ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 11px;
    text-align: left;
}

.admin-score-table td:last-child {
    color: #35a9ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 13px;
}


/* =========================================================
   SCORE INPUTS
========================================================= */

.admin-score-input {
    width: 70px;
    height: 36px;
    padding: 0 8px;
    border: 1px solid rgba(53, 169, 255, .18);
    outline: none;
    background: rgba(1, 9, 17, .8);
    color: #eaf2ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 11px;
    text-align: center;
    transition: border-color .2s ease,
                box-shadow .2s ease;
}

.admin-score-input:focus {
    border-color: #35a9ff;
    box-shadow: 0 0 15px rgba(53, 169, 255, .12);
}

.admin-score-input::-webkit-outer-spin-button,
.admin-score-input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.admin-score-input[type="number"] {
    appearance: textfield;
}


/* =========================================================
   SCORE ACTIONS
========================================================= */

.admin-score-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-top: 25px;
}

.admin-message {
    min-height: 20px;
    color: #38e6a3;
    font-family: 'Rajdhani', sans-serif;
    font-size: 14px;
}

.admin-save-button {
    min-width: 230px;
    height: 48px;
    padding: 0 25px;
    border: 1px solid #35a9ff;
    background: rgba(7, 35, 58, .65);
    color: #eaf5ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.4px;
    cursor: pointer;
    transition: background .25s ease,
                box-shadow .25s ease,
                transform .25s ease;
}

.admin-save-button:hover {
    background: rgba(53, 169, 255, .12);
    box-shadow: 0 0 25px rgba(53, 169, 255, .14);
    transform: translateY(-1px);
}

.admin-save-button:active {
    transform: translateY(0);
}


/* =========================================================
   LOGOUT
========================================================= */

.admin-portal-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 25px;
}

.admin-logout-button {
    padding: 12px 22px;
    border: 1px solid rgba(255, 75, 75, .35);
    background: transparent;
    color: #c76a6a;
    font-family: 'Orbitron', sans-serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.5px;
    cursor: pointer;
    transition: border-color .2s ease,
                color .2s ease,
                background .2s ease;
}

.admin-logout-button:hover {
    border-color: #ff4b4b;
    background: rgba(255, 75, 75, .06);
    color: #ff6b6b;
}


/* =========================================================
   ADMIN PORTAL MOBILE
========================================================= */

@media (max-width: 800px) {

    .admin-portal-page {
        padding: 110px 0 80px;
    }

    .admin-portal {
        width: calc(100% - 28px);
    }

    .admin-portal-header {
        grid-template-columns: 1fr;
        gap: 25px;
        margin-bottom: 35px;
    }

    .admin-portal-header h1 {
        font-size: 42px;
    }

    .admin-portal-description {
        font-size: 15px;
    }

    .admin-identity {
        width: 100%;
        text-align: left;
    }

    .admin-status-panel,
    .admin-score-section {
        padding: 22px 16px;
    }

    .admin-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

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

    .admin-score-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-save-button {
        width: 100%;
    }

    .admin-portal-footer {
        justify-content: stretch;
    }

    .admin-logout-button {
        width: 100%;
    }

}


@media (max-width: 480px) {

    .admin-portal-page {
        padding-top: 105px;
    }

    .admin-portal {
        width: calc(100% - 20px);
    }

    .admin-portal-header h1 {
        font-size: 36px;
        letter-spacing: -1px;
    }

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

    .admin-status-panel,
    .admin-score-section {
        padding: 20px 13px;
    }

}

/* =========================================================
   EXODUS - ROUND 01 / QUEST X
   ========================================================= */

/* Round 01 Page Grid */
.page-grid {
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0.35;
    background-image:
        linear-gradient(rgba(30, 144, 255, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 144, 255, 0.06) 1px, transparent 1px);
    background-size: 40px 40px;
}


/* Main Round Page */
.page {
    width: min(1120px, 92%);
    margin: 0 auto;
    padding: 100px 0 90px;
    position: relative;
    z-index: 1;
}


/* Eyebrow */
.eyebrow {
    color: #24a7ff;
    font-family: 'Orbitron', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    margin: 0 0 12px;
}


/* Headings */
.page h1,
.page h2 {
    font-family: 'Orbitron', sans-serif;
    margin: 0;
}

.page h1 {
    font-size: clamp(38px, 7vw, 72px);
    line-height: 1;
    letter-spacing: -2px;
}

.page h1 span {
    color: #269fff;
}


/* Introduction */
.intro {
    color: #70849b;
    font-size: 17px;
    margin: 18px 0 0;
}


/* =========================================================
   ROUND STATUS PANEL
   ========================================================= */

.status-panel {
    margin-top: 45px;
    border: 1px solid rgba(40, 147, 221, 0.34);
    background: rgba(4, 17, 32, 0.78);
    padding: 28px;
    position: relative;
}

.status-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.status-title {
    color: #71879e;
    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    letter-spacing: 1.5px;
}

.status-value {
    color: #31e6a2;
    font-family: 'Orbitron', sans-serif;
    font-size: 13px;
    font-weight: 700;
}

/* =========================================================
   ROUND LIVE STATUS — GREEN PULSE
========================================================= */

.status-value {
    color: #31e6a2;

    animation: roundLivePulse 1.5s ease-in-out infinite;
}

@keyframes roundLivePulse {

    0%,
    100% {
        opacity: 1;

        text-shadow:
            0 0 5px rgba(49, 230, 162, 0.25),
            0 0 12px rgba(49, 230, 162, 0.15);
    }

    50% {
        opacity: 0.4;

        text-shadow:
            0 0 12px rgba(49, 230, 162, 0.7),
            0 0 22px rgba(49, 230, 162, 0.4);
    }

}

/* =========================================================
   QUEST / LOCATION CARD
   ========================================================= */

.route-card {
    margin-top: 22px;
    border: 1px solid rgba(50, 155, 230, 0.35);
    background: linear-gradient(
        145deg,
        rgba(5, 24, 43, 0.94),
        rgba(3, 13, 27, 0.96)
    );
    padding: 32px;
}

.route-top {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
}

.location-number {
    color: #259ff5;
    font-family: 'Orbitron', sans-serif;
    font-size: 12px;
    letter-spacing: 1.5px;
}

.lock-state {
    color: #31e6a2;
    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    letter-spacing: 1.2px;
}


/* Location Name */
.route-card h2 {
    margin-top: 22px;
    font-size: clamp(28px, 5vw, 46px);
}


/* =========================================================
   CLUE
   ========================================================= */

.clue-label {
    margin-top: 34px;
    color: #6e849a;
    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    letter-spacing: 1.5px;
}

.clue-box {
    margin-top: 10px;
    border-left: 2px solid #239ef5;
    background: rgba(3, 13, 27, 0.8);
    padding: 22px;
    color: #d8e7f7;
    font-size: 20px;
    line-height: 1.45;
}


/* =========================================================
   LOCATION PROGRESS
   ========================================================= */

.progress-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 9px;
    margin-top: 34px;
}

.progress-item {
    border: 1px solid rgba(72, 129, 169, 0.3);
    min-height: 66px;
    padding: 10px;
    background: rgba(3, 13, 27, 0.75);
    text-align: center;
    transition: 0.2s ease;
}

.progress-item strong {
    display: block;
    font-family: 'Orbitron', sans-serif;
    font-size: 14px;
}

.progress-item small {
    color: #6d8298;
    font-size: 9px;
    letter-spacing: 1px;
}


/* Active Location */
.progress-item.active {
    border-color: #269fff;
    box-shadow: 0 0 15px rgba(38, 159, 255, 0.08);
}


/* Completed Location */
.progress-item.completed {
    border-color: rgba(44, 227, 164, 0.55);
}


/* =========================================================
   BUTTONS
   ========================================================= */

.action-area {
    margin-top: 30px;
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.action-area button {
    border: 1px solid #249ff8;
    background: rgba(11, 43, 70, 0.75);
    color: #eaf5ff;
    padding: 15px 22px;
    font-family: 'Orbitron', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.2px;
    cursor: pointer;
    transition: 0.2s ease;
}

.action-area button:hover:not(:disabled) {
    background: rgba(25, 108, 168, 0.45);
    box-shadow: 0 0 18px rgba(36, 159, 248, 0.12);
}

.action-area button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}


/* Back Button */
.back-button {
    border-color: rgba(120, 145, 170, 0.35) !important;
    background: transparent !important;
    color: #8398ad !important;
}


/* =========================================================
   STATUS MESSAGE
   ========================================================= */

.message {
    margin-top: 18px;
    min-height: 22px;
    color: #8297aa;
    font-size: 14px;
}

.message.error {
    color: #ff5c67;
}

.message.success {
    color: #32e3a1;
}


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

@media (max-width: 760px) {

    .page {
        padding-top: 125px;
    }

    .route-card {
        padding: 22px;
    }

    .progress-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .clue-box {
        font-size: 17px;
    }

    .status-panel {
        padding: 22px;
    }

    .route-top {
        gap: 12px;
    }

    .location-number {
        font-size: 10px;
    }

    .lock-state {
        font-size: 9px;
    }

    .action-area {
        flex-direction: column;
    }

    .action-area button {
        width: 100%;
    }
}


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

@media (max-width: 480px) {

    .page {
        width: 90%;
        padding-top: 125px;
        padding-bottom: 60px;
    }

    .status-panel {
        margin-top: 30px;
        padding: 18px;
    }

    .route-card {
        padding: 18px;
    }

    .progress-grid {
        gap: 6px;
    }

    .progress-item {
        min-height: 58px;
        padding: 8px 5px;
    }

    .progress-item strong {
        font-size: 12px;
    }

    .progress-item small {
        font-size: 8px;
    }

    .clue-box {
        padding: 17px;
        font-size: 16px;
    }

}

/* =========================================
   LOCATION SCORE
========================================= */

.location-score-panel {
    margin-top: 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.score-info {
    padding: 18px;
    border: 1px solid rgba(53, 169, 255, .16);
    background: rgba(2, 11, 21, .65);
}

.score-label {
    display: block;
    color: #71879e;
    font-family: Orbitron, sans-serif;
    font-size: 9px;
    letter-spacing: 1.5px;
    margin-bottom: 8px;
}

.score-info strong {
    font-family: Orbitron, sans-serif;
    font-size: 20px;
    color: #dcecff;
}


/* =========================================
   QUIZ PANEL
========================================= */

.quiz-panel {
    margin-top: 18px;
    padding: 24px;
    border: 1px solid rgba(53, 169, 255, .18);
    background: rgba(2, 11, 21, .55);
}

.quiz-status-title {
    font-family: Orbitron, sans-serif;
    font-size: 13px;
    letter-spacing: 1.5px;
    color: #35a9ff;
}

.quiz-panel p {
    margin: 10px 0 18px;
    color: #71879e;
    font-size: 15px;
}

#quizAvailable .quiz-status-title {
    color: #38e6a3;
}

#quizLocked .quiz-status-title {
    color: #6d8298;
}

#quizCompleted .quiz-status-title {
    color: #38e6a3;
}


/* =========================================
   QUIZ TOP BAR
========================================= */

.quiz-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

#quizQuestionCounter {
    color: #35a9ff;
    font-family: Orbitron, sans-serif;
    font-size: 10px;
    letter-spacing: 1px;
}

#quizTimer {
    color: #38e6a3;
    font-family: Orbitron, sans-serif;
    font-size: 18px;
}


/* =========================================
   QUESTION
========================================= */

.quiz-question {
    padding: 22px;
    border: 1px solid rgba(53, 169, 255, .14);
    background: rgba(3, 13, 27, .75);
}

.quiz-question-text {
    margin: 0 0 22px !important;
    color: #eaf2ff !important;
    font-size: 19px !important;
    line-height: 1.45;
}

.quiz-options {
    display: grid;
    gap: 10px;
}

.quiz-option {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(53, 169, 255, .16);
    background: rgba(5, 24, 43, .65);
    color: #dcecff;
    text-align: left;
    font-family: Rajdhani, sans-serif;
    font-size: 16px;
    cursor: pointer;
}

.quiz-option:hover:not(:disabled) {
    border-color: #35a9ff;
}

.quiz-option:disabled {
    cursor: default;
}

.quiz-option.selected {
    border-color: #35a9ff;
    background: rgba(35, 126, 190, .25);
}


/* =========================================
   QUIZ RESULT
========================================= */

.quiz-result {
    margin-top: 20px;
}

.quiz-result span {
    display: block;
    color: #71879e;
    font-family: Orbitron, sans-serif;
    font-size: 9px;
    letter-spacing: 1.5px;
}

.quiz-result strong {
    display: block;
    margin-top: 6px;
    color: #38e6a3;
    font-family: Orbitron, sans-serif;
    font-size: 32px;
}


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

@media (max-width: 760px) {

    .location-score-panel {
        grid-template-columns: 1fr;
    }

    .quiz-panel {
        padding: 18px;
    }

    .quiz-question-text {
        font-size: 17px !important;
    }

    .quiz-top {
        align-items: flex-start;
    }

}

/* =========================================================
   ROUND 01 ADMIN MANAGEMENT
   ========================================================= */

.admin-score-table select.round1-quiz-lot,
.admin-score-table input.round1-physical-score,
.admin-score-table input.round1-additional-score {
    width: 110px;
    min-width: 90px;
    height: 38px;
    padding: 0 8px;
    border: 1px solid rgba(53, 169, 255, 0.35);
    background: #020b16;
    color: #dbe8f7;
    font-family: "Rajdhani", sans-serif;
    font-size: 14px;
    outline: none;
}

.admin-score-table select.round1-quiz-lot:focus,
.admin-score-table input.round1-physical-score:focus,
.admin-score-table input.round1-additional-score:focus {
    border-color: #35a9ff;
    box-shadow: 0 0 12px rgba(53, 169, 255, 0.15);
}

.admin-score-table input.round1-additional-score[readonly] {
    opacity: 0.65;
    cursor: not-allowed;
}

.round1-save-row {
    min-width: 75px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(53, 169, 255, 0.55);
    background: rgba(3, 18, 32, 0.9);
    color: #dbe8f7;
    font-family: "Orbitron", sans-serif;
    font-size: 10px;
    letter-spacing: 1px;
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease;
}

.round1-save-row:hover {
    border-color: #35a9ff;
    color: #35a9ff;
    box-shadow: 0 0 12px rgba(53, 169, 255, 0.15);
}

.round1-save-row:disabled {
    opacity: 0.5;
    cursor: wait;
}

.round1-quiz-marks {
    font-family: "Orbitron", sans-serif;
    font-weight: 600;
}

.round1-total {
    font-family: "Orbitron", sans-serif;
    font-weight: 700;
}

/* =========================================
   FINAL WORD
========================================= */

.final-word-panel {
    margin-top: 28px;
    padding: 24px;
    border: 1px solid rgba(139, 92, 246, 0.45);
    background: rgba(10, 15, 30, 0.72);
    box-shadow:
        0 0 24px rgba(99, 102, 241, 0.12);
}


.final-word-header {
    font-family: Orbitron, sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 10px;
}


.final-word-panel p {
    margin: 0 0 18px;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.6;
}


.final-word-form {
    display: flex;
    gap: 12px;
}


#finalWordInput {
    flex: 1;
    min-width: 0;
    padding: 14px 16px;
    background: rgba(3, 7, 18, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    font-family: Rajdhani, sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
    outline: none;
}


#finalWordInput:focus {
    border-color: rgba(139, 92, 246, 0.8);
    box-shadow:
        0 0 14px rgba(139, 92, 246, 0.2);
}


#submitFinalWordButton {
    padding: 14px 20px;
    border: 1px solid rgba(139, 92, 246, 0.65);
    background: rgba(99, 102, 241, 0.15);
    color: #fff;
    font-family: Orbitron, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    cursor: pointer;
}


#submitFinalWordButton:hover {
    background: rgba(99, 102, 241, 0.28);
}


#submitFinalWordButton:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}


.final-word-result {
    margin-top: 16px;
    min-height: 24px;
    font-family: Orbitron, sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 1px;
}


.final-word-result.success {
    color: #22c55e;
}


.final-word-result.error {
    color: #ef4444;
}


@media (max-width: 600px) {

    .final-word-form {
        flex-direction: column;
    }


    #submitFinalWordButton {
        width: 100%;
    }

}

/* =========================================================
   ROUND 01 FAILED LOCATION
   ========================================================= */

.progress-item.failed {
    border-color: #ff2b2b !important;
    color: #ff2b2b !important;
    box-shadow:
        0 0 8px rgba(255, 43, 43, 0.35),
        inset 0 0 12px rgba(255, 43, 43, 0.08);
}

.progress-item.failed strong,
.progress-item.failed small {
    color: #ff2b2b !important;
}

.progress-item.failed small {
    text-shadow:
        0 0 6px rgba(255, 43, 43, 0.5);
}

/* =========================================================
   TEAM PORTAL — ROUND 01 TEAM COMPLETED
========================================================= */

.team-round-panel.team-round-completed {

    border-color:
        rgba(43, 220, 126, 0.65);

    box-shadow:
        0 0 18px
        rgba(43, 220, 126, 0.08),

        inset 0 0 25px
        rgba(43, 220, 126, 0.035);

}


/* =========================================================
   COMPLETED STATUS
========================================================= */

.team-round-panel.team-round-completed
.team-round-status {

    color:
        #2bdc7e;

    animation:
        teamCompletedPulse
        1.5s
        ease-in-out
        infinite;

}


/* =========================================================
   RESULTS BUTTON
========================================================= */

.team-round-panel.team-round-completed
.team-enter-round {

    border-color:
        rgba(43, 220, 126, 0.65);

    color:
        #2bdc7e;

    background:
        rgba(43, 220, 126, 0.035);

    animation:
        enterRoundPulse
        1.8s
        ease-in-out
        infinite;

}


/* HOVER */

.team-round-panel.team-round-completed
.team-enter-round:hover {

    border-color:
        #2bdc7e;

    background:
        rgba(43, 220, 126, 0.10);

    box-shadow:
        0 0 20px
        rgba(43, 220, 126, 0.12);

}


/* =========================================================
   COMPLETED STATUS PULSE
========================================================= */

@keyframes teamCompletedPulse {

    0%,
    100% {

        opacity:
            1;

        text-shadow:
            0 0 5px
            rgba(43, 220, 126, 0.20);

    }

    50% {

        opacity:
            0.55;

        text-shadow:
            0 0 14px
            rgba(43, 220, 126, 0.70);

    }

}


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

@media (max-width: 800px) {

    .team-round-panel.team-round-completed
    .team-enter-round {

        width:
            100%;

    }

}

/* =========================================================
   EXODUS 2026
   ROUND 03 / FIELD X
   ========================================================= */


/* =========================================================
   PAGE
   ========================================================= */

.round3-page {
    width: min(1120px, 92%);
    margin: 0 auto;
    padding: 145px 0 80px;
}


/* =========================================================
   HEADER
   ========================================================= */

.round3-header {
    margin-bottom: 35px;
}


.round3-eyebrow {
    margin: 0 0 10px;

    color: #35a9ff;

    font-family: Orbitron, sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2px;

    text-transform: uppercase;
}


.round3-header h1 {
    margin: 0;

    color: #eaf5ff;

    font-family: Orbitron, sans-serif;

    font-size: clamp(38px, 6vw, 64px);

    font-weight: 900;

    letter-spacing: 2px;

    line-height: 1;
}


.round3-header h1 span {
    color: #35a9ff;

    text-shadow:
        0 0 15px rgba(53, 169, 255, .35);
}


.round3-intro {
    max-width: 700px;

    margin: 16px 0 0;

    color: #8297aa;

    font-family: Rajdhani, sans-serif;

    font-size: 16px;

    line-height: 1.65;
}


/* =========================================================
   STATUS PANEL
   ========================================================= */

.round3-status-panel {
    position: relative;

    margin-bottom: 25px;

    padding: 22px;

    border:
        1px solid rgba(53, 169, 255, .25);

    background:
        linear-gradient(
            135deg,
            rgba(8, 25, 42, .78),
            rgba(2, 11, 19, .92)
        );

    box-shadow:
        0 0 30px rgba(0, 140, 255, .04);
}


.round3-status-panel::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 20px;

    width: 80px;
    height: 2px;

    background: #35a9ff;

    box-shadow:
        0 0 12px rgba(53, 169, 255, .7);
}


.round3-status-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;
}


.round3-status-item {
    min-width: 0;
}


.round3-status-item span {
    display: block;

    margin-bottom: 7px;

    color: #60778e;

    font-family: Rajdhani, sans-serif;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.7px;

    text-transform: uppercase;
}


.round3-status-item strong {
    display: block;

    overflow: hidden;

    color: #eaf5ff;

    font-family: Orbitron, sans-serif;

    font-size: 14px;

    letter-spacing: .7px;

    text-overflow: ellipsis;

    white-space: nowrap;
}


.round3-live {
    color: #38e6a3 !important;

    text-shadow:
        0 0 10px rgba(56, 230, 163, .35);
}


.round3-locked {
    color: #ff5b5b !important;
}


/* =========================================================
   MAIN CARD
   ========================================================= */

.round3-card {
    position: relative;

    overflow: hidden;

    padding: 34px;

    border:
        1px solid rgba(53, 169, 255, .28);

    background:
        linear-gradient(
            145deg,
            rgba(7, 24, 42, .96),
            rgba(2, 10, 18, .99)
        );

    box-shadow:
        0 0 45px rgba(0, 140, 255, .06);
}


.round3-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 130px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            #35a9ff,
            transparent
        );

    box-shadow:
        0 0 14px rgba(53, 169, 255, .55);
}


.round3-card::after {
    content: "";

    position: absolute;

    right: -100px;
    bottom: -100px;

    width: 220px;
    height: 220px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(53, 169, 255, .07),
            transparent 70%
        );

    pointer-events: none;
}


.round3-section-heading {
    position: relative;

    z-index: 1;

    margin-bottom: 28px;
}


.round3-section-eyebrow {
    margin: 0 0 7px;

    color: #1e8bff;

    font-family: Orbitron, sans-serif;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;
}


.round3-card-title {
    margin: 0;

    color: #eaf5ff;

    font-family: Orbitron, sans-serif;

    font-size: 21px;

    font-weight: 800;

    letter-spacing: 1px;
}


.round3-card-description {
    max-width: 720px;

    margin: 10px 0 0;

    color: #8297aa;

    font-family: Rajdhani, sans-serif;

    font-size: 15px;

    line-height: 1.6;
}


/* =========================================================
   ASSIGNMENT
   ========================================================= */

.round3-assignment {
    position: relative;

    z-index: 1;

    margin-bottom: 25px;

    padding: 20px;

    border:
        1px solid rgba(255, 255, 255, .07);

    background:
        rgba(255, 255, 255, .025);
}


.round3-assignment-content {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;
}


.round3-assignment-title {
    margin-bottom: 6px;

    color: #35a9ff;

    font-family: Orbitron, sans-serif;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.5px;
}


.round3-assignment p {
    margin: 0;

    color: #71859d;

    font-family: Rajdhani, sans-serif;

    font-size: 14px;
}


.round3-assignment-button {
    flex-shrink: 0;

    padding: 12px 17px;

    border:
        1px solid rgba(53, 169, 255, .6);

    background:
        rgba(11, 43, 70, .55);

    color: #eaf5ff;

    font-family: Orbitron, sans-serif;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1px;

    text-decoration: none;

    transition:
        background .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}


.round3-assignment-button:hover {
    border-color: #35a9ff;

    background:
        rgba(25, 108, 168, .35);

    box-shadow:
        0 0 18px rgba(53, 169, 255, .14);
}


/* =========================================================
   UPLOAD GRID
   ========================================================= */

.round3-upload-grid {
    position: relative;

    z-index: 1;

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 20px;
}


.round3-upload-box {
    position: relative;

    display: flex;

    gap: 18px;

    min-width: 0;

    padding: 24px;

    border:
        1px dashed rgba(53, 169, 255, .3);

    background:
        rgba(0, 20, 35, .38);

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}


.round3-upload-box:hover {
    border-color:
        rgba(53, 169, 255, .65);

    background:
        rgba(4, 27, 46, .52);

    box-shadow:
        0 0 25px rgba(53, 169, 255, .05);
}


.round3-upload-icon {
    flex-shrink: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;

    border:
        1px solid rgba(53, 169, 255, .35);

    background:
        rgba(53, 169, 255, .06);

    color: #35a9ff;

    font-family: Orbitron, sans-serif;

    font-size: 9px;

    font-weight: 800;

    letter-spacing: 1px;

    box-shadow:
        inset 0 0 18px rgba(53, 169, 255, .03);
}


.round3-upload-content {
    min-width: 0;

    flex: 1;
}


.round3-upload-box h3 {
    margin: 0 0 6px;

    color: #eaf5ff;

    font-family: Orbitron, sans-serif;

    font-size: 13px;

    font-weight: 800;

    letter-spacing: 1px;
}


.round3-upload-box p {
    margin: 0 0 10px;

    color: #71859d;

    font-family: Rajdhani, sans-serif;

    font-size: 13px;

    line-height: 1.5;
}


.round3-file-limit {
    display: block;

    margin-bottom: 16px;

    color: #50677d;

    font-family: Orbitron, sans-serif;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 1px;
}


/* =========================================================
   FILE INPUT
   ========================================================= */

.round3-file-input {
    position: absolute;

    width: 1px;
    height: 1px;

    opacity: 0;

    pointer-events: none;
}


.round3-file-button {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 36px;

    padding: 9px 15px;

    border:
        1px solid rgba(53, 169, 255, .5);

    background:
        rgba(11, 43, 70, .65);

    color: #dceeff;

    cursor: pointer;

    font-family: Orbitron, sans-serif;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 1px;

    transition:
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}


.round3-file-button:hover {
    border-color: #35a9ff;

    background:
        rgba(25, 108, 168, .4);

    box-shadow:
        0 0 15px rgba(53, 169, 255, .1);
}


.round3-file-name {
    max-width: 100%;

    margin-top: 11px;

    overflow: hidden;

    color: #35a9ff;

    font-family: Rajdhani, sans-serif;

    font-size: 12px;

    font-weight: 600;

    text-overflow: ellipsis;

    white-space: nowrap;
}


/* =========================================================
   SUBMIT
   ========================================================= */

.round3-submit-area {
    position: relative;

    z-index: 1;

    display: flex;

    justify-content: flex-end;

    margin-top: 25px;
}


#round3SubmitButton {
    min-height: 46px;

    padding: 13px 25px;

    border:
        1px solid #249ff8;

    background:
        linear-gradient(
            135deg,
            rgba(11, 61, 96, .9),
            rgba(7, 32, 53, .9)
        );

    color: #eaf5ff;

    cursor: pointer;

    font-family: Orbitron, sans-serif;

    font-size: 9px;

    font-weight: 800;

    letter-spacing: 1.2px;

    transition:
        background .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}


#round3SubmitButton:hover:not(:disabled) {
    background:
        linear-gradient(
            135deg,
            rgba(25, 108, 168, .7),
            rgba(8, 46, 75, .9)
        );

    box-shadow:
        0 0 22px rgba(53, 169, 255, .14);

    transform: translateY(-1px);
}


#round3SubmitButton:disabled {
    opacity: .38;

    cursor: not-allowed;

    transform: none;
}


/* =========================================================
   SUBMISSION STATUS
   ========================================================= */

.round3-submission-status {
    position: relative;

    z-index: 1;

    margin-top: 27px;

    border:
        1px solid rgba(53, 169, 255, .22);

    background:
        rgba(0, 15, 30, .45);

    overflow: hidden;
}


/* =========================================================
   STATUS HEADER
   ========================================================= */

.round3-status-heading {
    display: flex;

    align-items: center;

    gap: 9px;

    margin: 0;

    padding: 14px 18px;

    background:
        rgba(7, 24, 42, .75);

    border-bottom:
        1px solid rgba(53, 169, 255, .16);
}


.round3-status-heading h3 {
    margin: 0;

    color: #35a9ff;

    font-family: Orbitron, sans-serif;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.5px;
}


/* STATUS DOT */

.round3-status-dot {
    width: 6px;

    height: 6px;

    flex-shrink: 0;

    border-radius: 50%;

    background: #35a9ff;

    box-shadow:
        0 0 9px rgba(53, 169, 255, .8);

    animation:
        round3StatusPulse 1.8s ease-in-out infinite;
}


@keyframes round3StatusPulse {

    0%,
    100% {
        opacity: .45;
    }

    50% {
        opacity: 1;
    }

}


/* =========================================================
   STATUS MESSAGE BOX
   ========================================================= */

.round3-status-message {
    margin-top: 15px;

    color: #ffffff;

    font-family: Rajdhani, sans-serif;

    font-size: 16px;

    line-height: 1.6;

    transition:
        color .25s ease,
        text-shadow .25s ease;
}

.round3-status-message-loading {
    margin-top: 15px;

    color: #71859d;

    font-family: Rajdhani, sans-serif;

    font-size: 13px;

    line-height: 1.6;

    transition:
        color .25s ease,
        text-shadow .25s ease;
}


.round3-success {
    margin-top: 6px; 
    color: #38e6a3 !important;
    font-size: 13px;
    text-shadow:
        0 0 9px rgba(56, 230, 163, .25);
}


.round3-error {
    margin-top: 6px;
    color: #ff5b5b !important;
    font-size: 13px;
    text-shadow:
        0 0 9px rgba(255, 91, 91, .2);
}


/* SUCCESS */

.round3-status-message.round3-success {
    border-color:
        rgba(56, 230, 163, .28);

    background:
        rgba(20, 70, 50, .16);

    color: #38e6a3 !important;

    text-shadow:
        0 0 9px rgba(56, 230, 163, .2);
}


/* ERROR */

.round3-status-message.round3-error {
    border-color:
        rgba(255, 91, 91, .28);

    background:
        rgba(90, 20, 20, .14);

    color: #ff5b5b !important;
}


/* =========================================================
   SCORE
   ========================================================= */

.round3-score-panel {
    position: relative;

    z-index: 1;

    margin-top: 25px;

    padding: 27px;

    border:
        1px solid rgba(56, 230, 163, .25);

    background:
        linear-gradient(
            135deg,
            rgba(20, 70, 50, .14),
            rgba(5, 30, 23, .22)
        );

    text-align: center;

    box-shadow:
        0 0 30px rgba(56, 230, 163, .035);
}


.round3-score-label {
    display: block;

    color: #71859d;

    font-family: Orbitron, sans-serif;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;
}


.round3-score-value {
    display: block;

    margin-top: 7px;

    color: #38e6a3;

    font-family: Orbitron, sans-serif;

    font-size: clamp(38px, 6vw, 52px);

    font-weight: 900;

    line-height: 1;

    text-shadow:
        0 0 15px rgba(56, 230, 163, .22);
}


.round3-score-unit {
    display: block;

    margin-top: 7px;

    color: #60778e;

    font-family: Orbitron, sans-serif;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1px;
}


.round3-score-note {
    margin: 10px 0 0;

    color: #50677d;

    font-family: Rajdhani, sans-serif;

    font-size: 11px;

    letter-spacing: .8px;
}


/* =========================================================
   BACK LINK
   ========================================================= */

.round3-back {
    margin-top: 22px;
}


.round3-back a {
    color: #60778e;

    font-family: Rajdhani, sans-serif;

    font-size: 12px;

    font-weight: 600;

    text-decoration: none;

    transition:
        color .2s ease;
}


.round3-back a:hover {
    color: #35a9ff;
}


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

@media (max-width: 760px) {

    .round3-page {
        width: min(94%, 1120px);

        padding-top: 115px;
        padding-bottom: 60px;
    }


    .round3-header {
        margin-bottom: 25px;
    }


    .round3-header h1 {
        font-size: clamp(36px, 12vw, 52px);
    }


    .round3-intro {
        font-size: 14px;
    }


    .round3-status-grid {
        grid-template-columns: 1fr;

        gap: 15px;
    }


    .round3-status-panel {
        padding: 19px;
    }


    .round3-card {
        padding: 23px 18px;
    }


    .round3-assignment-content {
        align-items: flex-start;

        flex-direction: column;
    }


    .round3-assignment-button {
        width: 100%;

        text-align: center;
    }


    .round3-upload-grid {
        grid-template-columns: 1fr;
    }


    .round3-upload-box {
        padding: 20px;
    }


    .round3-submit-area {
        justify-content: stretch;
    }


    #round3SubmitButton {
        width: 100%;
    }

}


@media (max-width: 480px) {

    .round3-page {
        padding-top: 105px;
    }


    .round3-upload-box {
        gap: 13px;
    }


    .round3-upload-icon {
        width: 46px;
        height: 46px;

        font-size: 8px;
    }


    .round3-upload-box h3 {
        font-size: 11px;
    }


    .round3-upload-box p {
        font-size: 12px;
    }


    .round3-file-button {
        width: 100%;
    }


    .round3-file-name {
        white-space: normal;

        overflow-wrap: anywhere;
    }

}

/* =====================================================
   ROUND 03 — DISABLED FILE BUTTONS
===================================================== */

.round3-upload-box:has(.round3-file-input:disabled) .round3-file-button {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
    filter: grayscale(1);
}

/* =========================================================
   ROUND 03 / FIELD X — JUDGE PANEL
========================================================= */

.round3-judge-section {
    position: relative;
}


.round3-judge-message {
    min-height: 20px;
    margin: 0 0 20px;

    color: #71859d;

    font-family: "Rajdhani", sans-serif;

    font-size: 14px;

    letter-spacing: .04em;
}


.round3-judge-message.success {
    color: #38e6a3;
}


.round3-judge-message.loading {
    color: #35a9ff;
}


.round3-judge-message.error {
    color: #ff5b5b;
}


.round3-judge-table-wrapper {
    width: 100%;

    overflow-x: auto;

    border:
        1px solid
        rgba(53, 169, 255, .16);

    background:
        rgba(2, 10, 20, .45);
}


.round3-judge-table {
    width: 100%;

    min-width: 1000px;

    border-collapse: collapse;

    font-family:
        "Rajdhani",
        sans-serif;
}


.round3-judge-table th {

    height: 48px;

    padding:
        0 14px;

    border-bottom:
        1px solid
        rgba(53, 169, 255, .18);

    background:
        rgba(7, 28, 46, .85);

    color: #58718c;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 1px;

    text-align: center;

    white-space: nowrap;
}


.round3-judge-table th:nth-child(2) {
    text-align: left;
}


.round3-judge-table td {

    min-height: 68px;

    padding:
        12px 10px;

    border-bottom:
        1px solid
        rgba(53, 169, 255, .08);

    color: #b8c7d8;

    font-size: 14px;

    font-weight: 600;

    text-align: center;
}


.round3-judge-table tr:last-child td {
    border-bottom: 0;
}


.round3-judge-index {

    color: #3d7199 !important;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 9px !important;
}


.round3-judge-team {

    color: #eaf2ff !important;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 11px !important;

    text-align: left !important;

    letter-spacing: .04em;
}


.round3-submission-status {

    min-width: 90px;

    padding:
        5px 8px;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 10px;

    letter-spacing: 1px;
}


.round3-submission-status.received {

    color: #38e6a3;

    border-color:
        rgba(56, 230, 163, .35);

    background:
        rgba(56, 230, 163, .035);
}


.round3-submission-status.missing {

    color: #ff5b5b;

    border-color:
        rgba(255, 91, 91, .30);

    background:
        rgba(255, 91, 91, .025);
}


.round3-view-button,
.round3-judge-save {

    min-height: 36px;

    padding:
        0 12px;

    border:
        1px solid
        rgba(53, 169, 255, .38);

    background:
        rgba(14, 65, 108, .16);

    color: #bfe0ff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: .06em;

    cursor: pointer;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease,
        color .2s ease;
}


.round3-view-button:hover,
.round3-judge-save:hover:not(:disabled) {

    border-color:
        #35a9ff;

    background:
        rgba(35, 126, 190, .20);

    color:
        #ffffff;

    box-shadow:
        0 0 15px
        rgba(53, 169, 255, .10);
}


.round3-judge-save {
    color: #35a9ff;
}


.round3-view-button:disabled,
.round3-judge-save:disabled {

    opacity: .45;

    cursor:
        not-allowed;
}


.round3-judge-score-input {

    width: 82px;

    height: 38px;

    padding:
        0 8px;

    border:
        1px solid
        rgba(53, 169, 255, .22);

    outline: none;

    background:
        rgba(1, 9, 17, .8);

    color:
        #eaf2ff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 11px;

    text-align: center;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}


.round3-judge-score-input:focus {

    border-color:
        #35a9ff;

    box-shadow:
        0 0 15px
        rgba(53, 169, 255, .12);
}


.round3-judge-score-input:disabled {

    opacity: .35;

    cursor:
        not-allowed;
}


.round3-judge-score-input::-webkit-outer-spin-button,
.round3-judge-score-input::-webkit-inner-spin-button {

    margin: 0;

    -webkit-appearance: none;
}


.round3-judge-score-input[type="number"] {

    appearance:
        textfield;
}


.round3-file-missing {

    color:
        #586b80;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 7px;

    letter-spacing: 1px;
}


.round3-judge-empty {

    height: 110px;

    color:
        #71859d !important;

    font-family:
        "Orbitron",
        sans-serif;

    font-size:
        9px !important;

    letter-spacing:
        1.5px;
}


.round3-judge-error {

    color:
        #ff5b5b !important;
}


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

@media (max-width: 800px) {

    .round3-judge-table {
        min-width: 920px;
    }

    .round3-judge-section {
        padding:
            22px 16px;
    }

}


@media (max-width: 480px) {

    .round3-judge-section {
        padding:
            20px 13px;
    }

}

/* =========================================================
   ROUND 03 JUDGE MODE
   Hide non-judge administration sections
========================================================= */

body.round3-judge-mode
#round1ScoreManagement {

    display: none !important;

}


body.round3-judge-mode
#bonusAdminPanel {

    display: none !important;

}


body.round3-judge-mode
#round3DocumentManagement {

    display: none !important;

}


/* =========================================================
   ROUND 03 JUDGE — TABLE ALIGNMENT
========================================================= */

.round3-judge-table td {

    vertical-align: middle;

}


.round3-judge-table th,
.round3-judge-table td {

    text-align: center;

}


.round3-judge-table th:nth-child(2),
.round3-judge-table td:nth-child(2) {

    text-align: left;

}



/* =========================================================
   JUDGE BUTTON ALIGNMENT
========================================================= */

.round3-view-button,
.round3-judge-save {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    vertical-align: middle;

}


/* =========================================================
   SCORE INPUT ALIGNMENT
========================================================= */

.round3-judge-score-input {

    display: block;

    margin: 0 auto;

}

/* =========================================================
   EXODUS 2026
   ROUND 02 / BEAT THE CLOCK
========================================================= */


/* =========================================================
   PAGE
========================================================= */

.round2-page {

    width:
        min(1120px, 92%);

    margin:
        0 auto;

    padding:
        125px 0 90px;

    position:
        relative;

    z-index:
        1;

}


/* =========================================================
   HEADER
========================================================= */

.round2-header {

    margin-bottom:
        38px;

}


/* =========================================================
   STATE PANELS
========================================================= */

.round2-state-panel {

    border:
        1px solid rgba(
            53,
            169,
            255,
            .16
        );

    background:
        rgba(
            5,
            24,
            43,
            .48
        );

    padding:
        34px;

    margin-top:
        30px;

}


.round2-state-label {

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        2px;

    margin-bottom:
        12px;

}


.round2-state-panel h2 {

    margin:
        0;

    color:
        #eaf5ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        clamp(
            25px,
            4vw,
            42px
        );

}


.round2-state-panel p {

    color:
        #71879e;

    font-family:
        Rajdhani,
        sans-serif;

    font-size:
        16px;

    line-height:
        1.5;

    margin:
        12px 0 0;

}


.round2-error-panel {

    border-color:
        rgba(
            255,
            75,
            75,
            .30
        );

}


/* =========================================================
   START PANEL
========================================================= */

.round2-start-panel {

    border:
        1px solid rgba(
            53,
            169,
            255,
            .18
        );

    background:
        rgba(
            5,
            24,
            43,
            .48
        );

    padding:
        36px;

}


.round2-start-top {

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        flex-start;

    gap:
        30px;

    margin-bottom:
        30px;

}


.round2-section-label {

    margin:
        0 0 8px;

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        2px;

}


.round2-start-top h2 {

    margin:
        0;

    color:
        #edf6ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        clamp(
            28px,
            5vw,
            52px
        );

}


.round2-start-top h2::first-letter {

    color:
        #35a9ff;

}


.round2-team-display {

    min-width:
        150px;

    text-align:
        right;

}


.round2-team-display span,
.round2-mini-label {

    display:
        block;

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        8px;

    letter-spacing:
        1.5px;

}


.round2-team-display strong {

    display:
        block;

    margin-top:
        5px;

    color:
        #eaf5ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        16px;

}


/* =========================================================
   RULE GRID
========================================================= */

.round2-rule-grid {

    display:
        grid;

    grid-template-columns:
        repeat(
            4,
            1fr
        );

    gap:
        10px;

    margin-bottom:
        25px;

}


.round2-rule {

    border:
        1px solid rgba(
            53,
            169,
            255,
            .12
        );

    background:
        rgba(
            3,
            16,
            29,
            .55
        );

    padding:
        20px;

}


.round2-rule span {

    display:
        block;

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        7px;

    letter-spacing:
        1.4px;

}


.round2-rule strong {

    display:
        block;

    margin-top:
        8px;

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        22px;

}


/* =========================================================
   START WARNING
========================================================= */

.round2-start-warning {

    border-left:
        2px solid
        #35a9ff;

    background:
        rgba(
            53,
            169,
            255,
            .035
        );

    padding:
        18px 20px;

    margin-bottom:
        25px;

}


.round2-start-warning strong {

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        8px;

    letter-spacing:
        1.5px;

}


.round2-start-warning p {

    margin:
        8px 0 0;

    color:
        #8498ae;

    font-family:
        Rajdhani,
        sans-serif;

    font-size:
        15px;

    line-height:
        1.55;

}


/* =========================================================
   BUTTON
========================================================= */

.round2-action-button {

    display:
        inline-flex;

    justify-content:
        center;

    align-items:
        center;

    min-height:
        48px;

    padding:
        0 24px;

    border:
        1px solid
        rgba(
            53,
            169,
            255,
            .45
        );

    background:
        rgba(
            53,
            169,
            255,
            .035
        );

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

    cursor:
        pointer;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease,
        transform .2s ease;

}


.round2-action-button:hover {

    border-color:
        #35a9ff;

    background:
        rgba(
            53,
            169,
            255,
            .09
        );

    box-shadow:
        0 0 22px
        rgba(
            53,
            169,
            255,
            .13
        );

    transform:
        translateY(-1px);

}


.round2-action-button:disabled {

    opacity:
        .45;

    cursor:
        not-allowed;

    transform:
        none;

}


/* =========================================================
   QUIZ PANEL
========================================================= */

.round2-quiz-panel {

    border:
        1px solid rgba(
            53,
            169,
            255,
            .18
        );

    background:
        rgba(
            5,
            24,
            43,
            .48
        );

    padding:
        30px;

}


.round2-quiz-top {

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        center;

    gap:
        20px;

    margin-bottom:
        18px;

}


.round2-quiz-top strong {

    display:
        block;

    margin-top:
        5px;

    color:
        #eaf5ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        15px;

}


.round2-question-counter {

    text-align:
        right;

}


.round2-question-counter span {

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        8px;

    letter-spacing:
        1.5px;

}


.round2-question-counter strong {

    color:
        #35a9ff;

    font-size:
        22px;

}


/* =========================================================
   PROGRESS
========================================================= */

.round2-progress-track {

    width:
        100%;

    height:
        3px;

    background:
        rgba(
            53,
            169,
            255,
            .08
        );

    overflow:
        hidden;

}


.round2-progress-bar {

    width:
        0%;

    height:
        100%;

    background:
        #35a9ff;

    box-shadow:
        0 0 12px
        rgba(
            53,
            169,
            255,
            .6
        );

    transition:
        width .25s ease;

}


/* =========================================================
   TIMER
========================================================= */

.round2-timer-panel {

    display:
        flex;

    justify-content:
        center;

    align-items:
        center;

    flex-direction:
        column;

    padding:
        25px 15px;

    margin:
        25px 0;

    border:
        1px solid rgba(
            53,
            169,
            255,
            .12
        );

    background:
        rgba(
            3,
            16,
            29,
            .48
        );

}


.round2-timer-panel span {

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        8px;

    letter-spacing:
        2px;

}


.round2-timer-panel strong {

    margin-top:
        7px;

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        clamp(
            34px,
            6vw,
            52px
        );

    letter-spacing:
        2px;

    line-height:
        1;

}


.round2-timer-warning strong {

    color:
        #ffd166;

}


.round2-timer-danger strong {

    color:
        #ff4b4b;

    animation:
        round2TimerPulse
        .65s
        ease-in-out
        infinite;

}


@keyframes round2TimerPulse {

    0%,
    100% {

        opacity:
            1;

    }

    50% {

        opacity:
            .45;

    }

}


/* =========================================================
   QUESTION
========================================================= */

.round2-question-panel {

    padding:
        5px 0 10px;

}


.round2-question-label {

    margin:
        0 0 12px;

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        1.8px;

}


.round2-question-text {

    margin:
        0 0 25px;

    color:
        #eaf5ff;

    font-family:
        Rajdhani,
        sans-serif;

    font-size:
        clamp(
            22px,
            3vw,
            30px
        );

    font-weight:
        600;

    line-height:
        1.35;

}


/* =========================================================
   OPTIONS
========================================================= */

.round2-options {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        12px;

}


.round2-option {

    min-height:
        66px;

    display:
        flex;

    align-items:
        center;

    gap:
        16px;

    padding:
        15px 18px;

    border:
        1px solid
        rgba(
            53,
            169,
            255,
            .16
        );

    background:
        rgba(
            5,
            24,
            43,
            .65
        );

    color:
        #dcecff;

    text-align:
        left;

    font-family:
        Rajdhani,
        sans-serif;

    cursor:
        pointer;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease,
        transform .2s ease;

}


.round2-option:hover:not(:disabled) {

    border-color:
        #35a9ff;

    background:
        rgba(
            35,
            126,
            190,
            .16
        );

    box-shadow:
        0 0 16px
        rgba(
            53,
            169,
            255,
            .08
        );

}


.round2-option:disabled {

    cursor:
        default;

}


.round2-option.selected {

    border-color:
        #35a9ff;

    background:
        rgba(
            35,
            126,
            190,
            .25
        );

    box-shadow:
        0 0 20px
        rgba(
            53,
            169,
            255,
            .10
        );

}


.round2-option-label {

    min-width:
        30px;

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        12px;

    font-weight:
        700;

}


.round2-option-text {

    color:
        #dcecff;

    font-size:
        17px;

    line-height:
        1.3;

}



/* =========================================================
   TRANSITION
========================================================= */

.round2-transition {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex-direction:
        column;

    gap:
        6px;

    margin-top:
        20px;

    padding:
        14px;

    border:
        1px solid
        rgba(
            53,
            169,
            255,
            .12
        );

    background:
        rgba(
            53,
            169,
            255,
            .035
        );

}


.round2-transition span {

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        7px;

    letter-spacing:
        1.5px;

}


.round2-transition strong {

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        11px;

    letter-spacing:
        1.5px;

}


/* =========================================================
   RESULT
========================================================= */

.round2-result-panel {

    border:
        1px solid rgba(
            53,
            169,
            255,
            .18
        );

    background:
        rgba(
            5,
            24,
            43,
            .48
        );

    padding:
        35px;

}


.round2-result-header h2 {

    margin:
        0;

    color:
        #edf6ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        clamp(
            28px,
            5vw,
            52px
        );

}


.round2-result-header h2 span {

    color:
        #35a9ff;

}


/* =========================================================
   FINAL SCORE
========================================================= */

.round2-final-score {

    display:
        flex;

    justify-content:
        center;

    align-items:
        baseline;

    gap:
        8px;

    margin:
        35px 0;

    padding:
        75px 20px;

    border:
        1px solid
        rgba(
            53,
            169,
            255,
            .12
        );

    background:
        rgba(
            3,
            16,
            29,
            .5
        );

}


.round2-final-score span {

    position:
        absolute;

    margin-top:
        -95px;

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        9px;

    letter-spacing:
        2px;

}


.round2-final-score strong {

    color:
        #38e6a3;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        clamp(
            55px,
            9vw,
            90px
        );

    line-height:
        1;

}


.round2-final-score small {

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        16px;

}


/* =========================================================
   RESULT SUMMARY
========================================================= */

.round2-result-summary {

    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            1fr
        );

    gap:
        10px;

    margin-bottom:
        45px;

}


.round2-result-summary > div {

    padding:
        20px;

    border:
        1px solid rgba(
            53,
            169,
            255,
            .12
        );

    background:
        rgba(
            3,
            16,
            29,
            .45
        );

    text-align:
        center;

}


.round2-result-summary span {

    display:
        block;

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        7px;

    letter-spacing:
        1.4px;

}


.round2-result-summary strong {

    display:
        block;

    margin-top:
        8px;

    color:
        #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        25px;

}


/* =========================================================
   REVIEW
========================================================= */

.round2-review-heading {

    margin-bottom:
        18px;

}


.round2-review-heading h3 {

    margin:
        0;

    color:
        #eaf5ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        24px;

}


.round2-review-list {

    display:
        grid;

    gap:
        10px;

}


.round2-review-card {

    border:
        1px solid
        rgba(
            53,
            169,
            255,
            .12
        );

    background:
        rgba(
            3,
            16,
            29,
            .45
        );

    padding:
        20px;

}


.round2-review-correct {

    border-color:
        rgba(
            56,
            230,
            163,
            .24
        );

}


.round2-review-wrong {

    border-color:
        rgba(
            255,
            75,
            75,
            .22
        );

}


.round2-review-top {

    display:
        flex;

    justify-content:
        space-between;

    gap:
        15px;

    margin-bottom:
        12px;

}


.round2-review-top span {

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        8px;

    letter-spacing:
        1.5px;

}


.round2-review-correct
.round2-review-top strong {

    color:
        #38e6a3;

}


.round2-review-wrong
.round2-review-top strong {

    color:
        #ff4b4b;

}


.round2-review-card h4 {

    margin:
        0 0 18px;

    color:
        #dcecff;

    font-family:
        Rajdhani,
        sans-serif;

    font-size:
        18px;

    line-height:
        1.4;

}


.round2-review-answer,
.round2-review-correct-answer {

    display:
        grid;

    gap:
        5px;

    padding:
        12px 14px;

    margin-top:
        8px;

    border-left:
        2px solid
        rgba(
            53,
            169,
            255,
            .25
        );

    background:
        rgba(
            53,
            169,
            255,
            .025
        );

}


.round2-review-answer span,
.round2-review-correct-answer span {

    color:
        #71879e;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        7px;

    letter-spacing:
        1.3px;

}


.round2-review-answer strong,
.round2-review-correct-answer strong {

    color:
        #dcecff;

    font-family:
        Rajdhani,
        sans-serif;

    font-size:
        16px;

}


.round2-review-correct-answer {

    border-left-color:
        rgba(
            56,
            230,
            163,
            .35
        );

}


.round2-review-correct-answer strong {

    color:
        #38e6a3;

}


/* =========================================================
   RESULT FOOTER
========================================================= */

.round2-result-footer {

    display:
        flex;

    justify-content:
        flex-end;

    margin-top:
        30px;

}


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

@media (max-width: 800px) {

    .round2-page {

        padding:
            115px 0 70px;

    }


    .round2-start-panel,
    .round2-quiz-panel,
    .round2-result-panel,
    .round2-state-panel {

        padding:
            22px 18px;

    }


    .round2-start-top {

        flex-direction:
            column;

        gap:
            20px;

    }


    .round2-team-display {

        text-align:
            left;

    }


    .round2-rule-grid {

        grid-template-columns:
            1fr 1fr;

    }


    .round2-options {

        grid-template-columns:
            1fr;

    }


    .round2-quiz-top {

        align-items:
            flex-start;

    }


    .round2-question-text {

        font-size:
            21px;

    }


    .round2-result-summary {

        grid-template-columns:
            1fr 1fr;

    }


    .round2-result-summary > div:last-child {

        grid-column:
            1 / -1;

    }


    .round2-result-footer {

        justify-content:
            stretch;

    }


    .round2-result-footer
    .round2-action-button {

        width:
            100%;

    }

}


@media (max-width: 480px) {

    .round2-page {

        padding-top:
            110px;

    }


    .round2-rule-grid {

        grid-template-columns:
            1fr;

    }


    .round2-rule {

        padding:
            16px;

    }


    .round2-quiz-panel {

        padding:
            16px 13px;

    }


    .round2-timer-panel {

        padding:
            20px 10px;

    }


    .round2-result-summary {

        grid-template-columns:
            1fr;

    }


    .round2-result-summary > div:last-child {

        grid-column:
            auto;

    }


    .round2-review-card {

        padding:
            15px;

    }

}

/* =====================================================
   ROUND 02 TIMER
===================================================== */

#questionTimer {
    color: #00ff9d;
    transition:
        color 0.25s ease,
        text-shadow 0.25s ease;
}


/* LAST 10 SECONDS */

#questionTimer.round2-timer-danger {
    color: #ff3b3b;
    text-shadow:
        0 0 8px rgba(255, 59, 59, 0.35),
        0 0 18px rgba(255, 59, 59, 0.20);
}

/* =========================================================
   BONUS ADMIN — ROUND 02 / BEAT THE CLOCK
========================================================= */

.bonus-round02-section {

    margin-top: 25px;

    padding: 22px;

    border:
        1px solid
        rgba(0,180,255,.25);

    background:
        rgba(0,15,30,.45);

}


/* =========================
   HEADER
========================= */

.bonus-round02-header {

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

    gap: 20px;

    margin-bottom: 22px;

}


.bonus-round02-eyebrow {

    display: block;

    margin-bottom: 7px;

    color: #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 1.5px;

}


.bonus-round02-header h3 {

    margin: 0 0 7px;

    color: #ffffff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 21px;

    letter-spacing: 1px;

}


.bonus-round02-header p {

    margin: 0;

    color: #71859d;

    font-size: 13px;

    line-height: 1.6;

}


/* =========================
   STATUS
========================= */

.bonus-round02-status {

    flex-shrink: 0;

    padding-top: 3px;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 1px;

}


.bonus-round02-status.waiting {

    color: #35a9ff;

}


.bonus-round02-status.live {

    color: #38e6a3;

    animation:
        bonusRound02Pulse
        1.4s
        infinite;

}


@keyframes bonusRound02Pulse {

    0%,
    100% {

        opacity: 1;

    }

    50% {

        opacity: .45;

    }

}


/* =========================
   INFO CARDS
========================= */

.bonus-round02-info-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 10px;

    margin-bottom: 18px;

}


.bonus-round02-info-card {

    padding: 15px;

    border:
        1px solid
        rgba(255,255,255,.08);

    background:
        rgba(0,0,0,.15);

}


.bonus-round02-info-card span {

    display: block;

    margin-bottom: 6px;

    color: #71859d;

    font-size: 10px;

    letter-spacing: 1px;

}


.bonus-round02-info-card strong {

    color: #ffffff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 19px;

}


/* =========================
   CONTROL
========================= */

.bonus-round02-control {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    padding: 18px;

    border:
        1px solid
        rgba(53,169,255,.2);

    background:
        rgba(53,169,255,.035);

}


.bonus-round02-control-text span {

    display: block;

    margin-bottom: 6px;

    color: #35a9ff;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.4px;

}


.bonus-round02-control-text p {

    margin: 0;

    color: #71859d;

    font-size: 13px;

}


.bonus-round02-start-button {

    min-width: 165px;

    padding: 12px 20px;

    border:
        1px solid
        #35a9ff;

    background:
        #35a9ff;

    color: #04111c;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 1px;

    cursor: pointer;

    transition:
        .2s ease;

}


.bonus-round02-start-button:hover {

    box-shadow:
        0 0 18px
        rgba(53,169,255,.35);

}


.bonus-round02-start-button:disabled {

    opacity: .45;

    cursor: not-allowed;

    box-shadow: none;

}


/* =========================
   START TIME
========================= */

.bonus-round02-start-time {

    margin-top: 10px;

    color: #71859d;

    font-size: 11px;

    letter-spacing: .6px;

}


.bonus-round02-start-time strong {

    color: #38e6a3;

}


/* =========================
   RESULTS
========================= */

.bonus-round02-results {

    margin-top: 27px;

}


.bonus-round02-results-header {

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 20px;

    margin-bottom: 13px;

}


.bonus-round02-results-header span {

    color: #35a9ff;

    font-size: 10px;

    letter-spacing: 1.4px;

}


.bonus-round02-results-header h4 {

    margin: 5px 0 0;

    color: #ffffff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 17px;

    letter-spacing: .7px;

}


/* =========================
   FILTER
========================= */

.bonus-round02-filter-wrap {

    display: flex;

    align-items: center;

    gap: 9px;

}


.bonus-round02-filter-wrap label {

    color: #71859d;

    font-size: 10px;

    letter-spacing: 1px;

}


.bonus-round02-filter {

    min-width: 165px;

    padding: 9px 11px;

    border:
        1px solid
        rgba(53,169,255,.3);

    background: #071521;

    color: #ffffff;

    font-family:
        Rajdhani,
        sans-serif;

    font-size: 12px;

    outline: none;

}


/* =========================
   TABLE
========================= */

.bonus-round02-table-wrapper {

    overflow-x: auto;

    border:
        1px solid
        rgba(255,255,255,.07);

}


.bonus-round02-table {

    width: 100%;

    min-width: 680px;

    border-collapse: collapse;

}


.bonus-round02-table th {

    padding: 12px 13px;

    background:
        rgba(53,169,255,.05);

    color: #71859d;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1px;

    text-align: left;

    white-space: nowrap;

}


.bonus-round02-table td {

    padding: 13px;

    border-top:
        1px solid
        rgba(255,255,255,.06);

    color: #ffffff;

    font-size: 12px;

}


.bonus-round02-table tr:hover td {

    background:
        rgba(53,169,255,.025);

}


.bonus-round02-loading {

    padding: 28px !important;

    color: #71859d !important;

    text-align: center;

}


/* =========================
   STATUS BADGES
========================= */

.bonus-round02-status-badge {

    display: inline-block;

    padding: 4px 7px;

    border:
        1px solid
        rgba(255,255,255,.1);

    font-size: 8px;

    font-weight: 700;

    letter-spacing: .8px;

}


.bonus-round02-status-badge.completed {

    color: #38e6a3;

    border-color:
        rgba(56,230,163,.3);

}


.bonus-round02-status-badge.in-progress {

    color: #35a9ff;

    border-color:
        rgba(53,169,255,.3);

}


.bonus-round02-status-badge.not-started {

    color: #71859d;

}


/* =========================
   VIEW BUTTON
========================= */

.bonus-round02-view-button {

    padding: 6px 11px;

    border:
        1px solid
        rgba(53,169,255,.3);

    background:
        rgba(53,169,255,.04);

    color: #35a9ff;

    font-family:
        Rajdhani,
        sans-serif;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .8px;

    cursor: pointer;

}


.bonus-round02-view-button:hover {

    background:
        rgba(53,169,255,.1);

}


/* =========================
   ROUND 02 RESULT MODAL
   ========================= */

.bonus-round02-modal {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 999999;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background: rgba(0, 0, 0, 0.82);
}

.bonus-round02-modal.active {
    display: flex;
}


.bonus-round02-modal-backdrop {

    position: absolute;

    inset: 0;

    background:
        rgba(0,0,0,.82);

    backdrop-filter:
        blur(5px);

}


.bonus-round02-modal-content {

    position: relative;

    width:
        min(1000px, 100%);

    max-height: 90vh;

    overflow-y: auto;

    padding: 24px;

    border:
        1px solid
        rgba(53,169,255,.3);

    background:
        #07111b;

    box-shadow:
        0 20px 70px
        rgba(0,0,0,.55);

}


.bonus-round02-modal-header {

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

    gap: 20px;

    margin-bottom: 20px;

}


.bonus-round02-modal-header span {

    color: #35a9ff;

    font-size: 10px;

    letter-spacing: 1.4px;

}


.bonus-round02-modal-header h3 {

    margin: 6px 0 0;

    color: #ffffff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 20px;

}


.bonus-round02-modal-close {

    width: 36px;

    height: 36px;

    border:
        1px solid
        rgba(255,255,255,.12);

    background:
        transparent;

    color: #ffffff;

    font-size: 23px;

    cursor: pointer;

}


.bonus-round02-modal-close:hover {

    border-color: #35a9ff;

    color: #35a9ff;

}


/* =========================
   SUMMARY
========================= */

.bonus-round02-modal-summary {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 9px;

    margin-bottom: 22px;

}


.bonus-round02-modal-summary > div {

    padding: 14px;

    border:
        1px solid
        rgba(255,255,255,.07);

    background:
        rgba(255,255,255,.02);

}


.bonus-round02-modal-summary span {

    display: block;

    margin-bottom: 5px;

    color: #71859d;

    font-size: 9px;

    letter-spacing: .9px;

}


.bonus-round02-modal-summary strong {

    color: #ffffff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 17px;

}


/* =========================
   QUESTION RESULT
========================= */

.bonus-round02-question {

    margin-bottom: 10px;

    padding: 15px;

    border:
        1px solid
        rgba(255,255,255,.07);

}


.bonus-round02-question.correct {

    border-color:
        rgba(56,230,163,.25);

}


.bonus-round02-question.incorrect {

    border-color:
        rgba(255,91,91,.25);

}


.bonus-round02-question.unanswered {

    border-color:
        rgba(113,133,157,.2);

}


.bonus-round02-question-number {

    margin-bottom: 7px;

    color: #35a9ff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 10px;

}


.bonus-round02-question-text {

    margin-bottom: 12px;

    color: #ffffff;

    font-size: 13px;

    line-height: 1.6;

}


.bonus-round02-answer-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 7px;

}


.bonus-round02-answer-box {

    padding: 9px 11px;

    border:
        1px solid
        rgba(255,255,255,.07);

    background:
        rgba(0,0,0,.14);

}


.bonus-round02-answer-box span {

    display: block;

    margin-bottom: 4px;

    color: #71859d;

    font-size: 8px;

    letter-spacing: .8px;

}


.bonus-round02-answer-box strong {

    color: #ffffff;

    font-size: 12px;

}


.bonus-round02-answer-result {

    margin-top: 9px;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .8px;

}


.bonus-round02-answer-result.correct {

    color: #38e6a3;

}


.bonus-round02-answer-result.incorrect {

    color: #ff5b5b;

}


.bonus-round02-answer-result.unanswered {

    color: #71859d;

}


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

@media (max-width: 700px) {

    .bonus-round02-section {

        padding: 17px;

    }


    .bonus-round02-header {

        flex-direction: column;

    }


    .bonus-round02-info-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .bonus-round02-control {

        flex-direction: column;

        align-items: stretch;

    }


    .bonus-round02-start-button {

        width: 100%;

    }


    .bonus-round02-results-header {

        flex-direction: column;

        align-items: stretch;

    }


    .bonus-round02-filter-wrap {

        width: 100%;

    }


    .bonus-round02-filter {

        flex: 1;

    }


    .bonus-round02-modal.active {

        padding: 8px;

    }


    .bonus-round02-modal-content {

        max-height: 95vh;

        padding: 16px;

    }


    .bonus-round02-modal-summary {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .bonus-round02-answer-grid {

        grid-template-columns:
            1fr;

    }

}

/* =========================================================
   ROUND 02 — WAITING FOR GLOBAL START
========================================================= */

.round2-waiting-message {

    margin-top: 18px;

    padding: 18px 20px;

    border:
        1px solid
        rgba(53, 169, 255, .25);

    background:
        rgba(53, 169, 255, .035);

    text-align: center;

}


.round2-waiting-message strong {

    display: block;

    color: #39e58a;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 13px;

    letter-spacing: 1px;

}


.round2-waiting-message p {

    margin: 8px 0 0;

    color: #71859d;

    font-size: 13px;

    line-height: 1.6;

}


.round2-waiting-dot {

    display: block;

    margin-bottom: 7px;

    color: #39e58a;

    font-size: 16px;

    animation:
        round2WaitingPulse
        1.4s
        infinite;

}


@keyframes round2WaitingPulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: .35;
    }

}

/* =====================================================
   ROUND 02 RESULT MODAL — QUESTION DETAILS
===================================================== */

.bonus-round02-modal-content {
    max-height: 90vh;
    overflow-y: auto;
}


.bonus-round02-modal-questions {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 24px;
}


/* =====================================================
   QUESTION CARD
===================================================== */

.bonus-round02-question-card {
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(0,15,30,.55);
    padding: 20px;
    position: relative;
}


.bonus-round02-question-card.correct {
    border-left: 3px solid #38e6a3;
}


.bonus-round02-question-card.incorrect {
    border-left: 3px solid #ff5b5b;
}


.bonus-round02-question-card.unanswered {
    border-left: 3px solid #71859d;
}


/* =====================================================
   QUESTION HEADER
===================================================== */

.bonus-round02-question-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-bottom: 18px;
}


.bonus-round02-question-header > div {
    display: flex;
    align-items: center;
    gap: 12px;
}


.bonus-round02-question-number {
    font-family: Orbitron, sans-serif;
    font-size: 11px;
    letter-spacing: 1px;
    color: #35a9ff;
}


.bonus-round02-question-marks {
    font-size: 10px;
    letter-spacing: 1px;
    color: #71859d;
}


.bonus-round02-question-result {
    font-family: Orbitron, sans-serif;
    font-size: 10px;
    letter-spacing: 1px;
}


.bonus-round02-question-card.correct
.bonus-round02-question-result {
    color: #38e6a3;
}


.bonus-round02-question-card.incorrect
.bonus-round02-question-result {
    color: #ff5b5b;
}


.bonus-round02-question-card.unanswered
.bonus-round02-question-result {
    color: #71859d;
}


/* =====================================================
   QUESTION TEXT
===================================================== */

.bonus-round02-question-text {
    color: #eaf2ff;
    font-size: 17px;
    line-height: 1.5;
    margin-bottom: 20px;
}


/* =====================================================
   ANSWER GRID
===================================================== */

.bonus-round02-answer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}


.bonus-round02-answer-box {
    padding: 15px;
    border: 1px solid rgba(255,255,255,.07);
    background: rgba(0,10,22,.5);
}


.bonus-round02-answer-box.selected {
    border-color: rgba(53,169,255,.25);
}


.bonus-round02-answer-box.correct-answer {
    border-color: rgba(56,230,163,.25);
}


.bonus-round02-answer-title {
    display: block;
    font-family: Orbitron, sans-serif;
    font-size: 9px;
    letter-spacing: 1px;
    color: #71859d;
    margin-bottom: 8px;
}


.bonus-round02-answer-value {
    color: #dce8f8;
    font-size: 14px;
    line-height: 1.45;
}


.bonus-round02-answer-label {
    display: inline-flex;
    margin-right: 8px;
    color: #35a9ff;
    font-family: Orbitron, sans-serif;
    font-weight: 700;
}


.bonus-round02-no-answer {
    color: #71859d;
    font-style: italic;
}


/* =====================================================
   QUESTION FOOTER
===================================================== */

.bonus-round02-question-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 15px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.06);
}


.bonus-round02-question-footer span {
    font-size: 9px;
    letter-spacing: 1px;
    color: #71859d;
}


.bonus-round02-question-footer strong {
    font-family: Orbitron, sans-serif;
    font-size: 13px;
    color: #eaf2ff;
}


/* =====================================================
   LOADING / EMPTY / ERROR
===================================================== */

.bonus-round02-question-loading,
.bonus-round02-question-empty,
.bonus-round02-question-error {
    padding: 30px;
    text-align: center;
    border: 1px solid rgba(255,255,255,.08);
    color: #71859d;
    font-size: 12px;
    letter-spacing: 1px;
}


.bonus-round02-question-error {
    color: #ff5b5b;
    border-color: rgba(255,91,91,.2);
}


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

@media (max-width: 700px) {

    .bonus-round02-modal-content {
        width: calc(100% - 24px);
        max-height: 92vh;
    }


    .bonus-round02-question-header {
        align-items: flex-start;
        flex-direction: column;
    }


    .bonus-round02-answer-grid {
        grid-template-columns: 1fr;
    }


    .bonus-round02-question-text {
        font-size: 15px;
    }

}

/* =====================================================
   ROUND 02 — QUIZ OVER
   ===================================================== */

#bonusRound02Status.over {
    color: #ff5b5b;
    animation: bonusRound02QuizOverPulse 1.2s ease-in-out infinite;
}

@keyframes bonusRound02QuizOverPulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.35;
    }

}

/* =====================================================
   ROUND 03 QUALIFIED TEAM SELECTOR
   ===================================================== */

.round3-team-selector {
    margin-bottom: 28px;
    max-width: 620px;
}

.round3-team-selector label {
    display: block;
    margin-bottom: 10px;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 0.14em;
    text-transform: uppercase;

    color: #5f7892;
}


/* ---------------------------------------------
   SELECT WRAPPER
   --------------------------------------------- */

.round3-team-selector {
    position: relative;
}


/* ---------------------------------------------
   SELECT BOX
   --------------------------------------------- */

#round3QualifiedTeamSelect {
    width: 100%;
    height: 52px;

    padding: 0 48px 0 18px;

    border: 1px solid rgba(53, 169, 255, 0.35);

    background:
        linear-gradient(
            135deg,
            rgba(8, 27, 45, 0.98),
            rgba(3, 15, 27, 0.98)
        );

    color: #dcecff;

    font-family: inherit;
    font-size: 12px;
    font-weight: 600;

    letter-spacing: 0.08em;
    text-transform: uppercase;

    outline: none;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}


/* ---------------------------------------------
   CUSTOM ARROW
   --------------------------------------------- */

.round3-team-selector::after {
    content: "";

    position: absolute;

    right: 20px;
    bottom: 19px;

    width: 8px;
    height: 8px;

    border-right: 2px solid #35a9ff;
    border-bottom: 2px solid #35a9ff;

    transform: rotate(45deg);

    pointer-events: none;

    transition:
        transform 0.25s ease,
        border-color 0.25s ease;
}


/* ---------------------------------------------
   HOVER
   --------------------------------------------- */

#round3QualifiedTeamSelect:hover {
    border-color: rgba(53, 169, 255, 0.75);

    background:
        linear-gradient(
            135deg,
            rgba(10, 34, 55, 0.98),
            rgba(4, 19, 32, 0.98)
        );
}


/* ---------------------------------------------
   FOCUS
   --------------------------------------------- */

#round3QualifiedTeamSelect:focus {
    border-color: #35a9ff;

    box-shadow:
        0 0 0 1px rgba(53, 169, 255, 0.20),
        0 0 18px rgba(53, 169, 255, 0.10);
}


/* ---------------------------------------------
   DISABLED
   --------------------------------------------- */

#round3QualifiedTeamSelect:disabled {
    opacity: 0.45;

    cursor: not-allowed;

    border-color: rgba(95, 120, 146, 0.25);
}


/* ---------------------------------------------
   OPTIONS
   --------------------------------------------- */

#round3QualifiedTeamSelect option {
    background: #061321;
    color: #dcecff;

    font-family: inherit;
    font-size: 12px;

    padding: 12px;
}

/* =========================================================
   EXODUS RESULT STATES
========================================================= */


/* =========================
   ELIMINATED TAG
========================= */

.eliminated-tag {

    display: inline-flex;
    align-items: center;
    justify-content: center;

    margin-left: 12px;

    padding: 5px 8px;

    border: 1px solid
        rgba(255, 68, 68, 0.65);

    background:
        rgba(255, 40, 40, 0.09);

    color: #ff4d57;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 7px;

    font-weight: 700;

    letter-spacing: .12em;

    line-height: 1;

    text-shadow:
        0 0 8px
        rgba(255, 60, 60, .25);
}


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

.mobile-eliminated-tag {

    display: flex;

    width: fit-content;

    margin:
        6px 0 0;

}


/* =========================
   LEADERBOARD LOCK
========================= */

.leaderboard-lock-cell {

    padding:
        60px 20px !important;

    text-align:
        center !important;

}


.leaderboard-lock-message {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 14px;

}


.leaderboard-lock-message strong {

    color: #4caeff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 18px;

    letter-spacing: .1em;

}


.leaderboard-lock-message span {

    color: #71879e;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 9px;

    letter-spacing: .12em;

}


.leaderboard-mobile-lock {

    padding:
        40px 18px;

    border: 1px solid
        rgba(76, 157, 225, .18);

    background:
        linear-gradient(
            145deg,
            #071a2c,
            #030d18
        );

    text-align: center;

}


.leaderboard-mobile-lock strong {

    display: block;

    color: #4caeff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 13px;

}


.leaderboard-mobile-lock span {

    display: block;

    margin-top: 12px;

    color: #71879e;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 8px;

    letter-spacing: .1em;

}

/* =========================================================
   TEAM QUALIFICATION / RESULT STATES
========================================================= */

.team-result-badge {

    margin-top: 15px;

    padding: 8px 10px;

    border: 1px solid
        rgba(76, 174, 255, .35);

    background:
        rgba(76, 174, 255, .06);

    color: #7cc6ff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: .12em;

    align-items: center;

    justify-content: center;

    text-align: center;

}


.team-result-badge.eliminated {

    border-color:
        rgba(255, 68, 68, .6);

    background:
        rgba(255, 40, 40, .08);

    color:
        #ff4d57;

    text-shadow:
        0 0 8px
        rgba(255, 60, 60, .25);

}


.team-result-badge.pending {

    border-color:
        rgba(76, 174, 255, .45);

    color:
        #7cc6ff;

}


.team-result-badge.qualified {

    border-color:
        rgba(56, 230, 163, .5);

    background:
        rgba(56, 230, 163, .06);

    color:
        #38e6a3;

}


/* =========================================================
   LOCKED SCORE
========================================================= */

.score-locked {

    color:
        #7cc6ff !important;

    font-size:
        18px !important;

    letter-spacing:
        .08em;

    text-shadow:
        0 0 12px
        rgba(76, 174, 255, .3) !important;

}


/* =========================================================
   ELIMINATED ROUND CARD
========================================================= */

.team-round-panel.team-eliminated {

    border-color:
        rgba(255, 68, 68, .4);

    box-shadow:
        inset 0 0 25px
        rgba(255, 40, 40, .025);

}


.team-round-panel.team-eliminated
.team-round-status {

    color:
        #ff4d57;

}


/* =========================================================
   ROUND 03 LOCKED RESULT
========================================================= */

.round3-score-panel.round3-score-locked {

    border-color:
        rgba(76, 174, 255, .28);

    background:
        rgba(10, 35, 58, .2);

}

/* =========================================================
   PRE-EVENT LEADERBOARD
========================================================= */

.current-leader-status.pre-event {

    color: #7cc6ff;

    animation: none;

}


.current-leader-status.pre-event span {

    background: #7cc6ff;

    box-shadow:
        0 0 10px
        rgba(124, 198, 255, .45);

}


.current-leader.pre-event {

    border-color:
        rgba(124, 198, 255, .18);

}


.pre-event-team-message {

    padding: 13px 10px;

    border-top:
        1px solid
        rgba(76, 157, 225, .10);

    color:
        #647d95;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 7px;

    letter-spacing: .12em;

    text-align: center;

}

/* =========================================================
   EXODUS 2026 — MOTION SYSTEM
   ========================================================= */


/* ---------------------------------------------------------
   MOTION VARIABLES
--------------------------------------------------------- */

:root {

    --motion-fast:
        280ms;

    --motion-medium:
        650ms;

    --motion-slow:
        950ms;

    --motion-ease:
        cubic-bezier(
            .22,
            1,
            .36,
            1
        );

}


/* =========================================================
   PAGE BACKGROUND MOTION
========================================================= */

.page-grid {

    animation:
        exodusGridDrift
        24s
        linear
        infinite;

}


@keyframes exodusGridDrift {

    from {

        background-position:
            0 0,
            0 0;

    }

    to {

        background-position:
            58px 58px,
            58px 58px;

    }

}


/* =========================================================
   HEADER ENTRANCE
========================================================= */

.site-header {

    animation:
        exodusHeaderEnter
        .75s
        var(--motion-ease)
        both;

}


@keyframes exodusHeaderEnter {

    from {

        opacity: 0;

        translate:
            0
            -22px;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* NAV ITEMS STAGGER */

.main-nav a {

    animation:
        exodusNavEnter
        .6s
        var(--motion-ease)
        both;

}


.main-nav a:nth-child(1) {

    animation-delay:
        .12s;

}


.main-nav a:nth-child(2) {

    animation-delay:
        .19s;

}


.main-nav a:nth-child(3) {

    animation-delay:
        .26s;

}


.main-nav a:nth-child(4) {

    animation-delay:
        .33s;

}


@keyframes exodusNavEnter {

    from {

        opacity: 0;

        translate:
            0
            -10px;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* =========================================================
   HERO CINEMATIC ENTRANCE
========================================================= */

.hero .eyebrow {

    animation:
        exodusHeroRise
        .75s
        .15s
        var(--motion-ease)
        both;

}


.hero .presents-row {

    animation:
        exodusHeroRise
        .75s
        .25s
        var(--motion-ease)
        both;

}


.hero .hero-title-image {

    animation:
        exodusLogoEnter
        1.05s
        .32s
        var(--motion-ease)
        both;

}


.hero .event-year {

    animation:
        exodusHeroRise
        .75s
        .52s
        var(--motion-ease)
        both;

}


.hero .hero-subtitle {

    animation:
        exodusHeroRise
        .75s
        .60s
        var(--motion-ease)
        both;

}


.hero .hero-tagline {

    animation:
        exodusHeroRise
        .75s
        .68s
        var(--motion-ease)
        both;

}


.hero .hero-actions {

    animation:
        exodusHeroRise
        .75s
        .78s
        var(--motion-ease)
        both;

}


.hero .leaderboard-panel {

    animation:
        exodusPanelEnter
        .95s
        .46s
        var(--motion-ease)
        both;

}


@keyframes exodusHeroRise {

    from {

        opacity: 0;

        translate:
            0
            26px;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


@keyframes exodusLogoEnter {

    0% {

        opacity: 0;

        scale:
            .92;

        translate:
            0
            24px;

        filter:
            blur(8px)
            brightness(.7);

    }

    55% {

        filter:
            blur(0)
            brightness(1.35);

    }

    100% {

        opacity: 1;

        scale:
            1;

        translate:
            0
            0;

        filter:
            blur(0)
            brightness(1);

    }

}


@keyframes exodusPanelEnter {

    from {

        opacity: 0;

        translate:
            35px
            0;

        scale:
            .97;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

        scale:
            1;

    }

}


/* =========================================================
   EXODUS LOGO GLOW
========================================================= */

.hero-title-image img {

    animation:
        exodusLogoGlow
        4.5s
        1.5s
        ease-in-out
        infinite;

}


@keyframes exodusLogoGlow {

    0%,
    100% {

        filter:
            drop-shadow(
                0 0 6px
                rgba(
                    76,
                    174,
                    255,
                    .10
                )
            );

    }

    50% {

        filter:
            drop-shadow(
                0 0 19px
                rgba(
                    76,
                    174,
                    255,
                    .30
                )
            );

    }

}


/* =========================================================
   HERO ORBS — SLOW FLOAT
========================================================= */

.hero-orb-one {

    animation:
        exodusOrbOne
        11s
        ease-in-out
        infinite;

}


.hero-orb-two {

    animation:
        exodusOrbTwo
        14s
        ease-in-out
        infinite;

}


@keyframes exodusOrbOne {

    0%,
    100% {

        translate:
            0
            0;

        scale:
            1;

    }

    50% {

        translate:
            30px
            -24px;

        scale:
            1.12;

    }

}


@keyframes exodusOrbTwo {

    0%,
    100% {

        translate:
            0
            0;

        scale:
            1;

    }

    50% {

        translate:
            -35px
            20px;

        scale:
            1.08;

    }

}


/* =========================================================
   SCROLL REVEAL
========================================================= */

.exodus-reveal {

    opacity: 0;

    translate:
        0
        34px;

    transition:

        opacity
        .8s
        var(--motion-ease),

        translate
        .8s
        var(--motion-ease);

    transition-delay:
        var(
            --reveal-delay,
            0ms
        );

}


.exodus-reveal.exodus-visible {

    opacity: 1;

    translate:
        0
        0;

}


/* ALTERNATE LEFT / RIGHT ENTRANCES */

.exodus-reveal-left {

    translate:
        -35px
        0;

}


.exodus-reveal-right {

    translate:
        35px
        0;

}


.exodus-reveal-left.exodus-visible,
.exodus-reveal-right.exodus-visible {

    translate:
        0
        0;

}


/* =========================================================
   TOP 3 PODIUM
========================================================= */

.leaderboard-panel
.team-card {

    transition:

        translate
        .35s
        var(--motion-ease),

        scale
        .35s
        var(--motion-ease),

        border-color
        .35s
        ease,

        box-shadow
        .35s
        ease;

}


.leaderboard-panel
.team-card:hover {

    translate:
        0
        -8px;

    scale:
        1.025;

}


.leaderboard-panel
.team-card.first {

    animation:
        exodusWinnerGlow
        3.8s
        ease-in-out
        infinite;

}


@keyframes exodusWinnerGlow {

    0%,
    100% {

        filter:
            drop-shadow(
                0 0 0
                rgba(
                    76,
                    174,
                    255,
                    0
                )
            );

    }

    50% {

        filter:
            drop-shadow(
                0 0 13px
                rgba(
                    76,
                    174,
                    255,
                    .23
                )
            );

    }

}


/* =========================================================
   ROUND CARDS
========================================================= */

.round-card {

    transition:

        translate
        .35s
        var(--motion-ease),

        scale
        .35s
        var(--motion-ease),

        border-color
        .35s
        ease,

        box-shadow
        .35s
        ease;

}


.round-card:hover {

    translate:
        0
        -7px;

    scale:
        1.012;

}


.round-card.round-live {

    animation:
        exodusLiveRoundGlow
        2.4s
        ease-in-out
        infinite;

}


@keyframes exodusLiveRoundGlow {

    0%,
    100% {

        box-shadow:
            0 0 0
            rgba(
                56,
                230,
                163,
                0
            );

    }

    50% {

        box-shadow:
            0 0 28px
            rgba(
                56,
                230,
                163,
                .12
            );

    }

}


/* =========================================================
   BUTTON MOTION
========================================================= */

.primary-btn,
.ghost-btn,
.round-filter,
.leaderboard-link {

    transition:

        translate
        .25s
        var(--motion-ease),

        scale
        .25s
        var(--motion-ease),

        box-shadow
        .25s
        ease,

        border-color
        .25s
        ease,

        color
        .25s
        ease;

}


.primary-btn:hover,
.ghost-btn:hover {

    translate:
        0
        -3px;

    scale:
        1.015;

}


.primary-btn:active,
.ghost-btn:active {

    translate:
        0
        0;

    scale:
        .98;

}


/* =========================================================
   CURRENT LEADER LIGHT SWEEP
========================================================= */

.current-leader {

    position:
        relative;

    overflow:
        hidden;

    isolation:
        isolate;

}


.current-leader::before {

    content:
        "";

    position:
        absolute;

    z-index:
        0;

    top:
        -40%;

    left:
        -45%;

    width:
        22%;

    height:
        180%;

    pointer-events:
        none;

    opacity:
        0;

    transform:
        rotate(
            17deg
        );

    background:

        linear-gradient(
            90deg,

            transparent,

            rgba(
                124,
                198,
                255,
                .02
            ),

            rgba(
                124,
                198,
                255,
                .20
            ),

            rgba(
                255,
                255,
                255,
                .20
            ),

            rgba(
                124,
                198,
                255,
                .08
            ),

            transparent
        );

    animation:
        exodusLeaderSweep
        6s
        1.5s
        ease-in-out
        infinite;

}


.current-leader > * {

    position:
        relative;

    z-index:
        1;

}


@keyframes exodusLeaderSweep {

    0%,
    58% {

        left:
            -45%;

        opacity:
            0;

    }

    63% {

        opacity:
            1;

    }

    80% {

        left:
            125%;

        opacity:
            .8;

    }

    85%,
    100% {

        left:
            125%;

        opacity:
            0;

    }

}


/* =========================================================
   SCORE UPDATE FLASH
========================================================= */

.exodus-score-flash {

    animation:
        exodusScoreFlash
        .7s
        var(--motion-ease);

}


@keyframes exodusScoreFlash {

    0% {

        scale:
            1;

    }

    35% {

        scale:
            1.13;

        filter:
            brightness(
                1.8
            );

        text-shadow:
            0 0 20px
            rgba(
                76,
                174,
                255,
                .75
            );

    }

    100% {

        scale:
            1;

    }

}


/* =========================================================
   LEADERBOARD ROW ENTRANCE
========================================================= */

.leaderboard-table tbody tr.exodus-row-enter,
.mobile-team-card.exodus-row-enter {

    animation:
        exodusRowEnter
        .55s
        var(--motion-ease)
        both;

    animation-delay:
        var(
            --row-delay,
            0ms
        );

}


@keyframes exodusRowEnter {

    from {

        opacity:
            0;

        translate:
            0
            15px;

    }

    to {

        opacity:
            1;

        translate:
            0
            0;

    }

}


/* =========================================================
   SPONSOR LOGO HOVER
========================================================= */

.marquee-logo {

    transition:

        scale
        .3s
        var(--motion-ease),

        filter
        .3s
        ease;

}


.marquee-logo:hover {

    scale:
        1.06;

    filter:
        drop-shadow(
            0 0 12px
            rgba(
                76,
                174,
                255,
                .35
            )
        );

}


/* =========================================================
   MOBILE — REDUCE LARGE MOVEMENTS
========================================================= */

@media (
    max-width:
        680px
) {

    .exodus-reveal {

        translate:
            0
            20px;

    }


    .exodus-reveal-left,
    .exodus-reveal-right {

        translate:
            0
            20px;

    }


    .round-card:hover,
    .leaderboard-panel
    .team-card:hover {

        translate:
            0
            -3px;

        scale:
            1.005;

    }

}


/* =========================================================
   ACCESSIBILITY — REDUCED MOTION
========================================================= */

@media (
    prefers-reduced-motion:
        reduce
) {

    *,
    *::before,
    *::after {

        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;

        scroll-behavior:
            auto !important;

        transition-duration:
            .01ms !important;

        transition-delay:
            0ms !important;

    }


    .exodus-reveal {

        opacity:
            1 !important;

        translate:
            0
            0 !important;

    }

}

/* =========================================================
   EXODUS 2026 — INTERNAL PAGE MOTION PACK
========================================================= */


/* =========================================================
   LOGIN PAGE — CINEMATIC ENTRANCE
========================================================= */

.login-eyebrow {

    animation:
        exodusLoginRise
        .65s
        .12s
        var(--motion-ease)
        both;

}


.login-content > h1 {

    animation:
        exodusLoginRise
        .75s
        .20s
        var(--motion-ease)
        both;

}


.login-description {

    animation:
        exodusLoginRise
        .75s
        .30s
        var(--motion-ease)
        both;

}


.login-card {

    position: relative;
    overflow: hidden;

    animation:
        exodusLoginCardEnter
        .85s
        .38s
        var(--motion-ease)
        both;

}


.login-note {

    animation:
        exodusLoginRise
        .7s
        .52s
        var(--motion-ease)
        both;

}


@keyframes exodusLoginRise {

    from {

        opacity: 0;
        translate: 0 22px;

    }

    to {

        opacity: 1;
        translate: 0 0;

    }

}


@keyframes exodusLoginCardEnter {

    from {

        opacity: 0;
        translate: 0 28px;
        scale: .97;

        filter:
            blur(5px);

    }

    to {

        opacity: 1;
        translate: 0 0;
        scale: 1;

        filter:
            blur(0);

    }

}


/* =========================================================
   LOGIN CARD SCANNER
========================================================= */

.login-card::before {

    content: "";

    position: absolute;

    left: 0;
    top: -3px;

    width: 100%;
    height: 2px;

    pointer-events: none;

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(76, 174, 255, .9),
            rgba(255, 255, 255, .8),
            rgba(76, 174, 255, .9),
            transparent
        );

    opacity: .65;

    animation:
        exodusLoginScanner
        5s
        ease-in-out
        infinite;

}


@keyframes exodusLoginScanner {

    0%,
    100% {

        translate: -100% 0;
        opacity: 0;

    }

    12% {

        opacity: .7;

    }

    48% {

        translate: 100% 0;
        opacity: .45;

    }

    55%,
    100% {

        translate: 100% 0;
        opacity: 0;

    }

}


/* =========================================================
   LOGIN FORM STAGGER
========================================================= */

.login-card .form-group {

    animation:
        exodusFormEnter
        .6s
        var(--motion-ease)
        both;

}


.login-card .form-group:nth-of-type(1) {

    animation-delay: .54s;

}


.login-card .form-group:nth-of-type(2) {

    animation-delay: .63s;

}


.login-submit {

    animation:
        exodusFormEnter
        .6s
        .72s
        var(--motion-ease)
        both;

}


@keyframes exodusFormEnter {

    from {

        opacity: 0;
        translate: 14px 0;

    }

    to {

        opacity: 1;
        translate: 0 0;

    }

}


/* =========================================================
   LOGIN INPUT INTERACTION
========================================================= */

.login-card input {

    transition:

        border-color
        .25s
        ease,

        box-shadow
        .25s
        ease,

        background
        .25s
        ease,

        translate
        .25s
        var(--motion-ease);

}


.login-card input:focus {

    translate: 0 -1px;

    box-shadow:

        0 0 0 1px
        rgba(76, 174, 255, .12),

        0 0 22px
        rgba(76, 174, 255, .10);

}


/* =========================================================
   LOGIN BUTTON LIGHT PASS
========================================================= */

.login-submit {

    position: relative;
    overflow: hidden;

}


.login-submit::before {

    content: "";

    position: absolute;

    top: -50%;
    left: -45%;

    width: 24%;
    height: 200%;

    pointer-events: none;

    transform:
        rotate(18deg);

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, .35),
            transparent
        );

    transition:
        left
        .65s
        var(--motion-ease);

}


.login-submit:hover::before {

    left: 125%;

}


/* =========================================================
   SECURE / RESTRICTED STATUS
========================================================= */

.login-status {

    animation:
        exodusStatusPulse
        2.8s
        ease-in-out
        infinite;

}


@keyframes exodusStatusPulse {

    0%,
    100% {

        opacity: .72;
        text-shadow: none;

    }

    50% {

        opacity: 1;

        text-shadow:
            0 0 10px
            currentColor;

    }

}


/* =========================================================
   TEAM PORTAL — HEADER
========================================================= */

.team-portal-eyebrow {

    animation:
        exodusPortalRise
        .7s
        .10s
        var(--motion-ease)
        both;

}


.team-portal-header h1 {

    animation:
        exodusPortalRise
        .8s
        .18s
        var(--motion-ease)
        both;

}


.team-portal-description {

    animation:
        exodusPortalRise
        .75s
        .28s
        var(--motion-ease)
        both;

}


.team-identity {

    position: relative;
    overflow: hidden;

    animation:
        exodusIdentityEnter
        .9s
        .32s
        var(--motion-ease)
        both;

}


@keyframes exodusPortalRise {

    from {

        opacity: 0;
        translate: 0 20px;

    }

    to {

        opacity: 1;
        translate: 0 0;

    }

}


@keyframes exodusIdentityEnter {

    from {

        opacity: 0;

        translate:
            25px
            0;

        scale: .96;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

        scale: 1;

    }

}


/* =========================================================
   TEAM IDENTITY SCANNER
========================================================= */

.team-identity::after {

    content: "";

    position: absolute;

    inset:
        0
        auto
        0
        -35%;

    width: 18%;

    pointer-events: none;

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(76, 174, 255, .08),
            rgba(76, 174, 255, .18),
            transparent
        );

    animation:
        exodusIdentityScan
        7s
        1.5s
        ease-in-out
        infinite;

}


@keyframes exodusIdentityScan {

    0%,
    60% {

        left: -35%;
        opacity: 0;

    }

    66% {

        opacity: 1;

    }

    82% {

        left: 120%;
        opacity: .7;

    }

    88%,
    100% {

        left: 120%;
        opacity: 0;

    }

}


/* =========================================================
   TOTAL SCORE
========================================================= */

.team-total-score strong {

    transition:

        scale
        .3s
        var(--motion-ease),

        text-shadow
        .3s
        ease;

}


.team-total-score:hover strong {

    scale: 1.08;

    text-shadow:

        0 0 16px
        rgba(76, 174, 255, .55);

}


/* =========================================================
   TEAM ROUND PANELS
========================================================= */

.team-round-panel {

    position: relative;
    overflow: hidden;

    transition:

        translate
        .35s
        var(--motion-ease),

        scale
        .35s
        var(--motion-ease),

        border-color
        .35s
        ease,

        box-shadow
        .35s
        ease;

}


.team-round-panel:hover {

    translate:
        0
        -6px;

    scale:
        1.008;

}


/* TOP LIGHT EDGE */

.team-round-panel::before {

    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 0;
    height: 1px;

    pointer-events: none;

    background:

        linear-gradient(
            90deg,
            transparent,
            #4caeff,
            transparent
        );

    transition:

        width
        .65s
        var(--motion-ease);

}


.team-round-panel:hover::before {

    width: 100%;

}


/* =========================================================
   LIVE TEAM ROUND
========================================================= */

.team-round-panel.round-live {

    animation:
        exodusTeamRoundLive
        2.5s
        ease-in-out
        infinite;

}


@keyframes exodusTeamRoundLive {

    0%,
    100% {

        box-shadow:

            0 0 0
            rgba(56, 230, 163, 0);

    }

    50% {

        box-shadow:

            0 0 26px
            rgba(56, 230, 163, .10);

    }

}


/* =========================================================
   TEAM ROUND STATUS
========================================================= */

.team-round-panel.round-live
.team-round-status {

    animation:
        exodusGreenStatusPulse
        1.6s
        ease-in-out
        infinite;

}


@keyframes exodusGreenStatusPulse {

    0%,
    100% {

        opacity: .72;

    }

    50% {

        opacity: 1;

        text-shadow:

            0 0 12px
            rgba(56, 230, 163, .75);

    }

}


/* =========================================================
   COUNTDOWN TICK
========================================================= */

.exodus-countdown-tick {

    animation:
        exodusCountdownTick
        .32s
        var(--motion-ease);

}


@keyframes exodusCountdownTick {

    0% {

        scale: 1;

    }

    45% {

        scale: 1.14;

        text-shadow:

            0 0 14px
            rgba(76, 174, 255, .65);

    }

    100% {

        scale: 1;

    }

}


/* =========================================================
   ENTER ROUND BUTTON
========================================================= */

.team-enter-round:not(:disabled) {

    position: relative;

    overflow: hidden;

    animation:
        exodusEnterRoundPulse
        2.5s
        ease-in-out
        infinite;

}


@keyframes exodusEnterRoundPulse {

    0%,
    100% {

        box-shadow:

            0 0 0
            rgba(56, 230, 163, 0);

    }

    50% {

        box-shadow:

            0 0 22px
            rgba(56, 230, 163, .16);

    }

}


/* =========================================================
   ADMIN PORTAL HEADER
========================================================= */

.admin-portal-eyebrow {

    animation:
        exodusAdminRise
        .7s
        .10s
        var(--motion-ease)
        both;

}


.admin-portal-header h1 {

    animation:
        exodusAdminRise
        .8s
        .18s
        var(--motion-ease)
        both;

}


.admin-portal-description {

    animation:
        exodusAdminRise
        .75s
        .27s
        var(--motion-ease)
        both;

}


.admin-identity {

    animation:
        exodusAdminIdentity
        .85s
        .32s
        var(--motion-ease)
        both;

}


@keyframes exodusAdminRise {

    from {

        opacity: 0;
        translate: 0 20px;

    }

    to {

        opacity: 1;
        translate: 0 0;

    }

}


@keyframes exodusAdminIdentity {

    from {

        opacity: 0;

        translate:
            25px
            0;

        scale: .97;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

        scale: 1;

    }

}


/* =========================================================
   ADMIN SYSTEM ONLINE
========================================================= */

.admin-live-indicator {

    animation:
        exodusSystemOnline
        2.5s
        ease-in-out
        infinite;

}


@keyframes exodusSystemOnline {

    0%,
    100% {

        opacity: .76;

    }

    50% {

        opacity: 1;

        text-shadow:

            0 0 12px
            rgba(56, 230, 163, .65);

    }

}


/* =========================================================
   ADMIN ROUND STATUS CARDS
========================================================= */

.admin-round-status {

    position: relative;
    overflow: hidden;

    transition:

        translate
        .3s
        var(--motion-ease),

        scale
        .3s
        var(--motion-ease),

        border-color
        .3s
        ease,

        box-shadow
        .3s
        ease;

}


.admin-round-status:hover {

    translate:
        0
        -4px;

    scale:
        1.01;

}


/* LIGHT SWEEP */

.admin-round-status::after {

    content: "";

    position: absolute;

    top: -45%;
    left: -40%;

    width: 18%;
    height: 190%;

    pointer-events: none;

    transform:
        rotate(18deg);

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(76, 174, 255, .12),
            transparent
        );

    transition:
        left
        .6s
        var(--motion-ease);

}


.admin-round-status:hover::after {

    left: 125%;

}


/* =========================================================
   ADMIN SECTIONS
========================================================= */

.admin-status-panel,
.admin-score-section,
.bonus-round02-section {

    transition:

        translate
        .35s
        var(--motion-ease),

        border-color
        .35s
        ease,

        box-shadow
        .35s
        ease;

}


.admin-status-panel:hover,
.admin-score-section:hover,
.bonus-round02-section:hover {

    translate:
        0
        -2px;

}


/* =========================================================
   ADMIN TABLE ROWS
========================================================= */

.admin-score-table tbody tr,
.round3-judge-table tbody tr {

    transition:

        background
        .25s
        ease,

        translate
        .25s
        var(--motion-ease);

}


.admin-score-table tbody tr:hover,
.round3-judge-table tbody tr:hover {

    translate:
        3px
        0;

}


/* =========================================================
   ADMIN INFO CARDS
========================================================= */

.bonus-round02-info-card {

    transition:

        translate
        .3s
        var(--motion-ease),

        scale
        .3s
        var(--motion-ease),

        box-shadow
        .3s
        ease;

}


.bonus-round02-info-card:hover {

    translate:
        0
        -4px;

    scale:
        1.015;

}


/* =========================================================
   GENERIC VALUE UPDATE PULSE
========================================================= */

.exodus-value-pulse {

    animation:
        exodusValuePulse
        .5s
        var(--motion-ease);

}


@keyframes exodusValuePulse {

    0% {

        scale: 1;

    }

    40% {

        scale: 1.09;

        filter:
            brightness(1.5);

    }

    100% {

        scale: 1;

        filter:
            brightness(1);

    }

}


/* =========================================================
   MOBILE INTERNAL PAGE MOTION
========================================================= */

@media (
    max-width: 680px
) {

    .team-round-panel:hover,
    .admin-round-status:hover,
    .bonus-round02-info-card:hover {

        translate:
            0
            -2px;

        scale:
            1.003;

    }


    .team-identity::after {

        display: none;

    }

}

/* =========================================================
   EXODUS 2026 — COMPETITION PAGE MOTION
   ROUND 01 / ROUND 02 / ROUND 03
========================================================= */


/* =========================================================
   COMMON COMPETITION TRANSITIONS
========================================================= */

.exodus-competition-swap {

    animation:
        exodusCompetitionSwap
        .55s
        var(--motion-ease)
        both;

}


@keyframes exodusCompetitionSwap {

    0% {

        opacity: 0;

        translate:
            0
            14px;

        filter:
            blur(3px);

    }

    100% {

        opacity: 1;

        translate:
            0
            0;

        filter:
            blur(0);

    }

}


/* =========================================================
   ROUND 01 — QUEST X
========================================================= */


/* PROGRESS LOCATION BOX */

#progressGrid .progress-item {

    position: relative;

    overflow: hidden;

    transition:

        translate
        .3s
        var(--motion-ease),

        scale
        .3s
        var(--motion-ease),

        border-color
        .3s
        ease,

        background
        .3s
        ease,

        box-shadow
        .3s
        ease;

}


#progressGrid .progress-item:hover {

    translate:
        0
        -4px;

    scale:
        1.025;

}


/* ACTIVE LOCATION */

#progressGrid
.progress-item.active {

    animation:
        exodusQuestActive
        2.4s
        ease-in-out
        infinite;

}


@keyframes exodusQuestActive {

    0%,
    100% {

        box-shadow:

            0 0 0
            rgba(
                76,
                174,
                255,
                0
            );

    }

    50% {

        box-shadow:

            0 0 22px
            rgba(
                76,
                174,
                255,
                .16
            );

    }

}


/* COMPLETED LOCATION */

#progressGrid
.progress-item.completed {

    animation:
        exodusQuestComplete
        .65s
        var(--motion-ease);

}


@keyframes exodusQuestComplete {

    0% {

        scale: .92;

        filter:
            brightness(1.8);

    }

    55% {

        scale: 1.08;

    }

    100% {

        scale: 1;

        filter:
            brightness(1);

    }

}


/* FAILED LOCATION */

#progressGrid
.progress-item.failed {

    animation:
        exodusQuestFailed
        .55s
        var(--motion-ease);

}


@keyframes exodusQuestFailed {

    0%,
    100% {

        translate:
            0
            0;

    }

    25% {

        translate:
            -4px
            0;

    }

    50% {

        translate:
            4px
            0;

    }

    75% {

        translate:
            -2px
            0;

    }

}


/* PROGRESS BOX ENTRANCE */

#progressGrid
.progress-item.exodus-progress-enter {

    animation:
        exodusQuestProgressEnter
        .45s
        var(--motion-ease)
        both;

    animation-delay:
        var(
            --quest-delay,
            0ms
        );

}


@keyframes exodusQuestProgressEnter {

    from {

        opacity: 0;

        translate:
            0
            12px;

        scale: .94;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

        scale: 1;

    }

}


/* CURRENT CLUE */

#clueText {

    transform-origin:
        left center;

}


#clueText.exodus-clue-reveal {

    animation:
        exodusClueReveal
        .7s
        var(--motion-ease)
        both;

}


@keyframes exodusClueReveal {

    0% {

        opacity: 0;

        translate:
            18px
            0;

        filter:
            blur(5px);

    }

    60% {

        filter:
            blur(0);

    }

    100% {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* CURRENT LOCATION NUMBER */

#locationNumber {

    transition:

        scale
        .3s
        var(--motion-ease),

        text-shadow
        .3s
        ease;

}


#locationNumber.exodus-value-pulse {

    text-shadow:

        0 0 18px
        rgba(
            76,
            174,
            255,
            .55
        );

}


/* QUEST QUIZ */

#quizPanel {

    position: relative;

    overflow: hidden;

}


#quizPanel::after {

    content: "";

    position: absolute;

    top: 0;
    left: -35%;

    width: 20%;
    height: 1px;

    pointer-events: none;

    background:

        linear-gradient(
            90deg,
            transparent,
            #4caeff,
            transparent
        );

    animation:
        exodusQuestQuizScan
        6s
        ease-in-out
        infinite;

}


@keyframes exodusQuestQuizScan {

    0%,
    65% {

        left: -35%;
        opacity: 0;

    }

    70% {

        opacity: 1;

    }

    88% {

        left: 120%;
        opacity: .8;

    }

    100% {

        left: 120%;
        opacity: 0;

    }

}


/* QUEST QUIZ QUESTION */

#questionContainer.exodus-question-enter {

    animation:
        exodusQuestionEnter
        .55s
        var(--motion-ease)
        both;

}


/* FINAL WORD */

#finalWordPanel {

    position: relative;

    overflow: hidden;

}


#finalWordPanel.exodus-visible-state {

    animation:
        exodusFinalWordReveal
        .75s
        var(--motion-ease)
        both;

}


@keyframes exodusFinalWordReveal {

    from {

        opacity: 0;

        translate:
            0
            20px;

        scale: .97;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

        scale: 1;

    }

}


/* =========================================================
   ROUND 02 — BEAT THE CLOCK
========================================================= */


/* PAGE HEADER */

.round2-header {

    animation:
        exodusRoundHeaderEnter
        .8s
        .15s
        var(--motion-ease)
        both;

}


@keyframes exodusRoundHeaderEnter {

    from {

        opacity: 0;

        translate:
            0
            22px;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* WAITING MESSAGE */

.round2-waiting-message {

    position: relative;

    overflow: hidden;

}


.round2-waiting-dot {

    display: inline-block;

    animation:
        exodusWaitingDot
        1.5s
        ease-in-out
        infinite;

}


@keyframes exodusWaitingDot {

    0%,
    100% {

        opacity: .35;

        scale: .85;

    }

    50% {

        opacity: 1;

        scale: 1.15;

        text-shadow:

            0 0 14px
            rgba(
                76,
                174,
                255,
                .7
            );

    }

}


/* START RULE CARDS */

.round2-rule {

    transition:

        translate
        .3s
        var(--motion-ease),

        scale
        .3s
        var(--motion-ease),

        border-color
        .3s
        ease,

        box-shadow
        .3s
        ease;

}


.round2-rule:hover {

    translate:
        0
        -4px;

    scale:
        1.015;

}


/* QUIZ PANEL */

.round2-quiz-panel {

    position: relative;

}


.round2-question-panel.exodus-question-enter {

    animation:
        exodusQuestionEnter
        .55s
        var(--motion-ease)
        both;

}


@keyframes exodusQuestionEnter {

    from {

        opacity: 0;

        translate:
            18px
            0;

        filter:
            blur(3px);

    }

    to {

        opacity: 1;

        translate:
            0
            0;

        filter:
            blur(0);

    }

}


/* OPTIONS */

.round2-option {

    transition:

        translate
        .22s
        var(--motion-ease),

        scale
        .22s
        var(--motion-ease),

        border-color
        .22s
        ease,

        background
        .22s
        ease,

        box-shadow
        .22s
        ease;

}


.round2-option:hover:not(:disabled) {

    translate:
        5px
        0;

    scale:
        1.006;

}


.round2-option.exodus-option-enter {

    animation:
        exodusOptionEnter
        .42s
        var(--motion-ease)
        both;

    animation-delay:
        var(
            --option-delay,
            0ms
        );

}


@keyframes exodusOptionEnter {

    from {

        opacity: 0;

        translate:
            20px
            0;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* SELECTED ANSWER */

.round2-option.selected {

    animation:
        exodusAnswerLock
        .38s
        var(--motion-ease);

}


@keyframes exodusAnswerLock {

    0% {

        scale: 1;

    }

    45% {

        scale: 1.025;

        filter:
            brightness(1.4);

    }

    100% {

        scale: 1;

        filter:
            brightness(1);

    }

}


/* QUESTION TIMER — NORMAL TICK */

#questionTimer.exodus-round2-tick {

    animation:
        exodusRound2Tick
        .28s
        var(--motion-ease);

}


@keyframes exodusRound2Tick {

    0% {

        scale: 1;

    }

    50% {

        scale: 1.06;

    }

    100% {

        scale: 1;

    }

}


/* LAST 10 SECONDS */

#questionTimer.round2-timer-danger {

    animation:
        exodusTimerDanger
        .72s
        ease-in-out
        infinite;

}


@keyframes exodusTimerDanger {

    0%,
    100% {

        scale: 1;

        text-shadow:

            0 0 5px
            rgba(
                255,
                70,
                70,
                .25
            );

    }

    50% {

        scale: 1.08;

        text-shadow:

            0 0 20px
            rgba(
                255,
                70,
                70,
                .75
            );

    }

}


/* PROGRESS BAR */

.round2-progress-bar {

    transition:

        width
        .55s
        var(--motion-ease),

        filter
        .35s
        ease;

    box-shadow:

        0 0 12px
        rgba(
            76,
            174,
            255,
            .35
        );

}


/* QUESTION TRANSITION */

.round2-transition {

    animation:
        exodusQuestionTransition
        .4s
        var(--motion-ease);

}


@keyframes exodusQuestionTransition {

    from {

        opacity: 0;

        scale: .96;

    }

    to {

        opacity: 1;

        scale: 1;

    }

}


/* RESULT PANEL */

.round2-result-panel.exodus-result-enter {

    animation:
        exodusResultEnter
        .85s
        var(--motion-ease)
        both;

}


@keyframes exodusResultEnter {

    0% {

        opacity: 0;

        translate:
            0
            25px;

        scale: .96;

    }

    65% {

        scale: 1.01;

    }

    100% {

        opacity: 1;

        translate:
            0
            0;

        scale: 1;

    }

}


/* FINAL SCORE */

#finalScore.exodus-final-score {

    animation:
        exodusFinalScoreReveal
        .8s
        var(--motion-ease);

}


@keyframes exodusFinalScoreReveal {

    0% {

        opacity: 0;

        scale: .65;

    }

    60% {

        opacity: 1;

        scale: 1.15;

        text-shadow:

            0 0 25px
            rgba(
                76,
                174,
                255,
                .75
            );

    }

    100% {

        scale: 1;

    }

}


/* REVIEW CARDS */

.round2-review-card.exodus-review-enter {

    animation:
        exodusReviewEnter
        .5s
        var(--motion-ease)
        both;

    animation-delay:
        var(
            --review-delay,
            0ms
        );

}


@keyframes exodusReviewEnter {

    from {

        opacity: 0;

        translate:
            0
            15px;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* =========================================================
   ROUND 03 — FIELD X
========================================================= */

.round3-header {

    animation:
        exodusRoundHeaderEnter
        .8s
        .15s
        var(--motion-ease)
        both;

}


/* STATUS PANEL */

.round3-status-panel {

    animation:
        exodusFieldStatusEnter
        .75s
        .28s
        var(--motion-ease)
        both;

}


@keyframes exodusFieldStatusEnter {

    from {

        opacity: 0;

        translate:
            0
            18px;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


.round3-status-item {

    transition:

        translate
        .3s
        var(--motion-ease),

        background
        .3s
        ease;

}


.round3-status-item:hover {

    translate:
        0
        -2px;

}


/* ROUND 03 MAIN CARD */

.round3-card {

    position: relative;

    overflow: hidden;

    animation:
        exodusFieldCardEnter
        .85s
        .38s
        var(--motion-ease)
        both;

}


@keyframes exodusFieldCardEnter {

    from {

        opacity: 0;

        translate:
            0
            25px;

        scale: .98;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

        scale: 1;

    }

}


/* LIGHT SCAN */

.round3-card::before {

    content: "";

    position: absolute;

    top: 0;
    left: -35%;

    width: 22%;
    height: 1px;

    pointer-events: none;

    background:

        linear-gradient(
            90deg,
            transparent,
            #35a9ff,
            transparent
        );

    animation:
        exodusFieldScanner
        7s
        ease-in-out
        infinite;

}


@keyframes exodusFieldScanner {

    0%,
    65% {

        left: -35%;

        opacity: 0;

    }

    70% {

        opacity: 1;

    }

    88% {

        left: 120%;

        opacity: .75;

    }

    100% {

        left: 120%;

        opacity: 0;

    }

}


/* ASSIGNMENT */

.round3-assignment {

    transition:

        translate
        .3s
        var(--motion-ease),

        border-color
        .3s
        ease,

        box-shadow
        .3s
        ease;

}


.round3-assignment:hover {

    translate:
        0
        -3px;

    border-color:
        rgba(
            53,
            169,
            255,
            .30
        );

}


/* UPLOAD BOXES */

.round3-upload-box {

    position: relative;

    transition:

        translate
        .3s
        var(--motion-ease),

        scale
        .3s
        var(--motion-ease),

        border-color
        .3s
        ease,

        background
        .3s
        ease,

        box-shadow
        .3s
        ease;

}


.round3-upload-box:hover {

    translate:
        0
        -4px;

}


.round3-upload-box.exodus-file-ready {

    border-color:
        rgba(
            56,
            230,
            163,
            .55
        );

    background:
        rgba(
            56,
            230,
            163,
            .045
        );

    box-shadow:

        0 0 18px
        rgba(
            56,
            230,
            163,
            .07
        );

}


/* FILE NAME */

.round3-file-name.exodus-file-name-enter {

    animation:
        exodusFileName
        .45s
        var(--motion-ease);

}


@keyframes exodusFileName {

    from {

        opacity: 0;

        translate:
            8px
            0;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* SUBMIT BUTTON */

#round3SubmitButton:not(:disabled) {

    position: relative;

    overflow: hidden;

    transition:

        translate
        .25s
        var(--motion-ease),

        scale
        .25s
        var(--motion-ease),

        box-shadow
        .25s
        ease;

}


#round3SubmitButton:hover:not(:disabled) {

    translate:
        0
        -3px;

    scale: 1.012;

    box-shadow:

        0 0 20px
        rgba(
            53,
            169,
            255,
            .18
        );

}


/* SUBMISSION MESSAGE */

.round3-status-message.exodus-status-change {

    animation:
        exodusStatusChange
        .55s
        var(--motion-ease);

}


@keyframes exodusStatusChange {

    from {

        opacity: .25;

        translate:
            8px
            0;

    }

    to {

        opacity: 1;

        translate:
            0
            0;

    }

}


/* SCORE REVEAL */

.round3-score-panel.exodus-score-reveal {

    animation:
        exodusRound3ScoreReveal
        .85s
        var(--motion-ease)
        both;

}


@keyframes exodusRound3ScoreReveal {

    0% {

        opacity: 0;

        translate:
            0
            18px;

        scale: .94;

    }

    60% {

        scale: 1.025;

        box-shadow:

            0 0 28px
            rgba(
                56,
                230,
                163,
                .16
            );

    }

    100% {

        opacity: 1;

        translate:
            0
            0;

        scale: 1;

    }

}


/* =========================================================
   COMPETITION PAGE MOBILE
========================================================= */

@media (
    max-width: 680px
) {

    #progressGrid .progress-item:hover,
    .round2-rule:hover,
    .round3-upload-box:hover {

        translate:
            0
            -2px;

        scale:
            1.002;

    }


    .round2-option:hover:not(:disabled) {

        translate:
            0
            -2px;

    }

}

/* =========================================================
   EXODUS 2026 — STARTUP LOADER
========================================================= */

.exodus-page-loader {

    position: fixed;

    inset: 0;

    z-index: 99999;

    display: flex;

    align-items: center;
    justify-content: center;

    background:

        radial-gradient(
            circle at center,
            rgba(16, 48, 78, .28),
            transparent 44%
        ),

        #03080d;

    opacity: 1;

    visibility: visible;

    transition:

        opacity
        .45s
        var(
            --motion-ease,
            cubic-bezier(.22, 1, .36, 1)
        ),

        visibility
        .45s
        ease;

}


.exodus-page-loader.is-hiding {

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

}


.exodus-loader-content {

    width: min(
        380px,
        calc(100vw - 48px)
    );

    text-align: center;

    animation:
        exodusLoaderEnter
        .8s
        cubic-bezier(.22, 1, .36, 1)
        both;

}


@keyframes exodusLoaderEnter {

    from {

        opacity: 0;

        transform:
            translateY(15px)
            scale(.96);

        filter:
            blur(5px);

    }

    to {

        opacity: 1;

        transform:
            translateY(0)
            scale(1);

        filter:
            blur(0);

    }

}


.exodus-loader-eyebrow {

    margin-bottom: 10px;

    color:
        rgba(130, 195, 245, .58);

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 8px;

    font-weight: 600;

    letter-spacing: .26em;

}


.exodus-loader-brand {

    color: #f2f8ff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: clamp(
        34px,
        7vw,
        58px
    );

    font-weight: 800;

    letter-spacing: .14em;

    line-height: 1;

    text-shadow:

        0 0 12px
        rgba(76, 174, 255, .25),

        0 0 36px
        rgba(76, 174, 255, .12);

    animation:
        exodusLoaderBrandGlow
        2.5s
        ease-in-out
        infinite;

}


@keyframes exodusLoaderBrandGlow {

    0%,
    100% {

        text-shadow:

            0 0 10px
            rgba(76, 174, 255, .18);

    }

    50% {

        text-shadow:

            0 0 18px
            rgba(76, 174, 255, .42),

            0 0 42px
            rgba(76, 174, 255, .15);

    }

}


.exodus-loader-year {

    margin-top: 7px;

    color: #4caeff;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .46em;

}


.exodus-loader-track {

    position: relative;

    width: 100%;
    height: 2px;

    margin-top: 29px;

    overflow: hidden;

    background:
        rgba(76, 174, 255, .10);

}


.exodus-loader-track span {

    position: absolute;

    top: 0;
    bottom: 0;

    width: 35%;

    background:

        linear-gradient(
            90deg,
            transparent,
            #4caeff,
            #d9f1ff,
            #4caeff,
            transparent
        );

    box-shadow:

        0 0 14px
        rgba(76, 174, 255, .55);

    animation:
        exodusLoaderScan
        1.25s
        ease-in-out
        infinite;

}


@keyframes exodusLoaderScan {

    from {

        left: -40%;

    }

    to {

        left: 110%;

    }

}


.exodus-loader-status {

    margin-top: 13px;

    min-height: 14px;

    color:
        rgba(160, 195, 222, .62);

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 7px;

    font-weight: 600;

    letter-spacing: .14em;

    transition:
        color
        .25s
        ease;

}


.exodus-loader-status.ready {

    color: #38e6a3;

}


.exodus-loader-status.warning {

    color: #ffc857;

}


.exodus-loader-status.offline {

    color: #ff5964;

}


/* =========================================================
   CONNECTION INDICATOR
========================================================= */

.exodus-connection-indicator {

    position: fixed;

    right: 18px;
    bottom: 17px;

    z-index: 9500;

    display: flex;

    align-items: center;
    gap: 8px;

    padding:
        8px
        11px;

    border:
        1px solid
        rgba(100, 150, 190, .17);

    border-radius: 4px;

    background:
        rgba(3, 10, 16, .82);

    backdrop-filter:
        blur(12px);

    -webkit-backdrop-filter:
        blur(12px);

    color:
        #91a6b8;

    font-family:
        "Orbitron",
        sans-serif;

    font-size: 7px;

    font-weight: 700;

    letter-spacing: .12em;

    box-shadow:

        0 8px 30px
        rgba(0, 0, 0, .22);

    opacity: .78;

    transition:

        opacity
        .25s
        ease,

        border-color
        .25s
        ease,

        color
        .25s
        ease,

        transform
        .25s
        cubic-bezier(.22, 1, .36, 1);

}


.exodus-connection-indicator:hover {

    opacity: 1;

    transform:
        translateY(-2px);

}


.exodus-connection-dot {

    width: 6px;
    height: 6px;

    flex: 0 0 6px;

    border-radius: 50%;

    background: currentColor;

}


/* ONLINE */

.exodus-connection-indicator.online {

    color: #38e6a3;

    border-color:
        rgba(56, 230, 163, .22);

}


.exodus-connection-indicator.online
.exodus-connection-dot {

    box-shadow:

        0 0 9px
        rgba(56, 230, 163, .72);

}


/* RECONNECTING */

.exodus-connection-indicator.reconnecting {

    color: #ffc857;

    border-color:
        rgba(255, 200, 87, .24);

}


.exodus-connection-indicator.reconnecting
.exodus-connection-dot {

    animation:
        exodusReconnectPulse
        1s
        ease-in-out
        infinite;

}


@keyframes exodusReconnectPulse {

    0%,
    100% {

        opacity: .35;
        transform: scale(.8);

    }

    50% {

        opacity: 1;
        transform: scale(1.25);

    }

}


/* OFFLINE */

.exodus-connection-indicator.offline {

    color: #ff5964;

    border-color:
        rgba(255, 89, 100, .30);

}


.exodus-connection-indicator.offline
.exodus-connection-dot {

    box-shadow:

        0 0 9px
        rgba(255, 89, 100, .5);

}


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

@media (
    max-width: 680px
) {

    .exodus-connection-indicator {

        right: 10px;

        bottom:
            calc(
                10px +
                env(
                    safe-area-inset-bottom
                )
            );

        padding:
            7px
            9px;

        font-size: 6px;

    }


    .exodus-loader-content {

        width:
            calc(
                100vw - 60px
            );

    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (
    prefers-reduced-motion:
        reduce
) {

    .exodus-loader-brand,
    .exodus-loader-track span,
    .exodus-connection-dot {

        animation: none !important;

    }

}

/* =========================================================
   LOADER → PAGE ANIMATION COORDINATION
========================================================= */

/*
   While the EXODUS loader is covering the page,
   pause automatic entrance animations.
*/

body[data-exodus-loader]:not(.exodus-page-ready)
.site-header,

body[data-exodus-loader]:not(.exodus-page-ready)
.main-nav a,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .eyebrow,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .presents-row,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .hero-title-image,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .event-year,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .hero-subtitle,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .hero-tagline,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .hero-actions,

body[data-exodus-loader]:not(.exodus-page-ready)
.hero .leaderboard-panel,

body[data-exodus-loader]:not(.exodus-page-ready)
.team-portal-eyebrow,

body[data-exodus-loader]:not(.exodus-page-ready)
.team-portal-header h1,

body[data-exodus-loader]:not(.exodus-page-ready)
.team-portal-description,

body[data-exodus-loader]:not(.exodus-page-ready)
.team-identity,

body[data-exodus-loader]:not(.exodus-page-ready)
.admin-portal-eyebrow,

body[data-exodus-loader]:not(.exodus-page-ready)
.admin-portal-header h1,

body[data-exodus-loader]:not(.exodus-page-ready)
.admin-portal-description,

body[data-exodus-loader]:not(.exodus-page-ready)
.admin-identity,

body[data-exodus-loader]:not(.exodus-page-ready)
.round2-header,

body[data-exodus-loader]:not(.exodus-page-ready)
.round3-header,

body[data-exodus-loader]:not(.exodus-page-ready)
.round3-status-panel,

body[data-exodus-loader]:not(.exodus-page-ready)
.round3-card {

    animation-play-state:
        paused !important;

}

/* =========================================================
   ROUND 03 — SEPARATE SUBMISSION DEADLINES
========================================================= */

.round3-upload-deadline {

    margin-bottom:
        12px;

    color:
        #ffb84d;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        1px;

}


.round3-upload-status {

    margin-top:
        16px;

    padding-top:
        12px;

    border-top:
        1px solid
        rgba(255,255,255,.07);

    color:
        #8297aa;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        1px;

}


.round3-upload-status-success {

    color:
        #38e6a3;

    text-shadow:
        0 0 8px
        rgba(56,230,163,.2);

}


.round3-upload-status-closed {

    color:
        #ff6b6b;

}


.round3-upload-action {

    width:
        100%;

    min-height:
        42px;

    margin-top:
        14px;

    padding:
        10px 16px;

    border:
        1px solid
        rgba(53,169,255,.55);

    background:
        linear-gradient(
            135deg,
            rgba(25,108,168,.55),
            rgba(8,46,75,.82)
        );

    color:
        #eaf5ff;

    cursor:
        pointer;

    font-family:
        Orbitron,
        sans-serif;

    font-size:
        9px;

    font-weight:
        800;

    letter-spacing:
        1px;

    transition:
        .2s ease;

}


.round3-upload-action:hover:not(:disabled) {

    border-color:
        #35a9ff;

    box-shadow:
        0 0 18px
        rgba(53,169,255,.15);

    transform:
        translateY(-1px);

}


.round3-upload-action:disabled {

    opacity:
        .35;

    cursor:
        not-allowed;

    transform:
        none;

}


.round3-control-disabled {

    opacity:
        .35 !important;

    cursor:
        not-allowed !important;

    pointer-events:
        none !important;

}

/* =========================================================
   ROUND 03 — FIX SEPARATE UPLOAD CARD LAYOUT
========================================================= */

.round3-upload-box {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}


.round3-upload-box h3 {
    margin: 0;
}


.round3-upload-box p {
    margin: 0;
}


.round3-upload-deadline {
    margin: 0;
}


.round3-file-limit {
    margin: 0;
}


.round3-file-button {
    align-self: flex-start;
    width: auto;
    min-width: 150px;
}


.round3-file-name {
    width: 100%;
}


.round3-upload-status {
    width: 100%;
    margin-top: 4px;
}


.round3-upload-action {
    width: 100%;
    min-height: 42px;
    margin-top: 4px;
}

/* =========================================================
   ROUND 03 — JUDGE IDENTITY
========================================================= */

.round3-judge-identity {

    margin-top: 10px;

    display: flex;
    flex-direction: column;

    gap: 4px;
}


.round3-judge-identity > strong {

    color: #ffffff;

    font-family:
        Orbitron,
        sans-serif;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: .5px;
}


.round3-judge-profession {

    display: flex;
    flex-direction: column;

    gap: 2px;

    color: #7f96ad;

    font-family:
        Rajdhani,
        sans-serif;

    font-size: 14px;

    font-weight: 500;

    line-height: 1.25;
}


.round3-judge-profession span {

    display: block;

}

/* =========================================================
   LEADERBOARD — MOBILE HORIZONTAL OVERFLOW FIX
========================================================= */

@media (max-width: 680px) {

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }


    .leaderboard-page {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }


    .leaderboard-intro,
    .current-leader,
    .leaderboard-results {
        width: calc(100% - 28px);
        max-width: calc(100% - 28px);

        margin-left: auto;
        margin-right: auto;
    }


    /* =====================================================
       CURRENT LEADER
    ===================================================== */

    .current-leader-content {
        display: grid;

        grid-template-columns:
            minmax(0, 1fr) auto;

        gap: 16px;

        width: 100%;
        min-width: 0;
    }


    .current-leader-content > div {
        min-width: 0;
    }


    .current-leader-content h2 {
        max-width: 100%;

        font-size: 21px;

        line-height: 1.2;

        overflow-wrap: anywhere;
        word-break: break-word;
    }


    .current-leader-content small {
        display: block;

        max-width: 100%;

        line-height: 1.4;

        white-space: normal;
    }


    .current-score {
        min-width: 0;

        text-align: right;
    }


    .current-score strong {
        font-size: 28px;

        white-space: nowrap;
    }


    /* =====================================================
       MOBILE TEAM CARDS
    ===================================================== */

    .mobile-leaderboard {
        width: 100%;
        max-width: 100%;

        min-width: 0;
    }


    .mobile-team-card {
        width: 100%;
        max-width: 100%;

        min-width: 0;
    }


    .mobile-team-top {
        width: 100%;

        grid-template-columns:
            32px minmax(0, 1fr) auto;

        min-width: 0;
    }


    .mobile-team-name {
        min-width: 0;

        max-width: 100%;

        overflow-wrap: anywhere;
        word-break: break-word;
    }


    .mobile-team-top > strong {
        white-space: nowrap;
    }


    .mobile-team-rounds {
        width: 100%;

        grid-template-columns:
            repeat(4, minmax(0, 1fr));

        min-width: 0;
    }


    .mobile-team-rounds > div {
        min-width: 0;
    }


    /* Keep only the FILTER ROW horizontally scrollable */

    .round-filters {
        width: 100%;
        max-width: 100%;

        overflow-x: auto;
        overflow-y: hidden;

        -webkit-overflow-scrolling: touch;
    }

}

@media (max-width: 420px) {

    .current-leader-content {
        grid-template-columns: 1fr;
    }


    .current-score {
        text-align: left;
    }


    .current-score strong {
        font-size: 26px;
    }

}

@media (max-width: 680px) {

    .leaderboard-intro h1 {
        font-size: 26px;
        letter-spacing: .025em;
        padding-right: 6px;
        box-sizing: border-box;
    }

}