:root{--ck-void: #111009;--ck-surface: #1E1C16;--ck-raised: #2C2A22;--ck-border: #3D3A30;--ck-text-bright: #EDE8DC;--ck-text-primary: #C8C0AE;--ck-text-secondary: #9A9484;--ck-text-muted: #6A6358;--ck-amber: #C49A3C;--ck-amber-dark: #2A1E08;--ck-amber-bright: #E8C068;--ck-steel: #6B7A8D;--ck-steel-dark: #16202B;--ck-steel-bright: #9AAABB;--ck-coral: #FF5E3A;--ck-coral-dark: #2D1208;--ck-coral-bright: #FF8C6E;--ck-series-0: #C49A3C;--ck-series-1: #6B7A8D;--ck-series-2: #7D9A6A;--ck-series-3: #9A7AB0;--ck-series-4: #C47A5A;--ck-elevation-0: #16242C;--ck-elevation-1: #1D3330;--ck-elevation-2: #2C4733;--ck-elevation-3: #41603A;--ck-elevation-4: #5C7A43;--ck-elevation-5: #849254;--ck-elevation-6: #AC9A5C;--ck-elevation-7: #C7A472;--ck-elevation-8: #D3BCA4;--ck-elevation-9: #EDE8DC;--ck-elevation-gradient: linear-gradient(to top, #16242C 0%, #1D3330 6%, #2C4733 16%, #41603A 30%, #5C7A43 44%, #849254 58%, #AC9A5C 72%, #C7A472 84%, #D3BCA4 93%, #EDE8DC 100%);--ck-font-display: "Rajdhani", "Oswald", sans-serif;--ck-font-body: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--ck-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--ck-weight-regular: 400;--ck-weight-medium: 500;--ck-weight-semibold: 600;--ck-weight-bold: 700;--ck-leading-tight: 1.15;--ck-leading-snug: 1.35;--ck-leading-normal: 1.6;--ck-leading-relaxed: 1.75;--ck-tracking-tight: -.02em;--ck-tracking-normal: 0;--ck-tracking-wide: .04em;--ck-tracking-caps: .1em;--ck-text-xs: .75rem;--ck-text-sm: .875rem;--ck-text-base: 1rem;--ck-text-lg: 1.125rem;--ck-text-xl: 1.375rem;--ck-text-2xl: 1.75rem;--ck-text-3xl: 2.25rem;--ck-text-4xl: 3rem;--ck-text-5xl: 4rem;--ck-space-0: 0px;--ck-space-1: 4px;--ck-space-2: 8px;--ck-space-3: 12px;--ck-space-4: 16px;--ck-space-5: 24px;--ck-space-6: 32px;--ck-space-7: 48px;--ck-space-8: 64px;--ck-space-9: 96px;--ck-space-10: 128px;--ck-radius-none: 0px;--ck-radius-sm: 2px;--ck-radius-base: 4px;--ck-radius-lg: 8px;--ck-radius-full: 9999px;--ck-duration-instant: 0ms;--ck-duration-fast: .15s;--ck-duration-base: .25s;--ck-duration-slow: .4s;--ck-duration-fade: 1s;--ck-duration-fade-long: 1.5s;--ck-duration-title: 3s;--ck-ease-standard: cubic-bezier(.4, 0, .2, 1);--ck-ease-entrance: cubic-bezier(0, 0, .2, 1);--ck-ease-exit: cubic-bezier(.4, 0, 1, 1);--ck-ease-camera: cubic-bezier(.45, .05, .25, 1);--ck-ease-linear: linear}body{background:var(--ck-surface);color:var(--ck-text-primary);font-family:var(--ck-font-body);line-height:var(--ck-leading-normal)}h1,h2,h3{font-family:var(--ck-font-display);color:var(--ck-text-bright);line-height:var(--ck-leading-tight);letter-spacing:var(--ck-tracking-tight)}code,pre,kbd{font-family:var(--ck-font-mono)}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/optimization-kangaroos/_astro/jetbrains-mono-400.DemvFWYI.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/optimization-kangaroos/_astro/jetbrains-mono-400i.C63roe4R.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/optimization-kangaroos/_astro/jetbrains-mono-500.CIAvLOmD.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/optimization-kangaroos/_astro/jetbrains-mono-700.DwvXOFUC.woff2) format("woff2")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:400;font-display:swap;src:url(/optimization-kangaroos/_astro/rajdhani-400.Cp8FDaZ7.woff2) format("woff2")}@font-face{font-family:Rajdhani;font-style:normal;font-weight:600;font-display:swap;src:url(/optimization-kangaroos/_astro/rajdhani-600.D9dX1cKJ.woff2) format("woff2")}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ck-void);color:var(--ck-text-primary);font-family:var(--ck-font-body);font-size:var(--ck-text-base);line-height:1.75;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(circle,color-mix(in srgb,var(--ck-steel-bright) 13%,transparent) 1px,transparent 1px);background-size:48px 48px}body:after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 120% at 50% 45%,#0000 40%,#0000008c)}main{position:relative;z-index:1}.prose{max-width:68ch;margin:0 auto;padding:0 var(--ck-space-5)}.wide{width:min(60rem,calc(100vw - 3rem));margin:var(--ck-space-8) 0 var(--ck-space-8) 50%;transform:translate(-50%)}h1,h2,h3{font-family:var(--ck-font-display);color:var(--ck-text-bright);font-weight:600;line-height:1.12;letter-spacing:.01em;text-transform:uppercase}h1{font-size:var(--ck-text-4xl);margin:0 0 var(--ck-space-4)}h2{font-size:var(--ck-text-2xl);margin:var(--ck-space-9) 0 var(--ck-space-4)}h3{font-size:var(--ck-text-xl);margin:var(--ck-space-7) 0 var(--ck-space-3)}p{margin:0 0 var(--ck-space-5)}a{color:var(--ck-amber-bright);text-decoration-thickness:1px;text-underline-offset:2px}strong{color:var(--ck-text-bright);font-weight:var(--ck-weight-semibold)}em{color:var(--ck-text-bright);font-style:italic}blockquote{margin:var(--ck-space-6) 0;padding:var(--ck-space-4) var(--ck-space-5);border-left:2px solid var(--ck-amber);background:var(--ck-surface);color:var(--ck-text-bright);font-size:var(--ck-text-base)}blockquote p:last-child{margin-bottom:0}blockquote cite{display:block;margin-top:var(--ck-space-3);font-style:normal;font-size:var(--ck-text-xs);color:var(--ck-text-muted);letter-spacing:var(--ck-tracking-wide);text-transform:uppercase}pre{overflow-x:auto;padding:var(--ck-space-4);background:var(--ck-surface);border:1px solid var(--ck-border);border-radius:var(--ck-radius-base);font-family:var(--ck-font-mono);font-size:var(--ck-text-xs);line-height:var(--ck-leading-snug);color:var(--ck-text-secondary)}code{font-family:var(--ck-font-mono);font-size:.9em;color:var(--ck-amber-bright)}pre code{color:inherit}.figure{margin:var(--ck-space-7) 0}.figure-scene{margin:var(--ck-space-8) 0}.scene-shell{background:var(--ck-void);border:1px solid var(--ck-border);border-radius:var(--ck-radius-lg);overflow:hidden}.scene-shell canvas{display:block;touch-action:pan-y}.scene-loading{display:flex;align-items:center;justify-content:center;font-size:var(--ck-text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ck-text-muted)}.figure-caption{margin-top:var(--ck-space-3);font-size:var(--ck-text-xs);line-height:1.65;letter-spacing:.02em;color:var(--ck-text-muted)}.ck-chart{background:var(--ck-surface);border:1px solid var(--ck-border);border-radius:var(--ck-radius-lg);padding:var(--ck-space-4)}.ck-chart-title{font-family:var(--ck-font-display);color:var(--ck-text-bright);font-size:var(--ck-text-base);margin-bottom:var(--ck-space-3)}.ck-chart-legend{display:flex;flex-wrap:wrap;gap:var(--ck-space-4);list-style:none;margin:var(--ck-space-3) 0 0;padding:0;font-size:var(--ck-text-xs);color:var(--ck-text-secondary)}.ck-chart-legend li{display:flex;align-items:center;gap:var(--ck-space-2)}.ck-chart-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.ck-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.masthead{padding-top:var(--ck-space-9);padding-bottom:var(--ck-space-7)}.kicker{font-family:var(--ck-font-mono);font-size:var(--ck-text-xs);font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--ck-amber);margin-bottom:var(--ck-space-4)}.standfirst{font-size:var(--ck-text-lg);line-height:1.6;color:var(--ck-text-secondary)}.colophon{margin-top:var(--ck-space-10);padding:var(--ck-space-7) 0 var(--ck-space-9);border-top:1px solid var(--ck-border);font-size:var(--ck-text-sm);color:var(--ck-text-muted)}.colophon h2{font-size:var(--ck-text-lg);margin-top:0}@media(max-width:640px){body{font-size:var(--ck-text-base)}h1{font-size:var(--ck-text-3xl)}.wide{width:100vw}.scene-shell{border-radius:0;border-left:none;border-right:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.figure-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:center;margin-bottom:.75rem}.figure-controls .control-group{display:inline-flex;border:1px solid var(--ck-border);border-radius:6px;overflow:hidden}.figure-controls .control-group button{border:0;border-radius:0}.figure-controls .control-group button+button{border-left:1px solid var(--ck-border)}.figure-controls button{font:inherit;font-size:.82rem;line-height:1;padding:.5rem .8rem;color:var(--ck-text-secondary);background:var(--ck-raised);border:1px solid var(--ck-border);border-radius:6px;cursor:pointer;transition:background .12s ease,color .12s ease}.figure-controls button:hover{color:var(--ck-text-bright);background:var(--ck-border)}.figure-controls button.is-on{color:var(--ck-void);background:var(--ck-amber);font-weight:600}.figure-controls button:focus-visible{outline:2px solid var(--ck-amber-bright);outline-offset:2px}.bowling-diagram{display:block;width:100%;height:auto;background:var(--ck-surface);border:1px solid var(--ck-border);border-radius:var(--ck-radius-base)}.bowling-diagram .panel-label{fill:var(--ck-text-bright);font:600 14px var(--ck-font-body)}.bowling-diagram .ground{fill:#2c4733;stroke:none}.bowling-diagram .trench{fill:none;stroke:var(--ck-void);stroke-width:11;stroke-linejoin:round}.bowling-diagram .trench-plate{fill:none;stroke:var(--ck-steel-bright);stroke-width:2.5;stroke-linejoin:round;opacity:.85}.bowling-diagram .ball{fill:var(--ck-text-primary);stroke:var(--ck-void);stroke-width:1.5}.bowling-diagram .ball-hole{fill:var(--ck-void);opacity:.55}.bowling-diagram .roll{stroke:var(--ck-text-bright);stroke-width:2}.bowling-diagram .tick{stroke:var(--ck-text-muted);stroke-width:1.5}.bowling-diagram .roll-label{fill:var(--ck-text-bright);font:600 13px var(--ck-font-mono)}.bowling-diagram .axis-note{fill:var(--ck-text-muted);font:12px var(--ck-font-body)}.bowling-diagram .sum{font:600 15px var(--ck-font-mono)}.bowling-diagram .sum-north{fill:#35c4f0}.bowling-diagram .sum-east{fill:#e8459e}.bowling-diagram .sum-op{fill:var(--ck-text-secondary);font:14px var(--ck-font-mono)}.bowling-diagram .plan-axis{stroke:var(--ck-border);stroke-width:1.5}.bowling-diagram .here{fill:var(--ck-text-bright)}.bowling-diagram .jump{stroke:var(--ck-coral);stroke-width:2.5}.bowling-diagram .jump-label{fill:var(--ck-coral-bright);font:600 12px var(--ck-font-mono)}.bowling-diagram .ball-ghost{fill:none;stroke:var(--ck-text-muted);stroke-width:1.5;stroke-dasharray:3 3}
