/* ==========================================================================
   QUIZRUSH — Homepage Styles
   A live-scoreboard aesthetic for a competitive MCQ quiz platform.
   ========================================================================== */

:root{
  /* Color tokens */
  --ink:        #17131F;   /* base background */
  --ink-2:      #211C2E;   /* panel background */
  --ink-3:      #2B2440;   /* raised panel / hover */
  --line:       #3A3350;   /* hairline borders on dark */
  --buzzer:     #FFC93C;   /* primary accent — CTAs, highlights */
  --buzzer-hover: #E4AD12; /* deeper CTA hover */
  --buzzer-ink: #3A2900;   /* text on buzzer yellow */
  --correct:    #2FD989;   /* points / success */
  --wrong:      #FF5470;   /* sparing use — decorative / wrong-answer cue */
  --volt:       #8B5CF6;   /* levels / progress */
  --paper:      #EDEBF5;   /* primary light text */
  --paper-dim:  #B8B3C7;   /* muted light text */
  --gold:       #FFC93C;
  --silver:     #C7CBD1;
  --bronze:     #D98A4B;

  --font-display: 'Chakra Petch', sans-serif;
  --font-body:    'Manrope', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;

  --shadow-hard: 6px 6px 0 rgba(0,0,0,0.45);
  --shadow-hard-sm: 4px 4px 0 rgba(0,0,0,0.45);
  --radius: 14px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior: auto; } }

body{
  background-color: var(--ink);
  color: var(--paper);
  font-family: var(--font-body);
  line-height: 1.6;
}

/* ==========================================================================
   Quiz preloader
   ========================================================================== */
