#austin-cache-patterns{color-scheme:light}#austin-cache-patterns .cache-overview{--paper:light-dark(#fafbfc,#191d23);--ink:light-dark(#232a33,#e8edf5);--quiet:light-dark(#5b6573,#acb8c9);--line:light-dark(#d9dfe7,#3d4655);--node:light-dark(#fff,#222a35);--accent:light-dark(#2864cf,#548aeb);--wash:light-dark(#dce9fc,#233c63);background:var(--paper);color:var(--ink);padding:32px 36px 20px;font:14px/1.55 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#austin-cache-patterns .kicker,#austin-cache-patterns .overview-footer,#austin-cache-patterns .pattern-number,#austin-cache-patterns .system-name{color:var(--quiet);font:11px/1.6 ui-monospace,SFMono-Regular,monospace}#austin-cache-patterns .kicker{letter-spacing:.4px}#austin-cache-patterns h1{font-size:27px;font-weight:500;line-height:1.25;letter-spacing:-.7px;margin:10px 0 28px}#austin-cache-patterns .pattern{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}#austin-cache-patterns .pattern-heading{display:flex;gap:15px;align-items:baseline}#austin-cache-patterns h2{font-size:17px;line-height:1.4;font-weight:500;margin:0;letter-spacing:-.2px}#austin-cache-patterns .pattern-heading p{margin:5px 0 0;color:var(--quiet)}#austin-cache-patterns .diagram{width:100%;margin:12px 0 4px}#austin-cache-patterns .diagram svg{display:block;width:100%;height:225px;overflow:visible}#austin-cache-patterns [data-diagram=shared] svg{height:355px}#austin-cache-patterns [data-diagram=local] svg{height:310px}#austin-cache-patterns .diagram .region{fill:none;stroke:var(--line);stroke-width:1}#austin-cache-patterns .diagram .region-label{text-anchor:start}#austin-cache-patterns .diagram text{fill:var(--ink);font:12px system-ui,sans-serif;text-anchor:middle}#austin-cache-patterns .diagram .small-label{fill:var(--quiet);font:11px ui-monospace,monospace}#austin-cache-patterns .diagram .application-label{font:11px system-ui,sans-serif}#austin-cache-patterns .diagram .node{fill:var(--node);stroke:var(--line);stroke-width:1}#austin-cache-patterns .diagram .dataset{fill:var(--wash);stroke:none}#austin-cache-patterns .diagram .wire{fill:none;stroke:var(--line);stroke-width:1.2}#austin-cache-patterns .diagram .active-wire{fill:none;stroke:var(--accent);stroke-width:1.5}#austin-cache-patterns .diagram .packet{fill:var(--accent);stroke:var(--paper);stroke-width:2}#austin-cache-patterns .diagram .active-node{stroke:var(--accent);stroke-width:1.5}#austin-cache-patterns .diagram .local-read{fill:none;stroke:var(--accent);stroke-width:1.5}#austin-cache-patterns .local-actions,#austin-cache-patterns .pattern-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}#austin-cache-patterns .pattern-actions{justify-content:space-between}#austin-cache-patterns button{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:7px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font:500 13px/1.4 system-ui,sans-serif;cursor:pointer}#austin-cache-patterns button span{display:inline-block;margin-left:7px}#austin-cache-patterns button:hover{color:var(--accent);border-color:var(--accent)}#austin-cache-patterns button:disabled{opacity:.5;cursor:default}#austin-cache-patterns .definition{position:relative;flex:1;min-width:0}#austin-cache-patterns .definition-trigger{font:inherit;letter-spacing:inherit;text-align:left;padding:0;border:0;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}#austin-cache-patterns .definition-text{display:none;position:absolute;top:100%;left:0;width:min(360px,100%);padding:14px 16px;border:1px solid var(--line);border-radius:5px;background:var(--node);color:var(--ink);font-size:13px;z-index:2}#austin-cache-patterns .definition:focus-within .definition-text,#austin-cache-patterns .definition:hover .definition-text{display:block}#austin-cache-patterns .definition.is-dismissed .definition-text{display:none}#austin-cache-patterns .pattern-status{color:var(--quiet);margin:12px 0 0;min-height:44px;font-size:12px}#austin-cache-patterns .overview-footer{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}@media (max-width:420px){#austin-cache-patterns .cache-overview{padding:24px 16px 18px}#austin-cache-patterns h1{font-size:24px}#austin-cache-patterns .pattern-heading{gap:10px}#austin-cache-patterns .system-name{flex-basis:100%}}#austin-cache-patterns .cache-overview{padding:0;background:transparent}#austin-cache-patterns .overview-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px}#austin-cache-patterns .overview-header h1{font-size:clamp(24px,3vw,32px);margin:14px 0 20px;letter-spacing:-1px}#austin-cache-patterns .overview-header>button{font-size:11px;color:var(--quiet);border-bottom-color:var(--line)}#austin-cache-patterns .pattern{margin-top:28px;padding-top:23px}#austin-cache-patterns .overview-footer{margin-top:28px}@media (min-width:761px){.portfolio-shell:has(.overview-mount){height:100dvh;padding-top:clamp(18px,3vh,40px);padding-bottom:clamp(18px,3vh,40px)}#austin-cache-patterns,.overview-mount,.portfolio-shell:has(.overview-mount) .reading-pane{height:100%;min-height:0}#austin-cache-patterns .cache-overview{height:100%;display:grid;grid-template-rows:auto minmax(0,1.1fr) minmax(0,1fr) auto;gap:14px}#austin-cache-patterns .pattern{display:flex;flex-direction:column;min-height:0;margin:0;padding-top:14px}#austin-cache-patterns .diagram{flex:1;min-height:0;margin:6px 0}#austin-cache-patterns .diagram svg{height:100%}#austin-cache-patterns .overview-footer{margin:0;padding-top:10px}.portfolio-shell:has(.overview-mount) .sidebar{top:0}}@media (min-width:761px) and (max-height:820px){.portfolio-shell:has(.overview-mount) .work-index{margin-top:26px}.portfolio-shell:has(.overview-mount) .work-index a{padding:6px 0}.portfolio-shell:has(.overview-mount) .sidebar-footer{margin-top:22px}}@media (min-width:761px) and (max-height:650px){.portfolio-shell:has(.overview-mount) .identity p{margin-top:10px;font-size:12px}.portfolio-shell:has(.overview-mount) .primary-nav{margin-top:12px}.portfolio-shell:has(.overview-mount) .work-index{margin-top:18px}.portfolio-shell:has(.overview-mount) .work-index a{padding:4px 0;font-size:12px}.portfolio-shell:has(.overview-mount) .sidebar-footer p{display:none}.portfolio-shell:has(.overview-mount) .sidebar-footer{margin-top:10px}}