*{box-sizing:border-box}
body{margin:0;background:#07060a;color:#eae7f0;font-family:'Inter',system-ui,sans-serif;font-size:15px;line-height:1.6;
  background-image:radial-gradient(800px 400px at 50% -10%,rgba(224,30,55,.2),transparent 70%)}
.shell{max-width:820px;margin:0 auto;padding:36px 22px 80px}
.top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px}
.eyebrow{margin:0;font-size:11px;letter-spacing:.36em;text-transform:uppercase;color:#ff4d6a}
h1{font-family:'Cinzel',serif;font-size:34px;margin:6px 0 0;letter-spacing:.08em}
h2{font-family:'Cinzel',serif;font-size:17px;letter-spacing:.1em;margin:0 0 14px}
.panel{background:#0e0b13;border:1px solid #241a2e;border-radius:8px;padding:20px;margin-bottom:16px}
.hint{color:#9c94ab;font-size:12.5px;margin:10px 0 0}
code{font-family:ui-monospace,Menlo,monospace;color:#ff97a7}
label{display:block;margin-bottom:14px;font-size:13px;color:#9c94ab}
input[type=text],input[type=url],input[type=password]{
  width:100%;margin-top:6px;padding:10px 12px;background:#07060a;color:#eae7f0;
  border:1px solid #2f2340;border-radius:5px;font:inherit;font-size:14px}
input:focus{outline:none;border-color:#e01e37}
.choice{display:flex;gap:18px;margin-bottom:4px}
.radio,.check{display:flex;align-items:center;gap:8px;color:#eae7f0;font-size:14px;margin:0 0 14px}
.radio input,.check input{accent-color:#e01e37;width:16px;height:16px;margin:0}
.row{display:grid;grid-template-columns:96px 1.3fr 1.6fr 92px 32px;gap:8px;margin-bottom:8px;align-items:start}
.row input{margin-top:0}
.kill{background:none;border:1px solid #2f2340;color:#9c94ab;border-radius:5px;height:40px;cursor:pointer;font-size:16px;line-height:1}
.kill:hover{border-color:#e01e37;color:#ff4d6a}
.primary{background:#e01e37;color:#fff;border:0;padding:11px 22px;border-radius:5px;
  font:inherit;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;cursor:pointer}
.primary:hover{background:#ff4d6a;color:#12060a}
.ghost{display:inline-block;border:1px solid #241a2e;color:#eae7f0;padding:10px 18px;border-radius:5px;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;background:none;cursor:pointer}
.ghost:hover{border-color:#e01e37;color:#ff4d6a}
.savebar{display:flex;gap:12px;align-items:center;margin-top:22px}
.msg{padding:12px 16px;border-radius:6px;font-size:13.5px;margin:0 0 16px}
.err{background:rgba(224,30,55,.12);color:#ff97a7;border:1px solid rgba(224,30,55,.4)}
.ok{background:rgba(34,197,94,.1);color:#8bf0b3;border:1px solid rgba(34,197,94,.35)}
@media(max-width:700px){
  .row{grid-template-columns:1fr 1fr;gap:8px}
  .row .title,.row .note{grid-column:1/-1}
  .kill{height:36px}
}
.dim{opacity:.5}
.trio{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:12px}
@media(max-width:600px){.trio{grid-template-columns:1fr}}
.muted{color:#9c94ab}
.count{color:#9c94ab;font-family:'Inter',sans-serif;font-size:13px;letter-spacing:0;margin-left:6px}
.mini{display:flex;gap:4px;flex-wrap:wrap;margin:0}
.mini select{width:auto;margin:0;padding:5px 6px;font-size:12px}
.mini .ghost{padding:5px 8px;font-size:10px}
.ranks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.ranks label{display:flex;align-items:center;gap:10px;margin:0}
.ranks span{width:14px;color:#9c94ab;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.ranks input{margin:0}
.shell.narrow{max-width:520px}
.roster{width:100%;border-collapse:collapse;font-size:13.5px}
.roster th{text-align:left;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#9c94ab;padding:0 8px 10px;font-weight:400}
.roster td{padding:10px 8px;border-top:1px solid #241a2e;vertical-align:middle}
.roster tr.off{opacity:.45}
.roster code{font-family:ui-monospace,Menlo,monospace;color:#ff97a7;letter-spacing:.08em}
.roster .acts{display:flex;gap:6px;flex-wrap:wrap}
.roster .acts form{margin:0}
.roster .acts .ghost{padding:6px 10px;font-size:10px}
.inline{display:grid;grid-template-columns:1fr 130px auto;gap:12px;align-items:end}
.panel.warn{border-color:rgba(224,30,55,.45);background:rgba(224,30,55,.07)}
.pw{font-family:ui-monospace,Menlo,monospace;font-size:26px;letter-spacing:.22em;color:#ff4d6a;margin:0 0 10px}
select{width:100%;margin-top:6px;padding:10px 12px;background:#07060a;color:#eae7f0;border:1px solid #2f2340;border-radius:5px;font:inherit;font-size:14px}
@media(max-width:640px){.inline{grid-template-columns:1fr}}
.lock{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#6f6879;border:1px solid #2f2340;border-radius:99px;padding:2px 7px;vertical-align:middle}
.roster tr.locked td{opacity:.75}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.tile{display:block;background:#0e0b13;border:1px solid #241a2e;border-radius:8px;padding:20px;text-decoration:none;color:#eae7f0;transition:.2s}
.tile:hover{border-color:#e01e37;transform:translateY(-2px)}
.tile h2{font-size:15px;margin:0 0 8px;letter-spacing:.12em;text-transform:uppercase}
.tile p{margin:0;font-size:13px;color:#9c94ab;line-height:1.5}
.back{color:#9c94ab;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.back:hover{color:#ff4d6a}
.pf{display:grid;grid-template-columns:250px 1fr;gap:22px;align-items:start}
.pf-avatar img{width:250px;height:250px;object-fit:cover;border-radius:8px;border:1px solid #241a2e;background:#07060a}
.pf-avatar .hint{margin-top:8px}
.pf-body label{margin-bottom:12px}
textarea{width:100%;margin-top:6px;padding:10px 12px;background:#07060a;color:#eae7f0;border:1px solid #2f2340;border-radius:5px;font:inherit;font-size:14px;resize:vertical}
textarea:focus{outline:none;border-color:#e01e37}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pw-box{margin-top:14px;padding-top:14px;border-top:1px solid #241a2e}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0 0 16px;font-size:14px}
.facts dt{color:#9c94ab;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding-top:2px}
.facts dd{margin:0}
.links{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.chip{font-size:12px;color:#9c94ab;border:1px solid #241a2e;border-radius:99px;padding:5px 11px}
.about-body{white-space:pre-wrap;color:#c9c2d4;font-size:14.5px;line-height:1.65;margin:0}
.who{color:#ff4d6a}
.who:hover{text-decoration:underline}
@media(max-width:700px){.pf{grid-template-columns:1fr}.pair{grid-template-columns:1fr}.pf-avatar img{width:100%;height:auto;max-width:250px}}