*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e0e14;--panel:#17171f;--line:#2a2a38;--ink:#ececf4;--mute:#9a97ab;--brand:#8e5cff;--accent:#ff8b54}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;overflow:hidden}button{background:var(--panel);color:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:13px;transition:border-color .15s,background .15s}button:hover{border-color:var(--brand)}button.on{border-color:var(--brand);background:#241a3f}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}button.primary:hover{filter:brightness(1.1)}a{color:var(--brand);text-decoration:none}.sim-root{flex-direction:column;height:100dvh;display:flex}.sim-header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}.sim-brand{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.sim-logo{color:var(--brand)}.sim-by{color:var(--mute);margin-left:4px;font-size:12px;font-weight:400}.sim-controls{gap:8px;margin-left:auto;display:flex}.sim-hud{color:var(--mute);font-variant-numeric:tabular-nums;gap:14px;font-size:13px;display:flex}.sim-hud b{color:var(--ink)}.sim-palette{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 16px;display:flex}.sim-palette .hint{color:var(--mute);margin-left:8px;font-size:12px}.sim-main{flex:1;grid-template-columns:1fr minmax(340px,34%);min-height:0;display:grid}.sim-canvas-wrap{justify-content:center;align-items:center;min-width:0;padding:16px;display:flex;position:relative;overflow:auto}.sim-canvas-wrap canvas{border-radius:10px;max-width:100%;max-height:100%;box-shadow:0 8px 40px #00000080}.sim-log{border:1px solid var(--line);color:var(--mute);pointer-events:none;background:#0e0e14d9;border-radius:8px;max-width:60%;padding:8px 12px;font-family:ui-monospace,monospace;font-size:11px;position:absolute;bottom:24px;left:24px}.sim-editor{border-left:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.sim-editor-bar{border-bottom:1px solid var(--line);color:var(--mute);justify-content:space-between;align-items:center;padding:8px 12px;font-family:ui-monospace,monospace;font-size:12px;display:flex}.sim-api{flex:1;padding:14px;overflow:auto}.sim-api pre{color:var(--mute);white-space:pre-wrap;font-size:12px;line-height:1.6}.sim-tools,.sim-brushes{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sim-brushes{margin-top:6px}.sim-tools .sep{background:var(--line);width:1px;height:20px;margin:0 6px}.sim-palette{flex-direction:column;align-items:flex-start}.sim-check{color:var(--mute);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.sim-select{background:var(--panel);color:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:8px;max-width:180px;padding:6px 10px;font-size:13px}.sim-select:hover{border-color:var(--brand)}.sim-tabs{align-items:center;gap:6px;display:flex}.sim-tabs button{padding:4px 10px;font-size:12px}.sim-file{color:var(--mute);border:1px dashed var(--line);border-radius:6px;align-items:center;gap:4px;padding:3px 6px;font-size:11px;display:inline-flex}.sim-file button{color:var(--mute);background:0 0;border:none;padding:0 2px;font-size:12px}.upload{color:var(--ink);cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:12px}.upload:hover{border-color:var(--brand)}.sim-status{color:#9cc3ff;background:#1a2338;border-top:1px solid #24365c;padding:8px 12px;font-family:ui-monospace,monospace;font-size:12px}.sim-finish{border:1px solid var(--brand);background:#0e0e14eb;border-radius:14px;padding:22px 34px;font-size:18px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sim-error{color:#ff9c9c;background:#3a1520;border-top:1px solid #5c2030;padding:8px 12px;font-family:ui-monospace,monospace;font-size:12px}@media (max-width:900px){.sim-main{grid-template-rows:55% 45%;grid-template-columns:1fr}.sim-editor{border-left:none;border-top:1px solid var(--line)}body{overflow:auto}}
