:root{--color-bg: #ffffff;--color-canvas: #faf9f6;--color-text: #0f2840;--color-text-muted: #6f7e8c;--color-border: #dde7f0;--color-border-strong: #cfd4d9;--color-sky: #5688a1;--color-sky-soft: #dde7f0;--color-forest: #2d463e;--color-forest-soft: #c0c7c5;--color-gold: #e7d488;--color-gold-soft: #f8f2dc;--color-navy: #0f2840;--color-navy-soft: #3f5366;--font-heading: "Source Serif 4", Georgia, "Times New Roman", serif;--font-body: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, "Courier New", monospace;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem}*,*:before,*:after{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{min-height:100%;margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.7}a{color:inherit}img{display:block;max-width:100%;height:auto}code,pre{font-family:var(--font-mono)}.page-shell{display:grid;grid-template-columns:minmax(7rem,10vw) minmax(0,58rem);justify-content:center;column-gap:var(--space-xl);min-height:100vh;padding:0 var(--space-2xl);background:var(--color-bg)}.floating-toc{position:sticky;top:var(--space-3xl);align-self:start;display:grid;gap:.05rem;min-width:0;max-height:calc(100vh - var(--space-4xl));overflow-x:hidden;overflow-y:auto;padding-top:var(--space-4xl);padding-left:var(--space-sm);border-left:1px solid var(--color-border);font-size:.78rem;line-height:1.25}.floating-toc a{display:block;padding:.2rem 0;color:var(--color-text-muted);font-weight:400;letter-spacing:0;overflow-wrap:anywhere;text-decoration:none;transition:color .16s ease}.floating-toc a[data-depth="1"],.floating-toc a[data-depth="2"]{color:var(--color-navy-soft)}.floating-toc a[data-depth="3"]{display:none;padding-left:var(--space-sm);font-size:.72rem}.floating-toc a[data-depth="3"].is-visible{display:block}.floating-toc a.is-parent-active{color:var(--color-navy)}.floating-toc a.is-active{color:var(--color-forest);font-weight:600}.floating-toc a:hover,.floating-toc a:focus-visible{color:var(--color-navy)}.mobile-toc-trigger,.mobile-toc-backdrop,.mobile-toc-sheet{display:none}.pirouette-content{width:min(100%,58rem);margin:0;padding:var(--space-4xl) var(--space-3xl)}.pirouette-content>*{max-width:42rem}.pirouette-content>h1:first-child,.pirouette-content>h1:first-child+p{max-width:48rem}.pirouette-content h1,.pirouette-content h2,.pirouette-content h3,.pirouette-content h4{font-family:var(--font-heading);letter-spacing:0;line-height:1.12;color:var(--color-navy)}.pirouette-content h1{margin:0 0 var(--space-md);font-size:4.75rem;font-weight:700}.pirouette-content>h1:first-child+p{margin:0 0 var(--space-lg);padding:var(--space-md) 0 0;color:var(--color-forest);font-family:var(--font-heading);font-size:1.55rem;line-height:1.45}.pirouette-content h2{position:relative;margin:var(--space-2xl) 0 var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border);font-size:2.15rem;font-weight:600}.pirouette-content>h1:first-child+p+h2{margin-top:var(--space-lg)}.pirouette-content h2:before{content:"";position:absolute;top:-1px;left:0;width:5rem;height:3px;background:var(--color-gold)}.pirouette-content h3{margin:var(--space-lg) 0 var(--space-md);font-size:1.45rem;font-weight:600;color:var(--color-forest)}.pirouette-content h4{margin:var(--space-md) 0 var(--space-sm);font-size:1.15rem;font-weight:600}.pirouette-content p,.pirouette-content li{font-size:1.04rem;line-height:1.78;overflow-wrap:break-word}.pirouette-content p{margin:0 0 var(--space-md)}.pirouette-content ul,.pirouette-content ol{margin:0 0 var(--space-lg);padding-left:1.35rem}.pirouette-content li{padding-left:.25rem;margin:.35rem 0}.pirouette-content li::marker{color:var(--color-sky);font-weight:700}.pirouette-content ul ul,.pirouette-content ol ol,.pirouette-content ul ol,.pirouette-content ol ul{margin:.25rem 0 .75rem}.pirouette-content em{font-family:var(--font-body);font-style:italic;color:inherit}.pirouette-content a{color:var(--color-sky);text-decoration:underline;text-decoration-color:var(--color-gold);text-decoration-thickness:2px;text-underline-offset:.18em;overflow-wrap:anywhere}.pirouette-content a:hover,.pirouette-content a:focus-visible{color:var(--color-navy)}.pirouette-content blockquote{margin:var(--space-xl) 0;padding:var(--space-md) var(--space-lg);border-left:4px solid var(--color-gold);background:var(--color-gold-soft);color:var(--color-forest)}.pirouette-content code{padding:.12rem .28rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-canvas);font-size:.9em}.pirouette-content pre{overflow-x:auto;margin:var(--space-xl) 0;padding:var(--space-lg);border:1px solid var(--color-border);border-radius:8px;background:var(--color-navy);color:var(--color-canvas)}.pirouette-content pre code{padding:0;border:0;background:transparent;color:inherit}.anchored-heading{scroll-margin-top:var(--space-xl)}.heading-anchor{position:absolute;left:-1.35rem;color:var(--color-gold);opacity:0;text-decoration:none}.heading-anchor:before{content:"#"}.anchored-heading:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media(max-width:1100px){.page-shell{grid-template-columns:minmax(6.5rem,10vw) minmax(0,58rem);column-gap:var(--space-md);padding-right:var(--space-lg);padding-left:var(--space-lg)}.pirouette-content{padding-right:var(--space-xl);padding-left:var(--space-xl)}.pirouette-content h1{font-size:3.9rem}}@media(max-width:860px){.page-shell{display:block;padding:0}.floating-toc{display:none}.mobile-toc-trigger{position:fixed;right:var(--space-lg);bottom:var(--space-lg);z-index:30;display:inline-flex;align-items:center;gap:var(--space-sm);max-width:calc(100vw - var(--space-3xl));min-height:2.45rem;padding:0 var(--space-md);border:1px solid var(--color-border);border-radius:999px;background:#faf9f6f7;box-shadow:0 12px 30px #0f284021;color:var(--color-navy);font:inherit;font-size:.86rem;line-height:1}.mobile-toc-trigger[aria-expanded=true]{background:var(--color-canvas)}.mobile-toc-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-toc-icon{position:relative;width:.9rem;height:.7rem;flex:0 0 auto;border-top:1px solid currentColor;border-bottom:1px solid currentColor;opacity:.75}.mobile-toc-icon:before{content:"";position:absolute;top:50%;left:0;width:100%;border-top:1px solid currentColor;transform:translateY(-50%)}.mobile-toc-backdrop{position:fixed;inset:0;z-index:35;display:block;background:#0f28402e;opacity:0;transition:opacity .18s ease}.mobile-toc-backdrop[hidden],.mobile-toc-sheet[hidden]{display:none}.mobile-toc-backdrop.is-open{opacity:1}.mobile-toc-sheet{position:fixed;right:0;bottom:0;left:0;z-index:40;display:block;max-height:min(72vh,34rem);padding:var(--space-lg) var(--space-lg) calc(var(--space-lg) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-canvas);box-shadow:0 -18px 45px #0f284029;overflow:hidden;transform:translateY(100%);transition:transform .18s ease}.mobile-toc-sheet.is-open{transform:translateY(0)}.mobile-toc-nav{display:grid;gap:.05rem;max-height:calc(min(72vh,34rem) - var(--space-2xl));overflow-x:hidden;overflow-y:auto;padding-left:var(--space-sm);border-left:1px solid var(--color-border)}.mobile-toc-nav a{display:block;padding:.34rem 0;color:var(--color-text-muted);font-size:.96rem;line-height:1.25;overflow-wrap:anywhere;text-decoration:none}.mobile-toc-nav a[data-depth="1"],.mobile-toc-nav a[data-depth="2"]{color:var(--color-navy-soft)}.mobile-toc-nav a[data-depth="3"]{display:none;padding-left:var(--space-md);font-size:.9rem}.mobile-toc-nav a[data-depth="3"].is-visible{display:block}.mobile-toc-nav a.is-parent-active{color:var(--color-navy)}.mobile-toc-nav a.is-active{color:var(--color-forest);font-weight:600}.pirouette-content{width:100%;padding:var(--space-3xl) var(--space-lg) calc(var(--space-4xl) + 2.5rem) calc(var(--space-lg) + .35rem)}.pirouette-content h1{font-size:3.3rem}.pirouette-content>h1:first-child+p{margin-bottom:var(--space-lg);font-size:1.3rem}.pirouette-content h2{font-size:1.85rem}.heading-anchor{display:none}}@media(max-width:560px){.pirouette-content h1{font-size:2.75rem}.pirouette-content p,.pirouette-content li{font-size:1rem}}
