.article-shell{max-width:1320px;padding:0 32px;margin:0 auto;display:grid;grid-template-columns:190px minmax(0,880px);gap:64px;align-items:start}.article-nav{position:sticky;top:35px;padding-top:56px;font-size:13px;line-height:1.5}.article-nav>span{font:12px var(--mono);letter-spacing:1px;color:var(--muted);display:block;margin-bottom:20px}.article-nav ul{list-style:none;padding:0;margin:0;border-left:1px solid var(--line)}.article-nav li a{display:block;padding:8px 0 8px 15px;color:#5b6577}.article-nav li a:hover{color:var(--blue);background:#f0f3fa}.article-nav .toc>ul>li>a{display:none}.article-nav .toc>ul{border:0}.article-nav .nav-back{display:block;margin-top:25px;color:var(--blue)}.reading{padding:55px 0 75px;min-width:0;font-size:17px;line-height:1.85}.reading h1{font-size:54px;letter-spacing:-1.9px;line-height:1.12;max-width:820px;margin:20px 0 28px}.reading h2{font-size:30px;margin:60px 0 23px;padding-top:18px;border-top:1px solid var(--line);letter-spacing:-.6px;scroll-margin-top:24px}.reading>p,.reading>ul{max-width:740px;color:#3f4c5e}.reading>p:first-of-type{font-size:20px;line-height:1.75;color:#26364c}.reading a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.reading code{font-size:.83em;background:#edf1f8;padding:2px 4px;border-radius:3px;overflow-wrap:anywhere}.reading pre{margin:24px 0;padding:24px 28px;border-radius:5px;max-width:100%;line-height:1.8}.reading pre code{background:transparent;padding:0;font-size:14px;color:inherit}.article-meta{font:12px var(--mono);color:var(--blue);letter-spacing:1px;display:flex;justify-content:space-between;gap:12px}.article-meta span:last-child{color:var(--muted);letter-spacing:0}.article-resources{display:flex;gap:10px 25px;flex-wrap:wrap;font-size:14px;padding:19px 0;margin:0 0 25px;border-bottom:1px solid var(--line)}.article-resources a{color:var(--blue)}.setup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;border:1px solid var(--line);padding:22px;background:#f5f7fb;margin:30px 0}.setup-grid span{display:block;font:11px var(--mono);letter-spacing:1px;color:#5b6b84;margin-bottom:7px}.setup-grid strong{font-size:15px;font-weight:500}.reading figure{margin:35px 0}.reading figcaption{font-size:13px;line-height:1.7;color:#5b6679;margin-top:17px;max-width:760px}.diagram{border:1px solid #d0d9e9;padding:26px;background:#f5f7fc;border-radius:5px}.figure-label{font:11px var(--mono);letter-spacing:1.1px;color:#5a6b87;margin-bottom:25px}.request-flow{display:flex;align-items:center;gap:10px;justify-content:space-between}.request-flow>div{background:white;border:1px solid #d5deed;padding:15px 10px;flex:1;min-width:0}.request-flow b{display:block;font:11px var(--mono);color:var(--blue);margin-bottom:13px}.request-flow strong{display:block;font-size:15px;font-weight:500}.request-flow div span{display:block;font-size:11px;line-height:1.6;color:#5b6b84;margin-top:4px}.flow-arrow{color:#879abd}.phase-row{display:flex;align-items:center;padding:20px 0;gap:25px}.phase-row+.phase-row{border-top:1px dashed #c8d2e4}.phase-name{width:165px;flex-shrink:0}.phase-name b{display:block;font:24px Georgia,serif;color:var(--blue)}.phase-name span{display:block;font-size:13px;color:#627089;margin-top:6px}.phase-tokens{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font:14px var(--mono)}.phase-tokens span{padding:8px 11px}.input-token{background:white;border:1px solid #b6c6e2}.new-token{background:var(--blue);color:white;border:1px solid var(--blue)}.past-token{background:#e3eaf9;color:#4d66a0;border:1px solid #c2ceea}.cache-rail{background:#e8edf7;border-left:3px solid #7a99df;padding:12px 17px;font-size:13px;color:#536785;margin-top:12px}.chart{padding:18px;border:1px solid var(--line);border-radius:5px;background:white}.chart img{display:block;width:100%;height:auto}.completion{font-family:Georgia,serif;font-size:24px;line-height:1.5;border-left:3px solid var(--blue);padding:22px 28px;margin:25px 0;background:#f0f4fc;max-width:740px}.checkpoint{margin:32px 0;border:1px solid #bccae6;border-radius:5px;background:#f4f7fd;max-width:780px}.checkpoint summary{padding:20px 25px;font-size:17px;line-height:1.55;position:relative;padding-right:50px}.checkpoint summary>span{display:block;font:11px var(--mono);letter-spacing:1px;color:var(--blue);margin-bottom:9px}.checkpoint summary:after{content:'+';position:absolute;right:22px;top:30px;font-size:22px;color:var(--blue)}.checkpoint[open] summary:after{content:'−'}.checkpoint p{padding:0 25px 22px;margin:0;font-size:16px;color:#3f4c5e}.next-lesson{padding:26px;border:1px solid #bdcce7;background:#edf2fc;margin-top:45px}.next-lesson span{font:12px var(--mono);color:var(--blue)}.next-lesson h3{margin:12px 0;font-size:28px}.next-lesson p{font-size:15px;color:var(--muted);margin-bottom:0}.reading ul{padding-left:24px}.reading li{margin:10px 0}@media(max-width:1000px){.article-shell{grid-template-columns:155px minmax(0,1fr);gap:30px}.reading h1{font-size:43px}.request-flow{gap:5px}.request-flow>div{padding:12px 7px}.phase-name{width:120px}.phase-tokens{gap:5px}.phase-tokens span{padding:7px}}@media(max-width:750px){.article-shell{display:block;padding:0 22px}.article-nav{position:static;padding-top:22px}.article-nav>span,.article-nav .toc{display:none}.article-nav .nav-back{margin:0;font-size:14px}.reading{padding-top:30px;font-size:16px}.reading h1{font-size:39px;margin-top:22px}.reading>p:first-of-type{font-size:18px}.article-meta{font-size:11px}.reading h2{font-size:27px;margin-top:42px}.setup-grid{grid-template-columns:1fr 1fr;padding:18px;gap:20px}.diagram{padding:18px}.request-flow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.flow-arrow{display:none}.request-flow>div{padding:14px}.request-flow strong{font-size:16px}.request-flow div span{font-size:12px}.phase-row{display:block}.phase-name{width:auto;margin-bottom:17px}.phase-name span{display:inline;margin-left:10px}.phase-name b{display:inline;font-size:23px}.phase-tokens{font-size:12px;gap:4px}.phase-tokens span{padding:7px}.reading pre{padding:18px}.reading pre code{font-size:12px}.chart{padding:8px}.chart figcaption{padding:4px 8px}.completion{font-size:21px;margin:20px 0;padding:20px}.checkpoint summary{font-size:16px;padding-left:18px}.article-resources{gap:10px 19px;font-size:13px}} 
