
:root {
  color-scheme: light dark;
  --color-primary: light-dark(#00A890, #ca7842);
  --color-secondary: light-dark(#3C4066, #a6aace);
  --color-highlight: light-dark(#f0a51c, #f0a51c);
  --color-lower: light-dark(#e7e4de, #1d1f1f);
  --color-panel: light-dark(#dcd7ce, #232525);
  --color-body: light-dark(#1e202b, #fff);
  --color-background: light-dark(#fff, #1e202b);
  --color-success: light-dark(#4caf50, #66bb6a);
  --color-error: light-dark(#f44336, #ef5350);
  --color-success-bg: light-dark(#4caf5020, #4caf5030);
  --color-error-bg: light-dark(#f4433620, #f4433630);

  --content-width: 120rem;
  --border-radius: 50em;
  --font-stack: 'Jost', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
  --font-weight-regular: 200;
  --font-weight-bold: 600;
}

*, *:after, *:before {
  box-sizing: inherit;
}
html {
  box-sizing: border-box;
  /* 62.5% results in: 1.6rem = 16px */
  font-size: 62.5%;
}
body {
  margin: 0;
  background-color: var(--color-background);
  color: var(--color-body);
  font-family: var(--font-stack);
  font-size: 2em;
  line-height: 1.4;
  overflow-x: hidden;
}
main {
  font-size: 2.4rem;
}
h1, h2, h3 {
  margin: 0;
  line-height: 1;
}
a {
  color: var(--color-primary);
  text-decoration: none;
  font-weight: var(--font-weight-bold);
  line-height: 1
}
img {
  max-width: 100%;
}

.wrapper {
  min-height: 100vh;
  width: 100%;
  display: flex;
  flex-direction: column;
}
footer {
  color-scheme: dark;
  background-color: var(--color-background);
  color: var(--color-body);
  margin-top: auto;
  font-size: 1.4rem;
  padding: 2rem 0;
}
.content {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: .6rem 1rem;
  width: 100%;
}
header {
  background: var(--color-background);
  border-bottom: .2rem solid var(--color-primary);
}
.glasses {
  width: 12rem;
}
.logo {
  width: 56rem;
}

section {
  padding: 4rem 0;
}
.hero {
  min-height: 60vh;
  color: var(--color-secondary);
}
.hero .content {
  justify-content: space-around;
}
.call-to-action {
  padding-top: 4rem;
}


.card {
  text-align: center;
  background: var(--color-lower);
  border-radius: 2rem;
  padding: 3rem;
  transition: transform 0.2s ease;
}
.card-icon {
  font-size: 6rem;
  margin-bottom: 2rem;
}
.card h3 {
  font-size: 2.4rem;
  margin-bottom: 1rem;
}
.card p {
  font-size: 1.8rem;
  opacity: 0.8;
}


/* Header Elements */
.header-streak {
  font-size: 2rem;
  font-weight: var(--font-weight-bold);
  margin-left: 2rem;
  display: flex;
  align-items: center;
}
.header-xp {
  font-size: 1.8rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  background: transparent;
  border: none;
  padding: 1rem 2rem;
  border-radius: var(--border-radius);
  cursor: pointer;
}
.header-xp:hover {
  background: var(--color-panel);
}
.header-dollars {
  font-size: 1.8rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-highlight);
  background: transparent;
  border: none;
  padding: 1rem 2rem;
  border-radius: var(--border-radius);
  cursor: pointer;
}
.header-dollars:hover {
  background: var(--color-panel);
}
.header-profile {
  font-size: 1.8rem;
  font-weight: var(--font-weight-bold);
  margin-left: 2rem;
  padding: 0.8rem 1.6rem;
  border-radius: var(--border-radius);
  text-decoration: none;
  color: var(--color-body);
  transition: background 0.2s ease;
}
.header-profile:hover {
  background: var(--color-panel);
}
.header-link {
  font-size: 1.8rem;
  font-weight: var(--font-weight-bold);
  padding: 0.8rem 1.6rem;
  border-radius: var(--border-radius);
  text-decoration: none;
  color: var(--color-body);
  transition: background 0.2s ease;
}
.header-link:hover {
  background: var(--color-panel);
}

.flex {
  display: flex;
  align-items: center;
}
.flex-column { flex-direction: column; }
.flex-gap { gap: 2rem; }
.flex-wrap { flex-wrap: wrap; }
.pull-right { margin-left: auto; }
.center, .justify-center { justify-content: center; }

/* Footer */
.footer-links {
  display: flex;
  gap: 2rem;
  margin-left: 2rem;
}
.footer-links a {
  font-size: 1.6rem;
  text-decoration: none;
  color: var(--color-body);
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.footer-links a:hover {
  opacity: 1;
}

/* Policy Pages */
article {
  max-width: 90rem;
  margin: 0 auto;
  padding: 2rem;
}
article h1 {
  font-size: 4rem;
  margin: 3rem 0;
}
article h2 {
  font-size: 2.8rem;
  margin: 3rem 0 2rem;
  color: var(--color-primary);
}
article p {
  font-size: 1.8rem;
  line-height: 1.75;
  margin: 2rem 0;
}



#loading {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(88, 88, 88, .8);
  z-index: 1000;
}
#loading img {
  width: 60%;
}
#msg {
  display: none;
  position: fixed;
  left: 2rem;
  bottom: 2rem;
  padding: 1rem 2rem;
  border-radius: var(--border-radius);
  background-color: var(--color-body);
  color: var(--color-background);
  z-index: 1001;
  max-width: 80%;
  text-wrap: wrap;
  cursor: pointer;
}

.hidden { display: none; }
.bg { background-color: var(--color-background); }
.bg-primary { background-color: var(--color-primary); }
.bg-secondary { background-color: var(--color-secondary); }
.bg-panel { background-color: var(--color-panel); }
.bg-lower { background-color: var(--color-lower); }
.bg-pattern {
  background-image: url('/assets/img/bg.svg');
  background-size: 32rem;
  background-position: fixed;
}
.bg-pattern-light {
  background-image: url('/assets/img/bg-light.svg');
  background-size: 32rem;
  background-position: fixed;
}




.grid {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 3rem 0;
  display: grid;
  grid-gap: 3rem;
}
.grid-column-span-2 {
  grid-column-end: span 1;
}
.grid-column-span-3 {
  grid-column-end: span 1;
}
@media (min-width: 40em) {
  .grid {
    grid-template-columns: 
      [content-start left-start] 1fr
      [left-end right-start] 1fr
      [right-end content-end];
  }
  .grid-column-span-2 {
    grid-column-end: span 2;
  }
  .grid-column-span-3 {
    grid-column-end: span 2;
  }
}
@media (min-width: 60em) {
  .grid-3 {
    grid-template-columns: 
      [content-start left-start] 1fr
      [left-end center-start] 1fr
      [center-end right-start] 1fr
      [right-end content-end];
  }
  .grid-column-span-3 {
    grid-column-end: span 3;
  }
}


.tile {
  display: flex;
  flex-direction: column;
  color: var(--color-body);
  background: var(--color-background);
  font-weight: normal;

  --width: .6rem;
  --half: .3rem;
  transition: box-shadow 150ms ease-out;
}
.tile:focus, .tile:hover, .tile:active {
    outline: 0;
    box-shadow: 0 0 0 var(--half)  var(--color-background),
                0 0 0 var(--width) var(--color-primary);
    box-shadow: 0 0 0 var(--half)  var(--color-background),
                0 0 0 var(--width) var(--color-primary);
}
/*
a.tile::before {
  height: 0;
  background-color: transparent;
}*/

.tile > div.bg-primary {
  min-height: 3rem;
  background-position: center;
  background-size: cover;
}
.tile > div.info {
  padding: 1.6rem 1.6rem .6rem;
}

/* Unit Cards */
.unit-card .unit-number {
  font-size: 3rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-background);
  text-align: center;
  padding: 2rem;
}

/* Unit Header */
.unit-header {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin-bottom: 4rem;
  flex-wrap: wrap;
}
.unit-header h1 {
  flex: 1;
  text-align: center;
  font-size: 3.6rem;
}
.units-button {
  font-size: 1.8rem !important;
  padding: 1rem 2rem !important;
}

/* DESIGN 1: CSS Roadmap with Line */
.lesson-roadmap {
  position: relative;
  max-width: 80rem;
  margin: 0 auto;
  padding: 4rem 2rem;
}

/* Central vertical line */
.lesson-roadmap::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 0.4rem;
  background: linear-gradient(180deg, var(--color-primary), var(--color-secondary));
  transform: translateX(-50%);
  z-index: 0;
}

.lesson-step {
  position: relative;
  display: flex;
  margin-bottom: 4rem;
  z-index: 1;
}

.lesson-step.lesson-left {
  justify-content: flex-end;
  padding-right: 52%;
}

.lesson-step.lesson-right {
  justify-content: flex-start;
  padding-left: 52%;
}

.lesson-node {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background: var(--color-background);
  border: 0.3rem solid var(--color-primary);
  border-radius: 1.5rem;
  padding: 1.5rem 2rem;
  min-width: 28rem;
  transition: all 0.3s ease;
  position: relative;
  box-shadow: 0 0.4rem 0.8rem rgba(0, 0, 0, 0.1);
}

.lesson-node:hover {
  transform: scale(1.05);
  box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.15);
  border-color: var(--color-secondary);
}

.lesson-node::before {
  content: '';
  position: absolute;
  width: 1.5rem;
  height: 0.3rem;
  background: var(--color-primary);
  top: 50%;
  transform: translateY(-50%);
}

.lesson-left .lesson-node::before {
  right: -1.8rem;
}

.lesson-right .lesson-node::before {
  left: -1.8rem;
}

.lesson-milestone {
  border-width: 0.4rem;
  border-color: var(--color-highlight);
  background: linear-gradient(135deg, var(--color-background) 0%, var(--color-panel) 100%);
  min-width: 32rem;
  padding: 2rem 2.5rem;
}

.lesson-milestone:hover {
  border-color: var(--color-highlight);
  box-shadow: 0 0.8rem 1.6rem rgba(240, 165, 28, 0.3);
}

.lesson-icon {
  font-size: 4rem;
  flex-shrink: 0;
}

.lesson-info {
  flex: 1;
}

.lesson-number {
  font-size: 1.4rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  margin-bottom: 0.5rem;
}

.lesson-title {
  font-size: 2rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-body);
  line-height: 1.3;
}

.lesson-stars {
  font-size: 1.4rem;
  margin-top: 0.5rem;
}

.lesson-locked {
  opacity: 0.5;
  cursor: not-allowed;
  border-color: var(--color-panel);
}

.lesson-locked:hover {
  transform: none;
  box-shadow: 0 0.4rem 0.8rem rgba(0, 0, 0, 0.1);
  border-color: var(--color-panel);
}

.lesson-bonus {
  border-width: 0.5rem;
  border-color: var(--color-highlight);
  background: linear-gradient(135deg, var(--color-highlight) 0%, var(--color-primary) 100%);
  min-width: 32rem;
  padding: 2rem 2.5rem;
  box-shadow: 0 0.6rem 1.6rem rgba(240, 165, 28, 0.4);
}

.lesson-bonus:hover {
  transform: scale(1.08);
  box-shadow: 0 1rem 2rem rgba(240, 165, 28, 0.5);
  border-color: var(--color-highlight);
}

.lesson-bonus .lesson-number,
.lesson-bonus .lesson-title {
  color: var(--color-background);
}

.bonus-badge {
  display: inline-block;
  background: var(--color-background);
  color: var(--color-highlight);
  padding: 0.5rem 1.2rem;
  border-radius: 2rem;
  font-size: 1.4rem;
  font-weight: var(--font-weight-bold);
  margin-top: 0.8rem;
  border: 0.2rem solid var(--color-background);
}

/* Responsive Design */
@media (max-width: 60em) {
  .lesson-roadmap::before {
    left: 3rem;
  }
  
  .lesson-step.lesson-left,
  .lesson-step.lesson-right {
    justify-content: flex-start;
    padding-left: 6rem;
    padding-right: 2rem;
  }
  
  .lesson-left .lesson-node::before {
    left: -3.3rem;
    right: auto;
  }
  
  .lesson-node,
  .lesson-milestone,
  .lesson-bonus {
    min-width: auto;
    max-width: 100%;
  }
}

#q {
  margin: 4rem 0 3rem;
  background-color: var(--color-background);
  border-radius: 2rem;
  padding: 2rem 3rem;
  box-shadow: 0 0 1rem 0 rgba(var(--color-bg-rgb), .2);
  transition: all 0.3s ease;
}
#q.correct {
  border: .3rem solid var(--color-success);
  animation: pulse-correct 0.5s ease;
}
#q.wrong {
  border: .3rem solid var(--color-error);
  animation: shake 0.5s ease;
}
#q .flex {
  width: 100%;
  justify-content: center;
  margin-top: 2rem;
}
#q .flex > * {
  margin: .5rem 1rem;
}

