:root{--ink:#fff;--ink-mid:#ffffff94;--ink-dim:#ffffff61;--ink-faint:#fff3;--hair:#ffffff21;--font-mono:ui-monospace, "Cascadia Mono", "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--gutter:clamp(1rem, 3vw, 2.4rem);--pad-t:calc(var(--gutter) + env(safe-area-inset-top,0px));--pad-r:calc(var(--gutter) + env(safe-area-inset-right,0px));--pad-b:calc(var(--gutter) + env(safe-area-inset-bottom,0px));--pad-l:calc(var(--gutter) + env(safe-area-inset-left,0px));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%}body{color:var(--ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;background:#000;margin:0;font-size:14px;overflow:hidden}#stage{width:100%;height:100dvh;position:fixed;top:0;left:0}#lattice{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}#lattice:active{cursor:grabbing}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin:0;font-size:.56rem}.panel{z-index:2;pointer-events:none;position:absolute}.panel>*{pointer-events:auto}.dock{display:contents}.masthead{top:var(--pad-t);left:var(--pad-l);right:var(--pad-r);align-items:baseline;gap:.7rem;display:flex}.masthead .mark{color:var(--ink-mid);font-size:.8rem}.masthead b{letter-spacing:.2em;text-transform:uppercase;font-size:.78rem;font-weight:600}.masthead .sub{color:var(--ink-dim);font-size:.68rem}.masthead .back{border:1px solid var(--hair);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-left:.4rem;padding:.2rem .5rem;font-size:.6rem;text-decoration:none;transition:color .14s,border-color .14s}.masthead .back:focus-visible{color:var(--ink);border-color:var(--ink-faint)}.ledger{top:var(--pad-t);right:var(--pad-r);text-align:right;justify-items:stretch;gap:1.15rem;max-width:min(23rem,44vw);display:grid}.ledger>section{pointer-events:none}.ledger>section>*{pointer-events:auto}.rule .law{letter-spacing:.04em;color:var(--ink);margin:.5rem 0 0;font-size:.86rem}.rule .gloss{color:var(--ink-dim);margin:.45rem 0 0;font-size:.66rem;line-height:1.6}.maths .optics{border-top:1px solid var(--hair);text-align:left;gap:.24rem;margin:.55rem 0 0;padding:.55rem 0 0;display:grid}.count.optic{grid-template-columns:3.5rem 1fr 4.3rem;gap:.5rem;font-size:.64rem}.count.optic .formula{color:var(--ink-dim);font-size:.64rem}.count.optic .value{color:var(--ink-mid);white-space:nowrap;font-size:.66rem}.legend{border-top:1px solid var(--hair);text-align:left;gap:.26rem;margin:.6rem 0 0;padding:.55rem 0 0;font-size:.62rem;list-style:none;display:grid}.key{grid-template-columns:.55rem 3.6rem 1fr;align-items:center;gap:.5rem;display:grid}.key.is-off{display:none}.swatch{border-radius:50%;width:.55rem;height:.55rem}.key-code{color:var(--ink-mid);letter-spacing:.06em}.key-text{color:var(--ink-dim)}.readout{left:var(--pad-l);bottom:var(--pad-b);min-width:min(21rem,78vw)}.readout .title{letter-spacing:.1em;margin:.5rem 0 0;font-size:clamp(1.1rem,2.6vw,1.5rem);font-weight:500;line-height:1.15}.readout .title .sep{color:var(--ink-faint);margin:0 .4em}#g-label{color:var(--ink-mid)}.readout .note{color:var(--ink-dim);margin:.4rem 0 0;font-size:.68rem}.counts{border-top:1px solid var(--hair);gap:.28rem;margin:1rem 0 0;padding:.7rem 0 0;display:grid}.count{grid-template-columns:4.6rem 1fr 2.6rem;align-items:baseline;gap:.6rem;font-size:.7rem;transition:opacity .2s;display:grid}.count dt,.count dd{margin:0}.count dt{color:var(--ink-mid)}.count .formula{color:var(--ink-faint);font-size:.64rem}.count .value{text-align:right;color:var(--ink);font-size:.82rem}.count.is-empty{opacity:.3}.rail{right:var(--pad-r);bottom:var(--pad-b);gap:.4rem;display:flex}.tick{appearance:none;cursor:pointer;font:inherit;color:var(--ink-faint);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:0;border-radius:0;justify-items:center;gap:.35rem;padding:.4rem .1rem 0;transition:color .16s;display:grid}.tick:focus-visible{color:var(--ink)}.tick-bar{background:var(--hair);width:clamp(1.6rem,4vw,2.6rem);height:2px;display:block;overflow:hidden}.tick-bar i{transform-origin:0;background:currentColor;width:100%;height:100%;display:block;transform:scaleX(0)}.tick-n{letter-spacing:.08em;font-size:.6rem}.tick.is-reached{color:var(--ink-mid)}.tick.is-active{color:var(--ink)}.controls{right:var(--pad-r);bottom:calc(var(--pad-b) + 3.2rem);color:var(--ink-faint);letter-spacing:.06em;align-items:center;gap:.9rem;font-size:.6rem;display:flex}.ctl{appearance:none;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:0;border-radius:0;align-items:center;gap:.3rem;margin:0;padding:0;transition:color .16s,border-color .16s;display:inline-flex}.ctl kbd{font:inherit;border:1px solid var(--hair);color:var(--ink-dim);padding:.1rem .32rem}.ctl-i{display:none}.ctl:focus-visible{color:var(--ink);outline:1px solid var(--ink-faint);outline-offset:3px}.ctl-hint{color:var(--ink-faint)}body.is-paused .ctl[data-act=pause],body.is-held .ctl[data-act=hold]{color:var(--ink)}@media (hover:hover){.masthead .back:hover{color:var(--ink);border-color:var(--ink-faint)}.tick:hover,.ctl:hover{color:var(--ink)}}@media (pointer:coarse){.panel{-webkit-user-select:none;user-select:none}}@media (pointer:coarse),(width<=620px){.tick{align-content:center;min-height:2.75rem;padding:.7rem .3rem .5rem}.tick-bar{height:3px}.tick-n{font-size:.72rem}.ctl kbd{display:none}.ctl-i{font-size:.95rem;line-height:1;display:inline}.ctl{border:1px solid var(--hair);min-width:2.75rem;min-height:2.75rem;color:var(--ink-mid);justify-content:center;padding:0 .7rem}.ctl-t{font-size:.68rem}body.is-paused .ctl[data-act=pause],body.is-held .ctl[data-act=hold]{border-color:var(--ink-faint)}}@media (width<=900px){.masthead .back{margin-left:auto}.ledger{top:calc(var(--pad-t) + 2.2rem);left:var(--pad-l);right:var(--pad-r);text-align:left;gap:.55rem;max-width:none}.rule .gloss,.maths .eyebrow,.maths .optics{display:none}.legend{border-top:0;flex-wrap:wrap;gap:.3rem .9rem;margin:0;padding:0;display:flex}.key{grid-template-columns:.5rem auto;gap:.35rem}.key-text{display:none}}@media (width<=620px){body{font-size:15px}.masthead .sub{display:none}}@media (width<=900px) and (orientation:portrait){.dock{left:var(--pad-l);right:var(--pad-r);bottom:var(--pad-b);z-index:2;pointer-events:none;gap:.8rem;display:grid;position:absolute}.dock .panel{position:static;inset:auto}.readout .eyebrow{display:none}.readout .title{letter-spacing:.06em;margin:0;font-size:clamp(1rem,4.2vw,1.15rem)}.readout .note{font-size:.74rem}.counts{grid-template-columns:1fr 1fr;gap:.3rem 1.2rem;margin:.7rem 0 0}.count{grid-template-columns:1fr auto;font-size:.78rem}.count .formula{display:none}.count .value{font-size:.86rem}.rail{grid-auto-columns:1fr;grid-auto-flow:column;gap:.45rem;display:grid}.tick-bar{width:100%}.controls{flex-wrap:wrap;gap:.45rem}.ctl[data-act=pause],.ctl[data-act=hold]{flex:auto}.ctl[data-act=restart] .ctl-t,.ctl[data-act=prev] .ctl-t,.ctl[data-act=next] .ctl-t{display:none}.ctl-hint{text-align:center;flex:1 0 100%;order:-1;font-size:.62rem}}@media (width<=900px) and (orientation:landscape){.readout{min-width:min(19rem,46vw)}.controls{flex-wrap:wrap;justify-content:flex-end;row-gap:.45rem;max-width:52vw}.counts{margin:.6rem 0 0;padding:.5rem 0 0}.count{grid-template-columns:4.6rem 1fr}.count .formula,.ctl-hint{display:none}}@media (height<=520px){.ledger{display:none}.readout,.rail,.controls{text-shadow:0 0 .4rem #000,0 0 .9rem #000,0 0 1.4rem #000}.readout .eyebrow{display:none}.readout .title{margin:0}.counts{margin:.5rem 0 0;padding:.45rem 0 0}}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important}}