.quiz-preloader{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  color: var(--paper);
  background:
    radial-gradient(620px 320px at 50% 42%, rgba(139,92,246,.16), transparent 70%),
    var(--ink);
  overflow: hidden;
  opacity: 1;
  visibility: visible;
  transition: opacity .38s ease, visibility 0s linear .38s;
}
.quiz-preloader.is-leaving{ opacity:0; visibility:hidden; pointer-events:none; }
.quiz-preloader-scan{
  position: absolute;
  inset: -30% 0 auto;
  height: 30%;
  background: linear-gradient(180deg, transparent, rgba(255,201,60,.045), transparent);
  animation: preloader-scan 1.8s linear infinite;
}
.quiz-preloader-card{
  position: relative;
  width: min(330px, 100%);
  padding: 1.6rem 1.5rem 1.4rem;
  text-align: center;
  background: rgba(33,28,46,.9);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard);
  animation: preloader-card-in .35s cubic-bezier(.2,.8,.2,1) both;
}
.quiz-preloader-card::before{
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px dashed rgba(184,179,199,.12);
  border-radius: 10px;
  pointer-events: none;
}
.quiz-preloader-brand{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
}
.quiz-preloader-brand i,
.quiz-preloader-brand span span{ color:var(--buzzer); }
.quiz-preloader-buzzer{
  position: relative;
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  margin: 1.25rem auto 1rem;
  color: var(--buzzer-ink);
  background: var(--buzzer);
  border: 6px solid #4b3910;
  border-radius: 50%;
  box-shadow: 0 5px 0 #211806, 0 0 34px rgba(255,201,60,.2);
  animation: preloader-buzzer 1s ease-in-out infinite;
}
.quiz-preloader-buzzer > i{ position:relative; z-index:1; font-size:1.7rem; }
.quiz-preloader-ring{
  position: absolute;
  inset: -8px;
  border: 2px solid var(--buzzer);
  border-radius: 50%;
  animation: preloader-ring 1s ease-out infinite;
}
.quiz-preloader-label{
  position: relative;
  margin: 0 0 .75rem;
  color: var(--paper-dim);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.quiz-preloader-questions{
  position: relative;
  display: flex;
  justify-content: center;
  gap: .5rem;
}
.quiz-preloader-questions span{
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  color: var(--paper-dim);
  background: var(--ink);
  border: 1px solid var(--line);
  border-radius: 6px;
  font-family: var(--font-mono);
  font-size: .7rem;
  animation: preloader-question 1.25s ease-in-out infinite;
}
.quiz-preloader-questions span:nth-child(2){ animation-delay:.1s; }
.quiz-preloader-questions span:nth-child(3){ animation-delay:.2s; }
.quiz-preloader-questions span:nth-child(4){ animation-delay:.3s; }
.quiz-preloader-questions span:nth-child(5){ animation-delay:.4s; }
.quiz-preloader-card small{
  position: relative;
  display: block;
  margin-top: .8rem;
  color: var(--correct);
  font-family: var(--font-mono);
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
@keyframes preloader-card-in{
  from{ opacity:0; transform:translateY(12px) scale(.97); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}
@keyframes preloader-buzzer{
  0%,100%{ transform:translateY(0); box-shadow:0 5px 0 #211806, 0 0 24px rgba(255,201,60,.14); }
  50%{ transform:translateY(3px); box-shadow:0 2px 0 #211806, 0 0 38px rgba(255,201,60,.28); }
}
@keyframes preloader-ring{
  0%{ opacity:.7; transform:scale(.9); }
  80%,100%{ opacity:0; transform:scale(1.35); }
}
@keyframes preloader-question{
  0%,55%,100%{ color:var(--paper-dim); background:var(--ink); border-color:var(--line); transform:translateY(0); }
  20%{ color:var(--buzzer-ink); background:var(--buzzer); border-color:var(--buzzer); transform:translateY(-4px); }
}
@keyframes preloader-scan{
  from{ transform:translateY(-20vh); }
  to{ transform:translateY(150vh); }
}

a{ color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, .btn:focus-visible, .nav-link:focus-visible{
  outline: 3px solid var(--buzzer);
  outline-offset: 3px;
}

h1,h2,h3,h4,.font-display{
  font-family: var(--font-display);
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

.font-mono{ font-family: var(--font-mono); }

.eyebrow{
  font-family: var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--buzzer);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.eyebrow::before{
  content: "";
  width: 8px; height: 8px;
  background: var(--correct);
  border-radius: 2px;
  display: inline-block;
  transform: rotate(45deg);
}

.section{ padding: 5rem 0; }
@media (max-width: 767.98px){ .section{ padding: 3.25rem 0; } }

.section-alt{ background: var(--ink-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }

.section-title{
  font-size: clamp(1.7rem, 3.2vw, 2.6rem);
  margin-bottom: 0.75rem;
  color: var(--paper);
}
.section-lede{ color: var(--paper-dim); max-width: 620px; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn-buzzer{
  background: var(--buzzer);
  color: var(--buzzer-ink);
  --bs-btn-hover-bg: var(--buzzer-hover);
  --bs-btn-hover-border-color: var(--buzzer-hover);
  --bs-btn-hover-color: var(--buzzer-ink);
  --bs-btn-active-bg: var(--buzzer);
  --bs-btn-active-border-color: var(--buzzer);
  --bs-btn-active-color: var(--buzzer-ink);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border: 2px solid var(--buzzer);
  border-radius: 999px;
  padding: 0.85rem 2rem;
  box-shadow: var(--shadow-hard);
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.btn-buzzer:hover, .btn-buzzer:focus{
  background-color: var(--buzzer-hover);
  border-color: var(--buzzer-hover);
  color: var(--buzzer-ink);
  transform: translate(2px, 2px);
  box-shadow: 3px 3px 0 rgba(0,0,0,0.45);
}
.btn-buzzer:active{
  background-color: var(--buzzer);
  border-color: var(--buzzer);
  color: var(--buzzer-ink);
  transform: translate(6px,6px);
  box-shadow: none;
}

.btn-outline-paper{
  background: transparent;
  color: var(--paper);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border: 2px solid var(--line);
  border-radius: 999px;
  padding: 0.85rem 2rem;
  transition: border-color 0.12s ease, background 0.12s ease;
}
.btn-outline-paper:hover, .btn-outline-paper:focus{
  color: var(--paper);
  border-color: var(--buzzer);
  background: rgba(255,201,60,0.06);
}

.btn-sm-pill{
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 0.82rem;
  border-radius: 999px;
  padding: 0.45rem 1.15rem;
  letter-spacing: 0.03em;
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  background: rgba(23,19,31,0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 1030;
}
.brand{
  font-family: var(--font-display);
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--paper) !important;
}
.brand .bi{ color: var(--buzzer); font-size: 1.5rem; }
.brand .brand-rush{ color: var(--buzzer); }

.site-header .nav-link{
  color: var(--paper-dim);
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 0.9rem;
  letter-spacing: 0.03em;
  padding: 0.5rem 1rem;
}
.site-header .nav-link:hover,
.site-header .nav-link.active{ color: var(--buzzer); }

.quiz-menu-toggle{
  position: relative;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--paper);
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: 10px;
  box-shadow: none;
  transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .32s ease;
}
.quiz-menu-toggle .bi{
  position: absolute;
  font-size: 1.8rem;
  line-height: 1;
  transition: opacity .28s ease, transform .42s cubic-bezier(.2,.8,.2,1);
}
.quiz-menu-toggle .menu-icon-open{ opacity:1; transform:rotate(0) scale(1); }
.quiz-menu-toggle .menu-icon-close{ opacity:0; font-size:1.25rem; transform:rotate(-90deg) scale(.65); }
.quiz-menu-toggle[aria-expanded="true"] .menu-icon-open{ opacity:0; transform:rotate(90deg) scale(.65); }
.quiz-menu-toggle[aria-expanded="true"] .menu-icon-close{ opacity:1; transform:rotate(0) scale(1); }
.quiz-menu-toggle:hover,
.quiz-menu-toggle:focus,
.quiz-menu-toggle[aria-expanded="true"]{
  color: var(--buzzer);
  background: var(--ink-3);
  border-color: var(--buzzer);
  box-shadow: none;
}
.quiz-menu-toggle[aria-expanded="true"]{ transform:rotate(2deg); }
.mobile-nav-panel{
  display: block !important;
  position: fixed !important;
  top: 65px !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: calc(100vh - 65px) !important;
  height: calc(100dvh - 65px) !important;
  z-index: 1029;
  background:
    radial-gradient(500px 260px at 100% 0, rgba(139,92,246,.13), transparent 70%),
    radial-gradient(440px 240px at 0 100%, rgba(255,201,60,.07), transparent 70%),
    var(--ink-2);
  border-top: 1px solid var(--line);
  overflow-y: auto;
  overscroll-behavior: contain;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-16px);
  transform-origin: top center;
  transition:
    opacity .46s ease .12s,
    transform .52s cubic-bezier(.4,0,.6,1) .08s,
    visibility 0s linear .6s;
}
.mobile-nav-panel.is-open{
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  transition:
    opacity .42s ease,
    transform .52s cubic-bezier(.16,1,.3,1),
    visibility 0s linear 0s;
}
.mobile-nav-inner{
  width: min(560px, calc(100% - 2rem));
  min-height: 100%;
  margin: 0 auto;
  padding: 1.25rem 0 1.5rem;
  display: flex;
  flex-direction: column;
}
.mobile-menu-links{ gap: 0.35rem; }
.mobile-menu-links .nav-item{
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity .3s ease, transform .4s cubic-bezier(.16,1,.3,1);
}
.mobile-nav-panel.is-open .mobile-menu-links .nav-item{ opacity:1; transform:translateY(0); }
.mobile-nav-panel.is-open .mobile-menu-links .nav-item:nth-child(1){ transition-delay:.13s; }
.mobile-nav-panel.is-open .mobile-menu-links .nav-item:nth-child(2){ transition-delay:.21s; }
.mobile-nav-panel.is-open .mobile-menu-links .nav-item:nth-child(3){ transition-delay:.29s; }
.mobile-nav-panel.is-open .mobile-menu-links .nav-item:nth-child(4){ transition-delay:.37s; }
.mobile-nav-panel:not(.is-open) .mobile-menu-links .nav-item:nth-child(4){ transition-delay:.03s; }
.mobile-nav-panel:not(.is-open) .mobile-menu-links .nav-item:nth-child(3){ transition-delay:.09s; }
.mobile-nav-panel:not(.is-open) .mobile-menu-links .nav-item:nth-child(2){ transition-delay:.15s; }
.mobile-nav-panel:not(.is-open) .mobile-menu-links .nav-item:nth-child(1){ transition-delay:.21s; }
.mobile-menu-links .nav-link{
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.85rem 1rem;
  color: var(--paper-dim);
  font-family: var(--font-display);
  font-size: 0.9rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 1px solid transparent;
  border-radius: 10px;
}
.mobile-menu-links .nav-link .bi{
  width: 1.25rem;
  color: var(--paper-dim);
  font-size: 1.05rem;
}
.mobile-menu-links .nav-link:hover,
.mobile-menu-links .nav-link.active{
  color: var(--buzzer);
  background: rgba(255,201,60,0.08);
  border-color: rgba(255,201,60,0.28);
}
.mobile-menu-links .nav-link:hover .bi,
.mobile-menu-links .nav-link.active .bi{ color: var(--buzzer); }
.mobile-menu-account{
  display: grid;
  gap: 0.8rem;
  margin-top: auto;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .32s ease, transform .42s cubic-bezier(.16,1,.3,1);
}
.mobile-nav-panel.is-open .mobile-menu-account{ opacity:1; transform:translateY(0); transition-delay:.38s; }
.mobile-menu-account .btn{ padding: 0.7rem 1rem; }
body.mobile-menu-open{ overflow: hidden; }

@media (max-width: 991.98px){
  .site-header .navbar{ min-height: 64px; padding-top: .55rem; padding-bottom: .55rem; }
}
@media (max-width: 575.98px){
  .site-header .brand{ font-size: 1.2rem; }
  .site-header .brand .bi{ font-size: 1.3rem; }
  .mobile-nav-inner{ width: calc(100% - 1.25rem); }
}
@media (prefers-reduced-motion: reduce){
  .quiz-menu-toggle,
  .quiz-menu-toggle .bi,
  .mobile-nav-panel,
  .mobile-menu-links .nav-item,
  .mobile-menu-account{ transition: none !important; }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  padding-top: 4.5rem;
  padding-bottom: 3rem;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(600px 300px at 85% -10%, rgba(139,92,246,0.18), transparent 70%),
    radial-gradient(500px 260px at 10% 110%, rgba(47,217,137,0.10), transparent 70%);
}
.hero-title{
  font-size: clamp(2.1rem, 5vw, 3.4rem);
  line-height: 1.08;
  margin: 0.75rem 0 1rem;
}
.hero-title .hl{ color: var(--buzzer); }
.hero-lede{ color: var(--paper-dim); max-width: 520px; font-size: 1.05rem; }
.hero-cta{ display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.75rem; }
.hero-note{ color: var(--paper-dim); font-size: 0.85rem; margin-top: 0.9rem; }

/* Scoreboard result card (hero visual) */
.score-card{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard);
  padding: 1.5rem;
  max-width: 380px;
  margin-left: auto;
}
.score-card .sc-head{
  display:flex; justify-content: space-between; align-items:center;
  font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.12em;
  color: var(--paper-dim); text-transform: uppercase;
  border-bottom: 1px dashed var(--line);
  padding-bottom: 0.85rem; margin-bottom: 1rem;
}
.score-card .sc-live{ color: var(--wrong); display:flex; align-items:center; gap:0.35rem; }
.score-card .sc-live::before{
  content:""; width:7px; height:7px; border-radius:50%; background: var(--wrong);
}
.score-card .sc-score{
  font-family: var(--font-mono);
  font-size: 2.6rem;
  color: var(--correct);
  line-height: 1;
}
.score-card .sc-pts{
  font-family: var(--font-mono);
  color: var(--buzzer);
  font-size: 1.1rem;
}
.score-card .sc-row{
  display:flex; justify-content: space-between; align-items:center;
  padding: 0.4rem 0;
}
.score-card .sc-rank-jump{
  background: rgba(47,217,137,0.12);
  color: var(--correct);
  border-radius: 8px;
  padding: 0.6rem 0.85rem;
  font-family: var(--font-mono);
  font-size: 0.85rem;
  margin-top: 0.75rem;
  display:flex; align-items:center; gap:0.5rem;
}

/* ==========================================================================
   CTA banner (section 3)
   ========================================================================== */
.cta-banner{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  padding: 2rem 2.25rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  box-shadow: var(--shadow-hard);
}
.cta-banner h3{ margin-bottom: 0.35rem; font-size: 1.4rem; }
.cta-banner p{ color: var(--paper-dim); margin: 0; }

/* ==========================================================================
   Live quiz preview
   ========================================================================== */
.quiz-preview-card{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard);
  overflow: hidden;
}
.qp-head{
  display:flex; align-items:center; justify-content:space-between;
  padding: 1rem 1.4rem;
  border-bottom: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--paper-dim);
}
.qp-head .qp-worth{ color: var(--buzzer); }
.qp-body{ padding: 1.6rem 1.4rem 1.8rem; }
.qp-question{
  font-family: var(--font-display);
  font-size: 1.35rem;
  margin-bottom: 1.4rem;
  text-transform: none;
}
.qp-options{ display:grid; gap: 0.75rem; }
.qp-option{
  display:flex; align-items:center; gap: 0.9rem;
  background: var(--ink);
  border: 2px solid var(--line);
  border-radius: 10px;
  padding: 0.8rem 1rem;
  font-family: var(--font-body);
  color: var(--paper);
  cursor: default;
}
.qp-option .qp-letter{
  font-family: var(--font-mono);
  width: 32px; height: 32px;
  border-radius: 8px;
  border: 2px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  flex-shrink: 0;
  font-size: 0.9rem;
}
.qp-option.qp-correct{
  border-color: var(--correct);
  background: rgba(47,217,137,0.08);
}
.qp-option.qp-correct .qp-letter{
  border-color: var(--correct);
  background: var(--correct);
  color: #06231a;
}
.qp-option.qp-correct .bi{ color: var(--correct); margin-left: auto; }

/* ==========================================================================
   Stats ticker
   ========================================================================== */
.stats-strip{
  background: var(--ink);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.stat-tile{
  text-align:center;
  padding: 1.6rem 1rem;
  border-left: 1px solid var(--line);
}
.stat-tile:first-child{ border-left: none; }
@media (max-width: 767.98px){
  .stat-tile{ border-left: none; border-top: 1px solid var(--line); }
  .stat-tile:first-child{ border-top: none; }
}
.stat-num{
  font-family: var(--font-mono);
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  color: var(--buzzer);
  display:block;
}
.stat-label{
  color: var(--paper-dim);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* ==========================================================================
   How it works — rounds
   ========================================================================== */
.round-card{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  padding: 1.75rem;
  height: 100%;
  box-shadow: var(--shadow-hard-sm);
}
.round-tag{
  font-family: var(--font-mono);
  color: var(--volt);
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.round-card h3{ font-size: 1.2rem; margin: 0.5rem 0 0.6rem; }
.round-card p{ color: var(--paper-dim); margin: 0; font-size: 0.95rem; }
.round-card .bi{ font-size: 1.6rem; color: var(--buzzer); }

/* ==========================================================================
   Leaderboard — signature section
   ========================================================================== */
.leaderboard-toggle .nav-pills{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: 999px;
  padding: 0.3rem;
  display:inline-flex;
}
.leaderboard-toggle .nav-link{
  font-family: var(--font-mono);
  text-transform: uppercase;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  color: var(--paper-dim);
  border-radius: 999px;
  padding: 0.55rem 1.3rem;
}
.leaderboard-toggle .nav-link.active{
  background: var(--buzzer);
  color: var(--buzzer-ink);
}

.podium{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap: 1.25rem;
  margin-bottom: 2.25rem;
}
.podium-slot{
  flex: 1 1 0;
  max-width: 250px;
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius) var(--radius) 8px 8px;
  text-align:center;
  padding: 1.5rem 1rem 1.25rem;
  position: relative;
  box-shadow: var(--shadow-hard);
}
.podium-slot.rank-1{ order:2; padding-top: 2rem; transform: translateY(-14px); border-color: var(--gold); }
.podium-slot.rank-2{ order:1; }
.podium-slot.rank-3{ order:3; }

.podium-shield{
  width: 54px; height: 60px;
  margin: 0 auto 0.75rem;
  clip-path: polygon(50% 0%, 100% 20%, 100% 70%, 50% 100%, 0% 70%, 0% 20%);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--ink);
}
.rank-1 .podium-shield{ background: var(--gold); width:64px; height:70px; font-size:1.35rem; }
.rank-2 .podium-shield{ background: var(--silver); }
.rank-3 .podium-shield{ background: var(--bronze); }

.podium-avatar{
  width: 56px; height:56px; border-radius:50%;
  background: var(--ink-3);
  border: 2px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  margin: 0 auto 0.75rem;
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--paper);
}
.podium-name{ font-family: var(--font-display); font-size: 1.05rem; margin-bottom: 0.1rem; }
.podium-username{ color: var(--paper-dim); font-size: 0.82rem; font-family: var(--font-mono); }
.podium-location{
  color: var(--paper-dim); font-size: 0.78rem; margin-top: 0.4rem;
  display:flex; align-items:center; justify-content:center; gap:0.3rem;
}
.podium-points{
  font-family: var(--font-mono);
  color: var(--correct);
  font-size: 1.4rem;
  margin-top: 0.75rem;
}
.podium-level{ margin-top: 0.6rem; }

.rank-list{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-hard-sm);
}
.rank-row{
  display:flex;
  align-items:center;
  gap: 1rem;
  padding: 0.9rem 1.25rem;
  border-top: 1px solid var(--line);
}
.rank-row:first-child{ border-top:none; }
.rank-row .rr-rank{
  font-family: var(--font-mono);
  color: var(--paper-dim);
  width: 2rem;
  flex-shrink: 0;
}
.rank-row .rr-avatar{
  width: 38px; height:38px; border-radius:50%;
  background: var(--ink-3);
  border: 2px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display);
  font-size: 0.85rem;
  flex-shrink:0;
}
.rank-row .rr-name{ font-family: var(--font-display); font-size: 0.95rem; }
.rank-row .rr-username{ color: var(--paper-dim); font-size: 0.78rem; font-family: var(--font-mono); }
.rank-row .rr-location{ color: var(--paper-dim); font-size: 0.8rem; flex: 1; display:flex; align-items:center; gap:0.3rem; }
.rank-row .rr-points{ font-family: var(--font-mono); color: var(--correct); font-size: 1.05rem; flex-shrink:0; }

.level-badge{
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--volt);
  color: var(--volt);
  display: inline-block;
}

@media (max-width: 767.98px){
  .podium{ flex-direction: column; align-items: stretch; gap: 0.9rem; }
  .podium-slot{ max-width: none; order: initial !important; transform:none !important; }
  .podium-slot.rank-1{ padding-top: 1.5rem; }
  .rank-row{ flex-wrap: wrap; }
  .rank-row .rr-location{ order: 4; flex-basis: 100%; margin-top:0.25rem; }
}

/* ==========================================================================
   Monthly competition highlight
   ========================================================================== */
.monthly-banner{
  background: linear-gradient(135deg, rgba(139,92,246,0.16), rgba(255,201,60,0.06));
  border: 2px solid var(--volt);
  border-radius: var(--radius);
  padding: 2.25rem;
  box-shadow: var(--shadow-hard);
}
.monthly-banner .eyebrow{ color: var(--volt); }
.monthly-banner .eyebrow::before{ background: var(--volt); }
.monthly-dates{
  font-family: var(--font-mono);
  color: var(--paper-dim);
  font-size: 0.9rem;
}
.monthly-reset{
  font-family: var(--font-mono);
  background: var(--ink);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.9rem 1.1rem;
  font-size: 0.85rem;
  color: var(--paper-dim);
}
.monthly-reset strong{ color: var(--buzzer); }

/* ==========================================================================
   Level progression
   ========================================================================== */
.level-track{
  display:flex;
  align-items: flex-start;
  gap: 0;
  overflow-x: auto;
  padding-bottom: 0.5rem;
}
.level-node{
  flex: 1 1 0;
  min-width: 150px;
  text-align:center;
  position: relative;
  padding: 0 0.75rem;
}
.level-node::before{
  content:"";
  position:absolute;
  top: 27px;
  left: -50%;
  width: 100%;
  height: 2px;
  background: var(--line);
  z-index: 0;
}
.level-node:first-child::before{ display:none; }
.level-node .ln-dot{
  width: 54px; height:54px;
  border-radius: 50%;
  background: var(--ink-2);
  border: 2px solid var(--volt);
  display:flex; align-items:center; justify-content:center;
  margin: 0 auto 0.85rem;
  position: relative;
  z-index: 1;
  font-family: var(--font-mono);
  color: var(--volt);
}
.level-node .ln-name{ font-family: var(--font-display); font-size: 1rem; margin-bottom: 0.2rem; }
.level-node .ln-points{ font-family: var(--font-mono); color: var(--paper-dim); font-size: 0.82rem; }

/* ==========================================================================
   Benefits
   ========================================================================== */
.benefit-card{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  padding: 2rem;
  height: 100%;
  box-shadow: var(--shadow-hard-sm);
}
.benefit-card h3{ font-size: 1.25rem; display:flex; align-items:center; gap:0.6rem; }
.benefit-card h3 .bi{ color: var(--buzzer); }
.benefit-card ul{ list-style:none; padding:0; margin: 1.1rem 0 1.4rem; }
.benefit-card li{
  display:flex; gap:0.6rem; align-items:flex-start;
  padding: 0.45rem 0;
  color: var(--paper-dim);
  font-size: 0.95rem;
}
.benefit-card li .bi{ color: var(--correct); margin-top: 0.2rem; flex-shrink:0; }
.benefit-card.is-registered{ border-color: var(--volt); }
.benefit-card.is-registered h3 .bi{ color: var(--volt); }

/* ==========================================================================
   Final CTA
   ========================================================================== */
.final-cta{
  background: var(--ink-2);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align:center;
}
.final-cta h2{ font-size: clamp(1.8rem, 4vw, 2.8rem); }
.final-cta p{ color: var(--paper-dim); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{
  background: var(--ink);
  border-top: 1px solid var(--line);
  padding: 3rem 0 1.5rem;
  color: var(--paper-dim);
  font-size: 0.9rem;
}
.site-footer h5{
  font-family: var(--font-display);
  color: var(--paper);
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 1rem;
}
.site-footer ul{ list-style:none; padding:0; margin:0; }
.site-footer li{ margin-bottom: 0.55rem; }
.site-footer a:hover{ color: var(--buzzer); }
.footer-social a{
  width: 38px; height:38px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display:inline-flex; align-items:center; justify-content:center;
  margin-right: 0.5rem;
}
.footer-social a:hover{ border-color: var(--buzzer); color: var(--buzzer); }
.footer-bottom{
  border-top: 1px solid var(--line);
  margin-top: 2.25rem;
  padding-top: 1.25rem;
  font-size: 0.82rem;
}

/* ==========================================================================
   Interior page hero (Play, Leaderboard, Login, Register, Contact)
   ========================================================================== */
.page-hero{
  padding: 3.25rem 0 2.5rem;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(500px 240px at 90% 0%, rgba(139,92,246,0.14), transparent 70%);
}
.page-hero .section-title{ margin-bottom: 0.5rem; }
.breadcrumb-quiz{
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--paper-dim);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.75rem;
}
.breadcrumb-quiz a{ color: var(--paper-dim); }
.breadcrumb-quiz a:hover{ color: var(--buzzer); }
.breadcrumb-quiz .sep{ margin: 0 0.4rem; color: var(--line); }

/* ==========================================================================
   Form controls (shared: login, register, contact)
   ========================================================================== */
.form-label{
  font-family: var(--font-mono);
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--paper-dim);
  margin-bottom: 0.4rem;
}
.form-control, .form-select{
  background: var(--ink);
  border: 2px solid var(--line);
  color: var(--paper);
  border-radius: 10px;
  padding: 0.65rem 0.9rem;
}
.form-control:focus, .form-select:focus{
  background: var(--ink);
  color: var(--paper);
  border-color: var(--buzzer);
  box-shadow: 0 0 0 3px rgba(255,201,60,0.18);
}
.form-control::placeholder{ color: var(--paper-dim); opacity: 0.7; }
.form-select option{ background: var(--ink-2); color: var(--paper); }
.form-check-input{
  background-color: var(--ink);
  border: 2px solid var(--line);
}
.form-check-input:checked{
  background-color: var(--buzzer);
  border-color: var(--buzzer);
}
.form-check-input:focus{ box-shadow: 0 0 0 3px rgba(255,201,60,0.18); }
.form-check-label{ color: var(--paper-dim); font-size: 0.9rem; }
.input-group-text{
  background: var(--ink-2);
  border: 2px solid var(--line);
  color: var(--paper-dim);
}
.form-text{ color: var(--paper-dim); font-size: 0.82rem; }
.invalid-feedback{ color: var(--wrong); font-size: 0.82rem; font-family: var(--font-mono); }

/* ==========================================================================
   Auth cards (login / register)
   ========================================================================== */
.auth-shell{ padding: 4rem 0; }
.auth-card{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard);
  padding: 2.25rem;
  max-width: 460px;
  margin: 0 auto;
}
.auth-card h1{ font-size: 1.5rem; margin-bottom: 0.4rem; }
.auth-card .auth-lede{ color: var(--paper-dim); font-size: 0.92rem; margin-bottom: 1.75rem; }
.auth-divider{
  display:flex; align-items:center; gap: 0.85rem;
  color: var(--paper-dim); font-family: var(--font-mono); font-size: 0.75rem;
  text-transform: uppercase; letter-spacing: 0.08em;
  margin: 1.5rem 0;
}
.auth-divider::before, .auth-divider::after{
  content:""; flex:1; height:1px; background: var(--line);
}
.auth-foot{
  text-align:center;
  margin-top: 1.5rem;
  color: var(--paper-dim);
  font-size: 0.9rem;
}
.auth-foot a{ color: var(--buzzer); }
.auth-foot a:hover{ text-decoration: underline; }
.auth-side-panel{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  padding: 2.25rem;
  height: 100%;
  box-shadow: var(--shadow-hard-sm);
}
.auth-side-panel ul{ list-style:none; padding:0; margin: 1.25rem 0 0; }
.auth-side-panel li{
  display:flex; gap:0.6rem; align-items:flex-start;
  padding: 0.5rem 0;
  color: var(--paper-dim);
  font-size: 0.92rem;
}
.auth-side-panel li .bi{ color: var(--correct); margin-top: 0.2rem; flex-shrink:0; }

