details>*{box-sizing:border-box}.visibility-hidden{visibility:hidden}.substack-embed{width:100%;border-radius:.5rem;overflow:hidden;background:var(--quinary);border:1px solid var(--quaternary)}.substack-embed iframe{display:block;width:100%;min-height:150px;background:transparent}@media (prefers-color-scheme: dark){.substack-embed{background:#ffffff08;border-color:#ffffff1a}}*:focus{outline:0;box-shadow:none}*:focus-visible{outline:.2rem solid rgba(var(--foreground),.5);outline-offset:.3rem;box-shadow:0 0 0 .3rem rgb(var(--background)),0 0 .5rem .4rem rgba(var(--foreground),.3)}.focused,.no-js *:focus{outline:.2rem solid rgba(var(--foreground),.5);outline-offset:.3rem;box-shadow:0 0 0 .3rem rgb(var(--background)),0 0 .5rem .4rem rgba(var(--foreground),.3)}.section+.section{margin-top:65px}@media screen and (min-width: 750px){.section+.section{margin-top:100px}}svg,svg *{transition:all var(--transition)}input[disabled]{cursor:not-allowed}.input[readonly]{border-style:dotted;cursor:not-allowed;color:var(--tertiary)}input[type=file]{cursor:pointer}input:not([type=checkbox]):not([type=radio]):focus:not(:active),textarea:focus:not(:active),input:not([type=checkbox]):not([type=radio]):focus-visible,textarea:focus-visible,select:focus{outline:2px solid transparent;box-shadow:none}input:focus,textarea:focus,select:focus{border-color:var(--primary)}@media print{header,footer,.announcement-bar-section{display:none!important}.print-only{display:block;opacity:1;position:static;width:auto;height:auto;margin:auto;overflow:auto;clip:rect(0,0,0,0);white-space:wrap}.print-hide{display:none;opacity:0}}:root{color-scheme:light dark;touch-action:manipulation;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--large-title: var(--weight-bold) 2.75rem/1.15 var(--sans-serif);--title1: var(--weight-bold) 1.75rem/1.25 var(--sans-serif);--title2: var(--weight-medium) 1.35rem/1.35 var(--sans-serif);--title3: var(--weight-medium) 1.125rem/1.4 var(--sans-serif);--body: var(--weight-normal) 1rem/1.65 var(--sans-serif);--footnote: var(--weight-normal) .9rem/1.6 var(--sans-serif);--caption: var(--weight-normal) .8rem/1.5 var(--sans-serif);--sans-serif: "Inter", ui-sans-serif, system-ui, sans-serif, var(--emoji);--serif: ui-serif, Charter, "Bitstream Charter", "Sitka Text", Cambria, serif, var(--emoji);--monospace: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace, var(--emoji);--rounded: ui-rounded, "Hiragino Maru Gothic ProN", Quicksand, Comfortaa, Manjari, "Arial Rounded MT", "Arial Rounded MT Bold", Calibri, source-sans-pro, sans-serif;--emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--weight-normal: 400;--weight-medium: 500;--weight-bold: 600;--foreground: 15, 23, 42;--background: 255, 255, 255;--accent: 99, 102, 241;--accent-light: 129, 140, 248;--accent-dark: 79, 70, 229;--primary: rgba(var(--foreground), 100%);--secondary: rgba(var(--foreground), 65%);--tertiary: rgba(var(--foreground), 45%);--quaternary: rgba(var(--foreground), 12%);--quinary: rgba(var(--foreground), 4%);--surface: rgba(var(--foreground), .02);--surface-hover: rgba(var(--foreground), .04);--border: rgba(var(--foreground), .08);--border-hover: rgba(var(--accent), .3);--space-base: .25rem;--space-0: calc(0 * var(--space-base));--space-2: calc(.5 * var(--space-base));--space-4: calc(1 * var(--space-base));--space-8: calc(2 * var(--space-base));--space-16: calc(4 * var(--space-base));--space-24: calc(6 * var(--space-base));--space-32: calc(8 * var(--space-base));--space-48: calc(12 * var(--space-base));--space-64: calc(16 * var(--space-base));--space-80: calc(20 * var(--space-base));--transition: .2s ease;--transition-slow: .3s ease;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04);--shadow-glow: 0 0 20px rgba(var(--accent), .15);--direction: column}@media (prefers-color-scheme: dark){:root{--weight-normal: 350;--weight-medium: 450;--weight-bold: 550;--foreground: 248, 250, 252;--background: 15, 23, 42;--accent: 129, 140, 248;--accent-light: 165, 180, 252;--accent-dark: 99, 102, 241;--secondary: rgba(var(--foreground), 70%);--tertiary: rgba(var(--foreground), 50%);--quaternary: rgba(var(--foreground), 12%);--quinary: rgba(var(--foreground), 5%);--surface: rgba(var(--foreground), .03);--surface-hover: rgba(var(--foreground), .06);--border: rgba(var(--foreground), .1);--border-hover: rgba(var(--accent), .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-glow: 0 0 30px rgba(var(--accent), .2)}}@media (prefers-reduced-motion: reduce){:root{--transition: none}}::-moz-selection{background-color:rgba(var(--foreground),.15)}::selection{background-color:rgba(var(--foreground),.15)}a:not([href]){cursor:not-allowed}*,*:before,*:after{box-sizing:inherit}a:empty,ul:empty,section:empty,article:empty,p:empty,h1:empty,h2:empty,h3:empty,h4:empty,h5:empty,h6:empty{display:none}.large-title{font:var(--large-title);letter-spacing:-.02em}.title1{font:var(--title1)}.title2{font:var(--title2)}.title3{font:var(--title3)}.body{font:var(--body)}.footnote{font:var(--footnote)}.caption{font:var(--caption)}.sans-serif{font-family:var(--sans-serif)}.serif{font-family:var(--serif)}.monospace{font-family:var(--monospace)}.rounded{font-family:var(--rounded)}.normal{font-weight:var(--weight-normal)}.medium{font-weight:var(--weight-medium)}.bold{font-weight:var(--weight-bold)}.foreground{color:var(--foreground)}.background{color:var(--background)}.accent{color:var(--accent-p3)}.primary{color:var(--primary)}.secondary{color:var(--secondary)}.tertiary{color:var(--tertiary)}.quaternary{color:var(--quaternary)}.quinary{color:var(--quinary)}main{margin-top:1.6rem}.s0{--spacing: var(--space-0)}.s2{--spacing: var(--space-2)}.s4{--spacing: var(--space-4)}.s8{--spacing: var(--space-8)}.s16{--spacing: var(--space-16)}.s24{--spacing: var(--space-24)}.s32{--spacing: var(--space-32)}.s48{--spacing: var(--space-48)}.s64{--spacing: var(--space-64)}.s80{--spacing: var(--space-80)}[id]{scroll-margin-top:2rem}body{max-width:680px;padding:0 5vw;margin:calc(4vw + 6vh) auto calc(4vw + 10vh);font:var(--body);color:var(--primary);background:rgb(var(--background))}h1,h2,h3,h4,h5,h6,p,blockquote{font-size:1rem;margin:0;overflow-wrap:break-word}img{width:100%;display:block;height:auto;max-width:100%}img:not(.plain){box-sizing:border-box;border-radius:.5rem;border:1px solid var(--quinary)}em{font-family:var(--serif)}strong,b{font-weight:var(--weight-bold)}code{padding:.15rem .35rem;background:var(--quinary);border-radius:.25rem;font:var(--footnote);font-family:var(--monospace);font-weight:var(--weight-normal)}pre code{display:block;padding:.75rem 1rem;border-radius:.5rem;border:1px solid var(--quinary);overflow-x:auto}blockquote p{color:var(--secondary);font-family:var(--serif);font-style:italic}blockquote p:before{content:"â€œ ";position:absolute;margin-top:-.5rem;margin-left:-1.25rem;font-family:var(--serif);font-size:1.5rem;color:var(--quaternary)}hr{width:100%;border:none;border-top:1px dashed var(--quaternary);height:.1rem;display:block;margin:2rem 0}a{color:inherit;text-decoration:none;transition:color var(--transition),text-decoration-color var(--transition)}a:not(.plain){text-decoration:underline;text-decoration-color:var(--quaternary);text-decoration-thickness:1px;text-underline-offset:2.5px}a:hover{color:var(--primary);text-decoration-color:var(--secondary)}a.button{display:inline-block;padding:.75rem 2rem;background:var(--quinary);color:var(--secondary);font:var(--title3);font-weight:var(--weight-bold);border-radius:var(--radius-full);transition:color var(--transition),background var(--transition),transform var(--transition)}a.button:hover{color:var(--primary);background:var(--quaternary);transform:translateY(-1px)}a.button:active{transform:translateY(0)}a+.link-suffix{position:relative;margin-right:.2em;top:-.2em;left:.2em;font-size:.8em;font-weight:var(--weight-normal);transition:color var(--transition)}h1 a+.link-suffix,h2 a+.link-suffix,h3 a+.link-suffix,h4 a+.link-suffix,h5 a+.link-suffix,h6 a+.link-suffix{margin-right:.3em;left:.3em}.article h1{font:var(--title1)}.article h2{font:var(--title2)}.article h3{font:var(--title3)}.article h4{font:var(--body)}.article h5{font:var(--footnote)}.article h6{font:var(--caption)}.article>*{margin-block-start:var(--space-24);margin-block-end:var(--space-24)}.article.compact>*{margin-block-start:var(--space-16);margin-block-end:var(--space-16)}.article h1,.article h2,.article h3,.article h4,.article h5,.article h6{margin-block-start:var(--space-64);margin-block-end:var(--space-16);font-family:var(--serif);font-weight:var(--weight-medium)}.article h1+p,.article h2+p,.article h3+p,.article h4+p,.article h5+p,.article h6+p{margin-block-start:var(--space-16)}.article h1+h2,.article h2+h3,.article h3+h4,.article h4+h5,.article h5+h6,.article h1:first-child,.article h2:first-child,.article h3:first-child,.article h4:first-child,.article h5:first-child,.article h6:first-child{margin-block-start:var(--space-32)}.article hr,.article img,.article blockquote,.article pre,.article .callout{margin-block-start:var(--space-32);margin-block-end:var(--space-32)}.article .callout+.callout{margin-block-start:calc(var(--space-32) * -1 + var(--space-8))}.article>*:first-child{margin-block-start:0}.article>*:last-child{margin-block-end:0}.article>*+ul,.article>*+ol{margin-block-start:calc(var(--space-8) * -1)}.article li::marker{color:var(--tertiary)}.article>ol:first-child{list-style-type:none;padding-left:0;margin-block-end:var(--space-48);color:var(--secondary);font:var(--footnote)}.article>ol:first-child li a{text-decoration:none}.uppercase{text-transform:uppercase}.nowrap{white-space:nowrap}.unselectable{cursor:default;-moz-user-select:none;user-select:none;-webkit-user-select:none}.sr-only:not(:focus):not(:active){clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.callout{padding:.75rem 1rem;background:var(--quinary);font:var(--footnote);border-radius:var(--radius-md);border:1px solid var(--quaternary)}.callout b:first-child{display:inline-block;margin-block-end:var(--space-4)}.highlighted-text{padding:.1rem .5rem;font-family:var(--rounded);font-weight:var(--weight-bold);color:rgb(var(--accent));background:rgba(var(--accent),.1);border-radius:var(--radius-sm)}.accent-text{color:rgb(var(--accent))}.accent-bg{background:rgba(var(--accent),.1)}.card{padding:var(--space-24);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition)}.card:hover{background:var(--surface-hover);border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card.card-interactive{cursor:pointer}.card.card-interactive:hover{box-shadow:var(--shadow-glow)}.nav-card{display:inline-block;padding:var(--space-8) var(--space-16);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);text-decoration:none;transition:all var(--transition)}.nav-card:hover{background:var(--surface-hover);border-color:var(--border-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.nav-card .nav-card-title{color:var(--primary);font:var(--footnote);font-weight:var(--weight-medium);transition:color var(--transition);display:inline}.nav-card:hover .nav-card-title{color:rgb(var(--accent))}.nav-card .nav-card-desc{color:var(--tertiary);font:var(--caption);display:inline}.nav-card .nav-card-desc:before{content:" · "}article{transition:transform var(--transition),box-shadow var(--transition);border-radius:var(--radius-md)}article:hover{transform:translateY(-2px)}.section-header{display:flex;align-items:center;gap:var(--space-16);margin-bottom:var(--space-24)}.section-header:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--border),transparent)}.section-title{font:var(--caption);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.1em;color:rgb(var(--accent))}.tag{display:inline-flex;align-items:center;padding:var(--space-4) var(--space-8);background:rgba(var(--accent),.1);color:rgb(var(--accent));font:var(--caption);font-weight:var(--weight-medium);border-radius:var(--radius-full)}hr.gradient{border:none;height:1px;background:linear-gradient(to right,transparent,var(--border),transparent);margin:var(--space-48) 0}.back-link{display:inline-flex;align-items:center;color:var(--tertiary);transition:color var(--transition)}.back-link:hover{color:rgb(var(--accent))}.stack{display:flex;justify-content:space-between;align-items:inherit;flex-direction:var(--direction);gap:1rem}.gap0{gap:0px}.horizontal{--direction: row}.vertical{--direction: column}.stack-wrap{flex-wrap:wrap}.stack.cards{padding:0}.stretch{align-items:stretch}.leading{justify-content:flex-start}.center{justify-content:center;align-items:center}@media screen and (min-width: 640px){.horizontal\@sm{--direction: row}}.print-only{display:none;opacity:0;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.no-js:not(html){display:none!important}html.no-js .no-js:not(html){display:block!important}.no-js-inline{display:none!important}html.no-js .no-js-inline{display:inline-block!important}html.no-js .no-js-hidden{display:none!important}.page-width{max-width:var(--page-width);margin:0 auto;padding:0 20px}.page-width.drawer-menu{max-width:100%}.page-width-desktop{padding:0;margin:0 auto}.margin0{margin:0!important}@media screen and (min-width: 750px){.page-width{padding:0 20px}.page-width--narrow{padding:0 9rem}.page-width-desktop{padding:0}.page-width-tablet{padding:0 3rem}}@media screen and (min-width: 990px){.page-width--narrow{max-width:72.6rem;padding:0}.page-width-desktop{max-width:var(--page-width);padding:0 5rem}}.text-center{text-align:center}.hidden{display:none!important}.visually-hidden{position:absolute!important;overflow:hidden;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);word-wrap:normal!important}
