:root {
  --bg: #f5f7ff;
  --text: #111827;
  --card: rgba(255, 255, 255, 0.78);
  --line: rgba(148, 163, 184, 0.3);
  --accent: linear-gradient(120deg, #ec4899, #8b5cf6, #06b6d4);
}
:root.dark {
  --bg: #020617;
  --text: #e5e7eb;
  --card: rgba(15, 23, 42, 0.78);
  --line: rgba(100, 116, 139, 0.4);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  background: radial-gradient(circle at 0% 0%, #dbeafe, transparent 40%), var(--bg);
  color: var(--text);
}
.container { max-width: 1020px; margin: 0 auto; padding: 1rem; display: grid; gap: 1rem; }
.glass, .card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 20px;
  backdrop-filter: blur(12px);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}
.site-header {
  max-width: 1020px; margin: 1rem auto; padding: .8rem 1rem;
  display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; justify-content: space-between;
}
.brand { color: inherit; text-decoration: none; font-weight: 800; }
.nav-links { display: flex; flex-wrap: wrap; gap: .75rem; }
.nav-links a { color: inherit; text-decoration: none; font-size: .92rem; opacity: .9; }
.hero { padding: 2rem; }
.hero h1 { font-size: clamp(2rem, 5vw, 3.2rem); margin: 0 0 .8rem; }
.accent { background: var(--accent); -webkit-background-clip: text; color: transparent; }
.card { padding: 1.1rem; }
.quiz-grid { display: grid; gap: .8rem; }
.quiz-group p { margin: 0 0 .45rem; font-weight: 600; }
.options { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .45rem; }
.option {
  border: 1px solid var(--line); border-radius: 12px; background: transparent; color: inherit;
  padding: .6rem .7rem; cursor: pointer;
}
.option.active { color: #fff; border-color: transparent; background: var(--accent); }
.btn {
  border: 1px solid var(--line); border-radius: 12px; padding: .6rem .95rem; cursor: pointer;
  background: transparent; color: inherit; text-decoration: none; display: inline-flex; align-items: center;
}
.btn.primary { background: var(--accent); color: #fff; border: none; font-weight: 700; }
.btn.wide { width: 100%; justify-content: center; margin-top: .8rem; }
.hidden { display: none; }
.progress-wrap { height: 10px; background: rgba(148, 163, 184, .25); border-radius: 999px; overflow: hidden; }
#progressBar { height: 100%; width: 0; background: var(--accent); transition: width .35s; }
.steps { display: grid; gap: .5rem; margin-top: .8rem; }
.step { display: flex; justify-content: space-between; gap: .75rem; border: 1px solid var(--line); border-radius: 12px; padding: .55rem .7rem; }
.row { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .8rem; }
.quote { font-style: italic; opacity: .9; }
.ideas-grid { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.idea-btn { text-align: left; }
.idea-details { margin-top: .7rem; border-top: 1px solid var(--line); padding-top: .7rem; }
.challenge { background-image: var(--accent); color: #fff; }
.tracker-controls { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: end; }
select { width: 100%; margin-top: .2rem; padding: .45rem; border-radius: 10px; background: transparent; color: inherit; border: 1px solid var(--line); }
.history { margin-top: .8rem; display: grid; gap: .4rem; }
.history-item { border: 1px solid var(--line); border-radius: 10px; padding: .45rem .6rem; font-size: .9rem; }
.why-grid { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.site-footer { max-width: 1020px; margin: 1rem auto 2rem; padding: 0 1rem; display: flex; justify-content: space-between; font-size: .9rem; opacity: .8; }
@media (max-width: 640px) { .site-footer { flex-direction: column; gap: .3rem; } }
