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

html, body{
  width: 100%;
  min-height: 100%;
}

/* =========================
   BODY / BACKGROUND
   ========================= */
body{
  background:
    radial-gradient(circle at top, rgba(22, 40, 72, 0.45) 0%, rgba(0,0,0,0) 35%),
    linear-gradient(180deg, #03060d 0%, #02040a 40%, #000 100%);
  visibility: visible;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: #d8f6ff;
}

/* =========================
   HEADER BAR
   ========================= */
.topbar{
  width: 100%;
  height: 56px;
  background: rgba(5,7,12,.85);
  border-bottom: 1px solid rgba(216,246,255,.18);
  position: sticky;
  top: 0;
  z-index: 9999999;
  backdrop-filter: blur(6px);
}

.brand-image{
  height: 32px;
  width: auto;
  display: block;
  user-select: none;
  position: relative;
  z-index: 1;
  filter:
    brightness(1.15)
    saturate(1.4)
    drop-shadow(0 0 6px rgba(0,255,255,.35))
    drop-shadow(0 0 12px rgba(0,255,255,.18));
}

.brand-wrap{
  position: relative;
  display: inline-block;
}

.brand-wrap::after{
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/images/nattytwomp-side.svg") center / contain no-repeat;
  mix-blend-mode: screen;
  filter:
    brightness(1.35)
    saturate(1.4);
  pointer-events: none;
  z-index: 2;
}

.nav-wrap{
  max-width: 1200px;
  height: 56px;
  margin: 0 auto;
  padding: 0 18px;
  display: flex;
  align-items: center;
  gap: 20px;
  overflow: visible;
}

.nav{
  margin-left: auto;
  display: flex;
  gap: 14px;
}

.nav-link{
  text-decoration: none;
  font-size: 13px;
  color: rgba(216,246,255,.75);
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid transparent;
}

.nav-link:hover{
  color: #d8f6ff;
  border-color: rgba(216,246,255,.18);
  box-shadow: 0 0 12px rgba(0,255,255,.12);
}

.nav-link.active{
  color: #d8f6ff;
  border-color: rgba(0,255,255,.25);
  box-shadow: 0 0 16px rgba(0,255,255,.16);
}

/* =========================
   NAV GROUP
   ========================= */
.nav-group{
  position: relative;
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
  border: 1px solid transparent;
}

.nav-group:hover{
  border-color: rgba(216,246,255,.18);
  box-shadow: 0 0 12px rgba(0,255,255,.12);
}

.nav-group.active{
  border-color: rgba(0,255,255,.25);
  box-shadow: 0 0 16px rgba(0,255,255,.16);
}

.nav-group-link{
  text-decoration: none;
  font-size: 13px;
  color: rgba(216,246,255,.75);
  padding: 6px 10px;
}

.nav-group:hover .nav-group-link,
.nav-group.active .nav-group-link{
  color: #d8f6ff;
}

.nav-group-toggle{
  appearance: none;
  border: none;
  background: transparent;
  color: rgba(216,246,255,.75);
  cursor: pointer;
  padding: 6px 10px;
  border-left: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.nav-group-toggle:hover{
  color: #d8f6ff;
}

.topbar .nav-group-toggle,
.topbar .nav-group-toggle:hover,
.topbar .nav-group-toggle:focus,
.topbar .nav-group-toggle:focus-visible,
.topbar .nav-group-toggle:active{
  outline: none;
  box-shadow: none;
  border-left-color: transparent;
}

.nav-group-toggle-icon{
  width: 14px;
  height: 10px;
  position: relative;
  display: inline-block;
}

.nav-group-toggle-icon::before,
.nav-group-toggle-icon::after,
.nav-group-toggle-icon span{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: currentColor;
  opacity: 0.9;
}

.nav-group-toggle-icon::before{ top: 0; }
.nav-group-toggle-icon span{ top: 50%; transform: translateY(-50%); }
.nav-group-toggle-icon::after{ bottom: 0; }

/* =========================
   DROPDOWN MENU
   ========================= */
.nav-group-menu{
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  min-width: 150px;
  padding: 0;
  border-radius: 10px;
  background: rgba(5,7,12,.96);
  border: 1px solid rgba(216,246,255,.18);
  box-shadow:
    0 10px 22px rgba(0,0,0,.55),
    0 0 22px rgba(0,255,255,.12);
  display: none;
  z-index: 10000;
}

.nav-group.is-open .nav-group-menu{
  display: block;
}

.nav-group-item{
  display: block;
  padding: 9px 10px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 13px;
  color: rgba(216,246,255,.85);
  border: 1px solid transparent;
}

.nav-group-item:hover{
  color: #d8f6ff;
  border-color: rgba(216,246,255,.18);
  box-shadow: 0 0 12px rgba(0,255,255,.10);
}

.nav-group-item[aria-current="page"]{
  color: #d8f6ff;
  border-color: rgba(0,255,255,.25);
  box-shadow: 0 0 16px rgba(0,255,255,.14);
}

/* =========================
   ACCOUNT / PROFILE BUTTON
   ========================= */
.nav-account-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: -4px;
  padding: 5px;
  border-radius: 999px;
  border: 1px solid rgba(216,246,255,.18);
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 0 12px rgba(0,255,255,.10);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
}

.nav-account-link:hover{
  border-color: rgba(0,255,255,.30);
  box-shadow:
    0 0 12px rgba(0,255,255,.15),
    0 0 18px rgba(0,255,255,.10);
  transform: translateY(-1px);
  filter: brightness(1.04);
}

.nav-account-pic{
  width: 42px;
  height: 42px;
  display: block;
  border-radius: 999px;
  object-fit: cover;
  user-select: none;
}

/* =========================
   PAGE LAYOUT
   ========================= */
.progress-page{
  max-width: 1280px;
  margin: 0 auto;
  padding: 44px 24px 72px;
}

.progress-hero{
  max-width: 980px;
  margin: 0 auto 34px;
  text-align: center;
}

.page-title{
  font-family: "AstroSpace", system-ui, sans-serif;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.08;
  letter-spacing: 0.14em;
  text-transform: uppercase;

  background: linear-gradient(
    180deg,
    #9fe9ff 0%,
    #59cfff 45%,
    #36a7ff 100%
  );

  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;

  text-shadow:
    0 0 8px rgba(120,220,255,.35),
    0 0 18px rgba(80,180,255,.25),
    0 0 32px rgba(40,120,255,.18);

  margin-bottom: 18px;
}

/* =================================
   Page title divider
   ================================= */

.page-title::after{
  content:"";
  display:block;
  width:260px;
  height:1px;
  margin:14px auto 0 auto;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(120,220,255,.9),
    rgba(120,220,255,.35),
    transparent
  );

  border-radius:2px;

  box-shadow:
    0 0 8px rgba(120,220,255,.35),
    0 0 18px rgba(80,180,255,.20);
}

