:root{--ground:#f0eee6;--surface:#faf9f5;--surface-2:#e8e6dc;--warm:#e3dacc;--ink:#141413;--body:#3d3d3a;--muted:#87867f;--faint:#b0aea5;--rule:#cccbc8;--clay:#d97757;--clay-deep:#c6613f;--clay-wash:#d977571f;--blue:#5c86b6;--blue-wash:#5c86b621;--olive:#6b7f50;--olive-wash:#6b7f5024;--amber:#b8891f;--amber-wash:#c99a2e29;--red:#b5533c;--red-wash:#b5533c1f;--shadow:#1414130f;--font-display:"Newsreader", "Noto Serif Thai", Georgia, serif;--font-sans:"Figtree", "Noto Sans Thai", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#141413;--surface:#1d1d1b;--surface-2:#262623;--warm:#2e2a24;--ink:#f5f3ec;--body:#d6d3c8;--muted:#9b998f;--faint:#6e6c64;--rule:#3a3a36;--clay:#e08a6b;--clay-deep:#f0a88c;--clay-wash:#e08a6b26;--blue:#86aeda;--blue-wash:#86aeda29;--olive:#9cb37c;--olive-wash:#9cb37c2b;--amber:#e0b75a;--amber-wash:#e0b75a29;--red:#e07f66;--red-wash:#e07f6626;--shadow:#0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ground:#141413;--surface:#1d1d1b;--surface-2:#262623;--warm:#2e2a24;--ink:#f5f3ec;--body:#d6d3c8;--muted:#9b998f;--faint:#6e6c64;--rule:#3a3a36;--clay:#e08a6b;--clay-deep:#f0a88c;--clay-wash:#e08a6b26;--blue:#86aeda;--blue-wash:#86aeda29;--olive:#9cb37c;--olive-wash:#9cb37c2b;--amber:#e0b75a;--amber-wash:#e0b75a29;--red:#e07f66;--red-wash:#e07f6626;--shadow:#0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.55}a{color:var(--ink);-webkit-text-decoration-color:var(--clay);text-decoration-color:var(--clay);text-underline-offset:3px}:focus-visible{outline:2px solid var(--clay);outline-offset:2px;border-radius:3px}code,.mono{font-family:var(--font-mono);font-size:.86em}code{background:var(--surface-2);color:var(--ink);word-break:break-word;border-radius:4px;padding:.06em .36em}strong{color:var(--ink);font-weight:600}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.side{border-right:1px solid var(--rule);background:var(--surface);height:100vh;padding:24px 18px;position:sticky;top:0;overflow:auto}.brand{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin-bottom:4px;font-size:10.5px;display:flex}.brand i{background:var(--clay);border-radius:50%;width:8px;height:8px;display:inline-block}.brand-title{font-family:var(--font-display);color:var(--ink);margin:0 0 22px;font-size:22px}.nav{flex-direction:column;gap:2px;display:flex}.nav a{color:var(--body);border-radius:7px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:14px;text-decoration:none;display:flex}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a[aria-current=page]{background:var(--ink);color:var(--surface)}.nav .count{font-family:var(--font-mono);background:var(--clay-wash);color:var(--clay-deep);border-radius:999px;padding:1px 7px;font-size:11px}.nav a[aria-current=page] .count{background:var(--clay);color:#fff}.side-foot{color:var(--muted);margin-top:28px;font-size:12px;line-height:1.5}main.page{width:100%;max-width:1240px;padding:32px 40px 80px}@media (max-width:900px){.shell{grid-template-columns:1fr}.side{border-right:none;border-bottom:1px solid var(--rule);height:auto;position:static}.nav{flex-flow:wrap}main.page{padding:20px 16px 60px}}.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--clay-deep);margin:0 0 8px;font-size:11px}h1{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);margin:0 0 10px;font-size:clamp(30px,3.6vw,42px);font-weight:400;line-height:1.1}h2{font-family:var(--font-display);color:var(--ink);margin:34px 0 10px;font-size:26px;font-weight:400}h3{color:var(--ink);margin:18px 0 8px;font-size:16px;font-weight:600}.lede{max-width:760px;color:var(--body);margin:0 0 22px;font-size:16px}.muted{color:var(--muted)}.small{font-size:13px}.card{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:18px 20px}.grid{gap:12px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g2{grid-template-columns:1fr}}.stat .n{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:36px;line-height:1}.stat .n small{color:var(--muted);font-size:17px}.stat .l{color:var(--muted);margin-top:6px;font-size:13px}.tbl{border:1px solid var(--rule);background:var(--surface);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:1px solid var(--rule);background:var(--surface-2);white-space:nowrap;padding:10px 12px;font-size:10.5px;font-weight:500}td{border-bottom:1px solid var(--rule);vertical-align:top;padding:9px 12px}tr:last-child td{border-bottom:none}td.num{font-family:var(--font-mono);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}tr.grp td{background:var(--ground);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}tr.dim td{color:var(--muted)}.chip{font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;background:var(--surface-2);color:var(--body);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:500;line-height:1.6;display:inline-block}.chip.red{background:var(--red-wash);color:var(--red)}.chip.amber{background:var(--amber-wash);color:var(--amber)}.chip.olive{background:var(--olive-wash);color:var(--olive)}.chip.blue{background:var(--blue-wash);color:var(--blue)}.chip.clay{background:var(--clay-wash);color:var(--clay-deep)}.btn{font:500 13px/1 var(--font-sans);border:1px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:9px 14px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}.btn.clay{background:var(--clay);color:#fff;border-color:var(--clay)}.btn.ghost{background:0 0}.btn.danger{color:var(--red)}input[type=text],textarea,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:8px 10px}textarea{width:100%;min-height:60px}.filters{flex-wrap:wrap;align-items:center;gap:6px 14px;margin:4px 0 14px;display:flex}.fgroup{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.fgroup .fl{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:4px;font-size:10.5px}.pill{border:1px solid var(--rule);background:var(--surface);color:var(--body);border-radius:999px;padding:5px 11px;font-size:12.5px;text-decoration:none}.pill[aria-current=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}pre.rows{background:var(--surface-2);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:260px;margin:0;padding:10px 12px;font-size:11.5px;line-height:1.55;overflow:auto}pre.rows mark{background:var(--clay-wash);color:var(--ink);border-radius:3px}.preview-img{border:1px solid var(--rule);background:#fff;border-radius:8px;max-width:100%;display:block}details>summary{cursor:pointer}.bar{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.bar>i{background:var(--clay);height:100%;display:block}.bar.olive>i{background:var(--olive)}table.sheet{font-size:12.5px}table.sheet th{background:var(--surface-2);z-index:1;position:sticky;top:0}table.sheet td{white-space:pre-wrap;vertical-align:top;min-width:60px}table.sheet tr{scroll-margin-top:48px}table.sheet tr.cited td{background:var(--clay-wash);color:var(--ink)}.prove-dialog{background:var(--ground);width:min(860px,100vw - 32px);max-height:calc(100vh - 64px);color:var(--body);border:1px solid var(--rule);box-shadow:0 20px 60px var(--shadow);border-radius:12px;padding:20px 22px;overflow:auto}.prove-dialog::backdrop{background:#14141373}.prove-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.speak-log{background:var(--surface);border:1px solid var(--rule);max-height:260px;font:12.5px/1.6 var(--font-mono);border-radius:8px;margin-top:14px;padding:10px 12px;overflow:auto}.gate{background:radial-gradient(1200px 600px at 15% 10%, var(--clay-wash), transparent 60%), radial-gradient(900px 500px at 90% 90%, var(--olive-wash), transparent 60%), var(--ground);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.gate .gcard{background:var(--surface);border:1px solid var(--rule);width:min(420px,100%);box-shadow:0 24px 70px var(--shadow);border-radius:18px;padding:clamp(24px,4vw,36px);animation:.7s cubic-bezier(.2,.8,.25,1) gin}@keyframes gin{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:none}}.gate .gmark{gap:7px;margin-bottom:22px;display:flex}.gate .gmark i{border-radius:50%;width:12px;height:12px;display:block}.gate h1{margin:8px 0 6px;font-size:clamp(30px,5vw,40px)}.gate .gsub{color:var(--muted);margin:0 0 22px;font-size:14px;line-height:1.5}.gate .gsub .th{display:block}.gate label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10.5px;display:block}.gate .gfield{border:1.5px solid var(--rule);background:var(--ground);border-radius:10px;align-items:center;transition:border-color .2s,box-shadow .2s;display:flex}.gate .gfield:focus-within{border-color:var(--clay);box-shadow:0 0 0 4px var(--clay-wash)}.gate input{min-width:0;font:500 16px var(--font-sans);color:var(--ink);letter-spacing:.04em;background:0 0;border:none;outline:none;flex:1;padding:13px 14px}.gate .geye{all:unset;cursor:pointer;font:500 10.5px var(--font-mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase;padding:0 14px}.gate .geye:hover{color:var(--clay)}.gate .gbtn{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;background:var(--ink);width:100%;color:var(--ground);font:600 15px var(--font-sans);border-radius:10px;margin-top:14px;padding:13px;transition:background .2s,transform .1s}.gate .gbtn:hover{background:var(--clay)}.gate .gbtn:active{transform:scale(.99)}.gate .gbtn[disabled]{opacity:.6;cursor:wait}.gate .gerr{min-height:20px;font:500 12.5px var(--font-sans);color:var(--red);margin-top:10px}.gate .shake{animation:.4s gshake}@keyframes gshake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}.seg{border:1px solid var(--rule);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{all:unset;cursor:pointer;font:500 13px var(--font-sans);color:var(--body);padding:8px 14px}.seg button.on{background:var(--ink);color:var(--surface)}.seg button:disabled{cursor:not-allowed;opacity:.7}.single-grid{grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:14px;display:grid}.flow{min-width:0}.frow{align-items:flex-start;gap:0;padding:6px 2px 10px;display:flex;overflow-x:auto}.frow.lane{border-top:1px dashed var(--rule);padding-top:12px;animation:.45s cubic-bezier(.2,.8,.25,1) lanein}.frow.lane.joins .lane-tag{background:var(--olive-wash);color:var(--olive)}@keyframes lanein{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.lane-tag{font:500 11px var(--font-mono);color:var(--muted);background:var(--surface-2);border-radius:999px;flex:none;margin:4px 10px 0 0;padding:2px 8px}.fcell{flex:none;align-items:flex-start;display:flex}.fnode{text-align:center;cursor:default;flex-direction:column;flex:none;align-items:center;gap:4px;width:118px;display:flex}.fnode.big{width:150px}.fnode .dot{border:2px solid var(--faint);background:var(--surface);border-radius:50%;width:22px;height:22px;transition:background .3s,border-color .3s;position:relative}.fnode .fl{font:600 12px var(--font-sans);color:var(--muted)}.fnode .fd{font:11px/1.35 var(--font-sans);color:var(--muted);overflow-wrap:anywhere;-webkit-line-clamp:4;-webkit-box-orient:vertical;max-width:100%;display:-webkit-box;overflow:hidden}.fnode.active .dot{border-color:var(--clay);background:var(--clay-wash)}.fnode.active .dot:after{content:"";border:2px solid var(--clay);border-radius:50%;animation:1.1s ease-out infinite pulse;position:absolute;inset:-6px}@keyframes pulse{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}.fnode.active .fl{color:var(--clay-deep)}.fnode.done .dot{border-color:var(--olive);background:var(--olive)}.fnode.done .dot:after{content:"✓";color:#fff;font:700 11px var(--font-sans);place-items:center;display:grid;position:absolute;inset:0}.fnode.done .fl{color:var(--ink)}.fnode.done .fd{color:var(--body)}.fnode.skip .dot{border-style:dashed}.fnode.error .dot{border-color:var(--red);background:var(--red-wash)}.fnode.error .fl{color:var(--red)}.fedge{background:var(--rule);flex:none;width:28px;height:2px;margin-top:11px;position:relative;overflow:hidden}.fedge.done{background:var(--olive)}.fedge.active{background:var(--clay-wash)}.fedge.active:after{content:"";background:var(--clay);border-radius:2px;width:8px;height:4px;animation:.9s linear infinite flow;position:absolute;top:-1px;left:-8px}@keyframes flow{to{left:100%}}.fdown{background:var(--rule);width:2px;height:18px;margin:0 0 4px 74px;display:block}.fdown.active{background:linear-gradient(var(--clay), var(--clay-wash))}.fdown.done{background:var(--olive)}.final{border-left:3px solid var(--olive);margin-top:12px;padding:6px 0 6px 14px;animation:.45s lanein}.final p{color:var(--ink);margin:4px 0;font-size:20px}.how ol{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.how li{border:1px solid #0000;border-radius:8px;padding:8px 10px;transition:background .3s,border-color .3s}.how li strong{color:var(--ink);font-size:13px;display:block}.how li span{color:var(--muted);font-size:12.5px;line-height:1.45}.how li.on{background:var(--clay-wash);border-color:var(--clay)}.how li.on span{color:var(--body)}
