body.sl-locked,html.sl-locked{height:100%;overscroll-behavior:none}.sl-root,body.sl-locked,html.sl-locked{overflow:hidden;background:var(--sl-panel)}.sl-root{position:fixed;inset:0;color:var(--sl-text);font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.sl-canvas{display:block;width:100%;height:100%;cursor:crosshair}.sl-boot{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;background:var(--sl-panel);color:var(--sl-text);font:inherit;text-align:center;cursor:pointer;padding:2rem}.sl-boot-rig{font-size:clamp(2rem,8vw,4.5rem);letter-spacing:.24em;text-indent:.24em}.sl-boot-line{color:var(--sl-text-dim);font-size:.78rem;letter-spacing:.3em;text-indent:.3em}.sl-boot-go{margin-top:2.2rem;color:var(--sl-accent);font-size:.9rem;letter-spacing:.28em;text-indent:.28em;animation:sl-pulse 2.4s ease-in-out infinite}.sl-boot-hint{position:absolute;bottom:1.6rem;max-width:46rem;color:var(--sl-text-faint);font-size:.68rem;line-height:1.9;letter-spacing:.08em}@keyframes sl-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.sl-boot-go{animation:none;opacity:.9}}.sl-sheet{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--sl-scrim);padding:1rem;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;color:var(--sl-text)}.sl-sheet-inner{width:min(60rem,100%);max-height:88vh;display:flex;flex-direction:column;background:var(--sl-panel);border:1px solid var(--sl-panel-edge)}.sl-sheet header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--sl-panel-edge)}.sl-sheet h2{font-size:.9rem;font-weight:400;letter-spacing:.34em;text-indent:.34em}.sl-sheet header button{background:none;border:0;color:var(--sl-text-dim);font:inherit;cursor:pointer;padding:.25rem .5rem}.sl-sheet header button:hover{color:var(--sl-text)}.sl-body{overflow-y:auto;padding:1rem;font-size:.78rem;line-height:1.7}.sl-sub{margin-bottom:1rem}.sl-dim,.sl-sub{color:var(--sl-text-dim)}.sl-empty{padding:2rem 0}.sl-body h4,.sl-empty{color:var(--sl-text-faint)}.sl-body h4{margin:1rem 0 .35rem;font-size:.66rem;font-weight:400;letter-spacing:.28em}.sl-cols{display:grid;grid-template-columns:minmax(12rem,18rem) 1fr;grid-gap:1.25rem;gap:1.25rem;align-items:start}@media (max-width:46rem){.sl-cols{grid-template-columns:1fr}}.sl-list{max-height:56vh;overflow-y:auto}.sl-row{display:flex;width:100%;justify-content:space-between;gap:1rem;padding:.3rem .5rem;background:none;border:0;border-left:2px solid transparent;color:var(--sl-text-dim);font:inherit;text-align:left;cursor:pointer}.sl-row.is-on,.sl-row:hover{color:var(--sl-text);background:var(--sl-glass)}.sl-row.is-on{border-left-color:var(--sl-accent)}.sl-state{font-size:.62rem;letter-spacing:.16em}.sl-sighted{color:var(--sl-warn)}.sl-sampled{color:var(--sl-accent)}.sl-classified{color:var(--sl-ok)}.sl-card{border:1px solid var(--sl-panel-edge);padding:1rem;background:var(--sl-raise)}.sl-card h3{font-size:.95rem;font-weight:400;letter-spacing:.12em}.sl-facts li{padding-left:.9rem;text-indent:-.9rem}.sl-facts li:before{content:"· ";color:var(--sl-text-faint)}.sl-lead{color:var(--sl-warn)}.sl-name{display:block;margin-top:1rem;font-size:.62rem;letter-spacing:.24em;color:var(--sl-text-faint)}.sl-name input{display:block;width:100%;margin-top:.3rem;padding:.4rem .5rem;background:var(--sl-panel);border:1px solid var(--sl-panel-edge);color:var(--sl-text);font:inherit;font-size:.8rem;letter-spacing:.1em}.sl-inv{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.sl-chip{padding:.15rem .5rem;background:var(--sl-glass);border:1px solid var(--sl-glass-edge);font-size:.68rem;color:var(--sl-text-dim)}.sl-chip b{color:var(--sl-text);font-weight:400}.sl-recipes{display:grid;grid-gap:.75rem;gap:.75rem}.sl-recipes li{padding:.6rem .75rem;border:1px solid var(--sl-panel-edge);background:var(--sl-raise)}.sl-rec-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.sl-rec-head b{font-weight:400;letter-spacing:.1em}.sl-rec-head button{padding:.2rem .7rem;background:none;border:1px solid var(--sl-glass-edge);color:var(--sl-accent);font:inherit;font-size:.66rem;letter-spacing:.18em;cursor:pointer}.sl-rec-head button:disabled{color:var(--sl-text-faint);border-color:var(--sl-panel-edge);cursor:default}.sl-rec-head button:not(:disabled):hover{background:var(--sl-glass)}.sl-cost{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.66rem;margin-top:.25rem}.sl-cost .ok{color:var(--sl-text-dim)}.sl-cost .short{color:var(--sl-warn)}.sl-keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));grid-gap:.2rem 1.5rem;gap:.2rem 1.5rem}.sl-keys li{color:var(--sl-text-dim)}.sl-keys kbd{display:inline-block;min-width:1.5rem;padding:0 .35rem;margin-right:.4rem;border:1px solid var(--sl-panel-edge);color:var(--sl-text);font:inherit;font-size:.68rem;text-align:center}.sl-buttons{display:flex;gap:.6rem;margin-top:1.5rem}.sl-buttons button{padding:.4rem 1rem;background:none;border:1px solid var(--sl-glass-edge);color:var(--sl-accent);font:inherit;font-size:.7rem;letter-spacing:.2em;cursor:pointer}.sl-buttons button:hover{background:var(--sl-glass)}.sl-buttons .sl-danger{color:var(--sl-danger)}.sl-touch{display:none}@media (pointer:coarse){.sl-touch{display:block;position:absolute;inset:auto 0 0 0;height:11rem;pointer-events:none}.sl-stick{position:absolute;left:1.1rem;bottom:1.1rem;width:7.5rem;height:7.5rem;border:1px solid var(--sl-pad-edge);border-radius:50%;background:var(--sl-pad);pointer-events:auto;display:grid;place-items:center}.sl-stick span{width:2.6rem;height:2.6rem;border-radius:50%;background:var(--sl-pad-edge)}.sl-pads{position:absolute;right:1rem;bottom:1.1rem;display:grid;grid-template-columns:repeat(3,4.2rem);grid-gap:.4rem;gap:.4rem;pointer-events:auto}.sl-pads button{height:3rem;background:var(--sl-pad);border:1px solid var(--sl-pad-edge);color:var(--sl-text);font:inherit;font-size:.6rem;letter-spacing:.12em}.sl-boot-hint{display:none}}