* { margin: 0; padding: 0; box-sizing: border-box; border-radius: 0; box-shadow: none; text-shadow: none; }
html, body { height: 100%; }
body { background: #fff; color: #222; font: 15px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; }
canvas#bg { position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; }
a { color: #00e; text-decoration: underline; }
a:hover { color: #c00; }
.wrap { max-width: 980px; margin: 0 auto; padding: 32px 20px 96px; }
h1 { font-size: 64px; letter-spacing: 4px; font-weight: 700; color: #111; }
h2 { font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: #555; margin: 40px 0 12px; border-bottom: 1px solid #ddd; padding-bottom: 6px; }
.tag { font-size: 20px; color: #333; margin-top: 8px; }
.sub { color: #666; margin-top: 4px; }
.panel { border: 1px solid #ddd; background: #fff; padding: 16px; margin-top: 12px; }
.cornerlink { display: block; text-align: right; font-size: 14px; border-top: 1px solid #ddd; padding: 18px 16px; margin-top: 0; }
input[type=text], textarea { width: 100%; background: #fff; color: #222; border: 1px solid #999; font: inherit; padding: 10px 12px; outline: none; }
input[type=text]:focus, textarea:focus { border-color: #000; }
button, .btn { background: #eee; color: #222; border: 1px solid #999; font: inherit; padding: 10px 18px; cursor: pointer; }
button:hover, .btn:hover { background: #ddd; }
button:disabled { opacity: 0.5; cursor: default; }
table { border-collapse: collapse; width: 100%; font-size: 13px; margin-top: 12px; }
th, td { border: 1px solid #ddd; padding: 4px 8px; text-align: left; white-space: nowrap; max-width: 320px; overflow: hidden; text-overflow: ellipsis; }
th { background: #f4f4f4; color: #333; }
.meta { color: #666; font-size: 13px; margin-top: 10px; }
.err { color: #c00; }
.ok { color: #060; }
.qitem { border: 1px solid #ddd; background: #fafafa; padding: 10px 12px; margin-top: 10px; }
.qitem .q { color: #222; }
.qitem .m { color: #888; font-size: 12px; margin-top: 4px; }
.qitem canvas { margin-top: 8px; }
.examples a { margin-right: 14px; cursor: pointer; white-space: nowrap; }
.row { display: flex; gap: 10px; align-items: stretch; }
.row > * { flex: 1; }
.small { font-size: 12px; color: #888; }
#result, .qitem { overflow-x: auto; }

@media (max-width: 640px) {
  .wrap { padding: 20px 12px 60px; }
  h1 { font-size: 36px; letter-spacing: 2px; }
  h2 { margin: 28px 0 10px; }
  .row { flex-direction: column; gap: 8px; }
  .row > * { flex: 1 1 auto !important; width: 100%; }
  table { font-size: 12px; }
  th, td { padding: 3px 6px; max-width: 200px; }
  .examples a { display: inline-block; margin: 2px 8px 2px 0; }
}
