@font-face{font-family:Saira;src:url(../../../fonts/Saira-Variable.ttf)format("truetype-variations");font-weight:100 900;font-stretch:50% 125%;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../../../fonts/IBMPlexMono-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../../../fonts/IBMPlexMono-SemiBold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Bungee;src:url(../../../fonts/Bungee-Regular.ttf);font-display:swap}@font-face{font-family:Alfa Slab One;src:url(../../../fonts/AlfaSlabOne-Regular.ttf);font-display:swap}@font-face{font-family:Archivo Black;src:url(../../../fonts/ArchivoBlack-Regular.ttf);font-display:swap}@font-face{font-family:Righteous;src:url(../../../fonts/Righteous-Regular.ttf);font-display:swap}:root{--bg0:#12100d;--bg1:#1a1713;--bg2:#221e19;--field:#0c0b09;--line:#ffffff14;--line2:#ffffff26;--fg0:#ebe5da;--fg1:#a89f90;--fg2:#6d675c;--amber:#ffa028;--amber-dim:#ffa02833;--amber-faint:#ffa02814;--green:#4cc46a;--red:#ff5d45;--red-dim:#ff5d4526;--yellow:#e8c14b;--gray:#8a8378;--teal:#43bfb4;--violet:#a583e8;--focus:0 0 0 2px var(--amber-dim), 0 0 0 1px var(--amber);--font-ui:"Saira", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--cond:87.5%;--top-bar-h:44px;--status-bar-h:24px;--radius:2px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg0);color:var(--fg0);font-family:var(--font-ui);font-stretch:var(--cond);-webkit-font-smoothing:antialiased;margin:0;font-size:12.5px;line-height:1.45;overflow:hidden}::selection{background:var(--amber-dim)}*{scrollbar-width:thin;scrollbar-color:#3a352d transparent}h1,h2,h3{margin:0;font-weight:600}button,input,select,textarea{font:inherit;color:inherit;font-stretch:inherit}.lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--fg1);font-size:11px;font-weight:600}.mono{font-family:var(--font-mono);font-stretch:100%}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-stretch:100%}.hr{border:0;border-top:1px solid var(--line);margin:8px 0}kbd{font-family:var(--font-mono);border:1px solid var(--line2);color:var(--fg1);background:var(--bg2);border-bottom-width:2px;border-radius:3px;padding:0 4px;font-size:10px}@keyframes pulse-slow{0%,to{opacity:1}50%{opacity:.35}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes bar-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.app{grid-template-rows:auto 1fr var(--status-bar-h);height:100%;display:grid}.topbar{background:var(--bg1);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:0 12px;display:flex}.wordmark{letter-spacing:.01em;-webkit-user-select:none;user-select:none;padding-right:4px;font-size:20px;font-weight:800;position:relative}.wordmark:after{content:"";background:var(--bg1);width:2px;box-shadow:0 0 0 .5px var(--amber-dim);position:absolute;top:-2px;bottom:-2px;left:58%;transform:rotate(12deg)}.tabs{gap:2px;display:flex}.tab{color:var(--fg1);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;display:flex}.tab:hover{background:var(--bg2);color:var(--fg0)}.tab.active{background:var(--bg2);color:var(--fg0);box-shadow:inset 0 -2px 0 var(--amber)}.tab:disabled{opacity:.35;cursor:default}.tab kbd{pointer-events:none}.topbar-sign{align-items:center;gap:8px;min-width:0;display:flex}.topbar-sign .name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.dirty-dot{background:var(--amber);border-radius:50%;flex:none;width:6px;height:6px}.topbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.demo-banner{background:var(--amber-dim);width:100%;color:var(--fg0);border-bottom:1px solid var(--amber);order:100;justify-content:center;align-items:center;gap:12px;padding:4px 12px;font-size:12px;display:flex}.demo-banner button{margin-left:auto}.compute-bar{top:var(--top-bar-h);pointer-events:none;z-index:50;height:2px;position:absolute;left:0;right:0;overflow:hidden}.compute-bar>div{background:var(--amber);width:25%;height:100%;animation:1s linear infinite bar-indeterminate}.gates{gap:4px;display:flex}.gate-chip{border:1px solid var(--line);background:var(--bg0);height:20px;color:var(--fg1);font-family:var(--font-mono);cursor:pointer;border-radius:10px;align-items:center;gap:5px;padding:0 7px;font-size:10px;display:flex}.gate-chip .dot{border-radius:50%;flex:none;width:7px;height:7px}.gate-chip.green .dot{background:var(--green)}.gate-chip.red{border-color:var(--red);color:var(--fg0);background:var(--red-dim)}.gate-chip.red .dot{background:var(--red)}.gate-chip.waived{border-color:var(--yellow)}.gate-chip.waived .dot{background:var(--yellow)}.gate-chip.waived{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.gate-chip.pending .dot{background:var(--gray);animation:2s infinite pulse-slow}.gate-chip:hover{border-color:var(--line2);color:var(--fg0)}.gate-pop{top:calc(var(--top-bar-h) - 6px);background:var(--bg2);border:1px solid var(--line2);z-index:100;border-radius:4px;width:380px;max-height:60vh;padding:12px;position:absolute;right:12px;overflow:auto;box-shadow:0 12px 32px #000a}.gate-pop h3{align-items:center;gap:8px;margin-bottom:4px;font-size:14px;display:flex}.gate-pop .msg{color:var(--fg1);margin-bottom:8px}.gate-pop .detail{font-family:var(--font-mono);color:var(--fg0);background:var(--field);border:1px solid var(--line);border-radius:var(--radius);white-space:pre-wrap;margin-bottom:6px;padding:8px;font-size:11px}.statusbar{background:var(--bg1);border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--fg1);align-items:center;gap:16px;padding:0 12px;font-size:10.5px;display:flex}.statusbar .toast{color:var(--fg0);margin:0 auto}.statusbar .toast.error{color:var(--red)}.statusbar .right{align-items:center;gap:12px;margin-left:auto;display:flex}.api-dot{border-radius:50%;width:7px;height:7px}.api-dot.ok{background:var(--green)}.api-dot.down{background:var(--red);animation:1.6s infinite pulse-slow}.btn{border:1px solid var(--line2);border-radius:var(--radius);background:var(--bg2);color:var(--fg0);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--fg2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--amber);border-color:var(--amber);color:#1a1206}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.danger{border-color:var(--red);color:var(--red);background:0 0}.btn.ghost{color:var(--fg1);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){color:var(--fg0);border-color:var(--line)}.btn.small{padding:2px 8px;font-size:11.5px}.btn:focus-visible{box-shadow:var(--focus);outline:none}.field{background:var(--field);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:4px;padding:3px 8px;display:flex}.field:focus-within{border-color:var(--amber)}.field input,.field select{color:var(--fg0);background:0 0;border:none;outline:none;width:100%;min-width:0;padding:0}.field input.num-input{font-family:var(--font-mono);text-align:right;font-size:12px;font-stretch:100%}.field .unit{color:var(--fg2);flex:none;font-size:10.5px}.field.invalid{border-color:var(--red);animation:.18s linear 2 shake}.field select{appearance:none;cursor:pointer}.form-row{justify-content:space-between;align-items:center;gap:8px;margin:5px 0;display:flex}.form-row>.lbl{flex:none}.form-row .field{flex:none;width:110px}.form-row .field.wide{width:160px}.form-row .pair{flex:auto;justify-content:flex-end;gap:4px;min-width:0;display:flex}.form-row .pair .field{flex:1 1 0;width:auto;min-width:0;max-width:110px}.panel{background:var(--bg1);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.panel.right{border-right:none;border-left:1px solid var(--line)}.panel-head{justify-content:space-between;align-items:center;gap:8px;padding:10px 12px 6px;display:flex}.panel-body{min-height:0;padding:4px 12px 12px;overflow-y:auto}.panel-section{margin-top:14px}.panel-section:first-child{margin-top:0}.library{height:100%;padding:28px 36px;overflow-y:auto}.library-head{align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.library-head h1{font-size:26px;font-weight:800}.library-head .count{color:var(--fg2);font-family:var(--font-mono);font-size:12px}.library-head .field{width:260px;margin-left:auto}.sign-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.sign-card{text-align:left;background:var(--bg1);border:1px solid var(--line);cursor:pointer;border-radius:4px;padding:0;transition:border-color .12s,background .12s,transform .12s;overflow:hidden}.sign-card:hover{background:var(--bg2);border-color:var(--amber-dim);transform:translateY(-1px)}.sign-card .thumb{aspect-ratio:16/10;background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 24px 24px, var(--field);color:var(--fg2);border-bottom:1px solid var(--line);justify-content:center;align-items:center;display:flex}.sign-card .thumb img{object-fit:contain;width:100%;height:100%}.sign-card .meta{padding:9px 11px}.sign-card .meta .name{font-size:13.5px;font-weight:600}.sign-card .meta .slug{font-family:var(--font-mono);color:var(--fg2);font-size:10.5px}.sign-card .foot{color:var(--fg1);align-items:center;gap:6px;padding:0 11px 9px;font-size:11px;display:flex}.sign-card .foot .gate-dot{border-radius:50%;width:8px;height:8px}.empty-state{border:2px dashed var(--line2);text-align:center;color:var(--fg1);border-radius:6px;padding:64px 24px;font-size:14px}.empty-state .big{color:var(--fg0);margin-bottom:6px;font-size:18px;font-weight:600}.dialog-backdrop{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--bg1);border:1px solid var(--line2);border-radius:6px;width:440px;max-width:90vw;max-height:85vh;padding:20px;overflow-y:auto;box-shadow:0 24px 64px #000c}.dialog h2{margin-bottom:12px;font-size:18px}.dialog .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.save-pop{top:calc(var(--top-bar-h) - 6px);background:var(--bg2);border:1px solid var(--line2);z-index:100;border-radius:4px;width:320px;padding:12px;position:absolute;right:12px;box-shadow:0 12px 32px #000a}.screen-3col{height:100%;min-height:0;display:grid}.canvas-wrap{background:var(--field);min-width:0;position:relative;overflow:hidden}.canvas-wrap svg{cursor:crosshair;display:block}.canvas-hud{pointer-events:none;font-family:var(--font-mono);color:var(--fg2);align-items:center;gap:8px;font-size:10.5px;display:flex;position:absolute;top:8px;left:10px}.help-dialog{background:var(--bg1);color:var(--fg0);border:1px solid var(--line2);border-radius:6px;width:min(960px,92vw);max-width:min(960px,92vw);height:88vh;max-height:88vh;padding:0;overflow:hidden;box-shadow:0 24px 64px #000c}.help-dialog::backdrop{background:#000a}.help-chrome{flex-direction:column;height:100%;min-height:0;display:flex}.help-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px 10px;display:flex}.help-head h2{margin:0;font-size:16px;font-weight:700}.help-tabs{border-bottom:1px solid var(--line);gap:2px;padding:0 12px;display:flex}.help-tab{appearance:none;color:var(--fg1);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:8px 12px;font-size:12.5px;font-weight:600}.help-tab:hover{color:var(--fg0);background:var(--bg2)}.help-tab.active{color:var(--fg0);border-bottom-color:var(--amber)}.help-tab:focus-visible{box-shadow:var(--focus);outline:none}.help-panel{min-height:0;padding:18px 22px 32px;overflow-y:auto}.help-panel:focus-visible{box-shadow:inset 0 0 0 2px var(--amber-dim);outline:none}.help-article{max-width:760px;color:var(--fg0);margin:0 auto;font-size:13.5px;line-height:1.6}.help-article h1{margin:0 0 12px;font-size:24px;font-weight:800}.help-article h2{border-bottom:1px solid var(--line);margin:26px 0 10px;padding-bottom:4px;scroll-margin-top:12px;font-size:19px;font-weight:700}.help-article h3{margin:20px 0 8px;scroll-margin-top:12px;font-size:15.5px;font-weight:700}.help-article h4{color:var(--fg1);margin:16px 0 6px;scroll-margin-top:12px;font-size:13.5px;font-weight:700}.help-article p{margin:0 0 12px}.help-article ul,.help-article ol{margin:0 0 12px;padding-left:22px}.help-article li{margin:3px 0}.help-article li>input[type=checkbox]{margin-right:6px}.help-article a{color:var(--amber);text-underline-offset:2px;text-decoration:underline}.help-article a:hover{filter:brightness(1.1)}.help-article code{font-family:var(--font-mono);background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:1px 5px;font-size:12px}.help-article pre{font-family:var(--font-mono);background:var(--field);border:1px solid var(--line);border-radius:4px;margin:0 0 14px;padding:12px 14px;font-size:12px;overflow-x:auto}.help-article pre code{background:0 0;border:none;padding:0}.help-article blockquote{border-left:3px solid var(--amber);background:var(--amber-faint);color:var(--fg1);border-radius:0 4px 4px 0;margin:0 0 14px;padding:8px 14px}.help-article blockquote p:last-child{margin-bottom:0}.help-article table{border-collapse:collapse;width:100%;margin:0 0 14px;font-size:12.5px}.help-article th,.help-article td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 10px}.help-article thead th{background:var(--bg2);color:var(--fg0);font-weight:700}.help-article tbody tr:nth-child(2n){background:var(--bg0)}.help-article hr{border:0;border-top:1px solid var(--line);margin:18px 0}.help-article img{border:1px solid var(--line);border-radius:4px;max-width:100%;height:auto}@media (width<=700px){.topbar{grid-template-rows:38px 38px;grid-template-columns:auto minmax(0,1fr) auto;gap:0 8px;padding:0 8px;display:grid;overflow:hidden}.wordmark{grid-area:1/1;font-size:17px}.topbar-sign{grid-area:1/2;min-width:0}.topbar-right{z-index:2;grid-area:1/3;gap:4px;position:relative}.topbar-right .btn{padding-inline:7px}.topbar>nav.tabs{overscroll-behavior-inline:contain;grid-area:2/1/auto/-1;width:100%;overflow-x:auto}.topbar>nav.tabs .tab{flex:none}.screen-3col{grid-template-columns:minmax(0,1fr)!important;overflow:auto!important}.screen-3col>.panel,.screen-3col>main,.screen-3col>aside{min-height:min(55vh,520px)}.screen-3col>.canvas-wrap{min-height:55vh}.library{padding:12px}.library-head{flex-wrap:wrap}.library-head .field{order:10;width:100%!important}.sign-grid{grid-template-columns:1fr}.help-center{width:96vw;max-height:90vh;overflow:auto}}
