.tutorial{--accent:#086bdf;--tline:#dfe3e8;--soft:#edf4ff;color:#17202c}.tutorial *{min-width:0}.tutorial a:focus-visible,.tutorial button:focus-visible,.tutorial input:focus-visible,.tutorial select:focus-visible{outline:3px solid #0879eb;outline-offset:4px}.tutorial [hidden]{display:none!important}.t-shell{max-width:1180px;margin:auto;padding:0 28px}.t-hero{padding:72px 0 48px;border-bottom:1px solid var(--tline)}.t-kicker{color:var(--accent);font-size:14px;letter-spacing:.08em;font-weight:650}.t-hero h1{margin:14px 0 22px;font-size:clamp(40px,6vw,76px);line-height:1.1;letter-spacing:-.045em;overflow-wrap:anywhere}.t-hero p:not(.t-kicker){max-width:700px;font-size:20px;line-height:1.65;color:#5a6572}.t-meta{display:flex;gap:12px 28px;flex-wrap:wrap;margin-top:28px;font-size:14px;color:#5a6572}.t-directory-header{padding:48px 0 30px;border-bottom:1px solid var(--tline)}.t-directory-header h1{font-size:clamp(32px,4vw,52px);line-height:1.2;letter-spacing:-.035em;margin:20px 0 14px;overflow-wrap:anywhere}.t-directory-header>p:not(.t-kicker){font-size:18px;line-height:1.65;color:#5a6572}.t-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:32px 0 80px}.t-category-card{display:flex;flex-direction:column;padding:28px;background:#fff;border:1px solid var(--tline);border-radius:18px;transition:border-color .2s,transform .2s,box-shadow .2s}.t-category-card:hover{transform:translateY(-3px);border-color:#8eb4e4;box-shadow:0 12px 26px #17202c09}.t-category-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:14px;color:#667282}.t-category-meta span:first-child{color:var(--accent);font-family:ui-monospace,monospace}.t-category-card h2{font-size:28px;margin:28px 0 12px;letter-spacing:-.025em;line-height:1.3}.t-category-card p{margin:0 0 28px;color:#5a6572;font-size:16px;line-height:1.7}.t-category-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;color:#667282}.t-category-bottom span:last-child{font-size:22px;color:var(--accent);transition:transform .2s}.t-category-card:hover .t-category-bottom span:last-child{transform:translate(3px)}.t-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:14px;line-height:1.7;color:#5a6572}.t-breadcrumbs a{color:var(--accent)}.t-breadcrumbs a:hover{text-decoration:underline;text-underline-offset:4px}.t-category-switch{display:flex;gap:8px;flex-wrap:wrap;padding:24px 0 0}.t-category-switch a{padding:9px 16px;font-size:14px;border:1px solid var(--tline);border-radius:30px;background:#fff}.t-category-switch a[aria-current=page]{background:#17202c;color:#fff;border-color:#17202c}.t-category-switch a:hover:not([aria-current]){border-color:#8eb4e4;color:var(--accent)}.t-category-empty{margin:36px 0 80px;padding:48px 32px;border:1px solid var(--tline);border-radius:18px;background:#f8fafc}.t-category-empty h2{font-size:24px;line-height:1.5;margin:0 0 12px}.t-category-empty p{font-size:16px;line-height:1.8;color:#5a6572;max-width:620px;margin:0 0 24px}.t-category-empty a{color:var(--accent);font-size:16px}@media(max-width:1000px){.t-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.t-category-grid{grid-template-columns:1fr;gap:14px;padding-top:24px}.t-category-card{padding:24px}.t-category-card h2{margin-top:18px}.t-category-empty{padding:28px 24px}.t-directory-header{padding-top:32px}}.t-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:48px 0 100px}.t-card{padding:36px;border:1px solid var(--tline);border-radius:24px;background:#fff;transition:transform .3s,box-shadow .3s}.t-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px #17202c0c}.t-card h2{font-size:30px;letter-spacing:-.035em;margin:24px 0 12px}.t-card p{color:#5a6572}.t-card small{font-size:14px;color:var(--accent)}.t-cover{background:#f3f6fa;border-radius:14px;padding:26px 16px;min-height:150px;display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;font:500 22px ui-monospace,monospace}.t-cover span{padding:8px 12px;border:1px solid #bad0ea;border-radius:8px;background:#fff}.t-contents{display:flex;flex-wrap:wrap;gap:12px 24px;padding:22px 0;font-size:14px;border-bottom:1px solid var(--tline)}.t-contents a:hover{color:var(--accent)}.t-section{padding:64px 0;scroll-margin-top:80px}.t-section+.t-section{border-top:1px solid var(--tline)}.t-section h2{font-size:clamp(27px,3vw,38px);line-height:1.25;letter-spacing:-.035em;margin:8px 0 24px}.t-section h3{font-size:21px;margin:28px 0 12px}.t-section p,.t-section li{line-height:1.85}.t-number{font:500 14px ui-monospace,monospace;color:#6b7685}.t-lead{max-width:780px;font-size:18px;color:#536070}.t-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.t-formula{margin:20px 0;padding:16px 24px;background:var(--soft);border-left:3px solid var(--accent);border-radius:0 12px 12px 0;font-size:1rem}.t-math-inline{font-weight:400;letter-spacing:normal;overflow-wrap:normal}.t-math-inline>.katex{font-size:1.08em}.t-math-display{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding:10px 2px;font-size:1rem}.t-math-display:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.t-math-display>.katex-display{margin:0;text-align:left}.t-math-display>.katex-display>.katex{text-align:left;white-space:nowrap}.tutorial .katex{letter-spacing:normal;text-indent:0;overflow-wrap:normal}.tutorial code:has(.t-math-inline){font:inherit;background:none;padding:0}@media(max-width:600px){.t-formula{padding:12px}.t-math-display{font-size:1rem}}.t-note{padding:20px 24px;background:#fff;border:1px solid var(--tline);border-radius:12px;color:#536070}.t-lab{margin:30px 0 0;border:1px solid var(--tline);border-radius:22px;background:#fff;overflow:hidden}.t-lab-head{padding:24px;border-bottom:1px solid var(--tline);display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap}.t-lab-head h3{margin:0 0 6px}.t-lab label{display:flex;flex-direction:column;gap:8px;font-size:14px;color:#536070}.t-lab input,.t-lab select{border:1px solid #bfc8d4;border-radius:8px;padding:10px 12px;background:#fff;color:#17202c;font:inherit;max-width:100%}.t-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.tutorial button{cursor:pointer;font:inherit;border:1px solid #cbd3de;background:#fff;border-radius:8px;padding:9px 15px;color:#25364a}.tutorial button:hover:not(:disabled){background:var(--soft);border-color:#91b8e9}.tutorial button:disabled{opacity:.4;cursor:default}.tutorial button[aria-selected=true],.tutorial button[aria-pressed=true],.tutorial .t-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.t-modes{padding:18px 24px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--tline)}.t-lab-body{padding:24px}.t-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:20px 24px;border-top:1px solid var(--tline);background:#fafbfd}.t-controls input[type=range]{flex:1;min-width:100px;padding:0;accent-color:var(--accent)}.t-step{min-width:64px;text-align:center;font:14px ui-monospace,monospace}.t-status{background:#f0f5fb;padding:18px;border-radius:12px;min-height:84px;line-height:1.7;margin:16px 0}.t-chars{display:flex;gap:5px;flex-wrap:wrap;margin:18px 0}.t-char{display:grid;place-items:center;width:34px;height:48px;border:1px solid #dfe3e8;border-radius:7px;font:18px ui-monospace,monospace;transition:background .25s,transform .25s}.t-char small{font-size:11px;color:#657386}.t-char.is-read{background:#edf1f5}.t-char.is-current{background:#126fdf;color:#fff;transform:translateY(-3px)}.t-char.is-current small{color:#fff}.t-graph-scroll{overflow-x:auto;border-radius:14px;border:1px solid var(--tline);background:linear-gradient(#f7f9fc 1px,transparent 1px),linear-gradient(90deg,#f7f9fc 1px,transparent 1px);background-size:24px 24px}.t-graph{display:block;width:100%;min-width:580px;height:auto}.t-graph path{fill:none;stroke:#c8d3e0;stroke-width:2}.t-graph .fail-edge{stroke:#ab54b6;stroke-dasharray:6 5}.t-graph .active-edge{stroke:#086bdf;stroke-width:3;stroke-dasharray:8 5;animation:t-flow 1s linear infinite}.t-graph circle{fill:#fff;stroke:#aebfd1;stroke-width:2;transition:fill .35s,stroke .35s}.t-graph .terminal circle{stroke:#14875d;stroke-width:4}.t-graph .focused circle{fill:#086bdf;stroke:#086bdf}.t-graph text{font:14px ui-monospace,monospace;fill:#273c55;text-anchor:middle;dominant-baseline:middle}.t-graph .focused text{fill:#fff}.t-graph .node-count{fill:#14875d;font-weight:700}.t-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;color:#58677a;margin:14px 0}.t-legend b{color:#14875d}.t-legend em{color:#9c3faa;font-style:normal}.t-node-select{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.t-node-select button{font:14px ui-monospace,monospace;padding:6px 10px}.t-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.t-details div{background:#f6f8fb;padding:14px;border-radius:8px}.t-details dt{font-size:13px;color:#657386;margin-bottom:6px}.t-details dd{margin:0;font:16px/1.5 ui-monospace,monospace;overflow-wrap:anywhere}.t-result{display:flex;gap:8px;flex-wrap:wrap}.t-pill{background:#e8f5ef;border:1px solid #b7ddcc;color:#136846;border-radius:6px;padding:7px 10px;font:14px ui-monospace,monospace;animation:t-appear .3s ease both}.t-overflow{overflow-x:auto;max-width:100%}.t-table{width:100%;border-collapse:collapse;font:15px/1.5 ui-monospace,monospace}.t-table th,.t-table td{text-align:left;padding:12px;border-bottom:1px solid var(--tline)}.t-table th{color:#657386;font-size:13px;font-weight:500}.t-table .range-cell{background:#e4efff;color:#075cbe}.t-table .min-cell{background:#075cbe;color:#fff}.t-sort{position:relative;margin:24px 0}.t-suffix-row{position:absolute;left:0;right:0;display:grid;grid-template-columns:50px minmax(0,1fr) 86px 50px;gap:10px;align-items:center;height:48px;padding:0 14px;border-radius:8px;border:1px solid #dbe3ee;background:#f9fbfd;transition:transform .6s cubic-bezier(.22,.68,0,1),background .3s;font:16px ui-monospace,monospace}.t-suffix-row code{overflow-wrap:anywhere;font:inherit}.t-suffix-row small{font-size:13px;color:#67788c}.t-suffix-row mark,.t-compare mark{background:#cce3ff;color:#0756ac;border-radius:3px}.t-compare{padding:18px;background:#f8fafc;font:20px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}.t-compare .reused{background:#d3eee2;color:#126546}.t-compare .boundary{text-decoration:underline;text-decoration-color:#bc4261;text-underline-offset:5px}.t-query{display:flex;gap:18px;align-items:end;flex-wrap:wrap;margin-bottom:24px}.t-metric{font-size:clamp(35px,6vw,56px);font-weight:650;letter-spacing:-.03em}.t-code{padding:24px;background:#132030;color:#d5e4f5;border-radius:14px;overflow:auto;font:14px/1.8 ui-monospace,monospace;tab-size:2}.t-editor{margin:28px 0;border:1px solid #303945;border-radius:12px;background:#24292e;overflow:hidden}.t-editor figcaption{display:flex;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid #3b424a;background:#1d2228;color:#c5ced8;font:14px/1.5 ui-monospace,monospace}.t-editor-body{overflow-x:auto}.t-editor .astro-code{margin:0;padding:22px 24px;font:14px/1.8 ui-monospace,monospace;tab-size:4;min-width:max-content}.t-editor .astro-code code{font:inherit}.t-editor .line{counter-increment:code-line}.t-editor .line:before{content:counter(code-line);display:inline-block;width:3ch;margin-right:24px;text-align:right;color:#737e8b;user-select:none}.t-editor .astro-code{counter-reset:code-line}.t-flow{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none;counter-reset:flow}.t-flow li{counter-increment:flow;background:#fff;padding:16px 20px;border:1px solid var(--tline);border-radius:10px}.t-flow li:before{content:counter(flow,decimal-leading-zero) "  ";color:var(--accent);font-family:ui-monospace,monospace}.t-sources{font-size:14px;color:#58677a;padding:28px 0 60px}.t-sources a{text-decoration:underline;text-underline-offset:3px}.t-error{color:#ac2747;margin:8px 0;min-height:24px;font-size:14px}.t-error:empty{display:none}.t-proofs details{margin:14px 0;padding:0 24px;background:#fff;border:1px solid var(--tline);border-radius:12px}.t-proofs summary{cursor:pointer;padding:20px 0;font-size:17px;font-weight:650;line-height:1.6}.t-proofs summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.t-proofs details[open] summary{border-bottom:1px solid var(--tline);margin-bottom:20px}.t-proofs details p:last-child{margin-bottom:24px}.t-intuition{padding-left:20px;border-left:3px solid #aebac8;color:#42546b}.t-definition{margin:24px 0;padding:22px 26px;background:#edf4ff;border-top:2px solid #086bdf;border-radius:0 0 12px 12px}.t-definition h3{margin-top:0}.t-definition p:last-child{margin-bottom:0}.t-inline-proofs{margin:28px 0}.t-inline-proofs details{border-radius:4px;padding:0 24px;border-left:3px solid #253c55;box-shadow:none}.t-inline-proofs details summary{font-size:18px}.t-inline-proofs details{scroll-margin-top:100px}.t-consequence{padding:16px 20px;background:#edf6f1;border-left:3px solid #23805c}.t-lab-jump{display:inline-block;margin:8px 0 20px;color:#086bdf;font-size:16px;text-decoration:underline;text-underline-offset:4px}.t-proof-end{text-align:right;color:#253c55}.t-candidate-row code{overflow-wrap:anywhere}.t-local-proof{border-left:3px solid #253c55;padding:10px 24px;margin:24px 0;background:#fff}.t-local-proof h3{margin-top:0}.t-reason{margin:18px 0;padding:20px;border:1px solid #bccfe5;border-radius:12px;background:#f8fbff}.t-reason h4{margin:0 0 12px;font-size:17px}.t-reason p{margin:12px 0;font-size:15px}.t-reason a{font-size:14px;color:#086bdf;text-decoration:underline;text-underline-offset:3px}.t-reason-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.t-reason-grid div{padding:12px;background:#fff;border:1px solid #e0e6ed;border-radius:8px}.t-reason-grid small{display:block;font-size:13px;color:#5a6572;margin-bottom:6px}.t-reason-grid strong{font-size:17px;font-weight:550;overflow-wrap:anywhere}.t-candidate-list{display:grid;gap:8px;margin:16px 0}.t-candidate-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 12px;border:1px solid #d9e2ed;background:#fff;border-radius:6px}.t-candidate-row.is-active{border:2px solid #086bdf}.t-candidate-row code{font-size:18px;letter-spacing:.06em}.t-candidate-row .discarded{color:#7c8795}.t-candidate-row mark{background:#dcecff;color:#0758b3}.t-candidate-row small{font-size:13px;color:#536070}.t-char.is-pending{border:2px dashed #9b4d17;background:#fff2e4;color:#773500}.t-char.is-pending small{color:#773500}.t-block-first{background:#dcecff;color:#0758b3}.t-block-second,.t-suffix-row .t-block-second{background:#d8eee3;color:#145f42}.t-inspect{margin:16px 0}.t-inspect select{max-width:100%}.t-key-blocks{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}.t-key-blocks>div{flex:1 1 110px;border:1px solid #c5d5e7;border-radius:8px;padding:14px}.t-key-blocks small{display:block;font-size:14px;margin-bottom:8px}.t-key-blocks code{font-size:22px;overflow-wrap:anywhere}.t-rmq-path{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0;list-style:none}.t-rmq-path li{background:#fff;padding:10px 12px;border:1px solid #c9d8e9;border-radius:6px;font-size:14px}.t-rmq-path .bottleneck{background:#075cbe;color:#fff}.t-rmq-path code{display:block;font-size:16px}@media(max-width:600px){.t-reason-grid{grid-template-columns:1fr}.t-definition,.t-inline-proofs details{padding-left:18px;padding-right:18px}.t-reason{padding:16px}}.ac-figure{margin:28px 0;padding:24px;border:1px solid var(--tline);border-radius:16px;background:#fff}.ac-figure figcaption{margin-bottom:22px;color:#516278;font-size:14px;line-height:1.6}.ac-alignment{max-width:580px;margin:auto}.ac-string-row{display:grid;grid-template-columns:minmax(64px,1.6fr) repeat(6,minmax(0,1fr));gap:5px;align-items:center;margin:8px 0;font:17px/1.5 ui-monospace,monospace}.ac-string-row>b{text-align:center;padding:10px 0;border-radius:5px;background:#f3f5f8;font-weight:500}.ac-string-row>small{text-align:center;font-size:14px;color:#657386}.ac-string-row>span{font-size:14px}.ac-string-row>span small{display:block;font-size:12px}.ac-string-row .ac-hit{background:#dcecff;color:#0758b3;border-bottom:3px solid #086bdf}.ac-static-trie{display:block;width:100%;min-width:420px;max-width:690px;margin:auto}.ac-static-trie path{fill:none;stroke:#a9b9cc;stroke-width:2}.ac-static-trie circle{fill:#fff;stroke:#94a8c0;stroke-width:2}.ac-static-trie .ac-terminal circle{stroke:#14875d}.ac-static-trie circle.ac-terminal-ring{fill:none}.ac-static-trie text{text-anchor:middle;dominant-baseline:middle;fill:#203c59;font:16px ui-monospace,monospace}.ac-candidates{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px;background:#f5f8fc;border-radius:14px}.ac-candidates mark{color:#0758b3;background:#dcecff}.ac-candidates del{color:#697688;text-decoration-thickness:1px}.ac-transition{display:flex;flex-wrap:wrap;gap:16px;list-style:none;padding:0;counter-reset:transition}.ac-transition li{flex:1 1 140px;counter-increment:transition;border-left:3px solid #126fdf;padding-left:16px}.ac-transition li:before{content:counter(transition) ". ";color:#126fdf}.ac-transition code{font-size:24px}.ac-transition span{display:block;font-size:14px;margin-top:10px}.ac-count-chain{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;padding:16px 0}.ac-count-chain span{background:#eaf5ef;border:1px solid #b7ddcc;border-radius:10px;padding:18px;text-align:center}.ac-count-chain b{display:block;font:24px ui-monospace,monospace;color:#126546}.ac-count-chain small{display:block;margin-top:8px;font-size:14px}.ac-count-chain i{font-style:normal;color:#126546}.ac-stdout{margin:0;font:16px/1.8 ui-monospace,monospace;white-space:pre-wrap}.sa-letter-table td.sa-letter{color:#0758b3;background:#edf4ff;text-align:center}.sa-word{white-space:nowrap}.sa-word mark,.sa-shift mark{background:#dcecff;color:#0758b3;border-bottom:2px solid #086bdf}.sa-blocks{display:grid;gap:12px;max-width:680px;margin:20px auto}.sa-blocks>div{display:grid;grid-template-columns:minmax(110px,1.3fr) repeat(3,minmax(0,1fr));align-items:center;gap:10px}.sa-blocks b{text-align:center;background:#edf4ff;border:1px solid #b9d4f5;border-radius:6px;padding:12px 6px;color:#0758b3;font:20px ui-monospace,monospace}.sa-blocks>div>span,.sa-blocks>div>code{font-size:14px;overflow-wrap:anywhere}.sa-shift>div{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin:18px 0}.sa-shift>div>span{min-width:140px;font-size:14px}.sa-shift code{font:22px ui-monospace,monospace;letter-spacing:.12em}.sa-shift del{color:#8c4c5e}.sa-shift b{font-size:16px;font-weight:500}.sa-rmq-chain{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.sa-rmq-chain code{border:1px solid #b9d4f5;background:#edf4ff;padding:20px;border-radius:10px;font-size:22px}.sa-rmq-chain small{display:block;font-size:14px;margin-top:8px}.sa-rmq-chain>span{font-size:14px;color:#0758b3}@media(max-width:540px){.sa-blocks>div{grid-template-columns:minmax(70px,1.4fr) repeat(3,minmax(0,1fr));gap:5px}.sa-blocks b{font-size:16px}.sa-shift>div{gap:12px}.sa-shift>div>span{flex-basis:100%}.sa-rmq-chain{flex-direction:column}.sa-rmq-chain code{text-align:center;width:100%}}.tutorial .t-table caption{text-align:left;padding:16px 0;font-size:14px;line-height:1.6;font-family:inherit;color:#516278}@media(max-width:540px){.ac-figure{padding:16px}.ac-candidates{grid-template-columns:1fr;padding:18px}.ac-string-row{font-size:15px;gap:3px}.ac-count-chain{flex-direction:column}.ac-count-chain i{transform:rotate(90deg);margin:6px}.ac-count-chain span{width:100%}}@keyframes t-flow{to{stroke-dashoffset:-26}}@keyframes t-appear{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:760px){.t-shell{padding:0 20px}.t-catalog,.t-columns{grid-template-columns:1fr}.t-hero{padding-top:48px}.t-section{padding:44px 0}.t-card{padding:24px}.t-lab-head,.t-lab-body,.t-controls,.t-modes{padding:16px}.t-details{grid-template-columns:1fr}.t-hero p:not(.t-kicker){font-size:18px}.t-suffix-row{grid-template-columns:26px minmax(0,1fr) 60px 25px;padding:0 8px;gap:5px;font-size:14px}.t-suffix-row small{font-size:12px}.t-table th,.t-table td{padding:9px}.t-form{width:100%}.t-form label{flex:1}.t-lab input{width:100%}}@media(prefers-reduced-motion:reduce){.tutorial *,.tutorial *:before{animation:none!important;transition:none!important}.tutorial{scroll-behavior:auto}}