/* Progress Bar */
.lesson-progress {
  margin: 2rem 0;
}
.progress-bar {
  width: 100%;
  height: 1rem;
  background-color: var(--color-panel);
  border-radius: var(--border-radius);
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
  transition: width 0.3s ease;
}
.progress-text {
  text-align: center;
  margin-top: 0.5rem;
  font-size: 1.4rem;
  opacity: 0.8;
}

/* Feedback */
.feedback {
  margin-top: 2rem;
  padding: 1.5rem;
  border-radius: 1rem;
  font-size: 1.8rem;
  font-weight: var(--font-weight-bold);
  display: flex;
  align-items: center;
  gap: 1rem;
}
.feedback.correct {
  background-color: var(--color-success-bg);
  color: var(--color-success);
  border: .2rem solid var(--color-success);
}
.feedback.wrong {
  background-color: var(--color-error-bg);
  color: var(--color-error);
  border: .2rem solid var(--color-error);
}
.feedback-icon {
  font-size: 2.4rem;
  font-weight: bold;
}

/* Notes Display */
.notes-display {
  text-align: center;
  font-size: 3rem;
}
.notes-display p {
  margin: 2rem 0;
}
.notes-display img {
  max-width: 100%;
  height: auto;
  margin: 2rem auto;
}
.notes-display button {
  margin-top: 3rem;
}

