:root{--paper: #f5f3ec;--paper-grid: rgba(27, 27, 25, .045);--surface: #fbfaf6;--surface-2: #efece3;--ink: #1b1b19;--ink-2: #45443f;--ink-3: #6f6d65;--rule: #dcd8cc;--rule-2: #c6c1b2;--magenta: #c2185b;--magenta-wash: #fbe8ef;--slate: #1f2a26;--slate-2: #2a3632;--chalk: #eef0e8;--chalk-2: #b9c2bb;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, "Noto Sans SC", "Source Han Sans SC", "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", "Cascadia Mono", "Cascadia Code", Menlo, Consolas, "Roboto Mono", "PingFang SC", "Microsoft YaHei", monospace;--r-s: 6px;--r-m: 10px;--r-l: 14px;--shadow: 0 1px 0 rgba(27, 27, 25, .04), 0 10px 28px -18px rgba(27, 27, 25, .28);--shadow-up: 0 1px 0 rgba(27, 27, 25, .05), 0 16px 34px -18px rgba(27, 27, 25, .34);--ease: cubic-bezier(.2, .7, .2, 1);--shell: 1180px;--gutter: 20px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background-color:var(--paper);background-image:linear-gradient(var(--paper-grid) 1px,transparent 1px),linear-gradient(90deg,var(--paper-grid) 1px,transparent 1px);background-size:24px 24px;color:var(--ink);font:400 16px/1.75 var(--font-sans);-webkit-font-smoothing:antialiased}img,svg{max-width:100%}a{color:var(--ink);text-decoration-color:var(--rule-2);text-underline-offset:3px;transition:text-decoration-color .2s var(--ease),color .2s var(--ease)}a:hover{text-decoration-color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}h1,h2,h3{font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:0}code,kbd,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--gutter)}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:12px;z-index:50;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:var(--r-s)}.mast{position:sticky;top:0;z-index:20;background:#f5f3ece6;backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--rule)}.mast .shell{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px}.wordmark{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}.wordmark img{width:30px;height:30px;flex:none}.wordmark b{display:block;font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.2}.wordmark small{display:block;font:500 10.5px/1.3 var(--font-mono);color:var(--ink-3);letter-spacing:.08em}.nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{font-size:14.5px;padding:8px 11px;border-radius:var(--r-s);text-decoration:none;color:var(--ink-2);white-space:nowrap;transition:background .2s var(--ease),color .2s var(--ease)}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink);border-radius:0}.eyebrow{font:500 12px/1.4 var(--font-mono);letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase;margin:0 0 10px}.lede{font-size:17px;color:var(--ink-2);max-width:720px;margin:12px 0 0}.muted{color:var(--ink-3)}.section{padding:56px 0}.section-head{display:flex;align-items:baseline;gap:14px;margin-bottom:22px;flex-wrap:wrap}.section-head h2{font-size:24px}.stepno{font:500 12px/1 var(--font-mono);color:var(--ink-3);border:1px solid var(--rule-2);border-radius:999px;padding:5px 9px;background:var(--surface);letter-spacing:.04em}.crumbs{font-size:13.5px;color:var(--ink-3);margin:0 0 14px}.crumbs a{color:var(--ink-3)}.page-head{padding-top:40px;padding-bottom:26px}.page-head h1{font-size:clamp(28px,4vw,38px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border-radius:var(--r-s);border:1px solid var(--rule-2);background:var(--surface);color:var(--ink);font:500 15px/1 var(--font-sans);text-decoration:none;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}.btn:hover{border-color:var(--ink-2);box-shadow:var(--shadow);transform:translateY(-1px)}.btn.solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.solid:hover{background:#2d2d2a}.hero{padding:44px 0 22px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:32px;align-items:end}.hero h1{font-size:clamp(30px,4.6vw,46px);letter-spacing:-.03em}.hero h1 .mk{font-family:var(--font-mono);font-weight:500;letter-spacing:-.02em}.hero-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--rule);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow)}.hero-facts div{padding:14px 16px;border-left:1px solid var(--rule)}.hero-facts div:first-child{border-left:0}.hero-facts b{display:block;font:600 26px/1.1 var(--font-mono);letter-spacing:-.02em}.hero-facts span{font-size:13px;color:var(--ink-3)}.player{border:1px solid var(--rule);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.p-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px;padding:16px 18px;border-bottom:1px solid var(--rule);background:linear-gradient(var(--surface),var(--surface-2))}.p-field{display:flex;flex-direction:column;gap:5px;min-width:0}.p-field.grow{flex:1 1 320px}.p-field.small{flex:0 0 104px}.p-field label{font:500 12px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--ink-3)}.p-field input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--rule-2);border-radius:var(--r-s);background:#fff;font:500 15px/1 var(--font-mono);color:var(--ink);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.p-field input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #1b1b1914}.p-actions{display:flex;gap:8px}.p-hint{flex-basis:100%;margin:0;font-size:13px;color:var(--ink-3)}.p-msg{flex-basis:100%;margin:0;font-size:13.5px}.p-msg:empty{display:none}.p-msg.is-error{color:var(--ink);font-weight:600;padding-left:10px;border-left:2px solid var(--ink)}.p-body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.p-main{padding:18px;min-width:0;border-right:1px solid var(--rule)}.p-side{padding:18px;min-width:0;display:flex;flex-direction:column;gap:16px;background:var(--surface)}.p-stage{min-height:280px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px}.p-note{display:flex;gap:10px;align-items:baseline;margin:16px 0 0;padding:12px 14px;border:1px dashed var(--rule-2);border-radius:var(--r-m);background:var(--paper);min-height:74px}.p-note .p-step{flex:none;font:600 12px/1.6 var(--font-mono);color:var(--ink);background:var(--surface-2);border-radius:4px;padding:1px 7px}.p-note .p-text{font-size:15px;line-height:1.65}.p-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}.p-controls .btn{min-width:44px;padding:0 12px;font-size:14px}.p-controls .btn[data-act=play]{min-width:92px}.p-controls .btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.p-scrub{flex:1 1 160px;display:flex;align-items:center;gap:8px;min-width:0}.p-scrub input{width:100%;accent-color:var(--ink);min-height:44px}.p-speed{font:500 13px/1 var(--font-mono);min-height:44px;border:1px solid var(--rule-2);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:0 8px}.p-keys{margin:10px 0 0;font-size:12.5px;color:var(--ink-3)}.p-keys kbd{font-size:11.5px;border:1px solid var(--rule-2);border-bottom-width:2px;border-radius:4px;padding:0 5px;background:var(--surface)}.panel-title{font:500 12px/1.3 var(--font-mono);letter-spacing:.1em;color:var(--ink-3);margin:0 0 8px;text-transform:uppercase}.code{list-style:none;margin:0;padding:6px 0;counter-reset:ln;border:1px solid var(--rule);border-radius:var(--r-m);background-color:#fff;background-image:linear-gradient(transparent 29px,#1b1b190f 29px);background-size:100% 30px;background-position:0 6px}.code li{counter-increment:ln;position:relative;display:flex;align-items:flex-start;min-height:30px;padding:4px 10px 4px 0;transition:background .18s var(--ease)}.code li:before{content:counter(ln,decimal-leading-zero);flex:none;width:38px;text-align:right;padding-right:10px;font:400 12px/22px var(--font-mono);color:var(--ink-3)}.code code{font-size:13.5px;line-height:22px;white-space:pre-wrap;word-break:break-word}.code li.on{background:var(--magenta-wash)}.code li.on:before{color:var(--magenta);font-weight:700}.code li.on:after{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:0 2px 2px 0;background:var(--magenta)}.vars{width:100%;border-collapse:collapse;font-size:13.5px}.vars th,.vars td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--rule);vertical-align:top}.vars th{font-weight:500;color:var(--ink-3);width:38%;white-space:nowrap}.vars td{font-family:var(--font-mono);font-variant-numeric:tabular-nums;word-break:break-all}.bars{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(3px,1vw,8px);align-items:end;height:240px;padding:0 2px;border-bottom:1px solid var(--ink)}.bar{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.bar:before{content:"";width:100%;height:calc(var(--h) * 78%);background:var(--surface-2);border:1px solid var(--rule-2);border-bottom:0;border-radius:5px 5px 0 0;transition:height .32s var(--ease),background .2s var(--ease),border-color .2s var(--ease),opacity .2s var(--ease);order:2}.bar .bv{order:1;font:600 13px/1 var(--font-mono);margin-bottom:5px;color:var(--ink-2);transition:color .2s var(--ease)}.bar .bi{position:absolute;bottom:-22px;font:400 11px/1 var(--font-mono);color:var(--ink-3)}.bar.is-sorted:before{background:var(--ink);border-color:var(--ink)}.bar.is-out{opacity:.38}.bar.is-pivot:before{border:1.5px dashed var(--ink);background:var(--surface)}.bar.is-pivot.is-sorted:before{background:var(--ink);border-style:solid}.bar.is-hl:before{background:var(--magenta);border-color:var(--magenta)}.bar.is-hl .bv{color:var(--magenta)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:26px 0 0;font-size:12.5px;color:var(--ink-3)}.lg{display:inline-flex;align-items:center;gap:6px}.lg:before{content:"";width:12px;height:12px;border-radius:3px;border:1px solid var(--rule-2);background:var(--surface-2)}.lg-hl:before{background:var(--magenta);border-color:var(--magenta)}.lg-sorted:before{background:var(--ink);border-color:var(--ink)}.lg-pivot:before{border:1.5px dashed var(--ink);background:var(--surface)}.lg-out:before{opacity:.38}.act{margin-left:auto;font:600 12px/1 var(--font-mono);color:var(--ink);border:1px solid var(--ink);border-radius:999px;padding:4px 9px}.cells{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0;border:1px solid var(--ink);border-radius:var(--r-s);overflow:hidden;background:#fff;max-width:calc(var(--n) * 64px)}.cell{display:flex;flex-direction:column;align-items:center;border-left:1px solid var(--rule-2);min-width:0;transition:background .2s var(--ease),opacity .2s var(--ease)}.cell:first-child{border-left:0}.cell b{display:block;width:100%;text-align:center;font:600 clamp(13px,3.4vw,17px)/1 var(--font-mono);padding:16px 0 12px}.cell i{font:normal 400 11px/1 var(--font-mono);color:var(--ink-3);padding-bottom:6px}.cell em{font:normal 600 11px/1.2 var(--font-mono);color:var(--ink);min-height:26px;padding:6px 0 4px;width:100%;text-align:center;border-top:1px solid var(--rule);background:var(--surface);overflow-wrap:anywhere}.cell.is-dim{opacity:.35}.cell.is-empty b{color:transparent}.cell.is-empty{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(27,27,25,.04) 6px 7px)}.cell.is-done b{background:var(--ink);color:var(--paper)}.cell.is-hl b{background:var(--magenta);color:#fff}.ptr-extra{margin:0;font:500 12.5px/1.5 var(--font-mono);color:var(--ink-2)}.seq{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}.seq-label{font:500 12px/1.3 var(--font-mono);color:var(--ink-3);letter-spacing:.04em}.seq-body{display:flex;flex-wrap:wrap;gap:5px}.chip{font:600 12.5px/1 var(--font-mono);padding:6px 8px;border-radius:5px;border:1px solid var(--rule-2);background:#fff}.seq-out .chip{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chip-empty{font-size:12.5px;color:var(--ink-3)}.empty{color:var(--ink-3);font-size:14px;margin:auto 0}.tree,.graph{display:block;width:100%;height:auto;margin:0 auto}.tree{max-width:min(100%,var(--w));max-height:330px}.graph{max-width:440px;max-height:360px}.tree .edges line,.ge line{stroke:var(--rule-2);stroke-width:1.5;transition:stroke .2s var(--ease)}.ge rect{fill:var(--surface);stroke:var(--rule)}.ge text{font:600 11.5px var(--font-mono);fill:var(--ink-2);text-anchor:middle;dominant-baseline:central}.ge.is-hl line{stroke:var(--magenta);stroke-width:3}.ge.is-hl text{fill:var(--magenta)}.tn circle,.gn circle{fill:#fff;stroke:var(--ink);stroke-width:1.2;transition:fill .2s var(--ease),stroke .2s var(--ease)}.tn text,.gn text{font:600 13px var(--font-mono);fill:var(--ink);text-anchor:middle;dominant-baseline:central}.tn.is-done circle,.gn.is-done circle{fill:var(--ink)}.tn.is-done text,.gn.is-done>text:first-of-type{fill:var(--paper)}.tn.is-hl circle,.gn.is-hl circle{fill:var(--magenta);stroke:var(--magenta)}.tn.is-hl text,.gn.is-hl>text:first-of-type{fill:#fff}.gn .gd{font:600 12px var(--font-mono);fill:var(--ink-2)}.gn.is-hl .gd{fill:var(--magenta)}.picker{padding:14px 18px 0;border-bottom:1px solid var(--rule);background:var(--surface)}.picker-cats{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.picker-cats::-webkit-scrollbar{display:none}.picker-cats button{flex:none;min-height:40px;padding:0 12px;border:0;background:none;font:500 14px/1 var(--font-sans);color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;transition:color .2s var(--ease),border-color .2s var(--ease)}.picker-cats button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.picker-algos{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0 14px}.picker-algos button{min-height:36px;padding:0 12px;border:1px solid var(--rule-2);border-radius:999px;background:#fff;font:500 13.5px/1 var(--font-sans);color:var(--ink-2);cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease)}.picker-algos button:hover{border-color:var(--ink-2);color:var(--ink)}.picker-algos button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.picker-algos a{align-self:center;font-size:13px;color:var(--ink-3);margin-left:auto}.catalog{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.cat{border:1px solid var(--rule);border-radius:var(--r-l);background:var(--surface);padding:18px 18px 12px;box-shadow:var(--shadow);display:flex;flex-direction:column}.cat h3{font-size:17px}.cat p{font-size:13.5px;color:var(--ink-3);margin:6px 0 12px;line-height:1.6}.cat ul{list-style:none;margin:auto 0 0;padding:0}.cat li{border-top:1px solid var(--rule)}.cat li a{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 0;text-decoration:none;font-size:14.5px;transition:padding .2s var(--ease)}.cat li a:hover{padding-left:4px}.cat li a span{font:500 11.5px/1 var(--font-mono);color:var(--ink-3);white-space:nowrap}.board{background:var(--slate);color:var(--chalk);border-radius:var(--r-l);padding:28px;box-shadow:inset 0 0 0 6px var(--slate-2),var(--shadow-up);background-image:radial-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:5px 5px}.board h2{color:var(--chalk);font-size:22px}.board .eyebrow{color:var(--chalk-2)}.board p{color:var(--chalk-2);font-size:14px;margin:8px 0 18px}.board-scroll{overflow-x:auto}.board table{width:100%;min-width:640px;border-collapse:collapse;font-size:14px}.board th,.board td{text-align:left;padding:9px 10px;border-bottom:1px dashed rgba(238,240,232,.22)}.board th{font:500 12px/1.3 var(--font-mono);color:var(--chalk-2);letter-spacing:.06em}.board td{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.board td:first-child{font-family:var(--font-sans)}.board td a{color:var(--chalk);text-decoration-color:#eef0e859}.board td a:hover{text-decoration-color:var(--chalk)}.steps{padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:st}.steps li{list-style:none;border:1px solid var(--rule);border-radius:var(--r-l);padding:18px;background:var(--surface)}.steps li:before{counter-increment:st;content:"步 0" counter(st);display:inline-block;font:600 12px/1 var(--font-mono);padding:5px 8px;border-radius:4px;background:var(--surface-2);margin-bottom:10px}.steps h3{font-size:16px}.steps p{margin:6px 0 0;font-size:14px;color:var(--ink-2)}.steps ol{padding:0;margin:0;display:contents}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{display:block;border:1px solid var(--rule);border-radius:var(--r-l);background:var(--surface);padding:20px;text-decoration:none;box-shadow:var(--shadow);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-up);border-color:var(--rule-2)}.card h2,.card h3{font-size:18px}.card p{margin:8px 0 0;font-size:14.5px;color:var(--ink-2)}.card .meta{font:500 12px/1.4 var(--font-mono);color:var(--ink-3);margin:0 0 8px}.note-box{border:1px dashed var(--rule-2);border-radius:var(--r-l);padding:18px 20px;background:var(--surface)}.note-box h3{font-size:16px}.note-box p{margin:6px 0 0;font-size:14.5px;color:var(--ink-2)}.algo-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:22px}.box{border:1px solid var(--rule);border-radius:var(--r-l);background:var(--surface);padding:20px}.box h2{font-size:18px;margin-bottom:10px}.box ul{margin:0;padding-left:1.2em}.box li{margin:6px 0;font-size:15px}.cx{width:100%;border-collapse:collapse;font-size:14.5px}.cx th,.cx td{text-align:left;padding:8px 0;border-bottom:1px solid var(--rule)}.cx th{font-weight:500;color:var(--ink-3);width:36%}.cx td{font-family:var(--font-mono)}.cx-note{font-size:14px;color:var(--ink-2);margin:12px 0 0}.pitfall{border-left:3px solid var(--ink);padding:4px 0 4px 14px;margin:0;font-size:15px}.related{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.related a{font-size:14px;border:1px solid var(--rule-2);border-radius:999px;padding:8px 14px;text-decoration:none;background:#fff;transition:border-color .2s var(--ease)}.related a:hover{border-color:var(--ink)}.tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--r-m);background:var(--surface)}.tablewrap table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:620px}.tablewrap th,.tablewrap td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--rule)}.tablewrap th{font:500 12px/1.3 var(--font-mono);color:var(--ink-3);letter-spacing:.05em;background:var(--surface-2)}.tablewrap td.m{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.tablewrap tr:last-child td{border-bottom:0}.article-grid{display:grid;grid-template-columns:minmax(0,720px) minmax(0,1fr);gap:48px;align-items:start}.prose{font-size:16.5px;line-height:1.85}.prose>*+*{margin-top:1em}.prose p{margin:0}.prose h2{font-size:22px;margin-top:2em;padding-top:4px}.prose h3{font-size:18px;margin-top:1.6em}.prose ul,.prose ol{padding-left:1.3em;margin-bottom:0}.prose li+li{margin-top:.35em}.prose code{font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:4px}.prose .calc{font-family:var(--font-mono);font-size:14px;line-height:1.8;white-space:pre-wrap;background:#fff;border:1px solid var(--rule);border-radius:var(--r-m);padding:14px 16px;background-image:linear-gradient(transparent 24px,#1b1b190d 24px);background-size:100% 25.2px;background-position:0 14px;overflow-x:auto}.prose .tablewrap table{min-width:520px}.prose figure{margin:1.4em 0 0}.prose figcaption{font-size:13.5px;color:var(--ink-3);margin-top:8px}.meta{font:500 13px/1.5 var(--font-mono);color:var(--ink-3);margin:10px 0 0}.aside{position:sticky;top:84px;border:1px solid var(--rule);border-radius:var(--r-l);background:var(--surface);padding:20px}.aside h2{font-size:15px;margin:0 0 8px}.aside h2+p{margin-top:0}.aside p,.aside li{font-size:14px;color:var(--ink-2)}.aside ol{padding-left:1.2em;margin:0 0 14px}.toc{padding-left:1.2em}.support{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:56px 0 0;padding:18px 20px;border:1px solid var(--rule);border-radius:var(--r-l);background:var(--surface)}.support p{margin:0;font-size:14px;color:var(--ink-2);max-width:760px}.footer{margin-top:48px;padding:26px 0 40px;border-top:1px solid var(--rule);background:var(--surface)}.footer .shell{display:flex;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-3)}.footer nav{display:flex;gap:16px;flex-wrap:wrap}.footer a{color:var(--ink-2)}.nf{padding-top:70px;padding-bottom:20px}.nf .code-big{font:600 64px/1 var(--font-mono);letter-spacing:-.04em}.nf .code-big span{color:var(--ink-3)}.reveal{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}.js .reveal.pending{opacity:0;transform:translateY(10px)}@media(max-width:1080px){.catalog{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.hero-grid,.p-body,.algo-grid,.article-grid,.cards,.steps{grid-template-columns:minmax(0,1fr)}.p-main{border-right:0;border-bottom:1px solid var(--rule)}.aside{position:static}.catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){:root{--gutter: 16px}.wordmark small{display:none}.mast .shell{flex-direction:column;align-items:stretch;gap:0;padding-top:8px}.nav{margin:4px -8px 0}.nav a{padding:8px 9px;font-size:14px}.catalog{grid-template-columns:minmax(0,1fr)}.p-top,.p-main,.p-side{padding:14px}.picker{padding:10px 14px 0}.bars{height:200px}.bar .bv{font-size:11px}.p-controls .btn{padding:0 10px}.support{flex-direction:column;align-items:flex-start}.board{padding:20px 16px}.section{padding:40px 0}.hero-facts b{font-size:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.js .reveal.pending{opacity:1;transform:none}}