/* ==========================================================================
   Quiz play page
   ========================================================================== */
.quiz-shell{ max-width: 640px; margin: 0 auto; }
.quiz-progress{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 0.6rem;
  margin-bottom: 1.75rem;
}
.quiz-progress .qp-dot{
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 2px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--paper-dim);
  background: var(--ink-2);
  flex-shrink: 0;
}
.quiz-progress .qp-dot.is-current{ border-color: var(--buzzer); color: var(--buzzer); }
.quiz-progress .qp-dot.is-done{ border-color: var(--correct); background: var(--correct); color: #06231a; }
.quiz-progress .qp-line{ width: 24px; height: 2px; background: var(--line); flex-shrink: 0; }
@media (max-width: 575.98px){
  .quiz-progress .qp-line{ width: 12px; }
  .quiz-progress .qp-dot{ width: 28px; height: 28px; font-size: 0.72rem; }
}

.qp-option-btn{
  display:flex; align-items:center; gap: 0.9rem;
  width: 100%;
  text-align: left;
  background: var(--ink);
  border: 2px solid var(--line);
  border-radius: 10px;
  padding: 0.85rem 1rem;
  color: var(--paper);
  font-family: var(--font-body);
  font-size: 1rem;
  cursor: pointer;
  transition: border-color 0.12s ease, background 0.12s ease;
}
.qp-option-btn:hover{ border-color: var(--buzzer); }
.qp-option-btn .qp-letter{
  font-family: var(--font-mono);
  width: 32px; height: 32px;
  border-radius: 8px;
  border: 2px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  flex-shrink: 0;
  font-size: 0.9rem;
}
.qp-option-btn.is-selected{ border-color: var(--buzzer); background: rgba(255,201,60,0.08); }
.qp-option-btn.is-selected .qp-letter{ border-color: var(--buzzer); background: var(--buzzer); color: var(--buzzer-ink); }

.quiz-actions{ display:flex; justify-content: space-between; align-items:center; margin-top: 1.75rem; gap: 1rem; }
.quiz-actions .btn:disabled{ opacity: 0.45; cursor: not-allowed; box-shadow:none; transform:none; }

.quiz-result-card{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard);
  padding: 2.25rem;
  text-align: center;
}
.quiz-result-card .qr-score{
  font-family: var(--font-mono);
  font-size: 3.2rem;
  color: var(--correct);
  line-height: 1;
  margin: 0.5rem 0;
}
.quiz-result-card .qr-pts{
  font-family: var(--font-mono);
  color: var(--buzzer);
  font-size: 1.3rem;
}
.qr-breakdown{
  text-align: left;
  margin: 1.75rem 0;
  border-top: 1px solid var(--line);
  padding-top: 1.25rem;
}
.qr-row{
  display:flex; align-items:center; gap: 0.75rem;
  padding: 0.5rem 0;
  font-size: 0.92rem;
  color: var(--paper-dim);
}
.qr-row .bi-check-circle-fill{ color: var(--correct); }
.qr-row .bi-x-circle-fill{ color: var(--wrong); }
.qr-row .qr-q-pts{ margin-left:auto; font-family: var(--font-mono); color: var(--paper); }

