*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f0f;--surface:#1a1a1a;--border:#2a2a2a;--text:#e8e6e0;--muted:#888;--accent:#c8a96e;--accent-dim:hsla(39,45%,61%,.15);--red:#c0392b;--font-mono:"JetBrains Mono","Fira Code","Courier New",monospace;--font-sans:"Inter",system-ui,sans-serif}body,html{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}nav{display:flex;gap:0;border-bottom:1px solid var(--border)}nav a{padding:16px 24px;color:var(--muted);font-size:13px;letter-spacing:.08em;text-transform:uppercase;transition:color .15s}nav a.active,nav a:hover{color:var(--text);text-decoration:none}nav a.active{border-bottom:2px solid var(--accent)}.nav-brand{padding:16px 24px;color:var(--accent);font-weight:600;letter-spacing:.05em;font-size:13px;margin-right:auto}.container{max-width:900px}.container,.container-wide{margin:0 auto;padding:40px 24px}.container-wide{max-width:1200px}h1{font-size:28px;margin-bottom:8px}h1,h2{font-weight:600}h2{font-size:20px;margin-bottom:16px}h3{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--accent)}p{margin-bottom:12px;color:var(--muted)}p.lead{color:var(--text);font-size:16px}input[type=text],textarea{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:14px 16px;border-radius:6px;font-family:var(--font-sans);font-size:15px;resize:vertical;outline:none;transition:border-color .15s}input[type=text]:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:120px}button{background:var(--accent);color:#111;border:none;padding:12px 24px;border-radius:6px;font-weight:600;font-size:14px;cursor:pointer;transition:opacity .15s}button:hover{opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}button.ghost{background:transparent;color:var(--muted);padding:8px 16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;margin-bottom:16px}.card-accent{border-left:3px solid var(--accent)}.pattern-entry{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:24px}.pattern-header{background:var(--accent-dim);border-bottom:1px solid var(--border);padding:20px 24px}.pattern-header h2{margin:0;font-size:22px}.pattern-header .subtitle{color:var(--muted);font-size:14px;margin-top:4px}.pattern-body{padding:24px}.pattern-field{margin-bottom:20px}.pattern-field label{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.pattern-field p{color:var(--text);margin:0}.pattern-koan{font-style:italic;font-size:18px;color:var(--accent);border-left:3px solid var(--accent);padding:12px 20px;margin:20px 0;background:var(--accent-dim);border-radius:0 6px 6px 0}.pattern-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.tag{display:inline-block;background:var(--border);color:var(--muted);padding:3px 10px;border-radius:20px;font-size:12px}.difficulty{display:flex;gap:4px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:var(--border)}.dot.filled{background:var(--accent)}.match-reason{background:var(--accent-dim);border:1px solid var(--accent);border-radius:6px;padding:12px 16px;margin-bottom:16px;font-size:14px;color:var(--text)}.match-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.synthesis{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;margin-top:32px}.synthesis h3{margin-bottom:12px}.synthesis p{color:var(--text)}.loading{display:flex;align-items:center;gap:12px;color:var(--muted);padding:40px 0}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}hr{border:none;border-top:1px solid var(--border);margin:32px 0}.section-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}.lesson h2{color:var(--accent);font-size:17px;margin:28px 0 10px;border-bottom:1px solid var(--border);padding-bottom:8px}.lesson h2:first-child{margin-top:0}.lesson p{color:var(--text);margin-bottom:12px}.reflection-block{border-left:3px solid var(--border);padding-left:16px;margin-bottom:24px}.reflection-block.answered{border-color:var(--accent)}.question-text{color:var(--text);font-size:16px;margin-bottom:12px}.ai-response{background:var(--accent-dim);border-radius:6px;padding:12px 16px;font-size:14px;color:var(--text);margin-top:12px}