.article-hero{padding:76px 0 48px}.article-hero h1{font-size:clamp(40px,5.2vw,72px);font-weight:600;letter-spacing:var(--tr-display);line-height:1.01;max-width:16ch;margin-top:24px}.article-hero h1 .accent{color:var(--accent)}.article-hero .ah-lede{margin-top:28px;font-size:18px;line-height:1.6;color:var(--ink-2);max-width:60ch}.article-hero .ah-lede b{color:var(--ink);font-weight:600}.chapter{display:flex;align-items:baseline;gap:16px;margin-bottom:22px}.chapter .cnum{font-family:var(--mono);font-size:13px;color:var(--accent);letter-spacing:.06em;white-space:nowrap}.chapter h2{font-size:clamp(26px,3.2vw,40px);font-weight:600;letter-spacing:var(--tr-tight);line-height:1.1}.chapter h2 .dim{color:var(--ink-3)}.prose{max-width:64ch}.prose p{font-size:17px;line-height:1.62;color:var(--ink-2);margin-bottom:18px}.prose p b{color:var(--ink);font-weight:600}.prose .standfirst{font-size:20px;line-height:1.5;color:var(--ink);font-weight:500;letter-spacing:-.015em}.catalog{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:8px}.cap{background:var(--surf);padding:28px 30px 26px;display:flex;flex-direction:column;transition:background .16s ease}.cap:hover{background:#fbfcfd}.cap .cap-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px;display:flex;align-items:center;gap:9px}.cap .cap-k:before{content:"";width:7px;height:7px;background:var(--accent);flex:none}.cap h3{font-size:21px;font-weight:600;letter-spacing:-.02em;line-height:1.18;margin-bottom:10px}.cap p{font-size:14.5px;color:var(--ink-2);line-height:1.58;margin:0 0 16px}.cap .cap-eg{font-size:12.5px;color:var(--ink-4);font-style:italic;line-height:1.5;margin:0 0 18px}.cap .pco{margin-top:auto;border-top:1px solid var(--rule-2);padding-top:16px;display:flex;flex-direction:column;gap:9px}.cap .pco .row{display:grid;grid-template-columns:78px 1fr;gap:12px;align-items:baseline}.cap .pco .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4)}.cap .pco .v{font-size:13.5px;color:var(--ink-2);line-height:1.4}.cap .pco .row.out .v{color:var(--ink);font-weight:600}.cap .pco .row.out .v em{font-style:normal;color:var(--ink-3);font-weight:400}.cap .pco .row.out .v em .to{color:var(--accent);font-weight:600}.catalog-note{margin-top:16px;font-size:13.5px;color:var(--ink-3);line-height:1.55;max-width:74ch}.catalog-note a{color:var(--accent)}.patterns{margin-top:8px}.pattern-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);border-bottom:none}.pattern-tab{background:var(--surf);border:none;border-top:3px solid transparent;padding:18px 20px 20px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:11px;transition:background .16s ease,border-color .16s ease;font:inherit;-webkit-appearance:none;appearance:none}.pattern-tab:hover{background:#fbfcfd}.pattern-tab .pt-num{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);display:flex;align-items:center;gap:8px;transition:color .16s ease}.pattern-tab .pt-num:before{content:"";width:7px;height:7px;background:var(--ink-4);flex:none;transition:background .16s ease}.pattern-tab .pt-symptom{font-size:16px;font-weight:600;letter-spacing:-.015em;color:var(--ink-3);line-height:1.25;transition:color .16s ease}.pattern-tab[aria-selected=true]{border-top-color:var(--accent);background:#fff}.pattern-tab[aria-selected=true] .pt-num{color:var(--accent)}.pattern-tab[aria-selected=true] .pt-num:before{background:var(--accent)}.pattern-tab[aria-selected=true] .pt-symptom{color:var(--ink)}.pattern-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pattern-panel{border:1px solid var(--rule);border-top:none;padding:26px 30px 30px;background:var(--surf)}.pattern-panel[hidden]{display:none}.pattern-panel .panel-desc{font-size:16px;color:var(--ink-2);line-height:1.55;max-width:74ch;margin:0 0 22px}.pattern-panel .panel-desc b{color:var(--ink);font-weight:600}.pattern-panel .catalog{border:none;margin-top:0}.criteria{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}.crit{background:var(--surf);padding:24px 24px 26px}.crit .crit-k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-bottom:11px;display:flex;align-items:center;gap:9px}.crit .crit-k:before{content:"";width:7px;height:7px;background:var(--accent);flex:none}.crit p{font-size:14px;color:var(--ink-2);line-height:1.55;margin:0}.reach-wrap{display:grid;grid-template-columns:132px 1fr;gap:28px;margin-top:4px}.reach-axis{position:relative;padding:14px 0}.reach-axis:before{content:"";position:absolute;right:0;top:24px;bottom:24px;width:2px;background:linear-gradient(to bottom,var(--accent),var(--ink-4))}.a-tag{position:absolute;right:18px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-align:right}.a-tag.top{top:14px;color:var(--accent)}.a-tag.bot{bottom:14px;color:var(--ink-4)}.a-tag .sub{display:block;font-size:9px;color:var(--ink-4);letter-spacing:.04em;text-transform:none;margin-top:4px}.a-node{position:absolute;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--surf)}.a-node.hi{top:21px;background:var(--accent)}.a-node.lo{bottom:21px;background:var(--ink-4)}.reach{display:flex;flex-direction:column}.rung{display:grid;grid-template-columns:230px 1fr;gap:30px;padding:18px 0;border-top:1px solid var(--rule);align-items:baseline}.rung:last-child{border-bottom:1px solid var(--rule)}.rung .surface{font-size:15.5px;font-weight:600;letter-spacing:-.015em;color:var(--ink);line-height:1.3}.rung .surface .sm{display:block;font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:7px}.rung .approach{font-size:14.5px;color:var(--ink-2);line-height:1.6;margin:0}.rung .approach b{color:var(--ink);font-weight:600}.wnext{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}.wnext a{background:var(--surf);padding:30px 28px 32px;display:flex;flex-direction:column;gap:10px;transition:background .16s ease}.wnext a:hover{background:#fbfcfd}.wnext a .k{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.wnext a .t{font-size:21px;font-weight:600;letter-spacing:-.02em}.wnext a .d{font-size:14px;color:var(--ink-3);line-height:1.5}.wnext a .go{font-family:var(--mono);font-size:13px;color:var(--ink);margin-top:4px}.wnext a:hover .go{color:var(--accent)}@media(max-width:980px){.catalog{grid-template-columns:1fr}.pattern-tabs,.criteria{grid-template-columns:1fr 1fr}}@media(max-width:760px){.wnext,.criteria{grid-template-columns:1fr}.pattern-tabs{grid-template-columns:1fr;border-bottom:1px solid var(--rule)}.pattern-tab{border-top:none;border-left:3px solid transparent}.pattern-tab[aria-selected=true]{border-top-color:transparent;border-left-color:var(--accent)}.pattern-panel{border-top:1px solid var(--rule);padding:22px 20px 24px}.cap{padding:22px 22px 24px}.cap .cap-k{margin-bottom:11px}.cap h3{font-size:18px;margin-bottom:8px}.cap p{font-size:14px;margin-bottom:16px}.cap .pco{padding-top:14px;gap:7px}.rung{grid-template-columns:1fr;gap:8px}.reach-wrap{grid-template-columns:1fr;gap:0}.reach-axis{position:static;display:flex;justify-content:space-between;padding:0 0 14px}.reach-axis:before{display:none}.a-tag{position:static}.a-tag.bot{text-align:right}.a-node{display:none}}
