:root{--p:#4b1d7a;--pd:#341257;--pl:#f3ecfb;--g:#d4a017;--ink:#1f1430;--mut:#6b6280;--ok:#1e8e4e;--bad:#c0392b;--bg:#faf7fd}
*{box-sizing:border-box}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2,h3{font-family:Georgia,serif;color:var(--p);line-height:1.2}
a{color:var(--p)}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;background:#fff;border-bottom:3px solid var(--g);flex-wrap:wrap}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--p)}
.brand span{display:flex;flex-direction:column;line-height:1.1}.brand small{color:var(--g);font-weight:600}
nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
nav a{text-decoration:none;font-weight:500}nav a.on{border-bottom:2px solid var(--g)}
main{max-width:960px;margin:0 auto;padding:20px 16px 40px}
.card{background:#fff;border-radius:14px;padding:22px;margin:18px 0;box-shadow:0 2px 10px rgba(75,29,122,.08)}
.narrow{max-width:560px;margin-left:auto;margin-right:auto}.center{text-align:center}
.hero{text-align:center;padding:40px 10px 20px}.hero h1{font-size:2.4rem;margin:.2em 0}
.eyebrow{color:var(--g);font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem}
.lead{font-size:1.1rem;max-width:620px;margin:0 auto 22px;color:#3a2c52}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.steps li{background:#fff;border-radius:12px;padding:14px;display:flex;gap:10px;align-items:center;box-shadow:0 1px 6px rgba(0,0,0,.05)}
.steps span,.num{background:var(--p);color:#fff;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:none;font-size:.9rem}
.btn{display:inline-block;background:var(--p);color:#fff;border:0;border-radius:10px;padding:12px 20px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--pd)}.btn.ghost{background:var(--pl);color:var(--p)}.btn.danger{background:#fdecea;color:var(--bad)}
.btn.small{padding:7px 12px;font-size:.9rem}.btn.wide{width:100%;margin-top:8px}
button.link{background:none;border:0;color:var(--p);cursor:pointer;font:inherit;padding:0}
.form label{display:block;margin:12px 0;font-weight:500}
.form input:not([type=checkbox]):not([type=file]){display:block;width:100%;padding:12px;border:1px solid #d9cfe8;border-radius:10px;font-size:1rem;margin-top:4px}
.form.row{display:flex;gap:8px;margin-top:12px}.form.row input{flex:1;padding:9px;border:1px solid #d9cfe8;border-radius:8px}
.check{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important}.check input{margin-top:4px;width:20px;height:20px;flex:none}
.drop{border:2px dashed var(--g);border-radius:12px;padding:22px;text-align:center;background:#fffbef;cursor:pointer}
.drop input{display:block;margin:10px auto 0;max-width:100%}
.inline{display:inline}
.alert{background:#fdecea;color:var(--bad);padding:10px 14px;border-radius:10px}
.ok-msg{background:#e8f6ee;color:var(--ok);padding:10px 14px;border-radius:10px}
.muted{color:var(--mut)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.ticks{padding-left:0;list-style:none}.ticks li{padding-left:28px;position:relative;margin:8px 0}.ticks li:before{content:"✓";position:absolute;left:4px;color:var(--ok);font-weight:700}
.progress{display:flex;gap:6px;margin-bottom:12px}.progress i{flex:1;height:6px;border-radius:3px;background:#e7ddf3}.progress i.done{background:var(--p)}.progress i.cur{background:var(--g)}
.badge{width:72px;height:72px;border-radius:50%;margin:6px auto;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}
.badge.ok{background:#e8f6ee;color:var(--ok)}.badge.no{background:#fdecea;color:var(--bad)}.badge.wait{background:#fff6dc;color:#9a7300}
.spinner{width:56px;height:56px;border:6px solid var(--pl);border-top-color:var(--g);border-radius:50%;margin:10px auto;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.matches{list-style:none;padding:0}.match-line{background:var(--pl);border-radius:10px;padding:10px 14px;margin:8px 0;font-weight:600;color:var(--p)}
.linkbox{background:#fffbef;border:1px solid var(--g);border-radius:10px;padding:12px;font-size:.9rem}
.tag{display:inline-block;background:var(--pl);color:var(--p);border-radius:20px;padding:1px 9px;font-size:.78rem;font-weight:600}
.tag.gold{background:#fff3cf;color:#8a6500}.tag.test{background:#ffe0e0;color:#a00}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}.tbl th,.tbl td{padding:8px;border-bottom:1px solid #eee5f6;text-align:left;vertical-align:top}
.tbl th{color:var(--mut);font-weight:600}
.tree,.tree ul{list-style:none;padding-left:22px;margin:0}.tree{padding-left:0}
.tree li{position:relative;padding:6px 0 6px 14px;border-left:2px solid #e2d6f0}
.person{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--pl);border-radius:10px;padding:8px 12px}
.person.founder{background:#fff3cf}.person.root{background:var(--p);color:#fff;font-weight:600}
.block{border:1px solid #eee5f6;border-radius:12px;padding:12px 16px;margin:10px 0}
dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}dt{color:var(--mut)}dd{margin:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.stats div{background:#fff;border-radius:12px;padding:14px;text-align:center;box-shadow:0 1px 6px rgba(0,0,0,.05)}
.stats b{display:block;font-size:1.8rem;color:var(--p)}.stats span{color:var(--mut);font-size:.85rem}.okc b{color:var(--ok)}.badc b{color:var(--bad)}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}.chips li{background:var(--pl);border-radius:20px;padding:4px 12px}
.st{border-radius:20px;padding:2px 10px;font-size:.82rem;background:#eee}.st-accepted{background:#e8f6ee;color:var(--ok)}.st-rejected,.st-revoked{background:#fdecea;color:var(--bad)}
.st-needs_review{background:#fff3cf;color:#8a6500}.st-matching{background:var(--pl);color:var(--p)}
.actions{display:flex;flex-wrap:wrap;gap:8px}
footer{text-align:center;color:var(--mut);font-size:.85rem;padding:20px}
.langs{display:flex;gap:12px;justify-content:center}.langs a.on{font-weight:700;text-decoration:none}
@media (max-width:600px){.hero h1{font-size:1.8rem}.top{padding:10px 12px}.card{padding:16px}dl{grid-template-columns:1fr}}
select{padding:9px;border:1px solid #d9cfe8;border-radius:8px;background:#fff;font-size:.95rem}
.couple{color:#c2185b;margin:0 4px}.person.spouse{background:#fde7ef}
