@font-face{font-family:Spline Sans;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/2438dfc711ffbcdb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Spline Sans;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/cf1398c533b7af5b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Spline Sans Fallback;src:local("Arial");ascent-override:95.03%;descent-override:23.33%;line-gap-override:0.00%;size-adjust:101.39%}.__className_bc4842{font-family:Spline Sans,Spline Sans Fallback;font-style:normal}.__variable_bc4842{--loft-sans:"Spline Sans","Spline Sans Fallback"}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/59829bb575d36b50-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Spline Sans Mono;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/e02f7a71372872a3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Spline Sans Mono Fallback;src:local("Arial");ascent-override:71.59%;descent-override:17.57%;line-gap-override:0.00%;size-adjust:134.59%}.__className_1999fd{font-family:Spline Sans Mono,Spline Sans Mono Fallback;font-style:normal}.__variable_1999fd{--loft-mono:"Spline Sans Mono","Spline Sans Mono Fallback"}:root{--sans:var(--loft-sans,ui-sans-serif),system-ui,-apple-system,sans-serif;--mono:var(--loft-mono,ui-monospace),SFMono-Regular,Menlo,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--sans);color:#1c1e22;background:#f6f7f9}.shell{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:baseline;gap:12px;padding:10px 16px;background:#ffffff;border-bottom:1px solid #e2e5ea}.topbar .brand{font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:.02em}.topbar .brand span{color:#7a8290;font-weight:400}.proj-switch{position:relative}.proj-switch-btn{font:600 13.5px var(--sans);color:#333a44;background:transparent;border:none;border-radius:6px;padding:4px 8px;cursor:pointer;white-space:nowrap}.proj-switch-btn.open,.proj-switch-btn:hover{background:#f2f5f9}.proj-switch-btn .caret{color:#7a8290;font-size:10px}.proj-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:240px;background:#ffffff;border:1px solid #c4c9d0;border-radius:8px;box-shadow:0 6px 24px rgba(28,30,34,.12);padding:5px;display:flex;flex-direction:column}.proj-menu-item{font:13px var(--sans);color:#333a44;text-align:left;background:transparent;border:none;border-radius:5px;padding:6px 9px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-menu-item:hover{background:#f2f7fd}.proj-menu-item.current{font-weight:600;color:#0550ae;background:#eaf2fb}.proj-menu-sep{height:1px;background:#e9ecf0;margin:5px 4px}.proj-menu-head{font:600 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#9aa1ab;padding:3px 9px 2px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.topbar .topbtn{font:12px var(--sans);color:#333a44;background:#fff;border:1px solid #c4c9d0;border-radius:6px;padding:4px 10px;cursor:pointer}.topbar .topbtn:hover{background:#f2f5f9}.topbar .push-right{margin-left:auto}.main{min-height:0}.main,.workspace{display:flex;flex:1 1}.workspace{min-width:0;position:relative}.editor-pane{min-width:280px;background:white}.editor-pane,.editor-slot{display:flex;flex-direction:column}.editor-slot{flex:1 1;min-height:0}.divider{width:5px;flex-shrink:0;cursor:col-resize;background:#e2e5ea;border-left:2px solid transparent;border-right:2px solid transparent;background-clip:padding-box;touch-action:none}.divider:active,.divider:hover{background-color:#7aa7d9}.editor-host{flex:1 1;min-height:0;overflow:auto}.files-pane{display:flex;flex-direction:column;flex:1 1;min-height:0}.files-head{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #e2e5ea}.files-head .files-hint{font-size:11.5px;color:#9aa1ab}.files-head .files-add{margin-left:auto;font:12px var(--sans);color:#333a44;background:#fff;border:1px solid #c4c9d0;border-radius:6px;padding:3px 9px;cursor:pointer;white-space:nowrap}.files-head .files-add:hover{background:#f2f5f9}.files-head .files-add~.files-add{margin-left:0}.files-body{flex:1 1;overflow:auto;padding:8px 0}.files-dir{font:600 12px var(--mono);color:#7a8290;padding-top:6px;padding-bottom:2px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.files-row{display:flex;align-items:center;gap:8px;padding-top:4px;padding-bottom:4px;padding-right:12px;font:13px var(--mono);color:#333a44;cursor:pointer}.files-row:hover{background:#f2f7fd}.files-row.active{background:#eaf2fb;color:#0550ae}.files-row .files-errors{font:600 11px var(--mono);color:#b3261e;background:#fdf7f7;border:1px solid #e5c9c7;border-radius:8px;padding:0 6px}.files-row .files-ops{margin-left:auto;display:none;gap:4px}.files-row:hover .files-ops{display:inline-flex}.files-row .files-ops button{font:11px var(--sans);color:#57606c;background:#fff;border:1px solid #c4c9d0;border-radius:5px;padding:1px 7px;cursor:pointer}.files-row .files-ops button:hover{background:#f2f5f9;color:#1c1e22}.files-rename{display:block;font:13px var(--mono);padding:2px 6px;margin-top:2px;margin-bottom:2px;border:1px solid #7aa7d9;border-radius:5px;width:260px}.editor-crumb{font:12px var(--mono);background:transparent;border:none;padding:2px 4px;border-radius:5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;text-align:left}.editor-crumb:hover{background:#f2f5f9}.editor-crumb .crumb-dir{color:#9aa1ab}.editor-crumb .crumb-file{color:#0550ae;font-weight:600;letter-spacing:.04em}.editor-error{font:12px var(--sans);text-align:left;color:#5c3a38;background:#fdf7f7;border:none;border-top:1px solid #eddfde;padding:5px 12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.editor-error:hover{color:#1c1e22}.editor-error .line-no{font-family:var(--mono);color:#b3261e;margin-right:6px}.editor-error .err-code{font-family:var(--mono);color:#9a8a88;margin-right:6px}.editor-error .suggestion{color:#7a6a3a}.editor-host .cm-editor{height:100%;font-size:13px}.editor-host .cm-editor.cm-focused{outline:none}.editor-host .cm-scroller{font-family:var(--mono);line-height:1.55}.strip{display:flex;align-items:center;gap:8px;padding:0 10px;min-height:30px;background:#ffffff;border-top:1px solid #e2e5ea;font-size:12px;flex-shrink:0}.strip .notice{font-size:12px;color:#1d6f42;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strip .strip-right{margin-left:auto;display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.strip .strip-problems{font:12px var(--sans);color:#57606c;background:transparent;border:1px solid transparent;border-radius:5px;padding:2px 8px;cursor:pointer;white-space:nowrap}.strip .strip-problems.has{color:#b3261e;background:#fdf7f7;border-color:#e5c9c7}.strip .strip-problems.open{border-color:#b3261e}.strip .strip-elements{font:12px var(--sans);color:#57606c;background:transparent;border:1px solid transparent;border-radius:5px;padding:2px 8px;cursor:pointer;white-space:nowrap}.strip .strip-elements:hover{background:#f2f5f9;color:#1c1e22}.strip .strip-elements.open{background:#eaf2fb;border-color:#b9cfe8;color:#0550ae}.problems-drawer{border-top:1px solid #e2e5ea;background:#fdf7f7;max-height:30%;overflow:auto;font-size:12.5px;flex-shrink:0}.problems-drawer .problems-stale{padding:6px 12px 0;color:#8a6d1d}.problems-drawer .problems-none{padding:8px 12px;color:#57606c}.problems-drawer ul{list-style:none;padding:6px 12px 8px}.problems-drawer li{padding:3px 0;color:#5c3a38;cursor:pointer}.problems-drawer li:hover{color:#1c1e22}.problems-drawer .line-no{font-family:var(--mono);color:#b3261e;margin-right:6px}.problems-drawer .err-code{font-family:var(--mono);color:#9a8a88;margin-right:6px}.problems-drawer .suggestion{color:#7a6a3a}.cheat-page{max-width:780px;margin:0 auto;padding:28px 24px 64px;font-size:14px;line-height:1.55}.cheat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.cheat-head h1{font:600 20px var(--mono);margin-bottom:8px}.cheat-preamble{color:#57606c}.cheat-actions{display:flex;gap:8px;flex-shrink:0}.cheat-actions .topbtn{text-decoration:none;white-space:nowrap}.cheat-section{margin-top:22px}.cheat-section h2{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#1d5fa8;margin-bottom:6px}.cheat-section p{margin-bottom:6px}.cheat-code{background:#ffffff;border:1px solid #e2e5ea;border-radius:6px;padding:10px 12px;margin:6px 0 8px;font:12.5px var(--mono);line-height:1.6;overflow-x:auto}.dt-keyword{color:#0550ae;font-weight:600}.dt-attr{color:#953800}.dt-datum{color:#8250df}.dt-accessor{color:#6639ba;font-style:italic}.dt-length,.dt-number{color:#0a7a4b}.dt-string{color:#b31d28}.dt-op{color:#57606a}.dt-comment{color:#9aa1ab;font-style:italic}.cheat-section ul{list-style:disc;padding-left:22px;color:#414751}.cheat-section li{margin:3px 0}.cheat-page code{font:12.5px var(--mono);background:#eef1f5;border-radius:4px;padding:1px 4px}.view-panes{display:flex;flex-direction:column;flex:1 1;min-width:0}.plan-pane{background:#fbfbfa}.model-pane,.plan-pane{position:relative;flex:1 1;min-height:0}.model-pane{border-top:1px solid #e2e5ea;background:#f2f3f1}.drop-overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;font:600 18px var(--sans);color:#0550ae;background:rgba(234,242,251,.85);border:3px dashed #7aa7d9;pointer-events:none}.dims-toggle{position:absolute;top:8px;right:12px;z-index:1;font:11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#9aa1ab;background:transparent;border:1px solid transparent;border-radius:5px;padding:2px 8px;cursor:pointer}.dims-toggle.on{color:#1d5fa8;border-color:#b9cfe8;background:#f2f7fd}.view-label{position:absolute;top:8px;left:12px;z-index:1;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9aa1ab;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.takeoff-overlay{position:absolute;inset:0;z-index:5;background:#ffffff;display:flex;flex-direction:column}.takeoff-head{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #e2e5ea}.takeoff-head .view-label-inline{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#1d5fa8}.takeoff-head .takeoff-hint{font-size:12px;color:#9aa1ab}.takeoff-head .takeoff-close{margin-left:auto;font:16px var(--mono);color:#57606c;background:transparent;border:1px solid transparent;border-radius:5px;padding:0 8px;cursor:pointer}.takeoff-head .takeoff-close:hover{background:#f2f5f9;color:#1c1e22}.takeoff-body{flex:1 1;overflow:auto;padding:16px;display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start;align-content:flex-start}.takeoff-empty{font-size:12.5px;color:#57606c}.takeoff-table{border-collapse:collapse;font:12.5px var(--mono);color:#333a44}.takeoff-table caption{caption-side:top;letter-spacing:.08em;text-transform:uppercase;color:#1d5fa8;padding-bottom:5px}.takeoff-table caption,.takeoff-table th{text-align:left;font:600 11px var(--sans)}.takeoff-table th{color:#57606c;border-bottom:1px solid #c4c9d0;padding:3px 14px 4px 0}.takeoff-table td{border-bottom:1px solid #eef1f5;padding:3px 14px 3px 0;white-space:nowrap}.takeoff-table tbody tr{cursor:pointer}.takeoff-table tbody tr:hover td{background:#f2f7fd}.takeoff-table .type-row td{font:600 12.5px var(--mono);color:#0550ae;border-bottom:none;padding-top:8px}.takeoff-table td.inst{color:#8250df;font-style:italic}.cm-tooltip .dt-def-tip{font:12px var(--mono);padding:3px 8px;color:#333a44}