:root{--ink:#1b1f24;--ink-soft:#5b6470;--rule:#d9d4c8;--paper:#f7f5f0;--paper-sunk:#efece4;--dark:#0f1319;--accent:#1f6f9c;--fits:#1d6b3f;--misses:#9c3b1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--dark);color:var(--ink)}.app{height:100%;display:flex}.stage{background:var(--dark);flex:auto;min-width:0;position:relative}.stage canvas{display:block}.panel{background:var(--paper);border-left:1px solid var(--rule);flex:0 0 25rem;padding:0 1.25rem 3rem;overflow-y:auto}.masthead{z-index:1;background:var(--paper);border-bottom:1px solid var(--rule);padding:1.25rem 0 .75rem;position:sticky;top:0}.masthead h1{letter-spacing:.02em;margin:0;font-size:1.4rem}.masthead p{color:var(--ink-soft);margin:.35rem 0 0;line-height:1.45}.block{border-bottom:1px solid var(--rule);padding:1rem 0}.block h2{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft);margin:0 0 .6rem;font-size:.82rem}.field{display:block}.field+.field,.toggles+.field{margin-top:.85rem}.field-label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft);justify-content:space-between;align-items:baseline;margin-bottom:.35rem;font-size:.82rem;display:flex}.field-label output{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0;color:var(--ink);font-size:.95rem}select,input[type=range]{width:100%}select{border:1px solid var(--rule);color:inherit;font:inherit;background:#fff;border-radius:3px;padding:.35rem .4rem}.note{color:var(--ink-soft);margin:.5rem 0 0;font-size:.85rem;line-height:1.5}.toggles{margin:0;padding:0;list-style:none}.toggles li+li{margin-top:.3rem}.toggles label{cursor:pointer;align-items:center;gap:.45rem;display:flex}button.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.failure{background:var(--paper);border-radius:4px;max-width:34rem;margin:15vh auto;padding:1.5rem;line-height:1.5}.failure code{background:var(--paper-sunk);border-radius:2px;padding:.05rem .25rem}@media (width<=60rem){.app{flex-direction:column}.stage{flex:0 0 55vh}.panel{border-left:0;border-top:1px solid var(--rule);flex:auto}}.group+.group{margin-top:1.1rem}.group h3{color:var(--ink-soft);margin:0 0 .4rem;font-size:.85rem;font-weight:600}ul.claims{margin:0;padding:0;list-style:none}button.claim{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;grid-template-columns:2rem 1fr auto;grid-template-areas:"id title title""id residual fit";gap:.1rem .5rem;padding:.4rem .5rem;display:grid}button.claim:hover{background:var(--paper-sunk)}button.claim.is-selected{border-color:var(--rule);background:#fff}.claim-id{font-variant-numeric:tabular-nums;color:var(--ink-soft);grid-area:id;align-self:start}.claim-title{grid-area:title}.claim-residual{font-variant-numeric:tabular-nums;color:var(--ink-soft);grid-area:residual;font-size:.85rem}.chip{letter-spacing:.03em;white-space:nowrap;border-radius:999px;grid-area:fit;place-self:center end;padding:.05rem .4rem;font-size:.74rem}.chip-fits{color:var(--fits);background:#e2f0e6}.chip-misses{color:var(--misses);background:#f6e3dc}.chip-pending{background:var(--paper-sunk);color:var(--ink-soft)}.detail{border:1px solid var(--rule);background:#fff;border-radius:3px;margin-top:1.1rem;padding:.9rem}.detail h3{margin:0 0 .4rem;font-size:1rem;line-height:1.35}.detail h3 .chip{vertical-align:.1em;margin-left:.3rem;display:inline-block}.detail h4{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft);margin:1rem 0 .35rem;font-size:.78rem}.warning{color:var(--misses);background:#f6e3dc;border-radius:3px;margin:.5rem 0;padding:.5rem .6rem;line-height:1.45}.note.pending{font-style:italic}ul.comparisons,ul.plain,ul.inputs{margin:.4rem 0 0;padding:0;list-style:none}ul.plain li,ul.inputs li{margin-bottom:.3rem;line-height:1.45}.comparison{border-top:1px solid var(--rule);padding:.55rem 0}.comparison-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.comparison-head .chip{grid-area:auto}.formula{background:var(--paper-sunk);white-space:pre;border-radius:2px;margin:.3rem 0;padding:.25rem .35rem;font-size:.78rem;display:block;overflow-x:auto}.comparison dl{grid-template-columns:repeat(3,1fr);gap:.35rem;margin:0;display:grid}.comparison dt{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);font-size:.72rem}.comparison dd{font-variant-numeric:tabular-nums;margin:.1rem 0 0}ul.inputs li{grid-template-columns:1fr auto;gap:0 .5rem;font-size:.82rem;display:grid}ul.inputs code{font-size:.78rem}ul.inputs .value{font-variant-numeric:tabular-nums;text-align:right}ul.inputs .note{grid-column:1/-1;margin:0;font-size:.76rem}.ghosts code{font-size:.78rem}.swatch{vertical-align:baseline;border-radius:2px;width:.65rem;height:.65rem;margin-right:.35rem;display:inline-block}.subhead{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft);margin:.9rem 0 .35rem;font-size:.78rem}ul.transits{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}button.transit{border:1px solid var(--rule);color:inherit;font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:.15rem .45rem;font-size:.82rem}button.transit:hover{background:var(--paper-sunk)}ul.rays{font-size:.85rem}ul.rays code{font-size:.78rem}ul.rays li{line-height:1.5}.tour h2{justify-content:space-between;align-items:baseline;display:flex}.tour h2 span{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0;color:var(--ink)}.tour h3{margin:0 0 .3rem;font-size:1rem;line-height:1.35}.tour-buttons{align-items:baseline;gap:.4rem;margin:.75rem 0 0;display:flex}.tour-buttons .link{margin-left:auto}button.step{border:1px solid var(--rule);color:inherit;font:inherit;cursor:pointer;background:#fff;border-radius:3px;padding:.25rem .75rem}button.step:hover:not(:disabled){background:var(--paper-sunk)}button.step:disabled{color:var(--ink-soft);cursor:default}button.step.is-primary{border-color:var(--accent);background:var(--accent);color:var(--paper)}button.step.is-primary:hover{background:#1a5e85}
