:root{--ink:#2b2a4e;--accent:#2b2a4e;--accent-soft:#ededf3;--text:#23222f;--muted:#6b6a78;--border:#e3e2ea;--paper:#fafafc;--error:#b91c1c;--success:#166534;--primary:#2b2a4e}*{box-sizing:border-box;margin:0;padding:0}body,html{font-family:Helvetica,Arial,sans-serif;color:var(--text);background:var(--paper);line-height:1.55}.container{max-width:720px;margin:0 auto;padding:40px 24px 64px}.site-header{border-bottom:1px solid var(--border);background:#fff}.site-header-inner{max-width:720px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:700;letter-spacing:.2px;color:var(--ink);text-decoration:none}.wordmark img{height:30px;display:block}.site-nav{display:flex;gap:20px;align-items:center}.site-nav a{font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none}.site-nav a.active,.site-nav a:hover{color:var(--ink);text-decoration:none}.site-footer{border-top:1px solid var(--border);margin-top:40px}.site-footer-inner{max-width:720px;margin:0 auto;padding:20px 24px;font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between}.site-footer a{color:var(--muted);text-decoration:underline}.site-footer a:hover{color:var(--ink)}.eyebrow{text-transform:uppercase;letter-spacing:1.6px;font-size:11px;font-weight:700;color:var(--accent);margin-bottom:10px}.serif,h1,h2{font-family:Georgia,Times New Roman,serif;font-weight:700;color:var(--ink)}h1{font-size:34px;letter-spacing:-.2px;margin-bottom:10px}h2{font-size:22px;margin-bottom:8px}.sub{font-size:14.5px;margin-bottom:32px;max-width:56ch}.sub,label{color:var(--muted)}label{display:block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px}input,textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);transition:border-color .15s}input:focus,textarea:focus{outline:none;border-color:var(--ink)}textarea{min-height:80px;resize:vertical}.field{margin-bottom:20px}.field-hint{font-size:12.5px;color:var(--muted);margin-top:5px}button{background:var(--ink);color:#fff;border:none;font:inherit;font-weight:700;padding:12px 26px;border-radius:4px;cursor:pointer;transition:opacity .15s}button:hover{opacity:.85}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#fff;color:var(--ink);border:1px solid var(--border)}.callout{background:var(--accent-soft);border-left:3px solid var(--accent);padding:16px 20px;border-radius:4px;margin-top:24px}.callout h3{font-family:Georgia,serif;font-size:15px;margin-bottom:6px;color:var(--accent)}.list{list-style:none;margin-top:24px}.list-item{background:#fff;border:1px solid var(--border);border-radius:4px;padding:12px 16px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.status{font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;padding:4px 8px;border-radius:3px}.status.done{background:#e7f4ea;color:var(--success)}.status.failed{background:#fdeaea;color:var(--error)}.status.in-progress{background:var(--accent-soft);color:var(--accent)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}table{background:#fff}.overlay{position:fixed;inset:0;background:rgba(22,19,14,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.modal{background:#fff;border-radius:8px;max-width:460px;width:100%;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal h2,.modal p{margin-bottom:10px}.modal p{font-size:14.5px;color:var(--text)}.modal .actions{display:flex;gap:10px;margin-top:20px}.modal-check{width:44px;height:44px;border-radius:50%;background:#e7f4ea;color:var(--success);font-size:22px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}@keyframes pulse-dot{0%{box-shadow:0 0 0 0 rgba(43,42,78,.45)}70%{box-shadow:0 0 0 9px rgba(43,42,78,0)}to{box-shadow:0 0 0 0 rgba(43,42,78,0)}}@keyframes bar-slide{0%{left:-35%}to{left:100%}}.stage-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:10px;vertical-align:baseline}.stage-dot.done{background:var(--success)}.stage-dot.pending{background:#d4d3dd}.stage-dot.current{background:var(--ink);animation:pulse-dot 1.4s ease-out infinite}.progress-track{position:relative;height:4px;border-radius:2px;background:#e8e7ef;overflow:hidden;margin:12px 0 4px}.progress-track .progress-glider{position:absolute;top:0;bottom:0;width:35%;border-radius:2px;background:var(--ink);animation:bar-slide 1.6s ease-in-out infinite}