@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/jetbrains-mono-400-normal-cyrillic-ext.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/jetbrains-mono-400-normal-cyrillic.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/jetbrains-mono-400-normal-greek.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/jetbrains-mono-400-normal-vietnamese.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/jetbrains-mono-400-normal-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/jetbrains-mono-400-normal-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-500-normal-cyrillic-ext.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-500-normal-cyrillic.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-500-normal-greek.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-500-normal-vietnamese.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-500-normal-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/jetbrains-mono-500-normal-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit;font-style:normal;font-weight:300;font-display:optional;src:url(/fonts/outfit-300-normal-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Outfit;font-style:normal;font-weight:300;font-display:optional;src:url(/fonts/outfit-300-normal-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/outfit-400-normal-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/outfit-400-normal-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/outfit-500-normal-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/outfit-500-normal-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/outfit-600-normal-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/outfit-600-normal-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/outfit-700-normal-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/outfit-700-normal-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--apl-paper:#f7f4ee;--apl-paper-edge:#ffffff;--apl-paper-deeper:#fbf8f2;--apl-ink:#1a1a22;--apl-ink-soft:#45424e;--apl-muted:#6f6b78;--apl-muted-strong:#45424e;--apl-rule:rgba(26,26,34,0.14);--apl-rule-strong:rgba(26,26,34,0.22);--apl-accent:#c2185b;--apl-accent-soft:#a01452;--apl-cta-shadow:0 10px 30px rgba(194,24,91,0.32);--apl-sans:"Outfit",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--apl-serif:var(--apl-sans);--apl-display:var(--apl-sans);--apl-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,monospace;--apl-measure:38rem;--apl-measure-wide:50rem;--apl-w-leaf:min(1100px,96vw);--apl-w-index:min(1320px,96vw);--apl-pad:1rem}.apl-app[data-paper=ink],html[data-paper=ink]{--apl-paper:#0a0a12;--apl-paper-edge:#13131e;--apl-paper-deeper:#181826;--apl-ink:#dcdae4;--apl-ink-soft:#a8a5b2;--apl-muted:#8e8b98;--apl-muted-strong:#b6b3c0;--apl-rule:rgba(255,255,255,0.10);--apl-rule-strong:rgba(255,255,255,0.22);--apl-accent:#c2185b;--apl-accent-soft:#a01452;--apl-cta-shadow:0 10px 30px rgba(194,24,91,0.45)}.apl-app[data-paper=white],html[data-paper=white]{--apl-paper:#ffffff;--apl-paper-edge:#ffffff;--apl-paper-deeper:#f7f4ee;--apl-rule:rgba(0,0,0,0.06)}.apl-app[data-type=garamond]{--apl-sans-weight:400}.apl-app[data-type=spectral]{--apl-sans-weight:300}.apl-app[data-type=mono]{--apl-serif:var(--apl-mono);--apl-display:var(--apl-mono)}.apl-app[data-density=compact]{--apl-pad:0.6rem}:root{color-scheme:light}.apl-app[data-paper=ink],html[data-paper=ink]{color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0;color:var(--apl-ink,#1a1a22)}#root,body,html{background:var(--apl-paper,#f7f4ee)}#root,.apl-app{min-height:100vh}body{margin:0;font-family:var(--apl-serif);font-size:19px;line-height:1.6;color:var(--apl-ink);background:var(--apl-paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.apl-app{background:var(--apl-paper)!important;color:var(--apl-ink)!important;position:relative;background-image:radial-gradient(circle at 20% 30%,rgba(0,0,0,.015),transparent 60%),radial-gradient(circle at 80% 75%,rgba(0,0,0,.015),transparent 55%)}.apl-app[data-paper=ink]{background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.018),transparent 60%),radial-gradient(circle at 80% 75%,rgba(255,255,255,.018),transparent 55%)}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a{color:var(--apl-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--apl-ink)}.apl-top{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--apl-paper),transparent 6%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:14px 28px 12px;display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:20px;gap:20px;border-bottom:1px solid var(--apl-rule)}.apl-top--cover{border-bottom-color:transparent;background:transparent}.apl-top__brand{display:flex;align-items:center;gap:12px;color:var(--apl-ink)}.apl-top__brand-mark{line-height:0;color:var(--apl-accent)}.apl-top__brand-text{display:flex;flex-direction:column;line-height:1.1;text-align:left}.apl-top__brand-1{font-family:var(--apl-display);font-size:17px;letter-spacing:.04em}.apl-top__brand-2{font-size:12px;font-style:italic;color:var(--apl-muted-strong);letter-spacing:.06em;text-transform:lowercase}.apl-top__nav{gap:2px}.apl-top__nav,.apl-top__right{display:flex;align-items:center}.apl-top__right{gap:14px}.apl-theme-toggle{display:flex;border:1px solid var(--apl-rule);border-radius:999px;padding:2px;background:var(--apl-paper-deeper)}.apl-theme-toggle__btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--apl-muted-strong);border-radius:999px;transition:background .12s,color .12s}.apl-theme-toggle__btn:hover{color:var(--apl-ink)}.apl-theme-toggle__btn.is-on{background:var(--apl-ink);color:var(--apl-paper)}.apl-top__nav-btn{font-family:var(--apl-display);font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;border:1px solid transparent;color:var(--apl-ink-soft);border-radius:0;transition:color .12s,background .12s,border-color .12s}.apl-top__nav-btn:hover{color:var(--apl-ink)}.apl-top__nav-btn.is-on{color:var(--apl-accent);border-color:var(--apl-rule);background:color-mix(in srgb,var(--apl-paper-deeper),transparent 0%)}.apl-top__rule{display:none}.apl-main{position:relative;min-height:calc(100vh - 60px)}.apl-marginalia{position:fixed;top:50%;left:28px;transform:translateY(-50%);writing-mode:vertical-rl;-webkit-text-orientation:mixed;text-orientation:mixed;font-family:var(--apl-display);letter-spacing:.22em;color:var(--apl-muted-strong);font-size:11px;display:flex;gap:18px;align-items:center;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.apl-app[data-diagrams=off] .apl-diag,.apl-app[data-marginalia=off] .apl-marginalia{display:none}.apl-status{font-family:var(--apl-display);letter-spacing:.1em;color:var(--apl-ink);display:inline-block}.apl-status[data-status=mature]{color:var(--apl-accent)}.apl-status[data-status=emerging]{color:var(--apl-accent);opacity:.75}.apl-status[data-status=experimental]{color:var(--apl-muted-strong)}.apl-status[data-status=deprecated]{color:var(--apl-muted)}.apl-status--small{font-size:.85em}.apl-catbadge{font-family:var(--apl-display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--cat,var(--apl-ink));padding:4px 0;border-top:1px solid var(--cat,var(--apl-rule));border-bottom:1px solid var(--cat,var(--apl-rule));display:inline-block;text-decoration:none}.apl-catbadge--link,a.apl-catbadge{cursor:pointer;transition:color .12s,border-color .12s}.apl-catbadge--link:hover,a.apl-catbadge:hover{color:var(--apl-accent);border-top-color:var(--apl-accent);border-bottom-color:var(--apl-accent)}.apl-cover{min-height:calc(100vh - 60px);max-width:var(--apl-w-leaf);margin:0 auto;padding:60px 48px 80px}.apl-cover__head{text-align:left!important}.apl-cover__sheet{width:100%;position:relative}.apl-cover__head{text-align:center;padding:30px 0 50px}.apl-cover__kicker{font-family:var(--apl-mono);font-size:.72rem;letter-spacing:.22em;color:var(--apl-accent);text-transform:uppercase;font-weight:500;margin:0 0 30px}.apl-cover__title{margin:0;font-family:var(--apl-display);font-weight:300;line-height:1.08;display:flex;flex-direction:column;gap:8px;align-items:center}.apl-cover__title-a,.apl-cover__title-b{font-size:clamp(40px,7vw,72px);letter-spacing:-.028em}.apl-cover__title-b{font-weight:600;color:var(--apl-accent)}.apl-cover__title-and{font-family:var(--apl-serif);font-style:italic;font-size:.4em;color:var(--apl-muted-strong);letter-spacing:0;text-transform:none;font-weight:400}.apl-cover__rule{width:60px;height:1px;background:var(--apl-accent);margin:36px auto 28px}.apl-cover__epigraph{max-width:32rem;margin:0 auto;font-size:18px;line-height:1.55;color:var(--apl-ink-soft);text-wrap:pretty;text-align:center}.apl-cover__epigraph-cite{max-width:32rem;margin:14px auto 0;font-size:13px;color:var(--apl-muted-strong);letter-spacing:.04em;text-align:center}.apl-cover__rule{margin-left:auto;margin-right:auto}.apl-cover__stats{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:0;gap:0;margin:50px 0;border-top:1px solid var(--apl-rule);border-bottom:1px solid var(--apl-rule)}.apl-cover__stat{padding:18px 8px;text-align:center;background:transparent;border:0;border-right:1px solid var(--apl-rule);color:inherit;font:inherit;cursor:pointer;transition:background .12s ease}.apl-cover__stat:last-child{border-right:0}.apl-cover__stat:focus-visible,.apl-cover__stat:hover{background:var(--apl-rule);outline:none}.apl-cover__stat:focus-visible{box-shadow:inset 0 0 0 2px var(--apl-accent)}.apl-cover__stat-n{font-family:var(--apl-display);font-size:24px;color:var(--apl-ink)}.apl-cover__stat-l{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--apl-muted-strong);margin-top:4px}.apl-cover__how-title{font-family:var(--apl-display);font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);margin:36px 0 14px;text-align:center}.apl-cover__how p{margin:14px 0;text-wrap:pretty}.apl-cover__how strong{font-weight:600}.apl-cover__entries{margin-top:36px}.apl-cover__entry-list{list-style:none;margin:0;padding:0;column-count:2;column-gap:28px}@media (max-width:640px){.apl-cover__entry-list{column-count:1}}.apl-cover__entry-list li{page-break-inside:avoid;break-inside:avoid;margin:0 0 6px}.apl-cover__entry{width:100%;display:grid;grid-template-columns:auto 1fr auto;grid-gap:8px;gap:8px;padding:6px 8px;text-align:left;color:var(--apl-ink);border-bottom:1px dotted var(--apl-rule);transition:background .1s}.apl-cover__entry:hover{background:var(--apl-paper-deeper)}.apl-cover__entry-name{align-self:center}.apl-cover__entry-status{align-self:center;justify-self:end}.apl-cover__entry-cat{grid-column:1/-1;font-family:var(--apl-display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--apl-muted-strong);margin-top:-2px}.apl-cover__foot{margin-top:60px;text-align:center}.apl-cover__foot-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.apl-cover__updated{margin:22px auto 0;font-family:var(--apl-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--apl-muted-strong);text-align:center}.apl-cover__ai-prompt{margin:28px auto 0;max-width:720px;text-align:left;border:1px dotted var(--apl-rule-strong);border-radius:3px;background:var(--apl-paper-deeper);padding:14px 16px 16px}.apl-cover__ai-prompt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.apl-cover__ai-prompt-label{font-size:10px;letter-spacing:.22em;color:var(--apl-ink);line-height:1.4}.apl-cover__ai-prompt-copy,.apl-cover__ai-prompt-label{font-family:var(--apl-display);text-transform:uppercase}.apl-cover__ai-prompt-copy{flex-shrink:0;font-size:11px;letter-spacing:.18em;color:var(--apl-accent);background:transparent;border:1px solid var(--apl-accent);border-radius:999px;padding:4px 12px;cursor:pointer;transition:background .14s,color .14s,border-color .14s}.apl-cover__ai-prompt-copy.is-copied,.apl-cover__ai-prompt-copy:hover{background:var(--apl-accent);color:var(--apl-paper)}.apl-cover__ai-prompt-copy.is-copied{border-color:var(--apl-accent)}.apl-cover__ai-prompt-body{margin:0;font-family:var(--apl-mono);font-size:12px;line-height:1.55;color:var(--apl-ink-soft);background:var(--apl-paper);border:1px solid var(--apl-rule);border-radius:2px;padding:12px 14px;white-space:pre-wrap;word-break:break-word;max-height:280px;overflow:auto}.apl-cover__ai-prompt-body:focus{outline:2px solid var(--apl-accent);outline-offset:1px}.apl-cover__colophon{margin-top:18px;font-size:12px;color:var(--apl-muted-strong);letter-spacing:.04em}.apl-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--apl-display);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:var(--apl-accent);padding:12px 20px;border-radius:0;border:1px solid var(--apl-accent);text-decoration:none;transition:background .12s,color .12s,border-color .12s;cursor:pointer;font-weight:500}.apl-btn:focus-visible,.apl-btn:hover{background:var(--apl-accent-soft);border-color:var(--apl-accent-soft);color:#fff}.apl-btn:disabled,.apl-btn[disabled]{opacity:.55;cursor:not-allowed}.apl-btn--ghost{background:transparent;color:var(--apl-ink);border-color:var(--apl-rule)}.apl-btn--ghost:focus-visible,.apl-btn--ghost:hover{background:var(--apl-accent);color:#fff;border-color:var(--apl-accent)}.apl-btn--big{padding:14px 26px;font-size:13px}a.apl-btn{text-decoration:none}.apl-idx{max-width:var(--apl-w-index);margin:0 auto;padding:60px 48px 100px}.apl-idx__masthead{text-align:left}.apl-idx__lede{max-width:var(--apl-measure)}.apl-idx__masthead{text-align:center;margin-bottom:50px}.apl-idx__meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:8px 16px;margin-top:6px}.apl-idx__meta .apl-idx__updated{margin:0}.apl-idx__latest-toggle,.apl-idx__meta .apl-idx__updated{font-family:var(--apl-mono);font-size:10.5px;letter-spacing:.08em;text-transform:lowercase;color:var(--apl-ink-soft);opacity:.55}.apl-idx__latest-toggle{background:transparent;border:0;padding:2px 0;cursor:pointer;transition:opacity .12s ease,color .12s ease}.apl-idx__latest-toggle.is-on,.apl-idx__latest-toggle:hover{opacity:1;color:var(--apl-ink);text-decoration:underline;text-underline-offset:3px}.apl-idx__chapter--flat .apl-idx__chapter-head{border-top-color:var(--apl-rule)}.apl-pcard__since--book:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--cat,var(--apl-ink-soft));vertical-align:.05em}.apl-idx__kicker{font-family:var(--apl-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);font-weight:500;margin:0 0 16px}.apl-idx__title{font-family:var(--apl-display);font-weight:600;font-size:clamp(40px,5vw,56px);letter-spacing:-.025em;margin:0 0 18px}.apl-idx__lede{max-width:36rem;margin:0 auto;color:var(--apl-ink-soft);text-wrap:pretty;font-size:13px;line-height:1.55}.apl-idx__updated{margin:14px auto 0;font-family:var(--apl-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--apl-muted-strong);text-align:center}.apl-idx__toolbar{margin-top:32px;display:flex;flex-direction:column;gap:12px;align-items:center}.apl-idx__search{display:flex;align-items:center;gap:8px;width:100%;max-width:36rem;border:1px solid var(--apl-rule);padding:10px 14px;color:var(--apl-ink);background:var(--apl-paper-deeper)}.apl-idx__search-icon{color:var(--apl-muted-strong);font-size:18px}.apl-idx__search input{flex:1 1;border:0;background:transparent;font:inherit;color:inherit;outline:none;min-width:0}.apl-idx__search input::placeholder{color:var(--apl-ink-soft);font-style:italic}.apl-idx__filter{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.apl-idx__filter-btn{font-family:var(--apl-display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--apl-rule);color:var(--apl-ink-soft);display:inline-flex;align-items:center;gap:6px;background:transparent}.apl-idx__filter-btn:hover{color:var(--apl-ink);border-color:var(--apl-ink)}.apl-idx__filter-btn.is-on{background:var(--apl-ink);color:var(--apl-paper);border-color:var(--apl-ink)}.apl-idx__filter-btn--pill{border-radius:999px;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.apl-idx__filter--books{justify-content:center;max-width:60rem;margin:0 auto}.apl-idx__filter-btn--book{gap:5px;padding:3px 9px;font-size:9.5px;letter-spacing:.08em;border-color:color-mix(in srgb,var(--cat,var(--apl-rule)) 55%,var(--apl-rule))}.apl-idx__filter-btn--book:hover{border-color:var(--cat,var(--apl-ink));color:var(--apl-ink)}.apl-idx__filter-btn--book.is-on{background:var(--cat,var(--apl-ink));border-color:var(--cat,var(--apl-ink));color:var(--apl-paper)}.apl-idx__filter-roman{font-size:8px;letter-spacing:.14em;opacity:.7}.apl-idx__filter-name{text-transform:none;letter-spacing:.02em;font-size:9.5px}.apl-composition__glyph{display:inline-block;width:1.6em;text-align:center;margin-right:6px;color:var(--apl-muted-strong);font-family:var(--apl-display);font-size:.85em}.apl-compositions-index__toolbar{margin-top:24px;margin-bottom:8px}.apl-compositions-index__empty{margin:32px 0;text-align:center;color:var(--apl-ink-soft);font-style:italic}.apl-idx__chapter{margin-top:50px}.apl-idx__chapter-head{padding:12px 0;margin-bottom:8px;border-top:2px solid var(--cat,var(--apl-ink));border-bottom:1px solid var(--apl-rule);display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-column-gap:14px;column-gap:14px;align-items:baseline}.apl-idx__chapter-roman{grid-row:1/span 2;font-family:var(--apl-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cat,var(--apl-accent));align-self:center;font-weight:500}.apl-idx__chapter-name{margin:0;font-family:var(--apl-display);font-weight:600;font-size:26px;letter-spacing:-.02em}.apl-idx__chapter-note{grid-row:2;grid-column:2;margin:0;font-style:italic;color:var(--apl-muted-strong);font-size:14px}.apl-idx__chapter-count{grid-row:1/span 2;grid-column:3;margin:0;font-family:var(--apl-display);letter-spacing:.18em}.apl-comp-count,.apl-idx__chapter-count{align-self:center;font-size:11px;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-comp-count{font-family:var(--apl-mono);letter-spacing:.14em;white-space:nowrap;padding-left:12px}.apl-comp-count__label{opacity:.7}.apl-idx__btn:hover .apl-comp-count{color:var(--apl-accent)}.apl-idx__list{list-style:none;margin:0;padding:0;columns:30rem 2;column-gap:48px}.apl-idx__row{margin:0;page-break-inside:avoid;break-inside:avoid}.apl-idx__btn{width:100%;display:grid;grid-template-columns:32px 1fr auto;grid-gap:10px;gap:10px;align-items:baseline;padding:7px 4px;text-align:left;color:var(--apl-ink);border-bottom:1px solid color-mix(in srgb,var(--apl-rule),transparent 60%);transition:background .1s}.apl-idx__btn:hover{background:var(--apl-paper-deeper);color:var(--apl-accent)}.apl-idx__star{line-height:1}.apl-idx__name{font-family:var(--apl-display);font-size:16px;letter-spacing:.02em}.apl-idx__intent{grid-column:2/-1;font-style:italic;color:var(--apl-muted-strong);font-size:14px;text-wrap:pretty}.apl-idx__row--dim .apl-idx__name{color:var(--apl-muted-strong);font-weight:400}.apl-idx__row--dim .apl-idx__btn:hover .apl-idx__name{color:var(--apl-accent)}.apl-idx__row[data-status=deprecated] .apl-idx__name{text-decoration:line-through;text-decoration-thickness:1px}.apl-idx__footnote{margin-top:60px;text-align:center;font-size:12px;color:var(--apl-muted-strong);font-style:italic}.apl-leaf{padding:60px 48px 80px;display:flex;flex-direction:column;align-items:center}.apl-page{max-width:var(--apl-w-leaf);width:100%;font-size:18px;line-height:1.62}.apl-page__body>p,.apl-page__body>section>p{max-width:var(--apl-measure)}.apl-page__body .apl-constraint,.apl-page__body .apl-context,.apl-page__body .apl-example,.apl-page__body .apl-problem,.apl-page__body .apl-solution,.apl-page__body .apl-therefore,.apl-page__head .apl-page__aka,.apl-page__head .apl-page__intent{max-width:none}.apl-leaf__meta-grid{display:grid;grid-template-columns:1fr;grid-gap:28px 48px;gap:28px 48px;margin-top:36px;padding-top:18px;border-top:1px solid var(--apl-rule)}@media (min-width:960px){.apl-leaf__meta-grid{grid-template-columns:1fr 1fr}}.apl-leaf__meta-grid>.apl-refs{margin-top:0;padding-top:0;border-top:0}@media (min-width:960px){.apl-leaf__meta-grid>.apl-page__compositions--frameworks,.apl-leaf__meta-grid>.apl-refs--cards{grid-column:1/-1}.apl-page__compositions--frameworks .apl-page__compositions-more>ul,.apl-page__compositions--frameworks>ul{column-count:2;column-gap:48px}.apl-page__compositions--frameworks .apl-page__compositions-more>ul>li,.apl-page__compositions--frameworks>ul>li{page-break-inside:avoid;break-inside:avoid}}@media (min-width:1280px){.apl-page__compositions--frameworks .apl-page__compositions-more>ul,.apl-page__compositions--frameworks>ul{column-count:3}}.apl-page--wide{max-width:var(--apl-w-index)}.apl-page--wide .apl-page__head>p,.apl-page--wide .apl-page__intent{max-width:var(--apl-measure)}.apl-atlas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:24px;gap:24px;margin-top:16px}.apl-atlas-book{border:1px solid var(--apl-rule);border-top:3px solid var(--cat,var(--apl-ink));padding:18px 18px 16px;background:var(--apl-paper-edge);display:flex;flex-direction:column}.apl-atlas-book__head{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto;grid-column-gap:12px;column-gap:12px;align-items:baseline;padding-bottom:12px;margin-bottom:10px;border-bottom:1px solid var(--apl-rule)}.apl-atlas-book__roman{font-family:var(--apl-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--cat,var(--apl-accent))}.apl-atlas-book__name{margin:0;font-family:var(--apl-display);font-size:18px;font-weight:600}.apl-atlas-book__name a{color:inherit}.apl-atlas-book__name a:hover{color:var(--cat,var(--apl-accent))}.apl-atlas-book__count{margin:0;font-family:var(--apl-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-atlas-book__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.apl-atlas-chip{display:grid;grid-template-columns:24px 1fr;grid-gap:6px;gap:6px;align-items:baseline;padding:4px;border-radius:3px;transition:background .12s}.apl-atlas-chip:hover{background:var(--apl-paper-deeper)}.apl-atlas-chip__pin{background:none;border:0;cursor:pointer;padding:0;color:inherit;line-height:1}.apl-atlas-chip__name{font-family:var(--apl-display);font-size:14.5px;color:var(--apl-ink)}.apl-atlas-chip__name:hover{color:var(--cat,var(--apl-accent))}.apl-atlas-chip[data-status=deprecated] .apl-atlas-chip__name{text-decoration:line-through;text-decoration-thickness:1px;color:var(--apl-muted-strong)}.apl-atlas-chip.is-focus{background:var(--apl-paper-deeper)}.apl-atlas-chip.is-focus .apl-atlas-chip__name{color:var(--cat,var(--apl-accent));font-weight:600}.apl-atlas-chip.is-neighbour{background:color-mix(in srgb,var(--cat,var(--apl-rule)),transparent 80%)}.apl-atlas-chip.is-dim{opacity:.28}.apl-book__poster{margin:8px auto 28px;max-width:720px;padding:28px 28px 20px;border:1px solid var(--apl-rule);border-top:4px solid var(--cat,var(--apl-accent));background:var(--apl-paper-edge)}.apl-book__poster-head{text-align:center;padding-bottom:18px;border-bottom:1px solid var(--apl-rule);margin-bottom:6px}.apl-book__poster-kicker{margin:0 0 6px;font-family:var(--apl-mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--apl-ink-soft)}.apl-book__poster-title{margin:0;font-family:var(--apl-display);font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.01em;color:var(--apl-ink)}.apl-book__poster-title-em{font-style:italic;font-weight:500;color:var(--cat,var(--apl-accent))}.apl-book__poster-byline{margin:8px 0 0;font-family:var(--apl-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--apl-ink-soft)}.apl-book__poster-list{list-style:none;margin:0;padding:0}.apl-book__poster-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;grid-column-gap:18px;column-gap:18px;padding:18px 0;border-bottom:1px solid var(--apl-rule)}.apl-book__poster-row:last-child{border-bottom:0}.apl-book__poster-left{min-width:0}.apl-book__poster-num{display:block;font-family:var(--apl-display);font-size:44px;line-height:1;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--cat,var(--apl-accent));margin-bottom:4px}.apl-book__poster-name{margin:0;font-family:var(--apl-display);font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.2}.apl-book__poster-name a{color:inherit;text-decoration:none}.apl-book__poster-name a:hover{color:var(--cat,var(--apl-accent))}.apl-book__poster-tagline{margin:4px 0 0;font-style:italic;font-size:14px;line-height:1.4;color:var(--apl-ink-soft);text-wrap:pretty}.apl-book__poster-count{margin:8px 0 0;font-family:var(--apl-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--apl-ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.apl-book__poster-right{min-width:0;overflow:hidden}.apl-book__poster-right .apl-diag{margin:0;padding:0}.apl-book__poster-right svg{width:100%!important;height:auto!important;max-height:180px}.apl-book__poster-right .apl-diag--d2{display:flex;align-items:center;justify-content:center;width:100%;margin:0}.apl-book__poster-right .apl-diag--d2 img{display:block;width:100%;height:auto;max-height:180px;object-fit:contain;object-position:center}.apl-book__poster-right{--apl-sem-actor:#4a6c80;--apl-sem-agent:#8b3a3a;--apl-sem-store:#1e6a73;--apl-sem-process:#6a5f53;--apl-sem-artifact:#2e6b3d}.apl-book__poster-right svg .edgePath path,.apl-book__poster-right svg .edgePaths path,.apl-book__poster-right svg .flowchart-link{stroke:var(--apl-ink-soft)!important;fill:none!important;stroke-width:1px!important}.apl-book__poster-right svg defs marker path,.apl-book__poster-right svg defs marker polygon{fill:var(--apl-ink-soft)!important;stroke:var(--apl-ink-soft)!important}.apl-book__poster-right svg .node circle,.apl-book__poster-right svg .node ellipse,.apl-book__poster-right svg .node path,.apl-book__poster-right svg .node polygon,.apl-book__poster-right svg .node rect{fill:color-mix(in srgb,var(--apl-sem-process) 12%,var(--apl-paper))!important;stroke:var(--apl-sem-process)!important;stroke-width:1.2px!important}.apl-book__poster-right svg .node.actor circle,.apl-book__poster-right svg .node.actor path,.apl-book__poster-right svg .node.actor polygon,.apl-book__poster-right svg .node.actor rect{fill:color-mix(in srgb,var(--apl-sem-actor) 12%,var(--apl-paper))!important;stroke:var(--apl-sem-actor)!important}.apl-book__poster-right svg .node.agent circle,.apl-book__poster-right svg .node.agent path,.apl-book__poster-right svg .node.agent polygon,.apl-book__poster-right svg .node.agent rect{fill:color-mix(in srgb,var(--apl-sem-agent) 14%,var(--apl-paper))!important;stroke:var(--apl-sem-agent)!important;stroke-width:1.4px!important}.apl-book__poster-right svg .node.store circle,.apl-book__poster-right svg .node.store path,.apl-book__poster-right svg .node.store polygon,.apl-book__poster-right svg .node.store rect{fill:color-mix(in srgb,var(--apl-sem-store) 12%,var(--apl-paper))!important;stroke:var(--apl-sem-store)!important}.apl-book__poster-right svg .node.process circle,.apl-book__poster-right svg .node.process path,.apl-book__poster-right svg .node.process polygon,.apl-book__poster-right svg .node.process rect{fill:color-mix(in srgb,var(--apl-sem-process) 12%,var(--apl-paper))!important;stroke:var(--apl-sem-process)!important}.apl-book__poster-right svg .node.artifact circle,.apl-book__poster-right svg .node.artifact path,.apl-book__poster-right svg .node.artifact polygon,.apl-book__poster-right svg .node.artifact rect{fill:color-mix(in srgb,var(--apl-sem-artifact) 12%,var(--apl-paper))!important;stroke:var(--apl-sem-artifact)!important}.apl-book__poster-right svg .edgeLabel,.apl-book__poster-right svg .edgeLabel *,.apl-book__poster-right svg .nodeLabel,.apl-book__poster-right svg .nodeLabel *,.apl-book__poster-right svg foreignObject div{color:var(--apl-ink)!important;fill:var(--apl-ink)!important;background:transparent!important}.apl-book__poster-right svg .edgeLabel rect{fill:var(--apl-paper-edge)!important}.apl-app[data-paper=ink] .apl-book__poster-right,html[data-paper=ink] .apl-book__poster-right{--apl-sem-actor:#88a8bc;--apl-sem-agent:#d27a6a;--apl-sem-store:#5fb0b8;--apl-sem-process:#b0a597;--apl-sem-artifact:#79b88a}.apl-book__poster-noimg{margin:0;text-align:center;letter-spacing:.16em;color:var(--apl-ink-soft);opacity:.6;padding:24px 0;border:1px dashed var(--apl-rule)}.apl-book__poster-foot,.apl-book__poster-noimg{font-family:var(--apl-mono);font-size:10px;text-transform:uppercase}.apl-book__poster-foot{display:flex;justify-content:space-between;align-items:center;padding-top:14px;margin-top:4px;border-top:1px solid var(--apl-rule);letter-spacing:.18em;color:var(--cat,var(--apl-accent))}@media (max-width:560px){.apl-book__poster{padding:20px 16px 14px}.apl-book__poster-title{font-size:26px}.apl-book__poster-row{grid-template-columns:1fr;row-gap:12px}.apl-book__poster-right svg{max-height:160px}}.apl-book__poster-embed{margin:8px auto 24px;max-width:720px;text-align:center}.apl-book__poster-embed-img{display:block;width:100%;height:auto;border:1px solid var(--apl-rule)}.apl-app[data-paper=ink] .apl-book__poster-embed-img--light,.apl-book__poster-embed-img--dark,html[data-paper=ink] .apl-book__poster-embed-img--light{display:none}.apl-app[data-paper=ink] .apl-book__poster-embed-img--dark,html[data-paper=ink] .apl-book__poster-embed-img--dark{display:block}.apl-book__poster-embed-btn{display:block;width:100%;padding:0;margin:0;border:0;background:none;cursor:zoom-in;transition:transform .12s ease,box-shadow .12s ease}.apl-book__poster-embed-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px -10px color-mix(in srgb,var(--apl-ink) 30%,transparent)}.apl-book__poster-embed-btn:focus-visible{outline:2px solid var(--cat,var(--apl-accent));outline-offset:4px}:-webkit-full-screen>img{width:100vw;height:auto}:-webkit-full-screen>img,:fullscreen>img{width:100vw;height:auto}.apl-book__poster:not([data-export=true]){display:none!important}.apl-book__poster[data-export=true]{width:1080px;max-width:none;min-height:1350px;height:1350px;margin:0;padding:32px 56px 20px;box-sizing:border-box;display:flex;flex-direction:column;border-top-width:8px;overflow:hidden}.apl-book__poster[data-export=true] .apl-book__poster-aka,.apl-book__poster[data-export=true] .apl-book__poster-name,.apl-book__poster[data-export=true] .apl-book__poster-name a{color:var(--apl-ink)}.apl-book__poster-aka{margin:4px 0 0;font-family:var(--apl-sans);font-size:11px;line-height:1.3;color:var(--apl-ink-soft);font-style:italic;font-weight:400}.apl-book__poster[data-export=true] .apl-book__poster-aka{font-size:12px;color:var(--apl-ink-soft)}.apl-book__poster[data-export=true] .apl-book__poster-head{padding-bottom:14px;margin-bottom:0;border-bottom:2px solid var(--cat,var(--apl-accent));text-align:center}.apl-book__poster[data-export=true] .apl-book__poster-kicker{font-size:12px;letter-spacing:.32em;color:var(--apl-ink);margin-bottom:6px;font-weight:500}.apl-book__poster[data-export=true] .apl-book__poster-title{font-size:46px;font-weight:800;line-height:1;letter-spacing:-.02em}.apl-book__poster[data-export=true] .apl-book__poster-byline{font-size:11px;letter-spacing:.22em;margin-top:6px}.apl-book__poster[data-export=true] .apl-book__poster-list{flex:1 1;display:flex;flex-direction:column;justify-content:stretch}.apl-book__poster[data-export=true] .apl-book__poster-row{padding:14px 4px;align-items:center;grid-template-columns:300px minmax(0,1fr);column-gap:24px;flex:1 1;border-bottom:1px solid color-mix(in srgb,var(--apl-ink) 12%,transparent)}.apl-book__poster[data-export=true] .apl-book__poster-row:last-child{border-bottom:0}.apl-book__poster[data-export=true] .apl-book__poster-num{font-size:64px;margin-bottom:0;line-height:.9;letter-spacing:-.02em}.apl-book__poster[data-export=true] .apl-book__poster-name{font-size:22px;letter-spacing:.06em;margin-top:8px;line-height:1.15;white-space:normal;overflow-wrap:break-word}.apl-book__poster[data-export=true] .apl-book__poster-count,.apl-book__poster[data-export=true] .apl-book__poster-tagline{display:none}.apl-book__poster[data-export=true] .apl-book__poster-right{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:4px 0}.apl-book__poster[data-export=true] .apl-book__poster-right svg{width:100%!important;max-width:100%;max-height:200px;height:auto}.apl-book__poster[data-export=true] .apl-book__poster-right .apl-diag--d2{width:100%;height:100%}.apl-book__poster[data-export=true] .apl-book__poster-right .apl-diag--d2 img{width:100%;max-width:100%;max-height:210px;height:auto;object-fit:contain}.apl-book__poster[data-export=true] .apl-book__poster-right .apl-diag--mermaid svg text,.apl-book__poster[data-export=true] .apl-book__poster-right svg .edgeLabel,.apl-book__poster[data-export=true] .apl-book__poster-right svg .nodeLabel{font-size:15px!important;font-weight:500!important;line-height:1.15!important}.apl-book__poster[data-export=true] .apl-book__poster-right svg .edgeLabel{font-size:12px!important;font-weight:500!important}.apl-book__poster[data-export=true] .apl-book__poster-right svg .node circle,.apl-book__poster[data-export=true] .apl-book__poster-right svg .node path,.apl-book__poster[data-export=true] .apl-book__poster-right svg .node polygon,.apl-book__poster[data-export=true] .apl-book__poster-right svg .node rect{stroke-width:1.5px!important}.apl-book__poster .apl-diag--hand-svg{margin:0;padding:0;width:100%;display:block}.apl-book__poster .apl-diag--hand-svg svg{display:block;width:100%;height:auto}.apl-book__poster[data-export=true] .apl-diag--hand-svg svg{max-height:195px}.apl-book__poster[data-export=true] .apl-book__poster-foot{padding-top:10px;font-size:10px;letter-spacing:.22em}.apl-book__poster-export{margin:-16px auto 28px;max-width:720px;text-align:right;display:flex;justify-content:flex-end;gap:18px}.apl-book__poster-export-btn{font-family:var(--apl-mono);font-size:10px;letter-spacing:.1em;text-decoration:none;color:var(--apl-ink-soft);background:none;border:0;padding:0;cursor:pointer}.apl-book__poster-export-btn:hover{color:var(--cat,var(--apl-accent))}.apl-book__poster-export-btn:focus-visible{outline:2px solid var(--cat,var(--apl-accent));outline-offset:3px}.apl-book__details{margin:0 0 32px}.apl-book__details-h{margin:8px 0 14px;font-family:var(--apl-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-ink-soft);font-weight:500}.apl-book__details-text{font-family:var(--apl-sans);font-size:14px;line-height:1.55;color:var(--apl-ink);-webkit-user-select:text;-moz-user-select:text;user-select:text}.apl-book__details-block{margin:0 0 18px;white-space:pre-wrap}.apl-book__details-title-link{font-weight:600;color:var(--apl-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.apl-book__details-title-link:hover{color:var(--cat,var(--apl-accent))}.apl-book__all-h{margin:8px 0 14px;font-family:var(--apl-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-ink-soft);font-weight:500}.apl-book__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px;margin:0 0 24px}.apl-book__card{border:1px solid var(--apl-rule);border-top:3px solid var(--cat,var(--apl-accent));padding:14px 16px;background:var(--apl-paper-edge);display:flex;flex-direction:column;min-height:96px}.apl-book__card-head{display:grid;grid-template-columns:auto 1fr auto;grid-column-gap:8px;column-gap:8px;align-items:baseline;margin-bottom:6px}.apl-book__card-status{line-height:0}.apl-book__card-name{margin:0;font-family:var(--apl-display);font-size:15px;font-weight:600;line-height:1.25}.apl-book__card-name a{color:var(--apl-ink);text-decoration:none}.apl-book__card-name a:hover{color:var(--cat,var(--apl-accent))}.apl-book__card-count{font-family:var(--apl-mono);font-size:10px;letter-spacing:.1em;color:var(--apl-ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.apl-book__card-intent{margin:0;font-size:13px;line-height:1.4;color:var(--apl-ink-soft);text-wrap:pretty}@media (min-width:960px){.apl-book__cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}.apl-book__back{font-family:var(--apl-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--apl-ink-soft);margin-right:14px}.apl-book__back:hover{color:var(--cat,var(--apl-accent))}.apl-book__updated{font-family:var(--apl-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--apl-ink-soft)}.apl-atlas-detail{position:-webkit-sticky;position:sticky;bottom:12px;margin:24px auto 0;width:100%;background:var(--apl-paper-edge);border:1px solid var(--apl-rule);border-top:3px solid var(--apl-accent);padding:16px 22px 18px;box-shadow:0 -2px 0 0 var(--apl-paper) inset,0 18px 48px rgba(0,0,0,.55);z-index:50}.apl-atlas-detail__head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}.apl-atlas-detail__name{margin:0;font-size:19px}.apl-atlas-detail__intent{margin:6px 0 0;color:var(--apl-muted-strong);font-size:14px}.apl-atlas-detail__actions{display:flex;gap:14px;align-items:center;font-size:13px;flex-shrink:0}.apl-atlas-detail__close{background:none;border:0;padding:0;cursor:pointer;color:var(--apl-accent);font:inherit}.apl-atlas-detail__connections{margin-top:12px;padding-top:12px;border-top:1px solid var(--apl-rule);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:20px;gap:20px}.apl-atlas-detail__col-label{margin:0 0 6px;font-family:var(--apl-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-atlas-detail__col ul{list-style:none;margin:0;padding:0}.apl-atlas-detail__col li{padding:2px 0;font-size:14px}.apl-atlas-detail__col--upward .apl-atlas-detail__col-label{color:#a8451f}.apl-atlas-detail__col--downward .apl-atlas-detail__col-label{color:#3d6f5f}.apl-atlas-detail__col--lateral .apl-atlas-detail__col-label{color:#5a4a3a}.apl-crumbs{margin:0 0 22px;font-family:var(--apl-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-crumbs__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 8px}.apl-crumbs__item{display:inline-flex;align-items:center}.apl-crumbs__item+.apl-crumbs__item:before{content:"›";margin-right:8px;color:var(--apl-muted)}.apl-crumbs__item a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .12s ease,border-color .12s ease}.apl-crumbs__item a:hover{color:var(--apl-ink);border-bottom-color:var(--apl-rule)}.apl-crumbs__item[aria-current=page]{color:var(--apl-ink)}.apl-page__head{border-bottom:1px solid var(--apl-rule);padding-bottom:28px;margin-bottom:28px}.apl-page__head-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.apl-page__status-line{display:flex;align-items:center;gap:8px}.apl-page__status-label{font-family:var(--apl-display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-page__title{margin:0;font-family:var(--apl-display);font-weight:600;font-size:clamp(32px,5vw,48px);line-height:1.05;letter-spacing:-.025em}.apl-page__name{font-size:1em;text-wrap:balance}.apl-page__aka{color:var(--apl-muted-strong);font-size:14px}.apl-page__aka,.apl-page__intent{margin:14px 0 0;padding-left:52px}.apl-page__intent{color:var(--apl-ink);font-size:19px;font-style:italic;text-wrap:pretty}.apl-connections{margin:22px 0;padding:18px 22px;background:var(--apl-paper-deeper);border-left:2px solid var(--apl-rule)}.apl-neighbourhood{margin:28px 0 8px;padding:0;background:transparent;border:none}.apl-neighbourhood__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--apl-rule);flex-wrap:wrap}.apl-neighbourhood__title{margin:0;font-family:var(--apl-display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-ink-soft);font-weight:500}.apl-neighbourhood__hint{margin:0;font-style:italic;font-size:12.5px;color:var(--apl-muted-strong)}.apl-neighbourhood__stage{width:100%;height:460px;background:var(--apl-paper-deeper);border:1px solid var(--apl-rule)}.apl-neighbourhood__legend{margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}.apl-neighbourhood__toggle{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;font-family:var(--apl-mono);font-size:10.5px;letter-spacing:.04em;color:var(--apl-muted-strong);background:transparent;border:1px solid var(--apl-rule);border-radius:999px;cursor:pointer;transition:background .1s,color .1s,border-color .1s,opacity .1s}.apl-neighbourhood__toggle:hover{color:var(--apl-ink);border-color:var(--apl-rule-strong);background:var(--apl-paper-deeper)}.apl-neighbourhood__toggle.is-off{opacity:.45;text-decoration:line-through;text-decoration-thickness:1px}.apl-neighbourhood__swatch{display:inline-block;width:16px;height:2px;flex-shrink:0}@media (max-width:640px){.apl-neighbourhood__stage{height:360px}.apl-neighbourhood__toggle{font-size:10px;padding:4px 8px}}.apl-connections--upward{border-left-color:var(--apl-ink)}.apl-connections--downward{border-left-color:var(--apl-accent)}.apl-connections--lateral{border-left-color:var(--apl-muted-strong);border-left-style:dashed}.apl-connections__lead{font-style:italic;color:var(--apl-ink-soft);margin:0 0 12px;text-wrap:pretty}.apl-connections__list{list-style:none;margin:0;padding:0}.apl-connections__row{display:grid;grid-template-columns:110px auto 1fr;align-items:baseline;grid-column-gap:12px;column-gap:12px;padding:4px 0;text-wrap:pretty}.apl-pcard-grid{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:10px;gap:10px}.apl-pcard{background:var(--apl-paper-edge);border:1px solid var(--apl-rule);border-radius:4px;transition:border-color .1s,transform .1s;min-width:0}.apl-pcard:hover{border-color:var(--apl-rule-strong);transform:translateY(-1px)}.apl-pcard__link{display:flex;flex-direction:column;gap:6px;padding:12px 14px;color:var(--apl-ink);text-decoration:none;height:100%}.apl-pcard__button{width:100%;border:0;text-align:left;font:inherit;background:transparent;cursor:pointer}.apl-pcard.is-selected{border-color:var(--apl-ink);box-shadow:inset 0 0 0 1px var(--apl-ink)}.apl-pcard__head{display:flex;gap:8px;align-items:baseline}.apl-pcard__glyph{flex-shrink:0;line-height:1}.apl-pcard__glyph--kind{font-family:var(--apl-display);color:var(--apl-muted-strong);font-size:14px}.apl-pcard__favicon{flex-shrink:0;width:18px;height:18px;border-radius:3px;align-self:center;background:var(--apl-paper);object-fit:contain}.apl-comp-title{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.apl-comp-title__favicon{width:48px;height:48px;border-radius:8px;padding:4px;background:var(--apl-paper-edge);border:1px solid var(--apl-rule);object-fit:contain;flex-shrink:0}@media (max-width:640px){.apl-comp-title{gap:12px}.apl-comp-title__favicon{width:40px;height:40px;border-radius:6px}}.apl-pcard__name{font-family:var(--apl-display);font-size:14.5px;font-weight:600;letter-spacing:.01em;line-height:1.25;overflow-wrap:anywhere;min-width:0}.apl-pcard__meta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-family:var(--apl-mono);font-size:10px;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-pcard__meta,.apl-pcard__role{letter-spacing:.18em}.apl-pcard__since{text-transform:none;letter-spacing:.04em;opacity:.85}.apl-pcard__note{margin:2px 0 0;font-style:italic;font-size:12.5px;line-height:1.45;color:var(--apl-muted-strong);text-wrap:pretty;overflow-wrap:anywhere;min-width:0}.apl-pcard[data-status=deprecated] .apl-pcard__name{text-decoration:line-through;text-decoration-thickness:1px}.apl-pcard--missing .apl-pcard__name{font-style:italic;color:var(--apl-muted-strong)}.apl-methodology__diagram-head{font-family:var(--apl-display);font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--apl-muted-strong);text-align:center;margin:0 0 10px}.apl-example{margin:18px 0 6px;padding:14px 16px;border-left:3px solid var(--apl-rule-strong);border-radius:0 4px 4px 0}.apl-example__lead{margin:0 0 6px;font-family:var(--apl-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-example__body{margin:0;font-size:14.5px;line-height:1.55;color:var(--apl-ink-soft);text-wrap:pretty;overflow-wrap:anywhere}.apl-source__chapter{font-style:italic;color:var(--apl-muted-strong)}.apl-source__chapter:after{content:" "}.apl-pcard__maturity{margin-left:auto;font-family:var(--apl-display);font-size:12px;letter-spacing:.05em;color:var(--apl-muted-strong);flex-shrink:0;line-height:1;align-self:center}.apl-pcard[data-maturity=proven] .apl-pcard__maturity{color:var(--apl-ink)}.apl-steps__count{font-family:var(--apl-mono);font-size:11px;letter-spacing:.14em;color:var(--apl-muted-strong);font-weight:400;margin-left:6px}.apl-steps__list{list-style:none;margin:14px 0 0;padding:0;position:relative}.apl-steps__list:before{content:"";position:absolute;left:16px;top:16px;bottom:16px;width:1px;background:var(--apl-rule);pointer-events:none}.apl-step{display:grid;grid-template-columns:34px 1fr;grid-gap:14px;gap:14px;align-items:start;padding:4px 0 18px;position:relative}.apl-step:last-child{padding-bottom:0}.apl-step__num{width:34px;height:34px;border-radius:50%;background:var(--apl-paper);border:1px solid var(--apl-rule-strong);display:flex;align-items:center;justify-content:center;font-family:var(--apl-display);font-size:14px;font-weight:600;color:var(--apl-ink);position:relative;z-index:1;flex-shrink:0}.apl-step__body{min-width:0}.apl-step__name{font-family:var(--apl-display);font-size:15.5px;font-weight:600;letter-spacing:.005em;line-height:1.3;margin:6px 0 4px;color:var(--apl-ink)}.apl-step__desc{margin:0;font-size:14.5px;line-height:1.55;color:var(--apl-ink-soft);text-wrap:pretty;overflow-wrap:anywhere}.apl-step__patterns{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.apl-step__patterns-label{font-family:var(--apl-mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-muted-strong);margin-right:2px}.apl-step__pattern--missing{opacity:.55;font-style:italic}@media (max-width:640px){.apl-steps__list:before{left:12px}.apl-step{grid-template-columns:26px 1fr;gap:10px}.apl-step__num{width:26px;height:26px;font-size:12px}.apl-step__name{font-size:14.5px;margin-top:3px}.apl-step__desc{font-size:13.5px}}.apl-pcard[data-type=recipe]{background:linear-gradient(var(--apl-rule) 1px,transparent 1px) 0 0 /100% 22px,linear-gradient(90deg,var(--apl-rule) 1px,transparent 1px) 0 0 /22px 100%,color-mix(in srgb,var(--apl-accent) 4%,var(--apl-paper-deeper));border-style:dashed;border-color:var(--apl-rule-strong)}.apl-pcard[data-type=recipe]:hover{border-color:var(--apl-ink)}.apl-pcard[data-type=recipe] .apl-pcard__name{font-style:italic;font-weight:500}.apl-pcard[data-type=recipe] .apl-pcard__glyph--kind{color:var(--apl-ink);font-size:16px;opacity:.7}.apl-pcard__kind-tag{font-family:var(--apl-mono);font-size:9.5px;letter-spacing:.22em;margin-bottom:2px}.apl-connections__rel,.apl-pcard__kind-tag{text-transform:uppercase;color:var(--apl-muted-strong)}.apl-connections__rel{font-family:var(--apl-display);font-size:11px;letter-spacing:.14em;text-align:right}.apl-connections__intent{font-style:italic;color:var(--apl-muted-strong);font-size:14.5px}@media (max-width:640px){.apl-connections__row{grid-template-columns:1fr}.apl-connections__rel{text-align:left}.apl-connections__intent{padding-left:0}}.apl-xref{font-family:var(--apl-display);font-size:13px;letter-spacing:.06em;color:var(--apl-ink);display:inline-flex;align-items:baseline;gap:6px;text-align:left;border-bottom:1px solid var(--apl-rule);padding:1px 0;transition:color .12s,border-color .12s}.apl-xref:hover{color:var(--apl-accent);border-bottom-color:var(--apl-accent)}.apl-xref[data-status=deprecated] .apl-xref__name{text-decoration:line-through}.apl-xref--missing{color:var(--apl-ink-soft);font-style:italic}.apl-divider{text-align:center;font-size:14px;letter-spacing:.4em;color:var(--apl-accent);margin:32px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.apl-page__body p{margin:14px 0;text-wrap:pretty}.apl-section{margin:28px 0}.apl-section__title{margin:0 0 10px;font-family:var(--apl-display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);font-weight:400}.apl-section>p:first-of-type{margin-top:0}.apl-section>p:last-of-type{margin-bottom:0}.apl-context{font-size:17px;color:var(--apl-ink-soft)}.apl-context em,.apl-problem__label{font-family:var(--apl-display);font-style:normal;font-weight:400;letter-spacing:.14em;text-transform:uppercase;font-size:11px;color:var(--apl-accent);margin-right:6px;vertical-align:.18em}.apl-problem{font-size:22px;line-height:1.45;font-style:italic;font-weight:500;margin:26px 0!important;text-wrap:pretty;color:var(--apl-ink);position:relative;padding:0 12px}.apl-problem:after,.apl-problem:before{content:"";position:absolute;left:0;right:0;height:1px;background:var(--apl-rule)}.apl-problem:before{top:-16px}.apl-problem:after{bottom:-16px}.apl-page__forces{margin:26px 0}.apl-forces__lead{margin:0 0 8px;font-style:italic;color:var(--apl-muted-strong)}.apl-page__forces ul{list-style:none;margin:0;padding:0}.apl-page__forces li{padding:4px 0 4px 22px;position:relative;text-wrap:pretty}.apl-page__forces li:before{content:"—";position:absolute;left:0;color:var(--apl-accent)}.apl-example{margin:22px 0!important;padding:14px 18px;font-size:16.5px;color:var(--apl-ink-soft);border-left:2px dotted var(--apl-rule)}.apl-codeex,.apl-example{background:var(--apl-paper-deeper)}.apl-codeex{margin:18px 0;border:1px solid var(--apl-rule);border-radius:6px;overflow:hidden}.apl-codeex__intent{margin:0;padding:12px 16px;font-style:italic;color:var(--apl-ink-soft);font-size:15.5px}.apl-codeex__intent,.apl-codeex__tabs{border-bottom:1px solid var(--apl-rule)}.apl-codeex__tabs{display:flex;flex-wrap:wrap;gap:2px;padding:8px 8px 0}.apl-codeex__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid transparent;border-bottom:none;padding:8px 14px;font-family:var(--apl-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--apl-muted-strong);cursor:pointer;border-radius:4px 4px 0 0}.apl-codeex__tab:hover{color:var(--apl-ink)}.apl-codeex__tab.is-active{background:var(--apl-paper);border-color:var(--apl-rule);color:var(--apl-accent);position:relative;top:1px}.apl-codeex__panel{padding:16px}.apl-codeex__caption{margin:0 0 10px;font-style:italic;color:var(--apl-ink-soft);font-size:15px}.apl-codeex__pre{margin:0;padding:14px 16px;background:var(--apl-paper);border:1px solid var(--apl-rule);border-radius:4px;overflow-x:auto;font-family:var(--apl-mono);font-size:13.5px;line-height:1.55;color:var(--apl-ink);white-space:pre;-moz-tab-size:4;tab-size:4}.apl-codeex__pre code{font-family:inherit;background:transparent;padding:0;color:inherit}.apl-codeex__meta{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--apl-muted-strong)}.apl-codeex__meta-item code{font-family:var(--apl-mono);font-size:11.5px;background:var(--apl-paper);padding:1px 6px;border:1px solid var(--apl-rule);border-radius:3px}.apl-codeex__verified{color:var(--apl-accent)}.apl-codeex__unverified{opacity:.7;font-style:italic}.apl-therefore{font-family:var(--apl-display);font-size:14px;letter-spacing:.24em;text-transform:uppercase;color:var(--apl-accent);margin:28px 0 6px!important;text-align:left}.apl-therefore,.apl-therefore em{font-style:italic}.apl-solution{font-size:20px;font-weight:500;margin:0 0 28px!important;text-wrap:pretty;border-left:4px solid var(--apl-accent);padding-left:16px}.apl-consequences{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin:26px 0;border-top:1px solid var(--apl-rule);padding-top:18px}@media (max-width:640px){.apl-consequences{grid-template-columns:1fr}}.apl-consequences__col h2,.apl-consequences__col h4{margin:0 0 10px;font-family:var(--apl-display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);font-weight:400}.apl-consequences__col ul{list-style:none;margin:0;padding:0}.apl-consequences__col li{padding:2px 0 2px 16px;position:relative;font-size:16px;text-wrap:pretty}.apl-consequences__col li:before{content:"·";position:absolute;left:4px;color:var(--apl-accent);font-size:22px;line-height:.7}.apl-constraint{margin:26px 0!important;padding:14px 18px;background:color-mix(in srgb,var(--apl-accent) 12%,var(--apl-paper));color:var(--apl-ink);border-left:6px solid var(--apl-accent);font-style:italic;font-size:16px;line-height:1.5;text-wrap:pretty}.apl-app[data-paper=ink] .apl-constraint{background:color-mix(in srgb,var(--apl-accent) 18%,var(--apl-paper));color:var(--apl-ink);border-left-color:var(--apl-accent)}.apl-constraint__label{display:block;margin-bottom:4px;font-family:var(--apl-display);font-style:normal;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent)}.apl-refs{margin-top:36px;padding-top:18px;border-top:1px solid var(--apl-rule)}.apl-refs h2,.apl-refs h4{margin:0 0 10px}.apl-composition .apl-page__body>section>h2,.apl-composition .apl-page__body>section>h3,.apl-refs h2,.apl-refs h4{font-family:var(--apl-display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-muted-strong);font-weight:400}.apl-composition .apl-page__body>section>h2,.apl-composition .apl-page__body>section>h3{margin:32px 0 10px}.apl-composition .apl-page__body>section:first-child>h2{margin-top:18px}.apl-composition .apl-composition__role-group>h3{margin:22px 0 6px;font-size:10px}.apl-refs ul{list-style:none;margin:0;padding:0}.apl-refs li{font-size:14px;padding:4px 0;text-wrap:pretty}.apl-refs li,.apl-rel__count{color:var(--apl-muted-strong)}.apl-rel__count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.92em}.apl-page__compositions-more{margin-top:6px}.apl-page__compositions-more>summary{cursor:pointer;font-size:13px;color:var(--apl-accent);padding:4px 0;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.apl-page__compositions-more>summary::-webkit-details-marker{display:none}.apl-page__compositions-more>summary:before{content:"▸ ";display:inline-block;transition:transform .15s ease}.apl-page__compositions-more[open]>summary:before{transform:rotate(90deg)}.apl-page__compositions-more>summary:hover{color:var(--apl-ink)}.apl-diag{margin:24px 0;text-align:center}.apl-diag__svg{max-width:100%;width:100%;height:auto}.apl-diag--mermaid{display:flex;justify-content:center}.apl-diag--mermaid svg{max-width:100%;height:auto}.apl-diag--mermaid svg .cluster rect,.apl-diag--mermaid svg .label-container,.apl-diag--mermaid svg .node rect{rx:10px;ry:10px}.apl-diag__src{text-align:left;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;background:var(--apl-surface-2,rgba(0,0,0,.04));padding:12px 14px;border-radius:6px;white-space:pre-wrap;word-break:break-word}.apl-diag__t{font-family:var(--apl-sans);font-size:13px;font-weight:500;fill:var(--apl-ink);stroke:none;paint-order:fill;letter-spacing:.01em}.apl-diag__t--em{font-weight:700;font-size:13px}.apl-diag__t--small{font-size:12px;font-weight:400;fill:var(--apl-muted-strong)}.apl-diag__cap{margin-top:8px;font-style:italic;color:var(--apl-muted-strong);font-size:14px}.apl-page--stub .apl-page__stub-note{margin-top:40px;padding:28px 24px;background:var(--apl-paper-deeper);border-left:4px solid var(--apl-accent);font-size:17px;color:var(--apl-ink-soft);text-wrap:pretty}.apl-page__stub-note-coda{font-style:italic}.apl-extlink{font-family:var(--apl-mono);font-size:14px;word-break:break-all}.apl-leaf__nav{max-width:var(--apl-measure-wide);width:100%;margin-top:60px;padding-top:28px;border-top:1px solid var(--apl-rule);display:grid;grid-template-columns:1fr auto 1fr;grid-gap:18px;gap:18px;align-items:center}.apl-leaf__navbtn{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px 14px;color:var(--apl-ink);border:1px solid transparent;transition:background .12s,border-color .12s}.apl-leaf__navbtn:hover{background:var(--apl-paper-deeper);border-color:var(--apl-rule)}.apl-leaf__navbtn--next{text-align:right}.apl-leaf__navbtn--up{font-size:11px;text-align:center;flex-direction:row;justify-content:center;align-items:center;padding:12px 18px}.apl-leaf__navbtn--up,.apl-leaf__navbtn-dir{font-family:var(--apl-display);letter-spacing:.22em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-leaf__navbtn-dir{font-size:10px}.apl-leaf__navbtn-name{font-family:var(--apl-display);font-size:16px;color:var(--apl-ink)}.apl-leaf__navfoot{margin:18px auto 0;text-align:center;font-family:var(--apl-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--apl-muted)}.apl-leaf__navfoot-link{color:inherit;text-decoration:none;border-bottom:1px solid var(--apl-rule);padding-bottom:1px}.apl-leaf__navfoot-link:hover{color:var(--apl-accent);border-color:var(--apl-accent)}.apl-foot{max-width:46rem;margin:64px auto 0;padding:22px 24px 40px;text-align:center;border-top:1px solid var(--apl-rule)}.apl-foot__line{margin:0;font-family:var(--apl-display);font-size:12.5px;line-height:1.7;letter-spacing:.01em;color:var(--apl-muted-strong)}.apl-foot__line+.apl-foot__line{margin-top:4px}.apl-foot__line--soft{font-size:11.5px;color:var(--apl-muted);letter-spacing:.04em}.apl-foot__a{color:inherit;text-decoration:none;border-bottom:1px solid var(--apl-rule);padding-bottom:1px;transition:color .12s,border-color .12s}.apl-foot__a:hover{color:var(--apl-accent);border-bottom-color:var(--apl-accent)}.apl-foot__sep{display:inline-block;margin:0 6px;color:var(--apl-rule-strong)}.apl-form{max-width:36rem;margin:22px auto;padding:28px;background:var(--apl-paper-edge);border:1px solid var(--apl-rule);border-radius:14px;box-shadow:0 14px 36px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:16px}.apl-app[data-paper=ink] .apl-form{background:var(--apl-paper-edge);box-shadow:0 14px 36px rgba(0,0,0,.35)}.apl-form__hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.apl-form__field{display:flex;flex-direction:column;gap:6px}.apl-form__field label{font-family:var(--apl-display);font-size:13px;letter-spacing:.04em;color:var(--apl-ink);font-weight:500}.apl-form__hint{color:var(--apl-muted);font-weight:400;font-size:12px;margin-left:6px}.apl-form input[type=email],.apl-form input[type=text],.apl-form input[type=url],.apl-form select,.apl-form textarea{font-family:var(--apl-display);font-size:15px;color:var(--apl-ink);background:var(--apl-paper);border:1px solid var(--apl-rule-strong);border-radius:8px;padding:10px 12px;outline:none;transition:border-color .12s,box-shadow .12s;width:100%}.apl-form textarea{resize:vertical;min-height:110px;line-height:1.5}.apl-form input:focus,.apl-form select:focus,.apl-form textarea:focus{border-color:var(--apl-accent);box-shadow:0 0 0 3px rgba(194,24,91,.16)}.apl-form__submit{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-family:var(--apl-display);font-size:14px;letter-spacing:.04em;font-weight:600;color:#fff;background:var(--apl-accent);border:none;border-radius:10px;padding:11px 18px;cursor:pointer;box-shadow:var(--apl-cta-shadow);transition:background .12s,transform .12s}.apl-form__submit:hover{background:var(--apl-accent-soft)}.apl-form__submit:active{transform:translateY(1px)}.apl-form__submit:disabled{opacity:.55;cursor:default}.apl-form__submit svg{transition:transform .12s}.apl-form__submit:hover svg{transform:translateX(2px)}.apl-form__status{margin:0;padding:12px 14px;border-radius:10px;font-family:var(--apl-display);font-size:14px;line-height:1.5}.apl-form__status--ok{background:rgba(40,130,75,.1);color:#1e6a3d;border:1px solid rgba(40,130,75,.25)}.apl-form__status--err{background:rgba(194,24,91,.1);color:var(--apl-accent);border:1px solid rgba(194,24,91,.3)}.apl-app[data-paper=ink] .apl-form__status--ok{color:#74d195;background:rgba(40,130,75,.18)}.apl-app[data-paper=ink] .apl-form__status--err{color:#ff9bbf;background:rgba(194,24,91,.2)}.apl-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .18s ease}.apl-modal.is-open{opacity:1;pointer-events:auto}.apl-modal[hidden]{display:none!important}.apl-modal__scrim{position:absolute;inset:0;background:rgba(10,10,18,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.apl-app[data-paper=ink] .apl-modal__scrim,html[data-paper=ink] .apl-modal__scrim{background:rgba(0,0,0,.7)}.apl-modal__panel{position:relative;z-index:1;width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;background:#ffffff;color:#1a1a22;border:1px solid rgba(26,26,34,.14);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.35);padding:28px 28px 24px;transform:translateY(10px) scale(.985);transition:transform .22s cubic-bezier(.2,.7,.2,1)}html[data-paper=ink] .apl-modal__panel{background:#13131e;color:#dcdae4;border-color:rgba(255,255,255,.1);box-shadow:0 30px 80px rgba(0,0,0,.65)}.apl-modal.is-open .apl-modal__panel{transform:translateY(0) scale(1)}.apl-modal__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:1px solid rgba(26,26,34,.14);background:transparent;border-radius:10px;color:#45424e;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .12s,border-color .12s}.apl-modal__close:hover{color:#c2185b;border-color:#c2185b}html[data-paper=ink] .apl-modal__close{border-color:rgba(255,255,255,.16);color:#b6b3c0}html[data-paper=ink] .apl-modal__close:hover{color:#c2185b;border-color:#c2185b}.apl-modal__title{font-family:var(--apl-display);font-weight:600;font-size:22px;margin:0 36px 8px 0;letter-spacing:-.01em;color:inherit}.apl-modal__lede{margin:0 0 18px;font-size:14px;line-height:1.55;color:#45424e}html[data-paper=ink] .apl-modal__lede{color:#b6b3c0}html[data-paper=ink] .apl-modal .apl-form__field label{color:#dcdae4}html[data-paper=ink] .apl-modal .apl-form__hint{color:#8e8b98}.apl-modal .apl-form input[type=email],.apl-modal .apl-form input[type=text],.apl-modal .apl-form input[type=url],.apl-modal .apl-form select,.apl-modal .apl-form textarea{background:#f7f4ee;color:#1a1a22;border-color:rgba(26,26,34,.22)}html[data-paper=ink] .apl-modal .apl-form input[type=email],html[data-paper=ink] .apl-modal .apl-form input[type=text],html[data-paper=ink] .apl-modal .apl-form input[type=url],html[data-paper=ink] .apl-modal .apl-form select,html[data-paper=ink] .apl-modal .apl-form textarea{background:#0a0a12;color:#dcdae4;border-color:rgba(255,255,255,.18)}html[data-paper=ink] .apl-modal .apl-form input::placeholder,html[data-paper=ink] .apl-modal .apl-form textarea::placeholder{color:#6f6c79}.apl-form--in-modal{margin:0;padding:0;background:transparent;border:none;border-radius:0;box-shadow:none}.apl-atlas{padding:40px 28px 80px;max-width:1500px;margin:0 auto;position:relative}.apl-atlas__head{text-align:center;max-width:40rem;margin:0 auto 28px}.apl-atlas__kicker{font-family:var(--apl-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);font-weight:500;margin:0 0 8px}.apl-atlas__title{font-family:var(--apl-display);font-weight:600;font-size:clamp(28px,4vw,40px);margin:0 0 12px;letter-spacing:-.02em}.apl-atlas__lede{color:var(--apl-ink-soft);font-size:16px;text-wrap:pretty}.apl-atlas__legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:12px;color:var(--apl-muted-strong);font-style:italic}.apl-atlas__legend-swatch{display:inline-block;width:18px;height:2px;margin-right:6px;vertical-align:middle}.apl-atlas__booklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:18px;gap:18px}.apl-atlas__bookcard{width:100%;height:100%;display:grid;grid-template-columns:1fr;grid-gap:6px;gap:6px;padding:18px 20px 20px;background:var(--apl-paper-deeper);border:1px solid var(--apl-rule);border-left:4px solid var(--cat,var(--apl-accent));color:var(--apl-ink);text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease,transform .14s ease}.apl-atlas__bookcard:focus-visible,.apl-atlas__bookcard:hover{border-color:var(--cat,var(--apl-ink));background:var(--apl-paper);outline:none}.apl-atlas__bookcard:active{transform:translateY(1px)}.apl-atlas__bookcard-roman{font-family:var(--apl-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--cat,var(--apl-accent))}.apl-atlas__bookcard-name{font-family:var(--apl-display);font-weight:600;font-size:22px;line-height:1.15;letter-spacing:-.01em;color:var(--apl-ink)}.apl-atlas__bookcard-note{font-family:var(--apl-serif);font-style:italic;color:var(--apl-muted-strong);font-size:14px;line-height:1.45}.apl-atlas__bookcard-dots{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 4px}.apl-atlas__bookcard-dot{width:8px;height:8px;border-radius:50%;opacity:.85}.apl-atlas__bookcard-dot--experimental{opacity:.55}.apl-atlas__bookcard-dot--deprecated{opacity:.3}.apl-atlas__bookcard-foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:2px}.apl-atlas__bookcard-count{font-family:var(--apl-display);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-atlas__bookcard-arrow{font-size:18px;color:var(--cat,var(--apl-accent))}.apl-atlas__svg{width:100%;height:auto;aspect-ratio:1440/1000;display:block;background:var(--apl-paper-deeper);border:1px solid var(--apl-rule)}.apl-atlas__region-roman{font-family:var(--apl-display);font-size:10px;letter-spacing:.32em;text-transform:uppercase;fill:var(--apl-muted-strong)}.apl-atlas__region-name{font-family:var(--apl-display);font-size:16px;fill:var(--apl-ink);letter-spacing:.04em}.apl-atlas__head-actions{margin-top:12px;display:flex;justify-content:center}.apl-atlas__region.is-clickable ellipse{transition:fill-opacity .18s,stroke-opacity .18s}.apl-atlas__region.is-clickable:hover ellipse{fill-opacity:.1;stroke-opacity:.65}.apl-atlas__region.is-clickable:hover .apl-atlas__region-name{text-decoration:underline;text-underline-offset:3px}.apl-atlas__region.is-open .apl-atlas__region-name{font-size:18px;letter-spacing:.05em}.apl-atlas__marker{cursor:pointer;transition:opacity .2s}.apl-atlas__marker:hover circle:first-of-type{stroke-width:1.6}.apl-atlas__marker.is-dim{opacity:.22}.apl-atlas__marker.is-focus{opacity:1}.apl-atlas__label-group{pointer-events:none}.apl-atlas__label{font-family:var(--apl-sans);font-size:11px;font-weight:500;dominant-baseline:middle}.apl-atlas__marker.is-focus .apl-atlas__label{font-weight:600}.apl-atlas__card{position:fixed;right:28px;bottom:28px;width:360px;max-width:calc(100vw - 56px);background:var(--apl-paper);border:1px solid var(--apl-rule);padding:18px 20px;pointer-events:auto;z-index:20;transition:transform .2s ease,opacity .2s ease;opacity:0;transform:translateY(10px)}.apl-atlas__card[data-shown=true]{opacity:1;transform:translateY(0)}.apl-atlas__card-meta{display:flex;align-items:center;gap:10px;margin-bottom:8px}.apl-atlas__card-cat{font-family:var(--apl-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase}.apl-atlas__card-name{font-family:var(--apl-display);font-weight:400;font-size:22px;margin:0 0 4px;letter-spacing:.02em;line-height:1.15}.apl-atlas__card-aka{margin:0 0 8px;font-size:13px;color:var(--apl-muted-strong)}.apl-atlas__card-intent{margin:8px 0 14px;font-style:italic;font-size:14.5px;color:var(--apl-ink-soft);text-wrap:pretty}.apl-atlas__card-actions{display:flex;gap:10px}.twk-panel{font-family:var(--apl-serif)}.apl-boot{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--apl-muted-strong);font-family:var(--apl-display);letter-spacing:.04em}.apl-boot__kicker{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--apl-accent);margin:0 0 14px}.apl-boot__lede{font-family:var(--apl-serif);font-style:italic;font-size:16px;margin:0}.apl-top__nav-btn--ext{display:inline-flex;align-items:center;gap:4px;text-decoration:none;color:var(--apl-muted-strong)}.apl-top__nav-btn--ext:hover{color:var(--apl-accent);border-color:var(--apl-rule)}.apl-atlas__note{margin-top:8px;font-size:12px;font-style:italic;color:var(--apl-accent)}.apl-compose{max-width:1180px;margin:0 auto;padding:50px 32px 100px}.apl-compose__head{text-align:center;max-width:44rem;margin:0 auto 40px}.apl-compose__kicker{font-family:var(--apl-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);font-weight:500;margin:0 0 12px}.apl-compose__title{font-family:var(--apl-display);font-weight:600;font-size:clamp(34px,4.5vw,48px);margin:0 0 14px;letter-spacing:-.025em}.apl-compose__lede{color:var(--apl-ink-soft);text-wrap:pretty;margin:0}.apl-compose__section-title{font-family:var(--apl-display);font-weight:400;font-size:20px;margin:26px 0 4px;letter-spacing:.02em}.apl-compose__section-note{margin:0 0 14px;color:var(--apl-muted-strong);font-style:italic;font-size:15px}.apl-starter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px;margin-bottom:32px}.apl-starter{text-align:left;padding:14px 16px 16px;background:var(--apl-paper-deeper);border:1px solid var(--apl-rule);display:flex;flex-direction:column;gap:6px;transition:border-color .12s,background .12s;color:var(--apl-ink)}.apl-starter:hover{border-color:var(--apl-ink)}.apl-starter.is-on{border-color:var(--apl-accent);background:color-mix(in srgb,var(--apl-accent),var(--apl-paper) 88%)}.apl-starter__title{font-family:var(--apl-display);font-size:17px;letter-spacing:.02em}.apl-starter__count{font-family:var(--apl-mono);font-size:11px;color:var(--apl-accent);letter-spacing:.04em}.apl-starter__note{font-size:14px;color:var(--apl-muted-strong);font-style:italic;text-wrap:pretty;line-height:1.45}.apl-framework-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.apl-fw{display:inline-flex;align-items:baseline;gap:8px;padding:8px 14px;border:1px solid var(--apl-rule);color:var(--apl-ink);font-family:var(--apl-sans);font-size:14px;transition:border-color .12s,background .12s}.apl-fw:hover{border-color:var(--apl-ink)}.apl-fw.is-on{border-color:var(--apl-accent);background:color-mix(in srgb,var(--apl-accent),var(--apl-paper) 88%)}.apl-fw__name{font-weight:500}.apl-fw__count{font-family:var(--apl-mono);font-size:11px;color:var(--apl-accent)}.apl-workshop{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:32px;gap:32px;margin-top:32px}@media (max-width:900px){.apl-workshop{grid-template-columns:1fr}}.apl-workshop__nameblock{display:grid;grid-gap:6px;gap:6px;margin-bottom:24px}.apl-workshop__label{font-family:var(--apl-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-muted-strong)}.apl-workshop__input{width:100%;padding:8px 12px;border:1px solid var(--apl-rule);background:var(--apl-paper-deeper);font-family:var(--apl-serif);font-size:16px;color:var(--apl-ink)}.apl-workshop__input:focus{outline:none;border-color:var(--apl-accent)}.apl-workshop__input--name{font-family:var(--apl-display);font-size:22px;margin-bottom:8px}.apl-basket{border-top:2px solid var(--apl-ink);padding-top:12px}.apl-basket__head{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;grid-column-gap:14px;column-gap:14px;grid-row-gap:6px;row-gap:6px;align-items:baseline;margin-bottom:12px}.apl-basket__head h3{margin:0;font-family:var(--apl-display);font-weight:400;font-size:22px;letter-spacing:.02em}.apl-basket__counts{grid-column:1/-1;display:flex;gap:18px;font-family:var(--apl-sans);font-size:12px;color:var(--apl-muted-strong)}.apl-basket__counts b{color:var(--apl-ink);font-weight:600}.apl-basket__actions{grid-column:2;grid-row:1;display:flex;gap:8px;flex-wrap:wrap}.apl-basket__load{font-family:var(--apl-serif);font-size:12.5px;padding:4px 8px;background:var(--apl-paper);color:var(--apl-ink);border:1px solid var(--apl-rule);cursor:pointer}.apl-basket__load:hover{border-color:var(--apl-accent)}.apl-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--apl-ink);color:var(--apl-paper);padding:10px 18px;font-family:var(--apl-serif);font-size:13.5px;border:1px solid var(--apl-ink);box-shadow:0 6px 22px rgba(0,0,0,.18);z-index:200;max-width:90vw;pointer-events:none;animation:aplToastFade 2.4s ease-in-out forwards}@keyframes aplToastFade{0%{opacity:0;transform:translate(-50%,12px)}10%{opacity:1;transform:translate(-50%)}85%{opacity:1}to{opacity:0}}.apl-basket__empty{padding:24px 0;font-style:italic;color:var(--apl-muted-strong)}.apl-linkbtn{font:inherit;color:var(--apl-accent);text-decoration:underline;text-underline-offset:2px;margin-left:6px}.apl-basket__list{list-style:none;margin:0;padding:0}.apl-basket__row{display:grid;grid-template-columns:1fr 110px 26px;grid-template-rows:auto auto;grid-column-gap:10px;column-gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid color-mix(in srgb,var(--apl-rule),transparent 60%)}.apl-basket__name{font-family:var(--apl-display);font-size:16px;text-align:left;color:var(--apl-ink);letter-spacing:.02em}.apl-basket__name:hover{color:var(--apl-accent)}.apl-basket__intent{grid-column:1;grid-row:2;font-style:italic;color:var(--apl-muted-strong);font-size:13px;text-wrap:pretty}.apl-basket__role{grid-column:2;grid-row:1/span 2;align-self:center;font-family:var(--apl-sans);font-size:12px;padding:4px 8px;border:1px solid var(--apl-rule);background:var(--apl-paper);color:var(--apl-ink)}.apl-basket__remove{grid-column:3;grid-row:1/span 2;align-self:center;width:26px;height:26px;color:var(--apl-muted-strong);border:1px solid transparent;border-radius:50%}.apl-basket__remove:hover{color:var(--apl-accent);border-color:var(--apl-rule)}.apl-basket__row[data-role=core]{border-left:3px solid var(--apl-accent);padding-left:10px}.apl-basket__row[data-role=hardening]{border-left:3px solid var(--apl-ink);padding-left:10px}.apl-basket__row[data-role=optional]{border-left:3px dotted var(--apl-rule);padding-left:10px}.apl-basket__row[data-role=added]{border-left:3px dashed var(--apl-muted-strong);padding-left:10px}.apl-expert{position:-webkit-sticky;position:sticky;top:80px;padding:20px;background:var(--apl-paper-deeper);border:1px solid var(--apl-rule)}.apl-expert__head h3{margin:0 0 6px;font-family:var(--apl-display);font-weight:400;font-size:22px;letter-spacing:.02em}.apl-expert__sub{margin:0 0 16px;font-style:italic;color:var(--apl-muted-strong);font-size:14px;text-wrap:pretty}.apl-expert__actions{display:flex;flex-wrap:wrap;gap:10px}.apl-expert__hint{margin:20px 0 0;font-size:13px;color:var(--apl-muted-strong);text-wrap:pretty}.apl-btn--sm{padding:8px 14px;font-size:11px}.apl-questions{margin-top:18px;padding-top:16px;border-top:1px solid var(--apl-rule)}.apl-questions__lead{margin:0 0 10px;font-style:italic;color:var(--apl-ink-soft)}.apl-questions ol{padding-left:20px;margin:0 0 12px}.apl-questions ol li{margin-bottom:12px}.apl-questions__q{margin:0 0 6px;font-size:15px;text-wrap:pretty}.apl-questions__a,.apl-questions__q{font-family:var(--apl-serif);color:var(--apl-ink)}.apl-questions__a{width:100%;padding:6px 10px;border:1px solid var(--apl-rule);background:var(--apl-paper);font-size:14px;resize:vertical}.apl-questions__a:focus{outline:none;border-color:var(--apl-accent)}.apl-expert__out{margin-top:20px;padding-top:18px;border-top:1px solid var(--apl-rule)}.apl-expert__h{margin:16px 0 6px;font-family:var(--apl-display);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);font-weight:400}.apl-expert__ul{list-style:none;margin:0;padding:0}.apl-expert__ul li{padding:3px 0 3px 18px;position:relative;text-wrap:pretty;font-size:15px;line-height:1.55}.apl-expert__ul li:before{content:"—";position:absolute;left:0;color:var(--apl-accent)}.apl-expert__prose p{margin:8px 0;text-wrap:pretty;font-size:15px}.apl-xref--inline{font-family:var(--apl-serif);font-size:inherit;border-bottom:1px dotted var(--apl-accent);padding:0;color:var(--apl-ink)}.apl-xref--inline:hover{color:var(--apl-accent)}.apl-picker{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center}.apl-picker__backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--apl-ink),transparent 50%)}.apl-picker__panel{position:relative;background:var(--apl-paper);border:1px solid var(--apl-rule);width:min(840px,calc(100vw - 40px));max-height:calc(100vh - 60px);display:flex;flex-direction:column}.apl-picker__head{padding:16px 20px;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--apl-rule)}.apl-picker__head h3{margin:0;font-family:var(--apl-display);font-weight:400;font-size:22px;letter-spacing:.02em}.apl-picker__close{font-size:18px;color:var(--apl-muted-strong);padding:2px 8px}.apl-picker__close:hover{color:var(--apl-accent)}.apl-picker__toolbar{padding:12px 20px;display:flex;gap:10px;border-bottom:1px solid var(--apl-rule)}.apl-picker__search{flex:1 1;padding:8px 12px;border:1px solid var(--apl-rule);background:var(--apl-paper-deeper);font:inherit;color:var(--apl-ink)}.apl-picker__search:focus{outline:none;border-color:var(--apl-accent)}.apl-picker__cat{padding:8px 10px;border:1px solid var(--apl-rule);background:var(--apl-paper-deeper);font-family:var(--apl-sans);font-size:13px;color:var(--apl-ink)}.apl-picker__list{list-style:none;margin:0;padding:6px 12px 14px;overflow:auto;flex:1 1}.apl-picker__row{display:grid;grid-template-columns:22px 1fr auto 90px;grid-template-rows:auto auto;grid-column-gap:10px;column-gap:10px;padding:8px 6px;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--apl-rule),transparent 60%)}.apl-picker__name{font-family:var(--apl-display);font-size:15px;letter-spacing:.02em}.apl-picker__cat{font-family:var(--apl-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase}.apl-picker__intent{grid-column:2/4;grid-row:2;font-size:12.5px;text-wrap:pretty}.apl-picker__intent,.apl-picker__overflow{font-style:italic;color:var(--apl-muted-strong)}.apl-picker__overflow{margin:0;padding:10px 20px;border-top:1px solid var(--apl-rule);font-size:13px}.apl-hovercard{z-index:100;background:var(--apl-paper-edge);color:var(--apl-ink);border:1px solid var(--apl-rule-strong);border-radius:10px;padding:12px 14px 14px;box-shadow:0 6px 22px rgba(26,26,34,.16);font-family:var(--apl-sans);pointer-events:auto;animation:aplhc-in .1s ease-out}.apl-app[data-paper=ink] .apl-hovercard{box-shadow:0 6px 22px rgba(0,0,0,.5)}@keyframes aplhc-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.apl-hovercard__meta{display:flex;align-items:center;gap:10px;margin-bottom:6px}.apl-hovercard__cat{font-family:var(--apl-mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500}.apl-hovercard__name{margin:0 0 4px;font-family:var(--apl-display);font-weight:600;font-size:17px;line-height:1.2;letter-spacing:-.02em}.apl-hovercard__aka{margin:0 0 6px;font-family:var(--apl-mono);font-size:.68rem;color:var(--apl-ink-soft);letter-spacing:.04em}.apl-hovercard__intent{margin:4px 0 0;font-style:italic;font-size:14.5px;line-height:1.5;color:var(--apl-ink-soft);text-wrap:pretty}.apl-refs__type{font-family:var(--apl-mono);font-size:.68rem;letter-spacing:.08em;color:var(--apl-ink-soft);font-style:normal}.apl-gv{max-width:1280px;margin:0 auto;padding:48px 28px 90px}.apl-gv__head{text-align:center;max-width:44rem;margin:0 auto 28px}.apl-gv__kicker{font-family:var(--apl-display);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--apl-muted-strong);margin:0 0 8px}.apl-gv__title{font-family:var(--apl-display);font-weight:400;font-size:36px;letter-spacing:.02em;margin:0 0 14px}.apl-gv__lede{font-family:var(--apl-serif);font-style:italic;font-size:15.5px;color:var(--apl-ink-soft);margin:0 auto 22px;max-width:38rem;line-height:1.55}.apl-gv__head-row{display:flex;gap:12px;justify-content:center;align-items:flex-start;flex-wrap:wrap}.apl-gv__picker{position:relative;width:100%;max-width:480px}.apl-gv__picker-input{width:100%;padding:10px 14px;font-family:var(--apl-serif);font-size:14.5px;background:var(--apl-paper);color:var(--apl-ink);border:1px solid var(--apl-rule);outline:none}.apl-gv__picker-input:focus{border-color:var(--apl-accent)}.apl-gv__picker-list{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--apl-paper);border:1px solid var(--apl-rule);list-style:none;margin:0;padding:4px 0;max-height:360px;overflow:auto;z-index:30;box-shadow:0 8px 24px rgba(0,0,0,.1)}.apl-gv__picker-item{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-column-gap:10px;column-gap:10px;align-items:center;width:100%;text-align:left;background:transparent;border:0;padding:8px 14px;font-family:var(--apl-serif);color:var(--apl-ink);cursor:pointer}.apl-gv__picker-item:hover{background:var(--apl-paper-deeper)}.apl-gv__picker-name{font-weight:500;font-size:14px}.apl-gv__picker-intent{grid-column:1/-1;font-size:12.5px;font-style:italic;color:var(--apl-muted-strong);margin-top:2px}.apl-gv__compass{display:grid;grid-template-columns:minmax(180px,1fr) minmax(320px,1.6fr) minmax(180px,1fr);grid-template-rows:auto auto auto;grid-template-areas:"north  north  north" "west   centre east" "south  south  south";grid-gap:18px 22px;gap:18px 22px;margin-top:14px;align-items:stretch}.apl-gv__compass[data-loading=true]{opacity:.7}.apl-gv__zone--north{grid-area:north}.apl-gv__zone--west{grid-area:west}.apl-gv__zone--centre{grid-area:centre}.apl-gv__zone--east{grid-area:east}.apl-gv__zone--south{grid-area:south}.apl-gv__zone--north,.apl-gv__zone--south{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px}.apl-gv__zone--east,.apl-gv__zone--west{display:flex;flex-direction:column;gap:10px;justify-content:center}.apl-gv__zone-label{grid-column:1/-1;font-family:var(--apl-display);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--apl-muted-strong);margin:0 0 4px;display:flex;align-items:center;gap:8px}.apl-gv__zone-arrow{font-family:var(--apl-display);font-size:14px;color:var(--apl-accent)}.apl-gv__zone-count{margin-left:auto;font-family:var(--apl-mono);font-size:11px;letter-spacing:0;text-transform:none;color:var(--apl-muted-strong)}.apl-gv__zone-empty{grid-column:1/-1;font-family:var(--apl-serif);font-style:italic;font-size:13px;color:var(--apl-muted-strong);margin:0}.apl-gv__nbr{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-column-gap:8px;column-gap:8px;align-items:center;text-align:left;background:var(--apl-paper);border:1px solid var(--apl-rule);padding:10px 12px;font-family:var(--apl-serif);color:var(--apl-ink);cursor:pointer;transition:border-color .14s,background .14s,transform .14s}.apl-gv__nbr:hover{border-color:var(--apl-accent);background:var(--apl-paper-deeper)}.apl-gv__nbr:focus-visible{outline:2px solid var(--apl-accent);outline-offset:1px}.apl-gv__nbr--missing{opacity:.45;cursor:not-allowed}.apl-gv__nbr-rel{grid-column:1/-1;font-family:var(--apl-display);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-muted-strong);margin-bottom:2px}.apl-gv__nbr-name{font-weight:500;font-size:14px;line-height:1.25}.apl-gv__nbr-meta{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin-top:6px;font-size:11.5px;color:var(--apl-muted-strong)}.apl-gv__nbr-cat{font-family:var(--apl-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.apl-gv__nbr[data-status=deprecated] .apl-gv__nbr-name{text-decoration:line-through;-webkit-text-decoration-color:var(--apl-accent);text-decoration-color:var(--apl-accent);text-decoration-thickness:1px}.apl-gv__centre{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 24px;background:var(--apl-paper);border:1.4px solid var(--apl-ink);min-height:220px;position:relative}.apl-gv__centre:after,.apl-gv__centre:before{content:"❖";position:absolute;font-family:var(--apl-display);font-size:14px;color:var(--apl-muted-strong)}.apl-gv__centre:before{top:-10px}.apl-gv__centre:after,.apl-gv__centre:before{left:50%;transform:translateX(-50%);background:var(--apl-paper);padding:0 6px}.apl-gv__centre:after{bottom:-10px}.apl-gv__centre--empty{border-style:dashed;color:var(--apl-muted-strong);font-style:italic}.apl-gv__centre-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.apl-gv__centre-cat{font-family:var(--apl-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cat)}.apl-gv__centre-title{font-family:var(--apl-display);font-weight:400;font-size:28px;letter-spacing:.01em;line-height:1.1;margin:0 0 6px;text-align:center}.apl-gv__centre-aka{margin:2px 0 6px;font-size:12.5px;color:var(--apl-muted-strong)}.apl-gv__centre-intent{font-family:var(--apl-serif);font-style:italic;font-size:15px;color:var(--apl-ink-soft);margin:6px 0 14px;max-width:32rem;line-height:1.5}.apl-gv__centre-actions{display:flex;gap:10px}.apl-gv__lateral-label{margin:14px 0 0;font-family:var(--apl-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-muted);text-align:center}.apl-gv__err{color:var(--apl-accent);margin:18px 0}.apl-gv__err,.apl-gv__more{font-family:var(--apl-serif);font-style:italic;text-align:center}.apl-gv__more{margin:22px 0 0;font-size:13.5px;color:var(--apl-muted-strong)}@media (max-width:880px){.apl-gv__compass{grid-template-columns:1fr;grid-template-areas:"north" "west" "centre" "east" "south"}.apl-gv__zone--east,.apl-gv__zone--west{flex-direction:row;flex-wrap:wrap}}.apl-gv__nbr-rel[data-kind=conflict]{color:var(--apl-accent);font-weight:600}.apl-gv__nbr-rel[data-kind=alternative]{color:var(--apl-accent-soft)}.apl-gv__nbr-rel[data-kind=compose]{color:var(--apl-ink)}.apl-gv__nbr-rel[data-kind=complement]{color:var(--apl-muted)}.apl-gv__nbr[data-kind=conflict]{border-left:3px solid var(--apl-accent)}.apl-gv__nbr[data-kind=alternative]{border-left:3px solid var(--apl-accent-soft)}.apl-gv__nbr[data-kind=compose]{border-left:3px solid var(--apl-ink)}.apl-gv__nbr[data-kind=complement]{border-left:3px solid var(--apl-rule-strong)}.apl-gv__zone-label--lateral{font-size:10.5px}.apl-gv__zone--east .apl-gv__zone-label,.apl-gv__zone--west .apl-gv__zone-label{margin-bottom:6px}.apl-dv{max-width:56rem;margin:0 auto;padding:24px 24px 80px}.apl-dv__head{text-align:center;max-width:44rem;margin:0 auto 28px}.apl-dv__kicker{font-family:var(--apl-display);text-transform:uppercase;letter-spacing:.32em;font-size:11px;color:var(--apl-accent);margin:0 0 8px}.apl-dv__title{font-family:var(--apl-display);font-size:38px;letter-spacing:-.01em;margin:0 0 12px;font-weight:400}.apl-dv__lede{font-family:var(--apl-serif);font-size:16px;line-height:1.55;color:var(--apl-ink-soft);margin:0}.apl-dv__form{margin-top:22px;display:flex;flex-direction:column;gap:12px}.apl-dv__textarea{width:100%;font-family:var(--apl-serif);font-size:16px;line-height:1.55;color:var(--apl-ink);background:var(--apl-paper-edge);border:1px solid var(--apl-rule-strong);border-radius:2px;padding:16px 18px;resize:vertical;min-height:120px;transition:border-color .14s,background .14s}.apl-dv__textarea:focus{outline:none;border-color:var(--apl-accent);background:var(--apl-paper)}.apl-dv__textarea:disabled{opacity:.55;cursor:progress}.apl-dv__textarea::placeholder{color:var(--apl-ink-soft);font-style:italic}.apl-dv__form-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.apl-dv__hint{font-size:13px;color:var(--apl-muted-strong)}.apl-dv__err,.apl-dv__hint{font-family:var(--apl-serif);font-style:italic}.apl-dv__err{margin:18px 0;color:var(--apl-accent);text-align:center}.apl-dv__matches{margin-top:36px}.apl-dv__matches-lede{font-family:var(--apl-serif);font-style:italic;color:var(--apl-ink-soft);font-size:14.5px;margin:0 0 16px}.apl-dv__matches-list{display:flex;flex-direction:column;gap:18px}.apl-dv__matches-coda{margin:22px 0 0;font-family:var(--apl-serif);font-size:13.5px;color:var(--apl-muted-strong);font-style:italic}.apl-dv__match{background:var(--apl-paper);border:1px solid var(--apl-rule);border-left:3px solid var(--apl-accent);padding:18px 20px;display:flex;flex-direction:column;gap:8px}.apl-dv__match--missing{border-left-color:var(--apl-rule-strong);opacity:.6}.apl-dv__match-missing-note{font-family:var(--apl-serif);font-style:italic;color:var(--apl-muted-strong);margin:0}.apl-dv__match-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.apl-dv__match-cat{font-family:var(--apl-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.apl-dv__match-score{margin-left:auto;font-family:var(--apl-mono);font-size:11.5px;color:var(--apl-muted-strong);background:var(--apl-paper-deeper);border:1px solid var(--apl-rule);padding:2px 8px;border-radius:999px}.apl-dv__match-name{font-family:var(--apl-display);font-size:22px;font-weight:500;margin:2px 0 0;letter-spacing:-.005em}.apl-dv__match-aka{font-family:var(--apl-serif);font-size:13.5px;color:var(--apl-muted-strong);margin:0}.apl-dv__match-why{font-family:var(--apl-serif);font-size:15px;line-height:1.55;color:var(--apl-ink);margin:2px 0 0}.apl-dv__match-why-label{font-family:var(--apl-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--apl-accent);margin-right:6px}.apl-dv__match-intent{font-family:var(--apl-serif);font-size:14px;color:var(--apl-ink-soft);margin:0;font-style:italic}.apl-dv__match-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}@media (max-width:720px){.apl-dv__title{font-size:30px}.apl-dv__match{padding:14px 16px}.apl-dv__match-name{font-size:19px}}.apl-top__menu-toggle{display:none;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--apl-rule-strong);border-radius:2px;background:var(--apl-paper-deeper);color:var(--apl-ink);font-family:var(--apl-display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;min-height:44px;cursor:pointer;transition:border-color .14s ease,background .14s ease}.apl-top__menu-toggle:hover{border-color:var(--apl-ink)}.apl-top__menu-toggle-bars{display:inline-flex;flex-direction:column;gap:4px;width:18px;height:12px;justify-content:space-between}.apl-top__menu-toggle-bars>span{display:block;height:1.5px;width:100%;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .14s ease;transform-origin:center}.apl-top.is-menu-open .apl-top__menu-toggle-bars>span:first-child{transform:translateY(5px) rotate(45deg)}.apl-top.is-menu-open .apl-top__menu-toggle-bars>span:nth-child(2){opacity:0}.apl-top.is-menu-open .apl-top__menu-toggle-bars>span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.apl-top__scrim{display:none;position:fixed;inset:0;background:color-mix(in srgb,var(--apl-ink) 36%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border:0;padding:0;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:25}body.apl-no-scroll{overflow:hidden}@media (max-width:820px){.apl-top{grid-template-columns:1fr auto;padding:10px 16px;gap:12px}.apl-top__brand{gap:10px;min-width:0;flex:1 1 auto}.apl-top__brand-text{min-width:0}.apl-top__brand-1{font-size:15px;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.apl-top__brand-2{font-size:11px;letter-spacing:.05em}.apl-top__menu-toggle{display:inline-flex}.apl-top__nav-btn--desktop{display:none}.apl-top__right{position:fixed;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 20px;background:var(--apl-paper);border-bottom:1px solid var(--apl-rule);box-shadow:0 18px 32px -16px color-mix(in srgb,var(--apl-ink) 50%,transparent);transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform .22s ease,opacity .2s ease;z-index:30;max-height:calc(100vh - 64px);overflow-y:auto}.apl-top.is-menu-open .apl-top__right{transform:translateY(0);opacity:1;pointer-events:auto}.apl-top__scrim{display:block}.apl-top.is-menu-open .apl-top__scrim{opacity:1;pointer-events:auto}.apl-top__nav{flex-direction:column;gap:0;align-items:stretch;padding:8px 0}.apl-top__nav-btn{width:100%;text-align:left;padding:14px 6px;font-size:13px;letter-spacing:.22em;border-bottom:1px solid var(--apl-rule);border-radius:0;min-height:48px}.apl-top__nav-btn:last-child{border-bottom:0}.apl-top__nav-btn.is-on{background:transparent;color:var(--apl-accent);border-color:var(--apl-rule)}.apl-top__nav-btn.is-on:after{content:"•";margin-left:8px;color:var(--apl-accent)}.apl-theme-toggle{align-self:flex-start;margin-top:14px}.apl-theme-toggle__btn{width:36px;height:36px}.apl-cover{padding:36px 18px 60px}.apl-cover__head{padding:12px 0 30px}.apl-cover__title{gap:6px}.apl-cover__title-a,.apl-cover__title-b{letter-spacing:-.02em}.apl-cover__epigraph{font-size:16px;max-width:none}.apl-cover__epigraph-cite{font-size:12px}.apl-cover__rule{margin:26px auto 22px}.apl-cover__stats{grid-template-columns:repeat(3,1fr);margin:32px 0}.apl-cover__stat{padding:14px 6px;border-right:1px solid var(--apl-rule)}.apl-cover__stat:nth-child(3n){border-right:0}.apl-cover__stat:nth-child(-n+3){border-bottom:1px solid var(--apl-rule)}.apl-cover__stat-n{font-size:20px}.apl-cover__stat-l{font-size:10.5px;letter-spacing:.1em}.apl-cover__how-title{margin:28px 0 12px;font-size:13px;letter-spacing:.2em}.apl-cover__how p{font-size:15.5px;line-height:1.6}.apl-cover__foot{margin-top:40px}.apl-cover__foot-actions{gap:10px;flex-direction:column;align-items:stretch}.apl-cover__foot-actions .apl-btn{width:100%;justify-content:center}.apl-btn--big{padding:13px 18px;font-size:12px;min-height:48px}.apl-cover__ai-prompt{padding:12px 12px 14px;margin:24px 0 0}.apl-cover__ai-prompt-head{flex-direction:column;align-items:flex-start;gap:8px}.apl-cover__ai-prompt-body{font-size:12.5px;line-height:1.55}.apl-cover__entry{grid-template-columns:auto 1fr auto;gap:6px;padding:8px 6px;min-height:44px}.apl-idx{padding:32px 16px 60px}.apl-idx__masthead{margin-bottom:32px}.apl-idx__lede{font-size:13px}.apl-idx__toolbar{margin-top:22px}.apl-idx__search{padding:10px 12px}.apl-idx__search input{font-size:16px;min-height:28px}.apl-idx__filter{gap:6px}.apl-idx__filter-btn{padding:9px 12px;min-height:40px}.apl-idx__chapter{margin-top:36px}.apl-idx__chapter-head{grid-template-columns:1fr;column-gap:0;row-gap:4px;padding:10px 0}.apl-idx__chapter-roman{grid-row:auto}.apl-idx__chapter-count,.apl-idx__chapter-note{grid-row:auto;grid-column:1}.apl-idx__chapter-count{align-self:flex-start}.apl-idx__chapter-name{font-size:22px}.apl-idx__btn{grid-template-columns:22px 1fr;column-gap:8px;padding:12px 4px;min-height:56px}.apl-idx__name{font-size:15.5px}.apl-idx__intent{font-size:13.5px;grid-column:1/-1;padding-left:30px;margin-top:2px}.apl-leaf{padding:28px 16px 60px}.apl-page{font-size:16.5px;line-height:1.6}.apl-page__head{padding-bottom:20px;margin-bottom:22px}.apl-page__head-meta{flex-wrap:wrap;gap:8px;margin-bottom:16px}.apl-page__name{font-size:clamp(26px,7vw,34px)}.apl-page__aka,.apl-page__intent{padding-left:0}.apl-page__intent{font-size:17px}.apl-problem{font-size:19px;padding:0}.apl-solution{font-size:18px;padding-left:12px}.apl-constraint,.apl-example{font-size:15px;padding:12px 14px}.apl-leaf__nav{grid-template-columns:1fr;gap:8px;margin-top:40px;padding-top:22px}.apl-leaf__navbtn{padding:14px;min-height:56px;border:1px solid var(--apl-rule)}.apl-leaf__navbtn--next{text-align:left}.apl-leaf__navbtn--up{order:3}.apl-leaf__navbtn--prev{order:1}.apl-leaf__navbtn--next{order:2}.apl-marginalia{display:none}.apl-atlas{padding:28px 16px 60px}.apl-atlas__head{margin-bottom:22px}.apl-atlas__lede{font-size:15px}.apl-atlas__legend{gap:10px 18px;font-size:11.5px;margin-top:14px}.apl-atlas__booklist{gap:12px;grid-template-columns:1fr}.apl-atlas__patternlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.apl-atlas__patterncard{width:100%;display:grid;grid-template-columns:22px 1fr 18px;grid-column-gap:10px;column-gap:10px;grid-row-gap:2px;row-gap:2px;align-items:center;padding:12px 14px;background:var(--apl-paper-deeper);border:1px solid var(--apl-rule);border-left:3px solid var(--cat,var(--apl-accent));color:var(--apl-ink);text-align:left;cursor:pointer;min-height:64px;transition:border-color .14s ease,background .14s ease,transform .14s ease}.apl-atlas__patterncard:focus-visible,.apl-atlas__patterncard:hover{background:var(--apl-paper);border-color:var(--cat,var(--apl-ink));outline:none}.apl-atlas__patterncard:active{transform:translateY(1px)}.apl-atlas__patterncard[data-status=deprecated]{opacity:.62}.apl-atlas__patterncard[data-status=deprecated] .apl-atlas__patterncard-name{text-decoration:line-through;text-decoration-thickness:1px}.apl-atlas__patterncard-status{align-self:center;line-height:1}.apl-atlas__patterncard-body{display:flex;flex-direction:column;gap:2px;min-width:0}.apl-atlas__patterncard-name{font-family:var(--apl-display);font-weight:500;font-size:16px;letter-spacing:.01em;color:var(--apl-ink);line-height:1.25}.apl-atlas__patterncard-intent{font-family:var(--apl-serif);font-style:italic;font-size:13.5px;line-height:1.45;color:var(--apl-muted-strong);text-wrap:pretty}.apl-atlas__patterncard-arrow{align-self:center;font-size:16px;color:var(--cat,var(--apl-accent))}.apl-atlas__card{right:12px;bottom:12px;left:12px;width:auto;max-width:none;padding:14px 16px}.apl-atlas__card-name{font-size:19px}.apl-dv{padding:24px 16px 60px}.apl-dv__title{font-size:28px}.apl-dv__lede{font-size:15px}.apl-dv__textarea{font-size:16px;padding:12px 14px}.apl-compose{padding:28px 16px 60px}.apl-compose__head{margin-bottom:28px}.apl-starter-grid{grid-template-columns:1fr;gap:10px}.apl-starter{padding:14px}.apl-framework-row{gap:6px}.apl-fw{padding:10px 12px;min-height:44px}.apl-gv__compass{grid-template-columns:1fr;grid-template-areas:"north" "west" "centre" "east" "south";gap:12px}.apl-gv__zone--east,.apl-gv__zone--west{flex-direction:column;flex-wrap:nowrap}.apl-btn{padding:12px 18px;min-height:44px}.apl-btn--sm{padding:10px 14px}.apl-xref{padding:4px 0;min-height:32px}}@media (max-width:460px){.apl-top{padding:8px 12px}.apl-top__brand{gap:8px}.apl-top__brand-mark svg{width:20px;height:20px}.apl-top__brand-1{font-size:14px;letter-spacing:.02em}.apl-top__brand-2{font-size:10.5px;letter-spacing:.04em;display:none}.apl-top__menu-toggle{padding:8px 10px;gap:8px}.apl-top__menu-toggle-label{display:none}.apl-top__right{top:56px;max-height:calc(100vh - 56px)}.apl-cover{padding:24px 14px 48px}.apl-cover__title-a,.apl-cover__title-b{font-size:clamp(32px,11vw,44px)}.apl-cover__title-and{font-size:.42em}.apl-cover__epigraph{font-size:15px;line-height:1.5}.apl-cover__stats{grid-template-columns:repeat(2,1fr)}.apl-cover__stat{border-bottom:none}.apl-cover__stat,.apl-cover__stat:nth-child(3n){border-right:1px solid var(--apl-rule)}.apl-cover__stat:nth-child(-n+3){border-bottom:none}.apl-cover__stat:nth-child(2n){border-right:0}.apl-cover__stat:nth-child(-n+4){border-bottom:1px solid var(--apl-rule)}.apl-cover__stat-n{font-size:19px}.apl-cover__stat-l{font-size:10px;letter-spacing:.08em}.apl-idx{padding:26px 14px 48px}.apl-idx__title{font-size:clamp(32px,10vw,42px)}.apl-idx__filter-btn{padding:9px 10px;font-size:10.5px;letter-spacing:.1em}.apl-leaf{padding:22px 14px 50px}.apl-page__head{padding-bottom:16px;margin-bottom:18px}.apl-page__name{font-size:clamp(24px,8vw,30px)}.apl-problem{font-size:17.5px}.apl-solution{font-size:17px}.apl-page__intent{font-size:16px}.apl-atlas{padding:22px 14px 50px}.apl-atlas__title{font-size:clamp(24px,7.5vw,32px)}.apl-atlas__bookcard{padding:14px 14px 16px}.apl-atlas__bookcard-name{font-size:20px}}@media (max-width:1100px){.apl-marginalia{display:none}}a.apl-atlas__patterncard,a.apl-basket__name,a.apl-btn,a.apl-cover__entry,a.apl-idx__btn,a.apl-leaf__navbtn,a.apl-top__brand,a.apl-top__nav-btn,a.apl-xref{text-decoration:none;color:inherit}a.apl-atlas__patterncard:hover,a.apl-basket__name:hover,a.apl-btn:hover,a.apl-cover__entry:hover,a.apl-idx__btn:hover,a.apl-leaf__navbtn:hover,a.apl-top__nav-btn:hover,a.apl-xref:hover{text-decoration:none}.apl-app[data-paper=ink] .apl-idx__filter-btn.is-on{background:var(--apl-accent);color:var(--apl-ink);border-color:var(--apl-accent)}.apl-app[data-paper=ink] .apl-idx__filter-btn--book.is-on{background:var(--cat,var(--apl-accent));color:var(--apl-ink);border-color:var(--cat,var(--apl-accent))}.apl-acad{margin:18px auto 8px;max-width:60rem}.apl-acad__trigger{display:block;margin:0 auto;font-family:var(--apl-display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--apl-muted);background:transparent;border:1px dashed var(--apl-rule);border-radius:999px;padding:7px 18px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.apl-acad__trigger:hover{color:var(--apl-ink);border-color:var(--apl-ink)}.apl-acad__panel{border:1px solid var(--apl-rule);background:var(--apl-paper-deeper);border-radius:10px;padding:18px 20px 22px}.apl-acad__panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.apl-acad__title{font-family:var(--apl-display);font-size:18px;letter-spacing:.02em;margin:0}.apl-acad__close{border:0;background:transparent;color:var(--apl-muted);font-size:15px;cursor:pointer;line-height:1;padding:4px}.apl-acad__close:hover{color:var(--apl-ink)}.apl-acad__lede{color:var(--apl-muted-strong);font-size:13px;margin:6px 0 16px;max-width:52rem}.apl-acad__q{border:0;padding:0;margin:0 0 14px}.apl-acad__q-label{font-family:var(--apl-display);font-size:12.5px;letter-spacing:.04em;color:var(--apl-ink);padding:0}.apl-acad__q-multi{color:var(--apl-muted);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}.apl-acad__q-help{color:var(--apl-muted);font-size:11.5px;margin:3px 0 7px}.apl-acad__pills{display:flex;flex-wrap:wrap;gap:5px}.apl-acad__pill{text-transform:none;letter-spacing:.02em;font-size:11.5px}.apl-acad__actions{display:flex;align-items:center;gap:12px;margin-top:6px;flex-wrap:wrap}.apl-acad__generate{font-family:var(--apl-display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;background:var(--apl-ink);color:var(--apl-paper);border:1px solid var(--apl-ink);border-radius:999px;padding:9px 22px;cursor:pointer}.apl-acad__generate:disabled{opacity:.4;cursor:not-allowed}.apl-acad__reset{border:0;background:transparent;color:var(--apl-muted);cursor:pointer;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.apl-acad__reset:hover{color:var(--apl-ink)}.apl-acad__hint{color:var(--apl-muted);font-size:11.5px;font-style:italic}.apl-acad__error{color:var(--apl-accent);font-size:12.5px;margin-top:10px}.apl-acad__tree{margin-top:18px}.apl-acad__node{border-left:2px solid var(--apl-rule);margin:6px 0}.apl-acad__node--root{border-left:0}.apl-acad__node--phase{border-left-color:color-mix(in srgb,var(--apl-accent) 45%,var(--apl-rule))}.apl-acad__node--guard{border-left-color:color-mix(in srgb,#b4582a 55%,var(--apl-rule))}.apl-acad__node--pat{border-left-color:var(--apl-rule)}.apl-acad__sum{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;cursor:pointer;list-style:none;padding:7px 10px;font-family:var(--apl-display)}.apl-acad__sum::-webkit-details-marker{display:none}.apl-acad__sum:before{content:"▸";color:var(--apl-muted);font-size:10px;transition:transform .12s ease;display:inline-block;width:10px}details[open]>.apl-acad__sum:before{transform:rotate(90deg)}.apl-acad__sum:hover{background:color-mix(in srgb,var(--apl-ink) 5%,transparent)}.apl-acad__sum-title{font-size:13.5px;letter-spacing:.01em;color:var(--apl-ink)}.apl-acad__node--root>.apl-acad__sum .apl-acad__sum-title{font-size:16px}.apl-acad__sum-meta{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--apl-muted);margin-left:auto}.apl-acad__body{padding-left:18px;padding-bottom:4px}.apl-acad__role{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid}.apl-acad__role--requested{color:var(--apl-accent)}.apl-acad__role--prerequisite{color:var(--apl-muted)}.apl-acad__role--strengthen{color:#7a6a2e}.apl-acad__kind{font-size:9px;letter-spacing:.12em;padding:2px 7px;border-radius:4px;background:color-mix(in srgb,var(--apl-ink) 8%,transparent);color:var(--apl-muted-strong)}.apl-acad__kind--track{background:color-mix(in srgb,var(--apl-accent) 16%,transparent);color:var(--apl-accent-soft)}.apl-acad__kind--foundation{background:color-mix(in srgb,#7b3f00 18%,transparent);color:#7b3f00}.apl-acad__kind--guardrail{background:color-mix(in srgb,#b4582a 18%,transparent);color:#b4582a}.apl-acad__insight{list-style:none;padding:8px 12px;margin:0 0 6px;background:var(--apl-paper-edge);border:1px solid var(--apl-rule);border-radius:8px;font-size:12.5px;color:var(--apl-muted-strong)}.apl-acad__insight li{margin:2px 0}.apl-acad__insight em{color:var(--apl-muted);font-style:italic}.apl-acad__detail{font-size:12.5px;color:var(--apl-muted-strong)}.apl-acad__intent{margin:4px 0;color:var(--apl-ink-soft)}.apl-acad__who{margin:2px 0 8px;font-size:11.5px;color:var(--apl-muted)}.apl-acad__sub{margin:6px 0}.apl-acad__sub h5{font-family:var(--apl-display);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--apl-muted);margin:6px 0 3px}.apl-acad__sub ol,.apl-acad__sub ul{margin:0;padding-left:20px}.apl-acad__sub li{margin:2px 0;line-height:1.45}.apl-acad__gate{margin:5px 0}.apl-acad__warn{margin:6px 0 2px;color:#9a4a1e}.apl-acad__none{color:var(--apl-muted);font-style:italic}.apl-acad__strip{font-size:12px;color:var(--apl-muted-strong);margin:8px 0 2px;padding-left:2px}.apl-acad__focus{width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:9px 12px;border:1px solid var(--apl-rule);border-radius:8px;background:var(--apl-paper-edge);color:var(--apl-ink)}.apl-acad__focus::placeholder{color:var(--apl-ink-soft);font-style:italic}.apl-acad__focus:focus{outline:none;border-color:var(--apl-ink)}.apl-acad__tailoring{font-size:10.5px;letter-spacing:.04em;color:var(--apl-accent);font-style:italic;text-transform:none}.apl-acad__tailoring--err{color:var(--apl-muted)}.apl-acad__tailored-tag{font-size:10px;letter-spacing:.04em;color:var(--apl-accent-soft);text-transform:none}.apl-acad__toggle{margin-left:8px;border:0;background:transparent;cursor:pointer;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--apl-muted);text-decoration:underline}.apl-acad__toggle:hover{color:var(--apl-ink)}.apl-acad__tnote{margin:5px 0 2px;font-size:11.5px;font-style:italic;color:var(--apl-accent-soft)}