.page-intro{
  max-width: 920px;
  margin: 0 auto;
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.75;
  color: rgba(220, 236, 244, 0.90);
}

/* =========================
   TWO COLUMN REPORT
   ========================= */
.report-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  align-items: start;
}

.report-column{
  background:
    linear-gradient(180deg, rgba(8, 14, 28, 0.88), rgba(4, 8, 18, 0.84));
  border: 1px solid rgba(120,220,255,.14);
  border-radius: 22px;
  padding: 24px 22px 22px;
  box-shadow:
    0 0 18px rgba(0,255,255,.05),
    inset 0 0 18px rgba(90,180,255,.03);
}

.report-column-header{
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(216,246,255,.10);
}

.report-column-title{
  font-family: "AstroSpace", system-ui, sans-serif;
  font-size: clamp(18px, 1.9vw, 26px);
  line-height: 1.15;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #d8f6ff;
  text-shadow:
    0 0 8px rgba(54,196,240,.22),
    0 0 16px rgba(63,180,180,.10);
  margin-bottom: 10px;
}

/* Waltz Game header (left column) */
.report-column:first-child .report-column-title{
  color:#ff9a2a;
  text-shadow:
    0 0 10px rgba(255,150,60,.45),
    0 0 22px rgba(255,120,20,.25);
}

/* Waltz Website header (right column) */
.report-column:last-child .report-column-title{
  color:#4fd6ff;
  text-shadow:
    0 0 10px rgba(80,220,255,.45),
    0 0 22px rgba(40,160,255,.25);
}

.report-column-subtitle{
  font-size: clamp(13px, 1.05vw, 15px);
  line-height: 1.6;
  color: rgba(210, 228, 236, 0.84);
}

.report-section + .report-section{
  margin-top: 18px;
}

