:root{--black: #0a0a0a;--red: #ef4444;--red-active: #dc2626;--bg: #fafafa;--surface: #f5f5f5;--raised: #e5e5e5;--text: #0a0a0a;--dim: #525252;--faint: #a3a3a3;--border-subtle: #e5e5e5;--border-medium: #d4d4d4;--display: "Archivo Black", Impact, "Arial Black", sans-serif;--sans: "Work Sans", -apple-system, "Segoe UI", Helvetica, "Noto Sans Thai", sans-serif;--mono: "Space Mono", "Courier New", Consolas, monospace}*{box-sizing:border-box;margin:0}body{background:var(--bg);color:var(--text);font:400 16px/1.7 var(--sans);max-width:940px;margin:0 auto;padding:3rem 1.25rem 4rem}header{position:relative;border-bottom:4px solid var(--black);padding-bottom:2rem;display:flex;align-items:flex-end;gap:2.5rem}.header-text{flex:1}.lada{margin:3rem 0 0;flex-shrink:0;position:relative}.lada:before{content:"";position:absolute;top:0;left:0;width:100%;aspect-ratio:158 / 195;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.35) 50%,transparent 58%);background-size:200% 100%;animation:head-shine 5s linear infinite;pointer-events:none}.lada img{display:block;width:150px;height:auto;border:4px solid var(--black);transition:opacity .5s}.lada figcaption{margin-top:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.lada .th{font-family:"Noto Sans Thai",var(--sans)}html[lang=th] .en,html[lang=en] .th{display:none}.lang-toggle{position:absolute;top:0;right:0;display:flex;gap:8px}.lang-toggle button{background:transparent;color:var(--dim);border:2px solid var(--border-medium);padding:4px 14px;font-size:12px;letter-spacing:.04em}.lang-toggle button:hover{background:var(--surface);color:var(--text);border-color:var(--border-medium)}.lang-toggle button.on,.lang-toggle button.on:hover{background:var(--black);color:var(--bg);border-color:var(--black)}h1 .th,h2 .th,h3 .th{font-family:"Noto Sans Thai",var(--sans)}h1 .th,h2 .th{font-weight:800}header h1{font-family:var(--display);font-weight:400;font-size:clamp(38px,8vw,56px);line-height:1.05;letter-spacing:-.03em;text-transform:uppercase}.flower{font-size:.6em}.tagline{color:var(--dim);font-size:20px;line-height:1.65;margin-top:1rem}.tagline em{color:var(--text);font-style:normal;border-bottom:3px solid var(--red)}section{margin-top:64px}h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,5vw,38px);line-height:1.1;letter-spacing:-.02em;text-transform:uppercase;margin-bottom:.6rem}h3{font-family:var(--sans);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);margin-top:1.5rem}p{margin:.5rem 0}.hint{color:var(--dim);font-size:14px;line-height:1.6}.dl-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}a.request-btn{background:var(--red);color:var(--bg);border:2px solid var(--red);padding:10px 24px;font:700 14px var(--sans);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;display:inline-block;margin-left:auto}a.request-btn:hover{background:var(--black);border-color:var(--black);color:var(--bg)}a{color:var(--text);text-decoration-thickness:2px}a:hover{color:var(--red)}code{font-family:var(--mono);font-size:.86em;background:var(--surface);padding:.1em .35em}pre{background:var(--black);color:var(--bg);border:2px solid var(--black);padding:1rem;overflow-x:auto;margin:.8rem 0}pre code{background:none;padding:0}.codeblock{margin:.8rem 0;border:2px solid var(--black);background:var(--black)}.codeblock figcaption{display:flex;align-items:center;padding:.55rem .9rem;background:var(--bg);border-bottom:2px solid var(--black)}.codeblock .dot{display:none}.cb-name{font-family:var(--sans);font-size:11px;font-weight:700;text-transform:lowercase;letter-spacing:.12em;color:var(--text)}.codeblock pre{margin:0;border:0;padding:1rem 1.1rem;font-size:14px;line-height:1.65}.hljs{background:transparent}.controls{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:flex-end;margin:1.5rem 0}.controls label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text)}.controls label.check{flex-direction:row;align-items:center;gap:8px;height:44px;text-transform:none;font-weight:400;font-size:14px}select,input[type=range]{accent-color:var(--black)}select{background:var(--bg);color:var(--text);border:2px solid var(--border-medium);border-radius:0;height:44px;padding:8px 14px;font:400 14px var(--sans);min-width:220px}select:focus{outline:none;border-color:var(--black);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--black)}#thr{width:200px}#thr-val{color:var(--text);font-family:var(--mono);letter-spacing:0}button{background:var(--black);color:var(--bg);border:2px solid var(--black);border-radius:0;padding:10px 24px;font:700 14px var(--sans);text-transform:uppercase;letter-spacing:.06em;cursor:pointer}button:hover{background:var(--red);border-color:var(--red)}button:active{background:var(--red-active);border-color:var(--red-active)}button.stop{background:var(--red);border-color:var(--red)}button.stop:hover{background:var(--red-active);border-color:var(--red-active)}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--black)}.status{display:inline-block;font:700 11px var(--sans);text-transform:uppercase;letter-spacing:.06em;padding:4px 12px;border:2px solid var(--border-medium);color:var(--dim);margin-bottom:.5rem}.status.error{background:#fef2f2;color:var(--red);border-color:var(--red)}.status.live{background:#f0fdf4;color:#16a34a;border-color:#16a34a}canvas{width:100%;height:180px;display:block;background:var(--bg);border:2px solid var(--border-subtle);border-radius:0}.trace-caption{color:var(--faint);font-size:12px;font-weight:500;letter-spacing:.01em;margin-top:.35rem}.hits{list-style:none;padding:0;font-family:var(--mono);font-size:14px}.hits li{padding:14px 0;border-bottom:1px solid var(--border-subtle)}.hits li:hover{background:var(--surface)}.hits li:first-child:not(.empty){font-weight:700}.hits .empty{color:var(--faint)}.stt-unsupported{color:var(--dim);font-size:14px;line-height:1.6;border-left:4px solid var(--border-medium);padding-left:14px;margin:.6rem 0}.stt{border:2px solid var(--border-subtle);padding:12px 16px;margin:.6rem 0 1rem}.stt-state{display:inline-block;font:700 11px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}.stt-state:empty{display:none}.stt-state.live{color:#15803d}.stt-state.error{color:var(--red-active)}.stt-lines{list-style:none;padding:0;margin:0;font-family:"Noto Sans Thai",var(--sans);font-size:17px;line-height:1.7}.stt-lines li{padding:10px 0;border-bottom:1px solid var(--border-subtle)}.stt-lines li:last-child{border-bottom:0}.stt-lines .interim+li{font-weight:700}.stt-lines .interim{color:var(--dim)}.stt-lines .interim:empty{display:none}.stt-lines .empty{color:var(--dim);font-size:14px}table{border-collapse:collapse;width:100%;margin-top:.8rem;font-size:14px;display:block;overflow-x:auto}th,td{text-align:left;padding:8px 14px 8px 0;border-bottom:1px solid var(--border-subtle);vertical-align:top}th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);border-bottom:2px solid var(--black)}td:nth-child(3),td:nth-child(4){font-family:var(--mono);font-size:13px;white-space:nowrap}td:last-child{color:var(--dim)}.stt-toast[hidden]{display:none}.stt-toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;pointer-events:none;max-width:min(80vw,620px);padding:12px 22px;background:var(--bg);border-radius:22px;box-shadow:0 4px 18px #0000001f;font:400 17px/1.6 "Noto Sans Thai",var(--sans);color:var(--text);text-align:center;animation:stt-toast-in .3s cubic-bezier(.16,1,.3,1) both}@keyframes stt-toast-in{0%{opacity:0}}@media (prefers-reduced-motion: reduce){.stt-toast{animation:none}}.wake-pill[hidden]{display:none}.wake-pill{position:fixed;right:16px;bottom:16px;z-index:60;pointer-events:none;display:flex;align-items:center;gap:10px;color:var(--text);font:400 14px var(--sans);letter-spacing:.04em;white-space:nowrap;animation:wake-in .3s cubic-bezier(.16,1,.3,1) both}.wake-pill canvas{width:64px;height:64px;display:block;background:var(--bg);border:0;border-radius:50%}.wake-pill-body{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 18px;background:var(--bg);border-radius:22px}.wake-pill .listen{font-size:12px}.wake-pill canvas{animation:wake-glow 1.8s ease-in-out infinite}.wake-pill-body{box-shadow:0 4px 18px #0000001f}@keyframes wake-in{0%{opacity:0;transform:translateY(6px)}}.wake-pill .listen{color:var(--red)}.wake-pill .listen:after{content:"...";display:inline-block;width:0;overflow:hidden;vertical-align:bottom;animation:wake-dots 1.2s steps(4,jump-none) infinite}@keyframes wake-dots{to{width:1.2em}}@keyframes wake-glow{0%,to{box-shadow:0 4px 18px #0000001f,0 0 #ef444459}50%{box-shadow:0 4px 18px #0000001f,0 0 22px 4px #ef44442e}}@media (prefers-reduced-motion: reduce){.wake-pill,.wake-pill canvas,.wake-pill-body{animation:none}.wake-pill canvas,.wake-pill-body{box-shadow:0 4px 18px #0000001f}.wake-pill .listen:after{animation:none;width:1.2em}}.test-head{display:flex;align-items:center;gap:1.5rem}.test-head h2{margin-bottom:0;background:linear-gradient(110deg,var(--text) 42%,var(--faint) 50%,var(--text) 58%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:head-shine 5s linear infinite}@keyframes head-shine{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.test-head h2{animation:none;color:var(--text)}.lada:before{animation:none;background:none}}canvas.hero-orb{flex-shrink:0;display:block;width:100px;height:100px;background:transparent;border:0}.steps li{margin:.5rem 0}footer{margin-top:96px;border-top:4px solid var(--black);padding-top:1rem;color:var(--dim);font-size:12px}@media (max-width: 640px){section{margin-top:48px}.lada{display:none}.test-head{gap:1rem}.controls{gap:.8rem}#thr{width:150px}#zoo td:last-child{display:none}#zoo th:last-child{display:none}}table tr.pending td{color:#a3a3a3}.tag-pending{font-family:Space Mono,monospace;font-size:12px;color:#ca8a04;white-space:nowrap}.tag-ready{font-family:Space Mono,monospace;font-size:12px;color:#16a34a;white-space:nowrap}.tag-confirm{font-family:Space Mono,monospace;font-size:11px;color:var(--dim);border:1px solid var(--border-medium);padding:1px 6px;margin-left:6px;white-space:nowrap}.ack-toggle{display:inline-flex}.ack-toggle button{background:#fff;color:var(--text);border:3px solid var(--black);padding:.45rem .8rem}.ack-toggle button+button{border-left:0}.ack-toggle button.on{background:var(--black);color:#fff}.ack-toggle button svg{vertical-align:-.15em;margin-right:2px}.ack-toggle button:hover{background:var(--red);border-color:var(--black);color:#fff}body.tauri header .tagline,body.tauri header figure.lada,body.tauri .test-head,body.tauri #test>.hint,body.tauri #trace,body.tauri .trace-caption,body.tauri #hits,body.tauri #test h3:has(+#hits),body.tauri #stt-privacy,body.tauri section:not(#test),body.tauri footer{display:none}body.tauri h1{font-size:42px;margin-bottom:0}body.tauri header{margin-bottom:0}body.tauri section{margin-top:8px}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
