/* Shared reading presentation. Chapter content and semantic status colors stay intact. */
:root{--accent:#245bdb;--accent-2:#4880ee;--accent-soft:#edf3ff;--bg:#fff;--bg-side:#f7f9fc;--text:#202c3e;--text-2:#56657a;--text-3:#66768b;--border:#e5eaf1;--border-2:#d6deea;--reader-surface:#f7f9fc;--reader-ink:#172235}
body{font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}
.topbar{background:var(--bg);box-shadow:none}.topbar .logo{font-weight:650;font-size:16px}.logo .mark,.logo-icon{background:#245bdb;border-radius:7px}.topbar .right,.topbar-right{gap:12px}.logo .sub,.logo-badge{font-size:12px}.sidebar{background:var(--bg-side);scrollbar-gutter:stable;padding-top:24px}.sidebar .nav-group a,.sidebar .nav-item{font-size:14px;line-height:1.65;padding-top:9px;padding-bottom:9px}.sidebar .nav-group>.gt,.nav-group-title{font-size:12px;letter-spacing:.03em;color:var(--text-3)}.sidebar a:hover{background:var(--border);color:var(--text);text-decoration:none}.sidebar a.active,.sidebar a.on{background:var(--accent-soft);color:var(--accent)}.side-search-input,#sideFilter{font-size:14px;min-height:40px}.main .wrap{max-width:1000px;padding:0 48px 90px}.main-wrap{max-width:1100px}.hero{background:none;color:var(--text);border-radius:0;padding:36px 0 28px;margin-top:12px;border-bottom:1px solid var(--border);box-shadow:none}.hero h1{font-size:clamp(28px,3vw,38px);font-weight:650;color:var(--reader-ink);line-height:1.4}.hero h1 .grad{background:none;color:var(--reader-ink);-webkit-text-fill-color:var(--reader-ink)}.hero p.lead,.hero>p{color:var(--text-2);font-size:16px;line-height:1.85}.hero .badge{background:var(--accent-soft);border:0;color:var(--accent);font-size:12px;padding:4px 10px;margin-bottom:16px;border-radius:5px}.hero .meta{color:var(--text-3);gap:8px;font-size:12px;margin-top:18px}.hero .meta span{background:var(--reader-surface);border:1px solid var(--border);border-radius:5px;padding:3px 9px}h1,h2,h3,h4{overflow-wrap:anywhere}h2{font-size:26px;font-weight:650;line-height:1.5;color:var(--reader-ink)}h3{font-size:20px;font-weight:650;line-height:1.6}h4{font-size:17px;line-height:1.6}.sec-tag{margin-top:36px;font-size:12px}.stats{gap:12px}.stat{padding:16px 18px;border-radius:8px;box-shadow:none}.stat b{font-size:23px;background:none;color:var(--accent)}.stat span{font-size:13px;color:var(--text-2)}.callout{font-size:15px;line-height:1.85;border-radius:8px}.callout b.t{font-size:14px}pre{font-size:14px;border-radius:8px;line-height:1.75;max-width:100%;tab-size:2}code{font-size:.875em;overflow-wrap:anywhere}pre code{overflow-wrap:normal}.copy-btn{opacity:1;font-size:12px;min-height:30px}.tbl,table{font-size:14px}.tbl th{font-size:13px;background:var(--reader-surface);color:var(--text-2)}.tbl tr:hover td{background:var(--reader-surface)}.table-scroll{width:100%;overflow:auto;margin:18px 0 24px;border:1px solid var(--border);border-radius:8px}.table-scroll>table{margin:0;min-width:540px;width:100%;border-collapse:collapse}.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.table-scroll td,.table-scroll th{overflow-wrap:anywhere}.hotcmd,.play,.card,.pager a{border-radius:8px;box-shadow:none}.pager a{font-size:14px}.pager a span{font-size:13px}.pager a b{font-size:15px}.src,.footer{font-size:13px;line-height:1.8}.footer{margin-top:44px}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button{touch-action:manipulation}.reader-skip{position:fixed;top:-100px;left:16px;z-index:400;background:var(--bg);color:var(--accent);padding:10px 18px;border:1px solid var(--accent);border-radius:6px}.reader-skip:focus{top:10px}.reader-theme{background:var(--bg);color:var(--text);border:1px solid var(--border-2);border-radius:7px;min-width:32px;height:32px;font-size:20px;cursor:pointer;line-height:1;flex:none}.lang-switcher .lang-btn{min-height:28px;font-size:12px!important}.lang-switcher{margin-right:0!important}.sidebar .nav-group a[aria-current],.sidebar .nav-item[aria-current]{font-weight:650}
html.dark{color-scheme:dark;--bg:#111722;--bg-side:#17202d;--reader-surface:#1b2636;--reader-ink:#e8edf5;--ink:#e8edf5;--text:#dde5f0;--text-2:#b0bed0;--text-3:#9aaac0;--border:#2c394c;--border-2:#3c4b61;--accent:#91b4ff;--accent-2:#adc6ff;--accent-soft:#233550;--tip-bg:#162e26;--warn-bg:#352b19;--note-bg:#1b2b43}
html.dark :is(.stat,.hotcmd,.play,.card,.pager a,.page-nav-link,.kbtn,.top-btn,.menu-btn,.palette .box,.palette input,.side-search-input,#sideFilter,kbd){background:var(--bg-side);color:var(--text)}html.dark :is(.play .ph,.tbl th,th){background:var(--reader-surface);color:var(--text-2)}html.dark .callout{color:var(--text);border-color:var(--border-2)}html.dark :not(pre)>code{background:var(--reader-surface);color:#b6cfff}html.dark .duo .bad{background:#352327;border-color:#70404a}html.dark .duo .good{background:var(--tip-bg);border-color:#2e6049}html.dark .pill{color:#172235}html.dark .topbar .logo{color:var(--text)}html.dark .lang-switcher{background:var(--reader-surface)!important}html.dark .lang-switcher .lang-btn.active{background:var(--accent-soft)!important;color:var(--accent)!important}html.dark .hero .meta span{background:var(--reader-surface)}html.dark .res.sel{background:var(--accent-soft)}html.dark .chapter-badge{background:var(--accent-soft);color:var(--accent);border-color:var(--border)}html.dark strong{color:inherit}
[data-reveal]{opacity:1;transform:none}[data-reveal].is-visible{transition:none}
@media(max-width:1080px){.main .wrap{padding:0 32px 72px}.hero{padding:28px 0}.sidebar{max-width:calc(100vw - 48px)}}
@media(max-width:640px){.main .wrap{padding:0 20px 64px}.main-wrap{padding-left:20px;padding-right:20px}.hero h1{font-size:28px}.hero p.lead{font-size:15px}.hero .meta{gap:6px}h2{font-size:23px}h3{font-size:19px}.topbar .right,.topbar-right{gap:7px}.topbar .logo .sub,.logo-badge{display:none}.topbar-left{min-width:0}.topbar-left .logo{min-width:0;font-size:14px}.topbar-right>a{font-size:12px}.lang-switcher .lang-btn{padding:3px 5px!important}.lang-switcher{flex-shrink:0}.reader-theme{min-width:29px;width:29px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:14px}.stat b{font-size:20px}.pager{gap:10px}.pager a{padding:12px;min-width:0}.pager a b{overflow-wrap:anywhere}pre{padding:16px;font-size:13px}.table-scroll>table{min-width:520px}.topbar .right>.kbtn{display:none}.topbar .right a{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
html.dark :is(.case,.feature-card,.flow,.layer,.pipe-step,.prompt-box,.screenshot-grid figure,figure,.side-filter input){background:var(--bg-side);color:var(--text)}
@media(max-width:640px){.topbar-left{flex:1;overflow:hidden}.topbar-left .logo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-right{flex-shrink:0}}

/* Reading surfaces share the homepage's editorial system. */
:root{--bg:#fff;--bg-side:#f7f8fa;--accent:#315de6;--accent-soft:#edf1ff;--reader-surface:#f3f5f9;--reader-ink:#182335;--border:#e3e7ef;--border-2:#d5ddea}
body{letter-spacing:.01em}.topbar{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 95%,transparent);backdrop-filter:blur(14px)}.sidebar{border-right:1px solid var(--border);padding-left:16px;padding-right:16px}.sidebar .nav-group a,.sidebar .nav-item{border-radius:7px;margin:2px 0;font-size:13px;transition:background .15s,color .15s}.sidebar .nav-group a.active,.sidebar .nav-item.active{box-shadow:inset 2px 0 var(--accent);background:var(--accent-soft)}.sidebar .nav-group a .no,.sidebar .nav-item .n{font-size:11px;opacity:.65}.side-filter input,#sideFilter{border-radius:9px;border-color:var(--border-2);background:var(--bg);padding:10px 12px}.main .wrap{max-width:980px;padding-left:56px;padding-right:56px}.hero{padding:42px 0 30px;margin-top:0}.hero h1{font-size:clamp(29px,3.2vw,42px);font-weight:700;letter-spacing:-1px;line-height:1.35}.hero .lead{max-width:48em}.hero .badge{font-size:11px;letter-spacing:.04em;border-radius:6px;padding:5px 9px}.hero .meta{font-size:11px}.hero .meta span{border:0;padding:4px 8px}.hero .stats{margin-top:24px}.stat{border:1px solid var(--border);background:var(--bg);padding:18px;box-shadow:none}.stat b{font-size:21px;font-weight:650}.stat span{font-size:12px}h2{font-size:25px;letter-spacing:-.6px;margin-top:38px;margin-bottom:18px}h3{font-size:19px;margin-top:30px;margin-bottom:12px}p{margin-top:12px;margin-bottom:16px}.sec-tag{letter-spacing:.1em;font-size:10px;color:var(--text-3)}.callout{padding:18px 22px;border-radius:10px;font-size:14px;border-left-width:3px}.callout .t{letter-spacing:0;font-weight:650}.callout p:last-child{margin-bottom:0}pre{background:#182235;color:#dde6f4;border:1px solid #28374d;padding:22px;line-height:1.85;border-radius:11px;box-shadow:0 4px 16px #17253b08}pre code{font-size:13px;color:inherit}pre .c,pre .bash-comment{color:#a0afc5}.copy-btn{background:#2a3a51;color:#e1e9f6;border:1px solid #44536a;right:9px;top:9px;font-size:11px;min-height:28px;border-radius:6px}.table-scroll{border-radius:11px;margin:22px 0 28px}.table-scroll table{font-size:13px;line-height:1.8}.table-scroll td,.table-scroll th{padding:13px 16px}.table-scroll th{text-align:left;background:var(--reader-surface);color:var(--text-2);font-weight:600}.table-scroll tr:last-child td{border-bottom:0}.table-scroll tbody tr:hover{background:var(--reader-surface)}.pager{gap:18px;margin-top:36px}.pager a{background:var(--bg);border:1px solid var(--border);border-radius:11px;padding:18px 20px;transition:border-color .15s,box-shadow .15s}.pager a:hover{border-color:var(--accent);box-shadow:0 5px 18px #18396a09}.pager a span{font-size:11px;color:var(--text-3)}.pager a b{font-weight:600;font-size:14px;margin-top:6px}.reader-theme{border-radius:9px;width:34px;height:34px}.reader-location{color:var(--text-3);font-size:11px;letter-spacing:.02em;padding:12px 0;border-bottom:1px solid var(--border);line-height:1.7}.reader-location a{color:var(--text-2)}.reader-location a:hover{color:var(--accent)}.reader-location .sep{margin:0 9px;color:var(--border-2)}.reader-location strong{font-weight:500;color:var(--text-2)}.reader-progress{position:fixed;left:0;top:0;height:2px;background:var(--accent);z-index:500;width:100%;transform:scaleX(0);transform-origin:left;pointer-events:none}.main-wrap{max-width:1140px}.main-wrap h1{font-size:clamp(28px,3vw,40px);letter-spacing:-1px;line-height:1.4}.main-wrap .chapter-badge{border-radius:6px;font-size:11px}.main-wrap .page-nav-link{background:var(--bg);border-color:var(--border);border-radius:11px;box-shadow:none}.main-wrap .page-nav-link:hover{border-color:var(--accent)}
html.dark{--bg:#141c28;--bg-side:#101720;--reader-surface:#1e2a3b;--reader-ink:#e8eef8;--border:#2a374a;--border-2:#3d4c62;--accent:#9bb4ff;--accent-soft:#243454;--text:#dce5f2;--text-2:#b1bfd2;--text-3:#98aac1}html.dark pre{background:#0d1420;border-color:#2a394e}html.dark .stat{background:var(--bg-side)}html.dark .sidebar .nav-group a.active{background:var(--accent-soft)}
@media(max-width:1080px){.main .wrap{padding-left:32px;padding-right:32px}}
@media(max-width:640px){.main .wrap{padding-left:20px;padding-right:20px}.hero{padding:25px 0 24px}.hero h1{font-size:28px;letter-spacing:-.6px}.hero .lead{font-size:14px!important}h2{font-size:23px;line-height:1.5}h3{font-size:18px}.callout{padding:15px 17px}pre{padding:19px 15px;line-height:1.8}.table-scroll td,.table-scroll th{padding:11px 13px}.pager{gap:10px}.pager a{padding:14px}.pager a b{font-size:13px}.reader-location{font-size:10px;padding:10px 0}.sidebar .nav-group a,.sidebar .nav-item{min-height:42px}.main-wrap{padding-left:20px;padding-right:20px}.reader-theme{width:30px;height:30px;min-width:30px}}
.reader-location-outside{max-width:868px;margin:0 auto;padding:18px 0 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.reader-menu-open{overflow:hidden}.sidebar{overscroll-behavior:contain}.reader-location a:focus-visible{outline-offset:1px}
@media(max-width:1080px){.reader-location-outside{margin:0 32px;padding-top:14px}}
@media(max-width:640px){.reader-location-outside{margin:0 20px;max-width:none}.reader-location{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}
html.dark .hotcmd.must::after{color:#14213a}.hotcmd{box-shadow:none;border-radius:10px}.hotcmd.must{border-width:1px}.hotcmd.must::after{border-radius:5px;font-weight:600}.pg-anim{animation:none!important}

/* One chapter map and reading position, shared by every paginated guide. */
.chapter-navigation{max-width:868px;margin:16px auto 0;color:var(--text-2);font-size:13px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}
.chapter-navigation>details>summary{list-style:none;cursor:pointer;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:600;line-height:1.6}
.chapter-navigation>details>summary::-webkit-details-marker{display:none}
.chapter-navigation>details>summary::after{content:attr(data-label) ' ＋';color:var(--accent);white-space:nowrap;font-size:12px;font-weight:500}
.chapter-navigation>details[open]>summary::after{content:attr(data-label) ' −'}
.chapter-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:18px;border-top:1px solid var(--border);max-height:60vh;overflow:auto;overscroll-behavior:contain}
.chapter-map>div{min-width:0}.chapter-map strong{display:block;font-size:12px;margin:0 8px 8px;color:var(--text-3)}
.chapter-map a{display:block;padding:8px;border-radius:6px;color:var(--text-2);text-decoration:none;overflow-wrap:anywhere;line-height:1.65}
.chapter-map a:hover,.chapter-map a[aria-current]{background:var(--accent-soft);color:var(--accent)}
.chapter-filter-status{font-size:12px;color:var(--text-3);margin:8px 12px}.chapter-filter-status:empty{display:none}
@media(max-width:1080px){.chapter-navigation{margin:14px 32px 0}}
@media(max-width:640px){.chapter-navigation{margin:12px 20px 0}.chapter-navigation>details>summary{align-items:flex-start;font-size:12px;padding:12px;gap:10px}.chapter-navigation>details>summary::after{font-size:11px}.chapter-map{grid-template-columns:1fr;padding:12px;gap:16px}.chapter-map a{min-height:42px}}

/* Prevent intrinsic code/grid widths from stretching the entire document. */
.wrap :not(pre)>code,.main-wrap :not(pre)>code{white-space:normal;overflow-wrap:anywhere}
.wrap .duo>*,.main-wrap .grid-2>*,.main-wrap .two-col>*{min-width:0}
@media(max-width:640px){
  body.reader-paginated .topbar{height:104px;flex-wrap:wrap;align-content:center;row-gap:7px;padding:8px 16px}
  body.reader-paginated .topbar>.logo{flex:1;min-width:0;font-size:14px;line-height:1.3;overflow:hidden;max-height:38px}
  body.reader-paginated .topbar .mark{flex-shrink:0}
  body.reader-paginated .topbar .right{flex:1 0 100%;margin-left:0;justify-content:space-between;gap:8px}
  body.reader-paginated .topbar .right>span{display:none}
  body.reader-paginated .topbar .right>a{margin-left:auto;white-space:nowrap}
  body.reader-paginated .sidebar,body.reader-paginated .sb-backdrop,body.reader-paginated .progress{top:104px}
  body.reader-paginated .main{padding-top:104px}
  body.reader-paginated :is(h2,h3,h4,section[id]){scroll-margin-top:120px}
  .wrap .duo{grid-template-columns:minmax(0,1fr)}
}
.wrap pre,.main-wrap pre{overflow-x:auto}
.main-wrap .alert>div,.main-wrap div[style*="flex:1"],.main-wrap div[style*="flex: 1"]{min-width:0}
.wrap p,.wrap li,.main-wrap p,.main-wrap li{overflow-wrap:anywhere}
.chapter-navigation>details>summary{margin:0;border:0;background:none;text-align:left}
@media(max-width:640px){body.reader-paginated .topbar .right>a[target="_blank"]{display:none}}
.stats .stat span{overflow-wrap:anywhere;min-width:0}
