/* Push, Stack and Cut · Luke Steuber. */
@font-face{font-family:PlexMono;src:url('./fonts/IBMPlexMono-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:PlexSans;src:url('./fonts/IBMPlexSans-400.woff2') format('woff2');font-weight:400;font-display:swap}
:root{color-scheme:light dark;--paper:#fafafa;--ink:#202020;--muted:#696969;--faint:#b3b3b3;--wash:#e7e7e7;--size:min(calc(100vw - 8px),calc(100svh - 148px),1100px)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#141414;--ink:#ededed;--muted:#aaa;--faint:#676767;--wash:#303030}}
:root[data-theme=dark]{--paper:#141414;--ink:#ededed;--muted:#aaa;--faint:#676767;--wash:#303030}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}body{font:400 1rem/1.5 PlexSans,sans-serif;height:100svh;display:grid;grid-template-rows:60px 1fr 76px;overflow:hidden}button,select{font:inherit;color:inherit;background:var(--paper);border:1px solid var(--faint);border-radius:4px;min-height:44px}button{cursor:pointer;touch-action:manipulation}button:focus-visible,select:focus-visible{outline:2px solid var(--ink);outline-offset:4px}button:disabled{cursor:default;opacity:.35}header{display:flex;align-items:center;justify-content:center}#readout{font:500 .75rem/1.5 PlexMono,monospace;letter-spacing:.1em;color:var(--muted)}main{display:grid;place-items:center;min-height:0;position:relative}.stage{position:relative;width:var(--size);height:var(--size);flex-shrink:0}.stage svg.scene{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:var(--ink)}svg .ink{fill:var(--ink)}svg .paper{fill:var(--paper)}svg .wash{fill:var(--wash)}svg .muted{fill:var(--muted)}svg .line{fill:none;stroke:var(--ink);stroke-width:1.5}svg .fine{fill:none;stroke:var(--faint);stroke-width:1}svg .guide{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 6}svg .heavy{stroke-width:3}svg .halo{fill:none;stroke:var(--ink);stroke-width:2;stroke-dasharray:2 4}svg .ghost{fill:var(--wash);stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 5}svg .balance{fill:var(--paper);stroke:var(--ink);stroke-width:2}svg .bad{stroke:var(--ink);stroke-width:3;stroke-dasharray:3 3}svg .removed{opacity:.16}svg .affected{fill:none;stroke:var(--ink);stroke-width:3;stroke-dasharray:5 5}svg .target{fill:none;stroke:var(--muted);stroke-width:2;stroke-dasharray:2 6}svg [data-object]{cursor:pointer}.choice{position:absolute;transform:translate(-50%,-50%);padding:0;width:44px;height:44px;min-height:44px;background:transparent;border:0;border-radius:50%;display:grid;place-items:center;z-index:2}.choice svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6}.choice:hover,.choice:focus-visible,.choice[data-preview=true]{background:var(--wash)}.choice[aria-disabled=true]{color:var(--faint)}.choice.refused{outline:2px dashed var(--ink);outline-offset:0}.stage[data-busy=true] .choice{cursor:wait}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px max(16px,calc((100vw - 760px)/2));gap:12px}.toolbar>div{display:flex;gap:8px}.icon{width:48px;height:48px;border:0;border-radius:50%;padding:12px;background:transparent}.icon svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6}.icon:hover{background:var(--wash)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.sheet{color:var(--ink);background:var(--paper);width:min(560px,calc(100vw - 24px));max-height:calc(100svh - 24px);border:1px solid var(--faint);border-radius:8px;padding:0;overflow:auto}.sheet::backdrop{background:rgb(0 0 0 / .35)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--wash)}h2{font-size:1.25rem;font-weight:400;margin:0}.sheet-body{padding:12px 20px 24px}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}.row select{max-width:70%;padding:4px 12px}.sheet p{margin:12px 0}.sheet footer{padding:12px 20px;border-top:1px solid var(--wash);font-size:.75rem;color:var(--muted)}.practice-stage{--size:min(100%,360px);width:min(100%,360px);height:auto;aspect-ratio:1;margin:8px auto}.practice-stage svg.scene{width:100%;height:100%}.practice-stage .choice{width:44px;height:44px}.practice-status{min-height:1.5em}.practice-controls{display:flex;gap:12px}.practice-controls button{padding:6px 16px}.recovery-note{font-size:.875rem;color:var(--muted)}
@media(max-height:520px) and (min-width:560px){:root{--size:min(calc(100svh - 24px),calc(100vw - 156px),1100px)}body{grid-template-columns:64px 1fr 80px;grid-template-rows:100svh}header{writing-mode:vertical-rl}.toolbar{flex-direction:column;justify-content:space-between;padding:16px 12px}.toolbar>div{flex-direction:column;gap:4px}.sheet{writing-mode:horizontal-tb}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
