:root{--color-paper: oklch(96.4% .012 95);--color-paper-2: oklch(99.2% .006 95);--color-ink: oklch(22% .018 155);--color-ink-2: oklch(42% .02 155);--color-rule: oklch(84% .018 90);--color-accent: oklch(48% .145 32);--color-accent-ink: oklch(99% .01 95);--color-focus: oklch(48% .145 32);--color-ok: oklch(42% .08 155);--color-bad: oklch(45% .14 32);--color-figure: oklch(100% 0 0);--font-display: "Geist", ui-sans-serif, system-ui, sans-serif;--font-body: "Geist", ui-sans-serif, system-ui, sans-serif;--font-outlier: "Geist Mono", ui-monospace, monospace;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4.5rem;--space-3xl: 7rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--text-display: clamp(2.25rem, 3.6vw + 1rem, 3.35rem);--text-display-s: clamp(1.75rem, 2.4vw + .8rem, 2.4rem);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-short: .16s;--dur-mid: .28s;--radius-input: 2px;--radius-btn: 3px;--shadow-figure: 0 12px 40px oklch(22% .018 155 / .08);--measure: 62ch;--shell: 1120px;--editor-shell: 1480px}html,body{overflow-x:clip}html,body,#root{margin:0;min-height:100%}*{box-sizing:border-box}:root{color:var(--color-ink);background:var(--color-paper);font-family:var(--font-body);font-size:16px;line-height:1.55;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility}body{background:var(--color-paper)}a{color:var(--color-ink)}a:hover{color:var(--color-accent)}h1,h2,h3,.wordmark{font-family:var(--font-display);font-style:normal;font-weight:600;letter-spacing:-.03em;line-height:1.12;overflow-wrap:break-word;min-width:0}h1{font-size:var(--text-display);margin:0 0 var(--space-sm)}h2{font-size:var(--text-xl);margin:0 0 var(--space-xs)}h3{font-size:var(--text-lg);margin:0 0 var(--space-2xs)}.shell{width:min(var(--shell),calc(100% - var(--space-lg)));margin-inline:auto}.app-frame{min-height:100%;display:flex;flex-direction:column}.app-frame>main{flex:1}.site-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-rule)}.site-footer{display:flex;justify-content:space-between;gap:var(--space-md);padding:var(--space-lg) 0 var(--space-xl);margin-top:var(--space-2xl);border-top:1px solid var(--color-rule);color:var(--color-ink-2);font-size:var(--text-sm)}.nav{display:flex;gap:var(--space-md);align-items:center}.nav a{text-decoration:none;color:var(--color-ink);font-size:var(--text-sm)}.nav a.btn-primary{color:var(--color-accent-ink)}.nav a.active{box-shadow:inset 0 -1px 0 var(--color-ink)}.wordmark{display:flex;align-items:center;gap:var(--space-2xs);text-decoration:none;color:var(--color-ink);font-size:var(--text-lg)}.mark{width:22px;height:22px;flex:none}.btn{appearance:none;border:1px solid transparent;border-radius:var(--radius-btn);padding:.55rem .9rem;font:inherit;font-size:var(--text-sm);font-weight:500;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);line-height:1.2;white-space:nowrap;transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),transform var(--dur-short) var(--ease-out)}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn:active,.btn.is-active{transform:translateY(1px)}.btn:disabled,.btn.is-disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-ink);color:var(--color-accent-ink)}.btn-primary:hover,.btn-primary.is-hover{background:var(--color-accent)}.btn-ghost{background:var(--color-paper-2);border-color:var(--color-rule);color:var(--color-ink)}.btn-ghost:hover,.btn-ghost.is-hover{border-color:var(--color-ink)}.lede{font-size:var(--text-md);color:var(--color-ink-2);max-width:var(--measure);margin:0}.fine{color:var(--color-ink-2);font-size:var(--text-sm)}.actions{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin:var(--space-md) 0 0}.n{font-family:var(--font-outlier);font-variant-numeric:tabular-nums;font-size:.92em}.workbench{padding:var(--space-xl) 0 var(--space-lg);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-xl);align-items:start}.workbench>*{min-width:0;max-width:100%;width:100%}.workbench .lede{margin-bottom:var(--space-xs)}.figure-plate{margin:0;min-width:0;width:100%;max-width:100%;background:var(--color-figure);border:1px solid var(--color-ink);box-shadow:var(--shadow-figure)}.figure-scroll{position:relative;overflow:hidden;min-width:0;width:100%}.figure-plate svg{position:absolute;inset:0;display:block;width:100%!important;height:100%!important}.figure-plate figcaption{border-top:1px solid var(--color-rule);padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);color:var(--color-ink-2)}.figure-plate figcaption strong{display:block;color:var(--color-ink);font-family:var(--font-display);font-weight:500;margin-bottom:2px}.cases{padding:var(--space-lg) 0 var(--space-2xl);border-top:1px solid var(--color-rule)}.cases-head{display:flex;justify-content:space-between;gap:var(--space-md);align-items:end;margin-bottom:var(--space-md)}.case-list{display:grid;gap:0;border-top:1px solid var(--color-rule)}.case-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:var(--space-md);align-items:start;padding:var(--space-md) 0;border-bottom:1px solid var(--color-rule)}.case-row[aria-current=true]{box-shadow:inset 3px 0 0 var(--color-accent);padding-left:var(--space-sm)}.case-select{appearance:none;border:0;background:transparent;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.case-select:hover h3{color:var(--color-accent)}.case-row p{margin:.2rem 0 0;color:var(--color-ink-2);font-size:var(--text-sm)}.case-meta{font-size:var(--text-sm);color:var(--color-ink-2)}.methods{padding-bottom:var(--space-2xl)}.methods dl{margin:0;display:grid;grid-template-columns:minmax(9rem,14rem) minmax(0,1fr);gap:var(--space-xs) var(--space-md);max-width:72rem}.methods dt{font-family:var(--font-display);font-weight:500}.methods dd{margin:0;color:var(--color-ink-2)}.citation{max-width:var(--measure);font-size:var(--text-sm);color:var(--color-ink-2)}.editor-page{width:min(var(--editor-shell),calc(100% - var(--space-md)));margin:0 auto var(--space-2xl);padding-top:var(--space-lg)}.diagram-toolbar{display:flex;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;align-items:end;margin-bottom:var(--space-md)}.export-note{font-size:var(--text-sm);color:var(--color-ink-2);max-width:var(--measure);margin:0}.notice{margin:var(--space-xs) 0 0;font-size:var(--text-sm);color:var(--color-ink-2)}.editor-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:var(--space-md);align-items:start}.panel{background:var(--color-paper-2);border:1px solid var(--color-rule);padding:var(--space-sm)}.panel h2{font-size:var(--text-lg)}.field{display:grid;gap:4px;margin:var(--space-xs) 0}.field label,.field{font-size:var(--text-sm);font-weight:500}.field input[type=number],.field input[type=text]{width:100%;border:1px solid var(--color-rule);background:var(--color-figure);color:var(--color-ink);padding:.45rem .55rem;font:inherit;font-family:var(--font-outlier);font-variant-numeric:tabular-nums;border-radius:var(--radius-input)}.field input[type=text]{font-family:var(--font-body)}.row-2{display:grid;grid-template-columns:minmax(0,1fr) 5.5rem;gap:var(--space-2xs)}.phase-block+.phase-block{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--color-rule)}.phase-block h3{font-size:var(--text-md)}.check{display:flex;gap:var(--space-2xs);align-items:flex-start;font-size:var(--text-sm);font-weight:400;margin:var(--space-xs) 0}.balance{display:flex;justify-content:space-between;gap:var(--space-xs);font-size:var(--text-xs);font-family:var(--font-outlier);padding:.35rem 0;border-bottom:1px dashed var(--color-rule)}.balance.ok{color:var(--color-ok)}.balance.bad{color:var(--color-bad)}.diagram-wrap{overflow:auto;background:var(--color-figure);border:1px solid var(--color-ink);padding:var(--space-2xs)}.diagram-wrap svg{display:block;width:100%!important;max-width:100%;height:auto!important}.price{font-size:var(--text-2xl);font-family:var(--font-outlier);font-variant-numeric:tabular-nums;margin:0 0 var(--space-sm)}.doc-page{padding:var(--space-xl) 0 var(--space-2xl);max-width:40rem}.doc-page ul{padding-left:1.1rem}.example-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.example-card{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0;text-decoration:none;color:inherit}.example-card .figure-plate{box-shadow:none}.example-card h3{font-size:var(--text-md);margin:0}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);padding:var(--space-lg) 0 var(--space-2xl);border-top:1px solid var(--color-rule)}.steps article h3{font-size:var(--text-md)}.steps .n{display:block;margin-bottom:var(--space-2xs);color:var(--color-ink-2)}.compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-lg);padding-bottom:var(--space-2xl)}.compare ul{margin:var(--space-xs) 0 0;padding-left:1.1rem;color:var(--color-ink-2);font-size:var(--text-sm)}.faq{padding-bottom:var(--space-2xl);max-width:46rem}.faq details{border-bottom:1px solid var(--color-rule);padding:var(--space-sm) 0}.faq summary{cursor:pointer;font-weight:600}.faq p{margin:var(--space-xs) 0 0;color:var(--color-ink-2)}@media(max-width:980px){.workbench,.editor-grid,.case-row,.methods dl,.site-header,.site-footer,.cases-head,.example-grid,.steps,.compare{grid-template-columns:minmax(0,1fr);flex-direction:column;align-items:stretch}h1{font-size:var(--text-display-s);overflow-wrap:break-word}.site-header{align-items:flex-start}.case-row{padding-left:0}}@media(prefers-reduced-motion:reduce){.btn{transition:none}}
