:root{--blue:#1772b7;--text:#202124;--muted:#595959;--rule:#e8e8e8;--soft:#f6f7f8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--text);background:#fff;margin:0;font-family:Lato,Arial,sans-serif;font-size:17px;line-height:1.68}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.article-page{width:min(100% - 40px,760px);margin:0 auto;padding:34px 0 60px}.article-nav{border-bottom:1px solid var(--rule);justify-content:space-between;gap:24px;padding-bottom:22px;font-size:14px;display:flex}.article-header{padding:52px 0 32px}.article-header .eyebrow{color:#777;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;font-size:13px}.article-header h1{text-align:left;letter-spacing:-.02em;margin:0;font-size:46px;font-weight:400;line-height:1.08}.article-header .dek{color:var(--muted);margin:22px 0 0;font-size:21px;line-height:1.48}.hook{letter-spacing:-.01em;margin:0 0 24px;font-size:24px;font-weight:700;line-height:1.4}article>p{margin:0 0 20px}article h2{margin:52px 0 17px;font-size:27px;font-weight:400;line-height:1.2}article ul,article ol{margin:0 0 24px;padding-left:25px}article li{margin:8px 0}code{font-family:Consolas,SFMono-Regular,monospace;font-size:.88em}pre{border:1px solid var(--rule);background:var(--soft);border-radius:4px;margin:28px 0;padding:20px 22px;line-height:1.55;overflow:auto}pre code{font-size:14px}blockquote{border-left:3px solid var(--blue);color:#383838;margin:30px 0;padding:2px 0 2px 22px;font-size:21px;line-height:1.5}.principle{background:#f6fbff;border:1px solid #dce8f1;margin:30px 0;padding:18px 20px}figure figcaption{color:#666;margin-top:13px;font-size:13px;line-height:1.45}.participants{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:10px;margin:28px 0;display:grid}.participants div{border:1px solid #ddd;flex-direction:column;min-height:126px;padding:16px;display:flex}.participants small{color:var(--blue);text-transform:uppercase;letter-spacing:.08em}.participants strong{margin-top:8px}.participants span{color:#777;margin-top:auto;font-size:13px}.participants b{color:#999;font-size:12px;font-weight:400}.compare-table th:first-child,.compare-table td:first-child{width:22%}.version-timeline{border-left:2px solid #ccd8e1;margin:28px 0}.version-timeline article{margin-left:24px;padding:0 0 28px 18px;position:relative}.version-timeline article:before{content:"";background:#8aa7bd;border:3px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:5px;left:-31px;box-shadow:0 0 0 1px #8aa7bd}.version-timeline article:last-child{padding-bottom:0}.version-timeline time{color:#777;font:13px Consolas,SFMono-Regular,monospace}.version-timeline h3{margin:4px 0 5px;font-size:18px}.version-timeline p{color:var(--muted);margin:0}.version-timeline .current-version:before{background:var(--blue);box-shadow:0 0 0 1px var(--blue)}.version-note{border-left:3px solid var(--blue);background:#f6fbff;padding:16px 18px}.case-grid{grid-template-columns:1fr 1fr;gap:12px;margin:27px 0;display:grid}.case-grid article{border:1px solid #ddd;padding:18px}.case-grid span{color:#999;font:12px Consolas,SFMono-Regular,monospace}.case-grid h3{margin:13px 0 8px;font-size:18px}.case-grid p{color:var(--muted);margin:0;font-size:15px}.plain-note{background:#fffaf0;border:1px solid #e1d6bd;margin:28px 0;padding:18px 20px}.request-path{margin:30px 0}.flow{border:1px solid var(--rule);background:var(--soft);flex-wrap:wrap;align-items:center;gap:9px;padding:18px;font-size:14px;display:flex}.flow span{background:#fff;border:1px solid #ddd;border-radius:3px;padding:8px 10px}.flow small{color:#999;letter-spacing:.08em;font-size:9px;display:block}.flow b{color:#999}.table-wrap{margin:28px 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.4}th,td{text-align:left;vertical-align:top;border:1px solid #ddd;padding:11px 12px}th{background:var(--soft)}.lessons li::marker{color:var(--blue);font-weight:700}.article-footer{border-top:1px solid var(--rule);color:#777;margin-top:58px;padding-top:22px;font-size:14px}.article-footer p{margin:0 0 8px}.md-article table{max-width:100%;margin:28px 0;display:block;overflow-x:auto}.md-article h3{margin:34px 0 10px;font-size:20px;line-height:1.3}.md-article pre{background:var(--soft)!important}.series-tag{color:var(--muted);margin:0 0 10px;font-size:14px}.series-nav{grid-template-columns:1fr 1fr;gap:12px;margin:52px 0 0;display:grid}.series-nav a{border:1px solid var(--rule);color:var(--text);border-radius:4px;padding:14px 16px;line-height:1.35;display:block}.series-nav a:hover{border-color:var(--blue);text-decoration:none}.series-nav small{color:var(--blue);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:12px;display:block}.series-nav .next{text-align:right;grid-column:2}.author-box{border:1px solid var(--rule);background:var(--soft);border-radius:4px;margin:32px 0 0;padding:20px 22px;font-size:15px;line-height:1.55}.author-box p{margin:0 0 8px}.author-box .author-name{font-size:16px;font-weight:700}.author-box .author-links{margin:0}@media (width<=600px){body{font-size:16px}.article-page{width:min(100% - 28px,760px);padding-top:22px}.article-header{padding:38px 0 24px}.article-header h1{font-size:36px}.article-header .dek{font-size:19px}.hook{font-size:21px}.participants{grid-template-columns:1fr}.participants b{padding-left:12px}.participants div{min-height:105px}.case-grid,.series-nav{grid-template-columns:1fr}.series-nav .next{text-align:left;grid-column:auto}article h2{margin-top:42px;font-size:24px}.flow{flex-direction:column;align-items:flex-start}.flow b{margin-left:15px;transform:rotate(90deg)}}