[hidden]{ display: none !important; }

/* Sticky submit bar for the all-questions-on-one-page quiz layout */
.quiz-submit-bar{
  position: sticky;
  bottom: 0;
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard);
  padding: 1rem 1.5rem;
  margin-top: 1.75rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.quiz-submit-bar .qsb-status{
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--paper-dim);
}
.quiz-submit-bar .qsb-status strong{ color: var(--buzzer); }
@media (max-width: 575.98px){
  .quiz-submit-bar{ flex-direction: column; align-items: stretch; text-align: center; }
}

.question-block{ margin-bottom: 1.5rem; }
.question-block .qp-head span:first-child{ color: var(--volt); }

/* Empty state (e.g. result page visited directly) */
.empty-state{
  text-align: center;
  padding: 3rem 1.5rem;
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard-sm);
}
.empty-state .bi{ font-size: 2.4rem; color: var(--buzzer); margin-bottom: 1rem; display:inline-block; }

/* ==========================================================================
   Full leaderboard page — toolbar & pagination
   ========================================================================== */
.board-toolbar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.75rem;
}
.board-search{ max-width: 320px; }
.board-search .input-group-text{ border-right: none; }
.board-search .form-control{ border-left: none; padding-left: 0; }
.board-filter{ max-width: 200px; }

