:root{--ink: #0e1110;--panel: #171c19;--panel-2: #1e2621;--line: #2c3830;--fg: #e7eee6;--muted: #8b9a8c;--q: #c9a227;--q-bg: rgba(201, 162, 39, .22);--opt: #3aa89a;--opt-bg: rgba(58, 168, 154, .2);--rec: #d4784a;--rec-bg: rgba(212, 120, 74, .28);--accent: #d8e35a;--accent-ink: #14180c;--link: #9ec4ff;--code: #121612}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{color:var(--fg);font:15.5px/1.55 IBM Plex Sans,system-ui,sans-serif;background:radial-gradient(ellipse 70% 45% at 8% -8%,#24352a 0%,transparent 55%),radial-gradient(ellipse 50% 40% at 100% 0%,#1a2430 0%,transparent 50%),linear-gradient(180deg,#121614 0%,var(--ink) 42%,#0b0d0c 100%)}body.busy #parse,body.busy #edit{cursor:progress}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.hero,#demo,#install,#schema,#numbers,#how,footer{width:min(68rem,calc(100% - 2rem));margin-left:auto;margin-right:auto}.hero{padding:2.75rem 0 .5rem}h1{margin:0;font:600 clamp(2.5rem,6vw,3.4rem)/1.02 "IBM Plex Serif",Georgia,serif;letter-spacing:-.03em}.tagline{margin:.75rem 0 .45rem;max-width:40rem;font-size:1.15rem}.sub{margin:0 0 1rem;max-width:44rem;color:var(--muted)}.hero nav{display:flex;flex-wrap:wrap;gap:.85rem 1.15rem;padding-top:.85rem;border-top:1px solid var(--line);font-size:.92rem}section{margin:2.75rem 0;scroll-margin-top:1rem}h2{margin:0 0 .65rem;font:600 1.2rem/1.2 IBM Plex Sans,sans-serif;letter-spacing:-.015em}.note{margin:0 0 1rem;max-width:46rem;color:var(--muted);font-size:.92rem}.toolbar{display:flex;flex-wrap:wrap;gap:.55rem .75rem;align-items:center;margin-bottom:.85rem}.toolbar label{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.88rem}.toolbar select{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:.35rem .5rem}.spacer{flex:1}.status{margin:0;color:var(--muted);font:.8rem/1.2 IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.status.err{color:#e07070}.stage{display:grid;grid-template-columns:1.15fr .85fr;gap:.85rem;align-items:stretch}@media(max-width:900px){.stage{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:.9rem .95rem 1rem;box-shadow:0 16px 40px #00000038;min-height:22rem;display:flex;flex-direction:column}.message,.editor{flex:1;width:100%;min-height:16rem;margin:0;padding:.9rem .95rem;border-radius:2px;background:var(--panel-2);border:1px solid #253028;font:.9rem/1.55 IBM Plex Mono,ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fg)}.editor{resize:vertical}.editor:focus{outline:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-color:#4d5f3a}.message mark{color:inherit;border-radius:2px;padding:.05em .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.message mark[data-role=Q]{background:var(--q-bg);box-shadow:inset 0 -1.5px 0 var(--q)}.message mark[data-role=OPT]{background:var(--opt-bg);box-shadow:inset 0 -1.5px 0 var(--opt)}.message mark[data-role=REC]{background:var(--rec-bg);box-shadow:inset 0 -1.5px 0 var(--rec)}.legend{display:flex;flex-wrap:wrap;gap:.75rem 1.1rem;margin:.75rem 0 0;color:var(--muted);font-size:.78rem}.legend i{display:inline-block;width:.65rem;height:.65rem;margin-right:.3rem;border-radius:1px;vertical-align:-.05rem}.legend i[data-role=Q]{background:var(--q-bg);box-shadow:inset 0 -2px 0 var(--q)}.legend i[data-role=OPT]{background:var(--opt-bg);box-shadow:inset 0 -2px 0 var(--opt)}.legend i[data-role=REC]{background:var(--rec-bg);box-shadow:inset 0 -2px 0 var(--rec)}button.primary,button.ghost{appearance:none;border:0;font:600 .88rem/1 IBM Plex Sans,sans-serif;padding:.48rem .85rem;border-radius:2px;cursor:pointer}button.primary{background:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled){filter:brightness(1.05)}button.primary:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}button.ghost:hover{color:var(--fg);border-color:#4a5c50}.cards{flex:1;display:grid;gap:.75rem;align-content:start}.card{padding:.85rem .9rem;border:1px solid var(--line);border-radius:2px;background:var(--panel-2);animation:rise .28s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.meta{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .55rem}.chip{display:inline-flex;padding:.18rem .45rem;border-radius:2px;background:var(--panel);border:1px solid var(--line);font:500 .7rem/1 IBM Plex Mono,ui-monospace,monospace}.chip.kind{border-color:color-mix(in srgb,var(--q) 55%,var(--line));color:#f0df9a}.chip.propose{border-color:color-mix(in srgb,var(--opt) 55%,var(--line));color:#9fe0d6}.prompt{margin:0 0 .7rem;font-size:.95rem;color:#d7e0d5}.options{display:grid;gap:.35rem}.option{display:flex;gap:.5rem;align-items:flex-start;border:1px solid var(--line);background:var(--panel);padding:.45rem .6rem;border-radius:2px;font-size:.9rem}.option[data-default=true]{border-color:color-mix(in srgb,var(--rec) 60%,var(--line));box-shadow:inset 3px 0 0 var(--rec)}.option .idx{color:var(--muted);font:500 .72rem/1.4 IBM Plex Mono,ui-monospace,monospace;min-width:1rem}.empty{margin:0;color:var(--muted);font-size:.9rem}.raw{margin-top:.75rem;color:var(--muted);font-size:.82rem}.raw summary{cursor:pointer;font:500 .72rem/1 IBM Plex Mono,ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.raw pre,pre{margin:.55rem 0 0;padding:.85rem 1rem;overflow:auto;background:var(--code);border:1px solid var(--line);border-radius:3px;font:.78rem/1.45 IBM Plex Mono,ui-monospace,monospace;color:#c5d1c4;white-space:pre-wrap}code{font:.84em/1.4 IBM Plex Mono,ui-monospace,monospace}:not(pre)>code{background:var(--code);border:1px solid var(--line);border-radius:3px;padding:.05em .3em}table.api{border-collapse:collapse;width:100%;font-size:.9rem;margin:.5rem 0 .75rem}table.api th,table.api td{text-align:left;border-bottom:1px solid var(--line);padding:.45rem .75rem .45rem 0;vertical-align:top}table.api th{color:var(--muted);font-weight:500}footer{border-top:1px solid var(--line);padding:1.5rem 0 3.5rem;font-size:.92rem}footer p{max-width:46rem}.muted{color:var(--muted)}@media(max-width:560px){.hero,#demo,#install,#schema,#numbers,#how,footer{width:min(100% - 1.25rem,68rem)}.message,.editor{min-height:12rem;font-size:.84rem}}
