:root{--bg:#e7e5f4;--ink:#1a1640;--muted:#5e5a86;--accent:#4a2ff0;--card:#fff;--line:#d6d2ee}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.5 "Bricolage Grotesque",system-ui,sans-serif;min-height:100vh;display:flex;justify-content:center;padding:24px 16px}
.card{width:100%;max-width:440px;background:var(--card);border-radius:28px;padding:32px 24px;align-self:flex-start}
h1{font-size:2rem;line-height:1.1;font-weight:800;margin:20px 0 4px;letter-spacing:-.02em}
h2{font-size:1.05rem;font-weight:600;margin:28px 0 10px}
a{color:var(--accent)}
.headline{color:var(--muted);margin:0 0 12px}
.bio{margin:0 0 20px;max-width:60ch;white-space:pre-line}
.hint{color:var(--muted);font-size:.9rem;margin:4px 0 12px}
.ring{position:relative;width:132px;height:132px;border-radius:50%;padding:5px;background:var(--accent)}
.ring img,.ring .initial{width:100%;height:100%;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--bg);font-size:3rem;font-weight:800;border:4px solid var(--card)}
.ring::after{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid var(--accent);animation:tap 1.1s ease-out 1 .2s both;pointer-events:none}
@keyframes tap{from{transform:scale(1);opacity:.7}to{transform:scale(1.55);opacity:0}}
.btn{display:block;width:100%;text-align:center;padding:14px 16px;border-radius:14px;border:2px solid var(--ink);background:transparent;color:var(--ink);font:600 1rem inherit;font-family:inherit;text-decoration:none;cursor:pointer;margin-top:10px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.rows{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--line)}
.rows a{display:flex;justify-content:space-between;gap:16px;padding:14px 2px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.rows span{color:var(--muted)} .rows b{font-weight:600;overflow-wrap:anywhere;text-align:right}
.pay{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.pay .btn{margin-top:0}
form label{display:block;font-weight:600;font-size:.9rem;margin-top:14px}
input,textarea{display:block;width:100%;margin-top:6px;padding:12px;border:2px solid var(--line);border-radius:12px;font:inherit;color:var(--ink);background:#fff}
.pair{display:grid;grid-template-columns:1fr 1.6fr;gap:8px;margin-top:8px}
.pair input{margin-top:0}
form .check{display:flex;gap:10px;align-items:center;font-weight:400;margin-top:20px}
.check input{width:auto;margin:0}
.ok{background:#e0f5e6;padding:10px 12px;border-radius:10px}
.err{background:#fde4e4;padding:10px 12px;border-radius:10px}
@media (prefers-reduced-motion:reduce){.ring::after{animation:none;opacity:0}}
