:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#eef0f4;--surface:#fff;--surface-2:#f6f7fa;--stage:#e3e7ee;--stage-line:#cdd4e0;--line:#d8dce5;--line-soft:#e6e9ef;--text:#1a1f2b;--text-dim:#5c6779;--text-faint:#8e97a8;--accent:#b9702a;--accent-soft:#b9702a1f;--accent-line:#b9702a61;--ok:#2f7d5c;--warn:#9a6b12;--bad:#b33a3a;--ok-bg:#2f7d5c1a;--warn-bg:#9a6b121f;--bad-bg:#b33a3a1a;--shadow:0 1px 2px #141a260f, 0 8px 24px #141a260f;--sel:#b9702a29;--neon:#cf0;--neon-glow:#ccff008c;--neon-edge:#141a268c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#12151c;--surface:#1a1f29;--surface-2:#212734;--stage:#232a38;--stage-line:#333c4d;--line:#2c3442;--line-soft:#232a36;--text:#e7eaf1;--text-dim:#9aa4b6;--text-faint:#6c778a;--accent:#e5a45a;--accent-soft:#e5a45a24;--accent-line:#e5a45a6b;--ok:#63b48d;--warn:#d9ac5a;--bad:#e27272;--ok-bg:#63b48d1f;--warn-bg:#d9ac5a1f;--bad-bg:#e272721f;--shadow:0 1px 2px #0006, 0 8px 24px #0000004d;--sel:#e5a45a2e;--neon-edge:#e7eaf159}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#12151c;--surface:#1a1f29;--surface-2:#212734;--stage:#232a38;--stage-line:#333c4d;--line:#2c3442;--line-soft:#232a36;--text:#e7eaf1;--text-dim:#9aa4b6;--text-faint:#6c778a;--accent:#e5a45a;--accent-soft:#e5a45a24;--accent-line:#e5a45a6b;--ok:#63b48d;--warn:#d9ac5a;--bad:#e27272;--ok-bg:#63b48d1f;--warn-bg:#d9ac5a1f;--bad-bg:#e272721f;--shadow:0 1px 2px #0006, 0 8px 24px #0000004d;--sel:#e5a45a2e;--neon-edge:#e7eaf159}*{box-sizing:border-box}html,body{height:100%}body{background:var(--ground);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,Roboto,Helvetica Neue,Arial,sans-serif;font-size:13px;line-height:1.5}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.gate{place-items:center;min-height:100dvh;padding:24px;display:grid}.gate-card{background:var(--surface);border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);border-radius:14px;padding:32px 28px}.gate-card h1{letter-spacing:-.01em;margin:0 0 4px;font-family:Archivo,IBM Plex Sans KR,sans-serif;font-size:1.4rem}.gate-card p{color:var(--text-dim);margin:0 0 20px}.app-links-note{color:var(--text-faint);margin:14px 0 8px;font-size:.76rem}.app-links{flex-wrap:wrap;gap:8px;display:flex}.app-link-btn{border:1px solid var(--line);background:var(--surface-2);height:32px;color:var(--text-dim);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.8rem;font-weight:600;display:inline-flex}.app-link-btn:hover,.app-link-btn:focus-visible{border-color:var(--accent-line);color:var(--text)}.app-link-btn img,.app-link-btn svg{flex-shrink:0;width:16px;height:16px;display:block}.code-input{letter-spacing:.18em;text-align:center;text-transform:uppercase;background:var(--surface-2);border:1px solid var(--line);width:100%;color:var(--text);border-radius:10px;padding:14px 16px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.5rem}.demo-card{background:var(--accent-soft);border:1px dashed var(--accent-line);border-radius:12px;margin-top:20px;padding:16px}.demo-eyebrow{background:var(--accent);color:#fff;letter-spacing:.12em;border-radius:999px;margin-bottom:8px;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-block}.demo-card h2{letter-spacing:-.01em;color:var(--text);margin:0 0 6px;font-size:.98rem;font-weight:700}.demo-card p{color:var(--text-dim);margin:0;font-size:.86rem;line-height:1.5}.demo-open{background:var(--surface);border:1px solid var(--accent-line);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;margin:12px 0 10px;padding:11px 14px;transition:border-color .12s,transform .12s;display:flex}.demo-open:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.demo-open:disabled{opacity:.5;cursor:not-allowed}.demo-open .demo-code{letter-spacing:.14em;color:var(--text);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem}.demo-open .demo-go{color:var(--accent);white-space:nowrap;font-size:.84rem;font-weight:600}.demo-note{color:var(--text-faint)!important;font-size:.8rem!important}.demo-note strong{color:var(--text-dim)}.demo-chip{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent);font-family:inherit}.gate-note{border-top:1px solid var(--line-soft);color:var(--text-faint);margin-top:18px;padding-top:16px;font-size:.85rem}.err{background:var(--bad-bg);color:var(--bad);border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:.9rem}.editor{grid-template-rows:auto 1fr auto;height:100dvh;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 16px;display:flex}.topbar .title{letter-spacing:-.01em;font-family:Archivo,IBM Plex Sans KR,sans-serif;font-weight:600}.topbar .spacer{flex:1}.topbar .lbl{color:var(--text-faint);white-space:nowrap;font-size:.75rem}.panes{background:var(--line);grid-template-columns:224px minmax(420px,1fr) 260px;gap:1px;min-height:0;display:grid;overflow-x:auto}.pane{background:var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.pane-head{border-bottom:1px solid var(--line-soft);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:8px;padding:8px 10px;font-size:.78rem;font-weight:600;display:flex}.pane-body{flex:1;min-height:0;padding:6px;overflow:auto}.btn{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 10px;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent-line)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.sm{padding:4px 7px;font-size:.82rem}.btn.icon{padding:6px 9px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.btn.icon svg{fill:currentColor;display:block}.btn.icon svg.stroke{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.btn.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.rate-group{gap:4px;display:flex}.rate-btn{align-items:center;gap:2px;display:inline-flex}.rate-btn svg{fill:currentColor;flex-shrink:0;display:block}.phase-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;width:100%;margin-bottom:3px;padding:6px 8px;display:flex}.phase-item:hover{background:var(--surface-2)}.phase-item.on{background:var(--accent-soft);border-color:var(--accent-line)}.phase-item.drop{border-color:var(--accent);border-style:dashed}.phase-item .ord{width:20px;color:var(--text-faint);font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.phase-item .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.phase-item .stm{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;color:var(--text-dim);font-variant-numeric:tabular-nums;border-radius:5px;flex:none;align-items:center;gap:3px;padding:1px 5px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;transition:border-color .12s,color .12s;display:inline-flex}.phase-item .stm:hover:not(:disabled){border-color:var(--accent-line);color:var(--accent)}.phase-item .stm.bad{color:var(--bad);font-weight:600}.phase-item .phase-menu{width:20px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:5px;flex:none;padding:2px 0}.phase-item .phase-menu:hover:not(:disabled){background:var(--line-soft);color:var(--text)}.phase-item .inline{background:var(--surface);border:1px solid var(--accent-line);min-width:0;color:var(--text);font:inherit;border-radius:6px;flex:1;padding:2px 6px}.phase-item .inline.stm-edit{flex:none;width:62px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.phase-tools{border-top:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:4px;padding:7px 8px;display:flex}.phase-tools .hint{color:var(--text-faint);margin-left:auto;font-size:.72rem}.phase-pop{z-index:40;background:var(--surface);border:1px solid var(--line);min-width:200px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:4px;display:flex;position:fixed}.phase-pop button{text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 10px}.phase-pop button:hover:not(:disabled){background:var(--surface-2)}.phase-pop button:disabled{opacity:.4;cursor:not-allowed}.phase-pop button.danger{color:var(--bad)}.phase-pop .sep{background:var(--line-soft);height:1px;margin:3px 0}.stage-pane-body{flex-direction:column;flex:1;gap:7px;min-height:0;padding:12px;display:flex;overflow:auto}.stage-wrap{flex-direction:column;gap:6px;min-height:0;display:flex}.stage-box{background:var(--stage);border:1px solid var(--stage-line);touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;border-radius:8px;flex:none;width:100%;min-width:380px;position:relative;overflow:hidden;container-type:size}.stage-grid{pointer-events:none;position:absolute;inset:0}.node{will-change:transform;color:#fff;cursor:grab;border-radius:50%;place-items:center;font-weight:600;display:grid;position:absolute;top:0;left:0;box-shadow:0 1px 3px #00000040}.node.inactive{opacity:.32}.node.sel{box-shadow:0 0 0 2px var(--neon), 0 0 0 3.5px var(--neon-edge), 0 0 10px var(--neon-glow)}.node .label{white-space:nowrap;color:var(--text-dim);pointer-events:none;font-size:10px;line-height:1;position:absolute;top:calc(100% + 2px)}.readout{color:var(--text-faint);font-variant-numeric:tabular-nums;margin:0;font-size:.75rem}.marquee{background:var(--sel);border:1px solid var(--accent-line);pointer-events:none;position:absolute}.audience{cursor:pointer;text-align:center;letter-spacing:.22em;text-transform:uppercase;width:100%;color:var(--accent);background:0 0;border:none;padding:2px 0;font-size:.75rem;display:block}.toolbars{border-bottom:1px solid var(--line-soft);flex-direction:column;gap:7px;padding:8px 10px;display:flex}.stage-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stage-head .stage-title{letter-spacing:-.01em;font-weight:600}.stage-head .spacer{flex:1}.chip{background:var(--surface-2);border:1px solid var(--line);color:var(--text-dim);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 8px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem}input[type=range]{accent-color:var(--accent)}.count{border:1px solid var(--line);color:var(--text-faint);white-space:nowrap;background:0 0;border-radius:999px;padding:2px 9px;font-size:.82rem}.count.on{background:var(--neon);border-color:var(--neon-edge);color:#141413;font-weight:700}.lbl.scope{border:1px dashed var(--line);border-radius:999px;padding:2px 8px}.pop{position:relative}.pop-body{z-index:20;background:var(--surface);border:1px solid var(--line);min-width:150px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.pop-body button{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 10px}.pop-body button:hover{background:var(--surface-2)}.tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tool-group{border-right:1px solid var(--line-soft);align-items:center;gap:4px;padding-right:8px;display:flex}.tool-group:last-child{border-right:none}.tool-group .lbl{color:var(--text-faint);white-space:nowrap;margin-right:2px;font-size:.72rem}.member-row{cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:4px 7px;display:flex}.member-row:hover{background:var(--surface-2)}.member-row.on{background:var(--accent-soft)}.member-row .dot{border-radius:50%;flex:none;width:12px;height:12px}.member-row .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.member-row.off .nm{color:var(--text-faint);text-decoration:line-through}.member-row .ord{text-align:right;width:16px;color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem}.member-row .timing{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:4px;margin-left:auto;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;display:inline-flex}.member-row .timing .arrow{opacity:.5}.member-row .timing button,.member-row .timing-edit{flex:none}.member-row .timing .lbl:not(:first-child){margin-left:6px}.member-row .timing button{background:var(--surface-2);border:1px solid var(--line);color:var(--text-dim);font:inherit;cursor:pointer;border-radius:5px;align-items:center;gap:3px;padding:1px 5px;transition:border-color .12s,color .12s;display:inline-flex}.member-row .timing button:hover:not(:disabled){border-color:var(--accent-line);color:var(--accent)}.member-row .timing .tag,.phase-item .stm .tag{opacity:.55;font-size:.85em;font-weight:700}.member-row .timing-edit{background:var(--surface);border:1px solid var(--accent-line);width:46px;color:var(--text);font:inherit;border-radius:5px;padding:0 3px}.member-row .timing .bad,.field input.bad{color:var(--bad);font-weight:600}.field input.bad{border-color:var(--bad)}.field input[type=color].swatch{cursor:pointer;flex:none;width:30px;padding:2px}.pane-foot{border-top:1px solid var(--line-soft);padding:8px}.pane-foot .hint{color:var(--text-faint);margin:6px 0 0;font-size:.78rem;line-height:1.4}.onstage{cursor:pointer;width:28px;height:26px;color:var(--text-faint);background:0 0;border:none;border-radius:7px;flex:none;place-items:center;padding:0;transition:color .12s,background .12s;display:grid}.onstage svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round}.onstage.on{color:var(--accent)}.onstage.on svg circle{fill:currentColor}.onstage:hover:not(:disabled){background:var(--surface-2)}.onstage:disabled{opacity:.4;cursor:not-allowed}.field{align-items:center;gap:5px;margin-bottom:5px;display:flex}.field label{width:52px;color:var(--text-dim);flex:none;font-size:.8rem}.field input,.field select{background:var(--surface-2);border:1px solid var(--line);min-width:0;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;border-radius:6px;flex:1;padding:4px 7px}.playbar{background:var(--surface);border-top:1px solid var(--line);align-items:center;gap:12px;padding:10px 16px;display:flex}.playbar input[type=range]{accent-color:var(--accent);flex:1}.playbar .time{color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right;min-width:88px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.findings{border-top:1px solid var(--line);background:var(--surface)}.findings-head{align-items:center;gap:8px;padding:8px 16px;display:flex}.findings-head .spacer{flex:1}.findings-head .chip.ok{border-color:var(--ok);color:var(--ok)}.findings-head .chip.warn{border-color:var(--warn);color:var(--warn)}.findings-head .chip.bad{border-color:var(--bad);color:var(--bad)}.findings-list{flex-direction:column;gap:3px;max-height:168px;padding:0 16px 12px;display:flex;overflow-y:auto}.finding{border-radius:6px;align-items:baseline;gap:9px;padding:5px 9px;font-size:.8rem;display:flex}.finding .where{min-width:96px;color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;flex:none;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;overflow:hidden}.finding.bad{background:var(--bad-bg);color:var(--bad)}.finding.warn{background:var(--warn-bg);color:var(--warn)}.finding.ok{background:var(--ok-bg);color:var(--ok)}.flash{background:var(--text);color:var(--surface);box-shadow:var(--shadow);z-index:50;border-radius:999px;padding:9px 16px;font-size:.86rem;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.dialog-back{z-index:60;background:#0a0d1473;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--line);width:min(400px,100%);box-shadow:var(--shadow);border-radius:12px;padding:20px}.dialog h2{margin:0 0 8px;font-size:1.05rem}.dialog p{color:var(--text-dim);margin:0 0 16px}.dialog .row{justify-content:flex-end;gap:8px;display:flex}