.rank-row .rr-me{
  border-left: 3px solid var(--buzzer);
  background: rgba(255,201,60,0.05);
}

.pagination .page-link{
  background: var(--ink-2);
  border: 2px solid var(--line);
  color: var(--paper-dim);
  font-family: var(--font-mono);
  margin: 0 0.2rem;
  border-radius: 8px;
}
.pagination .page-link:hover{ color: var(--buzzer); border-color: var(--buzzer); }
.pagination .page-item.active .page-link{
  background: var(--buzzer);
  border-color: var(--buzzer);
  color: var(--buzzer-ink);
}
.pagination .page-item.disabled .page-link{ opacity: 0.4; }

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact-info-card{
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  padding: 2.25rem;
  height: 100%;
  box-shadow: var(--shadow-hard-sm);
}
.contact-info-row{
  display:flex; gap: 0.9rem; align-items:flex-start;
  padding: 0.9rem 0;
  border-top: 1px solid var(--line);
}
.contact-info-row:first-of-type{ border-top:none; }
.contact-info-row .bi{ color: var(--buzzer); font-size: 1.2rem; margin-top: 0.15rem; }
.contact-info-row h4{ font-size: 0.95rem; margin-bottom: 0.15rem; text-transform:none; font-family: var(--font-display); }
.contact-info-row p{ color: var(--paper-dim); font-size: 0.88rem; margin:0; }
.contact-support-console{
  position: relative;
  margin-top: 1.75rem;
  padding: 1rem;
  overflow: hidden;
  background:
    linear-gradient(rgba(58,51,80,.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(58,51,80,.16) 1px, transparent 1px),
    var(--ink);
  background-size: 18px 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.contact-console-head{
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: .65rem;
  color: var(--paper-dim);
  border-bottom: 1px dashed var(--line);
  font-family: var(--font-mono);
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.contact-console-status{ display:inline-flex; align-items:center; gap:.4rem; color:var(--correct); }
.contact-console-status i{
  width: 7px;
  height: 7px;
  background: var(--correct);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(47,217,137,.1);
  animation: contact-status-pulse 1.8s ease-in-out infinite;
}
.contact-signal-visual{
  position: relative;
  width: 146px;
  height: 118px;
  margin: .85rem auto .45rem;
}
.signal-core,
.signal-node{
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.signal-core{
  inset: 28px 42px;
  color: var(--buzzer-ink);
  background: var(--buzzer);
  border: 5px solid #4b3910;
  box-shadow: 0 4px 0 #211806, 0 0 28px rgba(255,201,60,.15);
  font-size: 1.45rem;
}
.signal-node{
  width: 30px;
  height: 30px;
  color: var(--correct);
  background: var(--ink-2);
  border: 1px solid var(--line);
  font-size: .8rem;
}
.signal-node-one{ top:5px; right:3px; }
.signal-node-two{ bottom:3px; left:2px; color:var(--volt); }
.signal-orbit{
  position: absolute;
  border: 1px dashed rgba(184,179,199,.24);
  border-radius: 50%;
  transform: rotate(-15deg);
}
.signal-orbit-one{ inset:12px 18px; }
.signal-orbit-two{ inset:25px 4px; transform:rotate(18deg); }
.contact-console-title{
  margin: 0 0 .6rem;
  color: var(--paper);
  font-family: var(--font-display);
  font-size: .86rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.contact-console-step{
  position: relative;
  display: grid;
  grid-template-columns: 30px 1fr;
  align-items: start;
  gap: .55rem;
  padding: .42rem 0;
  border-top: 1px solid rgba(58,51,80,.65);
}
.contact-console-step span{
  color: var(--buzzer);
  font-family: var(--font-mono);
  font-size: .66rem;
}
.contact-console-step p{
  margin: 0;
  color: var(--paper-dim);
  font-size: .76rem;
  line-height: 1.45;
}
@keyframes contact-status-pulse{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.55; transform:scale(.8); }
}
.faq-link-card{
  display:flex; align-items:center; justify-content:space-between;
  background: var(--ink);
  border: 2px solid var(--line);
  border-radius: 10px;
  padding: 0.9rem 1.1rem;
  margin-top: 1.5rem;
  color: var(--paper);
}
.faq-link-card:hover{ border-color: var(--buzzer); }
.faq-link-card .bi{ color: var(--buzzer); }

/* ==========================================================================\n+   Authenticated profile and support pages\n+   ========================================================================== */
.profile-page,
.support-page{ min-height: 65vh; }
.profile-card,
.ticket-card{
  height: 100%;
  background: var(--ink-2);
  border: 2px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-hard-sm);
  color: var(--paper);
}
.profile-card .card-header,
.ticket-card .card-header{
  padding: 1rem 1.35rem;
  color: var(--paper);
  background: rgba(139,92,246,.08);
  border-bottom: 1px solid var(--line);
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.profile-card .card-body,
.ticket-card .card-body{ padding: 1.35rem; }
.profile-page .profile-avatar{
  width: 104px;
  height: 104px;
  object-fit: cover;
  border: 3px solid var(--buzzer);
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(255,201,60,.1);
}
.profile-page .profile-avatar-wrapper{ position:relative; display:inline-block; }
.profile-page .profile-avatar-btn{
  position:absolute;
  right:0;
  bottom:0;
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  color:var(--buzzer-ink);
  background:var(--buzzer);
  border:2px solid var(--ink-2);
  border-radius:50%;
  cursor:pointer;
}
.profile-page .profile-meta{
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--paper-dim);
}
.profile-overview-card .card-body{
  display:flex;
  flex-direction:column;
  gap:1.2rem;
}
.profile-identity{ padding:.35rem 0 1rem; border-bottom:1px solid var(--line); }
.profile-initials{
  width:94px;
  height:94px;
  display:grid;
  place-items:center;
  margin:0 auto .9rem;
  color:var(--buzzer-ink);
  background:linear-gradient(135deg, var(--buzzer), #ffdf82);
  border:4px solid var(--ink-2);
  border-radius:50%;
  box-shadow:0 0 0 3px var(--buzzer), 0 0 0 10px rgba(255,201,60,.08);
  font-family:var(--font-display);
  font-size:2rem;
  font-weight:700;
}
.profile-initials img,
.profile-photo-preview img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:50%;
}
.profile-photo-editor{
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  align-items:center;
  gap:1rem;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.profile-photo-preview{
  width:82px;
  height:82px;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:var(--buzzer-ink);
  background:var(--buzzer);
  border:3px solid var(--buzzer);
  border-radius:50%;
  font:700 1.35rem var(--font-display);
}
.profile-photo-editor .form-label{ margin-bottom:.45rem; }
.profile-photo-editor .form-control{ min-height:auto; }
.profile-identity h1{ margin:0; font-size:1.25rem; }
.profile-identity p{ margin:.15rem 0 0; color:var(--paper-dim); font-family:var(--font-mono); font-size:.78rem; }
.profile-player-stats{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:.65rem;
}
.profile-player-stats > div{
  min-height:78px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:.75rem;
  background:var(--ink);
  border:1px solid var(--line);
  border-radius:10px;
}
.profile-player-stats span{ color:var(--paper-dim); font-family:var(--font-mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; }
.profile-player-stats strong{ color:var(--buzzer); font-family:var(--font-display); font-size:1.15rem; overflow-wrap:anywhere; }
.profile-account-meta{
  display:grid;
  gap:.65rem;
  padding:1rem 0;
  border-top:1px dashed var(--line);
  border-bottom:1px dashed var(--line);
}
.profile-account-meta > div{ display:flex; align-items:flex-start; gap:.65rem; color:var(--paper-dim); font-size:.8rem; overflow-wrap:anywhere; }
.profile-account-meta i{ color:var(--correct); flex:0 0 1rem; }
.profile-quick-actions{ display:grid; gap:.85rem; margin-top:auto; }
.profile-quick-actions .btn{ padding:.65rem 1rem; }
.profile-board-link{ display:flex; justify-content:center; align-items:center; gap:.45rem; color:var(--paper-dim); font-family:var(--font-display); font-size:.8rem; text-transform:uppercase; }
.profile-board-link:hover{ color:var(--buzzer); }
.profile-details-card .card-body{ padding:clamp(1.35rem,3vw,2.25rem); }
.profile-details-card h2{ margin:.7rem 0 .35rem; font-size:clamp(1.45rem,2.5vw,2rem); }
.profile-form-lede{ max-width:620px; margin:0 0 2rem; color:var(--paper-dim); }
.profile-form .form-control{ min-height:50px; }
.profile-form textarea.form-control{ min-height:110px; resize:vertical; }
.profile-form .input-group .form-control{ border-left:0; }
.profile-form .input-group-text{ border-right:0; }
.profile-form-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  margin-top:2rem;
  padding-top:1.25rem;
  border-top:1px solid var(--line);
}
.profile-form-footer p{ margin:0; color:var(--paper-dim); font-size:.78rem; }
.profile-form-footer p i{ color:var(--correct); }
.profile-form-footer .btn{ flex:0 0 auto; padding:.7rem 1.35rem; }
.category-preference-fieldset{
  margin:0;
  padding:1.15rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.category-preference-fieldset legend{
  float:none;
  width:auto;
  margin:0 0 .35rem;
  color:var(--paper);
  font:600 .88rem var(--font-display);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.category-preference-fieldset > p{ margin:0 0 .9rem; color:var(--paper-dim); font-size:.82rem; }
.category-choice-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.category-choice{ position:relative; cursor:pointer; }
.category-choice input{ position:absolute; opacity:0; pointer-events:none; }
.category-choice span{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:44px;
  padding:.65rem .75rem;
  color:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--ink);
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.category-choice span i{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  color:transparent;
  border:1px solid var(--paper-dim);
  border-radius:5px;
}
.category-choice input:checked + span{ color:var(--paper); border-color:var(--buzzer); background:rgba(255,195,44,.08); }
.category-choice input:checked + span i{ color:var(--buzzer-ink); border-color:var(--buzzer); background:var(--buzzer); }
.category-choice input:focus-visible + span{ outline:2px solid var(--buzzer); outline-offset:2px; }
.category-choice input:disabled + span{ cursor:not-allowed; opacity:.5; }
.category-choice-empty{ color:var(--paper-dim); font-size:.82rem; }
.quiz-category-notice{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  margin:0 0 1.25rem;
  padding:.9rem 1rem;
  border:1px solid rgba(255,195,44,.35);
  border-radius:10px;
  background:rgba(255,195,44,.07);
}
.quiz-category-notice > i{ color:var(--buzzer); font-size:1.15rem; }
.quiz-category-notice strong{ display:block; color:var(--paper); font:600 .82rem var(--font-display); }
.quiz-category-notice p{ margin:.2rem 0 0; color:var(--paper-dim); font-size:.78rem; }
.quiz-category-notice a{ margin-left:.4rem; color:var(--buzzer); white-space:nowrap; }
.quiz-confirm-modal .modal-content{
  color:var(--paper);
  background:var(--ink-2);
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:var(--shadow-hard);
}
.quiz-confirm-modal .modal-header{
  display:flex;
  align-items:center;
  gap:.8rem;
  border-bottom:1px solid var(--line);
}
.quiz-confirm-modal .modal-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  color:var(--buzzer-ink);
  background:var(--buzzer);
  border-radius:50%;
}
.quiz-confirm-modal .modal-title{
  margin:0;
  font:600 1.05rem var(--font-display);
}
.quiz-confirm-modal .btn-close{
  margin-left:auto;
  filter:invert(1) grayscale(1);
  opacity:.7;
}
.quiz-confirm-modal .modal-body p{ margin:0; color:var(--paper-dim); }
.quiz-confirm-modal .modal-footer{ border-top:1px solid var(--line); }
.quiz-confirm-modal .btn-modal-cancel{
  color:var(--paper-dim);
  border:1px solid var(--line);
  background:transparent;
}
.quiz-confirm-modal .btn-modal-cancel:hover{ color:var(--paper); border-color:var(--paper-dim); }
.podium-avatar img,
.rr-avatar img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:inherit;
}
.profile-page h5,
.profile-page h6{ color:var(--paper); font-family:var(--font-display); text-transform:uppercase; }
.profile-page .text-muted,
.support-page .text-muted,
.support-page .text-secondary{ color:var(--paper-dim)!important; }
.profile-page .text-danger{ color:var(--wrong)!important; }
.profile-page .btn-primary,
.support-page .btn-primary{
  background:var(--buzzer);
  border-color:var(--buzzer);
  color:var(--buzzer-ink);
  font-family:var(--font-display);
  text-transform:uppercase;
  box-shadow:var(--shadow-hard-sm);
}
.profile-page .btn-primary:hover,
.support-page .btn-primary:hover{ background:var(--buzzer-hover); border-color:var(--buzzer-hover); color:var(--buzzer-ink); }
.support-page .ticket-hero{
  margin-bottom: 1.5rem;
  padding: 1.35rem 1.5rem;
  background: linear-gradient(110deg, rgba(139,92,246,.16), rgba(255,201,60,.06));
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.support-page .ticket-hero h1{ margin:.25rem 0; font-size:clamp(1.55rem,3vw,2.25rem); }
.support-page .ticket-hero p{ margin:0; color:var(--paper-dim); }
.support-page .ticket-eyebrow{
  color:var(--buzzer);
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.support-page .btn-light{
  color:var(--paper)!important;
  background:transparent;
  border:2px solid var(--line);
  font-family:var(--font-display);
  text-transform:uppercase;
}
.support-page .btn-light:hover{ border-color:var(--buzzer); background:rgba(255,201,60,.08); }
.support-page .table{ --bs-table-bg:transparent; --bs-table-color:var(--paper-dim); margin:0; }
.support-page .table thead{ color:var(--paper-dim); background:rgba(139,92,246,.08)!important; }
.support-page .table td,
.support-page .table th{ border-color:var(--line)!important; }
.support-page .text-dark{ color:var(--paper)!important; }
.support-page .badge{ font-family:var(--font-mono); font-size:.65rem; letter-spacing:.04em; }
.support-page .ticket-meta{ color:var(--paper-dim); }
.support-page .ticket-meta-line{ color:var(--paper-dim); font-family:var(--font-mono); font-size:.68rem; margin-bottom:.35rem; }
.support-page .ticket-message{ display:flex; gap:.75rem; margin-bottom:1rem; }
.support-page .ticket-message.you{ flex-direction:row-reverse; text-align:right; }
.support-page .ticket-avatar{ width:34px; height:34px; display:grid; place-items:center; flex:0 0 34px; color:var(--buzzer-ink); background:var(--buzzer); border-radius:50%; font-family:var(--font-display); }
.support-page .ticket-bubble{ max-width:min(78%,620px); padding:.8rem 1rem; color:var(--paper); background:var(--ink); border:1px solid var(--line); border-radius:10px; }
.support-page .pagination .page-link{ color:var(--paper-dim); background:var(--ink-2); border-color:var(--line); }
.support-page .pagination .active .page-link{ color:var(--buzzer-ink); background:var(--buzzer); border-color:var(--buzzer); }
@media (max-width: 575.98px){
  .profile-card .card-body,
  .ticket-card .card-body{ padding:1rem; }
  .support-page .ticket-hero{ padding:1rem; }
  .profile-form-footer{ align-items:stretch; flex-direction:column; }
  .profile-form-footer .btn{ width:100%; }
  .category-choice-grid{ grid-template-columns:1fr; }
  .profile-photo-editor{ grid-template-columns:1fr; text-align:center; }
  .profile-photo-preview{ margin:0 auto; }
}
