@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink-0:#0e1113;--ink-1:#14181b;--ink-2:#1a1f23;--ink-3:#232a2f;--rule:#262e33;--rule-strong:#34404a;--text:#e6e8e3;--text-2:#a3aca9;--text-3:#6d7875;--accent:#f08a24;--accent-soft:#f08a2424;--accent-ink:#1b0e02;--steel:#9eb1b9;--line:#c9d2d0;--fill:#171d20;--warn:#e2c35a;--bad:#ef5a4c;--impure:#e0745f;--normal:#d9b55a;--pure:#7cc68b;--grid-minor:#a0b6be0e;--grid-major:#a0b6be26;--grid-axis:#a0b6be47;--font-ui:"Berkeley Mono Variable", "Berkeley Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-num:var(--font-ui);--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--gap:8px;--bar-h:44px;--rail-w:220px;--side-w:300px;--focus:0 0 0 2px var(--ink-0), 0 0 0 3.5px var(--accent);--shadow:0 8px 28px #00000073;--glass:#12161999;--glass-dense:#161b1ed6;--glass-edge:#e6ece91a;--glass-blur:blur(20px) saturate(1.5);--glass-shadow:0 20px 50px #00000073, inset 0 1px 0 #ffffff0d}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior:none}body{background:var(--ink-0);color:var(--text);font:400 var(--fs-md)/1.4 var(--font-ui);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,input,select{font:inherit;color:inherit}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:.94em}.dim{color:var(--text-3)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mobile-only{display:none!important}:focus-visible{box-shadow:var(--focus);outline:none}button,input,select,textarea{border-radius:0}input[type=checkbox]{appearance:none;border:1px solid var(--rule-strong);background:var(--ink-0);cursor:pointer;flex:none;place-content:center;width:14px;height:14px;margin:0;display:inline-grid}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";border:solid var(--accent-ink);border-width:0 2px 2px 0;width:4px;height:8px;margin-top:-2px;transform:rotate(45deg)}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{grid-template-columns:var(--rail-w) minmax(0, 1fr) var(--side-w);grid-template-rows:var(--bar-h) minmax(0, 1fr);grid-template-areas:"bar bar bar""rail stage side";height:100dvh;display:grid;overflow:hidden}.topbar{grid-area:bar}.rail{grid-area:rail}.stage{background:var(--ink-0);grid-area:stage;position:relative;overflow:hidden}.side{grid-area:side}.topbar{background:var(--ink-1);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;padding:0 10px 0 14px;display:flex}.brand{min-width:0;color:var(--text);align-items:center;gap:10px;display:flex}.brand-mark{flex:none;display:block}.brand-name{letter-spacing:.01em;white-space:nowrap;font-weight:600}.plan-name{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;border-left:1px solid var(--rule);padding-left:10px;overflow:hidden}.bar-actions{align-items:center;gap:2px;display:flex}.rail,.side{background:var(--ink-1);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent;overflow-y:auto}.rail{border-right:1px solid var(--rule)}.side{border-left:1px solid var(--rule)}.btn{border:1px solid var(--rule-strong);background:var(--ink-3);height:30px;color:var(--text);cursor:pointer;white-space:nowrap;font-size:var(--fs-sm);border-radius:0;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.btn:hover:not(:disabled){background:#2a3237}.btn:disabled{opacity:.35;cursor:default}.btn-quiet{color:var(--text-2);background:0 0;border-color:#0000}.btn-quiet:hover:not(:disabled){background:var(--ink-2);color:var(--text)}.btn-icon{width:30px;color:var(--text-2);background:0 0;border-color:#0000;padding:0}.btn-icon:hover:not(:disabled){background:var(--ink-2);color:var(--text)}.btn-icon.sm{width:26px;height:26px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:500}.btn-danger{color:#f3a39b}.btn-danger:hover:not(:disabled){background:#ef5a4c24;border-color:#ef5a4c80}.icon{flex:none;display:block}.flip{display:inline-block;transform:scaleX(-1)}.seg{background:var(--ink-0);border:1px solid var(--rule);border-radius:0;gap:2px;padding:2px;display:flex}.seg button{min-width:0;height:24px;color:var(--text-2);cursor:pointer;font-size:var(--fs-xs);font-family:var(--font-num);text-transform:none;background:0 0;border:0;border-radius:0;flex:1;padding:0 4px}.seg button:hover{color:var(--text);background:var(--ink-2)}.seg button.on{background:var(--ink-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--rule-strong)}.seg button.on:focus-visible{box-shadow:var(--focus)}.numfield{border:1px solid var(--rule-strong);background:var(--ink-0);border-radius:0;align-items:center;height:26px;display:inline-flex}.numfield input{width:100%;min-width:0;height:100%;font-family:var(--font-num);font-size:var(--fs-sm);background:0 0;border:0;padding:0 6px}.numfield input:focus{outline:none}.numfield:focus-within{border-color:var(--accent)}.numfield .suffix{color:var(--text-3);font-size:var(--fs-xs);padding-right:6px}.textfield,.select{border:1px solid var(--rule-strong);background:var(--ink-0);width:100%;height:28px;font-size:var(--fs-sm);border-radius:0;padding:0 8px}.textfield:focus,.select:focus{border-color:var(--accent);outline:none}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%);background-position:calc(100% - 13px) 12px,calc(100% - 9px) 12px;background-repeat:no-repeat;background-size:4px 4px;padding-right:24px}.palette{padding:10px 8px 16px}.pal-group+.pal-group{margin-top:12px}.pal-group h4,.sect h3{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;margin:0 6px 6px;font-weight:500}.pal-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:0;grid-template-rows:auto auto;grid-template-columns:34px 1fr;align-items:center;column-gap:10px;width:100%;padding:5px 6px;display:grid}.pal-item:hover{background:var(--ink-2)}.pal-item.on{background:var(--accent-soft);border-color:#f08a2480}.pal-item .thumb{grid-row:span 2}.pal-name{font-size:var(--fs-md);line-height:1.2}.pal-dim{color:var(--text-3);font-size:var(--fs-xs)}.pal-settings{border-top:1px solid var(--rule);padding:12px 6px 0}.pal-settings h4{margin:10px 0 6px}.pal-settings h4:first-child{margin-top:0}.hint{color:var(--text-3);font-size:var(--fs-xs);margin:6px 0 0;line-height:1.45}.thumb .body{fill:var(--fill);stroke:var(--line);stroke-width:.45px}.thumb .body.planner{fill:none;stroke-dasharray:.6 .5}.thumb .detail{fill:none;stroke:var(--line);stroke-width:.3px;opacity:.75}.thumb .nose{fill:none;stroke:var(--accent);stroke-width:.45px}.zoom{z-index:2;border:1px solid var(--rule);background:#14181beb;border-radius:0;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;bottom:12px;right:12px}.zoom-k{min-width:76px;height:30px;color:var(--text-2);font-size:var(--fs-xs);background:0 0;border-color:#0000}.modechip{z-index:3;background:var(--ink-2);max-width:calc(100% - 400px);color:var(--text);font-size:var(--fs-sm);box-shadow:var(--shadow);border:1px solid #f08a248c;border-radius:999px;align-items:center;gap:10px;padding:6px 6px 6px 12px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.modechip>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.modechip button{background:var(--ink-3);height:24px;color:var(--text-2);cursor:pointer;font-size:var(--fs-xs);border:0;border-radius:999px;align-items:center;gap:4px;padding:0 8px;display:flex}.toast{z-index:4;background:var(--ink-3);border:1px solid var(--rule-strong);max-width:min(560px,100% - 32px);box-shadow:var(--shadow);font-size:var(--fs-sm);border-radius:0;align-items:flex-start;gap:10px;padding:9px 10px 9px 14px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.toast.error{border-color:#ef5a4cb3}.toast.error:before{content:"";background:var(--bad);border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.toast button{width:22px;height:22px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:0;flex:none;place-items:center;display:grid}.inspector{padding:14px 14px 24px}.insp-head h2{font-size:var(--fs-lg);letter-spacing:.005em;margin:0;font-weight:600}.insp-sub{color:var(--text-2);font-size:var(--fs-sm);margin-top:3px}.sect{border-top:1px solid var(--rule);margin-top:16px;padding-top:12px}.sect header{justify-content:space-between;align-items:baseline;display:flex}.sect h3{margin:0 0 8px}.legend{color:var(--text-3);font-size:var(--fs-xs)}.row{justify-content:space-between;align-items:center;gap:10px;min-height:30px;display:flex}.row .k{color:var(--text-2);font-size:var(--fs-sm);align-items:center;gap:6px;display:inline-flex}.row .v{text-align:right;font-size:var(--fs-sm)}.row .v .textfield{width:150px}.row .v .select.compact{width:150px;height:26px}.pair{align-items:center;gap:6px;display:inline-flex}.recipe-line{font-size:var(--fs-xs);color:var(--text-2);margin:8px 0 0;line-height:1.5}.ports-line{font-size:var(--fs-xs);color:var(--text-2);margin:0}.warn-t{color:var(--warn)}.flow{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.flow th{text-align:left;color:var(--text);padding:4px 0;font-weight:400}.flow td{text-align:right;width:52px;color:var(--text-2);padding:4px 0 4px 10px}.flow td:last-child{color:var(--text)}.io{width:26px;font:500 9.5px/15px var(--font-num);text-transform:uppercase;text-align:center;vertical-align:1px;border-radius:0;margin-right:6px;display:inline-block}.io.in{color:var(--steel);background:#9eb1b91f}.io.out{color:var(--accent);background:var(--accent-soft)}.util{background:var(--ink-3);border-radius:0;height:3px;margin:8px 0 4px;overflow:hidden}.util>div{background:var(--steel);height:100%}.util.over>div{background:var(--warn)}.issues{flex-direction:column;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:flex}.issues li{font-size:var(--fs-sm);color:var(--text);gap:8px;line-height:1.4;display:flex}.issues .dot{background:var(--warn);border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.issues li.error .dot{background:var(--bad)}.issues.clickable{margin-top:0}.issues.clickable button{cursor:pointer;text-align:left;width:100%;font-size:var(--fs-sm);background:0 0;border:0;border-radius:0;gap:8px;margin:0 -6px;padding:4px 6px;display:flex}.issues.clickable button:hover{background:var(--ink-2)}.insp-actions{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.source{color:var(--text-3);font-size:var(--fs-xs);margin-top:14px;text-decoration:none;display:block}.source:hover{color:var(--text-2);text-decoration:underline}.linkish{color:var(--text);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);text-underline-offset:3px;font-size:inherit;background:0 0;border:0;padding:0}.linkish:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.sect>.btn{margin-top:8px}.menu-wrap{position:relative}.menu{z-index:10;background:var(--ink-2);border:1px solid var(--rule-strong);min-width:236px;box-shadow:var(--shadow);border-radius:0;padding:4px;position:absolute;top:calc(100% + 6px);right:0}.menu button{text-align:left;cursor:pointer;width:100%;font-size:var(--fs-sm);background:0 0;border:0;border-radius:0;padding:7px 10px;display:block}.menu button:hover{background:var(--ink-3)}.menu hr{border:0;border-top:1px solid var(--rule);margin:4px 0}.menu-note{color:var(--text-3);font-size:var(--fs-xs);margin:4px 10px 6px}.about{border:1px solid var(--rule-strong);background:var(--ink-1);width:min(620px,100vw - 24px);max-height:calc(100dvh - 48px);color:var(--text);box-shadow:var(--shadow);border-radius:0;padding:0}.about::backdrop{background:#05070899}.about-body{padding:18px 22px 22px}.about header{justify-content:space-between;align-items:center;display:flex}.about h2{font-size:var(--fs-lg);margin:0;font-weight:600}.about h3{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;margin:18px 0 8px;font-weight:500}.about p,.about li{color:var(--text-2);font-size:var(--fs-sm);line-height:1.55}.about p{margin:0}.about ul{margin:0;padding-left:18px}.about a{color:var(--text)}.keys{gap:4px;margin:0;display:grid}.keys div{font-size:var(--fs-sm);grid-template-columns:1fr 1fr;gap:12px;display:grid}.keys dt{color:var(--text);font-family:var(--font-num);font-size:var(--fs-xs);padding-top:1px}.keys dd{color:var(--text-2);margin:0}.canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.grid .minor{stroke:var(--grid-minor);stroke-width:1px}.grid .major{stroke:var(--grid-major);stroke-width:1px}.grid .axis{stroke:var(--grid-axis);stroke-width:1px}.world *{vector-effect:non-scaling-stroke}.world text{vector-effect:none;font-family:var(--font-ui)}.machine .body{fill:var(--fill);stroke:var(--line);stroke-width:1.25px}.machine .detail{fill:none;stroke:var(--line);stroke-width:1px;opacity:.7}.machine .detail.faint{opacity:.35}.machine .nose{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.machine [data-machine]{cursor:move}.machine:hover .body{stroke:#fff}.machine.sel .body{stroke:var(--accent);stroke-width:2px;fill:#21231f}.machine.planner .body{fill:#f08a240f;stroke:var(--accent);stroke-dasharray:3 2}.machine.bad .body{stroke:var(--bad)}.thumb-icon{object-fit:contain}.insp-icon{vertical-align:-7px;margin-right:8px}.mtip-head{align-items:center;gap:8px;display:flex}.mtip-row .num{align-items:center;gap:5px;display:inline-flex}.flow-legend img{flex:none}.m-icon{pointer-events:none}.m-icon rect{fill:var(--fill);stroke:none}.machine.sel .m-icon rect{fill:#21231f}.m-title{fill:var(--text);paint-order:stroke;stroke:var(--fill);stroke-linejoin:round;pointer-events:none;font-weight:500}.machine.sel .m-title,.machine.sel .m-sub{stroke:#21231f}.m-sub{fill:var(--text-2);paint-order:stroke;stroke:var(--fill);stroke-linejoin:round;pointer-events:none;font-family:var(--font-num)!important}.m-sub.low{fill:var(--warn)}.m-corner{font-family:var(--font-num);paint-order:stroke;stroke:var(--fill);stroke-linejoin:round;pointer-events:none}.machine.sel .m-corner{stroke:#21231f}.m-clock{fill:var(--text-2)}.m-purity{font-weight:500}.m-purity.impure{fill:var(--impure)}.m-purity.normal{fill:var(--normal)}.m-purity.pure{fill:var(--pure)}.m-side{fill:var(--text-2);paint-order:stroke;stroke:var(--ink-0);stroke-linejoin:round;pointer-events:none}.m-side .num{fill:var(--text-3);font-family:var(--font-num)}.m-badge{pointer-events:none;stroke:var(--ink-0);stroke-width:1.5px}.m-badge.warn{fill:var(--warn)}.m-badge.bad{fill:var(--bad)}.port-mark{pointer-events:none}.port-mark path{stroke-width:1.25px;stroke-linejoin:round}.port-mark.in path{fill:none;stroke:var(--steel)}.port-mark.out path{fill:var(--accent);stroke:var(--accent)}.port-mark.busy.in path{stroke:var(--text-2)}.port-hit{fill:#0000;cursor:crosshair}.port:hover .port-hit,.port.hover .port-hit{fill:#f08a242e}.port.valid .port-hit{fill:#f08a2429;stroke:var(--accent);stroke-width:1.25px}.port.valid.hover .port-hit{fill:#f08a2466}.port.invalid{opacity:.3}.port.from .port-hit{fill:#f08a2473;stroke:var(--accent)}.belt .band{fill:none;stroke:#9eb1b917;stroke-linejoin:miter;vector-effect:none}.belt .center{fill:none;stroke:var(--steel);stroke-width:1.25px;opacity:.85;stroke-linejoin:round}.belt .chev{fill:none;stroke:var(--steel);stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round;opacity:.8}.belt .hit{fill:none;stroke:#0000;vector-effect:none;cursor:pointer;pointer-events:stroke}.belt.idle .center,.belt.idle .chev{opacity:.35}.belt.warn .center,.belt.warn .chev{stroke:var(--warn)}.belt.bad .center{stroke:var(--bad);stroke-dasharray:5 4}.belt.bad .chev{stroke:var(--bad)}.belt:hover .center{opacity:1;stroke-width:1.75px}.belt.sel .center,.belt.sel .chev{stroke:var(--accent);opacity:1;stroke-width:2px}.belt.sel .band{stroke:#f08a241f}.belt.flow .band{stroke:color-mix(in srgb, var(--item,var(--steel)) 16%, transparent)}.belt.flow .center{stroke:var(--item,var(--steel));opacity:.55}.belt.flow .stream{fill:none;stroke:var(--item,var(--steel));stroke-width:2.25px;stroke-linecap:round;stroke-dasharray:2 10;pointer-events:none;animation:linear infinite belt-stream}.belt-icon circle{fill:var(--ink-1);stroke:var(--item,var(--steel));stroke-width:1.25px}.belt.flow.sel .center,.belt.flow.sel .stream{stroke:var(--accent)}.belt.flow.bad .stream{stroke:var(--bad)}@keyframes belt-stream{0%{stroke-dashoffset:12px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.belt.flow .stream{stroke-dasharray:none;stroke-width:1.75px;animation:none}}.rot-handles circle{fill:#0000;stroke:none;pointer-events:all;vector-effect:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M6 15a7 7 0 1 0 2-8.5' fill='none' stroke='white' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M6 15a7 7 0 1 0 2-8.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M4 4.5l4 2-2.5 3.5z' fill='black' stroke='white' stroke-width='1'/%3E%3C/svg%3E") 12 12,alias}.belt-label{fill:var(--text-2);paint-order:stroke;stroke:var(--ink-0);stroke-linejoin:round;pointer-events:none;font-family:var(--font-num)!important}.belt.sel .belt-label{fill:var(--accent)}.belt.warn .belt-label{fill:var(--warn)}.lift rect{fill:var(--ink-1);stroke:var(--steel);stroke-width:1.25px}.lift .arrow{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.lift[data-lift]{cursor:move}.lift.through rect{fill:none;stroke-dasharray:2 2;opacity:.6}.lift.sel rect{stroke:var(--accent);stroke-width:2px}.lift-label{fill:var(--text-2);paint-order:stroke;stroke:var(--ink-0);stroke-linejoin:round;pointer-events:none}.ghost rect{fill:none;stroke-width:1px}.ghost.below rect{stroke:#9eb1b952;stroke-dasharray:4 3}.ghost.above rect{stroke:#f08a2447;stroke-dasharray:1 3}.bounds rect{fill:none;stroke:#c9d2d038;stroke-dasharray:6 5}.bounds text{fill:var(--text-3);font-family:var(--font-num)!important}.dims path{fill:none;stroke:var(--accent);stroke-width:1px}.dims text{fill:var(--accent);paint-order:stroke;stroke:var(--ink-0);stroke-linejoin:round;font-family:var(--font-num)!important}.dims .dim-h{fill:var(--text-2)}.place-ghost{opacity:.75;pointer-events:none}.place-ghost .body{fill:#f08a2414;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3}.place-ghost.bad .body{stroke:var(--bad);fill:#ef5a4c1a}.place-ghost .detail{fill:none;stroke:var(--accent);stroke-width:1px;opacity:.5}.place-ghost .nose{fill:none;stroke:var(--accent);stroke-width:1.5px}.place-ghost .port-mark.in path{stroke:var(--steel)}.rubber{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:5 4;pointer-events:none}.scalebar path{fill:none;stroke:var(--text-2);stroke-width:1px}.scalebar text{fill:var(--text-2);font:11px var(--font-num)}.marquee{fill:#f08a2412;stroke:var(--accent)}.group-box rect{fill:none;stroke:var(--accent);opacity:.8}.group-box text{fill:var(--accent);paint-order:stroke;stroke:var(--ink-0);stroke-linejoin:round;font-family:var(--font-num)!important}.multi-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.multi-list li{justify-content:space-between;align-items:baseline;display:flex}.viewmenu{z-index:3;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:56px;right:12px}.viewbtn{border:1px solid var(--rule);width:36px;height:36px}.viewbtns{gap:4px;display:flex}.viewbtn[aria-expanded=true]{color:var(--accent)}.viewbtn.on,.viewbtn.on:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.viewpop{border:1px solid var(--rule-strong);flex-direction:column;gap:10px;width:300px;padding:12px;display:flex}.viewpop-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.viewpop-k{color:var(--text-2);font-size:var(--fs-sm);align-items:center;gap:8px;display:inline-flex}.viewpop-k kbd{border:1px solid var(--rule-strong);color:var(--text-3);font:inherit;padding:0 5px;font-size:10px;line-height:16px}.flow-legend{font-size:var(--fs-xs);color:var(--text-2);border-top:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 12px;max-height:40dvh;margin:0;padding:8px 0 0;list-style:none;display:grid;overflow-y:auto}.flow-legend li{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.flow-legend .swatch{border-radius:0;flex:none;width:10px;height:3px}p.flow-legend{display:block}.viewpop .seg button{font-size:var(--fs-xs);white-space:nowrap;flex:none;padding:0 9px}.mtip{z-index:4;pointer-events:none;background:var(--ink-2);border:1px solid var(--rule-strong);min-width:170px;max-width:260px;box-shadow:var(--shadow);font-size:var(--fs-sm);border-radius:0;flex-direction:column;gap:3px;padding:8px 10px;display:flex;position:absolute}.mtip-head{margin-bottom:2px;font-weight:600}.mtip-row{color:var(--text-2);justify-content:space-between;gap:12px;display:flex}.mtip-row .num{color:var(--text);text-align:right}.mtip-est{border-top:1px solid var(--rule);color:var(--text-2);font-size:var(--fs-xs);margin-top:3px;padding-top:5px}.mtip-est.low{color:var(--warn)}.landing{background:linear-gradient(var(--grid-minor) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px) 0 0 / 24px 24px, var(--ink-0);min-height:100dvh;overflow-y:auto}html:has(.landing){overscroll-behavior-y:auto}html:has(.landing) body{overscroll-behavior-y:auto}.landing-bar{height:var(--bar-h);border-bottom:1px solid var(--rule);background:var(--ink-1);align-items:center;padding:0 16px;display:flex}.landing-main{max-width:1040px;margin:0 auto;padding:64px 20px 80px}.landing-hero{max-width:620px}.landing-icon{filter:drop-shadow(0 14px 22px #00000080);margin:0 0 24px -6px;display:block}.landing-hero h1{letter-spacing:-.01em;margin:0 0 12px;font-size:clamp(26px,4.4vw,38px);font-weight:600;line-height:1.15}.landing-hero p{color:var(--text-2);font-size:var(--fs-lg);margin:0 0 24px;line-height:1.5}.btn.lg{height:40px;font-size:var(--fs-md);padding:0 18px}.landing-templates{margin-top:56px}.landing-templates h2{font-size:var(--fs-sm);color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;font-weight:500}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tpl{text-align:left;background:var(--ink-1);border:1px solid var(--rule);cursor:pointer;border-radius:0;flex-direction:column;align-items:flex-start;gap:4px;width:100%;height:100%;padding:10px 10px 14px;transition:border-color .12s,background .12s;display:flex}.tpl:hover{border-color:var(--accent);background:var(--ink-2)}.tpl-map{aspect-ratio:16/9;background:var(--ink-0);border-radius:0;width:100%;height:auto;margin-bottom:8px}.tpl-floor rect{fill:var(--fill);stroke:var(--line);stroke-width:.8px}.tpl-floor.f1 rect{stroke:var(--steel);opacity:.75}.tpl-floor.f2 rect{stroke:var(--accent);opacity:.75}.tpl-empty{fill:none;stroke:var(--rule-strong);stroke-dasharray:3 3}.tpl-name{font-weight:600;font-size:var(--fs-lg)}.tpl-meta{color:var(--accent);font-size:var(--fs-xs)}.tpl-blurb{color:var(--text-2);font-size:var(--fs-sm);line-height:1.45}.landing-note{color:var(--text-3);font-size:var(--fs-sm);margin-top:14px}.brand-home{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.rail-tabs{z-index:2;background:var(--ink-1);border-bottom:1px solid var(--rule);flex-direction:column;gap:8px;padding:8px 10px 6px;display:flex;position:sticky;top:0}.rail-tabs .progress{width:100%}.rail-tabs .progress-chip{border:1px solid var(--rule-strong);background:var(--ink-0);width:100%;height:32px;color:var(--text);font-size:var(--fs-sm);justify-content:flex-start;gap:8px;padding:0 10px}.rail-tabs .progress-chip .icon:last-child{color:var(--text-3);margin-left:auto}.rail-tabs .progress-chip.own:after{top:4px;right:4px}.rail-tabs .seg{width:100%}.rail-tabs .seg button{flex:1}.pal-head.static{cursor:default}.bp-item .pal-dim{white-space:normal}.bp-thumb{width:34px;height:34px;color:var(--text-3);place-items:center;display:grid}.bp-mine{position:relative}.bp-mine .bp-tools,.bp-mine .bp-confirm{gap:2px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.bp-mine .bp-tools{opacity:0;transition:opacity .12s}.bp-mine:hover .bp-tools,.bp-mine:focus-within .bp-tools{opacity:1}.bp-mine .pal-item{padding-right:64px}.bp-edit{padding:4px 10px}.bp-edit .textfield,.bp-save .textfield{width:100%}.bp-save{border-bottom:1px solid var(--rule);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.bp-save>.btn{justify-content:center}.bp-save-row{gap:6px;display:flex}.bp-save-row .btn{flex:1;justify-content:center}.stamp-ghost .place-ghost{opacity:.6}@media (hover:none){.bp-mine .bp-tools{opacity:1}}@media (width>=861px){.app.side-hidden{grid-template-columns:var(--rail-w) minmax(0, 1fr) 0}.app.side-hidden .side{display:none}}.desktop-only{display:inline-flex}.btn-icon.on{color:var(--text)}@media (width<=860px){:root{--bar-h:48px}.mobile-only{display:inline-flex!important}.desktop-only{display:none!important}.app{grid-template-columns:1fr;grid-template-areas:"bar""stage"}.brand-name{display:none}.plan-name{border-left:0;padding-left:0}.rail,.side{z-index:20;border:0;border-top:1px solid var(--rule-strong);max-height:62dvh;box-shadow:var(--shadow);padding-bottom:env(safe-area-inset-bottom);border-radius:0;transition:transform .18s ease-out;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%)}.sheet-build .rail,.sheet-inspect .side,.side.has-sel{transform:none}.sheet-build .side.has-sel{transform:translateY(105%)}.sheet-head{z-index:1;background:var(--ink-1);justify-content:space-between;align-items:center;padding:6px 6px 0 14px;font-weight:600;position:sticky;top:0;display:flex!important}.side.has-sel{max-height:46dvh}.bar-actions .btn span{display:none}.bar-actions .btn{padding:0 9px}.plan-name{max-width:34vw}.bar-actions{gap:0}}@media (width<=440px){.plan-name{display:none}.zoom{bottom:8px;right:8px}.viewmenu{bottom:52px;right:8px}.viewpop{width:min(300px,100vw - 24px)}.modechip{max-width:calc(100% - 180px);left:auto;right:8px;transform:none}.btn,.btn-icon{height:36px}.btn-icon{width:36px}.pal-group{grid-template-columns:1fr 1fr;gap:2px;display:grid}.pal-group h4{grid-column:1/-1}.pal-settings{display:block}}.floor-title{align-items:center;gap:4px;margin:-4px -6px 0;display:flex;position:relative}.floor-title-input{min-width:0;height:32px;color:var(--text);font:600 var(--fs-lg) var(--font-ui);background:0 0;border:1px solid #0000;flex:1;padding:0 6px}.floor-title-input:hover{border-color:var(--rule)}.floor-title-input:focus{border-color:var(--accent);background:var(--ink-0);outline:none}.floor-menu{min-width:200px;top:calc(100% + 4px);right:0}.floor-menu button.on{color:var(--accent)}.m-tag{pointer-events:none}.tag-red{--tag:#e5604f}.tag-orange{--tag:#f08a24}.tag-yellow{--tag:#e2c35a}.tag-green{--tag:#6fc48a}.tag-blue{--tag:#5aa9e6}.tag-purple{--tag:#a98be8}.m-tag{fill:var(--tag)}.machine[class*=tag-]:not(.sel) .body{stroke:var(--tag)}:root{--pipe:#64a6d2;--pipe-band:#64a6d226}.pal-find{z-index:1;background:var(--ink-1);color:var(--text-3);align-items:center;gap:6px;margin:-10px -8px 10px;padding:8px 12px 8px 14px;display:flex;position:sticky;top:0}.pal-find input{min-width:0;height:28px;font-size:var(--fs-sm);background:0 0;border:0;border-radius:0;flex:1;padding:0 6px}.pal-find input::placeholder{color:var(--text-3)}.pal-find input:focus,.pal-find input:focus-visible{box-shadow:none;outline:none}.pal-find:focus-within{color:var(--text-2);box-shadow:inset 0 -1px 0 var(--accent)}.pal-find:not(:focus-within){box-shadow:inset 0 -1px 0 var(--rule)}.pal-clear{width:22px;height:22px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:0;place-items:center;display:grid}.pal-clear:hover{background:var(--ink-3);color:var(--text)}.pal-group h4{margin-right:0}.pal-head{cursor:pointer;text-align:left;width:100%;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:2px 6px 2px 0;display:flex}.pal-head:hover{color:var(--text-2)}.pal-head .pal-count{letter-spacing:0;color:var(--text-3);opacity:0;margin-left:auto;transition:opacity .12s}.pal-head:hover .pal-count,.pal-group.shut .pal-count,.pal-head:focus-visible .pal-count{opacity:1}.pal-head .icon{transition:transform .15s ease-out}.pal-group.shut .pal-head .icon{transform:rotate(-90deg)}.pal-group.shut+.pal-group{margin-top:4px}.pal-results h4{text-transform:none;letter-spacing:0}.pal-why{color:var(--accent);font-size:var(--fs-xs);opacity:.85}.pal-item:focus-visible{box-shadow:var(--focus)}.pal-settings{margin-top:14px}.pal-tier{grid-template-columns:50px minmax(0,1fr);align-items:center;column-gap:6px;margin-bottom:8px;display:grid}.pal-tier .hint{grid-column:2;margin-top:3px}.pal-tier-k{color:var(--text-2);font-size:var(--fs-xs);align-items:center;gap:5px;display:flex}.pal-sample{flex:none}.pal-sample path,.pal-sample circle{fill:none}.pal-sample .band{stroke:#9eb1b929;stroke-width:6px}.pal-sample .center,.pal-sample .chev{stroke:var(--steel);stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round}.pal-sample.pipe .band{stroke:var(--pipe-band);stroke-linecap:round}.pal-sample.pipe .center{stroke:var(--pipe)}.pal-sample.pipe .dot{fill:var(--pipe)}.thumb *{vector-effect:non-scaling-stroke}.thumb .body{stroke-width:1px}.thumb .body.planner{stroke-dasharray:2 1.5}.thumb .detail{stroke-width:.8px;opacity:.7}.thumb .detail.faint{opacity:.35}.thumb .nose{stroke-width:1px}.thumb .port-mark path,.thumb .port-mark .ring{stroke-width:.9px}.port-mark .ring{fill:var(--ink-0);stroke-width:1.25px}.port-mark.in .ring,.port-mark.both .ring{stroke:var(--pipe)}.port-mark.out .ring{stroke:var(--accent)}.port-mark.busy.in .ring,.port-mark.busy.both .ring{stroke:#9cc6e2}.port-mark .dot{fill:var(--accent);stroke:none}.place-ghost .port-mark.in .ring{stroke:var(--pipe)}.belt.pipe .band{stroke:var(--pipe-band);stroke-linejoin:round;stroke-linecap:round}.belt.pipe .center{stroke:var(--pipe);stroke-width:1px;opacity:.75}.belt.pipe .dots{fill:var(--pipe);stroke:none;opacity:.9}.belt.pipe.idle .center,.belt.pipe.idle .dots{opacity:.35}.belt.pipe.warn .center{stroke:var(--warn);opacity:.9}.belt.pipe.warn .dots{fill:var(--warn)}.belt.pipe.bad .center{stroke:var(--bad);opacity:1}.belt.pipe.bad .dots{display:none}.belt.pipe:hover .center{opacity:1;stroke-width:1.5px}.belt.pipe.sel .center{stroke:var(--accent);opacity:1;stroke-width:2px}.belt.pipe.sel .dots{fill:var(--accent);opacity:1}.belt.pipe.sel .band{stroke:#f08a2429}.lift .riser{fill:var(--ink-1);stroke:var(--pipe);stroke-width:1.25px}.lift.through .riser{fill:none;stroke-dasharray:2 2;opacity:.6}.lift.sel .riser{stroke:var(--accent);stroke-width:2px}.rubber.pipe{stroke:var(--pipe)}.insp-gap{margin-top:8px}.port-legend{font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;display:flex}.port-legend li{align-items:center;gap:6px;display:inline-flex}.port-legend svg *{vector-effect:non-scaling-stroke}.port-legend .port-mark path,.port-legend .port-mark .ring{stroke-width:1.1px}@media (width<=860px){.rail{height:62dvh}.pal-find{margin:0 -2px 8px;padding:4px 6px;position:static}.pal-find input{height:34px;font-size:16px}.pal-head{min-height:32px}}.floors{z-index:2;border:1px solid var(--rule);-webkit-backdrop-filter:blur(6px);width:180px;max-height:calc(100% - 72px);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#14181beb;border-radius:0;flex-direction:column;padding:2px 6px 4px;transition:border-color .15s;display:flex;position:absolute;top:12px;left:12px}.floors.wiring{border-color:#f08a248c;animation:1.4s ease-out fl-invite}@keyframes fl-invite{0%{box-shadow:var(--shadow), 0 0 0 0 #f08a2473}to{box-shadow:var(--shadow), 0 0 0 10px #f08a2400}}.fl-full{flex-direction:column;min-height:0;display:flex}.fl-head{height:24px;color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;padding-left:2px;font-weight:500;display:flex}.floors.wiring .fl-head>span{color:var(--accent)}.fl-ghost{width:24px;height:22px;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:0;place-items:center;margin-right:-2px;padding:0;display:grid}.fl-ghost:hover{color:var(--text);background:var(--ink-2)}.fl-ghost.on{color:var(--text-2)}.fl-scroll{overscroll-behavior:contain;scrollbar-width:none;min-height:0;overflow-y:auto}.fl-scroll::-webkit-scrollbar{display:none}.fl-scroll[data-more~=below]{-webkit-mask-image:linear-gradient(#000 calc(100% - 20px),#0000);mask-image:linear-gradient(#000 calc(100% - 20px),#0000)}.fl-scroll[data-more~=above]{-webkit-mask-image:linear-gradient(#0000,#000 20px);mask-image:linear-gradient(#0000,#000 20px)}.fl-scroll[data-more=above\ below]{-webkit-mask-image:linear-gradient(#0000,#000 20px calc(100% - 20px),#0000);mask-image:linear-gradient(#0000,#000 20px calc(100% - 20px),#0000)}.fl-sect{touch-action:pan-y;cursor:ns-resize;position:relative}.fl-sect ol{margin:0;padding:0;list-style:none}.fl-grip{width:var(--shaft);touch-action:none;cursor:grab;border-radius:0;position:absolute;top:0;bottom:0;left:0}.fl-grip:active,.scrubbing .fl-grip{background:#f08a2414}@media (hover:hover){.fl-grip:hover{background:#e6e8e30a}}.scrubbing .fl-sect,.scrubbing .fl,.scrubbing .fl-grip{cursor:grabbing}.fl-draw{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.fl-draw pattern line{stroke:var(--rule-strong);stroke-width:1px}.fl-earth{opacity:.75}.fl-grade{stroke:var(--text-3);stroke-width:1px}.fl-shaft{stroke:var(--rule-strong);stroke-width:1px}.fl-stop{stroke:var(--text-3);stroke-width:1px}.fl-datum{stroke:var(--rule-strong);stroke-width:1px;stroke-dasharray:1 2}.fl-slab{fill:var(--text-3);transition:fill .15s}.fl-slab.hover{fill:var(--text-2)}.fl-slab.on{fill:var(--accent)}.fl-ghostline{fill:none;stroke:var(--steel);stroke-width:1px;stroke-dasharray:1.5 1.5;opacity:.4}.fl-slab.empty{fill:none;stroke:var(--text-3);stroke-width:1px;stroke-dasharray:2 2}.fl-slab.empty.hover{stroke:var(--text-2)}.fl-slab.empty.on{stroke:var(--accent)}.fl-riser line,.fl-riser path{fill:none;stroke:var(--steel);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;opacity:.32;transition:opacity .15s,stroke .15s}.fl-riser.hot line,.fl-riser.hot path{opacity:.85}.fl-riser.lit line,.fl-riser.lit path{stroke:var(--text);opacity:1}.fl-wire line{stroke:var(--accent);stroke-width:1.25px;stroke-dasharray:2 2}.fl-wire circle{fill:var(--accent)}.fl-car{pointer-events:none;width:8px;height:10px;transition:transform .22s cubic-bezier(.3,.7,.2,1);position:absolute;top:-5px;left:3px}.fl-car svg{display:block}.fl-car path{fill:var(--accent)}.scrubbing .fl-car{transition:none}.fl{left:var(--shaft);color:var(--text-2);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:0;padding:0;display:block;position:absolute;right:0}.fl:hover{color:var(--text);background:#e6e8e308}.fl.on{color:var(--text)}.fl:focus-visible{box-shadow:none}.fl:focus-visible .fl-tag{box-shadow:var(--focus)}.fl-tag{left:calc(var(--draw) + 4px);border-radius:0;align-items:baseline;gap:4px;padding:1px 4px;line-height:16px;display:flex;position:absolute;right:4px;transform:translateY(-50%)}.fl-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:var(--fs-sm);flex:auto;overflow:hidden}.fl.on .fl-name{font-weight:500}.fl-el{color:var(--text-3);flex:none;font-size:10.5px;display:none}.fl:hover .fl-el,.fl:focus-visible .fl-el{display:inline}.floors.wiring .fl:not(.on):hover .fl-name{color:var(--accent)}.fl-rename{border:1px solid var(--accent);background:var(--ink-0);min-width:0;height:20px;color:var(--text);font-size:var(--fs-sm);-webkit-user-select:text;user-select:text;border-radius:0;outline:none;flex:auto;margin:-2px 0;padding:0 4px}.fl-rename+.fl-el{display:none}.fl-add{left:var(--shaft);width:var(--draw);height:18px;color:var(--text-3);cursor:pointer;background:0 0;border:1px dashed #0000;border-radius:0;place-items:center;padding:0;display:grid;position:absolute;transform:translateY(-50%)}.fl-add .icon{background:#14181beb;border-radius:0}.fl-add:hover,.fl-add:focus-visible{color:var(--text);border-color:var(--text-3);background:var(--ink-1)}.fl-bar{display:none}.fl-mini{flex:none;overflow:visible}.fl-mini-stop{stroke:var(--text-2);stroke-width:1.5px;stroke-linecap:round;transition:stroke .15s}.fl-mini-stop.on{stroke:var(--accent);stroke-width:2.5px}.fl-mini-shaft{stroke:var(--rule-strong);stroke-width:1px}.fl-mini-ground{stroke:var(--text-3);stroke-width:1px;stroke-dasharray:1 1.5;stroke-linecap:butt}@media (width<=860px){.floors{width:auto;max-height:calc(100% - 52px);padding:3px;top:8px;left:8px}.fl-bar{align-items:stretch;height:44px;display:flex}.fl-compact{min-width:0;color:var(--text-3);cursor:pointer;text-align:left;touch-action:none;background:0 0;border:0;border-radius:0;flex:auto;align-items:center;gap:9px;padding:0 10px 0 8px;display:flex}.fl-compact-text{flex-direction:column;min-width:0;max-width:128px;line-height:1.25;display:flex}.fl-compact .fl-name{color:var(--text);font-weight:500}.fl-compact .fl-el{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.floors.wiring .fl-compact .fl-el{color:var(--accent)}.fl-steps{border-left:1px solid var(--rule);flex-direction:column;flex:none;width:34px;display:flex}.fl-steps button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:0;flex:1 1 0;place-items:center;padding:0;display:grid}.fl-steps button:active:not(:disabled){background:var(--ink-3);color:var(--text)}@media (hover:hover){.fl-steps button:hover:not(:disabled){background:var(--ink-3);color:var(--text)}}.fl-steps button:disabled{color:var(--text-3);opacity:.45;cursor:default}.floors.wiring .fl-steps button:not(:disabled){color:var(--accent)}.fl-full{border-top:1px solid var(--rule);width:216px;margin-top:3px;padding:0 3px;display:none}.floors.open{background:var(--ink-1)}.floors.open .fl-full{display:flex}.fl-head{height:34px}.fl-ghost{width:34px;height:30px}.fl-name{font-size:var(--fs-md)}.fl-el{display:inline}.fl-add{height:32px}.stage:has(.modechip) .fl-compact-text{max-width:90px}}@media (width<=440px){.floors{max-height:calc(100% - 132px)}.stage:has(.modechip) .fl-compact-text{max-width:76px}}@media (hover:none){.fl-el{display:inline}}@media (prefers-reduced-motion:reduce){.floors.wiring{animation:none}.fl-car,.fl-slab,.fl-riser line,.fl-riser path{transition:none}}.ctxmenu-layer{z-index:40;width:0;height:0;position:fixed;top:0;left:0}.ctxmenu{background:var(--ink-2);border:1px solid var(--rule-strong);min-width:212px;max-width:300px;max-height:calc(100dvh - 16px);font-size:var(--fs-md);color:var(--text);overscroll-behavior:contain;scrollbar-width:thin;-webkit-user-select:none;user-select:none;border-radius:0;outline:none;padding:4px;position:fixed;top:0;left:0;overflow-y:auto}.ctxmenu,.ctxmenu:focus-visible{box-shadow:0 10px 32px #00000080,inset 0 1px #ffffff08}.ctxmenu.root{animation:90ms ease-out ctx-in}@keyframes ctx-in{0%{opacity:0;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.ctxmenu.root{animation:none}}.ctxmenu.drilled{visibility:hidden}.ctx-item{cursor:default;white-space:nowrap;border-radius:0;outline:none;grid-template-columns:16px minmax(0,1fr) auto 10px;align-items:center;column-gap:6px;height:26px;padding:0 8px 0 4px;display:grid}.ctx-label{text-overflow:ellipsis;overflow:hidden}.ctx-item.on,.ctx-item[aria-expanded=true]{background:var(--ink-3)}.ctx-item:focus-visible{background:var(--ink-3);box-shadow:inset 0 0 0 1px var(--accent)}.ctx-item[aria-disabled=true]{color:var(--text-3)}.ctx-item[aria-disabled=true] .ctx-hint{opacity:.6}.ctx-item.danger:not([aria-disabled=true]){color:#f3a39b}.ctx-item.danger.on{background:#ef5a4c29}.ctx-mark svg{display:block}.ctx-mark path{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.ctx-mark circle{fill:var(--accent)}.ctx-hint{color:var(--text-3);font-size:var(--fs-xs);text-align:right;padding-left:14px}.ctx-hint.num{letter-spacing:.04em}.ctx-item.on .ctx-hint{color:var(--text-2)}.ctx-chev{grid-column:4;justify-self:end}.ctx-chev path{fill:none;stroke:var(--text-3);stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round}.ctx-sep{background:var(--rule);height:1px;margin:4px 6px}.ctx-note{max-width:260px;color:var(--text-2);font-size:var(--fs-sm);white-space:normal;padding:6px 8px 6px 26px;line-height:1.45}.ctx-head{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:8px 8px 3px 26px;font-weight:500}.ctx-head:first-child{padding-top:4px}.ctx-item.back{color:var(--text-2)}.ctx-item.back .ctx-mark path{stroke:var(--text-3)}@media (pointer:coarse){.ctx-item{height:36px}}@media (hover:none){.ctx-hint.num{display:none}}.app:has(.ctxmenu-layer) .mtip{display:none}.canvas{-webkit-touch-callout:none}.clip-sink{opacity:0;pointer-events:none;resize:none;border:0;width:1px;height:1px;padding:0;position:fixed;top:0;left:0;overflow:hidden}.sc-hint{z-index:2;border:1px solid var(--rule-strong);width:20px;height:20px;color:var(--text-3);font:500 11px/1 var(--font-num);cursor:pointer;opacity:.55;background:0 0;border-bottom-width:2px;border-radius:0;place-items:center;padding:0;transition:opacity .12s,color .12s;display:grid;position:absolute;bottom:40px;left:16px}.sc-hint:hover,.sc-hint.on,.sc-hint:focus-visible{opacity:1;color:var(--text)}.shortcuts{z-index:30;left:calc(var(--rail-w) + 12px);width:min(820px, calc(100vw - var(--rail-w) - var(--side-w) - 24px));max-height:calc(100dvh - var(--bar-h) - 80px);border:1px solid var(--rule);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow);overscroll-behavior:contain;scrollbar-width:thin;background:#14181bed;border-radius:0;padding:12px 16px 14px;animation:.12s ease-out sc-in;position:fixed;bottom:68px;overflow-y:auto}@keyframes sc-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.shortcuts{animation:none}}.shortcuts header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.shortcuts h2{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;margin:0;font-weight:500}.sc-sub{color:var(--text-3);font-size:var(--fs-xs);flex:1}.sc-cols{columns:3 220px;column-gap:28px}.sc-cols section{break-inside:avoid;padding:6px 0 8px}.sc-cols h3{color:var(--text-2);font-size:var(--fs-sm);margin:0 0 4px;font-weight:500}.sc-cols dl{margin:0}.sc-cols dl div{justify-content:space-between;align-items:baseline;gap:12px;padding:2px 0;display:flex}.sc-cols dt{color:var(--text-2);font-size:var(--fs-sm)}.sc-cols dd{margin:0}.sc-cols dd:not(.sc-how){flex:none}.sc-how{max-width:60%;color:var(--text);font-size:var(--fs-sm);text-align:right}.sc-keys{align-items:baseline;gap:4px;display:inline-flex}.sc-or{color:var(--text-3);font-size:var(--fs-xs)}.shortcuts kbd,.about kbd{border:1px solid var(--rule-strong);background:var(--ink-1);min-width:18px;color:var(--text);font:11px/1.35 var(--font-num);text-align:center;white-space:nowrap;border-bottom-width:2px;border-radius:0;padding:1px 5px;display:inline-block}.about .about-keys{margin-top:10px}@media (width<=860px){.shortcuts{width:auto;max-height:min(70dvh, calc(100dvh - var(--bar-h) - 76px));bottom:64px;left:8px;right:8px}.sc-cols{columns:2 200px}.sc-hint{bottom:36px;left:14px}}.plan-switch{border:0;border-left:1px solid var(--rule);min-width:0;max-width:100%;height:30px;color:var(--text-3);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 8px 0 10px;display:inline-flex}.plan-switch:hover,.plan-switch[aria-expanded=true]{color:var(--text)}.plan-switch .plan-name{border-left:0;padding-left:0}.plans{min-width:0}.plans-menu{width:320px;left:0;right:auto}.plans-list{flex-direction:column;max-height:min(50dvh,360px);display:flex;overflow-y:auto}.plans-row{border-radius:0;align-items:center;display:flex}.plans-row:hover{background:var(--ink-3)}.menu .plans-open{flex-direction:column;flex:1;align-items:flex-start;gap:1px;min-width:0;padding:6px 10px;display:flex}.menu .plans-open:hover{background:0 0}.plans-row{position:relative}.plans-row.on{background:var(--ink-3)}.plans-row.on:before{content:"";background:var(--accent);border-radius:0;width:2px;position:absolute;top:6px;bottom:6px;left:0}.plans-row.on .plans-name{color:var(--text);font-weight:500}.plans-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-2);overflow:hidden}.plans-meta{color:var(--text-3);font-size:var(--fs-xs)}.menu .plans-del{width:30px;height:30px;color:var(--text-3);opacity:0;flex:none;place-items:center;padding:0;display:grid}.plans-row:hover .plans-del,.menu .plans-del:focus-visible{opacity:1}.menu .plans-del:hover{color:var(--bad);background:0 0}.plans-confirm{font-size:var(--fs-sm);color:var(--text);align-items:center;gap:6px;padding:6px 4px 6px 10px;display:flex}.plans-confirm span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu .plans-confirm button{border:1px solid var(--rule-strong);width:auto;padding:4px 10px}.menu .plans-confirm button.danger{color:var(--bad);border-color:#ef5a4c80}@media (hover:none){.menu .plans-del{opacity:1}}.viewswitch{z-index:2;border:1px solid var(--rule);-webkit-backdrop-filter:blur(6px);background:#14181beb;border-radius:0;gap:2px;padding:3px;display:flex;position:absolute;top:12px;right:12px}.viewswitch button{height:26px;color:var(--text-2);cursor:pointer;font-size:var(--fs-xs);background:0 0;border:0;border-radius:0;align-items:center;gap:6px;padding:0 10px 0 8px;display:flex}.viewswitch button:hover{color:var(--text);background:var(--ink-2)}.viewswitch button.on{background:var(--ink-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--rule-strong)}.viewswitch button.on svg{color:var(--accent)}:is(.stage:has(.stack-view:not(.leaving)) .viewmenu,.stage:has(.stack-view:not(.leaving)) .zoom){display:none}.stack-view{z-index:1;position:absolute;inset:0;overflow:hidden}.stk-bg{background:var(--ink-0);opacity:var(--stk-reveal,1);pointer-events:none;position:absolute;inset:0}.stack-svg{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.stack-svg.over{cursor:pointer}.stack-svg.orbiting{cursor:grabbing}.stack-svg text{font-family:var(--font-ui);font-size:var(--fs-xs)}.stk-grid{fill:none;stroke:var(--grid-major);stroke-width:1px;opacity:var(--stk-reveal,1)}.stk-floor.below{opacity:calc(.55 * var(--stk-reveal,1))}.stk-floor.above{opacity:calc(.42 * var(--stk-reveal,1))}.stk-floor.hot:not(.cur){opacity:calc(.8 * var(--stk-reveal,1))}.stk-slab polygon{stroke-width:1px;stroke-linejoin:round}.stk-slab .top{fill:#1e24289e;stroke:#c9d2d04d}.stk-slab .side{fill:#404d55b3;stroke:#c9d2d04d}.stk-floor.cur .stk-slab .top{fill:#222626a8;stroke:var(--accent)}.stk-floor.cur .stk-slab .side{fill:#f08a2452;stroke:var(--accent)}.stk-floor.hot:not(.cur) .stk-slab polygon{stroke:var(--text-2)}.stk-floor.empty .stk-slab .top{fill:#1e24284d;stroke-dasharray:4 3}.stk-belts{fill:none;stroke:var(--steel);stroke-width:1.1px;stroke-linejoin:round;stroke-linecap:round;opacity:.75;pointer-events:none}.stk-belts.sel{stroke:var(--accent);stroke-width:2px;opacity:1}.stk-box .face{stroke:var(--line);stroke-opacity:.55;stroke-width:1px;stroke-linejoin:round}.stk-box .face.top{fill:#2b3439}.stk-box.hot .face{stroke:#fff;stroke-opacity:.95}.stk-box.sel .face{stroke:var(--accent);stroke-opacity:1;fill:#3a2913}.stk-box.sel .face.top{fill:#5a3a14}.stk-box.clash .face{stroke:var(--bad);stroke-opacity:.9}.stk-box.riser .face,.stk-box.cap .face{fill:#9eb1b91f;stroke:var(--steel);stroke-opacity:.8}.stk-box.cap .face.top{fill:#9eb1b94d}.stk-box.riser.hot .face,.stk-box.cap.hot .face{stroke:#fff}.stk-box.riser.sel .face,.stk-box.cap.sel .face{stroke:var(--accent);fill:#f08a2438}.stk-box.feed .foot{fill:#f08a2414;stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 2}.stk-box.feed .pin{stroke:var(--accent);stroke-width:1.25px}.stk-box.feed .head{fill:var(--ink-0);stroke:var(--accent);stroke-width:1.5px}.stk-box.feed.hot .head,.stk-box.feed.sel .head{fill:var(--accent)}.stk-labels{opacity:var(--stk-reveal,1)}.stk-label{cursor:pointer}.stk-label .hit{fill:#0000}.stk-label .leader{fill:none;stroke:var(--rule-strong);stroke-width:1px;stroke-dasharray:2 2}.stk-label .datum{fill:none;stroke:var(--text-3);stroke-width:1px;stroke-linejoin:round}.stk-label text{fill:var(--text-2);paint-order:stroke;stroke:var(--ink-0);stroke-width:3px;stroke-linejoin:round}.stk-label .el{fill:var(--text-3);font-family:var(--font-num)}.stk-label:hover text,.stk-label.hot text{fill:var(--text)}.stk-label.cur text{fill:var(--accent)}.stk-label.cur .el{fill:var(--text-2)}.stk-label.cur .datum{fill:var(--accent);stroke:var(--accent)}.stk-label.cur .leader{stroke:#f08a248c}.stk-tip{fill:var(--text);pointer-events:none;paint-order:stroke;stroke:var(--ink-0);stroke-width:3px;stroke-linejoin:round;font-weight:500}.stk-tip.sel{fill:var(--accent)}.stack-ctl{border:1px solid var(--rule);background:#14181beb;border-radius:0;align-items:center;gap:4px;padding:3px;display:flex;position:absolute;bottom:12px;right:12px}.stack-ctl .seg{background:0 0;border:0;padding:0}.stack-ctl .seg button{white-space:nowrap;padding:0 9px}.stk-spread{height:24px;color:var(--text-2);cursor:pointer;font-size:var(--fs-xs);background:0 0;border:0;border-radius:0;align-items:center;gap:5px;padding:0 8px 0 6px;display:flex}.stk-spread:hover{background:var(--ink-2);color:var(--text)}.stk-compass{flex:none;margin:0 2px 0 3px}.stk-compass .ring{fill:none;stroke:var(--rule-strong);stroke-width:1px}.stk-compass .needle{stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round}.stk-compass .tail{stroke:var(--text-3);stroke-width:1.2px;stroke-linecap:round}.stk-compass .hub{fill:var(--text-2)}.stk-hint{color:var(--text-3);font-size:var(--fs-xs);pointer-events:none;opacity:var(--stk-reveal,1);position:absolute;bottom:18px;left:16px}.stk-hint.short{bottom:52px;left:10px}@media (width>=861px) and (width<=1000px){.viewswitch button{padding:0 7px}.viewswitch button span{display:none}}@media (width<=440px){.viewswitch{padding:2px;top:8px;right:8px}.viewswitch button{justify-content:center;width:38px;height:38px;padding:0}.viewswitch button span{display:none}.viewswitch button svg{width:17px;height:17px}.stage:has(.modechip) .viewswitch{top:56px}.stack-ctl{bottom:8px;right:8px}.stack-ctl .seg button{height:32px;padding:0 10px}.stk-spread{height:32px}}.viewswitch button.on:focus-visible,.stack-ctl .seg button.on:focus-visible{box-shadow:var(--focus)}.stack-view.leaving{pointer-events:none}.stack-view.leaving .stack-ctl,.stack-view.leaving .stk-hint{opacity:0;transition:opacity .15s}.stack-view.leaving .stk-floor.cur{opacity:var(--stk-reveal,1)}.landing{--lp-max:1240px;--lp-gut:clamp(16px, 4vw, 40px);background:var(--ink-0);overflow:clip visible}.lp-kicker{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);margin:0;font-weight:500}.lp-kicker:before{content:"";border:1.5px solid var(--accent);width:8px;height:8px;margin-right:10px;display:inline-block;transform:rotate(45deg)translateY(-1px)}.lp-bar{top:env(safe-area-inset-top,0px);z-index:5;padding:12px var(--lp-gut);-webkit-backdrop-filter:blur(12px)saturate(1.2);border-bottom:1px solid var(--rule);background:#0e1113b8;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky}.lp-lockup{width:auto;height:30px;display:block}.lp-nav{align-items:center;gap:18px;display:flex}.lp-nav a{color:var(--text-2);font-size:var(--fs-sm);text-decoration:none}.lp-nav a:hover{color:var(--text)}.shader{width:100%;height:100%;display:block;position:absolute;inset:0}.lp-hero{border-bottom:1px solid var(--rule);background:var(--ink-0);position:relative;overflow:hidden}.lp-hero-grid{max-width:var(--lp-max);padding:clamp(56px, 10vh, 120px) var(--lp-gut) 0;pointer-events:none;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;margin:0 auto;display:grid;position:relative}.lp-hero-grid>*{pointer-events:auto}.lp-hero .lp-kicker{grid-column:1/-1}.lp-title{color:var(--text);max-width:15ch;font:600 clamp(40px, 6.4vw, 92px)/1 var(--font-ui);letter-spacing:-.035em;grid-column:1/span 10;margin:24px 0 0}.lp-stop{background:var(--accent);vertical-align:baseline;width:.15em;height:.15em;margin-left:.04em;display:inline-block}.lp-lede{color:var(--text-2);grid-column:1/span 6;max-width:46ch;margin:26px 0 0;font-size:clamp(17px,1.7vw,21px);line-height:1.45}.lp-cta{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:18px;margin:28px 0 clamp(56px,10vh,104px);display:flex}.lp-blank{color:var(--text-2);font:inherit;font-size:var(--fs-md);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);text-underline-offset:4px;background:0 0;border:0}.lp-blank:hover{color:var(--text);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.lp-plans{padding:48px 0 0}.lp-plans .lp-kicker{margin-bottom:16px}.lp-plans-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.lp-plan{border:1px solid var(--rule);background:var(--ink-1);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;border-radius:0;flex-direction:column;gap:4px;padding:10px;display:flex}.lp-plan:hover{border-color:var(--rule-strong);background:var(--ink-2)}.lp-plan .tpl-map{aspect-ratio:16/9;background:var(--ink-0);border-radius:0;width:100%;height:auto;margin-bottom:4px}.lp-plan-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.lp-plan-meta{color:var(--text-3);font-size:var(--fs-xs)}@media (width<=520px){.lp-plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.lp-make{padding:56px 0 8px}.lp-make-title{font:600 clamp(26px, 3vw, 38px)/1.1 var(--font-ui);letter-spacing:-.02em;color:var(--text);margin:0 0 22px}.lp-specs{border-top:1px solid var(--rule-strong);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));margin:56px 0 0;display:grid}.lp-specs div{border-right:1px solid var(--rule);padding:16px 0 22px 16px}.lp-specs div:first-child{padding-left:0}.lp-specs div:last-child{border-right:0}.lp-specs dt{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.lp-specs dd{color:var(--text);letter-spacing:-.03em;margin:6px 0 0;font-size:clamp(26px,3.4vw,40px)}.lp-main{max-width:var(--lp-max);padding:0 var(--lp-gut);margin:0 auto}.lp-spreads{border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.lp-spread{border-right:1px solid var(--rule);flex-direction:column;gap:14px;padding:32px 24px 36px;display:flex}.lp-spread:first-child{padding-left:0}.lp-spread:last-child{border-right:0;padding-right:0}.lp-art{aspect-ratio:8/5;border:1px solid var(--rule);background:#11161a;border-radius:0;place-items:center;display:grid;overflow:hidden}.lp-line{color:var(--text);letter-spacing:-.01em;margin:0;font-size:19px;font-weight:500;line-height:1.3}.lp-svg{width:100%;height:100%;display:block}.lp-m{fill:var(--fill);stroke:var(--line);stroke-width:1.4px}.lp-dim{fill:var(--text-3);font-size:9px}.lp-belt{fill:none;stroke:#9eb1b966;stroke-width:5px;stroke-linejoin:round}.lp-belt.flow,.lp-lift.flow{stroke:var(--accent);stroke-width:2px;stroke-dasharray:3 9;animation:1.1s linear infinite lp-flow}.lp-lift{fill:none;stroke:#f08a2459;stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.lp-lift.flow{animation-direction:reverse}@keyframes lp-flow{to{stroke-dashoffset:-12px}}.lp-slab{fill:#1a1f23eb;stroke:var(--steel);stroke-width:1.4px;stroke-linejoin:round}.lp-slab.top{stroke:var(--text)}.lp-slab-side{fill:#0b0e10}.lp-flow{flex-direction:column;gap:10px;width:100%;margin:0;padding:14px 16px;list-style:none;display:flex}.lp-flow li{font-size:var(--fs-sm);color:var(--text-2);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.lp-flow-bar{background:#9eb1b924;border-radius:0;height:4px;overflow:hidden}.lp-flow-bar i{height:100%;width:var(--fill);background:var(--item);display:block}.lp-reuse{grid-template-columns:1fr 1fr;gap:8px;width:100%;height:100%;padding:10px;display:grid}.lp-reuse figure{flex-direction:column;gap:4px;min-width:0;margin:0;display:flex}.lp-reuse .tpl-map{aspect-ratio:auto;flex:1;min-height:0;margin:0}.lp-reuse figcaption{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.lp-band{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);place-items:center;width:100vw;height:clamp(180px,24vh,260px);margin:64px calc(50% - 50vw) 0;display:grid;position:relative;overflow:hidden}.lp-band-cta{position:relative}.lp-band-line{padding:0 var(--lp-gut);text-align:center;font:600 clamp(28px, 4.4vw, 56px)/1.05 var(--font-ui);letter-spacing:-.03em;color:var(--text);margin:0;position:relative}.lp-templates{margin-top:0;padding:64px 0 24px}.lp-templates .lp-kicker{margin-bottom:20px}.lp-templates .tpl-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=860px){.lp-templates .tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.lp-templates .tpl-grid{grid-template-columns:1fr}}.lp-foot{max-width:var(--lp-max);padding:28px var(--lp-gut) 40px;color:var(--text-3);font-size:var(--fs-xs);border-top:1px solid var(--rule);align-items:center;gap:10px;margin:0 auto;display:flex}@media (width<=960px){.lp-spreads{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-spread:nth-child(2){border-right:0;padding-right:0}.lp-spread:nth-child(3){padding-left:0}.lp-spread:nth-child(-n+2){border-bottom:1px solid var(--rule)}.lp-title,.lp-lede{grid-column:1/-1}}@media (width<=640px){.lp-nav a{display:none}.lp-title,.lp-lede,.lp-cta{grid-column:1/-1}.lp-specs{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-specs div:nth-child(2){border-right:0}.lp-specs div:nth-child(3){padding-left:0}.lp-spreads{grid-template-columns:1fr}.lp-spread{border-right:0;border-bottom:1px solid var(--rule);padding:28px 0}.lp-spread:last-child{border-bottom:0}}@media (prefers-reduced-motion:reduce){.lp-belt.flow,.lp-lift.flow{animation:none}}.progress-chip{height:30px;color:var(--text-2);font-size:var(--fs-xs);gap:6px;padding:0 9px;position:relative}.progress-chip:hover{color:var(--text)}.progress-chip.own:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:6px;right:4px}.progress-pop{z-index:40;width:300px;max-height:calc(100dvh - 120px);padding-bottom:10px;overflow-y:auto}.progress-ladder{flex-direction:column;gap:4px;max-height:min(62dvh,460px);padding:2px 10px 6px;display:flex;overflow-y:auto}.progress-phase{border-left:1px solid var(--rule-strong);flex-direction:column;gap:1px;padding-left:10px;display:flex}.progress-phase-name{letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin:2px 0 2px -10px;padding-left:10px;font-size:10px}.menu .progress-rung{width:100%;height:24px;color:var(--text-3);font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:center;padding:0 10px;display:flex}.menu .progress-rung.reached{color:var(--text-2)}.menu .progress-rung:hover{background:var(--ink-3);color:var(--text)}.menu .progress-rung.on{background:var(--ink-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--rule-strong)}.menu .progress-rung.on:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;margin-right:8px}.menu .progress-rung{gap:8px}.rung-name{flex:none;width:46px}.rung-adds{color:var(--text-3);align-items:center;gap:3px;margin-left:auto;font-size:10px;display:inline-flex}.rung-adds img{object-fit:contain;opacity:.55;width:18px;height:18px}.menu .progress-rung.reached .rung-adds img{opacity:1}.menu .progress-rung{height:28px}.mam-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.mam-chips-k{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;margin-right:4px}.mam-chip{border:1px solid var(--rule-strong);height:26px;color:var(--text-3);font:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;border-radius:999px;align-items:center;padding:0 10px;display:inline-flex}.mam-chip:hover{color:var(--text-2);border-color:var(--text-3)}.mam-chip.on{color:var(--text);background:var(--ink-3);border-color:var(--steel)}.progress-pop .mam-chips{padding:2px 10px 8px}.progress-mam{flex-wrap:wrap;gap:4px;padding:2px 10px 8px;display:flex}.menu .progress-mam-chip{border:1px solid var(--rule-strong);width:auto;height:24px;color:var(--text-3);font-size:var(--fs-xs);cursor:pointer;background:0 0;border-radius:999px;align-items:center;padding:0 9px;display:inline-flex}.menu .progress-mam-chip.on{color:var(--text);background:var(--ink-3);border-color:var(--steel)}.progress-switch{font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;align-items:center;gap:8px;padding:5px 12px;display:flex}.progress-switch input{accent-color:var(--accent)}.later-peek{width:100%;color:var(--text-3);font:inherit;font-size:var(--fs-xs);text-align:left;cursor:pointer;background:0 0;border:0;padding:6px 12px;display:block}.later-peek:hover{color:var(--text-2)}.tier-badge{border:1px solid var(--rule-strong);color:var(--text-3);white-space:nowrap;border-radius:0;padding:0 5px;font-size:10px;line-height:15px;display:inline-block}.pal-item.locked,.bp-item.locked,.tpl.locked{opacity:.55}.pal-item.locked:hover,.bp-item.locked:hover,.tpl.locked:hover{opacity:.85}.pal-item.locked{grid-template-columns:34px minmax(0,1fr) auto}.bp-item .tier-badge,.pal-item .tier-badge{grid-area:1/3/span 2;align-self:center}.insp-unlock{font-size:var(--fs-xs);color:var(--text-3);margin:6px 0 0}.insp-unlock:before{content:"";border:1px solid var(--text-3);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.insp-ahead{border:1px dashed var(--rule-strong);width:calc(100% - 24px);color:var(--text-2);font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border-radius:0;margin:10px 12px 0;padding:7px 10px;display:block}.insp-ahead:hover{color:var(--text);border-color:var(--steel)}.fp{flex-direction:column;gap:22px;display:flex}.fp-where{flex-wrap:wrap;align-items:center;gap:10px 18px;padding-bottom:4px;display:flex}.fp-where-k{color:var(--text-2);font-size:var(--fs-md);align-items:center;gap:10px;display:inline-flex}.fp-where .progress-select{background-position:calc(100% - 15px) 14px,calc(100% - 11px) 14px;background-color:var(--ink-1);width:auto;height:32px;color:var(--text);font-size:var(--fs-md);cursor:pointer;border-radius:0;padding-left:10px;padding-right:28px}.fp-phase{flex-direction:column;gap:10px;display:flex}.fp-phase-k{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:500}.fp-tier{border-left:1px solid var(--rule-strong);grid-template-columns:84px minmax(0,1fr);align-items:start;gap:8px 12px;padding-left:12px;display:grid}.fp-tier-k{color:var(--text-2);font-size:var(--fs-sm);flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding-top:10px;font-weight:500;display:flex}.fp-new{background:var(--accent);color:var(--accent-ink);letter-spacing:.06em;text-transform:uppercase;border-radius:0;padding:0 6px;font-size:10px;line-height:16px}.fp-tier.past{border-left-style:dashed}.fp-tier.past .fp-tier-k{color:var(--text-3)}.fp-stage>.later-peek,.fp>.later-peek{width:auto;font-size:var(--fs-sm);padding:4px 0}.fp-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,196px),1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.fp-card{border:1px solid var(--rule);background:var(--ink-1);border-radius:0;flex-direction:column;transition:border-color .12s,background .12s;display:flex}.fp-card:hover{border-color:var(--rule-strong);background:var(--ink-2)}.fp-card.on{background:linear-gradient(var(--accent-soft), var(--accent-soft)), var(--ink-1);border-color:#f08a24b3}.fp-card.locked:not(.on) .fp-icon,.fp-card.locked:not(.on) .fp-name,.fp-tier.past .fp-card:not(.on) .fp-icon,.fp-tier.past .fp-card:not(.on) .fp-name{opacity:.55}.fp-pick{width:100%;min-height:60px;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:10px;padding:8px 12px 8px 8px;display:flex}.fp-pick:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:0}.fp-icon{object-fit:contain;filter:drop-shadow(0 4px 8px #00000073);flex:none;width:44px;height:44px}.fp-name{min-width:0;font-size:var(--fs-lg);flex:1;font-weight:500;line-height:1.25}.fp-check{border:1.5px solid var(--rule-strong);border-radius:0;flex:none;width:18px;height:18px;position:relative}.fp-card.on .fp-check{border-color:var(--accent);background:var(--accent)}.fp-card.on .fp-check:after{content:"";border:solid var(--accent-ink);border-width:0 2px 2px 0;width:4px;height:9px;position:absolute;top:1.5px;left:5px;transform:rotate(45deg)}.fp-rate{align-items:center;gap:6px;padding:0 10px 10px 62px;display:flex}.fp-step{border:1px solid var(--rule-strong);background:var(--ink-3);width:28px;height:28px;color:var(--text);font:500 15px/1 var(--font-num);cursor:pointer;border-radius:0;flex:none}.fp-step:hover:not(:disabled){border-color:var(--accent)}.fp-step:disabled{opacity:.4;cursor:default}.fp-bar{bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:2;border:1px solid var(--rule-strong);-webkit-backdrop-filter:blur(12px)saturate(1.2);background:#14181be6;border-radius:0;flex-direction:column;gap:10px;padding:12px 14px;display:flex;position:sticky;box-shadow:0 18px 40px #00000073}.fp-bar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.fp-sum{flex-wrap:wrap;align-items:center;gap:8px 18px;min-width:0;display:flex}.fp-builds{flex-wrap:wrap;gap:6px;display:flex}.fp-build{background:var(--ink-0);color:var(--text-2);font-size:var(--fs-sm);border-radius:999px;align-items:center;gap:2px;padding:2px 8px 2px 3px;display:inline-flex}.fp-build img{object-fit:contain;width:26px;height:26px}.fp-in{color:var(--text-2);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.fp-in>span{align-items:center;gap:4px;display:inline-flex}.fp-k{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase}.fp-meta{color:var(--text-2);font-size:var(--fs-sm)}.fp-big{color:var(--warn);font-size:var(--fs-sm)}.fp-actions{gap:8px;margin-left:auto;display:flex}.fp-tip{color:var(--text-3);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0;display:flex}.fp-add{border:1px dashed var(--rule-strong);height:26px;color:var(--text-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:0 9px 0 5px;display:inline-flex}.fp-add:hover{border-color:var(--accent);color:var(--text);border-style:solid}.fp-dialog{width:min(980px,100vw - 24px)}.fp-dialog header{margin-bottom:16px}.fp-dialog .fp-bar{bottom:0}@media (width<=520px){.fp-where-k{flex-wrap:wrap}.fp-tier{grid-template-columns:minmax(0,1fr);padding-left:10px}.fp-tier-k{flex-direction:row;align-items:center;padding-top:0}.fp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.fp-pick{flex-wrap:wrap;gap:6px 8px;min-height:0;padding:10px}.fp-icon{width:34px;height:34px}.fp-name{font-size:var(--fs-md);flex-basis:100%;order:3}.fp-check{margin-left:auto}.fp-rate{gap:4px;padding:0 8px 8px}.fp-rate .numfield{flex:1;min-width:0;width:auto!important}.fp-rate{flex-wrap:wrap}.fp-max{flex-basis:100%}.fp-bar{gap:8px;padding:10px}.fp-tip{scrollbar-width:none;white-space:nowrap;flex-wrap:nowrap;overflow-x:auto}.fp-tip::-webkit-scrollbar{display:none}.fp-add{flex:none}.fp-actions{width:100%}.fp-actions .btn{flex:1;justify-content:center}}@media (prefers-reduced-motion:reduce){.fp-card{transition:none}}.nd{flex-direction:column;gap:6px;display:flex}.nd-row{align-items:center;gap:8px;display:flex}.nd-icon{object-fit:contain;flex:none;width:28px;height:28px}.nd-ore.select{background-color:var(--ink-1);width:140px;height:30px;color:var(--text);font-size:var(--fs-md);border-radius:0;flex:none}.nd-purity{border:1px solid var(--rule-strong);border-radius:0;display:inline-flex;overflow:hidden}.nd-p{border:0;border-left:1px solid var(--rule-strong);height:28px;color:var(--text-3);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;padding:0 10px}.nd-p:first-child{border-left:0}.nd-p:hover{color:var(--text)}.nd-p.on{color:var(--accent-ink);font-weight:500}.nd-p.impure.on{background:var(--impure)}.nd-p.normal.on{background:var(--normal)}.nd-p.pure.on{background:var(--pure)}.nd-count{align-items:center;gap:2px;display:inline-flex}.nd-count button{border:1px solid var(--rule-strong);background:var(--ink-3);width:26px;height:26px;color:var(--text);font:500 14px/1 var(--font-num);cursor:pointer;border-radius:0}.nd-count button:disabled{opacity:.4;cursor:default}.nd-count .num{text-align:center;min-width:28px;color:var(--text-2);font-size:var(--fs-sm)}.nd-rate{min-width:64px;color:var(--text);font-size:var(--fs-sm);text-align:right;flex:1}.nd-del{width:26px;height:26px;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:0;place-items:center;display:grid}.nd-del:hover{color:var(--text);background:var(--ink-3)}.nd-add{color:var(--text-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:4px 0}.nd-add:hover{color:var(--text)}.nd-start{z-index:4;border:1px solid var(--rule-strong);background:var(--ink-1);width:min(620px,100% - 32px);box-shadow:var(--shadow);border-radius:0;padding:20px 22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.nd-start h2{letter-spacing:-.01em;margin:0 0 14px;font-size:18px;font-weight:600}.nd-actions{gap:8px;margin-top:16px;display:flex}.fp-nodes-add{border:1px dashed var(--rule-strong);height:30px;color:var(--text-2);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border-radius:999px;padding:0 12px}.fp-nodes-add:hover{color:var(--text);border-color:var(--text-3);border-style:solid}.fp-stage>.nd{border:1px solid var(--rule);background:var(--ink-1);border-radius:0;padding:10px 12px}.fp-max{border:1px solid var(--rule-strong);height:28px;color:var(--text-2);font:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;border-radius:0;padding:0 8px}.fp-max:hover{color:var(--text);border-color:var(--accent)}.fp-of{color:var(--text-3)}.fp-in .short{color:var(--warn)}.fp-in .short .fp-of{color:var(--warn);opacity:.8}@media (width<=520px){.nd-row{flex-wrap:wrap}.nd-ore.select{flex:1;width:auto;min-width:0}.nd-rate{min-width:0;margin-left:auto}.nd-start{top:auto;bottom:16px;transform:translate(-50%)}}.fp-stage{flex-direction:column;gap:14px;display:flex}.fp-stage-k{font-size:var(--fs-lg);color:var(--text);align-items:baseline;gap:10px;margin:0;font-weight:600;display:flex}.fp-stage-k .num{background:var(--accent-soft);width:22px;height:22px;color:var(--accent);font-size:var(--fs-xs);border-radius:50%;place-items:center;font-weight:600;display:inline-grid}.fp-stage+.fp-stage{border-top:1px solid var(--rule);padding-top:18px}.fp-inputs-add{flex-wrap:wrap;gap:8px;display:flex}.nd-via{min-width:44px;color:var(--text-2);font-size:var(--fs-sm)}.nd-belt{background:repeating-linear-gradient(90deg, var(--steel) 0 6px, transparent 6px 9px);width:28px;height:6px;display:inline-block}.fp-site{color:var(--text-3);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fp-site-k{min-width:30px}.fp-site .seg button{font-size:var(--fs-xs)}.fp-empty{align-self:flex-start;margin-top:14px}.fp-tier.plain{grid-template-columns:minmax(0,1fr)}.fp-tier.have{border-left-color:var(--accent)}.insp-kind{color:var(--text-3);font-size:var(--fs-xs);margin:3px 0 0}.insp-stat{font-size:var(--fs-md);color:var(--accent);margin:8px 0 0;font-weight:500}.insp-stat.warn-t{color:var(--warn)}.item{align-items:center;gap:6px;min-width:0;display:inline-flex}.item img{flex:none}.pips{gap:4px;display:inline-flex}.pips>img{opacity:.22;filter:grayscale();transition:opacity .12s,filter .12s}.pips>img.on{opacity:1;filter:none}.pip{border:1px solid var(--rule);background:var(--ink-0);cursor:pointer;place-items:center;width:28px;height:28px;padding:0;display:inline-grid}.pip img{opacity:.25;filter:grayscale()}.pip:hover{border-color:var(--rule-strong)}.pip.on{border-color:var(--accent);background:var(--accent-soft)}.pip.on img{opacity:1;filter:none}.effect{font-size:var(--fs-xs);color:var(--text-2);margin:8px 0 0}.swatches{align-items:center;gap:6px;display:inline-flex}.swatches button{cursor:pointer;border:1px solid var(--rule-strong);border-radius:50%;width:18px;height:18px;padding:0}.swatches .swatch{background:var(--tag);border-color:#0000}.swatches .swatch-none{background:linear-gradient(135deg, transparent 45%, var(--text-3) 45% 55%, transparent 55%)}.swatches button[aria-checked=true]{box-shadow:0 0 0 2px var(--ink-1), 0 0 0 3.5px var(--text)}.textfield.note{resize:vertical;width:100%;min-height:44px;font:inherit;font-size:var(--fs-sm);margin-top:8px;display:block}.organize-actions{font-size:var(--fs-sm);flex-wrap:wrap;gap:4px 14px;margin-top:8px;display:flex}.organize-actions:empty{display:none}.purity-switch .seg button.on{color:var(--ink-0)}.purity-switch .seg button:first-child.on{background:var(--impure)}.purity-switch .seg button:nth-child(2).on{background:var(--normal)}.purity-switch .seg button:nth-child(3).on{background:var(--pure)}.routes,.ff-rows{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.routes li,.ff-rows li{flex-direction:column;gap:4px;display:flex}.route-item,.ff-item{font-size:var(--fs-sm);align-items:center;gap:7px;min-width:0;display:flex}.route-item>span:nth-child(2),.ff-item>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.route-rate,.ff-rate{color:var(--text)}.bar{background:var(--ink-3);height:4px;display:block;overflow:hidden}.bar>span{background:linear-gradient(90deg, var(--steel), color-mix(in srgb, var(--steel) 70%, white));height:100%;display:block}.ff-rows li.in .bar>span{background:linear-gradient(90deg, var(--steel), color-mix(in srgb, var(--steel) 60%, white))}.ff-rows li.out .bar>span,[data-testid=floor-made] .bar>span{background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 65%, white))}.bar.low>span,.bar.over>span{background:var(--warn)!important}.route-end{font-size:var(--fs-xs);color:var(--text-3);align-self:flex-start}.ff-via{font-size:var(--fs-xs);color:var(--text-3);flex-wrap:wrap;gap:4px 10px;display:flex}.ff-build{color:var(--text-2);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.ff-build:hover{color:var(--text)}.ff-empty{font-size:var(--fs-sm);margin:18px 0 0}.confirm-row{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.confirm-row>span{flex-basis:100%}.multi-list button{align-items:center;gap:6px;display:inline-flex}.frame .slab{fill:#c9d2d00b;stroke:#c9d2d06b;stroke-width:1px;vector-effect:non-scaling-stroke}.frame.draft .slab{fill:var(--accent-soft);stroke:var(--accent);stroke-dasharray:6 4}.frame text{fill:var(--text-2);font-family:var(--font-num)!important}.frame .corner{fill:var(--ink-0);stroke:var(--text-2);cursor:nwse-resize}.frame .corner[data-frame-corner="1,0"],.frame .corner[data-frame-corner="0,1"]{cursor:nesw-resize}.frame .corner:hover{stroke:var(--accent)}.floors,.viewswitch,.zoom,.viewbtn,.stack-ctl,.modechip,.toast,.mtip,.nd-start{background:var(--glass);border-color:var(--glass-edge);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow)}.modechip{border-color:#f08a248c}.menu,.ctxmenu,.ctxmenu:focus-visible,.about,.viewpop{background:var(--glass-dense);border-color:var(--glass-edge);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow)}.about::backdrop{-webkit-backdrop-filter:blur(6px);background:#05070873}.menu button:hover,.ctxmenu [role=menuitem]:hover{background:#e6ece912}@media (width<=860px){.rail,.side{background:var(--glass-dense);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow)}}