/* Lesson Actions */
#lesson-actions {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin: 3rem 0;
}
.button-primary {
  padding: 1.5rem 4rem;
  font-size: 2rem;
  background-color: var(--color-primary);
  color: var(--color-background);
  border: none;
  border-radius: var(--border-radius);
  cursor: pointer;
  font-weight: var(--font-weight-bold);
  transition: all 0.2s ease;
}
.button-primary:hover {
  transform: scale(1.05);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2);
}
.button-primary:active {
  transform: scale(0.98);
}
.button-secondary {
  padding: 1.5rem 4rem;
  font-size: 2rem;
  background-color: transparent;
  color: var(--color-body);
  border: .2rem solid var(--color-body);
  border-radius: var(--border-radius);
  cursor: pointer;
  font-weight: var(--font-weight-bold);
  transition: all 0.2s ease;
}
.button-secondary:hover {
  background-color: var(--color-panel);
}

/* Completion Screen */
.completion-screen {
  text-align: center;
  padding: 4rem 2rem;
  animation: fadeIn 0.5s ease;
}
.completion-screen h2 {
  font-size: 4rem;
  margin-bottom: 3rem;
  animation: bounceIn 0.6s ease;
}
.completion-stats {
  display: flex;
  justify-content: center;
  gap: 4rem;
  margin: 3rem 0;
  flex-wrap: wrap;
}
.stat {
  text-align: center;
}
.stat-value {
  font-size: 4rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  margin-bottom: 0.5rem;
}
.stat-label {
  font-size: 1.6rem;
  opacity: 0.7;
}
.score-message {
  font-size: 2.4rem;
  margin: 3rem 0;
  font-weight: var(--font-weight-bold);
}
.completion-actions {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 4rem;
  flex-wrap: wrap;
}

