:root{--accent-50:#eef4ff;--accent-100:#dbe6fe;--accent-200:#bfd3fe;--accent-300:#93b4fd;--accent-400:#608dfa;--accent-500:#3b6bf6;--accent-600:#254ceb;--accent-700:#1d3ad8;--accent-800:#1e32af;--accent-900:#1e318a;--gray-0:#fff;--gray-25:#fcfcfd;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e6ebf1;--gray-300:#d3dbe4;--gray-400:#9fabbc;--gray-500:#6d7b8d;--gray-600:#4e5b6b;--gray-700:#374252;--gray-800:#232c39;--gray-900:#151b24;--gray-950:#0c1016;--accept-surface:#e7f7ee;--accept-border:#9fdcb9;--accept-fg:#0f6b3d;--accept-solid:#12844c;--reject-surface:#fdeceb;--reject-border:#f4b7b2;--reject-fg:#a3231a;--reject-solid:#c62a20;--warn-surface:#fdf4e3;--warn-border:#f0d49a;--warn-fg:#8a5a08;--info-surface:var(--accent-50);--info-border:var(--accent-200);--info-fg:var(--accent-800);--canvas:var(--gray-100);--surface:var(--gray-0);--surface-raised:var(--gray-0);--surface-sunken:var(--gray-50);--surface-inverted:var(--gray-900);--border:var(--gray-200);--border-strong:var(--gray-300);--border-inverted:#ffffff24;--hover:var(--gray-50);--hover-strong:var(--gray-100);--border-hover:var(--gray-400);--track:var(--gray-200);--media-bg:var(--gray-0);--text:var(--gray-900);--text-muted:var(--gray-600);--text-subtle:#64707f;--text-on-accent:#fff;--text-inverted:var(--gray-50);--text-inverted-muted:#ffffffa8;--node-fill:var(--gray-0);--node-stroke:var(--gray-700);--node-text:var(--gray-900);--node-active-fill:var(--accent-500);--node-active-stroke:var(--accent-700);--node-active-text:#fff;--edge:var(--gray-400);--edge-active:var(--accent-500);--edge-label:var(--gray-800);--diagram-canvas:var(--gray-50);--diagram-grid:var(--gray-200);--font-sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--text-2xs:0.6875rem;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:4px;--radius:6px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #10182814,0 1px 2px #1018280a;--shadow-md:0 4px 8px -2px #10182814,0 2px 4px -2px #1018280a;--shadow-lg:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;--ring:0 0 0 3px var(--accent-200);--ease:cubic-bezier(0.4,0,0.2,1);--duration-fast:100ms;--duration:160ms;--header-height:56px;--panel-width:380px;--content-max:1600px;color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--canvas:#181d26;--surface:#212834;--surface-raised:#2a3240;--surface-sunken:#1c222c;--surface-inverted:#2a3240;--border:#313a49;--border-strong:#435062;--border-inverted:#ffffff1a;--hover:#2a3240;--hover-strong:#323b4b;--border-hover:#55647a;--track:#323b4b;--media-bg:#e8edf4;--text:#eaeff6;--text-muted:#aab7c7;--text-subtle:#8b97a8;--text-inverted:#eaeff6;--text-inverted-muted:#fff9;--accent-50:#1b2942;--accent-100:#22355a;--accent-200:#2b4478;--accent-300:#3960a8;--accent-400:#4a77dd;--accent-500:#6a93f7;--accent-600:#8aabfa;--accent-700:#a8c2fb;--accent-800:#c6d8fd;--accent-900:#e0eaff;--text-on-accent:#101722;--accept-surface:#163427;--accept-border:#2e6a48;--accept-fg:#72d9a0;--accept-solid:#1d9e5e;--reject-surface:#381d1a;--reject-border:#78352e;--reject-fg:#f4948b;--reject-solid:#d1483c;--warn-surface:#342917;--warn-border:#6b5525;--warn-fg:#e8bd69;--info-surface:var(--accent-50);--info-border:var(--accent-200);--info-fg:#a8c2fb;--node-fill:#2a3240;--node-stroke:#8e9bad;--node-text:#eaeff6;--node-active-fill:var(--accent-500);--node-active-stroke:var(--accent-600);--node-active-text:#0c1016;--edge:#6b7889;--edge-active:var(--accent-500);--edge-label:#d4dce7;--diagram-canvas:#1c222c;--diagram-grid:#2f3846;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000073,0 1px 2px #0000004d;--shadow-md:0 4px 8px -2px #00000080,0 2px 4px -2px #0000004d;--shadow-lg:0 12px 16px -4px #0000008c,0 4px 6px -2px #0000004d;--ring:0 0 0 3px var(--accent-300)}}:root[data-theme=dark]{--canvas:#181d26;--surface:#212834;--surface-raised:#2a3240;--surface-sunken:#1c222c;--surface-inverted:#2a3240;--border:#313a49;--border-strong:#435062;--border-inverted:#ffffff1a;--hover:#2a3240;--hover-strong:#323b4b;--border-hover:#55647a;--track:#323b4b;--media-bg:#e8edf4;--text:#eaeff6;--text-muted:#aab7c7;--text-subtle:#8b97a8;--text-inverted:#eaeff6;--text-inverted-muted:#fff9;--accent-50:#1b2942;--accent-100:#22355a;--accent-200:#2b4478;--accent-300:#3960a8;--accent-400:#4a77dd;--accent-500:#6a93f7;--accent-600:#8aabfa;--accent-700:#a8c2fb;--accent-800:#c6d8fd;--accent-900:#e0eaff;--text-on-accent:#101722;--accept-surface:#163427;--accept-border:#2e6a48;--accept-fg:#72d9a0;--accept-solid:#1d9e5e;--reject-surface:#381d1a;--reject-border:#78352e;--reject-fg:#f4948b;--reject-solid:#d1483c;--warn-surface:#342917;--warn-border:#6b5525;--warn-fg:#e8bd69;--info-surface:var(--accent-50);--info-border:var(--accent-200);--info-fg:#a8c2fb;--node-fill:#2a3240;--node-stroke:#8e9bad;--node-text:#eaeff6;--node-active-fill:var(--accent-500);--node-active-stroke:var(--accent-600);--node-active-text:#0c1016;--edge:#6b7889;--edge-active:var(--accent-500);--edge-label:#d4dce7;--diagram-canvas:#1c222c;--diagram-grid:#2f3846;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000073,0 1px 2px #0000004d;--shadow-md:0 4px 8px -2px #00000080,0 2px 4px -2px #0000004d;--shadow-lg:0 12px 16px -4px #0000008c,0 4px 6px -2px #0000004d;--ring:0 0 0 3px var(--accent-300)}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0ms;--duration:0ms}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--canvas);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal)}body,figure,h1,h2,h3,h4,p{margin:0}img,svg{max-width:100%}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.95em}button,input,select,textarea{color:inherit;font:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}.scroll-y{overflow-y:auto;overscroll-behavior:contain}*{scrollbar-color:var(--border-strong) #0000;scrollbar-width:thin}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:3px solid #0000;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover);background-clip:content-box}.btn{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:var(--text-base);font-weight:var(--weight-medium);gap:var(--space-2);height:32px;justify-content:center;line-height:1;padding:0 var(--space-3);transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease);white-space:nowrap}.btn:hover:not(:disabled){background:var(--hover);border-color:var(--border-hover)}.btn:active:not(:disabled){background:var(--hover-strong)}.btn:disabled{cursor:not-allowed;opacity:.45}.btn-primary{background:var(--accent-600);border-color:var(--accent-600);color:var(--text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-700);border-color:var(--accent-700)}.btn-primary:active:not(:disabled){background:var(--accent-800)}.btn-ghost{background:#0000;border-color:#0000;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--hover-strong);border-color:#0000;color:var(--text)}.btn-danger{background:var(--surface);border-color:var(--reject-border);color:var(--reject-fg)}.btn-danger:hover:not(:disabled){background:var(--reject-surface);border-color:var(--reject-solid)}.btn-sm{font-size:var(--text-sm);height:26px;padding:0 var(--space-2)}.btn-lg{height:38px;padding:0 var(--space-5)}.btn-icon{padding:0;width:32px}.btn-icon.btn-sm{width:26px}.btn-row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.field{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);display:block;font-size:var(--text-base);height:32px;padding:0 var(--space-3);transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease);width:100%}.field::placeholder{color:var(--text-subtle)}.field:focus{border-color:var(--accent-500);box-shadow:var(--ring);outline:none}.field:disabled{background:var(--surface-sunken);color:var(--text-subtle);cursor:not-allowed}.field-mono{font-family:var(--font-mono)}.field-sm{font-size:var(--text-sm);height:26px;padding:0 var(--space-2)}select.field{cursor:pointer;padding-right:var(--space-6)}.label{color:var(--text-muted);display:block;font-size:var(--text-sm);font-weight:var(--weight-medium);margin-bottom:var(--space-1)}.eyebrow{display:block;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase}.eyebrow,.hint{color:var(--text-subtle)}.hint{font-size:var(--text-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.card-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-4)}.card-title{font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-tight)}.card-body{padding:var(--space-4)}.card-body-flush{padding:0}.chip{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--weight-medium);gap:var(--space-2);padding:var(--space-1) var(--space-3);transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease);white-space:nowrap}.chip:hover{background:var(--hover);border-color:var(--border-hover);color:var(--text)}.chip.is-active,.chip[aria-pressed=true]{background:var(--accent-600);border-color:var(--accent-600);color:var(--text-on-accent)}.token{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);display:inline-flex;font-family:var(--font-mono);font-size:var(--text-sm);height:24px;justify-content:center;min-width:24px;padding:0 var(--space-2)}.token,.verdict{align-items:center}.verdict{border:1px solid #0000;border-radius:var(--radius);display:flex;font-size:var(--text-base);font-weight:var(--weight-semibold);gap:var(--space-2);padding:var(--space-2) var(--space-3)}.verdict-accept{background:var(--accept-surface);border-color:var(--accept-border);color:var(--accept-fg)}.verdict-reject{background:var(--reject-surface);border-color:var(--reject-border);color:var(--reject-fg)}.verdict-note{font-size:var(--text-sm);font-weight:var(--weight-normal);margin-left:auto;opacity:.85}.dot{background:var(--border-hover);border-radius:var(--radius-full);flex:0 0 auto;height:8px;width:8px}.dot-accept{background:var(--accept-solid)}.dot-reject{background:var(--reject-solid)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;font-size:var(--text-base);width:100%}.table td,.table th{border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-3);text-align:left;white-space:nowrap}.table thead th{background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.is-current{background:var(--accent-50)}.table tbody tr.is-current td:first-child{box-shadow:inset 3px 0 0 var(--accent-500)}.table .cell-mono{font-family:var(--font-mono)}.empty{align-items:center;color:var(--text-subtle);display:flex;flex-direction:column;font-size:var(--text-sm);gap:var(--space-2);justify-content:center;padding:var(--space-8) var(--space-4);text-align:center}.divider{background:var(--border);border:0;height:1px;margin:var(--space-4) 0}.stack{flex-direction:column;gap:var(--space-3)}.row,.stack{display:flex}.row{align-items:center;gap:var(--space-2)}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media (pointer:coarse){.btn-sm{height:32px;padding:0 var(--space-3)}.btn-icon.btn-sm{padding:0;width:32px}.chip{padding:var(--space-2) var(--space-3)}.field-sm{height:32px}}.app{background:var(--canvas);display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0);padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}.app-header{grid-gap:var(--space-4);align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:grid;flex:0 0 auto;gap:var(--space-4);grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);height:calc(var(--header-height) + env(safe-area-inset-top, 0px));padding:env(safe-area-inset-top,0) var(--space-4) 0}.app-header-start{gap:var(--space-2);min-width:0}.app-header-start,.app-mark{align-items:center;display:flex}.app-mark{border:1.5px solid var(--accent-600);border-radius:var(--radius-full);color:var(--accent-600);flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);height:26px;justify-content:center;line-height:1;width:26px}.app-mark sub{font-size:.7em}.app-name{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav{align-items:center;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:var(--space-1);padding:3px}.app-nav-btn{background:#0000;border:0;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-semibold);height:26px;letter-spacing:.01em;padding:0 var(--space-3);transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.app-nav-btn:hover{background:var(--track);color:var(--text)}.app-nav-btn.is-active{background:var(--surface);box-shadow:var(--shadow-xs);color:var(--accent-700)}.app-nav-sep{background:var(--border-strong);height:16px;margin:0 var(--space-1);width:1px}.app-header-end{justify-content:flex-end}.app-header-end,.app-tools{align-items:center;display:flex;gap:var(--space-2)}.app-tools.is-hidden{pointer-events:none;visibility:hidden}.app-tool-btn{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:var(--text-sm);font-weight:var(--weight-medium);gap:var(--space-1);height:28px;padding:0 var(--space-2);transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease);white-space:nowrap}.app-tool-btn:hover{background:var(--hover);border-color:var(--border-hover);color:var(--text)}.app-tool-btn-accent{background:var(--accent-600);border-color:var(--accent-600);color:var(--text-on-accent)}.app-tool-btn-accent:hover{background:var(--accent-700);border-color:var(--accent-700);color:var(--text-on-accent)}.app-main{flex:1 1;min-height:0;overflow:hidden}@media (max-width:1080px){.app-tool-label{display:none}.app-tool-btn{padding:0 var(--space-2)}}@media (max-width:860px){.app-header{gap:var(--space-2);grid-template-areas:"start end" "nav   nav";grid-template-columns:1fr auto;height:auto;padding:calc(var(--space-2) + env(safe-area-inset-top, 0px)) var(--space-3) var(--space-2)}.app-header-start{grid-area:start}.app-header-end{grid-area:end}.app-nav{grid-area:nav;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}}.app-theme-btn{justify-content:center;padding:0;width:28px}.sim{background:var(--canvas);display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.sim-toolbar{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);padding:var(--space-3) var(--space-4)}.sim-identity{display:flex;flex-direction:column;gap:1px;margin-right:auto;min-width:0}.sim-title{font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:-.01em}.sim-subtitle,.sim-title{line-height:var(--leading-tight)}.sim-subtitle{color:var(--text-subtle);font-size:var(--text-sm)}.sim-run{align-items:center;display:flex;gap:var(--space-2)}.sim-run .field{font-family:var(--font-mono);width:240px}.sim-verdict{min-width:0}.sim-examples{align-items:baseline;background:var(--surface);border-bottom:1px solid var(--border);display:flex;gap:var(--space-3);padding:var(--space-2) var(--space-4)}.sim-examples-label{flex:0 0 auto;padding-top:2px}.sim-examples-list{display:flex;flex-wrap:wrap;gap:var(--space-2);min-width:0}.sim-example-note{align-items:flex-start;background:var(--info-surface);border-bottom:1px solid var(--border);color:var(--info-fg);display:flex;font-size:var(--text-sm);gap:var(--space-2);line-height:var(--leading-normal);padding:var(--space-2) var(--space-4)}.sim-body{grid-template-columns:minmax(0,1fr) var(--panel-width)}.sim-body,.sim-stage{display:grid;min-height:0;overflow:hidden}.sim-stage{grid-gap:var(--space-3);grid-template-rows:minmax(240px,1fr) auto;min-width:0}.sim-panel,.sim-stage{gap:var(--space-3);padding:var(--space-4)}.sim-panel{background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.sim-panel>*{flex:0 0 auto}.sim-diagram-card{display:flex;flex-direction:column;min-height:0}.sim-diagram-card>.card-body{display:flex;flex:1 1 auto;min-height:0;padding:var(--space-3)}.sim-diagram-card .sd-wrap{flex:1 1 auto}.sim-transport{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.sim-transport-group{align-items:center;display:flex;gap:var(--space-2)}.sim-transport-readout{align-items:center;display:flex;gap:var(--space-4);margin-left:auto}.sim-readout{display:flex;flex-direction:column;gap:1px;line-height:var(--leading-tight)}.sim-readout-value{font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--weight-semibold)}.sim-speed{align-items:center;display:flex;gap:var(--space-2)}.sim-speed input[type=range]{accent-color:var(--accent-600);width:110px}.sim-tape-strip{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-wrap:wrap;font-family:var(--font-mono);gap:3px;padding:var(--space-2) var(--space-3)}.sim-symbol{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-subtle);display:flex;font-size:var(--text-base);height:26px;justify-content:center;min-width:24px;padding:0 var(--space-1)}.sim-symbol.is-consumed{background:var(--hover-strong);color:var(--text-muted)}.sim-symbol.is-current{background:var(--accent-600);border-color:var(--accent-600);color:var(--text-on-accent);font-weight:var(--weight-semibold)}.sim-step-note{color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.sim-step-note strong{color:var(--text);font-family:var(--font-mono);font-weight:var(--weight-semibold)}.sim-challenge{align-items:center;background:var(--warn-surface);border-bottom:1px solid var(--warn-border);color:var(--warn-fg);display:flex;flex-wrap:wrap;font-size:var(--text-base);gap:var(--space-3);padding:var(--space-3) var(--space-4)}.sim-challenge-text{margin-right:auto}@media (max-width:1180px){.sim-body{grid-template-columns:minmax(0,1fr) 320px}}@media (max-width:980px){.sim{height:auto;min-height:100%}.sim,.sim-body{grid-template-rows:auto auto}.sim-body{grid-template-columns:minmax(0,1fr);overflow:visible}.sim-stage{display:flex;flex-direction:column;overflow:visible}.sim-stage>.card{flex:0 0 auto}.sim-stage>.sim-diagram-card{flex:0 0 380px}.sim-panel{border-left:0;border-top:1px solid var(--border);overflow:visible}.sim-run{flex:1 1 100%}.sim-run .field{flex:1 1 auto;min-width:0;width:auto}.sim-identity{margin-right:0;width:100%}}.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.sd-wrap{background:var(--diagram-canvas);border-radius:var(--radius);overflow:hidden;width:100%}.sd-node{align-items:center;background:var(--node-fill);border:2px solid var(--node-stroke);border-radius:var(--radius-full);color:var(--node-text);display:flex;font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--weight-semibold);height:64px;justify-content:center;position:relative;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease);width:64px}.sd-node-label{line-height:1}.sd-node.is-accept:after{border:2px solid;border-radius:var(--radius-full);content:"";inset:4px;opacity:.85;pointer-events:none;position:absolute}.sd-node.is-current{background:var(--node-active-fill);border-color:var(--node-active-stroke);box-shadow:0 0 0 4px var(--accent-200);color:var(--node-active-text)}.sd-start-arrow{height:12px;margin-right:4px;overflow:visible;pointer-events:none;position:absolute;right:100%;top:50%;transform:translateY(-50%);width:28px}.sd-start-arrow path{fill:none;stroke:var(--node-stroke);stroke-width:2}.sd-start-arrow .sd-start-arrow-head{fill:var(--node-stroke);stroke:none}.sd-handle{background:#0000;border:0;height:1px;min-height:0;min-width:0;opacity:0;pointer-events:none;width:1px}.sd-node-delete{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;height:20px;justify-content:center;line-height:1;opacity:0;padding:0;position:absolute;right:-6px;top:-6px;transition:opacity var(--duration) var(--ease),color var(--duration) var(--ease),border-color var(--duration) var(--ease);width:20px}.sd-node-delete:focus-visible,.sd-node:hover .sd-node-delete{opacity:1}.sd-node-delete:hover{border-color:var(--reject-solid);color:var(--reject-fg)}.sd-edge-label{background:var(--diagram-canvas);border-radius:var(--radius-sm);color:var(--edge-label);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1.4;padding:1px var(--space-2);pointer-events:none;position:absolute;white-space:nowrap}.sd-edge-label.is-active{background:var(--accent-600);color:var(--text-on-accent)}.sd-wrap .react-flow__controls{border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.sd-wrap .react-flow__controls-button{fill:var(--text-muted);background:var(--surface);border:none;border-bottom:1px solid var(--border);height:26px;width:26px}.sd-wrap .react-flow__controls-button:hover{fill:var(--text);background:var(--hover-strong)}.sd-wrap .react-flow__edge.animated path{stroke-dasharray:6 4;animation:sd-dash .6s linear infinite}@keyframes sd-dash{to{stroke-dashoffset:-10}}@media (prefers-reduced-motion:reduce){.sd-wrap .react-flow__edge.animated path{animation:none}}.sd-edge-label-line{display:block;text-align:center}.sd-node-shell{display:flex;flex-direction:column;padding-bottom:30px;width:64px}.sd-edge-label-line.is-overflow{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-normal);opacity:.75}@media (hover:none){.sd-node-delete{opacity:1}}@media (pointer:coarse){.sd-node-delete{font-size:16px;height:26px;right:-8px;top:-8px;width:26px}.sd-wrap .react-flow__controls-button{height:34px;width:34px}}.collapsible-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.collapsible-header{align-items:center;background:#0000;border:0;color:var(--text);cursor:pointer;display:flex;gap:var(--space-2);justify-content:space-between;padding:var(--space-2) var(--space-3);text-align:left;transition:background var(--duration) var(--ease);width:100%}.collapsible-header:hover{background:var(--surface-sunken)}.collapsible-header[aria-expanded=true]{border-bottom:1px solid var(--border)}.collapsible-title{font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-tight)}.collapsible-chevron{color:var(--text-subtle);flex:0 0 auto;transition:transform var(--duration) var(--ease)}.collapsible-header[aria-expanded=true] .collapsible-chevron{transform:rotate(180deg)}.collapsible-content{padding:var(--space-3)}.tc-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.tc-item{align-items:center;border-radius:var(--radius-sm);display:flex;gap:var(--space-2);padding:var(--space-1) var(--space-2);transition:background var(--duration) var(--ease)}.tc-item:hover{background:var(--surface-sunken)}.tc-input{color:var(--text);flex:1 1 auto;font-family:var(--font-mono);font-size:var(--text-base);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tc-expected{flex:0 0 auto;font-size:var(--text-xs);font-weight:var(--weight-medium)}.tc-expected.is-accept{color:var(--accept-fg)}.tc-expected.is-reject{color:var(--reject-fg)}.tc-load{flex:0 0 auto;opacity:0;transition:opacity var(--duration) var(--ease)}.tc-item:hover .tc-load,.tc-load:focus-visible{opacity:1}@media (hover:none){.tc-load{opacity:1}}@media (pointer:coarse){.tc-item{padding:var(--space-2)}.tc-load{height:32px;padding:0 var(--space-3)}}.transitions-editor{display:flex;flex-direction:column;gap:var(--space-3)}.transitions-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:260px;overflow-y:auto;overscroll-behavior:contain}.transition-item{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:var(--space-2);justify-content:space-between;padding:var(--space-1) var(--space-2);transition:border-color var(--duration) var(--ease)}.transition-item:hover{border-color:var(--border-strong)}.transition-text{align-items:center;color:var(--text);display:flex;font-family:var(--font-mono);font-size:var(--text-base);gap:1px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delta-symbol{color:var(--accent-600);font-weight:var(--weight-semibold)}.equals,.separator{color:var(--text-subtle);padding:0 var(--space-1)}.transition-actions{align-items:center;display:flex;flex:0 0 auto;gap:var(--space-1)}.transition-add-form{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2)}.transition-add-form input,.transition-add-form select{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:var(--text-base);height:28px;min-width:0;padding:0 var(--space-2)}.transition-add-form input:focus,.transition-add-form select:focus{border-color:var(--accent-500);box-shadow:var(--ring);outline:none}.editor-header-simple .btn-add,.editor-header-simple .btn-add-state{border-style:solid;flex:0 0 auto;padding:0 var(--space-3);width:auto}.editor-header-simple .editor-subtitle{min-width:0}.states-editor{display:flex;flex-direction:column;gap:var(--space-3)}.editor-header-simple{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between}.editor-subtitle{color:var(--text-subtle);font-size:var(--text-sm)}.states-list{display:flex;flex-direction:column;gap:var(--space-1)}.state-item{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:var(--space-2);justify-content:space-between;padding:var(--space-1) var(--space-2);transition:border-color var(--duration) var(--ease)}.state-item:hover{border-color:var(--border-strong)}.state-info{align-items:center;display:flex;gap:var(--space-2);min-width:0}.state-name,.symbol-name{color:var(--text);font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--weight-medium)}.state-badges{display:flex;gap:var(--space-1)}.badge{align-items:center;border:1px solid #0000;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-2xs);font-weight:var(--weight-semibold);height:18px;letter-spacing:.03em;padding:0 var(--space-2);text-transform:uppercase;white-space:nowrap}.badge-start{background:var(--info-surface);border-color:var(--info-border);color:var(--info-fg)}.badge-final{background:var(--accept-surface);border-color:var(--accept-border);color:var(--accept-fg)}.state-actions{align-items:center;display:flex;flex:0 0 auto;gap:var(--space-1)}.btn-toggle{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-medium);height:24px;padding:0 var(--space-2);transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease);white-space:nowrap}.btn-toggle:hover{background:var(--surface-sunken);border-color:var(--border-hover);color:var(--text)}.btn-icon-delete{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-sm);color:var(--text-subtle);cursor:pointer;display:inline-flex;height:24px;justify-content:center;padding:0;transition:background var(--duration) var(--ease),color var(--duration) var(--ease);width:24px}.btn-icon-delete:hover{background:var(--reject-surface);color:var(--reject-fg)}.btn-add,.btn-add-state{align-items:center;background:#0000;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:var(--weight-medium);gap:var(--space-1);height:30px;justify-content:center;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease);width:100%}.btn-add-state:hover,.btn-add:hover{background:var(--accent-50);border-color:var(--accent-500);color:var(--accent-700)}.state-add-form{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:var(--space-2)}.form-inputs,.state-add-form{display:flex;gap:var(--space-2)}.input-small,.input-state{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);flex:1 1 auto;font-family:var(--font-mono);font-size:var(--text-base);height:28px;min-width:0;padding:0 var(--space-2)}.input-small:focus,.input-state:focus{border-color:var(--accent-500);box-shadow:var(--ring);outline:none}.btn-cancel,.btn-save{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);cursor:pointer;flex:1 1;font-size:var(--text-sm);font-weight:var(--weight-medium);height:28px;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.btn-save{background:var(--accent-600);border-color:var(--accent-600);color:var(--text-on-accent)}.btn-save:hover{background:var(--accent-700);border-color:var(--accent-700)}.btn-cancel:hover{background:var(--surface-sunken);border-color:var(--border-hover)}.empty-hint,.empty-state{color:var(--text-subtle);font-size:var(--text-sm);padding:var(--space-4) var(--space-2);text-align:center}.pda-stack{display:flex;flex-direction:column;gap:3px;list-style:none;margin:0;max-height:260px;overflow-y:auto;overscroll-behavior:contain;padding:0}.pda-stack-cell{align-items:center;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);display:flex;font-family:var(--font-mono);gap:var(--space-2);justify-content:space-between;padding:var(--space-1) var(--space-3)}.pda-stack-cell.is-top{background:var(--accent-50);border-color:var(--accent-300);color:var(--accent-800);font-weight:var(--weight-semibold)}.pda-stack-symbol{font-size:var(--text-md);line-height:1.6}.pda-stack-tag{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:.05em;opacity:.8;text-transform:uppercase}.cfg-rules{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding:0}.cfg-rule{align-items:baseline;border-radius:var(--radius-sm);display:flex;font-family:var(--font-mono);font-size:var(--text-base);gap:var(--space-2);padding:var(--space-1) var(--space-2)}.cfg-rule:nth-child(odd){background:var(--surface-sunken)}.cfg-rule-left{color:var(--accent-600);flex:0 0 auto;font-weight:var(--weight-semibold);min-width:1.5em}.cfg-rule-arrow{color:var(--text-subtle);flex:0 0 auto}.cfg-rule-right{color:var(--text);word-break:break-all}.cfg-tree-body{display:block;overflow:auto;overscroll-behavior:contain}.parse-tree-container{display:flex;justify-content:center;min-width:-webkit-min-content;min-width:min-content;padding:var(--space-4) var(--space-2)}.parse-tree-empty{align-items:center;color:var(--text-subtle);display:flex;font-size:var(--text-sm);justify-content:center;min-height:160px;width:100%}.hierarchical-tree,.tree-canvas{display:inline-block}.tree-root,.tree-root ul{display:flex;list-style:none;margin:0;padding:0;position:relative}.tree-root ul{padding-top:var(--space-5)}.tree-root li{align-items:center;display:flex;flex-direction:column;padding:var(--space-5) var(--space-2) 0;position:relative}.tree-root li:after,.tree-root li:before{border-top:1px solid var(--border-strong);content:"";height:var(--space-5);position:absolute;right:50%;top:0;width:50%}.tree-root li:after{border-left:1px solid var(--border-strong);left:50%;right:auto}.tree-root li:only-child:after,.tree-root li:only-child:before{display:none}.tree-root li:only-child{padding-top:var(--space-5)}.tree-root li:first-child:before,.tree-root li:last-child:after{border:0}.tree-root li:last-child:before{border-radius:0 var(--radius-sm) 0 0;border-right:1px solid var(--border-strong)}.tree-root li:first-child:after{border-radius:var(--radius-sm) 0 0 0}.tree-root ul:before{border-left:1px solid var(--border-strong);content:"";height:var(--space-5);left:50%;position:absolute;top:0;width:0}.tree-root>li{padding-top:0}.tree-root>li:after,.tree-root>li:before{display:none}.tree-symbol{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);display:inline-flex;font-family:var(--font-mono);font-size:var(--text-base);height:28px;justify-content:center;min-width:28px;padding:0 var(--space-2);white-space:nowrap}.tree-symbol-var{background:var(--accent-50);border-color:var(--accent-500);color:var(--accent-800);font-weight:var(--weight-semibold)}.tree-symbol-term{background:var(--surface-sunken);border-color:var(--border);color:var(--text-muted)}.tm-tape{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;min-height:0;width:100%}.tm-tape-track{overflow-x:auto;overscroll-behavior-x:contain;padding:var(--space-2) 0}.tm-tape-cells{display:flex;gap:2px;padding:0 var(--space-4);width:-webkit-max-content;width:max-content}.tm-tape-slot{align-items:center;display:flex;flex:0 0 auto;flex-direction:column;gap:var(--space-1);width:54px}.tm-tape-head{background:var(--accent-600);border-radius:var(--radius-sm);color:var(--text-on-accent);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-semibold);height:18px;line-height:18px;opacity:0;padding:0 var(--space-1);transition:opacity var(--duration) var(--ease);white-space:nowrap}.tm-tape-head.is-visible{opacity:1}.tm-tape-cell{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);display:flex;font-family:var(--font-mono);font-size:var(--text-lg);height:48px;justify-content:center;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease);width:100%}.tm-tape-cell.is-head{background:var(--accent-600);border-color:var(--accent-700);box-shadow:0 0 0 3px var(--accent-200);color:var(--text-on-accent);font-weight:var(--weight-semibold)}.tm-tape-cell.is-head.is-halted{background:var(--surface-sunken);border-color:var(--border-strong);box-shadow:none;color:var(--text)}.tm-tape-index{color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--text-2xs)}.program-editor{display:flex;flex-direction:column;gap:var(--space-3)}.editor-header-actions{display:flex;justify-content:flex-end}.rules-container{flex-direction:column;max-height:420px;overflow-y:auto;overscroll-behavior:contain}.rule-row,.rules-container{display:flex;gap:var(--space-2)}.rule-row{align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;padding:var(--space-2);transition:border-color var(--duration) var(--ease),background var(--duration) var(--ease)}.rule-row:hover{border-color:var(--border-strong)}.rule-row.executing,.rule-row.is-active{background:var(--accent-50);border-color:var(--accent-500)}.rule-content{flex-direction:column}.rule-content,.rule-info{display:flex;gap:var(--space-1);min-width:0}.rule-info{align-items:center;flex-wrap:wrap}.rule-label{color:var(--text-subtle);font-size:var(--text-xs)}.rule-badge{align-items:center;background:var(--surface-sunken);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);display:inline-flex;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-medium);height:20px;justify-content:center;min-width:22px;padding:0 var(--space-1)}.rule-badge-highlight{background:var(--accent-50);border-color:var(--accent-300);color:var(--accent-800)}.rule-arrow{color:var(--text-subtle);font-size:var(--text-sm);padding-left:var(--space-1)}.rule-actions{align-items:center;display:flex;flex:0 0 auto;gap:var(--space-1)}.btn-icon-sm,.icon-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-sm);color:var(--text-subtle);cursor:pointer;display:inline-flex;height:24px;justify-content:center;padding:0;transition:background var(--duration) var(--ease),color var(--duration) var(--ease);width:24px}.btn-icon-sm:hover,.icon-btn:hover{background:var(--surface-sunken);color:var(--text)}.icon-btn-danger:hover{background:var(--reject-surface);color:var(--reject-fg)}.rule-form{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.form-grid{grid-gap:var(--space-2);display:grid;gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr))}.form-row{display:flex;gap:var(--space-2)}.form-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.form-label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium)}.form-input,.form-select{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:var(--text-base);height:28px;padding:0 var(--space-2);width:100%}.form-input:focus,.form-select:focus{border-color:var(--accent-500);box-shadow:var(--ring);outline:none}.form-actions{display:flex;gap:var(--space-2)}.form-actions .btn{flex:1 1}.executing-indicator{align-items:center;color:var(--accent-700);display:inline-flex;font-size:var(--text-xs);font-weight:var(--weight-medium);gap:var(--space-1)}.pulse-dot{background:var(--accent-600);border-radius:var(--radius-full);height:6px;width:6px}.empty-state,.empty-state-hint{color:var(--text-subtle);font-size:var(--text-sm);padding:var(--space-4) var(--space-2);text-align:center}.program-editor .btn-outline{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.program-editor .btn-small{font-size:var(--text-sm);height:26px}.sim-stage-tm{grid-template-rows:auto minmax(0,1fr) auto}.tm-tape-card{flex:0 0 auto}.tm-trace-card{display:flex;flex-direction:column;min-height:0}.tm-trace-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.tm-trace-table td:first-child,.tm-trace-table th:first-child{color:var(--text-subtle);width:1%}@media (max-width:980px){.sim-stage-tm>.tm-trace-card{flex:0 0 auto;min-height:240px}}.tut{background:var(--canvas);display:grid;grid-template-columns:280px minmax(0,1fr);height:100%;min-height:0}.tut-sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-4);min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-4)}.tut-sidebar>*{flex:0 0 auto}.tut-machines{grid-gap:2px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);display:grid;gap:2px;grid-template-columns:repeat(5,minmax(0,1fr));padding:3px}.tut-machine{background:#0000;border:0;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:var(--space-1) 0;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.tut-machine:hover{background:var(--track);color:var(--text)}.tut-machine.is-active{background:var(--surface);box-shadow:var(--shadow-xs);color:var(--accent-700)}.tut-progress-group{display:flex;flex-direction:column;gap:var(--space-3)}.tut-progress-head{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:var(--space-1)}.tut-progress-count{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm)}.tut-progress-track{background:var(--track);border-radius:var(--radius-full);height:4px;overflow:hidden}.tut-progress-fill{background:var(--accent-600);border-radius:var(--radius-full);height:100%;transition:width var(--duration) var(--ease)}.tut-nav{display:flex;flex-direction:column;gap:var(--space-4)}.tut-group-title{align-items:center;color:var(--text-muted);display:flex;font-size:var(--text-xs);font-weight:var(--weight-semibold);gap:var(--space-2);letter-spacing:.06em;margin-bottom:var(--space-2);text-transform:uppercase}.tut-group-count{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:0;margin-left:auto}.tut-list{display:flex;flex-direction:column;gap:1px;list-style:none;margin:0;padding:0}.tut-item{align-items:center;background:#0000;border:0;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:flex;font-size:var(--text-base);gap:var(--space-2);padding:var(--space-2);text-align:left;transition:background var(--duration) var(--ease),color var(--duration) var(--ease);width:100%}.tut-item:hover{background:var(--surface-sunken);color:var(--text)}.tut-item.is-active{background:var(--accent-50);box-shadow:inset 2px 0 0 var(--accent-600);color:var(--accent-800);font-weight:var(--weight-medium)}.tut-item-title{line-height:var(--leading-tight);min-width:0}.tut-check{align-items:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-full);color:#0000;display:flex;flex:0 0 auto;height:16px;justify-content:center;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease);width:16px}.tut-check.is-done{background:var(--accept-solid);border-color:var(--accept-solid);color:var(--gray-0)}.tut-empty{padding:var(--space-2)}.tut-content{min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-8)}.tut-intro{max-width:62ch}.tut-intro-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:var(--leading-tight);margin:var(--space-1) 0 var(--space-4)}.tut-intro-hint{border-top:1px solid var(--border);margin-top:var(--space-6);padding-top:var(--space-4)}.tut-prose{color:var(--text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed);max-width:68ch}.tut-prose>*+*{margin-top:var(--space-4)}.tut-prose h1,.tut-prose h2,.tut-prose h3{color:var(--text);line-height:var(--leading-tight)}.tut-prose h2{font-size:var(--text-lg);margin-top:var(--space-8)}.tut-prose h2,.tut-prose h3{font-weight:var(--weight-semibold)}.tut-prose h3{font-size:var(--text-md);margin-top:var(--space-6)}.tut-prose ol,.tut-prose ul{padding-left:var(--space-5)}.tut-prose li+li{margin-top:var(--space-2)}.tut-prose code{border-radius:var(--radius-sm);color:var(--text);font-size:.9em;padding:1px var(--space-1)}.tut-prose code,.tut-prose pre{background:var(--surface-sunken)}.tut-prose pre{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;padding:var(--space-3)}.tut-prose pre code{background:none;padding:0}.tut-prose table{border-collapse:collapse;font-size:var(--text-base);width:100%}.tut-prose td,.tut-prose th{border:1px solid var(--border);padding:var(--space-2);text-align:left}.tut-prose th{background:var(--surface-sunken);color:var(--text);font-weight:var(--weight-semibold)}.tut-prose blockquote{border-left:3px solid var(--accent-300);color:var(--text-muted);margin:0;padding-left:var(--space-4)}.tut-prose img{background:var(--media-bg);border:1px solid var(--border);border-radius:var(--radius)}@media (max-width:900px){.tut{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow-y:auto}.tut-sidebar{border-bottom:1px solid var(--border);border-right:0;overflow:visible}.tut-content{overflow:visible;padding:var(--space-5) var(--space-4)}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_AMS-Regular.73ea273a72f4aca30ca5.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_AMS-Regular.d562e886c52f12660a41.woff) format("woff"),url(/automata_diags/static/media/KaTeX_AMS-Regular.853be92419a6c3766b9a.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/automata_diags/static/media/KaTeX_Caligraphic-Bold.a1abf90dfd72792a577a.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Caligraphic-Bold.d757c535a2e5902f1325.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Caligraphic-Bold.7489a2fbfb9bfe704420.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Caligraphic-Regular.d6484fce1ef428d5bd94.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Caligraphic-Regular.db074fa22cf224af93d7.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Caligraphic-Regular.7e873d3833eb108a0758.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/automata_diags/static/media/KaTeX_Fraktur-Bold.931d67ea207ab37ee693.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Fraktur-Bold.354501bac435c3264834.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Fraktur-Bold.4c761b3711973ab04edf.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Fraktur-Regular.172d3529b26f8cedef6b.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Fraktur-Regular.6fdf0ac577be0ba82a4c.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Fraktur-Regular.ed305b5434865e06ffde.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/automata_diags/static/media/KaTeX_Main-Bold.39890742bc957b368704.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Main-Bold.0c3b8929d377c0e9b2f3.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Main-Bold.8169508bf58f8bd92ad8.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/automata_diags/static/media/KaTeX_Main-BoldItalic.20f389c4120be058d80a.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Main-BoldItalic.428978dc7837d46de091.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Main-BoldItalic.828abcb200061cffbaae.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Main-Italic.fe2176f79edaa716e621.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Main-Italic.fd947498bc16392e76c2.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Main-Italic.fa675e5e4bec9eb250b6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Main-Regular.f650f111a3b890d116f1.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Main-Regular.4f35fbcc9ee8614c2bcc.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Main-Regular.9eba1d77abcf2aa6e94e.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/automata_diags/static/media/KaTeX_Math-BoldItalic.dcbcbd93bac0470b462d.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Math-BoldItalic.3f07ed67f06c720120ce.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Math-BoldItalic.bf2d440b3a42ea78a998.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Math-Italic.6d3d25f4820d0da8f01f.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Math-Italic.96759856b4e70f3a8338.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Math-Italic.8a5f936332e8028c7278.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/automata_diags/static/media/KaTeX_SansSerif-Bold.95591a929f0d32aa282a.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_SansSerif-Bold.b9cd458ac6d5889ff9c3.woff) format("woff"),url(/automata_diags/static/media/KaTeX_SansSerif-Bold.5b49f4993ae22d7975b4.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/automata_diags/static/media/KaTeX_SansSerif-Italic.7d393d382f3e7fb1c637.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_SansSerif-Italic.8d593cfaa96238d5e2f8.woff) format("woff"),url(/automata_diags/static/media/KaTeX_SansSerif-Italic.b257a18c016f37ee4543.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_SansSerif-Regular.cd5e231e0cc53b2cb2c0.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_SansSerif-Regular.02271ec5cb9f5b4588ac.woff) format("woff"),url(/automata_diags/static/media/KaTeX_SansSerif-Regular.2f7bc363fc5424ebda59.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Script-Regular.c81d1b2a4b75d3eded60.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Script-Regular.073b3402d036714b4370.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Script-Regular.fc9ba5249878cd8f8d88.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Size1-Regular.6eec866c69313624be60.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Size1-Regular.0108e89c9003e8c14ea3.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Size1-Regular.6de7d4b539221a49e9e2.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Size2-Regular.2960900c4f271311eb36.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Size2-Regular.3a99e70aee4076660d38.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Size2-Regular.57f5c1837853986ea1db.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Size3-Regular.e1951519f6f0596f7356.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Size3-Regular.7947224e8a9914fa332b.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Size3-Regular.8d6b6822586eea3d3b20.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Size4-Regular.e418bf257af1052628d8.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Size4-Regular.aeffd8025cba3647f1a6.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Size4-Regular.4ad7c7e8bb8d10a34bb7.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/automata_diags/static/media/KaTeX_Typewriter-Regular.c295e7f71970f03c0549.woff2) format("woff2"),url(/automata_diags/static/media/KaTeX_Typewriter-Regular.4c6b94fd1d07f8beff7c.woff) format("woff"),url(/automata_diags/static/media/KaTeX_Typewriter-Regular.c5c02d763c89380dcb4e.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.27"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.lesson-viewer{max-width:72ch}.lesson-header{align-items:baseline;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-4)}.lesson-header h1,.lesson-header h2{font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:var(--leading-tight)}.exercise-progress,.lesson-progress{color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--text-sm);white-space:nowrap}.example-content,.example-description,.explanation,.lesson-content,.lesson-description{color:var(--text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed)}.lesson-content>*+*,.lesson-description>*+*{margin-top:var(--space-4)}.lesson-content h2{font-size:var(--text-lg);margin-top:var(--space-8)}.lesson-content h2,.lesson-content h3{color:var(--text);font-weight:var(--weight-semibold)}.lesson-content h3{font-size:var(--text-md);margin-top:var(--space-6)}.hints-list,.key-points ul,.lesson-content ol,.lesson-content ul{padding-left:var(--space-5)}.lesson-content li+li{margin-top:var(--space-2)}.example-box,.hint-box,.key-points,.tips-box,.visual-example{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius);margin:var(--space-5) 0;padding:var(--space-4)}.example-box{border-left-color:var(--border-hover)}.key-points{background:var(--info-surface);border-left-color:var(--accent-500);color:var(--info-fg)}.hint-box,.tips-box{background:var(--warn-surface);border-left-color:var(--warn-border);color:var(--warn-fg)}.example-box h3,.example-box h4,.key-points h3,.key-points h4,.tips-box h3,.tips-box h4{color:inherit;font-size:var(--text-base);font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}.code-block{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--leading-normal);margin:var(--space-4) 0;overflow-x:auto;padding:var(--space-3);white-space:pre}.explanation code,.lesson-content code{background:var(--surface-sunken);border-radius:var(--radius-sm);color:var(--text);font-size:.9em;padding:1px var(--space-1)}.question-image,.visual-example img{background:var(--media-bg);border:1px solid var(--border);border-radius:var(--radius);display:block;margin:var(--space-3) auto;max-width:100%}.lesson-progress{align-items:center;display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.step-indicator{color:var(--text-subtle);flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-sm);white-space:nowrap}.step-text{color:var(--text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed)}.step-text>*+*{margin-top:var(--space-4)}.step-progress-bar{background:var(--track);border-radius:var(--radius-full);flex:1 1 auto;height:4px;overflow:hidden}.step-progress-fill{background:var(--accent-600);border-radius:var(--radius-full);height:100%;transition:width var(--duration) var(--ease)}.step-dots{display:flex;gap:var(--space-1)}.challenge-actions-box,.exercise-actions,.lesson-navigation{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-5)}.action-btn{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:var(--text-base);font-weight:var(--weight-medium);gap:var(--space-2);height:32px;justify-content:center;padding:0 var(--space-4);transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.action-btn:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border-hover)}.action-btn:disabled{cursor:not-allowed;opacity:.45}.action-btn.primary{background:var(--accent-600);border-color:var(--accent-600);color:var(--text-on-accent)}.action-btn.primary:hover:not(:disabled){background:var(--accent-700);border-color:var(--accent-700)}.action-btn.simulator-btn{margin-left:auto}.completion-badge{align-items:center;background:var(--accept-surface);border:1px solid var(--accept-border);border-radius:var(--radius-full);color:var(--accept-fg);display:inline-flex;font-size:var(--text-sm);font-weight:var(--weight-semibold);gap:var(--space-2);padding:var(--space-1) var(--space-3)}.exercise-viewer{max-width:72ch}.exercise-header{align-items:baseline;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-4)}.exercise-header h1,.exercise-header h2{font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:var(--leading-tight)}.challenge-description,.challenge-instructions,.exercise-content,.exercise-description{color:var(--text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed)}.exercise-content>*+*,.exercise-description>*+*{margin-top:var(--space-4)}.hands-on-question,.question-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin:var(--space-4) 0;padding:var(--space-4)}.question-indicator{color:var(--text-subtle);display:block;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;margin-bottom:var(--space-2);text-transform:uppercase}.question-text{color:var(--text);font-size:var(--text-md);line-height:var(--leading-normal);margin-bottom:var(--space-4)}.answer-options{display:flex;flex-direction:column;gap:var(--space-2)}.answer-options button,.answer-options label{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);cursor:pointer;display:flex;font-size:var(--text-base);gap:var(--space-3);padding:var(--space-2) var(--space-3);text-align:left;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease);width:100%}.answer-options button:hover,.answer-options label:hover{background:var(--surface-sunken);border-color:var(--border-hover)}.answer-options button.selected,.answer-options input:checked+.option-text,.answer-options label.selected{background:var(--accent-50);border-color:var(--accent-500);color:var(--accent-800)}.answer-options button.correct,.answer-options label.correct{background:var(--accept-surface);border-color:var(--accept-border);color:var(--accept-fg)}.answer-options button.incorrect,.answer-options label.incorrect{background:var(--reject-surface);border-color:var(--reject-border);color:var(--reject-fg)}.option-text{min-width:0}.answer-input,.short-answer-box input,.short-answer-box textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:var(--text-base);min-height:32px;padding:var(--space-2) var(--space-3);width:100%}.answer-input:focus,.short-answer-box input:focus,.short-answer-box textarea:focus{border-color:var(--accent-500);box-shadow:var(--ring);outline:none}.feedback-header{align-items:center;display:flex;font-weight:var(--weight-semibold);gap:var(--space-2);margin-bottom:var(--space-2)}.error-message,.success-message{align-items:flex-start;border:1px solid #0000;border-radius:var(--radius);display:flex;font-size:var(--text-base);gap:var(--space-2);line-height:var(--leading-normal);margin:var(--space-3) 0;padding:var(--space-3)}.success-message{background:var(--accept-surface);border-color:var(--accept-border);color:var(--accept-fg)}.error-message{background:var(--reject-surface);border-color:var(--reject-border);color:var(--reject-fg)}.pass-icon,.status-icon{color:var(--accept-solid);flex:0 0 auto}.fail-icon{color:var(--reject-solid);flex:0 0 auto}.exercise-summary,.score-indicator{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0;padding:var(--space-4)}.score-text{color:var(--text);font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.perfect-score{background:var(--accept-surface);border-color:var(--accept-border);color:var(--accept-fg)}.hint-section{margin:var(--space-4) 0}.hint-btn,.hints-toggle-btn{align-items:center;background:#0000;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--weight-medium);gap:var(--space-2);height:28px;padding:0 var(--space-3);transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease)}.hint-btn:hover,.hints-toggle-btn:hover{background:var(--warn-surface);border-color:var(--warn-border);color:var(--warn-fg)}.challenge-hints,.hints-list{color:var(--text-muted);font-size:var(--text-base);line-height:var(--leading-relaxed);margin-top:var(--space-3);padding-left:var(--space-5)}.hint-item+.hint-item{margin-top:var(--space-2)}.challenge-test-cases{margin:var(--space-4) 0}.test-cases-table{border-collapse:collapse;font-size:var(--text-base);width:100%}.test-cases-table td,.test-cases-table th{border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-3);text-align:left}.test-cases-table th{background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase}.test-cases-table td{font-family:var(--font-mono)}.test-cases-table tbody tr:last-child td{border-bottom:none}.challenge-blocked{align-items:center;width:100%}.link-btn{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.link-btn:hover{text-decoration:none}.challenge-actions-box{align-items:flex-start}.challenge-instructions{align-items:flex-start;display:flex;flex:1 1 260px;font-size:var(--text-base);gap:var(--space-2);min-width:0}.challenge-instructions>svg{color:var(--text-subtle);flex:0 0 auto;margin-top:2px}.challenge-instructions p{line-height:var(--leading-relaxed);margin:0}.challenge-feedback{border:1px solid var(--border);border-radius:var(--radius);flex:1 1 260px;min-width:0;padding:var(--space-3)}.challenge-feedback.all-pass{background:var(--accept-surface);border-color:var(--accept-border);color:var(--accept-fg)}.challenge-feedback.some-fail{background:var(--warn-surface);border-color:var(--warn-border);color:var(--warn-fg)}.test-cases-table tr.test-pass td:first-child{box-shadow:inset 3px 0 0 var(--accept-solid)}.test-cases-table tr.test-fail td:first-child{box-shadow:inset 3px 0 0 var(--reject-solid)}.result-pass{color:var(--accept-fg)}.result-fail{color:var(--reject-fg)}.tour-overlay{background:#0000;inset:0;position:fixed;z-index:1300}.tour-overlay.is-centred{background:#090d149e}.tour-highlight{border:2px solid var(--accent-500);border-radius:var(--radius-md);box-shadow:0 0 0 9999px #090d149e,0 0 0 5px var(--accent-200);pointer-events:none;position:fixed;transition:top var(--duration) var(--ease),left var(--duration) var(--ease),width var(--duration) var(--ease),height var(--duration) var(--ease)}.tour-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:calc(100vw - var(--space-6));padding:var(--space-4);position:fixed;width:340px}.tour-card-top{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between}.tour-step-count{color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.tour-skip-btn{background:#0000;border:0;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);padding:0 var(--space-1)}.tour-skip-btn:hover{color:var(--text);text-decoration:underline}.tour-card h3{color:var(--text);font-size:var(--text-md);font-weight:var(--weight-semibold);margin:var(--space-2) 0 var(--space-1)}.tour-card p{color:var(--text-muted);font-size:var(--text-base);line-height:var(--leading-normal);margin:0 0 var(--space-4)}.tour-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.tour-progress{display:flex;gap:3px;margin-bottom:var(--space-3)}.tour-progress-tick{background:var(--track);border-radius:var(--radius-full);flex:1 1;height:3px}.tour-progress-tick.is-done{background:var(--accent-600)}
/*# sourceMappingURL=main.2b91ad00.css.map*/