:root{color:#e9e7e1;font-synthesis:none;text-rendering:optimizelegibility;--bg:#0b0d0f;--surface:#101316;--surface-raised:#15191d;--border:#292e33;--border-soft:#20252a;--text:#e9e7e1;--muted:#8f969d;--quiet:#626a72;--accent:#e5a85b;--accent-strong:#f0b86e;--success:#65c79a;--warning:#e7b967;--danger:#e47e72;--mono:"SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, monospace;background:#0b0d0f;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 18% -20%, #e5a85b0f, transparent 32rem), var(--bg)}button,input{font:inherit}button{color:inherit;border:0}button:focus-visible,input:focus-visible{outline-offset:-2px;outline:2px solid #e5a85bcc}.workbench{grid-template-rows:46px minmax(0,1fr);width:100%;height:100%;display:grid}.filebar{align-items:center;display:flex}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0b0d0fe0;justify-content:space-between;padding:0 20px}.identity{align-items:center;gap:11px;display:flex}.mark{width:28px;height:28px;color:var(--accent-strong);font-family:var(--mono);background:#19160f;border:1px solid #5f4a2f;place-items:center;font-size:14px;font-weight:700;display:grid}.identity h1{color:var(--text);letter-spacing:-.01em;margin:0;font-size:14px;font-weight:620}.identity div>span{color:var(--quiet);font-family:var(--mono);margin-top:2px;font-size:10px;display:block}.runtime-state{color:var(--muted);font-family:var(--mono);align-items:center;gap:8px;font-size:11px;display:flex}.status-dot{background:var(--success);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #65c79a14}.status-dot.busy{background:var(--accent);animation:1.1s ease-in-out infinite breathe}.filebar{border-bottom:1px solid var(--border);background:#0e1113;min-width:0}.file-tabs{scrollbar-width:thin;scrollbar-color:#353c42 transparent;flex:1;align-self:stretch;min-width:0;display:flex;overflow:auto hidden}.file-tab-wrap{border-right:1px solid var(--border-soft);background:#0c0f11;flex:none;align-items:center;min-width:0;max-width:210px;display:flex;position:relative}.file-tab-wrap.active{background:var(--surface)}.file-tab-wrap:not(.active):hover,.file-tab-wrap:not(.active):focus-within{background:#ffffff06}.file-tab-wrap.active:after{background:var(--accent);content:"";height:2px;position:absolute;top:0;left:0;right:0}.file-tab,.new-tab,.close-tab{cursor:pointer;background:0 0;height:100%}.file-tab{color:#848c93;text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);flex:auto;padding:0 8px 0 14px;font-size:11px;overflow:hidden}.file-tab-wrap.active .file-tab{color:#d6d8d6}.file-tab:hover{color:var(--text);background:0 0}.new-tab:hover{color:var(--text);background:#ffffff06}.close-tab{color:#697178;opacity:.72;flex:none;width:auto;height:auto;margin:0 9px 0 2px;padding:0;font-size:15px;line-height:1;transition:color .12s,opacity .12s;display:block}.close-tab:hover{color:var(--text);background:0 0}.file-tab-wrap:hover .close-tab,.file-tab-wrap:focus-within .close-tab{opacity:1}.new-tab{color:#697178;flex:0 0 40px;font-size:20px;font-weight:300}.file-tab-wrap input{width:96px;height:28px;color:var(--text);font-family:var(--mono);background:#161a1d;border:1px solid #806039;border-radius:3px;outline:none;margin:0 7px;padding:0 7px;font-size:11px}.file-tab-wrap input.invalid{border-color:var(--danger)}.file-tab-wrap.creating{min-width:110px}.actions{border-left:1px solid var(--border);background:#111417;flex:none;align-items:center;gap:7px;height:100%;padding:0 10px;display:flex}.actions button{cursor:pointer;border-radius:3px;height:30px;padding:0 11px;font-size:11px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.actions button:disabled,.file-tabs button:disabled{cursor:default;opacity:.45}.settings-action,.secondary-action,.stop-action{border:1px solid var(--border);color:#b8bdc0;background:#171b1f}.settings-action{place-items:center;width:32px;display:grid;padding:0!important}.settings-action svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:15px}.settings-action:hover,.settings-action.active,.secondary-action:hover:not(:disabled),.secondary-action.active{color:var(--text);background:#1b2024;border-color:#3a4148}.secondary-action.active{color:#f0d4ad;background:#e5a85b14;border-color:#806039}.bytecode-action{align-items:center;gap:7px;display:flex}.bytecode-glyph{color:currentColor;font-family:var(--mono);letter-spacing:-.08em;font-size:7px;font-weight:700;line-height:.72;display:grid}.run-action{color:#19140c;background:var(--accent);align-items:center;gap:7px;display:flex}.run-action:hover{background:var(--accent-strong)}.run-action span,.stop-action span{font-size:8px}.stop-action:hover{color:#f09b91;background:#211615;border-color:#6c3d39}.main-area{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.workspace{flex:auto;min-width:0;min-height:0;display:flex;overflow:hidden}.editor-pane,.bytecode-pane{background:var(--surface);min-width:0;min-height:0}.editor-pane{flex:auto;position:relative;overflow:hidden}.workspace.with-bytecode .editor-pane{border-right:1px solid var(--border)}.editor-host,.editor-host>.cm-editor{width:100%;height:100%}.editor-loading{color:var(--quiet);font-family:var(--mono);background:#0e1113;justify-content:center;align-items:center;gap:9px;font-size:10px;display:flex;position:absolute;inset:0}.editor-loading span{border:1px solid var(--quiet);border-top-color:var(--accent);border-radius:50%;width:7px;height:7px;animation:.7s linear infinite spin}.bytecode-pane{background:#0d1012;flex:0 0 min(46%,64ch);grid-template-rows:40px minmax(0,1fr);width:min(46%,64ch);display:grid}.bytecode-header,.output-header{color:#d7d9d7;border-bottom:1px solid var(--border);background:#111417;align-items:center;min-width:0;font-size:11px;font-weight:600;display:flex}.bytecode-header{justify-content:space-between;padding-left:14px}.bytecode-header>div{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bytecode-close{cursor:pointer;width:40px;height:100%;color:var(--muted);background:0 0;flex:0 0 40px;place-items:center;font-size:20px;font-weight:300;line-height:1;display:grid}.bytecode-close:hover{color:var(--text);background:#ffffff06}.compiling{color:var(--muted);font-family:var(--mono);margin-left:8px;font-size:10px}.bytecode-body,.output-body{min-height:0;overflow:auto}.bytecode-body{padding:18px}.output-pane{border-top:1px solid var(--border);background:#0d1012;flex:0 0 190px;grid-template-rows:40px minmax(0,1fr);height:190px;min-height:0;transition:flex-basis .16s,height .16s;display:grid;overflow:hidden}.output-pane.closed{flex-basis:40px;grid-template-rows:40px;height:40px}.output-pane.closed .output-header{border-bottom:0}.output-header{justify-content:space-between}.output-disclosure{cursor:pointer;color:#d7d9d7;text-align:left;background:0 0;flex:auto;align-self:stretch;align-items:center;gap:7px;min-width:0;padding:0 14px;display:flex}.output-disclosure:hover{background:#ffffff06}.disclosure-caret{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;transform-origin:50%;flex:0 0 16px;width:16px;height:16px;transition:transform .16s}.disclosure-caret.open{transform:rotate(90deg)}.output-actions{flex:0 0 62px;justify-content:flex-end;align-items:center;width:62px;height:100%;padding-right:12px;display:flex}.clear-output{cursor:pointer;color:var(--muted);background:0 0;padding:4px 2px;font-size:11px}.clear-output:hover:not(:disabled){color:var(--text)}.clear-output:disabled{cursor:default;opacity:.35}.execution-status{flex:0 0 50px;align-items:center;width:50px;display:inline-flex}.running-dot{color:var(--accent);font-size:8px}.execution-time{color:var(--muted);font-family:var(--mono);font-size:9px;font-weight:400}.output-body{padding:12px 14px}.console-lines{gap:5px;display:grid}.console-line{overflow-wrap:anywhere;white-space:pre-wrap;color:#cdd1d1;font-family:var(--mono);margin:0;font-size:12px;line-height:1.55}.output-error,.compilation-error pre{overflow-wrap:anywhere;white-space:pre-wrap;color:var(--danger);font-family:var(--mono);margin:0;font-size:12px;line-height:1.55}.notice-line{border-left:2px solid var(--warning);color:#bba476;font-family:var(--mono);background:#e7b9670d;margin-top:9px;padding:8px 10px;font-size:11px}.compilation-error strong{color:#eeaaa2;font-family:var(--mono);margin-bottom:5px;font-size:12px;display:block}.empty-copy{color:var(--quiet);font-family:var(--mono);font-size:12px;font-style:italic;line-height:1.55;display:block}.bytecode-listing{color:#aeb4b5;font-family:var(--mono);tab-size:4;font-size:11px}.bytecode-line{white-space:pre;width:max-content;min-width:100%;height:20px;padding:0 3px;line-height:20px}.bytecode-line.highlighted{background:#6aa9ff1a}.bytecode-keyword,.bytecode-opcode{color:#6aa9ff;font-weight:500}.bytecode-function,.bytecode-label{color:#ef7188}.bytecode-line-number{color:#5f6870}.bytecode-source{color:#cdd1d1}.bytecode-register{color:#77b7ff}.bytecode-constant{color:#b89cff}.bytecode-string{color:#70c790}.bytecode-comment{color:#626a72}.settings-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#030506b3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.settings-panel{width:min(560px,100%);color:var(--text);background:#171b1e;border:1px solid #353c43;border-radius:12px;overflow:hidden;box-shadow:0 24px 80px #0000007a}.settings-panel header{justify-content:space-between;align-items:flex-start;padding:26px 28px 20px;display:flex}.settings-panel h2{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:570}.settings-panel header p{color:var(--quiet);margin:6px 0 0;font-size:13px}.settings-close{cursor:pointer;width:32px;height:32px;color:var(--muted);background:0 0;border-radius:4px;font-size:22px;line-height:1}.settings-close:hover{color:var(--text);background:#ffffff0a}.settings-section{padding:0 28px 30px}.settings-section h3{border-top:1px solid var(--border);color:#cbd0d2;letter-spacing:.09em;text-transform:uppercase;margin:0 0 24px;padding-top:24px;font-size:12px;font-weight:650}.settings-section fieldset{border:0;margin:0 0 24px;padding:0}.settings-section fieldset:last-child{margin-bottom:0}.settings-section legend{color:var(--muted);margin-bottom:10px;font-size:12px}.option-row{gap:8px;display:grid}.option-row.three{grid-template-columns:repeat(3,1fr)}.option-row button{cursor:pointer;color:#a8aeb2;background:#1d2125;border:1px solid #0000;border-radius:6px;height:44px;font-size:13px}.option-row button:hover{color:var(--text);background:#22272b}.option-row button.selected{border-color:var(--accent);color:#f0d4ad;background:#e5a85b14;box-shadow:inset 0 0 0 1px #e5a85b1f}.option-row button:disabled{cursor:default;opacity:.55}.checkbox-option{cursor:pointer;width:fit-content;color:var(--muted);align-items:center;gap:9px;font-size:12px;display:flex}.checkbox-option input{width:16px;height:16px;accent-color:var(--accent);margin:0}.checkbox-option:has(input:disabled){cursor:default;opacity:.55}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breathe{50%{opacity:.4;transform:scale(.82)}}@media (width<=820px){html,body,#app{overflow:hidden}.workbench{grid-template-rows:84px minmax(0,1fr);height:100dvh;min-height:0}.cm-content,.cm-gutters{font-size:16px!important}.filebar{grid-template-rows:42px 42px;display:grid}.file-tabs{border-bottom:1px solid var(--border-soft);width:100%}.actions{border-left:0;justify-content:flex-end}.workspace{flex-direction:column}.editor-pane{border-right:0;flex:auto;width:100%}.workspace.with-bytecode .editor-pane{border-right:0;border-bottom:1px solid var(--border);flex:50%}.bytecode-pane{flex:50%;grid-template-rows:40px minmax(0,1fr);width:100%;min-height:0}.output-pane{flex-basis:min(31dvh,210px);height:min(31dvh,210px)}.output-pane.closed{flex-basis:40px;height:40px}.bytecode-action-label{display:none}}@media (width<=520px){.settings-backdrop{align-items:end;padding:10px}.settings-panel{border-radius:10px}.settings-panel header{padding:22px 20px 18px}.settings-section{padding:0 20px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
