@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Libre+Caslon+Display&display=swap";:root{--paper:#f8f5ed;--ink:#243c34;--muted:#6d7469;--line:#dfded2;--green:#254f43;--accent:#b6613f;--serif:"Libre Caslon Display",Georgia,serif;--sans:"DM Sans",sans-serif;--mono:"DM Mono",monospace;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #ba7647;outline-offset:4px}.skip{position:absolute;left:16px;top:-100px;z-index:50;background:var(--green);color:#fff;padding:10px}.skip:focus{top:8px}.topbar{height:96px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 36px;gap:45px;background:var(--paper);position:sticky;top:0;z-index:20}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;line-height:1.05;font-size:17px;letter-spacing:-.6px;min-width:217px}.brand b{font-weight:700}.mark{font-size:47px;line-height:1;color:var(--green)}.edition,.version-label{font:10px var(--mono);letter-spacing:1.4px}.edition{color:var(--muted)}.topbar nav{display:flex;gap:26px;margin-left:auto;font-size:12px}.topbar nav a{text-decoration:none}.mobile-toggle{display:none}.workspace{display:grid;grid-template-columns:285px minmax(0,1fr) 205px;max-width:1600px;margin:auto}.sidebar{padding:35px 28px;border-right:1px solid var(--line);height:calc(100vh - 96px);position:sticky;top:96px;overflow-y:auto}.version-label{display:block;color:var(--muted);margin-bottom:10px}#version{appearance:auto;width:100%;background:transparent;border:1px solid #aeb7a5;border-radius:3px;padding:11px 10px;color:var(--green);font-weight:600}.search-open{margin:17px 0 28px;width:100%;background:#efeee5;color:#6d7469;border:0;padding:12px 10px;text-align:left;font-size:11px;display:flex;justify-content:space-between}.search-open kbd{font:10px var(--mono)}.nav-group{margin:0 0 27px}.nav-group h2{font:10px var(--mono);letter-spacing:1px;text-transform:uppercase;margin-bottom:11px;color:var(--muted)}.nav-group h2 span{margin-right:10px;color:#aaad9c}.nav-group a{display:block;text-decoration:none;font-size:12px;line-height:1.5;padding:7px 10px;border-left:2px solid transparent}.nav-group a:hover{background:#f0eee3}.nav-group a[aria-current=page]{background:#e5eadc;border-color:var(--green);color:var(--green);font-weight:700}.sidebar-note{border-top:1px solid var(--line);padding:22px 10px 10px}.sidebar-note p{font-family:var(--serif);font-size:24px;line-height:1.1;margin:12px 0}.sidebar-note a{font-size:10px;color:var(--muted)}.little-pieces{color:var(--accent);letter-spacing:6px}main{padding:44px 60px 0;min-width:0;max-width:980px}.page-meta{display:flex;justify-content:space-between;text-transform:uppercase;font:10px var(--mono);letter-spacing:1.4px;color:var(--accent);margin:0 0 23px}h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,4.4vw,72px);line-height:.99;letter-spacing:-2.3px;margin:0 0 21px;max-width:780px}.lede{font-size:16px;line-height:1.7;color:var(--muted);max-width:630px;margin:0}.page-tools{display:flex;gap:22px;margin:22px 0 35px;font:10px var(--mono)}.page-tools button{border:0;padding:0;color:var(--ink);background:none;font:inherit;text-decoration:underline;text-underline-offset:3px}.play-diagram{display:flex;align-items:center;gap:23px;background:var(--green);color:#f0ebd8;padding:30px 28px;margin:0 0 34px;position:relative;min-height:150px;border-radius:3px;background-image:radial-gradient(#7d957238 .6px,transparent .6px);background-size:12px 12px}.diagram-source{display:flex;flex-direction:column;align-items:center;gap:11px}.code-symbol{font:42px var(--mono);color:#f3d78f}.diagram-source small{font:8px var(--mono);letter-spacing:1px}.diagram-line{font-size:36px;color:#b6c4ab}.diagram-targets{display:flex;gap:19px}.diagram-targets div{display:flex;flex-direction:column;align-items:center;gap:13px;font-size:10px}.piece{display:block;width:25px;height:25px;background:#e9c37b;box-shadow:0 3px #172b24}.piece.circle{border-radius:50%}.piece.diamond{transform:rotate(45deg);background:#d29170;width:20px;height:20px;margin:3px}.piece.square{background:#a1b594;border-radius:3px}.diagram-caption{font-family:var(--serif);font-size:22px;line-height:1.15;margin-left:auto;max-width:150px}.prose{font-size:14px;line-height:1.85;color:#39443b;overflow-wrap:anywhere}.prose h2{font-family:var(--serif);font-size:34px;font-weight:400;letter-spacing:-.7px;color:var(--ink);line-height:1.15;margin:42px 0 17px;scroll-margin-top:120px}.prose h3{font-size:17px;margin-top:30px;scroll-margin-top:120px}.prose p{margin:16px 0}.prose a{color:var(--accent);text-underline-offset:3px}.prose code{font:12px var(--mono);background:#eaeadd;padding:2px 4px;border-radius:3px}.prose pre{position:relative;padding:24px 20px;overflow-x:auto;border-radius:4px;line-height:1.7;margin:23px 0}.prose pre code{font-size:11px;padding:0;background:none;border-radius:0}.copy-code{position:absolute;top:9px;right:10px;border:1px solid #5c675f;background:#1b2429;color:#c4cec6;border-radius:3px;font:9px var(--mono);padding:4px 7px}.prose table{width:100%;border-collapse:collapse;font-size:12px;margin:22px 0;display:block;overflow-x:auto}.prose td,.prose th{border-bottom:1px solid var(--line);padding:13px 12px;text-align:left;vertical-align:top}.prose th{font:10px var(--mono);text-transform:uppercase;letter-spacing:.4px;background:#eeeee2}.prose blockquote{border-left:3px solid var(--accent);margin:20px 0;padding:1px 20px;color:var(--muted)}.prose img{max-width:100%}.toc{position:sticky;top:96px;padding:48px 26px 20px 8px;height:calc(100vh - 96px);overflow-y:auto}.toc a{display:block;font-size:10px;line-height:1.6;text-decoration:none;color:var(--muted);padding:6px 0}.toc a:hover{color:var(--accent)}.toc-footer{border-top:1px solid var(--line);margin-top:27px;padding-top:20px;color:#8a907f;font:11px/1.7 var(--mono)}.page-turn{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin-top:60px;padding:25px 0;gap:20px}.page-turn a{text-decoration:none;max-width:50%;font-size:13px}.page-turn a:last-child{text-align:right}.page-turn small{display:block;font:9px var(--mono);color:var(--muted);margin-bottom:9px}footer{padding:30px 0;font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}.version-notice{font-size:12px;border:1px solid #c8af73;background:#f3e8c7;padding:13px;margin-bottom:25px}dialog{width:min(620px,calc(100vw - 30px));border:1px solid var(--line);border-radius:5px;background:var(--paper);padding:0;color:var(--ink);box-shadow:0 30px 100px #15251c55}dialog::backdrop{background:#18281fa0;backdrop-filter:blur(3px)}.search-top{display:flex;gap:10px;padding:20px;border-bottom:1px solid var(--line)}#query{flex:1;min-width:0;background:none;border:0;color:var(--ink)}.search-close{border:1px solid var(--line);background:none;font-size:11px;color:var(--ink)}#results{max-height:55vh;overflow:auto;padding:15px}#results a{display:block;text-decoration:none;padding:15px;border-bottom:1px solid var(--line)}#results a:hover{background:#e5eadc}#results strong{font-size:14px}#results p{font-size:12px;color:var(--muted);margin-bottom:0}@media(min-width:1600px){.topbar{padding-left:calc((100vw - 1528px)/2)}}@media(max-width:1200px){.workspace{grid-template-columns:255px minmax(0,1fr)}.toc{display:none}main{padding:40px}.sidebar{padding:30px 20px}.diagram-caption{display:none}}@media(max-width:760px){.topbar{height:76px;padding:0 20px;gap:15px}.brand{min-width:0;font-size:15px}.mark{font-size:37px}.edition{display:none}.topbar nav{display:none}.mobile-toggle{display:block;margin-left:auto;border:1px solid #aeb7a5;background:none;color:var(--ink);padding:8px 12px;border-radius:3px;font-size:12px}.workspace{display:block}.sidebar{display:none;position:fixed;top:76px;left:0;width:min(330px,100%);height:calc(100dvh - 76px);z-index:30;background:var(--paper);box-shadow:20px 0 50px #1d392a33}.sidebar.open{display:block}main{padding:31px 22px 0}h1{font-size:49px;letter-spacing:-1.6px}.lede{font-size:14px}.page-meta{font-size:9px;letter-spacing:.8px}.page-tools{font-size:9px;gap:17px}.play-diagram{gap:16px;padding:24px 18px}.diagram-targets{gap:17px}.prose{font-size:13px}.prose h2{font-size:31px}.prose pre{padding:28px 14px 18px}.prose pre code{font-size:10px}.page-turn a{font-size:11px}.page-turn small{font-size:8px}footer span{display:none}}
