/* Shared type and the persistent guidebook shell. Chapter layouts live in code/pages/. */
:root{font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#000;background:#fff;font-synthesis:none;font-kerning:normal;--ink:#15181e;--muted:#f1f2f3;--purple:#7b42bc;--yellow:#ffcf25;--teal:#14c6cb;--blue:#1868f2;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;font-size:16px;line-height:1.67}img{max-width:100%;height:auto}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}button,input{font:inherit}button{cursor:pointer}a,button,input,label{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #7b42bc;outline-offset:4px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:650;letter-spacing:-.035em;line-height:1.14}h2{font-size:24px}h3{font-size:22px}p+p{margin-top:16px}ul{margin:0;padding:0;list-style:none}[hidden]{display:none!important}.cmp-kicker{display:block;font-family:var(--mono);font-size:13px;font-weight:600;line-height:1.6;letter-spacing:1.3px;text-transform:uppercase}
.cmp-skip{position:fixed;top:12px;left:16px;z-index:10;min-height:48px;padding:12px 18px;background:#ffcf25;color:#000;border-radius:5px;transform:translateY(-180%)}.cmp-skip:focus{transform:translateY(0)}
.cmp-index{width:248px;position:fixed;inset:0 auto 0 0;z-index:5;display:flex;flex-direction:column;background:#fff;border-right:1px solid #d7d9de}.cmp-brand{min-height:104px;display:flex;align-items:center;gap:12px;padding:24px 20px;text-decoration:none;font-size:21px;font-weight:700;letter-spacing:-.5px}.cmp-brand__sub{display:block;margin-top:4px;font-size:16px;font-weight:400;letter-spacing:0;line-height:1.3}.cmp-brand__mark{position:relative;flex:0 0 24px;height:32px;border:2px solid #15181e;border-radius:2px}.cmp-brand__mark::before{content:"";position:absolute;inset:5px 4px 14px;background:#7b42bc}.cmp-brand__mark::after{content:"";position:absolute;inset:18px 4px 5px;background:#14c6cb}.cmp-index__control,.cmp-index__toggle{display:none}.cmp-index__desktop-label{padding:12px 22px 18px;font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:1.3px;font-weight:600}.cmp-index__links{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#9297a1 #fff;overscroll-behavior:contain;flex:1;padding:0 8px 20px}.cmp-index__group+.cmp-index__group{margin-top:22px}.cmp-index__label{display:block;color:#555c66;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1.3px;margin:0 14px 8px}.cmp-index__links a{display:flex;align-items:center;min-height:44px;padding:8px 14px;border-left:3px solid transparent;border-radius:0 3px 3px 0;text-decoration:none;font-size:16px;line-height:1.4;transition:background 200ms}.cmp-index__links a:hover{background:#f1f2f3}.cmp-index__links a[aria-current="page"]{border-left-color:#7b42bc;background:#f3edf9;font-weight:650}.cmp-index__end{height:12px;background:linear-gradient(90deg,#7b42bc 0 25%,#ffcf25 25% 50%,#14c6cb 50% 75%,#1868f2 75%);opacity:.9}
.cmp-shell{margin-left:248px}.cmp-topbar{max-width:1280px;margin:auto;min-height:76px;padding:14px 40px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #f1f2f3}.cmp-topbar a{display:flex;align-items:center;min-height:44px;text-decoration:none;font-size:16px;font-weight:600}.cmp-topbar__place{font-size:16px;color:#555c66}.cmp-footer{max-width:1280px;margin:0 auto;padding:40px;border-top:1px solid #d7d9de;background:#f1f2f3;font-size:16px}.cmp-footer p{max-width:70ch}.cmp-footer nav{margin-top:20px;display:flex;gap:8px 24px;flex-wrap:wrap}.cmp-footer a{min-height:44px;display:inline-flex;align-items:center;font-size:16px}.cmp-footer a:hover{text-decoration-color:#7b42bc}
@media(min-width:1528px){.cmp-index{width:calc((100vw - 1280px)/2)}.cmp-brand,.cmp-index__desktop-label,.cmp-index__links{max-width:248px;width:100%;margin-left:auto}.cmp-shell{margin-left:calc((100vw - 1280px)/2)}}
@media(max-width:900px){html{scroll-padding-top:20px}.cmp-index{position:relative;display:grid;grid-template-columns:minmax(0,1fr);width:100%;border-right:0;border-bottom:1px solid #d7d9de}.cmp-brand{grid-area:1/1;padding:16px 24px;min-height:82px}.cmp-brand__sub{margin-top:2px}.cmp-index__desktop-label,.cmp-index__end{display:none}.cmp-index__control{display:block;grid-area:2/1;appearance:none;margin:0;width:100%;height:100%;min-height:52px;opacity:0;z-index:1;cursor:pointer}.cmp-index__toggle{grid-area:2/1;display:flex;align-items:center;justify-content:space-between;min-height:52px;font-size:16px;padding:12px 24px;background:#f1f2f3;cursor:pointer;border-top:1px solid #d7d9de}.cmp-index__control:focus-visible+.cmp-index__toggle{outline:2px solid #7b42bc;outline-offset:-4px}.cmp-index__chevron{width:8px;height:8px;border:solid #15181e;border-width:0 2px 2px 0;transform:rotate(45deg);margin-right:3px;transition:transform 200ms}.cmp-index__links{grid-area:3/1;display:none;overflow:visible;padding:20px 12px 28px}.cmp-index__control:checked~.cmp-index__links{display:block}.cmp-index__control:checked+.cmp-index__toggle .cmp-index__chevron{transform:rotate(225deg)}.cmp-shell{margin-left:0}.cmp-topbar{min-height:68px;padding:12px 24px}.cmp-topbar__place{font-size:16px}.cmp-footer{padding:32px 24px}.cmp-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.cmp-footer a{line-height:1.4}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
