:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--surface:#f4f3ec99;letter-spacing:.12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/145% system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--surface:#2f303a8c}}body{margin:0}#root{min-height:100svh}h1,h2{color:var(--text-h);margin:0;font-weight:600}h2{font-size:18px}p{margin:0}.page{box-sizing:border-box;min-height:100svh;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));max-width:980px;margin:0 auto}.title{margin-bottom:8px;font-size:28px}.muted{opacity:.85}.card{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:14px;padding:14px}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.kv{grid-template-columns:140px 1fr;align-items:center;gap:10px;display:grid}.kv .k{opacity:.8;font-size:12px}.kv .v{color:var(--text-h);word-break:break-word}.input{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);border-radius:10px;padding:8px 10px}.btn{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:12px;padding:10px 12px}.btn.primary{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-h)}.btn:disabled{opacity:.5;cursor:not-allowed}.file{border:1px dashed var(--border);color:var(--text-h);background:0 0;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:inline-flex}.file input{max-width:240px}.msg{border:1px solid var(--border);background:var(--bg);border-radius:12px;margin-top:10px;padding:10px 12px}.msg.error{border-color:#dc7878b3}.stepper{align-items:center;gap:8px;display:flex}.playRoot{flex-direction:column;min-height:100svh;display:flex}.playHud{padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 10px calc(12px + env(safe-area-inset-left));justify-content:space-between;gap:10px;display:flex}.hudTitle{color:var(--text-h);font-weight:700}.hudSub{font-size:12px}.progressBar{background:#ffffff1f;height:6px}.progressFill{background:var(--accent);height:100%}.playStats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px 12px;display:grid}.stat{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:8px 10px}.stat .k{opacity:.8;font-size:11px}.stat .v{color:var(--text-h);font-weight:700}.playCanvasWrap{padding:0 calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));flex:1;position:relative}.playCanvas{border:1px solid var(--border);touch-action:none;background:#00000059;border-radius:16px;width:100%;height:100%;display:block}.overlay{background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.overlayCard{border:1px solid var(--border);background:var(--bg);border-radius:16px;gap:10px;width:min(520px,100%);padding:14px;display:grid}.orientationHint{border:1px solid var(--border);color:#ffffffe6;pointer-events:none;background:#00000059;border-radius:12px;padding:6px 10px;font-size:12px;position:absolute;top:10px;right:10px}@media (orientation:landscape) and (height<=520px){.orientationHint{background:#dc787880}}.editorCanvasWrap{width:100%;height:min(70vh,780px)}.editorCanvas{border:1px solid var(--border);touch-action:none;background:#00000059;border-radius:16px;width:100%;height:100%;display:block}.tapArea{border:1px solid var(--border);width:100%;color:var(--text-h);background:#00000026;border-radius:16px;margin-top:10px;padding:18px 12px;font-size:18px}.tapArea:disabled{opacity:.5}@media (width<=560px){.kv{grid-template-columns:110px 1fr}.playStats{grid-template-columns:repeat(2,minmax(0,1fr))}}
