:root{color-scheme:light;--bg: #fbfbf9;--panel: #fff;--bg-soft: #f5f5f1;--ink: #1b1b1b;--muted: #6b6b6b;--line: #e6e6e2;--line-strong: #c9c9c4;--accent: #2f6f4f;--accent-strong: #285f44;--accent-wash: rgba(47, 111, 79, .07);--err: #a4362f;--err-bright: #d23;--warn: #996a00;--warn-bright: #e0a200;--ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}header{display:flex;align-items:center;gap:.7rem;padding:.75rem 1.4rem;border-bottom:1px solid var(--line)}header h1{font-family:var(--ui);font-size:1rem;font-weight:600;letter-spacing:-.01em;margin:0}header h1 b{color:var(--accent);font-weight:600}.logo-link{display:inline-flex;align-items:center;text-decoration:none}.logo{display:block}.tag{font-family:var(--ui);font-size:.78rem;color:var(--muted)}.grow{flex:1}.controls{display:flex;align-items:center;gap:.8rem}.ctl-link{font-family:var(--ui);font-size:.82rem;color:var(--muted);text-decoration:none;cursor:pointer;transition:color .15s ease}.ctl-link:hover{color:var(--accent)}.ctl-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.doc-link{color:var(--accent);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:2px;transition:text-decoration-color .15s ease}.doc-link:hover{text-decoration-color:var(--accent)}.doc-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.tk-kw{color:#8a3fa0}.tk-ty,.tk-ctor{color:#2660a4}.tk-num,.tk-lit{color:#9a6a00}.tk-str{color:#3a7a55}.tk-com{color:#9aa0a6;font-style:italic}.tk-op{color:var(--muted)}body{display:flex;flex-direction:column;font-family:var(--ui);overflow:hidden}html{overflow:hidden}header a#gh{display:inline-flex;align-items:center;color:var(--muted);transition:color .15s ease}header a#gh:hover{color:var(--accent)}header a#gh svg{width:18px;height:18px}select,button,.navbtn{font-family:var(--ui);font-size:13px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 11px;cursor:pointer;transition:border-color .12s,background .12s}select{max-width:190px}.navbtn{display:inline-flex;align-items:center;text-decoration:none}select:hover,button:hover,.navbtn:hover{border-color:var(--line-strong)}select:focus-visible,button:focus-visible,.navbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:active,.navbtn:active{background:var(--bg-soft)}button:disabled{opacity:.45;cursor:default}button.run{color:#fff;background:var(--accent);border-color:var(--accent);font-weight:500;display:inline-flex;align-items:center;gap:5px}button.run svg{width:14px;height:14px}button.run:hover{background:var(--accent-strong)}button.run:disabled{background:var(--accent)}button.toggle.active{color:#fff;background:var(--accent);border-color:var(--accent)}main{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr);min-height:0}main.show-sigs{grid-template-columns:1fr 1fr minmax(200px,.68fr)}main.show-ir{grid-template-columns:1fr 1fr minmax(280px,1.05fr)}.pane{display:flex;flex-direction:column;min-width:0;min-height:0}.pane+.pane{border-left:1px solid var(--line)}.sigpane{display:none}main.show-sigs .sigpane{display:flex}.irpane{display:none;flex-direction:column}main.show-ir .irpane{display:flex}.irhalf{flex:1 1 50%;display:flex;flex-direction:column;min-height:0}.irhalf+.irhalf{border-top:1px solid var(--line)}.irhalf .out{font-size:12.5px;line-height:1.5}.label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:9px 18px;border-bottom:1px solid var(--line);background:var(--bg-soft)}.out{flex:1;margin:0;padding:18px;border:0;width:100%;font-family:var(--mono);font-size:13.5px;line-height:1.55;color:var(--ink);background:var(--panel);overflow:auto;tab-size:2;white-space:pre-wrap;word-break:break-word}.out.err{color:var(--err)}.out.dim{color:var(--muted)}.editor{flex:1;display:flex;min-height:0;overflow:hidden}.ed-shared{font-family:var(--mono);font-size:13.5px;line-height:1.55;tab-size:2;white-space:pre;word-wrap:normal}.gutter{flex:none;min-width:3.4em;overflow:hidden;border-right:1px solid var(--line);background:var(--bg-soft)}.gutter .lines{padding:18px 10px 18px 0;color:var(--muted);text-align:right}.gutter .ln{position:relative}.gutter .ln.err{color:var(--err);font-weight:600}.gutter .ln.warn{color:var(--warn);font-weight:600}.gutter .ln.err:before,.gutter .ln.warn:before{content:"";position:absolute;left:3px;top:50%;width:6px;height:6px;transform:translateY(-50%);border-radius:50%}.gutter .ln.err:before{background:var(--err-bright)}.gutter .ln.warn:before{background:var(--warn-bright)}.codewrap{position:relative;flex:1;min-width:0}.hl,#src{position:absolute;inset:0;margin:0;border:0;padding:18px;overflow:auto}.hl{color:var(--ink);pointer-events:none;background:var(--panel)}#src{color:transparent;caret-color:var(--ink);background:transparent;resize:none;outline:none}.hl .squig{text-decoration:var(--err-bright) wavy underline;text-decoration-skip-ink:none}.hl .warn-squig{text-decoration:var(--warn-bright) wavy underline;text-decoration-skip-ink:none}.tip{position:fixed;z-index:20;display:none;max-width:360px;font-family:var(--ui);font-size:12px;line-height:1.4;color:#fff;background:#2a2a2a;border-radius:6px;padding:6px 9px;pointer-events:none;box-shadow:0 4px 14px #0000002e}.tip b{color:#ff9a93;font-weight:600}@media(max-width:720px){html,body{height:auto;min-height:100%;overflow:auto}header{flex-wrap:wrap;gap:8px 12px;padding:.75rem 1rem}header .tag{flex-basis:100%;order:5}header .grow{display:none}header a#gh{margin-left:auto}.controls{flex-basis:100%;flex-wrap:wrap;gap:8px}.controls select{flex:1 1 auto;min-width:0;max-width:none}.controls button{flex:0 1 auto;min-width:0}select,button{font-size:15px;padding:9px 14px}main{display:flex;flex-direction:column}.pane{min-height:0}.pane+.pane{border-left:0;border-top:1px solid var(--line)}.pane:first-child .editor{height:55vh;min-height:280px}.pane:nth-child(2){min-height:160px}.out{font-size:14px;padding:14px}#dump,#ir,.sigpane{display:none}}@media(max-width:480px){.controls select{flex:1 1 100%}.controls button{flex:1 1 auto;padding:9px 10px;justify-content:center}}
