.learn-shell{display:grid;grid-template-columns:250px minmax(0,1fr) 210px;gap:3rem;max-width:1240px;margin:0 auto;padding:0 1.5rem}.learn-side{position:sticky;top:92px;align-self:start;max-height:calc(100vh - 110px);overflow:auto;scrollbar-width:thin}.learn-side-toggle{display:none}.learn-nav-group{margin-bottom:1.5rem}.learn-nav-title{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin:0 0 .55rem;padding-left:.8rem}.learn-nav-title a{color:inherit;text-decoration:none}.learn-nav-title a:hover{color:var(--accent-cyan)}.learn-nav a.learn-nav-link{display:block;padding:.42rem .8rem;border-radius:.6rem;font-size:.9rem;color:var(--text-secondary);text-decoration:none;border-left:2px solid #0000;transition:color .15s,background .15s}.learn-nav a.learn-nav-link:hover{color:var(--text-primary);background:#ffffff0a}.learn-nav a.learn-nav-link.active{color:var(--accent-cyan);background:#00d4ff12;border-left-color:var(--accent-cyan);border-radius:0 .6rem .6rem 0}.learn-nav .learn-nav-empty{display:block;padding:.42rem .8rem;font-size:.85rem;color:var(--text-tertiary);font-style:italic}.learn-toc{position:sticky;top:92px;align-self:start;font-size:.82rem}.learn-toc-title{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin:0 0 .6rem}.learn-toc a{display:block;color:var(--text-tertiary);text-decoration:none;padding:.22rem 0 .22rem .75rem;border-left:1px solid var(--border-subtle);line-height:1.35}.learn-toc a.d3{padding-left:1.5rem}.learn-toc a:hover{color:var(--text-primary);border-left-color:var(--border-hover)}.learn-main{min-width:0}.learn-meta{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;font-size:.82rem;color:var(--text-tertiary);margin:1rem 0 2rem;font-family:var(--font-mono)}.learn-title{font-size:clamp(2rem,4vw,2.8rem);line-height:1.1;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--text-primary)}.learn-lede{font-size:1.12rem;line-height:1.6;margin:1rem 0 0;max-width:680px}.learn-lede,.learn-prose{color:var(--text-secondary)}.learn-prose{font-size:1.02rem;line-height:1.75}.learn-prose>:first-child{margin-top:0}.learn-prose h2{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;margin:2.6rem 0 .9rem;padding-top:.4rem}.learn-prose h2,.learn-prose h3{color:var(--text-primary);scroll-margin-top:100px}.learn-prose h3{font-size:1.15rem;font-weight:650;margin:1.9rem 0 .6rem}.learn-prose h4{color:var(--text-primary);font-size:1rem;font-weight:650;margin:1.4rem 0 .4rem}.learn-prose h2 a,.learn-prose h3 a{color:inherit;text-decoration:none}.learn-prose p{margin:0 0 1rem}.learn-prose strong{color:var(--text-primary);font-weight:600}.learn-prose a{color:var(--accent-cyan);text-decoration:none;border-bottom:1px solid #00d4ff4d}.learn-prose a:hover{border-bottom-color:var(--accent-cyan)}.learn-prose ol,.learn-prose ul{margin:0 0 1.1rem;padding-left:1.4rem}.learn-prose li{margin:.3rem 0}.learn-prose li::marker{color:var(--accent-cyan)}.learn-prose hr{border:0;border-top:1px solid var(--border-subtle);margin:2.2rem 0}.learn-prose blockquote{margin:1.2rem 0;padding:.8rem 1.1rem;border-left:3px solid var(--accent-cyan);background:#00d4ff0d;border-radius:0 .8rem .8rem 0;color:var(--text-secondary)}.learn-prose blockquote p:last-child{margin:0}.learn-prose img{max-width:100%;height:auto;border-radius:1rem;border:1px solid var(--border-subtle);margin:.6rem 0 1.4rem;display:block;box-shadow:0 18px 50px #00000059}.learn-prose table{width:100%;border-collapse:collapse;margin:1rem 0 1.6rem;font-size:.92rem;display:block;overflow-x:auto}.learn-prose td,.learn-prose th{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--border-subtle);vertical-align:top}.learn-prose th{color:var(--text-primary);font-weight:600;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.learn-prose code{font-family:var(--font-mono);font-size:.86em;background:#ffffff12;border:1px solid var(--border-subtle);border-radius:.4rem;padding:.1em .4em;color:var(--text-primary)}.learn-prose pre code{background:none;border:0;padding:0;font-size:.85rem;color:inherit}.learn-yt{position:relative;aspect-ratio:16/9;margin:.6rem 0 1.6rem;border-radius:1rem;overflow:hidden;border:1px solid var(--border-subtle);box-shadow:0 18px 50px #00000059}.learn-yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.learn-code{position:relative;margin:1rem 0 1.6rem;border:1px solid var(--border-subtle);border-radius:1rem;background:#07070f;overflow:hidden}.learn-code-bar{display:flex;align-items:center;justify-content:space-between;padding:.45rem .5rem .45rem 1rem;border-bottom:1px solid var(--border-subtle);background:hsla(0,0%,100%,.025);font-family:var(--font-mono);font-size:.72rem;color:var(--text-tertiary);letter-spacing:.05em}.learn-code pre{margin:0;padding:1rem 1.1rem;overflow-x:auto;line-height:1.6;font-family:var(--font-mono);font-size:.85rem;color:#dbe4ff}.learn-copy{display:inline-flex;align-items:center;gap:.35rem;background:#0000;border:1px solid var(--border-subtle);color:var(--text-secondary);padding:.25rem .6rem;border-radius:.5rem;font-size:.72rem;cursor:pointer;font-family:inherit;transition:all .15s}.learn-copy:hover{color:var(--text-primary);border-color:var(--border-hover)}.learn-copy.done{color:var(--accent-cyan);border-color:#00d4ff66}.hljs-comment,.hljs-quote{color:#6b7394;font-style:italic}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#7dd3fc}.hljs-addition,.hljs-attr,.hljs-string,.hljs-template-variable{color:#86efac}.hljs-bullet,.hljs-literal,.hljs-number,.hljs-symbol{color:#fca5a5}.hljs-function .hljs-title,.hljs-section,.hljs-title{color:#00d4ff}.hljs-attribute,.hljs-params,.hljs-variable{color:#e2e8f0}.hljs-deletion,.hljs-meta{color:#f59e0b}.learn-pn{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem}.learn-pn a{display:block;padding:1rem 1.2rem;border:1px solid var(--border-subtle);border-radius:1rem;text-decoration:none;background:var(--bg-card);transition:border-color .2s,transform .2s}.learn-pn a:hover{border-color:var(--border-hover);transform:translateY(-2px)}.learn-pn a.next{text-align:right}.learn-pn small{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:.3rem}.learn-pn span{color:var(--text-primary);font-weight:600;font-size:.95rem}.learn-search{position:relative;width:100%}.learn-search input{width:100%;padding:.9rem 1.1rem .9rem 2.8rem;border-radius:999px;border:1px solid var(--border-hover);background:#ffffff0a;color:var(--text-primary);font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s}.learn-search input:focus{border-color:var(--accent-cyan);box-shadow:0 0 0 4px #00d4ff1f}.learn-search input::placeholder,.learn-search svg{color:var(--text-tertiary)}.learn-search svg{position:absolute;left:1.05rem;top:50%;transform:translateY(-50%)}.learn-search.compact input{padding:.55rem .9rem .55rem 2.3rem;font-size:.88rem;border-radius:.7rem}.learn-search.compact svg{left:.8rem}.learn-results{position:absolute;top:calc(100% + .5rem);left:0;right:0;z-index:30;background:#0d0d1a;border:1px solid var(--border-hover);border-radius:1rem;box-shadow:0 24px 60px #00000080;overflow:hidden;text-align:left}.learn-results a{display:flex;flex-direction:column;gap:.15rem;padding:.7rem 1rem;text-decoration:none;border-bottom:1px solid var(--border-subtle)}.learn-results a:last-child{border-bottom:0}.learn-results a.sel,.learn-results a:hover{background:#00d4ff12}.learn-results b{color:var(--text-primary);font-weight:600;font-size:.92rem}.learn-results small{color:var(--text-tertiary);font-size:.78rem}.learn-results em{font-style:normal;color:var(--accent-cyan);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;margin-right:.5rem}.learn-results .none{padding:.8rem 1rem;color:var(--text-tertiary);font-size:.88rem}.learn-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.cat-card{display:flex;flex-direction:column;text-decoration:none;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);overflow:hidden;transition:border-color .3s,transform .3s,box-shadow .3s;animation:catIn .7s cubic-bezier(.2,.7,.2,1) both}.cat-card:hover{border-color:#00d4ff59;transform:translateY(-5px);box-shadow:0 20px 50px #0006,0 0 0 1px #00d4ff1f}.cat-card.soon{opacity:.55;pointer-events:none}.cat-graphic{height:150px;display:grid;place-items:center;background:linear-gradient(180deg,#00d4ff0f,#00d4ff00);border-bottom:1px solid var(--border-subtle)}.cat-graphic svg{width:150px;height:100px;overflow:visible}.cat-body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.cat-body h3{margin:0;color:var(--text-primary);font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.cat-body p{margin:0;color:var(--text-secondary);font-size:.92rem;line-height:1.55;flex:1}.cat-count{font-family:var(--font-mono);font-size:.72rem;color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;margin-top:.4rem}@keyframes catIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.cs-line{stroke:#00d4ff59;stroke-width:1.5;stroke-dasharray:60;stroke-dashoffset:60;animation:dash 2.4s ease-in-out infinite}.cs-node{fill:#00d4ff26;stroke:var(--accent-cyan);stroke-width:1.5}.cs-core{fill:var(--accent-cyan);filter:drop-shadow(0 0 8px rgba(0,212,255,.8));animation:pulse 2s ease-in-out infinite}.cs-ring{fill:none;stroke:var(--accent-cyan);stroke-width:1;opacity:.5;animation:ring 2s ease-out infinite}.cs-frame{fill:#ffffff08;stroke:#ffffff2e;stroke-width:1}.cs-bar{fill:#ffffff14}.cs-el{fill:#00d4ff59;animation:blink 3s ease-in-out infinite}.cs-el:nth-child(odd){animation-delay:.6s}.cs-dot{fill:#ffffff59}.cs-flow{fill:#00d4ff1f;stroke:var(--accent-cyan);stroke-width:1.3}.cs-flow-arrow{stroke:#00d4ff99;stroke-width:1.5}.cs-label{fill:var(--text-primary);font-size:7px;font-family:var(--font-mono);text-anchor:middle}.cs-particle{fill:var(--accent-cyan);animation:travel 3s linear infinite}.cs-particle.p2{animation-delay:1s}.cs-particle.p3{animation-delay:2s}@keyframes dash{0%{stroke-dashoffset:60}50%{stroke-dashoffset:0}to{stroke-dashoffset:-60}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes ring{0%{r:8;opacity:.6}to{r:22;opacity:0}}@keyframes blink{0%,to{opacity:.35}50%{opacity:1}}@keyframes travel{0%{transform:translateX(6px);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateX(112px);opacity:0}}.learn-terminal{border:1px solid var(--border-hover);border-radius:1rem;background:#07070f;overflow:hidden;text-align:left;box-shadow:0 24px 60px #00000073,0 0 0 1px #00d4ff14}.learn-terminal-bar{display:flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:.72rem;color:var(--text-tertiary)}.learn-terminal-bar i{width:10px;height:10px;border-radius:50%;background:#ffffff1f;display:inline-block}.learn-terminal-body{display:flex;align-items:center;gap:.8rem;padding:.95rem 1.1rem;font-family:var(--font-mono);font-size:.95rem;color:var(--text-primary);overflow-x:auto}.learn-terminal-body .ps{color:var(--accent-cyan)}.learn-grid,.learn-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.learn-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}.learn-card-cmd{display:block;margin-top:.9rem;font-family:var(--font-mono);font-size:.8rem;color:var(--accent-cyan);background:#00d4ff0f;border:1px solid #00d4ff26;border-radius:.6rem;padding:.5rem .7rem;overflow-x:auto;white-space:nowrap}@media (max-width:1100px){.learn-shell{grid-template-columns:230px minmax(0,1fr)}.learn-toc{display:none}.learn-cats,.learn-grid,.learn-steps{grid-template-columns:repeat(2,1fr)}}@media (max-width:800px){.learn-shell{grid-template-columns:1fr;gap:1.5rem;padding:0 1rem}.learn-side{position:static;max-height:none;overflow:visible}.learn-side-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;cursor:pointer;padding:.7rem 1rem;border:1px solid var(--border-hover);border-radius:.8rem;color:var(--text-primary);font-weight:600;font-size:.92rem;background:var(--bg-card);font-family:inherit}.learn-side-body{display:none;padding-top:1rem}.learn-side-body.open{display:block}.learn-cats,.learn-grid,.learn-grid-2,.learn-pn,.learn-steps{grid-template-columns:1fr}.learn-pn a.next{text-align:left}}