:root{
  --ground:#0E0F11;--panel:#16181C;--line:#2A2D33;--muted:#9A9DA3;--paper:#ECEAE4;--signal:#E0A43A;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--ground);color:var(--paper);font:400 16px/1.6 var(--sans)}
a{color:var(--paper)}
.nav,.footer,main{max-width:760px;margin:0 auto;padding:0 16px}
.nav{padding-top:24px}
.wordmark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:20px}
.wordmark b{color:var(--muted);font-weight:500}
.mark{width:28px;height:28px}
.hero{padding:56px 0 32px}
h1{font-weight:600;font-size:clamp(30px,6vw,46px);line-height:1.15;margin:0 0 16px;letter-spacing:-0.01em}
h2{font-weight:600;font-size:22px;margin:4px 0 12px}
.signal{color:var(--signal)}
.lede{color:var(--muted);font-size:18px;max-width:60ch;margin:0 0 28px}
.strip{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:16px 0 0;margin:0;border-top:1px solid var(--line);font:500 13px/1.4 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px;margin:0 0 20px}
.card p{margin:0 0 8px}
.label{font:500 12px/1.4 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
label{display:block;font:500 13px/1.4 var(--mono);color:var(--muted);margin:16px 0 6px}
input,textarea{width:100%;background:var(--ground);color:var(--paper);border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:400 15px/1.5 var(--sans)}
input{font-family:var(--mono)}
input:focus,textarea:focus,button:focus-visible{outline:2px solid var(--signal);outline-offset:1px}
.hint{font-size:13px;color:var(--muted);margin:6px 0 16px}
button{background:var(--paper);color:var(--ground);border:0;border-radius:6px;padding:10px 18px;font:600 15px/1 var(--sans);cursor:pointer}
button[disabled]{opacity:.5;cursor:wait}
.status{color:var(--muted);min-height:1.6em;margin:12px 0 0}
.status.error{color:var(--signal)}
.output{white-space:pre-wrap;word-wrap:break-word;background:var(--ground);border:1px solid var(--line);border-radius:6px;padding:16px;font:400 15px/1.6 var(--sans);margin:12px 0 0}
.footer{display:flex;gap:20px;align-items:center;padding:32px 16px 48px;color:var(--muted);font-size:14px}
.footer a{color:var(--muted)}
.mono{font-family:var(--mono)}
