:root{--bg:#0b0c0a;--fg:#d8e6c9;--g:#8fd16a;--a:#e8b44a;--r:#e8715c;--dim:#879079;--line:#3a4234}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.6 "IBM Plex Mono",ui-monospace,monospace}
a{color:var(--g)}.strip{background:var(--a);color:#111;text-align:center;font-size:12.5px;padding:4px 8px;font-weight:600}
header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;max-width:1080px;margin:0 auto;padding:14px 18px;border-bottom:1px dashed var(--line)}
.brand{color:var(--g);font-weight:600;text-decoration:none;font-size:18px}nav{display:flex;gap:14px;flex-wrap:wrap;align-items:center}nav a{color:var(--fg);text-decoration:none}nav a:hover{color:var(--g)}
button{font:inherit;background:transparent;color:var(--g);border:1px dashed var(--g);padding:6px 12px;cursor:pointer}button:hover{background:var(--g);color:#111}button:disabled{opacity:.4;cursor:default;background:none;color:var(--g)}button.alt{color:var(--a);border-color:var(--a)}button.alt:hover{background:var(--a);color:#111}
main{max-width:1080px;margin:0 auto;padding:18px}.ascii{color:var(--g);font-size:13px;line-height:1.25;overflow-x:auto;margin:10px 0}
.lead{font-size:18px;max-width:760px}.p{color:var(--g)}.dim{color:var(--dim)}.small{font-size:12.5px;margin-top:8px}
.quote{border:1px dashed var(--a);padding:14px 16px;margin:18px 0;max-width:820px}.quote p{margin:6px 0;font-size:16px;color:#f1ecd8}.qh,.qf{color:var(--a);font-size:13px}.qf a{color:var(--a)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px dashed var(--line);margin:18px 0}.stats div{padding:10px 14px;border-right:1px dashed var(--line)}.stats div:last-child{border:0}.stats span{display:block;color:var(--dim);font-size:12px}.stats b{font-size:20px;font-weight:600}
.box{border:1px dashed var(--line);padding:12px 14px;margin:18px 0}.bh{color:var(--g);margin-bottom:8px}
svg{width:100%;height:200px;display:block}.tw{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:right;color:var(--dim);font-weight:400;border-bottom:1px dashed var(--line);padding:4px 8px}td{text-align:right;padding:5px 8px;white-space:nowrap}th:nth-child(2),td:nth-child(2){text-align:left}tbody tr{cursor:pointer}tbody tr:hover{background:#151a12}
.up{color:var(--g)}.dn{color:var(--r)}.pin{color:var(--a);font-size:11px}.bar{display:inline-block;height:8px;background:var(--a);vertical-align:middle;margin-left:6px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}input,select{font:inherit;background:#111;color:var(--fg);border:1px dashed var(--line);padding:6px 8px;width:110px}
.out{white-space:pre-wrap;background:#0f110d;border:1px dashed var(--line);padding:10px;font-size:13.5px;overflow-x:auto;min-height:40px}
h2{color:var(--g);font-weight:600}.doc{white-space:pre-wrap;font-size:14.5px}
footer{max-width:1080px;margin:0 auto;padding:18px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--dim);font-size:13px}.heather{color:var(--a)}
#drawer{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;justify-content:flex-end}#drawer[hidden]{display:none}.dr{background:var(--bg);border-left:1px dashed var(--g);width:min(460px,100%);height:100%;overflow:auto;padding:16px}.dr pre{white-space:pre-wrap;font-size:14px}
@media(max-width:640px){body{font-size:14px}.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px dashed var(--line)}.ascii{font-size:10px}.lead{font-size:16px}table{font-size:13px}}
.strip{background:#14170f;color:var(--fg);border-bottom:1px dashed var(--a);font-weight:400;display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}.strip a,.fca a{color:var(--a)}.cal{color:var(--a);font-weight:600}code{word-break:break-all}.cp{padding:0 6px;font-size:12px;color:var(--a);border-color:var(--a)}.fca{width:100%;order:-1}

.ascii{font-size:min(13px,calc((100vw - 40px) / 62 / 0.602));line-height:1.15;overflow:hidden;white-space:pre}.ascii .gr{color:var(--g)}.ascii .gr2{color:#6fa452}.ascii .am{color:var(--a)}
.rel{margin-top:10px;font-size:13px;color:var(--fg)}.rel a{color:var(--a)}.rel .short{display:none}.frel{display:block;width:100%}
@media(max-width:640px){.rel .full{display:none}.rel .short{display:inline}.ascii{font-size:calc((100vw - 40px) / 62 / 0.602)}}
.wmsg{max-width:1080px;margin:8px auto 0;padding:8px 18px;color:var(--a);font-size:13.5px}.wmsg a{color:var(--a)}.wpick{padding:2px 8px;margin-left:4px}
