:root{--bg:#14161a;--panel:#1b1e24;--panel-2:#22262e;--line:#2e333d;--text:#dfe3ea;--muted:#8d95a3;--accent:#4cc38a;--accent-ink:#06231a;--danger:#ff6b6b;--warn:#ffc861;--radius:8px;--head:48px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#toolbar{height:var(--head);background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:0 12px;display:flex}#toolbar h1{white-space:nowrap;margin:0 8px 0 0;font-size:15px;font-weight:650}#toolbar h1 span{color:var(--accent);font-weight:500}button,select{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:6px 12px}button:hover:not(:disabled),select:hover{border-color:#454c58}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.link{color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:12px}button.link:hover{color:var(--text)}kbd{background:#00000038;border-radius:3px;padding:1px 4px;font:11px ui-monospace,monospace}#status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:12px;overflow:hidden}#status.error{color:var(--danger)}#status.ok{color:var(--accent)}main{background:var(--line);height:calc(100vh - var(--head));grid-template-columns:1fr 1fr;gap:1px;display:grid}.pane{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex}.pane-head{color:var(--muted);background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;display:flex}#tabs-head{gap:8px;padding:0 8px 0 6px}#tabs{scrollbar-width:thin;flex:1;align-items:stretch;gap:2px;min-width:0;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;padding:7px 8px 7px 10px;font-size:12px;display:inline-flex}.tab:hover{color:var(--text);border-color:var(--line)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);background:var(--panel-2)}.tab .entry-dot{background:var(--accent);border-radius:50%;width:5px;height:5px}.tab .close{color:inherit;opacity:.5;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0 2px;font-size:14px;line-height:1}.tab .close:hover{opacity:1;background:#ffffff1a}#add-file{white-space:nowrap}#editor{flex:1;min-height:0;overflow:hidden}#editor .cm-editor{height:100%}#editor .cm-scroller{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}#stage{border-bottom:1px solid var(--line);background:#0e1013;justify-content:center;align-items:center;padding:12px;display:flex}#canvas{max-width:100%;image-rendering:pixelated;background:#000;border-radius:4px;outline:none}#canvas:focus-visible{box-shadow:0 0 0 2px var(--accent)}#console{white-space:pre-wrap;word-break:break-word;flex:1;min-height:120px;padding:8px 12px;font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}#console .err{color:var(--danger)}#console .warn{color:var(--warn)}#console .note{color:var(--muted)}#boot-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;background:#0a0c0fe6;place-items:center;display:grid;position:fixed;inset:0}body:not(.booting) #boot-overlay{display:none}.boot-box{text-align:center}.boot-box p{margin:6px 0 0}.boot-note{color:var(--muted);font-size:12px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}body.embed #toolbar,body.embed #editor-pane,body.embed .pane-head{display:none}body.embed main{grid-template-columns:1fr;height:100vh}body.embed #console{max-height:30vh}@media (max-width:820px){main{height:auto;min-height:calc(100vh - var(--head));grid-template-rows:1fr 1fr;grid-template-columns:1fr}#toolbar{flex-wrap:wrap;height:auto;padding:8px 12px}#status{width:100%;margin-left:0}}
