:root{color-scheme:light;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--size-title:2rem;--size-display:1.5rem;--size-heading:1.25rem;--size-text:1rem;--size-small:0.875rem;--size-caption:0.75rem;--leading:1.5;--leading-tight:1.25;--weight-regular:400;--weight-medium:500;--weight-bold:600;--color-ink:light-dark(#1f2328, #f0f6fc);--color-muted:light-dark(#59636e, #9198a1);--color-line:light-dark(#d1d9e0, #3d444d);--color-paper:light-dark(#ffffff, #0d1117);--color-surface:light-dark(#f6f8fa, #151b23);--color-control:light-dark(#f6f8fa, #212830);--color-control-hover:light-dark(#eff2f5, #262c36);--color-selected:light-dark(#ffffff, #3d444d);--color-accent:light-dark(#1a7f37, #3fb950);--color-accent-fill:light-dark(#1f883d, #238636);--color-on-accent:#ffffff;--color-shadow:light-dark(rgb(31 35 40 / 12%), rgb(1 4 9 / 60%));--series-1:light-dark(#2a78d6, #4493f8);--series-2:light-dark(#eb6834, #db6d28);--series-3:light-dark(#1baf7a, #3fb950);--series-4:light-dark(#eda100, #d29922);--series-5:light-dark(#e87ba4, #db61a2);--status-good:light-dark(#1a7f37, #3fb950);--status-warning:light-dark(#bf8700, #d29922);--status-serious:light-dark(#bc4c00, #db6d28);--status-critical:light-dark(#cf222e, #f85149);--color-grid:light-dark(#eaeef2, #21262d);--color-axis:light-dark(#d1d9e0, #3d444d);--space:0.5rem;--measure:37.5rem;--measure-wide:68rem;--gutter:calc(var(--space) * 3);--radius:6px;--control-height:2rem;--label-height:1.5rem}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:var(--size-text);line-height:var(--leading);color:var(--color-ink);background:var(--color-paper);-webkit-font-smoothing:antialiased;overflow-x:clip}.topbar,main{max-width:calc(var(--measure-wide) + 2 * var(--gutter));margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.topbar{max-width:calc(var(--measure) + 2 * var(--gutter))}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:calc(var(--space) * 2);padding-top:calc(var(--space) * 3)}main{padding-top:calc(var(--space) * 6);padding-bottom:calc(var(--space) * 10)}.prose{max-width:var(--measure);margin-left:auto;margin-right:auto}h1{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--space) * 1.5);margin:0;font-size:var(--size-title);font-weight:var(--weight-bold);line-height:var(--leading-tight)}h2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space);margin:0 0 calc(var(--space) * 1.5);font-size:var(--size-heading);font-weight:var(--weight-bold);line-height:var(--leading-tight)}h3{margin:0 0 var(--space);font-size:var(--size-text);font-weight:var(--weight-bold);line-height:var(--leading-tight)}p{margin:0 0 calc(var(--space) * 2)}h1,h2,h3,.numbered-title{text-wrap:balance}p,li{text-wrap:pretty}a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.intro .lede{margin:calc(var(--space) * 1.5)0 0;color:var(--color-muted)}.contact{display:flex;flex-wrap:wrap;gap:var(--space)calc(var(--space) * 3);margin:calc(var(--space) * 2)0 0}.email{padding:0;font:inherit;color:var(--color-accent);background:0 0;border:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;cursor:pointer}.section{margin-top:calc(var(--space) * 6);padding-top:calc(var(--space) * 4);border-top:1px solid var(--color-line)}.section-note{margin:calc(var(--space) * -.5)0 calc(var(--space) * 3);font-size:var(--size-small);color:var(--color-muted)}.section .content>:last-child,.note>:last-child{margin-bottom:0}.back{font-size:var(--size-small);text-decoration:none}.numbered{margin:0;padding:0;list-style:none;counter-reset:item}.numbered li{display:grid;grid-template-columns:calc(var(--space) * 5)1fr;row-gap:calc(var(--space) * .5);counter-increment:item}.numbered li+li{margin-top:calc(var(--space) * 3)}.numbered li::before{content:counter(item,decimal-leading-zero);grid-row:span 2;font-size:var(--size-small);font-variant-numeric:tabular-nums;line-height:calc(var(--size-text) * var(--leading));color:var(--color-muted)}.numbered-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space);font-weight:var(--weight-bold)}.item-link{font-size:var(--size-small);font-weight:var(--weight-regular)}.numbered p{margin:0;font-size:var(--size-small);color:var(--color-muted)}.content{margin-top:calc(var(--space) * 5)}.content h2{margin-top:calc(var(--space) * 4)}.content h2:first-child{margin-top:0}.content ul{margin:0 0 calc(var(--space) * 2);padding-left:calc(var(--space) * 3)}.content li+li{margin-top:var(--space)}.content strong{font-weight:var(--weight-bold)}.recreation{width:100%}.recreation-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:calc(var(--space) * 2)}.app{color-scheme:light;padding:calc(var(--space) * 2);font-size:var(--size-small);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius)}.app[data-theme=dark],body:has(.app[data-theme=dark]) .tooltip{color-scheme:dark}@media(prefers-color-scheme:dark){.app[data-theme=system],body:has(.app[data-theme=system]) .tooltip{color-scheme:dark}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.status,.status-tag,.data-tag,.badge{--tone:var(--color-muted);display:inline-flex;flex:none;align-items:center;gap:calc(var(--space) * .75);height:var(--label-height);padding:0 calc(var(--space) * 1.25);font-size:var(--size-small);font-weight:var(--weight-medium);line-height:1;white-space:nowrap;vertical-align:middle;color:var(--color-ink);background:color-mix(in srgb,var(--tone) 12%,var(--color-paper));border:1px solid color-mix(in srgb,var(--tone) 40%,var(--color-paper));border-radius:999px}.status:has(.status-icon){padding-left:calc(var(--space) * .75)}.status-icon{display:inline-grid;flex:none;place-items:center;width:1rem;height:1rem;font-size:.625rem;font-weight:var(--weight-bold);line-height:1;color:var(--color-paper);background:var(--tone);border-radius:50%}.status-good{--tone:var(--status-good)}.status-warning,.data-tag{--tone:var(--status-warning)}.status-serious{--tone:var(--status-serious)}.status-critical,.data-tag.missing{--tone:var(--status-critical)}.data-tag{margin-left:var(--space)}.badge{height:1.25rem;margin-left:var(--space);padding:0 var(--space)}button,input,select{font:inherit;color:inherit}.button,.chip,.segmented,select,input[type=text],input[type=search],input[type=number],input[type=date]{height:var(--control-height);font-size:var(--size-small);border:1px solid var(--color-line);border-radius:var(--radius)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space);padding:0 calc(var(--space) * 1.5);font-weight:var(--weight-medium);white-space:nowrap;color:var(--color-ink);background:var(--color-control);cursor:pointer}.button.primary{color:var(--color-on-accent);background:var(--color-accent-fill);border-color:transparent}.button[aria-pressed=true]{background:var(--color-selected);border-color:var(--color-ink)}.button.small{height:1.75rem;padding:0 var(--space)}select,input[type=text],input[type=search],input[type=number],input[type=date]{padding:0 var(--space);background:var(--color-paper)}input[type=range]{width:100%;accent-color:var(--color-accent)}label{display:block}.field{display:grid;gap:calc(var(--space) * .5);margin-bottom:calc(var(--space) * 2)}.field-head{display:flex;justify-content:space-between;gap:var(--space)}.field-value{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space)calc(var(--space) * 1.5);margin-bottom:calc(var(--space) * 2)}.toolbar .grow{flex:1}.tabs{display:flex;gap:calc(var(--space) * .5);overflow-x:auto;border-bottom:1px solid var(--color-line)}.tab{display:inline-flex;align-items:center;height:calc(var(--space) * 5);padding:0 calc(var(--space) * 1.5);font-size:var(--size-small);white-space:nowrap;color:var(--color-muted);background:0 0;border:0;border-bottom:2px solid transparent;cursor:pointer}.tab[aria-selected=true]{font-weight:var(--weight-bold);color:var(--color-ink);border-bottom-color:var(--color-accent)}.segmented{display:inline-flex;flex:none;gap:2px;padding:2px;background:var(--color-surface)}.segmented button{height:100%;padding:0 calc(var(--space) * 1.5);line-height:1;white-space:nowrap;color:var(--color-muted);background:0 0;border:1px solid transparent;border-radius:calc(var(--radius) - 2px);cursor:pointer}.segmented [aria-checked=true]{font-weight:var(--weight-medium);color:var(--color-ink);background:var(--color-selected);border-color:var(--color-line)}.chips{display:flex;flex-wrap:wrap;gap:var(--space)}.chip{padding:0 calc(var(--space) * 1.5);color:var(--color-ink);background:var(--color-control);border-radius:999px;cursor:pointer}.chip[aria-pressed=true]{font-weight:var(--weight-medium);background:color-mix(in srgb,var(--color-accent) 12%,var(--color-paper));border-color:color-mix(in srgb,var(--color-accent) 60%,var(--color-paper))}.panel{margin-top:calc(var(--space) * 2);padding:calc(var(--space) * 2);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius)}.panel h3,summary h3{margin:0 0 calc(var(--space) * 1.5)}.panel>:last-child{margin-bottom:0}.grid-2,.grid-3{display:grid;gap:calc(var(--space) * 2)}.grid-2>.panel,.grid-3>.panel{margin-top:0}details.section{margin-top:calc(var(--space) * 3);padding-top:0;border-top:1px solid var(--color-line)}details.section>summary{padding:calc(var(--space) * 1.5)0;cursor:pointer;list-style:none}details.section>summary::-webkit-details-marker{display:none}details.section>summary h3{display:inline}details.section>summary::before{content:"▸";display:inline-block;width:calc(var(--space) * 2.5);color:var(--color-muted)}details.section[open]>summary::before{content:"▾"}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:calc(var(--space) * 1.5)}.tile{padding:calc(var(--space) * 1.5)calc(var(--space) * 2);background:var(--color-surface);border-radius:var(--radius)}.tile-value{display:block;font-size:var(--size-display);font-weight:var(--weight-bold);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.tile-label{display:block;margin-top:calc(var(--space) * .5);color:var(--color-muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:var(--space)calc(var(--space) * 1.5);text-align:left;vertical-align:middle;border-bottom:1px solid var(--color-line)}th{font-weight:var(--weight-bold);color:var(--color-muted);white-space:nowrap}.num{text-align:right}.sort{padding:0;font-weight:inherit;color:inherit;background:0 0;border:0;cursor:pointer}td.empty{color:var(--color-muted);text-align:center}.chart{margin:0}.chart-plot{width:100%}.chart-plot.scroll{overflow-x:auto}.chart svg{display:block;overflow:visible}.legend{display:flex;flex-wrap:wrap;gap:calc(var(--space) * .5)calc(var(--space) * 2);margin-bottom:var(--space);color:var(--color-muted)}.legend-item{display:inline-flex;align-items:center;gap:calc(var(--space) * .75)}.swatch{display:inline-block;width:calc(var(--space) * 2);height:3px;background:currentColor;border-radius:2px}.swatch.block{height:calc(var(--space) * 1.5)}.swatch.dashed{background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px)}.grid{stroke:var(--color-grid);stroke-width:1}.axis-label,.target-label,.chart-label{font-size:var(--size-caption);fill:var(--color-muted);font-variant-numeric:tabular-nums}.chart-label.strong{font-weight:var(--weight-bold);fill:var(--color-ink)}.target{stroke:var(--color-ink);stroke-width:1;stroke-dasharray:4 3}.crosshair{stroke:var(--color-axis);stroke-width:1}.line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.line.thin{stroke-width:1.5}.line.dashed{stroke-dasharray:5 4}.dot{fill:currentColor;stroke:var(--color-paper);stroke-width:2}.series-1{color:var(--series-1)}.series-2{color:var(--series-2)}.series-3{color:var(--series-3)}.series-4{color:var(--series-4)}.series-5{color:var(--series-5)}.series-muted{color:var(--color-axis)}.tone-good{color:var(--status-good)}.tone-warning{color:var(--status-warning)}.tone-serious{color:var(--status-serious)}.tone-critical{color:var(--status-critical)}.bars{display:grid;gap:var(--space)}.bar-row{display:grid;grid-template-columns:minmax(6rem,10rem)1fr 4.5rem;align-items:center;gap:var(--space)}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{position:relative;height:calc(var(--space) * 1.5);background:var(--color-surface);border-radius:0 3px 3px 0}.bar-fill{display:block;height:100%;background:currentColor;border-radius:0 4px 4px 0}.bar-target{position:absolute;top:calc(var(--space) * -.5);bottom:calc(var(--space) * -.5);border-left:1px dashed var(--color-ink)}.bar-value{text-align:right;font-variant-numeric:tabular-nums}.chart-note{display:flex;align-items:center;gap:var(--space);margin:var(--space)0 0;color:var(--color-muted)}.target-key{display:inline-block;width:calc(var(--space) * 2);border-top:1px dashed var(--color-ink)}.sparkline{display:block;overflow:visible}.tooltip{position:fixed;z-index:10;max-width:18rem;padding:var(--space)calc(var(--space) * 1.5);font-size:var(--size-small);line-height:1.4;color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:0 8px 24px var(--color-shadow);pointer-events:none}.tooltip-title{font-weight:var(--weight-bold)}.term{position:relative;text-decoration:underline dotted var(--color-muted);text-underline-offset:.2em;cursor:help}.term:hover::after,.term:focus::after{content:attr(data-definition);position:absolute;left:0;top:calc(100% + 4px);z-index:5;width:16rem;padding:var(--space)calc(var(--space) * 1.5);font-weight:var(--weight-regular);color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:0 8px 24px var(--color-shadow)}.plain{margin:0 0 calc(var(--space) * 2);padding:0;list-style:none}.plain li+li{margin-top:var(--space)}.fix-list,.steps{margin:0 0 calc(var(--space) * 2);padding-left:calc(var(--space) * 2.5)}.fix-list li+li,.steps li+li{margin-top:var(--space)}.summary{padding:calc(var(--space) * 1.5)calc(var(--space) * 2);background:var(--color-surface);border-radius:var(--radius)}.stepper{display:inline-flex;align-items:center;gap:var(--space)}.actions{display:inline-flex;gap:calc(var(--space) * .5)}label.inline{display:inline-block;margin-right:calc(var(--space) * 2)}fieldset.field{margin:0 0 calc(var(--space) * 2);padding:0;border:0}fieldset.field legend{margin-bottom:calc(var(--space) * .5);padding:0}.nowrap{white-space:nowrap}.page{padding-top:calc(var(--space) * 2)}.page>*+*,details.section>:not(summary)+*,.app>.panel+.tiles,.app>.tiles+.panel,.notes{margin-top:calc(var(--space) * 2)}.page>.toolbar:first-child{margin-bottom:0}.decision{font-size:var(--size-text)}.glossary{display:flex;flex-wrap:wrap;gap:var(--space)calc(var(--space) * 2.5)}.table-view{margin-top:var(--space)}.table-view summary{color:var(--color-accent);cursor:pointer}.group-row th{padding-top:calc(var(--space) * 1.5);font-weight:var(--weight-bold);color:var(--color-ink);background:var(--color-surface)}.headline tbody th{font-weight:var(--weight-regular);color:var(--color-ink)}.stage-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:calc(var(--space) * 1.5)}.stage-card{display:grid;gap:calc(var(--space) * .5);padding:calc(var(--space) * 1.5)calc(var(--space) * 2);text-align:left;background:color-mix(in srgb,currentColor 10%,var(--color-paper));border:0;border-left:4px solid;border-radius:var(--radius);cursor:pointer}.stage-card .tile-value,.stage-card .tile-label{color:var(--color-ink)}.wf-bar{fill:currentColor}.dropzone{display:block;padding:calc(var(--space) * 3);text-align:center;color:var(--color-muted);border:2px dashed var(--color-line);border-radius:var(--radius);cursor:pointer}.dropzone.over{border-color:var(--color-accent);background:var(--color-surface)}.gantt{min-width:60rem}.gantt th,.gantt td{white-space:nowrap}.gantt .timeline{width:48%;min-width:20rem;padding:0}.gantt .item-name{font-weight:var(--weight-regular);color:var(--color-ink)}.lane{position:relative;display:block;height:calc(var(--space) * 4)}.gantt thead .lane{height:calc(var(--space) * 5.5)}.month{position:absolute;bottom:0;padding-left:calc(var(--space) * .5);border-left:1px solid var(--color-line)}.marker{position:absolute;top:0;bottom:0;border-left:1px dashed var(--status-critical)}.marker.today{border-left:2px solid var(--color-ink)}.marker-label{position:absolute;top:0;padding-left:calc(var(--space) * .5);font-size:var(--size-caption);font-weight:var(--weight-regular);white-space:nowrap;color:var(--color-muted);border-left:1px dashed var(--status-critical)}.marker-key{display:inline-block;height:calc(var(--space) * 1.75);border-left:1px dashed var(--status-critical)}.marker-key.today{border-left:2px solid var(--color-ink)}.gantt-bar{position:absolute;top:calc(var(--space) * 1.25);height:calc(var(--space) * 1.5);min-width:4px;background:currentColor;border-radius:4px}.diamond{display:inline-block;width:10px;height:10px;background:var(--color-ink);transform:rotate(45deg)}.lane .diamond{position:absolute;top:calc(var(--space) * 1.4);margin-left:-5px}.capacity td.over{background:color-mix(in srgb,var(--status-critical) 10%,var(--color-paper))}.inputs input[type=text]{width:100%;min-width:12rem}.draggable .handle{color:var(--color-muted);cursor:grab}.draggable.dragging{opacity:.5}.notes p{margin:0;color:var(--color-muted)}.sankey-node{fill:currentColor}.sankey-link{fill:none;stroke:currentColor;stroke-opacity:.28}.sankey-link:hover{stroke-opacity:.5}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}@media(hover:hover){a:hover,.email:hover{text-decoration-thickness:2px}.button:not(.primary):not([aria-pressed=true]):hover,.chip:not([aria-pressed=true]):hover{background:var(--color-control-hover)}.segmented button:not([aria-checked=true]):hover,.tab:not([aria-selected=true]):hover{color:var(--color-ink)}}@media(max-width:600px){:root{--gutter:calc(var(--space) * 2)}main{padding-top:calc(var(--space) * 4)}h1{font-size:var(--size-display)}}