:root{--ink:#18222c;--ink-muted:#5b6b7b;--ink-faint:#8595a5;--bg:#eef1f4;--panel:#fff;--panel-sub:#f7f9fa;--border:#d8dfe6;--border-strong:#b9c4cf;--accent:#0c7568;--accent-strong:#095c52;--accent-soft:#e2f2ef;--accent-ring:#0c756838;--ok:#1b7a3d;--ok-soft:#e0f2e6;--warn:#8a6116;--warn-soft:#fdf3d8;--err:#b3261e;--err-soft:#fdebea;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px #1018200d, 0 4px 16px #1018200d;--sans:system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;--mono:ui-monospace, "SFMono-Regular", "Cascadia Mono", Consolas, monospace;--text:var(--ink-muted);--text-h:var(--ink);--panel-bg:var(--panel);font:15px/1.6 var(--sans);letter-spacing:0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100svh}body{margin:0}*{box-sizing:border-box}h1{font-family:var(--sans);color:var(--ink);letter-spacing:.01em;margin:0;font-size:20px;font-weight:700;line-height:1.2}.app-shell{background:var(--bg);flex-direction:column;height:100svh;min-height:100svh;display:flex;overflow:hidden}.app-header{border-top:3px solid var(--accent);border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:18px;min-height:64px;padding:12px 24px;display:flex}.app-title{flex:1;min-width:0}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:700}.lang-switch{border:1px solid var(--border);background:var(--panel-sub);border-radius:999px;padding:3px;display:inline-flex}.lang-switch button{color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.lang-switch button.is-active{color:#fff;background:var(--accent)}.download-button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:36px;color:var(--ink);background:var(--panel);font:inherit;cursor:pointer;padding:0 14px;font-size:14px;font-weight:600;transition:border-color .12s,background .12s}.download-button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.export-menu{position:relative}.export-menu summary{border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:36px;color:var(--ink);background:var(--panel);cursor:pointer;align-items:center;padding:0 14px;font-size:14px;font-weight:600;list-style:none;transition:border-color .12s,background .12s;display:inline-flex}.export-menu summary:hover{border-color:var(--accent);background:var(--accent-soft)}.export-menu summary::-webkit-details-marker{display:none}.export-menu div{z-index:5;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);min-width:140px;box-shadow:var(--shadow);padding:6px;display:grid;position:absolute;top:42px;right:0}.export-menu button{min-height:32px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:13px}.export-menu button:hover{background:var(--accent-soft)}.download-button:disabled{cursor:not-allowed;opacity:.5}.view-toggle{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);border-radius:999px;padding:3px;display:inline-flex}.view-toggle button{height:30px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:13px;font-weight:600}.view-toggle button.active{color:#fff;background:var(--accent)}.preset-control{color:var(--ink-muted);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.preset-control select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:190px;height:36px;color:var(--ink);background:var(--panel);font:inherit;padding:0 10px;font-size:13px}.workbench{flex:1;grid-template-columns:360px minmax(0,1fr);min-height:0;display:grid}.editor-panel{border-right:1px solid var(--border);background:var(--panel-sub);min-height:0;overflow:auto}.editor-tabs{z-index:2;border-bottom:1px solid var(--border);background:var(--panel);grid-template-columns:1fr 1fr;display:grid;position:sticky;top:0}.editor-tabs button{height:38px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;font-size:14px;font-weight:600}.editor-tabs button.active{color:var(--accent-strong);border-bottom-color:var(--accent);font-weight:700}.viewport{flex:1;place-items:center;min-height:0;padding:56px 24px 24px;display:grid;position:relative}.viewport>.view-toggle{position:absolute;top:14px;left:24px}.cross-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:min(100%,1180px);height:min(76svh,760px);box-shadow:var(--shadow)}.scene-3d{border-radius:var(--radius);background:radial-gradient(circle at 20% 20%,#ffffffe6,#0000 38%),linear-gradient(135deg,#f8fafc 0%,#e5e7eb 100%);width:100%;height:calc(100svh - 145px);min-height:520px;overflow:hidden}.scene-3d canvas{display:block;width:100%!important;height:100%!important}.loading-message,.error-message{border-radius:var(--radius-sm);background:var(--panel);margin:0;padding:12px 14px}.error-message{color:var(--err);border:1px solid color-mix(in srgb, var(--err) 35%, transparent)}.error-banner{border:1px solid color-mix(in srgb, var(--err) 35%, transparent);border-radius:var(--radius-sm);color:var(--err);background:var(--err-soft);margin:12px;padding:10px 12px;font-size:13px}.error-banner p{margin:0 0 4px}.error-banner p:last-child{margin-bottom:0}.form-editor{padding:12px}.editor-section{border-bottom:1px solid var(--border);padding:14px 0}.editor-section h2{color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:700}.field-row{color:var(--ink-muted);grid-template-columns:96px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:10px;font-size:13px;display:grid}.field-row input,.field-row select,.mini-item input,.mini-item select,.json-editor textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;color:var(--ink);background:var(--panel);font:inherit;padding:7px 8px;font-size:13px;transition:border-color .12s,box-shadow .12s}.field-row input:focus-visible,.field-row select:focus-visible,.mini-item input:focus-visible,.mini-item select:focus-visible,.json-editor textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.check-row{align-items:center;gap:8px;margin:8px 0;font-size:13px;display:flex}.check-row input[type=checkbox]{accent-color:var(--accent)}.list-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);margin-bottom:10px;padding:10px}.list-item-header,.button-row,.mini-item{align-items:center;gap:8px;display:flex}.list-item-header{justify-content:space-between;margin-bottom:10px}.list-item button,.editor-section>button,.json-editor button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-height:32px;color:var(--ink);background:var(--panel);font:inherit;cursor:pointer;padding:0 10px;font-size:13px;font-weight:600;transition:border-color .12s,background .12s}.list-item button:hover:not(:disabled),.editor-section>button:hover,.json-editor button:hover{border-color:var(--accent);background:var(--accent-soft)}.list-item button:disabled{cursor:not-allowed;opacity:.45}.nested-list{margin-top:12px}.nested-title,.muted{color:var(--ink-muted);font-size:12px}.mini-item{grid-template-columns:1fr 1fr 72px auto;margin-bottom:8px;display:grid}.json-editor{grid-template-rows:minmax(420px,1fr) auto;gap:10px;padding:12px;display:grid}.json-editor textarea{resize:vertical;min-height:420px;font-family:var(--mono);line-height:1.45}@media (width<=640px){.app-header{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.view-toggle{width:100%}.view-toggle button{flex:1}.preset-control{justify-content:space-between;width:100%}.preset-control select{width:65%;min-width:0}.workbench{grid-template-columns:1fr}.editor-panel{border-right:0;border-bottom:1px solid var(--border);max-height:42svh}.viewport{padding:16px}.viewport>.view-toggle{margin-bottom:12px;position:static}.scene-3d{height:68svh;min-height:420px}}
