:root{--fg:#111;--mut:#5b6470;--bg:#fff;--card:#f6f7f9;--acc:#1f6feb;--brd:#e3e6ea}
*{box-sizing:border-box}
body{margin:0;font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--fg);background:var(--bg)}
.wrap{max-width:820px;margin:0 auto;padding:28px 20px 64px}
header.site{border-bottom:1px solid var(--brd);padding:14px 20px}
header.site .in{max-width:820px;margin:0 auto;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
header.site a{color:var(--fg);text-decoration:none;font-weight:600}
header.site nav a{font-weight:400;color:var(--mut);margin-right:12px;font-size:14px}
h1{font-size:1.6rem;margin:.2em 0 .4em}
h2{font-size:1.1rem;margin:1.6em 0 .4em}
p.lead{color:var(--mut);margin-top:0}
.card{background:var(--card);border:1px solid var(--brd);border-radius:10px;padding:16px;margin:16px 0}
label{display:block;font-weight:600;font-size:14px;margin:12px 0 4px}
textarea,input[type=text],input[type=number],select{width:100%;padding:9px 10px;border:1px solid var(--brd);border-radius:7px;font:inherit;background:#fff}
textarea{min-height:140px;resize:vertical;font-family:ui-monospace,Menlo,monospace;font-size:13px}
button{background:var(--acc);color:#fff;border:0;border-radius:7px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer}
button.sec{background:#fff;color:var(--fg);border:1px solid var(--brd)}
button:disabled{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:14px}
.out{margin-top:16px;white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace;font-size:13px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.grid img,.grid canvas{max-width:100%;border:1px solid var(--brd);border-radius:6px;background:#fff}
a.dl{display:inline-block;margin:6px 10px 0 0;color:var(--acc);font-weight:600;font-size:14px}
small.mut,span.mut{color:var(--mut)}
footer{border-top:1px solid var(--brd);margin-top:40px;padding-top:14px;color:var(--mut);font-size:13px}
ul.tools{list-style:none;padding:0}
ul.tools li{border-bottom:1px solid var(--brd);padding:12px 0}
ul.tools a{font-weight:600;color:var(--acc);text-decoration:none}
ul.tools p{margin:2px 0 0;color:var(--mut);font-size:14px}
