@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}:root{--sky:#08080f;--panel:#e6e4de;--ink:#141414;--muted:#6e6b66;--accent:#ff5b1f;--rule:#141414;--font:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--top:calc(48px + env(safe-area-inset-top));--sheet-peek:40dvh;--sheet-full:90dvh;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--sky);color:#fff;height:100%;font-family:var(--font);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;overflow:hidden}#app,.app{height:100%}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{flex-direction:column;display:flex;position:relative}.topbar{z-index:10;height:var(--top);padding:env(safe-area-inset-top) max(6px, env(safe-area-inset-right)) 0 max(6px, env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#08080feb,#08080f99 70%,#08080f00);align-items:center;gap:2px;display:flex;position:absolute;inset:0 0 auto}.topbar>*{pointer-events:auto}.icon{background:0 0;border:0;border-radius:8px;flex:none;width:44px;height:44px;font-size:20px;line-height:1}.icon.play{font-size:16px}.icon.play.on{color:var(--accent)}.name,.name-input{text-align:left;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;flex:1;min-width:0;height:44px;padding:0 6px;font-size:13px;font-weight:600;overflow:hidden}.name-input{color:#fff;text-transform:none;font-family:var(--font);-webkit-user-select:text;user-select:text;background:#ffffff14;border-radius:6px}.unsaved{color:var(--accent)}.desktop-only{display:none}.field-wrap{flex:1;min-height:0;position:relative}.field{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.add{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));background:var(--accent);color:#000;border:0;border-radius:50%;width:56px;height:56px;font-size:30px;line-height:1;position:absolute;box-shadow:0 0 24px #ff5b1f73}.hint{z-index:5;background:var(--panel);width:220px;color:var(--ink);text-align:left;border:0;border-radius:8px;padding:10px 12px;font-size:13px;animation:.3s ease-out rise;position:absolute;box-shadow:0 6px 24px #00000080}.banner{left:50%;bottom:max(16px, env(safe-area-inset-bottom));background:var(--panel);width:min(100% - 32px,420px);color:var(--ink);border-radius:8px;align-items:center;gap:8px;padding:4px 4px 4px 14px;font-size:13px;font-weight:500;display:flex;position:absolute;transform:translate(-50%)}.banner span{flex:1}.banner button{width:44px;height:44px;color:var(--ink);background:0 0;border:0;font-size:16px}.toasts{left:50%;bottom:calc(max(16px, env(safe-area-inset-bottom)) + 68px);z-index:30;pointer-events:none;flex-direction:column;gap:6px;width:min(100% - 32px,420px);display:flex;position:absolute;transform:translate(-50%)}.has-sheet .toasts{bottom:calc(var(--sheet-peek) + 12px)}.toast{pointer-events:auto;background:#1c1b22;border:1px solid #ffffff1f;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;line-height:1.35;animation:.2s ease-out rise;display:flex}.toast span{flex:1}.toast button{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;background:0 0;border:0;min-height:32px;font-weight:600}.start{z-index:50;background:radial-gradient(circle at 50% 45%, #15142a 0%, var(--sky) 60%);border:0;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}.start-star{background:radial-gradient(circle,#fff 0% 8%,#ff8a3d 22%,#ff8a3d59 45%,#ff8a3d00 70%);border-radius:50%;width:120px;height:120px;animation:2.4s ease-in-out infinite pulse}.start-title{letter-spacing:.3em;font-size:20px;font-weight:600}.start-tap{letter-spacing:.12em;text-transform:uppercase;opacity:.7;font-size:13px}@keyframes pulse{0%,to{opacity:.85;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.start-star,.toast,.hint,.sheet{transition:none!important;animation:none!important}}.sheet{z-index:20;height:var(--sheet-peek);background:var(--panel);color:var(--ink);border-radius:16px 16px 0 0;flex-direction:column;transition:height .22s;animation:.2s ease-out rise;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 40px #0000008c}.sheet.full{height:var(--sheet-full)}.sheet-handle{touch-action:none;cursor:grab;flex:none;justify-content:center;align-items:center;height:24px;display:flex}.sheet-handle span{background:#1414144d;border-radius:2px;width:40px;height:4px}.sheet-close{width:44px;height:44px;color:var(--muted);background:0 0;border:0;font-size:16px;position:absolute;top:6px;right:6px}.sheet-body{overscroll-behavior:contain;padding:0 16px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.sheet-title{align-items:center;gap:8px;min-height:32px;padding-right:40px;display:flex}.sheet-title h2{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:20px;font-weight:600;line-height:1.2}.cable-sheet .sheet-title h2{font-size:15px}.sheet-title .dot{border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 0 1px #0003}.type-name{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.what,.try{margin:8px 0;font-size:14px;line-height:1.4}.try{color:var(--muted)}.try b{font-weight:600}.dim{color:var(--muted);font-size:12px}.tip{color:var(--muted);margin-top:16px;font-size:12px;line-height:1.4}h3.rule{border-top:1px solid var(--rule);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 4px;padding-top:8px;font-size:11px;font-weight:500}.knobs{grid-template-columns:repeat(3,1fr);gap:12px 8px;margin:14px 0 4px;display:grid}.knob{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.knob-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:500}.knob-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px;font-weight:600}.knob-dial{touch-action:none;cursor:ns-resize;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.knob-track{fill:none;stroke:#14141426;stroke-width:2.5px;stroke-linecap:round}.knob-fill{fill:none;stroke:var(--ink);stroke-width:2.5px;stroke-linecap:round}.knob-body{fill:var(--ink)}.knob-pointer{stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.switch-wrap{margin:12px 0 4px}.switch{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.switch button{border:1px solid var(--ink);letter-spacing:.04em;text-transform:uppercase;background:0 0;border-radius:4px;flex:1 1 0;min-width:52px;height:40px;padding:0 4px;font-size:12px;font-weight:500}.switch button.on{background:var(--ink);color:#fff}.port-row{border-bottom:1px solid #14141414;align-items:flex-start;gap:8px;min-height:44px;padding:4px 0;display:flex}.port-row .kind,.pick-row .kind{border-radius:50%;flex:none;width:10px;height:10px;margin-top:13px;box-shadow:0 0 0 1px #00000040}.port-name{text-transform:uppercase;letter-spacing:.04em;flex:none;width:72px;font-size:12px;font-weight:600;line-height:36px}.targets{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.link{text-align:left;min-height:36px;color:var(--ink);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.link.dim{color:var(--muted)}.button{border:1px solid var(--ink);letter-spacing:.04em;text-transform:uppercase;background:0 0;border-radius:4px;min-height:44px;padding:0 16px;font-size:13px;font-weight:600}.button.primary{background:var(--accent);border-color:var(--accent);color:#000}.button.danger{color:#b3261e;border-color:#b3261e;margin-top:20px}.row-buttons{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.hold-pad{background:var(--ink);color:#fff;letter-spacing:.2em;touch-action:none;border:0;border-radius:8px;width:100%;height:64px;margin:14px 0 0;font-weight:600}.hold-pad:active{background:var(--accent);color:#000}.steps{margin:12px 0 4px}.steps-bars{gap:4px;height:120px;display:flex}.step-bar{touch-action:none;cursor:ns-resize;background:#14141414;border-radius:3px;flex:1 1 0;min-width:34px;position:relative}.step-fill{background:var(--ink);border-radius:2px;min-height:2px;position:absolute;left:0;right:0}.step-bar.off .step-fill{background:#1414144d}.step-bar.unused{opacity:.35}.step-bar.current{box-shadow:inset 0 0 0 2px var(--accent)}.step-zero{background:#14141459;height:1px;position:absolute;left:0;right:0}.step-tip{background:var(--ink);color:#fff;white-space:nowrap;border-radius:3px;padding:2px 6px;font-size:12px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.steps-toggles{gap:4px;margin-top:6px;display:flex}.step-toggle{border:1px solid var(--ink);background:0 0;border-radius:3px;flex:1 1 0;min-width:34px;height:36px;font-size:11px}.step-toggle.on{background:var(--ink);color:#fff}.amount{align-items:center;gap:10px;margin:16px 0 8px;display:flex}.amount input{accent-color:var(--accent);flex:1;height:44px}.tiles{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.tile{text-align:left;border:1px solid var(--ink);background:0 0;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:16px 1fr;align-items:center;gap:2px 8px;min-height:72px;padding:10px;display:grid}.tile-star{border-radius:50%;width:12px;height:12px}.tile-name{text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.tile-what{color:var(--muted);grid-column:1/-1;font-size:11px;line-height:1.35}.pick-row{text-align:left;background:0 0;border:0;border-bottom:1px solid #1414141f;align-items:flex-start;gap:8px;width:100%;min-height:48px;padding:4px 0;display:flex}.pick-row .dim{line-height:36px}.lib-list{margin:8px 0 0;padding:0;list-style:none}.lib-row{border-bottom:1px solid #1414141f}.lib-row.current .lib-name:after{content:" ●";color:var(--accent)}.lib-main{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:72px;padding:8px 0;display:flex}.constellation{border-radius:6px;flex:none}.lib-text{flex-direction:column;gap:2px;min-width:0;display:flex}.lib-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.lib-actions{flex-wrap:wrap;gap:6px;padding:0 0 12px;display:flex}.lib-actions .button{padding:0 10px;font-size:12px}.lib-actions .button.danger{margin-top:0}.menu-item{text-align:left;background:0 0;border:0;border-bottom:1px solid #1414141f;justify-content:space-between;align-items:center;width:100%;min-height:52px;padding:0;font-size:15px;font-weight:500;display:flex}.setting{justify-content:space-between;align-items:center;gap:12px;min-height:52px;font-size:14px;display:flex}.setting input{width:24px;height:24px;accent-color:var(--accent)}.credits{padding-left:18px;font-size:13px;line-height:1.6}@media (min-width:900px){.app.has-sheet{padding-right:360px}.sheet,.sheet.full{border-radius:0;width:360px;height:100%;padding-top:8px;top:0;left:auto;box-shadow:-8px 0 40px #00000073}.sheet-handle{display:none}.has-sheet .topbar{right:360px}.has-sheet .toasts{bottom:24px}.desktop-only{display:block}.tiles{grid-template-columns:1fr 1fr}}