/* Disabled state */
input:disabled + label.button,
label.button.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Animations */
@keyframes pulse-correct {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-1rem); }
  75% { transform: translateX(1rem); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes bounceIn {
  0% { transform: scale(0.3); opacity: 0; }
  50% { transform: scale(1.05); }
  70% { transform: scale(0.9); }
  100% { transform: scale(1); opacity: 1; }
}

/* Profile Page */
.profile-page {
  max-width: 120rem;
  margin: 0 auto;
  padding: 2rem;
}
.profile-page h1 {
  font-size: 4rem;
  margin-bottom: 3rem;
  text-align: center;
}
.profile-page h2 {
  font-size: 2.8rem;
  margin: 4rem 0 2rem;
}

/* Profile Stats Grid */
.profile-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
  gap: 2rem;
  margin-bottom: 4rem;
}
.stat-card {
  background: var(--color-panel);
  border-radius: 2rem;
  padding: 2rem;
  display: flex;
  align-items: center;
  gap: 2rem;
  transition: transform 0.2s ease;
}
.stat-card:hover {
  transform: translateY(-.5rem);
}
.stat-icon {
  font-size: 5rem;
}
.stat-content {
  flex: 1;
}
.stat-label {
  font-size: 1.4rem;
  opacity: 0.7;
  margin-bottom: 0.5rem;
}
.stat-value {
  font-size: 3.6rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}
