:root {

  /* CATPPUCCIN MOCHA */
  --base: #1e1e2e;
  --mantle: #181825;
  --crust: #11111b;

  --surface0: #313244;
  --surface1: #45475a;
  --surface2: #585b70;

  --text: #cdd6f4;
  --subtext0: #a6adc8;
  --subtext1: #bac2de;

  --blue: #89b4fa;
  --lavender: #b4befe;
  --green: #a6e3a1;
  --teal: #94e2d5;
  --red: #f38ba8;
  --yellow: #f9e2af;
}

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

body {

  font-family: sans-serif;

  background: var(--base);
  color: var(--text);

  min-height: 100vh;
}

/* SCROLLBAR */

::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-thumb {
  background: var(--surface1);
  border-radius: 999px;
}

/* CARD */

.card {

  background: var(--mantle);

  border: 1px solid rgba(255,255,255,0.04);

  border-radius: 22px;

  padding: 18px;

  box-shadow:
    0 4px 30px rgba(0,0,0,0.2);
}

/* TITLES */

.section-title {

  font-size: 18px;

  font-weight: 700;

  color: var(--blue);
}

/* METRIC GRID */

.metric-card {

  background: var(--surface0);

  border-radius: 18px;

  padding: 18px;

  transition: 0.2s ease;
}

.metric-card:hover {

  transform: translateY(-2px);

  background: var(--surface1);
}

.metric-card h3 {

  font-size: 14px;

  color: var(--subtext0);

  margin-bottom: 8px;
}

.metric-card p {

  font-size: 30px;

  font-weight: bold;

  color: var(--green);
}

/* BUTTON */

.primary-btn {

  background: var(--blue);

  color: var(--crust);

  font-weight: 700;

  border: none;

  border-radius: 14px;

  padding: 10px 16px;

  cursor: pointer;

  transition: 0.2s ease;
}

.primary-btn:hover {

  opacity: 0.9;

  transform: scale(1.03);
}

/* EVENT ITEM */

.event-item {

  background: var(--surface0);

  border-radius: 16px;

  padding: 14px;
}

.event-title {

  font-weight: bold;

  color: var(--text);
}

.event-date {

  color: var(--subtext0);

  font-size: 14px;

  margin-top: 4px;
}

/* INPUT */

.input {

  width: 100%;

  background: var(--surface0);

  border: 1px solid transparent;

  color: var(--text);

  border-radius: 14px;

  padding: 14px;

  outline: none;

  transition: 0.2s;
}

.input:focus {

  border-color: var(--blue);
}

/* MODAL */

.modal {

  position: fixed;

  inset: 0;

  background: rgba(0,0,0,0.5);

  display: flex;

  justify-content: center;

  align-items: center;

  padding: 20px;

  z-index: 999;
}

.modal-content {

  width: 100%;

  max-width: 420px;

  background: var(--mantle);

  border-radius: 24px;

  padding: 22px;
}

/* BOTTOM NAV */

.bottom-nav {

  position: fixed;

  bottom: 0;

  width: 100%;

  display: flex;

  justify-content: space-around;

  align-items: center;

  gap: 10px;

  background: rgba(17,17,27,0.9);

  backdrop-filter: blur(12px);

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

  padding: 14px;
}

.bottom-nav button {

  background: transparent;

  border: none;

  color: var(--subtext1);

  font-size: 14px;

  font-weight: 600;

  cursor: pointer;

  transition: 0.2s ease;
}

.bottom-nav button:hover {

  color: var(--blue);
}

/* REFLECTION */

#reflectionText {

  color: var(--subtext1);

  line-height: 1.8;
}

/* CURIOSITY */

#curiositySummary {

  color: var(--lavender);
}

/* MOBILE */

@media (max-width: 640px) {

  .card {
    padding: 16px;
  }

  .metric-card p {
    font-size: 26px;
  }

}

.page {
  animation: fade 0.2s ease;
}

.hidden {
  display: none;
}

@keyframes fade {

  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}