:root { --bg: #f5f7fb; --card: #ffffff; --text: #1d1d1f; --muted: #4d4d52; --primary: #0a84ff; --primary-strong: #0066cc; --ok: #2e7d32; --bad: #b00020; --border: #d7dbe4; } * { box-sizing: border-box; } body { margin: 0; font-family: "SF Pro Text", "Avenir Next", system-ui, -apple-system, sans-serif; background: radial-gradient(circle at 20% -10%, #deecff 0%, #f5f7fb 55%); color: var(--text); line-height: 1.5; } .hero { padding: 2rem 1rem 1rem; } .hero-inner { max-width: 980px; margin: 0 auto; } .eyebrow { margin: 0; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); font-size: 0.78rem; } h1 { margin: 0.25rem 0; font-size: clamp(1.8rem, 3vw, 2.8rem); } .hero-copy { margin: 0; color: var(--muted); max-width: 65ch; } .toolbar { display: flex; gap: 0.75rem; align-items: center; margin-top: 1rem; } .layout { max-width: 980px; margin: 0 auto; padding: 0 1rem 2rem; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } .card { background: var(--card); border: 1px solid var(--border); border-radius: 18px; padding: 1rem; box-shadow: 0 10px 30px rgba(45, 65, 99, 0.08); } h2 { margin-top: 0; } .roadmap { padding-left: 1.25rem; margin: 0 0 1rem; } .roadmap li { margin: 0.4rem 0; } .roadmap li.done { color: var(--ok); font-weight: 600; } .grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; } label { display: block; font-size: 0.88rem; font-weight: 600; margin-bottom: 0.2rem; } input, select, button { font: inherit; } input, select { width: 100%; padding: 0.5rem; border-radius: 10px; border: 1px solid var(--border); background: #fff; } .actions { display: flex; gap: 0.6rem; margin-top: 0.8rem; flex-wrap: wrap; } button { padding: 0.55rem 0.8rem; border: 1px solid var(--border); background: #fff; border-radius: 10px; cursor: pointer; } button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; } .primary { background: var(--primary); border-color: var(--primary); color: #fff; } .primary:hover { background: var(--primary-strong); border-color: var(--primary-strong); } .output { margin-top: 1rem; padding: 0.8rem; border-radius: 10px; background: #f2f6ff; min-height: 220px; overflow-x: auto; white-space: pre-wrap; } .quiz-options { display: grid; gap: 0.5rem; } .quiz-option { text-align: left; } .feedback.good { color: var(--ok); font-weight: 600; } .feedback.bad { color: var(--bad); font-weight: 600; } @media (max-width: 640px) { .grid { grid-template-columns: 1fr; } }