.report-section{
  background: rgba(255,255,255,.015);
  border: 1px solid rgba(216,246,255,.08);
  border-radius: 16px;
  padding: 16px 15px 15px;
}

.report-section-title{
  font-family: "AstroSpace", system-ui, sans-serif;
  font-size: clamp(13px, 1.05vw, 15px);
  line-height: 1.2;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #d8f6ff;
  margin-bottom: 10px;
  text-shadow:
    0 0 6px rgba(54,196,240,.20);
}

/* Completed */
.report-section:nth-of-type(1) .report-section-title{
  color:#58ff8f;
  text-shadow:
    0 0 8px rgba(90,255,140,.45),
    0 0 16px rgba(60,200,120,.25);
}

/* Working On */
.report-section:nth-of-type(2) .report-section-title{
  color:#ffd54a;
  text-shadow:
    0 0 8px rgba(255,220,90,.45),
    0 0 16px rgba(220,170,40,.25);
}

/* Future Goals */
.report-section:nth-of-type(3) .report-section-title{
  color:#ff5a5a;
  text-shadow:
    0 0 8px rgba(255,90,90,.45),
    0 0 16px rgba(200,40,40,.25);
}

.report-section-body{
  font-size: 15px;
  line-height: 1.7;
  color: rgba(220,236,244,.88);
}

.report-section-body p + p{
  margin-top: 10px;
}

.report-list{
  margin: 0;
  padding-left: 1.2em;
}

.report-list li{
  margin: 0;
  line-height: 1.7;
}

.report-list li + li{
  margin-top: 10px;
}

/* =================================
   Section divider line
   ================================= */

.report-section-title::after{
  content:"";
  display:block;
  width:100%;
  height:1px;
  margin-top:8px;
  border-radius:2px;
}

/* Completed line */
.report-section:nth-of-type(1) .report-section-title::after{
  background:linear-gradient(90deg,
    rgba(88,255,143,.9),
    rgba(88,255,143,.2),
    transparent
  );

  box-shadow:
    0 0 6px rgba(88,255,143,.45),
    0 0 14px rgba(88,255,143,.25);
}

/* Working On line */
.report-section:nth-of-type(2) .report-section-title::after{
  background:linear-gradient(90deg,
    rgba(255,213,74,.9),
    rgba(255,213,74,.2),
    transparent
  );

  box-shadow:
    0 0 6px rgba(255,213,74,.45),
    0 0 14px rgba(255,213,74,.25);
}

/* Future Goals line */
.report-section:nth-of-type(3) .report-section-title::after{
  background:linear-gradient(90deg,
    rgba(255,90,90,.9),
    rgba(255,90,90,.2),
    transparent
  );

  box-shadow:
    0 0 6px rgba(255,90,90,.45),
    0 0 14px rgba(255,90,90,.25);
}

/* Colored bullets by section */
.report-section:nth-of-type(1) .report-list li::marker{
  color: #58ff8f;
}

.report-section:nth-of-type(2) .report-list li::marker{
  color: #ffd54a;
}

.report-section:nth-of-type(3) .report-list li::marker{
  color: #ff5a5a;
}

/* =================================
   Section border color coding
   ================================= */

/* Completed */
.report-section:nth-of-type(1){
  border-color: rgba(88,255,143,.35);

  box-shadow:
    0 0 12px rgba(88,255,143,.08),
    inset 0 0 12px rgba(88,255,143,.03);
}

/* Working On */
.report-section:nth-of-type(2){
  border-color: rgba(255,213,74,.35);

  box-shadow:
    0 0 12px rgba(255,213,74,.08),
    inset 0 0 12px rgba(255,213,74,.03);
}

/* Future Goals */
.report-section:nth-of-type(3){
  border-color: rgba(255,90,90,.35);

  box-shadow:
    0 0 12px rgba(255,90,90,.08),
    inset 0 0 12px rgba(255,90,90,.03);
}

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width: 900px){
  .report-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px){
  .topbar{ height: 56px; }
  .nav-wrap{ height: 56px; }
  .nav{ gap: 8px; }

  .progress-page{
    padding: 28px 16px 56px;
  }

  .page-title{
    letter-spacing: 0.08em;
  }

  .page-intro{
    line-height: 1.65;
  }

  .report-column{
    padding: 18px 16px 16px;
    border-radius: 18px;
  }

  .report-section{
    padding: 14px 12px 12px;
  }
}