.stat-meta {
  font-size: 1.4rem;
  opacity: 0.6;
  margin-top: 0.5rem;
}

/* Level Progress */
.level-progress-section {
  background: var(--color-panel);
  border-radius: 2rem;
  padding: 3rem;
  margin-bottom: 4rem;
}
.level-progress-bar {
  width: 100%;
  height: 3rem;
  background: var(--color-background);
  border-radius: var(--border-radius);
  overflow: hidden;
  margin: 2rem 0;
}
.level-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
  transition: width 0.5s ease;
}
.level-progress-text {
  text-align: center;
  font-size: 1.8rem;
  opacity: 0.8;
}

/* Daily Goal */
.daily-goal-section {
  background: var(--color-panel);
  border-radius: 2rem;
  padding: 3rem;
  margin-bottom: 4rem;
}
.daily-goal-container {
  display: flex;
  align-items: center;
  gap: 4rem;
  flex-wrap: wrap;
  justify-content: center;
}
.daily-goal-circle {
  position: relative;
  width: 20rem;
  height: 20rem;
}
.daily-goal-circle svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.daily-goal-bg {
  fill: none;
  stroke: var(--color-background);
  stroke-width: 8;
}
.daily-goal-progress {
  fill: none;
  stroke: var(--color-primary);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 283;
  stroke-dashoffset: 283;
  transition: stroke-dashoffset 0.5s ease;
}
.daily-goal-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.daily-goal-value {
  font-size: 4rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}
.daily-goal-label {
  font-size: 1.6rem;
  opacity: 0.7;
}
.daily-goal-message {
  font-size: 2.4rem;
  font-weight: var(--font-weight-bold);
}

/* Achievements */
.achievements-section {
  margin-bottom: 4rem;
}
.achievements-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
  gap: 2rem;
}
.achievement {
  background: var(--color-panel);
  border-radius: 2rem;
  padding: 2rem;
  text-align: center;
  transition: transform 0.2s ease;
}
.achievement.earned {
  border: .2rem solid var(--color-primary);
}
.achievement.earned:hover {
  transform: scale(1.05);
}
.achievement.locked {
  opacity: 0.4;
}
.achievement-icon {
  font-size: 5rem;
  margin-bottom: 1rem;
}
.achievement-name {
  font-size: 1.8rem;
  font-weight: var(--font-weight-bold);
  margin-bottom: 0.5rem;
}
.achievement-desc {
  font-size: 1.4rem;
  opacity: 0.7;
}

/* Unit Progress */
.unit-progress-section {
  margin-bottom: 4rem;
}
.unit-progress-card {
  background: var(--color-panel);
  border-radius: 2rem;
  padding: 2rem;
  margin-bottom: 2rem;
}
.unit-progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.unit-progress-header h3 {
  font-size: 2.4rem;
  margin: 0;
}
.unit-progress-percent {
  font-size: 2.4rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}
.unit-progress-bar {
  width: 100%;
  height: 1.5rem;
  background: var(--color-background);
  border-radius: var(--border-radius);
  overflow: hidden;
  margin-bottom: 1rem;
}
.unit-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
  transition: width 0.5s ease;
}
.unit-progress-stats {
  display: flex;
  justify-content: space-between;
  font-size: 1.6rem;
  opacity: 0.8;
}

/* Match/Mix-Match Questions */
.match-question {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin: 2rem 0;
}
.match-item {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.5rem;
  background: var(--color-panel);
  border-radius: 1rem;
}
.match-left-text {
  flex: 1;
  font-weight: var(--font-weight-bold);
  min-width: 20rem;
}
.match-select {
  flex: 1;
  padding: 1rem 1.5rem;
  font-size: 1.8rem;
  border: 2px solid var(--color-secondary);
  border-radius: 0.8rem;
  background: var(--color-background);
  color: var(--color-body);
  font-family: var(--font-stack);
  cursor: pointer;
  transition: border-color 0.2s;
}
.match-select:hover {
  border-color: var(--color-primary);
}
.match-select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(0, 168, 144, 0.1);
}
.match-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Realtime Questions */
.realtime-question {
  margin: 2rem 0;
}
.realtime-status {
  text-align: center;
  padding: 1rem;
  margin-bottom: 1rem;
  background: var(--color-panel);
  border-radius: 0.8rem;
  transition: opacity 0.3s;
}
.realtime-status small {
  font-size: 1.4rem;
  opacity: 0.8;
}
.realtime-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4rem 2rem;
  background: var(--color-panel);
  border-radius: 1rem;
  text-align: center;
}
.realtime-loading p {
  margin: 0 0 1.5rem 0;
  font-size: 2rem;
  font-weight: var(--font-weight-bold);
}
.realtime-loading .error {
  color: var(--color-error);
}
.spinner {
  width: 4rem;
  height: 4rem;
  border: 4px solid var(--color-panel);
  border-top-color: var(--color-primary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Hints */
.hints-container {
  margin: 2rem 0;
}
.button-hint {
  padding: 0.8rem 1.5rem;
  font-size: 1.6rem;
  background: var(--color-secondary);
  color: var(--color-background);
  border: none;
  border-radius: 0.8rem;
  cursor: pointer;
  font-family: var(--font-stack);
  font-weight: var(--font-weight-bold);
  transition: all 0.2s;
}
.button-hint:hover:not(:disabled) {
  background: var(--color-primary);
  transform: translateY(-2px);
}
.button-hint:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.hints-display {
  margin-top: 1.5rem;
}
.hint-item {
  padding: 1.5rem;
  margin-bottom: 1rem;
  background: var(--color-panel);
  border-left: 4px solid var(--color-highlight);
  border-radius: 0.8rem;
  font-size: 1.8rem;
  line-height: 1.6;
}
.hint-item strong {
  color: var(--color-highlight);
  display: block;
  margin-bottom: 0.5rem;
}

/* Earnings Notification */
.earnings-notification {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  background: var(--color-highlight);
  color: var(--color-background);
  padding: 2rem 4rem;
  border-radius: 1rem;
  font-size: 3rem;
  font-weight: var(--font-weight-bold);
  z-index: 9999;
  opacity: 0;
  transition: all 0.3s ease;
  pointer-events: none;
}
.earnings-notification.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
